From 40b732b3366db18efb7a8365746c869feca8c843 Mon Sep 17 00:00:00 2001 From: Duncan Greer Date: Sat, 18 May 2013 20:07:01 +1000 Subject: [PATCH 01/16] Added CCPM mixer --- ROMFS/px4fmu_common/mixers/FMU_CCPM.mix | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 ROMFS/px4fmu_common/mixers/FMU_CCPM.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix b/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix new file mode 100644 index 0000000000..8ac1626c7b --- /dev/null +++ b/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix @@ -0,0 +1,53 @@ +Helicopter 120 degree Cyclic-Collective-Pitch Mixing (CCPM) for PX4FMU +================================================== + + +Output 0 - Rear Servo Mixer +---------------- + +Rear Servo = Collective (Thrust - 3) + Elevator (Pitch - 1) + +M: 2 +O: 10000 10000 0 -10000 10000 +S: 0 3 10000 10000 0 -10000 10000 +S: 0 1 10000 10000 0 -10000 10000 + + +Output 1 - Left Servo Mixer +----------------- +Left Servo = Collective (Thurst - 3) - 0.5 * Elevator (Pitch - 1) + 0.866 * Aileron (Roll - 0) + +M: 3 +O: 10000 10000 0 -10000 10000 +S: 0 3 -10000 -10000 0 -10000 10000 +S: 0 1 -5000 -5000 0 -10000 10000 +S: 0 0 8660 8660 0 -10000 10000 + + +Output 2 - Right Servo Mixer +---------------- +Right Servo = Collective (Thurst - 3) - 0.5 * Elevator (Pitch - 1) - 0.866 * Aileron (Roll - 0) + + +M: 3 +O: 10000 10000 0 -10000 10000 +S: 0 3 -10000 -10000 0 -10000 10000 +S: 0 1 -5000 -5000 0 -10000 10000 +S: 0 0 -8660 -8660 0 -10000 10000 + +Output 3 - Tail Servo Mixer +---------------- +Tail Servo = Yaw (control index = 2) + +M: 1 +O: 10000 10000 0 -10000 10000 +S: 0 2 10000 10000 0 -10000 10000 + + +Output 4 - Motor speed mixer +----------------- +This would be the governor output - not sure what group id to use here? + +M: 1 +O: 10000 10000 0 -10000 10000 +S: 0 5 0 20000 -10000 -10000 10000 From eab8f9b28608f7f91641442e833b2324710147d9 Mon Sep 17 00:00:00 2001 From: Duncan Greer Date: Sat, 18 May 2013 20:12:08 +1000 Subject: [PATCH 02/16] changed control index for speed controller output from 5 to 4 --- ROMFS/px4fmu_common/mixers/FMU_CCPM.mix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix b/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix index 8ac1626c7b..1c45b3e59f 100644 --- a/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix +++ b/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix @@ -46,8 +46,8 @@ S: 0 2 10000 10000 0 -10000 10000 Output 4 - Motor speed mixer ----------------- -This would be the governor output - not sure what group id to use here? +This would be the motor speed control output from governor power demand- not sure what index to use here? M: 1 O: 10000 10000 0 -10000 10000 -S: 0 5 0 20000 -10000 -10000 10000 +S: 0 4 0 20000 -10000 -10000 10000 From 3a1c9f14f68054537657851eacb60d930c3d4221 Mon Sep 17 00:00:00 2001 From: px4dev Date: Mon, 20 May 2013 00:26:41 +0200 Subject: [PATCH 03/16] Teach the PX4 build system how to handle pre-built libraries. --- makefiles/firmware.mk | 76 +++++++++++++++---- makefiles/library.mk | 169 ++++++++++++++++++++++++++++++++++++++++++ makefiles/module.mk | 24 +----- 3 files changed, 233 insertions(+), 36 deletions(-) create mode 100644 makefiles/library.mk diff --git a/makefiles/firmware.mk b/makefiles/firmware.mk index 497e792376..6b09e6ec32 100644 --- a/makefiles/firmware.mk +++ b/makefiles/firmware.mk @@ -180,18 +180,6 @@ EXTRA_CLEANS = # Modules ################################################################################ -# -# We don't actually know what a module is called; all we have is a path fragment -# that we can search for, and where we expect to find a module.mk file. -# -# As such, we replicate the successfully-found path inside WORK_DIR for the -# module's build products in order to keep modules separated from each other. -# -# XXX If this becomes unwieldy or breaks for other reasons, we will need to -# move to allocating directory names and keeping tabs on makefiles via -# the directory name. That will involve arithmetic (it'd probably be time -# for GMSL). - # where to look for modules MODULE_SEARCH_DIRS += $(WORK_DIR) $(MODULE_SRC) $(PX4_MODULE_SRC) @@ -248,6 +236,66 @@ $(MODULE_CLEANS): MODULE_MK=$(mkfile) \ clean +################################################################################ +# Libraries +################################################################################ + +# where to look for libraries +LIBRARY_SEARCH_DIRS += $(WORK_DIR) $(MODULE_SRC) $(PX4_MODULE_SRC) + +# sort and unique the library list +LIBRARIES := $(sort $(LIBRARIES)) + +# locate the first instance of a library by full path or by looking on the +# library search path +define LIBRARY_SEARCH + $(firstword $(abspath $(wildcard $(1)/library.mk)) \ + $(abspath $(foreach search_dir,$(LIBRARY_SEARCH_DIRS),$(wildcard $(search_dir)/$(1)/library.mk))) \ + MISSING_$1) +endef + +# make a list of library makefiles and check that we found them all +LIBRARY_MKFILES := $(foreach library,$(LIBRARIES),$(call LIBRARY_SEARCH,$(library))) +MISSING_LIBRARIES := $(subst MISSING_,,$(filter MISSING_%,$(LIBRARY_MKFILES))) +ifneq ($(MISSING_LIBRARIES),) +$(error Can't find library(s): $(MISSING_LIBRARIES)) +endif + +# Make a list of the archive files we expect to build from libraries +# Note that this path will typically contain a double-slash at the WORK_DIR boundary; this must be +# preserved as it is used below to get the absolute path for the library.mk file correct. +# +LIBRARY_LIBS := $(foreach path,$(dir $(LIBRARY_MKFILES)),$(WORK_DIR)$(path)library.a) + +# rules to build module objects +.PHONY: $(LIBRARY_LIBS) +$(LIBRARY_LIBS): relpath = $(patsubst $(WORK_DIR)%,%,$@) +$(LIBRARY_LIBS): mkfile = $(patsubst %library.a,%library.mk,$(relpath)) +$(LIBRARY_LIBS): workdir = $(@D) +$(LIBRARY_LIBS): $(GLOBAL_DEPS) $(NUTTX_CONFIG_HEADER) + $(Q) $(MKDIR) -p $(workdir) + $(Q) $(MAKE) -r -f $(PX4_MK_DIR)library.mk \ + -C $(workdir) \ + LIBRARY_WORK_DIR=$(workdir) \ + LIBRARY_LIB=$@ \ + LIBRARY_MK=$(mkfile) \ + LIBRARY_NAME=$(lastword $(subst /, ,$(workdir))) \ + library + +# make a list of phony clean targets for modules +LIBRARY_CLEANS := $(foreach path,$(dir $(LIBRARY_MKFILES)),$(WORK_DIR)$(path)/clean) + +# rules to clean modules +.PHONY: $(LIBRARY_CLEANS) +$(LIBRARY_CLEANS): relpath = $(patsubst $(WORK_DIR)%,%,$@) +$(LIBRARY_CLEANS): mkfile = $(patsubst %clean,%library.mk,$(relpath)) +$(LIBRARY_CLEANS): + @$(ECHO) %% cleaning using $(mkfile) + $(Q) $(MAKE) -r -f $(PX4_MK_DIR)library.mk \ + LIBRARY_WORK_DIR=$(dir $@) \ + LIBRARY_MK=$(mkfile) \ + clean + ################################################################################ # NuttX libraries and paths ################################################################################ @@ -420,8 +468,8 @@ $(PRODUCT_BUNDLE): $(PRODUCT_BIN) $(PRODUCT_BIN): $(PRODUCT_ELF) $(call SYM_TO_BIN,$<,$@) -$(PRODUCT_ELF): $(OBJS) $(MODULE_OBJS) $(GLOBAL_DEPS) $(LINK_DEPS) $(MODULE_MKFILES) - $(call LINK,$@,$(OBJS) $(MODULE_OBJS)) +$(PRODUCT_ELF): $(OBJS) $(MODULE_OBJS) $(LIBRARY_LIBS) $(GLOBAL_DEPS) $(LINK_DEPS) $(MODULE_MKFILES) + $(call LINK,$@,$(OBJS) $(MODULE_OBJS) $(LIBRARY_LIBS)) # # Utility rules diff --git a/makefiles/library.mk b/makefiles/library.mk new file mode 100644 index 0000000000..28a421fe0e --- /dev/null +++ b/makefiles/library.mk @@ -0,0 +1,169 @@ +# +# Copyright (c) 2013 PX4 Development Team. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name PX4 nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# +# Framework makefile for PX4 libraries +# +# This makefile is invoked by firmware.mk to build each of the linraries +# that will subsequently be linked into the firmware image. +# +# Applications are built as standard ar archives. Unlike modules, +# all public symbols in library objects are visible across the entire +# firmware stack. +# +# In general, modules should be preferred to libraries when possible. +# Libraries may also be pre-built. +# +# IMPORTANT NOTE: +# +# This makefile assumes it is being invoked in the library's output directory. +# + +# +# Variables that can be set by the library's library.mk: +# +# +# SRCS (optional) +# +# Lists the .c, cpp and .S files that should be compiled/assembled to +# produce the library. +# +# PREBUILT_LIB (optional) +# +# Names the prebuilt library in the source directory that should be +# linked into the firmware. +# +# INCLUDE_DIRS (optional, must be appended, ignored if SRCS not set) +# +# The list of directories searched for include files. If non-standard +# includes (e.g. those from another module) are required, paths to search +# can be added here. +# +# + +# +# Variables visible to the library's library.mk: +# +# CONFIG +# BOARD +# LIBRARY_WORK_DIR +# LIBRARY_LIB +# LIBRARY_MK +# Anything set in setup.mk, board_$(BOARD).mk and the toolchain file. +# Anything exported from config_$(CONFIG).mk +# + +################################################################################ +# No user-serviceable parts below. +################################################################################ + +ifeq ($(LIBRARY_MK),) +$(error No library makefile specified) +endif +$(info %% LIBRARY_MK = $(LIBRARY_MK)) + +# +# Get the board/toolchain config +# +include $(PX4_MK_DIR)/board_$(BOARD).mk + +# +# Get the library's config +# +include $(LIBRARY_MK) +LIBRARY_SRC := $(dir $(LIBRARY_MK)) +$(info % LIBRARY_NAME = $(LIBRARY_NAME)) +$(info % LIBRARY_SRC = $(LIBRARY_SRC)) +$(info % LIBRARY_LIB = $(LIBRARY_LIB)) +$(info % LIBRARY_WORK_DIR = $(LIBRARY_WORK_DIR)) + +# +# Things that, if they change, might affect everything +# +GLOBAL_DEPS += $(MAKEFILE_LIST) + +################################################################################ +# Build rules +################################################################################ + +# +# What we're going to build +# +library: $(LIBRARY_LIB) + +ifneq ($(PREBUILT_LIB),) + +VPATH = $(LIBRARY_SRC) +$(LIBRARY_LIB): $(PREBUILT_LIB) $(GLOBAL_DEPS) + @$(ECHO) "PREBUILT: $(PREBUILT_LIB)" + $(Q) $(COPY) $< $@ + +else + +## +## Object files we will generate from sources +## + +OBJS = $(addsuffix .o,$(SRCS)) + +# +# SRCS -> OBJS rules +# + +$(OBJS): $(GLOBAL_DEPS) + +vpath %.c $(LIBRARY_SRC) +$(filter %.c.o,$(OBJS)): %.c.o: %.c $(GLOBAL_DEPS) + $(call COMPILE,$<,$@) + +vpath %.cpp $(LIBRARY_SRC) +$(filter %.cpp.o,$(OBJS)): %.cpp.o: %.cpp $(GLOBAL_DEPS) + $(call COMPILEXX,$<,$@) + +vpath %.S $(LIBRARY_SRC) +$(filter %.S.o,$(OBJS)): %.S.o: %.S $(GLOBAL_DEPS) + $(call ASSEMBLE,$<,$@) + +# +# Built product rules +# + +$(LIBRARY_LIB): $(OBJS) $(GLOBAL_DEPS) + $(call ARCHIVE,$@,$(OBJS)) + +endif + +# +# Utility rules +# + +clean: + $(Q) $(REMOVE) $(LIBRARY_LIB) $(OBJS) diff --git a/makefiles/module.mk b/makefiles/module.mk index db6f4e15ec..074cd159ae 100644 --- a/makefiles/module.mk +++ b/makefiles/module.mk @@ -35,7 +35,7 @@ # This makefile is invoked by firmware.mk to build each of the modules # that will subsequently be linked into the firmware image. # -# Applications are built as prelinked objects with a limited set of exported +# Modules are built as prelinked objects with a limited set of exported # symbols, as the global namespace is shared between all modules. Normally an # module will just export one or more _main functions. # @@ -183,30 +183,10 @@ CXXFLAGS += -fvisibility=$(DEFAULT_VISIBILITY) -include $(PX4_INCLUDE_DIR)visibi # module: $(MODULE_OBJ) $(MODULE_COMMAND_FILES) -## -## Locate sources (allows relative source paths in module.mk) -## -#define SRC_SEARCH -# $(abspath $(firstword $(wildcard $1) $(wildcard $(MODULE_SRC)/$1) MISSING_$1)) -#endef -# -#ABS_SRCS ?= $(foreach src,$(SRCS),$(call SRC_SEARCH,$(src))) -#MISSING_SRCS := $(subst MISSING_,,$(filter MISSING_%,$(ABS_SRCS))) -#ifneq ($(MISSING_SRCS),) -#$(error $(MODULE_MK): missing in SRCS: $(MISSING_SRCS)) -#endif -#ifeq ($(ABS_SRCS),) -#$(error $(MODULE_MK): nothing to compile in SRCS) -#endif -# ## ## Object files we will generate from sources ## -#OBJS := $(foreach src,$(ABS_SRCS),$(MODULE_WORK_DIR)$(src).o) - -OBJS = $(addsuffix .o,$(SRCS)) -$(info SRCS $(SRCS)) -$(info OBJS $(OBJS)) +OBJS = $(addsuffix .o,$(SRCS)) # # SRCS -> OBJS rules From 5576e321fa8cd027b15deeb15b7ca05541fde4fe Mon Sep 17 00:00:00 2001 From: px4dev Date: Mon, 20 May 2013 00:30:43 +0200 Subject: [PATCH 04/16] Use the new prebuilt-library support to wrap the ARM CMSIS DSP library, and update to the version shipped with CMSIS 3.0 r3p2 --- makefiles/config_px4fmu_default.mk | 8 +- .../Source/BasicMathFunctions/arm_abs_f32.c | 159 - .../Source/BasicMathFunctions/arm_abs_q15.c | 173 - .../Source/BasicMathFunctions/arm_abs_q31.c | 125 - .../Source/BasicMathFunctions/arm_abs_q7.c | 152 - .../Source/BasicMathFunctions/arm_add_f32.c | 145 - .../Source/BasicMathFunctions/arm_add_q15.c | 135 - .../Source/BasicMathFunctions/arm_add_q31.c | 143 - .../Source/BasicMathFunctions/arm_add_q7.c | 129 - .../BasicMathFunctions/arm_dot_prod_f32.c | 125 - .../BasicMathFunctions/arm_dot_prod_q15.c | 135 - .../BasicMathFunctions/arm_dot_prod_q31.c | 138 - .../BasicMathFunctions/arm_dot_prod_q7.c | 154 - .../Source/BasicMathFunctions/arm_mult_f32.c | 172 - .../Source/BasicMathFunctions/arm_mult_q15.c | 152 - .../Source/BasicMathFunctions/arm_mult_q31.c | 143 - .../Source/BasicMathFunctions/arm_mult_q7.c | 128 - .../BasicMathFunctions/arm_negate_f32.c | 137 - .../BasicMathFunctions/arm_negate_q15.c | 137 - .../BasicMathFunctions/arm_negate_q31.c | 124 - .../Source/BasicMathFunctions/arm_negate_q7.c | 120 - .../BasicMathFunctions/arm_offset_f32.c | 158 - .../BasicMathFunctions/arm_offset_q15.c | 131 - .../BasicMathFunctions/arm_offset_q31.c | 135 - .../Source/BasicMathFunctions/arm_offset_q7.c | 130 - .../Source/BasicMathFunctions/arm_scale_f32.c | 161 - .../Source/BasicMathFunctions/arm_scale_q15.c | 157 - .../Source/BasicMathFunctions/arm_scale_q31.c | 221 - .../Source/BasicMathFunctions/arm_scale_q7.c | 144 - .../Source/BasicMathFunctions/arm_shift_q15.c | 243 - .../Source/BasicMathFunctions/arm_shift_q31.c | 195 - .../Source/BasicMathFunctions/arm_shift_q7.c | 215 - .../Source/BasicMathFunctions/arm_sub_f32.c | 145 - .../Source/BasicMathFunctions/arm_sub_q15.c | 135 - .../Source/BasicMathFunctions/arm_sub_q31.c | 141 - .../Source/BasicMathFunctions/arm_sub_q7.c | 126 - .../Source/CommonTables/arm_common_tables.c | 4689 ----- .../ComplexMathFunctions/arm_cmplx_conj_f32.c | 174 - .../ComplexMathFunctions/arm_cmplx_conj_q15.c | 153 - .../ComplexMathFunctions/arm_cmplx_conj_q31.c | 172 - .../arm_cmplx_dot_prod_f32.c | 160 - .../arm_cmplx_dot_prod_q15.c | 144 - .../arm_cmplx_dot_prod_q31.c | 145 - .../ComplexMathFunctions/arm_cmplx_mag_f32.c | 157 - .../ComplexMathFunctions/arm_cmplx_mag_q15.c | 145 - .../ComplexMathFunctions/arm_cmplx_mag_q31.c | 177 - .../arm_cmplx_mag_squared_f32.c | 207 - .../arm_cmplx_mag_squared_q15.c | 140 - .../arm_cmplx_mag_squared_q31.c | 153 - .../arm_cmplx_mult_cmplx_f32.c | 199 - .../arm_cmplx_mult_cmplx_q15.c | 185 - .../arm_cmplx_mult_cmplx_q31.c | 318 - .../arm_cmplx_mult_real_f32.c | 217 - .../arm_cmplx_mult_real_q15.c | 195 - .../arm_cmplx_mult_real_q31.c | 215 - .../ControllerFunctions/arm_pid_init_f32.c | 79 - .../ControllerFunctions/arm_pid_init_q15.c | 114 - .../ControllerFunctions/arm_pid_init_q31.c | 99 - .../ControllerFunctions/arm_pid_reset_f32.c | 57 - .../ControllerFunctions/arm_pid_reset_q15.c | 56 - .../ControllerFunctions/arm_pid_reset_q31.c | 57 - .../ControllerFunctions/arm_sin_cos_f32.c | 428 - .../ControllerFunctions/arm_sin_cos_q31.c | 324 - .../Source/FastMathFunctions/arm_cos_f32.c | 280 - .../Source/FastMathFunctions/arm_cos_q15.c | 205 - .../Source/FastMathFunctions/arm_cos_q31.c | 239 - .../Source/FastMathFunctions/arm_sin_f32.c | 281 - .../Source/FastMathFunctions/arm_sin_q15.c | 208 - .../Source/FastMathFunctions/arm_sin_q31.c | 240 - .../Source/FastMathFunctions/arm_sqrt_q15.c | 131 - .../Source/FastMathFunctions/arm_sqrt_q31.c | 129 - .../arm_biquad_cascade_df1_32x64_init_q31.c | 105 - .../arm_biquad_cascade_df1_32x64_q31.c | 553 - .../arm_biquad_cascade_df1_f32.c | 421 - .../arm_biquad_cascade_df1_fast_q15.c | 283 - .../arm_biquad_cascade_df1_fast_q31.c | 275 - .../arm_biquad_cascade_df1_init_f32.c | 107 - .../arm_biquad_cascade_df1_init_q15.c | 109 - .../arm_biquad_cascade_df1_init_q31.c | 109 - .../arm_biquad_cascade_df1_q15.c | 408 - .../arm_biquad_cascade_df1_q31.c | 400 - .../arm_biquad_cascade_df2T_f32.c | 377 - .../arm_biquad_cascade_df2T_init_f32.c | 97 - .../Source/FilteringFunctions/arm_conv_f32.c | 646 - .../arm_conv_fast_opt_q15.c | 538 - .../FilteringFunctions/arm_conv_fast_q15.c | 1405 -- .../FilteringFunctions/arm_conv_fast_q31.c | 572 - .../FilteringFunctions/arm_conv_opt_q15.c | 544 - .../FilteringFunctions/arm_conv_opt_q7.c | 434 - .../FilteringFunctions/arm_conv_partial_f32.c | 661 - .../arm_conv_partial_fast_opt_q15.c | 763 - .../arm_conv_partial_fast_q15.c | 1473 -- .../arm_conv_partial_fast_q31.c | 599 - .../arm_conv_partial_opt_q15.c | 764 - .../arm_conv_partial_opt_q7.c | 806 - .../FilteringFunctions/arm_conv_partial_q15.c | 778 - .../FilteringFunctions/arm_conv_partial_q31.c | 599 - .../FilteringFunctions/arm_conv_partial_q7.c | 733 - .../Source/FilteringFunctions/arm_conv_q15.c | 733 - .../Source/FilteringFunctions/arm_conv_q31.c | 564 - .../Source/FilteringFunctions/arm_conv_q7.c | 689 - .../FilteringFunctions/arm_correlate_f32.c | 738 - .../arm_correlate_fast_opt_q15.c | 507 - .../arm_correlate_fast_q15.c | 1314 -- .../arm_correlate_fast_q31.c | 607 - .../arm_correlate_opt_q15.c | 512 - .../FilteringFunctions/arm_correlate_opt_q7.c | 463 - .../FilteringFunctions/arm_correlate_q15.c | 718 - .../FilteringFunctions/arm_correlate_q31.c | 664 - .../FilteringFunctions/arm_correlate_q7.c | 789 - .../FilteringFunctions/arm_fir_decimate_f32.c | 518 - .../arm_fir_decimate_fast_q15.c | 590 - .../arm_fir_decimate_fast_q31.c | 343 - .../arm_fir_decimate_init_f32.c | 112 - .../arm_fir_decimate_init_q15.c | 114 - .../arm_fir_decimate_init_q31.c | 112 - .../FilteringFunctions/arm_fir_decimate_q15.c | 691 - .../FilteringFunctions/arm_fir_decimate_q31.c | 306 - .../Source/FilteringFunctions/arm_fir_f32.c | 554 - .../FilteringFunctions/arm_fir_fast_q15.c | 341 - .../FilteringFunctions/arm_fir_fast_q31.c | 309 - .../FilteringFunctions/arm_fir_init_f32.c | 94 - .../FilteringFunctions/arm_fir_init_q15.c | 152 - .../FilteringFunctions/arm_fir_init_q31.c | 94 - .../FilteringFunctions/arm_fir_init_q7.c | 92 - .../arm_fir_interpolate_f32.c | 574 - .../arm_fir_interpolate_init_f32.c | 116 - .../arm_fir_interpolate_init_q15.c | 115 - .../arm_fir_interpolate_init_q31.c | 116 - .../arm_fir_interpolate_q15.c | 503 - .../arm_fir_interpolate_q31.c | 499 - .../FilteringFunctions/arm_fir_lattice_f32.c | 499 - .../arm_fir_lattice_init_f32.c | 78 - .../arm_fir_lattice_init_q15.c | 78 - .../arm_fir_lattice_init_q31.c | 78 - .../FilteringFunctions/arm_fir_lattice_q15.c | 531 - .../FilteringFunctions/arm_fir_lattice_q31.c | 348 - .../Source/FilteringFunctions/arm_fir_q15.c | 689 - .../Source/FilteringFunctions/arm_fir_q31.c | 363 - .../Source/FilteringFunctions/arm_fir_q7.c | 388 - .../FilteringFunctions/arm_fir_sparse_f32.c | 365 - .../arm_fir_sparse_init_f32.c | 102 - .../arm_fir_sparse_init_q15.c | 102 - .../arm_fir_sparse_init_q31.c | 101 - .../arm_fir_sparse_init_q7.c | 102 - .../FilteringFunctions/arm_fir_sparse_q15.c | 406 - .../FilteringFunctions/arm_fir_sparse_q31.c | 370 - .../FilteringFunctions/arm_fir_sparse_q7.c | 398 - .../FilteringFunctions/arm_iir_lattice_f32.c | 440 - .../arm_iir_lattice_init_f32.c | 86 - .../arm_iir_lattice_init_q15.c | 86 - .../arm_iir_lattice_init_q31.c | 86 - .../FilteringFunctions/arm_iir_lattice_q15.c | 457 - .../FilteringFunctions/arm_iir_lattice_q31.c | 345 - .../Source/FilteringFunctions/arm_lms_f32.c | 434 - .../FilteringFunctions/arm_lms_init_f32.c | 90 - .../FilteringFunctions/arm_lms_init_q15.c | 100 - .../FilteringFunctions/arm_lms_init_q31.c | 100 - .../FilteringFunctions/arm_lms_norm_f32.c | 456 - .../arm_lms_norm_init_f32.c | 100 - .../arm_lms_norm_init_q15.c | 107 - .../arm_lms_norm_init_q31.c | 106 - .../FilteringFunctions/arm_lms_norm_q15.c | 435 - .../FilteringFunctions/arm_lms_norm_q31.c | 426 - .../Source/FilteringFunctions/arm_lms_q15.c | 374 - .../Source/FilteringFunctions/arm_lms_q31.c | 364 - .../Source/MatrixFunctions/arm_mat_add_f32.c | 206 - .../Source/MatrixFunctions/arm_mat_add_q15.c | 161 - .../Source/MatrixFunctions/arm_mat_add_q31.c | 205 - .../Source/MatrixFunctions/arm_mat_init_f32.c | 86 - .../Source/MatrixFunctions/arm_mat_init_q15.c | 78 - .../Source/MatrixFunctions/arm_mat_init_q31.c | 82 - .../MatrixFunctions/arm_mat_inverse_f32.c | 668 - .../Source/MatrixFunctions/arm_mat_mult_f32.c | 284 - .../MatrixFunctions/arm_mat_mult_fast_q15.c | 361 - .../MatrixFunctions/arm_mat_mult_fast_q31.c | 218 - .../Source/MatrixFunctions/arm_mat_mult_q15.c | 467 - .../Source/MatrixFunctions/arm_mat_mult_q31.c | 292 - .../MatrixFunctions/arm_mat_scale_f32.c | 179 - .../MatrixFunctions/arm_mat_scale_q15.c | 181 - .../MatrixFunctions/arm_mat_scale_q31.c | 201 - .../Source/MatrixFunctions/arm_mat_sub_f32.c | 207 - .../Source/MatrixFunctions/arm_mat_sub_q15.c | 158 - .../Source/MatrixFunctions/arm_mat_sub_q31.c | 206 - .../MatrixFunctions/arm_mat_trans_f32.c | 216 - .../MatrixFunctions/arm_mat_trans_q15.c | 282 - .../MatrixFunctions/arm_mat_trans_q31.c | 208 - .../Source/StatisticsFunctions/arm_max_f32.c | 178 - .../Source/StatisticsFunctions/arm_max_q15.c | 168 - .../Source/StatisticsFunctions/arm_max_q31.c | 169 - .../Source/StatisticsFunctions/arm_max_q7.c | 169 - .../Source/StatisticsFunctions/arm_mean_f32.c | 131 - .../Source/StatisticsFunctions/arm_mean_q15.c | 125 - .../Source/StatisticsFunctions/arm_mean_q31.c | 128 - .../Source/StatisticsFunctions/arm_mean_q7.c | 125 - .../Source/StatisticsFunctions/arm_min_f32.c | 175 - .../Source/StatisticsFunctions/arm_min_q15.c | 169 - .../Source/StatisticsFunctions/arm_min_q31.c | 168 - .../Source/StatisticsFunctions/arm_min_q7.c | 170 - .../StatisticsFunctions/arm_power_f32.c | 138 - .../StatisticsFunctions/arm_power_q15.c | 144 - .../StatisticsFunctions/arm_power_q31.c | 135 - .../Source/StatisticsFunctions/arm_power_q7.c | 133 - .../Source/StatisticsFunctions/arm_rms_f32.c | 133 - .../Source/StatisticsFunctions/arm_rms_q15.c | 153 - .../Source/StatisticsFunctions/arm_rms_q31.c | 146 - .../Source/StatisticsFunctions/arm_std_f32.c | 188 - .../Source/StatisticsFunctions/arm_std_q15.c | 197 - .../Source/StatisticsFunctions/arm_std_q31.c | 184 - .../Source/StatisticsFunctions/arm_var_f32.c | 184 - .../Source/StatisticsFunctions/arm_var_q15.c | 180 - .../Source/StatisticsFunctions/arm_var_q31.c | 170 - .../Source/SupportFunctions/arm_copy_f32.c | 130 - .../Source/SupportFunctions/arm_copy_q15.c | 109 - .../Source/SupportFunctions/arm_copy_q31.c | 118 - .../Source/SupportFunctions/arm_copy_q7.c | 110 - .../Source/SupportFunctions/arm_fill_f32.c | 129 - .../Source/SupportFunctions/arm_fill_q15.c | 115 - .../Source/SupportFunctions/arm_fill_q31.c | 116 - .../Source/SupportFunctions/arm_fill_q7.c | 113 - .../SupportFunctions/arm_float_to_q15.c | 196 - .../SupportFunctions/arm_float_to_q31.c | 203 - .../Source/SupportFunctions/arm_float_to_q7.c | 195 - .../SupportFunctions/arm_q15_to_float.c | 126 - .../Source/SupportFunctions/arm_q15_to_q31.c | 148 - .../Source/SupportFunctions/arm_q15_to_q7.c | 146 - .../SupportFunctions/arm_q31_to_float.c | 123 - .../Source/SupportFunctions/arm_q31_to_q15.c | 137 - .../Source/SupportFunctions/arm_q31_to_q7.c | 128 - .../Source/SupportFunctions/arm_q7_to_float.c | 123 - .../Source/SupportFunctions/arm_q7_to_q15.c | 149 - .../Source/SupportFunctions/arm_q7_to_q31.c | 134 - .../TransformFunctions/arm_bitreversal.c | 222 - .../TransformFunctions/arm_cfft_radix2_f32.c | 511 - .../arm_cfft_radix2_init_f32.c | 198 - .../arm_cfft_radix2_init_q15.c | 186 - .../arm_cfft_radix2_init_q31.c | 164 - .../TransformFunctions/arm_cfft_radix2_q15.c | 712 - .../TransformFunctions/arm_cfft_radix2_q31.c | 310 - .../TransformFunctions/arm_cfft_radix4_f32.c | 1236 -- .../arm_cfft_radix4_init_f32.c | 161 - .../arm_cfft_radix4_init_q15.c | 149 - .../arm_cfft_radix4_init_q31.c | 145 - .../TransformFunctions/arm_cfft_radix4_q15.c | 1896 -- .../TransformFunctions/arm_cfft_radix4_q31.c | 891 - .../Source/TransformFunctions/arm_dct4_f32.c | 453 - .../TransformFunctions/arm_dct4_init_f32.c | 16511 ---------------- .../TransformFunctions/arm_dct4_init_q15.c | 4276 ---- .../TransformFunctions/arm_dct4_init_q31.c | 8356 -------- .../Source/TransformFunctions/arm_dct4_q15.c | 386 - .../Source/TransformFunctions/arm_dct4_q31.c | 387 - .../Source/TransformFunctions/arm_rfft_f32.c | 382 - .../TransformFunctions/arm_rfft_init_f32.c | 8369 -------- .../TransformFunctions/arm_rfft_init_q15.c | 2229 --- .../TransformFunctions/arm_rfft_init_q31.c | 4274 ---- .../Source/TransformFunctions/arm_rfft_q15.c | 460 - .../Source/TransformFunctions/arm_rfft_q31.c | 326 - .../mathlib/CMSIS/Include/arm_common_tables.h | 97 +- .../mathlib/CMSIS/Include/arm_const_structs.h | 85 + src/modules/mathlib/CMSIS/Include/arm_math.h | 1467 +- src/modules/mathlib/CMSIS/Include/core_cm3.h | 57 +- src/modules/mathlib/CMSIS/Include/core_cm4.h | 57 +- .../mathlib/CMSIS/Include/core_cm4_simd.h | 54 +- .../mathlib/CMSIS/Include/core_cmFunc.h | 72 +- .../mathlib/CMSIS/Include/core_cmInstr.h | 134 +- .../mathlib/CMSIS/{module.mk => library.mk} | 34 +- src/modules/mathlib/CMSIS/license.txt | 27 + 267 files changed, 1071 insertions(+), 120792 deletions(-) delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/CommonTables/arm_common_tables.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_opt_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_float.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_float.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q7.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_float.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_bitreversal.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_f32.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q15.c delete mode 100644 src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q31.c create mode 100644 src/modules/mathlib/CMSIS/Include/arm_const_structs.h rename src/modules/mathlib/CMSIS/{module.mk => library.mk} (69%) create mode 100644 src/modules/mathlib/CMSIS/license.txt diff --git a/makefiles/config_px4fmu_default.mk b/makefiles/config_px4fmu_default.mk index ae62b70347..1e4d592665 100644 --- a/makefiles/config_px4fmu_default.mk +++ b/makefiles/config_px4fmu_default.mk @@ -80,15 +80,19 @@ MODULES += modules/multirotor_pos_control MODULES += modules/sdlog # -# Libraries +# Library modules # MODULES += modules/systemlib MODULES += modules/systemlib/mixer MODULES += modules/mathlib -MODULES += modules/mathlib/CMSIS MODULES += modules/controllib MODULES += modules/uORB +# +# Libraries +# +LIBRARIES += modules/mathlib/CMSIS + # # Demo apps # diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_f32.c deleted file mode 100644 index 7070274da2..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_f32.c +++ /dev/null @@ -1,159 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_abs_f32.c -* -* Description: Vector absolute value. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" -#include - -/** - * @ingroup groupMath - */ - -/** - * @defgroup BasicAbs Vector Absolute Value - * - * Computes the absolute value of a vector on an element-by-element basis. - * - *
        
- *     pDst[n] = abs(pSrcA[n]),   0 <= n < blockSize.        
- * 
- * - * The operation can be done in-place by setting the input and output pointers to the same buffer. - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup BasicAbs - * @{ - */ - -/** - * @brief Floating-point vector absolute value. - * @param[in] *pSrc points to the input buffer - * @param[out] *pDst points to the output buffer - * @param[in] blockSize number of samples in each vector - * @return none. - */ - -void arm_abs_f32( - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; /* temporary variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = |A| */ - /* Calculate absolute and then store the results in the destination buffer. */ - /* read sample from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - - /* find absolute value */ - in1 = fabsf(in1); - - /* read sample from source */ - in4 = *(pSrc + 3); - - /* find absolute value */ - in2 = fabsf(in2); - - /* read sample from source */ - *pDst = in1; - - /* find absolute value */ - in3 = fabsf(in3); - - /* find absolute value */ - in4 = fabsf(in4); - - /* store result to destination */ - *(pDst + 1) = in2; - - /* store result to destination */ - *(pDst + 2) = in3; - - /* store result to destination */ - *(pDst + 3) = in4; - - - /* Update source pointer to process next sampels */ - pSrc += 4u; - - /* Update destination pointer to process next sampels */ - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = |A| */ - /* Calculate absolute and then store the results in the destination buffer. */ - *pDst++ = fabsf(*pSrc++); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicAbs group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q15.c deleted file mode 100644 index 6d6a4b6d80..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q15.c +++ /dev/null @@ -1,173 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_abs_q15.c -* -* Description: Q15 vector absolute value. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAbs - * @{ - */ - -/** - * @brief Q15 vector absolute value. - * @param[in] *pSrc points to the input buffer - * @param[out] *pDst points to the output buffer - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q15 value -1 (0x8000) will be saturated to the maximum allowable positive value 0x7FFF. - */ - -void arm_abs_q15( - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t in1; /* Input value1 */ - q15_t in2; /* Input value2 */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = |A| */ - /* Read two inputs */ - in1 = *pSrc++; - in2 = *pSrc++; - - - /* Store the Absolute result in the destination buffer by packing the two values, in a single cycle */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = - __PKHBT(((in1 > 0) ? in1 : __QSUB16(0, in1)), - ((in2 > 0) ? in2 : __QSUB16(0, in2)), 16); - -#else - - - *__SIMD32(pDst)++ = - __PKHBT(((in2 > 0) ? in2 : __QSUB16(0, in2)), - ((in1 > 0) ? in1 : __QSUB16(0, in1)), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - in1 = *pSrc++; - in2 = *pSrc++; - - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = - __PKHBT(((in1 > 0) ? in1 : __QSUB16(0, in1)), - ((in2 > 0) ? in2 : __QSUB16(0, in2)), 16); - -#else - - - *__SIMD32(pDst)++ = - __PKHBT(((in2 > 0) ? in2 : __QSUB16(0, in2)), - ((in1 > 0) ? in1 : __QSUB16(0, in1)), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = |A| */ - /* Read the input */ - in1 = *pSrc++; - - /* Calculate absolute value of input and then store the result in the destination buffer. */ - *pDst++ = (in1 > 0) ? in1 : __QSUB16(0, in1); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t in; /* Temporary input variable */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = |A| */ - /* Read the input */ - in = *pSrc++; - - /* Calculate absolute value of input and then store the result in the destination buffer. */ - *pDst++ = (in > 0) ? in : ((in == (q15_t) 0x8000) ? 0x7fff : -in); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of BasicAbs group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q31.c deleted file mode 100644 index d9e3e7aa3c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q31.c +++ /dev/null @@ -1,125 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_abs_q31.c -* -* Description: Q31 vector absolute value. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAbs - * @{ - */ - - -/** - * @brief Q31 vector absolute value. - * @param[in] *pSrc points to the input buffer - * @param[out] *pDst points to the output buffer - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q31 value -1 (0x80000000) will be saturated to the maximum allowable positive value 0x7FFFFFFF. - */ - -void arm_abs_q31( - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - q31_t in; /* Input value */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = |A| */ - /* Calculate absolute of input (if -1 then saturated to 0x7fffffff) and then store the results in the destination buffer. */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = (in1 > 0) ? in1 : __QSUB(0, in1); - *pDst++ = (in2 > 0) ? in2 : __QSUB(0, in2); - *pDst++ = (in3 > 0) ? in3 : __QSUB(0, in3); - *pDst++ = (in4 > 0) ? in4 : __QSUB(0, in4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = |A| */ - /* Calculate absolute value of the input (if -1 then saturated to 0x7fffffff) and then store the results in the destination buffer. */ - in = *pSrc++; - *pDst++ = (in > 0) ? in : ((in == 0x80000000) ? 0x7fffffff : -in); - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of BasicAbs group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q7.c deleted file mode 100644 index 258ecef2c8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_abs_q7.c +++ /dev/null @@ -1,152 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_abs_q7.c -* -* Description: Q7 vector absolute value. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAbs - * @{ - */ - -/** - * @brief Q7 vector absolute value. - * @param[in] *pSrc points to the input buffer - * @param[out] *pDst points to the output buffer - * @param[in] blockSize number of samples in each vector - * @return none. - * - * \par Conditions for optimum performance - * Input and output buffers should be aligned by 32-bit - * - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q7 value -1 (0x80) will be saturated to the maximum allowable positive value 0x7F. - */ - -void arm_abs_q7( - q7_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - q7_t in; /* Input value1 */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; /* temporary input variables */ - q31_t out1, out2, out3, out4; /* temporary output variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = |A| */ - /* Read inputs */ - in1 = (q31_t) * pSrc; - in2 = (q31_t) * (pSrc + 1); - in3 = (q31_t) * (pSrc + 2); - - /* find absolute value */ - out1 = (in1 > 0) ? in1 : __QSUB8(0, in1); - - /* read input */ - in4 = (q31_t) * (pSrc + 3); - - /* find absolute value */ - out2 = (in2 > 0) ? in2 : __QSUB8(0, in2); - - /* store result to destination */ - *pDst = (q7_t) out1; - - /* find absolute value */ - out3 = (in3 > 0) ? in3 : __QSUB8(0, in3); - - /* find absolute value */ - out4 = (in4 > 0) ? in4 : __QSUB8(0, in4); - - /* store result to destination */ - *(pDst + 1) = (q7_t) out2; - - /* store result to destination */ - *(pDst + 2) = (q7_t) out3; - - /* store result to destination */ - *(pDst + 3) = (q7_t) out4; - - /* update pointers to process next samples */ - pSrc += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; -#else - - /* Run the below code for Cortex-M0 */ - blkCnt = blockSize; - -#endif // #define ARM_MATH_CM0 - - while(blkCnt > 0u) - { - /* C = |A| */ - /* Read the input */ - in = *pSrc++; - - /* Store the Absolute result in the destination buffer */ - *pDst++ = (in > 0) ? in : ((in == (q7_t) 0x80) ? 0x7f : -in); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicAbs group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_f32.c deleted file mode 100644 index 0961dd1db3..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_f32.c +++ /dev/null @@ -1,145 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_add_f32.c -* -* Description: Floating-point vector addition. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup BasicAdd Vector Addition - * - * Element-by-element addition of two vectors. - * - *
        
- *     pDst[n] = pSrcA[n] + pSrcB[n],   0 <= n < blockSize.        
- * 
- * - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup BasicAdd - * @{ - */ - -/** - * @brief Floating-point vector addition. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - */ - -void arm_add_f32( - float32_t * pSrcA, - float32_t * pSrcB, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t inA1, inA2, inA3, inA4; /* temporary input variabels */ - float32_t inB1, inB2, inB3, inB4; /* temporary input variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - - /* read four inputs from sourceA and four inputs from sourceB */ - inA1 = *pSrcA; - inB1 = *pSrcB; - inA2 = *(pSrcA + 1); - inB2 = *(pSrcB + 1); - inA3 = *(pSrcA + 2); - inB3 = *(pSrcB + 2); - inA4 = *(pSrcA + 3); - inB4 = *(pSrcB + 3); - - /* C = A + B */ - /* add and store result to destination */ - *pDst = inA1 + inB1; - *(pDst + 1) = inA2 + inB2; - *(pDst + 2) = inA3 + inB3; - *(pDst + 3) = inA4 + inB4; - - /* update pointers to process next samples */ - pSrcA += 4u; - pSrcB += 4u; - pDst += 4u; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (*pSrcA++) + (*pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicAdd group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q15.c deleted file mode 100644 index 788b2ebb2c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q15.c +++ /dev/null @@ -1,135 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_add_q15.c -* -* Description: Q15 vector addition -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAdd - * @{ - */ - -/** - * @brief Q15 vector addition. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -void arm_add_q15( - q15_t * pSrcA, - q15_t * pSrcB, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inB1, inB2; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - inA1 = *__SIMD32(pSrcA)++; - inA2 = *__SIMD32(pSrcA)++; - inB1 = *__SIMD32(pSrcB)++; - inB2 = *__SIMD32(pSrcB)++; - - *__SIMD32(pDst)++ = __QADD16(inA1, inB1); - *__SIMD32(pDst)++ = __QADD16(inA2, inB2); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q15_t) __QADD16(*pSrcA++, *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q15_t) __SSAT(((q31_t) * pSrcA++ + *pSrcB++), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - -} - -/** - * @} end of BasicAdd group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q31.c deleted file mode 100644 index c5b18711d4..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q31.c +++ /dev/null @@ -1,143 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_add_q31.c -* -* Description: Q31 vector addition. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAdd - * @{ - */ - - -/** - * @brief Q31 vector addition. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] will be saturated. - */ - -void arm_add_q31( - q31_t * pSrcA, - q31_t * pSrcB, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inA3, inA4; - q31_t inB1, inB2, inB3, inB4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - inA1 = *pSrcA++; - inA2 = *pSrcA++; - inB1 = *pSrcB++; - inB2 = *pSrcB++; - - inA3 = *pSrcA++; - inA4 = *pSrcA++; - inB3 = *pSrcB++; - inB4 = *pSrcB++; - - *pDst++ = __QADD(inA1, inB1); - *pDst++ = __QADD(inA2, inB2); - *pDst++ = __QADD(inA3, inB3); - *pDst++ = __QADD(inA4, inB4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = __QADD(*pSrcA++, *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q31_t) clip_q63_to_q31((q63_t) * pSrcA++ + *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of BasicAdd group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q7.c deleted file mode 100644 index 5407c006fb..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_add_q7.c +++ /dev/null @@ -1,129 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_add_q7.c -* -* Description: Q7 vector addition. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAdd - * @{ - */ - -/** - * @brief Q7 vector addition. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. - */ - -void arm_add_q7( - q7_t * pSrcA, - q7_t * pSrcB, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *__SIMD32(pDst)++ = __QADD8(*__SIMD32(pSrcA)++, *__SIMD32(pSrcB)++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q7_t) __SSAT(*pSrcA++ + *pSrcB++, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q7_t) __SSAT((q15_t) * pSrcA++ + *pSrcB++, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - -} - -/** - * @} end of BasicAdd group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_f32.c deleted file mode 100644 index 6f7fbcebf2..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_f32.c +++ /dev/null @@ -1,125 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dot_prod_f32.c -* -* Description: Floating-point dot product. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup dot_prod Vector Dot Product - * - * Computes the dot product of two vectors. - * The vectors are multiplied element-by-element and then summed. - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup dot_prod - * @{ - */ - -/** - * @brief Dot product of floating-point vectors. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[in] blockSize number of samples in each vector - * @param[out] *result output result returned here - * @return none. - */ - - -void arm_dot_prod_f32( - float32_t * pSrcA, - float32_t * pSrcB, - uint32_t blockSize, - float32_t * result) -{ - float32_t sum = 0.0f; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer */ - sum += (*pSrcA++) * (*pSrcB++); - sum += (*pSrcA++) * (*pSrcB++); - sum += (*pSrcA++) * (*pSrcB++); - sum += (*pSrcA++) * (*pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer. */ - sum += (*pSrcA++) * (*pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - /* Store the result back in the destination buffer */ - *result = sum; -} - -/** - * @} end of dot_prod group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q15.c deleted file mode 100644 index 24611a05f5..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q15.c +++ /dev/null @@ -1,135 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dot_prod_q15.c -* -* Description: Q15 dot product. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup dot_prod - * @{ - */ - -/** - * @brief Dot product of Q15 vectors. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[in] blockSize number of samples in each vector - * @param[out] *result output result returned here - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The intermediate multiplications are in 1.15 x 1.15 = 2.30 format and these - * results are added to a 64-bit accumulator in 34.30 format. - * Nonsaturating additions are used and given that there are 33 guard bits in the accumulator - * there is no risk of overflow. - * The return result is in 34.30 format. - */ - -void arm_dot_prod_q15( - q15_t * pSrcA, - q15_t * pSrcB, - uint32_t blockSize, - q63_t * result) -{ - q63_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer. */ - sum = __SMLALD(*__SIMD32(pSrcA)++, *__SIMD32(pSrcB)++, sum); - sum = __SMLALD(*__SIMD32(pSrcA)++, *__SIMD32(pSrcB)++, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the results in a temporary buffer. */ - sum = __SMLALD(*pSrcA++, *pSrcB++, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the results in a temporary buffer. */ - sum += (q63_t) ((q31_t) * pSrcA++ * *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - /* Store the result in the destination buffer in 34.30 format */ - *result = sum; - -} - -/** - * @} end of dot_prod group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q31.c deleted file mode 100644 index 5e4031338c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q31.c +++ /dev/null @@ -1,138 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dot_prod_q31.c -* -* Description: Q31 dot product. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup dot_prod - * @{ - */ - -/** - * @brief Dot product of Q31 vectors. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[in] blockSize number of samples in each vector - * @param[out] *result output result returned here - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The intermediate multiplications are in 1.31 x 1.31 = 2.62 format and these - * are truncated to 2.48 format by discarding the lower 14 bits. - * The 2.48 result is then added without saturation to a 64-bit accumulator in 16.48 format. - * There are 15 guard bits in the accumulator and there is no risk of overflow as long as - * the length of the vectors is less than 2^16 elements. - * The return result is in 16.48 format. - */ - -void arm_dot_prod_q31( - q31_t * pSrcA, - q31_t * pSrcB, - uint32_t blockSize, - q63_t * result) -{ - q63_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inA3, inA4; - q31_t inB1, inB2, inB3, inB4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer. */ - inA1 = *pSrcA++; - inA2 = *pSrcA++; - inA3 = *pSrcA++; - inA4 = *pSrcA++; - inB1 = *pSrcB++; - inB2 = *pSrcB++; - inB3 = *pSrcB++; - inB4 = *pSrcB++; - - sum += ((q63_t) inA1 * inB1) >> 14u; - sum += ((q63_t) inA2 * inB2) >> 14u; - sum += ((q63_t) inA3 * inB3) >> 14u; - sum += ((q63_t) inA4 * inB4) >> 14u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer. */ - sum += ((q63_t) * pSrcA++ * *pSrcB++) >> 14u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the result in the destination buffer in 16.48 format */ - *result = sum; -} - -/** - * @} end of dot_prod group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q7.c deleted file mode 100644 index ddf2d0c243..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q7.c +++ /dev/null @@ -1,154 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dot_prod_q7.c -* -* Description: Q7 dot product. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup dot_prod - * @{ - */ - -/** - * @brief Dot product of Q7 vectors. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[in] blockSize number of samples in each vector - * @param[out] *result output result returned here - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The intermediate multiplications are in 1.7 x 1.7 = 2.14 format and these - * results are added to an accumulator in 18.14 format. - * Nonsaturating additions are used and there is no danger of wrap around as long as - * the vectors are less than 2^18 elements long. - * The return result is in 18.14 format. - */ - -void arm_dot_prod_q7( - q7_t * pSrcA, - q7_t * pSrcB, - uint32_t blockSize, - q31_t * result) -{ - uint32_t blkCnt; /* loop counter */ - - q31_t sum = 0; /* Temporary variables to store output */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t input1, input2; /* Temporary variables to store input */ - q31_t inA1, inA2, inB1, inB2; /* Temporary variables to store input */ - - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* read 4 samples at a time from sourceA */ - input1 = *__SIMD32(pSrcA)++; - /* read 4 samples at a time from sourceB */ - input2 = *__SIMD32(pSrcB)++; - - /* extract two q7_t samples to q15_t samples */ - inA1 = __SXTB16(__ROR(input1, 8)); - /* extract reminaing two samples */ - inA2 = __SXTB16(input1); - /* extract two q7_t samples to q15_t samples */ - inB1 = __SXTB16(__ROR(input2, 8)); - /* extract reminaing two samples */ - inB2 = __SXTB16(input2); - - /* multiply and accumulate two samples at a time */ - sum = __SMLAD(inA1, inB1, sum); - sum = __SMLAD(inA2, inB2, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Dot product and then store the results in a temporary buffer. */ - sum = __SMLAD(*pSrcA++, *pSrcB++, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Dot product and then store the results in a temporary buffer. */ - sum += (q31_t) ((q15_t) * pSrcA++ * *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - - /* Store the result in the destination buffer in 18.14 format */ - *result = sum; -} - -/** - * @} end of dot_prod group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_f32.c deleted file mode 100644 index 88a458b40a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_f32.c +++ /dev/null @@ -1,172 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mult_f32.c -* -* Description: Floating-point vector multiplication. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup BasicMult Vector Multiplication - * - * Element-by-element multiplication of two vectors. - * - *
        
- *     pDst[n] = pSrcA[n] * pSrcB[n],   0 <= n < blockSize.        
- * 
- * - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup BasicMult - * @{ - */ - -/** - * @brief Floating-point vector multiplication. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - */ - -void arm_mult_f32( - float32_t * pSrcA, - float32_t * pSrcB, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counters */ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t inA1, inA2, inA3, inA4; /* temporary input variables */ - float32_t inB1, inB2, inB3, inB4; /* temporary input variables */ - float32_t out1, out2, out3, out4; /* temporary output variables */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A * B */ - /* Multiply the inputs and store the results in output buffer */ - /* read sample from sourceA */ - inA1 = *pSrcA; - /* read sample from sourceB */ - inB1 = *pSrcB; - /* read sample from sourceA */ - inA2 = *(pSrcA + 1); - /* read sample from sourceB */ - inB2 = *(pSrcB + 1); - - /* out = sourceA * sourceB */ - out1 = inA1 * inB1; - - /* read sample from sourceA */ - inA3 = *(pSrcA + 2); - /* read sample from sourceB */ - inB3 = *(pSrcB + 2); - - /* out = sourceA * sourceB */ - out2 = inA2 * inB2; - - /* read sample from sourceA */ - inA4 = *(pSrcA + 3); - - /* store result to destination buffer */ - *pDst = out1; - - /* read sample from sourceB */ - inB4 = *(pSrcB + 3); - - /* out = sourceA * sourceB */ - out3 = inA3 * inB3; - - /* store result to destination buffer */ - *(pDst + 1) = out2; - - /* out = sourceA * sourceB */ - out4 = inA4 * inB4; - /* store result to destination buffer */ - *(pDst + 2) = out3; - /* store result to destination buffer */ - *(pDst + 3) = out4; - - - /* update pointers to process next samples */ - pSrcA += 4u; - pSrcB += 4u; - pDst += 4u; - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A * B */ - /* Multiply the inputs and store the results in output buffer */ - *pDst++ = (*pSrcA++) * (*pSrcB++); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q15.c deleted file mode 100644 index 99d44a4ba3..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q15.c +++ /dev/null @@ -1,152 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mult_q15.c -* -* Description: Q15 vector multiplication. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicMult - * @{ - */ - - -/** - * @brief Q15 vector multiplication - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -void arm_mult_q15( - q15_t * pSrcA, - q15_t * pSrcB, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counters */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inB1, inB2; /* temporary input variables */ - q15_t out1, out2, out3, out4; /* temporary output variables */ - q31_t mul1, mul2, mul3, mul4; /* temporary variables */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* read two samples at a time from sourceA */ - inA1 = *__SIMD32(pSrcA)++; - /* read two samples at a time from sourceB */ - inB1 = *__SIMD32(pSrcB)++; - /* read two samples at a time from sourceA */ - inA2 = *__SIMD32(pSrcA)++; - /* read two samples at a time from sourceB */ - inB2 = *__SIMD32(pSrcB)++; - - /* multiply mul = sourceA * sourceB */ - mul1 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1 >> 16)); - mul2 = (q31_t) ((q15_t) inA1 * (q15_t) inB1); - mul3 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) (inB2 >> 16)); - mul4 = (q31_t) ((q15_t) inA2 * (q15_t) inB2); - - /* saturate result to 16 bit */ - out1 = (q15_t) __SSAT(mul1 >> 15, 16); - out2 = (q15_t) __SSAT(mul2 >> 15, 16); - out3 = (q15_t) __SSAT(mul3 >> 15, 16); - out4 = (q15_t) __SSAT(mul4 >> 15, 16); - - /* store the result */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT(out2, out1, 16); - *__SIMD32(pDst)++ = __PKHBT(out4, out3, 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT(out2, out1, 16); - *__SIMD32(pDst)++ = __PKHBT(out4, out3, 16); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = A * B */ - /* Multiply the inputs and store the result in the destination buffer */ - *pDst++ = (q15_t) __SSAT((((q31_t) (*pSrcA++) * (*pSrcB++)) >> 15), 16); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q31.c deleted file mode 100644 index 37ec8e25e1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q31.c +++ /dev/null @@ -1,143 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mult_q31.c -* -* Description: Q31 vector multiplication. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicMult - * @{ - */ - -/** - * @brief Q31 vector multiplication. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] will be saturated. - */ - -void arm_mult_q31( - q31_t * pSrcA, - q31_t * pSrcB, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counters */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inA3, inA4; /* temporary input variables */ - q31_t inB1, inB2, inB3, inB4; /* temporary input variables */ - q31_t out1, out2, out3, out4; /* temporary output variables */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A * B */ - /* Multiply the inputs and then store the results in the destination buffer. */ - inA1 = *pSrcA++; - inA2 = *pSrcA++; - inA3 = *pSrcA++; - inA4 = *pSrcA++; - inB1 = *pSrcB++; - inB2 = *pSrcB++; - inB3 = *pSrcB++; - inB4 = *pSrcB++; - - out1 = ((q63_t) inA1 * inB1) >> 32; - out2 = ((q63_t) inA2 * inB2) >> 32; - out3 = ((q63_t) inA3 * inB3) >> 32; - out4 = ((q63_t) inA4 * inB4) >> 32; - - out1 = __SSAT(out1, 31); - out2 = __SSAT(out2, 31); - out3 = __SSAT(out3, 31); - out4 = __SSAT(out4, 31); - - *pDst++ = out1 << 1u; - *pDst++ = out2 << 1u; - *pDst++ = out3 << 1u; - *pDst++ = out4 << 1u; - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A * B */ - /* Multiply the inputs and then store the results in the destination buffer. */ - *pDst++ = - (q31_t) clip_q63_to_q31(((q63_t) (*pSrcA++) * (*pSrcB++)) >> 31); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q7.c deleted file mode 100644 index 14ee23ea6a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_mult_q7.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mult_q7.c -* -* Description: Q7 vector multiplication. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 DP -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicMult - * @{ - */ - -/** - * @brief Q7 vector multiplication - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. - */ - -void arm_mult_q7( - q7_t * pSrcA, - q7_t * pSrcB, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counters */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q7_t out1, out2, out3, out4; /* Temporary variables to store the product */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A * B */ - /* Multiply the inputs and store the results in temporary variables */ - out1 = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - out2 = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - out3 = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - out4 = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - - /* Store the results of 4 inputs in the destination buffer in single cycle by packing */ - *__SIMD32(pDst)++ = __PACKq7(out1, out2, out3, out4); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = A * B */ - /* Multiply the inputs and store the result in the destination buffer */ - *pDst++ = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_f32.c deleted file mode 100644 index 4f4d423ac9..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_f32.c +++ /dev/null @@ -1,137 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_negate_f32.c -* -* Description: Negates floating-point vectors. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup negate Vector Negate - * - * Negates the elements of a vector. - * - *
        
- *     pDst[n] = -pSrc[n],   0 <= n < blockSize.        
- * 
- */ - -/** - * @addtogroup negate - * @{ - */ - -/** - * @brief Negates the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - */ - -void arm_negate_f32( - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; /* temporary variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* read inputs from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* negate the input */ - in1 = -in1; - in2 = -in2; - in3 = -in3; - in4 = -in4; - - /* store the result to destination */ - *pDst = in1; - *(pDst + 1) = in2; - *(pDst + 2) = in3; - *(pDst + 3) = in4; - - /* update pointers to process next samples */ - pSrc += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = -A */ - /* Negate and then store the results in the destination buffer. */ - *pDst++ = -*pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of negate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q15.c deleted file mode 100644 index 21d58d1a4a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q15.c +++ /dev/null @@ -1,137 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_negate_q15.c -* -* Description: Negates Q15 vectors. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup negate - * @{ - */ - -/** - * @brief Negates the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * \par Conditions for optimum performance - * Input and output buffers should be aligned by 32-bit - * - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q15 value -1 (0x8000) will be saturated to the maximum allowable positive value 0x7FFF. - */ - -void arm_negate_q15( - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - q15_t in; - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2; /* Temporary variables */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = -A */ - /* Read two inputs at a time */ - in1 = _SIMD32_OFFSET(pSrc); - in2 = _SIMD32_OFFSET(pSrc + 2); - - /* negate two samples at a time */ - in1 = __QSUB16(0, in1); - - /* negate two samples at a time */ - in2 = __QSUB16(0, in2); - - /* store the result to destination 2 samples at a time */ - _SIMD32_OFFSET(pDst) = in1; - /* store the result to destination 2 samples at a time */ - _SIMD32_OFFSET(pDst + 2) = in2; - - - /* update pointers to process next samples */ - pSrc += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = -A */ - /* Negate and then store the result in the destination buffer. */ - in = *pSrc++; - *pDst++ = (in == (q15_t) 0x8000) ? 0x7fff : -in; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of negate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q31.c deleted file mode 100644 index fc28c36218..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q31.c +++ /dev/null @@ -1,124 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_negate_q31.c -* -* Description: Negates Q31 vectors. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup negate - * @{ - */ - -/** - * @brief Negates the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q31 value -1 (0x80000000) will be saturated to the maximum allowable positive value 0x7FFFFFFF. - */ - -void arm_negate_q31( - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t in; /* Temporary variable */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = -A */ - /* Negate and then store the results in the destination buffer. */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = __QSUB(0, in1); - *pDst++ = __QSUB(0, in2); - *pDst++ = __QSUB(0, in3); - *pDst++ = __QSUB(0, in4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = -A */ - /* Negate and then store the result in the destination buffer. */ - in = *pSrc++; - *pDst++ = (in == 0x80000000) ? 0x7fffffff : -in; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of negate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q7.c deleted file mode 100644 index 601fb73934..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_negate_q7.c +++ /dev/null @@ -1,120 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_negate_q7.c -* -* Description: Negates Q7 vectors. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup negate - * @{ - */ - -/** - * @brief Negates the elements of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q7 value -1 (0x80) will be saturated to the maximum allowable positive value 0x7F. - */ - -void arm_negate_q7( - q7_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - q7_t in; - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t input; /* Input values1-4 */ - q31_t zero = 0x00000000; - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = -A */ - /* Read four inputs */ - input = *__SIMD32(pSrc)++; - - /* Store the Negated results in the destination buffer in a single cycle by packing the results */ - *__SIMD32(pDst)++ = __QSUB8(zero, input); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = -A */ - /* Negate and then store the results in the destination buffer. */ \ - in = *pSrc++; - *pDst++ = (in == (q7_t) 0x80) ? 0x7f : -in; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of negate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_f32.c deleted file mode 100644 index 4bdf06ee8d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_f32.c +++ /dev/null @@ -1,158 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_offset_f32.c -* -* Description: Floating-point vector offset. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup offset Vector Offset - * - * Adds a constant offset to each element of a vector. - * - *
        
- *     pDst[n] = pSrc[n] + offset,   0 <= n < blockSize.        
- * 
- * - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup offset - * @{ - */ - -/** - * @brief Adds a constant offset to a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] offset is the offset to be added - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - */ - - -void arm_offset_f32( - float32_t * pSrc, - float32_t offset, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer. */ - /* read samples from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - - /* add offset to input */ - in1 = in1 + offset; - - /* read samples from source */ - in3 = *(pSrc + 2); - - /* add offset to input */ - in2 = in2 + offset; - - /* read samples from source */ - in4 = *(pSrc + 3); - - /* add offset to input */ - in3 = in3 + offset; - - /* store result to destination */ - *pDst = in1; - - /* add offset to input */ - in4 = in4 + offset; - - /* store result to destination */ - *(pDst + 1) = in2; - - /* store result to destination */ - *(pDst + 2) = in3; - - /* store result to destination */ - *(pDst + 3) = in4; - - /* update pointers to process next samples */ - pSrc += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = (*pSrc++) + offset; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of offset group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q15.c deleted file mode 100644 index f8158f066f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q15.c +++ /dev/null @@ -1,131 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_offset_q15.c -* -* Description: Q15 vector offset. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup offset - * @{ - */ - -/** - * @brief Adds a constant offset to a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] offset is the offset to be added - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] are saturated. - */ - -void arm_offset_q15( - q15_t * pSrc, - q15_t offset, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t offset_packed; /* Offset packed to 32 bit */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* Offset is packed to 32 bit in order to use SIMD32 for addition */ - offset_packed = __PKHBT(offset, offset, 16); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer, 2 samples at a time. */ - *__SIMD32(pDst)++ = __QADD16(*__SIMD32(pSrc)++, offset_packed); - *__SIMD32(pDst)++ = __QADD16(*__SIMD32(pSrc)++, offset_packed); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer. */ - *pDst++ = (q15_t) __QADD16(*pSrc++, offset); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer. */ - *pDst++ = (q15_t) __SSAT(((q31_t) * pSrc++ + offset), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of offset group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q31.c deleted file mode 100644 index 8b03ee3727..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q31.c +++ /dev/null @@ -1,135 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_offset_q31.c -* -* Description: Q31 vector offset. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup offset - * @{ - */ - -/** - * @brief Adds a constant offset to a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] offset is the offset to be added - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] are saturated. - */ - -void arm_offset_q31( - q31_t * pSrc, - q31_t offset, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer. */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = __QADD(in1, offset); - *pDst++ = __QADD(in2, offset); - *pDst++ = __QADD(in3, offset); - *pDst++ = __QADD(in4, offset); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = __QADD(*pSrc++, offset); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = (q31_t) clip_q63_to_q31((q63_t) * pSrc++ + offset); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of offset group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q7.c deleted file mode 100644 index 56643816f3..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_offset_q7.c +++ /dev/null @@ -1,130 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_offset_q7.c -* -* Description: Q7 vector offset. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup offset - * @{ - */ - -/** - * @brief Adds a constant offset to a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] offset is the offset to be added - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] are saturated. - */ - -void arm_offset_q7( - q7_t * pSrc, - q7_t offset, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t offset_packed; /* Offset packed to 32 bit */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* Offset is packed to 32 bit in order to use SIMD32 for addition */ - offset_packed = __PACKq7(offset, offset, offset, offset); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination bufferfor 4 samples at a time. */ - *__SIMD32(pDst)++ = __QADD8(*__SIMD32(pSrc)++, offset_packed); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT(*pSrc++ + offset, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT((q15_t) * pSrc++ + offset, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of offset group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_f32.c deleted file mode 100644 index b77144a3ef..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_f32.c +++ /dev/null @@ -1,161 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_scale_f32.c -* -* Description: Multiplies a floating-point vector by a scalar. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup scale Vector Scale - * - * Multiply a vector by a scalar value. For floating-point data, the algorithm used is: - * - *
        
- *     pDst[n] = pSrc[n] * scale,   0 <= n < blockSize.        
- * 
- * - * In the fixed-point Q7, Q15, and Q31 functions, scale is represented by - * a fractional multiplication scaleFract and an arithmetic shift shift. - * The shift allows the gain of the scaling operation to exceed 1.0. - * The algorithm used with fixed-point data is: - * - *
        
- *     pDst[n] = (pSrc[n] * scaleFract) << shift,   0 <= n < blockSize.        
- * 
- * - * The overall scale factor applied to the fixed-point data is - *
        
- *     scale = scaleFract * 2^shift.        
- * 
- */ - -/** - * @addtogroup scale - * @{ - */ - -/** - * @brief Multiplies a floating-point vector by a scalar. - * @param[in] *pSrc points to the input vector - * @param[in] scale scale factor to be applied - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - */ - - -void arm_scale_f32( - float32_t * pSrc, - float32_t scale, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; /* temporary variabels */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A * scale */ - /* Scale the input and then store the results in the destination buffer. */ - /* read input samples from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - - /* multiply with scaling factor */ - in1 = in1 * scale; - - /* read input sample from source */ - in3 = *(pSrc + 2); - - /* multiply with scaling factor */ - in2 = in2 * scale; - - /* read input sample from source */ - in4 = *(pSrc + 3); - - /* multiply with scaling factor */ - in3 = in3 * scale; - in4 = in4 * scale; - /* store the result to destination */ - *pDst = in1; - *(pDst + 1) = in2; - *(pDst + 2) = in3; - *(pDst + 3) = in4; - - /* update pointers to process next samples */ - pSrc += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (*pSrc++) * scale; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of scale group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q15.c deleted file mode 100644 index 9e79202fe3..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q15.c +++ /dev/null @@ -1,157 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_scale_q15.c -* -* Description: Multiplies a Q15 vector by a scalar. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup scale - * @{ - */ - -/** - * @brief Multiplies a Q15 vector by a scalar. - * @param[in] *pSrc points to the input vector - * @param[in] scaleFract fractional portion of the scale value - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.15 format. - * These are multiplied to yield a 2.30 intermediate result and this is shifted with saturation to 1.15 format. - */ - - -void arm_scale_q15( - q15_t * pSrc, - q15_t scaleFract, - int8_t shift, - q15_t * pDst, - uint32_t blockSize) -{ - int8_t kShift = 15 - shift; /* shift to apply after scaling */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q15_t in1, in2, in3, in4; - q31_t inA1, inA2; /* Temporary variables */ - q31_t out1, out2, out3, out4; - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Reading 2 inputs from memory */ - inA1 = *__SIMD32(pSrc)++; - inA2 = *__SIMD32(pSrc)++; - - /* C = A * scale */ - /* Scale the inputs and then store the 2 results in the destination buffer - * in single cycle by packing the outputs */ - out1 = (q31_t) ((q15_t) (inA1 >> 16) * scaleFract); - out2 = (q31_t) ((q15_t) inA1 * scaleFract); - out3 = (q31_t) ((q15_t) (inA2 >> 16) * scaleFract); - out4 = (q31_t) ((q15_t) inA2 * scaleFract); - - /* apply shifting */ - out1 = out1 >> kShift; - out2 = out2 >> kShift; - out3 = out3 >> kShift; - out4 = out4 >> kShift; - - /* saturate the output */ - in1 = (q15_t) (__SSAT(out1, 16)); - in2 = (q15_t) (__SSAT(out2, 16)); - in3 = (q15_t) (__SSAT(out3, 16)); - in4 = (q15_t) (__SSAT(out4, 16)); - - /* store the result to destination */ - *__SIMD32(pDst)++ = __PKHBT(in2, in1, 16); - *__SIMD32(pDst)++ = __PKHBT(in4, in3, 16); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT(((*pSrc++) * scaleFract) >> kShift, 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT(((q31_t) * pSrc++ * scaleFract) >> kShift, 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of scale group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q31.c deleted file mode 100644 index 8e9b50e72f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q31.c +++ /dev/null @@ -1,221 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_scale_q31.c -* -* Description: Multiplies a Q31 vector by a scalar. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup scale - * @{ - */ - -/** - * @brief Multiplies a Q31 vector by a scalar. - * @param[in] *pSrc points to the input vector - * @param[in] scaleFract fractional portion of the scale value - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.31 format. - * These are multiplied to yield a 2.62 intermediate result and this is shifted with saturation to 1.31 format. - */ - -void arm_scale_q31( - q31_t * pSrc, - q31_t scaleFract, - int8_t shift, - q31_t * pDst, - uint32_t blockSize) -{ - int8_t kShift = shift + 1; /* Shift to apply after scaling */ - int8_t sign = (kShift & 0x80); - uint32_t blkCnt; /* loop counter */ - q31_t in, out; - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2, in3, in4; /* temporary input variables */ - q31_t out1, out2, out3, out4; /* temporary output variabels */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - if(sign == 0u) - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* read four inputs from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* multiply input with scaler value */ - in1 = ((q63_t) in1 * scaleFract) >> 32; - in2 = ((q63_t) in2 * scaleFract) >> 32; - in3 = ((q63_t) in3 * scaleFract) >> 32; - in4 = ((q63_t) in4 * scaleFract) >> 32; - - /* apply shifting */ - out1 = in1 << kShift; - out2 = in2 << kShift; - - /* saturate the results. */ - if(in1 != (out1 >> kShift)) - out1 = 0x7FFFFFFF ^ (in1 >> 31); - - if(in2 != (out2 >> kShift)) - out2 = 0x7FFFFFFF ^ (in2 >> 31); - - out3 = in3 << kShift; - out4 = in4 << kShift; - - *pDst = out1; - *(pDst + 1) = out2; - - if(in3 != (out3 >> kShift)) - out3 = 0x7FFFFFFF ^ (in3 >> 31); - - if(in4 != (out4 >> kShift)) - out4 = 0x7FFFFFFF ^ (in4 >> 31); - - /* Store result destination */ - *(pDst + 2) = out3; - *(pDst + 3) = out4; - - /* Update pointers to process next sampels */ - pSrc += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - } - else - { - kShift = -kShift; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* read four inputs from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* multiply input with scaler value */ - in1 = ((q63_t) in1 * scaleFract) >> 32; - in2 = ((q63_t) in2 * scaleFract) >> 32; - in3 = ((q63_t) in3 * scaleFract) >> 32; - in4 = ((q63_t) in4 * scaleFract) >> 32; - - /* apply shifting */ - out1 = in1 >> kShift; - out2 = in2 >> kShift; - - out3 = in3 >> kShift; - out4 = in4 >> kShift; - - /* Store result destination */ - *pDst = out1; - *(pDst + 1) = out2; - - *(pDst + 2) = out3; - *(pDst + 3) = out4; - - /* Update pointers to process next sampels */ - pSrc += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - } - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - in = *pSrc++; - in = ((q63_t) in * scaleFract) >> 32; - - if(sign == 0) - { - out = in << kShift; - if(in != (out >> kShift)) - out = 0x7FFFFFFF ^ (in >> 31); - } - else - { - out = in >> kShift; - } - - *pDst++ = out; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of scale group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q7.c deleted file mode 100644 index 76c35e6561..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_scale_q7.c +++ /dev/null @@ -1,144 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_scale_q7.c -* -* Description: Multiplies a Q7 vector by a scalar. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup scale - * @{ - */ - -/** - * @brief Multiplies a Q7 vector by a scalar. - * @param[in] *pSrc points to the input vector - * @param[in] scaleFract fractional portion of the scale value - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.7 format. - * These are multiplied to yield a 2.14 intermediate result and this is shifted with saturation to 1.7 format. - */ - -void arm_scale_q7( - q7_t * pSrc, - q7_t scaleFract, - int8_t shift, - q7_t * pDst, - uint32_t blockSize) -{ - int8_t kShift = 7 - shift; /* shift to apply after scaling */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q7_t in1, in2, in3, in4, out1, out2, out3, out4; /* Temporary variables to store input & output */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Reading 4 inputs from memory */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - /* C = A * scale */ - /* Scale the inputs and then store the results in the temporary variables. */ - out1 = (q7_t) (__SSAT(((in1) * scaleFract) >> kShift, 8)); - out2 = (q7_t) (__SSAT(((in2) * scaleFract) >> kShift, 8)); - out3 = (q7_t) (__SSAT(((in3) * scaleFract) >> kShift, 8)); - out4 = (q7_t) (__SSAT(((in4) * scaleFract) >> kShift, 8)); - - /* Packing the individual outputs into 32bit and storing in - * destination buffer in single write */ - *__SIMD32(pDst)++ = __PACKq7(out1, out2, out3, out4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (q7_t) (__SSAT(((*pSrc++) * scaleFract) >> kShift, 8)); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (q7_t) (__SSAT((((q15_t) * pSrc++ * scaleFract) >> kShift), 8)); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of scale group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q15.c deleted file mode 100644 index b8301e63d8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q15.c +++ /dev/null @@ -1,243 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_shift_q15.c -* -* Description: Shifts the elements of a Q15 vector by a specified number of bits. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup shift - * @{ - */ - -/** - * @brief Shifts the elements of a Q15 vector a specified number of bits. - * @param[in] *pSrc points to the input vector - * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -void arm_shift_q15( - q15_t * pSrc, - int8_t shiftBits, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - uint8_t sign; /* Sign of shiftBits */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t in1, in2; /* Temporary variables */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* Getting the sign of shiftBits */ - sign = (shiftBits & 0x80); - - /* If the shift value is positive then do right shift else left shift */ - if(sign == 0u) - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Read 2 inputs */ - in1 = *pSrc++; - in2 = *pSrc++; - /* C = A << shiftBits */ - /* Shift the inputs and then store the results in the destination buffer. */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT(__SSAT((in1 << shiftBits), 16), - __SSAT((in2 << shiftBits), 16), 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT(__SSAT((in2 << shiftBits), 16), - __SSAT((in1 << shiftBits), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - in1 = *pSrc++; - in2 = *pSrc++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT(__SSAT((in1 << shiftBits), 16), - __SSAT((in2 << shiftBits), 16), 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT(__SSAT((in2 << shiftBits), 16), - __SSAT((in1 << shiftBits), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A << shiftBits */ - /* Shift and then store the results in the destination buffer. */ - *pDst++ = __SSAT((*pSrc++ << shiftBits), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Read 2 inputs */ - in1 = *pSrc++; - in2 = *pSrc++; - - /* C = A >> shiftBits */ - /* Shift the inputs and then store the results in the destination buffer. */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT((in1 >> -shiftBits), - (in2 >> -shiftBits), 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT((in2 >> -shiftBits), - (in1 >> -shiftBits), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - in1 = *pSrc++; - in2 = *pSrc++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT((in1 >> -shiftBits), - (in2 >> -shiftBits), 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT((in2 >> -shiftBits), - (in1 >> -shiftBits), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A >> shiftBits */ - /* Shift the inputs and then store the results in the destination buffer. */ - *pDst++ = (*pSrc++ >> -shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Getting the sign of shiftBits */ - sign = (shiftBits & 0x80); - - /* If the shift value is positive then do right shift else left shift */ - if(sign == 0u) - { - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A << shiftBits */ - /* Shift and then store the results in the destination buffer. */ - *pDst++ = __SSAT(((q31_t) * pSrc++ << shiftBits), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A >> shiftBits */ - /* Shift the inputs and then store the results in the destination buffer. */ - *pDst++ = (*pSrc++ >> -shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of shift group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q31.c deleted file mode 100644 index 561225a899..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q31.c +++ /dev/null @@ -1,195 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_shift_q31.c -* -* Description: Shifts the elements of a Q31 vector by a specified number of bits. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ -/** - * @defgroup shift Vector Shift - * - * Shifts the elements of a fixed-point vector by a specified number of bits. - * There are separate functions for Q7, Q15, and Q31 data types. - * The underlying algorithm used is: - * - *
        
- *     pDst[n] = pSrc[n] << shift,   0 <= n < blockSize.        
- * 
- * - * If shift is positive then the elements of the vector are shifted to the left. - * If shift is negative then the elements of the vector are shifted to the right. - */ - -/** - * @addtogroup shift - * @{ - */ - -/** - * @brief Shifts the elements of a Q31 vector a specified number of bits. - * @param[in] *pSrc points to the input vector - * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] will be saturated. - */ - -void arm_shift_q31( - q31_t * pSrc, - int8_t shiftBits, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - uint8_t sign = (shiftBits & 0x80); /* Sign of shiftBits */ - -#ifndef ARM_MATH_CM0 - - q31_t in1, in2, in3, in4; /* Temporary input variables */ - q31_t out1, out2, out3, out4; /* Temporary output variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - - if(sign == 0u) - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A << shiftBits */ - /* Shift the input and then store the results in the destination buffer. */ - in1 = *pSrc; - in2 = *(pSrc + 1); - out1 = in1 << shiftBits; - in3 = *(pSrc + 2); - out2 = in2 << shiftBits; - in4 = *(pSrc + 3); - if(in1 != (out1 >> shiftBits)) - out1 = 0x7FFFFFFF ^ (in1 >> 31); - - if(in2 != (out2 >> shiftBits)) - out2 = 0x7FFFFFFF ^ (in2 >> 31); - - *pDst = out1; - out3 = in3 << shiftBits; - *(pDst + 1) = out2; - out4 = in4 << shiftBits; - - if(in3 != (out3 >> shiftBits)) - out3 = 0x7FFFFFFF ^ (in3 >> 31); - - if(in4 != (out4 >> shiftBits)) - out4 = 0x7FFFFFFF ^ (in4 >> 31); - - *(pDst + 2) = out3; - *(pDst + 3) = out4; - - /* Update destination pointer to process next sampels */ - pSrc += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A >> shiftBits */ - /* Shift the input and then store the results in the destination buffer. */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - *pDst = (in1 >> -shiftBits); - *(pDst + 1) = (in2 >> -shiftBits); - *(pDst + 2) = (in3 >> -shiftBits); - *(pDst + 3) = (in4 >> -shiftBits); - - - pSrc += 4u; - pDst += 4u; - - blkCnt--; - } - - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = A (>> or <<) shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - *pDst++ = (sign == 0u) ? clip_q63_to_q31((q63_t) * pSrc++ << shiftBits) : - (*pSrc++ >> -shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - - -} - -/** - * @} end of shift group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q7.c deleted file mode 100644 index 6dfd25f650..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_shift_q7.c +++ /dev/null @@ -1,215 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_shift_q7.c -* -* Description: Processing function for the Q7 Shifting -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup shift - * @{ - */ - - -/** - * @brief Shifts the elements of a Q7 vector a specified number of bits. - * @param[in] *pSrc points to the input vector - * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * \par Conditions for optimum performance - * Input and output buffers should be aligned by 32-bit - * - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x8 0x7F] will be saturated. - */ - -void arm_shift_q7( - q7_t * pSrc, - int8_t shiftBits, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - uint8_t sign; /* Sign of shiftBits */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q7_t in1; /* Input value1 */ - q7_t in2; /* Input value2 */ - q7_t in3; /* Input value3 */ - q7_t in4; /* Input value4 */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* Getting the sign of shiftBits */ - sign = (shiftBits & 0x80); - - /* If the shift value is positive then do right shift else left shift */ - if(sign == 0u) - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A << shiftBits */ - /* Read 4 inputs */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* Store the Shifted result in the destination buffer in single cycle by packing the outputs */ - *__SIMD32(pDst)++ = __PACKq7(__SSAT((in1 << shiftBits), 8), - __SSAT((in2 << shiftBits), 8), - __SSAT((in3 << shiftBits), 8), - __SSAT((in4 << shiftBits), 8)); - /* Update source pointer to process next sampels */ - pSrc += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A << shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT((*pSrc++ << shiftBits), 8); - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - shiftBits = -shiftBits; - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A >> shiftBits */ - /* Read 4 inputs */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* Store the Shifted result in the destination buffer in single cycle by packing the outputs */ - *__SIMD32(pDst)++ = __PACKq7((in1 >> shiftBits), (in2 >> shiftBits), - (in3 >> shiftBits), (in4 >> shiftBits)); - - - pSrc += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A >> shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - in1 = *pSrc++; - *pDst++ = (in1 >> shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Getting the sign of shiftBits */ - sign = (shiftBits & 0x80); - - /* If the shift value is positive then do right shift else left shift */ - if(sign == 0u) - { - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A << shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT(((q15_t) * pSrc++ << shiftBits), 8); - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A >> shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - *pDst++ = (*pSrc++ >> -shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - } - -#endif /* #ifndef ARM_MATH_CM0 */ -} - -/** - * @} end of shift group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_f32.c deleted file mode 100644 index 4a660db49b..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_f32.c +++ /dev/null @@ -1,145 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sub_f32.c -* -* Description: Floating-point vector subtraction. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup BasicSub Vector Subtraction - * - * Element-by-element subtraction of two vectors. - * - *
        
- *     pDst[n] = pSrcA[n] - pSrcB[n],   0 <= n < blockSize.        
- * 
- * - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup BasicSub - * @{ - */ - - -/** - * @brief Floating-point vector subtraction. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - */ - -void arm_sub_f32( - float32_t * pSrcA, - float32_t * pSrcB, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t inA1, inA2, inA3, inA4; /* temporary variables */ - float32_t inB1, inB2, inB3, inB4; /* temporary variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer. */ - /* Read 4 input samples from sourceA and sourceB */ - inA1 = *pSrcA; - inB1 = *pSrcB; - inA2 = *(pSrcA + 1); - inB2 = *(pSrcB + 1); - inA3 = *(pSrcA + 2); - inB3 = *(pSrcB + 2); - inA4 = *(pSrcA + 3); - inB4 = *(pSrcB + 3); - - /* dst = srcA - srcB */ - /* subtract and store the result */ - *pDst = inA1 - inB1; - *(pDst + 1) = inA2 - inB2; - *(pDst + 2) = inA3 - inB3; - *(pDst + 3) = inA4 - inB4; - - - /* Update pointers to process next sampels */ - pSrcA += 4u; - pSrcB += 4u; - pDst += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer. */ - *pDst++ = (*pSrcA++) - (*pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicSub group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q15.c deleted file mode 100644 index d8cc12220a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q15.c +++ /dev/null @@ -1,135 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sub_q15.c -* -* Description: Q15 vector subtraction. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicSub - * @{ - */ - -/** - * @brief Q15 vector subtraction. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -void arm_sub_q15( - q15_t * pSrcA, - q15_t * pSrcB, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2; - q31_t inB1, inB2; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer two samples at a time. */ - inA1 = *__SIMD32(pSrcA)++; - inA2 = *__SIMD32(pSrcA)++; - inB1 = *__SIMD32(pSrcB)++; - inB2 = *__SIMD32(pSrcB)++; - - *__SIMD32(pDst)++ = __QSUB16(inA1, inB1); - *__SIMD32(pDst)++ = __QSUB16(inA2, inB2); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = (q15_t) __QSUB16(*pSrcA++, *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = (q15_t) __SSAT(((q31_t) * pSrcA++ - *pSrcB++), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - -} - -/** - * @} end of BasicSub group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q31.c deleted file mode 100644 index 34642f32e7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q31.c +++ /dev/null @@ -1,141 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sub_q31.c -* -* Description: Q31 vector subtraction. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicSub - * @{ - */ - -/** - * @brief Q31 vector subtraction. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] will be saturated. - */ - -void arm_sub_q31( - q31_t * pSrcA, - q31_t * pSrcB, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inA3, inA4; - q31_t inB1, inB2, inB3, inB4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer. */ - inA1 = *pSrcA++; - inA2 = *pSrcA++; - inB1 = *pSrcB++; - inB2 = *pSrcB++; - - inA3 = *pSrcA++; - inA4 = *pSrcA++; - inB3 = *pSrcB++; - inB4 = *pSrcB++; - - *pDst++ = __QSUB(inA1, inB1); - *pDst++ = __QSUB(inA2, inB2); - *pDst++ = __QSUB(inA3, inB3); - *pDst++ = __QSUB(inA4, inB4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = __QSUB(*pSrcA++, *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = (q31_t) clip_q63_to_q31((q63_t) * pSrcA++ - *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of BasicSub group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q7.c deleted file mode 100644 index adbc7d0c08..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/BasicMathFunctions/arm_sub_q7.c +++ /dev/null @@ -1,126 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sub_q7.c -* -* Description: Q7 vector subtraction. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicSub - * @{ - */ - -/** - * @brief Q7 vector subtraction. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. - */ - -void arm_sub_q7( - q7_t * pSrcA, - q7_t * pSrcB, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer 4 samples at a time. */ - *__SIMD32(pDst)++ = __QSUB8(*__SIMD32(pSrcA)++, *__SIMD32(pSrcB)++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = __SSAT(*pSrcA++ - *pSrcB++, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT((q15_t) * pSrcA++ - *pSrcB++, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - -} - -/** - * @} end of BasicSub group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/CommonTables/arm_common_tables.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/CommonTables/arm_common_tables.c deleted file mode 100644 index bf7ab3bed7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/CommonTables/arm_common_tables.c +++ /dev/null @@ -1,4689 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_common_tables.c -* -* Description: This file has common tables like fft twiddle factors, Bitreverse, reciprocal etc which are used across different functions -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup CFFT_CIFFT Complex FFT Tables - * @{ - */ - -/** -* \par -* Pseudo code for Generation of Bit reversal Table is -* \par -*
for(l=1;l <= N/4;l++)    
-* {    
-*   for(i=0;i> 1;    
-*  } 
-* \par -* where N = 4096 logN2 = 12 -* \par -* N is the maximum FFT Size supported -*/ - -/* -* @brief Table for bit reversal process -*/ -const uint16_t armBitRevTable[1024] = { - 0x400, 0x200, 0x600, 0x100, 0x500, 0x300, 0x700, - 0x80, 0x480, 0x280, 0x680, 0x180, 0x580, 0x380, - 0x780, 0x40, 0x440, 0x240, 0x640, 0x140, 0x540, - 0x340, 0x740, 0xc0, 0x4c0, 0x2c0, 0x6c0, 0x1c0, - 0x5c0, 0x3c0, 0x7c0, 0x20, 0x420, 0x220, 0x620, - 0x120, 0x520, 0x320, 0x720, 0xa0, 0x4a0, 0x2a0, - 0x6a0, 0x1a0, 0x5a0, 0x3a0, 0x7a0, 0x60, 0x460, - 0x260, 0x660, 0x160, 0x560, 0x360, 0x760, 0xe0, - 0x4e0, 0x2e0, 0x6e0, 0x1e0, 0x5e0, 0x3e0, 0x7e0, - 0x10, 0x410, 0x210, 0x610, 0x110, 0x510, 0x310, - 0x710, 0x90, 0x490, 0x290, 0x690, 0x190, 0x590, - 0x390, 0x790, 0x50, 0x450, 0x250, 0x650, 0x150, - 0x550, 0x350, 0x750, 0xd0, 0x4d0, 0x2d0, 0x6d0, - 0x1d0, 0x5d0, 0x3d0, 0x7d0, 0x30, 0x430, 0x230, - 0x630, 0x130, 0x530, 0x330, 0x730, 0xb0, 0x4b0, - 0x2b0, 0x6b0, 0x1b0, 0x5b0, 0x3b0, 0x7b0, 0x70, - 0x470, 0x270, 0x670, 0x170, 0x570, 0x370, 0x770, - 0xf0, 0x4f0, 0x2f0, 0x6f0, 0x1f0, 0x5f0, 0x3f0, - 0x7f0, 0x8, 0x408, 0x208, 0x608, 0x108, 0x508, - 0x308, 0x708, 0x88, 0x488, 0x288, 0x688, 0x188, - 0x588, 0x388, 0x788, 0x48, 0x448, 0x248, 0x648, - 0x148, 0x548, 0x348, 0x748, 0xc8, 0x4c8, 0x2c8, - 0x6c8, 0x1c8, 0x5c8, 0x3c8, 0x7c8, 0x28, 0x428, - 0x228, 0x628, 0x128, 0x528, 0x328, 0x728, 0xa8, - 0x4a8, 0x2a8, 0x6a8, 0x1a8, 0x5a8, 0x3a8, 0x7a8, - 0x68, 0x468, 0x268, 0x668, 0x168, 0x568, 0x368, - 0x768, 0xe8, 0x4e8, 0x2e8, 0x6e8, 0x1e8, 0x5e8, - 0x3e8, 0x7e8, 0x18, 0x418, 0x218, 0x618, 0x118, - 0x518, 0x318, 0x718, 0x98, 0x498, 0x298, 0x698, - 0x198, 0x598, 0x398, 0x798, 0x58, 0x458, 0x258, - 0x658, 0x158, 0x558, 0x358, 0x758, 0xd8, 0x4d8, - 0x2d8, 0x6d8, 0x1d8, 0x5d8, 0x3d8, 0x7d8, 0x38, - 0x438, 0x238, 0x638, 0x138, 0x538, 0x338, 0x738, - 0xb8, 0x4b8, 0x2b8, 0x6b8, 0x1b8, 0x5b8, 0x3b8, - 0x7b8, 0x78, 0x478, 0x278, 0x678, 0x178, 0x578, - 0x378, 0x778, 0xf8, 0x4f8, 0x2f8, 0x6f8, 0x1f8, - 0x5f8, 0x3f8, 0x7f8, 0x4, 0x404, 0x204, 0x604, - 0x104, 0x504, 0x304, 0x704, 0x84, 0x484, 0x284, - 0x684, 0x184, 0x584, 0x384, 0x784, 0x44, 0x444, - 0x244, 0x644, 0x144, 0x544, 0x344, 0x744, 0xc4, - 0x4c4, 0x2c4, 0x6c4, 0x1c4, 0x5c4, 0x3c4, 0x7c4, - 0x24, 0x424, 0x224, 0x624, 0x124, 0x524, 0x324, - 0x724, 0xa4, 0x4a4, 0x2a4, 0x6a4, 0x1a4, 0x5a4, - 0x3a4, 0x7a4, 0x64, 0x464, 0x264, 0x664, 0x164, - 0x564, 0x364, 0x764, 0xe4, 0x4e4, 0x2e4, 0x6e4, - 0x1e4, 0x5e4, 0x3e4, 0x7e4, 0x14, 0x414, 0x214, - 0x614, 0x114, 0x514, 0x314, 0x714, 0x94, 0x494, - 0x294, 0x694, 0x194, 0x594, 0x394, 0x794, 0x54, - 0x454, 0x254, 0x654, 0x154, 0x554, 0x354, 0x754, - 0xd4, 0x4d4, 0x2d4, 0x6d4, 0x1d4, 0x5d4, 0x3d4, - 0x7d4, 0x34, 0x434, 0x234, 0x634, 0x134, 0x534, - 0x334, 0x734, 0xb4, 0x4b4, 0x2b4, 0x6b4, 0x1b4, - 0x5b4, 0x3b4, 0x7b4, 0x74, 0x474, 0x274, 0x674, - 0x174, 0x574, 0x374, 0x774, 0xf4, 0x4f4, 0x2f4, - 0x6f4, 0x1f4, 0x5f4, 0x3f4, 0x7f4, 0xc, 0x40c, - 0x20c, 0x60c, 0x10c, 0x50c, 0x30c, 0x70c, 0x8c, - 0x48c, 0x28c, 0x68c, 0x18c, 0x58c, 0x38c, 0x78c, - 0x4c, 0x44c, 0x24c, 0x64c, 0x14c, 0x54c, 0x34c, - 0x74c, 0xcc, 0x4cc, 0x2cc, 0x6cc, 0x1cc, 0x5cc, - 0x3cc, 0x7cc, 0x2c, 0x42c, 0x22c, 0x62c, 0x12c, - 0x52c, 0x32c, 0x72c, 0xac, 0x4ac, 0x2ac, 0x6ac, - 0x1ac, 0x5ac, 0x3ac, 0x7ac, 0x6c, 0x46c, 0x26c, - 0x66c, 0x16c, 0x56c, 0x36c, 0x76c, 0xec, 0x4ec, - 0x2ec, 0x6ec, 0x1ec, 0x5ec, 0x3ec, 0x7ec, 0x1c, - 0x41c, 0x21c, 0x61c, 0x11c, 0x51c, 0x31c, 0x71c, - 0x9c, 0x49c, 0x29c, 0x69c, 0x19c, 0x59c, 0x39c, - 0x79c, 0x5c, 0x45c, 0x25c, 0x65c, 0x15c, 0x55c, - 0x35c, 0x75c, 0xdc, 0x4dc, 0x2dc, 0x6dc, 0x1dc, - 0x5dc, 0x3dc, 0x7dc, 0x3c, 0x43c, 0x23c, 0x63c, - 0x13c, 0x53c, 0x33c, 0x73c, 0xbc, 0x4bc, 0x2bc, - 0x6bc, 0x1bc, 0x5bc, 0x3bc, 0x7bc, 0x7c, 0x47c, - 0x27c, 0x67c, 0x17c, 0x57c, 0x37c, 0x77c, 0xfc, - 0x4fc, 0x2fc, 0x6fc, 0x1fc, 0x5fc, 0x3fc, 0x7fc, - 0x2, 0x402, 0x202, 0x602, 0x102, 0x502, 0x302, - 0x702, 0x82, 0x482, 0x282, 0x682, 0x182, 0x582, - 0x382, 0x782, 0x42, 0x442, 0x242, 0x642, 0x142, - 0x542, 0x342, 0x742, 0xc2, 0x4c2, 0x2c2, 0x6c2, - 0x1c2, 0x5c2, 0x3c2, 0x7c2, 0x22, 0x422, 0x222, - 0x622, 0x122, 0x522, 0x322, 0x722, 0xa2, 0x4a2, - 0x2a2, 0x6a2, 0x1a2, 0x5a2, 0x3a2, 0x7a2, 0x62, - 0x462, 0x262, 0x662, 0x162, 0x562, 0x362, 0x762, - 0xe2, 0x4e2, 0x2e2, 0x6e2, 0x1e2, 0x5e2, 0x3e2, - 0x7e2, 0x12, 0x412, 0x212, 0x612, 0x112, 0x512, - 0x312, 0x712, 0x92, 0x492, 0x292, 0x692, 0x192, - 0x592, 0x392, 0x792, 0x52, 0x452, 0x252, 0x652, - 0x152, 0x552, 0x352, 0x752, 0xd2, 0x4d2, 0x2d2, - 0x6d2, 0x1d2, 0x5d2, 0x3d2, 0x7d2, 0x32, 0x432, - 0x232, 0x632, 0x132, 0x532, 0x332, 0x732, 0xb2, - 0x4b2, 0x2b2, 0x6b2, 0x1b2, 0x5b2, 0x3b2, 0x7b2, - 0x72, 0x472, 0x272, 0x672, 0x172, 0x572, 0x372, - 0x772, 0xf2, 0x4f2, 0x2f2, 0x6f2, 0x1f2, 0x5f2, - 0x3f2, 0x7f2, 0xa, 0x40a, 0x20a, 0x60a, 0x10a, - 0x50a, 0x30a, 0x70a, 0x8a, 0x48a, 0x28a, 0x68a, - 0x18a, 0x58a, 0x38a, 0x78a, 0x4a, 0x44a, 0x24a, - 0x64a, 0x14a, 0x54a, 0x34a, 0x74a, 0xca, 0x4ca, - 0x2ca, 0x6ca, 0x1ca, 0x5ca, 0x3ca, 0x7ca, 0x2a, - 0x42a, 0x22a, 0x62a, 0x12a, 0x52a, 0x32a, 0x72a, - 0xaa, 0x4aa, 0x2aa, 0x6aa, 0x1aa, 0x5aa, 0x3aa, - 0x7aa, 0x6a, 0x46a, 0x26a, 0x66a, 0x16a, 0x56a, - 0x36a, 0x76a, 0xea, 0x4ea, 0x2ea, 0x6ea, 0x1ea, - 0x5ea, 0x3ea, 0x7ea, 0x1a, 0x41a, 0x21a, 0x61a, - 0x11a, 0x51a, 0x31a, 0x71a, 0x9a, 0x49a, 0x29a, - 0x69a, 0x19a, 0x59a, 0x39a, 0x79a, 0x5a, 0x45a, - 0x25a, 0x65a, 0x15a, 0x55a, 0x35a, 0x75a, 0xda, - 0x4da, 0x2da, 0x6da, 0x1da, 0x5da, 0x3da, 0x7da, - 0x3a, 0x43a, 0x23a, 0x63a, 0x13a, 0x53a, 0x33a, - 0x73a, 0xba, 0x4ba, 0x2ba, 0x6ba, 0x1ba, 0x5ba, - 0x3ba, 0x7ba, 0x7a, 0x47a, 0x27a, 0x67a, 0x17a, - 0x57a, 0x37a, 0x77a, 0xfa, 0x4fa, 0x2fa, 0x6fa, - 0x1fa, 0x5fa, 0x3fa, 0x7fa, 0x6, 0x406, 0x206, - 0x606, 0x106, 0x506, 0x306, 0x706, 0x86, 0x486, - 0x286, 0x686, 0x186, 0x586, 0x386, 0x786, 0x46, - 0x446, 0x246, 0x646, 0x146, 0x546, 0x346, 0x746, - 0xc6, 0x4c6, 0x2c6, 0x6c6, 0x1c6, 0x5c6, 0x3c6, - 0x7c6, 0x26, 0x426, 0x226, 0x626, 0x126, 0x526, - 0x326, 0x726, 0xa6, 0x4a6, 0x2a6, 0x6a6, 0x1a6, - 0x5a6, 0x3a6, 0x7a6, 0x66, 0x466, 0x266, 0x666, - 0x166, 0x566, 0x366, 0x766, 0xe6, 0x4e6, 0x2e6, - 0x6e6, 0x1e6, 0x5e6, 0x3e6, 0x7e6, 0x16, 0x416, - 0x216, 0x616, 0x116, 0x516, 0x316, 0x716, 0x96, - 0x496, 0x296, 0x696, 0x196, 0x596, 0x396, 0x796, - 0x56, 0x456, 0x256, 0x656, 0x156, 0x556, 0x356, - 0x756, 0xd6, 0x4d6, 0x2d6, 0x6d6, 0x1d6, 0x5d6, - 0x3d6, 0x7d6, 0x36, 0x436, 0x236, 0x636, 0x136, - 0x536, 0x336, 0x736, 0xb6, 0x4b6, 0x2b6, 0x6b6, - 0x1b6, 0x5b6, 0x3b6, 0x7b6, 0x76, 0x476, 0x276, - 0x676, 0x176, 0x576, 0x376, 0x776, 0xf6, 0x4f6, - 0x2f6, 0x6f6, 0x1f6, 0x5f6, 0x3f6, 0x7f6, 0xe, - 0x40e, 0x20e, 0x60e, 0x10e, 0x50e, 0x30e, 0x70e, - 0x8e, 0x48e, 0x28e, 0x68e, 0x18e, 0x58e, 0x38e, - 0x78e, 0x4e, 0x44e, 0x24e, 0x64e, 0x14e, 0x54e, - 0x34e, 0x74e, 0xce, 0x4ce, 0x2ce, 0x6ce, 0x1ce, - 0x5ce, 0x3ce, 0x7ce, 0x2e, 0x42e, 0x22e, 0x62e, - 0x12e, 0x52e, 0x32e, 0x72e, 0xae, 0x4ae, 0x2ae, - 0x6ae, 0x1ae, 0x5ae, 0x3ae, 0x7ae, 0x6e, 0x46e, - 0x26e, 0x66e, 0x16e, 0x56e, 0x36e, 0x76e, 0xee, - 0x4ee, 0x2ee, 0x6ee, 0x1ee, 0x5ee, 0x3ee, 0x7ee, - 0x1e, 0x41e, 0x21e, 0x61e, 0x11e, 0x51e, 0x31e, - 0x71e, 0x9e, 0x49e, 0x29e, 0x69e, 0x19e, 0x59e, - 0x39e, 0x79e, 0x5e, 0x45e, 0x25e, 0x65e, 0x15e, - 0x55e, 0x35e, 0x75e, 0xde, 0x4de, 0x2de, 0x6de, - 0x1de, 0x5de, 0x3de, 0x7de, 0x3e, 0x43e, 0x23e, - 0x63e, 0x13e, 0x53e, 0x33e, 0x73e, 0xbe, 0x4be, - 0x2be, 0x6be, 0x1be, 0x5be, 0x3be, 0x7be, 0x7e, - 0x47e, 0x27e, 0x67e, 0x17e, 0x57e, 0x37e, 0x77e, - 0xfe, 0x4fe, 0x2fe, 0x6fe, 0x1fe, 0x5fe, 0x3fe, - 0x7fe, 0x1 -}; - - -/* -* @brief Floating-point Twiddle factors Table Generation -*/ - - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< 3N/4; i++)    
-* {    
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);    
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);    
-* } 
-* \par -* where N = 4096 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef[6144] = { - 1.000000000000000000f, 0.000000000000000000f, 0.999998823451701880f, - 0.001533980186284766f, 0.999995293809576190f, 0.003067956762965976f, - 0.999989411081928400f, 0.004601926120448571f, 0.999981175282601110f, - 0.006135884649154475f, 0.999970586430974140f, 0.007669828739531097f, - 0.999957644551963900f, 0.009203754782059819f, 0.999942349676023910f, - 0.010737659167264491f, 0.999924701839144500f, 0.012271538285719925f, - 0.999904701082852900f, 0.013805388528060391f, 0.999882347454212560f, - 0.015339206284988100f, 0.999857641005823860f, 0.016872987947281710f, - 0.999830581795823400f, 0.018406729905804820f, 0.999801169887884260f, - 0.019940428551514441f, 0.999769405351215280f, 0.021474080275469508f, - 0.999735288260561680f, 0.023007681468839369f, 0.999698818696204250f, - 0.024541228522912288f, 0.999659996743959220f, 0.026074717829103901f, - 0.999618822495178640f, 0.027608145778965740f, 0.999575296046749220f, - 0.029141508764193722f, 0.999529417501093140f, 0.030674803176636626f, - 0.999481186966166950f, 0.032208025408304586f, 0.999430604555461730f, - 0.033741171851377580f, 0.999377670388002850f, 0.035274238898213947f, - 0.999322384588349540f, 0.036807222941358832f, 0.999264747286594420f, - 0.038340120373552694f, 0.999204758618363890f, 0.039872927587739811f, - 0.999142418724816910f, 0.041405640977076739f, 0.999077727752645360f, - 0.042938256934940820f, 0.999010685854073380f, 0.044470771854938668f, - 0.998941293186856870f, 0.046003182130914623f, 0.998869549914283560f, - 0.047535484156959303f, 0.998795456205172410f, 0.049067674327418015f, - 0.998719012233872940f, 0.050599749036899282f, 0.998640218180265270f, - 0.052131704680283324f, 0.998559074229759310f, 0.053663537652730520f, - 0.998475580573294770f, 0.055195244349689934f, 0.998389737407340160f, - 0.056726821166907748f, 0.998301544933892890f, 0.058258264500435752f, - 0.998211003360478190f, 0.059789570746639868f, 0.998118112900149180f, - 0.061320736302208578f, 0.998022873771486240f, 0.062851757564161406f, - 0.997925286198596000f, 0.064382630929857465f, 0.997825350411111640f, - 0.065913352797003805f, 0.997723066644191640f, 0.067443919563664051f, - 0.997618435138519550f, 0.068974327628266746f, 0.997511456140303450f, - 0.070504573389613856f, 0.997402129901275300f, 0.072034653246889332f, - 0.997290456678690210f, 0.073564563599667426f, 0.997176436735326190f, - 0.075094300847921305f, 0.997060070339482960f, 0.076623861392031492f, - 0.996941357764982160f, 0.078153241632794232f, 0.996820299291165670f, - 0.079682437971430126f, 0.996696895202896060f, 0.081211446809592441f, - 0.996571145790554840f, 0.082740264549375692f, 0.996443051350042630f, - 0.084268887593324071f, 0.996312612182778000f, 0.085797312344439894f, - 0.996179828595696980f, 0.087325535206192059f, 0.996044700901251970f, - 0.088853552582524600f, 0.995907229417411720f, 0.090381360877864983f, - 0.995767414467659820f, 0.091908956497132724f, 0.995625256380994310f, - 0.093436335845747787f, 0.995480755491926940f, 0.094963495329638992f, - 0.995333912140482280f, 0.096490431355252593f, 0.995184726672196930f, - 0.098017140329560604f, 0.995033199438118630f, 0.099543618660069319f, - 0.994879330794805620f, 0.101069862754827820f, 0.994723121104325700f, - 0.102595869022436280f, 0.994564570734255420f, 0.104121633872054590f, - 0.994403680057679100f, 0.105647153713410620f, 0.994240449453187900f, - 0.107172424956808840f, 0.994074879304879370f, 0.108697444013138720f, - 0.993906970002356060f, 0.110222207293883060f, 0.993736721940724600f, - 0.111746711211126590f, 0.993564135520595300f, 0.113270952177564350f, - 0.993389211148080650f, 0.114794926606510080f, 0.993211949234794500f, - 0.116318630911904750f, 0.993032350197851410f, 0.117842061508324980f, - 0.992850414459865100f, 0.119365214810991350f, 0.992666142448948020f, - 0.120888087235777080f, 0.992479534598709970f, 0.122410675199216200f, - 0.992290591348257370f, 0.123932975118512160f, 0.992099313142191800f, - 0.125454983411546230f, 0.991905700430609330f, 0.126976696496885870f, - 0.991709753669099530f, 0.128498110793793170f, 0.991511473318743900f, - 0.130019222722233350f, 0.991310859846115440f, 0.131540028702883120f, - 0.991107913723276890f, 0.133060525157139060f, 0.990902635427780010f, - 0.134580708507126170f, 0.990695025442664630f, 0.136100575175706200f, - 0.990485084256457090f, 0.137620121586486040f, 0.990272812363169110f, - 0.139139344163826200f, 0.990058210262297120f, 0.140658239332849210f, - 0.989841278458820530f, 0.142176803519448030f, 0.989622017463200890f, - 0.143695033150294470f, 0.989400427791380380f, 0.145212924652847460f, - 0.989176509964781010f, 0.146730474455361750f, 0.988950264510302990f, - 0.148247678986896030f, 0.988721691960323780f, 0.149764534677321510f, - 0.988490792852696590f, 0.151281037957330220f, 0.988257567730749460f, - 0.152797185258443440f, 0.988022017143283530f, 0.154312973013020100f, - 0.987784141644572180f, 0.155828397654265230f, 0.987543941794359230f, - 0.157343455616238250f, 0.987301418157858430f, 0.158858143333861450f, - 0.987056571305750970f, 0.160372457242928280f, 0.986809401814185530f, - 0.161886393780111830f, 0.986559910264775410f, 0.163399949382973230f, - 0.986308097244598670f, 0.164913120489969890f, 0.986053963346195440f, - 0.166425903540464100f, 0.985797509167567480f, 0.167938294974731170f, - 0.985538735312176060f, 0.169450291233967960f, 0.985277642388941220f, - 0.170961888760301220f, 0.985014231012239840f, 0.172473083996795950f, - 0.984748501801904210f, 0.173983873387463820f, 0.984480455383220930f, - 0.175494253377271430f, 0.984210092386929030f, 0.177004220412148750f, - 0.983937413449218920f, 0.178513770938997510f, 0.983662419211730250f, - 0.180022901405699510f, 0.983385110321551180f, 0.181531608261124970f, - 0.983105487431216290f, 0.183039887955140950f, 0.982823551198705240f, - 0.184547736938619620f, 0.982539302287441240f, 0.186055151663446630f, - 0.982252741366289370f, 0.187562128582529600f, 0.981963869109555240f, - 0.189068664149806190f, 0.981672686196983110f, 0.190574754820252740f, - 0.981379193313754560f, 0.192080397049892440f, 0.981083391150486710f, - 0.193585587295803610f, 0.980785280403230430f, 0.195090322016128250f, - 0.980484861773469380f, 0.196594597670080220f, 0.980182135968117430f, - 0.198098410717953560f, 0.979877103699517640f, 0.199601757621130970f, - 0.979569765685440520f, 0.201104634842091900f, 0.979260122649082020f, - 0.202607038844421130f, 0.978948175319062200f, 0.204108966092816870f, - 0.978633924429423210f, 0.205610413053099240f, 0.978317370719627650f, - 0.207111376192218560f, 0.977998514934557140f, 0.208611851978263490f, - 0.977677357824509930f, 0.210111836880469610f, 0.977353900145199960f, - 0.211611327369227550f, 0.977028142657754390f, 0.213110319916091360f, - 0.976700086128711840f, 0.214608810993786760f, 0.976369731330021140f, - 0.216106797076219520f, 0.976037079039039020f, 0.217604274638483640f, - 0.975702130038528570f, 0.219101240156869800f, 0.975364885116656980f, - 0.220597690108873510f, 0.975025345066994120f, 0.222093620973203510f, - 0.974683510688510670f, 0.223589029229789990f, 0.974339382785575860f, - 0.225083911359792830f, 0.973992962167955830f, 0.226578263845610000f, - 0.973644249650811980f, 0.228072083170885730f, 0.973293246054698250f, - 0.229565365820518870f, 0.972939952205560180f, 0.231058108280671110f, - 0.972584368934732210f, 0.232550307038775240f, 0.972226497078936270f, - 0.234041958583543430f, 0.971866337480279400f, 0.235533059404975490f, - 0.971503890986251780f, 0.237023605994367200f, 0.971139158449725090f, - 0.238513594844318420f, 0.970772140728950350f, 0.240003022448741500f, - 0.970402838687555500f, 0.241491885302869330f, 0.970031253194543970f, - 0.242980179903263870f, 0.969657385124292450f, 0.244467902747824150f, - 0.969281235356548530f, 0.245955050335794590f, 0.968902804776428870f, - 0.247441619167773270f, 0.968522094274417380f, 0.248927605745720150f, - 0.968139104746362440f, 0.250413006572965220f, 0.967753837093475510f, - 0.251897818154216970f, 0.967366292222328510f, 0.253382036995570160f, - 0.966976471044852070f, 0.254865659604514570f, 0.966584374478333120f, - 0.256348682489942910f, 0.966190003445412500f, 0.257831102162158990f, - 0.965793358874083680f, 0.259312915132886230f, 0.965394441697689400f, - 0.260794117915275510f, 0.964993252854920320f, 0.262274707023913590f, - 0.964589793289812760f, 0.263754678974831350f, 0.964184063951745830f, - 0.265234030285511790f, 0.963776065795439840f, 0.266712757474898370f, - 0.963365799780954050f, 0.268190857063403180f, 0.962953266873683880f, - 0.269668325572915090f, 0.962538468044359160f, 0.271145159526808010f, - 0.962121404269041580f, 0.272621355449948980f, 0.961702076529122540f, - 0.274096909868706380f, 0.961280485811320640f, 0.275571819310958140f, - 0.960856633107679660f, 0.277046080306099900f, 0.960430519415565790f, - 0.278519689385053060f, 0.960002145737665960f, 0.279992643080273220f, - 0.959571513081984520f, 0.281464937925757940f, 0.959138622461841890f, - 0.282936570457055390f, 0.958703474895871600f, 0.284407537211271880f, - 0.958266071408017670f, 0.285877834727080620f, 0.957826413027532910f, - 0.287347459544729510f, 0.957384500788975860f, 0.288816408206049480f, - 0.956940335732208820f, 0.290284677254462330f, 0.956493918902395100f, - 0.291752263234989260f, 0.956045251349996410f, 0.293219162694258630f, - 0.955594334130771110f, 0.294685372180514330f, 0.955141168305770780f, - 0.296150888243623790f, 0.954685754941338340f, 0.297615707435086200f, - 0.954228095109105670f, 0.299079826308040480f, 0.953768189885990330f, - 0.300543241417273450f, 0.953306040354193860f, 0.302005949319228080f, - 0.952841647601198720f, 0.303467946572011320f, 0.952375012719765880f, - 0.304929229735402370f, 0.951906136807932350f, 0.306389795370860920f, - 0.951435020969008340f, 0.307849640041534870f, 0.950961666311575080f, - 0.309308760312268730f, 0.950486073949481700f, 0.310767152749611470f, - 0.950008245001843000f, 0.312224813921824880f, 0.949528180593036670f, - 0.313681740398891520f, 0.949045881852700560f, 0.315137928752522440f, - 0.948561349915730270f, 0.316593375556165850f, 0.948074585922276230f, - 0.318048077385014950f, 0.947585591017741090f, 0.319502030816015690f, - 0.947094366352777220f, 0.320955232427875210f, 0.946600913083283530f, - 0.322407678801069850f, 0.946105232370403450f, 0.323859366517852850f, - 0.945607325380521280f, 0.325310292162262930f, 0.945107193285260610f, - 0.326760452320131730f, 0.944604837261480260f, 0.328209843579092500f, - 0.944100258491272660f, 0.329658462528587490f, 0.943593458161960390f, - 0.331106305759876430f, 0.943084437466093490f, 0.332553369866044220f, - 0.942573197601446870f, 0.333999651442009380f, 0.942059739771017310f, - 0.335445147084531600f, 0.941544065183020810f, 0.336889853392220050f, - 0.941026175050889260f, 0.338333766965541130f, 0.940506070593268300f, - 0.339776884406826850f, 0.939983753034014050f, 0.341219202320282360f, - 0.939459223602189920f, 0.342660717311994380f, 0.938932483532064600f, - 0.344101425989938810f, 0.938403534063108060f, 0.345541324963989090f, - 0.937872376439989890f, 0.346980410845923680f, 0.937339011912574960f, - 0.348418680249434560f, 0.936803441735921560f, 0.349856129790134920f, - 0.936265667170278260f, 0.351292756085567090f, 0.935725689481080370f, - 0.352728555755210730f, 0.935183509938947610f, 0.354163525420490340f, - 0.934639129819680780f, 0.355597661704783850f, 0.934092550404258980f, - 0.357030961233429980f, 0.933543772978836170f, 0.358463420633736540f, - 0.932992798834738960f, 0.359895036534988110f, 0.932439629268462360f, - 0.361325805568454280f, 0.931884265581668150f, 0.362755724367397230f, - 0.931326709081180430f, 0.364184789567079890f, 0.930766961078983710f, - 0.365612997804773850f, 0.930205022892219070f, 0.367040345719767180f, - 0.929640895843181330f, 0.368466829953372320f, 0.929074581259315860f, - 0.369892447148934100f, 0.928506080473215590f, 0.371317193951837540f, - 0.927935394822617890f, 0.372741067009515760f, 0.927362525650401110f, - 0.374164062971457930f, 0.926787474304581750f, 0.375586178489217220f, - 0.926210242138311380f, 0.377007410216418260f, 0.925630830509872720f, - 0.378427754808765560f, 0.925049240782677580f, 0.379847208924051160f, - 0.924465474325262600f, 0.381265769222162380f, 0.923879532511286740f, - 0.382683432365089780f, 0.923291416719527640f, 0.384100195016935040f, - 0.922701128333878630f, 0.385516053843918850f, 0.922108668743345180f, - 0.386931005514388580f, 0.921514039342042010f, 0.388345046698826250f, - 0.920917241529189520f, 0.389758174069856410f, 0.920318276709110590f, - 0.391170384302253870f, 0.919717146291227360f, 0.392581674072951470f, - 0.919113851690057770f, 0.393992040061048100f, 0.918508394325212250f, - 0.395401478947816350f, 0.917900775621390500f, 0.396809987416710310f, - 0.917290997008377910f, 0.398217562153373560f, 0.916679059921042700f, - 0.399624199845646790f, 0.916064965799331720f, 0.401029897183575620f, - 0.915448716088267830f, 0.402434650859418430f, 0.914830312237946200f, - 0.403838457567654070f, 0.914209755703530690f, 0.405241314004989860f, - 0.913587047945250810f, 0.406643216870369030f, 0.912962190428398210f, - 0.408044162864978690f, 0.912335184623322750f, 0.409444148692257590f, - 0.911706032005429880f, 0.410843171057903910f, 0.911074734055176360f, - 0.412241226669882890f, 0.910441292258067250f, 0.413638312238434500f, - 0.909805708104652220f, 0.415034424476081630f, 0.909167983090522380f, - 0.416429560097637150f, 0.908528118716306120f, 0.417823715820212270f, - 0.907886116487666260f, 0.419216888363223910f, 0.907241977915295820f, - 0.420609074448402510f, 0.906595704514915330f, 0.422000270799799680f, - 0.905947297807268460f, 0.423390474143796050f, 0.905296759318118820f, - 0.424779681209108810f, 0.904644090578246240f, 0.426167888726799620f, - 0.903989293123443340f, 0.427555093430282080f, 0.903332368494511820f, - 0.428941292055329490f, 0.902673318237258830f, 0.430326481340082610f, - 0.902012143902493180f, 0.431710658025057260f, 0.901348847046022030f, - 0.433093818853151960f, 0.900683429228646970f, 0.434475960569655650f, - 0.900015892016160280f, 0.435857079922255470f, 0.899346236979341570f, - 0.437237173661044090f, 0.898674465693953820f, 0.438616238538527660f, - 0.898000579740739880f, 0.439994271309633260f, 0.897324580705418320f, - 0.441371268731716670f, 0.896646470178680150f, 0.442747227564570020f, - 0.895966249756185220f, 0.444122144570429200f, 0.895283921038557580f, - 0.445496016513981740f, 0.894599485631382700f, 0.446868840162374160f, - 0.893912945145203250f, 0.448240612285219890f, 0.893224301195515320f, - 0.449611329654606540f, 0.892533555402764580f, 0.450980989045103860f, - 0.891840709392342720f, 0.452349587233770890f, 0.891145764794583180f, - 0.453717121000163870f, 0.890448723244757880f, 0.455083587126343840f, - 0.889749586383072780f, 0.456448982396883920f, 0.889048355854664570f, - 0.457813303598877170f, 0.888345033309596350f, 0.459176547521944090f, - 0.887639620402853930f, 0.460538710958240010f, 0.886932118794342190f, - 0.461899790702462730f, 0.886222530148880640f, 0.463259783551860150f, - 0.885510856136199950f, 0.464618686306237820f, 0.884797098430937790f, - 0.465976495767966180f, 0.884081258712634990f, 0.467333208741988420f, - 0.883363338665731580f, 0.468688822035827900f, 0.882643339979562790f, - 0.470043332459595620f, 0.881921264348355050f, 0.471396736825997640f, - 0.881197113471222090f, 0.472749031950342790f, 0.880470889052160750f, - 0.474100214650549970f, 0.879742592800047410f, 0.475450281747155870f, - 0.879012226428633530f, 0.476799230063322090f, 0.878279791656541580f, - 0.478147056424843010f, 0.877545290207261350f, 0.479493757660153010f, - 0.876808723809145650f, 0.480839330600333960f, 0.876070094195406600f, - 0.482183772079122720f, 0.875329403104110890f, 0.483527078932918740f, - 0.874586652278176110f, 0.484869248000791060f, 0.873841843465366860f, - 0.486210276124486420f, 0.873094978418290090f, 0.487550160148436000f, - 0.872346058894391540f, 0.488888896919763170f, 0.871595086655950980f, - 0.490226483288291160f, 0.870842063470078980f, 0.491562916106549900f, - 0.870086991108711460f, 0.492898192229784040f, 0.869329871348606840f, - 0.494232308515959670f, 0.868570705971340900f, 0.495565261825772540f, - 0.867809496763303320f, 0.496897049022654470f, 0.867046245515692650f, - 0.498227666972781870f, 0.866280954024512990f, 0.499557112545081840f, - 0.865513624090569090f, 0.500885382611240710f, 0.864744257519462380f, - 0.502212474045710790f, 0.863972856121586810f, 0.503538383725717580f, - 0.863199421712124160f, 0.504863108531267590f, 0.862423956111040610f, - 0.506186645345155230f, 0.861646461143081300f, 0.507508991052970870f, - 0.860866938637767310f, 0.508830142543106990f, 0.860085390429390140f, - 0.510150096706766810f, 0.859301818357008470f, 0.511468850437970300f, - 0.858516224264442740f, 0.512786400633562960f, 0.857728610000272120f, - 0.514102744193221660f, 0.856938977417828760f, 0.515417878019462930f, - 0.856147328375194470f, 0.516731799017649870f, 0.855353664735196030f, - 0.518044504095999340f, 0.854557988365400530f, 0.519355990165589640f, - 0.853760301138111410f, 0.520666254140367160f, 0.852960604930363630f, - 0.521975292937154390f, 0.852158901623919830f, 0.523283103475656430f, - 0.851355193105265200f, 0.524589682678468950f, 0.850549481265603480f, - 0.525895027471084630f, 0.849741768000852550f, 0.527199134781901280f, - 0.848932055211639610f, 0.528502001542228480f, 0.848120344803297230f, - 0.529803624686294610f, 0.847306638685858320f, 0.531104001151255000f, - 0.846490938774052130f, 0.532403127877197900f, 0.845673246987299070f, - 0.533701001807152960f, 0.844853565249707120f, 0.534997619887097150f, - 0.844031895490066410f, 0.536292979065963180f, 0.843208239641845440f, - 0.537587076295645390f, 0.842382599643185850f, 0.538879908531008420f, - 0.841554977436898440f, 0.540171472729892850f, 0.840725374970458070f, - 0.541461765853123440f, 0.839893794195999520f, 0.542750784864515890f, - 0.839060237070312740f, 0.544038526730883820f, 0.838224705554838080f, - 0.545324988422046460f, 0.837387201615661940f, 0.546610166910834860f, - 0.836547727223512010f, 0.547894059173100190f, 0.835706284353752600f, - 0.549176662187719660f, 0.834862874986380010f, 0.550457972936604810f, - 0.834017501106018130f, 0.551737988404707340f, 0.833170164701913190f, - 0.553016705580027470f, 0.832320867767929680f, 0.554294121453620000f, - 0.831469612302545240f, 0.555570233019602180f, 0.830616400308846310f, - 0.556845037275160100f, 0.829761233794523050f, 0.558118531220556100f, - 0.828904114771864870f, 0.559390711859136140f, 0.828045045257755800f, - 0.560661576197336030f, 0.827184027273669130f, 0.561931121244689470f, - 0.826321062845663530f, 0.563199344013834090f, 0.825456154004377550f, - 0.564466241520519500f, 0.824589302785025290f, 0.565731810783613120f, - 0.823720511227391430f, 0.566996048825108680f, 0.822849781375826430f, - 0.568258952670131490f, 0.821977115279241550f, 0.569520519346947140f, - 0.821102514991104650f, 0.570780745886967260f, 0.820225982569434690f, - 0.572039629324757050f, 0.819347520076796900f, 0.573297166698042200f, - 0.818467129580298660f, 0.574553355047715760f, 0.817584813151583710f, - 0.575808191417845340f, 0.816700572866827850f, 0.577061672855679440f, - 0.815814410806733780f, 0.578313796411655590f, 0.814926329056526620f, - 0.579564559139405630f, 0.814036329705948410f, 0.580813958095764530f, - 0.813144414849253590f, 0.582061990340775440f, 0.812250586585203880f, - 0.583308652937698290f, 0.811354847017063730f, 0.584553942953015330f, - 0.810457198252594770f, 0.585797857456438860f, 0.809557642404051260f, - 0.587040393520917970f, 0.808656181588174980f, 0.588281548222645220f, - 0.807752817926190360f, 0.589521318641063940f, 0.806847553543799330f, - 0.590759701858874160f, 0.805940390571176280f, 0.591996694962040990f, - 0.805031331142963660f, 0.593232295039799800f, 0.804120377398265810f, - 0.594466499184664430f, 0.803207531480644940f, 0.595699304492433360f, - 0.802292795538115720f, 0.596930708062196500f, 0.801376171723140240f, - 0.598160706996342270f, 0.800457662192622820f, 0.599389298400564540f, - 0.799537269107905010f, 0.600616479383868970f, 0.798614994634760820f, - 0.601842247058580030f, 0.797690840943391160f, 0.603066598540348160f, - 0.796764810208418830f, 0.604289530948155960f, 0.795836904608883570f, - 0.605511041404325550f, 0.794907126328237010f, 0.606731127034524480f, - 0.793975477554337170f, 0.607949784967773630f, 0.793041960479443640f, - 0.609167012336453210f, 0.792106577300212390f, 0.610382806276309480f, - 0.791169330217690200f, 0.611597163926461910f, 0.790230221437310030f, - 0.612810082429409710f, 0.789289253168885650f, 0.614021558931038380f, - 0.788346427626606340f, 0.615231590580626820f, 0.787401747029031430f, - 0.616440174530853650f, 0.786455213599085770f, 0.617647307937803870f, - 0.785506829564053930f, 0.618852987960976320f, 0.784556597155575240f, - 0.620057211763289100f, 0.783604518609638200f, 0.621259976511087550f, - 0.782650596166575730f, 0.622461279374149970f, 0.781694832071059390f, - 0.623661117525694530f, 0.780737228572094490f, 0.624859488142386340f, - 0.779777787923014550f, 0.626056388404343520f, 0.778816512381475980f, - 0.627251815495144080f, 0.777853404209453150f, 0.628445766601832710f, - 0.776888465673232440f, 0.629638238914926980f, 0.775921699043407690f, - 0.630829229628424470f, 0.774953106594873930f, 0.632018735939809060f, - 0.773982690606822900f, 0.633206755050057190f, 0.773010453362736990f, - 0.634393284163645490f, 0.772036397150384520f, 0.635578320488556110f, - 0.771060524261813820f, 0.636761861236284200f, 0.770082836993347900f, - 0.637943903621844060f, 0.769103337645579700f, 0.639124444863775730f, - 0.768122028523365420f, 0.640303482184151670f, 0.767138911935820400f, - 0.641481012808583160f, 0.766153990196312920f, 0.642657033966226860f, - 0.765167265622458960f, 0.643831542889791390f, 0.764178740536116670f, - 0.645004536815543930f, 0.763188417263381270f, 0.646176012983316280f, - 0.762196298134578900f, 0.647345968636512060f, 0.761202385484261780f, - 0.648514401022112440f, 0.760206681651202420f, 0.649681307390683190f, - 0.759209188978388070f, 0.650846684996380880f, 0.758209909813015280f, - 0.652010531096959500f, 0.757208846506484570f, 0.653172842953776760f, - 0.756206001414394540f, 0.654333617831800440f, 0.755201376896536550f, - 0.655492852999615350f, 0.754194975316889170f, 0.656650545729428940f, - 0.753186799043612520f, 0.657806693297078640f, 0.752176850449042810f, - 0.658961292982037320f, 0.751165131909686480f, 0.660114342067420480f, - 0.750151645806215070f, 0.661265837839992270f, 0.749136394523459370f, - 0.662415777590171780f, 0.748119380450403600f, 0.663564158612039770f, - 0.747100605980180130f, 0.664710978203344790f, 0.746080073510063780f, - 0.665856233665509720f, 0.745057785441466060f, 0.666999922303637470f, - 0.744033744179929290f, 0.668142041426518450f, 0.743007952135121720f, - 0.669282588346636010f, 0.741980411720831070f, 0.670421560380173090f, - 0.740951125354959110f, 0.671558954847018330f, 0.739920095459516200f, - 0.672694769070772860f, 0.738887324460615110f, 0.673829000378756040f, - 0.737852814788465980f, 0.674961646102011930f, 0.736816568877369900f, - 0.676092703575315920f, 0.735778589165713590f, 0.677222170137180330f, - 0.734738878095963500f, 0.678350043129861470f, 0.733697438114660370f, - 0.679476319899364970f, 0.732654271672412820f, 0.680600997795453020f, - 0.731609381223892630f, 0.681724074171649710f, 0.730562769227827590f, - 0.682845546385248080f, 0.729514438146997010f, 0.683965411797315400f, - 0.728464390448225200f, 0.685083667772700360f, 0.727412628602375770f, - 0.686200311680038590f, 0.726359155084346010f, 0.687315340891759050f, - 0.725303972373060770f, 0.688428752784090440f, 0.724247082951467000f, - 0.689540544737066830f, 0.723188489306527460f, 0.690650714134534600f, - 0.722128193929215350f, 0.691759258364157750f, 0.721066199314508110f, - 0.692866174817424630f, 0.720002507961381650f, 0.693971460889654000f, - 0.718937122372804490f, 0.695075113980000880f, 0.717870045055731710f, - 0.696177131491462990f, 0.716801278521099540f, 0.697277510830886520f, - 0.715730825283818590f, 0.698376249408972920f, 0.714658687862769090f, - 0.699473344640283770f, 0.713584868780793640f, 0.700568793943248340f, - 0.712509370564692320f, 0.701662594740168450f, 0.711432195745216430f, - 0.702754744457225300f, 0.710353346857062420f, 0.703845240524484940f, - 0.709272826438865690f, 0.704934080375904880f, 0.708190637033195400f, - 0.706021261449339740f, 0.707106781186547570f, 0.707106781186547460f, - 0.706021261449339740f, 0.708190637033195290f, 0.704934080375904990f, - 0.709272826438865580f, 0.703845240524484940f, 0.710353346857062310f, - 0.702754744457225300f, 0.711432195745216430f, 0.701662594740168570f, - 0.712509370564692320f, 0.700568793943248450f, 0.713584868780793520f, - 0.699473344640283770f, 0.714658687862768980f, 0.698376249408972920f, - 0.715730825283818590f, 0.697277510830886630f, 0.716801278521099540f, - 0.696177131491462990f, 0.717870045055731710f, 0.695075113980000880f, - 0.718937122372804380f, 0.693971460889654000f, 0.720002507961381650f, - 0.692866174817424740f, 0.721066199314508110f, 0.691759258364157750f, - 0.722128193929215350f, 0.690650714134534720f, 0.723188489306527350f, - 0.689540544737066940f, 0.724247082951466890f, 0.688428752784090550f, - 0.725303972373060660f, 0.687315340891759160f, 0.726359155084346010f, - 0.686200311680038700f, 0.727412628602375770f, 0.685083667772700360f, - 0.728464390448225200f, 0.683965411797315510f, 0.729514438146996900f, - 0.682845546385248080f, 0.730562769227827590f, 0.681724074171649820f, - 0.731609381223892520f, 0.680600997795453130f, 0.732654271672412820f, - 0.679476319899365080f, 0.733697438114660260f, 0.678350043129861580f, - 0.734738878095963390f, 0.677222170137180450f, 0.735778589165713480f, - 0.676092703575316030f, 0.736816568877369790f, 0.674961646102012040f, - 0.737852814788465980f, 0.673829000378756150f, 0.738887324460615110f, - 0.672694769070772970f, 0.739920095459516090f, 0.671558954847018330f, - 0.740951125354959110f, 0.670421560380173090f, 0.741980411720830960f, - 0.669282588346636010f, 0.743007952135121720f, 0.668142041426518560f, - 0.744033744179929180f, 0.666999922303637470f, 0.745057785441465950f, - 0.665856233665509720f, 0.746080073510063780f, 0.664710978203344900f, - 0.747100605980180130f, 0.663564158612039880f, 0.748119380450403490f, - 0.662415777590171780f, 0.749136394523459260f, 0.661265837839992270f, - 0.750151645806214960f, 0.660114342067420480f, 0.751165131909686370f, - 0.658961292982037320f, 0.752176850449042700f, 0.657806693297078640f, - 0.753186799043612410f, 0.656650545729429050f, 0.754194975316889170f, - 0.655492852999615460f, 0.755201376896536550f, 0.654333617831800550f, - 0.756206001414394540f, 0.653172842953776760f, 0.757208846506484460f, - 0.652010531096959500f, 0.758209909813015280f, 0.650846684996380990f, - 0.759209188978387960f, 0.649681307390683190f, 0.760206681651202420f, - 0.648514401022112550f, 0.761202385484261780f, 0.647345968636512060f, - 0.762196298134578900f, 0.646176012983316390f, 0.763188417263381270f, - 0.645004536815544040f, 0.764178740536116670f, 0.643831542889791500f, - 0.765167265622458960f, 0.642657033966226860f, 0.766153990196312810f, - 0.641481012808583160f, 0.767138911935820400f, 0.640303482184151670f, - 0.768122028523365310f, 0.639124444863775730f, 0.769103337645579590f, - 0.637943903621844170f, 0.770082836993347900f, 0.636761861236284200f, - 0.771060524261813710f, 0.635578320488556230f, 0.772036397150384410f, - 0.634393284163645490f, 0.773010453362736990f, 0.633206755050057190f, - 0.773982690606822790f, 0.632018735939809060f, 0.774953106594873820f, - 0.630829229628424470f, 0.775921699043407580f, 0.629638238914927100f, - 0.776888465673232440f, 0.628445766601832710f, 0.777853404209453040f, - 0.627251815495144190f, 0.778816512381475870f, 0.626056388404343520f, - 0.779777787923014440f, 0.624859488142386450f, 0.780737228572094380f, - 0.623661117525694640f, 0.781694832071059390f, 0.622461279374150080f, - 0.782650596166575730f, 0.621259976511087660f, 0.783604518609638200f, - 0.620057211763289210f, 0.784556597155575240f, 0.618852987960976320f, - 0.785506829564053930f, 0.617647307937803980f, 0.786455213599085770f, - 0.616440174530853650f, 0.787401747029031320f, 0.615231590580626820f, - 0.788346427626606230f, 0.614021558931038490f, 0.789289253168885650f, - 0.612810082429409710f, 0.790230221437310030f, 0.611597163926462020f, - 0.791169330217690090f, 0.610382806276309480f, 0.792106577300212390f, - 0.609167012336453210f, 0.793041960479443640f, 0.607949784967773740f, - 0.793975477554337170f, 0.606731127034524480f, 0.794907126328237010f, - 0.605511041404325550f, 0.795836904608883460f, 0.604289530948156070f, - 0.796764810208418720f, 0.603066598540348280f, 0.797690840943391040f, - 0.601842247058580030f, 0.798614994634760820f, 0.600616479383868970f, - 0.799537269107905010f, 0.599389298400564540f, 0.800457662192622710f, - 0.598160706996342380f, 0.801376171723140130f, 0.596930708062196500f, - 0.802292795538115720f, 0.595699304492433470f, 0.803207531480644830f, - 0.594466499184664540f, 0.804120377398265700f, 0.593232295039799800f, - 0.805031331142963660f, 0.591996694962040990f, 0.805940390571176280f, - 0.590759701858874280f, 0.806847553543799220f, 0.589521318641063940f, - 0.807752817926190360f, 0.588281548222645330f, 0.808656181588174980f, - 0.587040393520918080f, 0.809557642404051260f, 0.585797857456438860f, - 0.810457198252594770f, 0.584553942953015330f, 0.811354847017063730f, - 0.583308652937698290f, 0.812250586585203880f, 0.582061990340775550f, - 0.813144414849253590f, 0.580813958095764530f, 0.814036329705948300f, - 0.579564559139405740f, 0.814926329056526620f, 0.578313796411655590f, - 0.815814410806733780f, 0.577061672855679550f, 0.816700572866827850f, - 0.575808191417845340f, 0.817584813151583710f, 0.574553355047715760f, - 0.818467129580298660f, 0.573297166698042320f, 0.819347520076796900f, - 0.572039629324757050f, 0.820225982569434690f, 0.570780745886967370f, - 0.821102514991104650f, 0.569520519346947250f, 0.821977115279241550f, - 0.568258952670131490f, 0.822849781375826320f, 0.566996048825108680f, - 0.823720511227391320f, 0.565731810783613230f, 0.824589302785025290f, - 0.564466241520519500f, 0.825456154004377440f, 0.563199344013834090f, - 0.826321062845663420f, 0.561931121244689470f, 0.827184027273669020f, - 0.560661576197336030f, 0.828045045257755800f, 0.559390711859136140f, - 0.828904114771864870f, 0.558118531220556100f, 0.829761233794523050f, - 0.556845037275160100f, 0.830616400308846200f, 0.555570233019602290f, - 0.831469612302545240f, 0.554294121453620110f, 0.832320867767929680f, - 0.553016705580027580f, 0.833170164701913190f, 0.551737988404707450f, - 0.834017501106018130f, 0.550457972936604810f, 0.834862874986380010f, - 0.549176662187719770f, 0.835706284353752600f, 0.547894059173100190f, - 0.836547727223511890f, 0.546610166910834860f, 0.837387201615661940f, - 0.545324988422046460f, 0.838224705554837970f, 0.544038526730883930f, - 0.839060237070312630f, 0.542750784864516000f, 0.839893794195999410f, - 0.541461765853123560f, 0.840725374970458070f, 0.540171472729892970f, - 0.841554977436898330f, 0.538879908531008420f, 0.842382599643185960f, - 0.537587076295645510f, 0.843208239641845440f, 0.536292979065963180f, - 0.844031895490066410f, 0.534997619887097260f, 0.844853565249707010f, - 0.533701001807152960f, 0.845673246987299070f, 0.532403127877198010f, - 0.846490938774052020f, 0.531104001151255000f, 0.847306638685858320f, - 0.529803624686294830f, 0.848120344803297120f, 0.528502001542228480f, - 0.848932055211639610f, 0.527199134781901390f, 0.849741768000852440f, - 0.525895027471084740f, 0.850549481265603370f, 0.524589682678468840f, - 0.851355193105265200f, 0.523283103475656430f, 0.852158901623919830f, - 0.521975292937154390f, 0.852960604930363630f, 0.520666254140367270f, - 0.853760301138111300f, 0.519355990165589530f, 0.854557988365400530f, - 0.518044504095999340f, 0.855353664735196030f, 0.516731799017649980f, - 0.856147328375194470f, 0.515417878019463150f, 0.856938977417828650f, - 0.514102744193221660f, 0.857728610000272120f, 0.512786400633563070f, - 0.858516224264442740f, 0.511468850437970520f, 0.859301818357008360f, - 0.510150096706766700f, 0.860085390429390140f, 0.508830142543106990f, - 0.860866938637767310f, 0.507508991052970870f, 0.861646461143081300f, - 0.506186645345155450f, 0.862423956111040500f, 0.504863108531267480f, - 0.863199421712124160f, 0.503538383725717580f, 0.863972856121586700f, - 0.502212474045710900f, 0.864744257519462380f, 0.500885382611240940f, - 0.865513624090568980f, 0.499557112545081890f, 0.866280954024512990f, - 0.498227666972781870f, 0.867046245515692650f, 0.496897049022654640f, - 0.867809496763303210f, 0.495565261825772490f, 0.868570705971340900f, - 0.494232308515959730f, 0.869329871348606730f, 0.492898192229784090f, - 0.870086991108711350f, 0.491562916106550060f, 0.870842063470078860f, - 0.490226483288291100f, 0.871595086655951090f, 0.488888896919763230f, - 0.872346058894391540f, 0.487550160148436050f, 0.873094978418290090f, - 0.486210276124486530f, 0.873841843465366750f, 0.484869248000791120f, - 0.874586652278176110f, 0.483527078932918740f, 0.875329403104110780f, - 0.482183772079122830f, 0.876070094195406600f, 0.480839330600333900f, - 0.876808723809145760f, 0.479493757660153010f, 0.877545290207261240f, - 0.478147056424843120f, 0.878279791656541460f, 0.476799230063322250f, - 0.879012226428633410f, 0.475450281747155870f, 0.879742592800047410f, - 0.474100214650550020f, 0.880470889052160750f, 0.472749031950342900f, - 0.881197113471221980f, 0.471396736825997810f, 0.881921264348354940f, - 0.470043332459595620f, 0.882643339979562790f, 0.468688822035827960f, - 0.883363338665731580f, 0.467333208741988530f, 0.884081258712634990f, - 0.465976495767966130f, 0.884797098430937790f, 0.464618686306237820f, - 0.885510856136199950f, 0.463259783551860260f, 0.886222530148880640f, - 0.461899790702462840f, 0.886932118794342080f, 0.460538710958240010f, - 0.887639620402853930f, 0.459176547521944150f, 0.888345033309596240f, - 0.457813303598877290f, 0.889048355854664570f, 0.456448982396883860f, - 0.889749586383072890f, 0.455083587126343840f, 0.890448723244757880f, - 0.453717121000163930f, 0.891145764794583180f, 0.452349587233771000f, - 0.891840709392342720f, 0.450980989045103810f, 0.892533555402764690f, - 0.449611329654606600f, 0.893224301195515320f, 0.448240612285220000f, - 0.893912945145203250f, 0.446868840162374330f, 0.894599485631382580f, - 0.445496016513981740f, 0.895283921038557580f, 0.444122144570429260f, - 0.895966249756185110f, 0.442747227564570130f, 0.896646470178680150f, - 0.441371268731716620f, 0.897324580705418320f, 0.439994271309633260f, - 0.898000579740739880f, 0.438616238538527710f, 0.898674465693953820f, - 0.437237173661044200f, 0.899346236979341460f, 0.435857079922255470f, - 0.900015892016160280f, 0.434475960569655710f, 0.900683429228646860f, - 0.433093818853152010f, 0.901348847046022030f, 0.431710658025057370f, - 0.902012143902493070f, 0.430326481340082610f, 0.902673318237258830f, - 0.428941292055329550f, 0.903332368494511820f, 0.427555093430282200f, - 0.903989293123443340f, 0.426167888726799620f, 0.904644090578246240f, - 0.424779681209108810f, 0.905296759318118820f, 0.423390474143796100f, - 0.905947297807268460f, 0.422000270799799790f, 0.906595704514915330f, - 0.420609074448402510f, 0.907241977915295930f, 0.419216888363223960f, - 0.907886116487666150f, 0.417823715820212380f, 0.908528118716306120f, - 0.416429560097637320f, 0.909167983090522270f, 0.415034424476081630f, - 0.909805708104652220f, 0.413638312238434560f, 0.910441292258067140f, - 0.412241226669883000f, 0.911074734055176250f, 0.410843171057903910f, - 0.911706032005429880f, 0.409444148692257590f, 0.912335184623322750f, - 0.408044162864978740f, 0.912962190428398100f, 0.406643216870369140f, - 0.913587047945250810f, 0.405241314004989860f, 0.914209755703530690f, - 0.403838457567654130f, 0.914830312237946090f, 0.402434650859418540f, - 0.915448716088267830f, 0.401029897183575790f, 0.916064965799331610f, - 0.399624199845646790f, 0.916679059921042700f, 0.398217562153373620f, - 0.917290997008377910f, 0.396809987416710420f, 0.917900775621390390f, - 0.395401478947816300f, 0.918508394325212250f, 0.393992040061048100f, - 0.919113851690057770f, 0.392581674072951530f, 0.919717146291227360f, - 0.391170384302253980f, 0.920318276709110480f, 0.389758174069856410f, - 0.920917241529189520f, 0.388345046698826300f, 0.921514039342041900f, - 0.386931005514388690f, 0.922108668743345070f, 0.385516053843919020f, - 0.922701128333878520f, 0.384100195016935040f, 0.923291416719527640f, - 0.382683432365089840f, 0.923879532511286740f, 0.381265769222162490f, - 0.924465474325262600f, 0.379847208924051110f, 0.925049240782677580f, - 0.378427754808765620f, 0.925630830509872720f, 0.377007410216418310f, - 0.926210242138311270f, 0.375586178489217330f, 0.926787474304581750f, - 0.374164062971457990f, 0.927362525650401110f, 0.372741067009515810f, - 0.927935394822617890f, 0.371317193951837600f, 0.928506080473215480f, - 0.369892447148934270f, 0.929074581259315750f, 0.368466829953372320f, - 0.929640895843181330f, 0.367040345719767240f, 0.930205022892219070f, - 0.365612997804773960f, 0.930766961078983710f, 0.364184789567079840f, - 0.931326709081180430f, 0.362755724367397230f, 0.931884265581668150f, - 0.361325805568454340f, 0.932439629268462360f, 0.359895036534988280f, - 0.932992798834738850f, 0.358463420633736540f, 0.933543772978836170f, - 0.357030961233430030f, 0.934092550404258870f, 0.355597661704783960f, - 0.934639129819680780f, 0.354163525420490510f, 0.935183509938947500f, - 0.352728555755210730f, 0.935725689481080370f, 0.351292756085567150f, - 0.936265667170278260f, 0.349856129790135030f, 0.936803441735921560f, - 0.348418680249434510f, 0.937339011912574960f, 0.346980410845923680f, - 0.937872376439989890f, 0.345541324963989150f, 0.938403534063108060f, - 0.344101425989938980f, 0.938932483532064490f, 0.342660717311994380f, - 0.939459223602189920f, 0.341219202320282410f, 0.939983753034013940f, - 0.339776884406826960f, 0.940506070593268300f, 0.338333766965541290f, - 0.941026175050889260f, 0.336889853392220050f, 0.941544065183020810f, - 0.335445147084531660f, 0.942059739771017310f, 0.333999651442009490f, - 0.942573197601446870f, 0.332553369866044220f, 0.943084437466093490f, - 0.331106305759876430f, 0.943593458161960390f, 0.329658462528587550f, - 0.944100258491272660f, 0.328209843579092660f, 0.944604837261480260f, - 0.326760452320131790f, 0.945107193285260610f, 0.325310292162262980f, - 0.945607325380521280f, 0.323859366517852960f, 0.946105232370403340f, - 0.322407678801070020f, 0.946600913083283530f, 0.320955232427875210f, - 0.947094366352777220f, 0.319502030816015750f, 0.947585591017741090f, - 0.318048077385015060f, 0.948074585922276230f, 0.316593375556165850f, - 0.948561349915730270f, 0.315137928752522440f, 0.949045881852700560f, - 0.313681740398891570f, 0.949528180593036670f, 0.312224813921825050f, - 0.950008245001843000f, 0.310767152749611470f, 0.950486073949481700f, - 0.309308760312268780f, 0.950961666311575080f, 0.307849640041534980f, - 0.951435020969008340f, 0.306389795370861080f, 0.951906136807932230f, - 0.304929229735402430f, 0.952375012719765880f, 0.303467946572011370f, - 0.952841647601198720f, 0.302005949319228200f, 0.953306040354193750f, - 0.300543241417273400f, 0.953768189885990330f, 0.299079826308040480f, - 0.954228095109105670f, 0.297615707435086310f, 0.954685754941338340f, - 0.296150888243623960f, 0.955141168305770670f, 0.294685372180514330f, - 0.955594334130771110f, 0.293219162694258680f, 0.956045251349996410f, - 0.291752263234989370f, 0.956493918902394990f, 0.290284677254462330f, - 0.956940335732208940f, 0.288816408206049480f, 0.957384500788975860f, - 0.287347459544729570f, 0.957826413027532910f, 0.285877834727080730f, - 0.958266071408017670f, 0.284407537211271820f, 0.958703474895871600f, - 0.282936570457055390f, 0.959138622461841890f, 0.281464937925758050f, - 0.959571513081984520f, 0.279992643080273380f, 0.960002145737665850f, - 0.278519689385053060f, 0.960430519415565790f, 0.277046080306099950f, - 0.960856633107679660f, 0.275571819310958250f, 0.961280485811320640f, - 0.274096909868706330f, 0.961702076529122540f, 0.272621355449948980f, - 0.962121404269041580f, 0.271145159526808070f, 0.962538468044359160f, - 0.269668325572915200f, 0.962953266873683880f, 0.268190857063403180f, - 0.963365799780954050f, 0.266712757474898420f, 0.963776065795439840f, - 0.265234030285511900f, 0.964184063951745720f, 0.263754678974831510f, - 0.964589793289812650f, 0.262274707023913590f, 0.964993252854920320f, - 0.260794117915275570f, 0.965394441697689400f, 0.259312915132886350f, - 0.965793358874083570f, 0.257831102162158930f, 0.966190003445412620f, - 0.256348682489942910f, 0.966584374478333120f, 0.254865659604514630f, - 0.966976471044852070f, 0.253382036995570270f, 0.967366292222328510f, - 0.251897818154216910f, 0.967753837093475510f, 0.250413006572965280f, - 0.968139104746362330f, 0.248927605745720260f, 0.968522094274417270f, - 0.247441619167773440f, 0.968902804776428870f, 0.245955050335794590f, - 0.969281235356548530f, 0.244467902747824210f, 0.969657385124292450f, - 0.242980179903263980f, 0.970031253194543970f, 0.241491885302869300f, - 0.970402838687555500f, 0.240003022448741500f, 0.970772140728950350f, - 0.238513594844318500f, 0.971139158449725090f, 0.237023605994367340f, - 0.971503890986251780f, 0.235533059404975460f, 0.971866337480279400f, - 0.234041958583543460f, 0.972226497078936270f, 0.232550307038775330f, - 0.972584368934732210f, 0.231058108280671280f, 0.972939952205560070f, - 0.229565365820518870f, 0.973293246054698250f, 0.228072083170885790f, - 0.973644249650811870f, 0.226578263845610110f, 0.973992962167955830f, - 0.225083911359792780f, 0.974339382785575860f, 0.223589029229790020f, - 0.974683510688510670f, 0.222093620973203590f, 0.975025345066994120f, - 0.220597690108873650f, 0.975364885116656870f, 0.219101240156869770f, - 0.975702130038528570f, 0.217604274638483670f, 0.976037079039039020f, - 0.216106797076219600f, 0.976369731330021140f, 0.214608810993786920f, - 0.976700086128711840f, 0.213110319916091360f, 0.977028142657754390f, - 0.211611327369227610f, 0.977353900145199960f, 0.210111836880469720f, - 0.977677357824509930f, 0.208611851978263460f, 0.977998514934557140f, - 0.207111376192218560f, 0.978317370719627650f, 0.205610413053099320f, - 0.978633924429423100f, 0.204108966092817010f, 0.978948175319062200f, - 0.202607038844421110f, 0.979260122649082020f, 0.201104634842091960f, - 0.979569765685440520f, 0.199601757621131050f, 0.979877103699517640f, - 0.198098410717953730f, 0.980182135968117320f, 0.196594597670080220f, - 0.980484861773469380f, 0.195090322016128330f, 0.980785280403230430f, - 0.193585587295803750f, 0.981083391150486590f, 0.192080397049892380f, - 0.981379193313754560f, 0.190574754820252800f, 0.981672686196983110f, - 0.189068664149806280f, 0.981963869109555240f, 0.187562128582529740f, - 0.982252741366289370f, 0.186055151663446630f, 0.982539302287441240f, - 0.184547736938619640f, 0.982823551198705240f, 0.183039887955141060f, - 0.983105487431216290f, 0.181531608261125130f, 0.983385110321551180f, - 0.180022901405699510f, 0.983662419211730250f, 0.178513770938997590f, - 0.983937413449218920f, 0.177004220412148860f, 0.984210092386929030f, - 0.175494253377271400f, 0.984480455383220930f, 0.173983873387463850f, - 0.984748501801904210f, 0.172473083996796030f, 0.985014231012239840f, - 0.170961888760301360f, 0.985277642388941220f, 0.169450291233967930f, - 0.985538735312176060f, 0.167938294974731230f, 0.985797509167567370f, - 0.166425903540464220f, 0.986053963346195440f, 0.164913120489970090f, - 0.986308097244598670f, 0.163399949382973230f, 0.986559910264775410f, - 0.161886393780111910f, 0.986809401814185420f, 0.160372457242928400f, - 0.987056571305750970f, 0.158858143333861390f, 0.987301418157858430f, - 0.157343455616238280f, 0.987543941794359230f, 0.155828397654265320f, - 0.987784141644572180f, 0.154312973013020240f, 0.988022017143283530f, - 0.152797185258443410f, 0.988257567730749460f, 0.151281037957330250f, - 0.988490792852696590f, 0.149764534677321620f, 0.988721691960323780f, - 0.148247678986896200f, 0.988950264510302990f, 0.146730474455361750f, - 0.989176509964781010f, 0.145212924652847520f, 0.989400427791380380f, - 0.143695033150294580f, 0.989622017463200780f, 0.142176803519448000f, - 0.989841278458820530f, 0.140658239332849240f, 0.990058210262297120f, - 0.139139344163826280f, 0.990272812363169110f, 0.137620121586486180f, - 0.990485084256456980f, 0.136100575175706200f, 0.990695025442664630f, - 0.134580708507126220f, 0.990902635427780010f, 0.133060525157139180f, - 0.991107913723276780f, 0.131540028702883280f, 0.991310859846115440f, - 0.130019222722233350f, 0.991511473318743900f, 0.128498110793793220f, - 0.991709753669099530f, 0.126976696496885980f, 0.991905700430609330f, - 0.125454983411546210f, 0.992099313142191800f, 0.123932975118512200f, - 0.992290591348257370f, 0.122410675199216280f, 0.992479534598709970f, - 0.120888087235777220f, 0.992666142448948020f, 0.119365214810991350f, - 0.992850414459865100f, 0.117842061508325020f, 0.993032350197851410f, - 0.116318630911904880f, 0.993211949234794500f, 0.114794926606510250f, - 0.993389211148080650f, 0.113270952177564360f, 0.993564135520595300f, - 0.111746711211126660f, 0.993736721940724600f, 0.110222207293883180f, - 0.993906970002356060f, 0.108697444013138670f, 0.994074879304879370f, - 0.107172424956808870f, 0.994240449453187900f, 0.105647153713410700f, - 0.994403680057679100f, 0.104121633872054730f, 0.994564570734255420f, - 0.102595869022436280f, 0.994723121104325700f, 0.101069862754827880f, - 0.994879330794805620f, 0.099543618660069444f, 0.995033199438118630f, - 0.098017140329560770f, 0.995184726672196820f, 0.096490431355252607f, - 0.995333912140482280f, 0.094963495329639061f, 0.995480755491926940f, - 0.093436335845747912f, 0.995625256380994310f, 0.091908956497132696f, - 0.995767414467659820f, 0.090381360877865011f, 0.995907229417411720f, - 0.088853552582524684f, 0.996044700901251970f, 0.087325535206192226f, - 0.996179828595696870f, 0.085797312344439880f, 0.996312612182778000f, - 0.084268887593324127f, 0.996443051350042630f, 0.082740264549375803f, - 0.996571145790554840f, 0.081211446809592386f, 0.996696895202896060f, - 0.079682437971430126f, 0.996820299291165670f, 0.078153241632794315f, - 0.996941357764982160f, 0.076623861392031617f, 0.997060070339482960f, - 0.075094300847921291f, 0.997176436735326190f, 0.073564563599667454f, - 0.997290456678690210f, 0.072034653246889416f, 0.997402129901275300f, - 0.070504573389614009f, 0.997511456140303450f, 0.068974327628266732f, - 0.997618435138519550f, 0.067443919563664106f, 0.997723066644191640f, - 0.065913352797003930f, 0.997825350411111640f, 0.064382630929857410f, - 0.997925286198596000f, 0.062851757564161420f, 0.998022873771486240f, - 0.061320736302208648f, 0.998118112900149180f, 0.059789570746640007f, - 0.998211003360478190f, 0.058258264500435732f, 0.998301544933892890f, - 0.056726821166907783f, 0.998389737407340160f, 0.055195244349690031f, - 0.998475580573294770f, 0.053663537652730679f, 0.998559074229759310f, - 0.052131704680283317f, 0.998640218180265270f, 0.050599749036899337f, - 0.998719012233872940f, 0.049067674327418126f, 0.998795456205172410f, - 0.047535484156959261f, 0.998869549914283560f, 0.046003182130914644f, - 0.998941293186856870f, 0.044470771854938744f, 0.999010685854073380f, - 0.042938256934940959f, 0.999077727752645360f, 0.041405640977076712f, - 0.999142418724816910f, 0.039872927587739845f, 0.999204758618363890f, - 0.038340120373552791f, 0.999264747286594420f, 0.036807222941358991f, - 0.999322384588349540f, 0.035274238898213947f, 0.999377670388002850f, - 0.033741171851377642f, 0.999430604555461730f, 0.032208025408304704f, - 0.999481186966166950f, 0.030674803176636581f, 0.999529417501093140f, - 0.029141508764193740f, 0.999575296046749220f, 0.027608145778965820f, - 0.999618822495178640f, 0.026074717829104040f, 0.999659996743959220f, - 0.024541228522912264f, 0.999698818696204250f, 0.023007681468839410f, - 0.999735288260561680f, 0.021474080275469605f, 0.999769405351215280f, - 0.019940428551514598f, 0.999801169887884260f, 0.018406729905804820f, - 0.999830581795823400f, 0.016872987947281773f, 0.999857641005823860f, - 0.015339206284988220f, 0.999882347454212560f, 0.013805388528060349f, - 0.999904701082852900f, 0.012271538285719944f, 0.999924701839144500f, - 0.010737659167264572f, 0.999942349676023910f, 0.009203754782059960f, - 0.999957644551963900f, 0.007669828739531077f, 0.999970586430974140f, - 0.006135884649154515f, 0.999981175282601110f, 0.004601926120448672f, - 0.999989411081928400f, 0.003067956762966138f, 0.999995293809576190f, - 0.001533980186284766f, 0.999998823451701880f, 0.000000000000000061f, - 1.000000000000000000f, -0.001533980186284644f, 0.999998823451701880f, - -0.003067956762966016f, 0.999995293809576190f, -0.004601926120448550f, - 0.999989411081928400f, -0.006135884649154393f, 0.999981175282601110f, - -0.007669828739530955f, 0.999970586430974140f, -0.009203754782059837f, - 0.999957644551963900f, -0.010737659167264449f, 0.999942349676023910f, - -0.012271538285719823f, 0.999924701839144500f, -0.013805388528060226f, - 0.999904701082852900f, -0.015339206284988098f, 0.999882347454212560f, - -0.016872987947281651f, 0.999857641005823860f, -0.018406729905804695f, - 0.999830581795823400f, -0.019940428551514476f, 0.999801169887884260f, - -0.021474080275469484f, 0.999769405351215280f, -0.023007681468839289f, - 0.999735288260561680f, -0.024541228522912142f, 0.999698818696204250f, - -0.026074717829103915f, 0.999659996743959220f, -0.027608145778965698f, - 0.999618822495178640f, -0.029141508764193618f, 0.999575296046749220f, - -0.030674803176636459f, 0.999529417501093140f, -0.032208025408304579f, - 0.999481186966166950f, -0.033741171851377517f, 0.999430604555461730f, - -0.035274238898213822f, 0.999377670388002850f, -0.036807222941358866f, - 0.999322384588349540f, -0.038340120373552666f, 0.999264747286594420f, - -0.039872927587739727f, 0.999204758618363890f, -0.041405640977076594f, - 0.999142418724816910f, -0.042938256934940834f, 0.999077727752645360f, - -0.044470771854938619f, 0.999010685854073380f, -0.046003182130914519f, - 0.998941293186856870f, -0.047535484156959136f, 0.998869549914283560f, - -0.049067674327418008f, 0.998795456205172410f, -0.050599749036899212f, - 0.998719012233872940f, -0.052131704680283192f, 0.998640218180265270f, - -0.053663537652730554f, 0.998559074229759310f, -0.055195244349689913f, - 0.998475580573294770f, -0.056726821166907658f, 0.998389737407340160f, - -0.058258264500435607f, 0.998301544933892890f, -0.059789570746639882f, - 0.998211003360478190f, -0.061320736302208530f, 0.998118112900149180f, - -0.062851757564161309f, 0.998022873771486240f, -0.064382630929857285f, - 0.997925286198596000f, -0.065913352797003805f, 0.997825350411111640f, - -0.067443919563663982f, 0.997723066644191640f, -0.068974327628266607f, - 0.997618435138519550f, -0.070504573389613898f, 0.997511456140303450f, - -0.072034653246889291f, 0.997402129901275300f, -0.073564563599667329f, - 0.997290456678690210f, -0.075094300847921167f, 0.997176436735326190f, - -0.076623861392031506f, 0.997060070339482960f, -0.078153241632794190f, - 0.996941357764982160f, -0.079682437971430015f, 0.996820299291165780f, - -0.081211446809592261f, 0.996696895202896060f, -0.082740264549375678f, - 0.996571145790554840f, -0.084268887593324002f, 0.996443051350042630f, - -0.085797312344439755f, 0.996312612182778000f, -0.087325535206192101f, - 0.996179828595696870f, -0.088853552582524559f, 0.996044700901251970f, - -0.090381360877864886f, 0.995907229417411720f, -0.091908956497132571f, - 0.995767414467659820f, -0.093436335845747787f, 0.995625256380994310f, - -0.094963495329638950f, 0.995480755491926940f, -0.096490431355252482f, - 0.995333912140482280f, -0.098017140329560645f, 0.995184726672196930f, - -0.099543618660069319f, 0.995033199438118630f, -0.101069862754827750f, - 0.994879330794805620f, -0.102595869022436160f, 0.994723121104325700f, - -0.104121633872054600f, 0.994564570734255420f, -0.105647153713410570f, - 0.994403680057679100f, -0.107172424956808760f, 0.994240449453187900f, - -0.108697444013138560f, 0.994074879304879480f, -0.110222207293883060f, - 0.993906970002356060f, -0.111746711211126550f, 0.993736721940724600f, - -0.113270952177564240f, 0.993564135520595300f, -0.114794926606510130f, - 0.993389211148080650f, -0.116318630911904750f, 0.993211949234794500f, - -0.117842061508324890f, 0.993032350197851410f, -0.119365214810991230f, - 0.992850414459865100f, -0.120888087235777100f, 0.992666142448948020f, - -0.122410675199216150f, 0.992479534598709970f, -0.123932975118512080f, - 0.992290591348257370f, -0.125454983411546070f, 0.992099313142191800f, - -0.126976696496885870f, 0.991905700430609330f, -0.128498110793793110f, - 0.991709753669099530f, -0.130019222722233240f, 0.991511473318744010f, - -0.131540028702883140f, 0.991310859846115440f, -0.133060525157139040f, - 0.991107913723276890f, -0.134580708507126110f, 0.990902635427780010f, - -0.136100575175706060f, 0.990695025442664630f, -0.137620121586486070f, - 0.990485084256456980f, -0.139139344163826170f, 0.990272812363169110f, - -0.140658239332849130f, 0.990058210262297120f, -0.142176803519447890f, - 0.989841278458820530f, -0.143695033150294440f, 0.989622017463200890f, - -0.145212924652847410f, 0.989400427791380380f, -0.146730474455361640f, - 0.989176509964781010f, -0.148247678986896090f, 0.988950264510302990f, - -0.149764534677321510f, 0.988721691960323780f, -0.151281037957330140f, - 0.988490792852696700f, -0.152797185258443300f, 0.988257567730749460f, - -0.154312973013020130f, 0.988022017143283530f, -0.155828397654265200f, - 0.987784141644572180f, -0.157343455616238160f, 0.987543941794359340f, - -0.158858143333861280f, 0.987301418157858430f, -0.160372457242928260f, - 0.987056571305750970f, -0.161886393780111770f, 0.986809401814185530f, - -0.163399949382973110f, 0.986559910264775520f, -0.164913120489969950f, - 0.986308097244598670f, -0.166425903540464100f, 0.986053963346195440f, - -0.167938294974731090f, 0.985797509167567480f, -0.169450291233967820f, - 0.985538735312176060f, -0.170961888760301240f, 0.985277642388941220f, - -0.172473083996795920f, 0.985014231012239840f, -0.173983873387463710f, - 0.984748501801904210f, -0.175494253377271260f, 0.984480455383220930f, - -0.177004220412148750f, 0.984210092386929030f, -0.178513770938997450f, - 0.983937413449218920f, -0.180022901405699400f, 0.983662419211730250f, - -0.181531608261125020f, 0.983385110321551180f, -0.183039887955140920f, - 0.983105487431216290f, -0.184547736938619530f, 0.982823551198705350f, - -0.186055151663446490f, 0.982539302287441240f, -0.187562128582529600f, - 0.982252741366289370f, -0.189068664149806160f, 0.981963869109555240f, - -0.190574754820252660f, 0.981672686196983110f, -0.192080397049892270f, - 0.981379193313754560f, -0.193585587295803610f, 0.981083391150486710f, - -0.195090322016128190f, 0.980785280403230430f, -0.196594597670080110f, - 0.980484861773469380f, -0.198098410717953620f, 0.980182135968117430f, - -0.199601757621130940f, 0.979877103699517640f, -0.201104634842091820f, - 0.979569765685440520f, -0.202607038844420970f, 0.979260122649082130f, - -0.204108966092816900f, 0.978948175319062200f, -0.205610413053099210f, - 0.978633924429423210f, -0.207111376192218450f, 0.978317370719627650f, - -0.208611851978263320f, 0.977998514934557140f, -0.210111836880469610f, - 0.977677357824509930f, -0.211611327369227500f, 0.977353900145200070f, - -0.213110319916091250f, 0.977028142657754390f, -0.214608810993786810f, - 0.976700086128711840f, -0.216106797076219490f, 0.976369731330021140f, - -0.217604274638483560f, 0.976037079039039130f, -0.219101240156869660f, - 0.975702130038528570f, -0.220597690108873530f, 0.975364885116656980f, - -0.222093620973203480f, 0.975025345066994120f, -0.223589029229789880f, - 0.974683510688510670f, -0.225083911359792670f, 0.974339382785575860f, - -0.226578263845610000f, 0.973992962167955830f, -0.228072083170885680f, - 0.973644249650811980f, -0.229565365820518760f, 0.973293246054698250f, - -0.231058108280671140f, 0.972939952205560180f, -0.232550307038775220f, - 0.972584368934732210f, -0.234041958583543320f, 0.972226497078936380f, - -0.235533059404975350f, 0.971866337480279400f, -0.237023605994367230f, - 0.971503890986251780f, -0.238513594844318390f, 0.971139158449725090f, - -0.240003022448741390f, 0.970772140728950350f, -0.241491885302869160f, - 0.970402838687555500f, -0.242980179903263870f, 0.970031253194543970f, - -0.244467902747824100f, 0.969657385124292450f, -0.245955050335794480f, - 0.969281235356548530f, -0.247441619167773320f, 0.968902804776428870f, - -0.248927605745720120f, 0.968522094274417380f, -0.250413006572965170f, - 0.968139104746362440f, -0.251897818154216800f, 0.967753837093475510f, - -0.253382036995570160f, 0.967366292222328510f, -0.254865659604514520f, - 0.966976471044852070f, -0.256348682489942800f, 0.966584374478333120f, - -0.257831102162158820f, 0.966190003445412620f, -0.259312915132886230f, - 0.965793358874083680f, -0.260794117915275460f, 0.965394441697689400f, - -0.262274707023913480f, 0.964993252854920440f, -0.263754678974831400f, - 0.964589793289812760f, -0.265234030285511790f, 0.964184063951745830f, - -0.266712757474898310f, 0.963776065795439840f, -0.268190857063403010f, - 0.963365799780954050f, -0.269668325572915090f, 0.962953266873683880f, - -0.271145159526807960f, 0.962538468044359160f, -0.272621355449948870f, - 0.962121404269041580f, -0.274096909868706220f, 0.961702076529122540f, - -0.275571819310958140f, 0.961280485811320640f, -0.277046080306099840f, - 0.960856633107679660f, -0.278519689385052950f, 0.960430519415565900f, - -0.279992643080273270f, 0.960002145737665850f, -0.281464937925757940f, - 0.959571513081984520f, -0.282936570457055280f, 0.959138622461842010f, - -0.284407537211271710f, 0.958703474895871600f, -0.285877834727080620f, - 0.958266071408017670f, -0.287347459544729460f, 0.957826413027532910f, - -0.288816408206049370f, 0.957384500788975970f, -0.290284677254462160f, - 0.956940335732208940f, -0.291752263234989260f, 0.956493918902395100f, - -0.293219162694258570f, 0.956045251349996520f, -0.294685372180514220f, - 0.955594334130771110f, -0.296150888243623840f, 0.955141168305770670f, - -0.297615707435086200f, 0.954685754941338340f, -0.299079826308040360f, - 0.954228095109105670f, -0.300543241417273290f, 0.953768189885990330f, - -0.302005949319228080f, 0.953306040354193860f, -0.303467946572011260f, - 0.952841647601198720f, -0.304929229735402260f, 0.952375012719765880f, - -0.306389795370860970f, 0.951906136807932350f, -0.307849640041534870f, - 0.951435020969008340f, -0.309308760312268620f, 0.950961666311575080f, - -0.310767152749611360f, 0.950486073949481810f, -0.312224813921824940f, - 0.950008245001843000f, -0.313681740398891410f, 0.949528180593036670f, - -0.315137928752522330f, 0.949045881852700670f, -0.316593375556165730f, - 0.948561349915730380f, -0.318048077385014950f, 0.948074585922276230f, - -0.319502030816015640f, 0.947585591017741200f, -0.320955232427875100f, - 0.947094366352777220f, -0.322407678801069850f, 0.946600913083283530f, - -0.323859366517852850f, 0.946105232370403450f, -0.325310292162262870f, - 0.945607325380521390f, -0.326760452320131620f, 0.945107193285260610f, - -0.328209843579092550f, 0.944604837261480260f, -0.329658462528587440f, - 0.944100258491272660f, -0.331106305759876320f, 0.943593458161960390f, - -0.332553369866044060f, 0.943084437466093490f, -0.333999651442009380f, - 0.942573197601446870f, -0.335445147084531550f, 0.942059739771017420f, - -0.336889853392219940f, 0.941544065183020810f, -0.338333766965541180f, - 0.941026175050889260f, -0.339776884406826850f, 0.940506070593268300f, - -0.341219202320282300f, 0.939983753034014050f, -0.342660717311994270f, - 0.939459223602189920f, -0.344101425989938870f, 0.938932483532064490f, - -0.345541324963989040f, 0.938403534063108170f, -0.346980410845923570f, - 0.937872376439989890f, -0.348418680249434400f, 0.937339011912574960f, - -0.349856129790134920f, 0.936803441735921560f, -0.351292756085567040f, - 0.936265667170278260f, -0.352728555755210620f, 0.935725689481080370f, - -0.354163525420490400f, 0.935183509938947610f, -0.355597661704783850f, - 0.934639129819680780f, -0.357030961233429920f, 0.934092550404258980f, - -0.358463420633736430f, 0.933543772978836280f, -0.359895036534988170f, - 0.932992798834738850f, -0.361325805568454230f, 0.932439629268462360f, - -0.362755724367397110f, 0.931884265581668150f, -0.364184789567079730f, - 0.931326709081180540f, -0.365612997804773850f, 0.930766961078983710f, - -0.367040345719767120f, 0.930205022892219070f, -0.368466829953372210f, - 0.929640895843181330f, -0.369892447148934160f, 0.929074581259315750f, - -0.371317193951837490f, 0.928506080473215590f, -0.372741067009515700f, - 0.927935394822617890f, -0.374164062971457880f, 0.927362525650401110f, - -0.375586178489217220f, 0.926787474304581750f, -0.377007410216418200f, - 0.926210242138311380f, -0.378427754808765450f, 0.925630830509872830f, - -0.379847208924050990f, 0.925049240782677700f, -0.381265769222162380f, - 0.924465474325262600f, -0.382683432365089730f, 0.923879532511286740f, - -0.384100195016934930f, 0.923291416719527750f, -0.385516053843918900f, - 0.922701128333878520f, -0.386931005514388580f, 0.922108668743345180f, - -0.388345046698826190f, 0.921514039342042010f, -0.389758174069856300f, - 0.920917241529189520f, -0.391170384302253870f, 0.920318276709110590f, - -0.392581674072951410f, 0.919717146291227360f, -0.393992040061047990f, - 0.919113851690057770f, -0.395401478947816190f, 0.918508394325212250f, - -0.396809987416710310f, 0.917900775621390500f, -0.398217562153373510f, - 0.917290997008378020f, -0.399624199845646680f, 0.916679059921042700f, - -0.401029897183575680f, 0.916064965799331720f, -0.402434650859418430f, - 0.915448716088267830f, -0.403838457567654020f, 0.914830312237946200f, - -0.405241314004989750f, 0.914209755703530690f, -0.406643216870369030f, - 0.913587047945250810f, -0.408044162864978630f, 0.912962190428398210f, - -0.409444148692257480f, 0.912335184623322860f, -0.410843171057903800f, - 0.911706032005429880f, -0.412241226669882890f, 0.911074734055176360f, - -0.413638312238434450f, 0.910441292258067250f, -0.415034424476081520f, - 0.909805708104652330f, -0.416429560097636990f, 0.909167983090522490f, - -0.417823715820212270f, 0.908528118716306120f, -0.419216888363224070f, - 0.907886116487666150f, -0.420609074448402400f, 0.907241977915295930f, - -0.422000270799799680f, 0.906595704514915330f, -0.423390474143795770f, - 0.905947297807268570f, -0.424779681209108690f, 0.905296759318118820f, - -0.426167888726799670f, 0.904644090578246130f, -0.427555093430281860f, - 0.903989293123443450f, -0.428941292055329440f, 0.903332368494511820f, - -0.430326481340082720f, 0.902673318237258830f, -0.431710658025057090f, - 0.902012143902493290f, -0.433093818853151900f, 0.901348847046022030f, - -0.434475960569655820f, 0.900683429228646860f, -0.435857079922255360f, - 0.900015892016160280f, -0.437237173661044090f, 0.899346236979341570f, - -0.438616238538527380f, 0.898674465693953930f, -0.439994271309633140f, - 0.898000579740739880f, -0.441371268731716730f, 0.897324580705418320f, - -0.442747227564569800f, 0.896646470178680270f, -0.444122144570429140f, - 0.895966249756185220f, -0.445496016513981800f, 0.895283921038557470f, - -0.446868840162373990f, 0.894599485631382810f, -0.448240612285219890f, - 0.893912945145203250f, -0.449611329654606710f, 0.893224301195515210f, - -0.450980989045103700f, 0.892533555402764690f, -0.452349587233770890f, - 0.891840709392342720f, -0.453717121000163590f, 0.891145764794583410f, - -0.455083587126343720f, 0.890448723244757990f, -0.456448982396883970f, - 0.889749586383072780f, -0.457813303598877010f, 0.889048355854664680f, - -0.459176547521944030f, 0.888345033309596350f, -0.460538710958240060f, - 0.887639620402853930f, -0.461899790702462560f, 0.886932118794342310f, - -0.463259783551860150f, 0.886222530148880640f, -0.464618686306237930f, - 0.885510856136199840f, -0.465976495767966010f, 0.884797098430937900f, - -0.467333208741988420f, 0.884081258712634990f, -0.468688822035827680f, - 0.883363338665731690f, -0.470043332459595510f, 0.882643339979562900f, - -0.471396736825997700f, 0.881921264348355050f, -0.472749031950342570f, - 0.881197113471222200f, -0.474100214650549910f, 0.880470889052160870f, - -0.475450281747155980f, 0.879742592800047410f, -0.476799230063321920f, - 0.879012226428633530f, -0.478147056424843010f, 0.878279791656541580f, - -0.479493757660153120f, 0.877545290207261240f, -0.480839330600333790f, - 0.876808723809145760f, -0.482183772079122720f, 0.876070094195406600f, - -0.483527078932918460f, 0.875329403104111000f, -0.484869248000791010f, - 0.874586652278176220f, -0.486210276124486420f, 0.873841843465366860f, - -0.487550160148435720f, 0.873094978418290200f, -0.488888896919763120f, - 0.872346058894391540f, -0.490226483288291210f, 0.871595086655950980f, - -0.491562916106549790f, 0.870842063470078980f, -0.492898192229783980f, - 0.870086991108711460f, -0.494232308515959840f, 0.869329871348606730f, - -0.495565261825772370f, 0.868570705971341010f, -0.496897049022654520f, - 0.867809496763303210f, -0.498227666972781590f, 0.867046245515692760f, - -0.499557112545081780f, 0.866280954024513110f, -0.500885382611240830f, - 0.865513624090569090f, -0.502212474045710570f, 0.864744257519462490f, - -0.503538383725717460f, 0.863972856121586810f, -0.504863108531267590f, - 0.863199421712124160f, -0.506186645345155120f, 0.862423956111040610f, - -0.507508991052970760f, 0.861646461143081300f, -0.508830142543107100f, - 0.860866938637767200f, -0.510150096706766590f, 0.860085390429390250f, - -0.511468850437970410f, 0.859301818357008360f, -0.512786400633562730f, - 0.858516224264442960f, -0.514102744193221660f, 0.857728610000272120f, - -0.515417878019463040f, 0.856938977417828760f, -0.516731799017649650f, - 0.856147328375194580f, -0.518044504095999230f, 0.855353664735196030f, - -0.519355990165589640f, 0.854557988365400530f, -0.520666254140366940f, - 0.853760301138111520f, -0.521975292937154280f, 0.852960604930363740f, - -0.523283103475656540f, 0.852158901623919720f, -0.524589682678468730f, - 0.851355193105265200f, -0.525895027471084630f, 0.850549481265603480f, - -0.527199134781901060f, 0.849741768000852660f, -0.528502001542228370f, - 0.848932055211639720f, -0.529803624686294720f, 0.848120344803297230f, - -0.531104001151254780f, 0.847306638685858540f, -0.532403127877197900f, - 0.846490938774052130f, -0.533701001807152960f, 0.845673246987299070f, - -0.534997619887097040f, 0.844853565249707230f, -0.536292979065963070f, - 0.844031895490066410f, -0.537587076295645620f, 0.843208239641845440f, - -0.538879908531008310f, 0.842382599643185960f, -0.540171472729892850f, - 0.841554977436898440f, -0.541461765853123220f, 0.840725374970458180f, - -0.542750784864515780f, 0.839893794195999630f, -0.544038526730883930f, - 0.839060237070312630f, -0.545324988422046240f, 0.838224705554838190f, - -0.546610166910834860f, 0.837387201615661940f, -0.547894059173100190f, - 0.836547727223512010f, -0.549176662187719540f, 0.835706284353752720f, - -0.550457972936604700f, 0.834862874986380120f, -0.551737988404707450f, - 0.834017501106018020f, -0.553016705580027360f, 0.833170164701913300f, - -0.554294121453620110f, 0.832320867767929680f, -0.555570233019601960f, - 0.831469612302545460f, -0.556845037275159990f, 0.830616400308846310f, - -0.558118531220556100f, 0.829761233794523050f, -0.559390711859135800f, - 0.828904114771865100f, -0.560661576197335920f, 0.828045045257755800f, - -0.561931121244689470f, 0.827184027273669130f, -0.563199344013833980f, - 0.826321062845663650f, -0.564466241520519390f, 0.825456154004377550f, - -0.565731810783613230f, 0.824589302785025180f, -0.566996048825108460f, - 0.823720511227391540f, -0.568258952670131490f, 0.822849781375826320f, - -0.569520519346947250f, 0.821977115279241440f, -0.570780745886967140f, - 0.821102514991104760f, -0.572039629324757050f, 0.820225982569434690f, - -0.573297166698041980f, 0.819347520076797120f, -0.574553355047715760f, - 0.818467129580298770f, -0.575808191417845340f, 0.817584813151583710f, - -0.577061672855679330f, 0.816700572866827960f, -0.578313796411655480f, - 0.815814410806733780f, -0.579564559139405850f, 0.814926329056526510f, - -0.580813958095764420f, 0.814036329705948520f, -0.582061990340775550f, - 0.813144414849253590f, -0.583308652937698400f, 0.812250586585203880f, - -0.584553942953015220f, 0.811354847017063840f, -0.585797857456438860f, - 0.810457198252594770f, -0.587040393520917750f, 0.809557642404051480f, - -0.588281548222645220f, 0.808656181588175090f, -0.589521318641063940f, - 0.807752817926190360f, -0.590759701858874050f, 0.806847553543799450f, - -0.591996694962040880f, 0.805940390571176390f, -0.593232295039799910f, - 0.805031331142963550f, -0.594466499184664320f, 0.804120377398265810f, - -0.595699304492433360f, 0.803207531480644940f, -0.596930708062196610f, - 0.802292795538115610f, -0.598160706996342160f, 0.801376171723140350f, - -0.599389298400564540f, 0.800457662192622820f, -0.600616479383868750f, - 0.799537269107905240f, -0.601842247058579920f, 0.798614994634760930f, - -0.603066598540348280f, 0.797690840943391040f, -0.604289530948155850f, - 0.796764810208418940f, -0.605511041404325430f, 0.795836904608883570f, - -0.606731127034524590f, 0.794907126328236900f, -0.607949784967773520f, - 0.793975477554337280f, -0.609167012336453210f, 0.793041960479443640f, - -0.610382806276309590f, 0.792106577300212280f, -0.611597163926461800f, - 0.791169330217690310f, -0.612810082429409710f, 0.790230221437310030f, - -0.614021558931038160f, 0.789289253168885870f, -0.615231590580626710f, - 0.788346427626606340f, -0.616440174530853650f, 0.787401747029031320f, - -0.617647307937803760f, 0.786455213599085880f, -0.618852987960976210f, - 0.785506829564054040f, -0.620057211763289210f, 0.784556597155575130f, - -0.621259976511087440f, 0.783604518609638310f, -0.622461279374149970f, - 0.782650596166575730f, -0.623661117525694640f, 0.781694832071059280f, - -0.624859488142386230f, 0.780737228572094600f, -0.626056388404343520f, - 0.779777787923014440f, -0.627251815495143860f, 0.778816512381476090f, - -0.628445766601832600f, 0.777853404209453150f, -0.629638238914927100f, - 0.776888465673232440f, -0.630829229628424360f, 0.775921699043407800f, - -0.632018735939808950f, 0.774953106594873930f, -0.633206755050057300f, - 0.773982690606822790f, -0.634393284163645380f, 0.773010453362737100f, - -0.635578320488556110f, 0.772036397150384520f, -0.636761861236284310f, - 0.771060524261813710f, -0.637943903621843940f, 0.770082836993348010f, - -0.639124444863775730f, 0.769103337645579590f, -0.640303482184151450f, - 0.768122028523365530f, -0.641481012808583050f, 0.767138911935820510f, - -0.642657033966226860f, 0.766153990196312920f, -0.643831542889791280f, - 0.765167265622459070f, -0.645004536815543930f, 0.764178740536116790f, - -0.646176012983316390f, 0.763188417263381270f, -0.647345968636511950f, - 0.762196298134579010f, -0.648514401022112440f, 0.761202385484261890f, - -0.649681307390683300f, 0.760206681651202310f, -0.650846684996380760f, - 0.759209188978388180f, -0.652010531096959500f, 0.758209909813015280f, - -0.653172842953776530f, 0.757208846506484680f, -0.654333617831800440f, - 0.756206001414394540f, -0.655492852999615460f, 0.755201376896536550f, - -0.656650545729428830f, 0.754194975316889280f, -0.657806693297078640f, - 0.753186799043612520f, -0.658961292982037430f, 0.752176850449042700f, - -0.660114342067420370f, 0.751165131909686590f, -0.661265837839992150f, - 0.750151645806215070f, -0.662415777590171890f, 0.749136394523459260f, - -0.663564158612039660f, 0.748119380450403710f, -0.664710978203344900f, - 0.747100605980180130f, -0.665856233665509500f, 0.746080073510064000f, - -0.666999922303637360f, 0.745057785441466060f, -0.668142041426518560f, - 0.744033744179929290f, -0.669282588346635900f, 0.743007952135121830f, - -0.670421560380173090f, 0.741980411720831070f, -0.671558954847018440f, - 0.740951125354958990f, -0.672694769070772750f, 0.739920095459516310f, - -0.673829000378756040f, 0.738887324460615220f, -0.674961646102012150f, - 0.737852814788465870f, -0.676092703575315810f, 0.736816568877370020f, - -0.677222170137180450f, 0.735778589165713480f, -0.678350043129861250f, - 0.734738878095963610f, -0.679476319899364970f, 0.733697438114660370f, - -0.680600997795453020f, 0.732654271672412820f, -0.681724074171649600f, - 0.731609381223892740f, -0.682845546385247970f, 0.730562769227827590f, - -0.683965411797315510f, 0.729514438146997010f, -0.685083667772700240f, - 0.728464390448225310f, -0.686200311680038590f, 0.727412628602375770f, - -0.687315340891759160f, 0.726359155084345900f, -0.688428752784090330f, - 0.725303972373060880f, -0.689540544737066940f, 0.724247082951466890f, - -0.690650714134534380f, 0.723188489306527570f, -0.691759258364157640f, - 0.722128193929215460f, -0.692866174817424740f, 0.721066199314508110f, - -0.693971460889653780f, 0.720002507961381770f, -0.695075113980000770f, - 0.718937122372804490f, -0.696177131491462990f, 0.717870045055731710f, - -0.697277510830886400f, 0.716801278521099650f, -0.698376249408972800f, - 0.715730825283818710f, -0.699473344640283880f, 0.714658687862768980f, - -0.700568793943248220f, 0.713584868780793750f, -0.701662594740168450f, - 0.712509370564692320f, -0.702754744457225080f, 0.711432195745216660f, - -0.703845240524484830f, 0.710353346857062420f, -0.704934080375904880f, - 0.709272826438865580f, -0.706021261449339630f, 0.708190637033195510f, - -0.707106781186547460f, 0.707106781186547570f, -0.708190637033195400f, - 0.706021261449339740f, -0.709272826438865470f, 0.704934080375905100f, - -0.710353346857062310f, 0.703845240524485050f, -0.711432195745216540f, - 0.702754744457225190f, -0.712509370564692210f, 0.701662594740168680f, - -0.713584868780793640f, 0.700568793943248340f, -0.714658687862768870f, - 0.699473344640283990f, -0.715730825283818590f, 0.698376249408972920f, - -0.716801278521099540f, 0.697277510830886520f, -0.717870045055731600f, - 0.696177131491463100f, -0.718937122372804380f, 0.695075113980000990f, - -0.720002507961381650f, 0.693971460889654000f, -0.721066199314507990f, - 0.692866174817424850f, -0.722128193929215230f, 0.691759258364157860f, - -0.723188489306527460f, 0.690650714134534600f, -0.724247082951466780f, - 0.689540544737067050f, -0.725303972373060770f, 0.688428752784090440f, - -0.726359155084345790f, 0.687315340891759270f, -0.727412628602375650f, - 0.686200311680038700f, -0.728464390448225200f, 0.685083667772700360f, - -0.729514438146996790f, 0.683965411797315630f, -0.730562769227827480f, - 0.682845546385248190f, -0.731609381223892630f, 0.681724074171649710f, - -0.732654271672412700f, 0.680600997795453240f, -0.733697438114660260f, - 0.679476319899365080f, -0.734738878095963500f, 0.678350043129861360f, - -0.735778589165713370f, 0.677222170137180560f, -0.736816568877369900f, - 0.676092703575315920f, -0.737852814788465760f, 0.674961646102012260f, - -0.738887324460615000f, 0.673829000378756150f, -0.739920095459516200f, - 0.672694769070772860f, -0.740951125354958880f, 0.671558954847018550f, - -0.741980411720830960f, 0.670421560380173200f, -0.743007952135121720f, - 0.669282588346636010f, -0.744033744179929070f, 0.668142041426518670f, - -0.745057785441465950f, 0.666999922303637580f, -0.746080073510063890f, - 0.665856233665509610f, -0.747100605980180020f, 0.664710978203345020f, - -0.748119380450403600f, 0.663564158612039770f, -0.749136394523459150f, - 0.662415777590172010f, -0.750151645806214960f, 0.661265837839992380f, - -0.751165131909686480f, 0.660114342067420480f, -0.752176850449042480f, - 0.658961292982037540f, -0.753186799043612410f, 0.657806693297078750f, - -0.754194975316889170f, 0.656650545729429050f, -0.755201376896536440f, - 0.655492852999615570f, -0.756206001414394420f, 0.654333617831800550f, - -0.757208846506484570f, 0.653172842953776640f, -0.758209909813015170f, - 0.652010531096959720f, -0.759209188978388070f, 0.650846684996380990f, - -0.760206681651202200f, 0.649681307390683420f, -0.761202385484261670f, - 0.648514401022112550f, -0.762196298134578900f, 0.647345968636512060f, - -0.763188417263381050f, 0.646176012983316620f, -0.764178740536116670f, - 0.645004536815544040f, -0.765167265622458960f, 0.643831542889791390f, - -0.766153990196312700f, 0.642657033966227090f, -0.767138911935820290f, - 0.641481012808583160f, -0.768122028523365420f, 0.640303482184151560f, - -0.769103337645579480f, 0.639124444863775840f, -0.770082836993347900f, - 0.637943903621844060f, -0.771060524261813600f, 0.636761861236284420f, - -0.772036397150384410f, 0.635578320488556230f, -0.773010453362736990f, - 0.634393284163645490f, -0.773982690606822680f, 0.633206755050057410f, - -0.774953106594873820f, 0.632018735939809060f, -0.775921699043407690f, - 0.630829229628424470f, -0.776888465673232330f, 0.629638238914927210f, - -0.777853404209453040f, 0.628445766601832710f, -0.778816512381475980f, - 0.627251815495144080f, -0.779777787923014330f, 0.626056388404343630f, - -0.780737228572094490f, 0.624859488142386340f, -0.781694832071059160f, - 0.623661117525694860f, -0.782650596166575620f, 0.622461279374150080f, - -0.783604518609638200f, 0.621259976511087550f, -0.784556597155575020f, - 0.620057211763289430f, -0.785506829564053930f, 0.618852987960976430f, - -0.786455213599085770f, 0.617647307937803870f, -0.787401747029031210f, - 0.616440174530853760f, -0.788346427626606230f, 0.615231590580626930f, - -0.789289253168885760f, 0.614021558931038380f, -0.790230221437309920f, - 0.612810082429409820f, -0.791169330217690200f, 0.611597163926461910f, - -0.792106577300212170f, 0.610382806276309700f, -0.793041960479443530f, - 0.609167012336453320f, -0.793975477554337170f, 0.607949784967773630f, - -0.794907126328236790f, 0.606731127034524700f, -0.795836904608883460f, - 0.605511041404325660f, -0.796764810208418830f, 0.604289530948155960f, - -0.797690840943390930f, 0.603066598540348390f, -0.798614994634760820f, - 0.601842247058580140f, -0.799537269107905120f, 0.600616479383868860f, - -0.800457662192622710f, 0.599389298400564650f, -0.801376171723140240f, - 0.598160706996342380f, -0.802292795538115500f, 0.596930708062196720f, - -0.803207531480644830f, 0.595699304492433470f, -0.804120377398265700f, - 0.594466499184664430f, -0.805031331142963440f, 0.593232295039800020f, - -0.805940390571176280f, 0.591996694962040990f, -0.806847553543799330f, - 0.590759701858874160f, -0.807752817926190250f, 0.589521318641064050f, - -0.808656181588174980f, 0.588281548222645330f, -0.809557642404051370f, - 0.587040393520917970f, -0.810457198252594660f, 0.585797857456438980f, - -0.811354847017063730f, 0.584553942953015330f, -0.812250586585203770f, - 0.583308652937698510f, -0.813144414849253480f, 0.582061990340775660f, - -0.814036329705948410f, 0.580813958095764530f, -0.814926329056526400f, - 0.579564559139405970f, -0.815814410806733670f, 0.578313796411655700f, - -0.816700572866827850f, 0.577061672855679440f, -0.817584813151583600f, - 0.575808191417845450f, -0.818467129580298660f, 0.574553355047715870f, - -0.819347520076797010f, 0.573297166698042090f, -0.820225982569434580f, - 0.572039629324757270f, -0.821102514991104650f, 0.570780745886967260f, - -0.821977115279241330f, 0.569520519346947470f, -0.822849781375826210f, - 0.568258952670131710f, -0.823720511227391430f, 0.566996048825108680f, - -0.824589302785025070f, 0.565731810783613450f, -0.825456154004377440f, - 0.564466241520519500f, -0.826321062845663530f, 0.563199344013834090f, - -0.827184027273669020f, 0.561931121244689580f, -0.828045045257755690f, - 0.560661576197336140f, -0.828904114771864990f, 0.559390711859136030f, - -0.829761233794522930f, 0.558118531220556320f, -0.830616400308846310f, - 0.556845037275160100f, -0.831469612302545350f, 0.555570233019602180f, - -0.832320867767929570f, 0.554294121453620230f, -0.833170164701913190f, - 0.553016705580027580f, -0.834017501106018020f, 0.551737988404707670f, - -0.834862874986380010f, 0.550457972936604920f, -0.835706284353752600f, - 0.549176662187719660f, -0.836547727223511890f, 0.547894059173100410f, - -0.837387201615661820f, 0.546610166910834970f, -0.838224705554838080f, - 0.545324988422046350f, -0.839060237070312630f, 0.544038526730884040f, - -0.839893794195999520f, 0.542750784864515890f, -0.840725374970458070f, - 0.541461765853123330f, -0.841554977436898330f, 0.540171472729892970f, - -0.842382599643185850f, 0.538879908531008420f, -0.843208239641845330f, - 0.537587076295645730f, -0.844031895490066410f, 0.536292979065963290f, - -0.844853565249707120f, 0.534997619887097150f, -0.845673246987298950f, - 0.533701001807153190f, -0.846490938774052020f, 0.532403127877198010f, - -0.847306638685858430f, 0.531104001151254890f, -0.848120344803297120f, - 0.529803624686294830f, -0.848932055211639610f, 0.528502001542228480f, - -0.849741768000852550f, 0.527199134781901280f, -0.850549481265603370f, - 0.525895027471084850f, -0.851355193105265200f, 0.524589682678468950f, - -0.852158901623919610f, 0.523283103475656650f, -0.852960604930363630f, - 0.521975292937154500f, -0.853760301138111410f, 0.520666254140367160f, - -0.854557988365400420f, 0.519355990165589750f, -0.855353664735195920f, - 0.518044504095999450f, -0.856147328375194470f, 0.516731799017649760f, - -0.856938977417828650f, 0.515417878019463150f, -0.857728610000272010f, - 0.514102744193221770f, -0.858516224264442850f, 0.512786400633562960f, - -0.859301818357008360f, 0.511468850437970520f, -0.860085390429390140f, - 0.510150096706766810f, -0.860866938637767090f, 0.508830142543107320f, - -0.861646461143081300f, 0.507508991052970980f, -0.862423956111040500f, - 0.506186645345155230f, -0.863199421712124050f, 0.504863108531267700f, - -0.863972856121586700f, 0.503538383725717690f, -0.864744257519462380f, - 0.502212474045710680f, -0.865513624090568980f, 0.500885382611240940f, - -0.866280954024512990f, 0.499557112545081950f, -0.867046245515692760f, - 0.498227666972781760f, -0.867809496763303210f, 0.496897049022654690f, - -0.868570705971340900f, 0.495565261825772540f, -0.869329871348606620f, - 0.494232308515960010f, -0.870086991108711350f, 0.492898192229784150f, - -0.870842063470078980f, 0.491562916106549900f, -0.871595086655950870f, - 0.490226483288291380f, -0.872346058894391430f, 0.488888896919763280f, - -0.873094978418290090f, 0.487550160148435880f, -0.873841843465366750f, - 0.486210276124486580f, -0.874586652278176110f, 0.484869248000791120f, - -0.875329403104110890f, 0.483527078932918630f, -0.876070094195406490f, - 0.482183772079122890f, -0.876808723809145650f, 0.480839330600333960f, - -0.877545290207261130f, 0.479493757660153290f, -0.878279791656541460f, - 0.478147056424843180f, -0.879012226428633530f, 0.476799230063322090f, - -0.879742592800047300f, 0.475450281747156090f, -0.880470889052160750f, - 0.474100214650550080f, -0.881197113471222090f, 0.472749031950342740f, - -0.881921264348354940f, 0.471396736825997860f, -0.882643339979562790f, - 0.470043332459595680f, -0.883363338665731690f, 0.468688822035827850f, - -0.884081258712634880f, 0.467333208741988580f, -0.884797098430937790f, - 0.465976495767966180f, -0.885510856136199840f, 0.464618686306238090f, - -0.886222530148880530f, 0.463259783551860320f, -0.886932118794342190f, - 0.461899790702462730f, -0.887639620402853820f, 0.460538710958240230f, - -0.888345033309596240f, 0.459176547521944200f, -0.889048355854664570f, - 0.457813303598877170f, -0.889749586383072670f, 0.456448982396884140f, - -0.890448723244757880f, 0.455083587126343890f, -0.891145764794583290f, - 0.453717121000163760f, -0.891840709392342610f, 0.452349587233771060f, - -0.892533555402764580f, 0.450980989045103860f, -0.893224301195515210f, - 0.449611329654606870f, -0.893912945145203140f, 0.448240612285220050f, - -0.894599485631382700f, 0.446868840162374160f, -0.895283921038557360f, - 0.445496016513981960f, -0.895966249756185110f, 0.444122144570429310f, - -0.896646470178680270f, 0.442747227564569970f, -0.897324580705418210f, - 0.441371268731716890f, -0.898000579740739770f, 0.439994271309633310f, - -0.898674465693953930f, 0.438616238538527550f, -0.899346236979341460f, - 0.437237173661044250f, -0.900015892016160170f, 0.435857079922255530f, - -0.900683429228646750f, 0.434475960569655980f, -0.901348847046021920f, - 0.433093818853152070f, -0.902012143902493180f, 0.431710658025057260f, - -0.902673318237258710f, 0.430326481340082890f, -0.903332368494511820f, - 0.428941292055329600f, -0.903989293123443340f, 0.427555093430282030f, - -0.904644090578246130f, 0.426167888726799840f, -0.905296759318118700f, - 0.424779681209108860f, -0.905947297807268460f, 0.423390474143795940f, - -0.906595704514915330f, 0.422000270799799850f, -0.907241977915295820f, - 0.420609074448402560f, -0.907886116487666040f, 0.419216888363224240f, - -0.908528118716306120f, 0.417823715820212440f, -0.909167983090522380f, - 0.416429560097637150f, -0.909805708104652110f, 0.415034424476081850f, - -0.910441292258067140f, 0.413638312238434610f, -0.911074734055176360f, - 0.412241226669882830f, -0.911706032005429770f, 0.410843171057904130f, - -0.912335184623322750f, 0.409444148692257650f, -0.912962190428398210f, - 0.408044162864978580f, -0.913587047945250700f, 0.406643216870369200f, - -0.914209755703530690f, 0.405241314004989920f, -0.914830312237945980f, - 0.403838457567654410f, -0.915448716088267720f, 0.402434650859418600f, - -0.916064965799331720f, 0.401029897183575620f, -0.916679059921042590f, - 0.399624199845647070f, -0.917290997008377910f, 0.398217562153373670f, - -0.917900775621390500f, 0.396809987416710250f, -0.918508394325212140f, - 0.395401478947816520f, -0.919113851690057770f, 0.393992040061048150f, - -0.919717146291227360f, 0.392581674072951410f, -0.920318276709110480f, - 0.391170384302254040f, -0.920917241529189410f, 0.389758174069856470f, - -0.921514039342041790f, 0.388345046698826580f, -0.922108668743345070f, - 0.386931005514388750f, -0.922701128333878630f, 0.385516053843918850f, - -0.923291416719527520f, 0.384100195016935320f, -0.923879532511286740f, - 0.382683432365089890f, -0.924465474325262600f, 0.381265769222162320f, - -0.925049240782677470f, 0.379847208924051380f, -0.925630830509872720f, - 0.378427754808765670f, -0.926210242138311380f, 0.377007410216418150f, - -0.926787474304581750f, 0.375586178489217380f, -0.927362525650401110f, - 0.374164062971458040f, -0.927935394822617780f, 0.372741067009516090f, - -0.928506080473215480f, 0.371317193951837710f, -0.929074581259315750f, - 0.369892447148934100f, -0.929640895843181210f, 0.368466829953372600f, - -0.930205022892219070f, 0.367040345719767290f, -0.930766961078983710f, - 0.365612997804773800f, -0.931326709081180320f, 0.364184789567080110f, - -0.931884265581668040f, 0.362755724367397280f, -0.932439629268462470f, - 0.361325805568454170f, -0.932992798834738850f, 0.359895036534988330f, - -0.933543772978836170f, 0.358463420633736600f, -0.934092550404258760f, - 0.357030961233430310f, -0.934639129819680670f, 0.355597661704784020f, - -0.935183509938947610f, 0.354163525420490400f, -0.935725689481080260f, - 0.352728555755210950f, -0.936265667170278260f, 0.351292756085567200f, - -0.936803441735921670f, 0.349856129790134860f, -0.937339011912574850f, - 0.348418680249434790f, -0.937872376439989770f, 0.346980410845923740f, - -0.938403534063108170f, 0.345541324963988980f, -0.938932483532064490f, - 0.344101425989939040f, -0.939459223602189920f, 0.342660717311994430f, - -0.939983753034013820f, 0.341219202320282690f, -0.940506070593268300f, - 0.339776884406827020f, -0.941026175050889260f, 0.338333766965541180f, - -0.941544065183020700f, 0.336889853392220330f, -0.942059739771017310f, - 0.335445147084531710f, -0.942573197601446870f, 0.333999651442009380f, - -0.943084437466093380f, 0.332553369866044450f, -0.943593458161960390f, - 0.331106305759876480f, -0.944100258491272660f, 0.329658462528587440f, - -0.944604837261480150f, 0.328209843579092720f, -0.945107193285260610f, - 0.326760452320131840f, -0.945607325380521170f, 0.325310292162263260f, - -0.946105232370403340f, 0.323859366517853020f, -0.946600913083283530f, - 0.322407678801069850f, -0.947094366352777110f, 0.320955232427875490f, - -0.947585591017741090f, 0.319502030816015800f, -0.948074585922276230f, - 0.318048077385014890f, -0.948561349915730270f, 0.316593375556166070f, - -0.949045881852700560f, 0.315137928752522500f, -0.949528180593036670f, - 0.313681740398891410f, -0.950008245001843000f, 0.312224813921825110f, - -0.950486073949481700f, 0.310767152749611530f, -0.950961666311574970f, - 0.309308760312269000f, -0.951435020969008340f, 0.307849640041535030f, - -0.951906136807932350f, 0.306389795370860920f, -0.952375012719765770f, - 0.304929229735402650f, -0.952841647601198600f, 0.303467946572011430f, - -0.953306040354193860f, 0.302005949319228030f, -0.953768189885990210f, - 0.300543241417273680f, -0.954228095109105560f, 0.299079826308040530f, - -0.954685754941338340f, 0.297615707435086140f, -0.955141168305770670f, - 0.296150888243624010f, -0.955594334130771110f, 0.294685372180514380f, - -0.956045251349996290f, 0.293219162694258960f, -0.956493918902394990f, - 0.291752263234989430f, -0.956940335732208820f, 0.290284677254462390f, - -0.957384500788975860f, 0.288816408206049760f, -0.957826413027532910f, - 0.287347459544729620f, -0.958266071408017670f, 0.285877834727080560f, - -0.958703474895871490f, 0.284407537211272100f, -0.959138622461841890f, - 0.282936570457055450f, -0.959571513081984520f, 0.281464937925757890f, - -0.960002145737665850f, 0.279992643080273440f, -0.960430519415565790f, - 0.278519689385053170f, -0.960856633107679550f, 0.277046080306100230f, - -0.961280485811320640f, 0.275571819310958310f, -0.961702076529122540f, - 0.274096909868706380f, -0.962121404269041470f, 0.272621355449949250f, - -0.962538468044359160f, 0.271145159526808120f, -0.962953266873683880f, - 0.269668325572915090f, -0.963365799780953940f, 0.268190857063403400f, - -0.963776065795439840f, 0.266712757474898480f, -0.964184063951745830f, - 0.265234030285511730f, -0.964589793289812650f, 0.263754678974831570f, - -0.964993252854920320f, 0.262274707023913700f, -0.965394441697689290f, - 0.260794117915275850f, -0.965793358874083570f, 0.259312915132886400f, - -0.966190003445412500f, 0.257831102162158990f, -0.966584374478333010f, - 0.256348682489943190f, -0.966976471044852070f, 0.254865659604514680f, - -0.967366292222328510f, 0.253382036995570100f, -0.967753837093475400f, - 0.251897818154217190f, -0.968139104746362330f, 0.250413006572965340f, - -0.968522094274417380f, 0.248927605745720090f, -0.968902804776428870f, - 0.247441619167773490f, -0.969281235356548420f, 0.245955050335794650f, - -0.969657385124292340f, 0.244467902747824480f, -0.970031253194543970f, - 0.242980179903264070f, -0.970402838687555500f, 0.241491885302869360f, - -0.970772140728950240f, 0.240003022448741780f, -0.971139158449725090f, - 0.238513594844318550f, -0.971503890986251780f, 0.237023605994367170f, - -0.971866337480279290f, 0.235533059404975740f, -0.972226497078936270f, - 0.234041958583543510f, -0.972584368934732210f, 0.232550307038775160f, - -0.972939952205560070f, 0.231058108280671330f, -0.973293246054698250f, - 0.229565365820518920f, -0.973644249650811870f, 0.228072083170886060f, - -0.973992962167955830f, 0.226578263845610170f, -0.974339382785575860f, - 0.225083911359792830f, -0.974683510688510670f, 0.223589029229790290f, - -0.975025345066994120f, 0.222093620973203650f, -0.975364885116656980f, - 0.220597690108873510f, -0.975702130038528460f, 0.219101240156870050f, - -0.976037079039039020f, 0.217604274638483720f, -0.976369731330021140f, - 0.216106797076219440f, -0.976700086128711730f, 0.214608810993786980f, - -0.977028142657754390f, 0.213110319916091420f, -0.977353900145199960f, - 0.211611327369227890f, -0.977677357824509930f, 0.210111836880469800f, - -0.977998514934557140f, 0.208611851978263510f, -0.978317370719627540f, - 0.207111376192218840f, -0.978633924429423100f, 0.205610413053099380f, - -0.978948175319062200f, 0.204108966092816840f, -0.979260122649082020f, - 0.202607038844421380f, -0.979569765685440520f, 0.201104634842092010f, - -0.979877103699517640f, 0.199601757621130920f, -0.980182135968117320f, - 0.198098410717953810f, -0.980484861773469380f, 0.196594597670080280f, - -0.980785280403230430f, 0.195090322016128610f, -0.981083391150486590f, - 0.193585587295803800f, -0.981379193313754560f, 0.192080397049892470f, - -0.981672686196983110f, 0.190574754820253070f, -0.981963869109555240f, - 0.189068664149806360f, -0.982252741366289370f, 0.187562128582529570f, - -0.982539302287441240f, 0.186055151663446910f, -0.982823551198705240f, - 0.184547736938619700f, -0.983105487431216290f, 0.183039887955140900f, - -0.983385110321551180f, 0.181531608261125220f, -0.983662419211730250f, - 0.180022901405699570f, -0.983937413449218920f, 0.178513770938997420f, - -0.984210092386929030f, 0.177004220412148940f, -0.984480455383220930f, - 0.175494253377271450f, -0.984748501801904210f, 0.173983873387464130f, - -0.985014231012239840f, 0.172473083996796120f, -0.985277642388941220f, - 0.170961888760301220f, -0.985538735312176060f, 0.169450291233968210f, - -0.985797509167567370f, 0.167938294974731280f, -0.986053963346195440f, - 0.166425903540464050f, -0.986308097244598560f, 0.164913120489970140f, - -0.986559910264775410f, 0.163399949382973280f, -0.986809401814185530f, - 0.161886393780111740f, -0.987056571305750970f, 0.160372457242928450f, - -0.987301418157858430f, 0.158858143333861470f, -0.987543941794359230f, - 0.157343455616238550f, -0.987784141644572180f, 0.155828397654265370f, - -0.988022017143283530f, 0.154312973013020080f, -0.988257567730749460f, - 0.152797185258443690f, -0.988490792852696590f, 0.151281037957330310f, - -0.988721691960323780f, 0.149764534677321450f, -0.988950264510302990f, - 0.148247678986896250f, -0.989176509964781010f, 0.146730474455361800f, - -0.989400427791380380f, 0.145212924652847350f, -0.989622017463200780f, - 0.143695033150294640f, -0.989841278458820530f, 0.142176803519448090f, - -0.990058210262297010f, 0.140658239332849540f, -0.990272812363169110f, - 0.139139344163826340f, -0.990485084256457090f, 0.137620121586486040f, - -0.990695025442664630f, 0.136100575175706480f, -0.990902635427780010f, - 0.134580708507126280f, -0.991107913723276890f, 0.133060525157139010f, - -0.991310859846115440f, 0.131540028702883340f, -0.991511473318743900f, - 0.130019222722233430f, -0.991709753669099530f, 0.128498110793793090f, - -0.991905700430609330f, 0.126976696496886060f, -0.992099313142191800f, - 0.125454983411546260f, -0.992290591348257260f, 0.123932975118512480f, - -0.992479534598709970f, 0.122410675199216350f, -0.992666142448948020f, - 0.120888087235777060f, -0.992850414459865100f, 0.119365214810991630f, - -0.993032350197851410f, 0.117842061508325090f, -0.993211949234794500f, - 0.116318630911904710f, -0.993389211148080650f, 0.114794926606510310f, - -0.993564135520595300f, 0.113270952177564420f, -0.993736721940724600f, - 0.111746711211126500f, -0.993906970002356060f, 0.110222207293883240f, - -0.994074879304879370f, 0.108697444013138740f, -0.994240449453187900f, - 0.107172424956809160f, -0.994403680057679100f, 0.105647153713410750f, - -0.994564570734255420f, 0.104121633872054570f, -0.994723121104325700f, - 0.102595869022436560f, -0.994879330794805620f, 0.101069862754827930f, - -0.995033199438118630f, 0.099543618660069277f, -0.995184726672196820f, - 0.098017140329560826f, -0.995333912140482280f, 0.096490431355252662f, - -0.995480755491926940f, 0.094963495329638908f, -0.995625256380994310f, - 0.093436335845747967f, -0.995767414467659820f, 0.091908956497132752f, - -0.995907229417411720f, 0.090381360877865288f, -0.996044700901251970f, - 0.088853552582524753f, -0.996179828595696980f, 0.087325535206192059f, - -0.996312612182778000f, 0.085797312344440158f, -0.996443051350042630f, - 0.084268887593324182f, -0.996571145790554840f, 0.082740264549375636f, - -0.996696895202896060f, 0.081211446809592663f, -0.996820299291165670f, - 0.079682437971430195f, -0.996941357764982160f, 0.078153241632794149f, - -0.997060070339482960f, 0.076623861392031686f, -0.997176436735326080f, - 0.075094300847921347f, -0.997290456678690210f, 0.073564563599667732f, - -0.997402129901275300f, 0.072034653246889471f, -0.997511456140303450f, - 0.070504573389613856f, -0.997618435138519550f, 0.068974327628267024f, - -0.997723066644191640f, 0.067443919563664176f, -0.997825350411111640f, - 0.065913352797003763f, -0.997925286198596000f, 0.064382630929857701f, - -0.998022873771486240f, 0.062851757564161490f, -0.998118112900149180f, - 0.061320736302208488f, -0.998211003360478190f, 0.059789570746640069f, - -0.998301544933892890f, 0.058258264500435794f, -0.998389737407340160f, - 0.056726821166908067f, -0.998475580573294770f, 0.055195244349690094f, - -0.998559074229759310f, 0.053663537652730520f, -0.998640218180265160f, - 0.052131704680283594f, -0.998719012233872940f, 0.050599749036899393f, - -0.998795456205172410f, 0.049067674327417966f, -0.998869549914283560f, - 0.047535484156959538f, -0.998941293186856870f, 0.046003182130914706f, - -0.999010685854073380f, 0.044470771854938584f, -0.999077727752645360f, - 0.042938256934941021f, -0.999142418724816910f, 0.041405640977076774f, - -0.999204758618363890f, 0.039872927587740130f, -0.999264747286594420f, - 0.038340120373552854f, -0.999322384588349540f, 0.036807222941358832f, - -0.999377670388002850f, 0.035274238898214232f, -0.999430604555461730f, - 0.033741171851377705f, -0.999481186966166950f, 0.032208025408304544f, - -0.999529417501093140f, 0.030674803176636865f, -0.999575296046749220f, - 0.029141508764193802f, -0.999618822495178640f, 0.027608145778965660f, - -0.999659996743959220f, 0.026074717829104099f, -0.999698818696204250f, - 0.024541228522912326f, -0.999735288260561680f, 0.023007681468839695f, - -0.999769405351215280f, 0.021474080275469667f, -0.999801169887884260f, - 0.019940428551514438f, -0.999830581795823400f, 0.018406729905805101f, - -0.999857641005823860f, 0.016872987947281835f, -0.999882347454212560f, - 0.015339206284988060f, -0.999904701082852790f, 0.013805388528060632f, - -0.999924701839144500f, 0.012271538285720007f, -0.999942349676023910f, - 0.010737659167264411f, -0.999957644551963900f, 0.009203754782060021f, - -0.999970586430974140f, 0.007669828739531138f, -0.999981175282601110f, - 0.006135884649154799f, -0.999989411081928400f, 0.004601926120448733f, - -0.999995293809576190f, 0.003067956762965977f, -0.999998823451701880f, - 0.001533980186285049f, -1.000000000000000000f, 0.000000000000000122f, - -0.999998823451701880f, -0.001533980186284804f, -0.999995293809576190f, - -0.003067956762965732f, -0.999989411081928400f, -0.004601926120448488f, - -0.999981175282601110f, -0.006135884649154554f, -0.999970586430974140f, - -0.007669828739530893f, -0.999957644551963900f, -0.009203754782059776f, - -0.999942349676023910f, -0.010737659167264166f, -0.999924701839144500f, - -0.012271538285719762f, -0.999904701082852900f, -0.013805388528060387f, - -0.999882347454212560f, -0.015339206284987816f, -0.999857641005823860f, - -0.016872987947281589f, -0.999830581795823400f, -0.018406729905804858f, - -0.999801169887884260f, -0.019940428551514192f, -0.999769405351215280f, - -0.021474080275469421f, -0.999735288260561680f, -0.023007681468839448f, - -0.999698818696204250f, -0.024541228522912080f, -0.999659996743959220f, - -0.026074717829103856f, -0.999618822495178640f, -0.027608145778965414f, - -0.999575296046749220f, -0.029141508764193556f, -0.999529417501093140f, - -0.030674803176636619f, -0.999481186966166950f, -0.032208025408304294f, - -0.999430604555461730f, -0.033741171851377455f, -0.999377670388002850f, - -0.035274238898213982f, -0.999322384588349540f, -0.036807222941358582f, - -0.999264747286594420f, -0.038340120373552611f, -0.999204758618363890f, - -0.039872927587739887f, -0.999142418724816910f, -0.041405640977076531f, - -0.999077727752645360f, -0.042938256934940779f, -0.999010685854073380f, - -0.044470771854938335f, -0.998941293186856870f, -0.046003182130914456f, - -0.998869549914283560f, -0.047535484156959296f, -0.998795456205172410f, - -0.049067674327417724f, -0.998719012233872940f, -0.050599749036899150f, - -0.998640218180265270f, -0.052131704680283351f, -0.998559074229759310f, - -0.053663537652730277f, -0.998475580573294770f, -0.055195244349689851f, - -0.998389737407340160f, -0.056726821166907818f, -0.998301544933892890f, - -0.058258264500435551f, -0.998211003360478190f, -0.059789570746639827f, - -0.998118112900149180f, -0.061320736302208245f, -0.998022873771486240f, - -0.062851757564161240f, -0.997925286198596000f, -0.064382630929857451f, - -0.997825350411111640f, -0.065913352797003527f, -0.997723066644191640f, - -0.067443919563663926f, -0.997618435138519550f, -0.068974327628266774f, - -0.997511456140303450f, -0.070504573389613606f, -0.997402129901275300f, - -0.072034653246889235f, -0.997290456678690210f, -0.073564563599667496f, - -0.997176436735326190f, -0.075094300847921097f, -0.997060070339482960f, - -0.076623861392031437f, -0.996941357764982160f, -0.078153241632793899f, - -0.996820299291165780f, -0.079682437971429945f, -0.996696895202896060f, - -0.081211446809592427f, -0.996571145790554840f, -0.082740264549375400f, - -0.996443051350042630f, -0.084268887593323932f, -0.996312612182778000f, - -0.085797312344439922f, -0.996179828595696980f, -0.087325535206191809f, - -0.996044700901251970f, -0.088853552582524503f, -0.995907229417411720f, - -0.090381360877865052f, -0.995767414467659820f, -0.091908956497132516f, - -0.995625256380994310f, -0.093436335845747731f, -0.995480755491926940f, - -0.094963495329638659f, -0.995333912140482280f, -0.096490431355252412f, - -0.995184726672196930f, -0.098017140329560590f, -0.995033199438118630f, - -0.099543618660069041f, -0.994879330794805620f, -0.101069862754827680f, - -0.994723121104325700f, -0.102595869022436310f, -0.994564570734255530f, - -0.104121633872054320f, -0.994403680057679100f, -0.105647153713410520f, - -0.994240449453187900f, -0.107172424956808910f, -0.994074879304879480f, - -0.108697444013138490f, -0.993906970002356060f, -0.110222207293883000f, - -0.993736721940724710f, -0.111746711211126250f, -0.993564135520595300f, - -0.113270952177564170f, -0.993389211148080650f, -0.114794926606510070f, - -0.993211949234794610f, -0.116318630911904470f, -0.993032350197851410f, - -0.117842061508324840f, -0.992850414459865100f, -0.119365214810991380f, - -0.992666142448948020f, -0.120888087235776820f, -0.992479534598709970f, - -0.122410675199216100f, -0.992290591348257370f, -0.123932975118512230f, - -0.992099313142191800f, -0.125454983411546010f, -0.991905700430609330f, - -0.126976696496885810f, -0.991709753669099530f, -0.128498110793792840f, - -0.991511473318744010f, -0.130019222722233180f, -0.991310859846115440f, - -0.131540028702883090f, -0.991107913723276890f, -0.133060525157138760f, - -0.990902635427780010f, -0.134580708507126060f, -0.990695025442664630f, - -0.136100575175706230f, -0.990485084256457090f, -0.137620121586485790f, - -0.990272812363169110f, -0.139139344163826120f, -0.990058210262297120f, - -0.140658239332849290f, -0.989841278458820530f, -0.142176803519447840f, - -0.989622017463200890f, -0.143695033150294390f, -0.989400427791380380f, - -0.145212924652847130f, -0.989176509964781010f, -0.146730474455361580f, - -0.988950264510302990f, -0.148247678986896030f, -0.988721691960323780f, - -0.149764534677321200f, -0.988490792852696700f, -0.151281037957330080f, - -0.988257567730749460f, -0.152797185258443440f, -0.988022017143283640f, - -0.154312973013019830f, -0.987784141644572180f, -0.155828397654265120f, - -0.987543941794359230f, -0.157343455616238300f, -0.987301418157858430f, - -0.158858143333861220f, -0.987056571305750970f, -0.160372457242928200f, - -0.986809401814185530f, -0.161886393780111490f, -0.986559910264775520f, - -0.163399949382973060f, -0.986308097244598670f, -0.164913120489969890f, - -0.986053963346195440f, -0.166425903540463830f, -0.985797509167567480f, - -0.167938294974731030f, -0.985538735312176060f, -0.169450291233967990f, - -0.985277642388941330f, -0.170961888760300970f, -0.985014231012239840f, - -0.172473083996795870f, -0.984748501801904210f, -0.173983873387463880f, - -0.984480455383220930f, -0.175494253377271200f, -0.984210092386929140f, - -0.177004220412148690f, -0.983937413449218920f, -0.178513770938997170f, - -0.983662419211730250f, -0.180022901405699350f, -0.983385110321551180f, - -0.181531608261124970f, -0.983105487431216400f, -0.183039887955140650f, - -0.982823551198705350f, -0.184547736938619480f, -0.982539302287441240f, - -0.186055151663446660f, -0.982252741366289480f, -0.187562128582529320f, - -0.981963869109555240f, -0.189068664149806110f, -0.981672686196983110f, - -0.190574754820252820f, -0.981379193313754670f, -0.192080397049892220f, - -0.981083391150486710f, -0.193585587295803550f, -0.980785280403230430f, - -0.195090322016128360f, -0.980484861773469380f, -0.196594597670080030f, - -0.980182135968117430f, -0.198098410717953560f, -0.979877103699517750f, - -0.199601757621130670f, -0.979569765685440520f, -0.201104634842091760f, - -0.979260122649082020f, -0.202607038844421130f, -0.978948175319062200f, - -0.204108966092816620f, -0.978633924429423210f, -0.205610413053099160f, - -0.978317370719627650f, -0.207111376192218590f, -0.977998514934557140f, - -0.208611851978263260f, -0.977677357824510040f, -0.210111836880469550f, - -0.977353900145199960f, -0.211611327369227660f, -0.977028142657754390f, - -0.213110319916091200f, -0.976700086128711840f, -0.214608810993786730f, - -0.976369731330021250f, -0.216106797076219210f, -0.976037079039039130f, - -0.217604274638483470f, -0.975702130038528570f, -0.219101240156869800f, - -0.975364885116656980f, -0.220597690108873260f, -0.975025345066994120f, - -0.222093620973203430f, -0.974683510688510670f, -0.223589029229790040f, - -0.974339382785575860f, -0.225083911359792610f, -0.973992962167955940f, - -0.226578263845609920f, -0.973644249650811870f, -0.228072083170885810f, - -0.973293246054698250f, -0.229565365820518700f, -0.972939952205560180f, - -0.231058108280671080f, -0.972584368934732320f, -0.232550307038774940f, - -0.972226497078936380f, -0.234041958583543260f, -0.971866337480279400f, - -0.235533059404975510f, -0.971503890986251890f, -0.237023605994366950f, - -0.971139158449725200f, -0.238513594844318330f, -0.970772140728950240f, - -0.240003022448741530f, -0.970402838687555500f, -0.241491885302869110f, - -0.970031253194543970f, -0.242980179903263820f, -0.969657385124292450f, - -0.244467902747824260f, -0.969281235356548530f, -0.245955050335794430f, - -0.968902804776428870f, -0.247441619167773270f, -0.968522094274417380f, - -0.248927605745719870f, -0.968139104746362440f, -0.250413006572965110f, - -0.967753837093475510f, -0.251897818154216970f, -0.967366292222328620f, - -0.253382036995569880f, -0.966976471044852180f, -0.254865659604514460f, - -0.966584374478333120f, -0.256348682489942910f, -0.966190003445412620f, - -0.257831102162158770f, -0.965793358874083680f, -0.259312915132886180f, - -0.965394441697689400f, -0.260794117915275630f, -0.964993252854920440f, - -0.262274707023913420f, -0.964589793289812760f, -0.263754678974831350f, - -0.964184063951745830f, -0.265234030285511510f, -0.963776065795439950f, - -0.266712757474898250f, -0.963365799780954050f, -0.268190857063403180f, - -0.962953266873683990f, -0.269668325572914810f, -0.962538468044359160f, - -0.271145159526807900f, -0.962121404269041580f, -0.272621355449949030f, - -0.961702076529122540f, -0.274096909868706160f, -0.961280485811320640f, - -0.275571819310958090f, -0.960856633107679550f, -0.277046080306100010f, - -0.960430519415565900f, -0.278519689385052890f, -0.960002145737665960f, - -0.279992643080273220f, -0.959571513081984630f, -0.281464937925757660f, - -0.959138622461842010f, -0.282936570457055170f, -0.958703474895871600f, - -0.284407537211271820f, -0.958266071408017780f, -0.285877834727080340f, - -0.957826413027532910f, -0.287347459544729400f, -0.957384500788975860f, - -0.288816408206049540f, -0.956940335732208940f, -0.290284677254462110f, - -0.956493918902395100f, -0.291752263234989210f, -0.956045251349996410f, - -0.293219162694258740f, -0.955594334130771110f, -0.294685372180514160f, - -0.955141168305770780f, -0.296150888243623790f, -0.954685754941338450f, - -0.297615707435085920f, -0.954228095109105670f, -0.299079826308040310f, - -0.953768189885990330f, -0.300543241417273450f, -0.953306040354193970f, - -0.302005949319227810f, -0.952841647601198720f, -0.303467946572011200f, - -0.952375012719765880f, -0.304929229735402430f, -0.951906136807932350f, - -0.306389795370860700f, -0.951435020969008450f, -0.307849640041534810f, - -0.950961666311575080f, -0.309308760312268780f, -0.950486073949481810f, - -0.310767152749611310f, -0.950008245001843000f, -0.312224813921824880f, - -0.949528180593036790f, -0.313681740398891180f, -0.949045881852700670f, - -0.315137928752522220f, -0.948561349915730270f, -0.316593375556165850f, - -0.948074585922276340f, -0.318048077385014670f, -0.947585591017741200f, - -0.319502030816015580f, -0.947094366352777220f, -0.320955232427875270f, - -0.946600913083283650f, -0.322407678801069630f, -0.946105232370403450f, - -0.323859366517852800f, -0.945607325380521280f, -0.325310292162262980f, - -0.945107193285260610f, -0.326760452320131570f, -0.944604837261480260f, - -0.328209843579092500f, -0.944100258491272770f, -0.329658462528587210f, - -0.943593458161960390f, -0.331106305759876260f, -0.943084437466093490f, - -0.332553369866044220f, -0.942573197601446980f, -0.333999651442009100f, - -0.942059739771017420f, -0.335445147084531490f, -0.941544065183020810f, - -0.336889853392220110f, -0.941026175050889370f, -0.338333766965540910f, - -0.940506070593268410f, -0.339776884406826800f, -0.939983753034013940f, - -0.341219202320282470f, -0.939459223602190030f, -0.342660717311994210f, - -0.938932483532064600f, -0.344101425989938810f, -0.938403534063108280f, - -0.345541324963988760f, -0.937872376439989890f, -0.346980410845923510f, - -0.937339011912574960f, -0.348418680249434560f, -0.936803441735921670f, - -0.349856129790134640f, -0.936265667170278260f, -0.351292756085566980f, - -0.935725689481080370f, -0.352728555755210730f, -0.935183509938947720f, - -0.354163525420490120f, -0.934639129819680780f, -0.355597661704783800f, - -0.934092550404258870f, -0.357030961233430090f, -0.933543772978836280f, - -0.358463420633736370f, -0.932992798834738960f, -0.359895036534988110f, - -0.932439629268462470f, -0.361325805568453950f, -0.931884265581668150f, - -0.362755724367397060f, -0.931326709081180430f, -0.364184789567079890f, - -0.930766961078983820f, -0.365612997804773580f, -0.930205022892219070f, - -0.367040345719767070f, -0.929640895843181210f, -0.368466829953372380f, - -0.929074581259315860f, -0.369892447148933880f, -0.928506080473215590f, - -0.371317193951837430f, -0.927935394822617780f, -0.372741067009515870f, - -0.927362525650401110f, -0.374164062971457820f, -0.926787474304581860f, - -0.375586178489217160f, -0.926210242138311490f, -0.377007410216417930f, - -0.925630830509872830f, -0.378427754808765390f, -0.925049240782677580f, - -0.379847208924051160f, -0.924465474325262710f, -0.381265769222162100f, - -0.923879532511286850f, -0.382683432365089670f, -0.923291416719527640f, - -0.384100195016935100f, -0.922701128333878630f, -0.385516053843918630f, - -0.922108668743345180f, -0.386931005514388530f, -0.921514039342041900f, - -0.388345046698826360f, -0.920917241529189520f, -0.389758174069856240f, - -0.920318276709110590f, -0.391170384302253820f, -0.919717146291227470f, - -0.392581674072951190f, -0.919113851690057770f, -0.393992040061047930f, - -0.918508394325212250f, -0.395401478947816300f, -0.917900775621390610f, - -0.396809987416710030f, -0.917290997008378020f, -0.398217562153373450f, - -0.916679059921042700f, -0.399624199845646840f, -0.916064965799331830f, - -0.401029897183575400f, -0.915448716088267830f, -0.402434650859418370f, - -0.914830312237946090f, -0.403838457567654190f, -0.914209755703530690f, - -0.405241314004989690f, -0.913587047945250810f, -0.406643216870368970f, - -0.912962190428398320f, -0.408044162864978350f, -0.912335184623322860f, - -0.409444148692257430f, -0.911706032005429880f, -0.410843171057903910f, - -0.911074734055176470f, -0.412241226669882610f, -0.910441292258067250f, - -0.413638312238434390f, -0.909805708104652220f, -0.415034424476081630f, - -0.909167983090522490f, -0.416429560097636930f, -0.908528118716306230f, - -0.417823715820212220f, -0.907886116487666150f, -0.419216888363224020f, - -0.907241977915295930f, -0.420609074448402340f, -0.906595704514915450f, - -0.422000270799799630f, -0.905947297807268570f, -0.423390474143795710f, - -0.905296759318118820f, -0.424779681209108640f, -0.904644090578246240f, - -0.426167888726799620f, -0.903989293123443450f, -0.427555093430281810f, - -0.903332368494511930f, -0.428941292055329380f, -0.902673318237258830f, - -0.430326481340082670f, -0.902012143902493290f, -0.431710658025057040f, - -0.901348847046022030f, -0.433093818853151850f, -0.900683429228646860f, - -0.434475960569655760f, -0.900015892016160280f, -0.435857079922255310f, - -0.899346236979341570f, -0.437237173661044030f, -0.898674465693954040f, - -0.438616238538527330f, -0.898000579740739880f, -0.439994271309633090f, - -0.897324580705418320f, -0.441371268731716670f, -0.896646470178680380f, - -0.442747227564569750f, -0.895966249756185220f, -0.444122144570429090f, - -0.895283921038557470f, -0.445496016513981740f, -0.894599485631382810f, - -0.446868840162373940f, -0.893912945145203250f, -0.448240612285219830f, - -0.893224301195515320f, -0.449611329654606650f, -0.892533555402764690f, - -0.450980989045103640f, -0.891840709392342720f, -0.452349587233770830f, - -0.891145764794583410f, -0.453717121000163540f, -0.890448723244757990f, - -0.455083587126343670f, -0.889749586383072780f, -0.456448982396883920f, - -0.889048355854664680f, -0.457813303598876950f, -0.888345033309596350f, - -0.459176547521943980f, -0.887639620402853930f, -0.460538710958240060f, - -0.886932118794342310f, -0.461899790702462510f, -0.886222530148880640f, - -0.463259783551860090f, -0.885510856136199950f, -0.464618686306237870f, - -0.884797098430937900f, -0.465976495767965960f, -0.884081258712634990f, - -0.467333208741988360f, -0.883363338665731800f, -0.468688822035827620f, - -0.882643339979562900f, -0.470043332459595450f, -0.881921264348355050f, - -0.471396736825997640f, -0.881197113471222200f, -0.472749031950342510f, - -0.880470889052160870f, -0.474100214650549860f, -0.879742592800047410f, - -0.475450281747155920f, -0.879012226428633640f, -0.476799230063321870f, - -0.878279791656541580f, -0.478147056424842950f, -0.877545290207261240f, - -0.479493757660153060f, -0.876808723809145760f, -0.480839330600333740f, - -0.876070094195406600f, -0.482183772079122660f, -0.875329403104111000f, - -0.483527078932918410f, -0.874586652278176220f, -0.484869248000790950f, - -0.873841843465366860f, -0.486210276124486360f, -0.873094978418290200f, - -0.487550160148435660f, -0.872346058894391540f, -0.488888896919763060f, - -0.871595086655950980f, -0.490226483288291160f, -0.870842063470079090f, - -0.491562916106549730f, -0.870086991108711460f, -0.492898192229783930f, - -0.869329871348606730f, -0.494232308515959780f, -0.868570705971341010f, - -0.495565261825772320f, -0.867809496763303320f, -0.496897049022654470f, - -0.867046245515692870f, -0.498227666972781540f, -0.866280954024513110f, - -0.499557112545081730f, -0.865513624090569090f, -0.500885382611240710f, - -0.864744257519462490f, -0.502212474045710570f, -0.863972856121586810f, - -0.503538383725717460f, -0.863199421712124160f, -0.504863108531267590f, - -0.862423956111040720f, -0.506186645345155010f, -0.861646461143081410f, - -0.507508991052970760f, -0.860866938637767310f, -0.508830142543107100f, - -0.860085390429390250f, -0.510150096706766590f, -0.859301818357008470f, - -0.511468850437970300f, -0.858516224264442960f, -0.512786400633562730f, - -0.857728610000272120f, -0.514102744193221550f, -0.856938977417828760f, - -0.515417878019462930f, -0.856147328375194690f, -0.516731799017649650f, - -0.855353664735196140f, -0.518044504095999230f, -0.854557988365400530f, - -0.519355990165589640f, -0.853760301138111520f, -0.520666254140366940f, - -0.852960604930363740f, -0.521975292937154280f, -0.852158901623919830f, - -0.523283103475656430f, -0.851355193105265310f, -0.524589682678468730f, - -0.850549481265603480f, -0.525895027471084630f, -0.849741768000852660f, - -0.527199134781901060f, -0.848932055211639720f, -0.528502001542228260f, - -0.848120344803297230f, -0.529803624686294610f, -0.847306638685858540f, - -0.531104001151254670f, -0.846490938774052130f, -0.532403127877197790f, - -0.845673246987299070f, -0.533701001807152960f, -0.844853565249707230f, - -0.534997619887096930f, -0.844031895490066520f, -0.536292979065963070f, - -0.843208239641845440f, -0.537587076295645510f, -0.842382599643185960f, - -0.538879908531008200f, -0.841554977436898440f, -0.540171472729892850f, - -0.840725374970458180f, -0.541461765853123220f, -0.839893794195999630f, - -0.542750784864515780f, -0.839060237070312740f, -0.544038526730883820f, - -0.838224705554838190f, -0.545324988422046130f, -0.837387201615662050f, - -0.546610166910834750f, -0.836547727223512010f, -0.547894059173100190f, - -0.835706284353752720f, -0.549176662187719540f, -0.834862874986380120f, - -0.550457972936604700f, -0.834017501106018130f, -0.551737988404707450f, - -0.833170164701913300f, -0.553016705580027360f, -0.832320867767929680f, - -0.554294121453620000f, -0.831469612302545460f, -0.555570233019601960f, - -0.830616400308846430f, -0.556845037275159880f, -0.829761233794523050f, - -0.558118531220556100f, -0.828904114771865100f, -0.559390711859135800f, - -0.828045045257755800f, -0.560661576197335920f, -0.827184027273669130f, - -0.561931121244689360f, -0.826321062845663650f, -0.563199344013833870f, - -0.825456154004377550f, -0.564466241520519390f, -0.824589302785025290f, - -0.565731810783613230f, -0.823720511227391540f, -0.566996048825108460f, - -0.822849781375826430f, -0.568258952670131490f, -0.821977115279241550f, - -0.569520519346947250f, -0.821102514991104760f, -0.570780745886967140f, - -0.820225982569434690f, -0.572039629324757050f, -0.819347520076797120f, - -0.573297166698041980f, -0.818467129580298770f, -0.574553355047715650f, - -0.817584813151583710f, -0.575808191417845340f, -0.816700572866827960f, - -0.577061672855679330f, -0.815814410806733890f, -0.578313796411655480f, - -0.814926329056526620f, -0.579564559139405740f, -0.814036329705948520f, - -0.580813958095764300f, -0.813144414849253590f, -0.582061990340775440f, - -0.812250586585203880f, -0.583308652937698400f, -0.811354847017063840f, - -0.584553942953015100f, -0.810457198252594770f, -0.585797857456438860f, - -0.809557642404051480f, -0.587040393520917750f, -0.808656181588175090f, - -0.588281548222645110f, -0.807752817926190360f, -0.589521318641063940f, - -0.806847553543799450f, -0.590759701858873940f, -0.805940390571176390f, - -0.591996694962040880f, -0.805031331142963550f, -0.593232295039799800f, - -0.804120377398265920f, -0.594466499184664210f, -0.803207531480644940f, - -0.595699304492433250f, -0.802292795538115720f, -0.596930708062196500f, - -0.801376171723140350f, -0.598160706996342160f, -0.800457662192622820f, - -0.599389298400564540f, -0.799537269107905240f, -0.600616479383868640f, - -0.798614994634760930f, -0.601842247058579920f, -0.797690840943391160f, - -0.603066598540348160f, -0.796764810208418940f, -0.604289530948155850f, - -0.795836904608883570f, -0.605511041404325430f, -0.794907126328236900f, - -0.606731127034524480f, -0.793975477554337280f, -0.607949784967773410f, - -0.793041960479443750f, -0.609167012336453100f, -0.792106577300212280f, - -0.610382806276309480f, -0.791169330217690310f, -0.611597163926461800f, - -0.790230221437310140f, -0.612810082429409710f, -0.789289253168885870f, - -0.614021558931038160f, -0.788346427626606340f, -0.615231590580626710f, - -0.787401747029031430f, -0.616440174530853650f, -0.786455213599085990f, - -0.617647307937803650f, -0.785506829564054040f, -0.618852987960976210f, - -0.784556597155575240f, -0.620057211763289210f, -0.783604518609638420f, - -0.621259976511087440f, -0.782650596166575840f, -0.622461279374149860f, - -0.781694832071059390f, -0.623661117525694640f, -0.780737228572094600f, - -0.624859488142386230f, -0.779777787923014550f, -0.626056388404343520f, - -0.778816512381476200f, -0.627251815495143860f, -0.777853404209453150f, - -0.628445766601832600f, -0.776888465673232440f, -0.629638238914926980f, - -0.775921699043407800f, -0.630829229628424250f, -0.774953106594873930f, - -0.632018735939808950f, -0.773982690606822790f, -0.633206755050057300f, - -0.773010453362737100f, -0.634393284163645270f, -0.772036397150384520f, - -0.635578320488556110f, -0.771060524261813710f, -0.636761861236284310f, - -0.770082836993348120f, -0.637943903621843940f, -0.769103337645579700f, - -0.639124444863775730f, -0.768122028523365640f, -0.640303482184151450f, - -0.767138911935820510f, -0.641481012808583050f, -0.766153990196312920f, - -0.642657033966226860f, -0.765167265622459070f, -0.643831542889791280f, - -0.764178740536116790f, -0.645004536815543820f, -0.763188417263381270f, - -0.646176012983316390f, -0.762196298134579120f, -0.647345968636511840f, - -0.761202385484261890f, -0.648514401022112330f, -0.760206681651202420f, - -0.649681307390683190f, -0.759209188978388180f, -0.650846684996380760f, - -0.758209909813015280f, -0.652010531096959500f, -0.757208846506484790f, - -0.653172842953776530f, -0.756206001414394650f, -0.654333617831800330f, - -0.755201376896536550f, -0.655492852999615350f, -0.754194975316889390f, - -0.656650545729428830f, -0.753186799043612630f, -0.657806693297078530f, - -0.752176850449042700f, -0.658961292982037320f, -0.751165131909686590f, - -0.660114342067420260f, -0.750151645806215070f, -0.661265837839992150f, - -0.749136394523459260f, -0.662415777590171780f, -0.748119380450403710f, - -0.663564158612039660f, -0.747100605980180130f, -0.664710978203344790f, - -0.746080073510064000f, -0.665856233665509390f, -0.745057785441466060f, - -0.666999922303637360f, -0.744033744179929290f, -0.668142041426518450f, - -0.743007952135121940f, -0.669282588346635790f, -0.741980411720831070f, - -0.670421560380172980f, -0.740951125354959110f, -0.671558954847018440f, - -0.739920095459516310f, -0.672694769070772750f, -0.738887324460615220f, - -0.673829000378756040f, -0.737852814788465980f, -0.674961646102012040f, - -0.736816568877370020f, -0.676092703575315810f, -0.735778589165713590f, - -0.677222170137180330f, -0.734738878095963720f, -0.678350043129861250f, - -0.733697438114660370f, -0.679476319899364860f, -0.732654271672412820f, - -0.680600997795453020f, -0.731609381223892740f, -0.681724074171649600f, - -0.730562769227827700f, -0.682845546385247970f, -0.729514438146997010f, - -0.683965411797315400f, -0.728464390448225420f, -0.685083667772700130f, - -0.727412628602375880f, -0.686200311680038480f, -0.726359155084345900f, - -0.687315340891759160f, -0.725303972373060880f, -0.688428752784090330f, - -0.724247082951467000f, -0.689540544737066830f, -0.723188489306527680f, - -0.690650714134534380f, -0.722128193929215460f, -0.691759258364157640f, - -0.721066199314508110f, -0.692866174817424630f, -0.720002507961381880f, - -0.693971460889653780f, -0.718937122372804490f, -0.695075113980000770f, - -0.717870045055731710f, -0.696177131491462990f, -0.716801278521099650f, - -0.697277510830886400f, -0.715730825283818710f, -0.698376249408972800f, - -0.714658687862768980f, -0.699473344640283880f, -0.713584868780793750f, - -0.700568793943248220f, -0.712509370564692320f, -0.701662594740168450f, - -0.711432195745216660f, -0.702754744457225080f, -0.710353346857062420f, - -0.703845240524484830f, -0.709272826438865690f, -0.704934080375904880f, - -0.708190637033195510f, -0.706021261449339520f, -0.707106781186547680f, - -0.707106781186547460f, -0.706021261449339740f, -0.708190637033195290f, - -0.704934080375905100f, -0.709272826438865470f, -0.703845240524485050f, - -0.710353346857062310f, -0.702754744457225300f, -0.711432195745216430f, - -0.701662594740168680f, -0.712509370564692210f, -0.700568793943248450f, - -0.713584868780793520f, -0.699473344640284100f, -0.714658687862768760f, - -0.698376249408973030f, -0.715730825283818480f, -0.697277510830886630f, - -0.716801278521099540f, -0.696177131491463210f, -0.717870045055731490f, - -0.695075113980000990f, -0.718937122372804380f, -0.693971460889654000f, - -0.720002507961381650f, -0.692866174817424850f, -0.721066199314507880f, - -0.691759258364157860f, -0.722128193929215230f, -0.690650714134534600f, - -0.723188489306527460f, -0.689540544737067050f, -0.724247082951466780f, - -0.688428752784090550f, -0.725303972373060660f, -0.687315340891759390f, - -0.726359155084345680f, -0.686200311680038700f, -0.727412628602375650f, - -0.685083667772700360f, -0.728464390448225200f, -0.683965411797315630f, - -0.729514438146996790f, -0.682845546385248190f, -0.730562769227827480f, - -0.681724074171649820f, -0.731609381223892520f, -0.680600997795453240f, - -0.732654271672412590f, -0.679476319899365080f, -0.733697438114660150f, - -0.678350043129861470f, -0.734738878095963500f, -0.677222170137180560f, - -0.735778589165713370f, -0.676092703575316030f, -0.736816568877369790f, - -0.674961646102012260f, -0.737852814788465760f, -0.673829000378756260f, - -0.738887324460615000f, -0.672694769070772970f, -0.739920095459516090f, - -0.671558954847018660f, -0.740951125354958880f, -0.670421560380173200f, - -0.741980411720830960f, -0.669282588346636120f, -0.743007952135121720f, - -0.668142041426518670f, -0.744033744179929070f, -0.666999922303637580f, - -0.745057785441465840f, -0.665856233665509610f, -0.746080073510063780f, - -0.664710978203345020f, -0.747100605980180020f, -0.663564158612039880f, - -0.748119380450403490f, -0.662415777590172010f, -0.749136394523459040f, - -0.661265837839992380f, -0.750151645806214960f, -0.660114342067420480f, - -0.751165131909686370f, -0.658961292982037540f, -0.752176850449042480f, - -0.657806693297078750f, -0.753186799043612410f, -0.656650545729429050f, - -0.754194975316889170f, -0.655492852999615570f, -0.755201376896536320f, - -0.654333617831800660f, -0.756206001414394420f, -0.653172842953777090f, - -0.757208846506484230f, -0.652010531096959720f, -0.758209909813015170f, - -0.650846684996380990f, -0.759209188978387960f, -0.649681307390683080f, - -0.760206681651202420f, -0.648514401022112220f, -0.761202385484262000f, - -0.647345968636512500f, -0.762196298134578560f, -0.646176012983316620f, - -0.763188417263381050f, -0.645004536815544040f, -0.764178740536116560f, - -0.643831542889791500f, -0.765167265622458960f, -0.642657033966226750f, - -0.766153990196313030f, -0.641481012808583610f, -0.767138911935820070f, - -0.640303482184152010f, -0.768122028523365090f, -0.639124444863775950f, - -0.769103337645579480f, -0.637943903621844170f, -0.770082836993347900f, - -0.636761861236284200f, -0.771060524261813820f, -0.635578320488556000f, - -0.772036397150384630f, -0.634393284163645930f, -0.773010453362736660f, - -0.633206755050057520f, -0.773982690606822570f, -0.632018735939809170f, - -0.774953106594873820f, -0.630829229628424580f, -0.775921699043407580f, - -0.629638238914926870f, -0.776888465673232550f, -0.628445766601833160f, - -0.777853404209452700f, -0.627251815495144420f, -0.778816512381475650f, - -0.626056388404343740f, -0.779777787923014330f, -0.624859488142386450f, - -0.780737228572094380f, -0.623661117525694530f, -0.781694832071059500f, - -0.622461279374149750f, -0.782650596166575840f, -0.621259976511088000f, - -0.783604518609637980f, -0.620057211763289430f, -0.784556597155575020f, - -0.618852987960976430f, -0.785506829564053820f, -0.617647307937803980f, - -0.786455213599085770f, -0.616440174530853540f, -0.787401747029031430f, - -0.615231590580627260f, -0.788346427626605890f, -0.614021558931038710f, - -0.789289253168885430f, -0.612810082429409930f, -0.790230221437309920f, - -0.611597163926462020f, -0.791169330217690090f, -0.610382806276309360f, - -0.792106577300212390f, -0.609167012336452980f, -0.793041960479443860f, - -0.607949784967774080f, -0.793975477554336840f, -0.606731127034524810f, - -0.794907126328236790f, -0.605511041404325660f, -0.795836904608883460f, - -0.604289530948156070f, -0.796764810208418720f, -0.603066598540348050f, - -0.797690840943391160f, -0.601842247058580470f, -0.798614994634760490f, - -0.600616479383869310f, -0.799537269107904790f, -0.599389298400564760f, - -0.800457662192622600f, -0.598160706996342380f, -0.801376171723140130f, - -0.596930708062196390f, -0.802292795538115720f, -0.595699304492433130f, - -0.803207531480645050f, -0.594466499184664880f, -0.804120377398265470f, - -0.593232295039800130f, -0.805031331142963440f, -0.591996694962041100f, - -0.805940390571176170f, -0.590759701858874280f, -0.806847553543799220f, - -0.589521318641063830f, -0.807752817926190470f, -0.588281548222645780f, - -0.808656181588174650f, -0.587040393520918300f, -0.809557642404051040f, - -0.585797857456439090f, -0.810457198252594660f, -0.584553942953015330f, - -0.811354847017063730f, -0.583308652937698290f, -0.812250586585203990f, - -0.582061990340775330f, -0.813144414849253700f, -0.580813958095764970f, - -0.814036329705948080f, -0.579564559139405970f, -0.814926329056526400f, - -0.578313796411655700f, -0.815814410806733670f, -0.577061672855679550f, - -0.816700572866827730f, -0.575808191417845230f, -0.817584813151583820f, - -0.574553355047716320f, -0.818467129580298320f, -0.573297166698042540f, - -0.819347520076796680f, -0.572039629324757270f, -0.820225982569434460f, - -0.570780745886967370f, -0.821102514991104650f, -0.569520519346947140f, - -0.821977115279241550f, -0.568258952670131380f, -0.822849781375826430f, - -0.566996048825109010f, -0.823720511227391090f, -0.565731810783613450f, - -0.824589302785025070f, -0.564466241520519610f, -0.825456154004377440f, - -0.563199344013834090f, -0.826321062845663420f, -0.561931121244689250f, - -0.827184027273669240f, -0.560661576197336480f, -0.828045045257755460f, - -0.559390711859136470f, -0.828904114771864650f, -0.558118531220556320f, - -0.829761233794522930f, -0.556845037275160100f, -0.830616400308846200f, - -0.555570233019602180f, -0.831469612302545240f, -0.554294121453619890f, - -0.832320867767929800f, -0.553016705580027910f, -0.833170164701912960f, - -0.551737988404707670f, -0.834017501106017910f, -0.550457972936604920f, - -0.834862874986380010f, -0.549176662187719770f, -0.835706284353752600f, - -0.547894059173100080f, -0.836547727223512120f, -0.546610166910835420f, - -0.837387201615661600f, -0.545324988422046800f, -0.838224705554837860f, - -0.544038526730884150f, -0.839060237070312520f, -0.542750784864516000f, - -0.839893794195999410f, -0.541461765853123440f, -0.840725374970458070f, - -0.540171472729892740f, -0.841554977436898550f, -0.538879908531008870f, - -0.842382599643185630f, -0.537587076295645730f, -0.843208239641845210f, - -0.536292979065963290f, -0.844031895490066300f, -0.534997619887097260f, - -0.844853565249707010f, -0.533701001807152850f, -0.845673246987299180f, - -0.532403127877198460f, -0.846490938774051790f, -0.531104001151255330f, - -0.847306638685858090f, -0.529803624686294940f, -0.848120344803297120f, - -0.528502001542228590f, -0.848932055211639610f, -0.527199134781901280f, - -0.849741768000852550f, -0.525895027471084520f, -0.850549481265603590f, - -0.524589682678469390f, -0.851355193105264860f, -0.523283103475656760f, - -0.852158901623919610f, -0.521975292937154500f, -0.852960604930363520f, - -0.520666254140367160f, -0.853760301138111410f, -0.519355990165589420f, - -0.854557988365400640f, -0.518044504095999890f, -0.855353664735195700f, - -0.516731799017650210f, -0.856147328375194250f, -0.515417878019463260f, - -0.856938977417828540f, -0.514102744193221770f, -0.857728610000272010f, - -0.512786400633562960f, -0.858516224264442850f, -0.511468850437970190f, - -0.859301818357008470f, -0.510150096706767250f, -0.860085390429389920f, - -0.508830142543107320f, -0.860866938637767090f, -0.507508991052970980f, - -0.861646461143081190f, -0.506186645345155340f, -0.862423956111040500f, - -0.504863108531267370f, -0.863199421712124270f, -0.503538383725718020f, - -0.863972856121586470f, -0.502212474045711120f, -0.864744257519462160f, - -0.500885382611241050f, -0.865513624090568980f, -0.499557112545082000f, - -0.866280954024512880f, -0.498227666972781810f, -0.867046245515692650f, - -0.496897049022654360f, -0.867809496763303320f, -0.495565261825772980f, - -0.868570705971340670f, -0.494232308515960060f, -0.869329871348606620f, - -0.492898192229784200f, -0.870086991108711350f, -0.491562916106549950f, - -0.870842063470078860f, -0.490226483288291050f, -0.871595086655951090f, - -0.488888896919763730f, -0.872346058894391210f, -0.487550160148436330f, - -0.873094978418289870f, -0.486210276124486640f, -0.873841843465366750f, - -0.484869248000791180f, -0.874586652278176110f, -0.483527078932918690f, - -0.875329403104110890f, -0.482183772079122550f, -0.876070094195406710f, - -0.480839330600334400f, -0.876808723809145430f, -0.479493757660153340f, - -0.877545290207261130f, -0.478147056424843230f, -0.878279791656541460f, - -0.476799230063322140f, -0.879012226428633410f, -0.475450281747155760f, - -0.879742592800047520f, -0.474100214650550520f, -0.880470889052160530f, - -0.472749031950343180f, -0.881197113471221870f, -0.471396736825997860f, - -0.881921264348354940f, -0.470043332459595730f, -0.882643339979562680f, - -0.468688822035827900f, -0.883363338665731580f, -0.467333208741988250f, - -0.884081258712635100f, -0.465976495767966630f, -0.884797098430937570f, - -0.464618686306238150f, -0.885510856136199730f, -0.463259783551860370f, - -0.886222530148880530f, -0.461899790702462790f, -0.886932118794342190f, - -0.460538710958239890f, -0.887639620402854050f, -0.459176547521944640f, - -0.888345033309596020f, -0.457813303598877620f, -0.889048355854664350f, - -0.456448982396884200f, -0.889749586383072670f, -0.455083587126343950f, - -0.890448723244757880f, -0.453717121000163810f, -0.891145764794583290f, - -0.452349587233770670f, -0.891840709392342830f, -0.450980989045104310f, - -0.892533555402764360f, -0.449611329654606930f, -0.893224301195515210f, - -0.448240612285220110f, -0.893912945145203140f, -0.446868840162374210f, - -0.894599485631382700f, -0.445496016513981630f, -0.895283921038557580f, - -0.444122144570429760f, -0.895966249756184880f, -0.442747227564570410f, - -0.896646470178680040f, -0.441371268731716950f, -0.897324580705418210f, - -0.439994271309633370f, -0.898000579740739770f, -0.438616238538527600f, - -0.898674465693953820f, -0.437237173661043920f, -0.899346236979341680f, - -0.435857079922255970f, -0.900015892016159950f, -0.434475960569656040f, - -0.900683429228646750f, -0.433093818853152120f, -0.901348847046021920f, - -0.431710658025057310f, -0.902012143902493180f, -0.430326481340082500f, - -0.902673318237258830f, -0.428941292055330050f, -0.903332368494511600f, - -0.427555093430282470f, -0.903989293123443120f, -0.426167888726799890f, - -0.904644090578246130f, -0.424779681209108920f, -0.905296759318118700f, - -0.423390474143795990f, -0.905947297807268460f, -0.422000270799799520f, - -0.906595704514915450f, -0.420609074448403010f, -0.907241977915295590f, - -0.419216888363224290f, -0.907886116487666040f, -0.417823715820212490f, - -0.908528118716306010f, -0.416429560097637210f, -0.909167983090522380f, - -0.415034424476081520f, -0.909805708104652330f, -0.413638312238435110f, - -0.910441292258066910f, -0.412241226669883280f, -0.911074734055176140f, - -0.410843171057904190f, -0.911706032005429770f, -0.409444148692257760f, - -0.912335184623322750f, -0.408044162864978630f, -0.912962190428398210f, - -0.406643216870368810f, -0.913587047945250920f, -0.405241314004990360f, - -0.914209755703530470f, -0.403838457567654460f, -0.914830312237945980f, - -0.402434650859418650f, -0.915448716088267720f, -0.401029897183575680f, - -0.916064965799331720f, -0.399624199845646730f, -0.916679059921042700f, - -0.398217562153374170f, -0.917290997008377680f, -0.396809987416710750f, - -0.917900775621390270f, -0.395401478947816580f, -0.918508394325212140f, - -0.393992040061048210f, -0.919113851690057660f, -0.392581674072951470f, - -0.919717146291227360f, -0.391170384302253700f, -0.920318276709110590f, - -0.389758174069856970f, -0.920917241529189300f, -0.388345046698826630f, - -0.921514039342041790f, -0.386931005514388800f, -0.922108668743345070f, - -0.385516053843918900f, -0.922701128333878520f, -0.384100195016934930f, - -0.923291416719527640f, -0.382683432365090340f, -0.923879532511286520f, - -0.381265769222162760f, -0.924465474325262490f, -0.379847208924051440f, - -0.925049240782677470f, -0.378427754808765730f, -0.925630830509872720f, - -0.377007410216418200f, -0.926210242138311380f, -0.375586178489217050f, - -0.926787474304581860f, -0.374164062971458490f, -0.927362525650400890f, - -0.372741067009516150f, -0.927935394822617670f, -0.371317193951837770f, - -0.928506080473215480f, -0.369892447148934160f, -0.929074581259315750f, - -0.368466829953372210f, -0.929640895843181330f, -0.367040345719766960f, - -0.930205022892219180f, -0.365612997804774300f, -0.930766961078983600f, - -0.364184789567080170f, -0.931326709081180320f, -0.362755724367397340f, - -0.931884265581668040f, -0.361325805568454230f, -0.932439629268462360f, - -0.359895036534987940f, -0.932992798834738960f, -0.358463420633737040f, - -0.933543772978835950f, -0.357030961233430370f, -0.934092550404258760f, - -0.355597661704784070f, -0.934639129819680670f, -0.354163525420490450f, - -0.935183509938947610f, -0.352728555755210620f, -0.935725689481080370f, - -0.351292756085566870f, -0.936265667170278370f, -0.349856129790135360f, - -0.936803441735921450f, -0.348418680249434840f, -0.937339011912574850f, - -0.346980410845923790f, -0.937872376439989770f, -0.345541324963989040f, - -0.938403534063108170f, -0.344101425989938650f, -0.938932483532064600f, - -0.342660717311994880f, -0.939459223602189700f, -0.341219202320282740f, - -0.939983753034013820f, -0.339776884406827070f, -0.940506070593268300f, - -0.338333766965541240f, -0.941026175050889260f, -0.336889853392219940f, - -0.941544065183020810f, -0.335445147084531380f, -0.942059739771017420f, - -0.333999651442009830f, -0.942573197601446760f, -0.332553369866044500f, - -0.943084437466093380f, -0.331106305759876540f, -0.943593458161960270f, - -0.329658462528587490f, -0.944100258491272660f, -0.328209843579092330f, - -0.944604837261480370f, -0.326760452320132290f, -0.945107193285260380f, - -0.325310292162263310f, -0.945607325380521170f, -0.323859366517853080f, - -0.946105232370403340f, -0.322407678801069910f, -0.946600913083283530f, - -0.320955232427875160f, -0.947094366352777220f, -0.319502030816015410f, - -0.947585591017741200f, -0.318048077385015390f, -0.948074585922276110f, - -0.316593375556166180f, -0.948561349915730160f, -0.315137928752522560f, - -0.949045881852700560f, -0.313681740398891460f, -0.949528180593036670f, - -0.312224813921824770f, -0.950008245001843110f, -0.310767152749612030f, - -0.950486073949481590f, -0.309308760312269060f, -0.950961666311574970f, - -0.307849640041535090f, -0.951435020969008340f, -0.306389795370861030f, - -0.951906136807932350f, -0.304929229735402320f, -0.952375012719765880f, - -0.303467946572011040f, -0.952841647601198720f, -0.302005949319228530f, - -0.953306040354193750f, -0.300543241417273730f, -0.953768189885990210f, - -0.299079826308040590f, -0.954228095109105560f, -0.297615707435086200f, - -0.954685754941338340f, -0.296150888243623680f, -0.955141168305770780f, - -0.294685372180514880f, -0.955594334130770880f, -0.293219162694259020f, - -0.956045251349996290f, -0.291752263234989480f, -0.956493918902394990f, - -0.290284677254462440f, -0.956940335732208820f, -0.288816408206049370f, - -0.957384500788975970f, -0.287347459544729290f, -0.957826413027533020f, - -0.285877834727081060f, -0.958266071408017560f, -0.284407537211272150f, - -0.958703474895871490f, -0.282936570457055500f, -0.959138622461841890f, - -0.281464937925757940f, -0.959571513081984520f, -0.279992643080273050f, - -0.960002145737665960f, -0.278519689385053610f, -0.960430519415565680f, - -0.277046080306100280f, -0.960856633107679550f, -0.275571819310958370f, - -0.961280485811320530f, -0.274096909868706440f, -0.961702076529122540f, - -0.272621355449948870f, -0.962121404269041580f, -0.271145159526807790f, - -0.962538468044359270f, -0.269668325572915530f, -0.962953266873683770f, - -0.268190857063403510f, -0.963365799780953940f, -0.266712757474898530f, - -0.963776065795439840f, -0.265234030285511790f, -0.964184063951745830f, - -0.263754678974831240f, -0.964589793289812760f, -0.262274707023914140f, - -0.964993252854920210f, -0.260794117915275900f, -0.965394441697689290f, - -0.259312915132886460f, -0.965793358874083570f, -0.257831102162159040f, - -0.966190003445412500f, -0.256348682489942800f, -0.966584374478333120f, - -0.254865659604514350f, -0.966976471044852180f, -0.253382036995570600f, - -0.967366292222328390f, -0.251897818154217250f, -0.967753837093475400f, - -0.250413006572965390f, -0.968139104746362330f, -0.248927605745720150f, - -0.968522094274417270f, -0.247441619167773130f, -0.968902804776428870f, - -0.245955050335795150f, -0.969281235356548310f, -0.244467902747824540f, - -0.969657385124292340f, -0.242980179903264120f, -0.970031253194543970f, - -0.241491885302869410f, -0.970402838687555500f, -0.240003022448741390f, - -0.970772140728950350f, -0.238513594844318190f, -0.971139158449725200f, - -0.237023605994367670f, -0.971503890986251670f, -0.235533059404975790f, - -0.971866337480279290f, -0.234041958583543570f, -0.972226497078936270f, - -0.232550307038775220f, -0.972584368934732210f, -0.231058108280670940f, - -0.972939952205560180f, -0.229565365820519420f, -0.973293246054698140f, - -0.228072083170886120f, -0.973644249650811870f, -0.226578263845610220f, - -0.973992962167955830f, -0.225083911359792920f, -0.974339382785575860f, - -0.223589029229789900f, -0.974683510688510670f, -0.222093620973203290f, - -0.975025345066994230f, -0.220597690108873980f, -0.975364885116656870f, - -0.219101240156870100f, -0.975702130038528460f, -0.217604274638483780f, - -0.976037079039039020f, -0.216106797076219490f, -0.976369731330021140f, - -0.214608810993786620f, -0.976700086128711840f, -0.213110319916091920f, - -0.977028142657754280f, -0.211611327369227970f, -0.977353900145199960f, - -0.210111836880469860f, -0.977677357824509930f, -0.208611851978263570f, - -0.977998514934557030f, -0.207111376192218480f, -0.978317370719627650f, - -0.205610413053099020f, -0.978633924429423210f, -0.204108966092817340f, - -0.978948175319062090f, -0.202607038844421440f, -0.979260122649082020f, - -0.201104634842092070f, -0.979569765685440520f, -0.199601757621130970f, - -0.979877103699517640f, -0.198098410717953420f, -0.980182135968117430f, - -0.196594597670080780f, -0.980484861773469270f, -0.195090322016128660f, - -0.980785280403230320f, -0.193585587295803860f, -0.981083391150486590f, - -0.192080397049892520f, -0.981379193313754560f, -0.190574754820252680f, - -0.981672686196983110f, -0.189068664149805970f, -0.981963869109555350f, - -0.187562128582530070f, -0.982252741366289370f, -0.186055151663446970f, - -0.982539302287441240f, -0.184547736938619780f, -0.982823551198705240f, - -0.183039887955140950f, -0.983105487431216290f, -0.181531608261124830f, - -0.983385110321551290f, -0.180022901405700070f, -0.983662419211730140f, - -0.178513770938997920f, -0.983937413449218810f, -0.177004220412149000f, - -0.984210092386929030f, -0.175494253377271510f, -0.984480455383220930f, - -0.173983873387463740f, -0.984748501801904210f, -0.172473083996795730f, - -0.985014231012239840f, -0.170961888760301690f, -0.985277642388941110f, - -0.169450291233968290f, -0.985538735312176060f, -0.167938294974731340f, - -0.985797509167567370f, -0.166425903540464100f, -0.986053963346195440f, - -0.164913120489969760f, -0.986308097244598670f, -0.163399949382973780f, - -0.986559910264775410f, -0.161886393780112240f, -0.986809401814185420f, - -0.160372457242928510f, -0.987056571305750970f, -0.158858143333861530f, - -0.987301418157858320f, -0.157343455616238190f, -0.987543941794359340f, - -0.155828397654264980f, -0.987784141644572180f, -0.154312973013020580f, - -0.988022017143283530f, -0.152797185258443740f, -0.988257567730749460f, - -0.151281037957330360f, -0.988490792852696590f, -0.149764534677321510f, - -0.988721691960323780f, -0.148247678986895890f, -0.988950264510302990f, - -0.146730474455362300f, -0.989176509964780900f, -0.145212924652847850f, - -0.989400427791380270f, -0.143695033150294690f, -0.989622017463200780f, - -0.142176803519448140f, -0.989841278458820530f, -0.140658239332849160f, - -0.990058210262297120f, -0.139139344163825980f, -0.990272812363169110f, - -0.137620121586486540f, -0.990485084256456980f, -0.136100575175706530f, - -0.990695025442664630f, -0.134580708507126360f, -0.990902635427780010f, - -0.133060525157139060f, -0.991107913723276890f, -0.131540028702882950f, - -0.991310859846115440f, -0.130019222722233930f, -0.991511473318743900f, - -0.128498110793793590f, -0.991709753669099530f, -0.126976696496886120f, - -0.991905700430609330f, -0.125454983411546320f, -0.992099313142191800f, - -0.123932975118512090f, -0.992290591348257370f, -0.122410675199215960f, - -0.992479534598710080f, -0.120888087235777570f, -0.992666142448947910f, - -0.119365214810991690f, -0.992850414459865100f, -0.117842061508325140f, - -0.993032350197851410f, -0.116318630911904770f, -0.993211949234794500f, - -0.114794926606509930f, -0.993389211148080650f, -0.113270952177564920f, - -0.993564135520595300f, -0.111746711211127000f, -0.993736721940724600f, - -0.110222207293883310f, -0.993906970002356060f, -0.108697444013138800f, - -0.994074879304879370f, -0.107172424956808770f, -0.994240449453187900f, - -0.105647153713410380f, -0.994403680057679100f, -0.104121633872055070f, - -0.994564570734255420f, -0.102595869022436610f, -0.994723121104325700f, - -0.101069862754827990f, -0.994879330794805620f, -0.099543618660069347f, - -0.995033199438118630f, -0.098017140329560451f, -0.995184726672196930f, - -0.096490431355253162f, -0.995333912140482170f, -0.094963495329639408f, - -0.995480755491926940f, -0.093436335845748036f, -0.995625256380994310f, - -0.091908956497132821f, -0.995767414467659820f, -0.090381360877864914f, - -0.995907229417411720f, -0.088853552582524364f, -0.996044700901251970f, - -0.087325535206192559f, -0.996179828595696870f, -0.085797312344440227f, - -0.996312612182778000f, -0.084268887593324238f, -0.996443051350042630f, - -0.082740264549375706f, -0.996571145790554840f, -0.081211446809592289f, - -0.996696895202896060f, -0.079682437971430695f, -0.996820299291165670f, - -0.078153241632794648f, -0.996941357764982050f, -0.076623861392031742f, - -0.997060070339482960f, -0.075094300847921402f, -0.997176436735326080f, - -0.073564563599667357f, -0.997290456678690210f, -0.072034653246889097f, - -0.997402129901275300f, -0.070504573389614356f, -0.997511456140303450f, - -0.068974327628267079f, -0.997618435138519550f, -0.067443919563664231f, - -0.997723066644191640f, -0.065913352797003832f, -0.997825350411111640f, - -0.064382630929857312f, -0.997925286198596000f, -0.062851757564161989f, - -0.998022873771486130f, -0.061320736302208995f, -0.998118112900149180f, - -0.059789570746640132f, -0.998211003360478190f, -0.058258264500435857f, - -0.998301544933892780f, -0.056726821166907686f, -0.998389737407340160f, - -0.055195244349689712f, -0.998475580573294770f, -0.053663537652731026f, - -0.998559074229759310f, -0.052131704680283657f, -0.998640218180265160f, - -0.050599749036899455f, -0.998719012233872940f, -0.049067674327418029f, - -0.998795456205172410f, -0.047535484156959157f, -0.998869549914283560f, - -0.046003182130915206f, -0.998941293186856870f, -0.044470771854939084f, - -0.999010685854073270f, -0.042938256934941084f, -0.999077727752645360f, - -0.041405640977076837f, -0.999142418724816910f, -0.039872927587739748f, - -0.999204758618363890f, -0.038340120373552472f, -0.999264747286594420f, - -0.036807222941359331f, -0.999322384588349430f, -0.035274238898214294f, - -0.999377670388002850f, -0.033741171851377760f, -0.999430604555461730f, - -0.032208025408304600f, -0.999481186966166950f, -0.030674803176636484f, - -0.999529417501093140f, -0.029141508764194309f, -0.999575296046749220f, - -0.027608145778966163f, -0.999618822495178640f, -0.026074717829104161f, - -0.999659996743959220f, -0.024541228522912389f, -0.999698818696204250f, - -0.023007681468839310f, -0.999735288260561680f, -0.021474080275469286f, - -0.999769405351215280f, -0.019940428551514944f, -0.999801169887884260f, - -0.018406729905805164f, -0.999830581795823400f, -0.016872987947281894f, - -0.999857641005823860f, -0.015339206284988121f, -0.999882347454212560f, - -0.013805388528060250f, -0.999904701082852900f, -0.012271538285720512f, - -0.999924701839144500f, -0.010737659167264916f, -0.999942349676023910f, - -0.009203754782060083f, -0.999957644551963900f, -0.007669828739531199f, - -0.999970586430974140f, -0.006135884649154416f, -0.999981175282601110f, - -0.004601926120448350f, -0.999989411081928400f, -0.003067956762966483f, - -0.999995293809576190f, -0.001533980186285111f, -0.999998823451701880f, -}; - -/* -* @brief Q31 Twiddle factors Table -*/ - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)    
-* {    
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);    
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);    
-* } 
-* \par -* where N = 4096 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ - -const q31_t twiddleCoefQ31[6144] = { - 0x7fffffff, 0x0, 0x7ffff621, 0x3243f5, 0x7fffd886, 0x6487e3, 0x7fffa72c, - 0x96cbc1, - 0x7fff6216, 0xc90f88, 0x7fff0943, 0xfb5330, 0x7ffe9cb2, 0x12d96b1, - 0x7ffe1c65, 0x15fda03, - 0x7ffd885a, 0x1921d20, 0x7ffce093, 0x1c45ffe, 0x7ffc250f, 0x1f6a297, - 0x7ffb55ce, 0x228e4e2, - 0x7ffa72d1, 0x25b26d7, 0x7ff97c18, 0x28d6870, 0x7ff871a2, 0x2bfa9a4, - 0x7ff75370, 0x2f1ea6c, - 0x7ff62182, 0x3242abf, 0x7ff4dbd9, 0x3566a96, 0x7ff38274, 0x388a9ea, - 0x7ff21553, 0x3bae8b2, - 0x7ff09478, 0x3ed26e6, 0x7feeffe1, 0x41f6480, 0x7fed5791, 0x451a177, - 0x7feb9b85, 0x483ddc3, - 0x7fe9cbc0, 0x4b6195d, 0x7fe7e841, 0x4e8543e, 0x7fe5f108, 0x51a8e5c, - 0x7fe3e616, 0x54cc7b1, - 0x7fe1c76b, 0x57f0035, 0x7fdf9508, 0x5b137df, 0x7fdd4eec, 0x5e36ea9, - 0x7fdaf519, 0x615a48b, - 0x7fd8878e, 0x647d97c, 0x7fd6064c, 0x67a0d76, 0x7fd37153, 0x6ac406f, - 0x7fd0c8a3, 0x6de7262, - 0x7fce0c3e, 0x710a345, 0x7fcb3c23, 0x742d311, 0x7fc85854, 0x77501be, - 0x7fc560cf, 0x7a72f45, - 0x7fc25596, 0x7d95b9e, 0x7fbf36aa, 0x80b86c2, 0x7fbc040a, 0x83db0a7, - 0x7fb8bdb8, 0x86fd947, - 0x7fb563b3, 0x8a2009a, 0x7fb1f5fc, 0x8d42699, 0x7fae7495, 0x9064b3a, - 0x7faadf7c, 0x9386e78, - 0x7fa736b4, 0x96a9049, 0x7fa37a3c, 0x99cb0a7, 0x7f9faa15, 0x9cecf89, - 0x7f9bc640, 0xa00ece8, - 0x7f97cebd, 0xa3308bd, 0x7f93c38c, 0xa6522fe, 0x7f8fa4b0, 0xa973ba5, - 0x7f8b7227, 0xac952aa, - 0x7f872bf3, 0xafb6805, 0x7f82d214, 0xb2d7baf, 0x7f7e648c, 0xb5f8d9f, - 0x7f79e35a, 0xb919dcf, - 0x7f754e80, 0xbc3ac35, 0x7f70a5fe, 0xbf5b8cb, 0x7f6be9d4, 0xc27c389, - 0x7f671a05, 0xc59cc68, - 0x7f62368f, 0xc8bd35e, 0x7f5d3f75, 0xcbdd865, 0x7f5834b7, 0xcefdb76, - 0x7f531655, 0xd21dc87, - 0x7f4de451, 0xd53db92, 0x7f489eaa, 0xd85d88f, 0x7f434563, 0xdb7d376, - 0x7f3dd87c, 0xde9cc40, - 0x7f3857f6, 0xe1bc2e4, 0x7f32c3d1, 0xe4db75b, 0x7f2d1c0e, 0xe7fa99e, - 0x7f2760af, 0xeb199a4, - 0x7f2191b4, 0xee38766, 0x7f1baf1e, 0xf1572dc, 0x7f15b8ee, 0xf475bff, - 0x7f0faf25, 0xf7942c7, - 0x7f0991c4, 0xfab272b, 0x7f0360cb, 0xfdd0926, 0x7efd1c3c, 0x100ee8ad, - 0x7ef6c418, 0x1040c5bb, - 0x7ef05860, 0x1072a048, 0x7ee9d914, 0x10a4784b, 0x7ee34636, 0x10d64dbd, - 0x7edc9fc6, 0x11082096, - 0x7ed5e5c6, 0x1139f0cf, 0x7ecf1837, 0x116bbe60, 0x7ec8371a, 0x119d8941, - 0x7ec14270, 0x11cf516a, - 0x7eba3a39, 0x120116d5, 0x7eb31e78, 0x1232d979, 0x7eabef2c, 0x1264994e, - 0x7ea4ac58, 0x1296564d, - 0x7e9d55fc, 0x12c8106f, 0x7e95ec1a, 0x12f9c7aa, 0x7e8e6eb2, 0x132b7bf9, - 0x7e86ddc6, 0x135d2d53, - 0x7e7f3957, 0x138edbb1, 0x7e778166, 0x13c0870a, 0x7e6fb5f4, 0x13f22f58, - 0x7e67d703, 0x1423d492, - 0x7e5fe493, 0x145576b1, 0x7e57dea7, 0x148715ae, 0x7e4fc53e, 0x14b8b17f, - 0x7e47985b, 0x14ea4a1f, - 0x7e3f57ff, 0x151bdf86, 0x7e37042a, 0x154d71aa, 0x7e2e9cdf, 0x157f0086, - 0x7e26221f, 0x15b08c12, - 0x7e1d93ea, 0x15e21445, 0x7e14f242, 0x16139918, 0x7e0c3d29, 0x16451a83, - 0x7e0374a0, 0x1676987f, - 0x7dfa98a8, 0x16a81305, 0x7df1a942, 0x16d98a0c, 0x7de8a670, 0x170afd8d, - 0x7ddf9034, 0x173c6d80, - 0x7dd6668f, 0x176dd9de, 0x7dcd2981, 0x179f429f, 0x7dc3d90d, 0x17d0a7bc, - 0x7dba7534, 0x1802092c, - 0x7db0fdf8, 0x183366e9, 0x7da77359, 0x1864c0ea, 0x7d9dd55a, 0x18961728, - 0x7d9423fc, 0x18c7699b, - 0x7d8a5f40, 0x18f8b83c, 0x7d808728, 0x192a0304, 0x7d769bb5, 0x195b49ea, - 0x7d6c9ce9, 0x198c8ce7, - 0x7d628ac6, 0x19bdcbf3, 0x7d58654d, 0x19ef0707, 0x7d4e2c7f, 0x1a203e1b, - 0x7d43e05e, 0x1a517128, - 0x7d3980ec, 0x1a82a026, 0x7d2f0e2b, 0x1ab3cb0d, 0x7d24881b, 0x1ae4f1d6, - 0x7d19eebf, 0x1b161479, - 0x7d0f4218, 0x1b4732ef, 0x7d048228, 0x1b784d30, 0x7cf9aef0, 0x1ba96335, - 0x7ceec873, 0x1bda74f6, - 0x7ce3ceb2, 0x1c0b826a, 0x7cd8c1ae, 0x1c3c8b8c, 0x7ccda169, 0x1c6d9053, - 0x7cc26de5, 0x1c9e90b8, - 0x7cb72724, 0x1ccf8cb3, 0x7cabcd28, 0x1d00843d, 0x7ca05ff1, 0x1d31774d, - 0x7c94df83, 0x1d6265dd, - 0x7c894bde, 0x1d934fe5, 0x7c7da505, 0x1dc4355e, 0x7c71eaf9, 0x1df5163f, - 0x7c661dbc, 0x1e25f282, - 0x7c5a3d50, 0x1e56ca1e, 0x7c4e49b7, 0x1e879d0d, 0x7c4242f2, 0x1eb86b46, - 0x7c362904, 0x1ee934c3, - 0x7c29fbee, 0x1f19f97b, 0x7c1dbbb3, 0x1f4ab968, 0x7c116853, 0x1f7b7481, - 0x7c0501d2, 0x1fac2abf, - 0x7bf88830, 0x1fdcdc1b, 0x7bebfb70, 0x200d888d, 0x7bdf5b94, 0x203e300d, - 0x7bd2a89e, 0x206ed295, - 0x7bc5e290, 0x209f701c, 0x7bb9096b, 0x20d0089c, 0x7bac1d31, 0x21009c0c, - 0x7b9f1de6, 0x21312a65, - 0x7b920b89, 0x2161b3a0, 0x7b84e61f, 0x219237b5, 0x7b77ada8, 0x21c2b69c, - 0x7b6a6227, 0x21f3304f, - 0x7b5d039e, 0x2223a4c5, 0x7b4f920e, 0x225413f8, 0x7b420d7a, 0x22847de0, - 0x7b3475e5, 0x22b4e274, - 0x7b26cb4f, 0x22e541af, 0x7b190dbc, 0x23159b88, 0x7b0b3d2c, 0x2345eff8, - 0x7afd59a4, 0x23763ef7, - 0x7aef6323, 0x23a6887f, 0x7ae159ae, 0x23d6cc87, 0x7ad33d45, 0x24070b08, - 0x7ac50dec, 0x243743fa, - 0x7ab6cba4, 0x24677758, 0x7aa8766f, 0x2497a517, 0x7a9a0e50, 0x24c7cd33, - 0x7a8b9348, 0x24f7efa2, - 0x7a7d055b, 0x25280c5e, 0x7a6e648a, 0x2558235f, 0x7a5fb0d8, 0x2588349d, - 0x7a50ea47, 0x25b84012, - 0x7a4210d8, 0x25e845b6, 0x7a332490, 0x26184581, 0x7a24256f, 0x26483f6c, - 0x7a151378, 0x26783370, - 0x7a05eead, 0x26a82186, 0x79f6b711, 0x26d809a5, 0x79e76ca7, 0x2707ebc7, - 0x79d80f6f, 0x2737c7e3, - 0x79c89f6e, 0x27679df4, 0x79b91ca4, 0x27976df1, 0x79a98715, 0x27c737d3, - 0x7999dec4, 0x27f6fb92, - 0x798a23b1, 0x2826b928, 0x797a55e0, 0x2856708d, 0x796a7554, 0x288621b9, - 0x795a820e, 0x28b5cca5, - 0x794a7c12, 0x28e5714b, 0x793a6361, 0x29150fa1, 0x792a37fe, 0x2944a7a2, - 0x7919f9ec, 0x29743946, - 0x7909a92d, 0x29a3c485, 0x78f945c3, 0x29d34958, 0x78e8cfb2, 0x2a02c7b8, - 0x78d846fb, 0x2a323f9e, - 0x78c7aba2, 0x2a61b101, 0x78b6fda8, 0x2a911bdc, 0x78a63d11, 0x2ac08026, - 0x789569df, 0x2aefddd8, - 0x78848414, 0x2b1f34eb, 0x78738bb3, 0x2b4e8558, 0x786280bf, 0x2b7dcf17, - 0x7851633b, 0x2bad1221, - 0x78403329, 0x2bdc4e6f, 0x782ef08b, 0x2c0b83fa, 0x781d9b65, 0x2c3ab2b9, - 0x780c33b8, 0x2c69daa6, - 0x77fab989, 0x2c98fbba, 0x77e92cd9, 0x2cc815ee, 0x77d78daa, 0x2cf72939, - 0x77c5dc01, 0x2d263596, - 0x77b417df, 0x2d553afc, 0x77a24148, 0x2d843964, 0x7790583e, 0x2db330c7, - 0x777e5cc3, 0x2de2211e, - 0x776c4edb, 0x2e110a62, 0x775a2e89, 0x2e3fec8b, 0x7747fbce, 0x2e6ec792, - 0x7735b6af, 0x2e9d9b70, - 0x77235f2d, 0x2ecc681e, 0x7710f54c, 0x2efb2d95, 0x76fe790e, 0x2f29ebcc, - 0x76ebea77, 0x2f58a2be, - 0x76d94989, 0x2f875262, 0x76c69647, 0x2fb5fab2, 0x76b3d0b4, 0x2fe49ba7, - 0x76a0f8d2, 0x30133539, - 0x768e0ea6, 0x3041c761, 0x767b1231, 0x30705217, 0x76680376, 0x309ed556, - 0x7654e279, 0x30cd5115, - 0x7641af3d, 0x30fbc54d, 0x762e69c4, 0x312a31f8, 0x761b1211, 0x3158970e, - 0x7607a828, 0x3186f487, - 0x75f42c0b, 0x31b54a5e, 0x75e09dbd, 0x31e39889, 0x75ccfd42, 0x3211df04, - 0x75b94a9c, 0x32401dc6, - 0x75a585cf, 0x326e54c7, 0x7591aedd, 0x329c8402, 0x757dc5ca, 0x32caab6f, - 0x7569ca99, 0x32f8cb07, - 0x7555bd4c, 0x3326e2c3, 0x75419de7, 0x3354f29b, 0x752d6c6c, 0x3382fa88, - 0x751928e0, 0x33b0fa84, - 0x7504d345, 0x33def287, 0x74f06b9e, 0x340ce28b, 0x74dbf1ef, 0x343aca87, - 0x74c7663a, 0x3468aa76, - 0x74b2c884, 0x34968250, 0x749e18cd, 0x34c4520d, 0x7489571c, 0x34f219a8, - 0x74748371, 0x351fd918, - 0x745f9dd1, 0x354d9057, 0x744aa63f, 0x357b3f5d, 0x74359cbd, 0x35a8e625, - 0x74208150, 0x35d684a6, - 0x740b53fb, 0x36041ad9, 0x73f614c0, 0x3631a8b8, 0x73e0c3a3, 0x365f2e3b, - 0x73cb60a8, 0x368cab5c, - 0x73b5ebd1, 0x36ba2014, 0x73a06522, 0x36e78c5b, 0x738acc9e, 0x3714f02a, - 0x73752249, 0x37424b7b, - 0x735f6626, 0x376f9e46, 0x73499838, 0x379ce885, 0x7333b883, 0x37ca2a30, - 0x731dc70a, 0x37f76341, - 0x7307c3d0, 0x382493b0, 0x72f1aed9, 0x3851bb77, 0x72db8828, 0x387eda8e, - 0x72c54fc1, 0x38abf0ef, - 0x72af05a7, 0x38d8fe93, 0x7298a9dd, 0x39060373, 0x72823c67, 0x3932ff87, - 0x726bbd48, 0x395ff2c9, - 0x72552c85, 0x398cdd32, 0x723e8a20, 0x39b9bebc, 0x7227d61c, 0x39e6975e, - 0x7211107e, 0x3a136712, - 0x71fa3949, 0x3a402dd2, 0x71e35080, 0x3a6ceb96, 0x71cc5626, 0x3a99a057, - 0x71b54a41, 0x3ac64c0f, - 0x719e2cd2, 0x3af2eeb7, 0x7186fdde, 0x3b1f8848, 0x716fbd68, 0x3b4c18ba, - 0x71586b74, 0x3b78a007, - 0x71410805, 0x3ba51e29, 0x7129931f, 0x3bd19318, 0x71120cc5, 0x3bfdfecd, - 0x70fa74fc, 0x3c2a6142, - 0x70e2cbc6, 0x3c56ba70, 0x70cb1128, 0x3c830a50, 0x70b34525, 0x3caf50da, - 0x709b67c0, 0x3cdb8e09, - 0x708378ff, 0x3d07c1d6, 0x706b78e3, 0x3d33ec39, 0x70536771, 0x3d600d2c, - 0x703b44ad, 0x3d8c24a8, - 0x7023109a, 0x3db832a6, 0x700acb3c, 0x3de4371f, 0x6ff27497, 0x3e10320d, - 0x6fda0cae, 0x3e3c2369, - 0x6fc19385, 0x3e680b2c, 0x6fa90921, 0x3e93e950, 0x6f906d84, 0x3ebfbdcd, - 0x6f77c0b3, 0x3eeb889c, - 0x6f5f02b2, 0x3f1749b8, 0x6f463383, 0x3f430119, 0x6f2d532c, 0x3f6eaeb8, - 0x6f1461b0, 0x3f9a5290, - 0x6efb5f12, 0x3fc5ec98, 0x6ee24b57, 0x3ff17cca, 0x6ec92683, 0x401d0321, - 0x6eaff099, 0x40487f94, - 0x6e96a99d, 0x4073f21d, 0x6e7d5193, 0x409f5ab6, 0x6e63e87f, 0x40cab958, - 0x6e4a6e66, 0x40f60dfb, - 0x6e30e34a, 0x4121589b, 0x6e174730, 0x414c992f, 0x6dfd9a1c, 0x4177cfb1, - 0x6de3dc11, 0x41a2fc1a, - 0x6dca0d14, 0x41ce1e65, 0x6db02d29, 0x41f93689, 0x6d963c54, 0x42244481, - 0x6d7c3a98, 0x424f4845, - 0x6d6227fa, 0x427a41d0, 0x6d48047e, 0x42a5311b, 0x6d2dd027, 0x42d0161e, - 0x6d138afb, 0x42faf0d4, - 0x6cf934fc, 0x4325c135, 0x6cdece2f, 0x4350873c, 0x6cc45698, 0x437b42e1, - 0x6ca9ce3b, 0x43a5f41e, - 0x6c8f351c, 0x43d09aed, 0x6c748b3f, 0x43fb3746, 0x6c59d0a9, 0x4425c923, - 0x6c3f055d, 0x4450507e, - 0x6c242960, 0x447acd50, 0x6c093cb6, 0x44a53f93, 0x6bee3f62, 0x44cfa740, - 0x6bd3316a, 0x44fa0450, - 0x6bb812d1, 0x452456bd, 0x6b9ce39b, 0x454e9e80, 0x6b81a3cd, 0x4578db93, - 0x6b66536b, 0x45a30df0, - 0x6b4af279, 0x45cd358f, 0x6b2f80fb, 0x45f7526b, 0x6b13fef5, 0x4621647d, - 0x6af86c6c, 0x464b6bbe, - 0x6adcc964, 0x46756828, 0x6ac115e2, 0x469f59b4, 0x6aa551e9, 0x46c9405c, - 0x6a897d7d, 0x46f31c1a, - 0x6a6d98a4, 0x471cece7, 0x6a51a361, 0x4746b2bc, 0x6a359db9, 0x47706d93, - 0x6a1987b0, 0x479a1d67, - 0x69fd614a, 0x47c3c22f, 0x69e12a8c, 0x47ed5be6, 0x69c4e37a, 0x4816ea86, - 0x69a88c19, 0x48406e08, - 0x698c246c, 0x4869e665, 0x696fac78, 0x48935397, 0x69532442, 0x48bcb599, - 0x69368bce, 0x48e60c62, - 0x6919e320, 0x490f57ee, 0x68fd2a3d, 0x49389836, 0x68e06129, 0x4961cd33, - 0x68c387e9, 0x498af6df, - 0x68a69e81, 0x49b41533, 0x6889a4f6, 0x49dd282a, 0x686c9b4b, 0x4a062fbd, - 0x684f8186, 0x4a2f2be6, - 0x683257ab, 0x4a581c9e, 0x68151dbe, 0x4a8101de, 0x67f7d3c5, 0x4aa9dba2, - 0x67da79c3, 0x4ad2a9e2, - 0x67bd0fbd, 0x4afb6c98, 0x679f95b7, 0x4b2423be, 0x67820bb7, 0x4b4ccf4d, - 0x676471c0, 0x4b756f40, - 0x6746c7d8, 0x4b9e0390, 0x67290e02, 0x4bc68c36, 0x670b4444, 0x4bef092d, - 0x66ed6aa1, 0x4c177a6e, - 0x66cf8120, 0x4c3fdff4, 0x66b187c3, 0x4c6839b7, 0x66937e91, 0x4c9087b1, - 0x6675658c, 0x4cb8c9dd, - 0x66573cbb, 0x4ce10034, 0x66390422, 0x4d092ab0, 0x661abbc5, 0x4d31494b, - 0x65fc63a9, 0x4d595bfe, - 0x65ddfbd3, 0x4d8162c4, 0x65bf8447, 0x4da95d96, 0x65a0fd0b, 0x4dd14c6e, - 0x65826622, 0x4df92f46, - 0x6563bf92, 0x4e210617, 0x6545095f, 0x4e48d0dd, 0x6526438f, 0x4e708f8f, - 0x65076e25, 0x4e984229, - 0x64e88926, 0x4ebfe8a5, 0x64c99498, 0x4ee782fb, 0x64aa907f, 0x4f0f1126, - 0x648b7ce0, 0x4f369320, - 0x646c59bf, 0x4f5e08e3, 0x644d2722, 0x4f857269, 0x642de50d, 0x4faccfab, - 0x640e9386, 0x4fd420a4, - 0x63ef3290, 0x4ffb654d, 0x63cfc231, 0x50229da1, 0x63b0426d, 0x5049c999, - 0x6390b34a, 0x5070e92f, - 0x637114cc, 0x5097fc5e, 0x635166f9, 0x50bf031f, 0x6331a9d4, 0x50e5fd6d, - 0x6311dd64, 0x510ceb40, - 0x62f201ac, 0x5133cc94, 0x62d216b3, 0x515aa162, 0x62b21c7b, 0x518169a5, - 0x6292130c, 0x51a82555, - 0x6271fa69, 0x51ced46e, 0x6251d298, 0x51f576ea, 0x62319b9d, 0x521c0cc2, - 0x6211557e, 0x524295f0, - 0x61f1003f, 0x5269126e, 0x61d09be5, 0x528f8238, 0x61b02876, 0x52b5e546, - 0x618fa5f7, 0x52dc3b92, - 0x616f146c, 0x53028518, 0x614e73da, 0x5328c1d0, 0x612dc447, 0x534ef1b5, - 0x610d05b7, 0x537514c2, - 0x60ec3830, 0x539b2af0, 0x60cb5bb7, 0x53c13439, 0x60aa7050, 0x53e73097, - 0x60897601, 0x540d2005, - 0x60686ccf, 0x5433027d, 0x604754bf, 0x5458d7f9, 0x60262dd6, 0x547ea073, - 0x6004f819, 0x54a45be6, - 0x5fe3b38d, 0x54ca0a4b, 0x5fc26038, 0x54efab9c, 0x5fa0fe1f, 0x55153fd4, - 0x5f7f8d46, 0x553ac6ee, - 0x5f5e0db3, 0x556040e2, 0x5f3c7f6b, 0x5585adad, 0x5f1ae274, 0x55ab0d46, - 0x5ef936d1, 0x55d05faa, - 0x5ed77c8a, 0x55f5a4d2, 0x5eb5b3a2, 0x561adcb9, 0x5e93dc1f, 0x56400758, - 0x5e71f606, 0x566524aa, - 0x5e50015d, 0x568a34a9, 0x5e2dfe29, 0x56af3750, 0x5e0bec6e, 0x56d42c99, - 0x5de9cc33, 0x56f9147e, - 0x5dc79d7c, 0x571deefa, 0x5da5604f, 0x5742bc06, 0x5d8314b1, 0x57677b9d, - 0x5d60baa7, 0x578c2dba, - 0x5d3e5237, 0x57b0d256, 0x5d1bdb65, 0x57d5696d, 0x5cf95638, 0x57f9f2f8, - 0x5cd6c2b5, 0x581e6ef1, - 0x5cb420e0, 0x5842dd54, 0x5c9170bf, 0x58673e1b, 0x5c6eb258, 0x588b9140, - 0x5c4be5b0, 0x58afd6bd, - 0x5c290acc, 0x58d40e8c, 0x5c0621b2, 0x58f838a9, 0x5be32a67, 0x591c550e, - 0x5bc024f0, 0x594063b5, - 0x5b9d1154, 0x59646498, 0x5b79ef96, 0x598857b2, 0x5b56bfbd, 0x59ac3cfd, - 0x5b3381ce, 0x59d01475, - 0x5b1035cf, 0x59f3de12, 0x5aecdbc5, 0x5a1799d1, 0x5ac973b5, 0x5a3b47ab, - 0x5aa5fda5, 0x5a5ee79a, - 0x5a82799a, 0x5a82799a, 0x5a5ee79a, 0x5aa5fda5, 0x5a3b47ab, 0x5ac973b5, - 0x5a1799d1, 0x5aecdbc5, - 0x59f3de12, 0x5b1035cf, 0x59d01475, 0x5b3381ce, 0x59ac3cfd, 0x5b56bfbd, - 0x598857b2, 0x5b79ef96, - 0x59646498, 0x5b9d1154, 0x594063b5, 0x5bc024f0, 0x591c550e, 0x5be32a67, - 0x58f838a9, 0x5c0621b2, - 0x58d40e8c, 0x5c290acc, 0x58afd6bd, 0x5c4be5b0, 0x588b9140, 0x5c6eb258, - 0x58673e1b, 0x5c9170bf, - 0x5842dd54, 0x5cb420e0, 0x581e6ef1, 0x5cd6c2b5, 0x57f9f2f8, 0x5cf95638, - 0x57d5696d, 0x5d1bdb65, - 0x57b0d256, 0x5d3e5237, 0x578c2dba, 0x5d60baa7, 0x57677b9d, 0x5d8314b1, - 0x5742bc06, 0x5da5604f, - 0x571deefa, 0x5dc79d7c, 0x56f9147e, 0x5de9cc33, 0x56d42c99, 0x5e0bec6e, - 0x56af3750, 0x5e2dfe29, - 0x568a34a9, 0x5e50015d, 0x566524aa, 0x5e71f606, 0x56400758, 0x5e93dc1f, - 0x561adcb9, 0x5eb5b3a2, - 0x55f5a4d2, 0x5ed77c8a, 0x55d05faa, 0x5ef936d1, 0x55ab0d46, 0x5f1ae274, - 0x5585adad, 0x5f3c7f6b, - 0x556040e2, 0x5f5e0db3, 0x553ac6ee, 0x5f7f8d46, 0x55153fd4, 0x5fa0fe1f, - 0x54efab9c, 0x5fc26038, - 0x54ca0a4b, 0x5fe3b38d, 0x54a45be6, 0x6004f819, 0x547ea073, 0x60262dd6, - 0x5458d7f9, 0x604754bf, - 0x5433027d, 0x60686ccf, 0x540d2005, 0x60897601, 0x53e73097, 0x60aa7050, - 0x53c13439, 0x60cb5bb7, - 0x539b2af0, 0x60ec3830, 0x537514c2, 0x610d05b7, 0x534ef1b5, 0x612dc447, - 0x5328c1d0, 0x614e73da, - 0x53028518, 0x616f146c, 0x52dc3b92, 0x618fa5f7, 0x52b5e546, 0x61b02876, - 0x528f8238, 0x61d09be5, - 0x5269126e, 0x61f1003f, 0x524295f0, 0x6211557e, 0x521c0cc2, 0x62319b9d, - 0x51f576ea, 0x6251d298, - 0x51ced46e, 0x6271fa69, 0x51a82555, 0x6292130c, 0x518169a5, 0x62b21c7b, - 0x515aa162, 0x62d216b3, - 0x5133cc94, 0x62f201ac, 0x510ceb40, 0x6311dd64, 0x50e5fd6d, 0x6331a9d4, - 0x50bf031f, 0x635166f9, - 0x5097fc5e, 0x637114cc, 0x5070e92f, 0x6390b34a, 0x5049c999, 0x63b0426d, - 0x50229da1, 0x63cfc231, - 0x4ffb654d, 0x63ef3290, 0x4fd420a4, 0x640e9386, 0x4faccfab, 0x642de50d, - 0x4f857269, 0x644d2722, - 0x4f5e08e3, 0x646c59bf, 0x4f369320, 0x648b7ce0, 0x4f0f1126, 0x64aa907f, - 0x4ee782fb, 0x64c99498, - 0x4ebfe8a5, 0x64e88926, 0x4e984229, 0x65076e25, 0x4e708f8f, 0x6526438f, - 0x4e48d0dd, 0x6545095f, - 0x4e210617, 0x6563bf92, 0x4df92f46, 0x65826622, 0x4dd14c6e, 0x65a0fd0b, - 0x4da95d96, 0x65bf8447, - 0x4d8162c4, 0x65ddfbd3, 0x4d595bfe, 0x65fc63a9, 0x4d31494b, 0x661abbc5, - 0x4d092ab0, 0x66390422, - 0x4ce10034, 0x66573cbb, 0x4cb8c9dd, 0x6675658c, 0x4c9087b1, 0x66937e91, - 0x4c6839b7, 0x66b187c3, - 0x4c3fdff4, 0x66cf8120, 0x4c177a6e, 0x66ed6aa1, 0x4bef092d, 0x670b4444, - 0x4bc68c36, 0x67290e02, - 0x4b9e0390, 0x6746c7d8, 0x4b756f40, 0x676471c0, 0x4b4ccf4d, 0x67820bb7, - 0x4b2423be, 0x679f95b7, - 0x4afb6c98, 0x67bd0fbd, 0x4ad2a9e2, 0x67da79c3, 0x4aa9dba2, 0x67f7d3c5, - 0x4a8101de, 0x68151dbe, - 0x4a581c9e, 0x683257ab, 0x4a2f2be6, 0x684f8186, 0x4a062fbd, 0x686c9b4b, - 0x49dd282a, 0x6889a4f6, - 0x49b41533, 0x68a69e81, 0x498af6df, 0x68c387e9, 0x4961cd33, 0x68e06129, - 0x49389836, 0x68fd2a3d, - 0x490f57ee, 0x6919e320, 0x48e60c62, 0x69368bce, 0x48bcb599, 0x69532442, - 0x48935397, 0x696fac78, - 0x4869e665, 0x698c246c, 0x48406e08, 0x69a88c19, 0x4816ea86, 0x69c4e37a, - 0x47ed5be6, 0x69e12a8c, - 0x47c3c22f, 0x69fd614a, 0x479a1d67, 0x6a1987b0, 0x47706d93, 0x6a359db9, - 0x4746b2bc, 0x6a51a361, - 0x471cece7, 0x6a6d98a4, 0x46f31c1a, 0x6a897d7d, 0x46c9405c, 0x6aa551e9, - 0x469f59b4, 0x6ac115e2, - 0x46756828, 0x6adcc964, 0x464b6bbe, 0x6af86c6c, 0x4621647d, 0x6b13fef5, - 0x45f7526b, 0x6b2f80fb, - 0x45cd358f, 0x6b4af279, 0x45a30df0, 0x6b66536b, 0x4578db93, 0x6b81a3cd, - 0x454e9e80, 0x6b9ce39b, - 0x452456bd, 0x6bb812d1, 0x44fa0450, 0x6bd3316a, 0x44cfa740, 0x6bee3f62, - 0x44a53f93, 0x6c093cb6, - 0x447acd50, 0x6c242960, 0x4450507e, 0x6c3f055d, 0x4425c923, 0x6c59d0a9, - 0x43fb3746, 0x6c748b3f, - 0x43d09aed, 0x6c8f351c, 0x43a5f41e, 0x6ca9ce3b, 0x437b42e1, 0x6cc45698, - 0x4350873c, 0x6cdece2f, - 0x4325c135, 0x6cf934fc, 0x42faf0d4, 0x6d138afb, 0x42d0161e, 0x6d2dd027, - 0x42a5311b, 0x6d48047e, - 0x427a41d0, 0x6d6227fa, 0x424f4845, 0x6d7c3a98, 0x42244481, 0x6d963c54, - 0x41f93689, 0x6db02d29, - 0x41ce1e65, 0x6dca0d14, 0x41a2fc1a, 0x6de3dc11, 0x4177cfb1, 0x6dfd9a1c, - 0x414c992f, 0x6e174730, - 0x4121589b, 0x6e30e34a, 0x40f60dfb, 0x6e4a6e66, 0x40cab958, 0x6e63e87f, - 0x409f5ab6, 0x6e7d5193, - 0x4073f21d, 0x6e96a99d, 0x40487f94, 0x6eaff099, 0x401d0321, 0x6ec92683, - 0x3ff17cca, 0x6ee24b57, - 0x3fc5ec98, 0x6efb5f12, 0x3f9a5290, 0x6f1461b0, 0x3f6eaeb8, 0x6f2d532c, - 0x3f430119, 0x6f463383, - 0x3f1749b8, 0x6f5f02b2, 0x3eeb889c, 0x6f77c0b3, 0x3ebfbdcd, 0x6f906d84, - 0x3e93e950, 0x6fa90921, - 0x3e680b2c, 0x6fc19385, 0x3e3c2369, 0x6fda0cae, 0x3e10320d, 0x6ff27497, - 0x3de4371f, 0x700acb3c, - 0x3db832a6, 0x7023109a, 0x3d8c24a8, 0x703b44ad, 0x3d600d2c, 0x70536771, - 0x3d33ec39, 0x706b78e3, - 0x3d07c1d6, 0x708378ff, 0x3cdb8e09, 0x709b67c0, 0x3caf50da, 0x70b34525, - 0x3c830a50, 0x70cb1128, - 0x3c56ba70, 0x70e2cbc6, 0x3c2a6142, 0x70fa74fc, 0x3bfdfecd, 0x71120cc5, - 0x3bd19318, 0x7129931f, - 0x3ba51e29, 0x71410805, 0x3b78a007, 0x71586b74, 0x3b4c18ba, 0x716fbd68, - 0x3b1f8848, 0x7186fdde, - 0x3af2eeb7, 0x719e2cd2, 0x3ac64c0f, 0x71b54a41, 0x3a99a057, 0x71cc5626, - 0x3a6ceb96, 0x71e35080, - 0x3a402dd2, 0x71fa3949, 0x3a136712, 0x7211107e, 0x39e6975e, 0x7227d61c, - 0x39b9bebc, 0x723e8a20, - 0x398cdd32, 0x72552c85, 0x395ff2c9, 0x726bbd48, 0x3932ff87, 0x72823c67, - 0x39060373, 0x7298a9dd, - 0x38d8fe93, 0x72af05a7, 0x38abf0ef, 0x72c54fc1, 0x387eda8e, 0x72db8828, - 0x3851bb77, 0x72f1aed9, - 0x382493b0, 0x7307c3d0, 0x37f76341, 0x731dc70a, 0x37ca2a30, 0x7333b883, - 0x379ce885, 0x73499838, - 0x376f9e46, 0x735f6626, 0x37424b7b, 0x73752249, 0x3714f02a, 0x738acc9e, - 0x36e78c5b, 0x73a06522, - 0x36ba2014, 0x73b5ebd1, 0x368cab5c, 0x73cb60a8, 0x365f2e3b, 0x73e0c3a3, - 0x3631a8b8, 0x73f614c0, - 0x36041ad9, 0x740b53fb, 0x35d684a6, 0x74208150, 0x35a8e625, 0x74359cbd, - 0x357b3f5d, 0x744aa63f, - 0x354d9057, 0x745f9dd1, 0x351fd918, 0x74748371, 0x34f219a8, 0x7489571c, - 0x34c4520d, 0x749e18cd, - 0x34968250, 0x74b2c884, 0x3468aa76, 0x74c7663a, 0x343aca87, 0x74dbf1ef, - 0x340ce28b, 0x74f06b9e, - 0x33def287, 0x7504d345, 0x33b0fa84, 0x751928e0, 0x3382fa88, 0x752d6c6c, - 0x3354f29b, 0x75419de7, - 0x3326e2c3, 0x7555bd4c, 0x32f8cb07, 0x7569ca99, 0x32caab6f, 0x757dc5ca, - 0x329c8402, 0x7591aedd, - 0x326e54c7, 0x75a585cf, 0x32401dc6, 0x75b94a9c, 0x3211df04, 0x75ccfd42, - 0x31e39889, 0x75e09dbd, - 0x31b54a5e, 0x75f42c0b, 0x3186f487, 0x7607a828, 0x3158970e, 0x761b1211, - 0x312a31f8, 0x762e69c4, - 0x30fbc54d, 0x7641af3d, 0x30cd5115, 0x7654e279, 0x309ed556, 0x76680376, - 0x30705217, 0x767b1231, - 0x3041c761, 0x768e0ea6, 0x30133539, 0x76a0f8d2, 0x2fe49ba7, 0x76b3d0b4, - 0x2fb5fab2, 0x76c69647, - 0x2f875262, 0x76d94989, 0x2f58a2be, 0x76ebea77, 0x2f29ebcc, 0x76fe790e, - 0x2efb2d95, 0x7710f54c, - 0x2ecc681e, 0x77235f2d, 0x2e9d9b70, 0x7735b6af, 0x2e6ec792, 0x7747fbce, - 0x2e3fec8b, 0x775a2e89, - 0x2e110a62, 0x776c4edb, 0x2de2211e, 0x777e5cc3, 0x2db330c7, 0x7790583e, - 0x2d843964, 0x77a24148, - 0x2d553afc, 0x77b417df, 0x2d263596, 0x77c5dc01, 0x2cf72939, 0x77d78daa, - 0x2cc815ee, 0x77e92cd9, - 0x2c98fbba, 0x77fab989, 0x2c69daa6, 0x780c33b8, 0x2c3ab2b9, 0x781d9b65, - 0x2c0b83fa, 0x782ef08b, - 0x2bdc4e6f, 0x78403329, 0x2bad1221, 0x7851633b, 0x2b7dcf17, 0x786280bf, - 0x2b4e8558, 0x78738bb3, - 0x2b1f34eb, 0x78848414, 0x2aefddd8, 0x789569df, 0x2ac08026, 0x78a63d11, - 0x2a911bdc, 0x78b6fda8, - 0x2a61b101, 0x78c7aba2, 0x2a323f9e, 0x78d846fb, 0x2a02c7b8, 0x78e8cfb2, - 0x29d34958, 0x78f945c3, - 0x29a3c485, 0x7909a92d, 0x29743946, 0x7919f9ec, 0x2944a7a2, 0x792a37fe, - 0x29150fa1, 0x793a6361, - 0x28e5714b, 0x794a7c12, 0x28b5cca5, 0x795a820e, 0x288621b9, 0x796a7554, - 0x2856708d, 0x797a55e0, - 0x2826b928, 0x798a23b1, 0x27f6fb92, 0x7999dec4, 0x27c737d3, 0x79a98715, - 0x27976df1, 0x79b91ca4, - 0x27679df4, 0x79c89f6e, 0x2737c7e3, 0x79d80f6f, 0x2707ebc7, 0x79e76ca7, - 0x26d809a5, 0x79f6b711, - 0x26a82186, 0x7a05eead, 0x26783370, 0x7a151378, 0x26483f6c, 0x7a24256f, - 0x26184581, 0x7a332490, - 0x25e845b6, 0x7a4210d8, 0x25b84012, 0x7a50ea47, 0x2588349d, 0x7a5fb0d8, - 0x2558235f, 0x7a6e648a, - 0x25280c5e, 0x7a7d055b, 0x24f7efa2, 0x7a8b9348, 0x24c7cd33, 0x7a9a0e50, - 0x2497a517, 0x7aa8766f, - 0x24677758, 0x7ab6cba4, 0x243743fa, 0x7ac50dec, 0x24070b08, 0x7ad33d45, - 0x23d6cc87, 0x7ae159ae, - 0x23a6887f, 0x7aef6323, 0x23763ef7, 0x7afd59a4, 0x2345eff8, 0x7b0b3d2c, - 0x23159b88, 0x7b190dbc, - 0x22e541af, 0x7b26cb4f, 0x22b4e274, 0x7b3475e5, 0x22847de0, 0x7b420d7a, - 0x225413f8, 0x7b4f920e, - 0x2223a4c5, 0x7b5d039e, 0x21f3304f, 0x7b6a6227, 0x21c2b69c, 0x7b77ada8, - 0x219237b5, 0x7b84e61f, - 0x2161b3a0, 0x7b920b89, 0x21312a65, 0x7b9f1de6, 0x21009c0c, 0x7bac1d31, - 0x20d0089c, 0x7bb9096b, - 0x209f701c, 0x7bc5e290, 0x206ed295, 0x7bd2a89e, 0x203e300d, 0x7bdf5b94, - 0x200d888d, 0x7bebfb70, - 0x1fdcdc1b, 0x7bf88830, 0x1fac2abf, 0x7c0501d2, 0x1f7b7481, 0x7c116853, - 0x1f4ab968, 0x7c1dbbb3, - 0x1f19f97b, 0x7c29fbee, 0x1ee934c3, 0x7c362904, 0x1eb86b46, 0x7c4242f2, - 0x1e879d0d, 0x7c4e49b7, - 0x1e56ca1e, 0x7c5a3d50, 0x1e25f282, 0x7c661dbc, 0x1df5163f, 0x7c71eaf9, - 0x1dc4355e, 0x7c7da505, - 0x1d934fe5, 0x7c894bde, 0x1d6265dd, 0x7c94df83, 0x1d31774d, 0x7ca05ff1, - 0x1d00843d, 0x7cabcd28, - 0x1ccf8cb3, 0x7cb72724, 0x1c9e90b8, 0x7cc26de5, 0x1c6d9053, 0x7ccda169, - 0x1c3c8b8c, 0x7cd8c1ae, - 0x1c0b826a, 0x7ce3ceb2, 0x1bda74f6, 0x7ceec873, 0x1ba96335, 0x7cf9aef0, - 0x1b784d30, 0x7d048228, - 0x1b4732ef, 0x7d0f4218, 0x1b161479, 0x7d19eebf, 0x1ae4f1d6, 0x7d24881b, - 0x1ab3cb0d, 0x7d2f0e2b, - 0x1a82a026, 0x7d3980ec, 0x1a517128, 0x7d43e05e, 0x1a203e1b, 0x7d4e2c7f, - 0x19ef0707, 0x7d58654d, - 0x19bdcbf3, 0x7d628ac6, 0x198c8ce7, 0x7d6c9ce9, 0x195b49ea, 0x7d769bb5, - 0x192a0304, 0x7d808728, - 0x18f8b83c, 0x7d8a5f40, 0x18c7699b, 0x7d9423fc, 0x18961728, 0x7d9dd55a, - 0x1864c0ea, 0x7da77359, - 0x183366e9, 0x7db0fdf8, 0x1802092c, 0x7dba7534, 0x17d0a7bc, 0x7dc3d90d, - 0x179f429f, 0x7dcd2981, - 0x176dd9de, 0x7dd6668f, 0x173c6d80, 0x7ddf9034, 0x170afd8d, 0x7de8a670, - 0x16d98a0c, 0x7df1a942, - 0x16a81305, 0x7dfa98a8, 0x1676987f, 0x7e0374a0, 0x16451a83, 0x7e0c3d29, - 0x16139918, 0x7e14f242, - 0x15e21445, 0x7e1d93ea, 0x15b08c12, 0x7e26221f, 0x157f0086, 0x7e2e9cdf, - 0x154d71aa, 0x7e37042a, - 0x151bdf86, 0x7e3f57ff, 0x14ea4a1f, 0x7e47985b, 0x14b8b17f, 0x7e4fc53e, - 0x148715ae, 0x7e57dea7, - 0x145576b1, 0x7e5fe493, 0x1423d492, 0x7e67d703, 0x13f22f58, 0x7e6fb5f4, - 0x13c0870a, 0x7e778166, - 0x138edbb1, 0x7e7f3957, 0x135d2d53, 0x7e86ddc6, 0x132b7bf9, 0x7e8e6eb2, - 0x12f9c7aa, 0x7e95ec1a, - 0x12c8106f, 0x7e9d55fc, 0x1296564d, 0x7ea4ac58, 0x1264994e, 0x7eabef2c, - 0x1232d979, 0x7eb31e78, - 0x120116d5, 0x7eba3a39, 0x11cf516a, 0x7ec14270, 0x119d8941, 0x7ec8371a, - 0x116bbe60, 0x7ecf1837, - 0x1139f0cf, 0x7ed5e5c6, 0x11082096, 0x7edc9fc6, 0x10d64dbd, 0x7ee34636, - 0x10a4784b, 0x7ee9d914, - 0x1072a048, 0x7ef05860, 0x1040c5bb, 0x7ef6c418, 0x100ee8ad, 0x7efd1c3c, - 0xfdd0926, 0x7f0360cb, - 0xfab272b, 0x7f0991c4, 0xf7942c7, 0x7f0faf25, 0xf475bff, 0x7f15b8ee, - 0xf1572dc, 0x7f1baf1e, - 0xee38766, 0x7f2191b4, 0xeb199a4, 0x7f2760af, 0xe7fa99e, 0x7f2d1c0e, - 0xe4db75b, 0x7f32c3d1, - 0xe1bc2e4, 0x7f3857f6, 0xde9cc40, 0x7f3dd87c, 0xdb7d376, 0x7f434563, - 0xd85d88f, 0x7f489eaa, - 0xd53db92, 0x7f4de451, 0xd21dc87, 0x7f531655, 0xcefdb76, 0x7f5834b7, - 0xcbdd865, 0x7f5d3f75, - 0xc8bd35e, 0x7f62368f, 0xc59cc68, 0x7f671a05, 0xc27c389, 0x7f6be9d4, - 0xbf5b8cb, 0x7f70a5fe, - 0xbc3ac35, 0x7f754e80, 0xb919dcf, 0x7f79e35a, 0xb5f8d9f, 0x7f7e648c, - 0xb2d7baf, 0x7f82d214, - 0xafb6805, 0x7f872bf3, 0xac952aa, 0x7f8b7227, 0xa973ba5, 0x7f8fa4b0, - 0xa6522fe, 0x7f93c38c, - 0xa3308bd, 0x7f97cebd, 0xa00ece8, 0x7f9bc640, 0x9cecf89, 0x7f9faa15, - 0x99cb0a7, 0x7fa37a3c, - 0x96a9049, 0x7fa736b4, 0x9386e78, 0x7faadf7c, 0x9064b3a, 0x7fae7495, - 0x8d42699, 0x7fb1f5fc, - 0x8a2009a, 0x7fb563b3, 0x86fd947, 0x7fb8bdb8, 0x83db0a7, 0x7fbc040a, - 0x80b86c2, 0x7fbf36aa, - 0x7d95b9e, 0x7fc25596, 0x7a72f45, 0x7fc560cf, 0x77501be, 0x7fc85854, - 0x742d311, 0x7fcb3c23, - 0x710a345, 0x7fce0c3e, 0x6de7262, 0x7fd0c8a3, 0x6ac406f, 0x7fd37153, - 0x67a0d76, 0x7fd6064c, - 0x647d97c, 0x7fd8878e, 0x615a48b, 0x7fdaf519, 0x5e36ea9, 0x7fdd4eec, - 0x5b137df, 0x7fdf9508, - 0x57f0035, 0x7fe1c76b, 0x54cc7b1, 0x7fe3e616, 0x51a8e5c, 0x7fe5f108, - 0x4e8543e, 0x7fe7e841, - 0x4b6195d, 0x7fe9cbc0, 0x483ddc3, 0x7feb9b85, 0x451a177, 0x7fed5791, - 0x41f6480, 0x7feeffe1, - 0x3ed26e6, 0x7ff09478, 0x3bae8b2, 0x7ff21553, 0x388a9ea, 0x7ff38274, - 0x3566a96, 0x7ff4dbd9, - 0x3242abf, 0x7ff62182, 0x2f1ea6c, 0x7ff75370, 0x2bfa9a4, 0x7ff871a2, - 0x28d6870, 0x7ff97c18, - 0x25b26d7, 0x7ffa72d1, 0x228e4e2, 0x7ffb55ce, 0x1f6a297, 0x7ffc250f, - 0x1c45ffe, 0x7ffce093, - 0x1921d20, 0x7ffd885a, 0x15fda03, 0x7ffe1c65, 0x12d96b1, 0x7ffe9cb2, - 0xfb5330, 0x7fff0943, - 0xc90f88, 0x7fff6216, 0x96cbc1, 0x7fffa72c, 0x6487e3, 0x7fffd886, 0x3243f5, - 0x7ffff621, - 0x0, 0x7fffffff, 0xffcdbc0b, 0x7ffff621, 0xff9b781d, 0x7fffd886, 0xff69343f, - 0x7fffa72c, - 0xff36f078, 0x7fff6216, 0xff04acd0, 0x7fff0943, 0xfed2694f, 0x7ffe9cb2, - 0xfea025fd, 0x7ffe1c65, - 0xfe6de2e0, 0x7ffd885a, 0xfe3ba002, 0x7ffce093, 0xfe095d69, 0x7ffc250f, - 0xfdd71b1e, 0x7ffb55ce, - 0xfda4d929, 0x7ffa72d1, 0xfd729790, 0x7ff97c18, 0xfd40565c, 0x7ff871a2, - 0xfd0e1594, 0x7ff75370, - 0xfcdbd541, 0x7ff62182, 0xfca9956a, 0x7ff4dbd9, 0xfc775616, 0x7ff38274, - 0xfc45174e, 0x7ff21553, - 0xfc12d91a, 0x7ff09478, 0xfbe09b80, 0x7feeffe1, 0xfbae5e89, 0x7fed5791, - 0xfb7c223d, 0x7feb9b85, - 0xfb49e6a3, 0x7fe9cbc0, 0xfb17abc2, 0x7fe7e841, 0xfae571a4, 0x7fe5f108, - 0xfab3384f, 0x7fe3e616, - 0xfa80ffcb, 0x7fe1c76b, 0xfa4ec821, 0x7fdf9508, 0xfa1c9157, 0x7fdd4eec, - 0xf9ea5b75, 0x7fdaf519, - 0xf9b82684, 0x7fd8878e, 0xf985f28a, 0x7fd6064c, 0xf953bf91, 0x7fd37153, - 0xf9218d9e, 0x7fd0c8a3, - 0xf8ef5cbb, 0x7fce0c3e, 0xf8bd2cef, 0x7fcb3c23, 0xf88afe42, 0x7fc85854, - 0xf858d0bb, 0x7fc560cf, - 0xf826a462, 0x7fc25596, 0xf7f4793e, 0x7fbf36aa, 0xf7c24f59, 0x7fbc040a, - 0xf79026b9, 0x7fb8bdb8, - 0xf75dff66, 0x7fb563b3, 0xf72bd967, 0x7fb1f5fc, 0xf6f9b4c6, 0x7fae7495, - 0xf6c79188, 0x7faadf7c, - 0xf6956fb7, 0x7fa736b4, 0xf6634f59, 0x7fa37a3c, 0xf6313077, 0x7f9faa15, - 0xf5ff1318, 0x7f9bc640, - 0xf5ccf743, 0x7f97cebd, 0xf59add02, 0x7f93c38c, 0xf568c45b, 0x7f8fa4b0, - 0xf536ad56, 0x7f8b7227, - 0xf50497fb, 0x7f872bf3, 0xf4d28451, 0x7f82d214, 0xf4a07261, 0x7f7e648c, - 0xf46e6231, 0x7f79e35a, - 0xf43c53cb, 0x7f754e80, 0xf40a4735, 0x7f70a5fe, 0xf3d83c77, 0x7f6be9d4, - 0xf3a63398, 0x7f671a05, - 0xf3742ca2, 0x7f62368f, 0xf342279b, 0x7f5d3f75, 0xf310248a, 0x7f5834b7, - 0xf2de2379, 0x7f531655, - 0xf2ac246e, 0x7f4de451, 0xf27a2771, 0x7f489eaa, 0xf2482c8a, 0x7f434563, - 0xf21633c0, 0x7f3dd87c, - 0xf1e43d1c, 0x7f3857f6, 0xf1b248a5, 0x7f32c3d1, 0xf1805662, 0x7f2d1c0e, - 0xf14e665c, 0x7f2760af, - 0xf11c789a, 0x7f2191b4, 0xf0ea8d24, 0x7f1baf1e, 0xf0b8a401, 0x7f15b8ee, - 0xf086bd39, 0x7f0faf25, - 0xf054d8d5, 0x7f0991c4, 0xf022f6da, 0x7f0360cb, 0xeff11753, 0x7efd1c3c, - 0xefbf3a45, 0x7ef6c418, - 0xef8d5fb8, 0x7ef05860, 0xef5b87b5, 0x7ee9d914, 0xef29b243, 0x7ee34636, - 0xeef7df6a, 0x7edc9fc6, - 0xeec60f31, 0x7ed5e5c6, 0xee9441a0, 0x7ecf1837, 0xee6276bf, 0x7ec8371a, - 0xee30ae96, 0x7ec14270, - 0xedfee92b, 0x7eba3a39, 0xedcd2687, 0x7eb31e78, 0xed9b66b2, 0x7eabef2c, - 0xed69a9b3, 0x7ea4ac58, - 0xed37ef91, 0x7e9d55fc, 0xed063856, 0x7e95ec1a, 0xecd48407, 0x7e8e6eb2, - 0xeca2d2ad, 0x7e86ddc6, - 0xec71244f, 0x7e7f3957, 0xec3f78f6, 0x7e778166, 0xec0dd0a8, 0x7e6fb5f4, - 0xebdc2b6e, 0x7e67d703, - 0xebaa894f, 0x7e5fe493, 0xeb78ea52, 0x7e57dea7, 0xeb474e81, 0x7e4fc53e, - 0xeb15b5e1, 0x7e47985b, - 0xeae4207a, 0x7e3f57ff, 0xeab28e56, 0x7e37042a, 0xea80ff7a, 0x7e2e9cdf, - 0xea4f73ee, 0x7e26221f, - 0xea1debbb, 0x7e1d93ea, 0xe9ec66e8, 0x7e14f242, 0xe9bae57d, 0x7e0c3d29, - 0xe9896781, 0x7e0374a0, - 0xe957ecfb, 0x7dfa98a8, 0xe92675f4, 0x7df1a942, 0xe8f50273, 0x7de8a670, - 0xe8c39280, 0x7ddf9034, - 0xe8922622, 0x7dd6668f, 0xe860bd61, 0x7dcd2981, 0xe82f5844, 0x7dc3d90d, - 0xe7fdf6d4, 0x7dba7534, - 0xe7cc9917, 0x7db0fdf8, 0xe79b3f16, 0x7da77359, 0xe769e8d8, 0x7d9dd55a, - 0xe7389665, 0x7d9423fc, - 0xe70747c4, 0x7d8a5f40, 0xe6d5fcfc, 0x7d808728, 0xe6a4b616, 0x7d769bb5, - 0xe6737319, 0x7d6c9ce9, - 0xe642340d, 0x7d628ac6, 0xe610f8f9, 0x7d58654d, 0xe5dfc1e5, 0x7d4e2c7f, - 0xe5ae8ed8, 0x7d43e05e, - 0xe57d5fda, 0x7d3980ec, 0xe54c34f3, 0x7d2f0e2b, 0xe51b0e2a, 0x7d24881b, - 0xe4e9eb87, 0x7d19eebf, - 0xe4b8cd11, 0x7d0f4218, 0xe487b2d0, 0x7d048228, 0xe4569ccb, 0x7cf9aef0, - 0xe4258b0a, 0x7ceec873, - 0xe3f47d96, 0x7ce3ceb2, 0xe3c37474, 0x7cd8c1ae, 0xe3926fad, 0x7ccda169, - 0xe3616f48, 0x7cc26de5, - 0xe330734d, 0x7cb72724, 0xe2ff7bc3, 0x7cabcd28, 0xe2ce88b3, 0x7ca05ff1, - 0xe29d9a23, 0x7c94df83, - 0xe26cb01b, 0x7c894bde, 0xe23bcaa2, 0x7c7da505, 0xe20ae9c1, 0x7c71eaf9, - 0xe1da0d7e, 0x7c661dbc, - 0xe1a935e2, 0x7c5a3d50, 0xe17862f3, 0x7c4e49b7, 0xe14794ba, 0x7c4242f2, - 0xe116cb3d, 0x7c362904, - 0xe0e60685, 0x7c29fbee, 0xe0b54698, 0x7c1dbbb3, 0xe0848b7f, 0x7c116853, - 0xe053d541, 0x7c0501d2, - 0xe02323e5, 0x7bf88830, 0xdff27773, 0x7bebfb70, 0xdfc1cff3, 0x7bdf5b94, - 0xdf912d6b, 0x7bd2a89e, - 0xdf608fe4, 0x7bc5e290, 0xdf2ff764, 0x7bb9096b, 0xdeff63f4, 0x7bac1d31, - 0xdeced59b, 0x7b9f1de6, - 0xde9e4c60, 0x7b920b89, 0xde6dc84b, 0x7b84e61f, 0xde3d4964, 0x7b77ada8, - 0xde0ccfb1, 0x7b6a6227, - 0xdddc5b3b, 0x7b5d039e, 0xddabec08, 0x7b4f920e, 0xdd7b8220, 0x7b420d7a, - 0xdd4b1d8c, 0x7b3475e5, - 0xdd1abe51, 0x7b26cb4f, 0xdcea6478, 0x7b190dbc, 0xdcba1008, 0x7b0b3d2c, - 0xdc89c109, 0x7afd59a4, - 0xdc597781, 0x7aef6323, 0xdc293379, 0x7ae159ae, 0xdbf8f4f8, 0x7ad33d45, - 0xdbc8bc06, 0x7ac50dec, - 0xdb9888a8, 0x7ab6cba4, 0xdb685ae9, 0x7aa8766f, 0xdb3832cd, 0x7a9a0e50, - 0xdb08105e, 0x7a8b9348, - 0xdad7f3a2, 0x7a7d055b, 0xdaa7dca1, 0x7a6e648a, 0xda77cb63, 0x7a5fb0d8, - 0xda47bfee, 0x7a50ea47, - 0xda17ba4a, 0x7a4210d8, 0xd9e7ba7f, 0x7a332490, 0xd9b7c094, 0x7a24256f, - 0xd987cc90, 0x7a151378, - 0xd957de7a, 0x7a05eead, 0xd927f65b, 0x79f6b711, 0xd8f81439, 0x79e76ca7, - 0xd8c8381d, 0x79d80f6f, - 0xd898620c, 0x79c89f6e, 0xd868920f, 0x79b91ca4, 0xd838c82d, 0x79a98715, - 0xd809046e, 0x7999dec4, - 0xd7d946d8, 0x798a23b1, 0xd7a98f73, 0x797a55e0, 0xd779de47, 0x796a7554, - 0xd74a335b, 0x795a820e, - 0xd71a8eb5, 0x794a7c12, 0xd6eaf05f, 0x793a6361, 0xd6bb585e, 0x792a37fe, - 0xd68bc6ba, 0x7919f9ec, - 0xd65c3b7b, 0x7909a92d, 0xd62cb6a8, 0x78f945c3, 0xd5fd3848, 0x78e8cfb2, - 0xd5cdc062, 0x78d846fb, - 0xd59e4eff, 0x78c7aba2, 0xd56ee424, 0x78b6fda8, 0xd53f7fda, 0x78a63d11, - 0xd5102228, 0x789569df, - 0xd4e0cb15, 0x78848414, 0xd4b17aa8, 0x78738bb3, 0xd48230e9, 0x786280bf, - 0xd452eddf, 0x7851633b, - 0xd423b191, 0x78403329, 0xd3f47c06, 0x782ef08b, 0xd3c54d47, 0x781d9b65, - 0xd396255a, 0x780c33b8, - 0xd3670446, 0x77fab989, 0xd337ea12, 0x77e92cd9, 0xd308d6c7, 0x77d78daa, - 0xd2d9ca6a, 0x77c5dc01, - 0xd2aac504, 0x77b417df, 0xd27bc69c, 0x77a24148, 0xd24ccf39, 0x7790583e, - 0xd21ddee2, 0x777e5cc3, - 0xd1eef59e, 0x776c4edb, 0xd1c01375, 0x775a2e89, 0xd191386e, 0x7747fbce, - 0xd1626490, 0x7735b6af, - 0xd13397e2, 0x77235f2d, 0xd104d26b, 0x7710f54c, 0xd0d61434, 0x76fe790e, - 0xd0a75d42, 0x76ebea77, - 0xd078ad9e, 0x76d94989, 0xd04a054e, 0x76c69647, 0xd01b6459, 0x76b3d0b4, - 0xcfeccac7, 0x76a0f8d2, - 0xcfbe389f, 0x768e0ea6, 0xcf8fade9, 0x767b1231, 0xcf612aaa, 0x76680376, - 0xcf32aeeb, 0x7654e279, - 0xcf043ab3, 0x7641af3d, 0xced5ce08, 0x762e69c4, 0xcea768f2, 0x761b1211, - 0xce790b79, 0x7607a828, - 0xce4ab5a2, 0x75f42c0b, 0xce1c6777, 0x75e09dbd, 0xcdee20fc, 0x75ccfd42, - 0xcdbfe23a, 0x75b94a9c, - 0xcd91ab39, 0x75a585cf, 0xcd637bfe, 0x7591aedd, 0xcd355491, 0x757dc5ca, - 0xcd0734f9, 0x7569ca99, - 0xccd91d3d, 0x7555bd4c, 0xccab0d65, 0x75419de7, 0xcc7d0578, 0x752d6c6c, - 0xcc4f057c, 0x751928e0, - 0xcc210d79, 0x7504d345, 0xcbf31d75, 0x74f06b9e, 0xcbc53579, 0x74dbf1ef, - 0xcb97558a, 0x74c7663a, - 0xcb697db0, 0x74b2c884, 0xcb3badf3, 0x749e18cd, 0xcb0de658, 0x7489571c, - 0xcae026e8, 0x74748371, - 0xcab26fa9, 0x745f9dd1, 0xca84c0a3, 0x744aa63f, 0xca5719db, 0x74359cbd, - 0xca297b5a, 0x74208150, - 0xc9fbe527, 0x740b53fb, 0xc9ce5748, 0x73f614c0, 0xc9a0d1c5, 0x73e0c3a3, - 0xc97354a4, 0x73cb60a8, - 0xc945dfec, 0x73b5ebd1, 0xc91873a5, 0x73a06522, 0xc8eb0fd6, 0x738acc9e, - 0xc8bdb485, 0x73752249, - 0xc89061ba, 0x735f6626, 0xc863177b, 0x73499838, 0xc835d5d0, 0x7333b883, - 0xc8089cbf, 0x731dc70a, - 0xc7db6c50, 0x7307c3d0, 0xc7ae4489, 0x72f1aed9, 0xc7812572, 0x72db8828, - 0xc7540f11, 0x72c54fc1, - 0xc727016d, 0x72af05a7, 0xc6f9fc8d, 0x7298a9dd, 0xc6cd0079, 0x72823c67, - 0xc6a00d37, 0x726bbd48, - 0xc67322ce, 0x72552c85, 0xc6464144, 0x723e8a20, 0xc61968a2, 0x7227d61c, - 0xc5ec98ee, 0x7211107e, - 0xc5bfd22e, 0x71fa3949, 0xc593146a, 0x71e35080, 0xc5665fa9, 0x71cc5626, - 0xc539b3f1, 0x71b54a41, - 0xc50d1149, 0x719e2cd2, 0xc4e077b8, 0x7186fdde, 0xc4b3e746, 0x716fbd68, - 0xc4875ff9, 0x71586b74, - 0xc45ae1d7, 0x71410805, 0xc42e6ce8, 0x7129931f, 0xc4020133, 0x71120cc5, - 0xc3d59ebe, 0x70fa74fc, - 0xc3a94590, 0x70e2cbc6, 0xc37cf5b0, 0x70cb1128, 0xc350af26, 0x70b34525, - 0xc32471f7, 0x709b67c0, - 0xc2f83e2a, 0x708378ff, 0xc2cc13c7, 0x706b78e3, 0xc29ff2d4, 0x70536771, - 0xc273db58, 0x703b44ad, - 0xc247cd5a, 0x7023109a, 0xc21bc8e1, 0x700acb3c, 0xc1efcdf3, 0x6ff27497, - 0xc1c3dc97, 0x6fda0cae, - 0xc197f4d4, 0x6fc19385, 0xc16c16b0, 0x6fa90921, 0xc1404233, 0x6f906d84, - 0xc1147764, 0x6f77c0b3, - 0xc0e8b648, 0x6f5f02b2, 0xc0bcfee7, 0x6f463383, 0xc0915148, 0x6f2d532c, - 0xc065ad70, 0x6f1461b0, - 0xc03a1368, 0x6efb5f12, 0xc00e8336, 0x6ee24b57, 0xbfe2fcdf, 0x6ec92683, - 0xbfb7806c, 0x6eaff099, - 0xbf8c0de3, 0x6e96a99d, 0xbf60a54a, 0x6e7d5193, 0xbf3546a8, 0x6e63e87f, - 0xbf09f205, 0x6e4a6e66, - 0xbedea765, 0x6e30e34a, 0xbeb366d1, 0x6e174730, 0xbe88304f, 0x6dfd9a1c, - 0xbe5d03e6, 0x6de3dc11, - 0xbe31e19b, 0x6dca0d14, 0xbe06c977, 0x6db02d29, 0xbddbbb7f, 0x6d963c54, - 0xbdb0b7bb, 0x6d7c3a98, - 0xbd85be30, 0x6d6227fa, 0xbd5acee5, 0x6d48047e, 0xbd2fe9e2, 0x6d2dd027, - 0xbd050f2c, 0x6d138afb, - 0xbcda3ecb, 0x6cf934fc, 0xbcaf78c4, 0x6cdece2f, 0xbc84bd1f, 0x6cc45698, - 0xbc5a0be2, 0x6ca9ce3b, - 0xbc2f6513, 0x6c8f351c, 0xbc04c8ba, 0x6c748b3f, 0xbbda36dd, 0x6c59d0a9, - 0xbbafaf82, 0x6c3f055d, - 0xbb8532b0, 0x6c242960, 0xbb5ac06d, 0x6c093cb6, 0xbb3058c0, 0x6bee3f62, - 0xbb05fbb0, 0x6bd3316a, - 0xbadba943, 0x6bb812d1, 0xbab16180, 0x6b9ce39b, 0xba87246d, 0x6b81a3cd, - 0xba5cf210, 0x6b66536b, - 0xba32ca71, 0x6b4af279, 0xba08ad95, 0x6b2f80fb, 0xb9de9b83, 0x6b13fef5, - 0xb9b49442, 0x6af86c6c, - 0xb98a97d8, 0x6adcc964, 0xb960a64c, 0x6ac115e2, 0xb936bfa4, 0x6aa551e9, - 0xb90ce3e6, 0x6a897d7d, - 0xb8e31319, 0x6a6d98a4, 0xb8b94d44, 0x6a51a361, 0xb88f926d, 0x6a359db9, - 0xb865e299, 0x6a1987b0, - 0xb83c3dd1, 0x69fd614a, 0xb812a41a, 0x69e12a8c, 0xb7e9157a, 0x69c4e37a, - 0xb7bf91f8, 0x69a88c19, - 0xb796199b, 0x698c246c, 0xb76cac69, 0x696fac78, 0xb7434a67, 0x69532442, - 0xb719f39e, 0x69368bce, - 0xb6f0a812, 0x6919e320, 0xb6c767ca, 0x68fd2a3d, 0xb69e32cd, 0x68e06129, - 0xb6750921, 0x68c387e9, - 0xb64beacd, 0x68a69e81, 0xb622d7d6, 0x6889a4f6, 0xb5f9d043, 0x686c9b4b, - 0xb5d0d41a, 0x684f8186, - 0xb5a7e362, 0x683257ab, 0xb57efe22, 0x68151dbe, 0xb556245e, 0x67f7d3c5, - 0xb52d561e, 0x67da79c3, - 0xb5049368, 0x67bd0fbd, 0xb4dbdc42, 0x679f95b7, 0xb4b330b3, 0x67820bb7, - 0xb48a90c0, 0x676471c0, - 0xb461fc70, 0x6746c7d8, 0xb43973ca, 0x67290e02, 0xb410f6d3, 0x670b4444, - 0xb3e88592, 0x66ed6aa1, - 0xb3c0200c, 0x66cf8120, 0xb397c649, 0x66b187c3, 0xb36f784f, 0x66937e91, - 0xb3473623, 0x6675658c, - 0xb31effcc, 0x66573cbb, 0xb2f6d550, 0x66390422, 0xb2ceb6b5, 0x661abbc5, - 0xb2a6a402, 0x65fc63a9, - 0xb27e9d3c, 0x65ddfbd3, 0xb256a26a, 0x65bf8447, 0xb22eb392, 0x65a0fd0b, - 0xb206d0ba, 0x65826622, - 0xb1def9e9, 0x6563bf92, 0xb1b72f23, 0x6545095f, 0xb18f7071, 0x6526438f, - 0xb167bdd7, 0x65076e25, - 0xb140175b, 0x64e88926, 0xb1187d05, 0x64c99498, 0xb0f0eeda, 0x64aa907f, - 0xb0c96ce0, 0x648b7ce0, - 0xb0a1f71d, 0x646c59bf, 0xb07a8d97, 0x644d2722, 0xb0533055, 0x642de50d, - 0xb02bdf5c, 0x640e9386, - 0xb0049ab3, 0x63ef3290, 0xafdd625f, 0x63cfc231, 0xafb63667, 0x63b0426d, - 0xaf8f16d1, 0x6390b34a, - 0xaf6803a2, 0x637114cc, 0xaf40fce1, 0x635166f9, 0xaf1a0293, 0x6331a9d4, - 0xaef314c0, 0x6311dd64, - 0xaecc336c, 0x62f201ac, 0xaea55e9e, 0x62d216b3, 0xae7e965b, 0x62b21c7b, - 0xae57daab, 0x6292130c, - 0xae312b92, 0x6271fa69, 0xae0a8916, 0x6251d298, 0xade3f33e, 0x62319b9d, - 0xadbd6a10, 0x6211557e, - 0xad96ed92, 0x61f1003f, 0xad707dc8, 0x61d09be5, 0xad4a1aba, 0x61b02876, - 0xad23c46e, 0x618fa5f7, - 0xacfd7ae8, 0x616f146c, 0xacd73e30, 0x614e73da, 0xacb10e4b, 0x612dc447, - 0xac8aeb3e, 0x610d05b7, - 0xac64d510, 0x60ec3830, 0xac3ecbc7, 0x60cb5bb7, 0xac18cf69, 0x60aa7050, - 0xabf2dffb, 0x60897601, - 0xabccfd83, 0x60686ccf, 0xaba72807, 0x604754bf, 0xab815f8d, 0x60262dd6, - 0xab5ba41a, 0x6004f819, - 0xab35f5b5, 0x5fe3b38d, 0xab105464, 0x5fc26038, 0xaaeac02c, 0x5fa0fe1f, - 0xaac53912, 0x5f7f8d46, - 0xaa9fbf1e, 0x5f5e0db3, 0xaa7a5253, 0x5f3c7f6b, 0xaa54f2ba, 0x5f1ae274, - 0xaa2fa056, 0x5ef936d1, - 0xaa0a5b2e, 0x5ed77c8a, 0xa9e52347, 0x5eb5b3a2, 0xa9bff8a8, 0x5e93dc1f, - 0xa99adb56, 0x5e71f606, - 0xa975cb57, 0x5e50015d, 0xa950c8b0, 0x5e2dfe29, 0xa92bd367, 0x5e0bec6e, - 0xa906eb82, 0x5de9cc33, - 0xa8e21106, 0x5dc79d7c, 0xa8bd43fa, 0x5da5604f, 0xa8988463, 0x5d8314b1, - 0xa873d246, 0x5d60baa7, - 0xa84f2daa, 0x5d3e5237, 0xa82a9693, 0x5d1bdb65, 0xa8060d08, 0x5cf95638, - 0xa7e1910f, 0x5cd6c2b5, - 0xa7bd22ac, 0x5cb420e0, 0xa798c1e5, 0x5c9170bf, 0xa7746ec0, 0x5c6eb258, - 0xa7502943, 0x5c4be5b0, - 0xa72bf174, 0x5c290acc, 0xa707c757, 0x5c0621b2, 0xa6e3aaf2, 0x5be32a67, - 0xa6bf9c4b, 0x5bc024f0, - 0xa69b9b68, 0x5b9d1154, 0xa677a84e, 0x5b79ef96, 0xa653c303, 0x5b56bfbd, - 0xa62feb8b, 0x5b3381ce, - 0xa60c21ee, 0x5b1035cf, 0xa5e8662f, 0x5aecdbc5, 0xa5c4b855, 0x5ac973b5, - 0xa5a11866, 0x5aa5fda5, - 0xa57d8666, 0x5a82799a, 0xa55a025b, 0x5a5ee79a, 0xa5368c4b, 0x5a3b47ab, - 0xa513243b, 0x5a1799d1, - 0xa4efca31, 0x59f3de12, 0xa4cc7e32, 0x59d01475, 0xa4a94043, 0x59ac3cfd, - 0xa486106a, 0x598857b2, - 0xa462eeac, 0x59646498, 0xa43fdb10, 0x594063b5, 0xa41cd599, 0x591c550e, - 0xa3f9de4e, 0x58f838a9, - 0xa3d6f534, 0x58d40e8c, 0xa3b41a50, 0x58afd6bd, 0xa3914da8, 0x588b9140, - 0xa36e8f41, 0x58673e1b, - 0xa34bdf20, 0x5842dd54, 0xa3293d4b, 0x581e6ef1, 0xa306a9c8, 0x57f9f2f8, - 0xa2e4249b, 0x57d5696d, - 0xa2c1adc9, 0x57b0d256, 0xa29f4559, 0x578c2dba, 0xa27ceb4f, 0x57677b9d, - 0xa25a9fb1, 0x5742bc06, - 0xa2386284, 0x571deefa, 0xa21633cd, 0x56f9147e, 0xa1f41392, 0x56d42c99, - 0xa1d201d7, 0x56af3750, - 0xa1affea3, 0x568a34a9, 0xa18e09fa, 0x566524aa, 0xa16c23e1, 0x56400758, - 0xa14a4c5e, 0x561adcb9, - 0xa1288376, 0x55f5a4d2, 0xa106c92f, 0x55d05faa, 0xa0e51d8c, 0x55ab0d46, - 0xa0c38095, 0x5585adad, - 0xa0a1f24d, 0x556040e2, 0xa08072ba, 0x553ac6ee, 0xa05f01e1, 0x55153fd4, - 0xa03d9fc8, 0x54efab9c, - 0xa01c4c73, 0x54ca0a4b, 0x9ffb07e7, 0x54a45be6, 0x9fd9d22a, 0x547ea073, - 0x9fb8ab41, 0x5458d7f9, - 0x9f979331, 0x5433027d, 0x9f7689ff, 0x540d2005, 0x9f558fb0, 0x53e73097, - 0x9f34a449, 0x53c13439, - 0x9f13c7d0, 0x539b2af0, 0x9ef2fa49, 0x537514c2, 0x9ed23bb9, 0x534ef1b5, - 0x9eb18c26, 0x5328c1d0, - 0x9e90eb94, 0x53028518, 0x9e705a09, 0x52dc3b92, 0x9e4fd78a, 0x52b5e546, - 0x9e2f641b, 0x528f8238, - 0x9e0effc1, 0x5269126e, 0x9deeaa82, 0x524295f0, 0x9dce6463, 0x521c0cc2, - 0x9dae2d68, 0x51f576ea, - 0x9d8e0597, 0x51ced46e, 0x9d6decf4, 0x51a82555, 0x9d4de385, 0x518169a5, - 0x9d2de94d, 0x515aa162, - 0x9d0dfe54, 0x5133cc94, 0x9cee229c, 0x510ceb40, 0x9cce562c, 0x50e5fd6d, - 0x9cae9907, 0x50bf031f, - 0x9c8eeb34, 0x5097fc5e, 0x9c6f4cb6, 0x5070e92f, 0x9c4fbd93, 0x5049c999, - 0x9c303dcf, 0x50229da1, - 0x9c10cd70, 0x4ffb654d, 0x9bf16c7a, 0x4fd420a4, 0x9bd21af3, 0x4faccfab, - 0x9bb2d8de, 0x4f857269, - 0x9b93a641, 0x4f5e08e3, 0x9b748320, 0x4f369320, 0x9b556f81, 0x4f0f1126, - 0x9b366b68, 0x4ee782fb, - 0x9b1776da, 0x4ebfe8a5, 0x9af891db, 0x4e984229, 0x9ad9bc71, 0x4e708f8f, - 0x9abaf6a1, 0x4e48d0dd, - 0x9a9c406e, 0x4e210617, 0x9a7d99de, 0x4df92f46, 0x9a5f02f5, 0x4dd14c6e, - 0x9a407bb9, 0x4da95d96, - 0x9a22042d, 0x4d8162c4, 0x9a039c57, 0x4d595bfe, 0x99e5443b, 0x4d31494b, - 0x99c6fbde, 0x4d092ab0, - 0x99a8c345, 0x4ce10034, 0x998a9a74, 0x4cb8c9dd, 0x996c816f, 0x4c9087b1, - 0x994e783d, 0x4c6839b7, - 0x99307ee0, 0x4c3fdff4, 0x9912955f, 0x4c177a6e, 0x98f4bbbc, 0x4bef092d, - 0x98d6f1fe, 0x4bc68c36, - 0x98b93828, 0x4b9e0390, 0x989b8e40, 0x4b756f40, 0x987df449, 0x4b4ccf4d, - 0x98606a49, 0x4b2423be, - 0x9842f043, 0x4afb6c98, 0x9825863d, 0x4ad2a9e2, 0x98082c3b, 0x4aa9dba2, - 0x97eae242, 0x4a8101de, - 0x97cda855, 0x4a581c9e, 0x97b07e7a, 0x4a2f2be6, 0x979364b5, 0x4a062fbd, - 0x97765b0a, 0x49dd282a, - 0x9759617f, 0x49b41533, 0x973c7817, 0x498af6df, 0x971f9ed7, 0x4961cd33, - 0x9702d5c3, 0x49389836, - 0x96e61ce0, 0x490f57ee, 0x96c97432, 0x48e60c62, 0x96acdbbe, 0x48bcb599, - 0x96905388, 0x48935397, - 0x9673db94, 0x4869e665, 0x965773e7, 0x48406e08, 0x963b1c86, 0x4816ea86, - 0x961ed574, 0x47ed5be6, - 0x96029eb6, 0x47c3c22f, 0x95e67850, 0x479a1d67, 0x95ca6247, 0x47706d93, - 0x95ae5c9f, 0x4746b2bc, - 0x9592675c, 0x471cece7, 0x95768283, 0x46f31c1a, 0x955aae17, 0x46c9405c, - 0x953eea1e, 0x469f59b4, - 0x9523369c, 0x46756828, 0x95079394, 0x464b6bbe, 0x94ec010b, 0x4621647d, - 0x94d07f05, 0x45f7526b, - 0x94b50d87, 0x45cd358f, 0x9499ac95, 0x45a30df0, 0x947e5c33, 0x4578db93, - 0x94631c65, 0x454e9e80, - 0x9447ed2f, 0x452456bd, 0x942cce96, 0x44fa0450, 0x9411c09e, 0x44cfa740, - 0x93f6c34a, 0x44a53f93, - 0x93dbd6a0, 0x447acd50, 0x93c0faa3, 0x4450507e, 0x93a62f57, 0x4425c923, - 0x938b74c1, 0x43fb3746, - 0x9370cae4, 0x43d09aed, 0x935631c5, 0x43a5f41e, 0x933ba968, 0x437b42e1, - 0x932131d1, 0x4350873c, - 0x9306cb04, 0x4325c135, 0x92ec7505, 0x42faf0d4, 0x92d22fd9, 0x42d0161e, - 0x92b7fb82, 0x42a5311b, - 0x929dd806, 0x427a41d0, 0x9283c568, 0x424f4845, 0x9269c3ac, 0x42244481, - 0x924fd2d7, 0x41f93689, - 0x9235f2ec, 0x41ce1e65, 0x921c23ef, 0x41a2fc1a, 0x920265e4, 0x4177cfb1, - 0x91e8b8d0, 0x414c992f, - 0x91cf1cb6, 0x4121589b, 0x91b5919a, 0x40f60dfb, 0x919c1781, 0x40cab958, - 0x9182ae6d, 0x409f5ab6, - 0x91695663, 0x4073f21d, 0x91500f67, 0x40487f94, 0x9136d97d, 0x401d0321, - 0x911db4a9, 0x3ff17cca, - 0x9104a0ee, 0x3fc5ec98, 0x90eb9e50, 0x3f9a5290, 0x90d2acd4, 0x3f6eaeb8, - 0x90b9cc7d, 0x3f430119, - 0x90a0fd4e, 0x3f1749b8, 0x90883f4d, 0x3eeb889c, 0x906f927c, 0x3ebfbdcd, - 0x9056f6df, 0x3e93e950, - 0x903e6c7b, 0x3e680b2c, 0x9025f352, 0x3e3c2369, 0x900d8b69, 0x3e10320d, - 0x8ff534c4, 0x3de4371f, - 0x8fdcef66, 0x3db832a6, 0x8fc4bb53, 0x3d8c24a8, 0x8fac988f, 0x3d600d2c, - 0x8f94871d, 0x3d33ec39, - 0x8f7c8701, 0x3d07c1d6, 0x8f649840, 0x3cdb8e09, 0x8f4cbadb, 0x3caf50da, - 0x8f34eed8, 0x3c830a50, - 0x8f1d343a, 0x3c56ba70, 0x8f058b04, 0x3c2a6142, 0x8eedf33b, 0x3bfdfecd, - 0x8ed66ce1, 0x3bd19318, - 0x8ebef7fb, 0x3ba51e29, 0x8ea7948c, 0x3b78a007, 0x8e904298, 0x3b4c18ba, - 0x8e790222, 0x3b1f8848, - 0x8e61d32e, 0x3af2eeb7, 0x8e4ab5bf, 0x3ac64c0f, 0x8e33a9da, 0x3a99a057, - 0x8e1caf80, 0x3a6ceb96, - 0x8e05c6b7, 0x3a402dd2, 0x8deeef82, 0x3a136712, 0x8dd829e4, 0x39e6975e, - 0x8dc175e0, 0x39b9bebc, - 0x8daad37b, 0x398cdd32, 0x8d9442b8, 0x395ff2c9, 0x8d7dc399, 0x3932ff87, - 0x8d675623, 0x39060373, - 0x8d50fa59, 0x38d8fe93, 0x8d3ab03f, 0x38abf0ef, 0x8d2477d8, 0x387eda8e, - 0x8d0e5127, 0x3851bb77, - 0x8cf83c30, 0x382493b0, 0x8ce238f6, 0x37f76341, 0x8ccc477d, 0x37ca2a30, - 0x8cb667c8, 0x379ce885, - 0x8ca099da, 0x376f9e46, 0x8c8addb7, 0x37424b7b, 0x8c753362, 0x3714f02a, - 0x8c5f9ade, 0x36e78c5b, - 0x8c4a142f, 0x36ba2014, 0x8c349f58, 0x368cab5c, 0x8c1f3c5d, 0x365f2e3b, - 0x8c09eb40, 0x3631a8b8, - 0x8bf4ac05, 0x36041ad9, 0x8bdf7eb0, 0x35d684a6, 0x8bca6343, 0x35a8e625, - 0x8bb559c1, 0x357b3f5d, - 0x8ba0622f, 0x354d9057, 0x8b8b7c8f, 0x351fd918, 0x8b76a8e4, 0x34f219a8, - 0x8b61e733, 0x34c4520d, - 0x8b4d377c, 0x34968250, 0x8b3899c6, 0x3468aa76, 0x8b240e11, 0x343aca87, - 0x8b0f9462, 0x340ce28b, - 0x8afb2cbb, 0x33def287, 0x8ae6d720, 0x33b0fa84, 0x8ad29394, 0x3382fa88, - 0x8abe6219, 0x3354f29b, - 0x8aaa42b4, 0x3326e2c3, 0x8a963567, 0x32f8cb07, 0x8a823a36, 0x32caab6f, - 0x8a6e5123, 0x329c8402, - 0x8a5a7a31, 0x326e54c7, 0x8a46b564, 0x32401dc6, 0x8a3302be, 0x3211df04, - 0x8a1f6243, 0x31e39889, - 0x8a0bd3f5, 0x31b54a5e, 0x89f857d8, 0x3186f487, 0x89e4edef, 0x3158970e, - 0x89d1963c, 0x312a31f8, - 0x89be50c3, 0x30fbc54d, 0x89ab1d87, 0x30cd5115, 0x8997fc8a, 0x309ed556, - 0x8984edcf, 0x30705217, - 0x8971f15a, 0x3041c761, 0x895f072e, 0x30133539, 0x894c2f4c, 0x2fe49ba7, - 0x893969b9, 0x2fb5fab2, - 0x8926b677, 0x2f875262, 0x89141589, 0x2f58a2be, 0x890186f2, 0x2f29ebcc, - 0x88ef0ab4, 0x2efb2d95, - 0x88dca0d3, 0x2ecc681e, 0x88ca4951, 0x2e9d9b70, 0x88b80432, 0x2e6ec792, - 0x88a5d177, 0x2e3fec8b, - 0x8893b125, 0x2e110a62, 0x8881a33d, 0x2de2211e, 0x886fa7c2, 0x2db330c7, - 0x885dbeb8, 0x2d843964, - 0x884be821, 0x2d553afc, 0x883a23ff, 0x2d263596, 0x88287256, 0x2cf72939, - 0x8816d327, 0x2cc815ee, - 0x88054677, 0x2c98fbba, 0x87f3cc48, 0x2c69daa6, 0x87e2649b, 0x2c3ab2b9, - 0x87d10f75, 0x2c0b83fa, - 0x87bfccd7, 0x2bdc4e6f, 0x87ae9cc5, 0x2bad1221, 0x879d7f41, 0x2b7dcf17, - 0x878c744d, 0x2b4e8558, - 0x877b7bec, 0x2b1f34eb, 0x876a9621, 0x2aefddd8, 0x8759c2ef, 0x2ac08026, - 0x87490258, 0x2a911bdc, - 0x8738545e, 0x2a61b101, 0x8727b905, 0x2a323f9e, 0x8717304e, 0x2a02c7b8, - 0x8706ba3d, 0x29d34958, - 0x86f656d3, 0x29a3c485, 0x86e60614, 0x29743946, 0x86d5c802, 0x2944a7a2, - 0x86c59c9f, 0x29150fa1, - 0x86b583ee, 0x28e5714b, 0x86a57df2, 0x28b5cca5, 0x86958aac, 0x288621b9, - 0x8685aa20, 0x2856708d, - 0x8675dc4f, 0x2826b928, 0x8666213c, 0x27f6fb92, 0x865678eb, 0x27c737d3, - 0x8646e35c, 0x27976df1, - 0x86376092, 0x27679df4, 0x8627f091, 0x2737c7e3, 0x86189359, 0x2707ebc7, - 0x860948ef, 0x26d809a5, - 0x85fa1153, 0x26a82186, 0x85eaec88, 0x26783370, 0x85dbda91, 0x26483f6c, - 0x85ccdb70, 0x26184581, - 0x85bdef28, 0x25e845b6, 0x85af15b9, 0x25b84012, 0x85a04f28, 0x2588349d, - 0x85919b76, 0x2558235f, - 0x8582faa5, 0x25280c5e, 0x85746cb8, 0x24f7efa2, 0x8565f1b0, 0x24c7cd33, - 0x85578991, 0x2497a517, - 0x8549345c, 0x24677758, 0x853af214, 0x243743fa, 0x852cc2bb, 0x24070b08, - 0x851ea652, 0x23d6cc87, - 0x85109cdd, 0x23a6887f, 0x8502a65c, 0x23763ef7, 0x84f4c2d4, 0x2345eff8, - 0x84e6f244, 0x23159b88, - 0x84d934b1, 0x22e541af, 0x84cb8a1b, 0x22b4e274, 0x84bdf286, 0x22847de0, - 0x84b06df2, 0x225413f8, - 0x84a2fc62, 0x2223a4c5, 0x84959dd9, 0x21f3304f, 0x84885258, 0x21c2b69c, - 0x847b19e1, 0x219237b5, - 0x846df477, 0x2161b3a0, 0x8460e21a, 0x21312a65, 0x8453e2cf, 0x21009c0c, - 0x8446f695, 0x20d0089c, - 0x843a1d70, 0x209f701c, 0x842d5762, 0x206ed295, 0x8420a46c, 0x203e300d, - 0x84140490, 0x200d888d, - 0x840777d0, 0x1fdcdc1b, 0x83fafe2e, 0x1fac2abf, 0x83ee97ad, 0x1f7b7481, - 0x83e2444d, 0x1f4ab968, - 0x83d60412, 0x1f19f97b, 0x83c9d6fc, 0x1ee934c3, 0x83bdbd0e, 0x1eb86b46, - 0x83b1b649, 0x1e879d0d, - 0x83a5c2b0, 0x1e56ca1e, 0x8399e244, 0x1e25f282, 0x838e1507, 0x1df5163f, - 0x83825afb, 0x1dc4355e, - 0x8376b422, 0x1d934fe5, 0x836b207d, 0x1d6265dd, 0x835fa00f, 0x1d31774d, - 0x835432d8, 0x1d00843d, - 0x8348d8dc, 0x1ccf8cb3, 0x833d921b, 0x1c9e90b8, 0x83325e97, 0x1c6d9053, - 0x83273e52, 0x1c3c8b8c, - 0x831c314e, 0x1c0b826a, 0x8311378d, 0x1bda74f6, 0x83065110, 0x1ba96335, - 0x82fb7dd8, 0x1b784d30, - 0x82f0bde8, 0x1b4732ef, 0x82e61141, 0x1b161479, 0x82db77e5, 0x1ae4f1d6, - 0x82d0f1d5, 0x1ab3cb0d, - 0x82c67f14, 0x1a82a026, 0x82bc1fa2, 0x1a517128, 0x82b1d381, 0x1a203e1b, - 0x82a79ab3, 0x19ef0707, - 0x829d753a, 0x19bdcbf3, 0x82936317, 0x198c8ce7, 0x8289644b, 0x195b49ea, - 0x827f78d8, 0x192a0304, - 0x8275a0c0, 0x18f8b83c, 0x826bdc04, 0x18c7699b, 0x82622aa6, 0x18961728, - 0x82588ca7, 0x1864c0ea, - 0x824f0208, 0x183366e9, 0x82458acc, 0x1802092c, 0x823c26f3, 0x17d0a7bc, - 0x8232d67f, 0x179f429f, - 0x82299971, 0x176dd9de, 0x82206fcc, 0x173c6d80, 0x82175990, 0x170afd8d, - 0x820e56be, 0x16d98a0c, - 0x82056758, 0x16a81305, 0x81fc8b60, 0x1676987f, 0x81f3c2d7, 0x16451a83, - 0x81eb0dbe, 0x16139918, - 0x81e26c16, 0x15e21445, 0x81d9dde1, 0x15b08c12, 0x81d16321, 0x157f0086, - 0x81c8fbd6, 0x154d71aa, - 0x81c0a801, 0x151bdf86, 0x81b867a5, 0x14ea4a1f, 0x81b03ac2, 0x14b8b17f, - 0x81a82159, 0x148715ae, - 0x81a01b6d, 0x145576b1, 0x819828fd, 0x1423d492, 0x81904a0c, 0x13f22f58, - 0x81887e9a, 0x13c0870a, - 0x8180c6a9, 0x138edbb1, 0x8179223a, 0x135d2d53, 0x8171914e, 0x132b7bf9, - 0x816a13e6, 0x12f9c7aa, - 0x8162aa04, 0x12c8106f, 0x815b53a8, 0x1296564d, 0x815410d4, 0x1264994e, - 0x814ce188, 0x1232d979, - 0x8145c5c7, 0x120116d5, 0x813ebd90, 0x11cf516a, 0x8137c8e6, 0x119d8941, - 0x8130e7c9, 0x116bbe60, - 0x812a1a3a, 0x1139f0cf, 0x8123603a, 0x11082096, 0x811cb9ca, 0x10d64dbd, - 0x811626ec, 0x10a4784b, - 0x810fa7a0, 0x1072a048, 0x81093be8, 0x1040c5bb, 0x8102e3c4, 0x100ee8ad, - 0x80fc9f35, 0xfdd0926, - 0x80f66e3c, 0xfab272b, 0x80f050db, 0xf7942c7, 0x80ea4712, 0xf475bff, - 0x80e450e2, 0xf1572dc, - 0x80de6e4c, 0xee38766, 0x80d89f51, 0xeb199a4, 0x80d2e3f2, 0xe7fa99e, - 0x80cd3c2f, 0xe4db75b, - 0x80c7a80a, 0xe1bc2e4, 0x80c22784, 0xde9cc40, 0x80bcba9d, 0xdb7d376, - 0x80b76156, 0xd85d88f, - 0x80b21baf, 0xd53db92, 0x80ace9ab, 0xd21dc87, 0x80a7cb49, 0xcefdb76, - 0x80a2c08b, 0xcbdd865, - 0x809dc971, 0xc8bd35e, 0x8098e5fb, 0xc59cc68, 0x8094162c, 0xc27c389, - 0x808f5a02, 0xbf5b8cb, - 0x808ab180, 0xbc3ac35, 0x80861ca6, 0xb919dcf, 0x80819b74, 0xb5f8d9f, - 0x807d2dec, 0xb2d7baf, - 0x8078d40d, 0xafb6805, 0x80748dd9, 0xac952aa, 0x80705b50, 0xa973ba5, - 0x806c3c74, 0xa6522fe, - 0x80683143, 0xa3308bd, 0x806439c0, 0xa00ece8, 0x806055eb, 0x9cecf89, - 0x805c85c4, 0x99cb0a7, - 0x8058c94c, 0x96a9049, 0x80552084, 0x9386e78, 0x80518b6b, 0x9064b3a, - 0x804e0a04, 0x8d42699, - 0x804a9c4d, 0x8a2009a, 0x80474248, 0x86fd947, 0x8043fbf6, 0x83db0a7, - 0x8040c956, 0x80b86c2, - 0x803daa6a, 0x7d95b9e, 0x803a9f31, 0x7a72f45, 0x8037a7ac, 0x77501be, - 0x8034c3dd, 0x742d311, - 0x8031f3c2, 0x710a345, 0x802f375d, 0x6de7262, 0x802c8ead, 0x6ac406f, - 0x8029f9b4, 0x67a0d76, - 0x80277872, 0x647d97c, 0x80250ae7, 0x615a48b, 0x8022b114, 0x5e36ea9, - 0x80206af8, 0x5b137df, - 0x801e3895, 0x57f0035, 0x801c19ea, 0x54cc7b1, 0x801a0ef8, 0x51a8e5c, - 0x801817bf, 0x4e8543e, - 0x80163440, 0x4b6195d, 0x8014647b, 0x483ddc3, 0x8012a86f, 0x451a177, - 0x8011001f, 0x41f6480, - 0x800f6b88, 0x3ed26e6, 0x800deaad, 0x3bae8b2, 0x800c7d8c, 0x388a9ea, - 0x800b2427, 0x3566a96, - 0x8009de7e, 0x3242abf, 0x8008ac90, 0x2f1ea6c, 0x80078e5e, 0x2bfa9a4, - 0x800683e8, 0x28d6870, - 0x80058d2f, 0x25b26d7, 0x8004aa32, 0x228e4e2, 0x8003daf1, 0x1f6a297, - 0x80031f6d, 0x1c45ffe, - 0x800277a6, 0x1921d20, 0x8001e39b, 0x15fda03, 0x8001634e, 0x12d96b1, - 0x8000f6bd, 0xfb5330, - 0x80009dea, 0xc90f88, 0x800058d4, 0x96cbc1, 0x8000277a, 0x6487e3, - 0x800009df, 0x3243f5, - 0x80000000, 0x0, 0x800009df, 0xffcdbc0b, 0x8000277a, 0xff9b781d, 0x800058d4, - 0xff69343f, - 0x80009dea, 0xff36f078, 0x8000f6bd, 0xff04acd0, 0x8001634e, 0xfed2694f, - 0x8001e39b, 0xfea025fd, - 0x800277a6, 0xfe6de2e0, 0x80031f6d, 0xfe3ba002, 0x8003daf1, 0xfe095d69, - 0x8004aa32, 0xfdd71b1e, - 0x80058d2f, 0xfda4d929, 0x800683e8, 0xfd729790, 0x80078e5e, 0xfd40565c, - 0x8008ac90, 0xfd0e1594, - 0x8009de7e, 0xfcdbd541, 0x800b2427, 0xfca9956a, 0x800c7d8c, 0xfc775616, - 0x800deaad, 0xfc45174e, - 0x800f6b88, 0xfc12d91a, 0x8011001f, 0xfbe09b80, 0x8012a86f, 0xfbae5e89, - 0x8014647b, 0xfb7c223d, - 0x80163440, 0xfb49e6a3, 0x801817bf, 0xfb17abc2, 0x801a0ef8, 0xfae571a4, - 0x801c19ea, 0xfab3384f, - 0x801e3895, 0xfa80ffcb, 0x80206af8, 0xfa4ec821, 0x8022b114, 0xfa1c9157, - 0x80250ae7, 0xf9ea5b75, - 0x80277872, 0xf9b82684, 0x8029f9b4, 0xf985f28a, 0x802c8ead, 0xf953bf91, - 0x802f375d, 0xf9218d9e, - 0x8031f3c2, 0xf8ef5cbb, 0x8034c3dd, 0xf8bd2cef, 0x8037a7ac, 0xf88afe42, - 0x803a9f31, 0xf858d0bb, - 0x803daa6a, 0xf826a462, 0x8040c956, 0xf7f4793e, 0x8043fbf6, 0xf7c24f59, - 0x80474248, 0xf79026b9, - 0x804a9c4d, 0xf75dff66, 0x804e0a04, 0xf72bd967, 0x80518b6b, 0xf6f9b4c6, - 0x80552084, 0xf6c79188, - 0x8058c94c, 0xf6956fb7, 0x805c85c4, 0xf6634f59, 0x806055eb, 0xf6313077, - 0x806439c0, 0xf5ff1318, - 0x80683143, 0xf5ccf743, 0x806c3c74, 0xf59add02, 0x80705b50, 0xf568c45b, - 0x80748dd9, 0xf536ad56, - 0x8078d40d, 0xf50497fb, 0x807d2dec, 0xf4d28451, 0x80819b74, 0xf4a07261, - 0x80861ca6, 0xf46e6231, - 0x808ab180, 0xf43c53cb, 0x808f5a02, 0xf40a4735, 0x8094162c, 0xf3d83c77, - 0x8098e5fb, 0xf3a63398, - 0x809dc971, 0xf3742ca2, 0x80a2c08b, 0xf342279b, 0x80a7cb49, 0xf310248a, - 0x80ace9ab, 0xf2de2379, - 0x80b21baf, 0xf2ac246e, 0x80b76156, 0xf27a2771, 0x80bcba9d, 0xf2482c8a, - 0x80c22784, 0xf21633c0, - 0x80c7a80a, 0xf1e43d1c, 0x80cd3c2f, 0xf1b248a5, 0x80d2e3f2, 0xf1805662, - 0x80d89f51, 0xf14e665c, - 0x80de6e4c, 0xf11c789a, 0x80e450e2, 0xf0ea8d24, 0x80ea4712, 0xf0b8a401, - 0x80f050db, 0xf086bd39, - 0x80f66e3c, 0xf054d8d5, 0x80fc9f35, 0xf022f6da, 0x8102e3c4, 0xeff11753, - 0x81093be8, 0xefbf3a45, - 0x810fa7a0, 0xef8d5fb8, 0x811626ec, 0xef5b87b5, 0x811cb9ca, 0xef29b243, - 0x8123603a, 0xeef7df6a, - 0x812a1a3a, 0xeec60f31, 0x8130e7c9, 0xee9441a0, 0x8137c8e6, 0xee6276bf, - 0x813ebd90, 0xee30ae96, - 0x8145c5c7, 0xedfee92b, 0x814ce188, 0xedcd2687, 0x815410d4, 0xed9b66b2, - 0x815b53a8, 0xed69a9b3, - 0x8162aa04, 0xed37ef91, 0x816a13e6, 0xed063856, 0x8171914e, 0xecd48407, - 0x8179223a, 0xeca2d2ad, - 0x8180c6a9, 0xec71244f, 0x81887e9a, 0xec3f78f6, 0x81904a0c, 0xec0dd0a8, - 0x819828fd, 0xebdc2b6e, - 0x81a01b6d, 0xebaa894f, 0x81a82159, 0xeb78ea52, 0x81b03ac2, 0xeb474e81, - 0x81b867a5, 0xeb15b5e1, - 0x81c0a801, 0xeae4207a, 0x81c8fbd6, 0xeab28e56, 0x81d16321, 0xea80ff7a, - 0x81d9dde1, 0xea4f73ee, - 0x81e26c16, 0xea1debbb, 0x81eb0dbe, 0xe9ec66e8, 0x81f3c2d7, 0xe9bae57d, - 0x81fc8b60, 0xe9896781, - 0x82056758, 0xe957ecfb, 0x820e56be, 0xe92675f4, 0x82175990, 0xe8f50273, - 0x82206fcc, 0xe8c39280, - 0x82299971, 0xe8922622, 0x8232d67f, 0xe860bd61, 0x823c26f3, 0xe82f5844, - 0x82458acc, 0xe7fdf6d4, - 0x824f0208, 0xe7cc9917, 0x82588ca7, 0xe79b3f16, 0x82622aa6, 0xe769e8d8, - 0x826bdc04, 0xe7389665, - 0x8275a0c0, 0xe70747c4, 0x827f78d8, 0xe6d5fcfc, 0x8289644b, 0xe6a4b616, - 0x82936317, 0xe6737319, - 0x829d753a, 0xe642340d, 0x82a79ab3, 0xe610f8f9, 0x82b1d381, 0xe5dfc1e5, - 0x82bc1fa2, 0xe5ae8ed8, - 0x82c67f14, 0xe57d5fda, 0x82d0f1d5, 0xe54c34f3, 0x82db77e5, 0xe51b0e2a, - 0x82e61141, 0xe4e9eb87, - 0x82f0bde8, 0xe4b8cd11, 0x82fb7dd8, 0xe487b2d0, 0x83065110, 0xe4569ccb, - 0x8311378d, 0xe4258b0a, - 0x831c314e, 0xe3f47d96, 0x83273e52, 0xe3c37474, 0x83325e97, 0xe3926fad, - 0x833d921b, 0xe3616f48, - 0x8348d8dc, 0xe330734d, 0x835432d8, 0xe2ff7bc3, 0x835fa00f, 0xe2ce88b3, - 0x836b207d, 0xe29d9a23, - 0x8376b422, 0xe26cb01b, 0x83825afb, 0xe23bcaa2, 0x838e1507, 0xe20ae9c1, - 0x8399e244, 0xe1da0d7e, - 0x83a5c2b0, 0xe1a935e2, 0x83b1b649, 0xe17862f3, 0x83bdbd0e, 0xe14794ba, - 0x83c9d6fc, 0xe116cb3d, - 0x83d60412, 0xe0e60685, 0x83e2444d, 0xe0b54698, 0x83ee97ad, 0xe0848b7f, - 0x83fafe2e, 0xe053d541, - 0x840777d0, 0xe02323e5, 0x84140490, 0xdff27773, 0x8420a46c, 0xdfc1cff3, - 0x842d5762, 0xdf912d6b, - 0x843a1d70, 0xdf608fe4, 0x8446f695, 0xdf2ff764, 0x8453e2cf, 0xdeff63f4, - 0x8460e21a, 0xdeced59b, - 0x846df477, 0xde9e4c60, 0x847b19e1, 0xde6dc84b, 0x84885258, 0xde3d4964, - 0x84959dd9, 0xde0ccfb1, - 0x84a2fc62, 0xdddc5b3b, 0x84b06df2, 0xddabec08, 0x84bdf286, 0xdd7b8220, - 0x84cb8a1b, 0xdd4b1d8c, - 0x84d934b1, 0xdd1abe51, 0x84e6f244, 0xdcea6478, 0x84f4c2d4, 0xdcba1008, - 0x8502a65c, 0xdc89c109, - 0x85109cdd, 0xdc597781, 0x851ea652, 0xdc293379, 0x852cc2bb, 0xdbf8f4f8, - 0x853af214, 0xdbc8bc06, - 0x8549345c, 0xdb9888a8, 0x85578991, 0xdb685ae9, 0x8565f1b0, 0xdb3832cd, - 0x85746cb8, 0xdb08105e, - 0x8582faa5, 0xdad7f3a2, 0x85919b76, 0xdaa7dca1, 0x85a04f28, 0xda77cb63, - 0x85af15b9, 0xda47bfee, - 0x85bdef28, 0xda17ba4a, 0x85ccdb70, 0xd9e7ba7f, 0x85dbda91, 0xd9b7c094, - 0x85eaec88, 0xd987cc90, - 0x85fa1153, 0xd957de7a, 0x860948ef, 0xd927f65b, 0x86189359, 0xd8f81439, - 0x8627f091, 0xd8c8381d, - 0x86376092, 0xd898620c, 0x8646e35c, 0xd868920f, 0x865678eb, 0xd838c82d, - 0x8666213c, 0xd809046e, - 0x8675dc4f, 0xd7d946d8, 0x8685aa20, 0xd7a98f73, 0x86958aac, 0xd779de47, - 0x86a57df2, 0xd74a335b, - 0x86b583ee, 0xd71a8eb5, 0x86c59c9f, 0xd6eaf05f, 0x86d5c802, 0xd6bb585e, - 0x86e60614, 0xd68bc6ba, - 0x86f656d3, 0xd65c3b7b, 0x8706ba3d, 0xd62cb6a8, 0x8717304e, 0xd5fd3848, - 0x8727b905, 0xd5cdc062, - 0x8738545e, 0xd59e4eff, 0x87490258, 0xd56ee424, 0x8759c2ef, 0xd53f7fda, - 0x876a9621, 0xd5102228, - 0x877b7bec, 0xd4e0cb15, 0x878c744d, 0xd4b17aa8, 0x879d7f41, 0xd48230e9, - 0x87ae9cc5, 0xd452eddf, - 0x87bfccd7, 0xd423b191, 0x87d10f75, 0xd3f47c06, 0x87e2649b, 0xd3c54d47, - 0x87f3cc48, 0xd396255a, - 0x88054677, 0xd3670446, 0x8816d327, 0xd337ea12, 0x88287256, 0xd308d6c7, - 0x883a23ff, 0xd2d9ca6a, - 0x884be821, 0xd2aac504, 0x885dbeb8, 0xd27bc69c, 0x886fa7c2, 0xd24ccf39, - 0x8881a33d, 0xd21ddee2, - 0x8893b125, 0xd1eef59e, 0x88a5d177, 0xd1c01375, 0x88b80432, 0xd191386e, - 0x88ca4951, 0xd1626490, - 0x88dca0d3, 0xd13397e2, 0x88ef0ab4, 0xd104d26b, 0x890186f2, 0xd0d61434, - 0x89141589, 0xd0a75d42, - 0x8926b677, 0xd078ad9e, 0x893969b9, 0xd04a054e, 0x894c2f4c, 0xd01b6459, - 0x895f072e, 0xcfeccac7, - 0x8971f15a, 0xcfbe389f, 0x8984edcf, 0xcf8fade9, 0x8997fc8a, 0xcf612aaa, - 0x89ab1d87, 0xcf32aeeb, - 0x89be50c3, 0xcf043ab3, 0x89d1963c, 0xced5ce08, 0x89e4edef, 0xcea768f2, - 0x89f857d8, 0xce790b79, - 0x8a0bd3f5, 0xce4ab5a2, 0x8a1f6243, 0xce1c6777, 0x8a3302be, 0xcdee20fc, - 0x8a46b564, 0xcdbfe23a, - 0x8a5a7a31, 0xcd91ab39, 0x8a6e5123, 0xcd637bfe, 0x8a823a36, 0xcd355491, - 0x8a963567, 0xcd0734f9, - 0x8aaa42b4, 0xccd91d3d, 0x8abe6219, 0xccab0d65, 0x8ad29394, 0xcc7d0578, - 0x8ae6d720, 0xcc4f057c, - 0x8afb2cbb, 0xcc210d79, 0x8b0f9462, 0xcbf31d75, 0x8b240e11, 0xcbc53579, - 0x8b3899c6, 0xcb97558a, - 0x8b4d377c, 0xcb697db0, 0x8b61e733, 0xcb3badf3, 0x8b76a8e4, 0xcb0de658, - 0x8b8b7c8f, 0xcae026e8, - 0x8ba0622f, 0xcab26fa9, 0x8bb559c1, 0xca84c0a3, 0x8bca6343, 0xca5719db, - 0x8bdf7eb0, 0xca297b5a, - 0x8bf4ac05, 0xc9fbe527, 0x8c09eb40, 0xc9ce5748, 0x8c1f3c5d, 0xc9a0d1c5, - 0x8c349f58, 0xc97354a4, - 0x8c4a142f, 0xc945dfec, 0x8c5f9ade, 0xc91873a5, 0x8c753362, 0xc8eb0fd6, - 0x8c8addb7, 0xc8bdb485, - 0x8ca099da, 0xc89061ba, 0x8cb667c8, 0xc863177b, 0x8ccc477d, 0xc835d5d0, - 0x8ce238f6, 0xc8089cbf, - 0x8cf83c30, 0xc7db6c50, 0x8d0e5127, 0xc7ae4489, 0x8d2477d8, 0xc7812572, - 0x8d3ab03f, 0xc7540f11, - 0x8d50fa59, 0xc727016d, 0x8d675623, 0xc6f9fc8d, 0x8d7dc399, 0xc6cd0079, - 0x8d9442b8, 0xc6a00d37, - 0x8daad37b, 0xc67322ce, 0x8dc175e0, 0xc6464144, 0x8dd829e4, 0xc61968a2, - 0x8deeef82, 0xc5ec98ee, - 0x8e05c6b7, 0xc5bfd22e, 0x8e1caf80, 0xc593146a, 0x8e33a9da, 0xc5665fa9, - 0x8e4ab5bf, 0xc539b3f1, - 0x8e61d32e, 0xc50d1149, 0x8e790222, 0xc4e077b8, 0x8e904298, 0xc4b3e746, - 0x8ea7948c, 0xc4875ff9, - 0x8ebef7fb, 0xc45ae1d7, 0x8ed66ce1, 0xc42e6ce8, 0x8eedf33b, 0xc4020133, - 0x8f058b04, 0xc3d59ebe, - 0x8f1d343a, 0xc3a94590, 0x8f34eed8, 0xc37cf5b0, 0x8f4cbadb, 0xc350af26, - 0x8f649840, 0xc32471f7, - 0x8f7c8701, 0xc2f83e2a, 0x8f94871d, 0xc2cc13c7, 0x8fac988f, 0xc29ff2d4, - 0x8fc4bb53, 0xc273db58, - 0x8fdcef66, 0xc247cd5a, 0x8ff534c4, 0xc21bc8e1, 0x900d8b69, 0xc1efcdf3, - 0x9025f352, 0xc1c3dc97, - 0x903e6c7b, 0xc197f4d4, 0x9056f6df, 0xc16c16b0, 0x906f927c, 0xc1404233, - 0x90883f4d, 0xc1147764, - 0x90a0fd4e, 0xc0e8b648, 0x90b9cc7d, 0xc0bcfee7, 0x90d2acd4, 0xc0915148, - 0x90eb9e50, 0xc065ad70, - 0x9104a0ee, 0xc03a1368, 0x911db4a9, 0xc00e8336, 0x9136d97d, 0xbfe2fcdf, - 0x91500f67, 0xbfb7806c, - 0x91695663, 0xbf8c0de3, 0x9182ae6d, 0xbf60a54a, 0x919c1781, 0xbf3546a8, - 0x91b5919a, 0xbf09f205, - 0x91cf1cb6, 0xbedea765, 0x91e8b8d0, 0xbeb366d1, 0x920265e4, 0xbe88304f, - 0x921c23ef, 0xbe5d03e6, - 0x9235f2ec, 0xbe31e19b, 0x924fd2d7, 0xbe06c977, 0x9269c3ac, 0xbddbbb7f, - 0x9283c568, 0xbdb0b7bb, - 0x929dd806, 0xbd85be30, 0x92b7fb82, 0xbd5acee5, 0x92d22fd9, 0xbd2fe9e2, - 0x92ec7505, 0xbd050f2c, - 0x9306cb04, 0xbcda3ecb, 0x932131d1, 0xbcaf78c4, 0x933ba968, 0xbc84bd1f, - 0x935631c5, 0xbc5a0be2, - 0x9370cae4, 0xbc2f6513, 0x938b74c1, 0xbc04c8ba, 0x93a62f57, 0xbbda36dd, - 0x93c0faa3, 0xbbafaf82, - 0x93dbd6a0, 0xbb8532b0, 0x93f6c34a, 0xbb5ac06d, 0x9411c09e, 0xbb3058c0, - 0x942cce96, 0xbb05fbb0, - 0x9447ed2f, 0xbadba943, 0x94631c65, 0xbab16180, 0x947e5c33, 0xba87246d, - 0x9499ac95, 0xba5cf210, - 0x94b50d87, 0xba32ca71, 0x94d07f05, 0xba08ad95, 0x94ec010b, 0xb9de9b83, - 0x95079394, 0xb9b49442, - 0x9523369c, 0xb98a97d8, 0x953eea1e, 0xb960a64c, 0x955aae17, 0xb936bfa4, - 0x95768283, 0xb90ce3e6, - 0x9592675c, 0xb8e31319, 0x95ae5c9f, 0xb8b94d44, 0x95ca6247, 0xb88f926d, - 0x95e67850, 0xb865e299, - 0x96029eb6, 0xb83c3dd1, 0x961ed574, 0xb812a41a, 0x963b1c86, 0xb7e9157a, - 0x965773e7, 0xb7bf91f8, - 0x9673db94, 0xb796199b, 0x96905388, 0xb76cac69, 0x96acdbbe, 0xb7434a67, - 0x96c97432, 0xb719f39e, - 0x96e61ce0, 0xb6f0a812, 0x9702d5c3, 0xb6c767ca, 0x971f9ed7, 0xb69e32cd, - 0x973c7817, 0xb6750921, - 0x9759617f, 0xb64beacd, 0x97765b0a, 0xb622d7d6, 0x979364b5, 0xb5f9d043, - 0x97b07e7a, 0xb5d0d41a, - 0x97cda855, 0xb5a7e362, 0x97eae242, 0xb57efe22, 0x98082c3b, 0xb556245e, - 0x9825863d, 0xb52d561e, - 0x9842f043, 0xb5049368, 0x98606a49, 0xb4dbdc42, 0x987df449, 0xb4b330b3, - 0x989b8e40, 0xb48a90c0, - 0x98b93828, 0xb461fc70, 0x98d6f1fe, 0xb43973ca, 0x98f4bbbc, 0xb410f6d3, - 0x9912955f, 0xb3e88592, - 0x99307ee0, 0xb3c0200c, 0x994e783d, 0xb397c649, 0x996c816f, 0xb36f784f, - 0x998a9a74, 0xb3473623, - 0x99a8c345, 0xb31effcc, 0x99c6fbde, 0xb2f6d550, 0x99e5443b, 0xb2ceb6b5, - 0x9a039c57, 0xb2a6a402, - 0x9a22042d, 0xb27e9d3c, 0x9a407bb9, 0xb256a26a, 0x9a5f02f5, 0xb22eb392, - 0x9a7d99de, 0xb206d0ba, - 0x9a9c406e, 0xb1def9e9, 0x9abaf6a1, 0xb1b72f23, 0x9ad9bc71, 0xb18f7071, - 0x9af891db, 0xb167bdd7, - 0x9b1776da, 0xb140175b, 0x9b366b68, 0xb1187d05, 0x9b556f81, 0xb0f0eeda, - 0x9b748320, 0xb0c96ce0, - 0x9b93a641, 0xb0a1f71d, 0x9bb2d8de, 0xb07a8d97, 0x9bd21af3, 0xb0533055, - 0x9bf16c7a, 0xb02bdf5c, - 0x9c10cd70, 0xb0049ab3, 0x9c303dcf, 0xafdd625f, 0x9c4fbd93, 0xafb63667, - 0x9c6f4cb6, 0xaf8f16d1, - 0x9c8eeb34, 0xaf6803a2, 0x9cae9907, 0xaf40fce1, 0x9cce562c, 0xaf1a0293, - 0x9cee229c, 0xaef314c0, - 0x9d0dfe54, 0xaecc336c, 0x9d2de94d, 0xaea55e9e, 0x9d4de385, 0xae7e965b, - 0x9d6decf4, 0xae57daab, - 0x9d8e0597, 0xae312b92, 0x9dae2d68, 0xae0a8916, 0x9dce6463, 0xade3f33e, - 0x9deeaa82, 0xadbd6a10, - 0x9e0effc1, 0xad96ed92, 0x9e2f641b, 0xad707dc8, 0x9e4fd78a, 0xad4a1aba, - 0x9e705a09, 0xad23c46e, - 0x9e90eb94, 0xacfd7ae8, 0x9eb18c26, 0xacd73e30, 0x9ed23bb9, 0xacb10e4b, - 0x9ef2fa49, 0xac8aeb3e, - 0x9f13c7d0, 0xac64d510, 0x9f34a449, 0xac3ecbc7, 0x9f558fb0, 0xac18cf69, - 0x9f7689ff, 0xabf2dffb, - 0x9f979331, 0xabccfd83, 0x9fb8ab41, 0xaba72807, 0x9fd9d22a, 0xab815f8d, - 0x9ffb07e7, 0xab5ba41a, - 0xa01c4c73, 0xab35f5b5, 0xa03d9fc8, 0xab105464, 0xa05f01e1, 0xaaeac02c, - 0xa08072ba, 0xaac53912, - 0xa0a1f24d, 0xaa9fbf1e, 0xa0c38095, 0xaa7a5253, 0xa0e51d8c, 0xaa54f2ba, - 0xa106c92f, 0xaa2fa056, - 0xa1288376, 0xaa0a5b2e, 0xa14a4c5e, 0xa9e52347, 0xa16c23e1, 0xa9bff8a8, - 0xa18e09fa, 0xa99adb56, - 0xa1affea3, 0xa975cb57, 0xa1d201d7, 0xa950c8b0, 0xa1f41392, 0xa92bd367, - 0xa21633cd, 0xa906eb82, - 0xa2386284, 0xa8e21106, 0xa25a9fb1, 0xa8bd43fa, 0xa27ceb4f, 0xa8988463, - 0xa29f4559, 0xa873d246, - 0xa2c1adc9, 0xa84f2daa, 0xa2e4249b, 0xa82a9693, 0xa306a9c8, 0xa8060d08, - 0xa3293d4b, 0xa7e1910f, - 0xa34bdf20, 0xa7bd22ac, 0xa36e8f41, 0xa798c1e5, 0xa3914da8, 0xa7746ec0, - 0xa3b41a50, 0xa7502943, - 0xa3d6f534, 0xa72bf174, 0xa3f9de4e, 0xa707c757, 0xa41cd599, 0xa6e3aaf2, - 0xa43fdb10, 0xa6bf9c4b, - 0xa462eeac, 0xa69b9b68, 0xa486106a, 0xa677a84e, 0xa4a94043, 0xa653c303, - 0xa4cc7e32, 0xa62feb8b, - 0xa4efca31, 0xa60c21ee, 0xa513243b, 0xa5e8662f, 0xa5368c4b, 0xa5c4b855, - 0xa55a025b, 0xa5a11866, - 0xa57d8666, 0xa57d8666, 0xa5a11866, 0xa55a025b, 0xa5c4b855, 0xa5368c4b, - 0xa5e8662f, 0xa513243b, - 0xa60c21ee, 0xa4efca31, 0xa62feb8b, 0xa4cc7e32, 0xa653c303, 0xa4a94043, - 0xa677a84e, 0xa486106a, - 0xa69b9b68, 0xa462eeac, 0xa6bf9c4b, 0xa43fdb10, 0xa6e3aaf2, 0xa41cd599, - 0xa707c757, 0xa3f9de4e, - 0xa72bf174, 0xa3d6f534, 0xa7502943, 0xa3b41a50, 0xa7746ec0, 0xa3914da8, - 0xa798c1e5, 0xa36e8f41, - 0xa7bd22ac, 0xa34bdf20, 0xa7e1910f, 0xa3293d4b, 0xa8060d08, 0xa306a9c8, - 0xa82a9693, 0xa2e4249b, - 0xa84f2daa, 0xa2c1adc9, 0xa873d246, 0xa29f4559, 0xa8988463, 0xa27ceb4f, - 0xa8bd43fa, 0xa25a9fb1, - 0xa8e21106, 0xa2386284, 0xa906eb82, 0xa21633cd, 0xa92bd367, 0xa1f41392, - 0xa950c8b0, 0xa1d201d7, - 0xa975cb57, 0xa1affea3, 0xa99adb56, 0xa18e09fa, 0xa9bff8a8, 0xa16c23e1, - 0xa9e52347, 0xa14a4c5e, - 0xaa0a5b2e, 0xa1288376, 0xaa2fa056, 0xa106c92f, 0xaa54f2ba, 0xa0e51d8c, - 0xaa7a5253, 0xa0c38095, - 0xaa9fbf1e, 0xa0a1f24d, 0xaac53912, 0xa08072ba, 0xaaeac02c, 0xa05f01e1, - 0xab105464, 0xa03d9fc8, - 0xab35f5b5, 0xa01c4c73, 0xab5ba41a, 0x9ffb07e7, 0xab815f8d, 0x9fd9d22a, - 0xaba72807, 0x9fb8ab41, - 0xabccfd83, 0x9f979331, 0xabf2dffb, 0x9f7689ff, 0xac18cf69, 0x9f558fb0, - 0xac3ecbc7, 0x9f34a449, - 0xac64d510, 0x9f13c7d0, 0xac8aeb3e, 0x9ef2fa49, 0xacb10e4b, 0x9ed23bb9, - 0xacd73e30, 0x9eb18c26, - 0xacfd7ae8, 0x9e90eb94, 0xad23c46e, 0x9e705a09, 0xad4a1aba, 0x9e4fd78a, - 0xad707dc8, 0x9e2f641b, - 0xad96ed92, 0x9e0effc1, 0xadbd6a10, 0x9deeaa82, 0xade3f33e, 0x9dce6463, - 0xae0a8916, 0x9dae2d68, - 0xae312b92, 0x9d8e0597, 0xae57daab, 0x9d6decf4, 0xae7e965b, 0x9d4de385, - 0xaea55e9e, 0x9d2de94d, - 0xaecc336c, 0x9d0dfe54, 0xaef314c0, 0x9cee229c, 0xaf1a0293, 0x9cce562c, - 0xaf40fce1, 0x9cae9907, - 0xaf6803a2, 0x9c8eeb34, 0xaf8f16d1, 0x9c6f4cb6, 0xafb63667, 0x9c4fbd93, - 0xafdd625f, 0x9c303dcf, - 0xb0049ab3, 0x9c10cd70, 0xb02bdf5c, 0x9bf16c7a, 0xb0533055, 0x9bd21af3, - 0xb07a8d97, 0x9bb2d8de, - 0xb0a1f71d, 0x9b93a641, 0xb0c96ce0, 0x9b748320, 0xb0f0eeda, 0x9b556f81, - 0xb1187d05, 0x9b366b68, - 0xb140175b, 0x9b1776da, 0xb167bdd7, 0x9af891db, 0xb18f7071, 0x9ad9bc71, - 0xb1b72f23, 0x9abaf6a1, - 0xb1def9e9, 0x9a9c406e, 0xb206d0ba, 0x9a7d99de, 0xb22eb392, 0x9a5f02f5, - 0xb256a26a, 0x9a407bb9, - 0xb27e9d3c, 0x9a22042d, 0xb2a6a402, 0x9a039c57, 0xb2ceb6b5, 0x99e5443b, - 0xb2f6d550, 0x99c6fbde, - 0xb31effcc, 0x99a8c345, 0xb3473623, 0x998a9a74, 0xb36f784f, 0x996c816f, - 0xb397c649, 0x994e783d, - 0xb3c0200c, 0x99307ee0, 0xb3e88592, 0x9912955f, 0xb410f6d3, 0x98f4bbbc, - 0xb43973ca, 0x98d6f1fe, - 0xb461fc70, 0x98b93828, 0xb48a90c0, 0x989b8e40, 0xb4b330b3, 0x987df449, - 0xb4dbdc42, 0x98606a49, - 0xb5049368, 0x9842f043, 0xb52d561e, 0x9825863d, 0xb556245e, 0x98082c3b, - 0xb57efe22, 0x97eae242, - 0xb5a7e362, 0x97cda855, 0xb5d0d41a, 0x97b07e7a, 0xb5f9d043, 0x979364b5, - 0xb622d7d6, 0x97765b0a, - 0xb64beacd, 0x9759617f, 0xb6750921, 0x973c7817, 0xb69e32cd, 0x971f9ed7, - 0xb6c767ca, 0x9702d5c3, - 0xb6f0a812, 0x96e61ce0, 0xb719f39e, 0x96c97432, 0xb7434a67, 0x96acdbbe, - 0xb76cac69, 0x96905388, - 0xb796199b, 0x9673db94, 0xb7bf91f8, 0x965773e7, 0xb7e9157a, 0x963b1c86, - 0xb812a41a, 0x961ed574, - 0xb83c3dd1, 0x96029eb6, 0xb865e299, 0x95e67850, 0xb88f926d, 0x95ca6247, - 0xb8b94d44, 0x95ae5c9f, - 0xb8e31319, 0x9592675c, 0xb90ce3e6, 0x95768283, 0xb936bfa4, 0x955aae17, - 0xb960a64c, 0x953eea1e, - 0xb98a97d8, 0x9523369c, 0xb9b49442, 0x95079394, 0xb9de9b83, 0x94ec010b, - 0xba08ad95, 0x94d07f05, - 0xba32ca71, 0x94b50d87, 0xba5cf210, 0x9499ac95, 0xba87246d, 0x947e5c33, - 0xbab16180, 0x94631c65, - 0xbadba943, 0x9447ed2f, 0xbb05fbb0, 0x942cce96, 0xbb3058c0, 0x9411c09e, - 0xbb5ac06d, 0x93f6c34a, - 0xbb8532b0, 0x93dbd6a0, 0xbbafaf82, 0x93c0faa3, 0xbbda36dd, 0x93a62f57, - 0xbc04c8ba, 0x938b74c1, - 0xbc2f6513, 0x9370cae4, 0xbc5a0be2, 0x935631c5, 0xbc84bd1f, 0x933ba968, - 0xbcaf78c4, 0x932131d1, - 0xbcda3ecb, 0x9306cb04, 0xbd050f2c, 0x92ec7505, 0xbd2fe9e2, 0x92d22fd9, - 0xbd5acee5, 0x92b7fb82, - 0xbd85be30, 0x929dd806, 0xbdb0b7bb, 0x9283c568, 0xbddbbb7f, 0x9269c3ac, - 0xbe06c977, 0x924fd2d7, - 0xbe31e19b, 0x9235f2ec, 0xbe5d03e6, 0x921c23ef, 0xbe88304f, 0x920265e4, - 0xbeb366d1, 0x91e8b8d0, - 0xbedea765, 0x91cf1cb6, 0xbf09f205, 0x91b5919a, 0xbf3546a8, 0x919c1781, - 0xbf60a54a, 0x9182ae6d, - 0xbf8c0de3, 0x91695663, 0xbfb7806c, 0x91500f67, 0xbfe2fcdf, 0x9136d97d, - 0xc00e8336, 0x911db4a9, - 0xc03a1368, 0x9104a0ee, 0xc065ad70, 0x90eb9e50, 0xc0915148, 0x90d2acd4, - 0xc0bcfee7, 0x90b9cc7d, - 0xc0e8b648, 0x90a0fd4e, 0xc1147764, 0x90883f4d, 0xc1404233, 0x906f927c, - 0xc16c16b0, 0x9056f6df, - 0xc197f4d4, 0x903e6c7b, 0xc1c3dc97, 0x9025f352, 0xc1efcdf3, 0x900d8b69, - 0xc21bc8e1, 0x8ff534c4, - 0xc247cd5a, 0x8fdcef66, 0xc273db58, 0x8fc4bb53, 0xc29ff2d4, 0x8fac988f, - 0xc2cc13c7, 0x8f94871d, - 0xc2f83e2a, 0x8f7c8701, 0xc32471f7, 0x8f649840, 0xc350af26, 0x8f4cbadb, - 0xc37cf5b0, 0x8f34eed8, - 0xc3a94590, 0x8f1d343a, 0xc3d59ebe, 0x8f058b04, 0xc4020133, 0x8eedf33b, - 0xc42e6ce8, 0x8ed66ce1, - 0xc45ae1d7, 0x8ebef7fb, 0xc4875ff9, 0x8ea7948c, 0xc4b3e746, 0x8e904298, - 0xc4e077b8, 0x8e790222, - 0xc50d1149, 0x8e61d32e, 0xc539b3f1, 0x8e4ab5bf, 0xc5665fa9, 0x8e33a9da, - 0xc593146a, 0x8e1caf80, - 0xc5bfd22e, 0x8e05c6b7, 0xc5ec98ee, 0x8deeef82, 0xc61968a2, 0x8dd829e4, - 0xc6464144, 0x8dc175e0, - 0xc67322ce, 0x8daad37b, 0xc6a00d37, 0x8d9442b8, 0xc6cd0079, 0x8d7dc399, - 0xc6f9fc8d, 0x8d675623, - 0xc727016d, 0x8d50fa59, 0xc7540f11, 0x8d3ab03f, 0xc7812572, 0x8d2477d8, - 0xc7ae4489, 0x8d0e5127, - 0xc7db6c50, 0x8cf83c30, 0xc8089cbf, 0x8ce238f6, 0xc835d5d0, 0x8ccc477d, - 0xc863177b, 0x8cb667c8, - 0xc89061ba, 0x8ca099da, 0xc8bdb485, 0x8c8addb7, 0xc8eb0fd6, 0x8c753362, - 0xc91873a5, 0x8c5f9ade, - 0xc945dfec, 0x8c4a142f, 0xc97354a4, 0x8c349f58, 0xc9a0d1c5, 0x8c1f3c5d, - 0xc9ce5748, 0x8c09eb40, - 0xc9fbe527, 0x8bf4ac05, 0xca297b5a, 0x8bdf7eb0, 0xca5719db, 0x8bca6343, - 0xca84c0a3, 0x8bb559c1, - 0xcab26fa9, 0x8ba0622f, 0xcae026e8, 0x8b8b7c8f, 0xcb0de658, 0x8b76a8e4, - 0xcb3badf3, 0x8b61e733, - 0xcb697db0, 0x8b4d377c, 0xcb97558a, 0x8b3899c6, 0xcbc53579, 0x8b240e11, - 0xcbf31d75, 0x8b0f9462, - 0xcc210d79, 0x8afb2cbb, 0xcc4f057c, 0x8ae6d720, 0xcc7d0578, 0x8ad29394, - 0xccab0d65, 0x8abe6219, - 0xccd91d3d, 0x8aaa42b4, 0xcd0734f9, 0x8a963567, 0xcd355491, 0x8a823a36, - 0xcd637bfe, 0x8a6e5123, - 0xcd91ab39, 0x8a5a7a31, 0xcdbfe23a, 0x8a46b564, 0xcdee20fc, 0x8a3302be, - 0xce1c6777, 0x8a1f6243, - 0xce4ab5a2, 0x8a0bd3f5, 0xce790b79, 0x89f857d8, 0xcea768f2, 0x89e4edef, - 0xced5ce08, 0x89d1963c, - 0xcf043ab3, 0x89be50c3, 0xcf32aeeb, 0x89ab1d87, 0xcf612aaa, 0x8997fc8a, - 0xcf8fade9, 0x8984edcf, - 0xcfbe389f, 0x8971f15a, 0xcfeccac7, 0x895f072e, 0xd01b6459, 0x894c2f4c, - 0xd04a054e, 0x893969b9, - 0xd078ad9e, 0x8926b677, 0xd0a75d42, 0x89141589, 0xd0d61434, 0x890186f2, - 0xd104d26b, 0x88ef0ab4, - 0xd13397e2, 0x88dca0d3, 0xd1626490, 0x88ca4951, 0xd191386e, 0x88b80432, - 0xd1c01375, 0x88a5d177, - 0xd1eef59e, 0x8893b125, 0xd21ddee2, 0x8881a33d, 0xd24ccf39, 0x886fa7c2, - 0xd27bc69c, 0x885dbeb8, - 0xd2aac504, 0x884be821, 0xd2d9ca6a, 0x883a23ff, 0xd308d6c7, 0x88287256, - 0xd337ea12, 0x8816d327, - 0xd3670446, 0x88054677, 0xd396255a, 0x87f3cc48, 0xd3c54d47, 0x87e2649b, - 0xd3f47c06, 0x87d10f75, - 0xd423b191, 0x87bfccd7, 0xd452eddf, 0x87ae9cc5, 0xd48230e9, 0x879d7f41, - 0xd4b17aa8, 0x878c744d, - 0xd4e0cb15, 0x877b7bec, 0xd5102228, 0x876a9621, 0xd53f7fda, 0x8759c2ef, - 0xd56ee424, 0x87490258, - 0xd59e4eff, 0x8738545e, 0xd5cdc062, 0x8727b905, 0xd5fd3848, 0x8717304e, - 0xd62cb6a8, 0x8706ba3d, - 0xd65c3b7b, 0x86f656d3, 0xd68bc6ba, 0x86e60614, 0xd6bb585e, 0x86d5c802, - 0xd6eaf05f, 0x86c59c9f, - 0xd71a8eb5, 0x86b583ee, 0xd74a335b, 0x86a57df2, 0xd779de47, 0x86958aac, - 0xd7a98f73, 0x8685aa20, - 0xd7d946d8, 0x8675dc4f, 0xd809046e, 0x8666213c, 0xd838c82d, 0x865678eb, - 0xd868920f, 0x8646e35c, - 0xd898620c, 0x86376092, 0xd8c8381d, 0x8627f091, 0xd8f81439, 0x86189359, - 0xd927f65b, 0x860948ef, - 0xd957de7a, 0x85fa1153, 0xd987cc90, 0x85eaec88, 0xd9b7c094, 0x85dbda91, - 0xd9e7ba7f, 0x85ccdb70, - 0xda17ba4a, 0x85bdef28, 0xda47bfee, 0x85af15b9, 0xda77cb63, 0x85a04f28, - 0xdaa7dca1, 0x85919b76, - 0xdad7f3a2, 0x8582faa5, 0xdb08105e, 0x85746cb8, 0xdb3832cd, 0x8565f1b0, - 0xdb685ae9, 0x85578991, - 0xdb9888a8, 0x8549345c, 0xdbc8bc06, 0x853af214, 0xdbf8f4f8, 0x852cc2bb, - 0xdc293379, 0x851ea652, - 0xdc597781, 0x85109cdd, 0xdc89c109, 0x8502a65c, 0xdcba1008, 0x84f4c2d4, - 0xdcea6478, 0x84e6f244, - 0xdd1abe51, 0x84d934b1, 0xdd4b1d8c, 0x84cb8a1b, 0xdd7b8220, 0x84bdf286, - 0xddabec08, 0x84b06df2, - 0xdddc5b3b, 0x84a2fc62, 0xde0ccfb1, 0x84959dd9, 0xde3d4964, 0x84885258, - 0xde6dc84b, 0x847b19e1, - 0xde9e4c60, 0x846df477, 0xdeced59b, 0x8460e21a, 0xdeff63f4, 0x8453e2cf, - 0xdf2ff764, 0x8446f695, - 0xdf608fe4, 0x843a1d70, 0xdf912d6b, 0x842d5762, 0xdfc1cff3, 0x8420a46c, - 0xdff27773, 0x84140490, - 0xe02323e5, 0x840777d0, 0xe053d541, 0x83fafe2e, 0xe0848b7f, 0x83ee97ad, - 0xe0b54698, 0x83e2444d, - 0xe0e60685, 0x83d60412, 0xe116cb3d, 0x83c9d6fc, 0xe14794ba, 0x83bdbd0e, - 0xe17862f3, 0x83b1b649, - 0xe1a935e2, 0x83a5c2b0, 0xe1da0d7e, 0x8399e244, 0xe20ae9c1, 0x838e1507, - 0xe23bcaa2, 0x83825afb, - 0xe26cb01b, 0x8376b422, 0xe29d9a23, 0x836b207d, 0xe2ce88b3, 0x835fa00f, - 0xe2ff7bc3, 0x835432d8, - 0xe330734d, 0x8348d8dc, 0xe3616f48, 0x833d921b, 0xe3926fad, 0x83325e97, - 0xe3c37474, 0x83273e52, - 0xe3f47d96, 0x831c314e, 0xe4258b0a, 0x8311378d, 0xe4569ccb, 0x83065110, - 0xe487b2d0, 0x82fb7dd8, - 0xe4b8cd11, 0x82f0bde8, 0xe4e9eb87, 0x82e61141, 0xe51b0e2a, 0x82db77e5, - 0xe54c34f3, 0x82d0f1d5, - 0xe57d5fda, 0x82c67f14, 0xe5ae8ed8, 0x82bc1fa2, 0xe5dfc1e5, 0x82b1d381, - 0xe610f8f9, 0x82a79ab3, - 0xe642340d, 0x829d753a, 0xe6737319, 0x82936317, 0xe6a4b616, 0x8289644b, - 0xe6d5fcfc, 0x827f78d8, - 0xe70747c4, 0x8275a0c0, 0xe7389665, 0x826bdc04, 0xe769e8d8, 0x82622aa6, - 0xe79b3f16, 0x82588ca7, - 0xe7cc9917, 0x824f0208, 0xe7fdf6d4, 0x82458acc, 0xe82f5844, 0x823c26f3, - 0xe860bd61, 0x8232d67f, - 0xe8922622, 0x82299971, 0xe8c39280, 0x82206fcc, 0xe8f50273, 0x82175990, - 0xe92675f4, 0x820e56be, - 0xe957ecfb, 0x82056758, 0xe9896781, 0x81fc8b60, 0xe9bae57d, 0x81f3c2d7, - 0xe9ec66e8, 0x81eb0dbe, - 0xea1debbb, 0x81e26c16, 0xea4f73ee, 0x81d9dde1, 0xea80ff7a, 0x81d16321, - 0xeab28e56, 0x81c8fbd6, - 0xeae4207a, 0x81c0a801, 0xeb15b5e1, 0x81b867a5, 0xeb474e81, 0x81b03ac2, - 0xeb78ea52, 0x81a82159, - 0xebaa894f, 0x81a01b6d, 0xebdc2b6e, 0x819828fd, 0xec0dd0a8, 0x81904a0c, - 0xec3f78f6, 0x81887e9a, - 0xec71244f, 0x8180c6a9, 0xeca2d2ad, 0x8179223a, 0xecd48407, 0x8171914e, - 0xed063856, 0x816a13e6, - 0xed37ef91, 0x8162aa04, 0xed69a9b3, 0x815b53a8, 0xed9b66b2, 0x815410d4, - 0xedcd2687, 0x814ce188, - 0xedfee92b, 0x8145c5c7, 0xee30ae96, 0x813ebd90, 0xee6276bf, 0x8137c8e6, - 0xee9441a0, 0x8130e7c9, - 0xeec60f31, 0x812a1a3a, 0xeef7df6a, 0x8123603a, 0xef29b243, 0x811cb9ca, - 0xef5b87b5, 0x811626ec, - 0xef8d5fb8, 0x810fa7a0, 0xefbf3a45, 0x81093be8, 0xeff11753, 0x8102e3c4, - 0xf022f6da, 0x80fc9f35, - 0xf054d8d5, 0x80f66e3c, 0xf086bd39, 0x80f050db, 0xf0b8a401, 0x80ea4712, - 0xf0ea8d24, 0x80e450e2, - 0xf11c789a, 0x80de6e4c, 0xf14e665c, 0x80d89f51, 0xf1805662, 0x80d2e3f2, - 0xf1b248a5, 0x80cd3c2f, - 0xf1e43d1c, 0x80c7a80a, 0xf21633c0, 0x80c22784, 0xf2482c8a, 0x80bcba9d, - 0xf27a2771, 0x80b76156, - 0xf2ac246e, 0x80b21baf, 0xf2de2379, 0x80ace9ab, 0xf310248a, 0x80a7cb49, - 0xf342279b, 0x80a2c08b, - 0xf3742ca2, 0x809dc971, 0xf3a63398, 0x8098e5fb, 0xf3d83c77, 0x8094162c, - 0xf40a4735, 0x808f5a02, - 0xf43c53cb, 0x808ab180, 0xf46e6231, 0x80861ca6, 0xf4a07261, 0x80819b74, - 0xf4d28451, 0x807d2dec, - 0xf50497fb, 0x8078d40d, 0xf536ad56, 0x80748dd9, 0xf568c45b, 0x80705b50, - 0xf59add02, 0x806c3c74, - 0xf5ccf743, 0x80683143, 0xf5ff1318, 0x806439c0, 0xf6313077, 0x806055eb, - 0xf6634f59, 0x805c85c4, - 0xf6956fb7, 0x8058c94c, 0xf6c79188, 0x80552084, 0xf6f9b4c6, 0x80518b6b, - 0xf72bd967, 0x804e0a04, - 0xf75dff66, 0x804a9c4d, 0xf79026b9, 0x80474248, 0xf7c24f59, 0x8043fbf6, - 0xf7f4793e, 0x8040c956, - 0xf826a462, 0x803daa6a, 0xf858d0bb, 0x803a9f31, 0xf88afe42, 0x8037a7ac, - 0xf8bd2cef, 0x8034c3dd, - 0xf8ef5cbb, 0x8031f3c2, 0xf9218d9e, 0x802f375d, 0xf953bf91, 0x802c8ead, - 0xf985f28a, 0x8029f9b4, - 0xf9b82684, 0x80277872, 0xf9ea5b75, 0x80250ae7, 0xfa1c9157, 0x8022b114, - 0xfa4ec821, 0x80206af8, - 0xfa80ffcb, 0x801e3895, 0xfab3384f, 0x801c19ea, 0xfae571a4, 0x801a0ef8, - 0xfb17abc2, 0x801817bf, - 0xfb49e6a3, 0x80163440, 0xfb7c223d, 0x8014647b, 0xfbae5e89, 0x8012a86f, - 0xfbe09b80, 0x8011001f, - 0xfc12d91a, 0x800f6b88, 0xfc45174e, 0x800deaad, 0xfc775616, 0x800c7d8c, - 0xfca9956a, 0x800b2427, - 0xfcdbd541, 0x8009de7e, 0xfd0e1594, 0x8008ac90, 0xfd40565c, 0x80078e5e, - 0xfd729790, 0x800683e8, - 0xfda4d929, 0x80058d2f, 0xfdd71b1e, 0x8004aa32, 0xfe095d69, 0x8003daf1, - 0xfe3ba002, 0x80031f6d, - 0xfe6de2e0, 0x800277a6, 0xfea025fd, 0x8001e39b, 0xfed2694f, 0x8001634e, - 0xff04acd0, 0x8000f6bd, - 0xff36f078, 0x80009dea, 0xff69343f, 0x800058d4, 0xff9b781d, 0x8000277a, - 0xffcdbc0b, 0x800009df, - -}; - - -/* -* @brief Q15 Twiddle factors Table -*/ - -/** -* \par -* Example code for Q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)    
-* {    
-*	twiddleCoefQ15[2*i]= cos(i * 2*PI/(float)N);    
-*	twiddleCoefQ15[2*i+1]= sin(i * 2*PI/(float)N);    
-* } 
-* \par -* where N = 4096 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q15(Fixed point 1.15): -* round(twiddleCoefQ15(i) * pow(2, 15)) -* -*/ - -const q15_t ALIGN4 twiddleCoefQ15[6144] = { - - 0x7fff, 0x0, 0x7fff, 0x32, 0x7fff, 0x65, 0x7fff, 0x97, - 0x7fff, 0xc9, 0x7fff, 0xfb, 0x7fff, 0x12e, 0x7ffe, 0x160, - 0x7ffe, 0x192, 0x7ffd, 0x1c4, 0x7ffc, 0x1f7, 0x7ffb, 0x229, - 0x7ffa, 0x25b, 0x7ff9, 0x28d, 0x7ff8, 0x2c0, 0x7ff7, 0x2f2, - 0x7ff6, 0x324, 0x7ff5, 0x356, 0x7ff4, 0x389, 0x7ff2, 0x3bb, - 0x7ff1, 0x3ed, 0x7fef, 0x41f, 0x7fed, 0x452, 0x7fec, 0x484, - 0x7fea, 0x4b6, 0x7fe8, 0x4e8, 0x7fe6, 0x51b, 0x7fe4, 0x54d, - 0x7fe2, 0x57f, 0x7fe0, 0x5b1, 0x7fdd, 0x5e3, 0x7fdb, 0x616, - 0x7fd9, 0x648, 0x7fd6, 0x67a, 0x7fd3, 0x6ac, 0x7fd1, 0x6de, - 0x7fce, 0x711, 0x7fcb, 0x743, 0x7fc8, 0x775, 0x7fc5, 0x7a7, - 0x7fc2, 0x7d9, 0x7fbf, 0x80c, 0x7fbc, 0x83e, 0x7fb9, 0x870, - 0x7fb5, 0x8a2, 0x7fb2, 0x8d4, 0x7fae, 0x906, 0x7fab, 0x938, - 0x7fa7, 0x96b, 0x7fa3, 0x99d, 0x7fa0, 0x9cf, 0x7f9c, 0xa01, - 0x7f98, 0xa33, 0x7f94, 0xa65, 0x7f90, 0xa97, 0x7f8b, 0xac9, - 0x7f87, 0xafb, 0x7f83, 0xb2d, 0x7f7e, 0xb60, 0x7f7a, 0xb92, - 0x7f75, 0xbc4, 0x7f71, 0xbf6, 0x7f6c, 0xc28, 0x7f67, 0xc5a, - 0x7f62, 0xc8c, 0x7f5d, 0xcbe, 0x7f58, 0xcf0, 0x7f53, 0xd22, - 0x7f4e, 0xd54, 0x7f49, 0xd86, 0x7f43, 0xdb8, 0x7f3e, 0xdea, - 0x7f38, 0xe1c, 0x7f33, 0xe4e, 0x7f2d, 0xe80, 0x7f27, 0xeb2, - 0x7f22, 0xee4, 0x7f1c, 0xf15, 0x7f16, 0xf47, 0x7f10, 0xf79, - 0x7f0a, 0xfab, 0x7f03, 0xfdd, 0x7efd, 0x100f, 0x7ef7, 0x1041, - 0x7ef0, 0x1073, 0x7eea, 0x10a4, 0x7ee3, 0x10d6, 0x7edd, 0x1108, - 0x7ed6, 0x113a, 0x7ecf, 0x116c, 0x7ec8, 0x119e, 0x7ec1, 0x11cf, - 0x7eba, 0x1201, 0x7eb3, 0x1233, 0x7eac, 0x1265, 0x7ea5, 0x1296, - 0x7e9d, 0x12c8, 0x7e96, 0x12fa, 0x7e8e, 0x132b, 0x7e87, 0x135d, - 0x7e7f, 0x138f, 0x7e78, 0x13c1, 0x7e70, 0x13f2, 0x7e68, 0x1424, - 0x7e60, 0x1455, 0x7e58, 0x1487, 0x7e50, 0x14b9, 0x7e48, 0x14ea, - 0x7e3f, 0x151c, 0x7e37, 0x154d, 0x7e2f, 0x157f, 0x7e26, 0x15b1, - 0x7e1e, 0x15e2, 0x7e15, 0x1614, 0x7e0c, 0x1645, 0x7e03, 0x1677, - 0x7dfb, 0x16a8, 0x7df2, 0x16da, 0x7de9, 0x170b, 0x7de0, 0x173c, - 0x7dd6, 0x176e, 0x7dcd, 0x179f, 0x7dc4, 0x17d1, 0x7dba, 0x1802, - 0x7db1, 0x1833, 0x7da7, 0x1865, 0x7d9e, 0x1896, 0x7d94, 0x18c7, - 0x7d8a, 0x18f9, 0x7d81, 0x192a, 0x7d77, 0x195b, 0x7d6d, 0x198d, - 0x7d63, 0x19be, 0x7d58, 0x19ef, 0x7d4e, 0x1a20, 0x7d44, 0x1a51, - 0x7d3a, 0x1a83, 0x7d2f, 0x1ab4, 0x7d25, 0x1ae5, 0x7d1a, 0x1b16, - 0x7d0f, 0x1b47, 0x7d05, 0x1b78, 0x7cfa, 0x1ba9, 0x7cef, 0x1bda, - 0x7ce4, 0x1c0c, 0x7cd9, 0x1c3d, 0x7cce, 0x1c6e, 0x7cc2, 0x1c9f, - 0x7cb7, 0x1cd0, 0x7cac, 0x1d01, 0x7ca0, 0x1d31, 0x7c95, 0x1d62, - 0x7c89, 0x1d93, 0x7c7e, 0x1dc4, 0x7c72, 0x1df5, 0x7c66, 0x1e26, - 0x7c5a, 0x1e57, 0x7c4e, 0x1e88, 0x7c42, 0x1eb8, 0x7c36, 0x1ee9, - 0x7c2a, 0x1f1a, 0x7c1e, 0x1f4b, 0x7c11, 0x1f7b, 0x7c05, 0x1fac, - 0x7bf9, 0x1fdd, 0x7bec, 0x200e, 0x7bdf, 0x203e, 0x7bd3, 0x206f, - 0x7bc6, 0x209f, 0x7bb9, 0x20d0, 0x7bac, 0x2101, 0x7b9f, 0x2131, - 0x7b92, 0x2162, 0x7b85, 0x2192, 0x7b78, 0x21c3, 0x7b6a, 0x21f3, - 0x7b5d, 0x2224, 0x7b50, 0x2254, 0x7b42, 0x2284, 0x7b34, 0x22b5, - 0x7b27, 0x22e5, 0x7b19, 0x2316, 0x7b0b, 0x2346, 0x7afd, 0x2376, - 0x7aef, 0x23a7, 0x7ae1, 0x23d7, 0x7ad3, 0x2407, 0x7ac5, 0x2437, - 0x7ab7, 0x2467, 0x7aa8, 0x2498, 0x7a9a, 0x24c8, 0x7a8c, 0x24f8, - 0x7a7d, 0x2528, 0x7a6e, 0x2558, 0x7a60, 0x2588, 0x7a51, 0x25b8, - 0x7a42, 0x25e8, 0x7a33, 0x2618, 0x7a24, 0x2648, 0x7a15, 0x2678, - 0x7a06, 0x26a8, 0x79f7, 0x26d8, 0x79e7, 0x2708, 0x79d8, 0x2738, - 0x79c9, 0x2768, 0x79b9, 0x2797, 0x79aa, 0x27c7, 0x799a, 0x27f7, - 0x798a, 0x2827, 0x797a, 0x2856, 0x796a, 0x2886, 0x795b, 0x28b6, - 0x794a, 0x28e5, 0x793a, 0x2915, 0x792a, 0x2945, 0x791a, 0x2974, - 0x790a, 0x29a4, 0x78f9, 0x29d3, 0x78e9, 0x2a03, 0x78d8, 0x2a32, - 0x78c8, 0x2a62, 0x78b7, 0x2a91, 0x78a6, 0x2ac1, 0x7895, 0x2af0, - 0x7885, 0x2b1f, 0x7874, 0x2b4f, 0x7863, 0x2b7e, 0x7851, 0x2bad, - 0x7840, 0x2bdc, 0x782f, 0x2c0c, 0x781e, 0x2c3b, 0x780c, 0x2c6a, - 0x77fb, 0x2c99, 0x77e9, 0x2cc8, 0x77d8, 0x2cf7, 0x77c6, 0x2d26, - 0x77b4, 0x2d55, 0x77a2, 0x2d84, 0x7790, 0x2db3, 0x777e, 0x2de2, - 0x776c, 0x2e11, 0x775a, 0x2e40, 0x7748, 0x2e6f, 0x7736, 0x2e9e, - 0x7723, 0x2ecc, 0x7711, 0x2efb, 0x76fe, 0x2f2a, 0x76ec, 0x2f59, - 0x76d9, 0x2f87, 0x76c7, 0x2fb6, 0x76b4, 0x2fe5, 0x76a1, 0x3013, - 0x768e, 0x3042, 0x767b, 0x3070, 0x7668, 0x309f, 0x7655, 0x30cd, - 0x7642, 0x30fc, 0x762e, 0x312a, 0x761b, 0x3159, 0x7608, 0x3187, - 0x75f4, 0x31b5, 0x75e1, 0x31e4, 0x75cd, 0x3212, 0x75b9, 0x3240, - 0x75a6, 0x326e, 0x7592, 0x329d, 0x757e, 0x32cb, 0x756a, 0x32f9, - 0x7556, 0x3327, 0x7542, 0x3355, 0x752d, 0x3383, 0x7519, 0x33b1, - 0x7505, 0x33df, 0x74f0, 0x340d, 0x74dc, 0x343b, 0x74c7, 0x3469, - 0x74b3, 0x3497, 0x749e, 0x34c4, 0x7489, 0x34f2, 0x7475, 0x3520, - 0x7460, 0x354e, 0x744b, 0x357b, 0x7436, 0x35a9, 0x7421, 0x35d7, - 0x740b, 0x3604, 0x73f6, 0x3632, 0x73e1, 0x365f, 0x73cb, 0x368d, - 0x73b6, 0x36ba, 0x73a0, 0x36e8, 0x738b, 0x3715, 0x7375, 0x3742, - 0x735f, 0x3770, 0x734a, 0x379d, 0x7334, 0x37ca, 0x731e, 0x37f7, - 0x7308, 0x3825, 0x72f2, 0x3852, 0x72dc, 0x387f, 0x72c5, 0x38ac, - 0x72af, 0x38d9, 0x7299, 0x3906, 0x7282, 0x3933, 0x726c, 0x3960, - 0x7255, 0x398d, 0x723f, 0x39ba, 0x7228, 0x39e7, 0x7211, 0x3a13, - 0x71fa, 0x3a40, 0x71e3, 0x3a6d, 0x71cc, 0x3a9a, 0x71b5, 0x3ac6, - 0x719e, 0x3af3, 0x7187, 0x3b20, 0x7170, 0x3b4c, 0x7158, 0x3b79, - 0x7141, 0x3ba5, 0x712a, 0x3bd2, 0x7112, 0x3bfe, 0x70fa, 0x3c2a, - 0x70e3, 0x3c57, 0x70cb, 0x3c83, 0x70b3, 0x3caf, 0x709b, 0x3cdc, - 0x7083, 0x3d08, 0x706b, 0x3d34, 0x7053, 0x3d60, 0x703b, 0x3d8c, - 0x7023, 0x3db8, 0x700b, 0x3de4, 0x6ff2, 0x3e10, 0x6fda, 0x3e3c, - 0x6fc2, 0x3e68, 0x6fa9, 0x3e94, 0x6f90, 0x3ec0, 0x6f78, 0x3eec, - 0x6f5f, 0x3f17, 0x6f46, 0x3f43, 0x6f2d, 0x3f6f, 0x6f14, 0x3f9a, - 0x6efb, 0x3fc6, 0x6ee2, 0x3ff1, 0x6ec9, 0x401d, 0x6eb0, 0x4048, - 0x6e97, 0x4074, 0x6e7d, 0x409f, 0x6e64, 0x40cb, 0x6e4a, 0x40f6, - 0x6e31, 0x4121, 0x6e17, 0x414d, 0x6dfe, 0x4178, 0x6de4, 0x41a3, - 0x6dca, 0x41ce, 0x6db0, 0x41f9, 0x6d96, 0x4224, 0x6d7c, 0x424f, - 0x6d62, 0x427a, 0x6d48, 0x42a5, 0x6d2e, 0x42d0, 0x6d14, 0x42fb, - 0x6cf9, 0x4326, 0x6cdf, 0x4351, 0x6cc4, 0x437b, 0x6caa, 0x43a6, - 0x6c8f, 0x43d1, 0x6c75, 0x43fb, 0x6c5a, 0x4426, 0x6c3f, 0x4450, - 0x6c24, 0x447b, 0x6c09, 0x44a5, 0x6bee, 0x44d0, 0x6bd3, 0x44fa, - 0x6bb8, 0x4524, 0x6b9d, 0x454f, 0x6b82, 0x4579, 0x6b66, 0x45a3, - 0x6b4b, 0x45cd, 0x6b30, 0x45f7, 0x6b14, 0x4621, 0x6af8, 0x464b, - 0x6add, 0x4675, 0x6ac1, 0x469f, 0x6aa5, 0x46c9, 0x6a89, 0x46f3, - 0x6a6e, 0x471d, 0x6a52, 0x4747, 0x6a36, 0x4770, 0x6a1a, 0x479a, - 0x69fd, 0x47c4, 0x69e1, 0x47ed, 0x69c5, 0x4817, 0x69a9, 0x4840, - 0x698c, 0x486a, 0x6970, 0x4893, 0x6953, 0x48bd, 0x6937, 0x48e6, - 0x691a, 0x490f, 0x68fd, 0x4939, 0x68e0, 0x4962, 0x68c4, 0x498b, - 0x68a7, 0x49b4, 0x688a, 0x49dd, 0x686d, 0x4a06, 0x6850, 0x4a2f, - 0x6832, 0x4a58, 0x6815, 0x4a81, 0x67f8, 0x4aaa, 0x67da, 0x4ad3, - 0x67bd, 0x4afb, 0x67a0, 0x4b24, 0x6782, 0x4b4d, 0x6764, 0x4b75, - 0x6747, 0x4b9e, 0x6729, 0x4bc7, 0x670b, 0x4bef, 0x66ed, 0x4c17, - 0x66d0, 0x4c40, 0x66b2, 0x4c68, 0x6693, 0x4c91, 0x6675, 0x4cb9, - 0x6657, 0x4ce1, 0x6639, 0x4d09, 0x661b, 0x4d31, 0x65fc, 0x4d59, - 0x65de, 0x4d81, 0x65c0, 0x4da9, 0x65a1, 0x4dd1, 0x6582, 0x4df9, - 0x6564, 0x4e21, 0x6545, 0x4e49, 0x6526, 0x4e71, 0x6507, 0x4e98, - 0x64e9, 0x4ec0, 0x64ca, 0x4ee8, 0x64ab, 0x4f0f, 0x648b, 0x4f37, - 0x646c, 0x4f5e, 0x644d, 0x4f85, 0x642e, 0x4fad, 0x640f, 0x4fd4, - 0x63ef, 0x4ffb, 0x63d0, 0x5023, 0x63b0, 0x504a, 0x6391, 0x5071, - 0x6371, 0x5098, 0x6351, 0x50bf, 0x6332, 0x50e6, 0x6312, 0x510d, - 0x62f2, 0x5134, 0x62d2, 0x515b, 0x62b2, 0x5181, 0x6292, 0x51a8, - 0x6272, 0x51cf, 0x6252, 0x51f5, 0x6232, 0x521c, 0x6211, 0x5243, - 0x61f1, 0x5269, 0x61d1, 0x5290, 0x61b0, 0x52b6, 0x6190, 0x52dc, - 0x616f, 0x5303, 0x614e, 0x5329, 0x612e, 0x534f, 0x610d, 0x5375, - 0x60ec, 0x539b, 0x60cb, 0x53c1, 0x60aa, 0x53e7, 0x6089, 0x540d, - 0x6068, 0x5433, 0x6047, 0x5459, 0x6026, 0x547f, 0x6005, 0x54a4, - 0x5fe4, 0x54ca, 0x5fc2, 0x54f0, 0x5fa1, 0x5515, 0x5f80, 0x553b, - 0x5f5e, 0x5560, 0x5f3c, 0x5586, 0x5f1b, 0x55ab, 0x5ef9, 0x55d0, - 0x5ed7, 0x55f6, 0x5eb6, 0x561b, 0x5e94, 0x5640, 0x5e72, 0x5665, - 0x5e50, 0x568a, 0x5e2e, 0x56af, 0x5e0c, 0x56d4, 0x5dea, 0x56f9, - 0x5dc8, 0x571e, 0x5da5, 0x5743, 0x5d83, 0x5767, 0x5d61, 0x578c, - 0x5d3e, 0x57b1, 0x5d1c, 0x57d5, 0x5cf9, 0x57fa, 0x5cd7, 0x581e, - 0x5cb4, 0x5843, 0x5c91, 0x5867, 0x5c6f, 0x588c, 0x5c4c, 0x58b0, - 0x5c29, 0x58d4, 0x5c06, 0x58f8, 0x5be3, 0x591c, 0x5bc0, 0x5940, - 0x5b9d, 0x5964, 0x5b7a, 0x5988, 0x5b57, 0x59ac, 0x5b34, 0x59d0, - 0x5b10, 0x59f4, 0x5aed, 0x5a18, 0x5ac9, 0x5a3b, 0x5aa6, 0x5a5f, - 0x5a82, 0x5a82, 0x5a5f, 0x5aa6, 0x5a3b, 0x5ac9, 0x5a18, 0x5aed, - 0x59f4, 0x5b10, 0x59d0, 0x5b34, 0x59ac, 0x5b57, 0x5988, 0x5b7a, - 0x5964, 0x5b9d, 0x5940, 0x5bc0, 0x591c, 0x5be3, 0x58f8, 0x5c06, - 0x58d4, 0x5c29, 0x58b0, 0x5c4c, 0x588c, 0x5c6f, 0x5867, 0x5c91, - 0x5843, 0x5cb4, 0x581e, 0x5cd7, 0x57fa, 0x5cf9, 0x57d5, 0x5d1c, - 0x57b1, 0x5d3e, 0x578c, 0x5d61, 0x5767, 0x5d83, 0x5743, 0x5da5, - 0x571e, 0x5dc8, 0x56f9, 0x5dea, 0x56d4, 0x5e0c, 0x56af, 0x5e2e, - 0x568a, 0x5e50, 0x5665, 0x5e72, 0x5640, 0x5e94, 0x561b, 0x5eb6, - 0x55f6, 0x5ed7, 0x55d0, 0x5ef9, 0x55ab, 0x5f1b, 0x5586, 0x5f3c, - 0x5560, 0x5f5e, 0x553b, 0x5f80, 0x5515, 0x5fa1, 0x54f0, 0x5fc2, - 0x54ca, 0x5fe4, 0x54a4, 0x6005, 0x547f, 0x6026, 0x5459, 0x6047, - 0x5433, 0x6068, 0x540d, 0x6089, 0x53e7, 0x60aa, 0x53c1, 0x60cb, - 0x539b, 0x60ec, 0x5375, 0x610d, 0x534f, 0x612e, 0x5329, 0x614e, - 0x5303, 0x616f, 0x52dc, 0x6190, 0x52b6, 0x61b0, 0x5290, 0x61d1, - 0x5269, 0x61f1, 0x5243, 0x6211, 0x521c, 0x6232, 0x51f5, 0x6252, - 0x51cf, 0x6272, 0x51a8, 0x6292, 0x5181, 0x62b2, 0x515b, 0x62d2, - 0x5134, 0x62f2, 0x510d, 0x6312, 0x50e6, 0x6332, 0x50bf, 0x6351, - 0x5098, 0x6371, 0x5071, 0x6391, 0x504a, 0x63b0, 0x5023, 0x63d0, - 0x4ffb, 0x63ef, 0x4fd4, 0x640f, 0x4fad, 0x642e, 0x4f85, 0x644d, - 0x4f5e, 0x646c, 0x4f37, 0x648b, 0x4f0f, 0x64ab, 0x4ee8, 0x64ca, - 0x4ec0, 0x64e9, 0x4e98, 0x6507, 0x4e71, 0x6526, 0x4e49, 0x6545, - 0x4e21, 0x6564, 0x4df9, 0x6582, 0x4dd1, 0x65a1, 0x4da9, 0x65c0, - 0x4d81, 0x65de, 0x4d59, 0x65fc, 0x4d31, 0x661b, 0x4d09, 0x6639, - 0x4ce1, 0x6657, 0x4cb9, 0x6675, 0x4c91, 0x6693, 0x4c68, 0x66b2, - 0x4c40, 0x66d0, 0x4c17, 0x66ed, 0x4bef, 0x670b, 0x4bc7, 0x6729, - 0x4b9e, 0x6747, 0x4b75, 0x6764, 0x4b4d, 0x6782, 0x4b24, 0x67a0, - 0x4afb, 0x67bd, 0x4ad3, 0x67da, 0x4aaa, 0x67f8, 0x4a81, 0x6815, - 0x4a58, 0x6832, 0x4a2f, 0x6850, 0x4a06, 0x686d, 0x49dd, 0x688a, - 0x49b4, 0x68a7, 0x498b, 0x68c4, 0x4962, 0x68e0, 0x4939, 0x68fd, - 0x490f, 0x691a, 0x48e6, 0x6937, 0x48bd, 0x6953, 0x4893, 0x6970, - 0x486a, 0x698c, 0x4840, 0x69a9, 0x4817, 0x69c5, 0x47ed, 0x69e1, - 0x47c4, 0x69fd, 0x479a, 0x6a1a, 0x4770, 0x6a36, 0x4747, 0x6a52, - 0x471d, 0x6a6e, 0x46f3, 0x6a89, 0x46c9, 0x6aa5, 0x469f, 0x6ac1, - 0x4675, 0x6add, 0x464b, 0x6af8, 0x4621, 0x6b14, 0x45f7, 0x6b30, - 0x45cd, 0x6b4b, 0x45a3, 0x6b66, 0x4579, 0x6b82, 0x454f, 0x6b9d, - 0x4524, 0x6bb8, 0x44fa, 0x6bd3, 0x44d0, 0x6bee, 0x44a5, 0x6c09, - 0x447b, 0x6c24, 0x4450, 0x6c3f, 0x4426, 0x6c5a, 0x43fb, 0x6c75, - 0x43d1, 0x6c8f, 0x43a6, 0x6caa, 0x437b, 0x6cc4, 0x4351, 0x6cdf, - 0x4326, 0x6cf9, 0x42fb, 0x6d14, 0x42d0, 0x6d2e, 0x42a5, 0x6d48, - 0x427a, 0x6d62, 0x424f, 0x6d7c, 0x4224, 0x6d96, 0x41f9, 0x6db0, - 0x41ce, 0x6dca, 0x41a3, 0x6de4, 0x4178, 0x6dfe, 0x414d, 0x6e17, - 0x4121, 0x6e31, 0x40f6, 0x6e4a, 0x40cb, 0x6e64, 0x409f, 0x6e7d, - 0x4074, 0x6e97, 0x4048, 0x6eb0, 0x401d, 0x6ec9, 0x3ff1, 0x6ee2, - 0x3fc6, 0x6efb, 0x3f9a, 0x6f14, 0x3f6f, 0x6f2d, 0x3f43, 0x6f46, - 0x3f17, 0x6f5f, 0x3eec, 0x6f78, 0x3ec0, 0x6f90, 0x3e94, 0x6fa9, - 0x3e68, 0x6fc2, 0x3e3c, 0x6fda, 0x3e10, 0x6ff2, 0x3de4, 0x700b, - 0x3db8, 0x7023, 0x3d8c, 0x703b, 0x3d60, 0x7053, 0x3d34, 0x706b, - 0x3d08, 0x7083, 0x3cdc, 0x709b, 0x3caf, 0x70b3, 0x3c83, 0x70cb, - 0x3c57, 0x70e3, 0x3c2a, 0x70fa, 0x3bfe, 0x7112, 0x3bd2, 0x712a, - 0x3ba5, 0x7141, 0x3b79, 0x7158, 0x3b4c, 0x7170, 0x3b20, 0x7187, - 0x3af3, 0x719e, 0x3ac6, 0x71b5, 0x3a9a, 0x71cc, 0x3a6d, 0x71e3, - 0x3a40, 0x71fa, 0x3a13, 0x7211, 0x39e7, 0x7228, 0x39ba, 0x723f, - 0x398d, 0x7255, 0x3960, 0x726c, 0x3933, 0x7282, 0x3906, 0x7299, - 0x38d9, 0x72af, 0x38ac, 0x72c5, 0x387f, 0x72dc, 0x3852, 0x72f2, - 0x3825, 0x7308, 0x37f7, 0x731e, 0x37ca, 0x7334, 0x379d, 0x734a, - 0x3770, 0x735f, 0x3742, 0x7375, 0x3715, 0x738b, 0x36e8, 0x73a0, - 0x36ba, 0x73b6, 0x368d, 0x73cb, 0x365f, 0x73e1, 0x3632, 0x73f6, - 0x3604, 0x740b, 0x35d7, 0x7421, 0x35a9, 0x7436, 0x357b, 0x744b, - 0x354e, 0x7460, 0x3520, 0x7475, 0x34f2, 0x7489, 0x34c4, 0x749e, - 0x3497, 0x74b3, 0x3469, 0x74c7, 0x343b, 0x74dc, 0x340d, 0x74f0, - 0x33df, 0x7505, 0x33b1, 0x7519, 0x3383, 0x752d, 0x3355, 0x7542, - 0x3327, 0x7556, 0x32f9, 0x756a, 0x32cb, 0x757e, 0x329d, 0x7592, - 0x326e, 0x75a6, 0x3240, 0x75b9, 0x3212, 0x75cd, 0x31e4, 0x75e1, - 0x31b5, 0x75f4, 0x3187, 0x7608, 0x3159, 0x761b, 0x312a, 0x762e, - 0x30fc, 0x7642, 0x30cd, 0x7655, 0x309f, 0x7668, 0x3070, 0x767b, - 0x3042, 0x768e, 0x3013, 0x76a1, 0x2fe5, 0x76b4, 0x2fb6, 0x76c7, - 0x2f87, 0x76d9, 0x2f59, 0x76ec, 0x2f2a, 0x76fe, 0x2efb, 0x7711, - 0x2ecc, 0x7723, 0x2e9e, 0x7736, 0x2e6f, 0x7748, 0x2e40, 0x775a, - 0x2e11, 0x776c, 0x2de2, 0x777e, 0x2db3, 0x7790, 0x2d84, 0x77a2, - 0x2d55, 0x77b4, 0x2d26, 0x77c6, 0x2cf7, 0x77d8, 0x2cc8, 0x77e9, - 0x2c99, 0x77fb, 0x2c6a, 0x780c, 0x2c3b, 0x781e, 0x2c0c, 0x782f, - 0x2bdc, 0x7840, 0x2bad, 0x7851, 0x2b7e, 0x7863, 0x2b4f, 0x7874, - 0x2b1f, 0x7885, 0x2af0, 0x7895, 0x2ac1, 0x78a6, 0x2a91, 0x78b7, - 0x2a62, 0x78c8, 0x2a32, 0x78d8, 0x2a03, 0x78e9, 0x29d3, 0x78f9, - 0x29a4, 0x790a, 0x2974, 0x791a, 0x2945, 0x792a, 0x2915, 0x793a, - 0x28e5, 0x794a, 0x28b6, 0x795b, 0x2886, 0x796a, 0x2856, 0x797a, - 0x2827, 0x798a, 0x27f7, 0x799a, 0x27c7, 0x79aa, 0x2797, 0x79b9, - 0x2768, 0x79c9, 0x2738, 0x79d8, 0x2708, 0x79e7, 0x26d8, 0x79f7, - 0x26a8, 0x7a06, 0x2678, 0x7a15, 0x2648, 0x7a24, 0x2618, 0x7a33, - 0x25e8, 0x7a42, 0x25b8, 0x7a51, 0x2588, 0x7a60, 0x2558, 0x7a6e, - 0x2528, 0x7a7d, 0x24f8, 0x7a8c, 0x24c8, 0x7a9a, 0x2498, 0x7aa8, - 0x2467, 0x7ab7, 0x2437, 0x7ac5, 0x2407, 0x7ad3, 0x23d7, 0x7ae1, - 0x23a7, 0x7aef, 0x2376, 0x7afd, 0x2346, 0x7b0b, 0x2316, 0x7b19, - 0x22e5, 0x7b27, 0x22b5, 0x7b34, 0x2284, 0x7b42, 0x2254, 0x7b50, - 0x2224, 0x7b5d, 0x21f3, 0x7b6a, 0x21c3, 0x7b78, 0x2192, 0x7b85, - 0x2162, 0x7b92, 0x2131, 0x7b9f, 0x2101, 0x7bac, 0x20d0, 0x7bb9, - 0x209f, 0x7bc6, 0x206f, 0x7bd3, 0x203e, 0x7bdf, 0x200e, 0x7bec, - 0x1fdd, 0x7bf9, 0x1fac, 0x7c05, 0x1f7b, 0x7c11, 0x1f4b, 0x7c1e, - 0x1f1a, 0x7c2a, 0x1ee9, 0x7c36, 0x1eb8, 0x7c42, 0x1e88, 0x7c4e, - 0x1e57, 0x7c5a, 0x1e26, 0x7c66, 0x1df5, 0x7c72, 0x1dc4, 0x7c7e, - 0x1d93, 0x7c89, 0x1d62, 0x7c95, 0x1d31, 0x7ca0, 0x1d01, 0x7cac, - 0x1cd0, 0x7cb7, 0x1c9f, 0x7cc2, 0x1c6e, 0x7cce, 0x1c3d, 0x7cd9, - 0x1c0c, 0x7ce4, 0x1bda, 0x7cef, 0x1ba9, 0x7cfa, 0x1b78, 0x7d05, - 0x1b47, 0x7d0f, 0x1b16, 0x7d1a, 0x1ae5, 0x7d25, 0x1ab4, 0x7d2f, - 0x1a83, 0x7d3a, 0x1a51, 0x7d44, 0x1a20, 0x7d4e, 0x19ef, 0x7d58, - 0x19be, 0x7d63, 0x198d, 0x7d6d, 0x195b, 0x7d77, 0x192a, 0x7d81, - 0x18f9, 0x7d8a, 0x18c7, 0x7d94, 0x1896, 0x7d9e, 0x1865, 0x7da7, - 0x1833, 0x7db1, 0x1802, 0x7dba, 0x17d1, 0x7dc4, 0x179f, 0x7dcd, - 0x176e, 0x7dd6, 0x173c, 0x7de0, 0x170b, 0x7de9, 0x16da, 0x7df2, - 0x16a8, 0x7dfb, 0x1677, 0x7e03, 0x1645, 0x7e0c, 0x1614, 0x7e15, - 0x15e2, 0x7e1e, 0x15b1, 0x7e26, 0x157f, 0x7e2f, 0x154d, 0x7e37, - 0x151c, 0x7e3f, 0x14ea, 0x7e48, 0x14b9, 0x7e50, 0x1487, 0x7e58, - 0x1455, 0x7e60, 0x1424, 0x7e68, 0x13f2, 0x7e70, 0x13c1, 0x7e78, - 0x138f, 0x7e7f, 0x135d, 0x7e87, 0x132b, 0x7e8e, 0x12fa, 0x7e96, - 0x12c8, 0x7e9d, 0x1296, 0x7ea5, 0x1265, 0x7eac, 0x1233, 0x7eb3, - 0x1201, 0x7eba, 0x11cf, 0x7ec1, 0x119e, 0x7ec8, 0x116c, 0x7ecf, - 0x113a, 0x7ed6, 0x1108, 0x7edd, 0x10d6, 0x7ee3, 0x10a4, 0x7eea, - 0x1073, 0x7ef0, 0x1041, 0x7ef7, 0x100f, 0x7efd, 0xfdd, 0x7f03, - 0xfab, 0x7f0a, 0xf79, 0x7f10, 0xf47, 0x7f16, 0xf15, 0x7f1c, - 0xee4, 0x7f22, 0xeb2, 0x7f27, 0xe80, 0x7f2d, 0xe4e, 0x7f33, - 0xe1c, 0x7f38, 0xdea, 0x7f3e, 0xdb8, 0x7f43, 0xd86, 0x7f49, - 0xd54, 0x7f4e, 0xd22, 0x7f53, 0xcf0, 0x7f58, 0xcbe, 0x7f5d, - 0xc8c, 0x7f62, 0xc5a, 0x7f67, 0xc28, 0x7f6c, 0xbf6, 0x7f71, - 0xbc4, 0x7f75, 0xb92, 0x7f7a, 0xb60, 0x7f7e, 0xb2d, 0x7f83, - 0xafb, 0x7f87, 0xac9, 0x7f8b, 0xa97, 0x7f90, 0xa65, 0x7f94, - 0xa33, 0x7f98, 0xa01, 0x7f9c, 0x9cf, 0x7fa0, 0x99d, 0x7fa3, - 0x96b, 0x7fa7, 0x938, 0x7fab, 0x906, 0x7fae, 0x8d4, 0x7fb2, - 0x8a2, 0x7fb5, 0x870, 0x7fb9, 0x83e, 0x7fbc, 0x80c, 0x7fbf, - 0x7d9, 0x7fc2, 0x7a7, 0x7fc5, 0x775, 0x7fc8, 0x743, 0x7fcb, - 0x711, 0x7fce, 0x6de, 0x7fd1, 0x6ac, 0x7fd3, 0x67a, 0x7fd6, - 0x648, 0x7fd9, 0x616, 0x7fdb, 0x5e3, 0x7fdd, 0x5b1, 0x7fe0, - 0x57f, 0x7fe2, 0x54d, 0x7fe4, 0x51b, 0x7fe6, 0x4e8, 0x7fe8, - 0x4b6, 0x7fea, 0x484, 0x7fec, 0x452, 0x7fed, 0x41f, 0x7fef, - 0x3ed, 0x7ff1, 0x3bb, 0x7ff2, 0x389, 0x7ff4, 0x356, 0x7ff5, - 0x324, 0x7ff6, 0x2f2, 0x7ff7, 0x2c0, 0x7ff8, 0x28d, 0x7ff9, - 0x25b, 0x7ffa, 0x229, 0x7ffb, 0x1f7, 0x7ffc, 0x1c4, 0x7ffd, - 0x192, 0x7ffe, 0x160, 0x7ffe, 0x12e, 0x7fff, 0xfb, 0x7fff, - 0xc9, 0x7fff, 0x97, 0x7fff, 0x65, 0x7fff, 0x32, 0x7fff, - 0x0, 0x7fff, 0xffce, 0x7fff, 0xff9b, 0x7fff, 0xff69, 0x7fff, - 0xff37, 0x7fff, 0xff05, 0x7fff, 0xfed2, 0x7fff, 0xfea0, 0x7ffe, - 0xfe6e, 0x7ffe, 0xfe3c, 0x7ffd, 0xfe09, 0x7ffc, 0xfdd7, 0x7ffb, - 0xfda5, 0x7ffa, 0xfd73, 0x7ff9, 0xfd40, 0x7ff8, 0xfd0e, 0x7ff7, - 0xfcdc, 0x7ff6, 0xfcaa, 0x7ff5, 0xfc77, 0x7ff4, 0xfc45, 0x7ff2, - 0xfc13, 0x7ff1, 0xfbe1, 0x7fef, 0xfbae, 0x7fed, 0xfb7c, 0x7fec, - 0xfb4a, 0x7fea, 0xfb18, 0x7fe8, 0xfae5, 0x7fe6, 0xfab3, 0x7fe4, - 0xfa81, 0x7fe2, 0xfa4f, 0x7fe0, 0xfa1d, 0x7fdd, 0xf9ea, 0x7fdb, - 0xf9b8, 0x7fd9, 0xf986, 0x7fd6, 0xf954, 0x7fd3, 0xf922, 0x7fd1, - 0xf8ef, 0x7fce, 0xf8bd, 0x7fcb, 0xf88b, 0x7fc8, 0xf859, 0x7fc5, - 0xf827, 0x7fc2, 0xf7f4, 0x7fbf, 0xf7c2, 0x7fbc, 0xf790, 0x7fb9, - 0xf75e, 0x7fb5, 0xf72c, 0x7fb2, 0xf6fa, 0x7fae, 0xf6c8, 0x7fab, - 0xf695, 0x7fa7, 0xf663, 0x7fa3, 0xf631, 0x7fa0, 0xf5ff, 0x7f9c, - 0xf5cd, 0x7f98, 0xf59b, 0x7f94, 0xf569, 0x7f90, 0xf537, 0x7f8b, - 0xf505, 0x7f87, 0xf4d3, 0x7f83, 0xf4a0, 0x7f7e, 0xf46e, 0x7f7a, - 0xf43c, 0x7f75, 0xf40a, 0x7f71, 0xf3d8, 0x7f6c, 0xf3a6, 0x7f67, - 0xf374, 0x7f62, 0xf342, 0x7f5d, 0xf310, 0x7f58, 0xf2de, 0x7f53, - 0xf2ac, 0x7f4e, 0xf27a, 0x7f49, 0xf248, 0x7f43, 0xf216, 0x7f3e, - 0xf1e4, 0x7f38, 0xf1b2, 0x7f33, 0xf180, 0x7f2d, 0xf14e, 0x7f27, - 0xf11c, 0x7f22, 0xf0eb, 0x7f1c, 0xf0b9, 0x7f16, 0xf087, 0x7f10, - 0xf055, 0x7f0a, 0xf023, 0x7f03, 0xeff1, 0x7efd, 0xefbf, 0x7ef7, - 0xef8d, 0x7ef0, 0xef5c, 0x7eea, 0xef2a, 0x7ee3, 0xeef8, 0x7edd, - 0xeec6, 0x7ed6, 0xee94, 0x7ecf, 0xee62, 0x7ec8, 0xee31, 0x7ec1, - 0xedff, 0x7eba, 0xedcd, 0x7eb3, 0xed9b, 0x7eac, 0xed6a, 0x7ea5, - 0xed38, 0x7e9d, 0xed06, 0x7e96, 0xecd5, 0x7e8e, 0xeca3, 0x7e87, - 0xec71, 0x7e7f, 0xec3f, 0x7e78, 0xec0e, 0x7e70, 0xebdc, 0x7e68, - 0xebab, 0x7e60, 0xeb79, 0x7e58, 0xeb47, 0x7e50, 0xeb16, 0x7e48, - 0xeae4, 0x7e3f, 0xeab3, 0x7e37, 0xea81, 0x7e2f, 0xea4f, 0x7e26, - 0xea1e, 0x7e1e, 0xe9ec, 0x7e15, 0xe9bb, 0x7e0c, 0xe989, 0x7e03, - 0xe958, 0x7dfb, 0xe926, 0x7df2, 0xe8f5, 0x7de9, 0xe8c4, 0x7de0, - 0xe892, 0x7dd6, 0xe861, 0x7dcd, 0xe82f, 0x7dc4, 0xe7fe, 0x7dba, - 0xe7cd, 0x7db1, 0xe79b, 0x7da7, 0xe76a, 0x7d9e, 0xe739, 0x7d94, - 0xe707, 0x7d8a, 0xe6d6, 0x7d81, 0xe6a5, 0x7d77, 0xe673, 0x7d6d, - 0xe642, 0x7d63, 0xe611, 0x7d58, 0xe5e0, 0x7d4e, 0xe5af, 0x7d44, - 0xe57d, 0x7d3a, 0xe54c, 0x7d2f, 0xe51b, 0x7d25, 0xe4ea, 0x7d1a, - 0xe4b9, 0x7d0f, 0xe488, 0x7d05, 0xe457, 0x7cfa, 0xe426, 0x7cef, - 0xe3f4, 0x7ce4, 0xe3c3, 0x7cd9, 0xe392, 0x7cce, 0xe361, 0x7cc2, - 0xe330, 0x7cb7, 0xe2ff, 0x7cac, 0xe2cf, 0x7ca0, 0xe29e, 0x7c95, - 0xe26d, 0x7c89, 0xe23c, 0x7c7e, 0xe20b, 0x7c72, 0xe1da, 0x7c66, - 0xe1a9, 0x7c5a, 0xe178, 0x7c4e, 0xe148, 0x7c42, 0xe117, 0x7c36, - 0xe0e6, 0x7c2a, 0xe0b5, 0x7c1e, 0xe085, 0x7c11, 0xe054, 0x7c05, - 0xe023, 0x7bf9, 0xdff2, 0x7bec, 0xdfc2, 0x7bdf, 0xdf91, 0x7bd3, - 0xdf61, 0x7bc6, 0xdf30, 0x7bb9, 0xdeff, 0x7bac, 0xdecf, 0x7b9f, - 0xde9e, 0x7b92, 0xde6e, 0x7b85, 0xde3d, 0x7b78, 0xde0d, 0x7b6a, - 0xdddc, 0x7b5d, 0xddac, 0x7b50, 0xdd7c, 0x7b42, 0xdd4b, 0x7b34, - 0xdd1b, 0x7b27, 0xdcea, 0x7b19, 0xdcba, 0x7b0b, 0xdc8a, 0x7afd, - 0xdc59, 0x7aef, 0xdc29, 0x7ae1, 0xdbf9, 0x7ad3, 0xdbc9, 0x7ac5, - 0xdb99, 0x7ab7, 0xdb68, 0x7aa8, 0xdb38, 0x7a9a, 0xdb08, 0x7a8c, - 0xdad8, 0x7a7d, 0xdaa8, 0x7a6e, 0xda78, 0x7a60, 0xda48, 0x7a51, - 0xda18, 0x7a42, 0xd9e8, 0x7a33, 0xd9b8, 0x7a24, 0xd988, 0x7a15, - 0xd958, 0x7a06, 0xd928, 0x79f7, 0xd8f8, 0x79e7, 0xd8c8, 0x79d8, - 0xd898, 0x79c9, 0xd869, 0x79b9, 0xd839, 0x79aa, 0xd809, 0x799a, - 0xd7d9, 0x798a, 0xd7aa, 0x797a, 0xd77a, 0x796a, 0xd74a, 0x795b, - 0xd71b, 0x794a, 0xd6eb, 0x793a, 0xd6bb, 0x792a, 0xd68c, 0x791a, - 0xd65c, 0x790a, 0xd62d, 0x78f9, 0xd5fd, 0x78e9, 0xd5ce, 0x78d8, - 0xd59e, 0x78c8, 0xd56f, 0x78b7, 0xd53f, 0x78a6, 0xd510, 0x7895, - 0xd4e1, 0x7885, 0xd4b1, 0x7874, 0xd482, 0x7863, 0xd453, 0x7851, - 0xd424, 0x7840, 0xd3f4, 0x782f, 0xd3c5, 0x781e, 0xd396, 0x780c, - 0xd367, 0x77fb, 0xd338, 0x77e9, 0xd309, 0x77d8, 0xd2da, 0x77c6, - 0xd2ab, 0x77b4, 0xd27c, 0x77a2, 0xd24d, 0x7790, 0xd21e, 0x777e, - 0xd1ef, 0x776c, 0xd1c0, 0x775a, 0xd191, 0x7748, 0xd162, 0x7736, - 0xd134, 0x7723, 0xd105, 0x7711, 0xd0d6, 0x76fe, 0xd0a7, 0x76ec, - 0xd079, 0x76d9, 0xd04a, 0x76c7, 0xd01b, 0x76b4, 0xcfed, 0x76a1, - 0xcfbe, 0x768e, 0xcf90, 0x767b, 0xcf61, 0x7668, 0xcf33, 0x7655, - 0xcf04, 0x7642, 0xced6, 0x762e, 0xcea7, 0x761b, 0xce79, 0x7608, - 0xce4b, 0x75f4, 0xce1c, 0x75e1, 0xcdee, 0x75cd, 0xcdc0, 0x75b9, - 0xcd92, 0x75a6, 0xcd63, 0x7592, 0xcd35, 0x757e, 0xcd07, 0x756a, - 0xccd9, 0x7556, 0xccab, 0x7542, 0xcc7d, 0x752d, 0xcc4f, 0x7519, - 0xcc21, 0x7505, 0xcbf3, 0x74f0, 0xcbc5, 0x74dc, 0xcb97, 0x74c7, - 0xcb69, 0x74b3, 0xcb3c, 0x749e, 0xcb0e, 0x7489, 0xcae0, 0x7475, - 0xcab2, 0x7460, 0xca85, 0x744b, 0xca57, 0x7436, 0xca29, 0x7421, - 0xc9fc, 0x740b, 0xc9ce, 0x73f6, 0xc9a1, 0x73e1, 0xc973, 0x73cb, - 0xc946, 0x73b6, 0xc918, 0x73a0, 0xc8eb, 0x738b, 0xc8be, 0x7375, - 0xc890, 0x735f, 0xc863, 0x734a, 0xc836, 0x7334, 0xc809, 0x731e, - 0xc7db, 0x7308, 0xc7ae, 0x72f2, 0xc781, 0x72dc, 0xc754, 0x72c5, - 0xc727, 0x72af, 0xc6fa, 0x7299, 0xc6cd, 0x7282, 0xc6a0, 0x726c, - 0xc673, 0x7255, 0xc646, 0x723f, 0xc619, 0x7228, 0xc5ed, 0x7211, - 0xc5c0, 0x71fa, 0xc593, 0x71e3, 0xc566, 0x71cc, 0xc53a, 0x71b5, - 0xc50d, 0x719e, 0xc4e0, 0x7187, 0xc4b4, 0x7170, 0xc487, 0x7158, - 0xc45b, 0x7141, 0xc42e, 0x712a, 0xc402, 0x7112, 0xc3d6, 0x70fa, - 0xc3a9, 0x70e3, 0xc37d, 0x70cb, 0xc351, 0x70b3, 0xc324, 0x709b, - 0xc2f8, 0x7083, 0xc2cc, 0x706b, 0xc2a0, 0x7053, 0xc274, 0x703b, - 0xc248, 0x7023, 0xc21c, 0x700b, 0xc1f0, 0x6ff2, 0xc1c4, 0x6fda, - 0xc198, 0x6fc2, 0xc16c, 0x6fa9, 0xc140, 0x6f90, 0xc114, 0x6f78, - 0xc0e9, 0x6f5f, 0xc0bd, 0x6f46, 0xc091, 0x6f2d, 0xc066, 0x6f14, - 0xc03a, 0x6efb, 0xc00f, 0x6ee2, 0xbfe3, 0x6ec9, 0xbfb8, 0x6eb0, - 0xbf8c, 0x6e97, 0xbf61, 0x6e7d, 0xbf35, 0x6e64, 0xbf0a, 0x6e4a, - 0xbedf, 0x6e31, 0xbeb3, 0x6e17, 0xbe88, 0x6dfe, 0xbe5d, 0x6de4, - 0xbe32, 0x6dca, 0xbe07, 0x6db0, 0xbddc, 0x6d96, 0xbdb1, 0x6d7c, - 0xbd86, 0x6d62, 0xbd5b, 0x6d48, 0xbd30, 0x6d2e, 0xbd05, 0x6d14, - 0xbcda, 0x6cf9, 0xbcaf, 0x6cdf, 0xbc85, 0x6cc4, 0xbc5a, 0x6caa, - 0xbc2f, 0x6c8f, 0xbc05, 0x6c75, 0xbbda, 0x6c5a, 0xbbb0, 0x6c3f, - 0xbb85, 0x6c24, 0xbb5b, 0x6c09, 0xbb30, 0x6bee, 0xbb06, 0x6bd3, - 0xbadc, 0x6bb8, 0xbab1, 0x6b9d, 0xba87, 0x6b82, 0xba5d, 0x6b66, - 0xba33, 0x6b4b, 0xba09, 0x6b30, 0xb9df, 0x6b14, 0xb9b5, 0x6af8, - 0xb98b, 0x6add, 0xb961, 0x6ac1, 0xb937, 0x6aa5, 0xb90d, 0x6a89, - 0xb8e3, 0x6a6e, 0xb8b9, 0x6a52, 0xb890, 0x6a36, 0xb866, 0x6a1a, - 0xb83c, 0x69fd, 0xb813, 0x69e1, 0xb7e9, 0x69c5, 0xb7c0, 0x69a9, - 0xb796, 0x698c, 0xb76d, 0x6970, 0xb743, 0x6953, 0xb71a, 0x6937, - 0xb6f1, 0x691a, 0xb6c7, 0x68fd, 0xb69e, 0x68e0, 0xb675, 0x68c4, - 0xb64c, 0x68a7, 0xb623, 0x688a, 0xb5fa, 0x686d, 0xb5d1, 0x6850, - 0xb5a8, 0x6832, 0xb57f, 0x6815, 0xb556, 0x67f8, 0xb52d, 0x67da, - 0xb505, 0x67bd, 0xb4dc, 0x67a0, 0xb4b3, 0x6782, 0xb48b, 0x6764, - 0xb462, 0x6747, 0xb439, 0x6729, 0xb411, 0x670b, 0xb3e9, 0x66ed, - 0xb3c0, 0x66d0, 0xb398, 0x66b2, 0xb36f, 0x6693, 0xb347, 0x6675, - 0xb31f, 0x6657, 0xb2f7, 0x6639, 0xb2cf, 0x661b, 0xb2a7, 0x65fc, - 0xb27f, 0x65de, 0xb257, 0x65c0, 0xb22f, 0x65a1, 0xb207, 0x6582, - 0xb1df, 0x6564, 0xb1b7, 0x6545, 0xb18f, 0x6526, 0xb168, 0x6507, - 0xb140, 0x64e9, 0xb118, 0x64ca, 0xb0f1, 0x64ab, 0xb0c9, 0x648b, - 0xb0a2, 0x646c, 0xb07b, 0x644d, 0xb053, 0x642e, 0xb02c, 0x640f, - 0xb005, 0x63ef, 0xafdd, 0x63d0, 0xafb6, 0x63b0, 0xaf8f, 0x6391, - 0xaf68, 0x6371, 0xaf41, 0x6351, 0xaf1a, 0x6332, 0xaef3, 0x6312, - 0xaecc, 0x62f2, 0xaea5, 0x62d2, 0xae7f, 0x62b2, 0xae58, 0x6292, - 0xae31, 0x6272, 0xae0b, 0x6252, 0xade4, 0x6232, 0xadbd, 0x6211, - 0xad97, 0x61f1, 0xad70, 0x61d1, 0xad4a, 0x61b0, 0xad24, 0x6190, - 0xacfd, 0x616f, 0xacd7, 0x614e, 0xacb1, 0x612e, 0xac8b, 0x610d, - 0xac65, 0x60ec, 0xac3f, 0x60cb, 0xac19, 0x60aa, 0xabf3, 0x6089, - 0xabcd, 0x6068, 0xaba7, 0x6047, 0xab81, 0x6026, 0xab5c, 0x6005, - 0xab36, 0x5fe4, 0xab10, 0x5fc2, 0xaaeb, 0x5fa1, 0xaac5, 0x5f80, - 0xaaa0, 0x5f5e, 0xaa7a, 0x5f3c, 0xaa55, 0x5f1b, 0xaa30, 0x5ef9, - 0xaa0a, 0x5ed7, 0xa9e5, 0x5eb6, 0xa9c0, 0x5e94, 0xa99b, 0x5e72, - 0xa976, 0x5e50, 0xa951, 0x5e2e, 0xa92c, 0x5e0c, 0xa907, 0x5dea, - 0xa8e2, 0x5dc8, 0xa8bd, 0x5da5, 0xa899, 0x5d83, 0xa874, 0x5d61, - 0xa84f, 0x5d3e, 0xa82b, 0x5d1c, 0xa806, 0x5cf9, 0xa7e2, 0x5cd7, - 0xa7bd, 0x5cb4, 0xa799, 0x5c91, 0xa774, 0x5c6f, 0xa750, 0x5c4c, - 0xa72c, 0x5c29, 0xa708, 0x5c06, 0xa6e4, 0x5be3, 0xa6c0, 0x5bc0, - 0xa69c, 0x5b9d, 0xa678, 0x5b7a, 0xa654, 0x5b57, 0xa630, 0x5b34, - 0xa60c, 0x5b10, 0xa5e8, 0x5aed, 0xa5c5, 0x5ac9, 0xa5a1, 0x5aa6, - 0xa57e, 0x5a82, 0xa55a, 0x5a5f, 0xa537, 0x5a3b, 0xa513, 0x5a18, - 0xa4f0, 0x59f4, 0xa4cc, 0x59d0, 0xa4a9, 0x59ac, 0xa486, 0x5988, - 0xa463, 0x5964, 0xa440, 0x5940, 0xa41d, 0x591c, 0xa3fa, 0x58f8, - 0xa3d7, 0x58d4, 0xa3b4, 0x58b0, 0xa391, 0x588c, 0xa36f, 0x5867, - 0xa34c, 0x5843, 0xa329, 0x581e, 0xa307, 0x57fa, 0xa2e4, 0x57d5, - 0xa2c2, 0x57b1, 0xa29f, 0x578c, 0xa27d, 0x5767, 0xa25b, 0x5743, - 0xa238, 0x571e, 0xa216, 0x56f9, 0xa1f4, 0x56d4, 0xa1d2, 0x56af, - 0xa1b0, 0x568a, 0xa18e, 0x5665, 0xa16c, 0x5640, 0xa14a, 0x561b, - 0xa129, 0x55f6, 0xa107, 0x55d0, 0xa0e5, 0x55ab, 0xa0c4, 0x5586, - 0xa0a2, 0x5560, 0xa080, 0x553b, 0xa05f, 0x5515, 0xa03e, 0x54f0, - 0xa01c, 0x54ca, 0x9ffb, 0x54a4, 0x9fda, 0x547f, 0x9fb9, 0x5459, - 0x9f98, 0x5433, 0x9f77, 0x540d, 0x9f56, 0x53e7, 0x9f35, 0x53c1, - 0x9f14, 0x539b, 0x9ef3, 0x5375, 0x9ed2, 0x534f, 0x9eb2, 0x5329, - 0x9e91, 0x5303, 0x9e70, 0x52dc, 0x9e50, 0x52b6, 0x9e2f, 0x5290, - 0x9e0f, 0x5269, 0x9def, 0x5243, 0x9dce, 0x521c, 0x9dae, 0x51f5, - 0x9d8e, 0x51cf, 0x9d6e, 0x51a8, 0x9d4e, 0x5181, 0x9d2e, 0x515b, - 0x9d0e, 0x5134, 0x9cee, 0x510d, 0x9cce, 0x50e6, 0x9caf, 0x50bf, - 0x9c8f, 0x5098, 0x9c6f, 0x5071, 0x9c50, 0x504a, 0x9c30, 0x5023, - 0x9c11, 0x4ffb, 0x9bf1, 0x4fd4, 0x9bd2, 0x4fad, 0x9bb3, 0x4f85, - 0x9b94, 0x4f5e, 0x9b75, 0x4f37, 0x9b55, 0x4f0f, 0x9b36, 0x4ee8, - 0x9b17, 0x4ec0, 0x9af9, 0x4e98, 0x9ada, 0x4e71, 0x9abb, 0x4e49, - 0x9a9c, 0x4e21, 0x9a7e, 0x4df9, 0x9a5f, 0x4dd1, 0x9a40, 0x4da9, - 0x9a22, 0x4d81, 0x9a04, 0x4d59, 0x99e5, 0x4d31, 0x99c7, 0x4d09, - 0x99a9, 0x4ce1, 0x998b, 0x4cb9, 0x996d, 0x4c91, 0x994e, 0x4c68, - 0x9930, 0x4c40, 0x9913, 0x4c17, 0x98f5, 0x4bef, 0x98d7, 0x4bc7, - 0x98b9, 0x4b9e, 0x989c, 0x4b75, 0x987e, 0x4b4d, 0x9860, 0x4b24, - 0x9843, 0x4afb, 0x9826, 0x4ad3, 0x9808, 0x4aaa, 0x97eb, 0x4a81, - 0x97ce, 0x4a58, 0x97b0, 0x4a2f, 0x9793, 0x4a06, 0x9776, 0x49dd, - 0x9759, 0x49b4, 0x973c, 0x498b, 0x9720, 0x4962, 0x9703, 0x4939, - 0x96e6, 0x490f, 0x96c9, 0x48e6, 0x96ad, 0x48bd, 0x9690, 0x4893, - 0x9674, 0x486a, 0x9657, 0x4840, 0x963b, 0x4817, 0x961f, 0x47ed, - 0x9603, 0x47c4, 0x95e6, 0x479a, 0x95ca, 0x4770, 0x95ae, 0x4747, - 0x9592, 0x471d, 0x9577, 0x46f3, 0x955b, 0x46c9, 0x953f, 0x469f, - 0x9523, 0x4675, 0x9508, 0x464b, 0x94ec, 0x4621, 0x94d0, 0x45f7, - 0x94b5, 0x45cd, 0x949a, 0x45a3, 0x947e, 0x4579, 0x9463, 0x454f, - 0x9448, 0x4524, 0x942d, 0x44fa, 0x9412, 0x44d0, 0x93f7, 0x44a5, - 0x93dc, 0x447b, 0x93c1, 0x4450, 0x93a6, 0x4426, 0x938b, 0x43fb, - 0x9371, 0x43d1, 0x9356, 0x43a6, 0x933c, 0x437b, 0x9321, 0x4351, - 0x9307, 0x4326, 0x92ec, 0x42fb, 0x92d2, 0x42d0, 0x92b8, 0x42a5, - 0x929e, 0x427a, 0x9284, 0x424f, 0x926a, 0x4224, 0x9250, 0x41f9, - 0x9236, 0x41ce, 0x921c, 0x41a3, 0x9202, 0x4178, 0x91e9, 0x414d, - 0x91cf, 0x4121, 0x91b6, 0x40f6, 0x919c, 0x40cb, 0x9183, 0x409f, - 0x9169, 0x4074, 0x9150, 0x4048, 0x9137, 0x401d, 0x911e, 0x3ff1, - 0x9105, 0x3fc6, 0x90ec, 0x3f9a, 0x90d3, 0x3f6f, 0x90ba, 0x3f43, - 0x90a1, 0x3f17, 0x9088, 0x3eec, 0x9070, 0x3ec0, 0x9057, 0x3e94, - 0x903e, 0x3e68, 0x9026, 0x3e3c, 0x900e, 0x3e10, 0x8ff5, 0x3de4, - 0x8fdd, 0x3db8, 0x8fc5, 0x3d8c, 0x8fad, 0x3d60, 0x8f95, 0x3d34, - 0x8f7d, 0x3d08, 0x8f65, 0x3cdc, 0x8f4d, 0x3caf, 0x8f35, 0x3c83, - 0x8f1d, 0x3c57, 0x8f06, 0x3c2a, 0x8eee, 0x3bfe, 0x8ed6, 0x3bd2, - 0x8ebf, 0x3ba5, 0x8ea8, 0x3b79, 0x8e90, 0x3b4c, 0x8e79, 0x3b20, - 0x8e62, 0x3af3, 0x8e4b, 0x3ac6, 0x8e34, 0x3a9a, 0x8e1d, 0x3a6d, - 0x8e06, 0x3a40, 0x8def, 0x3a13, 0x8dd8, 0x39e7, 0x8dc1, 0x39ba, - 0x8dab, 0x398d, 0x8d94, 0x3960, 0x8d7e, 0x3933, 0x8d67, 0x3906, - 0x8d51, 0x38d9, 0x8d3b, 0x38ac, 0x8d24, 0x387f, 0x8d0e, 0x3852, - 0x8cf8, 0x3825, 0x8ce2, 0x37f7, 0x8ccc, 0x37ca, 0x8cb6, 0x379d, - 0x8ca1, 0x3770, 0x8c8b, 0x3742, 0x8c75, 0x3715, 0x8c60, 0x36e8, - 0x8c4a, 0x36ba, 0x8c35, 0x368d, 0x8c1f, 0x365f, 0x8c0a, 0x3632, - 0x8bf5, 0x3604, 0x8bdf, 0x35d7, 0x8bca, 0x35a9, 0x8bb5, 0x357b, - 0x8ba0, 0x354e, 0x8b8b, 0x3520, 0x8b77, 0x34f2, 0x8b62, 0x34c4, - 0x8b4d, 0x3497, 0x8b39, 0x3469, 0x8b24, 0x343b, 0x8b10, 0x340d, - 0x8afb, 0x33df, 0x8ae7, 0x33b1, 0x8ad3, 0x3383, 0x8abe, 0x3355, - 0x8aaa, 0x3327, 0x8a96, 0x32f9, 0x8a82, 0x32cb, 0x8a6e, 0x329d, - 0x8a5a, 0x326e, 0x8a47, 0x3240, 0x8a33, 0x3212, 0x8a1f, 0x31e4, - 0x8a0c, 0x31b5, 0x89f8, 0x3187, 0x89e5, 0x3159, 0x89d2, 0x312a, - 0x89be, 0x30fc, 0x89ab, 0x30cd, 0x8998, 0x309f, 0x8985, 0x3070, - 0x8972, 0x3042, 0x895f, 0x3013, 0x894c, 0x2fe5, 0x8939, 0x2fb6, - 0x8927, 0x2f87, 0x8914, 0x2f59, 0x8902, 0x2f2a, 0x88ef, 0x2efb, - 0x88dd, 0x2ecc, 0x88ca, 0x2e9e, 0x88b8, 0x2e6f, 0x88a6, 0x2e40, - 0x8894, 0x2e11, 0x8882, 0x2de2, 0x8870, 0x2db3, 0x885e, 0x2d84, - 0x884c, 0x2d55, 0x883a, 0x2d26, 0x8828, 0x2cf7, 0x8817, 0x2cc8, - 0x8805, 0x2c99, 0x87f4, 0x2c6a, 0x87e2, 0x2c3b, 0x87d1, 0x2c0c, - 0x87c0, 0x2bdc, 0x87af, 0x2bad, 0x879d, 0x2b7e, 0x878c, 0x2b4f, - 0x877b, 0x2b1f, 0x876b, 0x2af0, 0x875a, 0x2ac1, 0x8749, 0x2a91, - 0x8738, 0x2a62, 0x8728, 0x2a32, 0x8717, 0x2a03, 0x8707, 0x29d3, - 0x86f6, 0x29a4, 0x86e6, 0x2974, 0x86d6, 0x2945, 0x86c6, 0x2915, - 0x86b6, 0x28e5, 0x86a5, 0x28b6, 0x8696, 0x2886, 0x8686, 0x2856, - 0x8676, 0x2827, 0x8666, 0x27f7, 0x8656, 0x27c7, 0x8647, 0x2797, - 0x8637, 0x2768, 0x8628, 0x2738, 0x8619, 0x2708, 0x8609, 0x26d8, - 0x85fa, 0x26a8, 0x85eb, 0x2678, 0x85dc, 0x2648, 0x85cd, 0x2618, - 0x85be, 0x25e8, 0x85af, 0x25b8, 0x85a0, 0x2588, 0x8592, 0x2558, - 0x8583, 0x2528, 0x8574, 0x24f8, 0x8566, 0x24c8, 0x8558, 0x2498, - 0x8549, 0x2467, 0x853b, 0x2437, 0x852d, 0x2407, 0x851f, 0x23d7, - 0x8511, 0x23a7, 0x8503, 0x2376, 0x84f5, 0x2346, 0x84e7, 0x2316, - 0x84d9, 0x22e5, 0x84cc, 0x22b5, 0x84be, 0x2284, 0x84b0, 0x2254, - 0x84a3, 0x2224, 0x8496, 0x21f3, 0x8488, 0x21c3, 0x847b, 0x2192, - 0x846e, 0x2162, 0x8461, 0x2131, 0x8454, 0x2101, 0x8447, 0x20d0, - 0x843a, 0x209f, 0x842d, 0x206f, 0x8421, 0x203e, 0x8414, 0x200e, - 0x8407, 0x1fdd, 0x83fb, 0x1fac, 0x83ef, 0x1f7b, 0x83e2, 0x1f4b, - 0x83d6, 0x1f1a, 0x83ca, 0x1ee9, 0x83be, 0x1eb8, 0x83b2, 0x1e88, - 0x83a6, 0x1e57, 0x839a, 0x1e26, 0x838e, 0x1df5, 0x8382, 0x1dc4, - 0x8377, 0x1d93, 0x836b, 0x1d62, 0x8360, 0x1d31, 0x8354, 0x1d01, - 0x8349, 0x1cd0, 0x833e, 0x1c9f, 0x8332, 0x1c6e, 0x8327, 0x1c3d, - 0x831c, 0x1c0c, 0x8311, 0x1bda, 0x8306, 0x1ba9, 0x82fb, 0x1b78, - 0x82f1, 0x1b47, 0x82e6, 0x1b16, 0x82db, 0x1ae5, 0x82d1, 0x1ab4, - 0x82c6, 0x1a83, 0x82bc, 0x1a51, 0x82b2, 0x1a20, 0x82a8, 0x19ef, - 0x829d, 0x19be, 0x8293, 0x198d, 0x8289, 0x195b, 0x827f, 0x192a, - 0x8276, 0x18f9, 0x826c, 0x18c7, 0x8262, 0x1896, 0x8259, 0x1865, - 0x824f, 0x1833, 0x8246, 0x1802, 0x823c, 0x17d1, 0x8233, 0x179f, - 0x822a, 0x176e, 0x8220, 0x173c, 0x8217, 0x170b, 0x820e, 0x16da, - 0x8205, 0x16a8, 0x81fd, 0x1677, 0x81f4, 0x1645, 0x81eb, 0x1614, - 0x81e2, 0x15e2, 0x81da, 0x15b1, 0x81d1, 0x157f, 0x81c9, 0x154d, - 0x81c1, 0x151c, 0x81b8, 0x14ea, 0x81b0, 0x14b9, 0x81a8, 0x1487, - 0x81a0, 0x1455, 0x8198, 0x1424, 0x8190, 0x13f2, 0x8188, 0x13c1, - 0x8181, 0x138f, 0x8179, 0x135d, 0x8172, 0x132b, 0x816a, 0x12fa, - 0x8163, 0x12c8, 0x815b, 0x1296, 0x8154, 0x1265, 0x814d, 0x1233, - 0x8146, 0x1201, 0x813f, 0x11cf, 0x8138, 0x119e, 0x8131, 0x116c, - 0x812a, 0x113a, 0x8123, 0x1108, 0x811d, 0x10d6, 0x8116, 0x10a4, - 0x8110, 0x1073, 0x8109, 0x1041, 0x8103, 0x100f, 0x80fd, 0xfdd, - 0x80f6, 0xfab, 0x80f0, 0xf79, 0x80ea, 0xf47, 0x80e4, 0xf15, - 0x80de, 0xee4, 0x80d9, 0xeb2, 0x80d3, 0xe80, 0x80cd, 0xe4e, - 0x80c8, 0xe1c, 0x80c2, 0xdea, 0x80bd, 0xdb8, 0x80b7, 0xd86, - 0x80b2, 0xd54, 0x80ad, 0xd22, 0x80a8, 0xcf0, 0x80a3, 0xcbe, - 0x809e, 0xc8c, 0x8099, 0xc5a, 0x8094, 0xc28, 0x808f, 0xbf6, - 0x808b, 0xbc4, 0x8086, 0xb92, 0x8082, 0xb60, 0x807d, 0xb2d, - 0x8079, 0xafb, 0x8075, 0xac9, 0x8070, 0xa97, 0x806c, 0xa65, - 0x8068, 0xa33, 0x8064, 0xa01, 0x8060, 0x9cf, 0x805d, 0x99d, - 0x8059, 0x96b, 0x8055, 0x938, 0x8052, 0x906, 0x804e, 0x8d4, - 0x804b, 0x8a2, 0x8047, 0x870, 0x8044, 0x83e, 0x8041, 0x80c, - 0x803e, 0x7d9, 0x803b, 0x7a7, 0x8038, 0x775, 0x8035, 0x743, - 0x8032, 0x711, 0x802f, 0x6de, 0x802d, 0x6ac, 0x802a, 0x67a, - 0x8027, 0x648, 0x8025, 0x616, 0x8023, 0x5e3, 0x8020, 0x5b1, - 0x801e, 0x57f, 0x801c, 0x54d, 0x801a, 0x51b, 0x8018, 0x4e8, - 0x8016, 0x4b6, 0x8014, 0x484, 0x8013, 0x452, 0x8011, 0x41f, - 0x800f, 0x3ed, 0x800e, 0x3bb, 0x800c, 0x389, 0x800b, 0x356, - 0x800a, 0x324, 0x8009, 0x2f2, 0x8008, 0x2c0, 0x8007, 0x28d, - 0x8006, 0x25b, 0x8005, 0x229, 0x8004, 0x1f7, 0x8003, 0x1c4, - 0x8002, 0x192, 0x8002, 0x160, 0x8001, 0x12e, 0x8001, 0xfb, - 0x8001, 0xc9, 0x8000, 0x97, 0x8000, 0x65, 0x8000, 0x32, - 0x8000, 0x0, 0x8000, 0xffce, 0x8000, 0xff9b, 0x8000, 0xff69, - 0x8001, 0xff37, 0x8001, 0xff05, 0x8001, 0xfed2, 0x8002, 0xfea0, - 0x8002, 0xfe6e, 0x8003, 0xfe3c, 0x8004, 0xfe09, 0x8005, 0xfdd7, - 0x8006, 0xfda5, 0x8007, 0xfd73, 0x8008, 0xfd40, 0x8009, 0xfd0e, - 0x800a, 0xfcdc, 0x800b, 0xfcaa, 0x800c, 0xfc77, 0x800e, 0xfc45, - 0x800f, 0xfc13, 0x8011, 0xfbe1, 0x8013, 0xfbae, 0x8014, 0xfb7c, - 0x8016, 0xfb4a, 0x8018, 0xfb18, 0x801a, 0xfae5, 0x801c, 0xfab3, - 0x801e, 0xfa81, 0x8020, 0xfa4f, 0x8023, 0xfa1d, 0x8025, 0xf9ea, - 0x8027, 0xf9b8, 0x802a, 0xf986, 0x802d, 0xf954, 0x802f, 0xf922, - 0x8032, 0xf8ef, 0x8035, 0xf8bd, 0x8038, 0xf88b, 0x803b, 0xf859, - 0x803e, 0xf827, 0x8041, 0xf7f4, 0x8044, 0xf7c2, 0x8047, 0xf790, - 0x804b, 0xf75e, 0x804e, 0xf72c, 0x8052, 0xf6fa, 0x8055, 0xf6c8, - 0x8059, 0xf695, 0x805d, 0xf663, 0x8060, 0xf631, 0x8064, 0xf5ff, - 0x8068, 0xf5cd, 0x806c, 0xf59b, 0x8070, 0xf569, 0x8075, 0xf537, - 0x8079, 0xf505, 0x807d, 0xf4d3, 0x8082, 0xf4a0, 0x8086, 0xf46e, - 0x808b, 0xf43c, 0x808f, 0xf40a, 0x8094, 0xf3d8, 0x8099, 0xf3a6, - 0x809e, 0xf374, 0x80a3, 0xf342, 0x80a8, 0xf310, 0x80ad, 0xf2de, - 0x80b2, 0xf2ac, 0x80b7, 0xf27a, 0x80bd, 0xf248, 0x80c2, 0xf216, - 0x80c8, 0xf1e4, 0x80cd, 0xf1b2, 0x80d3, 0xf180, 0x80d9, 0xf14e, - 0x80de, 0xf11c, 0x80e4, 0xf0eb, 0x80ea, 0xf0b9, 0x80f0, 0xf087, - 0x80f6, 0xf055, 0x80fd, 0xf023, 0x8103, 0xeff1, 0x8109, 0xefbf, - 0x8110, 0xef8d, 0x8116, 0xef5c, 0x811d, 0xef2a, 0x8123, 0xeef8, - 0x812a, 0xeec6, 0x8131, 0xee94, 0x8138, 0xee62, 0x813f, 0xee31, - 0x8146, 0xedff, 0x814d, 0xedcd, 0x8154, 0xed9b, 0x815b, 0xed6a, - 0x8163, 0xed38, 0x816a, 0xed06, 0x8172, 0xecd5, 0x8179, 0xeca3, - 0x8181, 0xec71, 0x8188, 0xec3f, 0x8190, 0xec0e, 0x8198, 0xebdc, - 0x81a0, 0xebab, 0x81a8, 0xeb79, 0x81b0, 0xeb47, 0x81b8, 0xeb16, - 0x81c1, 0xeae4, 0x81c9, 0xeab3, 0x81d1, 0xea81, 0x81da, 0xea4f, - 0x81e2, 0xea1e, 0x81eb, 0xe9ec, 0x81f4, 0xe9bb, 0x81fd, 0xe989, - 0x8205, 0xe958, 0x820e, 0xe926, 0x8217, 0xe8f5, 0x8220, 0xe8c4, - 0x822a, 0xe892, 0x8233, 0xe861, 0x823c, 0xe82f, 0x8246, 0xe7fe, - 0x824f, 0xe7cd, 0x8259, 0xe79b, 0x8262, 0xe76a, 0x826c, 0xe739, - 0x8276, 0xe707, 0x827f, 0xe6d6, 0x8289, 0xe6a5, 0x8293, 0xe673, - 0x829d, 0xe642, 0x82a8, 0xe611, 0x82b2, 0xe5e0, 0x82bc, 0xe5af, - 0x82c6, 0xe57d, 0x82d1, 0xe54c, 0x82db, 0xe51b, 0x82e6, 0xe4ea, - 0x82f1, 0xe4b9, 0x82fb, 0xe488, 0x8306, 0xe457, 0x8311, 0xe426, - 0x831c, 0xe3f4, 0x8327, 0xe3c3, 0x8332, 0xe392, 0x833e, 0xe361, - 0x8349, 0xe330, 0x8354, 0xe2ff, 0x8360, 0xe2cf, 0x836b, 0xe29e, - 0x8377, 0xe26d, 0x8382, 0xe23c, 0x838e, 0xe20b, 0x839a, 0xe1da, - 0x83a6, 0xe1a9, 0x83b2, 0xe178, 0x83be, 0xe148, 0x83ca, 0xe117, - 0x83d6, 0xe0e6, 0x83e2, 0xe0b5, 0x83ef, 0xe085, 0x83fb, 0xe054, - 0x8407, 0xe023, 0x8414, 0xdff2, 0x8421, 0xdfc2, 0x842d, 0xdf91, - 0x843a, 0xdf61, 0x8447, 0xdf30, 0x8454, 0xdeff, 0x8461, 0xdecf, - 0x846e, 0xde9e, 0x847b, 0xde6e, 0x8488, 0xde3d, 0x8496, 0xde0d, - 0x84a3, 0xdddc, 0x84b0, 0xddac, 0x84be, 0xdd7c, 0x84cc, 0xdd4b, - 0x84d9, 0xdd1b, 0x84e7, 0xdcea, 0x84f5, 0xdcba, 0x8503, 0xdc8a, - 0x8511, 0xdc59, 0x851f, 0xdc29, 0x852d, 0xdbf9, 0x853b, 0xdbc9, - 0x8549, 0xdb99, 0x8558, 0xdb68, 0x8566, 0xdb38, 0x8574, 0xdb08, - 0x8583, 0xdad8, 0x8592, 0xdaa8, 0x85a0, 0xda78, 0x85af, 0xda48, - 0x85be, 0xda18, 0x85cd, 0xd9e8, 0x85dc, 0xd9b8, 0x85eb, 0xd988, - 0x85fa, 0xd958, 0x8609, 0xd928, 0x8619, 0xd8f8, 0x8628, 0xd8c8, - 0x8637, 0xd898, 0x8647, 0xd869, 0x8656, 0xd839, 0x8666, 0xd809, - 0x8676, 0xd7d9, 0x8686, 0xd7aa, 0x8696, 0xd77a, 0x86a5, 0xd74a, - 0x86b6, 0xd71b, 0x86c6, 0xd6eb, 0x86d6, 0xd6bb, 0x86e6, 0xd68c, - 0x86f6, 0xd65c, 0x8707, 0xd62d, 0x8717, 0xd5fd, 0x8728, 0xd5ce, - 0x8738, 0xd59e, 0x8749, 0xd56f, 0x875a, 0xd53f, 0x876b, 0xd510, - 0x877b, 0xd4e1, 0x878c, 0xd4b1, 0x879d, 0xd482, 0x87af, 0xd453, - 0x87c0, 0xd424, 0x87d1, 0xd3f4, 0x87e2, 0xd3c5, 0x87f4, 0xd396, - 0x8805, 0xd367, 0x8817, 0xd338, 0x8828, 0xd309, 0x883a, 0xd2da, - 0x884c, 0xd2ab, 0x885e, 0xd27c, 0x8870, 0xd24d, 0x8882, 0xd21e, - 0x8894, 0xd1ef, 0x88a6, 0xd1c0, 0x88b8, 0xd191, 0x88ca, 0xd162, - 0x88dd, 0xd134, 0x88ef, 0xd105, 0x8902, 0xd0d6, 0x8914, 0xd0a7, - 0x8927, 0xd079, 0x8939, 0xd04a, 0x894c, 0xd01b, 0x895f, 0xcfed, - 0x8972, 0xcfbe, 0x8985, 0xcf90, 0x8998, 0xcf61, 0x89ab, 0xcf33, - 0x89be, 0xcf04, 0x89d2, 0xced6, 0x89e5, 0xcea7, 0x89f8, 0xce79, - 0x8a0c, 0xce4b, 0x8a1f, 0xce1c, 0x8a33, 0xcdee, 0x8a47, 0xcdc0, - 0x8a5a, 0xcd92, 0x8a6e, 0xcd63, 0x8a82, 0xcd35, 0x8a96, 0xcd07, - 0x8aaa, 0xccd9, 0x8abe, 0xccab, 0x8ad3, 0xcc7d, 0x8ae7, 0xcc4f, - 0x8afb, 0xcc21, 0x8b10, 0xcbf3, 0x8b24, 0xcbc5, 0x8b39, 0xcb97, - 0x8b4d, 0xcb69, 0x8b62, 0xcb3c, 0x8b77, 0xcb0e, 0x8b8b, 0xcae0, - 0x8ba0, 0xcab2, 0x8bb5, 0xca85, 0x8bca, 0xca57, 0x8bdf, 0xca29, - 0x8bf5, 0xc9fc, 0x8c0a, 0xc9ce, 0x8c1f, 0xc9a1, 0x8c35, 0xc973, - 0x8c4a, 0xc946, 0x8c60, 0xc918, 0x8c75, 0xc8eb, 0x8c8b, 0xc8be, - 0x8ca1, 0xc890, 0x8cb6, 0xc863, 0x8ccc, 0xc836, 0x8ce2, 0xc809, - 0x8cf8, 0xc7db, 0x8d0e, 0xc7ae, 0x8d24, 0xc781, 0x8d3b, 0xc754, - 0x8d51, 0xc727, 0x8d67, 0xc6fa, 0x8d7e, 0xc6cd, 0x8d94, 0xc6a0, - 0x8dab, 0xc673, 0x8dc1, 0xc646, 0x8dd8, 0xc619, 0x8def, 0xc5ed, - 0x8e06, 0xc5c0, 0x8e1d, 0xc593, 0x8e34, 0xc566, 0x8e4b, 0xc53a, - 0x8e62, 0xc50d, 0x8e79, 0xc4e0, 0x8e90, 0xc4b4, 0x8ea8, 0xc487, - 0x8ebf, 0xc45b, 0x8ed6, 0xc42e, 0x8eee, 0xc402, 0x8f06, 0xc3d6, - 0x8f1d, 0xc3a9, 0x8f35, 0xc37d, 0x8f4d, 0xc351, 0x8f65, 0xc324, - 0x8f7d, 0xc2f8, 0x8f95, 0xc2cc, 0x8fad, 0xc2a0, 0x8fc5, 0xc274, - 0x8fdd, 0xc248, 0x8ff5, 0xc21c, 0x900e, 0xc1f0, 0x9026, 0xc1c4, - 0x903e, 0xc198, 0x9057, 0xc16c, 0x9070, 0xc140, 0x9088, 0xc114, - 0x90a1, 0xc0e9, 0x90ba, 0xc0bd, 0x90d3, 0xc091, 0x90ec, 0xc066, - 0x9105, 0xc03a, 0x911e, 0xc00f, 0x9137, 0xbfe3, 0x9150, 0xbfb8, - 0x9169, 0xbf8c, 0x9183, 0xbf61, 0x919c, 0xbf35, 0x91b6, 0xbf0a, - 0x91cf, 0xbedf, 0x91e9, 0xbeb3, 0x9202, 0xbe88, 0x921c, 0xbe5d, - 0x9236, 0xbe32, 0x9250, 0xbe07, 0x926a, 0xbddc, 0x9284, 0xbdb1, - 0x929e, 0xbd86, 0x92b8, 0xbd5b, 0x92d2, 0xbd30, 0x92ec, 0xbd05, - 0x9307, 0xbcda, 0x9321, 0xbcaf, 0x933c, 0xbc85, 0x9356, 0xbc5a, - 0x9371, 0xbc2f, 0x938b, 0xbc05, 0x93a6, 0xbbda, 0x93c1, 0xbbb0, - 0x93dc, 0xbb85, 0x93f7, 0xbb5b, 0x9412, 0xbb30, 0x942d, 0xbb06, - 0x9448, 0xbadc, 0x9463, 0xbab1, 0x947e, 0xba87, 0x949a, 0xba5d, - 0x94b5, 0xba33, 0x94d0, 0xba09, 0x94ec, 0xb9df, 0x9508, 0xb9b5, - 0x9523, 0xb98b, 0x953f, 0xb961, 0x955b, 0xb937, 0x9577, 0xb90d, - 0x9592, 0xb8e3, 0x95ae, 0xb8b9, 0x95ca, 0xb890, 0x95e6, 0xb866, - 0x9603, 0xb83c, 0x961f, 0xb813, 0x963b, 0xb7e9, 0x9657, 0xb7c0, - 0x9674, 0xb796, 0x9690, 0xb76d, 0x96ad, 0xb743, 0x96c9, 0xb71a, - 0x96e6, 0xb6f1, 0x9703, 0xb6c7, 0x9720, 0xb69e, 0x973c, 0xb675, - 0x9759, 0xb64c, 0x9776, 0xb623, 0x9793, 0xb5fa, 0x97b0, 0xb5d1, - 0x97ce, 0xb5a8, 0x97eb, 0xb57f, 0x9808, 0xb556, 0x9826, 0xb52d, - 0x9843, 0xb505, 0x9860, 0xb4dc, 0x987e, 0xb4b3, 0x989c, 0xb48b, - 0x98b9, 0xb462, 0x98d7, 0xb439, 0x98f5, 0xb411, 0x9913, 0xb3e9, - 0x9930, 0xb3c0, 0x994e, 0xb398, 0x996d, 0xb36f, 0x998b, 0xb347, - 0x99a9, 0xb31f, 0x99c7, 0xb2f7, 0x99e5, 0xb2cf, 0x9a04, 0xb2a7, - 0x9a22, 0xb27f, 0x9a40, 0xb257, 0x9a5f, 0xb22f, 0x9a7e, 0xb207, - 0x9a9c, 0xb1df, 0x9abb, 0xb1b7, 0x9ada, 0xb18f, 0x9af9, 0xb168, - 0x9b17, 0xb140, 0x9b36, 0xb118, 0x9b55, 0xb0f1, 0x9b75, 0xb0c9, - 0x9b94, 0xb0a2, 0x9bb3, 0xb07b, 0x9bd2, 0xb053, 0x9bf1, 0xb02c, - 0x9c11, 0xb005, 0x9c30, 0xafdd, 0x9c50, 0xafb6, 0x9c6f, 0xaf8f, - 0x9c8f, 0xaf68, 0x9caf, 0xaf41, 0x9cce, 0xaf1a, 0x9cee, 0xaef3, - 0x9d0e, 0xaecc, 0x9d2e, 0xaea5, 0x9d4e, 0xae7f, 0x9d6e, 0xae58, - 0x9d8e, 0xae31, 0x9dae, 0xae0b, 0x9dce, 0xade4, 0x9def, 0xadbd, - 0x9e0f, 0xad97, 0x9e2f, 0xad70, 0x9e50, 0xad4a, 0x9e70, 0xad24, - 0x9e91, 0xacfd, 0x9eb2, 0xacd7, 0x9ed2, 0xacb1, 0x9ef3, 0xac8b, - 0x9f14, 0xac65, 0x9f35, 0xac3f, 0x9f56, 0xac19, 0x9f77, 0xabf3, - 0x9f98, 0xabcd, 0x9fb9, 0xaba7, 0x9fda, 0xab81, 0x9ffb, 0xab5c, - 0xa01c, 0xab36, 0xa03e, 0xab10, 0xa05f, 0xaaeb, 0xa080, 0xaac5, - 0xa0a2, 0xaaa0, 0xa0c4, 0xaa7a, 0xa0e5, 0xaa55, 0xa107, 0xaa30, - 0xa129, 0xaa0a, 0xa14a, 0xa9e5, 0xa16c, 0xa9c0, 0xa18e, 0xa99b, - 0xa1b0, 0xa976, 0xa1d2, 0xa951, 0xa1f4, 0xa92c, 0xa216, 0xa907, - 0xa238, 0xa8e2, 0xa25b, 0xa8bd, 0xa27d, 0xa899, 0xa29f, 0xa874, - 0xa2c2, 0xa84f, 0xa2e4, 0xa82b, 0xa307, 0xa806, 0xa329, 0xa7e2, - 0xa34c, 0xa7bd, 0xa36f, 0xa799, 0xa391, 0xa774, 0xa3b4, 0xa750, - 0xa3d7, 0xa72c, 0xa3fa, 0xa708, 0xa41d, 0xa6e4, 0xa440, 0xa6c0, - 0xa463, 0xa69c, 0xa486, 0xa678, 0xa4a9, 0xa654, 0xa4cc, 0xa630, - 0xa4f0, 0xa60c, 0xa513, 0xa5e8, 0xa537, 0xa5c5, 0xa55a, 0xa5a1, - 0xa57e, 0xa57e, 0xa5a1, 0xa55a, 0xa5c5, 0xa537, 0xa5e8, 0xa513, - 0xa60c, 0xa4f0, 0xa630, 0xa4cc, 0xa654, 0xa4a9, 0xa678, 0xa486, - 0xa69c, 0xa463, 0xa6c0, 0xa440, 0xa6e4, 0xa41d, 0xa708, 0xa3fa, - 0xa72c, 0xa3d7, 0xa750, 0xa3b4, 0xa774, 0xa391, 0xa799, 0xa36f, - 0xa7bd, 0xa34c, 0xa7e2, 0xa329, 0xa806, 0xa307, 0xa82b, 0xa2e4, - 0xa84f, 0xa2c2, 0xa874, 0xa29f, 0xa899, 0xa27d, 0xa8bd, 0xa25b, - 0xa8e2, 0xa238, 0xa907, 0xa216, 0xa92c, 0xa1f4, 0xa951, 0xa1d2, - 0xa976, 0xa1b0, 0xa99b, 0xa18e, 0xa9c0, 0xa16c, 0xa9e5, 0xa14a, - 0xaa0a, 0xa129, 0xaa30, 0xa107, 0xaa55, 0xa0e5, 0xaa7a, 0xa0c4, - 0xaaa0, 0xa0a2, 0xaac5, 0xa080, 0xaaeb, 0xa05f, 0xab10, 0xa03e, - 0xab36, 0xa01c, 0xab5c, 0x9ffb, 0xab81, 0x9fda, 0xaba7, 0x9fb9, - 0xabcd, 0x9f98, 0xabf3, 0x9f77, 0xac19, 0x9f56, 0xac3f, 0x9f35, - 0xac65, 0x9f14, 0xac8b, 0x9ef3, 0xacb1, 0x9ed2, 0xacd7, 0x9eb2, - 0xacfd, 0x9e91, 0xad24, 0x9e70, 0xad4a, 0x9e50, 0xad70, 0x9e2f, - 0xad97, 0x9e0f, 0xadbd, 0x9def, 0xade4, 0x9dce, 0xae0b, 0x9dae, - 0xae31, 0x9d8e, 0xae58, 0x9d6e, 0xae7f, 0x9d4e, 0xaea5, 0x9d2e, - 0xaecc, 0x9d0e, 0xaef3, 0x9cee, 0xaf1a, 0x9cce, 0xaf41, 0x9caf, - 0xaf68, 0x9c8f, 0xaf8f, 0x9c6f, 0xafb6, 0x9c50, 0xafdd, 0x9c30, - 0xb005, 0x9c11, 0xb02c, 0x9bf1, 0xb053, 0x9bd2, 0xb07b, 0x9bb3, - 0xb0a2, 0x9b94, 0xb0c9, 0x9b75, 0xb0f1, 0x9b55, 0xb118, 0x9b36, - 0xb140, 0x9b17, 0xb168, 0x9af9, 0xb18f, 0x9ada, 0xb1b7, 0x9abb, - 0xb1df, 0x9a9c, 0xb207, 0x9a7e, 0xb22f, 0x9a5f, 0xb257, 0x9a40, - 0xb27f, 0x9a22, 0xb2a7, 0x9a04, 0xb2cf, 0x99e5, 0xb2f7, 0x99c7, - 0xb31f, 0x99a9, 0xb347, 0x998b, 0xb36f, 0x996d, 0xb398, 0x994e, - 0xb3c0, 0x9930, 0xb3e9, 0x9913, 0xb411, 0x98f5, 0xb439, 0x98d7, - 0xb462, 0x98b9, 0xb48b, 0x989c, 0xb4b3, 0x987e, 0xb4dc, 0x9860, - 0xb505, 0x9843, 0xb52d, 0x9826, 0xb556, 0x9808, 0xb57f, 0x97eb, - 0xb5a8, 0x97ce, 0xb5d1, 0x97b0, 0xb5fa, 0x9793, 0xb623, 0x9776, - 0xb64c, 0x9759, 0xb675, 0x973c, 0xb69e, 0x9720, 0xb6c7, 0x9703, - 0xb6f1, 0x96e6, 0xb71a, 0x96c9, 0xb743, 0x96ad, 0xb76d, 0x9690, - 0xb796, 0x9674, 0xb7c0, 0x9657, 0xb7e9, 0x963b, 0xb813, 0x961f, - 0xb83c, 0x9603, 0xb866, 0x95e6, 0xb890, 0x95ca, 0xb8b9, 0x95ae, - 0xb8e3, 0x9592, 0xb90d, 0x9577, 0xb937, 0x955b, 0xb961, 0x953f, - 0xb98b, 0x9523, 0xb9b5, 0x9508, 0xb9df, 0x94ec, 0xba09, 0x94d0, - 0xba33, 0x94b5, 0xba5d, 0x949a, 0xba87, 0x947e, 0xbab1, 0x9463, - 0xbadc, 0x9448, 0xbb06, 0x942d, 0xbb30, 0x9412, 0xbb5b, 0x93f7, - 0xbb85, 0x93dc, 0xbbb0, 0x93c1, 0xbbda, 0x93a6, 0xbc05, 0x938b, - 0xbc2f, 0x9371, 0xbc5a, 0x9356, 0xbc85, 0x933c, 0xbcaf, 0x9321, - 0xbcda, 0x9307, 0xbd05, 0x92ec, 0xbd30, 0x92d2, 0xbd5b, 0x92b8, - 0xbd86, 0x929e, 0xbdb1, 0x9284, 0xbddc, 0x926a, 0xbe07, 0x9250, - 0xbe32, 0x9236, 0xbe5d, 0x921c, 0xbe88, 0x9202, 0xbeb3, 0x91e9, - 0xbedf, 0x91cf, 0xbf0a, 0x91b6, 0xbf35, 0x919c, 0xbf61, 0x9183, - 0xbf8c, 0x9169, 0xbfb8, 0x9150, 0xbfe3, 0x9137, 0xc00f, 0x911e, - 0xc03a, 0x9105, 0xc066, 0x90ec, 0xc091, 0x90d3, 0xc0bd, 0x90ba, - 0xc0e9, 0x90a1, 0xc114, 0x9088, 0xc140, 0x9070, 0xc16c, 0x9057, - 0xc198, 0x903e, 0xc1c4, 0x9026, 0xc1f0, 0x900e, 0xc21c, 0x8ff5, - 0xc248, 0x8fdd, 0xc274, 0x8fc5, 0xc2a0, 0x8fad, 0xc2cc, 0x8f95, - 0xc2f8, 0x8f7d, 0xc324, 0x8f65, 0xc351, 0x8f4d, 0xc37d, 0x8f35, - 0xc3a9, 0x8f1d, 0xc3d6, 0x8f06, 0xc402, 0x8eee, 0xc42e, 0x8ed6, - 0xc45b, 0x8ebf, 0xc487, 0x8ea8, 0xc4b4, 0x8e90, 0xc4e0, 0x8e79, - 0xc50d, 0x8e62, 0xc53a, 0x8e4b, 0xc566, 0x8e34, 0xc593, 0x8e1d, - 0xc5c0, 0x8e06, 0xc5ed, 0x8def, 0xc619, 0x8dd8, 0xc646, 0x8dc1, - 0xc673, 0x8dab, 0xc6a0, 0x8d94, 0xc6cd, 0x8d7e, 0xc6fa, 0x8d67, - 0xc727, 0x8d51, 0xc754, 0x8d3b, 0xc781, 0x8d24, 0xc7ae, 0x8d0e, - 0xc7db, 0x8cf8, 0xc809, 0x8ce2, 0xc836, 0x8ccc, 0xc863, 0x8cb6, - 0xc890, 0x8ca1, 0xc8be, 0x8c8b, 0xc8eb, 0x8c75, 0xc918, 0x8c60, - 0xc946, 0x8c4a, 0xc973, 0x8c35, 0xc9a1, 0x8c1f, 0xc9ce, 0x8c0a, - 0xc9fc, 0x8bf5, 0xca29, 0x8bdf, 0xca57, 0x8bca, 0xca85, 0x8bb5, - 0xcab2, 0x8ba0, 0xcae0, 0x8b8b, 0xcb0e, 0x8b77, 0xcb3c, 0x8b62, - 0xcb69, 0x8b4d, 0xcb97, 0x8b39, 0xcbc5, 0x8b24, 0xcbf3, 0x8b10, - 0xcc21, 0x8afb, 0xcc4f, 0x8ae7, 0xcc7d, 0x8ad3, 0xccab, 0x8abe, - 0xccd9, 0x8aaa, 0xcd07, 0x8a96, 0xcd35, 0x8a82, 0xcd63, 0x8a6e, - 0xcd92, 0x8a5a, 0xcdc0, 0x8a47, 0xcdee, 0x8a33, 0xce1c, 0x8a1f, - 0xce4b, 0x8a0c, 0xce79, 0x89f8, 0xcea7, 0x89e5, 0xced6, 0x89d2, - 0xcf04, 0x89be, 0xcf33, 0x89ab, 0xcf61, 0x8998, 0xcf90, 0x8985, - 0xcfbe, 0x8972, 0xcfed, 0x895f, 0xd01b, 0x894c, 0xd04a, 0x8939, - 0xd079, 0x8927, 0xd0a7, 0x8914, 0xd0d6, 0x8902, 0xd105, 0x88ef, - 0xd134, 0x88dd, 0xd162, 0x88ca, 0xd191, 0x88b8, 0xd1c0, 0x88a6, - 0xd1ef, 0x8894, 0xd21e, 0x8882, 0xd24d, 0x8870, 0xd27c, 0x885e, - 0xd2ab, 0x884c, 0xd2da, 0x883a, 0xd309, 0x8828, 0xd338, 0x8817, - 0xd367, 0x8805, 0xd396, 0x87f4, 0xd3c5, 0x87e2, 0xd3f4, 0x87d1, - 0xd424, 0x87c0, 0xd453, 0x87af, 0xd482, 0x879d, 0xd4b1, 0x878c, - 0xd4e1, 0x877b, 0xd510, 0x876b, 0xd53f, 0x875a, 0xd56f, 0x8749, - 0xd59e, 0x8738, 0xd5ce, 0x8728, 0xd5fd, 0x8717, 0xd62d, 0x8707, - 0xd65c, 0x86f6, 0xd68c, 0x86e6, 0xd6bb, 0x86d6, 0xd6eb, 0x86c6, - 0xd71b, 0x86b6, 0xd74a, 0x86a5, 0xd77a, 0x8696, 0xd7aa, 0x8686, - 0xd7d9, 0x8676, 0xd809, 0x8666, 0xd839, 0x8656, 0xd869, 0x8647, - 0xd898, 0x8637, 0xd8c8, 0x8628, 0xd8f8, 0x8619, 0xd928, 0x8609, - 0xd958, 0x85fa, 0xd988, 0x85eb, 0xd9b8, 0x85dc, 0xd9e8, 0x85cd, - 0xda18, 0x85be, 0xda48, 0x85af, 0xda78, 0x85a0, 0xdaa8, 0x8592, - 0xdad8, 0x8583, 0xdb08, 0x8574, 0xdb38, 0x8566, 0xdb68, 0x8558, - 0xdb99, 0x8549, 0xdbc9, 0x853b, 0xdbf9, 0x852d, 0xdc29, 0x851f, - 0xdc59, 0x8511, 0xdc8a, 0x8503, 0xdcba, 0x84f5, 0xdcea, 0x84e7, - 0xdd1b, 0x84d9, 0xdd4b, 0x84cc, 0xdd7c, 0x84be, 0xddac, 0x84b0, - 0xdddc, 0x84a3, 0xde0d, 0x8496, 0xde3d, 0x8488, 0xde6e, 0x847b, - 0xde9e, 0x846e, 0xdecf, 0x8461, 0xdeff, 0x8454, 0xdf30, 0x8447, - 0xdf61, 0x843a, 0xdf91, 0x842d, 0xdfc2, 0x8421, 0xdff2, 0x8414, - 0xe023, 0x8407, 0xe054, 0x83fb, 0xe085, 0x83ef, 0xe0b5, 0x83e2, - 0xe0e6, 0x83d6, 0xe117, 0x83ca, 0xe148, 0x83be, 0xe178, 0x83b2, - 0xe1a9, 0x83a6, 0xe1da, 0x839a, 0xe20b, 0x838e, 0xe23c, 0x8382, - 0xe26d, 0x8377, 0xe29e, 0x836b, 0xe2cf, 0x8360, 0xe2ff, 0x8354, - 0xe330, 0x8349, 0xe361, 0x833e, 0xe392, 0x8332, 0xe3c3, 0x8327, - 0xe3f4, 0x831c, 0xe426, 0x8311, 0xe457, 0x8306, 0xe488, 0x82fb, - 0xe4b9, 0x82f1, 0xe4ea, 0x82e6, 0xe51b, 0x82db, 0xe54c, 0x82d1, - 0xe57d, 0x82c6, 0xe5af, 0x82bc, 0xe5e0, 0x82b2, 0xe611, 0x82a8, - 0xe642, 0x829d, 0xe673, 0x8293, 0xe6a5, 0x8289, 0xe6d6, 0x827f, - 0xe707, 0x8276, 0xe739, 0x826c, 0xe76a, 0x8262, 0xe79b, 0x8259, - 0xe7cd, 0x824f, 0xe7fe, 0x8246, 0xe82f, 0x823c, 0xe861, 0x8233, - 0xe892, 0x822a, 0xe8c4, 0x8220, 0xe8f5, 0x8217, 0xe926, 0x820e, - 0xe958, 0x8205, 0xe989, 0x81fd, 0xe9bb, 0x81f4, 0xe9ec, 0x81eb, - 0xea1e, 0x81e2, 0xea4f, 0x81da, 0xea81, 0x81d1, 0xeab3, 0x81c9, - 0xeae4, 0x81c1, 0xeb16, 0x81b8, 0xeb47, 0x81b0, 0xeb79, 0x81a8, - 0xebab, 0x81a0, 0xebdc, 0x8198, 0xec0e, 0x8190, 0xec3f, 0x8188, - 0xec71, 0x8181, 0xeca3, 0x8179, 0xecd5, 0x8172, 0xed06, 0x816a, - 0xed38, 0x8163, 0xed6a, 0x815b, 0xed9b, 0x8154, 0xedcd, 0x814d, - 0xedff, 0x8146, 0xee31, 0x813f, 0xee62, 0x8138, 0xee94, 0x8131, - 0xeec6, 0x812a, 0xeef8, 0x8123, 0xef2a, 0x811d, 0xef5c, 0x8116, - 0xef8d, 0x8110, 0xefbf, 0x8109, 0xeff1, 0x8103, 0xf023, 0x80fd, - 0xf055, 0x80f6, 0xf087, 0x80f0, 0xf0b9, 0x80ea, 0xf0eb, 0x80e4, - 0xf11c, 0x80de, 0xf14e, 0x80d9, 0xf180, 0x80d3, 0xf1b2, 0x80cd, - 0xf1e4, 0x80c8, 0xf216, 0x80c2, 0xf248, 0x80bd, 0xf27a, 0x80b7, - 0xf2ac, 0x80b2, 0xf2de, 0x80ad, 0xf310, 0x80a8, 0xf342, 0x80a3, - 0xf374, 0x809e, 0xf3a6, 0x8099, 0xf3d8, 0x8094, 0xf40a, 0x808f, - 0xf43c, 0x808b, 0xf46e, 0x8086, 0xf4a0, 0x8082, 0xf4d3, 0x807d, - 0xf505, 0x8079, 0xf537, 0x8075, 0xf569, 0x8070, 0xf59b, 0x806c, - 0xf5cd, 0x8068, 0xf5ff, 0x8064, 0xf631, 0x8060, 0xf663, 0x805d, - 0xf695, 0x8059, 0xf6c8, 0x8055, 0xf6fa, 0x8052, 0xf72c, 0x804e, - 0xf75e, 0x804b, 0xf790, 0x8047, 0xf7c2, 0x8044, 0xf7f4, 0x8041, - 0xf827, 0x803e, 0xf859, 0x803b, 0xf88b, 0x8038, 0xf8bd, 0x8035, - 0xf8ef, 0x8032, 0xf922, 0x802f, 0xf954, 0x802d, 0xf986, 0x802a, - 0xf9b8, 0x8027, 0xf9ea, 0x8025, 0xfa1d, 0x8023, 0xfa4f, 0x8020, - 0xfa81, 0x801e, 0xfab3, 0x801c, 0xfae5, 0x801a, 0xfb18, 0x8018, - 0xfb4a, 0x8016, 0xfb7c, 0x8014, 0xfbae, 0x8013, 0xfbe1, 0x8011, - 0xfc13, 0x800f, 0xfc45, 0x800e, 0xfc77, 0x800c, 0xfcaa, 0x800b, - 0xfcdc, 0x800a, 0xfd0e, 0x8009, 0xfd40, 0x8008, 0xfd73, 0x8007, - 0xfda5, 0x8006, 0xfdd7, 0x8005, 0xfe09, 0x8004, 0xfe3c, 0x8003, - 0xfe6e, 0x8002, 0xfea0, 0x8002, 0xfed2, 0x8001, 0xff05, 0x8001, - 0xff37, 0x8001, 0xff69, 0x8000, 0xff9b, 0x8000, 0xffce, 0x8000, -}; - -/** - * @} end of CFFT_CIFFT group - */ - -/* -* @brief Q15 table for reciprocal -*/ -const q15_t ALIGN4 armRecipTableQ15[64] = { - 0x7F03, 0x7D13, 0x7B31, 0x795E, 0x7798, 0x75E0, - 0x7434, 0x7294, 0x70FF, 0x6F76, 0x6DF6, 0x6C82, - 0x6B16, 0x69B5, 0x685C, 0x670C, 0x65C4, 0x6484, - 0x634C, 0x621C, 0x60F3, 0x5FD0, 0x5EB5, 0x5DA0, - 0x5C91, 0x5B88, 0x5A85, 0x5988, 0x5890, 0x579E, - 0x56B0, 0x55C8, 0x54E4, 0x5405, 0x532B, 0x5255, - 0x5183, 0x50B6, 0x4FEC, 0x4F26, 0x4E64, 0x4DA6, - 0x4CEC, 0x4C34, 0x4B81, 0x4AD0, 0x4A23, 0x4978, - 0x48D1, 0x482D, 0x478C, 0x46ED, 0x4651, 0x45B8, - 0x4521, 0x448D, 0x43FC, 0x436C, 0x42DF, 0x4255, - 0x41CC, 0x4146, 0x40C2, 0x4040 -}; - -/* -* @brief Q31 table for reciprocal -*/ -const q31_t armRecipTableQ31[64] = { - 0x7F03F03F, 0x7D137420, 0x7B31E739, 0x795E9F94, 0x7798FD29, 0x75E06928, - 0x7434554D, 0x72943B4B, 0x70FF9C40, 0x6F760031, 0x6DF6F593, 0x6C8210E3, - 0x6B16EC3A, 0x69B526F6, 0x685C655F, 0x670C505D, 0x65C4952D, 0x6484E519, - 0x634CF53E, 0x621C7E4F, 0x60F33C61, 0x5FD0EEB3, 0x5EB55785, 0x5DA03BEB, - 0x5C9163A1, 0x5B8898E6, 0x5A85A85A, 0x598860DF, 0x58909373, 0x579E1318, - 0x56B0B4B8, 0x55C84F0B, 0x54E4BA80, 0x5405D124, 0x532B6E8F, 0x52556FD0, - 0x5183B35A, 0x50B618F3, 0x4FEC81A2, 0x4F26CFA2, 0x4E64E64E, 0x4DA6AA1D, - 0x4CEC008B, 0x4C34D010, 0x4B810016, 0x4AD078EF, 0x4A2323C4, 0x4978EA96, - 0x48D1B827, 0x482D77FE, 0x478C1657, 0x46ED801D, 0x4651A2E5, 0x45B86CE2, - 0x4521CCE1, 0x448DB244, 0x43FC0CFA, 0x436CCD78, 0x42DFE4B4, 0x42554426, - 0x41CCDDB6, 0x4146A3C6, 0x40C28923, 0x40408102 -}; diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c deleted file mode 100644 index 31bbaa7a80..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c +++ /dev/null @@ -1,174 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cmplx_conj_f32.c -* -* Description: Floating-point complex conjugate. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ -#include "arm_math.h" - -/** - * @ingroup groupCmplxMath - */ - -/** - * @defgroup cmplx_conj Complex Conjugate - * - * Conjugates the elements of a complex data vector. - * - * The pSrc points to the source data and - * pDst points to the where the result should be written. - * numSamples specifies the number of complex samples - * and the data in each array is stored in an interleaved fashion - * (real, imag, real, imag, ...). - * Each array has a total of 2*numSamples values. - * The underlying algorithm is used: - * - *
        
- * for(n=0; n        
- *        
- * There are separate functions for floating-point, Q15, and Q31 data types.        
- */
-
-/**        
- * @addtogroup cmplx_conj        
- * @{        
- */
-
-/**        
- * @brief  Floating-point complex conjugate.        
- * @param  *pSrc points to the input vector        
- * @param  *pDst points to the output vector        
- * @param  numSamples number of complex samples in each vector        
- * @return none.        
- */
-
-void arm_cmplx_conj_f32(
-  float32_t * pSrc,
-  float32_t * pDst,
-  uint32_t numSamples)
-{
-  uint32_t blkCnt;                               /* loop counter */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  float32_t inR1, inR2, inR3, inR4;
-  float32_t inI1, inI2, inI3, inI4;
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.        
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    /* read real input samples */
-    inR1 = pSrc[0];
-    /* store real samples to destination */
-    pDst[0] = inR1;
-    inR2 = pSrc[2];
-    pDst[2] = inR2;
-    inR3 = pSrc[4];
-    pDst[4] = inR3;
-    inR4 = pSrc[6];
-    pDst[6] = inR4;
-
-    /* read imaginary input samples */
-    inI1 = pSrc[1];
-    inI2 = pSrc[3];
-
-    /* conjugate input */
-    inI1 = -inI1;
-
-    /* read imaginary input samples */
-    inI3 = pSrc[5];
-
-    /* conjugate input */
-    inI2 = -inI2;
-
-    /* read imaginary input samples */
-    inI4 = pSrc[7];
-
-    /* conjugate input */
-    inI3 = -inI3;
-
-    /* store imaginary samples to destination */
-    pDst[1] = inI1;
-    pDst[3] = inI2;
-
-    /* conjugate input */
-    inI4 = -inI4;
-
-    /* store imaginary samples to destination */
-    pDst[5] = inI3;
-
-    /* increment source pointer by 8 to process next sampels */
-    pSrc += 8u;
-
-    /* store imaginary sample to destination */
-    pDst[7] = inI4;
-
-    /* increment destination pointer by 8 to store next samples */
-    pDst += 8u;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.        
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  while(blkCnt > 0u)
-  {
-    /* realOut + j (imagOut) = realIn + j (-1) imagIn */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    *pDst++ = *pSrc++;
-    *pDst++ = -*pSrc++;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-}
-
-/**        
- * @} end of cmplx_conj group        
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c
deleted file mode 100644
index c5a3703157..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_conj_q15.c    
-*    
-* Description:	Q15 complex conjugate.    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup cmplx_conj    
- * @{    
- */
-
-/**    
- * @brief  Q15 complex conjugate.    
- * @param  *pSrc points to the input vector    
- * @param  *pDst points to the output vector    
- * @param  numSamples number of complex samples in each vector    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function uses saturating arithmetic.    
- * The Q15 value -1 (0x8000) will be saturated to the maximum allowable positive value 0x7FFF.    
- */
-
-void arm_cmplx_conj_q15(
-  q15_t * pSrc,
-  q15_t * pDst,
-  uint32_t numSamples)
-{
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-  q31_t in1, in2, in3, in4;
-  q31_t zero = 0;
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    in1 = *__SIMD32(pSrc)++;
-    in2 = *__SIMD32(pSrc)++;
-    in3 = *__SIMD32(pSrc)++;
-    in4 = *__SIMD32(pSrc)++;
-
-#ifndef ARM_MATH_BIG_ENDIAN
-
-    in1 = __QASX(zero, in1);
-    in2 = __QASX(zero, in2);
-    in3 = __QASX(zero, in3);
-    in4 = __QASX(zero, in4);
-
-#else
-
-    in1 = __QSAX(zero, in1);
-    in2 = __QSAX(zero, in2);
-    in3 = __QSAX(zero, in3);
-    in4 = __QSAX(zero, in4);
-
-#endif //       #ifndef ARM_MATH_BIG_ENDIAN
-
-    in1 = ((uint32_t) in1 >> 16) | ((uint32_t) in1 << 16);
-    in2 = ((uint32_t) in2 >> 16) | ((uint32_t) in2 << 16);
-    in3 = ((uint32_t) in3 >> 16) | ((uint32_t) in3 << 16);
-    in4 = ((uint32_t) in4 >> 16) | ((uint32_t) in4 << 16);
-
-    *__SIMD32(pDst)++ = in1;
-    *__SIMD32(pDst)++ = in2;
-    *__SIMD32(pDst)++ = in3;
-    *__SIMD32(pDst)++ = in4;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    *pDst++ = *pSrc++;
-    *pDst++ = __SSAT(-*pSrc++, 16);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  q15_t in;
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* realOut + j (imagOut) = realIn+ j (-1) imagIn */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    *pDst++ = *pSrc++;
-    in = *pSrc++;
-    *pDst++ = (in == (q15_t) 0x8000) ? 0x7fff : -in;
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of cmplx_conj group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c
deleted file mode 100644
index 7475962d53..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_conj_q31.c    
-*    
-* Description:	Q31 complex conjugate.    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-#include "arm_math.h"
-
-/**        
- * @ingroup groupCmplxMath        
- */
-
-/**        
- * @addtogroup cmplx_conj        
- * @{        
- */
-
-/**        
- * @brief  Q31 complex conjugate.        
- * @param  *pSrc points to the input vector        
- * @param  *pDst points to the output vector        
- * @param  numSamples number of complex samples in each vector        
- * @return none.        
- *        
- * Scaling and Overflow Behavior:        
- * \par        
- * The function uses saturating arithmetic.        
- * The Q31 value -1 (0x80000000) will be saturated to the maximum allowable positive value 0x7FFFFFFF.        
- */
-
-void arm_cmplx_conj_q31(
-  q31_t * pSrc,
-  q31_t * pDst,
-  uint32_t numSamples)
-{
-  uint32_t blkCnt;                               /* loop counter */
-  q31_t in;                                      /* Input value */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  q31_t inR1, inR2, inR3, inR4;                  /* Temporary real variables */
-  q31_t inI1, inI2, inI3, inI4;                  /* Temporary imaginary variables */
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.        
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    /* Saturated to 0x7fffffff if the input is -1(0x80000000) */
-    /* read real input sample */
-    inR1 = pSrc[0];
-    /* store real input sample */
-    pDst[0] = inR1;
-
-    /* read imaginary input sample */
-    inI1 = pSrc[1];
-
-    /* read real input sample */
-    inR2 = pSrc[2];
-    /* store real input sample */
-    pDst[2] = inR2;
-
-    /* read imaginary input sample */
-    inI2 = pSrc[3];
-
-    /* negate imaginary input sample */
-    inI1 = __QSUB(0, inI1);
-
-    /* read real input sample */
-    inR3 = pSrc[4];
-    /* store real input sample */
-    pDst[4] = inR3;
-
-    /* read imaginary input sample */
-    inI3 = pSrc[5];
-
-    /* negate imaginary input sample */
-    inI2 = __QSUB(0, inI2);
-
-    /* read real input sample */
-    inR4 = pSrc[6];
-    /* store real input sample */
-    pDst[6] = inR4;
-
-    /* negate imaginary input sample */
-    inI3 = __QSUB(0, inI3);
-
-    /* store imaginary input sample */
-    inI4 = pSrc[7];
-
-    /* store imaginary input samples */
-    pDst[1] = inI1;
-
-    /* negate imaginary input sample */
-    inI4 = __QSUB(0, inI4);
-
-    /* store imaginary input samples */
-    pDst[3] = inI2;
-
-    /* increment source pointer by 8 to proecess next samples */
-    pSrc += 8u;
-
-    /* store imaginary input samples */
-    pDst[5] = inI3;
-    pDst[7] = inI4;
-
-    /* increment destination pointer by 8 to process next samples */
-    pDst += 8u;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.        
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  while(blkCnt > 0u)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    /* Saturated to 0x7fffffff if the input is -1(0x80000000) */
-    *pDst++ = *pSrc++;
-    in = *pSrc++;
-    *pDst++ = (in == 0x80000000) ? 0x7fffffff : -in;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-}
-
-/**        
- * @} end of cmplx_conj group        
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c
deleted file mode 100644
index 4f265d6902..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_dot_prod_f32.c    
-*    
-* Description:	Floating-point complex dot product    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @defgroup cmplx_dot_prod Complex Dot Product    
- *    
- * Computes the dot product of two complex vectors.    
- * The vectors are multiplied element-by-element and then summed.    
- *   
- * The pSrcA points to the first complex input vector and    
- * pSrcB points to the second complex input vector.    
- * numSamples specifies the number of complex samples    
- * and the data in each array is stored in an interleaved fashion    
- * (real, imag, real, imag, ...).    
- * Each array has a total of 2*numSamples values.    
- *    
- * The underlying algorithm is used:    
- * 
    
- * realResult=0;    
- * imagResult=0;    
- * for(n=0; n    
- *    
- * There are separate functions for floating-point, Q15, and Q31 data types.    
- */
-
-/**    
- * @addtogroup cmplx_dot_prod    
- * @{    
- */
-
-/**    
- * @brief  Floating-point complex dot product    
- * @param  *pSrcA points to the first input vector    
- * @param  *pSrcB points to the second input vector    
- * @param  numSamples number of complex samples in each vector    
- * @param  *realResult real part of the result returned here    
- * @param  *imagResult imaginary part of the result returned here    
- * @return none.    
- */
-
-void arm_cmplx_dot_prod_f32(
-  float32_t * pSrcA,
-  float32_t * pSrcB,
-  uint32_t numSamples,
-  float32_t * realResult,
-  float32_t * imagResult)
-{
-  float32_t real_sum = 0.0f, imag_sum = 0.0f;    /* Temporary result storage */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* CReal = A[0]* B[0] + A[2]* B[2] + A[4]* B[4] + .....+ A[numSamples-2]* B[numSamples-2] */
-    real_sum += (*pSrcA++) * (*pSrcB++);
-    /* CImag = A[1]* B[1] + A[3]* B[3] + A[5]* B[5] + .....+ A[numSamples-1]* B[numSamples-1] */
-    imag_sum += (*pSrcA++) * (*pSrcB++);
-
-    real_sum += (*pSrcA++) * (*pSrcB++);
-    imag_sum += (*pSrcA++) * (*pSrcB++);
-
-    real_sum += (*pSrcA++) * (*pSrcB++);
-    imag_sum += (*pSrcA++) * (*pSrcB++);
-
-    real_sum += (*pSrcA++) * (*pSrcB++);
-    imag_sum += (*pSrcA++) * (*pSrcB++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* CReal = A[0]* B[0] + A[2]* B[2] + A[4]* B[4] + .....+ A[numSamples-2]* B[numSamples-2] */
-    real_sum += (*pSrcA++) * (*pSrcB++);
-    /* CImag = A[1]* B[1] + A[3]* B[3] + A[5]* B[5] + .....+ A[numSamples-1]* B[numSamples-1] */
-    imag_sum += (*pSrcA++) * (*pSrcB++);
-
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* CReal = A[0]* B[0] + A[2]* B[2] + A[4]* B[4] + .....+ A[numSamples-2]* B[numSamples-2] */
-    real_sum += (*pSrcA++) * (*pSrcB++);
-    /* CImag = A[1]* B[1] + A[3]* B[3] + A[5]* B[5] + .....+ A[numSamples-1]* B[numSamples-1] */
-    imag_sum += (*pSrcA++) * (*pSrcB++);
-
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  /* Store the real and imaginary results in the destination buffers */
-  *realResult = real_sum;
-  *imagResult = imag_sum;
-}
-
-/**    
- * @} end of cmplx_dot_prod group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c
deleted file mode 100644
index 33df820a5c..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_dot_prod_q15.c    
-*    
-* Description:	Processing function for the Q15 Complex Dot product    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup cmplx_dot_prod    
- * @{    
- */
-
-/**    
- * @brief  Q15 complex dot product    
- * @param  *pSrcA points to the first input vector    
- * @param  *pSrcB points to the second input vector    
- * @param  numSamples number of complex samples in each vector    
- * @param  *realResult real part of the result returned here    
- * @param  *imagResult imaginary part of the result returned here    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function is implemented using an internal 64-bit accumulator.    
- * The intermediate 1.15 by 1.15 multiplications are performed with full precision and yield a 2.30 result.    
- * These are accumulated in a 64-bit accumulator with 34.30 precision.    
- * As a final step, the accumulators are converted to 8.24 format.    
- * The return results realResult and imagResult are in 8.24 format.    
- */
-
-void arm_cmplx_dot_prod_q15(
-  q15_t * pSrcA,
-  q15_t * pSrcB,
-  uint32_t numSamples,
-  q31_t * realResult,
-  q31_t * imagResult)
-{
-  q63_t real_sum = 0, imag_sum = 0;              /* Temporary result storage */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* CReal = A[0]* B[0] + A[2]* B[2] + A[4]* B[4] + .....+ A[numSamples-2]* B[numSamples-2] */
-    real_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-
-    /* CImag = A[1]* B[1] + A[3]* B[3] + A[5]* B[5] + .....+ A[numSamples-1]* B[numSamples-1] */
-    imag_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-
-    real_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-    imag_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-
-    real_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-    imag_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-
-    real_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-    imag_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* CReal = A[0]* B[0] + A[2]* B[2] + A[4]* B[4] + .....+ A[numSamples-2]* B[numSamples-2] */
-    real_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-    /* CImag = A[1]* B[1] + A[3]* B[3] + A[5]* B[5] + .....+ A[numSamples-1]* B[numSamples-1] */
-    imag_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* CReal = A[0]* B[0] + A[2]* B[2] + A[4]* B[4] + .....+ A[numSamples-2]* B[numSamples-2] */
-    real_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-    /* CImag = A[1]* B[1] + A[3]* B[3] + A[5]* B[5] + .....+ A[numSamples-1]* B[numSamples-1] */
-    imag_sum += ((q31_t) * pSrcA++ * *pSrcB++);
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  /* Store the real and imaginary results in 8.24 format  */
-  /* Convert real data in 34.30 to 8.24 by 6 right shifts */
-  *realResult = (q31_t) (real_sum) >> 6;
-  /* Convert imaginary data in 34.30 to 8.24 by 6 right shifts */
-  *imagResult = (q31_t) (imag_sum) >> 6;
-}
-
-/**    
- * @} end of cmplx_dot_prod group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c
deleted file mode 100644
index d371dff8b2..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_dot_prod_q31.c    
-*    
-* Description:	Q31 complex dot product    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup cmplx_dot_prod    
- * @{    
- */
-
-/**    
- * @brief  Q31 complex dot product    
- * @param  *pSrcA points to the first input vector    
- * @param  *pSrcB points to the second input vector    
- * @param  numSamples number of complex samples in each vector    
- * @param  *realResult real part of the result returned here    
- * @param  *imagResult imaginary part of the result returned here    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function is implemented using an internal 64-bit accumulator.    
- * The intermediate 1.31 by 1.31 multiplications are performed with 64-bit precision and then shifted to 16.48 format.    
- * The internal real and imaginary accumulators are in 16.48 format and provide 15 guard bits.    
- * Additions are nonsaturating and no overflow will occur as long as numSamples is less than 32768.    
- * The return results realResult and imagResult are in 16.48 format.    
- * Input down scaling is not required.    
- */
-
-void arm_cmplx_dot_prod_q31(
-  q31_t * pSrcA,
-  q31_t * pSrcB,
-  uint32_t numSamples,
-  q63_t * realResult,
-  q63_t * imagResult)
-{
-  q63_t real_sum = 0, imag_sum = 0;              /* Temporary result storage */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* CReal = A[0]* B[0] + A[2]* B[2] + A[4]* B[4] + .....+ A[numSamples-2]* B[numSamples-2] */
-    /* Convert real data in 2.62 to 16.48 by 14 right shifts */
-    real_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-    /* CImag = A[1]* B[1] + A[3]* B[3] + A[5]* B[5] + .....+ A[numSamples-1]* B[numSamples-1] */
-    /* Convert imag data in 2.62 to 16.48 by 14 right shifts */
-    imag_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-
-    real_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-    imag_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-
-    real_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-    imag_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-
-    real_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-    imag_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples  is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* CReal = A[0]* B[0] + A[2]* B[2] + A[4]* B[4] + .....+ A[numSamples-2]* B[numSamples-2] */
-    real_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-    /* CImag = A[1]* B[1] + A[3]* B[3] + A[5]* B[5] + .....+ A[numSamples-1]* B[numSamples-1] */
-    imag_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* outReal = realA[0]* realB[0] + realA[2]* realB[2] + realA[4]* realB[4] + .....+ realA[numSamples-2]* realB[numSamples-2] */
-    real_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-    /* outImag = imagA[1]* imagB[1] + imagA[3]* imagB[3] + imagA[5]* imagB[5] + .....+ imagA[numSamples-1]* imagB[numSamples-1] */
-    imag_sum += (q63_t) * pSrcA++ * (*pSrcB++) >> 14;
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  /* Store the real and imaginary results in 16.48 format  */
-  *realResult = real_sum;
-  *imagResult = imag_sum;
-}
-
-/**    
- * @} end of cmplx_dot_prod group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c
deleted file mode 100644
index 59bbc27422..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_mag_f32.c    
-*    
-* Description:	Floating-point complex magnitude.    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @defgroup cmplx_mag Complex Magnitude    
- *    
- * Computes the magnitude of the elements of a complex data vector.    
- *   
- * The pSrc points to the source data and    
- * pDst points to the where the result should be written.    
- * numSamples specifies the number of complex samples    
- * in the input array and the data is stored in an interleaved fashion    
- * (real, imag, real, imag, ...).    
- * The input array has a total of 2*numSamples values;    
- * the output array has a total of numSamples values.    
- * The underlying algorithm is used:    
- *    
- * 
    
- * for(n=0; n    
- *    
- * There are separate functions for floating-point, Q15, and Q31 data types.    
- */
-
-/**    
- * @addtogroup cmplx_mag    
- * @{    
- */
-/**    
- * @brief Floating-point complex magnitude.    
- * @param[in]       *pSrc points to complex input buffer    
- * @param[out]      *pDst points to real output buffer    
- * @param[in]       numSamples number of complex samples in the input vector    
- * @return none.    
- *    
- */
-
-
-void arm_cmplx_mag_f32(
-  float32_t * pSrc,
-  float32_t * pDst,
-  uint32_t numSamples)
-{
-  float32_t realIn, imagIn;                      /* Temporary variables to hold input values */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    /* store the result in the destination buffer. */
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    /* store the result in the destination buffer. */
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* out = sqrt((real * real) + (imag * imag)) */
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    /* store the result in the destination buffer. */
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of cmplx_mag group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c
deleted file mode 100644
index 122ca8bc1f..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_mag_q15.c    
-*    
-* Description:	Q15 complex magnitude.    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup cmplx_mag    
- * @{    
- */
-
-
-/**    
- * @brief  Q15 complex magnitude    
- * @param  *pSrc points to the complex input vector    
- * @param  *pDst points to the real output vector    
- * @param  numSamples number of complex samples in the input vector    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function implements 1.15 by 1.15 multiplications and finally output is converted into 2.14 format.    
- */
-
-void arm_cmplx_mag_q15(
-  q15_t * pSrc,
-  q15_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t acc0, acc1;                              /* Accumulators */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-  q31_t in1, in2, in3, in4;
-  q31_t acc2, acc3;
-
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    in1 = *__SIMD32(pSrc)++;
-    in2 = *__SIMD32(pSrc)++;
-    in3 = *__SIMD32(pSrc)++;
-    in4 = *__SIMD32(pSrc)++;
-
-    acc0 = __SMUAD(in1, in1);
-    acc1 = __SMUAD(in2, in2);
-    acc2 = __SMUAD(in3, in3);
-    acc3 = __SMUAD(in4, in4);
-
-    /* store the result in 2.14 format in the destination buffer. */
-    arm_sqrt_q15((q15_t) ((acc0) >> 17), pDst++);
-    arm_sqrt_q15((q15_t) ((acc1) >> 17), pDst++);
-    arm_sqrt_q15((q15_t) ((acc2) >> 17), pDst++);
-    arm_sqrt_q15((q15_t) ((acc3) >> 17), pDst++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    in1 = *__SIMD32(pSrc)++;
-    acc0 = __SMUAD(in1, in1);
-
-    /* store the result in 2.14 format in the destination buffer. */
-    arm_sqrt_q15((q15_t) (acc0 >> 17), pDst++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  q15_t real, imag;                              /* Temporary variables to hold input values */
-
-  while(numSamples > 0u)
-  {
-    /* out = sqrt(real * real + imag * imag) */
-    real = *pSrc++;
-    imag = *pSrc++;
-
-    acc0 = (real * real);
-    acc1 = (imag * imag);
-
-    /* store the result in 2.14 format in the destination buffer. */
-    arm_sqrt_q15((q15_t) (((q63_t) acc0 + acc1) >> 17), pDst++);
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of cmplx_mag group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c
deleted file mode 100644
index 59384f5dc3..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_mag_q31.c    
-*    
-* Description:	Q31 complex magnitude    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**        
- * @ingroup groupCmplxMath        
- */
-
-/**        
- * @addtogroup cmplx_mag        
- * @{        
- */
-
-/**        
- * @brief  Q31 complex magnitude        
- * @param  *pSrc points to the complex input vector        
- * @param  *pDst points to the real output vector        
- * @param  numSamples number of complex samples in the input vector        
- * @return none.        
- *        
- * Scaling and Overflow Behavior:        
- * \par        
- * The function implements 1.31 by 1.31 multiplications and finally output is converted into 2.30 format.        
- * Input down scaling is not required.        
- */
-
-void arm_cmplx_mag_q31(
-  q31_t * pSrc,
-  q31_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t real, imag;                              /* Temporary variables to hold input values */
-  q31_t acc0, acc1;                              /* Accumulators */
-  uint32_t blkCnt;                               /* loop counter */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  q31_t real1, real2, imag1, imag2;              /* Temporary variables to hold input values */
-  q31_t out1, out2, out3, out4;                  /* Accumulators */
-  q63_t mul1, mul2, mul3, mul4;                  /* Temporary variables */
-
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.        
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* read complex input from source buffer */
-    real1 = pSrc[0];
-    imag1 = pSrc[1];
-    real2 = pSrc[2];
-    imag2 = pSrc[3];
-
-    /* calculate power of input values */
-    mul1 = (q63_t) real1 *real1;
-    mul2 = (q63_t) imag1 *imag1;
-    mul3 = (q63_t) real2 *real2;
-    mul4 = (q63_t) imag2 *imag2;
-
-    /* get the result to 3.29 format */
-    out1 = (q31_t) (mul1 >> 33);
-    out2 = (q31_t) (mul2 >> 33);
-    out3 = (q31_t) (mul3 >> 33);
-    out4 = (q31_t) (mul4 >> 33);
-
-    /* add real and imaginary accumulators */
-    out1 = out1 + out2;
-    out3 = out3 + out4;
-
-    /* read complex input from source buffer */
-    real1 = pSrc[4];
-    imag1 = pSrc[5];
-    real2 = pSrc[6];
-    imag2 = pSrc[7];
-
-    /* calculate square root */
-    arm_sqrt_q31(out1, &pDst[0]);
-
-    /* calculate power of input values */
-    mul1 = (q63_t) real1 *real1;
-
-    /* calculate square root */
-    arm_sqrt_q31(out3, &pDst[1]);
-
-    /* calculate power of input values */
-    mul2 = (q63_t) imag1 *imag1;
-    mul3 = (q63_t) real2 *real2;
-    mul4 = (q63_t) imag2 *imag2;
-
-    /* get the result to 3.29 format */
-    out1 = (q31_t) (mul1 >> 33);
-    out2 = (q31_t) (mul2 >> 33);
-    out3 = (q31_t) (mul3 >> 33);
-    out4 = (q31_t) (mul4 >> 33);
-
-    /* add real and imaginary accumulators */
-    out1 = out1 + out2;
-    out3 = out3 + out4;
-
-    /* calculate square root */
-    arm_sqrt_q31(out1, &pDst[2]);
-
-    /* increment destination by 8 to process next samples */
-    pSrc += 8u;
-
-    /* calculate square root */
-    arm_sqrt_q31(out3, &pDst[3]);
-
-    /* increment destination by 4 to process next samples */
-    pDst += 4u;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.        
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  while(blkCnt > 0u)
-  {
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 2.30 format in the destination buffer. */
-    arm_sqrt_q31(acc0 + acc1, pDst++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-}
-
-/**        
- * @} end of cmplx_mag group        
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c
deleted file mode 100644
index 7350fd1c9a..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_mag_squared_f32.c    
-*    
-* Description:	Floating-point complex magnitude squared.    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-#include "arm_math.h"
-
-/**        
- * @ingroup groupCmplxMath        
- */
-
-/**        
- * @defgroup cmplx_mag_squared Complex Magnitude Squared        
- *        
- * Computes the magnitude squared of the elements of a complex data vector.        
- *       
- * The pSrc points to the source data and        
- * pDst points to the where the result should be written.        
- * numSamples specifies the number of complex samples        
- * in the input array and the data is stored in an interleaved fashion        
- * (real, imag, real, imag, ...).        
- * The input array has a total of 2*numSamples values;        
- * the output array has a total of numSamples values.        
- *        
- * The underlying algorithm is used:        
- *        
- * 
        
- * for(n=0; n        
- *        
- * There are separate functions for floating-point, Q15, and Q31 data types.        
- */
-
-/**        
- * @addtogroup cmplx_mag_squared        
- * @{        
- */
-
-
-/**        
- * @brief  Floating-point complex magnitude squared        
- * @param[in]  *pSrc points to the complex input vector        
- * @param[out]  *pDst points to the real output vector        
- * @param[in]  numSamples number of complex samples in the input vector        
- * @return none.        
- */
-
-void arm_cmplx_mag_squared_f32(
-  float32_t * pSrc,
-  float32_t * pDst,
-  uint32_t numSamples)
-{
-  float32_t real, imag;                          /* Temporary variables to store real and imaginary values */
-  uint32_t blkCnt;                               /* loop counter */
-
-#ifndef ARM_MATH_CM0
-  float32_t real1, real2, real3, real4;          /* Temporary variables to hold real values */
-  float32_t imag1, imag2, imag3, imag4;          /* Temporary variables to hold imaginary values */
-  float32_t mul1, mul2, mul3, mul4;              /* Temporary variables */
-  float32_t mul5, mul6, mul7, mul8;              /* Temporary variables */
-  float32_t out1, out2, out3, out4;              /* Temporary variables to hold output values */
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.        
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    /* read real input sample from source buffer */
-    real1 = pSrc[0];
-    /* read imaginary input sample from source buffer */
-    imag1 = pSrc[1];
-
-    /* calculate power of real value */
-    mul1 = real1 * real1;
-
-    /* read real input sample from source buffer */
-    real2 = pSrc[2];
-
-    /* calculate power of imaginary value */
-    mul2 = imag1 * imag1;
-
-    /* read imaginary input sample from source buffer */
-    imag2 = pSrc[3];
-
-    /* calculate power of real value */
-    mul3 = real2 * real2;
-
-    /* read real input sample from source buffer */
-    real3 = pSrc[4];
-
-    /* calculate power of imaginary value */
-    mul4 = imag2 * imag2;
-
-    /* read imaginary input sample from source buffer */
-    imag3 = pSrc[5];
-
-    /* calculate power of real value */
-    mul5 = real3 * real3;
-    /* calculate power of imaginary value */
-    mul6 = imag3 * imag3;
-
-    /* read real input sample from source buffer */
-    real4 = pSrc[6];
-
-    /* accumulate real and imaginary powers */
-    out1 = mul1 + mul2;
-
-    /* read imaginary input sample from source buffer */
-    imag4 = pSrc[7];
-
-    /* accumulate real and imaginary powers */
-    out2 = mul3 + mul4;
-
-    /* calculate power of real value */
-    mul7 = real4 * real4;
-    /* calculate power of imaginary value */
-    mul8 = imag4 * imag4;
-
-    /* store output to destination */
-    pDst[0] = out1;
-
-    /* accumulate real and imaginary powers */
-    out3 = mul5 + mul6;
-
-    /* store output to destination */
-    pDst[1] = out2;
-
-    /* accumulate real and imaginary powers */
-    out4 = mul7 + mul8;
-
-    /* store output to destination */
-    pDst[2] = out3;
-
-    /* increment destination pointer by 8 to process next samples */
-    pSrc += 8u;
-
-    /* store output to destination */
-    pDst[3] = out4;
-
-    /* increment destination pointer by 4 to process next samples */
-    pDst += 4u;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.        
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  blkCnt = numSamples;
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  while(blkCnt > 0u)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    real = *pSrc++;
-    imag = *pSrc++;
-
-    /* out = (real * real) + (imag * imag) */
-    /* store the result in the destination buffer. */
-    *pDst++ = (real * real) + (imag * imag);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-}
-
-/**        
- * @} end of cmplx_mag_squared group        
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c
deleted file mode 100644
index 623229b8f7..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_mag_squared_q15.c    
-*    
-* Description:	Q15 complex magnitude squared.    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup cmplx_mag_squared    
- * @{    
- */
-
-/**    
- * @brief  Q15 complex magnitude squared    
- * @param  *pSrc points to the complex input vector    
- * @param  *pDst points to the real output vector    
- * @param  numSamples number of complex samples in the input vector    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function implements 1.15 by 1.15 multiplications and finally output is converted into 3.13 format.    
- */
-
-void arm_cmplx_mag_squared_q15(
-  q15_t * pSrc,
-  q15_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t acc0, acc1;                              /* Accumulators */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-  q31_t in1, in2, in3, in4;
-  q31_t acc2, acc3;
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    in1 = *__SIMD32(pSrc)++;
-    in2 = *__SIMD32(pSrc)++;
-    in3 = *__SIMD32(pSrc)++;
-    in4 = *__SIMD32(pSrc)++;
-
-    acc0 = __SMUAD(in1, in1);
-    acc1 = __SMUAD(in2, in2);
-    acc2 = __SMUAD(in3, in3);
-    acc3 = __SMUAD(in4, in4);
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ = (q15_t) (acc0 >> 17);
-    *pDst++ = (q15_t) (acc1 >> 17);
-    *pDst++ = (q15_t) (acc2 >> 17);
-    *pDst++ = (q15_t) (acc3 >> 17);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    in1 = *__SIMD32(pSrc)++;
-    acc0 = __SMUAD(in1, in1);
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ = (q15_t) (acc0 >> 17);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  q15_t real, imag;                              /* Temporary variables to store real and imaginary values */
-
-  while(numSamples > 0u)
-  {
-    /* out = ((real * real) + (imag * imag)) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (real * real);
-    acc1 = (imag * imag);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ = (q15_t) (((q63_t) acc0 + acc1) >> 17);
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of cmplx_mag_squared group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c
deleted file mode 100644
index d45ccfab2f..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_cmplx_mag_squared_q31.c    
-*    
-* Description:	Q31 complex magnitude squared.    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ---------------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup cmplx_mag_squared    
- * @{    
- */
-
-
-/**    
- * @brief  Q31 complex magnitude squared    
- * @param  *pSrc points to the complex input vector    
- * @param  *pDst points to the real output vector    
- * @param  numSamples number of complex samples in the input vector    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function implements 1.31 by 1.31 multiplications and finally output is converted into 3.29 format.    
- * Input down scaling is not required.    
- */
-
-void arm_cmplx_mag_squared_q31(
-  q31_t * pSrc,
-  q31_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t real, imag;                              /* Temporary variables to store real and imaginary values */
-  q31_t acc0, acc1;                              /* Accumulators */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* out = ((real * real) + (imag * imag)) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of cmplx_mag_squared group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c
deleted file mode 100644
index 2ec9ee862b..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_cmplx_mult_cmplx_f32.c    
-*    
-* Description:	Floating-point complex-by-complex multiplication    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-#include "arm_math.h"
-
-/**        
- * @ingroup groupCmplxMath        
- */
-
-/**        
- * @defgroup CmplxByCmplxMult Complex-by-Complex Multiplication        
- *        
- * Multiplies a complex vector by another complex vector and generates a complex result.        
- * The data in the complex arrays is stored in an interleaved fashion        
- * (real, imag, real, imag, ...).        
- * The parameter numSamples represents the number of complex        
- * samples processed.  The complex arrays have a total of 2*numSamples        
- * real values.        
- *        
- * The underlying algorithm is used:        
- *        
- * 
        
- * for(n=0; n        
- *        
- * There are separate functions for floating-point, Q15, and Q31 data types.        
- */
-
-/**        
- * @addtogroup CmplxByCmplxMult        
- * @{        
- */
-
-
-/**        
- * @brief  Floating-point complex-by-complex multiplication        
- * @param[in]  *pSrcA points to the first input vector        
- * @param[in]  *pSrcB points to the second input vector        
- * @param[out]  *pDst  points to the output vector        
- * @param[in]  numSamples number of complex samples in each vector        
- * @return none.        
- */
-
-void arm_cmplx_mult_cmplx_f32(
-  float32_t * pSrcA,
-  float32_t * pSrcB,
-  float32_t * pDst,
-  uint32_t numSamples)
-{
-  float32_t a1, b1, c1, d1;                      /* Temporary variables to store real and imaginary values */
-  uint32_t blkCnt;                               /* loop counters */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  float32_t a2, b2, c2, d2;                      /* Temporary variables to store real and imaginary values */
-  float32_t acc1, acc2, acc3, acc4;
-
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.        
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a1 = *pSrcA;                /* A[2 * i] */
-    c1 = *pSrcB;                /* B[2 * i] */
-
-    b1 = *(pSrcA + 1);          /* A[2 * i + 1] */
-    acc1 = a1 * c1;             /* acc1 = A[2 * i] * B[2 * i] */
-
-    a2 = *(pSrcA + 2);          /* A[2 * i + 2] */
-    acc2 = (b1 * c1);           /* acc2 = A[2 * i + 1] * B[2 * i] */
-
-    d1 = *(pSrcB + 1);          /* B[2 * i + 1] */
-    c2 = *(pSrcB + 2);          /* B[2 * i + 2] */
-    acc1 -= b1 * d1;            /* acc1 =      A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1] */
-
-    d2 = *(pSrcB + 3);          /* B[2 * i + 3] */
-    acc3 = a2 * c2;             /* acc3 =       A[2 * i + 2] * B[2 * i + 2] */
-
-    b2 = *(pSrcA + 3);          /* A[2 * i + 3] */
-    acc2 += (a1 * d1);          /* acc2 =      A[2 * i + 1] * B[2 * i] + A[2 * i] * B[2 * i + 1] */
-
-    a1 = *(pSrcA + 4);          /* A[2 * i + 4] */
-    acc4 = (a2 * d2);           /* acc4 =   A[2 * i + 2] * B[2 * i + 3] */
-
-    c1 = *(pSrcB + 4);          /* B[2 * i + 4] */
-    acc3 -= (b2 * d2);          /* acc3 =       A[2 * i + 2] * B[2 * i + 2] - A[2 * i + 3] * B[2 * i + 3] */
-    *pDst = acc1;               /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1] */
-
-    b1 = *(pSrcA + 5);          /* A[2 * i + 5] */
-    acc4 += b2 * c2;            /* acc4 =   A[2 * i + 2] * B[2 * i + 3] + A[2 * i + 3] * B[2 * i + 2] */
-
-    *(pDst + 1) = acc2;         /* C[2 * i + 1] = A[2 * i + 1] * B[2 * i] + A[2 * i] * B[2 * i + 1]  */
-    acc1 = (a1 * c1);
-
-    d1 = *(pSrcB + 5);
-    acc2 = (b1 * c1);
-
-    *(pDst + 2) = acc3;
-    *(pDst + 3) = acc4;
-
-    a2 = *(pSrcA + 6);
-    acc1 -= (b1 * d1);
-
-    c2 = *(pSrcB + 6);
-    acc2 += (a1 * d1);
-
-    b2 = *(pSrcA + 7);
-    acc3 = (a2 * c2);
-
-    d2 = *(pSrcB + 7);
-    acc4 = (b2 * c2);
-
-    *(pDst + 4) = acc1;
-    pSrcA += 8u;
-
-    acc3 -= (b2 * d2);
-    acc4 += (a2 * d2);
-
-    *(pDst + 5) = acc2;
-    pSrcB += 8u;
-
-    *(pDst + 6) = acc3;
-    *(pDst + 7) = acc4;
-
-    pDst += 8u;
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.        
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a1 = *pSrcA++;
-    b1 = *pSrcA++;
-    c1 = *pSrcB++;
-    d1 = *pSrcB++;
-
-    /* store the result in the destination buffer. */
-    *pDst++ = (a1 * c1) - (b1 * d1);
-    *pDst++ = (a1 * d1) + (b1 * c1);
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-}
-
-/**        
- * @} end of CmplxByCmplxMult group        
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c
deleted file mode 100644
index 0219aea48a..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_cmplx_mult_cmplx_q15.c    
-*    
-* Description:	Q15 complex-by-complex multiplication    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup CmplxByCmplxMult    
- * @{    
- */
-
-/**    
- * @brief  Q15 complex-by-complex multiplication    
- * @param[in]  *pSrcA points to the first input vector    
- * @param[in]  *pSrcB points to the second input vector    
- * @param[out]  *pDst  points to the output vector    
- * @param[in]  numSamples number of complex samples in each vector    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function implements 1.15 by 1.15 multiplications and finally output is converted into 3.13 format.    
- */
-
-void arm_cmplx_mult_cmplx_q15(
-  q15_t * pSrcA,
-  q15_t * pSrcB,
-  q15_t * pDst,
-  uint32_t numSamples)
-{
-  q15_t a, b, c, d;                              /* Temporary variables to store real and imaginary values */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counters */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-  /* If the blockSize is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    /* Decrement the blockSize loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of CmplxByCmplxMult group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c
deleted file mode 100644
index 13fc060a2e..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_cmplx_mult_cmplx_q31.c    
-*    
-* Description:	Q31 complex-by-complex multiplication    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup CmplxByCmplxMult    
- * @{    
- */
-
-
-/**    
- * @brief  Q31 complex-by-complex multiplication    
- * @param[in]  *pSrcA points to the first input vector    
- * @param[in]  *pSrcB points to the second input vector    
- * @param[out]  *pDst  points to the output vector    
- * @param[in]  numSamples number of complex samples in each vector    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function implements 1.31 by 1.31 multiplications and finally output is converted into 3.29 format.    
- * Input down scaling is not required.    
- */
-
-void arm_cmplx_mult_cmplx_q31(
-  q31_t * pSrcA,
-  q31_t * pSrcB,
-  q31_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t a, b, c, d;                              /* Temporary variables to store real and imaginary values */
-  uint32_t blkCnt;                               /* loop counters */
-  q31_t mul1, mul2, mul3, mul4;
-  q31_t out1, out2;
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-  /* If the blockSize is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 1u;
-
-  /* First part of the processing with loop unrolling.  Compute 2 outputs at a time.     
-   ** a second loop below computes the remaining 1 sample. */
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-  /* If the blockSize is not a multiple of 2, compute any remaining output samples here.     
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x2u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of CmplxByCmplxMult group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c
deleted file mode 100644
index 7a5bdf9cda..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_cmplx_mult_real_f32.c    
-*    
-* Description:	Floating-point complex by real multiplication    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**        
- * @ingroup groupCmplxMath        
- */
-
-/**        
- * @defgroup CmplxByRealMult Complex-by-Real Multiplication        
- *        
- * Multiplies a complex vector by a real vector and generates a complex result.        
- * The data in the complex arrays is stored in an interleaved fashion        
- * (real, imag, real, imag, ...).        
- * The parameter numSamples represents the number of complex        
- * samples processed.  The complex arrays have a total of 2*numSamples        
- * real values while the real array has a total of numSamples        
- * real values.        
- *        
- * The underlying algorithm is used:        
- *        
- * 
        
- * for(n=0; n        
- *        
- * There are separate functions for floating-point, Q15, and Q31 data types.        
- */
-
-/**        
- * @addtogroup CmplxByRealMult        
- * @{        
- */
-
-
-/**        
- * @brief  Floating-point complex-by-real multiplication        
- * @param[in]  *pSrcCmplx points to the complex input vector        
- * @param[in]  *pSrcReal points to the real input vector        
- * @param[out]  *pCmplxDst points to the complex output vector        
- * @param[in]  numSamples number of samples in each vector        
- * @return none.        
- */
-
-void arm_cmplx_mult_real_f32(
-  float32_t * pSrcCmplx,
-  float32_t * pSrcReal,
-  float32_t * pCmplxDst,
-  uint32_t numSamples)
-{
-  float32_t in;                                  /* Temporary variable to store input value */
-  uint32_t blkCnt;                               /* loop counters */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  float32_t inA1, inA2, inA3, inA4;              /* Temporary variables to hold input data */
-  float32_t inA5, inA6, inA7, inA8;              /* Temporary variables to hold input data */
-  float32_t inB1, inB2, inB3, inB4;              /* Temporary variables to hold input data */
-  float32_t out1, out2, out3, out4;              /* Temporary variables to hold output data */
-  float32_t out5, out6, out7, out8;              /* Temporary variables to hold output data */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.        
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    /* read input from complex input buffer */
-    inA1 = pSrcCmplx[0];
-    inA2 = pSrcCmplx[1];
-    /* read input from real input buffer */
-    inB1 = pSrcReal[0];
-
-    /* read input from complex input buffer */
-    inA3 = pSrcCmplx[2];
-
-    /* multiply complex buffer real input with real buffer input */
-    out1 = inA1 * inB1;
-
-    /* read input from complex input buffer */
-    inA4 = pSrcCmplx[3];
-
-    /* multiply complex buffer imaginary input with real buffer input */
-    out2 = inA2 * inB1;
-
-    /* read input from real input buffer */
-    inB2 = pSrcReal[1];
-    /* read input from complex input buffer */
-    inA5 = pSrcCmplx[4];
-
-    /* multiply complex buffer real input with real buffer input */
-    out3 = inA3 * inB2;
-
-    /* read input from complex input buffer */
-    inA6 = pSrcCmplx[5];
-    /* read input from real input buffer */
-    inB3 = pSrcReal[2];
-
-    /* multiply complex buffer imaginary input with real buffer input */
-    out4 = inA4 * inB2;
-
-    /* read input from complex input buffer */
-    inA7 = pSrcCmplx[6];
-
-    /* multiply complex buffer real input with real buffer input */
-    out5 = inA5 * inB3;
-
-    /* read input from complex input buffer */
-    inA8 = pSrcCmplx[7];
-
-    /* multiply complex buffer imaginary input with real buffer input */
-    out6 = inA6 * inB3;
-
-    /* read input from real input buffer */
-    inB4 = pSrcReal[3];
-
-    /* store result to destination bufer */
-    pCmplxDst[0] = out1;
-
-    /* multiply complex buffer real input with real buffer input */
-    out7 = inA7 * inB4;
-
-    /* store result to destination bufer */
-    pCmplxDst[1] = out2;
-
-    /* multiply complex buffer imaginary input with real buffer input */
-    out8 = inA8 * inB4;
-
-    /* store result to destination bufer */
-    pCmplxDst[2] = out3;
-    pCmplxDst[3] = out4;
-    pCmplxDst[4] = out5;
-
-    /* incremnet complex input buffer by 8 to process next samples */
-    pSrcCmplx += 8u;
-
-    /* store result to destination bufer */
-    pCmplxDst[5] = out6;
-
-    /* increment real input buffer by 4 to process next samples */
-    pSrcReal += 4u;
-
-    /* store result to destination bufer */
-    pCmplxDst[6] = out7;
-    pCmplxDst[7] = out8;
-
-    /* increment destination buffer by 8 to process next sampels */
-    pCmplxDst += 8u;
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.        
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    in = *pSrcReal++;
-    /* store the result in the destination buffer. */
-    *pCmplxDst++ = (*pSrcCmplx++) * (in);
-    *pCmplxDst++ = (*pSrcCmplx++) * (in);
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-}
-
-/**        
- * @} end of CmplxByRealMult group        
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c
deleted file mode 100644
index a44158c4ff..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_cmplx_mult_real_q15.c    
-*    
-* Description:	Q15 complex by real multiplication    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup CmplxByRealMult    
- * @{    
- */
-
-
-/**    
- * @brief  Q15 complex-by-real multiplication    
- * @param[in]  *pSrcCmplx points to the complex input vector    
- * @param[in]  *pSrcReal points to the real input vector    
- * @param[out]  *pCmplxDst points to the complex output vector    
- * @param[in]  numSamples number of samples in each vector    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function uses saturating arithmetic.    
- * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated.    
- */
-
-void arm_cmplx_mult_real_q15(
-  q15_t * pSrcCmplx,
-  q15_t * pSrcReal,
-  q15_t * pCmplxDst,
-  uint32_t numSamples)
-{
-  q15_t in;                                      /* Temporary variable to store input value */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counters */
-  q31_t inA1, inA2;                              /* Temporary variables to hold input data */
-  q31_t inB1;                                    /* Temporary variables to hold input data */
-  q15_t out1, out2, out3, out4;                  /* Temporary variables to hold output data */
-  q31_t mul1, mul2, mul3, mul4;                  /* Temporary variables to hold intermediate data */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    /* read complex number both real and imaginary from complex input buffer */
-    inA1 = *__SIMD32(pSrcCmplx)++;
-    /* read two real values at a time from real input buffer */
-    inB1 = *__SIMD32(pSrcReal)++;
-    /* read complex number both real and imaginary from complex input buffer */
-    inA2 = *__SIMD32(pSrcCmplx)++;
-
-    /* multiply complex number with real numbers */
-#ifndef ARM_MATH_BIG_ENDIAN
-
-    mul1 = (q31_t) ((q15_t) (inA1) * (q15_t) (inB1));
-    mul2 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1));
-    mul3 = (q31_t) ((q15_t) (inA2) * (q15_t) (inB1 >> 16));
-    mul4 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) (inB1 >> 16));
-
-#else
-
-    mul2 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1 >> 16));
-    mul1 = (q31_t) ((q15_t) inA1 * (q15_t) (inB1 >> 16));
-    mul4 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) inB1);
-    mul3 = (q31_t) ((q15_t) inA2 * (q15_t) inB1);
-
-#endif //      #ifndef ARM_MATH_BIG_ENDIAN
-
-    /* saturate the result */
-    out1 = (q15_t) __SSAT(mul1 >> 15u, 16);
-    out2 = (q15_t) __SSAT(mul2 >> 15u, 16);
-    out3 = (q15_t) __SSAT(mul3 >> 15u, 16);
-    out4 = (q15_t) __SSAT(mul4 >> 15u, 16);
-
-    /* pack real and imaginary outputs and store them to destination */
-    *__SIMD32(pCmplxDst)++ = __PKHBT(out1, out2, 16);
-    *__SIMD32(pCmplxDst)++ = __PKHBT(out3, out4, 16);
-
-    inA1 = *__SIMD32(pSrcCmplx)++;
-    inB1 = *__SIMD32(pSrcReal)++;
-    inA2 = *__SIMD32(pSrcCmplx)++;
-
-#ifndef ARM_MATH_BIG_ENDIAN
-
-    mul1 = (q31_t) ((q15_t) (inA1) * (q15_t) (inB1));
-    mul2 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1));
-    mul3 = (q31_t) ((q15_t) (inA2) * (q15_t) (inB1 >> 16));
-    mul4 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) (inB1 >> 16));
-
-#else
-
-    mul2 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1 >> 16));
-    mul1 = (q31_t) ((q15_t) inA1 * (q15_t) (inB1 >> 16));
-    mul4 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) inB1);
-    mul3 = (q31_t) ((q15_t) inA2 * (q15_t) inB1);
-
-#endif //      #ifndef ARM_MATH_BIG_ENDIAN
-
-    out1 = (q15_t) __SSAT(mul1 >> 15u, 16);
-    out2 = (q15_t) __SSAT(mul2 >> 15u, 16);
-    out3 = (q15_t) __SSAT(mul3 >> 15u, 16);
-    out4 = (q15_t) __SSAT(mul4 >> 15u, 16);
-
-    *__SIMD32(pCmplxDst)++ = __PKHBT(out1, out2, 16);
-    *__SIMD32(pCmplxDst)++ = __PKHBT(out3, out4, 16);
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    in = *pSrcReal++;
-    /* store the result in the destination buffer. */
-    *pCmplxDst++ =
-      (q15_t) __SSAT((((q31_t) (*pSrcCmplx++) * (in)) >> 15), 16);
-    *pCmplxDst++ =
-      (q15_t) __SSAT((((q31_t) (*pSrcCmplx++) * (in)) >> 15), 16);
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* realOut = realA * realB.            */
-    /* imagOut = imagA * realB.                */
-    in = *pSrcReal++;
-    /* store the result in the destination buffer. */
-    *pCmplxDst++ =
-      (q15_t) __SSAT((((q31_t) (*pSrcCmplx++) * (in)) >> 15), 16);
-    *pCmplxDst++ =
-      (q15_t) __SSAT((((q31_t) (*pSrcCmplx++) * (in)) >> 15), 16);
-
-    /* Decrement the numSamples loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of CmplxByRealMult group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c
deleted file mode 100644
index b286acdb6d..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_cmplx_mult_real_q31.c    
-*    
-* Description:	Q31 complex by real multiplication    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupCmplxMath    
- */
-
-/**    
- * @addtogroup CmplxByRealMult    
- * @{    
- */
-
-
-/**    
- * @brief  Q31 complex-by-real multiplication    
- * @param[in]  *pSrcCmplx points to the complex input vector    
- * @param[in]  *pSrcReal points to the real input vector    
- * @param[out]  *pCmplxDst points to the complex output vector    
- * @param[in]  numSamples number of samples in each vector    
- * @return none.    
- *    
- * Scaling and Overflow Behavior:    
- * \par    
- * The function uses saturating arithmetic.    
- * Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] will be saturated.    
- */
-
-void arm_cmplx_mult_real_q31(
-  q31_t * pSrcCmplx,
-  q31_t * pSrcReal,
-  q31_t * pCmplxDst,
-  uint32_t numSamples)
-{
-  q31_t inA1;                                    /* Temporary variable to store input value */
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counters */
-  q31_t inA2, inA3, inA4;                        /* Temporary variables to hold input data */
-  q31_t inB1, inB2;                              /* Temporary variabels to hold input data */
-  q31_t out1, out2, out3, out4;                  /* Temporary variables to hold output data */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2u;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.    
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    /* read real input from complex input buffer */
-    inA1 = *pSrcCmplx++;
-    inA2 = *pSrcCmplx++;
-    /* read input from real input bufer */
-    inB1 = *pSrcReal++;
-    inB2 = *pSrcReal++;
-    /* read imaginary input from complex input buffer */
-    inA3 = *pSrcCmplx++;
-    inA4 = *pSrcCmplx++;
-
-    /* multiply complex input with real input */
-    out1 = ((q63_t) inA1 * inB1) >> 32;
-    out2 = ((q63_t) inA2 * inB1) >> 32;
-    out3 = ((q63_t) inA3 * inB2) >> 32;
-    out4 = ((q63_t) inA4 * inB2) >> 32;
-
-    /* sature the result */
-    out1 = __SSAT(out1, 31);
-    out2 = __SSAT(out2, 31);
-    out3 = __SSAT(out3, 31);
-    out4 = __SSAT(out4, 31);
-
-    /* get result in 1.31 format */
-    out1 = out1 << 1;
-    out2 = out2 << 1;
-    out3 = out3 << 1;
-    out4 = out4 << 1;
-
-    /* store the result to destination buffer */
-    *pCmplxDst++ = out1;
-    *pCmplxDst++ = out2;
-    *pCmplxDst++ = out3;
-    *pCmplxDst++ = out4;
-
-    /* read real input from complex input buffer */
-    inA1 = *pSrcCmplx++;
-    inA2 = *pSrcCmplx++;
-    /* read input from real input bufer */
-    inB1 = *pSrcReal++;
-    inB2 = *pSrcReal++;
-    /* read imaginary input from complex input buffer */
-    inA3 = *pSrcCmplx++;
-    inA4 = *pSrcCmplx++;
-
-    /* multiply complex input with real input */
-    out1 = ((q63_t) inA1 * inB1) >> 32;
-    out2 = ((q63_t) inA2 * inB1) >> 32;
-    out3 = ((q63_t) inA3 * inB2) >> 32;
-    out4 = ((q63_t) inA4 * inB2) >> 32;
-
-    /* sature the result */
-    out1 = __SSAT(out1, 31);
-    out2 = __SSAT(out2, 31);
-    out3 = __SSAT(out3, 31);
-    out4 = __SSAT(out4, 31);
-
-    /* get result in 1.31 format */
-    out1 = out1 << 1;
-    out2 = out2 << 1;
-    out3 = out3 << 1;
-    out4 = out4 << 1;
-
-    /* store the result to destination buffer */
-    *pCmplxDst++ = out1;
-    *pCmplxDst++ = out2;
-    *pCmplxDst++ = out3;
-    *pCmplxDst++ = out4;
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.    
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4u;
-
-  while(blkCnt > 0u)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    /* read real input from complex input buffer */
-    inA1 = *pSrcCmplx++;
-    inA2 = *pSrcCmplx++;
-    /* read input from real input bufer */
-    inB1 = *pSrcReal++;
-
-    /* multiply complex input with real input */
-    out1 = ((q63_t) inA1 * inB1) >> 32;
-    out2 = ((q63_t) inA2 * inB1) >> 32;
-
-    /* sature the result */
-    out1 = __SSAT(out1, 31);
-    out2 = __SSAT(out2, 31);
-
-    /* get result in 1.31 format */
-    out1 = out1 << 1;
-    out2 = out2 << 1;
-
-    /* store the result to destination buffer */
-    *pCmplxDst++ = out1;
-    *pCmplxDst++ = out2;
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while(numSamples > 0u)
-  {
-    /* realOut = realA * realB.            */
-    /* imagReal = imagA * realB.               */
-    inA1 = *pSrcReal++;
-    /* store the result in the destination buffer. */
-    *pCmplxDst++ =
-      (q31_t) clip_q63_to_q31(((q63_t) * pSrcCmplx++ * inA1) >> 31);
-    *pCmplxDst++ =
-      (q31_t) clip_q63_to_q31(((q63_t) * pSrcCmplx++ * inA1) >> 31);
-
-    /* Decrement the numSamples loop counter */
-    numSamples--;
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of CmplxByRealMult group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c
deleted file mode 100644
index 37e48f609b..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_pid_init_f32.c    
-*    
-* Description:	Floating-point PID Control initialization function    
-*				   
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
- /**    
- * @addtogroup PID    
- * @{    
- */
-
-/**    
- * @brief  Initialization function for the floating-point PID Control.   
- * @param[in,out] *S points to an instance of the PID structure.   
- * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state & 1 = reset the state.   
- * @return none.   
- * \par Description:   
- * \par    
- * The resetStateFlag specifies whether to set state to zero or not. \n   
- * The function computes the structure fields: A0, A1 A2    
- * using the proportional gain( \c Kp), integral gain( \c Ki) and derivative gain( \c Kd)    
- * also sets the state variables to all zeros.    
- */
-
-void arm_pid_init_f32(
-  arm_pid_instance_f32 * S,
-  int32_t resetStateFlag)
-{
-
-  /* Derived coefficient A0 */
-  S->A0 = S->Kp + S->Ki + S->Kd;
-
-  /* Derived coefficient A1 */
-  S->A1 = (-S->Kp) - ((float32_t) 2.0 * S->Kd);
-
-  /* Derived coefficient A2 */
-  S->A2 = S->Kd;
-
-  /* Check whether state needs reset or not */
-  if(resetStateFlag)
-  {
-    /* Clear the state buffer.  The size will be always 3 samples */
-    memset(S->state, 0, 3u * sizeof(float32_t));
-  }
-
-}
-
-/**    
- * @} end of PID group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q15.c
deleted file mode 100644
index 1816bc9aa1..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q15.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_pid_init_q15.c    
-*    
-* Description:	Q15 PID Control initialization function    
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
- /**    
- * @addtogroup PID    
- * @{    
- */
-
-/**    
- * @details    
- * @param[in,out] *S points to an instance of the Q15 PID structure.    
- * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.    
- * @return none.    
- * \par Description:   
- * \par    
- * The resetStateFlag specifies whether to set state to zero or not. \n   
- * The function computes the structure fields: A0, A1 A2    
- * using the proportional gain( \c Kp), integral gain( \c Ki) and derivative gain( \c Kd)    
- * also sets the state variables to all zeros.    
- */
-
-void arm_pid_init_q15(
-  arm_pid_instance_q15 * S,
-  int32_t resetStateFlag)
-{
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-
-  /* Derived coefficient A0 */
-  S->A0 = __QADD16(__QADD16(S->Kp, S->Ki), S->Kd);
-
-  /* Derived coefficients and pack into A1 */
-
-#ifndef  ARM_MATH_BIG_ENDIAN
-
-  S->A1 = __PKHBT(-__QADD16(__QADD16(S->Kd, S->Kd), S->Kp), S->Kd, 16);
-
-#else
-
-  S->A1 = __PKHBT(S->Kd, -__QADD16(__QADD16(S->Kd, S->Kd), S->Kp), 16);
-
-#endif /*      #ifndef  ARM_MATH_BIG_ENDIAN    */
-
-  /* Check whether state needs reset or not */
-  if(resetStateFlag)
-  {
-    /* Clear the state buffer.  The size will be always 3 samples */
-    memset(S->state, 0, 3u * sizeof(q15_t));
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  q31_t temp;                                    /*to store the sum */
-
-  /* Derived coefficient A0 */
-  temp = S->Kp + S->Ki + S->Kd;
-  S->A0 = (q15_t) __SSAT(temp, 16);
-
-  /* Derived coefficients and pack into A1 */
-  temp = -(S->Kd + S->Kd + S->Kp);
-  S->A1 = (q15_t) __SSAT(temp, 16);
-  S->A2 = S->Kd;
-
-
-
-  /* Check whether state needs reset or not */
-  if(resetStateFlag)
-  {
-    /* Clear the state buffer.  The size will be always 3 samples */
-    memset(S->state, 0, 3u * sizeof(q15_t));
-  }
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-}
-
-/**    
- * @} end of PID group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q31.c
deleted file mode 100644
index da40ce973d..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q31.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_pid_init_q31.c    
-*    
-* Description:	Q31 PID Control initialization function     
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
- /**    
- * @addtogroup PID    
- * @{    
- */
-
-/**    
- * @brief  Initialization function for the Q31 PID Control.   
- * @param[in,out] *S points to an instance of the Q31 PID structure.   
- * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.   
- * @return none.    
- * \par Description:   
- * \par    
- * The resetStateFlag specifies whether to set state to zero or not. \n   
- * The function computes the structure fields: A0, A1 A2    
- * using the proportional gain( \c Kp), integral gain( \c Ki) and derivative gain( \c Kd)    
- * also sets the state variables to all zeros.    
- */
-
-void arm_pid_init_q31(
-  arm_pid_instance_q31 * S,
-  int32_t resetStateFlag)
-{
-
-#ifndef ARM_MATH_CM0
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-
-  /* Derived coefficient A0 */
-  S->A0 = __QADD(__QADD(S->Kp, S->Ki), S->Kd);
-
-  /* Derived coefficient A1 */
-  S->A1 = -__QADD(__QADD(S->Kd, S->Kd), S->Kp);
-
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  q31_t temp;
-
-  /* Derived coefficient A0 */
-  temp = clip_q63_to_q31((q63_t) S->Kp + S->Ki);
-  S->A0 = clip_q63_to_q31((q63_t) temp + S->Kd);
-
-  /* Derived coefficient A1 */
-  temp = clip_q63_to_q31((q63_t) S->Kd + S->Kd);
-  S->A1 = -clip_q63_to_q31((q63_t) temp + S->Kp);
-
-#endif /* #ifndef ARM_MATH_CM0 */
-
-  /* Derived coefficient A2 */
-  S->A2 = S->Kd;
-
-  /* Check whether state needs reset or not */
-  if(resetStateFlag)
-  {
-    /* Clear the state buffer.  The size will be always 3 samples */
-    memset(S->state, 0, 3u * sizeof(q31_t));
-  }
-
-}
-
-/**    
- * @} end of PID group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c
deleted file mode 100644
index 491ad5268b..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_pid_reset_f32.c    
-*    
-* Description:	Floating-point PID Control reset function   
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
- /**    
- * @addtogroup PID    
- * @{    
- */
-
-/**    
-* @brief  Reset function for the floating-point PID Control.   
-* @param[in] *S	Instance pointer of PID control data structure.   
-* @return none.    
-* \par Description:   
-* The function resets the state buffer to zeros.    
-*/
-void arm_pid_reset_f32(
-  arm_pid_instance_f32 * S)
-{
-
-  /* Clear the state buffer.  The size will be always 3 samples */
-  memset(S->state, 0, 3u * sizeof(float32_t));
-}
-
-/**    
- * @} end of PID group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c
deleted file mode 100644
index dc00787460..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_pid_reset_q15.c    
-*    
-* Description:	Q15 PID Control reset function   
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
- /**    
- * @addtogroup PID    
- * @{    
- */
-
-/**    
-* @brief  Reset function for the Q15 PID Control.   
-* @param[in] *S		Instance pointer of PID control data structure.   
-* @return none.    
-* \par Description:   
-* The function resets the state buffer to zeros.    
-*/
-void arm_pid_reset_q15(
-  arm_pid_instance_q15 * S)
-{
-  /* Reset state to zero, The size will be always 3 samples */
-  memset(S->state, 0, 3u * sizeof(q15_t));
-}
-
-/**    
- * @} end of PID group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c
deleted file mode 100644
index b1ff753af3..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:	    arm_pid_reset_q31.c    
-*    
-* Description:	Q31 PID Control reset function   
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* ------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
- /**    
- * @addtogroup PID    
- * @{    
- */
-
-/**    
-* @brief  Reset function for the Q31 PID Control.   
-* @param[in] *S	Instance pointer of PID control data structure.   
-* @return none.    
-* \par Description:   
-* The function resets the state buffer to zeros.    
-*/
-void arm_pid_reset_q31(
-  arm_pid_instance_q31 * S)
-{
-
-  /* Clear the state buffer.  The size will be always 3 samples */
-  memset(S->state, 0, 3u * sizeof(q31_t));
-}
-
-/**    
- * @} end of PID group    
- */
diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_f32.c
deleted file mode 100644
index 1679a780c7..0000000000
--- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_f32.c
+++ /dev/null
@@ -1,428 +0,0 @@
-/* ----------------------------------------------------------------------    
-* Copyright (C) 2010 ARM Limited. All rights reserved.    
-*    
-* $Date:        15. February 2012  
-* $Revision: 	V1.1.0  
-*    
-* Project: 	    CMSIS DSP Library    
-* Title:		arm_sin_cos_f32.c    
-*    
-* Description:	Sine and Cosine calculation for floating-point values.   
-*    
-* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
-*  
-* Version 1.1.0 2012/02/15 
-*    Updated with more optimizations, bug fixes and minor API changes.  
-*   
-* Version 1.0.10 2011/7/15  
-*    Big Endian support added and Merged M0 and M3/M4 Source code.   
-*    
-* Version 1.0.3 2010/11/29   
-*    Re-organized the CMSIS folders and updated documentation.    
-*     
-* Version 1.0.2 2010/11/11    
-*    Documentation updated.     
-*    
-* Version 1.0.1 2010/10/05     
-*    Production release and review comments incorporated.    
-*    
-* Version 1.0.0 2010/09/20     
-*    Production release and review comments incorporated.    
-* -------------------------------------------------------------------- */
-
-#include "arm_math.h"
-
-/**    
- * @ingroup groupController    
- */
-
-/**    
- * @defgroup SinCos Sine Cosine   
- *    
- * Computes the trigonometric sine and cosine values using a combination of table lookup   
- * and linear interpolation.     
- * There are separate functions for Q31 and floating-point data types.   
- * The input to the floating-point version is in degrees while the   
- * fixed-point Q31 have a scaled input with the range   
- * [-1 0.9999] mapping to [-180 179] degrees.   
- *   
- * The implementation is based on table lookup using 360 values together with linear interpolation.   
- * The steps used are:   
- *  -# Calculation of the nearest integer table index.   
- *  -# Compute the fractional portion (fract) of the input.   
- *  -# Fetch the value corresponding to \c index from sine table to \c y0 and also value from \c index+1 to \c y1.      
- *  -# Sine value is computed as  *psinVal = y0 + (fract * (y1 - y0)).    
- *  -# Fetch the value corresponding to \c index from cosine table to \c y0 and also value from \c index+1 to \c y1.      
- *  -# Cosine value is computed as  *pcosVal = y0 + (fract * (y1 - y0)).    
- */
-
- /**    
- * @addtogroup SinCos    
- * @{    
- */
-
-
-/**    
-* \par    
-* Cosine Table is generated from following loop    
-* 
for(i = 0; i < 360; i++)    
-* {    
-*    cosTable[i]= cos((i-180) * PI/180.0);    
-* } 
-*/ - -static const float32_t cosTable[360] = { - -0.999847695156391270f, -0.999390827019095760f, -0.998629534754573830f, - -0.997564050259824200f, -0.996194698091745550f, -0.994521895368273290f, - -0.992546151641321980f, -0.990268068741570250f, - -0.987688340595137660f, -0.984807753012208020f, -0.981627183447663980f, - -0.978147600733805690f, -0.974370064785235250f, -0.970295726275996470f, - -0.965925826289068200f, -0.961261695938318670f, - -0.956304755963035440f, -0.951056516295153530f, -0.945518575599316740f, - -0.939692620785908320f, -0.933580426497201740f, -0.927183854566787310f, - -0.920504853452440150f, -0.913545457642600760f, - -0.906307787036649940f, -0.898794046299167040f, -0.891006524188367790f, - -0.882947592858926770f, -0.874619707139395740f, -0.866025403784438710f, - -0.857167300702112220f, -0.848048096156425960f, - -0.838670567945424160f, -0.829037572555041620f, -0.819152044288991580f, - -0.809016994374947340f, -0.798635510047292940f, -0.788010753606721900f, - -0.777145961456970680f, -0.766044443118977900f, - -0.754709580222772010f, -0.743144825477394130f, -0.731353701619170460f, - -0.719339800338651300f, -0.707106781186547460f, -0.694658370458997030f, - -0.681998360062498370f, -0.669130606358858240f, - -0.656059028990507500f, -0.642787609686539360f, -0.629320391049837280f, - -0.615661475325658290f, -0.601815023152048380f, -0.587785252292473030f, - -0.573576436351045830f, -0.559192903470746680f, - -0.544639035015027080f, -0.529919264233204790f, -0.515038074910054270f, - -0.499999999999999780f, -0.484809620246337000f, -0.469471562785890530f, - -0.453990499739546750f, -0.438371146789077510f, - -0.422618261740699330f, -0.406736643075800100f, -0.390731128489273600f, - -0.374606593415912070f, -0.358367949545300270f, -0.342020143325668710f, - -0.325568154457156420f, -0.309016994374947340f, - -0.292371704722736660f, -0.275637355816999050f, -0.258819045102520850f, - -0.241921895599667790f, -0.224951054343864810f, -0.207911690817759120f, - -0.190808995376544800f, -0.173648177666930300f, - -0.156434465040231040f, -0.139173100960065350f, -0.121869343405147370f, - -0.104528463267653330f, -0.087155742747658235f, -0.069756473744125330f, - -0.052335956242943620f, -0.034899496702500733f, - -0.017452406437283477f, 0.000000000000000061f, 0.017452406437283376f, - 0.034899496702501080f, 0.052335956242943966f, 0.069756473744125455f, - 0.087155742747658138f, 0.104528463267653460f, - 0.121869343405147490f, 0.139173100960065690f, 0.156434465040230920f, - 0.173648177666930410f, 0.190808995376544920f, 0.207911690817759450f, - 0.224951054343864920f, 0.241921895599667900f, - 0.258819045102520740f, 0.275637355816999160f, 0.292371704722736770f, - 0.309016994374947450f, 0.325568154457156760f, 0.342020143325668820f, - 0.358367949545300380f, 0.374606593415911960f, - 0.390731128489273940f, 0.406736643075800210f, 0.422618261740699440f, - 0.438371146789077460f, 0.453990499739546860f, 0.469471562785890860f, - 0.484809620246337110f, 0.500000000000000110f, - 0.515038074910054380f, 0.529919264233204900f, 0.544639035015027200f, - 0.559192903470746790f, 0.573576436351046050f, 0.587785252292473140f, - 0.601815023152048270f, 0.615661475325658290f, - 0.629320391049837500f, 0.642787609686539360f, 0.656059028990507280f, - 0.669130606358858240f, 0.681998360062498480f, 0.694658370458997370f, - 0.707106781186547570f, 0.719339800338651190f, - 0.731353701619170570f, 0.743144825477394240f, 0.754709580222772010f, - 0.766044443118978010f, 0.777145961456970900f, 0.788010753606722010f, - 0.798635510047292830f, 0.809016994374947450f, - 0.819152044288991800f, 0.829037572555041620f, 0.838670567945424050f, - 0.848048096156425960f, 0.857167300702112330f, 0.866025403784438710f, - 0.874619707139395740f, 0.882947592858926990f, - 0.891006524188367900f, 0.898794046299167040f, 0.906307787036649940f, - 0.913545457642600870f, 0.920504853452440370f, 0.927183854566787420f, - 0.933580426497201740f, 0.939692620785908430f, - 0.945518575599316850f, 0.951056516295153530f, 0.956304755963035440f, - 0.961261695938318890f, 0.965925826289068310f, 0.970295726275996470f, - 0.974370064785235250f, 0.978147600733805690f, - 0.981627183447663980f, 0.984807753012208020f, 0.987688340595137770f, - 0.990268068741570360f, 0.992546151641321980f, 0.994521895368273290f, - 0.996194698091745550f, 0.997564050259824200f, - 0.998629534754573830f, 0.999390827019095760f, 0.999847695156391270f, - 1.000000000000000000f, 0.999847695156391270f, 0.999390827019095760f, - 0.998629534754573830f, 0.997564050259824200f, - 0.996194698091745550f, 0.994521895368273290f, 0.992546151641321980f, - 0.990268068741570360f, 0.987688340595137770f, 0.984807753012208020f, - 0.981627183447663980f, 0.978147600733805690f, - 0.974370064785235250f, 0.970295726275996470f, 0.965925826289068310f, - 0.961261695938318890f, 0.956304755963035440f, 0.951056516295153530f, - 0.945518575599316850f, 0.939692620785908430f, - 0.933580426497201740f, 0.927183854566787420f, 0.920504853452440370f, - 0.913545457642600870f, 0.906307787036649940f, 0.898794046299167040f, - 0.891006524188367900f, 0.882947592858926990f, - 0.874619707139395740f, 0.866025403784438710f, 0.857167300702112330f, - 0.848048096156425960f, 0.838670567945424050f, 0.829037572555041620f, - 0.819152044288991800f, 0.809016994374947450f, - 0.798635510047292830f, 0.788010753606722010f, 0.777145961456970900f, - 0.766044443118978010f, 0.754709580222772010f, 0.743144825477394240f, - 0.731353701619170570f, 0.719339800338651190f, - 0.707106781186547570f, 0.694658370458997370f, 0.681998360062498480f, - 0.669130606358858240f, 0.656059028990507280f, 0.642787609686539360f, - 0.629320391049837500f, 0.615661475325658290f, - 0.601815023152048270f, 0.587785252292473140f, 0.573576436351046050f, - 0.559192903470746790f, 0.544639035015027200f, 0.529919264233204900f, - 0.515038074910054380f, 0.500000000000000110f, - 0.484809620246337110f, 0.469471562785890860f, 0.453990499739546860f, - 0.438371146789077460f, 0.422618261740699440f, 0.406736643075800210f, - 0.390731128489273940f, 0.374606593415911960f, - 0.358367949545300380f, 0.342020143325668820f, 0.325568154457156760f, - 0.309016994374947450f, 0.292371704722736770f, 0.275637355816999160f, - 0.258819045102520740f, 0.241921895599667900f, - 0.224951054343864920f, 0.207911690817759450f, 0.190808995376544920f, - 0.173648177666930410f, 0.156434465040230920f, 0.139173100960065690f, - 0.121869343405147490f, 0.104528463267653460f, - 0.087155742747658138f, 0.069756473744125455f, 0.052335956242943966f, - 0.034899496702501080f, 0.017452406437283376f, 0.000000000000000061f, - -0.017452406437283477f, -0.034899496702500733f, - -0.052335956242943620f, -0.069756473744125330f, -0.087155742747658235f, - -0.104528463267653330f, -0.121869343405147370f, -0.139173100960065350f, - -0.156434465040231040f, -0.173648177666930300f, - -0.190808995376544800f, -0.207911690817759120f, -0.224951054343864810f, - -0.241921895599667790f, -0.258819045102520850f, -0.275637355816999050f, - -0.292371704722736660f, -0.309016994374947340f, - -0.325568154457156420f, -0.342020143325668710f, -0.358367949545300270f, - -0.374606593415912070f, -0.390731128489273600f, -0.406736643075800100f, - -0.422618261740699330f, -0.438371146789077510f, - -0.453990499739546750f, -0.469471562785890530f, -0.484809620246337000f, - -0.499999999999999780f, -0.515038074910054270f, -0.529919264233204790f, - -0.544639035015027080f, -0.559192903470746680f, - -0.573576436351045830f, -0.587785252292473030f, -0.601815023152048380f, - -0.615661475325658290f, -0.629320391049837280f, -0.642787609686539360f, - -0.656059028990507500f, -0.669130606358858240f, - -0.681998360062498370f, -0.694658370458997030f, -0.707106781186547460f, - -0.719339800338651300f, -0.731353701619170460f, -0.743144825477394130f, - -0.754709580222772010f, -0.766044443118977900f, - -0.777145961456970680f, -0.788010753606721900f, -0.798635510047292940f, - -0.809016994374947340f, -0.819152044288991580f, -0.829037572555041620f, - -0.838670567945424160f, -0.848048096156425960f, - -0.857167300702112220f, -0.866025403784438710f, -0.874619707139395740f, - -0.882947592858926770f, -0.891006524188367790f, -0.898794046299167040f, - -0.906307787036649940f, -0.913545457642600760f, - -0.920504853452440150f, -0.927183854566787310f, -0.933580426497201740f, - -0.939692620785908320f, -0.945518575599316740f, -0.951056516295153530f, - -0.956304755963035440f, -0.961261695938318670f, - -0.965925826289068200f, -0.970295726275996470f, -0.974370064785235250f, - -0.978147600733805690f, -0.981627183447663980f, -0.984807753012208020f, - -0.987688340595137660f, -0.990268068741570250f, - -0.992546151641321980f, -0.994521895368273290f, -0.996194698091745550f, - -0.997564050259824200f, -0.998629534754573830f, -0.999390827019095760f, - -0.999847695156391270f, -1.000000000000000000f -}; - -/** -* \par -* Sine Table is generated from following loop -*
for(i = 0; i < 360; i++)    
-* {    
-*    sinTable[i]= sin((i-180) * PI/180.0);    
-* } 
-*/ - - -static const float32_t sinTable[360] = { - -0.017452406437283439f, -0.034899496702500699f, -0.052335956242943807f, - -0.069756473744125524f, -0.087155742747658638f, -0.104528463267653730f, - -0.121869343405147550f, -0.139173100960065740f, - -0.156434465040230980f, -0.173648177666930280f, -0.190808995376544970f, - -0.207911690817759310f, -0.224951054343864780f, -0.241921895599667730f, - -0.258819045102521020f, -0.275637355816999660f, - -0.292371704722737050f, -0.309016994374947510f, -0.325568154457156980f, - -0.342020143325668880f, -0.358367949545300210f, -0.374606593415912240f, - -0.390731128489274160f, -0.406736643075800430f, - -0.422618261740699500f, -0.438371146789077290f, -0.453990499739546860f, - -0.469471562785891080f, -0.484809620246337170f, -0.499999999999999940f, - -0.515038074910054380f, -0.529919264233204900f, - -0.544639035015026860f, -0.559192903470746900f, -0.573576436351046380f, - -0.587785252292473250f, -0.601815023152048160f, -0.615661475325658400f, - -0.629320391049837720f, -0.642787609686539470f, - -0.656059028990507280f, -0.669130606358858350f, -0.681998360062498590f, - -0.694658370458997140f, -0.707106781186547570f, -0.719339800338651410f, - -0.731353701619170570f, -0.743144825477394240f, - -0.754709580222771790f, -0.766044443118978010f, -0.777145961456971010f, - -0.788010753606722010f, -0.798635510047292720f, -0.809016994374947450f, - -0.819152044288992020f, -0.829037572555041740f, - -0.838670567945424050f, -0.848048096156426070f, -0.857167300702112330f, - -0.866025403784438710f, -0.874619707139395850f, -0.882947592858927100f, - -0.891006524188367900f, -0.898794046299166930f, - -0.906307787036650050f, -0.913545457642600980f, -0.920504853452440370f, - -0.927183854566787420f, -0.933580426497201740f, -0.939692620785908430f, - -0.945518575599316850f, -0.951056516295153640f, - -0.956304755963035550f, -0.961261695938318890f, -0.965925826289068310f, - -0.970295726275996470f, -0.974370064785235250f, -0.978147600733805690f, - -0.981627183447663980f, -0.984807753012208020f, - -0.987688340595137660f, -0.990268068741570360f, -0.992546151641322090f, - -0.994521895368273400f, -0.996194698091745550f, -0.997564050259824200f, - -0.998629534754573830f, -0.999390827019095760f, - -0.999847695156391270f, -1.000000000000000000f, -0.999847695156391270f, - -0.999390827019095760f, -0.998629534754573830f, -0.997564050259824200f, - -0.996194698091745550f, -0.994521895368273290f, - -0.992546151641321980f, -0.990268068741570250f, -0.987688340595137770f, - -0.984807753012208020f, -0.981627183447663980f, -0.978147600733805580f, - -0.974370064785235250f, -0.970295726275996470f, - -0.965925826289068310f, -0.961261695938318890f, -0.956304755963035440f, - -0.951056516295153530f, -0.945518575599316740f, -0.939692620785908320f, - -0.933580426497201740f, -0.927183854566787420f, - -0.920504853452440260f, -0.913545457642600870f, -0.906307787036649940f, - -0.898794046299167040f, -0.891006524188367790f, -0.882947592858926880f, - -0.874619707139395740f, -0.866025403784438600f, - -0.857167300702112220f, -0.848048096156426070f, -0.838670567945423940f, - -0.829037572555041740f, -0.819152044288991800f, -0.809016994374947450f, - -0.798635510047292830f, -0.788010753606722010f, - -0.777145961456970790f, -0.766044443118978010f, -0.754709580222772010f, - -0.743144825477394240f, -0.731353701619170460f, -0.719339800338651080f, - -0.707106781186547460f, -0.694658370458997250f, - -0.681998360062498480f, -0.669130606358858240f, -0.656059028990507160f, - -0.642787609686539250f, -0.629320391049837390f, -0.615661475325658180f, - -0.601815023152048270f, -0.587785252292473140f, - -0.573576436351046050f, -0.559192903470746900f, -0.544639035015027080f, - -0.529919264233204900f, -0.515038074910054160f, -0.499999999999999940f, - -0.484809620246337060f, -0.469471562785890810f, - -0.453990499739546750f, -0.438371146789077400f, -0.422618261740699440f, - -0.406736643075800150f, -0.390731128489273720f, -0.374606593415912010f, - -0.358367949545300270f, -0.342020143325668710f, - -0.325568154457156640f, -0.309016994374947400f, -0.292371704722736770f, - -0.275637355816999160f, -0.258819045102520740f, -0.241921895599667730f, - -0.224951054343865000f, -0.207911690817759310f, - -0.190808995376544800f, -0.173648177666930330f, -0.156434465040230870f, - -0.139173100960065440f, -0.121869343405147480f, -0.104528463267653460f, - -0.087155742747658166f, -0.069756473744125302f, - -0.052335956242943828f, -0.034899496702500969f, -0.017452406437283512f, - 0.000000000000000000f, 0.017452406437283512f, 0.034899496702500969f, - 0.052335956242943828f, 0.069756473744125302f, - 0.087155742747658166f, 0.104528463267653460f, 0.121869343405147480f, - 0.139173100960065440f, 0.156434465040230870f, 0.173648177666930330f, - 0.190808995376544800f, 0.207911690817759310f, - 0.224951054343865000f, 0.241921895599667730f, 0.258819045102520740f, - 0.275637355816999160f, 0.292371704722736770f, 0.309016994374947400f, - 0.325568154457156640f, 0.342020143325668710f, - 0.358367949545300270f, 0.374606593415912010f, 0.390731128489273720f, - 0.406736643075800150f, 0.422618261740699440f, 0.438371146789077400f, - 0.453990499739546750f, 0.469471562785890810f, - 0.484809620246337060f, 0.499999999999999940f, 0.515038074910054160f, - 0.529919264233204900f, 0.544639035015027080f, 0.559192903470746900f, - 0.573576436351046050f, 0.587785252292473140f, - 0.601815023152048270f, 0.615661475325658180f, 0.629320391049837390f, - 0.642787609686539250f, 0.656059028990507160f, 0.669130606358858240f, - 0.681998360062498480f, 0.694658370458997250f, - 0.707106781186547460f, 0.719339800338651080f, 0.731353701619170460f, - 0.743144825477394240f, 0.754709580222772010f, 0.766044443118978010f, - 0.777145961456970790f, 0.788010753606722010f, - 0.798635510047292830f, 0.809016994374947450f, 0.819152044288991800f, - 0.829037572555041740f, 0.838670567945423940f, 0.848048096156426070f, - 0.857167300702112220f, 0.866025403784438600f, - 0.874619707139395740f, 0.882947592858926880f, 0.891006524188367790f, - 0.898794046299167040f, 0.906307787036649940f, 0.913545457642600870f, - 0.920504853452440260f, 0.927183854566787420f, - 0.933580426497201740f, 0.939692620785908320f, 0.945518575599316740f, - 0.951056516295153530f, 0.956304755963035440f, 0.961261695938318890f, - 0.965925826289068310f, 0.970295726275996470f, - 0.974370064785235250f, 0.978147600733805580f, 0.981627183447663980f, - 0.984807753012208020f, 0.987688340595137770f, 0.990268068741570250f, - 0.992546151641321980f, 0.994521895368273290f, - 0.996194698091745550f, 0.997564050259824200f, 0.998629534754573830f, - 0.999390827019095760f, 0.999847695156391270f, 1.000000000000000000f, - 0.999847695156391270f, 0.999390827019095760f, - 0.998629534754573830f, 0.997564050259824200f, 0.996194698091745550f, - 0.994521895368273400f, 0.992546151641322090f, 0.990268068741570360f, - 0.987688340595137660f, 0.984807753012208020f, - 0.981627183447663980f, 0.978147600733805690f, 0.974370064785235250f, - 0.970295726275996470f, 0.965925826289068310f, 0.961261695938318890f, - 0.956304755963035550f, 0.951056516295153640f, - 0.945518575599316850f, 0.939692620785908430f, 0.933580426497201740f, - 0.927183854566787420f, 0.920504853452440370f, 0.913545457642600980f, - 0.906307787036650050f, 0.898794046299166930f, - 0.891006524188367900f, 0.882947592858927100f, 0.874619707139395850f, - 0.866025403784438710f, 0.857167300702112330f, 0.848048096156426070f, - 0.838670567945424050f, 0.829037572555041740f, - 0.819152044288992020f, 0.809016994374947450f, 0.798635510047292720f, - 0.788010753606722010f, 0.777145961456971010f, 0.766044443118978010f, - 0.754709580222771790f, 0.743144825477394240f, - 0.731353701619170570f, 0.719339800338651410f, 0.707106781186547570f, - 0.694658370458997140f, 0.681998360062498590f, 0.669130606358858350f, - 0.656059028990507280f, 0.642787609686539470f, - 0.629320391049837720f, 0.615661475325658400f, 0.601815023152048160f, - 0.587785252292473250f, 0.573576436351046380f, 0.559192903470746900f, - 0.544639035015026860f, 0.529919264233204900f, - 0.515038074910054380f, 0.499999999999999940f, 0.484809620246337170f, - 0.469471562785891080f, 0.453990499739546860f, 0.438371146789077290f, - 0.422618261740699500f, 0.406736643075800430f, - 0.390731128489274160f, 0.374606593415912240f, 0.358367949545300210f, - 0.342020143325668880f, 0.325568154457156980f, 0.309016994374947510f, - 0.292371704722737050f, 0.275637355816999660f, - 0.258819045102521020f, 0.241921895599667730f, 0.224951054343864780f, - 0.207911690817759310f, 0.190808995376544970f, 0.173648177666930280f, - 0.156434465040230980f, 0.139173100960065740f, - 0.121869343405147550f, 0.104528463267653730f, 0.087155742747658638f, - 0.069756473744125524f, 0.052335956242943807f, 0.034899496702500699f, - 0.017452406437283439f, 0.000000000000000122f -}; - - -/** - * @brief Floating-point sin_cos function. - * @param[in] theta input value in degrees - * @param[out] *pSinVal points to the processed sine output. - * @param[out] *pCosVal points to the processed cos output. - * @return none. - */ - - -void arm_sin_cos_f32( - float32_t theta, - float32_t * pSinVal, - float32_t * pCosVal) -{ - int32_t i; /* Index for reading nearwst output values */ - float32_t x1 = -179.0f; /* Initial input value */ - float32_t y0, y1; /* nearest output values */ - float32_t y2, y3; - float32_t fract; /* fractional part of input */ - - /* Calculation of fractional part */ - if(theta > 0.0f) - { - fract = theta - (float32_t) ((int32_t) theta); - } - else - { - fract = (theta - (float32_t) ((int32_t) theta)) + 1.0f; - } - - /* index calculation for reading nearest output values */ - i = (uint32_t) (theta - x1); - - /* Checking min and max index of table */ - if(i < 0) - { - i = 0; - } - else if(i >= 359) - { - i = 358; - } - - /* reading nearest sine output values */ - y0 = sinTable[i]; - y1 = sinTable[i + 1u]; - - /* reading nearest cosine output values */ - y2 = cosTable[i]; - y3 = cosTable[i + 1u]; - - y1 = y1 - y0; - y3 = y3 - y2; - - y1 = fract * y1; - y3 = fract * y3; - - /* Calculation of sine value */ - *pSinVal = y0 + y1; - - /* Calculation of cosine value */ - *pCosVal = y2 + y3; - -} - -/** - * @} end of SinCos group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_q31.c deleted file mode 100644 index e22d25e539..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_q31.c +++ /dev/null @@ -1,324 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sin_cos_q31.c -* -* Description: Cosine & Sine calculation for Q31 values. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupController - */ - - /** - * @addtogroup SinCos - * @{ - */ - -/** -* \par -* Sine Table is generated from following loop -*
for(i = 0; i < 360; i++)    
-* {    
-*    sinTable[i]= sin((i-180) * PI/180.0);    
-* } 
-* Convert above coefficients to fixed point 1.31 format. -*/ - -static const int32_t sinTableQ31[360] = { - - 0x0, 0xfdc41e9b, 0xfb8869ce, 0xf94d0e2e, 0xf7123849, 0xf4d814a4, 0xf29ecfb2, - 0xf06695da, - 0xee2f9369, 0xebf9f498, 0xe9c5e582, 0xe7939223, 0xe5632654, 0xe334cdc9, - 0xe108b40d, 0xdedf047d, - 0xdcb7ea46, 0xda939061, 0xd8722192, 0xd653c860, 0xd438af17, 0xd220ffc0, - 0xd00ce422, 0xcdfc85bb, - 0xcbf00dbe, 0xc9e7a512, 0xc7e3744b, 0xc5e3a3a9, 0xc3e85b18, 0xc1f1c224, - 0xc0000000, 0xbe133b7c, - 0xbc2b9b05, 0xba4944a2, 0xb86c5df0, 0xb6950c1e, 0xb4c373ee, 0xb2f7b9af, - 0xb1320139, 0xaf726def, - 0xadb922b7, 0xac0641fb, 0xaa59eda4, 0xa8b4471a, 0xa7156f3c, 0xa57d8666, - 0xa3ecac65, 0xa263007d, - 0xa0e0a15f, 0x9f65ad2d, 0x9df24175, 0x9c867b2c, 0x9b2276b0, 0x99c64fc5, - 0x98722192, 0x9726069c, - 0x95e218c9, 0x94a6715d, 0x937328f5, 0x92485786, 0x9126145f, 0x900c7621, - 0x8efb92c2, 0x8df37f8b, - 0x8cf45113, 0x8bfe1b3f, 0x8b10f144, 0x8a2ce59f, 0x89520a1a, 0x88806fc4, - 0x87b826f7, 0x86f93f50, - 0x8643c7b3, 0x8597ce46, 0x84f56073, 0x845c8ae3, 0x83cd5982, 0x8347d77b, - 0x82cc0f36, 0x825a0a5b, - 0x81f1d1ce, 0x81936daf, 0x813ee55b, 0x80f43f69, 0x80b381ac, 0x807cb130, - 0x804fd23a, 0x802ce84c, - 0x8013f61d, 0x8004fda0, 0x80000000, 0x8004fda0, 0x8013f61d, 0x802ce84c, - 0x804fd23a, 0x807cb130, - 0x80b381ac, 0x80f43f69, 0x813ee55b, 0x81936daf, 0x81f1d1ce, 0x825a0a5b, - 0x82cc0f36, 0x8347d77b, - 0x83cd5982, 0x845c8ae3, 0x84f56073, 0x8597ce46, 0x8643c7b3, 0x86f93f50, - 0x87b826f7, 0x88806fc4, - 0x89520a1a, 0x8a2ce59f, 0x8b10f144, 0x8bfe1b3f, 0x8cf45113, 0x8df37f8b, - 0x8efb92c2, 0x900c7621, - 0x9126145f, 0x92485786, 0x937328f5, 0x94a6715d, 0x95e218c9, 0x9726069c, - 0x98722192, 0x99c64fc5, - 0x9b2276b0, 0x9c867b2c, 0x9df24175, 0x9f65ad2d, 0xa0e0a15f, 0xa263007d, - 0xa3ecac65, 0xa57d8666, - 0xa7156f3c, 0xa8b4471a, 0xaa59eda4, 0xac0641fb, 0xadb922b7, 0xaf726def, - 0xb1320139, 0xb2f7b9af, - 0xb4c373ee, 0xb6950c1e, 0xb86c5df0, 0xba4944a2, 0xbc2b9b05, 0xbe133b7c, - 0xc0000000, 0xc1f1c224, - 0xc3e85b18, 0xc5e3a3a9, 0xc7e3744b, 0xc9e7a512, 0xcbf00dbe, 0xcdfc85bb, - 0xd00ce422, 0xd220ffc0, - 0xd438af17, 0xd653c860, 0xd8722192, 0xda939061, 0xdcb7ea46, 0xdedf047d, - 0xe108b40d, 0xe334cdc9, - 0xe5632654, 0xe7939223, 0xe9c5e582, 0xebf9f498, 0xee2f9369, 0xf06695da, - 0xf29ecfb2, 0xf4d814a4, - 0xf7123849, 0xf94d0e2e, 0xfb8869ce, 0xfdc41e9b, 0x0, 0x23be165, 0x4779632, - 0x6b2f1d2, - 0x8edc7b7, 0xb27eb5c, 0xd61304e, 0xf996a26, 0x11d06c97, 0x14060b68, - 0x163a1a7e, 0x186c6ddd, - 0x1a9cd9ac, 0x1ccb3237, 0x1ef74bf3, 0x2120fb83, 0x234815ba, 0x256c6f9f, - 0x278dde6e, 0x29ac37a0, - 0x2bc750e9, 0x2ddf0040, 0x2ff31bde, 0x32037a45, 0x340ff242, 0x36185aee, - 0x381c8bb5, 0x3a1c5c57, - 0x3c17a4e8, 0x3e0e3ddc, 0x40000000, 0x41ecc484, 0x43d464fb, 0x45b6bb5e, - 0x4793a210, 0x496af3e2, - 0x4b3c8c12, 0x4d084651, 0x4ecdfec7, 0x508d9211, 0x5246dd49, 0x53f9be05, - 0x55a6125c, 0x574bb8e6, - 0x58ea90c4, 0x5a82799a, 0x5c13539b, 0x5d9cff83, 0x5f1f5ea1, 0x609a52d3, - 0x620dbe8b, 0x637984d4, - 0x64dd8950, 0x6639b03b, 0x678dde6e, 0x68d9f964, 0x6a1de737, 0x6b598ea3, - 0x6c8cd70b, 0x6db7a87a, - 0x6ed9eba1, 0x6ff389df, 0x71046d3e, 0x720c8075, 0x730baeed, 0x7401e4c1, - 0x74ef0ebc, 0x75d31a61, - 0x76adf5e6, 0x777f903c, 0x7847d909, 0x7906c0b0, 0x79bc384d, 0x7a6831ba, - 0x7b0a9f8d, 0x7ba3751d, - 0x7c32a67e, 0x7cb82885, 0x7d33f0ca, 0x7da5f5a5, 0x7e0e2e32, 0x7e6c9251, - 0x7ec11aa5, 0x7f0bc097, - 0x7f4c7e54, 0x7f834ed0, 0x7fb02dc6, 0x7fd317b4, 0x7fec09e3, 0x7ffb0260, - 0x7fffffff, 0x7ffb0260, - 0x7fec09e3, 0x7fd317b4, 0x7fb02dc6, 0x7f834ed0, 0x7f4c7e54, 0x7f0bc097, - 0x7ec11aa5, 0x7e6c9251, - 0x7e0e2e32, 0x7da5f5a5, 0x7d33f0ca, 0x7cb82885, 0x7c32a67e, 0x7ba3751d, - 0x7b0a9f8d, 0x7a6831ba, - 0x79bc384d, 0x7906c0b0, 0x7847d909, 0x777f903c, 0x76adf5e6, 0x75d31a61, - 0x74ef0ebc, 0x7401e4c1, - 0x730baeed, 0x720c8075, 0x71046d3e, 0x6ff389df, 0x6ed9eba1, 0x6db7a87a, - 0x6c8cd70b, 0x6b598ea3, - 0x6a1de737, 0x68d9f964, 0x678dde6e, 0x6639b03b, 0x64dd8950, 0x637984d4, - 0x620dbe8b, 0x609a52d3, - 0x5f1f5ea1, 0x5d9cff83, 0x5c13539b, 0x5a82799a, 0x58ea90c4, 0x574bb8e6, - 0x55a6125c, 0x53f9be05, - 0x5246dd49, 0x508d9211, 0x4ecdfec7, 0x4d084651, 0x4b3c8c12, 0x496af3e2, - 0x4793a210, 0x45b6bb5e, - 0x43d464fb, 0x41ecc484, 0x40000000, 0x3e0e3ddc, 0x3c17a4e8, 0x3a1c5c57, - 0x381c8bb5, 0x36185aee, - 0x340ff242, 0x32037a45, 0x2ff31bde, 0x2ddf0040, 0x2bc750e9, 0x29ac37a0, - 0x278dde6e, 0x256c6f9f, - 0x234815ba, 0x2120fb83, 0x1ef74bf3, 0x1ccb3237, 0x1a9cd9ac, 0x186c6ddd, - 0x163a1a7e, 0x14060b68, - 0x11d06c97, 0xf996a26, 0xd61304e, 0xb27eb5c, 0x8edc7b7, 0x6b2f1d2, - 0x4779632, 0x23be165, - - -}; - -/** -* \par -* Cosine Table is generated from following loop -*
for(i = 0; i < 360; i++)    
-* {    
-*    cosTable[i]= cos((i-180) * PI/180.0);    
-* } 
-* \par -* Convert above coefficients to fixed point 1.31 format. -*/ -static const int32_t cosTableQ31[360] = { - 0x80000000, 0x8004fda0, 0x8013f61d, 0x802ce84c, 0x804fd23a, 0x807cb130, - 0x80b381ac, 0x80f43f69, - 0x813ee55b, 0x81936daf, 0x81f1d1ce, 0x825a0a5b, 0x82cc0f36, 0x8347d77b, - 0x83cd5982, 0x845c8ae3, - 0x84f56073, 0x8597ce46, 0x8643c7b3, 0x86f93f50, 0x87b826f7, 0x88806fc4, - 0x89520a1a, 0x8a2ce59f, - 0x8b10f144, 0x8bfe1b3f, 0x8cf45113, 0x8df37f8b, 0x8efb92c2, 0x900c7621, - 0x9126145f, 0x92485786, - 0x937328f5, 0x94a6715d, 0x95e218c9, 0x9726069c, 0x98722192, 0x99c64fc5, - 0x9b2276b0, 0x9c867b2c, - 0x9df24175, 0x9f65ad2d, 0xa0e0a15f, 0xa263007d, 0xa3ecac65, 0xa57d8666, - 0xa7156f3c, 0xa8b4471a, - 0xaa59eda4, 0xac0641fb, 0xadb922b7, 0xaf726def, 0xb1320139, 0xb2f7b9af, - 0xb4c373ee, 0xb6950c1e, - 0xb86c5df0, 0xba4944a2, 0xbc2b9b05, 0xbe133b7c, 0xc0000000, 0xc1f1c224, - 0xc3e85b18, 0xc5e3a3a9, - 0xc7e3744b, 0xc9e7a512, 0xcbf00dbe, 0xcdfc85bb, 0xd00ce422, 0xd220ffc0, - 0xd438af17, 0xd653c860, - 0xd8722192, 0xda939061, 0xdcb7ea46, 0xdedf047d, 0xe108b40d, 0xe334cdc9, - 0xe5632654, 0xe7939223, - 0xe9c5e582, 0xebf9f498, 0xee2f9369, 0xf06695da, 0xf29ecfb2, 0xf4d814a4, - 0xf7123849, 0xf94d0e2e, - 0xfb8869ce, 0xfdc41e9b, 0x0, 0x23be165, 0x4779632, 0x6b2f1d2, 0x8edc7b7, - 0xb27eb5c, - 0xd61304e, 0xf996a26, 0x11d06c97, 0x14060b68, 0x163a1a7e, 0x186c6ddd, - 0x1a9cd9ac, 0x1ccb3237, - 0x1ef74bf3, 0x2120fb83, 0x234815ba, 0x256c6f9f, 0x278dde6e, 0x29ac37a0, - 0x2bc750e9, 0x2ddf0040, - 0x2ff31bde, 0x32037a45, 0x340ff242, 0x36185aee, 0x381c8bb5, 0x3a1c5c57, - 0x3c17a4e8, 0x3e0e3ddc, - 0x40000000, 0x41ecc484, 0x43d464fb, 0x45b6bb5e, 0x4793a210, 0x496af3e2, - 0x4b3c8c12, 0x4d084651, - 0x4ecdfec7, 0x508d9211, 0x5246dd49, 0x53f9be05, 0x55a6125c, 0x574bb8e6, - 0x58ea90c4, 0x5a82799a, - 0x5c13539b, 0x5d9cff83, 0x5f1f5ea1, 0x609a52d3, 0x620dbe8b, 0x637984d4, - 0x64dd8950, 0x6639b03b, - 0x678dde6e, 0x68d9f964, 0x6a1de737, 0x6b598ea3, 0x6c8cd70b, 0x6db7a87a, - 0x6ed9eba1, 0x6ff389df, - 0x71046d3e, 0x720c8075, 0x730baeed, 0x7401e4c1, 0x74ef0ebc, 0x75d31a61, - 0x76adf5e6, 0x777f903c, - 0x7847d909, 0x7906c0b0, 0x79bc384d, 0x7a6831ba, 0x7b0a9f8d, 0x7ba3751d, - 0x7c32a67e, 0x7cb82885, - 0x7d33f0ca, 0x7da5f5a5, 0x7e0e2e32, 0x7e6c9251, 0x7ec11aa5, 0x7f0bc097, - 0x7f4c7e54, 0x7f834ed0, - 0x7fb02dc6, 0x7fd317b4, 0x7fec09e3, 0x7ffb0260, 0x7fffffff, 0x7ffb0260, - 0x7fec09e3, 0x7fd317b4, - 0x7fb02dc6, 0x7f834ed0, 0x7f4c7e54, 0x7f0bc097, 0x7ec11aa5, 0x7e6c9251, - 0x7e0e2e32, 0x7da5f5a5, - 0x7d33f0ca, 0x7cb82885, 0x7c32a67e, 0x7ba3751d, 0x7b0a9f8d, 0x7a6831ba, - 0x79bc384d, 0x7906c0b0, - 0x7847d909, 0x777f903c, 0x76adf5e6, 0x75d31a61, 0x74ef0ebc, 0x7401e4c1, - 0x730baeed, 0x720c8075, - 0x71046d3e, 0x6ff389df, 0x6ed9eba1, 0x6db7a87a, 0x6c8cd70b, 0x6b598ea3, - 0x6a1de737, 0x68d9f964, - 0x678dde6e, 0x6639b03b, 0x64dd8950, 0x637984d4, 0x620dbe8b, 0x609a52d3, - 0x5f1f5ea1, 0x5d9cff83, - 0x5c13539b, 0x5a82799a, 0x58ea90c4, 0x574bb8e6, 0x55a6125c, 0x53f9be05, - 0x5246dd49, 0x508d9211, - 0x4ecdfec7, 0x4d084651, 0x4b3c8c12, 0x496af3e2, 0x4793a210, 0x45b6bb5e, - 0x43d464fb, 0x41ecc484, - 0x40000000, 0x3e0e3ddc, 0x3c17a4e8, 0x3a1c5c57, 0x381c8bb5, 0x36185aee, - 0x340ff242, 0x32037a45, - 0x2ff31bde, 0x2ddf0040, 0x2bc750e9, 0x29ac37a0, 0x278dde6e, 0x256c6f9f, - 0x234815ba, 0x2120fb83, - 0x1ef74bf3, 0x1ccb3237, 0x1a9cd9ac, 0x186c6ddd, 0x163a1a7e, 0x14060b68, - 0x11d06c97, 0xf996a26, - 0xd61304e, 0xb27eb5c, 0x8edc7b7, 0x6b2f1d2, 0x4779632, 0x23be165, 0x0, - 0xfdc41e9b, - 0xfb8869ce, 0xf94d0e2e, 0xf7123849, 0xf4d814a4, 0xf29ecfb2, 0xf06695da, - 0xee2f9369, 0xebf9f498, - 0xe9c5e582, 0xe7939223, 0xe5632654, 0xe334cdc9, 0xe108b40d, 0xdedf047d, - 0xdcb7ea46, 0xda939061, - 0xd8722192, 0xd653c860, 0xd438af17, 0xd220ffc0, 0xd00ce422, 0xcdfc85bb, - 0xcbf00dbe, 0xc9e7a512, - 0xc7e3744b, 0xc5e3a3a9, 0xc3e85b18, 0xc1f1c224, 0xc0000000, 0xbe133b7c, - 0xbc2b9b05, 0xba4944a2, - 0xb86c5df0, 0xb6950c1e, 0xb4c373ee, 0xb2f7b9af, 0xb1320139, 0xaf726def, - 0xadb922b7, 0xac0641fb, - 0xaa59eda4, 0xa8b4471a, 0xa7156f3c, 0xa57d8666, 0xa3ecac65, 0xa263007d, - 0xa0e0a15f, 0x9f65ad2d, - 0x9df24175, 0x9c867b2c, 0x9b2276b0, 0x99c64fc5, 0x98722192, 0x9726069c, - 0x95e218c9, 0x94a6715d, - 0x937328f5, 0x92485786, 0x9126145f, 0x900c7621, 0x8efb92c2, 0x8df37f8b, - 0x8cf45113, 0x8bfe1b3f, - 0x8b10f144, 0x8a2ce59f, 0x89520a1a, 0x88806fc4, 0x87b826f7, 0x86f93f50, - 0x8643c7b3, 0x8597ce46, - 0x84f56073, 0x845c8ae3, 0x83cd5982, 0x8347d77b, 0x82cc0f36, 0x825a0a5b, - 0x81f1d1ce, 0x81936daf, - 0x813ee55b, 0x80f43f69, 0x80b381ac, 0x807cb130, 0x804fd23a, 0x802ce84c, - 0x8013f61d, 0x8004fda0, - -}; - - -/** - * @brief Q31 sin_cos function. - * @param[in] theta scaled input value in degrees - * @param[out] *pSinVal points to the processed sine output. - * @param[out] *pCosVal points to the processed cosine output. - * @return none. - * - * The Q31 input value is in the range [-1 0.999999] and is mapped to a degree value in the range [-180 179]. - * - */ - - -void arm_sin_cos_q31( - q31_t theta, - q31_t * pSinVal, - q31_t * pCosVal) -{ - q31_t x0; /* Nearest input value */ - q31_t y0, y1; /* Nearest output values */ - q31_t xSpacing = INPUT_SPACING; /* Spaing between inputs */ - int32_t i; /* Index */ - q31_t oneByXSpacing; /* 1/ xSpacing value */ - q31_t out; /* temporary variable */ - uint32_t sign_bits; /* No.of sign bits */ - uint32_t firstX = 0x80000000; /* First X value */ - - /* Calculation of index */ - i = ((uint32_t) theta - firstX) / (uint32_t) xSpacing; - - /* Checking min and max index of table */ - if(i < 0) - { - i = 0; - } - else if(i >= 359) - { - i = 358; - } - - /* Calculation of first nearest input value */ - x0 = (q31_t) firstX + ((q31_t) i * xSpacing); - - /* Reading nearest sine output values from table */ - y0 = sinTableQ31[i]; - y1 = sinTableQ31[i + 1u]; - - /* Calculation of 1/(x1-x0) */ - /* (x1-x0) is xSpacing which is fixed value */ - sign_bits = 8u; - oneByXSpacing = 0x5A000000; - - /* Calculation of (theta - x0)/(x1-x0) */ - out = - (((q31_t) (((q63_t) (theta - x0) * oneByXSpacing) >> 32)) << sign_bits); - - /* Calculation of y0 + (y1 - y0) * ((theta - x0)/(x1-x0)) */ - *pSinVal = __QADD(y0, ((q31_t) (((q63_t) (y1 - y0) * out) >> 30))); - - /* Reading nearest cosine output values from table */ - y0 = cosTableQ31[i]; - y1 = cosTableQ31[i + 1u]; - - /* Calculation of y0 + (y1 - y0) * ((theta - x0)/(x1-x0)) */ - *pCosVal = __QADD(y0, ((q31_t) (((q63_t) (y1 - y0) * out) >> 30))); - -} - -/** - * @} end of SinCos group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_f32.c deleted file mode 100644 index bee758bff7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_f32.c +++ /dev/null @@ -1,280 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cos_f32.c -* -* Description: Fast cosine calculation for floating-point values. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" -/** - * @ingroup groupFastMath - */ - -/** - * @defgroup cos Cosine - * - * Computes the trigonometric cosine function using a combination of table lookup - * and cubic interpolation. There are separate functions for - * Q15, Q31, and floating-point data types. - * The input to the floating-point version is in radians while the - * fixed-point Q15 and Q31 have a scaled input with the range - * [0 +0.9999] mapping to [0 2*pi), Where range excludes 2*pi. - * - * The implementation is based on table lookup using 256 values together with cubic interpolation. - * The steps used are: - * -# Calculation of the nearest integer table index - * -# Fetch the four table values a, b, c, and d - * -# Compute the fractional portion (fract) of the table index. - * -# Calculation of wa, wb, wc, wd - * -# The final result equals a*wa + b*wb + c*wc + d*wd - * - * where - *
    
- *    a=Table[index-1];    
- *    b=Table[index+0];    
- *    c=Table[index+1];    
- *    d=Table[index+2];    
- * 
- * and - *
    
- *    wa=-(1/6)*fract.^3 + (1/2)*fract.^2 - (1/3)*fract;    
- *    wb=(1/2)*fract.^3 - fract.^2 - (1/2)*fract + 1;    
- *    wc=-(1/2)*fract.^3+(1/2)*fract.^2+fract;    
- *    wd=(1/6)*fract.^3 - (1/6)*fract;    
- * 
- */ - - /** - * @addtogroup cos - * @{ - */ - - -/** -* \par -* Example code for Generation of Cos Table: -* tableSize = 256; -*
for(n = -1; n < (tableSize + 2); n++)    
-* {    
-*	cosTable[n+1]= cos(2*pi*n/tableSize);    
-* } 
-* where pi value is 3.14159265358979 -*/ - -static const float32_t cosTable[260] = { - 0.999698817729949950f, 1.000000000000000000f, 0.999698817729949950f, - 0.998795449733734130f, 0.997290432453155520f, 0.995184719562530520f, - 0.992479562759399410f, 0.989176511764526370f, - 0.985277652740478520f, 0.980785250663757320f, 0.975702106952667240f, - 0.970031261444091800f, 0.963776051998138430f, 0.956940352916717530f, - 0.949528157711029050f, 0.941544055938720700f, - 0.932992815971374510f, 0.923879504203796390f, 0.914209783077239990f, - 0.903989315032958980f, 0.893224298954010010f, 0.881921291351318360f, - 0.870086967945098880f, 0.857728600502014160f, - 0.844853579998016360f, 0.831469595432281490f, 0.817584812641143800f, - 0.803207516670227050f, 0.788346409797668460f, 0.773010432720184330f, - 0.757208824157714840f, 0.740951120853424070f, - 0.724247097969055180f, 0.707106769084930420f, 0.689540565013885500f, - 0.671558976173400880f, 0.653172850608825680f, 0.634393274784088130f, - 0.615231573581695560f, 0.595699310302734380f, - 0.575808167457580570f, 0.555570244789123540f, 0.534997642040252690f, - 0.514102756977081300f, 0.492898195981979370f, 0.471396744251251220f, - 0.449611335992813110f, 0.427555084228515630f, - 0.405241310596466060f, 0.382683426141738890f, 0.359895050525665280f, - 0.336889863014221190f, 0.313681751489639280f, 0.290284663438797000f, - 0.266712754964828490f, 0.242980182170867920f, - 0.219101235270500180f, 0.195090323686599730f, 0.170961886644363400f, - 0.146730467677116390f, 0.122410677373409270f, 0.098017141222953796f, - 0.073564566671848297f, 0.049067676067352295f, - 0.024541229009628296f, 0.000000000000000061f, -0.024541229009628296f, - -0.049067676067352295f, -0.073564566671848297f, -0.098017141222953796f, - -0.122410677373409270f, -0.146730467677116390f, - -0.170961886644363400f, -0.195090323686599730f, -0.219101235270500180f, - -0.242980182170867920f, -0.266712754964828490f, -0.290284663438797000f, - -0.313681751489639280f, -0.336889863014221190f, - -0.359895050525665280f, -0.382683426141738890f, -0.405241310596466060f, - -0.427555084228515630f, -0.449611335992813110f, -0.471396744251251220f, - -0.492898195981979370f, -0.514102756977081300f, - -0.534997642040252690f, -0.555570244789123540f, -0.575808167457580570f, - -0.595699310302734380f, -0.615231573581695560f, -0.634393274784088130f, - -0.653172850608825680f, -0.671558976173400880f, - -0.689540565013885500f, -0.707106769084930420f, -0.724247097969055180f, - -0.740951120853424070f, -0.757208824157714840f, -0.773010432720184330f, - -0.788346409797668460f, -0.803207516670227050f, - -0.817584812641143800f, -0.831469595432281490f, -0.844853579998016360f, - -0.857728600502014160f, -0.870086967945098880f, -0.881921291351318360f, - -0.893224298954010010f, -0.903989315032958980f, - -0.914209783077239990f, -0.923879504203796390f, -0.932992815971374510f, - -0.941544055938720700f, -0.949528157711029050f, -0.956940352916717530f, - -0.963776051998138430f, -0.970031261444091800f, - -0.975702106952667240f, -0.980785250663757320f, -0.985277652740478520f, - -0.989176511764526370f, -0.992479562759399410f, -0.995184719562530520f, - -0.997290432453155520f, -0.998795449733734130f, - -0.999698817729949950f, -1.000000000000000000f, -0.999698817729949950f, - -0.998795449733734130f, -0.997290432453155520f, -0.995184719562530520f, - -0.992479562759399410f, -0.989176511764526370f, - -0.985277652740478520f, -0.980785250663757320f, -0.975702106952667240f, - -0.970031261444091800f, -0.963776051998138430f, -0.956940352916717530f, - -0.949528157711029050f, -0.941544055938720700f, - -0.932992815971374510f, -0.923879504203796390f, -0.914209783077239990f, - -0.903989315032958980f, -0.893224298954010010f, -0.881921291351318360f, - -0.870086967945098880f, -0.857728600502014160f, - -0.844853579998016360f, -0.831469595432281490f, -0.817584812641143800f, - -0.803207516670227050f, -0.788346409797668460f, -0.773010432720184330f, - -0.757208824157714840f, -0.740951120853424070f, - -0.724247097969055180f, -0.707106769084930420f, -0.689540565013885500f, - -0.671558976173400880f, -0.653172850608825680f, -0.634393274784088130f, - -0.615231573581695560f, -0.595699310302734380f, - -0.575808167457580570f, -0.555570244789123540f, -0.534997642040252690f, - -0.514102756977081300f, -0.492898195981979370f, -0.471396744251251220f, - -0.449611335992813110f, -0.427555084228515630f, - -0.405241310596466060f, -0.382683426141738890f, -0.359895050525665280f, - -0.336889863014221190f, -0.313681751489639280f, -0.290284663438797000f, - -0.266712754964828490f, -0.242980182170867920f, - -0.219101235270500180f, -0.195090323686599730f, -0.170961886644363400f, - -0.146730467677116390f, -0.122410677373409270f, -0.098017141222953796f, - -0.073564566671848297f, -0.049067676067352295f, - -0.024541229009628296f, -0.000000000000000184f, 0.024541229009628296f, - 0.049067676067352295f, 0.073564566671848297f, 0.098017141222953796f, - 0.122410677373409270f, 0.146730467677116390f, - 0.170961886644363400f, 0.195090323686599730f, 0.219101235270500180f, - 0.242980182170867920f, 0.266712754964828490f, 0.290284663438797000f, - 0.313681751489639280f, 0.336889863014221190f, - 0.359895050525665280f, 0.382683426141738890f, 0.405241310596466060f, - 0.427555084228515630f, 0.449611335992813110f, 0.471396744251251220f, - 0.492898195981979370f, 0.514102756977081300f, - 0.534997642040252690f, 0.555570244789123540f, 0.575808167457580570f, - 0.595699310302734380f, 0.615231573581695560f, 0.634393274784088130f, - 0.653172850608825680f, 0.671558976173400880f, - 0.689540565013885500f, 0.707106769084930420f, 0.724247097969055180f, - 0.740951120853424070f, 0.757208824157714840f, 0.773010432720184330f, - 0.788346409797668460f, 0.803207516670227050f, - 0.817584812641143800f, 0.831469595432281490f, 0.844853579998016360f, - 0.857728600502014160f, 0.870086967945098880f, 0.881921291351318360f, - 0.893224298954010010f, 0.903989315032958980f, - 0.914209783077239990f, 0.923879504203796390f, 0.932992815971374510f, - 0.941544055938720700f, 0.949528157711029050f, 0.956940352916717530f, - 0.963776051998138430f, 0.970031261444091800f, - 0.975702106952667240f, 0.980785250663757320f, 0.985277652740478520f, - 0.989176511764526370f, 0.992479562759399410f, 0.995184719562530520f, - 0.997290432453155520f, 0.998795449733734130f, - 0.999698817729949950f, 1.000000000000000000f, 0.999698817729949950f, - 0.998795449733734130f -}; - -/** - * @brief Fast approximation to the trigonometric cosine function for floating-point data. - * @param[in] x input value in radians. - * @return cos(x). - */ - - -float32_t arm_cos_f32( - float32_t x) -{ - float32_t cosVal, fract, in; - int32_t index; - uint32_t tableSize = (uint32_t) TABLE_SIZE; - float32_t wa, wb, wc, wd; - float32_t a, b, c, d; - float32_t *tablePtr; - int32_t n; - float32_t fractsq, fractby2, fractby6, fractby3, fractsqby2; - float32_t oneminusfractby2; - float32_t frby2xfrsq, frby6xfrsq; - - /* input x is in radians */ - /* Scale the input to [0 1] range from [0 2*PI] , divide input by 2*pi */ - in = x * 0.159154943092f; - - /* Calculation of floor value of input */ - n = (int32_t) in; - - /* Make negative values towards -infinity */ - if(x < 0.0f) - { - n = n - 1; - } - - /* Map input value to [0 1] */ - in = in - (float32_t) n; - - /* Calculation of index of the table */ - index = (uint32_t) (tableSize * in); - - /* fractional value calculation */ - fract = ((float32_t) tableSize * in) - (float32_t) index; - - /* Checking min and max index of table */ - if(index < 0) - { - index = 0; - } - else if(index > 256) - { - index = 256; - } - - /* Initialise table pointer */ - tablePtr = (float32_t *) & cosTable[index]; - - /* Read four nearest values of input value from the cos table */ - a = tablePtr[0]; - b = tablePtr[1]; - c = tablePtr[2]; - d = tablePtr[3]; - - /* Cubic interpolation process */ - fractsq = fract * fract; - fractby2 = fract * 0.5f; - fractby6 = fract * 0.166666667f; - fractby3 = fract * 0.3333333333333f; - fractsqby2 = fractsq * 0.5f; - frby2xfrsq = (fractby2) * fractsq; - frby6xfrsq = (fractby6) * fractsq; - oneminusfractby2 = 1.0f - fractby2; - wb = fractsqby2 - fractby3; - wc = (fractsqby2 + fract); - wa = wb - frby6xfrsq; - wb = frby2xfrsq - fractsq; - cosVal = wa * a; - wc = wc - frby2xfrsq; - wd = (frby6xfrsq) - fractby6; - wb = wb + oneminusfractby2; - - /* Calculate cos value */ - cosVal = (cosVal + (b * wb)) + ((c * wc) + (d * wd)); - - /* Return the output value */ - return (cosVal); - -} - -/** - * @} end of cos group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c deleted file mode 100644 index 0edf68b893..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c +++ /dev/null @@ -1,205 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cos_q15.c -* -* Description: Fast cosine calculation for Q15 values. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFastMath - */ - - /** - * @addtogroup cos - * @{ - */ - -/** -* \par -* Table Values are in Q15(1.15 Fixed point format) and generation is done in three steps -* \par -* First Generate cos values in floating point: -* tableSize = 256; -*
for(n = -1; n < (tableSize + 1); n++)    
-* {    
-*	cosTable[n+1]= cos(2*pi*n/tableSize);    
-* }
-* where pi value is 3.14159265358979 -* \par -* Secondly Convert Floating point to Q15(Fixed point): -* (cosTable[i] * pow(2, 15)) -* \par -* Finally Rounding to nearest integer is done -* cosTable[i] += (cosTable[i] > 0 ? 0.5 :-0.5); -*/ - -static const q15_t cosTableQ15[259] = { - 0x7ff6, 0x7fff, 0x7ff6, 0x7fd9, 0x7fa7, 0x7f62, 0x7f0a, 0x7e9d, - 0x7e1e, 0x7d8a, 0x7ce4, 0x7c2a, 0x7b5d, 0x7a7d, 0x798a, 0x7885, - 0x776c, 0x7642, 0x7505, 0x73b6, 0x7255, 0x70e3, 0x6f5f, 0x6dca, - 0x6c24, 0x6a6e, 0x68a7, 0x66d0, 0x64e9, 0x62f2, 0x60ec, 0x5ed7, - 0x5cb4, 0x5a82, 0x5843, 0x55f6, 0x539b, 0x5134, 0x4ec0, 0x4c40, - 0x49b4, 0x471d, 0x447b, 0x41ce, 0x3f17, 0x3c57, 0x398d, 0x36ba, - 0x33df, 0x30fc, 0x2e11, 0x2b1f, 0x2827, 0x2528, 0x2224, 0x1f1a, - 0x1c0c, 0x18f9, 0x15e2, 0x12c8, 0xfab, 0xc8c, 0x96b, 0x648, - 0x324, 0x0, 0xfcdc, 0xf9b8, 0xf695, 0xf374, 0xf055, 0xed38, - 0xea1e, 0xe707, 0xe3f4, 0xe0e6, 0xdddc, 0xdad8, 0xd7d9, 0xd4e1, - 0xd1ef, 0xcf04, 0xcc21, 0xc946, 0xc673, 0xc3a9, 0xc0e9, 0xbe32, - 0xbb85, 0xb8e3, 0xb64c, 0xb3c0, 0xb140, 0xaecc, 0xac65, 0xaa0a, - 0xa7bd, 0xa57e, 0xa34c, 0xa129, 0x9f14, 0x9d0e, 0x9b17, 0x9930, - 0x9759, 0x9592, 0x93dc, 0x9236, 0x90a1, 0x8f1d, 0x8dab, 0x8c4a, - 0x8afb, 0x89be, 0x8894, 0x877b, 0x8676, 0x8583, 0x84a3, 0x83d6, - 0x831c, 0x8276, 0x81e2, 0x8163, 0x80f6, 0x809e, 0x8059, 0x8027, - 0x800a, 0x8000, 0x800a, 0x8027, 0x8059, 0x809e, 0x80f6, 0x8163, - 0x81e2, 0x8276, 0x831c, 0x83d6, 0x84a3, 0x8583, 0x8676, 0x877b, - 0x8894, 0x89be, 0x8afb, 0x8c4a, 0x8dab, 0x8f1d, 0x90a1, 0x9236, - 0x93dc, 0x9592, 0x9759, 0x9930, 0x9b17, 0x9d0e, 0x9f14, 0xa129, - 0xa34c, 0xa57e, 0xa7bd, 0xaa0a, 0xac65, 0xaecc, 0xb140, 0xb3c0, - 0xb64c, 0xb8e3, 0xbb85, 0xbe32, 0xc0e9, 0xc3a9, 0xc673, 0xc946, - 0xcc21, 0xcf04, 0xd1ef, 0xd4e1, 0xd7d9, 0xdad8, 0xdddc, 0xe0e6, - 0xe3f4, 0xe707, 0xea1e, 0xed38, 0xf055, 0xf374, 0xf695, 0xf9b8, - 0xfcdc, 0x0, 0x324, 0x648, 0x96b, 0xc8c, 0xfab, 0x12c8, - 0x15e2, 0x18f9, 0x1c0c, 0x1f1a, 0x2224, 0x2528, 0x2827, 0x2b1f, - 0x2e11, 0x30fc, 0x33df, 0x36ba, 0x398d, 0x3c57, 0x3f17, 0x41ce, - 0x447b, 0x471d, 0x49b4, 0x4c40, 0x4ec0, 0x5134, 0x539b, 0x55f6, - 0x5843, 0x5a82, 0x5cb4, 0x5ed7, 0x60ec, 0x62f2, 0x64e9, 0x66d0, - 0x68a7, 0x6a6e, 0x6c24, 0x6dca, 0x6f5f, 0x70e3, 0x7255, 0x73b6, - 0x7505, 0x7642, 0x776c, 0x7885, 0x798a, 0x7a7d, 0x7b5d, 0x7c2a, - 0x7ce4, 0x7d8a, 0x7e1e, 0x7e9d, 0x7f0a, 0x7f62, 0x7fa7, 0x7fd9, - 0x7ff6, 0x7fff, 0x7ff6 -}; - - -/** - * @brief Fast approximation to the trigonometric cosine function for Q15 data. - * @param[in] x Scaled input value in radians. - * @return cos(x). - * - * The Q15 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*pi), Here range excludes 2*pi. - */ - -q15_t arm_cos_q15( - q15_t x) -{ - q31_t cosVal; /* Temporary variable for output */ - q15_t *tablePtr; /* Pointer to table */ - q15_t in, in2; /* Temporary variables for input */ - q31_t wa, wb, wc, wd; /* Cubic interpolation coefficients */ - q15_t a, b, c, d; /* Four nearest output values */ - q15_t fract, fractCube, fractSquare; /* Variables for fractional value */ - q15_t oneBy6 = 0x1555; /* Fixed point value of 1/6 */ - q15_t tableSpacing = TABLE_SPACING_Q15; /* Table spacing */ - int32_t index; /* Index variable */ - - in = x; - - /* Calculate the nearest index */ - index = (int32_t) in / tableSpacing; - - /* Calculate the nearest value of input */ - in2 = (q15_t) index *tableSpacing; - - /* Calculation of fractional value */ - fract = (in - in2) << 8; - - /* fractSquare = fract * fract */ - fractSquare = (q15_t) ((fract * fract) >> 15); - - /* fractCube = fract * fract * fract */ - fractCube = (q15_t) ((fractSquare * fract) >> 15); - - /* Checking min and max index of table */ - if(index < 0) - { - index = 0; - } - else if(index > 256) - { - index = 256; - } - - /* Initialise table pointer */ - tablePtr = (q15_t *) & cosTableQ15[index]; - - /* Cubic interpolation process */ - /* Calculation of wa */ - /* wa = -(oneBy6)*fractCube + (fractSquare >> 1u) - (0x2AAA)*fract; */ - wa = (q31_t) oneBy6 *fractCube; - wa += (q31_t) 0x2AAA *fract; - wa = -(wa >> 15); - wa += (fractSquare >> 1u); - - /* Read first nearest value of output from the cos table */ - a = *tablePtr++; - - /* cosVal = a * wa */ - cosVal = a * wa; - - /* Calculation of wb */ - wb = (((fractCube >> 1u) - fractSquare) - (fract >> 1u)) + 0x7FFF; - - /* Read second nearest value of output from the cos table */ - b = *tablePtr++; - - /* cosVal += b*wb */ - cosVal += b * wb; - - /* Calculation of wc */ - wc = -(q31_t) fractCube + fractSquare; - wc = (wc >> 1u) + fract; - - /* Read third nearest value of output from the cos table */ - c = *tablePtr++; - - /* cosVal += c*wc */ - cosVal += c * wc; - - /* Calculation of wd */ - /* wd = (oneBy6)*fractCube - (oneBy6)*fract; */ - fractCube = fractCube - fract; - wd = ((q15_t) (((q31_t) oneBy6 * fractCube) >> 15)); - - /* Read fourth nearest value of output from the cos table */ - d = *tablePtr++; - - /* cosVal += d*wd; */ - cosVal += d * wd; - - /* Convert output value in 1.15(q15) format and saturate */ - cosVal = __SSAT((cosVal >> 15), 16); - - /* Return the output value in 1.15(q15) format */ - return ((q15_t) cosVal); - -} - -/** - * @} end of cos group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c deleted file mode 100644 index 1326215fe4..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c +++ /dev/null @@ -1,239 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cos_q31.c -* -* Description: Fast cosine calculation for Q31 values. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFastMath - */ - - /** - * @addtogroup cos - * @{ - */ - -/** - * \par - * Table Values are in Q31(1.31 Fixed point format) and generation is done in three steps - * First Generate cos values in floating point: - * tableSize = 256; - *
for(n = -1; n < (tableSize + 1); n++)    
- * {    
- *	cosTable[n+1]= cos(2*pi*n/tableSize);    
- * } 
- * where pi value is 3.14159265358979 - * \par - * Secondly Convert Floating point to Q31(Fixed point): - * (cosTable[i] * pow(2, 31)) - * \par - * Finally Rounding to nearest integer is done - * cosTable[i] += (cosTable[i] > 0 ? 0.5 :-0.5); - */ - - -static const q31_t cosTableQ31[259] = { - 0x7ff62182, 0x7fffffff, 0x7ff62182, 0x7fd8878e, 0x7fa736b4, 0x7f62368f, - 0x7f0991c4, 0x7e9d55fc, - 0x7e1d93ea, 0x7d8a5f40, 0x7ce3ceb2, 0x7c29fbee, 0x7b5d039e, 0x7a7d055b, - 0x798a23b1, 0x78848414, - 0x776c4edb, 0x7641af3d, 0x7504d345, 0x73b5ebd1, 0x72552c85, 0x70e2cbc6, - 0x6f5f02b2, 0x6dca0d14, - 0x6c242960, 0x6a6d98a4, 0x68a69e81, 0x66cf8120, 0x64e88926, 0x62f201ac, - 0x60ec3830, 0x5ed77c8a, - 0x5cb420e0, 0x5a82799a, 0x5842dd54, 0x55f5a4d2, 0x539b2af0, 0x5133cc94, - 0x4ebfe8a5, 0x4c3fdff4, - 0x49b41533, 0x471cece7, 0x447acd50, 0x41ce1e65, 0x3f1749b8, 0x3c56ba70, - 0x398cdd32, 0x36ba2014, - 0x33def287, 0x30fbc54d, 0x2e110a62, 0x2b1f34eb, 0x2826b928, 0x25280c5e, - 0x2223a4c5, 0x1f19f97b, - 0x1c0b826a, 0x18f8b83c, 0x15e21445, 0x12c8106f, 0xfab272b, 0xc8bd35e, - 0x96a9049, 0x647d97c, - 0x3242abf, 0x0, 0xfcdbd541, 0xf9b82684, 0xf6956fb7, 0xf3742ca2, 0xf054d8d5, - 0xed37ef91, - 0xea1debbb, 0xe70747c4, 0xe3f47d96, 0xe0e60685, 0xdddc5b3b, 0xdad7f3a2, - 0xd7d946d8, 0xd4e0cb15, - 0xd1eef59e, 0xcf043ab3, 0xcc210d79, 0xc945dfec, 0xc67322ce, 0xc3a94590, - 0xc0e8b648, 0xbe31e19b, - 0xbb8532b0, 0xb8e31319, 0xb64beacd, 0xb3c0200c, 0xb140175b, 0xaecc336c, - 0xac64d510, 0xaa0a5b2e, - 0xa7bd22ac, 0xa57d8666, 0xa34bdf20, 0xa1288376, 0x9f13c7d0, 0x9d0dfe54, - 0x9b1776da, 0x99307ee0, - 0x9759617f, 0x9592675c, 0x93dbd6a0, 0x9235f2ec, 0x90a0fd4e, 0x8f1d343a, - 0x8daad37b, 0x8c4a142f, - 0x8afb2cbb, 0x89be50c3, 0x8893b125, 0x877b7bec, 0x8675dc4f, 0x8582faa5, - 0x84a2fc62, 0x83d60412, - 0x831c314e, 0x8275a0c0, 0x81e26c16, 0x8162aa04, 0x80f66e3c, 0x809dc971, - 0x8058c94c, 0x80277872, - 0x8009de7e, 0x80000000, 0x8009de7e, 0x80277872, 0x8058c94c, 0x809dc971, - 0x80f66e3c, 0x8162aa04, - 0x81e26c16, 0x8275a0c0, 0x831c314e, 0x83d60412, 0x84a2fc62, 0x8582faa5, - 0x8675dc4f, 0x877b7bec, - 0x8893b125, 0x89be50c3, 0x8afb2cbb, 0x8c4a142f, 0x8daad37b, 0x8f1d343a, - 0x90a0fd4e, 0x9235f2ec, - 0x93dbd6a0, 0x9592675c, 0x9759617f, 0x99307ee0, 0x9b1776da, 0x9d0dfe54, - 0x9f13c7d0, 0xa1288376, - 0xa34bdf20, 0xa57d8666, 0xa7bd22ac, 0xaa0a5b2e, 0xac64d510, 0xaecc336c, - 0xb140175b, 0xb3c0200c, - 0xb64beacd, 0xb8e31319, 0xbb8532b0, 0xbe31e19b, 0xc0e8b648, 0xc3a94590, - 0xc67322ce, 0xc945dfec, - 0xcc210d79, 0xcf043ab3, 0xd1eef59e, 0xd4e0cb15, 0xd7d946d8, 0xdad7f3a2, - 0xdddc5b3b, 0xe0e60685, - 0xe3f47d96, 0xe70747c4, 0xea1debbb, 0xed37ef91, 0xf054d8d5, 0xf3742ca2, - 0xf6956fb7, 0xf9b82684, - 0xfcdbd541, 0x0, 0x3242abf, 0x647d97c, 0x96a9049, 0xc8bd35e, 0xfab272b, - 0x12c8106f, - 0x15e21445, 0x18f8b83c, 0x1c0b826a, 0x1f19f97b, 0x2223a4c5, 0x25280c5e, - 0x2826b928, 0x2b1f34eb, - 0x2e110a62, 0x30fbc54d, 0x33def287, 0x36ba2014, 0x398cdd32, 0x3c56ba70, - 0x3f1749b8, 0x41ce1e65, - 0x447acd50, 0x471cece7, 0x49b41533, 0x4c3fdff4, 0x4ebfe8a5, 0x5133cc94, - 0x539b2af0, 0x55f5a4d2, - 0x5842dd54, 0x5a82799a, 0x5cb420e0, 0x5ed77c8a, 0x60ec3830, 0x62f201ac, - 0x64e88926, 0x66cf8120, - 0x68a69e81, 0x6a6d98a4, 0x6c242960, 0x6dca0d14, 0x6f5f02b2, 0x70e2cbc6, - 0x72552c85, 0x73b5ebd1, - 0x7504d345, 0x7641af3d, 0x776c4edb, 0x78848414, 0x798a23b1, 0x7a7d055b, - 0x7b5d039e, 0x7c29fbee, - 0x7ce3ceb2, 0x7d8a5f40, 0x7e1d93ea, 0x7e9d55fc, 0x7f0991c4, 0x7f62368f, - 0x7fa736b4, 0x7fd8878e, - 0x7ff62182, 0x7fffffff, 0x7ff62182 -}; - -/** - * @brief Fast approximation to the trigonometric cosine function for Q31 data. - * @param[in] x Scaled input value in radians. - * @return cos(x). - * - * The Q31 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*pi), Here range excludes 2*pi. - */ - -q31_t arm_cos_q31( - q31_t x) -{ - q31_t cosVal, in, in2; /* Temporary variables for input, output */ - q31_t wa, wb, wc, wd; /* Cubic interpolation coefficients */ - q31_t a, b, c, d; /* Four nearest output values */ - q31_t *tablePtr; /* Pointer to table */ - q31_t fract, fractCube, fractSquare; /* Temporary values for fractional values */ - q31_t oneBy6 = 0x15555555; /* Fixed point value of 1/6 */ - q31_t tableSpacing = TABLE_SPACING_Q31; /* Table spacing */ - q31_t temp; /* Temporary variable for intermediate process */ - int32_t index; /* Index variable */ - - in = x; - - /* Calculate the nearest index */ - index = in / tableSpacing; - - /* Calculate the nearest value of input */ - in2 = ((q31_t) index) * tableSpacing; - - /* Calculation of fractional value */ - fract = (in - in2) << 8; - - /* fractSquare = fract * fract */ - fractSquare = ((q31_t) (((q63_t) fract * fract) >> 32)); - fractSquare = fractSquare << 1; - - /* fractCube = fract * fract * fract */ - fractCube = ((q31_t) (((q63_t) fractSquare * fract) >> 32)); - fractCube = fractCube << 1; - - /* Checking min and max index of table */ - if(index < 0) - { - index = 0; - } - else if(index > 256) - { - index = 256; - } - - /* Initialise table pointer */ - tablePtr = (q31_t *) & cosTableQ31[index]; - - /* Cubic interpolation process */ - /* Calculation of wa */ - /* wa = -(oneBy6)*fractCube + (fractSquare >> 1u) - (0x2AAAAAAA)*fract; */ - wa = ((q31_t) (((q63_t) oneBy6 * fractCube) >> 32)); - temp = 0x2AAAAAAA; - wa = (q31_t) ((((q63_t) wa << 32) + ((q63_t) temp * fract)) >> 32); - wa = -(wa << 1u); - wa += (fractSquare >> 1u); - - /* Read first nearest value of output from the cos table */ - a = *tablePtr++; - - /* cosVal = a*wa */ - cosVal = ((q31_t) (((q63_t) a * wa) >> 32)); - - /* q31(1.31) Fixed point value of 1 */ - temp = 0x7FFFFFFF; - - /* Calculation of wb */ - wb = ((fractCube >> 1u) - (fractSquare + (fract >> 1u))) + temp; - /* Read second nearest value of output from the cos table */ - b = *tablePtr++; - - /* cosVal += b*wb */ - cosVal = (q31_t) ((((q63_t) cosVal << 32) + ((q63_t) b * (wb))) >> 32); - - /* Calculation of wc */ - wc = -fractCube + fractSquare; - wc = (wc >> 1u) + fract; - /* Read third nearest values of output value from the cos table */ - c = *tablePtr++; - - /* cosVal += c*wc */ - cosVal = (q31_t) ((((q63_t) cosVal << 32) + ((q63_t) c * (wc))) >> 32); - - /* Calculation of wd */ - /* wd = (oneBy6)*fractCube - (oneBy6)*fract; */ - fractCube = fractCube - fract; - wd = ((q31_t) (((q63_t) oneBy6 * fractCube) >> 32)); - wd = (wd << 1u); - - /* Read fourth nearest value of output from the cos table */ - d = *tablePtr++; - - /* cosVal += d*wd; */ - cosVal = (q31_t) ((((q63_t) cosVal << 32) + ((q63_t) d * (wd))) >> 32); - - - /* convert cosVal in 2.30 format to 1.31 format */ - return (__QADD(cosVal, cosVal)); - -} - -/** - * @} end of cos group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_f32.c deleted file mode 100644 index bfe58d5c81..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_f32.c +++ /dev/null @@ -1,281 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sin_f32.c -* -* Description: Fast sine calculation for floating-point values. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFastMath - */ - -/** - * @defgroup sin Sine - * - * Computes the trigonometric sine function using a combination of table lookup - * and cubic interpolation. There are separate functions for - * Q15, Q31, and floating-point data types. - * The input to the floating-point version is in radians while the - * fixed-point Q15 and Q31 have a scaled input with the range - * [0 +0.9999] mapping to [0 2*pi), Where range excludes 2*pi. - * - * The implementation is based on table lookup using 256 values together with cubic interpolation. - * The steps used are: - * -# Calculation of the nearest integer table index - * -# Fetch the four table values a, b, c, and d - * -# Compute the fractional portion (fract) of the table index. - * -# Calculation of wa, wb, wc, wd - * -# The final result equals a*wa + b*wb + c*wc + d*wd - * - * where - *
    
- *    a=Table[index-1];    
- *    b=Table[index+0];    
- *    c=Table[index+1];    
- *    d=Table[index+2];    
- * 
- * and - *
    
- *    wa=-(1/6)*fract.^3 + (1/2)*fract.^2 - (1/3)*fract;    
- *    wb=(1/2)*fract.^3 - fract.^2 - (1/2)*fract + 1;    
- *    wc=-(1/2)*fract.^3+(1/2)*fract.^2+fract;    
- *    wd=(1/6)*fract.^3 - (1/6)*fract;    
- * 
- */ - -/** - * @addtogroup sin - * @{ - */ - - -/** - * \par - * Example code for Generation of Floating-point Sin Table: - * tableSize = 256; - *
for(n = -1; n < (tableSize + 1); n++)    
- * {    
- *	sinTable[n+1]=sin(2*pi*n/tableSize);    
- * }
- * \par - * where pi value is 3.14159265358979 - */ - -static const float32_t sinTable[259] = { - -0.024541229009628296f, 0.000000000000000000f, 0.024541229009628296f, - 0.049067676067352295f, 0.073564566671848297f, 0.098017141222953796f, - 0.122410677373409270f, 0.146730467677116390f, - 0.170961886644363400f, 0.195090323686599730f, 0.219101235270500180f, - 0.242980182170867920f, 0.266712754964828490f, 0.290284663438797000f, - 0.313681751489639280f, 0.336889863014221190f, - 0.359895050525665280f, 0.382683426141738890f, 0.405241310596466060f, - 0.427555084228515630f, 0.449611335992813110f, 0.471396744251251220f, - 0.492898195981979370f, 0.514102756977081300f, - 0.534997642040252690f, 0.555570244789123540f, 0.575808167457580570f, - 0.595699310302734380f, 0.615231573581695560f, 0.634393274784088130f, - 0.653172850608825680f, 0.671558976173400880f, - 0.689540565013885500f, 0.707106769084930420f, 0.724247097969055180f, - 0.740951120853424070f, 0.757208824157714840f, 0.773010432720184330f, - 0.788346409797668460f, 0.803207516670227050f, - 0.817584812641143800f, 0.831469595432281490f, 0.844853579998016360f, - 0.857728600502014160f, 0.870086967945098880f, 0.881921291351318360f, - 0.893224298954010010f, 0.903989315032958980f, - 0.914209783077239990f, 0.923879504203796390f, 0.932992815971374510f, - 0.941544055938720700f, 0.949528157711029050f, 0.956940352916717530f, - 0.963776051998138430f, 0.970031261444091800f, - 0.975702106952667240f, 0.980785250663757320f, 0.985277652740478520f, - 0.989176511764526370f, 0.992479562759399410f, 0.995184719562530520f, - 0.997290432453155520f, 0.998795449733734130f, - 0.999698817729949950f, 1.000000000000000000f, 0.999698817729949950f, - 0.998795449733734130f, 0.997290432453155520f, 0.995184719562530520f, - 0.992479562759399410f, 0.989176511764526370f, - 0.985277652740478520f, 0.980785250663757320f, 0.975702106952667240f, - 0.970031261444091800f, 0.963776051998138430f, 0.956940352916717530f, - 0.949528157711029050f, 0.941544055938720700f, - 0.932992815971374510f, 0.923879504203796390f, 0.914209783077239990f, - 0.903989315032958980f, 0.893224298954010010f, 0.881921291351318360f, - 0.870086967945098880f, 0.857728600502014160f, - 0.844853579998016360f, 0.831469595432281490f, 0.817584812641143800f, - 0.803207516670227050f, 0.788346409797668460f, 0.773010432720184330f, - 0.757208824157714840f, 0.740951120853424070f, - 0.724247097969055180f, 0.707106769084930420f, 0.689540565013885500f, - 0.671558976173400880f, 0.653172850608825680f, 0.634393274784088130f, - 0.615231573581695560f, 0.595699310302734380f, - 0.575808167457580570f, 0.555570244789123540f, 0.534997642040252690f, - 0.514102756977081300f, 0.492898195981979370f, 0.471396744251251220f, - 0.449611335992813110f, 0.427555084228515630f, - 0.405241310596466060f, 0.382683426141738890f, 0.359895050525665280f, - 0.336889863014221190f, 0.313681751489639280f, 0.290284663438797000f, - 0.266712754964828490f, 0.242980182170867920f, - 0.219101235270500180f, 0.195090323686599730f, 0.170961886644363400f, - 0.146730467677116390f, 0.122410677373409270f, 0.098017141222953796f, - 0.073564566671848297f, 0.049067676067352295f, - 0.024541229009628296f, 0.000000000000000122f, -0.024541229009628296f, - -0.049067676067352295f, -0.073564566671848297f, -0.098017141222953796f, - -0.122410677373409270f, -0.146730467677116390f, - -0.170961886644363400f, -0.195090323686599730f, -0.219101235270500180f, - -0.242980182170867920f, -0.266712754964828490f, -0.290284663438797000f, - -0.313681751489639280f, -0.336889863014221190f, - -0.359895050525665280f, -0.382683426141738890f, -0.405241310596466060f, - -0.427555084228515630f, -0.449611335992813110f, -0.471396744251251220f, - -0.492898195981979370f, -0.514102756977081300f, - -0.534997642040252690f, -0.555570244789123540f, -0.575808167457580570f, - -0.595699310302734380f, -0.615231573581695560f, -0.634393274784088130f, - -0.653172850608825680f, -0.671558976173400880f, - -0.689540565013885500f, -0.707106769084930420f, -0.724247097969055180f, - -0.740951120853424070f, -0.757208824157714840f, -0.773010432720184330f, - -0.788346409797668460f, -0.803207516670227050f, - -0.817584812641143800f, -0.831469595432281490f, -0.844853579998016360f, - -0.857728600502014160f, -0.870086967945098880f, -0.881921291351318360f, - -0.893224298954010010f, -0.903989315032958980f, - -0.914209783077239990f, -0.923879504203796390f, -0.932992815971374510f, - -0.941544055938720700f, -0.949528157711029050f, -0.956940352916717530f, - -0.963776051998138430f, -0.970031261444091800f, - -0.975702106952667240f, -0.980785250663757320f, -0.985277652740478520f, - -0.989176511764526370f, -0.992479562759399410f, -0.995184719562530520f, - -0.997290432453155520f, -0.998795449733734130f, - -0.999698817729949950f, -1.000000000000000000f, -0.999698817729949950f, - -0.998795449733734130f, -0.997290432453155520f, -0.995184719562530520f, - -0.992479562759399410f, -0.989176511764526370f, - -0.985277652740478520f, -0.980785250663757320f, -0.975702106952667240f, - -0.970031261444091800f, -0.963776051998138430f, -0.956940352916717530f, - -0.949528157711029050f, -0.941544055938720700f, - -0.932992815971374510f, -0.923879504203796390f, -0.914209783077239990f, - -0.903989315032958980f, -0.893224298954010010f, -0.881921291351318360f, - -0.870086967945098880f, -0.857728600502014160f, - -0.844853579998016360f, -0.831469595432281490f, -0.817584812641143800f, - -0.803207516670227050f, -0.788346409797668460f, -0.773010432720184330f, - -0.757208824157714840f, -0.740951120853424070f, - -0.724247097969055180f, -0.707106769084930420f, -0.689540565013885500f, - -0.671558976173400880f, -0.653172850608825680f, -0.634393274784088130f, - -0.615231573581695560f, -0.595699310302734380f, - -0.575808167457580570f, -0.555570244789123540f, -0.534997642040252690f, - -0.514102756977081300f, -0.492898195981979370f, -0.471396744251251220f, - -0.449611335992813110f, -0.427555084228515630f, - -0.405241310596466060f, -0.382683426141738890f, -0.359895050525665280f, - -0.336889863014221190f, -0.313681751489639280f, -0.290284663438797000f, - -0.266712754964828490f, -0.242980182170867920f, - -0.219101235270500180f, -0.195090323686599730f, -0.170961886644363400f, - -0.146730467677116390f, -0.122410677373409270f, -0.098017141222953796f, - -0.073564566671848297f, -0.049067676067352295f, - -0.024541229009628296f, -0.000000000000000245f, 0.024541229009628296f -}; - - -/** - * @brief Fast approximation to the trigonometric sine function for floating-point data. - * @param[in] x input value in radians. - * @return sin(x). - */ - -float32_t arm_sin_f32( - float32_t x) -{ - float32_t sinVal, fract, in; /* Temporary variables for input, output */ - int32_t index; /* Index variable */ - uint32_t tableSize = (uint32_t) TABLE_SIZE; /* Initialise tablesize */ - float32_t wa, wb, wc, wd; /* Cubic interpolation coefficients */ - float32_t a, b, c, d; /* Four nearest output values */ - float32_t *tablePtr; /* Pointer to table */ - int32_t n; - float32_t fractsq, fractby2, fractby6, fractby3, fractsqby2; - float32_t oneminusfractby2; - float32_t frby2xfrsq, frby6xfrsq; - - /* input x is in radians */ - /* Scale the input to [0 1] range from [0 2*PI] , divide input by 2*pi */ - in = x * 0.159154943092f; - - /* Calculation of floor value of input */ - n = (int32_t) in; - - /* Make negative values towards -infinity */ - if(x < 0.0f) - { - n = n - 1; - } - - /* Map input value to [0 1] */ - in = in - (float32_t) n; - - /* Calculation of index of the table */ - index = (uint32_t) (tableSize * in); - - /* fractional value calculation */ - fract = ((float32_t) tableSize * in) - (float32_t) index; - - /* Checking min and max index of table */ - if(index < 0) - { - index = 0; - } - else if(index > 256) - { - index = 256; - } - - /* Initialise table pointer */ - tablePtr = (float32_t *) & sinTable[index]; - - /* Read four nearest values of input value from the sin table */ - a = tablePtr[0]; - b = tablePtr[1]; - c = tablePtr[2]; - d = tablePtr[3]; - - /* Cubic interpolation process */ - fractsq = fract * fract; - fractby2 = fract * 0.5f; - fractby6 = fract * 0.166666667f; - fractby3 = fract * 0.3333333333333f; - fractsqby2 = fractsq * 0.5f; - frby2xfrsq = (fractby2) * fractsq; - frby6xfrsq = (fractby6) * fractsq; - oneminusfractby2 = 1.0f - fractby2; - wb = fractsqby2 - fractby3; - wc = (fractsqby2 + fract); - wa = wb - frby6xfrsq; - wb = frby2xfrsq - fractsq; - sinVal = wa * a; - wc = wc - frby2xfrsq; - wd = (frby6xfrsq) - fractby6; - wb = wb + oneminusfractby2; - - /* Calculate sin value */ - sinVal = (sinVal + (b * wb)) + ((c * wc) + (d * wd)); - - /* Return the output value */ - return (sinVal); - -} - -/** - * @} end of sin group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c deleted file mode 100644 index b53ca3ecc4..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c +++ /dev/null @@ -1,208 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sin_q15.c -* -* Description: Fast sine calculation for Q15 values. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFastMath - */ - - /** - * @addtogroup sin - * @{ - */ - - -/** - * \par - * Example code for Generation of Q15 Sin Table: - * \par - *
tableSize = 256;    
- * for(n = -1; n < (tableSize + 1); n++)    
- * {    
- *	sinTable[n+1]=sin(2*pi*n/tableSize);    
- * } 
- * where pi value is 3.14159265358979 - * \par - * Convert Floating point to Q15(Fixed point): - * (sinTable[i] * pow(2, 15)) - * \par - * rounding to nearest integer is done - * sinTable[i] += (sinTable[i] > 0 ? 0.5 :-0.5); - */ - - -static const q15_t sinTableQ15[259] = { - 0xfcdc, 0x0, 0x324, 0x648, 0x96b, 0xc8c, 0xfab, 0x12c8, - 0x15e2, 0x18f9, 0x1c0c, 0x1f1a, 0x2224, 0x2528, 0x2827, 0x2b1f, - 0x2e11, 0x30fc, 0x33df, 0x36ba, 0x398d, 0x3c57, 0x3f17, 0x41ce, - 0x447b, 0x471d, 0x49b4, 0x4c40, 0x4ec0, 0x5134, 0x539b, 0x55f6, - 0x5843, 0x5a82, 0x5cb4, 0x5ed7, 0x60ec, 0x62f2, 0x64e9, 0x66d0, - 0x68a7, 0x6a6e, 0x6c24, 0x6dca, 0x6f5f, 0x70e3, 0x7255, 0x73b6, - 0x7505, 0x7642, 0x776c, 0x7885, 0x798a, 0x7a7d, 0x7b5d, 0x7c2a, - 0x7ce4, 0x7d8a, 0x7e1e, 0x7e9d, 0x7f0a, 0x7f62, 0x7fa7, 0x7fd9, - 0x7ff6, 0x7fff, 0x7ff6, 0x7fd9, 0x7fa7, 0x7f62, 0x7f0a, 0x7e9d, - 0x7e1e, 0x7d8a, 0x7ce4, 0x7c2a, 0x7b5d, 0x7a7d, 0x798a, 0x7885, - 0x776c, 0x7642, 0x7505, 0x73b6, 0x7255, 0x70e3, 0x6f5f, 0x6dca, - 0x6c24, 0x6a6e, 0x68a7, 0x66d0, 0x64e9, 0x62f2, 0x60ec, 0x5ed7, - 0x5cb4, 0x5a82, 0x5843, 0x55f6, 0x539b, 0x5134, 0x4ec0, 0x4c40, - 0x49b4, 0x471d, 0x447b, 0x41ce, 0x3f17, 0x3c57, 0x398d, 0x36ba, - 0x33df, 0x30fc, 0x2e11, 0x2b1f, 0x2827, 0x2528, 0x2224, 0x1f1a, - 0x1c0c, 0x18f9, 0x15e2, 0x12c8, 0xfab, 0xc8c, 0x96b, 0x648, - 0x324, 0x0, 0xfcdc, 0xf9b8, 0xf695, 0xf374, 0xf055, 0xed38, - 0xea1e, 0xe707, 0xe3f4, 0xe0e6, 0xdddc, 0xdad8, 0xd7d9, 0xd4e1, - 0xd1ef, 0xcf04, 0xcc21, 0xc946, 0xc673, 0xc3a9, 0xc0e9, 0xbe32, - 0xbb85, 0xb8e3, 0xb64c, 0xb3c0, 0xb140, 0xaecc, 0xac65, 0xaa0a, - 0xa7bd, 0xa57e, 0xa34c, 0xa129, 0x9f14, 0x9d0e, 0x9b17, 0x9930, - 0x9759, 0x9592, 0x93dc, 0x9236, 0x90a1, 0x8f1d, 0x8dab, 0x8c4a, - 0x8afb, 0x89be, 0x8894, 0x877b, 0x8676, 0x8583, 0x84a3, 0x83d6, - 0x831c, 0x8276, 0x81e2, 0x8163, 0x80f6, 0x809e, 0x8059, 0x8027, - 0x800a, 0x8000, 0x800a, 0x8027, 0x8059, 0x809e, 0x80f6, 0x8163, - 0x81e2, 0x8276, 0x831c, 0x83d6, 0x84a3, 0x8583, 0x8676, 0x877b, - 0x8894, 0x89be, 0x8afb, 0x8c4a, 0x8dab, 0x8f1d, 0x90a1, 0x9236, - 0x93dc, 0x9592, 0x9759, 0x9930, 0x9b17, 0x9d0e, 0x9f14, 0xa129, - 0xa34c, 0xa57e, 0xa7bd, 0xaa0a, 0xac65, 0xaecc, 0xb140, 0xb3c0, - 0xb64c, 0xb8e3, 0xbb85, 0xbe32, 0xc0e9, 0xc3a9, 0xc673, 0xc946, - 0xcc21, 0xcf04, 0xd1ef, 0xd4e1, 0xd7d9, 0xdad8, 0xdddc, 0xe0e6, - 0xe3f4, 0xe707, 0xea1e, 0xed38, 0xf055, 0xf374, 0xf695, 0xf9b8, - 0xfcdc, 0x0, 0x324 -}; - - -/** - * @brief Fast approximation to the trigonometric sine function for Q15 data. - * @param[in] x Scaled input value in radians. - * @return sin(x). - * - * The Q15 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*pi), Here range excludes 2*pi. - */ - -q15_t arm_sin_q15( - q15_t x) -{ - q31_t sinVal; /* Temporary variables output */ - q15_t *tablePtr; /* Pointer to table */ - q15_t fract, in, in2; /* Temporary variables for input, output */ - q31_t wa, wb, wc, wd; /* Cubic interpolation coefficients */ - q15_t a, b, c, d; /* Four nearest output values */ - q15_t fractCube, fractSquare; /* Temporary values for fractional value */ - q15_t oneBy6 = 0x1555; /* Fixed point value of 1/6 */ - q15_t tableSpacing = TABLE_SPACING_Q15; /* Table spacing */ - int32_t index; /* Index variable */ - - in = x; - - /* Calculate the nearest index */ - index = (int32_t) in / tableSpacing; - - /* Calculate the nearest value of input */ - in2 = (q15_t) ((index) * tableSpacing); - - /* Calculation of fractional value */ - fract = (in - in2) << 8; - - /* fractSquare = fract * fract */ - fractSquare = (q15_t) ((fract * fract) >> 15); - - /* fractCube = fract * fract * fract */ - fractCube = (q15_t) ((fractSquare * fract) >> 15); - - /* Checking min and max index of table */ - if(index < 0) - { - index = 0; - } - else if(index > 256) - { - index = 256; - } - - /* Initialise table pointer */ - tablePtr = (q15_t *) & sinTableQ15[index]; - - /* Cubic interpolation process */ - /* Calculation of wa */ - /* wa = -(oneBy6)*fractCube + (fractSquare >> 1u) - (0x2AAA)*fract; */ - wa = (q31_t) oneBy6 *fractCube; - wa += (q31_t) 0x2AAA *fract; - wa = -(wa >> 15); - wa += ((q31_t) fractSquare >> 1u); - - /* Read first nearest value of output from the sin table */ - a = *tablePtr++; - - /* sinVal = a * wa */ - sinVal = a * wa; - - /* Calculation of wb */ - wb = (((q31_t) fractCube >> 1u) - (q31_t) fractSquare) - - (((q31_t) fract >> 1u) - 0x7FFF); - - /* Read second nearest value of output from the sin table */ - b = *tablePtr++; - - /* sinVal += b*wb */ - sinVal += b * wb; - - - /* Calculation of wc */ - wc = -(q31_t) fractCube + fractSquare; - wc = (wc >> 1u) + fract; - - /* Read third nearest value of output from the sin table */ - c = *tablePtr++; - - /* sinVal += c*wc */ - sinVal += c * wc; - - /* Calculation of wd */ - /* wd = (oneBy6)*fractCube - (oneBy6)*fract; */ - fractCube = fractCube - fract; - wd = ((q15_t) (((q31_t) oneBy6 * fractCube) >> 15)); - - /* Read fourth nearest value of output from the sin table */ - d = *tablePtr++; - - /* sinVal += d*wd; */ - sinVal += d * wd; - - /* Convert output value in 1.15(q15) format and saturate */ - sinVal = __SSAT((sinVal >> 15), 16); - - /* Return the output value in 1.15(q15) format */ - return ((q15_t) sinVal); - -} - -/** - * @} end of sin group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c deleted file mode 100644 index 336796b5c1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c +++ /dev/null @@ -1,240 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sin_q31.c -* -* Description: Fast sine calculation for Q31 values. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFastMath - */ - - /** - * @addtogroup sin - * @{ - */ - -/** - * \par - * Tables generated are in Q31(1.31 Fixed point format) - * Generation of sin values in floating point: - *
tableSize = 256;      
- * for(n = -1; n < (tableSize + 1); n++)    
- * {    
- *	sinTable[n+1]= sin(2*pi*n/tableSize);    
- * } 
- * where pi value is 3.14159265358979 - * \par - * Convert Floating point to Q31(Fixed point): - * (sinTable[i] * pow(2, 31)) - * \par - * rounding to nearest integer is done - * sinTable[i] += (sinTable[i] > 0 ? 0.5 :-0.5); - */ - -static const q31_t sinTableQ31[259] = { - 0xfcdbd541, 0x0, 0x3242abf, 0x647d97c, 0x96a9049, 0xc8bd35e, 0xfab272b, - 0x12c8106f, - 0x15e21445, 0x18f8b83c, 0x1c0b826a, 0x1f19f97b, 0x2223a4c5, 0x25280c5e, - 0x2826b928, 0x2b1f34eb, - 0x2e110a62, 0x30fbc54d, 0x33def287, 0x36ba2014, 0x398cdd32, 0x3c56ba70, - 0x3f1749b8, 0x41ce1e65, - 0x447acd50, 0x471cece7, 0x49b41533, 0x4c3fdff4, 0x4ebfe8a5, 0x5133cc94, - 0x539b2af0, 0x55f5a4d2, - 0x5842dd54, 0x5a82799a, 0x5cb420e0, 0x5ed77c8a, 0x60ec3830, 0x62f201ac, - 0x64e88926, 0x66cf8120, - 0x68a69e81, 0x6a6d98a4, 0x6c242960, 0x6dca0d14, 0x6f5f02b2, 0x70e2cbc6, - 0x72552c85, 0x73b5ebd1, - 0x7504d345, 0x7641af3d, 0x776c4edb, 0x78848414, 0x798a23b1, 0x7a7d055b, - 0x7b5d039e, 0x7c29fbee, - 0x7ce3ceb2, 0x7d8a5f40, 0x7e1d93ea, 0x7e9d55fc, 0x7f0991c4, 0x7f62368f, - 0x7fa736b4, 0x7fd8878e, - 0x7ff62182, 0x7fffffff, 0x7ff62182, 0x7fd8878e, 0x7fa736b4, 0x7f62368f, - 0x7f0991c4, 0x7e9d55fc, - 0x7e1d93ea, 0x7d8a5f40, 0x7ce3ceb2, 0x7c29fbee, 0x7b5d039e, 0x7a7d055b, - 0x798a23b1, 0x78848414, - 0x776c4edb, 0x7641af3d, 0x7504d345, 0x73b5ebd1, 0x72552c85, 0x70e2cbc6, - 0x6f5f02b2, 0x6dca0d14, - 0x6c242960, 0x6a6d98a4, 0x68a69e81, 0x66cf8120, 0x64e88926, 0x62f201ac, - 0x60ec3830, 0x5ed77c8a, - 0x5cb420e0, 0x5a82799a, 0x5842dd54, 0x55f5a4d2, 0x539b2af0, 0x5133cc94, - 0x4ebfe8a5, 0x4c3fdff4, - 0x49b41533, 0x471cece7, 0x447acd50, 0x41ce1e65, 0x3f1749b8, 0x3c56ba70, - 0x398cdd32, 0x36ba2014, - 0x33def287, 0x30fbc54d, 0x2e110a62, 0x2b1f34eb, 0x2826b928, 0x25280c5e, - 0x2223a4c5, 0x1f19f97b, - 0x1c0b826a, 0x18f8b83c, 0x15e21445, 0x12c8106f, 0xfab272b, 0xc8bd35e, - 0x96a9049, 0x647d97c, - 0x3242abf, 0x0, 0xfcdbd541, 0xf9b82684, 0xf6956fb7, 0xf3742ca2, 0xf054d8d5, - 0xed37ef91, - 0xea1debbb, 0xe70747c4, 0xe3f47d96, 0xe0e60685, 0xdddc5b3b, 0xdad7f3a2, - 0xd7d946d8, 0xd4e0cb15, - 0xd1eef59e, 0xcf043ab3, 0xcc210d79, 0xc945dfec, 0xc67322ce, 0xc3a94590, - 0xc0e8b648, 0xbe31e19b, - 0xbb8532b0, 0xb8e31319, 0xb64beacd, 0xb3c0200c, 0xb140175b, 0xaecc336c, - 0xac64d510, 0xaa0a5b2e, - 0xa7bd22ac, 0xa57d8666, 0xa34bdf20, 0xa1288376, 0x9f13c7d0, 0x9d0dfe54, - 0x9b1776da, 0x99307ee0, - 0x9759617f, 0x9592675c, 0x93dbd6a0, 0x9235f2ec, 0x90a0fd4e, 0x8f1d343a, - 0x8daad37b, 0x8c4a142f, - 0x8afb2cbb, 0x89be50c3, 0x8893b125, 0x877b7bec, 0x8675dc4f, 0x8582faa5, - 0x84a2fc62, 0x83d60412, - 0x831c314e, 0x8275a0c0, 0x81e26c16, 0x8162aa04, 0x80f66e3c, 0x809dc971, - 0x8058c94c, 0x80277872, - 0x8009de7e, 0x80000000, 0x8009de7e, 0x80277872, 0x8058c94c, 0x809dc971, - 0x80f66e3c, 0x8162aa04, - 0x81e26c16, 0x8275a0c0, 0x831c314e, 0x83d60412, 0x84a2fc62, 0x8582faa5, - 0x8675dc4f, 0x877b7bec, - 0x8893b125, 0x89be50c3, 0x8afb2cbb, 0x8c4a142f, 0x8daad37b, 0x8f1d343a, - 0x90a0fd4e, 0x9235f2ec, - 0x93dbd6a0, 0x9592675c, 0x9759617f, 0x99307ee0, 0x9b1776da, 0x9d0dfe54, - 0x9f13c7d0, 0xa1288376, - 0xa34bdf20, 0xa57d8666, 0xa7bd22ac, 0xaa0a5b2e, 0xac64d510, 0xaecc336c, - 0xb140175b, 0xb3c0200c, - 0xb64beacd, 0xb8e31319, 0xbb8532b0, 0xbe31e19b, 0xc0e8b648, 0xc3a94590, - 0xc67322ce, 0xc945dfec, - 0xcc210d79, 0xcf043ab3, 0xd1eef59e, 0xd4e0cb15, 0xd7d946d8, 0xdad7f3a2, - 0xdddc5b3b, 0xe0e60685, - 0xe3f47d96, 0xe70747c4, 0xea1debbb, 0xed37ef91, 0xf054d8d5, 0xf3742ca2, - 0xf6956fb7, 0xf9b82684, - 0xfcdbd541, 0x0, 0x3242abf -}; - - -/** - * @brief Fast approximation to the trigonometric sine function for Q31 data. - * @param[in] x Scaled input value in radians. - * @return sin(x). - * - * The Q31 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*pi), Here range excludes 2*pi. - */ - -q31_t arm_sin_q31( - q31_t x) -{ - q31_t sinVal, in, in2; /* Temporary variables for input, output */ - int32_t index; /* Index variables */ - q31_t wa, wb, wc, wd; /* Cubic interpolation coefficients */ - q31_t a, b, c, d; /* Four nearest output values */ - q31_t *tablePtr; /* Pointer to table */ - q31_t fract, fractCube, fractSquare; /* Temporary values for fractional values */ - q31_t oneBy6 = 0x15555555; /* Fixed point value of 1/6 */ - q31_t tableSpacing = TABLE_SPACING_Q31; /* Table spacing */ - q31_t temp; /* Temporary variable for intermediate process */ - - in = x; - - /* Calculate the nearest index */ - index = (uint32_t) in / (uint32_t) tableSpacing; - - /* Calculate the nearest value of input */ - in2 = (q31_t) index *tableSpacing; - - /* Calculation of fractional value */ - fract = (in - in2) << 8; - - /* fractSquare = fract * fract */ - fractSquare = ((q31_t) (((q63_t) fract * fract) >> 32)); - fractSquare = fractSquare << 1; - - /* fractCube = fract * fract * fract */ - fractCube = ((q31_t) (((q63_t) fractSquare * fract) >> 32)); - fractCube = fractCube << 1; - - /* Checking min and max index of table */ - if(index < 0) - { - index = 0; - } - else if(index > 256) - { - index = 256; - } - - /* Initialise table pointer */ - tablePtr = (q31_t *) & sinTableQ31[index]; - - /* Cubic interpolation process */ - /* Calculation of wa */ - /* wa = -(oneBy6)*fractCube + (fractSquare >> 1u) - (0x2AAAAAAA)*fract; */ - wa = ((q31_t) (((q63_t) oneBy6 * fractCube) >> 32)); - temp = 0x2AAAAAAA; - wa = (q31_t) ((((q63_t) wa << 32) + ((q63_t) temp * fract)) >> 32); - wa = -(wa << 1u); - wa += (fractSquare >> 1u); - - /* Read first nearest value of output from the sin table */ - a = *tablePtr++; - - /* sinVal = a*wa */ - sinVal = ((q31_t) (((q63_t) a * wa) >> 32)); - - /* q31(1.31) Fixed point value of 1 */ - temp = 0x7FFFFFFF; - - /* Calculation of wb */ - wb = ((fractCube >> 1u) - (fractSquare + (fract >> 1u))) + temp; - - /* Read second nearest value of output from the sin table */ - b = *tablePtr++; - - /* sinVal += b*wb */ - sinVal = (q31_t) ((((q63_t) sinVal << 32) + (q63_t) b * (wb)) >> 32); - - /* Calculation of wc */ - wc = -fractCube + fractSquare; - wc = (wc >> 1u) + fract; - - /* Read third nearest value of output from the sin table */ - c = *tablePtr++; - - /* sinVal += c*wc */ - sinVal = (q31_t) ((((q63_t) sinVal << 32) + ((q63_t) c * wc)) >> 32); - - /* Calculation of wd */ - /* wd = (oneBy6) * fractCube - (oneBy6) * fract; */ - fractCube = fractCube - fract; - wd = ((q31_t) (((q63_t) oneBy6 * fractCube) >> 32)); - wd = (wd << 1u); - - /* Read fourth nearest value of output from the sin table */ - d = *tablePtr++; - - /* sinVal += d*wd; */ - sinVal = (q31_t) ((((q63_t) sinVal << 32) + ((q63_t) d * wd)) >> 32); - - /* convert sinVal in 2.30 format to 1.31 format */ - return (__QADD(sinVal, sinVal)); - -} - -/** - * @} end of sin group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q15.c deleted file mode 100644 index 0a6d6a53a2..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q15.c +++ /dev/null @@ -1,131 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2011 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sqrt_q15.c -* -* Description: Q15 square root function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.0 2011/03/08 -* Alpha release. -* -* Version 1.0.1 2011/09/30 -* Beta release. -* -* -------------------------------------------------------------------- */ -#include "arm_math.h" -#include "arm_common_tables.h" - - -/** - * @ingroup groupFastMath - */ - -/** - * @addtogroup SQRT - * @{ - */ - - /** - * @brief Q15 square root function. - * @param[in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF. - * @param[out] *pOut square root of input value. - * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if - * in is negative value and returns zero output for negative values. - */ - -arm_status arm_sqrt_q15( - q15_t in, - q15_t * pOut) -{ - q15_t number, temp1, var1, signBits1, half; - q31_t bits_val1; - float32_t temp_float1; - - number = in; - - /* If the input is a positive number then compute the signBits. */ - if(number > 0) - { - signBits1 = __CLZ(number) - 17; - - /* Shift by the number of signBits1 */ - if((signBits1 % 2) == 0) - { - number = number << signBits1; - } - else - { - number = number << (signBits1 - 1); - } - - /* Calculate half value of the number */ - half = number >> 1; - /* Store the number for later use */ - temp1 = number; - - /*Convert to float */ - temp_float1 = number * 3.051757812500000e-005f; - /*Store as integer */ - bits_val1 = *(int *) &temp_float1; - /* Subtract the shifted value from the magic number to give intial guess */ - bits_val1 = 0x5f3759df - (bits_val1 >> 1); // gives initial guess - /* Store as float */ - temp_float1 = *(float *) &bits_val1; - /* Convert to integer format */ - var1 = (q31_t) (temp_float1 * 16384); - - /* 1st iteration */ - var1 = ((q15_t) ((q31_t) var1 * (0x3000 - - ((q15_t) - ((((q15_t) - (((q31_t) var1 * var1) >> 15)) * - (q31_t) half) >> 15))) >> 15)) << 2; - /* 2nd iteration */ - var1 = ((q15_t) ((q31_t) var1 * (0x3000 - - ((q15_t) - ((((q15_t) - (((q31_t) var1 * var1) >> 15)) * - (q31_t) half) >> 15))) >> 15)) << 2; - /* 3rd iteration */ - var1 = ((q15_t) ((q31_t) var1 * (0x3000 - - ((q15_t) - ((((q15_t) - (((q31_t) var1 * var1) >> 15)) * - (q31_t) half) >> 15))) >> 15)) << 2; - - /* Multiply the inverse square root with the original value */ - var1 = ((q15_t) (((q31_t) temp1 * var1) >> 15)) << 1; - - /* Shift the output down accordingly */ - if((signBits1 % 2) == 0) - { - var1 = var1 >> (signBits1 / 2); - } - else - { - var1 = var1 >> ((signBits1 - 1) / 2); - } - *pOut = var1; - - return (ARM_MATH_SUCCESS); - } - /* If the number is a negative number then store zero as its square root value */ - else - { - *pOut = 0; - return (ARM_MATH_ARGUMENT_ERROR); - } -} - -/** - * @} end of SQRT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q31.c deleted file mode 100644 index 2a3b7ac18d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q31.c +++ /dev/null @@ -1,129 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2011 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_sqrt_q31.c -* -* Description: Q31 square root function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.0 2011/03/08 -* Alpha release. -* -* Version 1.0.1 2011/09/30 -* Beta release. -* -* -------------------------------------------------------------------- */ -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupFastMath - */ - -/** - * @addtogroup SQRT - * @{ - */ - -/** - * @brief Q31 square root function. - * @param[in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFFFFF. - * @param[out] *pOut square root of input value. - * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if - * in is negative value and returns zero output for negative values. - */ - -arm_status arm_sqrt_q31( - q31_t in, - q31_t * pOut) -{ - q31_t number, temp1, bits_val1, var1, signBits1, half; - float32_t temp_float1; - - number = in; - - /* If the input is a positive number then compute the signBits. */ - if(number > 0) - { - signBits1 = __CLZ(number) - 1; - - /* Shift by the number of signBits1 */ - if((signBits1 % 2) == 0) - { - number = number << signBits1; - } - else - { - number = number << (signBits1 - 1); - } - - /* Calculate half value of the number */ - half = number >> 1; - /* Store the number for later use */ - temp1 = number; - - /*Convert to float */ - temp_float1 = number * 4.6566128731e-010f; - /*Store as integer */ - bits_val1 = *(int *) &temp_float1; - /* Subtract the shifted value from the magic number to give intial guess */ - bits_val1 = 0x5f3759df - (bits_val1 >> 1); // gives initial guess - /* Store as float */ - temp_float1 = *(float *) &bits_val1; - /* Convert to integer format */ - var1 = (q31_t) (temp_float1 * 1073741824); - - /* 1st iteration */ - var1 = ((q31_t) ((q63_t) var1 * (0x30000000 - - ((q31_t) - ((((q31_t) - (((q63_t) var1 * var1) >> 31)) * - (q63_t) half) >> 31))) >> 31)) << 2; - /* 2nd iteration */ - var1 = ((q31_t) ((q63_t) var1 * (0x30000000 - - ((q31_t) - ((((q31_t) - (((q63_t) var1 * var1) >> 31)) * - (q63_t) half) >> 31))) >> 31)) << 2; - /* 3rd iteration */ - var1 = ((q31_t) ((q63_t) var1 * (0x30000000 - - ((q31_t) - ((((q31_t) - (((q63_t) var1 * var1) >> 31)) * - (q63_t) half) >> 31))) >> 31)) << 2; - - /* Multiply the inverse square root with the original value */ - var1 = ((q31_t) (((q63_t) temp1 * var1) >> 31)) << 1; - - /* Shift the output down accordingly */ - if((signBits1 % 2) == 0) - { - var1 = var1 >> (signBits1 / 2); - } - else - { - var1 = var1 >> ((signBits1 - 1) / 2); - } - *pOut = var1; - - return (ARM_MATH_SUCCESS); - } - /* If the number is a negative number then store zero as its square root value */ - else - { - *pOut = 0; - return (ARM_MATH_ARGUMENT_ERROR); - } -} - -/** - * @} end of SQRT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c deleted file mode 100644 index a6745c0cd4..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c +++ /dev/null @@ -1,105 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_32x64_init_q31.c -* -* Description: High precision Q31 Biquad cascade filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1_32x64 - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the high precision Q31 Biquad cascade filter structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] postShift Shift to be applied after the accumulator. Varies according to the coefficients format. - * @return none - * - * Coefficient and State Ordering: - * - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
    
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}    
- * 
- * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState points to state variables array and size of each state variable is 1.63 format. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the state array as: - *
    
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}    
- * 
- * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cas_df1_32x64_init_q31( - arm_biquad_cas_df1_32x64_ins_q31 * S, - uint8_t numStages, - q31_t * pCoeffs, - q63_t * pState, - uint8_t postShift) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign postShift to be applied to the output */ - S->postShift = postShift; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4u * (uint32_t) numStages) * sizeof(q63_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF1_32x64 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c deleted file mode 100644 index 82d6164ee1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c +++ /dev/null @@ -1,553 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_32x64_q31.c -* -* Description: High precision Q31 Biquad cascade filter processing function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup BiquadCascadeDF1_32x64 High Precision Q31 Biquad Cascade Filter - * - * This function implements a high precision Biquad cascade filter which operates on - * Q31 data values. The filter coefficients are in 1.31 format and the state variables - * are in 1.63 format. The double precision state variables reduce quantization noise - * in the filter and provide a cleaner output. - * These filters are particularly useful when implementing filters in which the - * singularities are close to the unit circle. This is common for low pass or high - * pass filters with very low cutoff frequencies. - * - * The function operates on blocks of input and output data - * and each call to the function processes blockSize samples through - * the filter. pSrc and pDst points to input and output arrays - * containing blockSize Q31 values. - * - * \par Algorithm - * Each Biquad stage implements a second order filter using the difference equation: - *
    
- *     y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]    
- * 
- * A Direct Form I algorithm is used with 5 coefficients and 4 state variables per stage. - * \image html Biquad.gif "Single Biquad filter stage" - * Coefficients b0, b1, and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. - * Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. - * Pay careful attention to the sign of the feedback coefficients. - * Some design tools use the difference equation - *
    
- *     y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] - a1 * y[n-1] - a2 * y[n-2]    
- * 
- * In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. - * - * \par - * Higher order filters are realized as a cascade of second order sections. - * numStages refers to the number of second order stages used. - * For example, an 8th order filter would be realized with numStages=4 second order stages. - * \image html BiquadCascade.gif "8th order filter using a cascade of Biquad stages" - * A 9th order filter would be realized with numStages=5 second order stages with the coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). - * - * \par - * The pState points to state variables array . - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2] and each state variable in 1.63 format to improve precision. - * The state variables are arranged in the array as: - *
    
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}    
- * 
- * - * \par - * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values of data in 1.63 format. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * - * \par Init Function - * There is also an associated initialization function which performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * For example, to statically initialize the filter instance structure use - *
    
- *     arm_biquad_cas_df1_32x64_ins_q31 S1 = {numStages, pState, pCoeffs, postShift};    
- * 
- * where numStages is the number of Biquad stages in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer; postShift shift to be applied which is described in detail below. - * \par Fixed-Point Behavior - * Care must be taken while using Biquad Cascade 32x64 filter function. - * Following issues must be considered: - * - Scaling of coefficients - * - Filter gain - * - Overflow and saturation - * - * \par - * Filter coefficients are represented as fractional values and - * restricted to lie in the range [-1 +1). - * The processing function has an additional scaling parameter postShift - * which allows the filter coefficients to exceed the range [+1 -1). - * At the output of the filter's accumulator is a shift register which shifts the result by postShift bits. - * \image html BiquadPostshift.gif "Fixed-point Biquad with shift by postShift bits after accumulator" - * This essentially scales the filter coefficients by 2^postShift. - * For example, to realize the coefficients - *
    
- *    {1.5, -0.8, 1.2, 1.6, -0.9}    
- * 
- * set the Coefficient array to: - *
    
- *    {0.75, -0.4, 0.6, 0.8, -0.45}    
- * 
- * and set postShift=1 - * - * \par - * The second thing to keep in mind is the gain through the filter. - * The frequency response of a Biquad filter is a function of its coefficients. - * It is possible for the gain through the filter to exceed 1.0 meaning that the filter increases the amplitude of certain frequencies. - * This means that an input signal with amplitude < 1.0 may result in an output > 1.0 and these are saturated or overflowed based on the implementation of the filter. - * To avoid this behavior the filter needs to be scaled down such that its peak gain < 1.0 or the input signal must be scaled down so that the combination of input and filter are never overflowed. - * - * \par - * The third item to consider is the overflow and saturation behavior of the fixed-point Q31 version. - * This is described in the function specific documentation below. - */ - -/** - * @addtogroup BiquadCascadeDF1_32x64 - * @{ - */ - -/** - * @details - - * @param[in] *S points to an instance of the high precision Q31 Biquad cascade filter. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 2 bits and lie in the range [-0.25 +0.25). - * After all 5 multiply-accumulates are performed, the 2.62 accumulator is shifted by postShift bits and the result truncated to - * 1.31 format by discarding the low 32 bits. - * - * \par - * Two related functions are provided in the CMSIS DSP library. - * arm_biquad_cascade_df1_q31() implements a Biquad cascade with 32-bit coefficients and state variables with a Q63 accumulator. - * arm_biquad_cascade_df1_fast_q31() implements a Biquad cascade with 32-bit coefficients and state variables with a Q31 accumulator. - */ - -void arm_biquad_cas_df1_32x64_q31( - const arm_biquad_cas_df1_32x64_ins_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pIn = pSrc; /* input pointer initialization */ - q31_t *pOut = pDst; /* output pointer initialization */ - q63_t *pState = S->pState; /* state pointer initialization */ - q31_t *pCoeffs = S->pCoeffs; /* coeff pointer initialization */ - q63_t acc; /* accumulator */ - q31_t Xn1, Xn2; /* Input Filter state variables */ - q63_t Yn1, Yn2; /* Output Filter state variables */ - q31_t b0, b1, b2, a1, a2; /* Filter coefficients */ - q31_t Xn; /* temporary input */ - int32_t shift = (int32_t) S->postShift + 1; /* Shift to be applied to the output */ - uint32_t sample, stage = S->numStages; /* loop counters */ - q31_t acc_l, acc_h; /* temporary output */ - uint32_t uShift = ((uint32_t) S->postShift + 1u); - uint32_t lShift = 32u - uShift; /* Shift to be applied to the output */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = (q31_t) (pState[0]); - Xn2 = (q31_t) (pState[1]); - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - /* The variable acc hold output value that is being computed and - * stored in the destination buffer - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) Xn *b0; - - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn1 *b1; - - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn2 *b2; - - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn1, a1); - - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn2, a2); - - /* The result is converted to 1.63 , Yn2 variable is reused */ - Yn2 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *pOut = acc_h; - - /* Read the second input into Xn2, to reuse the value */ - Xn2 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc += b1 * x[n-1] */ - acc = (q63_t) Xn *b1; - - /* acc = b0 * x[n] */ - acc += (q63_t) Xn2 *b0; - - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn1 *b2; - - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn2, a1); - - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn1, a2); - - /* The result is converted to 1.63, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Read the third input into Xn1, to reuse the value */ - Xn1 = *pIn++; - - /* The result is converted to 1.31 */ - /* Store the output in the destination buffer. */ - *(pOut + 1u) = acc_h; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) Xn1 *b0; - - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn2 *b1; - - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn *b2; - - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn1, a1); - - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn2, a2); - - /* The result is converted to 1.63, Yn2 variable is reused */ - Yn2 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *(pOut + 2u) = acc_h; - - /* Read the fourth input into Xn, to reuse the value */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q63_t) Xn *b0; - - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn1 *b1; - - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn2 *b2; - - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn2, a1); - - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn1, a2); - - /* The result is converted to 1.63, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *(pOut + 3u) = acc_h; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - - /* update output pointer */ - pOut += 4u; - - /* decrement the loop counter */ - sample--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = (blockSize & 0x3u); - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) Xn *b0; - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn1 *b1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn2 *b2; - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn1, a1); - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn2, a2); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - /* The result is converted to 1.63, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *pOut++ = acc_h; - //Yn1 = acc << shift; - - /* Store the output in the destination buffer in 1.31 format. */ -// *pOut++ = (q31_t) (acc >> (32 - shift)); - - /* decrement the loop counter */ - sample--; - } - - /* The first stage output is given as input to the second stage. */ - pIn = pDst; - - /* Reset to destination buffer working pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - /* Store the updated state variables back into the pState array */ - *pState++ = (q63_t) Xn1; - *pState++ = (q63_t) Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while(--stage); - -#else - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* The variable acc hold output value that is being computed and - * stored in the destination buffer - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize; - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q63_t) Xn *b0; - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn1 *b1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn2 *b2; - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn1, a1); - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn2, a2); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - - /* The result is converted to 1.63, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *pOut++ = acc_h; - - //Yn1 = acc << shift; - - /* Store the output in the destination buffer in 1.31 format. */ - //*pOut++ = (q31_t) (acc >> (32 - shift)); - - /* decrement the loop counter */ - sample--; - } - - /* The first stage output is given as input to the second stage. */ - pIn = pDst; - - /* Reset to destination buffer working pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = (q63_t) Xn1; - *pState++ = (q63_t) Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while(--stage); - -#endif /* #ifndef ARM_MATH_CM0 */ -} - - /** - * @} end of BiquadCascadeDF1_32x64 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c deleted file mode 100644 index ee20dfeec2..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c +++ /dev/null @@ -1,421 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_f32.c -* -* Description: Processing function for the -* floating-point Biquad cascade DirectFormI(DF1) filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup BiquadCascadeDF1 Biquad Cascade IIR Filters Using Direct Form I Structure - * - * This set of functions implements arbitrary order recursive (IIR) filters. - * The filters are implemented as a cascade of second order Biquad sections. - * The functions support Q15, Q31 and floating-point data types. - * Fast version of Q15 and Q31 also supported on CortexM4 and Cortex-M3. - * - * The functions operate on blocks of input and output data and each call to the function - * processes blockSize samples through the filter. - * pSrc points to the array of input data and - * pDst points to the array of output data. - * Both arrays contain blockSize values. - * - * \par Algorithm - * Each Biquad stage implements a second order filter using the difference equation: - *
    
- *     y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]    
- * 
- * A Direct Form I algorithm is used with 5 coefficients and 4 state variables per stage. - * \image html Biquad.gif "Single Biquad filter stage" - * Coefficients b0, b1 and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. - * Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. - * Pay careful attention to the sign of the feedback coefficients. - * Some design tools use the difference equation - *
    
- *     y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] - a1 * y[n-1] - a2 * y[n-2]    
- * 
- * In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. - * - * \par - * Higher order filters are realized as a cascade of second order sections. - * numStages refers to the number of second order stages used. - * For example, an 8th order filter would be realized with numStages=4 second order stages. - * \image html BiquadCascade.gif "8th order filter using a cascade of Biquad stages" - * A 9th order filter would be realized with numStages=5 second order stages with the coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). - * - * \par - * The pState points to state variables array. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the pState array as: - *
    
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}    
- * 
- * - * \par - * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed, the coefficients are untouched. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Init Functions - * There is also an associated initialization function for each data type. - * The initialization function performs following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * The code below statically initializes each of the 3 different data type filter instance structures - *
    
- *     arm_biquad_casd_df1_inst_f32 S1 = {numStages, pState, pCoeffs};    
- *     arm_biquad_casd_df1_inst_q15 S2 = {numStages, pState, pCoeffs, postShift};    
- *     arm_biquad_casd_df1_inst_q31 S3 = {numStages, pState, pCoeffs, postShift};    
- * 
- * where numStages is the number of Biquad stages in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer; postShift shift to be applied. - * - * \par Fixed-Point Behavior - * Care must be taken when using the Q15 and Q31 versions of the Biquad Cascade filter functions. - * Following issues must be considered: - * - Scaling of coefficients - * - Filter gain - * - Overflow and saturation - * - * \par - * Scaling of coefficients: - * Filter coefficients are represented as fractional values and - * coefficients are restricted to lie in the range [-1 +1). - * The fixed-point functions have an additional scaling parameter postShift - * which allow the filter coefficients to exceed the range [+1 -1). - * At the output of the filter's accumulator is a shift register which shifts the result by postShift bits. - * \image html BiquadPostshift.gif "Fixed-point Biquad with shift by postShift bits after accumulator" - * This essentially scales the filter coefficients by 2^postShift. - * For example, to realize the coefficients - *
    
- *    {1.5, -0.8, 1.2, 1.6, -0.9}    
- * 
- * set the pCoeffs array to: - *
    
- *    {0.75, -0.4, 0.6, 0.8, -0.45}    
- * 
- * and set postShift=1 - * - * \par - * Filter gain: - * The frequency response of a Biquad filter is a function of its coefficients. - * It is possible for the gain through the filter to exceed 1.0 meaning that the filter increases the amplitude of certain frequencies. - * This means that an input signal with amplitude < 1.0 may result in an output > 1.0 and these are saturated or overflowed based on the implementation of the filter. - * To avoid this behavior the filter needs to be scaled down such that its peak gain < 1.0 or the input signal must be scaled down so that the combination of input and filter are never overflowed. - * - * \par - * Overflow and saturation: - * For Q15 and Q31 versions, it is described separately as part of the function specific documentation below. - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @param[in] *S points to an instance of the floating-point Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - */ - -void arm_biquad_cascade_df1_f32( - const arm_biquad_casd_df1_inst_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pIn = pSrc; /* source pointer */ - float32_t *pOut = pDst; /* destination pointer */ - float32_t *pState = S->pState; /* pState pointer */ - float32_t *pCoeffs = S->pCoeffs; /* coefficient pointer */ - float32_t acc; /* Simulates the accumulator */ - float32_t b0, b1, b2, a1, a2; /* Filter coefficients */ - float32_t Xn1, Xn2, Yn1, Yn2; /* Filter pState variables */ - float32_t Xn; /* temporary input */ - uint32_t sample, stage = S->numStages; /* loop counters */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the pState values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - /* The variable acc hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(sample > 0u) - { - /* Read the first input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - Yn2 = (b0 * Xn) + (b1 * Xn1) + (b2 * Xn2) + (a1 * Yn1) + (a2 * Yn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = Yn2; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - - /* Read the second input */ - Xn2 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - Yn1 = (b0 * Xn2) + (b1 * Xn) + (b2 * Xn1) + (a1 * Yn2) + (a2 * Yn1); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = Yn1; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - - /* Read the third input */ - Xn1 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - Yn2 = (b0 * Xn1) + (b1 * Xn2) + (b2 * Xn) + (a1 * Yn1) + (a2 * Yn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = Yn2; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - - /* Read the forth input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - Yn1 = (b0 * Xn) + (b1 * Xn1) + (b2 * Xn2) + (a1 * Yn2) + (a2 * Yn1); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = Yn1; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - - /* decrement the loop counter */ - sample--; - - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = blockSize & 0x3u; - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - acc = (b0 * Xn) + (b1 * Xn1) + (b2 * Xn2) + (a1 * Yn1) + (a2 * Yn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = acc; - - /* decrement the loop counter */ - sample--; - - } - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent numStages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset the output pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while(stage > 0u); - -#else - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the pState values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* The variables acc holds the output value that is computed: - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize; - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - acc = (b0 * Xn) + (b1 * Xn1) + (b2 * Xn2) + (a1 * Yn1) + (a2 * Yn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = acc; - - /* decrement the loop counter */ - sample--; - } - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent numStages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset the output pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while(stage > 0u); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - - - /** - * @} end of BiquadCascadeDF1 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c deleted file mode 100644 index 29afffa03c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c +++ /dev/null @@ -1,283 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_fast_q15.c -* -* Description: Fast processing function for the -* Q15 Biquad cascade filter. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.9 2010/08/16 -* Initial version -* -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * @param[in] *S points to an instance of the Q15 Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by two bits and lie in the range [-0.25 +0.25). - * The 2.30 accumulator is then shifted by postShift bits and the result truncated to 1.15 format by discarding the low 16 bits. - * - * \par - * Refer to the function arm_biquad_cascade_df1_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. Both the slow and the fast versions use the same instance structure. - * Use the function arm_biquad_cascade_df1_init_q15() to initialize the filter structure. - * - */ - -void arm_biquad_cascade_df1_fast_q15( - const arm_biquad_casd_df1_inst_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pIn = pSrc; /* Source pointer */ - q15_t *pOut = pDst; /* Destination pointer */ - q31_t in; /* Temporary variable to hold input value */ - q31_t out; /* Temporary variable to hold output value */ - q31_t b0; /* Temporary variable to hold bo value */ - q31_t b1, a1; /* Filter coefficients */ - q31_t state_in, state_out; /* Filter state variables */ - q31_t acc; /* Accumulator */ - int32_t shift = (int32_t) (15 - S->postShift); /* Post shift */ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - uint32_t sample, stage = S->numStages; /* Stage loop counter */ - - - - do - { - - /* Read the b0 and 0 coefficients using SIMD */ - b0 = *__SIMD32(pCoeffs)++; - - /* Read the b1 and b2 coefficients using SIMD */ - b1 = *__SIMD32(pCoeffs)++; - - /* Read the a1 and a2 coefficients using SIMD */ - a1 = *__SIMD32(pCoeffs)++; - - /* Read the input state values from the state buffer: x[n-1], x[n-2] */ - state_in = *__SIMD32(pState)++; - - /* Read the output state values from the state buffer: y[n-1], y[n-2] */ - state_out = *__SIMD32(pState)--; - - /* Apply loop unrolling and compute 2 output values simultaneously. */ - /* The variable acc hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - sample = blockSize >> 1u; - - /* First part of the processing with loop unrolling. Compute 2 outputs at a time. - ** a second loop below computes the remaining 1 sample. */ - while(sample > 0u) - { - - /* Read the input */ - in = *__SIMD32(pIn)++; - - /* out = b0 * x[n] + 0 * 0 */ - out = __SMUAD(b0, in); - /* acc = b1 * x[n-1] + acc += b2 * x[n-2] + out */ - acc = __SMLAD(b1, state_in, out); - /* acc += a1 * y[n-1] + acc += a2 * y[n-2] */ - acc = __SMLAD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 and then saturation is applied */ - out = __SSAT((acc >> shift), 16); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, (in >> 16), 16); - state_out = __PKHBT(state_out >> 16, (out), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* out = b0 * x[n] + 0 * 0 */ - out = __SMUADX(b0, in); - /* acc0 = b1 * x[n-1] , acc0 += b2 * x[n-2] + out */ - acc = __SMLAD(b1, state_in, out); - /* acc += a1 * y[n-1] + acc += a2 * y[n-2] */ - acc = __SMLAD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 and then saturation is applied */ - out = __SSAT((acc >> shift), 16); - - - /* Store the output in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = __PKHBT(state_out, out, 16); - -#else - - *__SIMD32(pOut)++ = __PKHBT(out, state_out >> 16, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in >> 16, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, in, 16); - state_out = __PKHBT(state_out >> 16, out, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - /* Decrement the loop counter */ - sample--; - - } - - /* If the blockSize is not a multiple of 2, compute any remaining output samples here. - ** No loop unrolling is used. */ - - if((blockSize & 0x1u) != 0u) - { - /* Read the input */ - in = *pIn++; - - /* out = b0 * x[n] + 0 * 0 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - out = __SMUAD(b0, in); - -#else - - out = __SMUADX(b0, in); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc = b1 * x[n-1], acc += b2 * x[n-2] + out */ - acc = __SMLAD(b1, state_in, out); - /* acc += a1 * y[n-1] + acc += a2 * y[n-2] */ - acc = __SMLAD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 and then saturation is applied */ - out = __SSAT((acc >> shift), 16); - - /* Store the output in the destination buffer. */ - *pOut++ = (q15_t) out; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, in, 16); - state_out = __PKHBT(state_out >> 16, out, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent (numStages - 1) occur in-place in the output buffer */ - pIn = pDst; - - /* Reset the output pointer */ - pOut = pDst; - - /* Store the updated state variables back into the state array */ - *__SIMD32(pState)++ = state_in; - *__SIMD32(pState)++ = state_out; - - - /* Decrement the loop counter */ - stage--; - - } while(stage > 0u); -} - - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c deleted file mode 100644 index 0a479fe6b8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c +++ /dev/null @@ -1,275 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_fast_q31.c -* -* Description: Processing function for the -* Q31 Fast Biquad cascade DirectFormI(DF1) filter. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.9 2010/08/27 -* Initial version -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * - * @param[in] *S points to an instance of the Q31 Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are added to a 2.30 accumulator. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * The fast version has the same overflow behavior as the standard version and provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signal must be scaled down by two bits and lie in the range [-0.25 +0.25). Use the intialization function - * arm_biquad_cascade_df1_init_q31() to initialize filter structure. - * - * \par - * Refer to the function arm_biquad_cascade_df1_q31() for a slower implementation of this function which uses 64-bit accumulation to provide higher precision. Both the slow and the fast versions use the same instance structure. - * Use the function arm_biquad_cascade_df1_init_q31() to initialize the filter structure. - */ - -void arm_biquad_cascade_df1_fast_q31( - const arm_biquad_casd_df1_inst_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t acc; /* accumulator */ - q31_t Xn1, Xn2, Yn1, Yn2; /* Filter state variables */ - q31_t b0, b1, b2, a1, a2; /* Filter coefficients */ - q31_t *pIn = pSrc; /* input pointer initialization */ - q31_t *pOut = pDst; /* output pointer initialization */ - q31_t *pState = S->pState; /* pState pointer initialization */ - q31_t *pCoeffs = S->pCoeffs; /* coeff pointer initialization */ - q31_t Xn; /* temporary input */ - int32_t shift = (int32_t) S->postShift + 1; /* Shift to be applied to the output */ - uint32_t sample, stage = S->numStages; /* loop counters */ - - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - /* The variables acc ... acc3 hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q31_t) (((q63_t) b1 * Xn1) >> 32); - /* acc += b1 * x[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b0 * (Xn))) >> 32); - /* acc += b[2] * x[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn2))) >> 32); - /* acc += a1 * y[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn1))) >> 32); - /* acc += a2 * y[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn2))) >> 32); - - /* The result is converted to 1.31 , Yn2 variable is reused */ - Yn2 = acc << shift; - - /* Read the second input */ - Xn2 = *(pIn + 1u); - - /* Store the output in the destination buffer. */ - *pOut = Yn2; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q31_t) (((q63_t) b0 * (Xn2)) >> 32); - /* acc += b1 * x[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b1 * (Xn))) >> 32); - /* acc += b[2] * x[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn1))) >> 32); - /* acc += a1 * y[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn2))) >> 32); - /* acc += a2 * y[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn1))) >> 32); - - /* The result is converted to 1.31, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Read the third input */ - Xn1 = *(pIn + 2u); - - /* Store the output in the destination buffer. */ - *(pOut + 1u) = Yn1; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q31_t) (((q63_t) b0 * (Xn1)) >> 32); - /* acc += b1 * x[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b1 * (Xn2))) >> 32); - /* acc += b[2] * x[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn))) >> 32); - /* acc += a1 * y[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn1))) >> 32); - /* acc += a2 * y[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn2))) >> 32); - - /* The result is converted to 1.31, Yn2 variable is reused */ - Yn2 = acc << shift; - - /* Read the forth input */ - Xn = *(pIn + 3u); - - /* Store the output in the destination buffer. */ - *(pOut + 2u) = Yn2; - pIn += 4u; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q31_t) (((q63_t) b0 * (Xn)) >> 32); - /* acc += b1 * x[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b1 * (Xn1))) >> 32); - /* acc += b[2] * x[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn2))) >> 32); - /* acc += a1 * y[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn2))) >> 32); - /* acc += a2 * y[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn1))) >> 32); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - Xn2 = Xn1; - - /* The result is converted to 1.31, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Xn1 = Xn */ - Xn1 = Xn; - - /* Store the output in the destination buffer. */ - *(pOut + 3u) = Yn1; - pOut += 4u; - - /* decrement the loop counter */ - sample--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = (blockSize & 0x3u); - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q31_t) (((q63_t) b0 * (Xn)) >> 32); - /* acc += b1 * x[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b1 * (Xn1))) >> 32); - /* acc += b[2] * x[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn2))) >> 32); - /* acc += a1 * y[n-1] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn1))) >> 32); - /* acc += a2 * y[n-2] */ - acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn2))) >> 32); - /* The result is converted to 1.31 */ - acc = acc << shift; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = acc; - - /* Store the output in the destination buffer. */ - *pOut++ = acc; - - /* decrement the loop counter */ - sample--; - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent stages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset to destination pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while(--stage); -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c deleted file mode 100644 index d50b69f3c1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c +++ /dev/null @@ -1,107 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_init_f32.c -* -* Description: floating-point Biquad cascade DirectFormI(DF1) filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * @brief Initialization function for the floating-point Biquad cascade filter. - * @param[in,out] *S points to an instance of the floating-point Biquad cascade structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients array. - * @param[in] *pState points to the state array. - * @return none - * - * - * Coefficient and State Ordering: - * - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
    
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}    
- * 
- * - * \par - * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState is a pointer to state array. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the pState array as: - *
    
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}    
- * 
- * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - * - */ - -void arm_biquad_cascade_df1_init_f32( - arm_biquad_casd_df1_inst_f32 * S, - uint8_t numStages, - float32_t * pCoeffs, - float32_t * pState) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4u * (uint32_t) numStages) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c deleted file mode 100644 index d5fda28ac5..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c +++ /dev/null @@ -1,109 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_init_q15.c -* -* Description: Q15 Biquad cascade DirectFormI(DF1) filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the Q15 Biquad cascade structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] postShift Shift to be applied to the accumulator result. Varies according to the coefficients format - * @return none - * - * Coefficient and State Ordering: - * - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
    
- *     {b10, 0, b11, b12, a11, a12, b20, 0, b21, b22, a21, a22, ...}    
- * 
- * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 6*numStages values. - * The zero coefficient between b1 and b2 facilities use of 16-bit SIMD instructions on the Cortex-M4. - * - * \par - * The state variables are stored in the array pState. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the pState array as: - *
    
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}    
- * 
- * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cascade_df1_init_q15( - arm_biquad_casd_df1_inst_q15 * S, - uint8_t numStages, - q15_t * pCoeffs, - q15_t * pState, - int8_t postShift) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign postShift to be applied to the output */ - S->postShift = postShift; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4u * (uint32_t) numStages) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c deleted file mode 100644 index dbbb8aa2b5..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c +++ /dev/null @@ -1,109 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_init_q31.c -* -* Description: Q31 Biquad cascade DirectFormI(DF1) filter initialization function. -* -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the Q31 Biquad cascade structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] postShift Shift to be applied after the accumulator. Varies according to the coefficients format - * @return none - * - * Coefficient and State Ordering: - * - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
    
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}    
- * 
- * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState points to state variables array. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the pState array as: - *
    
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}    
- * 
- * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cascade_df1_init_q31( - arm_biquad_casd_df1_inst_q31 * S, - uint8_t numStages, - q31_t * pCoeffs, - q31_t * pState, - int8_t postShift) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign postShift to be applied to the output */ - S->postShift = postShift; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4u * (uint32_t) numStages) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c deleted file mode 100644 index 484cd85e89..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c +++ /dev/null @@ -1,408 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_q15.c -* -* Description: Processing function for the -* Q15 Biquad cascade DirectFormI(DF1) filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @brief Processing function for the Q15 Biquad cascade filter. - * @param[in] *S points to an instance of the Q15 Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * The accumulator is then shifted by postShift bits to truncate the result to 1.15 format by discarding the low 16 bits. - * Finally, the result is saturated to 1.15 format. - * - * \par - * Refer to the function arm_biquad_cascade_df1_fast_q15() for a faster but less precise implementation of this filter for Cortex-M3 and Cortex-M4. - */ - -void arm_biquad_cascade_df1_q15( - const arm_biquad_casd_df1_inst_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pIn = pSrc; /* Source pointer */ - q15_t *pOut = pDst; /* Destination pointer */ - q31_t in; /* Temporary variable to hold input value */ - q31_t out; /* Temporary variable to hold output value */ - q31_t b0; /* Temporary variable to hold bo value */ - q31_t b1, a1; /* Filter coefficients */ - q31_t state_in, state_out; /* Filter state variables */ - q31_t acc_l, acc_h; - q63_t acc; /* Accumulator */ - int32_t lShift = (15 - (int32_t) S->postShift); /* Post shift */ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - uint32_t sample, stage = (uint32_t) S->numStages; /* Stage loop counter */ - int32_t uShift = (32 - lShift); - - do - { - /* Read the b0 and 0 coefficients using SIMD */ - b0 = *__SIMD32(pCoeffs)++; - - /* Read the b1 and b2 coefficients using SIMD */ - b1 = *__SIMD32(pCoeffs)++; - - /* Read the a1 and a2 coefficients using SIMD */ - a1 = *__SIMD32(pCoeffs)++; - - /* Read the input state values from the state buffer: x[n-1], x[n-2] */ - state_in = *__SIMD32(pState)++; - - /* Read the output state values from the state buffer: y[n-1], y[n-2] */ - state_out = *__SIMD32(pState)--; - - /* Apply loop unrolling and compute 2 output values simultaneously. */ - /* The variable acc hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - sample = blockSize >> 1u; - - /* First part of the processing with loop unrolling. Compute 2 outputs at a time. - ** a second loop below computes the remaining 1 sample. */ - while(sample > 0u) - { - - /* Read the input */ - in = *__SIMD32(pIn)++; - - /* out = b0 * x[n] + 0 * 0 */ - out = __SMUAD(b0, in); - - /* acc += b1 * x[n-1] + b2 * x[n-2] + out */ - acc = __SMLALD(b1, state_in, out); - /* acc += a1 * y[n-1] + a2 * y[n-2] */ - acc = __SMLALD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 if postShift = 1, and then saturation is applied */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - out = (uint32_t) acc_l >> lShift | acc_h << uShift; - - out = __SSAT(out, 16); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, (in >> 16), 16); - state_out = __PKHBT(state_out >> 16, (out), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* out = b0 * x[n] + 0 * 0 */ - out = __SMUADX(b0, in); - /* acc += b1 * x[n-1] + b2 * x[n-2] + out */ - acc = __SMLALD(b1, state_in, out); - /* acc += a1 * y[n-1] + a2 * y[n-2] */ - acc = __SMLALD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 if postShift = 1, and then saturation is applied */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - out = (uint32_t) acc_l >> lShift | acc_h << uShift; - - out = __SSAT(out, 16); - - /* Store the output in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = __PKHBT(state_out, out, 16); - -#else - - *__SIMD32(pOut)++ = __PKHBT(out, state_out >> 16, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in >> 16, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, in, 16); - state_out = __PKHBT(state_out >> 16, out, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - /* Decrement the loop counter */ - sample--; - - } - - /* If the blockSize is not a multiple of 2, compute any remaining output samples here. - ** No loop unrolling is used. */ - - if((blockSize & 0x1u) != 0u) - { - /* Read the input */ - in = *pIn++; - - /* out = b0 * x[n] + 0 * 0 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - out = __SMUAD(b0, in); - -#else - - out = __SMUADX(b0, in); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc = b1 * x[n-1] + b2 * x[n-2] + out */ - acc = __SMLALD(b1, state_in, out); - /* acc += a1 * y[n-1] + a2 * y[n-2] */ - acc = __SMLALD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 if postShift = 1, and then saturation is applied */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - out = (uint32_t) acc_l >> lShift | acc_h << uShift; - - out = __SSAT(out, 16); - - /* Store the output in the destination buffer. */ - *pOut++ = (q15_t) out; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, in, 16); - state_out = __PKHBT(state_out >> 16, out, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - } - - /* The first stage goes from the input wire to the output wire. */ - /* Subsequent numStages occur in-place in the output wire */ - pIn = pDst; - - /* Reset the output pointer */ - pOut = pDst; - - /* Store the updated state variables back into the state array */ - *__SIMD32(pState)++ = state_in; - *__SIMD32(pState)++ = state_out; - - - /* Decrement the loop counter */ - stage--; - - } while(stage > 0u); - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t *pIn = pSrc; /* Source pointer */ - q15_t *pOut = pDst; /* Destination pointer */ - q15_t b0, b1, b2, a1, a2; /* Filter coefficients */ - q15_t Xn1, Xn2, Yn1, Yn2; /* Filter state variables */ - q15_t Xn; /* temporary input */ - q63_t acc; /* Accumulator */ - int32_t shift = (15 - (int32_t) S->postShift); /* Post shift */ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - uint32_t sample, stage = (uint32_t) S->numStages; /* Stage loop counter */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* The variables acc holds the output value that is computed: - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize; - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q31_t) b0 *Xn; - - /* acc += b1 * x[n-1] */ - acc += (q31_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q31_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q31_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q31_t) a2 *Yn2; - - /* The result is converted to 1.31 */ - acc = __SSAT((acc >> shift), 16); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = (q15_t) acc; - - /* Store the output in the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* decrement the loop counter */ - sample--; - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent stages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset to destination pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while(--stage); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c deleted file mode 100644 index 5626bdd1ca..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c +++ /dev/null @@ -1,400 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df1_q31.c -* -* Description: Processing function for the -* Q31 Biquad cascade filter -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @brief Processing function for the Q31 Biquad cascade filter. - * @param[in] *S points to an instance of the Q31 Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 2 bits and lie in the range [-0.25 +0.25). - * After all 5 multiply-accumulates are performed, the 2.62 accumulator is shifted by postShift bits and the result truncated to - * 1.31 format by discarding the low 32 bits. - * - * \par - * Refer to the function arm_biquad_cascade_df1_fast_q31() for a faster but less precise implementation of this filter for Cortex-M3 and Cortex-M4. - */ - -void arm_biquad_cascade_df1_q31( - const arm_biquad_casd_df1_inst_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q63_t acc; /* accumulator */ - uint32_t uShift = ((uint32_t) S->postShift + 1u); - uint32_t lShift = 32u - uShift; /* Shift to be applied to the output */ - q31_t *pIn = pSrc; /* input pointer initialization */ - q31_t *pOut = pDst; /* output pointer initialization */ - q31_t *pState = S->pState; /* pState pointer initialization */ - q31_t *pCoeffs = S->pCoeffs; /* coeff pointer initialization */ - q31_t Xn1, Xn2, Yn1, Yn2; /* Filter state variables */ - q31_t b0, b1, b2, a1, a2; /* Filter coefficients */ - q31_t Xn; /* temporary input */ - uint32_t sample, stage = S->numStages; /* loop counters */ - - -#ifndef ARM_MATH_CM0 - - q31_t acc_l, acc_h; /* temporary output variables */ - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - /* The variable acc hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn2; - - /* The result is converted to 1.31 , Yn2 variable is reused */ - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - Yn2 = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer. */ - *pOut++ = Yn2; - - /* Read the second input */ - Xn2 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn2; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn1; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn2; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn1; - - - /* The result is converted to 1.31, Yn1 variable is reused */ - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - - /* Apply shift for lower part of acc and upper part of acc */ - Yn1 = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer. */ - *pOut++ = Yn1; - - /* Read the third input */ - Xn1 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn1; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn2; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn2; - - /* The result is converted to 1.31, Yn2 variable is reused */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - - /* Apply shift for lower part of acc and upper part of acc */ - Yn2 = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer. */ - *pOut++ = Yn2; - - /* Read the forth input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn2; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn1; - - /* The result is converted to 1.31, Yn1 variable is reused */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - Yn1 = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - - /* Store the output in the destination buffer. */ - *pOut++ = Yn1; - - /* decrement the loop counter */ - sample--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = (blockSize & 0x3u); - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn2; - - /* The result is converted to 1.31 */ - acc = acc >> lShift; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = (q31_t) acc; - - /* Store the output in the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* decrement the loop counter */ - sample--; - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent stages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset to destination pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while(--stage); - -#else - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* The variables acc holds the output value that is computed: - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize; - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn; - - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn2; - - /* The result is converted to 1.31 */ - acc = acc >> lShift; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = (q31_t) acc; - - /* Store the output in the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* decrement the loop counter */ - sample--; - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent stages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset to destination pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while(--stage); - -#endif /* #ifndef ARM_MATH_CM0 */ -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c deleted file mode 100644 index a8cb0c98c1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c +++ /dev/null @@ -1,377 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df2T_f32.c -* -* Description: Processing function for the floating-point transposed -* direct form II Biquad cascade filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup BiquadCascadeDF2T Biquad Cascade IIR Filters Using a Direct Form II Transposed Structure - * - * This set of functions implements arbitrary order recursive (IIR) filters using a transposed direct form II structure. - * The filters are implemented as a cascade of second order Biquad sections. - * These functions provide a slight memory savings as compared to the direct form I Biquad filter functions. - * Only floating-point data is supported. - * - * This function operate on blocks of input and output data and each call to the function - * processes blockSize samples through the filter. - * pSrc points to the array of input data and - * pDst points to the array of output data. - * Both arrays contain blockSize values. - * - * \par Algorithm - * Each Biquad stage implements a second order filter using the difference equation: - *
       
- *    y[n] = b0 * x[n] + d1       
- *    d1 = b1 * x[n] + a1 * y[n] + d2       
- *    d2 = b2 * x[n] + a2 * y[n]       
- * 
- * where d1 and d2 represent the two state values. - * - * \par - * A Biquad filter using a transposed Direct Form II structure is shown below. - * \image html BiquadDF2Transposed.gif "Single transposed Direct Form II Biquad" - * Coefficients b0, b1, and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. - * Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. - * Pay careful attention to the sign of the feedback coefficients. - * Some design tools flip the sign of the feedback coefficients: - *
       
- *    y[n] = b0 * x[n] + d1;       
- *    d1 = b1 * x[n] - a1 * y[n] + d2;       
- *    d2 = b2 * x[n] - a2 * y[n];       
- * 
- * In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. - * - * \par - * Higher order filters are realized as a cascade of second order sections. - * numStages refers to the number of second order stages used. - * For example, an 8th order filter would be realized with numStages=4 second order stages. - * A 9th order filter would be realized with numStages=5 second order stages with the - * coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). - * - * \par - * pState points to the state variable array. - * Each Biquad stage has 2 state variables d1 and d2. - * The state variables are arranged in the pState array as: - *
       
- *     {d11, d12, d21, d22, ...}       
- * 
- * where d1x refers to the state variables for the first Biquad and - * d2x refers to the state variables for the second Biquad. - * The state array has a total length of 2*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - * - * \par - * The CMSIS library contains Biquad filters in both Direct Form I and transposed Direct Form II. - * The advantage of the Direct Form I structure is that it is numerically more robust for fixed-point data types. - * That is why the Direct Form I structure supports Q15 and Q31 data types. - * The transposed Direct Form II structure, on the other hand, requires a wide dynamic range for the state variables d1 and d2. - * Because of this, the CMSIS library only has a floating-point version of the Direct Form II Biquad. - * The advantage of the Direct Form II Biquad is that it requires half the number of state variables, 2 rather than 4, per Biquad stage. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * - * \par Init Functions - * There is also an associated initialization function. - * The initialization function performs following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * For example, to statically initialize the instance structure use - *
       
- *     arm_biquad_cascade_df2T_instance_f32 S1 = {numStages, pState, pCoeffs};       
- * 
- * where numStages is the number of Biquad stages in the filter; pState is the address of the state buffer. - * pCoeffs is the address of the coefficient buffer; - * - */ - -/** - * @addtogroup BiquadCascadeDF2T - * @{ - */ - -/** - * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. - * @param[in] *S points to an instance of the filter data structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_biquad_cascade_df2T_f32( - const arm_biquad_cascade_df2T_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - - float32_t *pIn = pSrc; /* source pointer */ - float32_t *pOut = pDst; /* destination pointer */ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* coefficient pointer */ - float32_t acc0; /* accumulator */ - float32_t b0, b1, b2, a1, a2; /* Filter coefficients */ - float32_t Xn; /* temporary input */ - float32_t d1, d2; /* state variables */ - uint32_t sample, stage = S->numStages; /* loop counters */ - -#ifndef ARM_MATH_CM0 - - float32_t Xn1, Xn2; /* Input State variables */ - float32_t acc1; /* accumulator */ - - - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /*Reading the state values */ - d1 = pState[0]; - d2 = pState[1]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - sample = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(sample > 0u) - { - - /* y[n] = b0 * x[n] + d1 */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - /* d2 = b2 * x[n] + a2 * y[n] */ - - /* Read the first input */ - Xn1 = *pIn++; - - /* y[n] = b0 * x[n] + d1 */ - acc0 = (b0 * Xn1) + d1; - - /* d1 = b1 * x[n] + d2 */ - d1 = (b1 * Xn1) + d2; - - /* d2 = b2 * x[n] */ - d2 = (b2 * Xn1); - - /* Read the second input */ - Xn2 = *pIn++; - - /* d1 = b1 * x[n] + a1 * y[n] */ - d1 = (a1 * acc0) + d1; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc0; - - d2 = (a2 * acc0) + d2; - - /* y[n] = b0 * x[n] + d1 */ - acc1 = (b0 * Xn2) + d1; - - /* Read the third input */ - Xn1 = *pIn++; - - d1 = (b1 * Xn2) + d2; - - d2 = (b2 * Xn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc1; - - d1 = (a1 * acc1) + d1; - - d2 = (a2 * acc1) + d2; - - /* y[n] = b0 * x[n] + d1 */ - acc0 = (b0 * Xn1) + d1; - - d1 = (b1 * Xn1) + d2; - - d2 = (b2 * Xn1); - - /* Read the fourth input */ - Xn2 = *pIn++; - - d1 = (a1 * acc0) + d1; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc0; - - d2 = (a2 * acc0) + d2; - - /* y[n] = b0 * x[n] + d1 */ - acc1 = (b0 * Xn2) + d1; - - d1 = (b1 * Xn2) + d2; - - d2 = (b2 * Xn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc1; - - d1 = (a1 * acc1) + d1; - - d2 = (a2 * acc1) + d2; - - /* decrement the loop counter */ - sample--; - - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = blockSize & 0x3u; - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* y[n] = b0 * x[n] + d1 */ - acc0 = (b0 * Xn) + d1; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc0; - - /* Every time after the output is computed state should be updated. */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - d1 = ((b1 * Xn) + (a1 * acc0)) + d2; - - /* d2 = b2 * x[n] + a2 * y[n] */ - d2 = (b2 * Xn) + (a2 * acc0); - - /* decrement the loop counter */ - sample--; - } - - /* Store the updated state variables back into the state array */ - *pState++ = d1; - *pState++ = d2; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - /*Reset the output working pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while(stage > 0u); - -#else - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /*Reading the state values */ - d1 = pState[0]; - d2 = pState[1]; - - - sample = blockSize; - - while(sample > 0u) - { - /* Read the input */ - Xn = *pIn++; - - /* y[n] = b0 * x[n] + d1 */ - acc0 = (b0 * Xn) + d1; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc0; - - /* Every time after the output is computed state should be updated. */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - d1 = ((b1 * Xn) + (a1 * acc0)) + d2; - - /* d2 = b2 * x[n] + a2 * y[n] */ - d2 = (b2 * Xn) + (a2 * acc0); - - /* decrement the loop counter */ - sample--; - } - - /* Store the updated state variables back into the state array */ - *pState++ = d1; - *pState++ = d2; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - /*Reset the output working pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while(stage > 0u); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - - - /** - * @} end of BiquadCascadeDF2T group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c deleted file mode 100644 index e4225d008f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c +++ /dev/null @@ -1,97 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_biquad_cascade_df2T_init_f32.c -* -* Description: Initialization function for the floating-point transposed -* direct form II Biquad cascade filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF2T - * @{ - */ - -/** - * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. - * @param[in,out] *S points to an instance of the filter data structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @return none - * - * Coefficient and State Ordering: - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
    
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}    
- * 
- * - * \par - * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState is a pointer to state array. - * Each Biquad stage has 2 state variables d1, and d2. - * The 2 state variables for stage 1 are first, then the 2 state variables for stage 2, and so on. - * The state array has a total length of 2*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cascade_df2T_init_f32( - arm_biquad_cascade_df2T_instance_f32 * S, - uint8_t numStages, - float32_t * pCoeffs, - float32_t * pState) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 2 * numStages */ - memset(pState, 0, (2u * (uint32_t) numStages) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF2T group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_f32.c deleted file mode 100644 index 48dd45f2bd..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_f32.c +++ /dev/null @@ -1,646 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_f32.c -* -* Description: Convolution of floating-point sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup Conv Convolution - * - * Convolution is a mathematical operation that operates on two finite length vectors to generate a finite length output vector. - * Convolution is similar to correlation and is frequently used in filtering and data analysis. - * The CMSIS DSP library contains functions for convolving Q7, Q15, Q31, and floating-point data types. - * The library also provides fast versions of the Q15 and Q31 functions on Cortex-M4 and Cortex-M3. - * - * \par Algorithm - * Let a[n] and b[n] be sequences of length srcALen and srcBLen samples respectively. - * Then the convolution - * - *
    
- *                   c[n] = a[n] * b[n]    
- * 
- * - * \par - * is defined as - * \image html ConvolutionEquation.gif - * \par - * Note that c[n] is of length srcALen + srcBLen - 1 and is defined over the interval n=0, 1, 2, ..., srcALen + srcBLen - 2. - * pSrcA points to the first input vector of length srcALen and - * pSrcB points to the second input vector of length srcBLen. - * The output result is written to pDst and the calling function must allocate srcALen+srcBLen-1 words for the result. - * - * \par - * Conceptually, when two signals a[n] and b[n] are convolved, - * the signal b[n] slides over a[n]. - * For each offset \c n, the overlapping portions of a[n] and b[n] are multiplied and summed together. - * - * \par - * Note that convolution is a commutative operation: - * - *
    
- *                   a[n] * b[n] = b[n] * a[n].    
- * 
- * - * \par - * This means that switching the A and B arguments to the convolution functions has no effect. - * - * Fixed-Point Behavior - * - * \par - * Convolution requires summing up a large number of intermediate products. - * As such, the Q7, Q15, and Q31 functions run a risk of overflow and saturation. - * Refer to the function specific documentation below for further details of the particular algorithm used. - * - * - * Fast Versions - * - * \par - * Fast versions are supported for Q31 and Q15. Cycles for Fast versions are less compared to Q31 and Q15 of conv and the design requires - * the input signals should be scaled down to avoid intermediate overflows. - * - * - * Opt Versions - * - * \par - * Opt versions are supported for Q15 and Q7. Design uses internal scratch buffer for getting good optimisation. - * These versions are optimised in cycles and consumes more memory(Scratch memory) compared to Q15 and Q7 versions - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of floating-point sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - */ - -void arm_conv_f32( - float32_t * pSrcA, - uint32_t srcALen, - float32_t * pSrcB, - uint32_t srcBLen, - float32_t * pDst) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t *pIn1; /* inputA pointer */ - float32_t *pIn2; /* inputB pointer */ - float32_t *pOut = pDst; /* output pointer */ - float32_t *px; /* Intermediate inputA pointer */ - float32_t *py; /* Intermediate inputB pointer */ - float32_t *pSrc1, *pSrc2; /* Intermediate pointers */ - float32_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - float32_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t j, k, count, blkCnt, blockSize1, blockSize2, blockSize3; /* loop counters */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 1] */ - sum += *px++ * *py--; - - /* x[1] * y[srcBLen - 2] */ - sum += *px++ * *py--; - - /* x[2] * y[srcBLen - 3] */ - sum += *px++ * *py--; - - /* x[3] * y[srcBLen - 4] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - - /* Read x[3] sample */ - x3 = *(px); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 += x0 * c0; - - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 += x1 * c0; - - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 += x2 * c0; - - /* acc3 += x[3] * y[srcBLen - 1] */ - acc3 += x3 * c0; - - /* Read y[srcBLen - 2] sample */ - c0 = *(py--); - - /* Read x[4] sample */ - x0 = *(px + 1u); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 += x1 * c0; - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 += x2 * c0; - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 += x3 * c0; - /* acc3 += x[4] * y[srcBLen - 2] */ - acc3 += x0 * c0; - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - - /* Read x[5] sample */ - x1 = *(px + 2u); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 += x2 * c0; - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 += x3 * c0; - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 += x0 * c0; - /* acc3 += x[5] * y[srcBLen - 2] */ - acc3 += x1 * c0; - - /* Read y[srcBLen - 4] sample */ - c0 = *(py--); - - /* Read x[6] sample */ - x2 = *(px + 3u); - px += 4u; - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[srcBLen - 4] */ - acc0 += x3 * c0; - /* acc1 += x[4] * y[srcBLen - 4] */ - acc1 += x0 * c0; - /* acc2 += x[5] * y[srcBLen - 4] */ - acc2 += x1 * c0; - /* acc3 += x[6] * y[srcBLen - 4] */ - acc3 += x2 * c0; - - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += x0 * c0; - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += x1 * c0; - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += x2 * c0; - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 += x3 * c0; - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc0; - *pOut++ = acc1; - *pOut++ = acc2; - *pOut++ = acc3; - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py--; - sum += *px++ * *py--; - sum += *px++ * *py--; - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t *pIn1 = pSrcA; /* inputA pointer */ - float32_t *pIn2 = pSrcB; /* inputB pointer */ - float32_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - - /* Loop to calculate convolution for output length number of times */ - for (i = 0u; i < ((srcALen + srcBLen) - 1u); i++) - { - /* Initialize sum with zero to carry out MAC operations */ - sum = 0.0f; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0u; j <= i; j++) - { - /* Check the array limitations */ - if((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += pIn1[j] * pIn2[i - j]; - } - } - /* Store the output in the destination buffer */ - pDst[i] = sum; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_opt_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_opt_q15.c deleted file mode 100644 index 3e85a25ba7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_opt_q15.c +++ /dev/null @@ -1,538 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_fast_opt_q15.c -* -* Description: Fast Q15 Convolution. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return none. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * Scaling and Overflow Behavior: - * - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results - * but provides only a single guard bit. There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down the inputs by log2(min(srcALen, srcBLen)) (log2 is read as log to the base 2) times to avoid overflows, - * as maximum of min(srcALen, srcBLen) number of additions are carried internally. - * The 2.30 accumulator is right shifted by 15 bits and then saturated to 1.15 format to yield the final result. - * - * \par - * See arm_conv_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. - */ - -void arm_conv_fast_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - q15_t * pScratch1, - q15_t * pScratch2) -{ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - q31_t x1, x2, x3; /* Temporary variables to hold state and coefficient values */ - q31_t y1, y2; /* State variables */ - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - uint32_t tapCnt; /* loop count */ -#ifdef UNALIGNED_SUPPORT_DISABLE - - q15_t a, b; - -#endif /* #ifdef UNALIGNED_SUPPORT_DISABLE */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - - /* Copy smaller length input sequence in reverse order into second scratch buffer */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Assuming scratch1 buffer is aligned by 32-bit */ - /* Fill (srcBLen - 1u) zeros in scratch1 buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr1, srcALen); - - /* Update pointers */ - pScr1 += srcALen; - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update pointer */ - pScr1 += (srcBLen - 1u); - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1u) % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - /* First part of the processing with loop unrolling process 4 data points at a time. - ** a second loop below process for the remaining 1 to 3 samples. */ - - /* Actual convolution process starts here */ - blkCnt = (srcALen + srcBLen - 1u) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2u); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = _SIMD32_OFFSET(pScr1); - - /* multiply and accumlate */ - acc0 = __SMLAD(x2, y2, acc0); - acc2 = __SMLAD(x1, y2, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - acc1 = __SMLADX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr1 + 2u); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); - -#else - - /* Read four samples from smaller buffer */ - a = *pIn2; - b = *(pIn2 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - y1 = __PKHBT(a, b, 16); -#else - y1 = __PKHBT(b, a, 16); -#endif - - a = *(pIn2 + 2); - b = *(pIn2 + 3); -#ifndef ARM_MATH_BIG_ENDIAN - y2 = __PKHBT(a, b, 16); -#else - y2 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLAD(x1, y1, acc0); - - acc2 = __SMLAD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLADX(x3, y1, acc1); - - a = *pScr1; - b = *(pScr1 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(a, b, 16); -#else - x1 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLAD(x2, y2, acc0); - - acc2 = __SMLAD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - acc1 = __SMLADX(x3, y2, acc1); - - a = *(pScr1 + 2); - b = *(pScr1 + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - x2 = __PKHBT(a, b, 16); -#else - x2 = __PKHBT(b, a, 16); -#endif - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* update scratch pointers */ - pIn2 += 4u; - pScr1 += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - - - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4u; - - } - - - blkCnt = (srcALen + srcBLen - 1u) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - acc0 += (*pScr1++ * *pIn2++); - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1u; - - } - -} - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q15.c deleted file mode 100644 index e21be35235..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q15.c +++ /dev/null @@ -1,1405 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_fast_q15.c -* -* Description: Fast Q15 Convolution. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * Scaling and Overflow Behavior: - * - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results - * but provides only a single guard bit. There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down the inputs by log2(min(srcALen, srcBLen)) (log2 is read as log to the base 2) times to avoid overflows, - * as maximum of min(srcALen, srcBLen) number of additions are carried internally. - * The 2.30 accumulator is right shifted by 15 bits and then saturated to 1.15 format to yield the final result. - * - * \par - * See arm_conv_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. - */ - -void arm_conv_fast_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst) -{ -#ifndef UNALIGNED_SUPPORT_DISABLE - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t blockSize1, blockSize2, blockSize3, j, k, count, blkCnt; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while((count < 4u) && (blockSize1 > 0u)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0], x[1] are multiplied with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[2], x[3] are multiplied with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1u; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + (count - 1u); - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0u; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - py = py - 1u; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px+1); - px+= 2u; - - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLADX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLADX(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px+1); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLADX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLADX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLADX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLADX(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px+2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px+3); - px += 4u; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLADX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLADX(x1, c0, acc3); - - } while(--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - - /* Read y[srcBLen - 7] */ - c0 = *(py-1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px+2); - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the results in the accumulators in the destination buffer. */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = __PKHBT((acc0 >> 15), (acc1 >> 15), 16); - *__SIMD32(pOut)++ = __PKHBT((acc2 >> 15), (acc3 >> 15), 16); - -#else - - *__SIMD32(pOut)++ = __PKHBT((acc1 >> 15), (acc0 >> 15), 16); - *__SIMD32(pOut)++ = __PKHBT((acc3 >> 15), (acc2 >> 15), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - pIn2 = pSrc2 - 1u; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = blockSize3 >> 2u; - - while((j > 0u) && (blockSize3 > 0u)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[srcALen - srcBLen + 1], x[srcALen - srcBLen + 2] are multiplied - * with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[srcALen - srcBLen + 3], x[srcALen - srcBLen + 4] are multiplied - * with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1u; - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4u; - - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1u; - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t blockSize1, blockSize2, blockSize3, j, k, count, blkCnt; /* loop counter */ - q15_t a, b; - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while((count < 4u) && (blockSize1 > 0u)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - py++; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + (count - 1u); - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0u; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - py = py - 1u; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1] samples */ - a = *px++; - b = *px++; - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *px; - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *px; - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - a = *py; - b = *(py+1); - py -= 2; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLADX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLADX(x1, c0, acc1); - - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x2 = __PKHBT(a, b, 16); - a = *(px + 2); - x3 = __PKHBT(b, a, 16); - -#else - - x2 = __PKHBT(b, a, 16); - a = *(px + 2); - x3 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLADX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLADX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - a = *py; - b = *(py+1); - py -= 2; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLADX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLADX(x3, c0, acc1); - - /* Read x[4], x[5], x[6] */ - a = *(px + 2); - b = *(px + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *(px + 4); - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *(px + 4); - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 4u; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLADX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLADX(x1, c0, acc3); - - } while(--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - a = *px; - b = *(px+1); - px++; - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - a = *py; - b = *(py+1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - a = *py; - b = *(py+1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - - /* Read y[srcBLen - 7] */ - c0 = *(py-1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - a = *(px+2); - b = *(px+3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = (q15_t)(acc0 >> 15); - *pOut++ = (q15_t)(acc1 >> 15); - *pOut++ = (q15_t)(acc2 >> 15); - *pOut++ = (q15_t)(acc3 >> 15); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - pIn2 = pSrc2 - 1u; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = blockSize3 >> 2u; - - while((j > 0u) && (blockSize3 > 0u)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - py++; - - while(k > 0u) - { - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4u; - - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1u; - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ -} - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q31.c deleted file mode 100644 index e675c11ced..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q31.c +++ /dev/null @@ -1,572 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_fast_q31.c -* -* Description: Q31 Convolution (fast version). -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are accumulated in a 32-bit register in 2.30 format. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * - * \par - * The fast version has the same overflow behavior as the standard version but provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signals must be scaled down. - * Scale down the inputs by log2(min(srcALen, srcBLen)) (log2 is read as log to the base 2) times to avoid overflows, - * as maximum of min(srcALen, srcBLen) number of additions are carried internally. - * - * \par - * See arm_conv_q31() for a slower implementation of this function which uses 64-bit accumulation to provide higher precision. - */ - -void arm_conv_fast_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst) -{ - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t j, k, count, blkCnt, blockSize1, blockSize2, blockSize3; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[1] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[2] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[3] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - - /* acc3 += x[3] * y[srcBLen - 1] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Read y[srcBLen - 2] sample */ - c0 = *(py--); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc3 += x[4] * y[srcBLen - 2] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc1 += x[3] * y[srcBLen - 3] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc2 += x[4] * y[srcBLen - 3] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc3 += x[5] * y[srcBLen - 3] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read y[srcBLen - 4] sample */ - c0 = *(py--); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[srcBLen - 4] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc1 += x[4] * y[srcBLen - 4] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc2 += x[5] * y[srcBLen - 4] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc3 += x[6] * y[srcBLen - 4] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x2 * c0)) >> 32); - - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = (q31_t) (acc0 << 1); - *pOut++ = (q31_t) (acc1 << 1); - *pOut++ = (q31_t) (acc2 << 1); - *pOut++ = (q31_t) (acc3 << 1); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -} - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q15.c deleted file mode 100644 index 70b4125d9d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q15.c +++ /dev/null @@ -1,544 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_opt_q15.c -* -* Description: Convolution of Q15 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return none. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both inputs are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * This approach provides 33 guard bits and there is no risk of overflow. - * The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format. - * - * - * \par - * Refer to arm_conv_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * - */ - -void arm_conv_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - q15_t * pScratch1, - q15_t * pScratch2) -{ - q63_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3; /* Temporary variables to hold state and coefficient values */ - q31_t y1, y2; /* State variables */ - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - uint32_t tapCnt; /* loop count */ -#ifdef UNALIGNED_SUPPORT_DISABLE - - q15_t a, b; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - /* Copy smaller length input sequence in reverse order into second scratch buffer */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Assuming scratch1 buffer is aligned by 32-bit */ - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr1, srcALen); - - /* Update pointers */ - pScr1 += srcALen; - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - -#endif - - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update pointer */ - pScr1 += (srcBLen - 1u); - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1u) % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - -#endif - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - /* First part of the processing with loop unrolling process 4 data points at a time. - ** a second loop below process for the remaining 1 to 3 samples. */ - - /* Actual convolution process starts here */ - blkCnt = (srcALen + srcBLen - 1u) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2u); - - /* multiply and accumlate */ - acc0 = __SMLALD(x1, y1, acc0); - acc2 = __SMLALD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLALDX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = _SIMD32_OFFSET(pScr1); - - /* multiply and accumlate */ - acc0 = __SMLALD(x2, y2, acc0); - acc2 = __SMLALD(x1, y2, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - acc1 = __SMLALDX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr1 + 2u); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - -#else - - /* Read four samples from smaller buffer */ - a = *pIn2; - b = *(pIn2 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - y1 = __PKHBT(a, b, 16); -#else - y1 = __PKHBT(b, a, 16); -#endif - - a = *(pIn2 + 2); - b = *(pIn2 + 3); -#ifndef ARM_MATH_BIG_ENDIAN - y2 = __PKHBT(a, b, 16); -#else - y2 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLALD(x1, y1, acc0); - - acc2 = __SMLALD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLALDX(x3, y1, acc1); - - a = *pScr1; - b = *(pScr1 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(a, b, 16); -#else - x1 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLALD(x2, y2, acc0); - - acc2 = __SMLALD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - - acc1 = __SMLALDX(x3, y2, acc1); - - a = *(pScr1 + 2); - b = *(pScr1 + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - x2 = __PKHBT(a, b, 16); -#else - x2 = __PKHBT(b, a, 16); -#endif - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - pIn2 += 4u; - pScr1 += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4u; - - } - - - blkCnt = (srcALen + srcBLen - 1u) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - /* Read next two samples from scratch1 buffer */ - acc0 += (*pScr1++ * *pIn2++); - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1u; - - } - -} - - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q7.c deleted file mode 100644 index 7fe9f55cf7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q7.c +++ /dev/null @@ -1,434 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_opt_q7.c -* -* Description: Convolution of Q7 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return none. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both the inputs are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * This approach provides 17 guard bits and there is no risk of overflow as long as max(srcALen, srcBLen)<131072. - * The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and then saturated to 1.7 format. - * - */ - -void arm_conv_opt_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pScr2, *pScr1; /* Intermediate pointers for scratch pointers */ - q15_t x4; /* Temporary input variable */ - q7_t *pIn1, *pIn2; /* inputA and inputB pointer */ - uint32_t j, k, blkCnt, tapCnt; /* loop counter */ - q7_t *px; /* Temporary input1 pointer */ - q15_t *py; /* Temporary input2 pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3, y1; /* Temporary input variables */ - q7_t *pOut = pDst; /* output pointer */ - q7_t out0, out1, out2, out3; /* temporary variables */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2; - - /* points to smaller length sequence */ - px = pIn2 + srcBLen - 1; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy (srcALen) samples in scratch buffer */ - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update pointer */ - pScr1 += (srcBLen - 1u); - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1u) % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - -#endif - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* Initialization of pIn2 pointer */ - pIn2 = (q7_t *) py; - - pScr2 = py; - - /* Actual convolution process starts here */ - blkCnt = (srcALen + srcBLen - 1u) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2 + 2u); - - acc0 = __SMLAD(x2, y1, acc0); - - acc2 = __SMLAD(x1, y1, acc2); - - acc1 = __SMLADX(x3, y1, acc1); - - x2 = *__SIMD32(pScr1)++; - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - pScr2 += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2); - acc1 += (*pScr1++ * *pScr2); - acc2 += (*pScr1++ * *pScr2); - acc3 += (*pScr1++ * *pScr2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - out0 = (q7_t) (__SSAT(acc0 >> 7u, 8)); - out1 = (q7_t) (__SSAT(acc1 >> 7u, 8)); - out2 = (q7_t) (__SSAT(acc2 >> 7u, 8)); - out3 = (q7_t) (__SSAT(acc3 >> 7u, 8)); - - *__SIMD32(pOut)++ = __PACKq7(out0, out1, out2, out3); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 4u; - - } - - - blkCnt = (srcALen + srcBLen - 1u) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - acc0 += (*pScr1++ * *pScr2++); - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7u, 8)); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 1u; - - } - -} - - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_f32.c deleted file mode 100644 index 58f5727353..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_f32.c +++ /dev/null @@ -1,661 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_f32.c -* -* Description: Partial convolution of floating-point sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup PartialConv Partial Convolution - * - * Partial Convolution is equivalent to Convolution except that a subset of the output samples is generated. - * Each function has two additional arguments. - * firstIndex specifies the starting index of the subset of output samples. - * numPoints is the number of output samples to compute. - * The function computes the output in the range - * [firstIndex, ..., firstIndex+numPoints-1]. - * The output array pDst contains numPoints values. - * - * The allowable range of output indices is [0 srcALen+srcBLen-2]. - * If the requested subset does not fall in this range then the functions return ARM_MATH_ARGUMENT_ERROR. - * Otherwise the functions return ARM_MATH_SUCCESS. - * \note Refer arm_conv_f32() for details on fixed point behavior. - * - * - * Fast Versions - * - * \par - * Fast versions are supported for Q31 and Q15 of partial convolution. Cycles for Fast versions are less compared to Q31 and Q15 of partial conv and the design requires - * the input signals should be scaled down to avoid intermediate overflows. - * - * - * Opt Versions - * - * \par - * Opt versions are supported for Q15 and Q7. Design uses internal scratch buffer for getting good optimisation. - * These versions are optimised in cycles and consumes more memory(Scratch memory) compared to Q15 and Q7 versions of partial convolution - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of floating-point sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - */ - -arm_status arm_conv_partial_f32( - float32_t * pSrcA, - uint32_t srcALen, - float32_t * pSrcB, - uint32_t srcBLen, - float32_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t *pIn1 = pSrcA; /* inputA pointer */ - float32_t *pIn2 = pSrcB; /* inputB pointer */ - float32_t *pOut = pDst; /* output pointer */ - float32_t *px; /* Intermediate inputA pointer */ - float32_t *py; /* Intermediate inputB pointer */ - float32_t *pSrc1, *pSrc2; /* Intermediate pointers */ - float32_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - float32_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t j, k, count = 0u, blkCnt, check; - int32_t blockSize1, blockSize2, blockSize3; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = (int32_t) check - (int32_t) srcALen; - blockSize3 = (blockSize3 > 0) ? blockSize3 : 0; - blockSize1 = ((int32_t) srcBLen - 1) - (int32_t) firstIndex; - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1u)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = ((int32_t) check - blockSize3) - - (blockSize1 + (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1u + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + firstIndex; - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 1] */ - sum += *px++ * *py--; - - /* x[1] * y[srcBLen - 2] */ - sum += *px++ * *py--; - - /* x[2] * y[srcBLen - 3] */ - sum += *px++ * *py--; - - /* x[3] * y[srcBLen - 4] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc1; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = ((uint32_t) blockSize2 >> 2u); - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 += x0 * c0; - - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 += x1 * c0; - - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 += x2 * c0; - - /* acc3 += x[3] * y[srcBLen - 1] */ - acc3 += x3 * c0; - - /* Read y[srcBLen - 2] sample */ - c0 = *(py--); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 += x1 * c0; - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 += x2 * c0; - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 += x3 * c0; - /* acc3 += x[4] * y[srcBLen - 2] */ - acc3 += x0 * c0; - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 += x2 * c0; - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 += x3 * c0; - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 += x0 * c0; - /* acc3 += x[5] * y[srcBLen - 2] */ - acc3 += x1 * c0; - - /* Read y[srcBLen - 4] sample */ - c0 = *(py--); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[srcBLen - 4] */ - acc0 += x3 * c0; - /* acc1 += x[4] * y[srcBLen - 4] */ - acc1 += x0 * c0; - /* acc2 += x[5] * y[srcBLen - 4] */ - acc2 += x1 * c0; - /* acc3 += x[6] * y[srcBLen - 4] */ - acc3 += x2 * c0; - - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += x0 * c0; - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += x1 * c0; - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += x2 * c0; - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 += x3 * c0; - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc0; - *pOut++ = acc1; - *pOut++ = acc2; - *pOut++ = acc3; - - /* Increment the pointer pIn1 index, count by 1 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py--; - sum += *px++ * *py--; - sum += *px++ * *py--; - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - while(blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t *pIn1 = pSrcA; /* inputA pointer */ - float32_t *pIn2 = pSrcB; /* inputB pointer */ - float32_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Loop to calculate convolution for output length number of values */ - for (i = firstIndex; i <= (firstIndex + numPoints - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0.0f; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0u; j <= i; j++) - { - /* Check the array limitations for inputs */ - if((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += pIn1[j] * pIn2[i - j]; - } - } - /* Store the output in the destination buffer */ - pDst[i] = sum; - } - /* set status as ARM_SUCCESS as there are no argument errors */ - status = ARM_MATH_SUCCESS; - } - return (status); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c deleted file mode 100644 index 25b3ba8c30..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c +++ /dev/null @@ -1,763 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_fast_opt_q15.c -* -* Description: Fast Q15 Partial convolution. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * See arm_conv_partial_q15() for a slower implementation of this function which uses a 64-bit accumulator to avoid wrap around distortion. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - -arm_status arm_conv_partial_fast_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3; /* Temporary variables to hold state and coefficient values */ - q31_t y1, y2; /* State variables */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - arm_status status; - - uint32_t tapCnt; /* loop count */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - - /* Copy smaller length input sequence in reverse order into second scratch buffer */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Assuming scratch1 buffer is aligned by 32-bit */ - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr1, srcALen); - - /* Update pointers */ - pScr1 += srcALen; - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update pointer */ - pScr1 += (srcBLen - 1u); - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - pScratch1 += firstIndex; - - pOut = pDst + firstIndex; - - /* First part of the processing with loop unrolling process 4 data points at a time. - ** a second loop below process for the remaining 1 to 3 samples. */ - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2u); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = _SIMD32_OFFSET(pScr1); - - /* multiply and accumlate */ - acc0 = __SMLAD(x2, y2, acc0); - - acc2 = __SMLAD(x1, y2, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - acc1 = __SMLADX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr1 + 2u); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); - - /* update scratch pointers */ - pIn2 += 4u; - pScr1 += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4u; - - } - - - blkCnt = numPoints & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read two samples from smaller buffer */ - y1 = *__SIMD32(pIn2)++; - - acc0 = __SMLAD(x1, y1, acc0); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1u; - - } - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - /* Return to application */ - return (status); -} - -#else - -arm_status arm_conv_partial_fast_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - arm_status status; /* Status variable */ - uint32_t tapCnt; /* loop count */ - q15_t x10, x11, x20, x21; /* Temporary variables to hold srcA buffer */ - q15_t y10, y11; /* Temporary variables to hold srcB buffer */ - - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1u) % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - pScratch1 += firstIndex; - - pOut = pDst + firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read next two samples from scratch1 buffer */ - x20 = *pScr1++; - x21 = *pScr1++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - - /* Read two samples from smaller buffer */ - y10 = *pIn2; - y11 = *(pIn2 + 1u); - - /* multiply and accumlate */ - acc0 += (q31_t) x10 *y10; - acc0 += (q31_t) x11 *y11; - acc2 += (q31_t) x20 *y10; - acc2 += (q31_t) x21 *y11; - - /* multiply and accumlate */ - acc1 += (q31_t) x11 *y10; - acc1 += (q31_t) x20 *y11; - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1; - x11 = *(pScr1 + 1u); - - /* multiply and accumlate */ - acc3 += (q31_t) x21 *y10; - acc3 += (q31_t) x10 *y11; - - /* Read next two samples from scratch2 buffer */ - y10 = *(pIn2 + 2u); - y11 = *(pIn2 + 3u); - - /* multiply and accumlate */ - acc0 += (q31_t) x20 *y10; - acc0 += (q31_t) x21 *y11; - acc2 += (q31_t) x10 *y10; - acc2 += (q31_t) x11 *y11; - acc1 += (q31_t) x21 *y10; - acc1 += (q31_t) x10 *y11; - - /* Read next two samples from scratch1 buffer */ - x20 = *(pScr1 + 2); - x21 = *(pScr1 + 3); - - /* multiply and accumlate */ - acc3 += (q31_t) x11 *y10; - acc3 += (q31_t) x20 *y11; - - /* update scratch pointers */ - pIn2 += 4u; - pScr1 += 4u; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = __SSAT((acc0 >> 15), 16); - *pOut++ = __SSAT((acc1 >> 15), 16); - *pOut++ = __SSAT((acc2 >> 15), 16); - *pOut++ = __SSAT((acc3 >> 15), 16); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4u; - - } - - - blkCnt = numPoints & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read two samples from smaller buffer */ - y10 = *pIn2++; - y11 = *pIn2++; - - /* multiply and accumlate */ - acc0 += (q31_t) x10 *y10; - acc0 += (q31_t) x11 *y11; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1u; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - /* Return to application */ - return (status); -} - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q15.c deleted file mode 100644 index 98216bb6ab..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q15.c +++ /dev/null @@ -1,1473 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_fast_q15.c -* -* Description: Fast Q15 Partial convolution. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * See arm_conv_partial_q15() for a slower implementation of this function which uses a 64-bit accumulator to avoid wrap around distortion. - */ - - -arm_status arm_conv_partial_fast_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ -#ifndef UNALIGNED_SUPPORT_DISABLE - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >=srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t) check - (int32_t) srcALen); - blockSize3 = (blockSize3 > 0) ? blockSize3 : 0; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1u)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1u + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while((count < 4u) && (blockSize1 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while(blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0], x[1] are multiplied with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[2], x[3] are multiplied with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1u; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2 - 1u; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0u; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = ((uint32_t) blockSize2 >> 2u); - - while(blkCnt > 0u) - { - py = py - 1u; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px+1); - px+= 2u; - - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLADX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLADX(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px+1); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLADX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLADX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLADX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLADX(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px+2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px+3); - px += 4u; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLADX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLADX(x1, c0, acc3); - - } while(--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - - c0 = *(py-1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px+2); - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the results in the accumulators in the destination buffer. */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = __PKHBT(acc0 >> 15, acc1 >> 15, 16); - *__SIMD32(pOut)++ = __PKHBT(acc2 >> 15, acc3 >> 15, 16); - -#else - - *__SIMD32(pOut)++ = __PKHBT(acc1 >> 15, acc0 >> 15, 16); - *__SIMD32(pOut)++ = __PKHBT(acc3 >> 15, acc2 >> 15, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - pIn2 = pSrc2 - 1u; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = count >> 2u; - - while((j > 0u) && (blockSize3 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[srcALen - srcBLen + 1], x[srcALen - srcBLen + 2] are multiplied - * with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[srcALen - srcBLen + 3], x[srcALen - srcBLen + 4] are multiplied - * with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1u; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1u; - - while(blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counters */ - arm_status status; /* status of Partial convolution */ - q15_t a, b; - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >=srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t) check - (int32_t) srcALen); - blockSize3 = (blockSize3 > 0) ? blockSize3 : 0; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1u)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1u + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while((count < 4u) && (blockSize1 > 0u)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - py++; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2 - 1u; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0u; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = ((uint32_t) blockSize2 >> 2u); - - while(blkCnt > 0u) - { - py = py - 1u; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1] samples */ - a = *px++; - b = *px++; - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *px; - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *px; - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - a = *py; - b = *(py+1); - py -= 2; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLADX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLADX(x1, c0, acc1); - - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x2 = __PKHBT(a, b, 16); - a = *(px + 2); - x3 = __PKHBT(b, a, 16); - -#else - - x2 = __PKHBT(b, a, 16); - a = *(px + 2); - x3 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLADX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLADX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - a = *py; - b = *(py+1); - py -= 2; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLADX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLADX(x3, c0, acc1); - - /* Read x[4], x[5], x[6] */ - a = *(px + 2); - b = *(px + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *(px + 4); - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *(px + 4); - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 4u; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLADX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLADX(x1, c0, acc3); - - } while(--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - a = *px; - b = *(px+1); - px++; - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - a = *py; - b = *(py+1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - a = *py; - b = *(py+1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - - /* Read y[srcBLen - 7] */ - c0 = *(py-1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - a = *(px+2); - b = *(px+3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = (q15_t)(acc0 >> 15); - *pOut++ = (q15_t)(acc1 >> 15); - *pOut++ = (q15_t)(acc2 >> 15); - *pOut++ = (q15_t)(acc3 >> 15); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - pIn2 = pSrc2 - 1u; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = count >> 2u; - - while((j > 0u) && (blockSize3 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - py++; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - /* Decrement the loop counter */ - k--; - } - - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1u; - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ -} - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q31.c deleted file mode 100644 index 17902f593f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q31.c +++ /dev/null @@ -1,599 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_fast_q31.c -* -* Description: Fast Q31 Partial convolution. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * \par - * See arm_conv_partial_q31() for a slower implementation of this function which uses a 64-bit accumulator to provide higher precision. - */ - -arm_status arm_conv_partial_fast_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q31_t x0, x1, x2, x3, c0; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t) check - (int32_t) srcALen); - blockSize3 = (blockSize3 > 0) ? blockSize3 : 0; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1u)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1u + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while(blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[1] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[2] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[3] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2 */ - blkCnt = ((uint32_t) blockSize2 >> 2u); - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - - /* acc3 += x[3] * y[srcBLen - 1] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Read y[srcBLen - 2] sample */ - c0 = *(py--); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc3 += x[4] * y[srcBLen - 2] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc3 += x[5] * y[srcBLen - 2] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read y[srcBLen - 4] sample */ - c0 = *(py--); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[srcBLen - 4] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc1 += x[4] * y[srcBLen - 4] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc2 += x[5] * y[srcBLen - 4] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc3 += x[6] * y[srcBLen - 4] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x2 * c0)) >> 32); - - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (acc0 << 1); - *pOut++ = (q31_t) (acc1 << 1); - *pOut++ = (q31_t) (acc2 << 1); - *pOut++ = (q31_t) (acc3 << 1); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -} - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q15.c deleted file mode 100644 index fe14f9fd3b..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q15.c +++ /dev/null @@ -1,764 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_opt_q15.c -* -* Description: Partial convolution of Q15 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, state buffers should be aligned by 32-bit - * - * Refer to arm_conv_partial_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * - */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - -arm_status arm_conv_partial_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q63_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3; /* Temporary variables to hold state and coefficient values */ - q31_t y1, y2; /* State variables */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - arm_status status; /* Status variable */ - uint32_t tapCnt; /* loop count */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr1, srcALen); - - /* Update pointers */ - pScr1 += srcALen; - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update pointer */ - pScr1 += (srcBLen - 1u); - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - pScratch1 += firstIndex; - - pOut = pDst + firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2u); - - /* multiply and accumlate */ - acc0 = __SMLALD(x1, y1, acc0); - acc2 = __SMLALD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLALDX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = _SIMD32_OFFSET(pScr1); - - /* multiply and accumlate */ - acc0 = __SMLALD(x2, y2, acc0); - acc2 = __SMLALD(x1, y2, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - acc1 = __SMLALDX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr1 + 2u); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - - /* update scratch pointers */ - pIn2 += 4u; - pScr1 += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4u; - - } - - - blkCnt = numPoints & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read two samples from smaller buffer */ - y1 = *__SIMD32(pIn2)++; - - acc0 = __SMLALD(x1, y1, acc0); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1u; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - /* Return to application */ - return (status); -} - -#else - -arm_status arm_conv_partial_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q63_t acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - arm_status status; /* Status variable */ - uint32_t tapCnt; /* loop count */ - q15_t x10, x11, x20, x21; /* Temporary variables to hold srcA buffer */ - q15_t y10, y11; /* Temporary variables to hold srcB buffer */ - - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1u) % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - pScratch1 += firstIndex; - - pOut = pDst + firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read next two samples from scratch1 buffer */ - x20 = *pScr1++; - x21 = *pScr1++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - - /* Read two samples from smaller buffer */ - y10 = *pIn2; - y11 = *(pIn2 + 1u); - - /* multiply and accumlate */ - acc0 += (q63_t) x10 *y10; - acc0 += (q63_t) x11 *y11; - acc2 += (q63_t) x20 *y10; - acc2 += (q63_t) x21 *y11; - - /* multiply and accumlate */ - acc1 += (q63_t) x11 *y10; - acc1 += (q63_t) x20 *y11; - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1; - x11 = *(pScr1 + 1u); - - /* multiply and accumlate */ - acc3 += (q63_t) x21 *y10; - acc3 += (q63_t) x10 *y11; - - /* Read next two samples from scratch2 buffer */ - y10 = *(pIn2 + 2u); - y11 = *(pIn2 + 3u); - - /* multiply and accumlate */ - acc0 += (q63_t) x20 *y10; - acc0 += (q63_t) x21 *y11; - acc2 += (q63_t) x10 *y10; - acc2 += (q63_t) x11 *y11; - acc1 += (q63_t) x21 *y10; - acc1 += (q63_t) x10 *y11; - - /* Read next two samples from scratch1 buffer */ - x20 = *(pScr1 + 2); - x21 = *(pScr1 + 3); - - /* multiply and accumlate */ - acc3 += (q63_t) x11 *y10; - acc3 += (q63_t) x20 *y11; - - /* update scratch pointers */ - pIn2 += 4u; - pScr1 += 4u; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = __SSAT((acc0 >> 15), 16); - *pOut++ = __SSAT((acc1 >> 15), 16); - *pOut++ = __SSAT((acc2 >> 15), 16); - *pOut++ = __SSAT((acc3 >> 15), 16); - - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4u; - - } - - - blkCnt = numPoints & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read two samples from smaller buffer */ - y10 = *pIn2++; - y11 = *pIn2++; - - /* multiply and accumlate */ - acc0 += (q63_t) x10 *y10; - acc0 += (q63_t) x11 *y11; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1u; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - /* Return to application */ - return (status); -} - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q7.c deleted file mode 100644 index 513d89d877..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q7.c +++ /dev/null @@ -1,806 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_opt_q7.c -* -* Description: Partial convolution of Q7 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * - * - */ - - -#ifndef UNALIGNED_SUPPORT_DISABLE - -arm_status arm_conv_partial_opt_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pScr2, *pScr1; /* Intermediate pointers for scratch pointers */ - q15_t x4; /* Temporary input variable */ - q7_t *pIn1, *pIn2; /* inputA and inputB pointer */ - uint32_t j, k, blkCnt, tapCnt; /* loop counter */ - q7_t *px; /* Temporary input1 pointer */ - q15_t *py; /* Temporary input2 pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3, y1; /* Temporary input variables */ - arm_status status; - q7_t *pOut = pDst; /* output pointer */ - q7_t out0, out1, out2, out3; /* temporary variables */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2; - - /* points to smaller length sequence */ - px = pIn2 + srcBLen - 1; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy (srcALen) samples in scratch buffer */ - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update pointer */ - pScr1 += (srcBLen - 1u); - - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* Initialization of pIn2 pointer */ - pIn2 = (q7_t *) py; - - pScr2 = py; - - pOut = pDst + firstIndex; - - pScratch1 += firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2 + 2u); - - acc0 = __SMLAD(x2, y1, acc0); - - acc2 = __SMLAD(x1, y1, acc2); - - acc1 = __SMLADX(x3, y1, acc1); - - x2 = *__SIMD32(pScr1)++; - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - pScr2 += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2); - acc1 += (*pScr1++ * *pScr2); - acc2 += (*pScr1++ * *pScr2); - acc3 += (*pScr1++ * *pScr2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - out0 = (q7_t) (__SSAT(acc0 >> 7u, 8)); - out1 = (q7_t) (__SSAT(acc1 >> 7u, 8)); - out2 = (q7_t) (__SSAT(acc2 >> 7u, 8)); - out3 = (q7_t) (__SSAT(acc3 >> 7u, 8)); - - *__SIMD32(pOut)++ = __PACKq7(out0, out1, out2, out3); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 4u; - - } - - blkCnt = (numPoints) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read two samples from smaller buffer */ - y1 = *__SIMD32(pScr2)++; - - acc0 = __SMLAD(x1, y1, acc0); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7u, 8)); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 1u; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - - } - - return (status); - -} - -#else - -arm_status arm_conv_partial_opt_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pScr2, *pScr1; /* Intermediate pointers for scratch pointers */ - q15_t x4; /* Temporary input variable */ - q7_t *pIn1, *pIn2; /* inputA and inputB pointer */ - uint32_t j, k, blkCnt, tapCnt; /* loop counter */ - q7_t *px; /* Temporary input1 pointer */ - q15_t *py; /* Temporary input2 pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - arm_status status; - q7_t *pOut = pDst; /* output pointer */ - q15_t x10, x11, x20, x21; /* Temporary input variables */ - q15_t y10, y11; /* Temporary input variables */ - q7_t out0, out1, out2, out3; /* temporary variables */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2; - - /* points to smaller length sequence */ - px = pIn2 + srcBLen - 1; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy (srcALen) samples in scratch buffer */ - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1u) % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* Initialization of pIn2 pointer */ - pIn2 = (q7_t *) py; - - pScr2 = py; - - pOut = pDst + firstIndex; - - pScratch1 += firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read next two samples from scratch1 buffer */ - x20 = *pScr1++; - x21 = *pScr1++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - - /* Read four samples from smaller buffer */ - y10 = *pScr2; - y11 = *(pScr2 + 1u); - - /* multiply and accumlate */ - acc0 += (q31_t) x10 *y10; - acc0 += (q31_t) x11 *y11; - acc2 += (q31_t) x20 *y10; - acc2 += (q31_t) x21 *y11; - - - acc1 += (q31_t) x11 *y10; - acc1 += (q31_t) x20 *y11; - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1; - x11 = *(pScr1 + 1u); - - /* multiply and accumlate */ - acc3 += (q31_t) x21 *y10; - acc3 += (q31_t) x10 *y11; - - /* Read next two samples from scratch2 buffer */ - y10 = *(pScr2 + 2u); - y11 = *(pScr2 + 3u); - - /* multiply and accumlate */ - acc0 += (q31_t) x20 *y10; - acc0 += (q31_t) x21 *y11; - acc2 += (q31_t) x10 *y10; - acc2 += (q31_t) x11 *y11; - acc1 += (q31_t) x21 *y10; - acc1 += (q31_t) x10 *y11; - - /* Read next two samples from scratch1 buffer */ - x20 = *(pScr1 + 2); - x21 = *(pScr1 + 3); - - /* multiply and accumlate */ - acc3 += (q31_t) x11 *y10; - acc3 += (q31_t) x20 *y11; - - /* update scratch pointers */ - - pScr1 += 4u; - pScr2 += 4u; - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2); - acc1 += (*pScr1++ * *pScr2); - acc2 += (*pScr1++ * *pScr2); - acc3 += (*pScr1++ * *pScr2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - out0 = (q7_t) (__SSAT(acc0 >> 7u, 8)); - out1 = (q7_t) (__SSAT(acc1 >> 7u, 8)); - out2 = (q7_t) (__SSAT(acc2 >> 7u, 8)); - out3 = (q7_t) (__SSAT(acc3 >> 7u, 8)); - - - *__SIMD32(pOut)++ = __PACKq7(out0, out1, out2, out3); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 4u; - - } - - blkCnt = (numPoints) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read two samples from smaller buffer */ - y10 = *pScr2++; - y11 = *pScr2++; - - /* multiply and accumlate */ - acc0 += (q31_t) x10 *y10; - acc0 += (q31_t) x11 *y11; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7u, 8)); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 1u; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - return (status); - -} - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q15.c deleted file mode 100644 index 8c7ed5f861..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q15.c +++ /dev/null @@ -1,778 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_q15.c -* -* Description: Partial convolution of Q15 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * Refer to arm_conv_partial_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * \par - * Refer the function arm_conv_partial_opt_q15() for a faster implementation of this function using scratch buffers. - * - */ - - -arm_status arm_conv_partial_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - -#if (defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q63_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* Temporary input variables */ - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counter */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t) check - (int32_t) srcALen); - blockSize3 = (blockSize3 > 0) ? blockSize3 : 0; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1u)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1u + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while((count < 4u) && (blockSize1 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while(blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0], x[1] are multiplied with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[2], x[3] are multiplied with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1u; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2 - 1u; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0u; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - py = py - 1u; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px+1); - px+= 2u; - - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLALDX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px+1); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLALDX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLALDX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLALDX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLALDX(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px+2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px+3); - px += 4u; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLALDX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLALDX(x1, c0, acc3); - - } while(--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALDX(x1, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x0, c0, acc0); - acc1 = __SMLALDX(x1, c0, acc1); - acc2 = __SMLALDX(x3, c0, acc2); - acc3 = __SMLALDX(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x0, c0, acc0); - acc1 = __SMLALDX(x1, c0, acc1); - acc2 = __SMLALDX(x3, c0, acc2); - acc3 = __SMLALDX(x2, c0, acc3); - - c0 = *(py-1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px+2); - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x1, c0, acc0); - acc1 = __SMLALD(x2, c0, acc1); - acc2 = __SMLALDX(x2, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT(sum >> 15, 16)); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT(sum >> 15, 16)); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - pIn2 = pSrc2 - 1u; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = count >> 2u; - - while((j > 0u) && (blockSize3 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[srcALen - srcBLen + 1], x[srcALen - srcBLen + 2] are multiplied - * with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[srcALen - srcBLen + 3], x[srcALen - srcBLen + 4] are multiplied - * with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1u; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1u; - - while(blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t *pIn1 = pSrcA; /* inputA pointer */ - q15_t *pIn2 = pSrcB; /* inputB pointer */ - q63_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Loop to calculate convolution for output length number of values */ - for (i = firstIndex; i <= (firstIndex + numPoints - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if(((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q31_t) pIn1[j] * (pIn2[i - j])); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q15_t) __SSAT((sum >> 15u), 16u); - } - /* set status as ARM_SUCCESS as there are no argument errors */ - status = ARM_MATH_SUCCESS; - } - return (status); - -#endif /* #if (defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) */ - -} - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q31.c deleted file mode 100644 index 16a0606488..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q31.c +++ /dev/null @@ -1,599 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_q31.c -* -* Description: Partial convolution of Q31 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q31 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * See arm_conv_partial_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -arm_status arm_conv_partial_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q63_t sum, acc0, acc1, acc2; /* Accumulator */ - q31_t x0, x1, x2, c0; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counter */ - arm_status status; /* status of Partial convolution */ - - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t) check - (int32_t) srcALen); - blockSize3 = (blockSize3 > 0) ? blockSize3 : 0; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1u)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1u + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while(blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py--); - /* x[1] * y[srcBLen - 2] */ - sum += (q63_t) * px++ * (*py--); - /* x[2] * y[srcBLen - 3] */ - sum += (q63_t) * px++ * (*py--); - /* x[3] * y[srcBLen - 4] */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blkCnt */ - - blkCnt = blockSize2 / 3; - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - - /* read x[0], x[1] samples */ - x0 = *(px++); - x1 = *(px++); - - /* Apply loop unrolling and compute 3 MACs simultaneously. */ - k = srcBLen / 3; - - /* First part of the processing with loop unrolling. Compute 3 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 2 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py); - - /* Read x[2] sample */ - x2 = *(px); - - /* Perform the multiply-accumulates */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 += (q63_t) x0 *c0; - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 += (q63_t) x1 *c0; - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 += (q63_t) x2 *c0; - - /* Read y[srcBLen - 2] sample */ - c0 = *(py - 1u); - - /* Read x[3] sample */ - x0 = *(px + 1u); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 += (q63_t) x1 *c0; - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 += (q63_t) x2 *c0; - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 += (q63_t) x0 *c0; - - /* Read y[srcBLen - 3] sample */ - c0 = *(py - 2u); - - /* Read x[4] sample */ - x1 = *(px + 2u); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 += (q63_t) x2 *c0; - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 += (q63_t) x0 *c0; - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 += (q63_t) x1 *c0; - - - px += 3u; - - py -= 3u; - - } while(--k); - - /* If the srcBLen is not a multiple of 3, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen - (3 * (srcBLen / 3)); - - while(k > 0u) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += (q63_t) x0 *c0; - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += (q63_t) x1 *c0; - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += (q63_t) x2 *c0; - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (acc0 >> 31); - *pOut++ = (q31_t) (acc1 >> 31); - *pOut++ = (q31_t) (acc2 >> 31); - - /* Increment the pointer pIn1 index, count by 3 */ - count += 3u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 3, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 - 3 * (blockSize2 / 3); - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t *pIn1 = pSrcA; /* inputA pointer */ - q31_t *pIn2 = pSrcB; /* inputB pointer */ - q63_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Loop to calculate convolution for output length number of values */ - for (i = firstIndex; i <= (firstIndex + numPoints - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if(((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q63_t) pIn1[j] * (pIn2[i - j])); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q31_t) (sum >> 31u); - } - /* set status as ARM_SUCCESS as there are no argument errors */ - status = ARM_MATH_SUCCESS; - } - return (status); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q7.c deleted file mode 100644 index ed205838ed..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q7.c +++ /dev/null @@ -1,733 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_partial_q7.c -* -* Description: Partial convolution of Q7 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * \par - * Refer the function arm_conv_partial_opt_q7() for a faster implementation of this function. - * - */ - -arm_status arm_conv_partial_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t *pIn1; /* inputA pointer */ - q7_t *pIn2; /* inputB pointer */ - q7_t *pOut = pDst; /* output pointer */ - q7_t *px; /* Intermediate inputA pointer */ - q7_t *py; /* Intermediate inputB pointer */ - q7_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t input1, input2; - q15_t in1, in2; - q7_t x0, x1, x2, x3, c0, c1; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counter */ - arm_status status; - - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t) check - (int32_t) srcALen); - blockSize3 = (blockSize3 > 0) ? blockSize3 : 0; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1u)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1u + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] , x[1] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 1] , y[srcBLen - 2] */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* x[0] * y[srcBLen - 1] */ - /* x[1] * y[srcBLen - 2] */ - sum = __SMLAD(input1, input2, sum); - - /* x[2] , x[3] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 3] , y[srcBLen - 4] */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* x[2] * y[srcBLen - 3] */ - /* x[3] * y[srcBLen - 4] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7, 8)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = ((uint32_t) blockSize2 >> 2u); - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - /* Read y[srcBLen - 2] sample */ - c1 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* x[0] and x[1] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 1] and y[srcBLen - 2] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[1] and x[2] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[4] sample */ - x0 = *(px++); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLAD(input1, input2, acc3); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - /* Read y[srcBLen - 4] sample */ - c1 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 3] and y[srcBLen - 4] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[4] and x[5] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[6] sample */ - x2 = *(px++); - - /* x[5] and x[6] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLAD(input1, input2, acc3); - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += ((q31_t) x0 * c0); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += ((q31_t) x1 * c0); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += ((q31_t) x2 * c0); - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 += ((q31_t) x3 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7, 8)); - *pOut++ = (q7_t) (__SSAT(acc1 >> 7, 8)); - *pOut++ = (q7_t) (__SSAT(acc2 >> 7, 8)); - *pOut++ = (q7_t) (__SSAT(acc3 >> 7, 8)); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7, 8)); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7, 8)); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Reading two inputs, x[srcALen - srcBLen + 1] and x[srcALen - srcBLen + 2] of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs, y[srcBLen - 1] and y[srcBLen - 2] of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs, x[srcALen - srcBLen + 3] and x[srcALen - srcBLen + 4] of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs, y[srcBLen - 3] and y[srcBLen - 4] of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7, 8)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - q7_t *pIn1 = pSrcA; /* inputA pointer */ - q7_t *pIn2 = pSrcB; /* inputB pointer */ - q31_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if((firstIndex + numPoints) > ((srcALen + (srcBLen - 1u)))) - { - /* Set status as ARM_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Loop to calculate convolution for output length number of values */ - for (i = firstIndex; i <= (firstIndex + numPoints - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if(((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q15_t) pIn1[j] * (pIn2[i - j])); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q7_t) __SSAT((sum >> 7u), 8u); - } - /* set status as ARM_SUCCESS as there are no argument errors */ - status = ARM_MATH_SUCCESS; - } - return (status); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of PartialConv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q15.c deleted file mode 100644 index 1907719e74..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q15.c +++ /dev/null @@ -1,733 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_q15.c -* -* Description: Convolution of Q15 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both inputs are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * This approach provides 33 guard bits and there is no risk of overflow. - * The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format. - * - * \par - * Refer to arm_conv_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * \par - * Refer the function arm_conv_opt_q15() for a faster implementation of this function using scratch buffers. - * - */ - -void arm_conv_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst) -{ - -#if (defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q63_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t blockSize1, blockSize2, blockSize3, j, k, count, blkCnt; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while((count < 4u) && (blockSize1 > 0u)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0], x[1] are multiplied with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[2], x[3] are multiplied with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1u; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + (count - 1u); - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0u; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - py = py - 1u; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px+1); - px+= 2u; - - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLALDX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px+1); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLALDX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLALDX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLALDX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLALDX(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px+2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px+3); - px += 4u; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLALDX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLALDX(x1, c0, acc3); - - } while(--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALDX(x1, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x0, c0, acc0); - acc1 = __SMLALDX(x1, c0, acc1); - acc2 = __SMLALDX(x3, c0, acc2); - acc3 = __SMLALDX(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x0, c0, acc0); - acc1 = __SMLALDX(x1, c0, acc1); - acc2 = __SMLALDX(x3, c0, acc2); - acc3 = __SMLALDX(x2, c0, acc3); - - c0 = *(py-1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px+2); - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x1, c0, acc0); - acc1 = __SMLALD(x2, c0, acc1); - acc2 = __SMLALDX(x2, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT(sum >> 15, 16)); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT(sum >> 15, 16)); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - blockSize3 = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - pIn2 = pSrc2 - 1u; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = blockSize3 >> 2u; - - while((j > 0u) && (blockSize3 > 0u)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[srcALen - srcBLen + 1], x[srcALen - srcBLen + 2] are multiplied - * with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[srcALen - srcBLen + 3], x[srcALen - srcBLen + 4] are multiplied - * with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1u; - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4u; - - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1u; - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - q15_t *pIn1 = pSrcA; /* input pointer */ - q15_t *pIn2 = pSrcB; /* coefficient pointer */ - q63_t sum; /* Accumulator */ - uint32_t i, j; /* loop counter */ - - /* Loop to calculate output of convolution for output length number of times */ - for (i = 0; i < (srcALen + srcBLen - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if(((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += (q31_t) pIn1[j] * (pIn2[i - j]); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q15_t) __SSAT((sum >> 15u), 16u); - } - -#endif /* #if (defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE)*/ - -} - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q31.c deleted file mode 100644 index 769b95abb0..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q31.c +++ /dev/null @@ -1,564 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_q31.c -* -* Description: Convolution of Q31 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q31 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down the inputs by log2(min(srcALen, srcBLen)) (log2 is read as log to the base 2) times to avoid overflows, - * as maximum of min(srcALen, srcBLen) number of additions are carried internally. - * The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * \par - * See arm_conv_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -void arm_conv_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q63_t sum; /* Accumulator */ - q63_t acc0, acc1, acc2; /* Accumulator */ - q31_t x0, x1, x2, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t j, k, count, blkCnt, blockSize1, blockSize2, blockSize3; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (q31_t *) pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = (q31_t *) pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py--); - /* x[1] * y[srcBLen - 2] */ - sum += (q63_t) * px++ * (*py--); - /* x[2] * y[srcBLen - 3] */ - sum += (q63_t) * px++ * (*py--); - /* x[3] * y[srcBLen - 4] */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll by 3 */ - blkCnt = blockSize2 / 3; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - - /* Apply loop unrolling and compute 3 MACs simultaneously. */ - k = srcBLen / 3; - - /* First part of the processing with loop unrolling. Compute 3 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 2 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py); - - /* Read x[3] sample */ - x2 = *(px); - - /* Perform the multiply-accumulates */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 += ((q63_t) x0 * c0); - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 += ((q63_t) x1 * c0); - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 += ((q63_t) x2 * c0); - - /* Read y[srcBLen - 2] sample */ - c0 = *(py - 1u); - - /* Read x[4] sample */ - x0 = *(px + 1u); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 += ((q63_t) x1 * c0); - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 += ((q63_t) x2 * c0); - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 += ((q63_t) x0 * c0); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py - 2u); - - /* Read x[5] sample */ - x1 = *(px + 2u); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 += ((q63_t) x2 * c0); - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 += ((q63_t) x0 * c0); - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 += ((q63_t) x1 * c0); - - /* update scratch pointers */ - px += 3u; - py -= 3u; - - } while(--k); - - /* If the srcBLen is not a multiple of 3, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen - (3 * (srcBLen / 3)); - - while(k > 0u) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += ((q63_t) x0 * c0); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += ((q63_t) x1 * c0); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += ((q63_t) x2 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - - /* Decrement the loop counter */ - k--; - } - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = (q31_t) (acc0 >> 31); - *pOut++ = (q31_t) (acc1 >> 31); - *pOut++ = (q31_t) (acc2 >> 31); - - /* Increment the pointer pIn1 index, count by 3 */ - count += 3u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 3, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 - 3 * (blockSize2 / 3); - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py--); - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum += (q63_t) * px++ * (*py--); - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum += (q63_t) * px++ * (*py--); - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t *pIn1 = pSrcA; /* input pointer */ - q31_t *pIn2 = pSrcB; /* coefficient pointer */ - q63_t sum; /* Accumulator */ - uint32_t i, j; /* loop counter */ - - /* Loop to calculate output of convolution for output length number of times */ - for (i = 0; i < (srcALen + srcBLen - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if(((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q63_t) pIn1[j] * (pIn2[i - j])); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q31_t) (sum >> 31u); - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q7.c deleted file mode 100644 index eb78fd5333..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_conv_q7.c +++ /dev/null @@ -1,689 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_conv_q7.c -* -* Description: Convolution of Q7 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both the inputs are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * This approach provides 17 guard bits and there is no risk of overflow as long as max(srcALen, srcBLen)<131072. - * The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and then saturated to 1.7 format. - * - * \par - * Refer the function arm_conv_opt_q7() for a faster implementation of this function. - * - */ - -void arm_conv_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t *pIn1; /* inputA pointer */ - q7_t *pIn2; /* inputB pointer */ - q7_t *pOut = pDst; /* output pointer */ - q7_t *px; /* Intermediate inputA pointer */ - q7_t *py; /* Intermediate inputB pointer */ - q7_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q7_t x0, x1, x2, x3, c0, c1; /* Temporary variables to hold state and coefficient values */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t input1, input2; /* Temporary input variables */ - q15_t in1, in2; /* Temporary input variables */ - uint32_t j, k, count, blkCnt, blockSize1, blockSize2, blockSize3; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = (srcALen - srcBLen) + 1u; - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] , x[1] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* y[srcBLen - 1] , y[srcBLen - 2] */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* x[0] * y[srcBLen - 1] */ - /* x[1] * y[srcBLen - 2] */ - sum = __SMLAD(input1, input2, sum); - - /* x[2] , x[3] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* y[srcBLen - 3] , y[srcBLen - 4] */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* x[2] * y[srcBLen - 3] */ - /* x[3] * y[srcBLen - 4] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7u, 8)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - /* Read y[srcBLen - 2] sample */ - c1 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* x[0] and x[1] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* y[srcBLen - 1] and y[srcBLen - 2] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[1] and x[2] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[4] sample */ - x0 = *(px++); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLAD(input1, input2, acc3); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - /* Read y[srcBLen - 4] sample */ - c1 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* y[srcBLen - 3] and y[srcBLen - 4] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[4] and x[5] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[6] sample */ - x2 = *(px++); - - /* x[5] and x[6] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLAD(input1, input2, acc3); - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += ((q15_t) x0 * c0); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += ((q15_t) x1 * c0); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += ((q15_t) x2 * c0); - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 += ((q15_t) x3 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7u, 8)); - *pOut++ = (q7_t) (__SSAT(acc1 >> 7u, 8)); - *pOut++ = (q7_t) (__SSAT(acc2 >> 7u, 8)); - *pOut++ = (q7_t) (__SSAT(acc3 >> 7u, 8)); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7u, 8)); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q15_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7u, 8)); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = pIn1 + (srcALen - (srcBLen - 1u)); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1u); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Reading two inputs, x[srcALen - srcBLen + 1] and x[srcALen - srcBLen + 2] of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* Reading two inputs, y[srcBLen - 1] and y[srcBLen - 2] of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs, x[srcALen - srcBLen + 3] and x[srcALen - srcBLen + 4] of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* Reading two inputs, y[srcBLen - 3] and y[srcBLen - 4] of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16u); - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7u, 8)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q7_t *pIn1 = pSrcA; /* input pointer */ - q7_t *pIn2 = pSrcB; /* coefficient pointer */ - q31_t sum; /* Accumulator */ - uint32_t i, j; /* loop counter */ - - /* Loop to calculate output of convolution for output length number of times */ - for (i = 0; i < (srcALen + srcBLen - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if(((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += (q15_t) pIn1[j] * (pIn2[i - j]); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q7_t) __SSAT((sum >> 7u), 8u); - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of Conv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_f32.c deleted file mode 100644 index 6a99eafc15..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_f32.c +++ /dev/null @@ -1,738 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_f32.c -* -* Description: Correlation of floating-point sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup Corr Correlation - * - * Correlation is a mathematical operation that is similar to convolution. - * As with convolution, correlation uses two signals to produce a third signal. - * The underlying algorithms in correlation and convolution are identical except that one of the inputs is flipped in convolution. - * Correlation is commonly used to measure the similarity between two signals. - * It has applications in pattern recognition, cryptanalysis, and searching. - * The CMSIS library provides correlation functions for Q7, Q15, Q31 and floating-point data types. - * Fast versions of the Q15 and Q31 functions are also provided. - * - * \par Algorithm - * Let a[n] and b[n] be sequences of length srcALen and srcBLen samples respectively. - * The convolution of the two signals is denoted by - *
    
- *                   c[n] = a[n] * b[n]    
- * 
- * In correlation, one of the signals is flipped in time - *
    
- *                   c[n] = a[n] * b[-n]    
- * 
- * - * \par - * and this is mathematically defined as - * \image html CorrelateEquation.gif - * \par - * The pSrcA points to the first input vector of length srcALen and pSrcB points to the second input vector of length srcBLen. - * The result c[n] is of length 2 * max(srcALen, srcBLen) - 1 and is defined over the interval n=0, 1, 2, ..., (2 * max(srcALen, srcBLen) - 2). - * The output result is written to pDst and the calling function must allocate 2 * max(srcALen, srcBLen) - 1 words for the result. - * - * Note - * \par - * The pDst should be initialized to all zeros before being used. - * - * Fixed-Point Behavior - * \par - * Correlation requires summing up a large number of intermediate products. - * As such, the Q7, Q15, and Q31 functions run a risk of overflow and saturation. - * Refer to the function specific documentation below for further details of the particular algorithm used. - * - * - * Fast Versions - * - * \par - * Fast versions are supported for Q31 and Q15. Cycles for Fast versions are less compared to Q31 and Q15 of correlate and the design requires - * the input signals should be scaled down to avoid intermediate overflows. - * - * - * Opt Versions - * - * \par - * Opt versions are supported for Q15 and Q7. Design uses internal scratch buffer for getting good optimisation. - * These versions are optimised in cycles and consumes more memory(Scratch memory) compared to Q15 and Q7 versions of correlate - */ - -/** - * @addtogroup Corr - * @{ - */ -/** - * @brief Correlation of floating-point sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - */ - -void arm_correlate_f32( - float32_t * pSrcA, - uint32_t srcALen, - float32_t * pSrcB, - uint32_t srcBLen, - float32_t * pDst) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t *pIn1; /* inputA pointer */ - float32_t *pIn2; /* inputB pointer */ - float32_t *pOut = pDst; /* output pointer */ - float32_t *px; /* Intermediate inputA pointer */ - float32_t *py; /* Intermediate inputB pointer */ - float32_t *pSrc1; /* Intermediate pointers */ - float32_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - float32_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0u, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counters */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding has to be done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - //while(j > 0u) - //{ - // /* Zero is stored in the destination buffer */ - // *pOut++ = 0.0f; - - // /* Decrement the loop counter */ - // j--; - //} - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen-2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1u); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 4] */ - sum += *px++ * *py++; - /* x[1] * y[srcBLen - 3] */ - sum += *px++ * *py++; - /* x[2] * y[srcBLen - 2] */ - sum += *px++ * *py++; - /* x[3] * y[srcBLen - 1] */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - /* x[0] * y[srcBLen - 1] */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4, to loop unroll the srcBLen loop */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[0] sample */ - c0 = *(py++); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[0] */ - acc0 += x0 * c0; - /* acc1 += x[1] * y[0] */ - acc1 += x1 * c0; - /* acc2 += x[2] * y[0] */ - acc2 += x2 * c0; - /* acc3 += x[3] * y[0] */ - acc3 += x3 * c0; - - /* Read y[1] sample */ - c0 = *(py++); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[1] */ - acc0 += x1 * c0; - /* acc1 += x[2] * y[1] */ - acc1 += x2 * c0; - /* acc2 += x[3] * y[1] */ - acc2 += x3 * c0; - /* acc3 += x[4] * y[1] */ - acc3 += x0 * c0; - - /* Read y[2] sample */ - c0 = *(py++); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[2] */ - acc0 += x2 * c0; - /* acc1 += x[3] * y[2] */ - acc1 += x3 * c0; - /* acc2 += x[4] * y[2] */ - acc2 += x0 * c0; - /* acc3 += x[5] * y[2] */ - acc3 += x1 * c0; - - /* Read y[3] sample */ - c0 = *(py++); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[3] */ - acc0 += x3 * c0; - /* acc1 += x[4] * y[3] */ - acc1 += x0 * c0; - /* acc2 += x[5] * y[3] */ - acc2 += x1 * c0; - /* acc3 += x[6] * y[3] */ - acc3 += x2 * c0; - - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[4] sample */ - c0 = *(py++); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[4] */ - acc0 += x0 * c0; - /* acc1 += x[5] * y[4] */ - acc1 += x1 * c0; - /* acc2 += x[6] * y[4] */ - acc2 += x2 * c0; - /* acc3 += x[7] * y[4] */ - acc3 += x3 * c0; - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = acc0; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = acc1; - pOut += inc; - - *pOut = acc2; - pOut += inc; - - *pOut = acc3; - pOut += inc; - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py++; - sum += *px++ * *py++; - sum += *px++ * *py++; - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Loop over srcBLen */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = pIn1 + (srcALen - (srcBLen - 1u)); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] */ - sum += *px++ * *py++; - /* sum += x[srcALen - srcBLen + 3] * y[2] */ - sum += *px++ * *py++; - /* sum += x[srcALen - srcBLen + 2] * y[1] */ - sum += *px++ * *py++; - /* sum += x[srcALen - srcBLen + 1] * y[0] */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t *pIn1 = pSrcA; /* inputA pointer */ - float32_t *pIn2 = pSrcB + (srcBLen - 1u); /* inputB pointer */ - float32_t sum; /* Accumulator */ - uint32_t i = 0u, j; /* loop counters */ - uint32_t inv = 0u; /* Reverse order flag */ - uint32_t tot = 0u; /* Length */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and a varaible, inv is set to 1 */ - /* If lengths are not equal then zero pad has to be done to make the two - * inputs of same length. But to improve the performance, we include zeroes - * in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, (srcALen - srcBLen) zeroes has to included in the - * starting of the output buffer */ - /* If srcALen < srcBLen, (srcALen - srcBLen) zeroes has to included in the - * ending of the output buffer */ - /* Once the zero padding is done the remaining of the output is calcualted - * using convolution but with the shorter signal time shifted. */ - - /* Calculate the length of the remaining sequence */ - tot = ((srcALen + srcBLen) - 2u); - - if(srcALen > srcBLen) - { - /* Calculating the number of zeros to be padded to the output */ - j = srcALen - srcBLen; - - /* Initialise the pointer after zero padding */ - pDst += j; - } - - else if(srcALen < srcBLen) - { - /* Initialization to inputB pointer */ - pIn1 = pSrcB; - - /* Initialization to the end of inputA pointer */ - pIn2 = pSrcA + (srcALen - 1u); - - /* Initialisation of the pointer after zero padding */ - pDst = pDst + tot; - - /* Swapping the lengths */ - j = srcALen; - srcALen = srcBLen; - srcBLen = j; - - /* Setting the reverse flag */ - inv = 1; - - } - - /* Loop to calculate convolution for output length number of times */ - for (i = 0u; i <= tot; i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0.0f; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0u; j <= i; j++) - { - /* Check the array limitations */ - if((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += pIn1[j] * pIn2[-((int32_t) i - j)]; - } - } - /* Store the output in the destination buffer */ - if(inv == 1) - *pDst-- = sum; - else - *pDst++ = sum; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c deleted file mode 100644 index a99225a2f5..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c +++ /dev/null @@ -1,507 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_fast_opt_q15.c -* -* Description: Fast Q15 Correlation. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @return none. - * - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch buffers should be aligned by 32-bit - * - * - * Scaling and Overflow Behavior: - * - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down one of the inputs by 1/min(srcALen, srcBLen) to avoid overflow since a - * maximum of min(srcALen, srcBLen) number of additions is carried internally. - * The 2.30 accumulator is right shifted by 15 bits and then saturated to 1.15 format to yield the final result. - * - * \par - * See arm_correlate_q15() for a slower implementation of this function which uses a 64-bit accumulator to avoid wrap around distortion. - */ - -void arm_correlate_fast_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - q15_t * pScratch) -{ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *py; /* Intermediate inputB pointer */ - q31_t x1, x2, x3; /* temporary variables for holding input and coefficient values */ - uint32_t j, blkCnt, outBlockSize; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - uint32_t tapCnt; - q31_t y1, y2; - q15_t *pScr; /* Intermediate pointers */ - q15_t *pOut = pDst; /* output pointer */ -#ifdef UNALIGNED_SUPPORT_DISABLE - - q15_t a, b; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - pScr = pScratch; - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr += (srcBLen - 1u); - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr, srcALen); - - /* Update pointers */ - pScr += srcALen; - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - j = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(j > 0u) - { - /* copy second buffer in reversal manner */ - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - - /* Decrement the loop counter */ - j--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - j = srcALen % 0x4u; - - while(j > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr++ = *pIn1++; - - /* Decrement the loop counter */ - j--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr, (srcBLen - 1u)); - - /* Update pointer */ - pScr += (srcBLen - 1u); - -#else - -/* Apply loop unrolling and do 4 Copies simultaneously. */ - j = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(j > 0u) - { - /* copy second buffer in reversal manner */ - *pScr++ = 0; - *pScr++ = 0; - *pScr++ = 0; - *pScr++ = 0; - - /* Decrement the loop counter */ - j--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - j = (srcBLen - 1u) % 0x4u; - - while(j > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr++ = 0; - - /* Decrement the loop counter */ - j--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Temporary pointer for scratch2 */ - py = pIn2; - - - /* Actual correlation process starts here */ - blkCnt = (srcALen + srcBLen - 1u) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr = pScratch; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read four samples from scratch1 buffer */ - x1 = *__SIMD32(pScr)++; - - /* Read next four samples from scratch1 buffer */ - x2 = *__SIMD32(pScr)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2u); - - acc0 = __SMLAD(x1, y1, acc0); - - acc2 = __SMLAD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLADX(x3, y1, acc1); - - x1 = _SIMD32_OFFSET(pScr); - - acc0 = __SMLAD(x2, y2, acc0); - - acc2 = __SMLAD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - acc1 = __SMLADX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr + 2u); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); -#else - - /* Read four samples from smaller buffer */ - a = *pIn2; - b = *(pIn2 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - y1 = __PKHBT(a, b, 16); -#else - y1 = __PKHBT(b, a, 16); -#endif - - a = *(pIn2 + 2); - b = *(pIn2 + 3); -#ifndef ARM_MATH_BIG_ENDIAN - y2 = __PKHBT(a, b, 16); -#else - y2 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLAD(x1, y1, acc0); - - acc2 = __SMLAD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLADX(x3, y1, acc1); - - a = *pScr; - b = *(pScr + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(a, b, 16); -#else - x1 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLAD(x2, y2, acc0); - - acc2 = __SMLAD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - acc1 = __SMLADX(x3, y2, acc1); - - a = *(pScr + 2); - b = *(pScr + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - x2 = __PKHBT(a, b, 16); -#else - x2 = __PKHBT(b, a, 16); -#endif - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - pIn2 += 4u; - - pScr += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr -= 4u; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr++ * *pIn2); - acc1 += (*pScr++ * *pIn2); - acc2 += (*pScr++ * *pIn2); - acc3 += (*pScr++ * *pIn2++); - - pScr -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - *pOut = (__SSAT(acc0 >> 15u, 16)); - pOut += inc; - *pOut = (__SSAT(acc1 >> 15u, 16)); - pOut += inc; - *pOut = (__SSAT(acc2 >> 15u, 16)); - pOut += inc; - *pOut = (__SSAT(acc3 >> 15u, 16)); - pOut += inc; - - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch += 4u; - - } - - - blkCnt = (srcALen + srcBLen - 1u) & 0x3; - - /* Calculate correlation for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr = pScratch; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - acc0 += (*pScr++ * *pIn2++); - acc0 += (*pScr++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - - *pOut = (q15_t) (__SSAT((acc0 >> 15), 16)); - - pOut += inc; - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch += 1u; - - } -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q15.c deleted file mode 100644 index 0c79bc8968..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q15.c +++ /dev/null @@ -1,1314 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_fast_q15.c -* -* Description: Fast Q15 Correlation. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * Scaling and Overflow Behavior: - * - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down one of the inputs by 1/min(srcALen, srcBLen) to avoid overflow since a - * maximum of min(srcALen, srcBLen) number of additions is carried internally. - * The 2.30 accumulator is right shifted by 15 bits and then saturated to 1.15 format to yield the final result. - * - * \par - * See arm_correlate_q15() for a slower implementation of this function which uses a 64-bit accumulator to avoid wrap around distortion. - */ - -void arm_correlate_fast_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst) -{ -#ifndef UNALIGNED_SUPPORT_DISABLE - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0u, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1u); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 4] , x[1] * y[srcBLen - 3] */ - sum = __SMLAD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - /* x[3] * y[srcBLen - 1] , x[2] * y[srcBLen - 2] */ - sum = __SMLAD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum = __SMLAD(*px++, *py++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4, to loop unroll the srcBLen loop */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px + 1); - px += 2u; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the first two inputB samples using SIMD: - * y[0] and y[1] */ - c0 = *__SIMD32(py)++; - - /* acc0 += x[0] * y[0] + x[1] * y[1] */ - acc0 = __SMLAD(x0, c0, acc0); - - /* acc1 += x[1] * y[0] + x[2] * y[1] */ - acc1 = __SMLAD(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px + 1); - - /* acc2 += x[2] * y[0] + x[3] * y[1] */ - acc2 = __SMLAD(x2, c0, acc2); - - /* acc3 += x[3] * y[0] + x[4] * y[1] */ - acc3 = __SMLAD(x3, c0, acc3); - - /* Read y[2] and y[3] */ - c0 = *__SIMD32(py)++; - - /* acc0 += x[2] * y[2] + x[3] * y[3] */ - acc0 = __SMLAD(x2, c0, acc0); - - /* acc1 += x[3] * y[2] + x[4] * y[3] */ - acc1 = __SMLAD(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px + 2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px + 3); - px += 4u; - - /* acc2 += x[4] * y[2] + x[5] * y[3] */ - acc2 = __SMLAD(x0, c0, acc2); - - /* acc3 += x[5] * y[2] + x[6] * y[3] */ - acc3 = __SMLAD(x1, c0, acc3); - - } while(--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[4] */ - c0 = *py; -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[4], y[5] */ - c0 = *__SIMD32(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px + 1); - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLAD(x3, c0, acc2); - acc3 = __SMLAD(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[4], y[5] */ - c0 = *__SIMD32(py)++; - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px + 1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLAD(x3, c0, acc2); - acc3 = __SMLAD(x2, c0, acc3); - - c0 = (*py); - /* Read y[6] */ -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px + 2); - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (acc0 >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q15_t) (acc1 >> 15); - pOut += inc; - - *pOut = (q15_t) (acc2 >> 15); - pOut += inc; - - *pOut = (q15_t) (acc3 >> 15); - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] , sum += x[srcALen - srcBLen + 3] * y[2] */ - sum = __SMLAD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - /* sum += x[srcALen - srcBLen + 2] * y[1] , sum += x[srcALen - srcBLen + 1] * y[0] */ - sum = __SMLAD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0u, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - q15_t a, b; - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1u); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 4] , x[1] * y[srcBLen - 3] */ - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4, to loop unroll the srcBLen loop */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *(px + 2); - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *(px + 2); - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 2u; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the first two inputB samples using SIMD: - * y[0] and y[1] */ - a = *py; - b = *(py + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[0] * y[0] + x[1] * y[1] */ - acc0 = __SMLAD(x0, c0, acc0); - - /* acc1 += x[1] * y[0] + x[2] * y[1] */ - acc1 = __SMLAD(x1, c0, acc1); - - /* Read x[2], x[3], x[4] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x2 = __PKHBT(a, b, 16); - a = *(px + 2); - x3 = __PKHBT(b, a, 16); - -#else - - x2 = __PKHBT(b, a, 16); - a = *(px + 2); - x3 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc2 += x[2] * y[0] + x[3] * y[1] */ - acc2 = __SMLAD(x2, c0, acc2); - - /* acc3 += x[3] * y[0] + x[4] * y[1] */ - acc3 = __SMLAD(x3, c0, acc3); - - /* Read y[2] and y[3] */ - a = *(py + 2); - b = *(py + 3); - - py += 4u; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[2] * y[2] + x[3] * y[3] */ - acc0 = __SMLAD(x2, c0, acc0); - - /* acc1 += x[3] * y[2] + x[4] * y[3] */ - acc1 = __SMLAD(x3, c0, acc1); - - /* Read x[4], x[5], x[6] */ - a = *(px + 2); - b = *(px + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *(px + 4); - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *(px + 4); - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 4u; - - /* acc2 += x[4] * y[2] + x[5] * y[3] */ - acc2 = __SMLAD(x0, c0, acc2); - - /* acc3 += x[5] * y[2] + x[6] * y[3] */ - acc3 = __SMLAD(x1, c0, acc3); - - } while(--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[4] */ - c0 = *py; -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - a = *px; - b = *(px + 1); - - px++;; - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[4], y[5] */ - a = *py; - b = *(py + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLAD(x3, c0, acc2); - acc3 = __SMLAD(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[4], y[5] */ - a = *py; - b = *(py + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - py += 2u; - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLAD(x3, c0, acc2); - acc3 = __SMLAD(x2, c0, acc3); - - c0 = (*py); - /* Read y[6] */ -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - b = *(px + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (acc0 >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q15_t) (acc1 >> 15); - pOut += inc; - - *pOut = (q15_t) (acc2 >> 15); - pOut += inc; - - *pOut = (q15_t) (acc3 >> 15); - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q31.c deleted file mode 100644 index 628fd3ea55..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q31.c +++ /dev/null @@ -1,607 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_fast_q31.c -* -* Description: Fast Q31 Correlation. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are accumulated in a 32-bit register in 2.30 format. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * - * \par - * The fast version has the same overflow behavior as the standard version but provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signals must be scaled down. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down one of the inputs by 1/min(srcALen, srcBLen)to avoid overflows since a - * maximum of min(srcALen, srcBLen) number of additions is carried internally. - * - * \par - * See arm_correlate_q31() for a slower implementation of this function which uses 64-bit accumulation to provide higher precision. - */ - -void arm_correlate_fast_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst) -{ - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q31_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0u, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1u); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* x[1] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* x[2] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* x[3] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum << 1; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[0] sample */ - c0 = *(py++); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[0] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc1 += x[1] * y[0] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc2 += x[2] * y[0] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc3 += x[3] * y[0] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Read y[1] sample */ - c0 = *(py++); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[1] * y[1] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc1 += x[2] * y[1] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc2 += x[3] * y[1] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc3 += x[4] * y[1] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read y[2] sample */ - c0 = *(py++); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[2] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc1 += x[3] * y[2] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc2 += x[4] * y[2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc3 += x[5] * y[2] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read y[3] sample */ - c0 = *(py++); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[3] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc1 += x[4] * y[3] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc2 += x[5] * y[3] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc3 += x[6] * y[3] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x2 * c0)) >> 32); - - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[4] sample */ - c0 = *(py++); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[4] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc1 += x[5] * y[4] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc2 += x[6] * y[4] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc3 += x[7] * y[4] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (acc0 << 1); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q31_t) (acc1 << 1); - pOut += inc; - - *pOut = (q31_t) (acc2 << 1); - pOut += inc; - - *pOut = (q31_t) (acc3 << 1); - pOut += inc; - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum << 1; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum << 1; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = ((pIn1 + srcALen) - srcBLen) + 1u; - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* sum += x[srcALen - srcBLen + 3] * y[2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* sum += x[srcALen - srcBLen + 2] * y[1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* sum += x[srcALen - srcBLen + 1] * y[0] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum << 1; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q15.c deleted file mode 100644 index cc33b54f5a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q15.c +++ /dev/null @@ -1,512 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_opt_q15.c -* -* Description: Correlation of Q15 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @return none. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch buffers should be aligned by 32-bit - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both inputs are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * This approach provides 33 guard bits and there is no risk of overflow. - * The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format. - * - * \par - * Refer to arm_correlate_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * - */ - - -void arm_correlate_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - q15_t * pScratch) -{ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q63_t acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *py; /* Intermediate inputB pointer */ - q31_t x1, x2, x3; /* temporary variables for holding input1 and input2 values */ - uint32_t j, blkCnt, outBlockSize; /* loop counter */ - int32_t inc = 1; /* output pointer increment */ - uint32_t tapCnt; - q31_t y1, y2; - q15_t *pScr; /* Intermediate pointers */ - q15_t *pOut = pDst; /* output pointer */ -#ifdef UNALIGNED_SUPPORT_DISABLE - - q15_t a, b; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - pScr = pScratch; - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr += (srcBLen - 1u); - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr, srcALen); - - /* Update pointers */ - //pIn1 += srcALen; - pScr += srcALen; - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - j = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(j > 0u) - { - /* copy second buffer in reversal manner */ - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - - /* Decrement the loop counter */ - j--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - j = srcALen % 0x4u; - - while(j > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr++ = *pIn1++; - - /* Decrement the loop counter */ - j--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr, (srcBLen - 1u)); - - /* Update pointer */ - pScr += (srcBLen - 1u); - -#else - -/* Apply loop unrolling and do 4 Copies simultaneously. */ - j = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(j > 0u) - { - /* copy second buffer in reversal manner */ - *pScr++ = 0; - *pScr++ = 0; - *pScr++ = 0; - *pScr++ = 0; - - /* Decrement the loop counter */ - j--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - j = (srcBLen - 1u) % 0x4u; - - while(j > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr++ = 0; - - /* Decrement the loop counter */ - j--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Temporary pointer for scratch2 */ - py = pIn2; - - - /* Actual correlation process starts here */ - blkCnt = (srcALen + srcBLen - 1u) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr = pScratch; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read four samples from scratch1 buffer */ - x1 = *__SIMD32(pScr)++; - - /* Read next four samples from scratch1 buffer */ - x2 = *__SIMD32(pScr)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2u); - - acc0 = __SMLALD(x1, y1, acc0); - - acc2 = __SMLALD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLALDX(x3, y1, acc1); - - x1 = _SIMD32_OFFSET(pScr); - - acc0 = __SMLALD(x2, y2, acc0); - - acc2 = __SMLALD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - - acc1 = __SMLALDX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr + 2u); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - -#else - - /* Read four samples from smaller buffer */ - a = *pIn2; - b = *(pIn2 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - y1 = __PKHBT(a, b, 16); -#else - y1 = __PKHBT(b, a, 16); -#endif - - a = *(pIn2 + 2); - b = *(pIn2 + 3); -#ifndef ARM_MATH_BIG_ENDIAN - y2 = __PKHBT(a, b, 16); -#else - y2 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLALD(x1, y1, acc0); - - acc2 = __SMLALD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLALDX(x3, y1, acc1); - - a = *pScr; - b = *(pScr + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(a, b, 16); -#else - x1 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLALD(x2, y2, acc0); - - acc2 = __SMLALD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - - acc1 = __SMLALDX(x3, y2, acc1); - - a = *(pScr + 2); - b = *(pScr + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - x2 = __PKHBT(a, b, 16); -#else - x2 = __PKHBT(b, a, 16); -#endif - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - pIn2 += 4u; - - pScr += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr -= 4u; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr++ * *pIn2); - acc1 += (*pScr++ * *pIn2); - acc2 += (*pScr++ * *pIn2); - acc3 += (*pScr++ * *pIn2++); - - pScr -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - *pOut = (__SSAT(acc0 >> 15u, 16)); - pOut += inc; - *pOut = (__SSAT(acc1 >> 15u, 16)); - pOut += inc; - *pOut = (__SSAT(acc2 >> 15u, 16)); - pOut += inc; - *pOut = (__SSAT(acc3 >> 15u, 16)); - pOut += inc; - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch += 4u; - - } - - - blkCnt = (srcALen + srcBLen - 1u) & 0x3; - - /* Calculate correlation for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr = pScratch; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - - acc0 += (*pScr++ * *pIn2++); - acc0 += (*pScr++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT((acc0 >> 15), 16)); - - pOut += inc; - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch += 1u; - - } - - -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q7.c deleted file mode 100644 index 6749b01b38..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q7.c +++ /dev/null @@ -1,463 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_opt_q7.c -* -* Description: Correlation of Q7 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return none. - * - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both the inputs are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * This approach provides 17 guard bits and there is no risk of overflow as long as max(srcALen, srcBLen)<131072. - * The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and saturated to 1.7 format. - * - * - */ - - - -void arm_correlate_opt_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - q15_t * pScratch1, - q15_t * pScratch2) -{ - q7_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch */ - q7_t *pIn1; /* inputA pointer */ - q7_t *pIn2; /* inputB pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - uint32_t j, k = 0u, blkCnt; /* loop counter */ - int32_t inc = 1; /* output pointer increment */ - uint32_t outBlockSize; /* loop counter */ - q15_t x4; /* Temporary input variable */ - uint32_t tapCnt; /* loop counter */ - q31_t x1, x2, x3, y1; /* Temporary input variables */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - - /* Copy (srcBLen) samples in scratch buffer */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Fill (srcBLen - 1u) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1u); - - /* Copy (srcALen) samples in scratch buffer */ - k = srcALen >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1u) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1u)); - - /* Update pointer */ - pScr1 += (srcBLen - 1u); - -#else - -/* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1u) >> 2u; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1u) % 0x4u; - - while(k > 0u) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Temporary pointer for second sequence */ - py = pScratch2; - - /* Initialization of pScr2 pointer */ - pScr2 = pScratch2; - - /* Actual correlation process starts here */ - blkCnt = (srcALen + srcBLen - 1u) >> 2; - - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2u; - - while(tapCnt > 0u) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2 + 2u); - - acc0 = __SMLAD(x2, y1, acc0); - - acc2 = __SMLAD(x1, y1, acc2); - - acc1 = __SMLADX(x3, y1, acc1); - - x2 = *__SIMD32(pScr1)++; - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - pScr2 += 4u; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4u; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3u; - - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2); - acc1 += (*pScr1++ * *pScr2); - acc2 += (*pScr1++ * *pScr2); - acc3 += (*pScr1++ * *pScr2++); - - pScr1 -= 3u; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(acc0 >> 7u, 8)); - pOut += inc; - *pOut = (q7_t) (__SSAT(acc1 >> 7u, 8)); - pOut += inc; - *pOut = (q7_t) (__SSAT(acc2 >> 7u, 8)); - pOut += inc; - *pOut = (q7_t) (__SSAT(acc3 >> 7u, 8)); - pOut += inc; - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 4u; - - } - - - blkCnt = (srcALen + srcBLen - 1u) & 0x3; - - /* Calculate correlation for remaining samples of Bigger length sequence */ - while(blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1u; - - while(tapCnt > 0u) - { - acc0 += (*pScr1++ * *pScr2++); - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1u; - - /* apply same above for remaining samples of smaller length sequence */ - while(tapCnt > 0u) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(acc0 >> 7u, 8)); - - pOut += inc; - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 1u; - - } - -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q15.c deleted file mode 100644 index fc4134b7b8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q15.c +++ /dev/null @@ -1,718 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_q15.c -* -* Description: Correlation of Q15 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both inputs are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * This approach provides 33 guard bits and there is no risk of overflow. - * The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format. - * - * \par - * Refer to arm_correlate_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * \par - * Refer the function arm_correlate_opt_q15() for a faster implementation of this function using scratch buffers. - * - */ - -void arm_correlate_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst) -{ - -#if (defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q63_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0u, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1u); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 4] , x[1] * y[srcBLen - 3] */ - sum = __SMLALD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - /* x[3] * y[srcBLen - 1] , x[2] * y[srcBLen - 2] */ - sum = __SMLALD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum = __SMLALD(*px++, *py++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT((sum >> 15), 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4, to loop unroll the srcBLen loop */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px + 1); - px += 2u; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the first two inputB samples using SIMD: - * y[0] and y[1] */ - c0 = *__SIMD32(py)++; - - /* acc0 += x[0] * y[0] + x[1] * y[1] */ - acc0 = __SMLALD(x0, c0, acc0); - - /* acc1 += x[1] * y[0] + x[2] * y[1] */ - acc1 = __SMLALD(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px + 1); - - /* acc2 += x[2] * y[0] + x[3] * y[1] */ - acc2 = __SMLALD(x2, c0, acc2); - - /* acc3 += x[3] * y[0] + x[4] * y[1] */ - acc3 = __SMLALD(x3, c0, acc3); - - /* Read y[2] and y[3] */ - c0 = *__SIMD32(py)++; - - /* acc0 += x[2] * y[2] + x[3] * y[3] */ - acc0 = __SMLALD(x2, c0, acc0); - - /* acc1 += x[3] * y[2] + x[4] * y[3] */ - acc1 = __SMLALD(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px + 2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px + 3); - - px += 4u; - - /* acc2 += x[4] * y[2] + x[5] * y[3] */ - acc2 = __SMLALD(x0, c0, acc2); - - /* acc3 += x[5] * y[2] + x[6] * y[3] */ - acc3 = __SMLALD(x1, c0, acc3); - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - if(k == 1u) - { - /* Read y[4] */ - c0 = *py; -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALDX(x1, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - if(k == 2u) - { - /* Read y[4], y[5] */ - c0 = *__SIMD32(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px + 1); - px += 2u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALD(x3, c0, acc2); - acc3 = __SMLALD(x2, c0, acc3); - } - - if(k == 3u) - { - /* Read y[4], y[5] */ - c0 = *__SIMD32(py)++; - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px + 1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALD(x3, c0, acc2); - acc3 = __SMLALD(x2, c0, acc3); - - c0 = (*py); - - /* Read y[6] */ -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16u; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px + 2); - px += 3u; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x1, c0, acc0); - acc1 = __SMLALD(x2, c0, acc1); - acc2 = __SMLALDX(x2, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT(acc0 >> 15, 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q15_t) (__SSAT(acc1 >> 15, 16)); - pOut += inc; - - *pOut = (q15_t) (__SSAT(acc2 >> 15, 16)); - pOut += inc; - - *pOut = (q15_t) (__SSAT(acc3 >> 15, 16)); - pOut += inc; - - /* Increment the count by 4 as 4 output values are computed */ - count += 4u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q63_t) * px++ * *py++); - sum += ((q63_t) * px++ * *py++); - sum += ((q63_t) * px++ * *py++); - sum += ((q63_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q63_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT(sum >> 15, 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment count by 1, as one output value is computed */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q63_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT(sum >> 15, 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1u); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] , sum += x[srcALen - srcBLen + 3] * y[2] */ - sum = __SMLALD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - /* sum += x[srcALen - srcBLen + 2] * y[1] , sum += x[srcALen - srcBLen + 1] * y[0] */ - sum = __SMLALD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT((sum >> 15), 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - q15_t *pIn1 = pSrcA; /* inputA pointer */ - q15_t *pIn2 = pSrcB + (srcBLen - 1u); /* inputB pointer */ - q63_t sum; /* Accumulators */ - uint32_t i = 0u, j; /* loop counters */ - uint32_t inv = 0u; /* Reverse order flag */ - uint32_t tot = 0u; /* Length */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and a varaible, inv is set to 1 */ - /* If lengths are not equal then zero pad has to be done to make the two - * inputs of same length. But to improve the performance, we include zeroes - * in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, (srcALen - srcBLen) zeroes has to included in the - * starting of the output buffer */ - /* If srcALen < srcBLen, (srcALen - srcBLen) zeroes has to included in the - * ending of the output buffer */ - /* Once the zero padding is done the remaining of the output is calcualted - * using convolution but with the shorter signal time shifted. */ - - /* Calculate the length of the remaining sequence */ - tot = ((srcALen + srcBLen) - 2u); - - if(srcALen > srcBLen) - { - /* Calculating the number of zeros to be padded to the output */ - j = srcALen - srcBLen; - - /* Initialise the pointer after zero padding */ - pDst += j; - } - - else if(srcALen < srcBLen) - { - /* Initialization to inputB pointer */ - pIn1 = pSrcB; - - /* Initialization to the end of inputA pointer */ - pIn2 = pSrcA + (srcALen - 1u); - - /* Initialisation of the pointer after zero padding */ - pDst = pDst + tot; - - /* Swapping the lengths */ - j = srcALen; - srcALen = srcBLen; - srcBLen = j; - - /* Setting the reverse flag */ - inv = 1; - - } - - /* Loop to calculate convolution for output length number of times */ - for (i = 0u; i <= tot; i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0u; j <= i; j++) - { - /* Check the array limitations */ - if((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q31_t) pIn1[j] * pIn2[-((int32_t) i - j)]); - } - } - /* Store the output in the destination buffer */ - if(inv == 1) - *pDst-- = (q15_t) __SSAT((sum >> 15u), 16u); - else - *pDst++ = (q15_t) __SSAT((sum >> 15u), 16u); - } - -#endif /*#if (defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) */ - -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q31.c deleted file mode 100644 index c81f8600dc..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q31.c +++ /dev/null @@ -1,664 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_q31.c -* -* Description: Correlation of Q31 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q31 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down one of the inputs by 1/min(srcALen, srcBLen)to avoid overflows since a - * maximum of min(srcALen, srcBLen) number of additions is carried internally. - * The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * \par - * See arm_correlate_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -void arm_correlate_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst) -{ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1; /* Intermediate pointers */ - q63_t sum, acc0, acc1, acc2; /* Accumulators */ - q31_t x0, x1, x2, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0u, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1u); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] * y[srcBLen - 4] */ - sum += (q63_t) * px++ * (*py++); - /* x[1] * y[srcBLen - 3] */ - sum += (q63_t) * px++ * (*py++); - /* x[2] * y[srcBLen - 2] */ - sum += (q63_t) * px++ * (*py++); - /* x[3] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (sum >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll by 3 */ - blkCnt = blockSize2 / 3; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - - /* read x[0], x[1] samples */ - x0 = *(px++); - x1 = *(px++); - - /* Apply loop unrolling and compute 3 MACs simultaneously. */ - k = srcBLen / 3; - - /* First part of the processing with loop unrolling. Compute 3 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 2 samples. */ - do - { - /* Read y[0] sample */ - c0 = *(py); - - /* Read x[2] sample */ - x2 = *(px); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[0] */ - acc0 += ((q63_t) x0 * c0); - /* acc1 += x[1] * y[0] */ - acc1 += ((q63_t) x1 * c0); - /* acc2 += x[2] * y[0] */ - acc2 += ((q63_t) x2 * c0); - - /* Read y[1] sample */ - c0 = *(py + 1u); - - /* Read x[3] sample */ - x0 = *(px + 1u); - - /* Perform the multiply-accumulates */ - /* acc0 += x[1] * y[1] */ - acc0 += ((q63_t) x1 * c0); - /* acc1 += x[2] * y[1] */ - acc1 += ((q63_t) x2 * c0); - /* acc2 += x[3] * y[1] */ - acc2 += ((q63_t) x0 * c0); - - /* Read y[2] sample */ - c0 = *(py + 2u); - - /* Read x[4] sample */ - x1 = *(px + 2u); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[2] */ - acc0 += ((q63_t) x2 * c0); - /* acc1 += x[3] * y[2] */ - acc1 += ((q63_t) x0 * c0); - /* acc2 += x[4] * y[2] */ - acc2 += ((q63_t) x1 * c0); - - /* update scratch pointers */ - px += 3u; - py += 3u; - - } while(--k); - - /* If the srcBLen is not a multiple of 3, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen - (3 * (srcBLen / 3)); - - while(k > 0u) - { - /* Read y[4] sample */ - c0 = *(py++); - - /* Read x[7] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[4] */ - acc0 += ((q63_t) x0 * c0); - /* acc1 += x[5] * y[4] */ - acc1 += ((q63_t) x1 * c0); - /* acc2 += x[6] * y[4] */ - acc2 += ((q63_t) x2 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (acc0 >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q31_t) (acc1 >> 31); - pOut += inc; - - *pOut = (q31_t) (acc2 >> 31); - pOut += inc; - - /* Increment the pointer pIn1 index, count by 3 */ - count += 3u; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 3, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 - 3 * (blockSize2 / 3); - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) * px++ * (*py++); - sum += (q63_t) * px++ * (*py++); - sum += (q63_t) * px++ * (*py++); - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (sum >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (sum >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = pIn1 + (srcALen - (srcBLen - 1u)); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] */ - sum += (q63_t) * px++ * (*py++); - /* sum += x[srcALen - srcBLen + 3] * y[2] */ - sum += (q63_t) * px++ * (*py++); - /* sum += x[srcALen - srcBLen + 2] * y[1] */ - sum += (q63_t) * px++ * (*py++); - /* sum += x[srcALen - srcBLen + 1] * y[0] */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (sum >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t *pIn1 = pSrcA; /* inputA pointer */ - q31_t *pIn2 = pSrcB + (srcBLen - 1u); /* inputB pointer */ - q63_t sum; /* Accumulators */ - uint32_t i = 0u, j; /* loop counters */ - uint32_t inv = 0u; /* Reverse order flag */ - uint32_t tot = 0u; /* Length */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and a varaible, inv is set to 1 */ - /* If lengths are not equal then zero pad has to be done to make the two - * inputs of same length. But to improve the performance, we include zeroes - * in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, (srcALen - srcBLen) zeroes has to included in the - * starting of the output buffer */ - /* If srcALen < srcBLen, (srcALen - srcBLen) zeroes has to included in the - * ending of the output buffer */ - /* Once the zero padding is done the remaining of the output is calcualted - * using correlation but with the shorter signal time shifted. */ - - /* Calculate the length of the remaining sequence */ - tot = ((srcALen + srcBLen) - 2u); - - if(srcALen > srcBLen) - { - /* Calculating the number of zeros to be padded to the output */ - j = srcALen - srcBLen; - - /* Initialise the pointer after zero padding */ - pDst += j; - } - - else if(srcALen < srcBLen) - { - /* Initialization to inputB pointer */ - pIn1 = pSrcB; - - /* Initialization to the end of inputA pointer */ - pIn2 = pSrcA + (srcALen - 1u); - - /* Initialisation of the pointer after zero padding */ - pDst = pDst + tot; - - /* Swapping the lengths */ - j = srcALen; - srcALen = srcBLen; - srcBLen = j; - - /* Setting the reverse flag */ - inv = 1; - - } - - /* Loop to calculate correlation for output length number of times */ - for (i = 0u; i <= tot; i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to correlation equation */ - for (j = 0u; j <= i; j++) - { - /* Check the array limitations */ - if((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q63_t) pIn1[j] * pIn2[-((int32_t) i - j)]); - } - } - /* Store the output in the destination buffer */ - if(inv == 1) - *pDst-- = (q31_t) (sum >> 31u); - else - *pDst++ = (q31_t) (sum >> 31u); - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q7.c deleted file mode 100644 index e03e4997b6..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_correlate_q7.c +++ /dev/null @@ -1,789 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_correlate_q7.c -* -* Description: Correlation of Q7 sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.11 2011/10/18 -* Bug Fix in conv, correlation, partial convolution. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both the inputs are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * This approach provides 17 guard bits and there is no risk of overflow as long as max(srcALen, srcBLen)<131072. - * The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and saturated to 1.7 format. - * - * \par - * Refer the function arm_correlate_opt_q7() for a faster implementation of this function. - * - */ - -void arm_correlate_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t *pIn1; /* inputA pointer */ - q7_t *pIn2; /* inputB pointer */ - q7_t *pOut = pDst; /* output pointer */ - q7_t *px; /* Intermediate inputA pointer */ - q7_t *py; /* Intermediate inputB pointer */ - q7_t *pSrc1; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q31_t input1, input2; /* temporary variables */ - q15_t in1, in2; /* temporary variables */ - q7_t x0, x1, x2, x3, c0, c1; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0u, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if(srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2u * srcALen) - 1u; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1u)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2u); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1u; - blockSize2 = srcALen - (srcBLen - 1u); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1u; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1u); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while(blockSize1 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[0] , x[1] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 4] , y[srcBLen - 3] */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* x[0] * y[srcBLen - 4] */ - /* x[1] * y[srcBLen - 3] */ - sum = __SMLAD(input1, input2, sum); - - /* x[2] , x[3] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 2] , y[srcBLen - 1] */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* x[2] * y[srcBLen - 2] */ - /* x[3] * y[srcBLen - 1] */ - sum = __SMLAD(input1, input2, sum); - - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum += (q31_t) ((q15_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(sum >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0u; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if(srcBLen >= 4u) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2u; - - while(blkCnt > 0u) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *px++; - x1 = *px++; - x2 = *px++; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[0] sample */ - c0 = *py++; - /* Read y[1] sample */ - c1 = *py++; - - /* Read x[3] sample */ - x3 = *px++; - - /* x[0] and x[1] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[0] and y[1] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc0 += x[0] * y[0] + x[1] * y[1] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[1] and x[2] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc1 += x[1] * y[0] + x[2] * y[1] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc2 += x[2] * y[0] + x[3] * y[1] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[4] sample */ - x0 = *(px++); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc3 += x[3] * y[0] + x[4] * y[1] */ - acc3 = __SMLAD(input1, input2, acc3); - - /* Read y[2] sample */ - c0 = *py++; - /* Read y[3] sample */ - c1 = *py++; - - /* Read x[5] sample */ - x1 = *px++; - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[2] and y[3] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc0 += x[2] * y[2] + x[3] * y[3] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc1 += x[3] * y[2] + x[4] * y[3] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[4] and x[5] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc2 += x[4] * y[2] + x[5] * y[3] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[6] sample */ - x2 = *px++; - - /* x[5] and x[6] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc3 += x[5] * y[2] + x[6] * y[3] */ - acc3 = __SMLAD(input1, input2, acc3); - - } while(--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Read y[4] sample */ - c0 = *py++; - - /* Read x[7] sample */ - x3 = *px++; - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[4] */ - acc0 += ((q15_t) x0 * c0); - /* acc1 += x[5] * y[4] */ - acc1 += ((q15_t) x1 * c0); - /* acc2 += x[6] * y[4] */ - acc2 += ((q15_t) x2 * c0); - /* acc3 += x[7] * y[4] */ - acc3 += ((q15_t) x3 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(acc0 >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q7_t) (__SSAT(acc1 >> 7, 8)); - pOut += inc; - - *pOut = (q7_t) (__SSAT(acc2 >> 7, 8)); - pOut += inc; - - *pOut = (q7_t) (__SSAT(acc3 >> 7, 8)); - pOut += inc; - - count += 4u; - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4u; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(sum >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while(blkCnt > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while(k > 0u) - { - /* Perform the multiply-accumulate */ - sum += ((q15_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(sum >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1u; - - /* Working pointer of inputA */ - pSrc1 = pIn1 + (srcALen - (srcBLen - 1u)); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while(blockSize3 > 0u) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while(k > 0u) - { - /* x[srcALen - srcBLen + 1] , x[srcALen - srcBLen + 2] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[0] , y[1] */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* sum += x[srcALen - srcBLen + 1] * y[0] */ - /* sum += x[srcALen - srcBLen + 2] * y[1] */ - sum = __SMLAD(input1, input2, sum); - - /* x[srcALen - srcBLen + 3] , x[srcALen - srcBLen + 4] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[2] , y[3] */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* sum += x[srcALen - srcBLen + 3] * y[2] */ - /* sum += x[srcALen - srcBLen + 4] * y[3] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4u; - - while(k > 0u) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(sum >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - q7_t *pIn1 = pSrcA; /* inputA pointer */ - q7_t *pIn2 = pSrcB + (srcBLen - 1u); /* inputB pointer */ - q31_t sum; /* Accumulator */ - uint32_t i = 0u, j; /* loop counters */ - uint32_t inv = 0u; /* Reverse order flag */ - uint32_t tot = 0u; /* Length */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and a varaible, inv is set to 1 */ - /* If lengths are not equal then zero pad has to be done to make the two - * inputs of same length. But to improve the performance, we include zeroes - * in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, (srcALen - srcBLen) zeroes has to included in the - * starting of the output buffer */ - /* If srcALen < srcBLen, (srcALen - srcBLen) zeroes has to included in the - * ending of the output buffer */ - /* Once the zero padding is done the remaining of the output is calcualted - * using convolution but with the shorter signal time shifted. */ - - /* Calculate the length of the remaining sequence */ - tot = ((srcALen + srcBLen) - 2u); - - if(srcALen > srcBLen) - { - /* Calculating the number of zeros to be padded to the output */ - j = srcALen - srcBLen; - - /* Initialise the pointer after zero padding */ - pDst += j; - } - - else if(srcALen < srcBLen) - { - /* Initialization to inputB pointer */ - pIn1 = pSrcB; - - /* Initialization to the end of inputA pointer */ - pIn2 = pSrcA + (srcALen - 1u); - - /* Initialisation of the pointer after zero padding */ - pDst = pDst + tot; - - /* Swapping the lengths */ - j = srcALen; - srcALen = srcBLen; - srcBLen = j; - - /* Setting the reverse flag */ - inv = 1; - - } - - /* Loop to calculate convolution for output length number of times */ - for (i = 0u; i <= tot; i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0u; j <= i; j++) - { - /* Check the array limitations */ - if((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q15_t) pIn1[j] * pIn2[-((int32_t) i - j)]); - } - } - /* Store the output in the destination buffer */ - if(inv == 1) - *pDst-- = (q7_t) __SSAT((sum >> 7u), 8u); - else - *pDst++ = (q7_t) __SSAT((sum >> 7u), 8u); - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of Corr group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_f32.c deleted file mode 100644 index 1546f407dd..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_f32.c +++ /dev/null @@ -1,518 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_decimate_f32.c -* -* Description: FIR decimation for floating-point sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup FIR_decimate Finite Impulse Response (FIR) Decimator - * - * These functions combine an FIR filter together with a decimator. - * They are used in multirate systems for reducing the sample rate of a signal without introducing aliasing distortion. - * Conceptually, the functions are equivalent to the block diagram below: - * \image html FIRDecimator.gif "Components included in the FIR Decimator functions" - * When decimating by a factor of M, the signal should be prefiltered by a lowpass filter with a normalized - * cutoff frequency of 1/M in order to prevent aliasing distortion. - * The user of the function is responsible for providing the filter coefficients. - * - * The FIR decimator functions provided in the CMSIS DSP Library combine the FIR filter and the decimator in an efficient manner. - * Instead of calculating all of the FIR filter outputs and discarding M-1 out of every M, only the - * samples output by the decimator are computed. - * The functions operate on blocks of input and output data. - * pSrc points to an array of blockSize input values and - * pDst points to an array of blockSize/M output values. - * In order to have an integer number of output samples blockSize - * must always be a multiple of the decimation factor M. - * - * The library provides separate functions for Q15, Q31 and floating-point data types. - * - * \par Algorithm: - * The FIR portion of the algorithm uses the standard form filter: - *
    
- *    y[n] = b[0] * x[n] + b[1] * x[n-1] + b[2] * x[n-2] + ...+ b[numTaps-1] * x[n-numTaps+1]    
- * 
- * where, b[n] are the filter coefficients. - * \par - * The pCoeffs points to a coefficient array of size numTaps. - * Coefficients are stored in time reversed order. - * \par - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to a state array of size numTaps + blockSize - 1. - * Samples in the state buffer are stored in the order: - * \par - *
    
- *    {x[n-numTaps+1], x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2]....x[0], x[1], ..., x[blockSize-1]}    
- * 
- * The state variables are updated after each block of data is processed, the coefficients are untouched. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable array should be allocated separately. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - Checks to make sure that the size of the input is a multiple of the decimation factor. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * The code below statically initializes each of the 3 different data type filter instance structures - *
    
- *arm_fir_decimate_instance_f32 S = {M, numTaps, pCoeffs, pState};    
- *arm_fir_decimate_instance_q31 S = {M, numTaps, pCoeffs, pState};    
- *arm_fir_decimate_instance_q15 S = {M, numTaps, pCoeffs, pState};    
- * 
- * where M is the decimation factor; numTaps is the number of filter coefficients in the filter; - * pCoeffs is the address of the coefficient buffer; - * pState is the address of the state buffer. - * Be sure to set the values in the state buffer to zeros when doing static initialization. - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the FIR decimate filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - - /** - * @brief Processing function for the floating-point FIR decimator. - * @param[in] *S points to an instance of the floating-point FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of input samples to process per call. - * @return none. - */ - -void arm_fir_decimate_f32( - const arm_fir_decimate_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t sum0; /* Accumulator */ - float32_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - -#ifndef ARM_MATH_CM0 - - uint32_t blkCntN4; - float32_t *px0, *px1, *px2, *px3; - float32_t acc0, acc1, acc2, acc3; - float32_t x1, x2, x3; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 4; - blkCntN4 = outBlockSize - (4 * blkCnt); - - while(blkCnt > 0u) - { - /* Copy 4 * decimation factor number of new input samples into the state buffer */ - i = 4 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* Initialize state pointer for all the samples */ - px0 = pState; - px1 = pState + S->M; - px2 = pState + 2 * S->M; - px3 = pState + 3 * S->M; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - - while(tapCnt > 0u) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-1] sample for acc0 */ - x0 = *(px0++); - /* Read x[n-numTaps-1] sample for acc1 */ - x1 = *(px1++); - /* Read x[n-numTaps-1] sample for acc2 */ - x2 = *(px2++); - /* Read x[n-numTaps-1] sample for acc3 */ - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-2] sample for acc0, acc1, acc2, acc3 */ - x0 = *(px0++); - x1 = *(px1++); - x2 = *(px2++); - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample acc0, acc1, acc2, acc3 */ - x0 = *(px0++); - x1 = *(px1++); - x2 = *(px2++); - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample acc0, acc1, acc2, acc3 */ - x0 = *(px0++); - x1 = *(px1++); - x2 = *(px2++); - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch state variables for acc0, acc1, acc2, acc3 */ - x0 = *(px0++); - x1 = *(px1++); - x2 = *(px2++); - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + 4 * S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = acc0; - *pDst++ = acc1; - *pDst++ = acc2; - *pDst++ = acc3; - - /* Decrement the loop counter */ - blkCnt--; - } - - while(blkCntN4 > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - sum0 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-1] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-2] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = sum0; - - /* Decrement the loop counter */ - blkCntN4--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1u) >> 2; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1u) % 0x04u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize; - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - sum0 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = sum0; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Copy numTaps number of values */ - i = (numTaps - 1u); - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c deleted file mode 100644 index 96f50e6f2b..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c +++ /dev/null @@ -1,590 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_decimate_fast_q15.c -* -* Description: Fast Q15 FIR Decimator. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. - * @param[in] *S points to an instance of the Q15 FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of input samples to process per call. - * @return none - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, state buffers should be aligned by 32-bit - * - * Scaling and Overflow Behavior: - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits (log2 is read as log to the base 2). - * The 2.30 accumulator is then truncated to 2.15 format and saturated to yield the 1.15 result. - * - * \par - * Refer to the function arm_fir_decimate_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. - * Both the slow and the fast versions use the same instance structure. - * Use the function arm_fir_decimate_init_q15() to initialize the filter structure. - */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - -void arm_fir_decimate_fast_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q31_t x0, x1, c0, c1; /* Temporary variables to hold state and coefficient values */ - q31_t sum0; /* Accumulators */ - q31_t acc0, acc1; - q15_t *px0, *px1; - uint32_t blkCntN3; - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 2; - blkCntN3 = outBlockSize - (2 * blkCnt); - - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - - px1 = pState + S->M; - - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the Read b[numTaps-1] and b[numTaps-2] coefficients */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-1] and x[n-numTaps-2]sample */ - x0 = *__SIMD32(px0)++; - - x1 = *__SIMD32(px1)++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLAD(x0, c0, acc0); - - acc1 = __SMLAD(x1, c0, acc1); - - /* Read the b[numTaps-3] and b[numTaps-4] coefficient */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-2] and x[n-numTaps-3] sample */ - x0 = *__SIMD32(px0)++; - - x1 = *__SIMD32(px1)++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLAD(x0, c0, acc0); - - acc1 = __SMLAD(x1, c0, acc1); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px0++; - - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - *pDst++ = (q15_t) (__SSAT((acc1 >> 15), 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - - - - while(blkCntN3 > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the Read b[numTaps-1] and b[numTaps-2] coefficients */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-1] and x[n-numTaps-2]sample */ - x0 = *__SIMD32(px)++; - - /* Read the b[numTaps-3] and b[numTaps-4] coefficient */ - c1 = *__SIMD32(pb)++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLAD(x0, c0, sum0); - - /* Read x[n-numTaps-2] and x[n-numTaps-3] sample */ - x0 = *__SIMD32(px)++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLAD(x0, c1, sum0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLAD(x0, c0, sum0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCntN3--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1u) >> 2u; - - /* copy data */ - while(i > 0u) - { - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1u) % 0x04u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - -#else - - -void arm_fir_decimate_fast_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q15_t x0, x1, c0; /* Temporary variables to hold state and coefficient values */ - q31_t sum0; /* Accumulators */ - q31_t acc0, acc1; - q15_t *px0, *px1; - uint32_t blkCntN3; - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 2; - blkCntN3 = outBlockSize - (2 * blkCnt); - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - - px1 = pState + S->M; - - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the Read b[numTaps-1] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-1] for sample 0 and for sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-2] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-3] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-3] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-4] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - *pDst++ = (q15_t) (__SSAT((acc1 >> 15), 16)); - - - /* Decrement the loop counter */ - blkCnt--; - } - - while(blkCntN3 > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the Read b[numTaps-1] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-1] and sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-2] and sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-3] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-3] sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-4] sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCntN3--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1u) >> 2u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1u) % 0x04u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -/** - * @} end of FIR_decimate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c deleted file mode 100644 index a43fd0b4c9..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c +++ /dev/null @@ -1,343 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_decimate_fast_q31.c -* -* Description: Fast Q31 FIR Decimator. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. - * @param[in] *S points to an instance of the Q31 FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of input samples to process per call. - * @return none - * - * Scaling and Overflow Behavior: - * - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are added to a 2.30 accumulator. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * The fast version has the same overflow behavior as the standard version and provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits (where log2 is read as log to the base 2). - * - * \par - * Refer to the function arm_fir_decimate_q31() for a slower implementation of this function which uses a 64-bit accumulator to provide higher precision. - * Both the slow and the fast versions use the same instance structure. - * Use the function arm_fir_decimate_init_q31() to initialize the filter structure. - */ - -void arm_fir_decimate_fast_q31( - arm_fir_decimate_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - q31_t *px; /* Temporary pointers for state buffer */ - q31_t *pb; /* Temporary pointers for coefficient buffer */ - q31_t sum0; /* Accumulator */ - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, tapCnt, blkCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - uint32_t blkCntN2; - q31_t x1; - q31_t acc0, acc1; - q31_t *px0, *px1; - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - /* Total number of output samples to be computed */ - - blkCnt = outBlockSize / 2; - blkCntN2 = outBlockSize - (2 * blkCnt); - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - px1 = pState + S->M; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb); - - /* Read x[n-numTaps-1] for sample 0 sample 1 */ - x0 = *(px0); - x1 = *(px1); - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb + 1u); - - /* Read x[n-numTaps-2] for sample 0 sample 1 */ - x0 = *(px0 + 1u); - x1 = *(px1 + 1u); - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb + 2u); - - /* Read x[n-numTaps-3] for sample 0 sample 1 */ - x0 = *(px0 + 2u); - x1 = *(px1 + 2u); - pb += 4u; - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb - 1u); - - /* Read x[n-numTaps-4] for sample 0 sample 1 */ - x0 = *(px0 + 3u); - x1 = *(px1 + 3u); - - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* update state pointers */ - px0 += 4u; - px1 += 4u; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x0 = *(px0++); - x1 = *(px1++); - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (acc0 << 1); - *pDst++ = (q31_t) (acc1 << 1); - - /* Decrement the loop counter */ - blkCnt--; - } - - while(blkCntN2 > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-1] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-2] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum0 << 1); - - /* Decrement the loop counter */ - blkCntN2--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1u) >> 2u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1u) % 0x04u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - -/** - * @} end of FIR_decimate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_f32.c deleted file mode 100644 index b655a6be6d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_f32.c +++ /dev/null @@ -1,112 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_decimate_init_f32.c -* -* Description: Floating-point FIR Decimator initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Initialization function for the floating-point FIR decimator. - * @param[in,out] *S points to an instance of the floating-point FIR decimator structure. - * @param[in] numTaps number of coefficients in the filter. - * @param[in] M decimation factor. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * blockSize is not a multiple of M. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 words where blockSize is the number of input samples passed to arm_fir_decimate_f32(). - * M is the decimation factor. - */ - -arm_status arm_fir_decimate_init_f32( - arm_fir_decimate_instance_f32 * S, - uint16_t numTaps, - uint8_t M, - float32_t * pCoeffs, - float32_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The size of the input block must be a multiple of the decimation factor */ - if((blockSize % M) != 0u) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Decimation Factor */ - S->M = M; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q15.c deleted file mode 100644 index 1a1fee8a2e..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q15.c +++ /dev/null @@ -1,114 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_decimate_init_q15.c -* -* Description: Initialization function for the Q15 FIR Decimator. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Initialization function for the Q15 FIR decimator. - * @param[in,out] *S points to an instance of the Q15 FIR decimator structure. - * @param[in] numTaps number of coefficients in the filter. - * @param[in] M decimation factor. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * blockSize is not a multiple of M. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 words where blockSize is the number of input samples - * to the call arm_fir_decimate_q15(). - * M is the decimation factor. - */ - -arm_status arm_fir_decimate_init_q15( - arm_fir_decimate_instance_q15 * S, - uint16_t numTaps, - uint8_t M, - q15_t * pCoeffs, - q15_t * pState, - uint32_t blockSize) -{ - - arm_status status; - - /* The size of the input block must be a multiple of the decimation factor */ - if((blockSize % M) != 0u) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size of buffer is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Decimation factor */ - S->M = M; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q31.c deleted file mode 100644 index e2ac8165e6..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q31.c +++ /dev/null @@ -1,112 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_decimate_init_q31.c -* -* Description: Initialization function for Q31 FIR Decimation filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Initialization function for the Q31 FIR decimator. - * @param[in,out] *S points to an instance of the Q31 FIR decimator structure. - * @param[in] numTaps number of coefficients in the filter. - * @param[in] M decimation factor. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * blockSize is not a multiple of M. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 words where blockSize is the number of input samples passed to arm_fir_decimate_q31(). - * M is the decimation factor. - */ - -arm_status arm_fir_decimate_init_q31( - arm_fir_decimate_instance_q31 * S, - uint16_t numTaps, - uint8_t M, - q31_t * pCoeffs, - q31_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The size of the input block must be a multiple of the decimation factor */ - if((blockSize % M) != 0u) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1)) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Decimation factor */ - S->M = M; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q15.c deleted file mode 100644 index 28b5f13dd6..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q15.c +++ /dev/null @@ -1,691 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_decimate_q15.c -* -* Description: Q15 FIR Decimator. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Processing function for the Q15 FIR decimator. - * @param[in] *S points to an instance of the Q15 FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - * - * \par - * Refer to the function arm_fir_decimate_fast_q15() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -#ifndef ARM_MATH_CM0 - -#ifndef UNALIGNED_SUPPORT_DISABLE - -void arm_fir_decimate_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q31_t x0, x1, c0, c1; /* Temporary variables to hold state and coefficient values */ - q63_t sum0; /* Accumulators */ - q63_t acc0, acc1; - q15_t *px0, *px1; - uint32_t blkCntN3; - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 2; - blkCntN3 = outBlockSize - (2 * blkCnt); - - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - - px1 = pState + S->M; - - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the Read b[numTaps-1] and b[numTaps-2] coefficients */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-1] and x[n-numTaps-2]sample */ - x0 = *__SIMD32(px0)++; - - x1 = *__SIMD32(px1)++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLALD(x0, c0, acc0); - - acc1 = __SMLALD(x1, c0, acc1); - - /* Read the b[numTaps-3] and b[numTaps-4] coefficient */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-2] and x[n-numTaps-3] sample */ - x0 = *__SIMD32(px0)++; - - x1 = *__SIMD32(px1)++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLALD(x0, c0, acc0); - - acc1 = __SMLALD(x1, c0, acc1); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px0++; - - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - *pDst++ = (q15_t) (__SSAT((acc1 >> 15), 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - - - - while(blkCntN3 > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the Read b[numTaps-1] and b[numTaps-2] coefficients */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-1] and x[n-numTaps-2]sample */ - x0 = *__SIMD32(px)++; - - /* Read the b[numTaps-3] and b[numTaps-4] coefficient */ - c1 = *__SIMD32(pb)++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLALD(x0, c0, sum0); - - /* Read x[n-numTaps-2] and x[n-numTaps-3] sample */ - x0 = *__SIMD32(px)++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLALD(x0, c1, sum0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLALD(x0, c0, sum0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCntN3--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1u) >> 2u; - - /* copy data */ - while(i > 0u) - { - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1u) % 0x04u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - -#else - - -void arm_fir_decimate_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q15_t x0, x1, c0; /* Temporary variables to hold state and coefficient values */ - q63_t sum0; /* Accumulators */ - q63_t acc0, acc1; - q15_t *px0, *px1; - uint32_t blkCntN3; - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 2; - blkCntN3 = outBlockSize - (2 * blkCnt); - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - - px1 = pState + S->M; - - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the Read b[numTaps-1] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-1] for sample 0 and for sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-2] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-3] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-3] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-4] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - *pDst++ = (q15_t) (__SSAT((acc1 >> 15), 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - - while(blkCntN3 > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the Read b[numTaps-1] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-1] and sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-2] and sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-3] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-3] sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-4] sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCntN3--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1u) >> 2u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1u) % 0x04u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#else - - -void arm_fir_decimate_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - q63_t sum0; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - -/* Run the below code for Cortex-M0 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize; - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += (q31_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /*Store filter output , smlad will return the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = numTaps - 1u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - -} -#endif /* #ifndef ARM_MATH_CM0 */ - - -/** - * @} end of FIR_decimate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q31.c deleted file mode 100644 index 59c0fed7f8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q31.c +++ /dev/null @@ -1,306 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_decimate_q31.c -* -* Description: Q31 FIR Decimator. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Processing function for the Q31 FIR decimator. - * @param[in] *S points to an instance of the Q31 FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of input samples to process per call. - * @return none - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits (where log2 is read as log to the base 2). - * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. - * - * \par - * Refer to the function arm_fir_decimate_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -void arm_fir_decimate_q31( - const arm_fir_decimate_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - q31_t *px; /* Temporary pointers for state buffer */ - q31_t *pb; /* Temporary pointers for coefficient buffer */ - q63_t sum0; /* Accumulator */ - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, tapCnt, blkCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize; - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-1] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-2] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum0 >> 31); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1u) >> 2u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1u) % 0x04u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize; - - while(blkCnt > 0u) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while(--i); - - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum0 >> 31); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = numTaps - 1u; - - /* copy data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_f32.c deleted file mode 100644 index 7f951f86bc..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_f32.c +++ /dev/null @@ -1,554 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_f32.c -* -* Description: Floating-point FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup FIR Finite Impulse Response (FIR) Filters - * - * This set of functions implements Finite Impulse Response (FIR) filters - * for Q7, Q15, Q31, and floating-point data types. Fast versions of Q15 and Q31 are also provided. - * The functions operate on blocks of input and output data and each call to the function processes - * blockSize samples through the filter. pSrc and - * pDst points to input and output arrays containing blockSize values. - * - * \par Algorithm: - * The FIR filter algorithm is based upon a sequence of multiply-accumulate (MAC) operations. - * Each filter coefficient b[n] is multiplied by a state variable which equals a previous input sample x[n]. - *
  
- *    y[n] = b[0] * x[n] + b[1] * x[n-1] + b[2] * x[n-2] + ...+ b[numTaps-1] * x[n-numTaps+1]  
- * 
- * \par - * \image html FIR.gif "Finite Impulse Response filter" - * \par - * pCoeffs points to a coefficient array of size numTaps. - * Coefficients are stored in time reversed order. - * \par - *
  
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}  
- * 
- * \par - * pState points to a state array of size numTaps + blockSize - 1. - * Samples in the state buffer are stored in the following order. - * \par - *
  
- *    {x[n-numTaps+1], x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2]....x[0], x[1], ..., x[blockSize-1]}  
- * 
- * \par - * Note that the length of the state buffer exceeds the length of the coefficient array by blockSize-1. - * The increased state buffer length allows circular addressing, which is traditionally used in the FIR filters, - * to be avoided and yields a significant speed improvement. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 4 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * The code below statically initializes each of the 4 different data type filter instance structures - *
  
- *arm_fir_instance_f32 S = {numTaps, pState, pCoeffs};  
- *arm_fir_instance_q31 S = {numTaps, pState, pCoeffs};  
- *arm_fir_instance_q15 S = {numTaps, pState, pCoeffs};  
- *arm_fir_instance_q7 S =  {numTaps, pState, pCoeffs};  
- * 
- * - * where numTaps is the number of filter coefficients in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer. - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the FIR filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * - * @param[in] *S points to an instance of the floating-point FIR filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_f32( - const arm_fir_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t acc0, acc1, acc2, acc3, acc4, acc5, acc6, acc7; /* Accumulators */ - float32_t x0, x1, x2, x3, x4, x5, x6, x7, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize >> 3; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Copy four new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - acc4 = 0.0f; - acc5 = 0.0f; - acc6 = 0.0f; - acc7 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Read the first three samples from the state buffer: x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2] */ - x0 = *px++; - x1 = *px++; - x2 = *px++; - x3 = *px++; - x4 = *px++; - x5 = *px++; - x6 = *px++; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 3u; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while(tapCnt > 0u) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x7 = *(px++); - - /* acc0 += b[numTaps-1] * x[n-numTaps] */ - acc0 += x0 * c0; - - /* acc1 += b[numTaps-1] * x[n-numTaps-1] */ - acc1 += x1 * c0; - - /* acc2 += b[numTaps-1] * x[n-numTaps-2] */ - acc2 += x2 * c0; - - /* acc3 += b[numTaps-1] * x[n-numTaps-3] */ - acc3 += x3 * c0; - - /* acc4 += b[numTaps-1] * x[n-numTaps-4] */ - acc4 += x4 * c0; - - /* acc1 += b[numTaps-1] * x[n-numTaps-5] */ - acc5 += x5 * c0; - - /* acc2 += b[numTaps-1] * x[n-numTaps-6] */ - acc6 += x6 * c0; - - /* acc3 += b[numTaps-1] * x[n-numTaps-7] */ - acc7 += x7 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - acc0 += x1 * c0; - acc1 += x2 * c0; - acc2 += x3 * c0; - acc3 += x4 * c0; - acc4 += x5 * c0; - acc5 += x6 * c0; - acc6 += x7 * c0; - acc7 += x0 * c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x2 * c0; - acc1 += x3 * c0; - acc2 += x4 * c0; - acc3 += x5 * c0; - acc4 += x6 * c0; - acc5 += x7 * c0; - acc6 += x0 * c0; - acc7 += x1 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x3 * c0; - acc1 += x4 * c0; - acc2 += x5 * c0; - acc3 += x6 * c0; - acc4 += x7 * c0; - acc5 += x0 * c0; - acc6 += x1 * c0; - acc7 += x2 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x4 * c0; - acc1 += x5 * c0; - acc2 += x6 * c0; - acc3 += x7 * c0; - acc4 += x0 * c0; - acc5 += x1 * c0; - acc6 += x2 * c0; - acc7 += x3 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x4 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x5 * c0; - acc1 += x6 * c0; - acc2 += x7 * c0; - acc3 += x0 * c0; - acc4 += x1 * c0; - acc5 += x2 * c0; - acc6 += x3 * c0; - acc7 += x4 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x5 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x6 * c0; - acc1 += x7 * c0; - acc2 += x0 * c0; - acc3 += x1 * c0; - acc4 += x2 * c0; - acc5 += x3 * c0; - acc6 += x4 * c0; - acc7 += x5 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x6 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x7 * c0; - acc1 += x0 * c0; - acc2 += x1 * c0; - acc3 += x2 * c0; - acc4 += x3 * c0; - acc5 += x4 * c0; - acc6 += x5 * c0; - acc7 += x6 * c0; - - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x8u; - - while(tapCnt > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x7 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - acc4 += x4 * c0; - acc5 += x5 * c0; - acc6 += x6 * c0; - acc7 += x7 * c0; - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - x2 = x3; - x3 = x4; - x4 = x5; - x5 = x6; - x6 = x7; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 8; - - /* The results in the 4 accumulators, store in the destination buffer. */ - *pDst++ = acc0; - *pDst++ = acc1; - *pDst++ = acc2; - *pDst++ = acc3; - *pDst++ = acc4; - *pDst++ = acc5; - *pDst++ = acc6; - *pDst++ = acc7; - - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x8u; - - while(blkCnt > 0u) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - acc0 += *px++ * *pb++; - i--; - - } while(i > 0u); - - /* The result is store in the destination buffer. */ - *pDst++ = acc0; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (numTaps - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#else - -void arm_fir_f32( - const arm_fir_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* Run the below code for Cortex-M0 */ - - float32_t acc; - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Initialize blkCnt with blockSize */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = pCoeffs; - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - /* acc = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */ - acc += *px++ * *pb++; - i--; - - } while(i > 0u); - - /* The result is store in the destination buffer. */ - *pDst++ = acc; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the starting of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Copy numTaps number of values */ - tapCnt = numTaps - 1u; - - /* Copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #ifndef ARM_MATH_CM0 */ - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q15.c deleted file mode 100644 index 59abff2f55..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q15.c +++ /dev/null @@ -1,341 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_fast_q15.c -* -* Description: Q15 Fast FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.9 2010/08/16 -* Initial version -* -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in] *S points to an instance of the Q15 FIR filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits. - * The 2.30 accumulator is then truncated to 2.15 format and saturated to yield the 1.15 result. - * - * \par - * Refer to the function arm_fir_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. Both the slow and the fast versions use the same instance structure. - * Use the function arm_fir_init_q15() to initialize the filter structure. - */ - -void arm_fir_fast_q15( - const arm_fir_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - q15_t *px; /* Temporary q31 pointer for SIMD state buffer accesses */ - q31_t x0, x1, x2, c0; /* Temporary variables to hold SIMD state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of taps in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Copy four new input samples into the state buffer. - ** Use 32-bit SIMD to move the 16-bit data. Only requires two copies. */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Typecast q15_t pointer to q31_t pointer for state reading in q31_t */ - px = pState; - - /* Typecast q15_t pointer to q31_t pointer for coefficient reading in q31_t */ - pb = pCoeffs; - - /* Read the first two samples from the state buffer: x[n-N], x[n-N-1] */ - x0 = *__SIMD32(px)++; - - /* Read the third and forth samples from the state buffer: x[n-N-2], x[n-N-3] */ - x2 = *__SIMD32(px)++; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(numTaps%4) coefficients. */ - tapCnt = numTaps >> 2; - - while(tapCnt > 0) - { - /* Read the first two coefficients using SIMD: b[N] and b[N-1] coefficients */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N] * x[n-N] + b[N-1] * x[n-N-1] */ - acc0 = __SMLAD(x0, c0, acc0); - - /* acc2 += b[N] * x[n-N-2] + b[N-1] * x[n-N-3] */ - acc2 = __SMLAD(x2, c0, acc2); - - /* pack x[n-N-1] and x[n-N-2] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* Read state x[n-N-4], x[n-N-5] */ - x0 = _SIMD32_OFFSET(px); - - /* acc1 += b[N] * x[n-N-1] + b[N-1] * x[n-N-2] */ - acc1 = __SMLADX(x1, c0, acc1); - - /* pack x[n-N-3] and x[n-N-4] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x0, x2, 0); -#else - x1 = __PKHBT(x2, x0, 0); -#endif - - /* acc3 += b[N] * x[n-N-3] + b[N-1] * x[n-N-4] */ - acc3 = __SMLADX(x1, c0, acc3); - - /* Read coefficients b[N-2], b[N-3] */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N-2] * x[n-N-2] + b[N-3] * x[n-N-3] */ - acc0 = __SMLAD(x2, c0, acc0); - - /* Read state x[n-N-6], x[n-N-7] with offset */ - x2 = _SIMD32_OFFSET(px + 2u); - - /* acc2 += b[N-2] * x[n-N-4] + b[N-3] * x[n-N-5] */ - acc2 = __SMLAD(x0, c0, acc2); - - /* acc1 += b[N-2] * x[n-N-3] + b[N-3] * x[n-N-4] */ - acc1 = __SMLADX(x1, c0, acc1); - - /* pack x[n-N-5] and x[n-N-6] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* acc3 += b[N-2] * x[n-N-5] + b[N-3] * x[n-N-6] */ - acc3 = __SMLADX(x1, c0, acc3); - - /* Update state pointer for next state reading */ - px += 4u; - - /* Decrement tap count */ - tapCnt--; - - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps. - ** This is always be 2 taps since the filter length is even. */ - if((numTaps & 0x3u) != 0u) - { - - /* Read last two coefficients */ - c0 = *__SIMD32(pb)++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc2 = __SMLAD(x2, c0, acc2); - - /* pack state variables */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* Read last state variables */ - x0 = *__SIMD32(px); - - /* Perform the multiply-accumulates */ - acc1 = __SMLADX(x1, c0, acc1); - - /* pack state variables */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x0, x2, 0); -#else - x1 = __PKHBT(x2, x0, 0); -#endif - - /* Perform the multiply-accumulates */ - acc3 = __SMLADX(x1, c0, acc3); - } - - /* The results in the 4 accumulators are in 2.30 format. Convert to 1.15 with saturation. - ** Then store the 4 outputs in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - while(blkCnt > 0u) - { - /* Copy two samples into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Use SIMD to hold states and coefficients */ - px = pState; - pb = pCoeffs; - - tapCnt = numTaps >> 1u; - - do - { - - acc0 += (q31_t) * px++ * *pb++; - acc0 += (q31_t) * px++ * *pb++; - - tapCnt--; - } - while(tapCnt > 0u); - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1u) >> 2; - - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* copy remaining data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q31.c deleted file mode 100644 index e384ff9732..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q31.c +++ /dev/null @@ -1,309 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_fast_q31.c -* -* Description: Processing function for the Q31 Fast FIR filter. -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.9 2010/08/27 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in] *S points to an instance of the Q31 structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are added to a 2.30 accumulator. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * The fast version has the same overflow behavior as the standard version and provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits. - * - * \par - * Refer to the function arm_fir_q31() for a slower implementation of this function which uses a 64-bit accumulator to provide higher precision. Both the slow and the fast versions use the same instance structure. - * Use the function arm_fir_init_q31() to initialize the filter structure. - */ - -void arm_fir_fast_q31( - const arm_fir_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t x0, x1, x2, x3; /* Temporary variables to hold state */ - q31_t c0; /* Temporary variable to hold coefficient value */ - q31_t *px; /* Temporary pointer for state */ - q31_t *pb; /* Temporary pointer for coefficient buffer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Copy four new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Read the first three samples from the state buffer: - * x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2] */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - i = tapCnt; - - while(i > 0u) - { - /* Read the b[numTaps] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x3 = *(px++); - - /* acc0 += b[numTaps] * x[n-numTaps] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* acc1 += b[numTaps] * x[n-numTaps-1] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* acc2 += b[numTaps] * x[n-numTaps-2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - - /* acc3 += b[numTaps] * x[n-numTaps-3] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x1 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x2 * c0)) >> 32); - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x3 * c0)) >> 32); - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x2 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x3 * c0)) >> 32); - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x0 * c0)) >> 32); - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read the b[numTaps-3] coefficients */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x3 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x0 * c0)) >> 32); - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x1 * c0)) >> 32); - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x2 * c0)) >> 32); - i--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - - i = numTaps - (tapCnt * 4u); - while(i > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4; - - /* The results in the 4 accumulators are in 2.30 format. Convert to 1.31 - ** Then store the 4 outputs in the destination buffer. */ - *pDst++ = (q31_t) (acc0 << 1); - *pDst++ = (q31_t) (acc1 << 1); - *pDst++ = (q31_t) (acc2 << 1); - *pDst++ = (q31_t) (acc3 << 1); - - /* Decrement the samples loop counter */ - blkCnt--; - } - - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 4u; - - while(blkCnt > 0u) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - acc0 = - (q31_t) ((((q63_t) acc0 << 32) + - ((q63_t) (*px++) * (*(pb++)))) >> 32); - i--; - } while(i > 0u); - - /* The result is in 2.30 format. Convert to 1.31 - ** Then store the output in the destination buffer. */ - *pDst++ = (q31_t) (acc0 << 1); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (numTaps - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - -} - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_f32.c deleted file mode 100644 index aaeddf5f6b..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_f32.c +++ /dev/null @@ -1,94 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_init_f32.c -* -* Description: Floating-point FIR filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the floating-point FIR filter structure. - * @param[in] numTaps Number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of samples that are processed per call. - * @return none. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_fir_f32(). - */ - -void arm_fir_init_f32( - arm_fir_instance_f32 * S, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and the size of state buffer is (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q15.c deleted file mode 100644 index 02bb336235..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q15.c +++ /dev/null @@ -1,152 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_init_q15.c -* -* Description: Q15 FIR filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* ------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in,out] *S points to an instance of the Q15 FIR filter structure. - * @param[in] numTaps Number of filter coefficients in the filter. Must be even and greater than or equal to 4. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize is number of samples processed per call. - * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if - * numTaps is not greater than or equal to 4 and even. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * Note that numTaps must be even and greater than or equal to 4. - * To implement an odd length filter simply increase numTaps by 1 and set the last coefficient to zero. - * For example, to implement a filter with numTaps=3 and coefficients - *
    
- *     {0.3, -0.8, 0.3}    
- * 
- * set numTaps=4 and use the coefficients: - *
    
- *     {0.3, -0.8, 0.3, 0}.    
- * 
- * Similarly, to implement a two point filter - *
    
- *     {0.3, -0.3}    
- * 
- * set numTaps=4 and use the coefficients: - *
    
- *     {0.3, -0.3, 0, 0}.    
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize, when running on Cortex-M4 and Cortex-M3 and is of length numTaps+blockSize-1, when running on Cortex-M0 where blockSize is the number of input samples processed by each call to arm_fir_q15(). - */ - -arm_status arm_fir_init_q15( - arm_fir_instance_q15 * S, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - uint32_t blockSize) -{ - arm_status status; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* The Number of filter coefficients in the filter must be even and at least 4 */ - if(numTaps & 0x1u) - { - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size is always (blockSize + numTaps ) */ - memset(pState, 0, (numTaps + (blockSize)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - - return (status); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q31.c deleted file mode 100644 index 997a78427f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q31.c +++ /dev/null @@ -1,94 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_init_q31.c -* -* Description: Q31 FIR filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the Q31 FIR filter structure. - * @param[in] numTaps Number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of samples that are processed per call. - * @return none. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_fir_q31(). - */ - -void arm_fir_init_q31( - arm_fir_instance_q31 * S, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and state array size is (blockSize + numTaps - 1) */ - memset(pState, 0, (blockSize + ((uint32_t) numTaps - 1u)) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q7.c deleted file mode 100644 index 65a49a823e..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q7.c +++ /dev/null @@ -1,92 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_init_q7.c -* -* Description: Q7 FIR filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* ------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ -/** - * @param[in,out] *S points to an instance of the Q7 FIR filter structure. - * @param[in] numTaps Number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of samples that are processed per call. - * @return none - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_fir_q7(). - */ - -void arm_fir_init_q7( - arm_fir_instance_q7 * S, - uint16_t numTaps, - q7_t * pCoeffs, - q7_t * pState, - uint32_t blockSize) -{ - - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(q7_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_f32.c deleted file mode 100644 index c966a0ced7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_f32.c +++ /dev/null @@ -1,574 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_interpolate_f32.c -* -* Description: FIR interpolation for floating-point sequences. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @defgroup FIR_Interpolate Finite Impulse Response (FIR) Interpolator - * - * These functions combine an upsampler (zero stuffer) and an FIR filter. - * They are used in multirate systems for increasing the sample rate of a signal without introducing high frequency images. - * Conceptually, the functions are equivalent to the block diagram below: - * \image html FIRInterpolator.gif "Components included in the FIR Interpolator functions" - * After upsampling by a factor of L, the signal should be filtered by a lowpass filter with a normalized - * cutoff frequency of 1/L in order to eliminate high frequency copies of the spectrum. - * The user of the function is responsible for providing the filter coefficients. - * - * The FIR interpolator functions provided in the CMSIS DSP Library combine the upsampler and FIR filter in an efficient manner. - * The upsampler inserts L-1 zeros between each sample. - * Instead of multiplying by these zero values, the FIR filter is designed to skip them. - * This leads to an efficient implementation without any wasted effort. - * The functions operate on blocks of input and output data. - * pSrc points to an array of blockSize input values and - * pDst points to an array of blockSize*L output values. - * - * The library provides separate functions for Q15, Q31, and floating-point data types. - * - * \par Algorithm: - * The functions use a polyphase filter structure: - *
    
- *    y[n] = b[0] * x[n] + b[L]   * x[n-1] + ... + b[L*(phaseLength-1)] * x[n-phaseLength+1]    
- *    y[n+1] = b[1] * x[n] + b[L+1] * x[n-1] + ... + b[L*(phaseLength-1)+1] * x[n-phaseLength+1]    
- *    ...    
- *    y[n+(L-1)] = b[L-1] * x[n] + b[2*L-1] * x[n-1] + ....+ b[L*(phaseLength-1)+(L-1)] * x[n-phaseLength+1]    
- * 
- * This approach is more efficient than straightforward upsample-then-filter algorithms. - * With this method the computation is reduced by a factor of 1/L when compared to using a standard FIR filter. - * \par - * pCoeffs points to a coefficient array of size numTaps. - * numTaps must be a multiple of the interpolation factor L and this is checked by the - * initialization functions. - * Internally, the function divides the FIR filter's impulse response into shorter filters of length - * phaseLength=numTaps/L. - * Coefficients are stored in time reversed order. - * \par - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to a state array of size blockSize + phaseLength - 1. - * Samples in the state buffer are stored in the order: - * \par - *
    
- *    {x[n-phaseLength+1], x[n-phaseLength], x[n-phaseLength-1], x[n-phaseLength-2]....x[0], x[1], ..., x[blockSize-1]}    
- * 
- * The state variables are updated after each block of data is processed, the coefficients are untouched. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable array should be allocated separately. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - Checks to make sure that the length of the filter is a multiple of the interpolation factor. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * The code below statically initializes each of the 3 different data type filter instance structures - *
    
- * arm_fir_interpolate_instance_f32 S = {L, phaseLength, pCoeffs, pState};    
- * arm_fir_interpolate_instance_q31 S = {L, phaseLength, pCoeffs, pState};    
- * arm_fir_interpolate_instance_q15 S = {L, phaseLength, pCoeffs, pState};    
- * 
- * where L is the interpolation factor; phaseLength=numTaps/L is the - * length of each of the shorter FIR filters used internally, - * pCoeffs is the address of the coefficient buffer; - * pState is the address of the state buffer. - * Be sure to set the values in the state buffer to zeros when doing static initialization. - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the FIR interpolate filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Processing function for the floating-point FIR interpolator. - * @param[in] *S points to an instance of the floating-point FIR interpolator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of input samples to process per call. - * @return none. - */ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_interpolate_f32( - const arm_fir_interpolate_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - float32_t sum0; /* Accumulators */ - float32_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt, j; /* Loop counters */ - uint16_t phaseLen = S->phaseLength, tapCnt; /* Length of each polyphase filter component */ - float32_t acc0, acc1, acc2, acc3; - float32_t x1, x2, x3; - uint32_t blkCntN4; - float32_t c1, c2, c3; - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (phaseLen - 1u); - - /* Initialise blkCnt */ - blkCnt = blockSize / 4; - blkCntN4 = blockSize - (4 * blkCnt); - - /* Samples loop unrolled by 4 */ - while(blkCnt > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1u; - - /* Loop over the Interpolation factor. */ - i = (S->L); - - while(i > 0u) - { - /* Set accumulator to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2u; - - x0 = *(ptr1++); - x1 = *(ptr1++); - x2 = *(ptr1++); - - while(tapCnt > 0u) - { - - /* Read the input sample */ - x3 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Read the coefficient */ - c1 = *(ptr2 + S->L); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += x1 * c1; - acc1 += x2 * c1; - acc2 += x3 * c1; - acc3 += x0 * c1; - - /* Read the coefficient */ - c2 = *(ptr2 + S->L * 2); - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += x2 * c2; - acc1 += x3 * c2; - acc2 += x0 * c2; - acc3 += x1 * c2; - - /* Read the coefficient */ - c3 = *(ptr2 + S->L * 3); - - /* Read the input sample */ - x2 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += x3 * c3; - acc1 += x0 * c3; - acc2 += x1 * c3; - acc3 += x2 * c3; - - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += 4 * S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen % 0x4u; - - while(tapCnt > 0u) - { - - /* Read the input sample */ - x3 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* update states for next sample processing */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst = acc0; - *(pDst + S->L) = acc1; - *(pDst + 2 * S->L) = acc2; - *(pDst + 3 * S->L) = acc3; - - pDst++; - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 4; - - pDst += S->L * 3; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - - while(blkCntN4 > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1u; - - /* Loop over the Interpolation factor. */ - i = S->L; - while(i > 0u) - { - /* Set accumulator to zero */ - sum0 = 0.0f; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2u; - while(tapCnt > 0u) - { - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - sum0 += *(ptr1++) * (*ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = sum0; - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCntN4--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (phaseLen - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (phaseLen - 1u) % 0x04u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#else - - /* Run the below code for Cortex-M0 */ - -void arm_fir_interpolate_f32( - const arm_fir_interpolate_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - - - float32_t sum; /* Accumulator */ - uint32_t i, blkCnt; /* Loop counters */ - uint16_t phaseLen = S->phaseLength, tapCnt; /* Length of each polyphase filter component */ - - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (phaseLen - 1u); - - /* Total number of intput samples */ - blkCnt = blockSize; - - /* Loop over the blockSize. */ - while(blkCnt > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Loop over the Interpolation factor. */ - i = S->L; - - while(i > 0u) - { - /* Set accumulator to zero */ - sum = 0.0f; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (i - 1u); - - /* Loop over the polyPhase length */ - tapCnt = phaseLen; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - sum += *ptr1++ * *ptr2; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = sum; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = phaseLen - 1u; - - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #ifndef ARM_MATH_CM0 */ - - - - /** - * @} end of FIR_Interpolate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c deleted file mode 100644 index b193472647..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c +++ /dev/null @@ -1,116 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_interpolate_init_f32.c -* -* Description: Floating-point FIR interpolator initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Initialization function for the floating-point FIR interpolator. - * @param[in,out] *S points to an instance of the floating-point FIR interpolator structure. - * @param[in] L upsample factor. - * @param[in] numTaps number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficient buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * the filter length numTaps is not a multiple of the interpolation factor L. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[numTaps-2], ..., b[1], b[0]}    
- * 
- * The length of the filter numTaps must be a multiple of the interpolation factor L. - * \par - * pState points to the array of state variables. - * pState is of length (numTaps/L)+blockSize-1 words - * where blockSize is the number of input samples processed by each call to arm_fir_interpolate_f32(). - */ - -arm_status arm_fir_interpolate_init_f32( - arm_fir_interpolate_instance_f32 * S, - uint8_t L, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The filter length must be a multiple of the interpolation factor */ - if((numTaps % L) != 0u) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign Interpolation factor */ - S->L = L; - - /* Assign polyPhaseLength */ - S->phaseLength = numTaps / L; - - /* Clear state buffer and size of state array is always phaseLength + blockSize - 1 */ - memset(pState, 0, - (blockSize + - ((uint32_t) S->phaseLength - 1u)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - - /** - * @} end of FIR_Interpolate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c deleted file mode 100644 index b344fc785a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c +++ /dev/null @@ -1,115 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_interpolate_init_q15.c -* -* Description: Q15 FIR interpolator initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Initialization function for the Q15 FIR interpolator. - * @param[in,out] *S points to an instance of the Q15 FIR interpolator structure. - * @param[in] L upsample factor. - * @param[in] numTaps number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficient buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * the filter length numTaps is not a multiple of the interpolation factor L. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[numTaps-2], ..., b[1], b[0]}    
- * 
- * The length of the filter numTaps must be a multiple of the interpolation factor L. - * \par - * pState points to the array of state variables. - * pState is of length (numTaps/L)+blockSize-1 words - * where blockSize is the number of input samples processed by each call to arm_fir_interpolate_q15(). - */ - -arm_status arm_fir_interpolate_init_q15( - arm_fir_interpolate_instance_q15 * S, - uint8_t L, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The filter length must be a multiple of the interpolation factor */ - if((numTaps % L) != 0u) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign Interpolation factor */ - S->L = L; - - /* Assign polyPhaseLength */ - S->phaseLength = numTaps / L; - - /* Clear state buffer and size of buffer is always phaseLength + blockSize - 1 */ - memset(pState, 0, - (blockSize + ((uint32_t) S->phaseLength - 1u)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - - /** - * @} end of FIR_Interpolate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c deleted file mode 100644 index f0383b8e9b..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c +++ /dev/null @@ -1,116 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_interpolate_init_q31.c -* -* Description: Q31 FIR interpolator initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - - -/** - * @brief Initialization function for the Q31 FIR interpolator. - * @param[in,out] *S points to an instance of the Q31 FIR interpolator structure. - * @param[in] L upsample factor. - * @param[in] numTaps number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficient buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * the filter length numTaps is not a multiple of the interpolation factor L. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[numTaps-2], ..., b[1], b[0]}    
- * 
- * The length of the filter numTaps must be a multiple of the interpolation factor L. - * \par - * pState points to the array of state variables. - * pState is of length (numTaps/L)+blockSize-1 words - * where blockSize is the number of input samples processed by each call to arm_fir_interpolate_q31(). - */ - -arm_status arm_fir_interpolate_init_q31( - arm_fir_interpolate_instance_q31 * S, - uint8_t L, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The filter length must be a multiple of the interpolation factor */ - if((numTaps % L) != 0u) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign Interpolation factor */ - S->L = L; - - /* Assign polyPhaseLength */ - S->phaseLength = numTaps / L; - - /* Clear state buffer and size of buffer is always phaseLength + blockSize - 1 */ - memset(pState, 0, - (blockSize + ((uint32_t) S->phaseLength - 1u)) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - - /** - * @} end of FIR_Interpolate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q15.c deleted file mode 100644 index d17d8d8037..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q15.c +++ /dev/null @@ -1,503 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_interpolate_q15.c -* -* Description: Q15 FIR interpolation. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Processing function for the Q15 FIR interpolator. - * @param[in] *S points to an instance of the Q15 FIR interpolator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_interpolate_q15( - const arm_fir_interpolate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - q63_t sum0; /* Accumulators */ - q15_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt, j, tapCnt; /* Loop counters */ - uint16_t phaseLen = S->phaseLength; /* Length of each polyphase filter component */ - uint32_t blkCntN2; - q63_t acc0, acc1; - q15_t x1; - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + ((q31_t) phaseLen - 1); - - /* Initialise blkCnt */ - blkCnt = blockSize / 2; - blkCntN2 = blockSize - (2 * blkCnt); - - /* Samples loop unrolled by 2 */ - while(blkCnt > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1u; - - /* Loop over the Interpolation factor. */ - i = (S->L); - - while(i > 0u) - { - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2u; - - x0 = *(ptr1++); - - while(tapCnt > 0u) - { - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - - /* Read the coefficient */ - c0 = *(ptr2 + S->L); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x1 *c0; - acc1 += (q63_t) x0 *c0; - - - /* Read the coefficient */ - c0 = *(ptr2 + S->L * 2); - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - /* Read the coefficient */ - c0 = *(ptr2 + S->L * 3); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x1 *c0; - acc1 += (q63_t) x0 *c0; - - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += 4 * S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen % 0x4u; - - while(tapCnt > 0u) - { - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* update states for next sample processing */ - x0 = x1; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst = (q15_t) (__SSAT((acc0 >> 15), 16)); - *(pDst + S->L) = (q15_t) (__SSAT((acc1 >> 15), 16)); - - pDst++; - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 2; - - pDst += S->L; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 2, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blkCntN2; - - /* Loop over the blockSize. */ - while(blkCnt > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1u; - - /* Loop over the Interpolation factor. */ - i = S->L; - while(i > 0u) - { - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2; - while(tapCnt > 0u) - { - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen & 0x3u; - - while(tapCnt > 0u) - { - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = ((uint32_t) phaseLen - 1u) >> 2u; - - /* copy data */ - while(i > 0u) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - -#else - - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - i--; - } - - i = ((uint32_t) phaseLen - 1u) % 0x04u; - - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - -#else - - /* Run the below code for Cortex-M0 */ - -void arm_fir_interpolate_q15( - const arm_fir_interpolate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - q63_t sum; /* Accumulator */ - q15_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt, tapCnt; /* Loop counters */ - uint16_t phaseLen = S->phaseLength; /* Length of each polyphase filter component */ - - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (phaseLen - 1u); - - /* Total number of intput samples */ - blkCnt = blockSize; - - /* Loop over the blockSize. */ - while(blkCnt > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Loop over the Interpolation factor. */ - i = S->L; - - while(i > 0u) - { - /* Set accumulator to zero */ - sum = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (i - 1u); - - /* Loop over the polyPhase length */ - tapCnt = (uint32_t) phaseLen; - - while(tapCnt > 0u) - { - /* Read the coefficient */ - c0 = *ptr2; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *ptr1++; - - /* Perform the multiply-accumulate */ - sum += ((q31_t) x0 * c0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Store the result after converting to 1.15 format in the destination buffer */ - *pDst++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (uint32_t) phaseLen - 1u; - - while(i > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -} - -#endif /* #ifndef ARM_MATH_CM0 */ - - - /** - * @} end of FIR_Interpolate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q31.c deleted file mode 100644 index 689b4d3372..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q31.c +++ /dev/null @@ -1,499 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_interpolate_q31.c -* -* Description: Q31 FIR interpolation. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Processing function for the Q31 FIR interpolator. - * @param[in] *S points to an instance of the Q31 FIR interpolator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 1/(numTaps/L). - * since numTaps/L additions occur per output sample. - * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. - */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_interpolate_q31( - const arm_fir_interpolate_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - q63_t sum0; /* Accumulators */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt, j; /* Loop counters */ - uint16_t phaseLen = S->phaseLength, tapCnt; /* Length of each polyphase filter component */ - - uint32_t blkCntN2; - q63_t acc0, acc1; - q31_t x1; - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + ((q31_t) phaseLen - 1); - - /* Initialise blkCnt */ - blkCnt = blockSize / 2; - blkCntN2 = blockSize - (2 * blkCnt); - - /* Samples loop unrolled by 2 */ - while(blkCnt > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1u; - - /* Loop over the Interpolation factor. */ - i = (S->L); - - while(i > 0u) - { - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2u; - - x0 = *(ptr1++); - - while(tapCnt > 0u) - { - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - - /* Read the coefficient */ - c0 = *(ptr2 + S->L); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x1 *c0; - acc1 += (q63_t) x0 *c0; - - - /* Read the coefficient */ - c0 = *(ptr2 + S->L * 2); - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - /* Read the coefficient */ - c0 = *(ptr2 + S->L * 3); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x1 *c0; - acc1 += (q63_t) x0 *c0; - - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += 4 * S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen % 0x4u; - - while(tapCnt > 0u) - { - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* update states for next sample processing */ - x0 = x1; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst = (q31_t) (acc0 >> 31); - *(pDst + S->L) = (q31_t) (acc1 >> 31); - - - pDst++; - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 2; - - pDst += S->L; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 2, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blkCntN2; - - /* Loop over the blockSize. */ - while(blkCnt > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1u; - - /* Loop over the Interpolation factor. */ - i = S->L; - while(i > 0u) - { - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2; - while(tapCnt > 0u) - { - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen & 0x3u; - - while(tapCnt > 0u) - { - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum0 >> 31); - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (phaseLen - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (phaseLen - 1u) % 0x04u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - - -#else - -void arm_fir_interpolate_q31( - const arm_fir_interpolate_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - - /* Run the below code for Cortex-M0 */ - - q63_t sum; /* Accumulator */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt; /* Loop counters */ - uint16_t phaseLen = S->phaseLength, tapCnt; /* Length of each polyphase filter component */ - - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + ((q31_t) phaseLen - 1); - - /* Total number of intput samples */ - blkCnt = blockSize; - - /* Loop over the blockSize. */ - while(blkCnt > 0u) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Loop over the Interpolation factor. */ - i = S->L; - - while(i > 0u) - { - /* Set accumulator to zero */ - sum = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (i - 1u); - - tapCnt = phaseLen; - - while(tapCnt > 0u) - { - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *ptr1++; - - /* Perform the multiply-accumulate */ - sum += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum >> 31); - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = phaseLen - 1u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #ifndef ARM_MATH_CM0 */ - - /** - * @} end of FIR_Interpolate group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_f32.c deleted file mode 100644 index 3745ffb6a2..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_f32.c +++ /dev/null @@ -1,499 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_lattice_f32.c -* -* Description: Processing function for the floating-point FIR Lattice filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup FIR_Lattice Finite Impulse Response (FIR) Lattice Filters - * - * This set of functions implements Finite Impulse Response (FIR) lattice filters - * for Q15, Q31 and floating-point data types. Lattice filters are used in a - * variety of adaptive filter applications. The filter structure is feedforward and - * the net impulse response is finite length. - * The functions operate on blocks - * of input and output data and each call to the function processes - * blockSize samples through the filter. pSrc and - * pDst point to input and output arrays containing blockSize values. - * - * \par Algorithm: - * \image html FIRLattice.gif "Finite Impulse Response Lattice filter" - * The following difference equation is implemented: - *
    
- *    f0[n] = g0[n] = x[n]    
- *    fm[n] = fm-1[n] + km * gm-1[n-1] for m = 1, 2, ...M    
- *    gm[n] = km * fm-1[n] + gm-1[n-1] for m = 1, 2, ...M    
- *    y[n] = fM[n]    
- * 
- * \par - * pCoeffs points to tha array of reflection coefficients of size numStages. - * Reflection Coefficients are stored in the following order. - * \par - *
    
- *    {k1, k2, ..., kM}    
- * 
- * where M is number of stages - * \par - * pState points to a state array of size numStages. - * The state variables (g values) hold previous inputs and are stored in the following order. - *
    
- *    {g0[n], g1[n], g2[n] ...gM-1[n]}    
- * 
- * The state variables are updated after each block of data is processed; the coefficients are untouched. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros and then manually initialize the instance structure as follows: - *
    
- *arm_fir_lattice_instance_f32 S = {numStages, pState, pCoeffs};    
- *arm_fir_lattice_instance_q31 S = {numStages, pState, pCoeffs};    
- *arm_fir_lattice_instance_q15 S = {numStages, pState, pCoeffs};    
- * 
- * \par - * where numStages is the number of stages in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer. - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the FIR Lattice filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - - /** - * @brief Processing function for the floating-point FIR lattice filter. - * @param[in] *S points to an instance of the floating-point FIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_fir_lattice_f32( - const arm_fir_lattice_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *px; /* temporary state pointer */ - float32_t *pk; /* temporary coefficient pointer */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t fcurr1, fnext1, gcurr1, gnext1; /* temporary variables for first sample in loop unrolling */ - float32_t fcurr2, fnext2, gnext2; /* temporary variables for second sample in loop unrolling */ - float32_t fcurr3, fnext3, gnext3; /* temporary variables for third sample in loop unrolling */ - float32_t fcurr4, fnext4, gnext4; /* temporary variables for fourth sample in loop unrolling */ - uint32_t numStages = S->numStages; /* Number of stages in the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - gcurr1 = 0.0f; - pState = &S->pState[0]; - - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - - /* Read two samples from input buffer */ - /* f0(n) = x(n) */ - fcurr1 = *pSrc++; - fcurr2 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* Read g0(n-1) from state */ - gcurr1 = *px; - - /* Process first sample for first tap */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (fcurr1 * (*pk)) + gcurr1; - - /* Process second sample for first tap */ - /* for sample 2 processing */ - fnext2 = fcurr2 + ((*pk) * fcurr1); - gnext2 = (fcurr2 * (*pk)) + fcurr1; - - /* Read next two samples from input buffer */ - /* f0(n+2) = x(n+2) */ - fcurr3 = *pSrc++; - fcurr4 = *pSrc++; - - /* Copy only last input samples into the state buffer - which will be used for next four samples processing */ - *px++ = fcurr4; - - /* Process third sample for first tap */ - fnext3 = fcurr3 + ((*pk) * fcurr2); - gnext3 = (fcurr3 * (*pk)) + fcurr2; - - /* Process fourth sample for first tap */ - fnext4 = fcurr4 + ((*pk) * fcurr3); - gnext4 = (fcurr4 * (*pk++)) + fcurr3; - - /* Update of f values for next coefficient set processing */ - fcurr1 = fnext1; - fcurr2 = fnext2; - fcurr3 = fnext3; - fcurr4 = fnext4; - - /* Loop unrolling. Process 4 taps at a time . */ - stageCnt = (numStages - 1u) >> 2u; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numStages-3 coefficients. */ - - /* Process 2nd, 3rd, 4th and 5th taps ... here */ - while(stageCnt > 0u) - { - /* Read g1(n-1), g3(n-1) .... from state */ - gcurr1 = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext4; - - /* Process first sample for 2nd, 6th .. tap */ - /* Sample processing for K2, K6.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* Process second sample for 2nd, 6th .. tap */ - /* for sample 2 processing */ - fnext2 = fcurr2 + ((*pk) * gnext1); - /* Process third sample for 2nd, 6th .. tap */ - fnext3 = fcurr3 + ((*pk) * gnext2); - /* Process fourth sample for 2nd, 6th .. tap */ - fnext4 = fcurr4 + ((*pk) * gnext3); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - /* Calculation of state values for next stage */ - gnext4 = (fcurr4 * (*pk)) + gnext3; - gnext3 = (fcurr3 * (*pk)) + gnext2; - gnext2 = (fcurr2 * (*pk)) + gnext1; - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - - /* Read g2(n-1), g4(n-1) .... from state */ - gcurr1 = *px; - - /* save g2(n) in state buffer */ - *px++ = gnext4; - - /* Sample processing for K3, K7.... */ - /* Process first sample for 3rd, 7th .. tap */ - /* f3(n) = f2(n) + K3 * g2(n-1) */ - fcurr1 = fnext1 + ((*pk) * gcurr1); - /* Process second sample for 3rd, 7th .. tap */ - fcurr2 = fnext2 + ((*pk) * gnext1); - /* Process third sample for 3rd, 7th .. tap */ - fcurr3 = fnext3 + ((*pk) * gnext2); - /* Process fourth sample for 3rd, 7th .. tap */ - fcurr4 = fnext4 + ((*pk) * gnext3); - - /* Calculation of state values for next stage */ - /* g3(n) = f2(n) * K3 + g2(n-1) */ - gnext4 = (fnext4 * (*pk)) + gnext3; - gnext3 = (fnext3 * (*pk)) + gnext2; - gnext2 = (fnext2 * (*pk)) + gnext1; - gnext1 = (fnext1 * (*pk++)) + gcurr1; - - - /* Read g1(n-1), g3(n-1) .... from state */ - gcurr1 = *px; - - /* save g3(n) in state buffer */ - *px++ = gnext4; - - /* Sample processing for K4, K8.... */ - /* Process first sample for 4th, 8th .. tap */ - /* f4(n) = f3(n) + K4 * g3(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* Process second sample for 4th, 8th .. tap */ - /* for sample 2 processing */ - fnext2 = fcurr2 + ((*pk) * gnext1); - /* Process third sample for 4th, 8th .. tap */ - fnext3 = fcurr3 + ((*pk) * gnext2); - /* Process fourth sample for 4th, 8th .. tap */ - fnext4 = fcurr4 + ((*pk) * gnext3); - - /* g4(n) = f3(n) * K4 + g3(n-1) */ - /* Calculation of state values for next stage */ - gnext4 = (fcurr4 * (*pk)) + gnext3; - gnext3 = (fcurr3 * (*pk)) + gnext2; - gnext2 = (fcurr2 * (*pk)) + gnext1; - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - /* Read g2(n-1), g4(n-1) .... from state */ - gcurr1 = *px; - - /* save g4(n) in state buffer */ - *px++ = gnext4; - - /* Sample processing for K5, K9.... */ - /* Process first sample for 5th, 9th .. tap */ - /* f5(n) = f4(n) + K5 * g4(n-1) */ - fcurr1 = fnext1 + ((*pk) * gcurr1); - /* Process second sample for 5th, 9th .. tap */ - fcurr2 = fnext2 + ((*pk) * gnext1); - /* Process third sample for 5th, 9th .. tap */ - fcurr3 = fnext3 + ((*pk) * gnext2); - /* Process fourth sample for 5th, 9th .. tap */ - fcurr4 = fnext4 + ((*pk) * gnext3); - - /* Calculation of state values for next stage */ - /* g5(n) = f4(n) * K5 + g4(n-1) */ - gnext4 = (fnext4 * (*pk)) + gnext3; - gnext3 = (fnext3 * (*pk)) + gnext2; - gnext2 = (fnext2 * (*pk)) + gnext1; - gnext1 = (fnext1 * (*pk++)) + gcurr1; - - stageCnt--; - } - - /* If the (filter length -1) is not a multiple of 4, compute the remaining filter taps */ - stageCnt = (numStages - 1u) % 0x4u; - - while(stageCnt > 0u) - { - gcurr1 = *px; - - /* save g value in state buffer */ - *px++ = gnext4; - - /* Process four samples for last three taps here */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - fnext2 = fcurr2 + ((*pk) * gnext1); - fnext3 = fcurr3 + ((*pk) * gnext2); - fnext4 = fcurr4 + ((*pk) * gnext3); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext4 = (fcurr4 * (*pk)) + gnext3; - gnext3 = (fcurr3 * (*pk)) + gnext2; - gnext2 = (fcurr2 * (*pk)) + gnext1; - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - /* Update of f values for next coefficient set processing */ - fcurr1 = fnext1; - fcurr2 = fnext2; - fcurr3 = fnext3; - fcurr4 = fnext4; - - stageCnt--; - - } - - /* The results in the 4 accumulators, store in the destination buffer. */ - /* y(n) = fN(n) */ - *pDst++ = fcurr1; - *pDst++ = fcurr2; - *pDst++ = fcurr3; - *pDst++ = fcurr4; - - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* f0(n) = x(n) */ - fcurr1 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g2(n) from state buffer */ - gcurr1 = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - /* save g1(n) in state buffer */ - *px++ = fcurr1; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - - stageCnt = (numStages - 1u); - - /* stage loop */ - while(stageCnt > 0u) - { - /* read g2(n) from state buffer */ - gcurr1 = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext1; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = fcurr1; - - blkCnt--; - - } - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t fcurr, fnext, gcurr, gnext; /* temporary variables */ - uint32_t numStages = S->numStages; /* Length of the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - pState = &S->pState[0]; - - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* f0(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize coeff pointer */ - pk = pCoeffs; - - /* Initialize state pointer */ - px = pState; - - /* read g0(n-1) from state buffer */ - gcurr = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext = fcurr + ((*pk) * gcurr); - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext = (fcurr * (*pk++)) + gcurr; - - /* save f0(n) in state buffer */ - *px++ = fcurr; - - /* f1(n) is saved in fcurr - for next stage processing */ - fcurr = fnext; - - stageCnt = (numStages - 1u); - - /* stage loop */ - while(stageCnt > 0u) - { - /* read g2(n) from state buffer */ - gcurr = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext = fcurr + ((*pk) * gcurr); - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext = (fcurr * (*pk++)) + gcurr; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr = fnext; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = fcurr; - - blkCnt--; - - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c deleted file mode 100644 index a53ae92e2f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c +++ /dev/null @@ -1,78 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_lattice_init_f32.c -* -* Description: Floating-point FIR Lattice filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - -/** - * @brief Initialization function for the floating-point FIR lattice filter. - * @param[in] *S points to an instance of the floating-point FIR lattice structure. - * @param[in] numStages number of filter stages. - * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. - * @param[in] *pState points to the state buffer. The array is of length numStages. - * @return none. - */ - -void arm_fir_lattice_init_f32( - arm_fir_lattice_instance_f32 * S, - uint16_t numStages, - float32_t * pCoeffs, - float32_t * pState) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always numStages */ - memset(pState, 0, (numStages) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c deleted file mode 100644 index 8db4985090..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c +++ /dev/null @@ -1,78 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_lattice_init_q15.c -* -* Description: Q15 FIR Lattice filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - /** - * @brief Initialization function for the Q15 FIR lattice filter. - * @param[in] *S points to an instance of the Q15 FIR lattice structure. - * @param[in] numStages number of filter stages. - * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. - * @param[in] *pState points to the state buffer. The array is of length numStages. - * @return none. - */ - -void arm_fir_lattice_init_q15( - arm_fir_lattice_instance_q15 * S, - uint16_t numStages, - q15_t * pCoeffs, - q15_t * pState) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always numStages */ - memset(pState, 0, (numStages) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c deleted file mode 100644 index 035c5e056a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c +++ /dev/null @@ -1,78 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_lattice_init_q31.c -* -* Description: Q31 FIR lattice filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - /** - * @brief Initialization function for the Q31 FIR lattice filter. - * @param[in] *S points to an instance of the Q31 FIR lattice structure. - * @param[in] numStages number of filter stages. - * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. - * @param[in] *pState points to the state buffer. The array is of length numStages. - * @return none. - */ - -void arm_fir_lattice_init_q31( - arm_fir_lattice_instance_q31 * S, - uint16_t numStages, - q31_t * pCoeffs, - q31_t * pState) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always numStages */ - memset(pState, 0, (numStages) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q15.c deleted file mode 100644 index abfb33cf24..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q15.c +++ /dev/null @@ -1,531 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_lattice_q15.c -* -* Description: Q15 FIR lattice filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - -/** - * @brief Processing function for the Q15 FIR lattice filter. - * @param[in] *S points to an instance of the Q15 FIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_fir_lattice_q15( - const arm_fir_lattice_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *px; /* temporary state pointer */ - q15_t *pk; /* temporary coefficient pointer */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t fcurnt1, fnext1, gcurnt1 = 0, gnext1; /* temporary variables for first sample in loop unrolling */ - q31_t fcurnt2, fnext2, gnext2; /* temporary variables for second sample in loop unrolling */ - q31_t fcurnt3, fnext3, gnext3; /* temporary variables for third sample in loop unrolling */ - q31_t fcurnt4, fnext4, gnext4; /* temporary variables for fourth sample in loop unrolling */ - uint32_t numStages = S->numStages; /* Number of stages in the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - pState = &S->pState[0]; - - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - - /* Read two samples from input buffer */ - /* f0(n) = x(n) */ - fcurnt1 = *pSrc++; - fcurnt2 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* Read g0(n-1) from state */ - gcurnt1 = *px; - - /* Process first sample for first tap */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (q31_t) ((gcurnt1 * (*pk)) >> 15u) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (q31_t) ((fcurnt1 * (*pk)) >> 15u) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - /* Process second sample for first tap */ - /* for sample 2 processing */ - fnext2 = (q31_t) ((fcurnt1 * (*pk)) >> 15u) + fcurnt2; - fnext2 = __SSAT(fnext2, 16); - - gnext2 = (q31_t) ((fcurnt2 * (*pk)) >> 15u) + fcurnt1; - gnext2 = __SSAT(gnext2, 16); - - - /* Read next two samples from input buffer */ - /* f0(n+2) = x(n+2) */ - fcurnt3 = *pSrc++; - fcurnt4 = *pSrc++; - - /* Copy only last input samples into the state buffer - which is used for next four samples processing */ - *px++ = (q15_t) fcurnt4; - - /* Process third sample for first tap */ - fnext3 = (q31_t) ((fcurnt2 * (*pk)) >> 15u) + fcurnt3; - fnext3 = __SSAT(fnext3, 16); - gnext3 = (q31_t) ((fcurnt3 * (*pk)) >> 15u) + fcurnt2; - gnext3 = __SSAT(gnext3, 16); - - /* Process fourth sample for first tap */ - fnext4 = (q31_t) ((fcurnt3 * (*pk)) >> 15u) + fcurnt4; - fnext4 = __SSAT(fnext4, 16); - gnext4 = (q31_t) ((fcurnt4 * (*pk++)) >> 15u) + fcurnt3; - gnext4 = __SSAT(gnext4, 16); - - /* Update of f values for next coefficient set processing */ - fcurnt1 = fnext1; - fcurnt2 = fnext2; - fcurnt3 = fnext3; - fcurnt4 = fnext4; - - - /* Loop unrolling. Process 4 taps at a time . */ - stageCnt = (numStages - 1u) >> 2; - - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numStages-3 coefficients. */ - - /* Process 2nd, 3rd, 4th and 5th taps ... here */ - while(stageCnt > 0u) - { - /* Read g1(n-1), g3(n-1) .... from state */ - gcurnt1 = *px; - - /* save g1(n) in state buffer */ - *px++ = (q15_t) gnext4; - - /* Process first sample for 2nd, 6th .. tap */ - /* Sample processing for K2, K6.... */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (q31_t) ((gcurnt1 * (*pk)) >> 15u) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - - /* Process second sample for 2nd, 6th .. tap */ - /* for sample 2 processing */ - fnext2 = (q31_t) ((gnext1 * (*pk)) >> 15u) + fcurnt2; - fnext2 = __SSAT(fnext2, 16); - /* Process third sample for 2nd, 6th .. tap */ - fnext3 = (q31_t) ((gnext2 * (*pk)) >> 15u) + fcurnt3; - fnext3 = __SSAT(fnext3, 16); - /* Process fourth sample for 2nd, 6th .. tap */ - /* fnext4 = fcurnt4 + (*pk) * gnext3; */ - fnext4 = (q31_t) ((gnext3 * (*pk)) >> 15u) + fcurnt4; - fnext4 = __SSAT(fnext4, 16); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - /* Calculation of state values for next stage */ - gnext4 = (q31_t) ((fcurnt4 * (*pk)) >> 15u) + gnext3; - gnext4 = __SSAT(gnext4, 16); - gnext3 = (q31_t) ((fcurnt3 * (*pk)) >> 15u) + gnext2; - gnext3 = __SSAT(gnext3, 16); - - gnext2 = (q31_t) ((fcurnt2 * (*pk)) >> 15u) + gnext1; - gnext2 = __SSAT(gnext2, 16); - - gnext1 = (q31_t) ((fcurnt1 * (*pk++)) >> 15u) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - - /* Read g2(n-1), g4(n-1) .... from state */ - gcurnt1 = *px; - - /* save g1(n) in state buffer */ - *px++ = (q15_t) gnext4; - - /* Sample processing for K3, K7.... */ - /* Process first sample for 3rd, 7th .. tap */ - /* f3(n) = f2(n) + K3 * g2(n-1) */ - fcurnt1 = (q31_t) ((gcurnt1 * (*pk)) >> 15u) + fnext1; - fcurnt1 = __SSAT(fcurnt1, 16); - - /* Process second sample for 3rd, 7th .. tap */ - fcurnt2 = (q31_t) ((gnext1 * (*pk)) >> 15u) + fnext2; - fcurnt2 = __SSAT(fcurnt2, 16); - - /* Process third sample for 3rd, 7th .. tap */ - fcurnt3 = (q31_t) ((gnext2 * (*pk)) >> 15u) + fnext3; - fcurnt3 = __SSAT(fcurnt3, 16); - - /* Process fourth sample for 3rd, 7th .. tap */ - fcurnt4 = (q31_t) ((gnext3 * (*pk)) >> 15u) + fnext4; - fcurnt4 = __SSAT(fcurnt4, 16); - - /* Calculation of state values for next stage */ - /* g3(n) = f2(n) * K3 + g2(n-1) */ - gnext4 = (q31_t) ((fnext4 * (*pk)) >> 15u) + gnext3; - gnext4 = __SSAT(gnext4, 16); - - gnext3 = (q31_t) ((fnext3 * (*pk)) >> 15u) + gnext2; - gnext3 = __SSAT(gnext3, 16); - - gnext2 = (q31_t) ((fnext2 * (*pk)) >> 15u) + gnext1; - gnext2 = __SSAT(gnext2, 16); - - gnext1 = (q31_t) ((fnext1 * (*pk++)) >> 15u) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - /* Read g1(n-1), g3(n-1) .... from state */ - gcurnt1 = *px; - - /* save g1(n) in state buffer */ - *px++ = (q15_t) gnext4; - - /* Sample processing for K4, K8.... */ - /* Process first sample for 4th, 8th .. tap */ - /* f4(n) = f3(n) + K4 * g3(n-1) */ - fnext1 = (q31_t) ((gcurnt1 * (*pk)) >> 15u) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - /* Process second sample for 4th, 8th .. tap */ - /* for sample 2 processing */ - fnext2 = (q31_t) ((gnext1 * (*pk)) >> 15u) + fcurnt2; - fnext2 = __SSAT(fnext2, 16); - - /* Process third sample for 4th, 8th .. tap */ - fnext3 = (q31_t) ((gnext2 * (*pk)) >> 15u) + fcurnt3; - fnext3 = __SSAT(fnext3, 16); - - /* Process fourth sample for 4th, 8th .. tap */ - fnext4 = (q31_t) ((gnext3 * (*pk)) >> 15u) + fcurnt4; - fnext4 = __SSAT(fnext4, 16); - - /* g4(n) = f3(n) * K4 + g3(n-1) */ - /* Calculation of state values for next stage */ - gnext4 = (q31_t) ((fcurnt4 * (*pk)) >> 15u) + gnext3; - gnext4 = __SSAT(gnext4, 16); - - gnext3 = (q31_t) ((fcurnt3 * (*pk)) >> 15u) + gnext2; - gnext3 = __SSAT(gnext3, 16); - - gnext2 = (q31_t) ((fcurnt2 * (*pk)) >> 15u) + gnext1; - gnext2 = __SSAT(gnext2, 16); - gnext1 = (q31_t) ((fcurnt1 * (*pk++)) >> 15u) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - - /* Read g2(n-1), g4(n-1) .... from state */ - gcurnt1 = *px; - - /* save g4(n) in state buffer */ - *px++ = (q15_t) gnext4; - - /* Sample processing for K5, K9.... */ - /* Process first sample for 5th, 9th .. tap */ - /* f5(n) = f4(n) + K5 * g4(n-1) */ - fcurnt1 = (q31_t) ((gcurnt1 * (*pk)) >> 15u) + fnext1; - fcurnt1 = __SSAT(fcurnt1, 16); - - /* Process second sample for 5th, 9th .. tap */ - fcurnt2 = (q31_t) ((gnext1 * (*pk)) >> 15u) + fnext2; - fcurnt2 = __SSAT(fcurnt2, 16); - - /* Process third sample for 5th, 9th .. tap */ - fcurnt3 = (q31_t) ((gnext2 * (*pk)) >> 15u) + fnext3; - fcurnt3 = __SSAT(fcurnt3, 16); - - /* Process fourth sample for 5th, 9th .. tap */ - fcurnt4 = (q31_t) ((gnext3 * (*pk)) >> 15u) + fnext4; - fcurnt4 = __SSAT(fcurnt4, 16); - - /* Calculation of state values for next stage */ - /* g5(n) = f4(n) * K5 + g4(n-1) */ - gnext4 = (q31_t) ((fnext4 * (*pk)) >> 15u) + gnext3; - gnext4 = __SSAT(gnext4, 16); - gnext3 = (q31_t) ((fnext3 * (*pk)) >> 15u) + gnext2; - gnext3 = __SSAT(gnext3, 16); - gnext2 = (q31_t) ((fnext2 * (*pk)) >> 15u) + gnext1; - gnext2 = __SSAT(gnext2, 16); - gnext1 = (q31_t) ((fnext1 * (*pk++)) >> 15u) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - stageCnt--; - } - - /* If the (filter length -1) is not a multiple of 4, compute the remaining filter taps */ - stageCnt = (numStages - 1u) % 0x4u; - - while(stageCnt > 0u) - { - gcurnt1 = *px; - - /* save g value in state buffer */ - *px++ = (q15_t) gnext4; - - /* Process four samples for last three taps here */ - fnext1 = (q31_t) ((gcurnt1 * (*pk)) >> 15u) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - fnext2 = (q31_t) ((gnext1 * (*pk)) >> 15u) + fcurnt2; - fnext2 = __SSAT(fnext2, 16); - - fnext3 = (q31_t) ((gnext2 * (*pk)) >> 15u) + fcurnt3; - fnext3 = __SSAT(fnext3, 16); - - fnext4 = (q31_t) ((gnext3 * (*pk)) >> 15u) + fcurnt4; - fnext4 = __SSAT(fnext4, 16); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext4 = (q31_t) ((fcurnt4 * (*pk)) >> 15u) + gnext3; - gnext4 = __SSAT(gnext4, 16); - gnext3 = (q31_t) ((fcurnt3 * (*pk)) >> 15u) + gnext2; - gnext3 = __SSAT(gnext3, 16); - gnext2 = (q31_t) ((fcurnt2 * (*pk)) >> 15u) + gnext1; - gnext2 = __SSAT(gnext2, 16); - gnext1 = (q31_t) ((fcurnt1 * (*pk++)) >> 15u) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - /* Update of f values for next coefficient set processing */ - fcurnt1 = fnext1; - fcurnt2 = fnext2; - fcurnt3 = fnext3; - fcurnt4 = fnext4; - - stageCnt--; - - } - - /* The results in the 4 accumulators, store in the destination buffer. */ - /* y(n) = fN(n) */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT(fcurnt1, fcurnt2, 16); - *__SIMD32(pDst)++ = __PKHBT(fcurnt3, fcurnt4, 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT(fcurnt2, fcurnt1, 16); - *__SIMD32(pDst)++ = __PKHBT(fcurnt4, fcurnt3, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* f0(n) = x(n) */ - fcurnt1 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g2(n) from state buffer */ - gcurnt1 = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (((q31_t) gcurnt1 * (*pk)) >> 15u) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (((q31_t) fcurnt1 * (*pk++)) >> 15u) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - /* save g1(n) in state buffer */ - *px++ = (q15_t) fcurnt1; - - /* f1(n) is saved in fcurnt1 - for next stage processing */ - fcurnt1 = fnext1; - - stageCnt = (numStages - 1u); - - /* stage loop */ - while(stageCnt > 0u) - { - /* read g2(n) from state buffer */ - gcurnt1 = *px; - - /* save g1(n) in state buffer */ - *px++ = (q15_t) gnext1; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = (((q31_t) gcurnt1 * (*pk)) >> 15u) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext1 = (((q31_t) fcurnt1 * (*pk++)) >> 15u) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - - /* f1(n) is saved in fcurnt1 - for next stage processing */ - fcurnt1 = fnext1; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = __SSAT(fcurnt1, 16); - - - blkCnt--; - - } - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t fcurnt, fnext, gcurnt, gnext; /* temporary variables */ - uint32_t numStages = S->numStages; /* Length of the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - pState = &S->pState[0]; - - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* f0(n) = x(n) */ - fcurnt = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g0(n-1) from state buffer */ - gcurnt = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext = ((gcurnt * (*pk)) >> 15u) + fcurnt; - fnext = __SSAT(fnext, 16); - - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext = ((fcurnt * (*pk++)) >> 15u) + gcurnt; - gnext = __SSAT(gnext, 16); - - /* save f0(n) in state buffer */ - *px++ = (q15_t) fcurnt; - - /* f1(n) is saved in fcurnt - for next stage processing */ - fcurnt = fnext; - - stageCnt = (numStages - 1u); - - /* stage loop */ - while(stageCnt > 0u) - { - /* read g1(n-1) from state buffer */ - gcurnt = *px; - - /* save g0(n-1) in state buffer */ - *px++ = (q15_t) gnext; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext = ((gcurnt * (*pk)) >> 15u) + fcurnt; - fnext = __SSAT(fnext, 16); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext = ((fcurnt * (*pk++)) >> 15u) + gcurnt; - gnext = __SSAT(gnext, 16); - - - /* f1(n) is saved in fcurnt - for next stage processing */ - fcurnt = fnext; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = __SSAT(fcurnt, 16); - - - blkCnt--; - - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q31.c deleted file mode 100644 index 9fb46459dc..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q31.c +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_lattice_q31.c -* -* Description: Q31 FIR lattice filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - -/** - * @brief Processing function for the Q31 FIR lattice filter. - * @param[in] *S points to an instance of the Q31 FIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of samples to process. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * In order to avoid overflows the input signal must be scaled down by 2*log2(numStages) bits. - */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_lattice_q31( - const arm_fir_lattice_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *px; /* temporary state pointer */ - q31_t *pk; /* temporary coefficient pointer */ - q31_t fcurr1, fnext1, gcurr1 = 0, gnext1; /* temporary variables for first sample in loop unrolling */ - q31_t fcurr2, fnext2, gnext2; /* temporary variables for second sample in loop unrolling */ - uint32_t numStages = S->numStages; /* Length of the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - q31_t k; - - pState = &S->pState[0]; - - blkCnt = blockSize >> 1u; - - /* First part of the processing with loop unrolling. Compute 2 outputs at a time. - a second loop below computes the remaining 1 sample. */ - while(blkCnt > 0u) - { - /* f0(n) = x(n) */ - fcurr1 = *pSrc++; - - /* f0(n) = x(n) */ - fcurr2 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g0(n - 1) from state buffer */ - gcurr1 = *px; - - /* Read the reflection coefficient */ - k = *pk++; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (q31_t) (((q63_t) gcurr1 * k) >> 32); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (q31_t) (((q63_t) fcurr1 * (k)) >> 32); - fnext1 = fcurr1 + (fnext1 << 1u); - gnext1 = gcurr1 + (gnext1 << 1u); - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext2 = (q31_t) (((q63_t) fcurr1 * k) >> 32); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext2 = (q31_t) (((q63_t) fcurr2 * (k)) >> 32); - fnext2 = fcurr2 + (fnext2 << 1u); - gnext2 = fcurr1 + (gnext2 << 1u); - - /* save g1(n) in state buffer */ - *px++ = fcurr2; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - fcurr2 = fnext2; - - stageCnt = (numStages - 1u); - - /* stage loop */ - while(stageCnt > 0u) - { - - /* Read the reflection coefficient */ - k = *pk++; - - /* read g2(n) from state buffer */ - gcurr1 = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext2; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = (q31_t) (((q63_t) gcurr1 * k) >> 32); - fnext2 = (q31_t) (((q63_t) gnext1 * k) >> 32); - - fnext1 = fcurr1 + (fnext1 << 1u); - fnext2 = fcurr2 + (fnext2 << 1u); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext2 = (q31_t) (((q63_t) fcurr2 * (k)) >> 32); - gnext2 = gnext1 + (gnext2 << 1u); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext1 = (q31_t) (((q63_t) fcurr1 * (k)) >> 32); - gnext1 = gcurr1 + (gnext1 << 1u); - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - fcurr2 = fnext2; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = fcurr1; - *pDst++ = fcurr2; - - blkCnt--; - - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x2u; - - while(blkCnt > 0u) - { - /* f0(n) = x(n) */ - fcurr1 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g0(n - 1) from state buffer */ - gcurr1 = *px; - - /* Read the reflection coefficient */ - k = *pk++; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (q31_t) (((q63_t) gcurr1 * k) >> 32); - fnext1 = fcurr1 + (fnext1 << 1u); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (q31_t) (((q63_t) fcurr1 * (k)) >> 32); - gnext1 = gcurr1 + (gnext1 << 1u); - - /* save g1(n) in state buffer */ - *px++ = fcurr1; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - - stageCnt = (numStages - 1u); - - /* stage loop */ - while(stageCnt > 0u) - { - /* Read the reflection coefficient */ - k = *pk++; - - /* read g2(n) from state buffer */ - gcurr1 = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext1; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = (q31_t) (((q63_t) gcurr1 * k) >> 32); - fnext1 = fcurr1 + (fnext1 << 1u); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext1 = (q31_t) (((q63_t) fcurr1 * (k)) >> 32); - gnext1 = gcurr1 + (gnext1 << 1u); - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - - stageCnt--; - - } - - - /* y(n) = fN(n) */ - *pDst++ = fcurr1; - - blkCnt--; - - } - - -} - - -#else - -/* Run the below code for Cortex-M0 */ - -void arm_fir_lattice_q31( - const arm_fir_lattice_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *px; /* temporary state pointer */ - q31_t *pk; /* temporary coefficient pointer */ - q31_t fcurr, fnext, gcurr, gnext; /* temporary variables */ - uint32_t numStages = S->numStages; /* Length of the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - pState = &S->pState[0]; - - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* f0(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g0(n-1) from state buffer */ - gcurr = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext = (q31_t) (((q63_t) gcurr * (*pk)) >> 31) + fcurr; - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext = (q31_t) (((q63_t) fcurr * (*pk++)) >> 31) + gcurr; - /* save g1(n) in state buffer */ - *px++ = fcurr; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr = fnext; - - stageCnt = (numStages - 1u); - - /* stage loop */ - while(stageCnt > 0u) - { - /* read g2(n) from state buffer */ - gcurr = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext = (q31_t) (((q63_t) gcurr * (*pk)) >> 31) + fcurr; - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext = (q31_t) (((q63_t) fcurr * (*pk++)) >> 31) + gcurr; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr = fnext; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = fcurr; - - blkCnt--; - - } - -} - -#endif /* #ifndef ARM_MATH_CM0 */ - - -/** - * @} end of FIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q15.c deleted file mode 100644 index 368014f435..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q15.c +++ /dev/null @@ -1,689 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_q15.c -* -* Description: Q15 FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @brief Processing function for the Q15 FIR filter. - * @param[in] *S points to an instance of the Q15 FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, state buffers should be aligned by 32-bit - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - * - * \par - * Refer to the function arm_fir_fast_q15() for a faster but less precise implementation of this function. - */ - -#ifndef ARM_MATH_CM0 - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - -void arm_fir_q15( - const arm_fir_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px1; /* Temporary q15 pointer for state buffer */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold SIMD state and coefficient values */ - q63_t acc0, acc1, acc2, acc3; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of taps in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Copy four new input samples into the state buffer. - ** Use 32-bit SIMD to move the 16-bit data. Only requires two copies. */ - *__SIMD32(pStateCurnt)++ = *__SIMD32(pSrc)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pSrc)++; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Initialize state pointer of type q15 */ - px1 = pState; - - /* Initialize coeff pointer of type q31 */ - pb = pCoeffs; - - /* Read the first two samples from the state buffer: x[n-N], x[n-N-1] */ - x0 = _SIMD32_OFFSET(px1); - - /* Read the third and forth samples from the state buffer: x[n-N-1], x[n-N-2] */ - x1 = _SIMD32_OFFSET(px1 + 1u); - - px1 += 2u; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - tapCnt = numTaps >> 2; - - while(tapCnt > 0u) - { - /* Read the first two coefficients using SIMD: b[N] and b[N-1] coefficients */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N] * x[n-N] + b[N-1] * x[n-N-1] */ - acc0 = __SMLALD(x0, c0, acc0); - - /* acc1 += b[N] * x[n-N-1] + b[N-1] * x[n-N-2] */ - acc1 = __SMLALD(x1, c0, acc1); - - /* Read state x[n-N-2], x[n-N-3] */ - x2 = _SIMD32_OFFSET(px1); - - /* Read state x[n-N-3], x[n-N-4] */ - x3 = _SIMD32_OFFSET(px1 + 1u); - - /* acc2 += b[N] * x[n-N-2] + b[N-1] * x[n-N-3] */ - acc2 = __SMLALD(x2, c0, acc2); - - /* acc3 += b[N] * x[n-N-3] + b[N-1] * x[n-N-4] */ - acc3 = __SMLALD(x3, c0, acc3); - - /* Read coefficients b[N-2], b[N-3] */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N-2] * x[n-N-2] + b[N-3] * x[n-N-3] */ - acc0 = __SMLALD(x2, c0, acc0); - - /* acc1 += b[N-2] * x[n-N-3] + b[N-3] * x[n-N-4] */ - acc1 = __SMLALD(x3, c0, acc1); - - /* Read state x[n-N-4], x[n-N-5] */ - x0 = _SIMD32_OFFSET(px1 + 2u); - - /* Read state x[n-N-5], x[n-N-6] */ - x1 = _SIMD32_OFFSET(px1 + 3u); - - /* acc2 += b[N-2] * x[n-N-4] + b[N-3] * x[n-N-5] */ - acc2 = __SMLALD(x0, c0, acc2); - - /* acc3 += b[N-2] * x[n-N-5] + b[N-3] * x[n-N-6] */ - acc3 = __SMLALD(x1, c0, acc3); - - px1 += 4u; - - tapCnt--; - - } - - - /* If the filter length is not a multiple of 4, compute the remaining filter taps. - ** This is always be 2 taps since the filter length is even. */ - if((numTaps & 0x3u) != 0u) - { - /* Read 2 coefficients */ - c0 = *__SIMD32(pb)++; - - /* Fetch 4 state variables */ - x2 = _SIMD32_OFFSET(px1); - - x3 = _SIMD32_OFFSET(px1 + 1u); - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - - px1 += 2u; - - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALD(x2, c0, acc2); - acc3 = __SMLALD(x3, c0, acc3); - } - - /* The results in the 4 accumulators are in 2.30 format. Convert to 1.15 with saturation. - ** Then store the 4 outputs in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - while(blkCnt > 0u) - { - /* Copy two samples into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Initialize state pointer of type q15 */ - px1 = pState; - - /* Initialize coeff pointer of type q31 */ - pb = pCoeffs; - - tapCnt = numTaps >> 1; - - do - { - - c0 = *__SIMD32(pb)++; - x0 = *__SIMD32(px1)++; - - acc0 = __SMLALD(x0, c0, acc0); - tapCnt--; - } - while(tapCnt > 0u); - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1u) >> 2; - - while(tapCnt > 0u) - { - - /* Copy state values to start of state buffer */ - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* copy remaining data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#else /* UNALIGNED_SUPPORT_DISABLE */ - -void arm_fir_q15( - const arm_fir_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q63_t acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - q15_t *px; /* Temporary q31 pointer for SIMD state buffer accesses */ - q31_t x0, x1, x2, c0; /* Temporary variables to hold SIMD state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of taps in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Copy four new input samples into the state buffer. - ** Use 32-bit SIMD to move the 16-bit data. Only requires two copies. */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Typecast q15_t pointer to q31_t pointer for state reading in q31_t */ - px = pState; - - /* Typecast q15_t pointer to q31_t pointer for coefficient reading in q31_t */ - pb = pCoeffs; - - /* Read the first two samples from the state buffer: x[n-N], x[n-N-1] */ - x0 = *__SIMD32(px)++; - - /* Read the third and forth samples from the state buffer: x[n-N-2], x[n-N-3] */ - x2 = *__SIMD32(px)++; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(numTaps%4) coefficients. */ - tapCnt = numTaps >> 2; - - while(tapCnt > 0) - { - /* Read the first two coefficients using SIMD: b[N] and b[N-1] coefficients */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N] * x[n-N] + b[N-1] * x[n-N-1] */ - acc0 = __SMLALD(x0, c0, acc0); - - /* acc2 += b[N] * x[n-N-2] + b[N-1] * x[n-N-3] */ - acc2 = __SMLALD(x2, c0, acc2); - - /* pack x[n-N-1] and x[n-N-2] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* Read state x[n-N-4], x[n-N-5] */ - x0 = _SIMD32_OFFSET(px); - - /* acc1 += b[N] * x[n-N-1] + b[N-1] * x[n-N-2] */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* pack x[n-N-3] and x[n-N-4] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x0, x2, 0); -#else - x1 = __PKHBT(x2, x0, 0); -#endif - - /* acc3 += b[N] * x[n-N-3] + b[N-1] * x[n-N-4] */ - acc3 = __SMLALDX(x1, c0, acc3); - - /* Read coefficients b[N-2], b[N-3] */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N-2] * x[n-N-2] + b[N-3] * x[n-N-3] */ - acc0 = __SMLALD(x2, c0, acc0); - - /* Read state x[n-N-6], x[n-N-7] with offset */ - x2 = _SIMD32_OFFSET(px + 2u); - - /* acc2 += b[N-2] * x[n-N-4] + b[N-3] * x[n-N-5] */ - acc2 = __SMLALD(x0, c0, acc2); - - /* acc1 += b[N-2] * x[n-N-3] + b[N-3] * x[n-N-4] */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* pack x[n-N-5] and x[n-N-6] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* acc3 += b[N-2] * x[n-N-5] + b[N-3] * x[n-N-6] */ - acc3 = __SMLALDX(x1, c0, acc3); - - /* Update state pointer for next state reading */ - px += 4u; - - /* Decrement tap count */ - tapCnt--; - - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps. - ** This is always be 2 taps since the filter length is even. */ - if((numTaps & 0x3u) != 0u) - { - - /* Read last two coefficients */ - c0 = *__SIMD32(pb)++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc2 = __SMLALD(x2, c0, acc2); - - /* pack state variables */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* Read last state variables */ - x0 = *__SIMD32(px); - - /* Perform the multiply-accumulates */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* pack state variables */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x0, x2, 0); -#else - x1 = __PKHBT(x2, x0, 0); -#endif - - /* Perform the multiply-accumulates */ - acc3 = __SMLALDX(x1, c0, acc3); - } - - /* The results in the 4 accumulators are in 2.30 format. Convert to 1.15 with saturation. - ** Then store the 4 outputs in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - while(blkCnt > 0u) - { - /* Copy two samples into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Use SIMD to hold states and coefficients */ - px = pState; - pb = pCoeffs; - - tapCnt = numTaps >> 1u; - - do - { - acc0 += (q31_t) * px++ * *pb++; - acc0 += (q31_t) * px++ * *pb++; - tapCnt--; - } - while(tapCnt > 0u); - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1u) >> 2; - - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* copy remaining data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#else /* ARM_MATH_CM0 */ - - -/* Run the below code for Cortex-M0 */ - -void arm_fir_q15( - const arm_fir_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - - - - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - q63_t acc; /* Accumulator */ - uint32_t numTaps = S->numTaps; /* Number of nTaps in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Initialize blkCnt with blockSize */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = pCoeffs; - - tapCnt = numTaps; - - /* Perform the multiply-accumulates */ - do - { - /* acc = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */ - acc += (q31_t) * px++ * *pb++; - tapCnt--; - } while(tapCnt > 0u); - - /* The result is in 2.30 format. Convert to 1.15 - ** Then store the output in the destination buffer. */ - *pDst++ = (q15_t) __SSAT((acc >> 15u), 16); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Copy numTaps number of values */ - tapCnt = (numTaps - 1u); - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #ifndef ARM_MATH_CM0 */ - - - - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q31.c deleted file mode 100644 index b3b84ec51f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q31.c +++ /dev/null @@ -1,363 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_q31.c -* -* Description: Q31 FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in] *S points to an instance of the Q31 FIR filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits. - * After all multiply-accumulates are performed, the 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * \par - * Refer to the function arm_fir_fast_q31() for a faster but less precise implementation of this filter for Cortex-M3 and Cortex-M4. - */ - -void arm_fir_q31( - const arm_fir_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t x0, x1, x2; /* Temporary variables to hold state */ - q31_t c0; /* Temporary variable to hold coefficient value */ - q31_t *px; /* Temporary pointer for state */ - q31_t *pb; /* Temporary pointer for coefficient buffer */ - q63_t acc0, acc1, acc2; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt, tapCntN3; /* Loop counters */ - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize / 3; - blockSize = blockSize - (3 * blkCnt); - - tapCnt = numTaps / 3; - tapCntN3 = numTaps - (3 * tapCnt); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Copy three new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Read the first two samples from the state buffer: - * x[n-numTaps], x[n-numTaps-1] */ - x0 = *(px++); - x1 = *(px++); - - /* Loop unrolling. Process 3 taps at a time. */ - i = tapCnt; - - while(i > 0u) - { - /* Read the b[numTaps] coefficient */ - c0 = *pb; - - /* Read x[n-numTaps-2] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q63_t) x0 * c0); - acc1 += ((q63_t) x1 * c0); - acc2 += ((q63_t) x2 * c0); - - /* Read the coefficient and state */ - c0 = *(pb + 1u); - x0 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q63_t) x1 * c0); - acc1 += ((q63_t) x2 * c0); - acc2 += ((q63_t) x0 * c0); - - /* Read the coefficient and state */ - c0 = *(pb + 2u); - x1 = *(px++); - - /* update coefficient pointer */ - pb += 3u; - - /* Perform the multiply-accumulates */ - acc0 += ((q63_t) x2 * c0); - acc1 += ((q63_t) x0 * c0); - acc2 += ((q63_t) x1 * c0); - - /* Decrement the loop counter */ - i--; - } - - /* If the filter length is not a multiple of 3, compute the remaining filter taps */ - - i = tapCntN3; - - while(i > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q63_t) x0 * c0); - acc1 += ((q63_t) x1 * c0); - acc2 += ((q63_t) x2 * c0); - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 3 to process the next group of 3 samples */ - pState = pState + 3; - - /* The results in the 3 accumulators are in 2.30 format. Convert to 1.31 - ** Then store the 3 outputs in the destination buffer. */ - *pDst++ = (q31_t) (acc0 >> 31u); - *pDst++ = (q31_t) (acc1 >> 31u); - *pDst++ = (q31_t) (acc2 >> 31u); - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 3, compute any remaining output samples here. - ** No loop unrolling is used. */ - - while(blockSize > 0u) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - acc0 += (q63_t) * (px++) * (*(pb++)); - i--; - } while(i > 0u); - - /* The result is in 2.62 format. Convert to 1.31 - ** Then store the output in the destination buffer. */ - *pDst++ = (q31_t) (acc0 >> 31u); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blockSize--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (numTaps - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - q31_t *px; /* Temporary pointer for state */ - q31_t *pb; /* Temporary pointer for coefficient buffer */ - q63_t acc; /* Accumulator */ - uint32_t numTaps = S->numTaps; /* Length of the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Initialize blkCnt with blockSize */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = pCoeffs; - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - /* acc = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */ - acc += (q63_t) * px++ * *pb++; - i--; - } while(i > 0u); - - /* The result is in 2.62 format. Convert to 1.31 - ** Then store the output in the destination buffer. */ - *pDst++ = (q31_t) (acc >> 31u); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the starting of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Copy numTaps number of values */ - tapCnt = numTaps - 1u; - - /* Copy the data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q7.c deleted file mode 100644 index 624afa130a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_q7.c +++ /dev/null @@ -1,388 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_q7.c -* -* Description: Q7 FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in] *S points to an instance of the Q7 FIR filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both coefficients and state variables are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * The accumulator is converted to 18.7 format by discarding the low 7 bits. - * Finally, the result is truncated to 1.7 format. - */ - -void arm_fir_q7( - const arm_fir_instance_q7 * S, - q7_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t *pState = S->pState; /* State pointer */ - q7_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q7_t *pStateCurnt; /* Points to the current sample of the state */ - q7_t x0, x1, x2, x3; /* Temporary variables to hold state */ - q7_t c0; /* Temporary variable to hold coefficient value */ - q7_t *px; /* Temporary pointer for state */ - q7_t *pb; /* Temporary pointer for coefficient buffer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Copy four new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Read the first three samples from the state buffer: - * x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2] */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - i = tapCnt; - - while(i > 0u) - { - /* Read the b[numTaps] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x3 = *(px++); - - /* acc0 += b[numTaps] * x[n-numTaps] */ - acc0 += ((q15_t) x0 * c0); - - /* acc1 += b[numTaps] * x[n-numTaps-1] */ - acc1 += ((q15_t) x1 * c0); - - /* acc2 += b[numTaps] * x[n-numTaps-2] */ - acc2 += ((q15_t) x2 * c0); - - /* acc3 += b[numTaps] * x[n-numTaps-3] */ - acc3 += ((q15_t) x3 * c0); - - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q15_t) x1 * c0); - acc1 += ((q15_t) x2 * c0); - acc2 += ((q15_t) x3 * c0); - acc3 += ((q15_t) x0 * c0); - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q15_t) x2 * c0); - acc1 += ((q15_t) x3 * c0); - acc2 += ((q15_t) x0 * c0); - acc3 += ((q15_t) x1 * c0); - /* Read the b[numTaps-3] coefficients */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q15_t) x3 * c0); - acc1 += ((q15_t) x0 * c0); - acc2 += ((q15_t) x1 * c0); - acc3 += ((q15_t) x2 * c0); - i--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - - i = numTaps - (tapCnt * 4u); - while(i > 0u) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q15_t) x0 * c0); - acc1 += ((q15_t) x1 * c0); - acc2 += ((q15_t) x2 * c0); - acc3 += ((q15_t) x3 * c0); - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4; - - /* The results in the 4 accumulators are in 2.62 format. Convert to 1.31 - ** Then store the 4 outputs in the destination buffer. */ - acc0 = __SSAT((acc0 >> 7u), 8); - *pDst++ = acc0; - acc1 = __SSAT((acc1 >> 7u), 8); - *pDst++ = acc1; - acc2 = __SSAT((acc2 >> 7u), 8); - *pDst++ = acc2; - acc3 = __SSAT((acc3 >> 7u), 8); - *pDst++ = acc3; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 4u; - - while(blkCnt > 0u) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - acc0 += (q15_t) * (px++) * (*(pb++)); - i--; - } while(i > 0u); - - /* The result is in 2.14 format. Convert to 1.7 - ** Then store the output in the destination buffer. */ - *pDst++ = __SSAT((acc0 >> 7u), 8); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (numTaps - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - uint32_t numTaps = S->numTaps; /* Number of taps in the filter */ - uint32_t i, blkCnt; /* Loop counters */ - q7_t *pState = S->pState; /* State pointer */ - q7_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q7_t *px, *pb; /* Temporary pointers to state and coeff */ - q31_t acc = 0; /* Accumlator */ - q7_t *pStateCurnt; /* Points to the current sample of the state */ - - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1u); - - /* Initialize blkCnt with blockSize */ - blkCnt = blockSize; - - /* Perform filtering upto BlockSize - BlockSize%4 */ - while(blkCnt > 0u) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set accumulator to zero */ - acc = 0; - - /* Initialize state pointer of type q7 */ - px = pState; - - /* Initialize coeff pointer of type q7 */ - pb = pCoeffs; - - - i = numTaps; - - while(i > 0u) - { - /* acc = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */ - acc += (q15_t) * px++ * *pb++; - i--; - } - - /* Store the 1.7 format filter output in destination buffer */ - *pDst++ = (q7_t) __SSAT((acc >> 7), 8); - - /* Advance the state pointer by 1 to process the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - - /* Copy numTaps number of values */ - i = (numTaps - 1u); - - /* Copy q7_t data */ - while(i > 0u) - { - *pStateCurnt++ = *pState++; - i--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_f32.c deleted file mode 100644 index e969d5c842..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_f32.c +++ /dev/null @@ -1,365 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_sparse_f32.c -* -* Description: Floating-point sparse FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ------------------------------------------------------------------- */ -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup FIR_Sparse Finite Impulse Response (FIR) Sparse Filters - * - * This group of functions implements sparse FIR filters. - * Sparse FIR filters are equivalent to standard FIR filters except that most of the coefficients are equal to zero. - * Sparse filters are used for simulating reflections in communications and audio applications. - * - * There are separate functions for Q7, Q15, Q31, and floating-point data types. - * The functions operate on blocks of input and output data and each call to the function processes - * blockSize samples through the filter. pSrc and - * pDst points to input and output arrays respectively containing blockSize values. - * - * \par Algorithm: - * The sparse filter instant structure contains an array of tap indices pTapDelay which specifies the locations of the non-zero coefficients. - * This is in addition to the coefficient array b. - * The implementation essentially skips the multiplications by zero and leads to an efficient realization. - *
   
- *     y[n] = b[0] * x[n-pTapDelay[0]] + b[1] * x[n-pTapDelay[1]] + b[2] * x[n-pTapDelay[2]] + ...+ b[numTaps-1] * x[n-pTapDelay[numTaps-1]]    
- * 
- * \par - * \image html FIRSparse.gif "Sparse FIR filter. b[n] represents the filter coefficients" - * \par - * pCoeffs points to a coefficient array of size numTaps; - * pTapDelay points to an array of nonzero indices and is also of size numTaps; - * pState points to a state array of size maxDelay + blockSize, where - * maxDelay is the largest offset value that is ever used in the pTapDelay array. - * Some of the processing functions also require temporary working buffers. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient and offset arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 4 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * The code below statically initializes each of the 4 different data type filter instance structures - *
    
- *arm_fir_sparse_instance_f32 S = {numTaps, 0, pState, pCoeffs, maxDelay, pTapDelay};    
- *arm_fir_sparse_instance_q31 S = {numTaps, 0, pState, pCoeffs, maxDelay, pTapDelay};    
- *arm_fir_sparse_instance_q15 S = {numTaps, 0, pState, pCoeffs, maxDelay, pTapDelay};    
- *arm_fir_sparse_instance_q7 S =  {numTaps, 0, pState, pCoeffs, maxDelay, pTapDelay};    
- * 
- * \par - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the sparse FIR filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Processing function for the floating-point sparse FIR filter. - * @param[in] *S points to an instance of the floating-point sparse FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] *pScratchIn points to a temporary buffer of size blockSize. - * @param[in] blockSize number of input samples to process per call. - * @return none. - */ - -void arm_fir_sparse_f32( - arm_fir_sparse_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - float32_t * pScratchIn, - uint32_t blockSize) -{ - - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *px; /* Scratch buffer pointer */ - float32_t *py = pState; /* Temporary pointers for state buffer */ - float32_t *pb = pScratchIn; /* Temporary pointers for scratch buffer */ - float32_t *pOut; /* Destination pointer */ - int32_t *pTapDelay = S->pTapDelay; /* Pointer to the array containing offset of the non-zero tap values. */ - uint32_t delaySize = S->maxDelay + blockSize; /* state length */ - uint16_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - int32_t readIndex; /* Read index of the state buffer */ - uint32_t tapCnt, blkCnt; /* loop counters */ - float32_t coeff = *pCoeffs++; /* Read the first coefficient value */ - - - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_f32((int32_t *) py, delaySize, &S->stateIndex, 1, - (int32_t *) pSrc, 1, blockSize); - - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer */ - px = pb; - - /* Working pointer for destination buffer */ - pOut = pDst; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 Multiplications at a time. */ - blkCnt = blockSize >> 2u; - - while(blkCnt > 0u) - { - /* Perform Multiplications and store in destination buffer */ - *pOut++ = *px++ * coeff; - *pOut++ = *px++ * coeff; - *pOut++ = *px++ * coeff; - *pOut++ = *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* Perform Multiplications and store in destination buffer */ - *pOut++ = *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 1u; - - while(tapCnt > 0u) - { - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer */ - px = pb; - - /* Working pointer for destination buffer */ - pOut = pDst; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2u; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Perform Multiplications and store in destination buffer */ - *pOut++ = *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 1u; - - while(tapCnt > 0u) - { - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer */ - px = pb; - - /* Working pointer for destination buffer */ - pOut = pDst; - - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = - ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_f32.c deleted file mode 100644 index 2934352d05..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_f32.c +++ /dev/null @@ -1,102 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_sparse_init_f32.c -* -* Description: Floating-point sparse FIR filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Initialization function for the floating-point sparse FIR filter. - * @param[in,out] *S points to an instance of the floating-point sparse FIR structure. - * @param[in] numTaps number of nonzero coefficients in the filter. - * @param[in] *pCoeffs points to the array of filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] *pTapDelay points to the array of offset times. - * @param[in] maxDelay maximum offset time supported. - * @param[in] blockSize number of samples that will be processed per block. - * @return none - * - * Description: - * \par - * pCoeffs holds the filter coefficients and has length numTaps. - * pState holds the filter's state variables and must be of length - * maxDelay + blockSize, where maxDelay - * is the maximum number of delay line values. - * blockSize is the - * number of samples processed by the arm_fir_sparse_f32() function. - */ - -void arm_fir_sparse_init_f32( - arm_fir_sparse_instance_f32 * S, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - int32_t * pTapDelay, - uint16_t maxDelay, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign TapDelay pointer */ - S->pTapDelay = pTapDelay; - - /* Assign MaxDelay */ - S->maxDelay = maxDelay; - - /* reset the stateIndex to 0 */ - S->stateIndex = 0u; - - /* Clear state buffer and size is always maxDelay + blockSize */ - memset(pState, 0, (maxDelay + blockSize) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q15.c deleted file mode 100644 index 47a116e952..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q15.c +++ /dev/null @@ -1,102 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_sparse_init_q15.c -* -* Description: Q15 sparse FIR filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Initialization function for the Q15 sparse FIR filter. - * @param[in,out] *S points to an instance of the Q15 sparse FIR structure. - * @param[in] numTaps number of nonzero coefficients in the filter. - * @param[in] *pCoeffs points to the array of filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] *pTapDelay points to the array of offset times. - * @param[in] maxDelay maximum offset time supported. - * @param[in] blockSize number of samples that will be processed per block. - * @return none - * - * Description: - * \par - * pCoeffs holds the filter coefficients and has length numTaps. - * pState holds the filter's state variables and must be of length - * maxDelay + blockSize, where maxDelay - * is the maximum number of delay line values. - * blockSize is the - * number of words processed by arm_fir_sparse_q15() function. - */ - -void arm_fir_sparse_init_q15( - arm_fir_sparse_instance_q15 * S, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - int32_t * pTapDelay, - uint16_t maxDelay, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign TapDelay pointer */ - S->pTapDelay = pTapDelay; - - /* Assign MaxDelay */ - S->maxDelay = maxDelay; - - /* reset the stateIndex to 0 */ - S->stateIndex = 0u; - - /* Clear state buffer and size is always maxDelay + blockSize */ - memset(pState, 0, (maxDelay + blockSize) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q31.c deleted file mode 100644 index 360a219b20..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q31.c +++ /dev/null @@ -1,101 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_sparse_init_q31.c -* -* Description: Q31 sparse FIR filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Initialization function for the Q31 sparse FIR filter. - * @param[in,out] *S points to an instance of the Q31 sparse FIR structure. - * @param[in] numTaps number of nonzero coefficients in the filter. - * @param[in] *pCoeffs points to the array of filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] *pTapDelay points to the array of offset times. - * @param[in] maxDelay maximum offset time supported. - * @param[in] blockSize number of samples that will be processed per block. - * @return none - * - * Description: - * \par - * pCoeffs holds the filter coefficients and has length numTaps. - * pState holds the filter's state variables and must be of length - * maxDelay + blockSize, where maxDelay - * is the maximum number of delay line values. - * blockSize is the number of words processed by arm_fir_sparse_q31() function. - */ - -void arm_fir_sparse_init_q31( - arm_fir_sparse_instance_q31 * S, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - int32_t * pTapDelay, - uint16_t maxDelay, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign TapDelay pointer */ - S->pTapDelay = pTapDelay; - - /* Assign MaxDelay */ - S->maxDelay = maxDelay; - - /* reset the stateIndex to 0 */ - S->stateIndex = 0u; - - /* Clear state buffer and size is always maxDelay + blockSize */ - memset(pState, 0, (maxDelay + blockSize) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q7.c deleted file mode 100644 index b400297ca6..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q7.c +++ /dev/null @@ -1,102 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_sparse_init_q7.c -* -* Description: Q7 sparse FIR filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Initialization function for the Q7 sparse FIR filter. - * @param[in,out] *S points to an instance of the Q7 sparse FIR structure. - * @param[in] numTaps number of nonzero coefficients in the filter. - * @param[in] *pCoeffs points to the array of filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] *pTapDelay points to the array of offset times. - * @param[in] maxDelay maximum offset time supported. - * @param[in] blockSize number of samples that will be processed per block. - * @return none - * - * Description: - * \par - * pCoeffs holds the filter coefficients and has length numTaps. - * pState holds the filter's state variables and must be of length - * maxDelay + blockSize, where maxDelay - * is the maximum number of delay line values. - * blockSize is the - * number of samples processed by the arm_fir_sparse_q7() function. - */ - -void arm_fir_sparse_init_q7( - arm_fir_sparse_instance_q7 * S, - uint16_t numTaps, - q7_t * pCoeffs, - q7_t * pState, - int32_t * pTapDelay, - uint16_t maxDelay, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign TapDelay pointer */ - S->pTapDelay = pTapDelay; - - /* Assign MaxDelay */ - S->maxDelay = maxDelay; - - /* reset the stateIndex to 0 */ - S->stateIndex = 0u; - - /* Clear state buffer and size is always maxDelay + blockSize */ - memset(pState, 0, (maxDelay + blockSize) * sizeof(q7_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q15.c deleted file mode 100644 index 016f833456..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q15.c +++ /dev/null @@ -1,406 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_sparse_q15.c -* -* Description: Q15 sparse FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ------------------------------------------------------------------- */ -#include "arm_math.h" - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Processing function for the Q15 sparse FIR filter. - * @param[in] *S points to an instance of the Q15 sparse FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] *pScratchIn points to a temporary buffer of size blockSize. - * @param[in] *pScratchOut points to a temporary buffer of size blockSize. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 32-bit accumulator. - * The 1.15 x 1.15 multiplications yield a 2.30 result and these are added to a 2.30 accumulator. - * Thus the full precision of the multiplications is maintained but there is only a single guard bit in the accumulator. - * If the accumulator result overflows it will wrap around rather than saturate. - * After all multiply-accumulates are performed, the 2.30 accumulator is truncated to 2.15 format and then saturated to 1.15 format. - * In order to avoid overflows the input signal or coefficients must be scaled down by log2(numTaps) bits. - */ - - -void arm_fir_sparse_q15( - arm_fir_sparse_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - q15_t * pScratchIn, - q31_t * pScratchOut, - uint32_t blockSize) -{ - - q15_t *pState = S->pState; /* State pointer */ - q15_t *pIn = pSrc; /* Working pointer for input */ - q15_t *pOut = pDst; /* Working pointer for output */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *px; /* Temporary pointers for scratch buffer */ - q15_t *pb = pScratchIn; /* Temporary pointers for scratch buffer */ - q15_t *py = pState; /* Temporary pointers for state buffer */ - int32_t *pTapDelay = S->pTapDelay; /* Pointer to the array containing offset of the non-zero tap values. */ - uint32_t delaySize = S->maxDelay + blockSize; /* state length */ - uint16_t numTaps = S->numTaps; /* Filter order */ - int32_t readIndex; /* Read index of the state buffer */ - uint32_t tapCnt, blkCnt; /* loop counters */ - q15_t coeff = *pCoeffs++; /* Read the first coefficient value */ - q31_t *pScr2 = pScratchOut; /* Working pointer for pScratchOut */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2; /* Temporary variables */ - - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_q15(py, delaySize, &S->stateIndex, 1, pIn, 1, blockSize); - - /* Loop over the number of taps. */ - tapCnt = numTaps; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 multiplications at a time. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 1u; - - while(tapCnt > 0u) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* All the output values are in pScratchOut buffer. - Convert them into 1.15 format, saturate and store in the destination buffer. */ - /* Loop over the blockSize. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - in1 = *pScr2++; - in2 = *pScr2++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT((q15_t) __SSAT(in1 >> 15, 16), (q15_t) __SSAT(in2 >> 15, 16), - 16); - -#else - *__SIMD32(pOut)++ = - __PKHBT((q15_t) __SSAT(in2 >> 15, 16), (q15_t) __SSAT(in1 >> 15, 16), - 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - in1 = *pScr2++; - - in2 = *pScr2++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT((q15_t) __SSAT(in1 >> 15, 16), (q15_t) __SSAT(in2 >> 15, 16), - 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT((q15_t) __SSAT(in2 >> 15, 16), (q15_t) __SSAT(in1 >> 15, 16), - 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - blkCnt--; - - } - - /* If the blockSize is not a multiple of 4, - remaining samples are processed in the below loop */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - *pOut++ = (q15_t) __SSAT(*pScr2++ >> 15, 16); - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_q15(py, delaySize, &S->stateIndex, 1, pIn, 1, blockSize); - - /* Loop over the number of taps. */ - tapCnt = numTaps; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 1u; - - while(tapCnt > 0u) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* All the output values are in pScratchOut buffer. - Convert them into 1.15 format, saturate and store in the destination buffer. */ - /* Loop over the blockSize. */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - *pOut++ = (q15_t) __SSAT(*pScr2++ >> 15, 16); - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q31.c deleted file mode 100644 index 3d2f6d4028..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q31.c +++ /dev/null @@ -1,370 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_sparse_q31.c -* -* Description: Q31 sparse FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ------------------------------------------------------------------- */ -#include "arm_math.h" - - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Processing function for the Q31 sparse FIR filter. - * @param[in] *S points to an instance of the Q31 sparse FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] *pScratchIn points to a temporary buffer of size blockSize. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 32-bit accumulator. - * The 1.31 x 1.31 multiplications are truncated to 2.30 format. - * This leads to loss of precision on the intermediate multiplications and provides only a single guard bit. - * If the accumulator result overflows, it wraps around rather than saturate. - * In order to avoid overflows the input signal or coefficients must be scaled down by log2(numTaps) bits. - */ - -void arm_fir_sparse_q31( - arm_fir_sparse_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - q31_t * pScratchIn, - uint32_t blockSize) -{ - - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *px; /* Scratch buffer pointer */ - q31_t *py = pState; /* Temporary pointers for state buffer */ - q31_t *pb = pScratchIn; /* Temporary pointers for scratch buffer */ - q31_t *pOut; /* Destination pointer */ - q63_t out; /* Temporary output variable */ - int32_t *pTapDelay = S->pTapDelay; /* Pointer to the array containing offset of the non-zero tap values. */ - uint32_t delaySize = S->maxDelay + blockSize; /* state length */ - uint16_t numTaps = S->numTaps; /* Filter order */ - int32_t readIndex; /* Read index of the state buffer */ - uint32_t tapCnt, blkCnt; /* loop counters */ - q31_t coeff = *pCoeffs++; /* Read the first coefficient value */ - q31_t in; - - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_f32((int32_t *) py, delaySize, &S->stateIndex, 1, - (int32_t *) pSrc, 1, blockSize); - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pOut = pDst; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 Multiplications at a time. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - /* Perform Multiplications and store in the destination buffer */ - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* Perform Multiplications and store in the destination buffer */ - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 1u; - - while(tapCnt > 0u) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pOut = pDst; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Working output pointer is updated */ - pOut = pDst; - - /* Output is converted into 1.31 format. */ - /* Loop over the blockSize. Unroll by a factor of 4. - * process 4 output samples at a time. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - in = *pOut << 1; - *pOut++ = in; - in = *pOut << 1; - *pOut++ = in; - in = *pOut << 1; - *pOut++ = in; - in = *pOut << 1; - *pOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * process the remaining output samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - in = *pOut << 1; - *pOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Perform Multiplications and store in the destination buffer */ - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 1u; - - while(tapCnt > 0u) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pOut = pDst; - - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Working output pointer is updated */ - pOut = pDst; - - /* Output is converted into 1.31 format. */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - in = *pOut << 1; - *pOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q7.c deleted file mode 100644 index ace5d07037..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q7.c +++ /dev/null @@ -1,398 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fir_sparse_q7.c -* -* Description: Q7 sparse FIR filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ------------------------------------------------------------------- */ -#include "arm_math.h" - - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - - -/** - * @brief Processing function for the Q7 sparse FIR filter. - * @param[in] *S points to an instance of the Q7 sparse FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] *pScratchIn points to a temporary buffer of size blockSize. - * @param[in] *pScratchOut points to a temporary buffer of size blockSize. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both coefficients and state variables are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * The accumulator is then converted to 18.7 format by discarding the low 7 bits. - * Finally, the result is truncated to 1.7 format. - */ - -void arm_fir_sparse_q7( - arm_fir_sparse_instance_q7 * S, - q7_t * pSrc, - q7_t * pDst, - q7_t * pScratchIn, - q31_t * pScratchOut, - uint32_t blockSize) -{ - - q7_t *pState = S->pState; /* State pointer */ - q7_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q7_t *px; /* Scratch buffer pointer */ - q7_t *py = pState; /* Temporary pointers for state buffer */ - q7_t *pb = pScratchIn; /* Temporary pointers for scratch buffer */ - q7_t *pOut = pDst; /* Destination pointer */ - int32_t *pTapDelay = S->pTapDelay; /* Pointer to the array containing offset of the non-zero tap values. */ - uint32_t delaySize = S->maxDelay + blockSize; /* state length */ - uint16_t numTaps = S->numTaps; /* Filter order */ - int32_t readIndex; /* Read index of the state buffer */ - uint32_t tapCnt, blkCnt; /* loop counters */ - q7_t coeff = *pCoeffs++; /* Read the coefficient value */ - q31_t *pScr2 = pScratchOut; /* Working pointer for scratch buffer of output values */ - q31_t in; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t in1, in2, in3, in4; - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_q7(py, (int32_t) delaySize, &S->stateIndex, 1, pSrc, 1, - blockSize); - - /* Loop over the number of taps. */ - tapCnt = numTaps; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 multiplications at a time. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 1u; - - while(tapCnt > 0u) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* All the output values are in pScratchOut buffer. - Convert them into 1.15 format, saturate and store in the destination buffer. */ - /* Loop over the blockSize. */ - blkCnt = blockSize >> 2; - - while(blkCnt > 0u) - { - in1 = (q7_t) __SSAT(*pScr2++ >> 7, 8); - in2 = (q7_t) __SSAT(*pScr2++ >> 7, 8); - in3 = (q7_t) __SSAT(*pScr2++ >> 7, 8); - in4 = (q7_t) __SSAT(*pScr2++ >> 7, 8); - - *__SIMD32(pOut)++ = __PACKq7(in1, in2, in3, in4); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - remaining samples are processed in the below loop */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - *pOut++ = (q7_t) __SSAT(*pScr2++ >> 7, 8); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_q7(py, (int32_t) delaySize, &S->stateIndex, 1, pSrc, 1, - blockSize); - - /* Loop over the number of taps. */ - tapCnt = numTaps; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 1u; - - while(tapCnt > 0u) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = - ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if(readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* All the output values are in pScratchOut buffer. - Convert them into 1.15 format, saturate and store in the destination buffer. */ - /* Loop over the blockSize. */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - *pOut++ = (q7_t) __SSAT(*pScr2++ >> 7, 8); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_f32.c deleted file mode 100644 index 074605553d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_f32.c +++ /dev/null @@ -1,440 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_iir_lattice_f32.c -* -* Description: Floating-point IIR Lattice filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup IIR_Lattice Infinite Impulse Response (IIR) Lattice Filters - * - * This set of functions implements lattice filters - * for Q15, Q31 and floating-point data types. Lattice filters are used in a - * variety of adaptive filter applications. The filter structure has feedforward and - * feedback components and the net impulse response is infinite length. - * The functions operate on blocks - * of input and output data and each call to the function processes - * blockSize samples through the filter. pSrc and - * pDst point to input and output arrays containing blockSize values. - - * \par Algorithm: - * \image html IIRLattice.gif "Infinite Impulse Response Lattice filter" - *
    
- *    fN(n)   =  x(n)    
- *    fm-1(n) = fm(n) - km * gm-1(n-1)   for m = N, N-1, ...1    
- *    gm(n)   = km * fm-1(n) + gm-1(n-1) for m = N, N-1, ...1    
- *    y(n)    = vN * gN(n) + vN-1 * gN-1(n) + ...+ v0 * g0(n)    
- * 
- * \par - * pkCoeffs points to array of reflection coefficients of size numStages. - * Reflection coefficients are stored in time-reversed order. - * \par - *
    
- *    {kN, kN-1, ....k1}    
- * 
- * pvCoeffs points to the array of ladder coefficients of size (numStages+1). - * Ladder coefficients are stored in time-reversed order. - * \par - *
    
- *    {vN, vN-1, ...v0}    
- * 
- * pState points to a state array of size numStages + blockSize. - * The state variables shown in the figure above (the g values) are stored in the pState array. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros and then manually initialize the instance structure as follows: - *
    
- *arm_iir_lattice_instance_f32 S = {numStages, pState, pkCoeffs, pvCoeffs};    
- *arm_iir_lattice_instance_q31 S = {numStages, pState, pkCoeffs, pvCoeffs};    
- *arm_iir_lattice_instance_q15 S = {numStages, pState, pkCoeffs, pvCoeffs};    
- * 
- * \par - * where numStages is the number of stages in the filter; pState points to the state buffer array; - * pkCoeffs points to array of the reflection coefficients; pvCoeffs points to the array of ladder coefficients. - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the IIR lattice filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - -/** - * @brief Processing function for the floating-point IIR lattice filter. - * @param[in] *S points to an instance of the floating-point IIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_iir_lattice_f32( - const arm_iir_lattice_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t fnext1, gcurr1, gnext; /* Temporary variables for lattice stages */ - float32_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* temporary variables for counts */ - float32_t *px1, *px2, *pk, *pv; /* temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - float32_t *pState; /* State pointer */ - float32_t *pStateCurnt; /* State current pointer */ - float32_t k1, k2; - float32_t v1, v2, v3, v4; - float32_t gcurr2; - float32_t fnext2; - - /* initialise loop count */ - blkCnt = blockSize; - - /* initialise state pointer */ - pState = &S->pState[0]; - - /* Sample processing */ - while(blkCnt > 0u) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fnext2 = *pSrc++; - - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - - /* Set accumulator to zero */ - acc = 0.0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = (numStages) >> 2; - - while(tapCnt > 0u) - { - /* Read gN-1(n-1) from state buffer */ - gcurr1 = *px1; - - /* read reflection coefficient kN */ - k1 = *pk; - - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext1 = fnext2 - (k1 * gcurr1); - - /* read ladder coefficient vN */ - v1 = *pv; - - /* read next reflection coefficient kN-1 */ - k2 = *(pk + 1u); - - /* Read gN-2(n-1) from state buffer */ - gcurr2 = *(px1 + 1u); - - /* read next ladder coefficient vN-1 */ - v2 = *(pv + 1u); - - /* fN-2(n) = fN-1(n) - kN-1 * gN-2(n-1) */ - fnext2 = fnext1 - (k2 * gcurr2); - - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = gcurr1 + (k1 * fnext1); - - /* read reflection coefficient kN-2 */ - k1 = *(pk + 2u); - - /* write gN(n) into state for next sample processing */ - *px2++ = gnext; - - /* Read gN-3(n-1) from state buffer */ - gcurr1 = *(px1 + 2u); - - /* y(n) += gN(n) * vN */ - acc += (gnext * v1); - - /* fN-3(n) = fN-2(n) - kN-2 * gN-3(n-1) */ - fnext1 = fnext2 - (k1 * gcurr1); - - /* gN-1(n) = kN-1 * fN-2(n) + gN-2(n-1) */ - gnext = gcurr2 + (k2 * fnext2); - - /* Read gN-4(n-1) from state buffer */ - gcurr2 = *(px1 + 3u); - - /* y(n) += gN-1(n) * vN-1 */ - acc += (gnext * v2); - - /* read reflection coefficient kN-3 */ - k2 = *(pk + 3u); - - /* write gN-1(n) into state for next sample processing */ - *px2++ = gnext; - - /* fN-4(n) = fN-3(n) - kN-3 * gN-4(n-1) */ - fnext2 = fnext1 - (k2 * gcurr2); - - /* gN-2(n) = kN-2 * fN-3(n) + gN-3(n-1) */ - gnext = gcurr1 + (k1 * fnext1); - - /* read ladder coefficient vN-2 */ - v3 = *(pv + 2u); - - /* y(n) += gN-2(n) * vN-2 */ - acc += (gnext * v3); - - /* write gN-2(n) into state for next sample processing */ - *px2++ = gnext; - - /* update pointer */ - pk += 4u; - - /* gN-3(n) = kN-3 * fN-4(n) + gN-4(n-1) */ - gnext = (fnext2 * k2) + gcurr2; - - /* read next ladder coefficient vN-3 */ - v4 = *(pv + 3u); - - /* y(n) += gN-4(n) * vN-4 */ - acc += (gnext * v4); - - /* write gN-3(n) into state for next sample processing */ - *px2++ = gnext; - - /* update pointers */ - px1 += 4u; - pv += 4u; - - tapCnt--; - - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = (numStages) % 0x4u; - - while(tapCnt > 0u) - { - gcurr1 = *px1++; - /* Process sample for last taps */ - fnext1 = fnext2 - ((*pk) * gcurr1); - gnext = (fnext1 * (*pk++)) + gcurr1; - /* Output samples for last taps */ - acc += (gnext * (*pv++)); - *px2++ = gnext; - fnext2 = fnext1; - - tapCnt--; - - } - - /* y(n) += g0(n) * v0 */ - acc += (fnext2 * (*pv)); - - *px2++ = fnext2; - - /* write out into pDst */ - *pDst++ = acc; - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 1u; - - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - tapCnt = numStages >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - - } - - /* Calculate remaining number of copies */ - tapCnt = (numStages) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#else - -void arm_iir_lattice_f32( - const arm_iir_lattice_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t fcurr, fnext = 0, gcurr, gnext; /* Temporary variables for lattice stages */ - float32_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* temporary variables for counts */ - float32_t *px1, *px2, *pk, *pv; /* temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - float32_t *pState; /* State pointer */ - float32_t *pStateCurnt; /* State current pointer */ - - - /* Run the below code for Cortex-M0 */ - - blkCnt = blockSize; - - pState = &S->pState[0]; - - /* Sample processing */ - while(blkCnt > 0u) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0.0f; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - - /* Process sample for numStages */ - tapCnt = numStages; - - while(tapCnt > 0u) - { - gcurr = *px1++; - /* Process sample for last taps */ - fnext = fcurr - ((*pk) * gcurr); - gnext = (fnext * (*pk++)) + gcurr; - - /* Output samples for last taps */ - acc += (gnext * (*pv++)); - *px2++ = gnext; - fcurr = fnext; - - /* Decrementing loop counter */ - tapCnt--; - - } - - /* y(n) += g0(n) * v0 */ - acc += (fnext * (*pv)); - - *px2++ = fnext; - - /* write out into pDst */ - *pDst++ = acc; - - /* Advance the state pointer by 1 to process the next group of samples */ - pState = pState + 1u; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - tapCnt = numStages; - - /* Copy the data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #ifndef ARM_MATH_CM0 */ - - -/** - * @} end of IIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c deleted file mode 100644 index 89c00c24df..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c +++ /dev/null @@ -1,86 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_iir_lattice_init_f32.c -* -* Description: Floating-point IIR lattice filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - -/** - * @brief Initialization function for the floating-point IIR lattice filter. - * @param[in] *S points to an instance of the floating-point IIR lattice structure. - * @param[in] numStages number of stages in the filter. - * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. - * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. - * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_iir_lattice_init_f32( - arm_iir_lattice_instance_f32 * S, - uint16_t numStages, - float32_t * pkCoeffs, - float32_t * pvCoeffs, - float32_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign reflection coefficient pointer */ - S->pkCoeffs = pkCoeffs; - - /* Assign ladder coefficient pointer */ - S->pvCoeffs = pvCoeffs; - - /* Clear state buffer and size is always blockSize + numStages */ - memset(pState, 0, (numStages + blockSize) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - -} - - /** - * @} end of IIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c deleted file mode 100644 index 7dac99fcab..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c +++ /dev/null @@ -1,86 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_iir_lattice_init_q15.c -* -* Description: Q15 IIR lattice filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - - /** - * @brief Initialization function for the Q15 IIR lattice filter. - * @param[in] *S points to an instance of the Q15 IIR lattice structure. - * @param[in] numStages number of stages in the filter. - * @param[in] *pkCoeffs points to reflection coefficient buffer. The array is of length numStages. - * @param[in] *pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1. - * @param[in] *pState points to state buffer. The array is of length numStages+blockSize. - * @param[in] blockSize number of samples to process per call. - * @return none. - */ - -void arm_iir_lattice_init_q15( - arm_iir_lattice_instance_q15 * S, - uint16_t numStages, - q15_t * pkCoeffs, - q15_t * pvCoeffs, - q15_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign reflection coefficient pointer */ - S->pkCoeffs = pkCoeffs; - - /* Assign ladder coefficient pointer */ - S->pvCoeffs = pvCoeffs; - - /* Clear state buffer and size is always blockSize + numStages */ - memset(pState, 0, (numStages + blockSize) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - -} - -/** - * @} end of IIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c deleted file mode 100644 index 73b18a5977..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c +++ /dev/null @@ -1,86 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_iir_lattice_init_q31.c -* -* Description: Initialization function for the Q31 IIR lattice filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - - /** - * @brief Initialization function for the Q31 IIR lattice filter. - * @param[in] *S points to an instance of the Q31 IIR lattice structure. - * @param[in] numStages number of stages in the filter. - * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. - * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. - * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_iir_lattice_init_q31( - arm_iir_lattice_instance_q31 * S, - uint16_t numStages, - q31_t * pkCoeffs, - q31_t * pvCoeffs, - q31_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign reflection coefficient pointer */ - S->pkCoeffs = pkCoeffs; - - /* Assign ladder coefficient pointer */ - S->pvCoeffs = pvCoeffs; - - /* Clear state buffer and size is always blockSize + numStages */ - memset(pState, 0, (numStages + blockSize) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - - -} - -/** - * @} end of IIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q15.c deleted file mode 100644 index 5f0f891d18..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q15.c +++ /dev/null @@ -1,457 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_iir_lattice_q15.c -* -* Description: Q15 IIR lattice filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - -/** - * @brief Processing function for the Q15 IIR lattice filter. - * @param[in] *S points to an instance of the Q15 IIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - */ - -void arm_iir_lattice_q15( - const arm_iir_lattice_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t fcurr, fnext, gcurr = 0, gnext; /* Temporary variables for lattice stages */ - q15_t gnext1, gnext2; /* Temporary variables for lattice stages */ - uint32_t stgCnt; /* Temporary variables for counts */ - q63_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* Temporary variables for counts */ - q15_t *px1, *px2, *pk, *pv; /* temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - q15_t *pState; /* State pointer */ - q15_t *pStateCurnt; /* State current pointer */ - q15_t out; /* Temporary variable for output */ - q15_t v1, v2; - q31_t v; /* Temporary variable for ladder coefficient */ - - - blkCnt = blockSize; - - pState = &S->pState[0]; - - /* Sample processing */ - while(blkCnt > 0u) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - - /* Process sample for first tap */ - gcurr = *px1++; - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext = fcurr - (((q31_t) gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = (((q31_t) fnext * (*pk++)) >> 15) + gcurr; - gnext = __SSAT(gnext, 16); - /* write gN(n) into state for next sample processing */ - *px2++ = (q15_t) gnext; - /* y(n) += gN(n) * vN */ - acc += (q31_t) ((gnext * (*pv++))); - - - /* Update f values for next coefficient processing */ - fcurr = fnext; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = (numStages - 1u) >> 2; - - while(tapCnt > 0u) - { - - /* Process sample for 2nd, 6th ...taps */ - /* Read gN-2(n-1) from state buffer */ - gcurr = *px1++; - /* Process sample for 2nd, 6th .. taps */ - /* fN-2(n) = fN-1(n) - kN-1 * gN-2(n-1) */ - fnext = fcurr - (((q31_t) gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - /* gN-1(n) = kN-1 * fN-2(n) + gN-2(n-1) */ - gnext = (((q31_t) fnext * (*pk++)) >> 15) + gcurr; - gnext1 = (q15_t) __SSAT(gnext, 16); - /* write gN-1(n) into state */ - *px2++ = (q15_t) gnext1; - - - /* Process sample for 3nd, 7th ...taps */ - /* Read gN-3(n-1) from state */ - gcurr = *px1++; - /* Process sample for 3rd, 7th .. taps */ - /* fN-3(n) = fN-2(n) - kN-2 * gN-3(n-1) */ - fcurr = fnext - (((q31_t) gcurr * (*pk)) >> 15); - fcurr = __SSAT(fcurr, 16); - /* gN-2(n) = kN-2 * fN-3(n) + gN-3(n-1) */ - gnext = (((q31_t) fcurr * (*pk++)) >> 15) + gcurr; - gnext2 = (q15_t) __SSAT(gnext, 16); - /* write gN-2(n) into state */ - *px2++ = (q15_t) gnext2; - - /* Read vN-1 and vN-2 at a time */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - v = *__SIMD32(pv)++; - -#else - - v1 = *pv++; - v2 = *pv++; - -#ifndef ARM_MATH_BIG_ENDIAN - - v = __PKHBT(v1, v2, 16); - -#else - - v = __PKHBT(v2, v1, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - - /* Pack gN-1(n) and gN-2(n) */ - -#ifndef ARM_MATH_BIG_ENDIAN - - gnext = __PKHBT(gnext1, gnext2, 16); - -#else - - gnext = __PKHBT(gnext2, gnext1, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* y(n) += gN-1(n) * vN-1 */ - /* process for gN-5(n) * vN-5, gN-9(n) * vN-9 ... */ - /* y(n) += gN-2(n) * vN-2 */ - /* process for gN-6(n) * vN-6, gN-10(n) * vN-10 ... */ - acc = __SMLALD(gnext, v, acc); - - - /* Process sample for 4th, 8th ...taps */ - /* Read gN-4(n-1) from state */ - gcurr = *px1++; - /* Process sample for 4th, 8th .. taps */ - /* fN-4(n) = fN-3(n) - kN-3 * gN-4(n-1) */ - fnext = fcurr - (((q31_t) gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - /* gN-3(n) = kN-3 * fN-1(n) + gN-1(n-1) */ - gnext = (((q31_t) fnext * (*pk++)) >> 15) + gcurr; - gnext1 = (q15_t) __SSAT(gnext, 16); - /* write gN-3(n) for the next sample process */ - *px2++ = (q15_t) gnext1; - - - /* Process sample for 5th, 9th ...taps */ - /* Read gN-5(n-1) from state */ - gcurr = *px1++; - /* Process sample for 5th, 9th .. taps */ - /* fN-5(n) = fN-4(n) - kN-4 * gN-5(n-1) */ - fcurr = fnext - (((q31_t) gcurr * (*pk)) >> 15); - fcurr = __SSAT(fcurr, 16); - /* gN-4(n) = kN-4 * fN-5(n) + gN-5(n-1) */ - gnext = (((q31_t) fcurr * (*pk++)) >> 15) + gcurr; - gnext2 = (q15_t) __SSAT(gnext, 16); - /* write gN-4(n) for the next sample process */ - *px2++ = (q15_t) gnext2; - - /* Read vN-3 and vN-4 at a time */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - v = *__SIMD32(pv)++; - -#else - - v1 = *pv++; - v2 = *pv++; - -#ifndef ARM_MATH_BIG_ENDIAN - - v = __PKHBT(v1, v2, 16); - -#else - - v = __PKHBT(v2, v1, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - - /* Pack gN-3(n) and gN-4(n) */ -#ifndef ARM_MATH_BIG_ENDIAN - - gnext = __PKHBT(gnext1, gnext2, 16); - -#else - - gnext = __PKHBT(gnext2, gnext1, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* y(n) += gN-4(n) * vN-4 */ - /* process for gN-8(n) * vN-8, gN-12(n) * vN-12 ... */ - /* y(n) += gN-3(n) * vN-3 */ - /* process for gN-7(n) * vN-7, gN-11(n) * vN-11 ... */ - acc = __SMLALD(gnext, v, acc); - - tapCnt--; - - } - - fnext = fcurr; - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = (numStages - 1u) % 0x4u; - - while(tapCnt > 0u) - { - gcurr = *px1++; - /* Process sample for last taps */ - fnext = fcurr - (((q31_t) gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - gnext = (((q31_t) fnext * (*pk++)) >> 15) + gcurr; - gnext = __SSAT(gnext, 16); - /* Output samples for last taps */ - acc += (q31_t) (((q31_t) gnext * (*pv++))); - *px2++ = (q15_t) gnext; - fcurr = fnext; - - tapCnt--; - } - - /* y(n) += g0(n) * v0 */ - acc += (q31_t) (((q31_t) fnext * (*pv++))); - - out = (q15_t) __SSAT(acc >> 15, 16); - *px2++ = (q15_t) fnext; - - /* write out into pDst */ - *pDst++ = out; - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 1u; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - stgCnt = (numStages >> 2u); - - /* copy data */ - while(stgCnt > 0u) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - -#else - - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - stgCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - stgCnt = (numStages) % 0x4u; - - /* copy data */ - while(stgCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - stgCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t fcurr, fnext = 0, gcurr = 0, gnext; /* Temporary variables for lattice stages */ - uint32_t stgCnt; /* Temporary variables for counts */ - q63_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* Temporary variables for counts */ - q15_t *px1, *px2, *pk, *pv; /* temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - q15_t *pState; /* State pointer */ - q15_t *pStateCurnt; /* State current pointer */ - q15_t out; /* Temporary variable for output */ - - - blkCnt = blockSize; - - pState = &S->pState[0]; - - /* Sample processing */ - while(blkCnt > 0u) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - tapCnt = numStages; - - while(tapCnt > 0u) - { - gcurr = *px1++; - /* Process sample */ - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext = fcurr - ((gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = ((fnext * (*pk++)) >> 15) + gcurr; - gnext = __SSAT(gnext, 16); - /* Output samples */ - /* y(n) += gN(n) * vN */ - acc += (q31_t) ((gnext * (*pv++))); - /* write gN(n) into state for next sample processing */ - *px2++ = (q15_t) gnext; - /* Update f values for next coefficient processing */ - fcurr = fnext; - - tapCnt--; - } - - /* y(n) += g0(n) * v0 */ - acc += (q31_t) ((fnext * (*pv++))); - - out = (q15_t) __SSAT(acc >> 15, 16); - *px2++ = (q15_t) fnext; - - /* write out into pDst */ - *pDst++ = out; - - /* Advance the state pointer by 1 to process the next group of samples */ - pState = pState + 1u; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - stgCnt = numStages; - - /* copy data */ - while(stgCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - stgCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - - - - -/** - * @} end of IIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q31.c deleted file mode 100644 index adfd4dfb5d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q31.c +++ /dev/null @@ -1,345 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_iir_lattice_q31.c -* -* Description: Q31 IIR lattice filter processing function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - -/** - * @brief Processing function for the Q31 IIR lattice filter. - * @param[in] *S points to an instance of the Q31 IIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 2*log2(numStages) bits. - * After all multiply-accumulates are performed, the 2.62 accumulator is saturated to 1.32 format and then truncated to 1.31 format. - */ - -void arm_iir_lattice_q31( - const arm_iir_lattice_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t fcurr, fnext = 0, gcurr = 0, gnext; /* Temporary variables for lattice stages */ - q63_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* Temporary variables for counts */ - q31_t *px1, *px2, *pk, *pv; /* Temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - q31_t *pState; /* State pointer */ - q31_t *pStateCurnt; /* State current pointer */ - - blkCnt = blockSize; - - pState = &S->pState[0]; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Sample processing */ - while(blkCnt > 0u) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - - /* Process sample for first tap */ - gcurr = *px1++; - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext = __QSUB(fcurr, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fnext * (*pk++)) >> 31)); - /* write gN-1(n-1) into state for next sample processing */ - *px2++ = gnext; - /* y(n) += gN(n) * vN */ - acc += ((q63_t) gnext * *pv++); - - /* Update f values for next coefficient processing */ - fcurr = fnext; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = (numStages - 1u) >> 2; - - while(tapCnt > 0u) - { - - /* Process sample for 2nd, 6th .. taps */ - /* Read gN-2(n-1) from state buffer */ - gcurr = *px1++; - /* fN-2(n) = fN-1(n) - kN-1 * gN-2(n-1) */ - fnext = __QSUB(fcurr, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN-1(n) = kN-1 * fN-2(n) + gN-2(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fnext * (*pk++)) >> 31)); - /* y(n) += gN-1(n) * vN-1 */ - /* process for gN-5(n) * vN-5, gN-9(n) * vN-9 ... */ - acc += ((q63_t) gnext * *pv++); - /* write gN-1(n) into state for next sample processing */ - *px2++ = gnext; - - /* Process sample for 3nd, 7th ...taps */ - /* Read gN-3(n-1) from state buffer */ - gcurr = *px1++; - /* Process sample for 3rd, 7th .. taps */ - /* fN-3(n) = fN-2(n) - kN-2 * gN-3(n-1) */ - fcurr = __QSUB(fnext, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN-2(n) = kN-2 * fN-3(n) + gN-3(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fcurr * (*pk++)) >> 31)); - /* y(n) += gN-2(n) * vN-2 */ - /* process for gN-6(n) * vN-6, gN-10(n) * vN-10 ... */ - acc += ((q63_t) gnext * *pv++); - /* write gN-2(n) into state for next sample processing */ - *px2++ = gnext; - - - /* Process sample for 4th, 8th ...taps */ - /* Read gN-4(n-1) from state buffer */ - gcurr = *px1++; - /* Process sample for 4th, 8th .. taps */ - /* fN-4(n) = fN-3(n) - kN-3 * gN-4(n-1) */ - fnext = __QSUB(fcurr, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN-3(n) = kN-3 * fN-4(n) + gN-4(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fnext * (*pk++)) >> 31)); - /* y(n) += gN-3(n) * vN-3 */ - /* process for gN-7(n) * vN-7, gN-11(n) * vN-11 ... */ - acc += ((q63_t) gnext * *pv++); - /* write gN-3(n) into state for next sample processing */ - *px2++ = gnext; - - - /* Process sample for 5th, 9th ...taps */ - /* Read gN-5(n-1) from state buffer */ - gcurr = *px1++; - /* Process sample for 5th, 9th .. taps */ - /* fN-5(n) = fN-4(n) - kN-4 * gN-1(n-1) */ - fcurr = __QSUB(fnext, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN-4(n) = kN-4 * fN-5(n) + gN-5(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fcurr * (*pk++)) >> 31)); - /* y(n) += gN-4(n) * vN-4 */ - /* process for gN-8(n) * vN-8, gN-12(n) * vN-12 ... */ - acc += ((q63_t) gnext * *pv++); - /* write gN-4(n) into state for next sample processing */ - *px2++ = gnext; - - tapCnt--; - - } - - fnext = fcurr; - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = (numStages - 1u) % 0x4u; - - while(tapCnt > 0u) - { - gcurr = *px1++; - /* Process sample for last taps */ - fnext = __QSUB(fcurr, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - gnext = __QADD(gcurr, (q31_t) (((q63_t) fnext * (*pk++)) >> 31)); - /* Output samples for last taps */ - acc += ((q63_t) gnext * *pv++); - *px2++ = gnext; - fcurr = fnext; - - tapCnt--; - - } - - /* y(n) += g0(n) * v0 */ - acc += (q63_t) fnext *( - *pv++); - - *px2++ = fnext; - - /* write out into pDst */ - *pDst++ = (q31_t) (acc >> 31u); - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 1u; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - tapCnt = numStages >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - - } - - /* Calculate remaining number of copies */ - tapCnt = (numStages) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - }; - -#else - - /* Run the below code for Cortex-M0 */ - /* Sample processing */ - while(blkCnt > 0u) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - tapCnt = numStages; - - while(tapCnt > 0u) - { - gcurr = *px1++; - /* Process sample */ - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext = - clip_q63_to_q31(((q63_t) fcurr - - ((q31_t) (((q63_t) gcurr * (*pk)) >> 31)))); - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = - clip_q63_to_q31(((q63_t) gcurr + - ((q31_t) (((q63_t) fnext * (*pk++)) >> 31)))); - /* Output samples */ - /* y(n) += gN(n) * vN */ - acc += ((q63_t) gnext * *pv++); - /* write gN-1(n-1) into state for next sample processing */ - *px2++ = gnext; - /* Update f values for next coefficient processing */ - fcurr = fnext; - - tapCnt--; - } - - /* y(n) += g0(n) * v0 */ - acc += (q63_t) fnext *( - *pv++); - - *px2++ = fnext; - - /* write out into pDst */ - *pDst++ = (q31_t) (acc >> 31u); - - /* Advance the state pointer by 1 to process the next group of samples */ - pState = pState + 1u; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - tapCnt = numStages; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - - - - -/** - * @} end of IIR_Lattice group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_f32.c deleted file mode 100644 index 90fa8ae1e9..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_f32.c +++ /dev/null @@ -1,434 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_f32.c -* -* Description: Processing function for the floating-point LMS filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup LMS Least Mean Square (LMS) Filters - * - * LMS filters are a class of adaptive filters that are able to "learn" an unknown transfer functions. - * LMS filters use a gradient descent method in which the filter coefficients are updated based on the instantaneous error signal. - * Adaptive filters are often used in communication systems, equalizers, and noise removal. - * The CMSIS DSP Library contains LMS filter functions that operate on Q15, Q31, and floating-point data types. - * The library also contains normalized LMS filters in which the filter coefficient adaptation is indepedent of the level of the input signal. - * - * An LMS filter consists of two components as shown below. - * The first component is a standard transversal or FIR filter. - * The second component is a coefficient update mechanism. - * The LMS filter has two input signals. - * The "input" feeds the FIR filter while the "reference input" corresponds to the desired output of the FIR filter. - * That is, the FIR filter coefficients are updated so that the output of the FIR filter matches the reference input. - * The filter coefficient update mechanism is based on the difference between the FIR filter output and the reference input. - * This "error signal" tends towards zero as the filter adapts. - * The LMS processing functions accept the input and reference input signals and generate the filter output and error signal. - * \image html LMS.gif "Internal structure of the Least Mean Square filter" - * - * The functions operate on blocks of data and each call to the function processes - * blockSize samples through the filter. - * pSrc points to input signal, pRef points to reference signal, - * pOut points to output signal and pErr points to error signal. - * All arrays contain blockSize values. - * - * The functions operate on a block-by-block basis. - * Internally, the filter coefficients b[n] are updated on a sample-by-sample basis. - * The convergence of the LMS filter is slower compared to the normalized LMS algorithm. - * - * \par Algorithm: - * The output signal y[n] is computed by a standard FIR filter: - *
    
- *     y[n] = b[0] * x[n] + b[1] * x[n-1] + b[2] * x[n-2] + ...+ b[numTaps-1] * x[n-numTaps+1]    
- * 
- * - * \par - * The error signal equals the difference between the reference signal d[n] and the filter output: - *
    
- *     e[n] = d[n] - y[n].    
- * 
- * - * \par - * After each sample of the error signal is computed, the filter coefficients b[k] are updated on a sample-by-sample basis: - *
    
- *     b[k] = b[k] + e[n] * mu * x[n-k],  for k=0, 1, ..., numTaps-1    
- * 
- * where mu is the step size and controls the rate of coefficient convergence. - *\par - * In the APIs, pCoeffs points to a coefficient array of size numTaps. - * Coefficients are stored in time reversed order. - * \par - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to a state array of size numTaps + blockSize - 1. - * Samples in the state buffer are stored in the order: - * \par - *
    
- *    {x[n-numTaps+1], x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2]....x[0], x[1], ..., x[blockSize-1]}    
- * 
- * \par - * Note that the length of the state buffer exceeds the length of the coefficient array by blockSize-1 samples. - * The increased state buffer length allows circular addressing, which is traditionally used in FIR filters, - * to be avoided and yields a significant speed improvement. - * The state variables are updated after each block of data is processed. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter and - * coefficient and state arrays cannot be shared among instances. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * The code below statically initializes each of the 3 different data type filter instance structures - *
    
- *    arm_lms_instance_f32 S = {numTaps, pState, pCoeffs, mu};    
- *    arm_lms_instance_q31 S = {numTaps, pState, pCoeffs, mu, postShift};    
- *    arm_lms_instance_q15 S = {numTaps, pState, pCoeffs, mu, postShift};    
- * 
- * where numTaps is the number of filter coefficients in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer; mu is the step size parameter; and postShift is the shift applied to coefficients. - * - * \par Fixed-Point Behavior: - * Care must be taken when using the Q15 and Q31 versions of the LMS filter. - * The following issues must be considered: - * - Scaling of coefficients - * - Overflow and saturation - * - * \par Scaling of Coefficients: - * Filter coefficients are represented as fractional values and - * coefficients are restricted to lie in the range [-1 +1). - * The fixed-point functions have an additional scaling parameter postShift. - * At the output of the filter's accumulator is a shift register which shifts the result by postShift bits. - * This essentially scales the filter coefficients by 2^postShift and - * allows the filter coefficients to exceed the range [+1 -1). - * The value of postShift is set by the user based on the expected gain through the system being modeled. - * - * \par Overflow and Saturation: - * Overflow and saturation behavior of the fixed-point Q15 and Q31 versions are - * described separately as part of the function specific documentation below. - */ - -/** - * @addtogroup LMS - * @{ - */ - -/** - * @details - * This function operates on floating-point data types. - * - * @brief Processing function for floating-point LMS filter. - * @param[in] *S points to an instance of the floating-point LMS filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[in] *pRef points to the block of reference data. - * @param[out] *pOut points to the block of output data. - * @param[out] *pErr points to the block of error data. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_lms_f32( - const arm_lms_instance_f32 * S, - float32_t * pSrc, - float32_t * pRef, - float32_t * pOut, - float32_t * pErr, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t mu = S->mu; /* Adaptive factor */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - float32_t sum, e, d; /* accumulator, error, reference data sample */ - float32_t w = 0.0f; /* weight factor */ - - e = 0.0f; - d = 0.0f; - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - blkCnt = blockSize; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Set the accumulator to zero */ - sum = 0.0f; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result in the accumulator, store in the destination buffer. */ - *pOut++ = sum; - - /* Compute and store error */ - d = (float32_t) (*pRef++); - e = d - sum; - *pErr++ = e; - - /* Calculation of Weighting factor for the updating filter coefficients */ - w = e * mu; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - *pb = *pb + (w * (*px++)); - pb++; - - *pb = *pb + (w * (*px++)); - pb++; - - *pb = *pb + (w * (*px++)); - pb++; - - *pb = *pb + (w * (*px++)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - *pb = *pb + (w * (*px++)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop unrolling for (numTaps - 1u) samples copy */ - tapCnt = (numTaps - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - sum = 0.0f; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is stored in the destination buffer. */ - *pOut++ = sum; - - /* Compute and store error */ - d = (float32_t) (*pRef++); - e = d - sum; - *pErr++ = e; - - /* Weighting factor for the LMS version */ - w = e * mu; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - *pb = *pb + (w * (*px++)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - * start of the state buffer. This prepares the state buffer for the - * next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Copy (numTaps - 1u) samples */ - tapCnt = (numTaps - 1u); - - /* Copy the data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of LMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_f32.c deleted file mode 100644 index a2f51240a5..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_f32.c +++ /dev/null @@ -1,90 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_init_f32.c -* -* Description: Floating-point LMS filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @addtogroup LMS - * @{ - */ - - /** - * @brief Initialization function for floating-point LMS filter. - * @param[in] *S points to an instance of the floating-point LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to the coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -/** - * \par Description: - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to an array of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_lms_f32(). - */ - -void arm_lms_init_f32( - arm_lms_instance_f32 * S, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - float32_t mu, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps */ - memset(pState, 0, (numTaps + (blockSize - 1)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; -} - -/** - * @} end of LMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q15.c deleted file mode 100644 index 8f42949a61..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q15.c +++ /dev/null @@ -1,100 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_init_q15.c -* -* Description: Q15 LMS filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS - * @{ - */ - -/** -* @brief Initialization function for the Q15 LMS filter. -* @param[in] *S points to an instance of the Q15 LMS filter structure. -* @param[in] numTaps number of filter coefficients. -* @param[in] *pCoeffs points to the coefficient buffer. -* @param[in] *pState points to the state buffer. -* @param[in] mu step size that controls filter coefficient updates. -* @param[in] blockSize number of samples to process. -* @param[in] postShift bit shift applied to coefficients. -* @return none. -* -* \par Description: -* pCoeffs points to the array of filter coefficients stored in time reversed order: -*
    
-*    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
-* 
-* The initial filter coefficients serve as a starting point for the adaptive filter. -* pState points to the array of state variables and size of array is -* numTaps+blockSize-1 samples, where blockSize is the number of -* input samples processed by each call to arm_lms_q15(). -*/ - -void arm_lms_init_q15( - arm_lms_instance_q15 * S, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - q15_t mu, - uint32_t blockSize, - uint32_t postShift) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Assign postShift value to be applied */ - S->postShift = postShift; - -} - -/** - * @} end of LMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q31.c deleted file mode 100644 index 58edb659ba..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q31.c +++ /dev/null @@ -1,100 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_init_q31.c -* -* Description: Q31 LMS filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS - * @{ - */ - - /** - * @brief Initialization function for Q31 LMS filter. - * @param[in] *S points to an instance of the Q31 LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @param[in] postShift bit shift applied to coefficients. - * @return none. - * - * \par Description: - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to an array of length numTaps+blockSize-1 samples, - * where blockSize is the number of input samples processed by each call to - * arm_lms_q31(). - */ - -void arm_lms_init_q31( - arm_lms_instance_q31 * S, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - q31_t mu, - uint32_t blockSize, - uint32_t postShift) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, ((uint32_t) numTaps + (blockSize - 1u)) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Assign postShift value to be applied */ - S->postShift = postShift; - -} - -/** - * @} end of LMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_f32.c deleted file mode 100644 index b2ac452069..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_f32.c +++ /dev/null @@ -1,456 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_norm_f32.c -* -* Description: Processing function for the floating-point Normalised LMS. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup LMS_NORM Normalized LMS Filters - * - * This set of functions implements a commonly used adaptive filter. - * It is related to the Least Mean Square (LMS) adaptive filter and includes an additional normalization - * factor which increases the adaptation rate of the filter. - * The CMSIS DSP Library contains normalized LMS filter functions that operate on Q15, Q31, and floating-point data types. - * - * A normalized least mean square (NLMS) filter consists of two components as shown below. - * The first component is a standard transversal or FIR filter. - * The second component is a coefficient update mechanism. - * The NLMS filter has two input signals. - * The "input" feeds the FIR filter while the "reference input" corresponds to the desired output of the FIR filter. - * That is, the FIR filter coefficients are updated so that the output of the FIR filter matches the reference input. - * The filter coefficient update mechanism is based on the difference between the FIR filter output and the reference input. - * This "error signal" tends towards zero as the filter adapts. - * The NLMS processing functions accept the input and reference input signals and generate the filter output and error signal. - * \image html LMS.gif "Internal structure of the NLMS adaptive filter" - * - * The functions operate on blocks of data and each call to the function processes - * blockSize samples through the filter. - * pSrc points to input signal, pRef points to reference signal, - * pOut points to output signal and pErr points to error signal. - * All arrays contain blockSize values. - * - * The functions operate on a block-by-block basis. - * Internally, the filter coefficients b[n] are updated on a sample-by-sample basis. - * The convergence of the LMS filter is slower compared to the normalized LMS algorithm. - * - * \par Algorithm: - * The output signal y[n] is computed by a standard FIR filter: - *
    
- *     y[n] = b[0] * x[n] + b[1] * x[n-1] + b[2] * x[n-2] + ...+ b[numTaps-1] * x[n-numTaps+1]    
- * 
- * - * \par - * The error signal equals the difference between the reference signal d[n] and the filter output: - *
    
- *     e[n] = d[n] - y[n].    
- * 
- * - * \par - * After each sample of the error signal is computed the instanteous energy of the filter state variables is calculated: - *
    
- *    E = x[n]^2 + x[n-1]^2 + ... + x[n-numTaps+1]^2.    
- * 
- * The filter coefficients b[k] are then updated on a sample-by-sample basis: - *
    
- *     b[k] = b[k] + e[n] * (mu/E) * x[n-k],  for k=0, 1, ..., numTaps-1    
- * 
- * where mu is the step size and controls the rate of coefficient convergence. - *\par - * In the APIs, pCoeffs points to a coefficient array of size numTaps. - * Coefficients are stored in time reversed order. - * \par - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * \par - * pState points to a state array of size numTaps + blockSize - 1. - * Samples in the state buffer are stored in the order: - * \par - *
    
- *    {x[n-numTaps+1], x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2]....x[0], x[1], ..., x[blockSize-1]}    
- * 
- * \par - * Note that the length of the state buffer exceeds the length of the coefficient array by blockSize-1 samples. - * The increased state buffer length allows circular addressing, which is traditionally used in FIR filters, - * to be avoided and yields a significant speed improvement. - * The state variables are updated after each block of data is processed. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter and - * coefficient and state arrays cannot be shared among instances. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * \par - * Instance structure cannot be placed into a const data section and it is recommended to use the initialization function. - * \par Fixed-Point Behavior: - * Care must be taken when using the Q15 and Q31 versions of the normalised LMS filter. - * The following issues must be considered: - * - Scaling of coefficients - * - Overflow and saturation - * - * \par Scaling of Coefficients: - * Filter coefficients are represented as fractional values and - * coefficients are restricted to lie in the range [-1 +1). - * The fixed-point functions have an additional scaling parameter postShift. - * At the output of the filter's accumulator is a shift register which shifts the result by postShift bits. - * This essentially scales the filter coefficients by 2^postShift and - * allows the filter coefficients to exceed the range [+1 -1). - * The value of postShift is set by the user based on the expected gain through the system being modeled. - * - * \par Overflow and Saturation: - * Overflow and saturation behavior of the fixed-point Q15 and Q31 versions are - * described separately as part of the function specific documentation below. - */ - - -/** - * @addtogroup LMS_NORM - * @{ - */ - - - /** - * @brief Processing function for floating-point normalized LMS filter. - * @param[in] *S points to an instance of the floating-point normalized LMS filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[in] *pRef points to the block of reference data. - * @param[out] *pOut points to the block of output data. - * @param[out] *pErr points to the block of error data. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_lms_norm_f32( - arm_lms_norm_instance_f32 * S, - float32_t * pSrc, - float32_t * pRef, - float32_t * pOut, - float32_t * pErr, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t mu = S->mu; /* Adaptive factor */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - float32_t energy; /* Energy of the input */ - float32_t sum, e, d; /* accumulator, error, reference data sample */ - float32_t w, x0, in; /* weight factor, temporary variable to hold input sample and state */ - - /* Initializations of error, difference, Coefficient update */ - e = 0.0f; - d = 0.0f; - w = 0.0f; - - energy = S->energy; - x0 = S->x0; - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy -= x0 * x0; - energy += in * in; - - /* Set the accumulator to zero */ - sum = 0.0f; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result in the accumulator, store in the destination buffer. */ - *pOut++ = sum; - - /* Compute and store error */ - d = (float32_t) (*pRef++); - e = d - sum; - *pErr++ = e; - - /* Calculation of Weighting factor for updating filter coefficients */ - /* epsilon value 0.000000119209289f */ - w = (e * mu) / (energy + 0.000000119209289f); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - *pb += w * (*px++); - pb++; - - *pb += w * (*px++); - pb++; - - *pb += w * (*px++); - pb++; - - *pb += w * (*px++); - pb++; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - *pb += w * (*px++); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - S->energy = energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop unrolling for (numTaps - 1u)/4 samples copy */ - tapCnt = (numTaps - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy -= x0 * x0; - energy += in * in; - - /* Set the accumulator to zero */ - sum = 0.0f; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result in the accumulator is stored in the destination buffer. */ - *pOut++ = sum; - - /* Compute and store error */ - d = (float32_t) (*pRef++); - e = d - sum; - *pErr++ = e; - - /* Calculation of Weighting factor for updating filter coefficients */ - /* epsilon value 0.000000119209289f */ - w = (e * mu) / (energy + 0.000000119209289f); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCcoeffs pointer */ - pb = pCoeffs; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - *pb += w * (*px++); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - S->energy = energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Copy (numTaps - 1u) samples */ - tapCnt = (numTaps - 1u); - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_f32.c deleted file mode 100644 index 3d31cfb257..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_f32.c +++ /dev/null @@ -1,100 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_norm_init_f32.c -* -* Description: Floating-point NLMS filter initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS_NORM - * @{ - */ - - /** - * @brief Initialization function for floating-point normalized LMS filter. - * @param[in] *S points to an instance of the floating-point LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @return none. - * - * \par Description: - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to an array of length numTaps+blockSize-1 samples, - * where blockSize is the number of input samples processed by each call to arm_lms_norm_f32(). - */ - -void arm_lms_norm_init_f32( - arm_lms_norm_instance_f32 * S, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - float32_t mu, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Initialise Energy to zero */ - S->energy = 0.0f; - - /* Initialise x0 to zero */ - S->x0 = 0.0f; - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q15.c deleted file mode 100644 index a1cf1b001d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q15.c +++ /dev/null @@ -1,107 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_norm_init_q15.c -* -* Description: Q15 NLMS initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @addtogroup LMS_NORM - * @{ - */ - - /** - * @brief Initialization function for Q15 normalized LMS filter. - * @param[in] *S points to an instance of the Q15 normalized LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @param[in] postShift bit shift applied to coefficients. - * @return none. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to the array of state variables and size of array is - * numTaps+blockSize-1 samples, where blockSize is the number of input samples processed - * by each call to arm_lms_norm_q15(). - */ - -void arm_lms_norm_init_q15( - arm_lms_norm_instance_q15 * S, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - q15_t mu, - uint32_t blockSize, - uint8_t postShift) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(q15_t)); - - /* Assign post Shift value applied to coefficients */ - S->postShift = postShift; - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Initialize reciprocal pointer table */ - S->recipTable = (q15_t *) armRecipTableQ15; - - /* Initialise Energy to zero */ - S->energy = 0; - - /* Initialise x0 to zero */ - S->x0 = 0; - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q31.c deleted file mode 100644 index a2fae7b381..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q31.c +++ /dev/null @@ -1,106 +0,0 @@ -/*----------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_norm_init_q31.c -* -* Description: Q31 NLMS initialization function. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------*/ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @addtogroup LMS_NORM - * @{ - */ - - /** - * @brief Initialization function for Q31 normalized LMS filter. - * @param[in] *S points to an instance of the Q31 normalized LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @param[in] postShift bit shift applied to coefficients. - * @return none. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
    
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}    
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to an array of length numTaps+blockSize-1 samples, - * where blockSize is the number of input samples processed by each call to arm_lms_norm_q31(). - */ - -void arm_lms_norm_init_q31( - arm_lms_norm_instance_q31 * S, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - q31_t mu, - uint32_t blockSize, - uint8_t postShift) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, (numTaps + (blockSize - 1u)) * sizeof(q31_t)); - - /* Assign post Shift value applied to coefficients */ - S->postShift = postShift; - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Initialize reciprocal pointer table */ - S->recipTable = (q31_t *) armRecipTableQ31; - - /* Initialise Energy to zero */ - S->energy = 0; - - /* Initialise x0 to zero */ - S->x0 = 0; - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q15.c deleted file mode 100644 index a1229a2036..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q15.c +++ /dev/null @@ -1,435 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_norm_q15.c -* -* Description: Q15 NLMS filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS_NORM - * @{ - */ - -/** -* @brief Processing function for Q15 normalized LMS filter. -* @param[in] *S points to an instance of the Q15 normalized LMS filter structure. -* @param[in] *pSrc points to the block of input data. -* @param[in] *pRef points to the block of reference data. -* @param[out] *pOut points to the block of output data. -* @param[out] *pErr points to the block of error data. -* @param[in] blockSize number of samples to process. -* @return none. -* -* Scaling and Overflow Behavior: -* \par -* The function is implemented using a 64-bit internal accumulator. -* Both coefficients and state variables are represented in 1.15 format and -* multiplications yield a 2.30 result. The 2.30 intermediate results are -* accumulated in a 64-bit accumulator in 34.30 format. -* There is no risk of internal overflow with this approach and the full -* precision of intermediate multiplications is preserved. After all additions -* have been performed, the accumulator is truncated to 34.15 format by -* discarding low 15 bits. Lastly, the accumulator is saturated to yield a -* result in 1.15 format. -* -* \par -* In this filter, filter coefficients are updated for each sample and the updation of filter cofficients are saturted. -* - */ - -void arm_lms_norm_q15( - arm_lms_norm_instance_q15 * S, - q15_t * pSrc, - q15_t * pRef, - q15_t * pOut, - q15_t * pErr, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - q15_t mu = S->mu; /* Adaptive factor */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - q31_t energy; /* Energy of the input */ - q63_t acc; /* Accumulator */ - q15_t e = 0, d = 0; /* error, reference data sample */ - q15_t w = 0, in; /* weight factor and state */ - q15_t x0; /* temporary variable to hold input sample */ - //uint32_t shift = (uint32_t) S->postShift + 1u; /* Shift to be applied to the output */ - q15_t errorXmu, oneByEnergy; /* Temporary variables to store error and mu product and reciprocal of energy */ - q15_t postShift; /* Post shift to be applied to weight after reciprocal calculation */ - q31_t coef; /* Teporary variable for coefficient */ - q31_t acc_l, acc_h; - int32_t lShift = (15 - (int32_t) S->postShift); /* Post shift */ - int32_t uShift = (32 - lShift); - - energy = S->energy; - x0 = S->x0; - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy -= (((q31_t) x0 * (x0)) >> 15); - energy += (((q31_t) in * (in)) >> 15); - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while(tapCnt > 0u) - { - - /* Perform the multiply-accumulate */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - acc = __SMLALD(*__SIMD32(px)++, (*__SIMD32(pb)++), acc); - acc = __SMLALD(*__SIMD32(px)++, (*__SIMD32(pb)++), acc); - -#else - - acc += (((q31_t) * px++ * (*pb++))); - acc += (((q31_t) * px++ * (*pb++))); - acc += (((q31_t) * px++ * (*pb++))); - acc += (((q31_t) * px++ * (*pb++))); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += (((q31_t) * px++ * (*pb++))); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Converting the result to 1.15 format and saturate the output */ - acc = __SSAT(acc, 16u); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* Compute and store error */ - d = *pRef++; - e = d - (q15_t) acc; - *pErr++ = e; - - /* Calculation of 1/energy */ - postShift = arm_recip_q15((q15_t) energy + DELTA_Q15, - &oneByEnergy, S->recipTable); - - /* Calculation of e * mu value */ - errorXmu = (q15_t) (((q31_t) e * mu) >> 15); - - /* Calculation of (e * mu) * (1/energy) value */ - acc = (((q31_t) errorXmu * oneByEnergy) >> (15 - postShift)); - - /* Weighting factor for the normalized version */ - w = (q15_t) __SSAT((q31_t) acc, 16); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while(tapCnt > 0u) - { - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Read the sample from state buffer */ - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Save energy and x0 values for the next frame */ - S->energy = (q15_t) energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1u) >> 2; - - while(tapCnt > 0u) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - -#else - - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - -#endif - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy -= (((q31_t) x0 * (x0)) >> 15); - energy += (((q31_t) in * (in)) >> 15); - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += (((q31_t) * px++ * (*pb++))); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Converting the result to 1.15 format and saturate the output */ - acc = __SSAT(acc, 16u); - - /* Converting the result to 1.15 format */ - //acc = __SSAT((acc >> (16u - shift)), 16u); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* Compute and store error */ - d = *pRef++; - e = d - (q15_t) acc; - *pErr++ = e; - - /* Calculation of 1/energy */ - postShift = arm_recip_q15((q15_t) energy + DELTA_Q15, - &oneByEnergy, S->recipTable); - - /* Calculation of e * mu value */ - errorXmu = (q15_t) (((q31_t) e * mu) >> 15); - - /* Calculation of (e * mu) * (1/energy) value */ - acc = (((q31_t) errorXmu * oneByEnergy) >> (15 - postShift)); - - /* Weighting factor for the normalized version */ - w = (q15_t) __SSAT((q31_t) acc, 16); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Read the sample from state buffer */ - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Save energy and x0 values for the next frame */ - S->energy = (q15_t) energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* copy (numTaps - 1u) data */ - tapCnt = (numTaps - 1u); - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - - -/** - * @} end of LMS_NORM group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q31.c deleted file mode 100644 index 791a8637cc..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q31.c +++ /dev/null @@ -1,426 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_norm_q31.c -* -* Description: Processing function for the Q31 NLMS filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS_NORM - * @{ - */ - -/** -* @brief Processing function for Q31 normalized LMS filter. -* @param[in] *S points to an instance of the Q31 normalized LMS filter structure. -* @param[in] *pSrc points to the block of input data. -* @param[in] *pRef points to the block of reference data. -* @param[out] *pOut points to the block of output data. -* @param[out] *pErr points to the block of error data. -* @param[in] blockSize number of samples to process. -* @return none. -* -* Scaling and Overflow Behavior: -* \par -* The function is implemented using an internal 64-bit accumulator. -* The accumulator has a 2.62 format and maintains full precision of the intermediate -* multiplication results but provides only a single guard bit. -* Thus, if the accumulator result overflows it wraps around rather than clip. -* In order to avoid overflows completely the input signal must be scaled down by -* log2(numTaps) bits. The reference signal should not be scaled down. -* After all multiply-accumulates are performed, the 2.62 accumulator is shifted -* and saturated to 1.31 format to yield the final result. -* The output signal and error signal are in 1.31 format. -* -* \par -* In this filter, filter coefficients are updated for each sample and the -* updation of filter cofficients are saturted. -* -*/ - -void arm_lms_norm_q31( - arm_lms_norm_instance_q31 * S, - q31_t * pSrc, - q31_t * pRef, - q31_t * pOut, - q31_t * pErr, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - q31_t mu = S->mu; /* Adaptive factor */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - q63_t energy; /* Energy of the input */ - q63_t acc; /* Accumulator */ - q31_t e = 0, d = 0; /* error, reference data sample */ - q31_t w = 0, in; /* weight factor and state */ - q31_t x0; /* temporary variable to hold input sample */ -// uint32_t shift = 32u - ((uint32_t) S->postShift + 1u); /* Shift to be applied to the output */ - q31_t errorXmu, oneByEnergy; /* Temporary variables to store error and mu product and reciprocal of energy */ - q31_t postShift; /* Post shift to be applied to weight after reciprocal calculation */ - q31_t coef; /* Temporary variable for coef */ - q31_t acc_l, acc_h; /* temporary input */ - uint32_t uShift = ((uint32_t) S->postShift + 1u); - uint32_t lShift = 32u - uShift; /* Shift to be applied to the output */ - - energy = S->energy; - x0 = S->x0; - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while(blkCnt > 0u) - { - - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy = (q31_t) ((((q63_t) energy << 32) - - (((q63_t) x0 * x0) << 1)) >> 32); - energy = (q31_t) (((((q63_t) in * in) << 1) + (energy << 32)) >> 32); - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - acc += ((q63_t) (*px++)) * (*pb++); - acc += ((q63_t) (*px++)) * (*pb++); - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Converting the result to 1.31 format */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* Compute and store error */ - d = *pRef++; - e = d - (q31_t) acc; - *pErr++ = e; - - /* Calculates the reciprocal of energy */ - postShift = arm_recip_q31(energy + DELTA_Q31, - &oneByEnergy, &S->recipTable[0]); - - /* Calculation of product of (e * mu) */ - errorXmu = (q31_t) (((q63_t) e * mu) >> 31); - - /* Weighting factor for the normalized version */ - w = clip_q63_to_q31(((q63_t) errorXmu * oneByEnergy) >> (31 - postShift)); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - - /* coef is in 2.30 format */ - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - /* get coef in 1.31 format by left shifting */ - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - /* update coefficient buffer to next coefficient */ - pb++; - - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - pb++; - - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - pb++; - - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Read the sample from state buffer */ - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Save energy and x0 values for the next frame */ - S->energy = (q31_t) energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop unrolling for (numTaps - 1u) samples copy */ - tapCnt = (numTaps - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while(blkCnt > 0u) - { - - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy = - (q31_t) ((((q63_t) energy << 32) - (((q63_t) x0 * x0) << 1)) >> 32); - energy = (q31_t) (((((q63_t) in * in) << 1) + (energy << 32)) >> 32); - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Converting the result to 1.31 format */ - /* Converting the result to 1.31 format */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - - //acc = (q31_t) (acc >> shift); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* Compute and store error */ - d = *pRef++; - e = d - (q31_t) acc; - *pErr++ = e; - - /* Calculates the reciprocal of energy */ - postShift = - arm_recip_q31(energy + DELTA_Q31, &oneByEnergy, &S->recipTable[0]); - - /* Calculation of product of (e * mu) */ - errorXmu = (q31_t) (((q63_t) e * mu) >> 31); - - /* Weighting factor for the normalized version */ - w = clip_q63_to_q31(((q63_t) errorXmu * oneByEnergy) >> (31 - postShift)); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - /* coef is in 2.30 format */ - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - /* get coef in 1.31 format by left shifting */ - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - /* update coefficient buffer to next coefficient */ - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Read the sample from state buffer */ - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Save energy and x0 values for the next frame */ - S->energy = (q31_t) energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - start of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop for (numTaps - 1u) samples copy */ - tapCnt = (numTaps - 1u); - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q15.c deleted file mode 100644 index 91237c12d8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q15.c +++ /dev/null @@ -1,374 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_q15.c -* -* Description: Processing function for the Q15 LMS filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS - * @{ - */ - - /** - * @brief Processing function for Q15 LMS filter. - * @param[in] *S points to an instance of the Q15 LMS filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[in] *pRef points to the block of reference data. - * @param[out] *pOut points to the block of output data. - * @param[out] *pErr points to the block of error data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * \par Scaling and Overflow Behavior: - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - * - * \par - * In this filter, filter coefficients are updated for each sample and the updation of filter cofficients are saturted. - * - */ - -void arm_lms_q15( - const arm_lms_instance_q15 * S, - q15_t * pSrc, - q15_t * pRef, - q15_t * pOut, - q15_t * pErr, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t mu = S->mu; /* Adaptive factor */ - q15_t *px; /* Temporary pointer for state */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - q63_t acc; /* Accumulator */ - q15_t e = 0; /* error of data sample */ - q15_t alpha; /* Intermediate constant for taps update */ - q31_t acc_l, acc_h; - int32_t lShift = (15 - (int32_t) S->postShift); /* Post shift */ - int32_t uShift = (32 - lShift); - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t coef; /* Teporary variable for coefficient */ - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Initializing blkCnt with blockSize */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2u; - - while(tapCnt > 0u) - { - /* acc += b[N] * x[n-N] + b[N-1] * x[n-N-1] */ - /* Perform the multiply-accumulate */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - acc = __SMLALD(*__SIMD32(px)++, (*__SIMD32(pb)++), acc); - acc = __SMLALD(*__SIMD32(px)++, (*__SIMD32(pb)++), acc); - -#else - - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Converting the result to 1.15 format and saturate the output */ - acc = __SSAT(acc, 16); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* Compute and store error */ - e = *pRef++ - (q15_t) acc; - - *pErr++ = (q15_t) e; - - /* Compute alpha i.e. intermediate constant for taps update */ - alpha = (q15_t) (((q31_t) e * (mu)) >> 15); - - /* Initialize state pointer */ - /* Advance state pointer by 1 for the next sample */ - px = pState++; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2u; - - /* Update filter coefficients */ - while(tapCnt > 0u) - { - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Decrement the loop counter */ - blkCnt--; - - } - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1u) >> 2; - - while(tapCnt > 0u) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; -#else - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; -#endif - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += (q63_t) ((q31_t) (*px++) * (*pb++)); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Converting the result to 1.15 format and saturate the output */ - acc = __SSAT(acc, 16); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* Compute and store error */ - e = *pRef++ - (q15_t) acc; - - *pErr++ = (q15_t) e; - - /* Compute alpha i.e. intermediate constant for taps update */ - alpha = (q15_t) (((q31_t) e * (mu)) >> 15); - - /* Initialize pState pointer */ - /* Advance state pointer by 1 for the next sample */ - px = pState++; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - *pb++ += (q15_t) (((q31_t) alpha * (*px++)) >> 15); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Decrement the loop counter */ - blkCnt--; - - } - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - start of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Copy (numTaps - 1u) samples */ - tapCnt = (numTaps - 1u); - - /* Copy the data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of LMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q31.c deleted file mode 100644 index c43d55d1df..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/FilteringFunctions/arm_lms_q31.c +++ /dev/null @@ -1,364 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_lms_q31.c -* -* Description: Processing function for the Q31 LMS filter. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS - * @{ - */ - - /** - * @brief Processing function for Q31 LMS filter. - * @param[in] *S points to an instance of the Q15 LMS filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[in] *pRef points to the block of reference data. - * @param[out] *pOut points to the block of output data. - * @param[out] *pErr points to the block of error data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * \par Scaling and Overflow Behavior: - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate - * multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clips. - * In order to avoid overflows completely the input signal must be scaled down by - * log2(numTaps) bits. - * The reference signal should not be scaled down. - * After all multiply-accumulates are performed, the 2.62 accumulator is shifted - * and saturated to 1.31 format to yield the final result. - * The output signal and error signal are in 1.31 format. - * - * \par - * In this filter, filter coefficients are updated for each sample and the updation of filter cofficients are saturted. - */ - -void arm_lms_q31( - const arm_lms_instance_q31 * S, - q31_t * pSrc, - q31_t * pRef, - q31_t * pOut, - q31_t * pErr, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t mu = S->mu; /* Adaptive factor */ - q31_t *px; /* Temporary pointer for state */ - q31_t *pb; /* Temporary pointer for coefficient buffer */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - q63_t acc; /* Accumulator */ - q31_t e = 0; /* error of data sample */ - q31_t alpha; /* Intermediate constant for taps update */ - q31_t coef; /* Temporary variable for coef */ - q31_t acc_l, acc_h; /* temporary input */ - uint32_t uShift = ((uint32_t) S->postShift + 1u); - uint32_t lShift = 32u - uShift; /* Shift to be applied to the output */ - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1u)]); - - /* Initializing blkCnt with blockSize */ - blkCnt = blockSize; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - /* acc += b[N] * x[n-N] */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* acc += b[N-1] * x[n-N-1] */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* acc += b[N-2] * x[n-N-2] */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* acc += b[N-3] * x[n-N-3] */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Converting the result to 1.31 format */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* Compute and store error */ - e = *pRef++ - (q31_t) acc; - - *pErr++ = (q31_t) e; - - /* Compute alpha i.e. intermediate constant for taps update */ - alpha = (q31_t) (((q63_t) e * mu) >> 31); - - /* Initialize state pointer */ - /* Advance state pointer by 1 for the next sample */ - px = pState++; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while(tapCnt > 0u) - { - /* coef is in 2.30 format */ - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - /* get coef in 1.31 format by left shifting */ - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - /* update coefficient buffer to next coefficient */ - pb++; - - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - pb++; - - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - pb++; - - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4u; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1u)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop unrolling for (numTaps - 1u) samples copy */ - tapCnt = (numTaps - 1u) >> 2u; - - /* copy data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1u) % 0x4u; - - /* Copy the remaining q31_t data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while(blkCnt > 0u) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Converting the result to 1.31 format */ - /* Store the result from accumulator into the destination buffer. */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - *pOut++ = (q31_t) acc; - - /* Compute and store error */ - e = *pRef++ - (q31_t) acc; - - *pErr++ = (q31_t) e; - - /* Weighting factor for the LMS version */ - alpha = (q31_t) (((q63_t) e * mu) >> 31); - - /* Initialize pState pointer */ - /* Advance state pointer by 1 for the next sample */ - px = pState++; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while(tapCnt > 0u) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb += (coef << 1u); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - start of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Copy (numTaps - 1u) samples */ - tapCnt = (numTaps - 1u); - - /* Copy the data */ - while(tapCnt > 0u) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of LMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_f32.c deleted file mode 100644 index 09099ccb81..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_f32.c +++ /dev/null @@ -1,206 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_add_f32.c -* -* Description: Floating-point matrix addition -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixAdd Matrix Addition - * - * Adds two matrices. - * \image html MatrixAddition.gif "Addition of two 3 x 3 matrices" - * - * The functions check to make sure that - * pSrcA, pSrcB, and pDst have the same - * number of rows and columns. - */ - -/** - * @addtogroup MatrixAdd - * @{ - */ - - -/** - * @brief Floating-point matrix addition. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_add_f32( - const arm_matrix_instance_f32 * pSrcA, - const arm_matrix_instance_f32 * pSrcB, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - -#ifndef ARM_MATH_CM0 - - float32_t inA1, inA2, inB1, inB2, out1, out2; /* temporary variables */ - -#endif // #ifndef ARM_MATH_CM0 - - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix addition */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#ifndef ARM_MATH_CM0 - - /* Loop unrolling */ - blkCnt = numSamples >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add and then store the results in the destination buffer. */ - /* Read values from source A */ - inA1 = pIn1[0]; - - /* Read values from source B */ - inB1 = pIn2[0]; - - /* Read values from source A */ - inA2 = pIn1[1]; - - /* out = sourceA + sourceB */ - out1 = inA1 + inB1; - - /* Read values from source B */ - inB2 = pIn2[1]; - - /* Read values from source A */ - inA1 = pIn1[2]; - - /* out = sourceA + sourceB */ - out2 = inA2 + inB2; - - /* Read values from source B */ - inB1 = pIn2[2]; - - /* Store result in destination */ - pOut[0] = out1; - pOut[1] = out2; - - /* Read values from source A */ - inA2 = pIn1[3]; - - /* Read values from source B */ - inB2 = pIn2[3]; - - /* out = sourceA + sourceB */ - out1 = inA1 + inB1; - - /* out = sourceA + sourceB */ - out2 = inA2 + inB2; - - /* Store result in destination */ - pOut[2] = out1; - - /* Store result in destination */ - pOut[3] = out2; - - - /* update pointers to process next sampels */ - pIn1 += 4u; - pIn2 += 4u; - pOut += 4u; - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add and then store the results in the destination buffer. */ - *pOut++ = (*pIn1++) + (*pIn2++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixAdd group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q15.c deleted file mode 100644 index 4bfc878622..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q15.c +++ /dev/null @@ -1,161 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_add_q15.c -* -* Description: Q15 matrix addition -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixAdd - * @{ - */ - -/** - * @brief Q15 matrix addition. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -arm_status arm_mat_add_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst) -{ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - uint16_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix addition */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Total number of samples in the input matrix */ - numSamples = (uint16_t) (pSrcA->numRows * pSrcA->numCols); - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop unrolling */ - blkCnt = (uint32_t) numSamples >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, Saturate and then store the results in the destination buffer. */ - *__SIMD32(pOut)++ = __QADD16(*__SIMD32(pInA)++, *__SIMD32(pInB)++); - *__SIMD32(pOut)++ = __QADD16(*__SIMD32(pInA)++, *__SIMD32(pInB)++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) numSamples % 0x4u; - - /* q15 pointers of input and output are initialized */ - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, Saturate and then store the results in the destination buffer. */ - *pOut++ = (q15_t) __QADD16(*pInA++, *pInB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = (uint32_t) numSamples; - - - /* q15 pointers of input and output are initialized */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, Saturate and then store the results in the destination buffer. */ - *pOut++ = (q15_t) __SSAT(((q31_t) * pInA++ + *pInB++), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixAdd group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q31.c deleted file mode 100644 index 1f7be21c55..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q31.c +++ /dev/null @@ -1,205 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_add_q31.c -* -* Description: Q31 matrix addition -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixAdd - * @{ - */ - -/** - * @brief Q31 matrix addition. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] will be saturated. - */ - -arm_status arm_mat_add_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t inA1, inB1; /* temporary variables */ - -#ifndef ARM_MATH_CM0 - - q31_t inA2, inB2; /* temporary variables */ - q31_t out1, out2; /* temporary variables */ - -#endif // #ifndef ARM_MATH_CM0 - - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix addition */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2u; - - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, saturate and then store the results in the destination buffer. */ - /* Read values from source A */ - inA1 = pIn1[0]; - - /* Read values from source B */ - inB1 = pIn2[0]; - - /* Read values from source A */ - inA2 = pIn1[1]; - - /* Add and saturate */ - out1 = __QADD(inA1, inB1); - - /* Read values from source B */ - inB2 = pIn2[1]; - - /* Read values from source A */ - inA1 = pIn1[2]; - - /* Add and saturate */ - out2 = __QADD(inA2, inB2); - - /* Read values from source B */ - inB1 = pIn2[2]; - - /* Store result in destination */ - pOut[0] = out1; - pOut[1] = out2; - - /* Read values from source A */ - inA2 = pIn1[3]; - - /* Read values from source B */ - inB2 = pIn2[3]; - - /* Add and saturate */ - out1 = __QADD(inA1, inB1); - out2 = __QADD(inA2, inB2); - - /* Store result in destination */ - pOut[2] = out1; - pOut[3] = out2; - - /* update pointers to process next sampels */ - pIn1 += 4u; - pIn2 += 4u; - pOut += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, saturate and then store the results in the destination buffer. */ - inA1 = *pIn1++; - inB1 = *pIn2++; - - inA1 = __QADD(inA1, inB1); - - /* Decrement the loop counter */ - blkCnt--; - - *pOut++ = inA1; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixAdd group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c deleted file mode 100644 index 9ffc96ee3e..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c +++ /dev/null @@ -1,86 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_init_f32.c -* -* Description: Floating-point matrix initialization. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixInit Matrix Initialization - * - * Initializes the underlying matrix data structure. - * The functions set the numRows, - * numCols, and pData fields - * of the matrix data structure. - */ - -/** - * @addtogroup MatrixInit - * @{ - */ - -/** - * @brief Floating-point matrix initialization. - * @param[in,out] *S points to an instance of the floating-point matrix structure. - * @param[in] nRows number of rows in the matrix. - * @param[in] nColumns number of columns in the matrix. - * @param[in] *pData points to the matrix data array. - * @return none - */ - -void arm_mat_init_f32( - arm_matrix_instance_f32 * S, - uint16_t nRows, - uint16_t nColumns, - float32_t * pData) -{ - /* Assign Number of Rows */ - S->numRows = nRows; - - /* Assign Number of Columns */ - S->numCols = nColumns; - - /* Assign Data pointer */ - S->pData = pData; -} - -/** - * @} end of MatrixInit group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c deleted file mode 100644 index 2bada7feda..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c +++ /dev/null @@ -1,78 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_init_q15.c -* -* Description: Q15 matrix initialization. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------------- */ - - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixInit - * @{ - */ - - /** - * @brief Q15 matrix initialization. - * @param[in,out] *S points to an instance of the floating-point matrix structure. - * @param[in] nRows number of rows in the matrix. - * @param[in] nColumns number of columns in the matrix. - * @param[in] *pData points to the matrix data array. - * @return none - */ - -void arm_mat_init_q15( - arm_matrix_instance_q15 * S, - uint16_t nRows, - uint16_t nColumns, - q15_t * pData) -{ - /* Assign Number of Rows */ - S->numRows = nRows; - - /* Assign Number of Columns */ - S->numCols = nColumns; - - /* Assign Data pointer */ - S->pData = pData; -} - -/** - * @} end of MatrixInit group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c deleted file mode 100644 index 8828c2d2ea..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c +++ /dev/null @@ -1,82 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_init_q31.c -* -* Description: Q31 matrix initialization. -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------------- */ - - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixInit Matrix Initialization - * - */ - -/** - * @addtogroup MatrixInit - * @{ - */ - - /** - * @brief Q31 matrix initialization. - * @param[in,out] *S points to an instance of the floating-point matrix structure. - * @param[in] nRows number of rows in the matrix. - * @param[in] nColumns number of columns in the matrix. - * @param[in] *pData points to the matrix data array. - * @return none - */ - -void arm_mat_init_q31( - arm_matrix_instance_q31 * S, - uint16_t nRows, - uint16_t nColumns, - q31_t * pData) -{ - /* Assign Number of Rows */ - S->numRows = nRows; - - /* Assign Number of Columns */ - S->numCols = nColumns; - - /* Assign Data pointer */ - S->pData = pData; -} - -/** - * @} end of MatrixInit group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f32.c deleted file mode 100644 index f346916e0c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f32.c +++ /dev/null @@ -1,668 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_inverse_f32.c -* -* Description: Floating-point matrix inverse. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixInv Matrix Inverse - * - * Computes the inverse of a matrix. - * - * The inverse is defined only if the input matrix is square and non-singular (the determinant - * is non-zero). The function checks that the input and output matrices are square and of the - * same size. - * - * Matrix inversion is numerically sensitive and the CMSIS DSP library only supports matrix - * inversion of floating-point matrices. - * - * \par Algorithm - * The Gauss-Jordan method is used to find the inverse. - * The algorithm performs a sequence of elementary row-operations till it - * reduces the input matrix to an identity matrix. Applying the same sequence - * of elementary row-operations to an identity matrix yields the inverse matrix. - * If the input matrix is singular, then the algorithm terminates and returns error status - * ARM_MATH_SINGULAR. - * \image html MatrixInverse.gif "Matrix Inverse of a 3 x 3 matrix using Gauss-Jordan Method" - */ - -/** - * @addtogroup MatrixInv - * @{ - */ - -/** - * @brief Floating-point matrix inverse. - * @param[in] *pSrc points to input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns - * ARM_MATH_SIZE_MISMATCH if the input matrix is not square or if the size - * of the output matrix does not match the size of the input matrix. - * If the input matrix is found to be singular (non-invertible), then the function returns - * ARM_MATH_SINGULAR. Otherwise, the function returns ARM_MATH_SUCCESS. - */ - -arm_status arm_mat_inverse_f32( - const arm_matrix_instance_f32 * pSrc, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn = pSrc->pData; /* input data matrix pointer */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - float32_t *pInT1, *pInT2; /* Temporary input data matrix pointer */ - float32_t *pInT3, *pInT4; /* Temporary output data matrix pointer */ - float32_t *pPivotRowIn, *pPRT_in, *pPivotRowDst, *pPRT_pDst; /* Temporary input and output data matrix pointer */ - uint32_t numRows = pSrc->numRows; /* Number of rows in the matrix */ - uint32_t numCols = pSrc->numCols; /* Number of Cols in the matrix */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t Xchg, in = 0.0f, in1; /* Temporary input values */ - uint32_t i, rowCnt, flag = 0u, j, loopCnt, k, l; /* loop counters */ - arm_status status; /* status of matrix inverse */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pSrc->numCols) || (pDst->numRows != pDst->numCols) - || (pSrc->numRows != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - - /*-------------------------------------------------------------------------------------------------------------- - * Matrix Inverse can be solved using elementary row operations. - * - * Gauss-Jordan Method: - * - * 1. First combine the identity matrix and the input matrix separated by a bar to form an - * augmented matrix as follows: - * _ _ _ _ - * | a11 a12 | 1 0 | | X11 X12 | - * | | | = | | - * |_ a21 a22 | 0 1 _| |_ X21 X21 _| - * - * 2. In our implementation, pDst Matrix is used as identity matrix. - * - * 3. Begin with the first row. Let i = 1. - * - * 4. Check to see if the pivot for row i is zero. - * The pivot is the element of the main diagonal that is on the current row. - * For instance, if working with row i, then the pivot element is aii. - * If the pivot is zero, exchange that row with a row below it that does not - * contain a zero in column i. If this is not possible, then an inverse - * to that matrix does not exist. - * - * 5. Divide every element of row i by the pivot. - * - * 6. For every row below and row i, replace that row with the sum of that row and - * a multiple of row i so that each new element in column i below row i is zero. - * - * 7. Move to the next row and column and repeat steps 2 through 5 until you have zeros - * for every element below and above the main diagonal. - * - * 8. Now an identical matrix is formed to the left of the bar(input matrix, pSrc). - * Therefore, the matrix to the right of the bar is our solution(pDst matrix, pDst). - *----------------------------------------------------------------------------------------------------------------*/ - - /* Working pointer for destination matrix */ - pInT2 = pOut; - - /* Loop over the number of rows */ - rowCnt = numRows; - - /* Making the destination matrix as identity matrix */ - while(rowCnt > 0u) - { - /* Writing all zeroes in lower triangle of the destination matrix */ - j = numRows - rowCnt; - while(j > 0u) - { - *pInT2++ = 0.0f; - j--; - } - - /* Writing all ones in the diagonal of the destination matrix */ - *pInT2++ = 1.0f; - - /* Writing all zeroes in upper triangle of the destination matrix */ - j = rowCnt - 1u; - while(j > 0u) - { - *pInT2++ = 0.0f; - j--; - } - - /* Decrement the loop counter */ - rowCnt--; - } - - /* Loop over the number of columns of the input matrix. - All the elements in each column are processed by the row operations */ - loopCnt = numCols; - - /* Index modifier to navigate through the columns */ - l = 0u; - - while(loopCnt > 0u) - { - /* Check if the pivot element is zero.. - * If it is zero then interchange the row with non zero row below. - * If there is no non zero element to replace in the rows below, - * then the matrix is Singular. */ - - /* Working pointer for the input matrix that points - * to the pivot element of the particular row */ - pInT1 = pIn + (l * numCols); - - /* Working pointer for the destination matrix that points - * to the pivot element of the particular row */ - pInT3 = pOut + (l * numCols); - - /* Temporary variable to hold the pivot value */ - in = *pInT1; - - /* Destination pointer modifier */ - k = 1u; - - /* Check if the pivot element is zero */ - if(*pInT1 == 0.0f) - { - /* Loop over the number rows present below */ - i = numRows - (l + 1u); - - while(i > 0u) - { - /* Update the input and destination pointers */ - pInT2 = pInT1 + (numCols * l); - pInT4 = pInT3 + (numCols * k); - - /* Check if there is a non zero pivot element to - * replace in the rows below */ - if(*pInT2 != 0.0f) - { - /* Loop over number of columns - * to the right of the pilot element */ - j = numCols - l; - - while(j > 0u) - { - /* Exchange the row elements of the input matrix */ - Xchg = *pInT2; - *pInT2++ = *pInT1; - *pInT1++ = Xchg; - - /* Decrement the loop counter */ - j--; - } - - /* Loop over number of columns of the destination matrix */ - j = numCols; - - while(j > 0u) - { - /* Exchange the row elements of the destination matrix */ - Xchg = *pInT4; - *pInT4++ = *pInT3; - *pInT3++ = Xchg; - - /* Decrement the loop counter */ - j--; - } - - /* Flag to indicate whether exchange is done or not */ - flag = 1u; - - /* Break after exchange is done */ - break; - } - - /* Update the destination pointer modifier */ - k++; - - /* Decrement the loop counter */ - i--; - } - } - - /* Update the status if the matrix is singular */ - if((flag != 1u) && (in == 0.0f)) - { - status = ARM_MATH_SINGULAR; - - break; - } - - /* Points to the pivot row of input and destination matrices */ - pPivotRowIn = pIn + (l * numCols); - pPivotRowDst = pOut + (l * numCols); - - /* Temporary pointers to the pivot row pointers */ - pInT1 = pPivotRowIn; - pInT2 = pPivotRowDst; - - /* Pivot element of the row */ - in = *(pIn + (l * numCols)); - - /* Loop over number of columns - * to the right of the pilot element */ - j = (numCols - l); - - while(j > 0u) - { - /* Divide each element of the row of the input matrix - * by the pivot element */ - in1 = *pInT1; - *pInT1++ = in1 / in; - - /* Decrement the loop counter */ - j--; - } - - /* Loop over number of columns of the destination matrix */ - j = numCols; - - while(j > 0u) - { - /* Divide each element of the row of the destination matrix - * by the pivot element */ - in1 = *pInT2; - *pInT2++ = in1 / in; - - /* Decrement the loop counter */ - j--; - } - - /* Replace the rows with the sum of that row and a multiple of row i - * so that each new element in column i above row i is zero.*/ - - /* Temporary pointers for input and destination matrices */ - pInT1 = pIn; - pInT2 = pOut; - - /* index used to check for pivot element */ - i = 0u; - - /* Loop over number of rows */ - /* to be replaced by the sum of that row and a multiple of row i */ - k = numRows; - - while(k > 0u) - { - /* Check for the pivot element */ - if(i == l) - { - /* If the processing element is the pivot element, - only the columns to the right are to be processed */ - pInT1 += numCols - l; - - pInT2 += numCols; - } - else - { - /* Element of the reference row */ - in = *pInT1; - - /* Working pointers for input and destination pivot rows */ - pPRT_in = pPivotRowIn; - pPRT_pDst = pPivotRowDst; - - /* Loop over the number of columns to the right of the pivot element, - to replace the elements in the input matrix */ - j = (numCols - l); - - while(j > 0u) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - in1 = *pInT1; - *pInT1++ = in1 - (in * *pPRT_in++); - - /* Decrement the loop counter */ - j--; - } - - /* Loop over the number of columns to - replace the elements in the destination matrix */ - j = numCols; - - while(j > 0u) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - in1 = *pInT2; - *pInT2++ = in1 - (in * *pPRT_pDst++); - - /* Decrement the loop counter */ - j--; - } - - } - - /* Increment the temporary input pointer */ - pInT1 = pInT1 + l; - - /* Decrement the loop counter */ - k--; - - /* Increment the pivot index */ - i++; - } - - /* Increment the input pointer */ - pIn++; - - /* Decrement the loop counter */ - loopCnt--; - - /* Increment the index modifier */ - l++; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t Xchg, in = 0.0f; /* Temporary input values */ - uint32_t i, rowCnt, flag = 0u, j, loopCnt, k, l; /* loop counters */ - arm_status status; /* status of matrix inverse */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pSrc->numCols) || (pDst->numRows != pDst->numCols) - || (pSrc->numRows != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - - /*-------------------------------------------------------------------------------------------------------------- - * Matrix Inverse can be solved using elementary row operations. - * - * Gauss-Jordan Method: - * - * 1. First combine the identity matrix and the input matrix separated by a bar to form an - * augmented matrix as follows: - * _ _ _ _ _ _ _ _ - * | | a11 a12 | | | 1 0 | | | X11 X12 | - * | | | | | | | = | | - * |_ |_ a21 a22 _| | |_0 1 _| _| |_ X21 X21 _| - * - * 2. In our implementation, pDst Matrix is used as identity matrix. - * - * 3. Begin with the first row. Let i = 1. - * - * 4. Check to see if the pivot for row i is zero. - * The pivot is the element of the main diagonal that is on the current row. - * For instance, if working with row i, then the pivot element is aii. - * If the pivot is zero, exchange that row with a row below it that does not - * contain a zero in column i. If this is not possible, then an inverse - * to that matrix does not exist. - * - * 5. Divide every element of row i by the pivot. - * - * 6. For every row below and row i, replace that row with the sum of that row and - * a multiple of row i so that each new element in column i below row i is zero. - * - * 7. Move to the next row and column and repeat steps 2 through 5 until you have zeros - * for every element below and above the main diagonal. - * - * 8. Now an identical matrix is formed to the left of the bar(input matrix, src). - * Therefore, the matrix to the right of the bar is our solution(dst matrix, dst). - *----------------------------------------------------------------------------------------------------------------*/ - - /* Working pointer for destination matrix */ - pInT2 = pOut; - - /* Loop over the number of rows */ - rowCnt = numRows; - - /* Making the destination matrix as identity matrix */ - while(rowCnt > 0u) - { - /* Writing all zeroes in lower triangle of the destination matrix */ - j = numRows - rowCnt; - while(j > 0u) - { - *pInT2++ = 0.0f; - j--; - } - - /* Writing all ones in the diagonal of the destination matrix */ - *pInT2++ = 1.0f; - - /* Writing all zeroes in upper triangle of the destination matrix */ - j = rowCnt - 1u; - while(j > 0u) - { - *pInT2++ = 0.0f; - j--; - } - - /* Decrement the loop counter */ - rowCnt--; - } - - /* Loop over the number of columns of the input matrix. - All the elements in each column are processed by the row operations */ - loopCnt = numCols; - - /* Index modifier to navigate through the columns */ - l = 0u; - //for(loopCnt = 0u; loopCnt < numCols; loopCnt++) - while(loopCnt > 0u) - { - /* Check if the pivot element is zero.. - * If it is zero then interchange the row with non zero row below. - * If there is no non zero element to replace in the rows below, - * then the matrix is Singular. */ - - /* Working pointer for the input matrix that points - * to the pivot element of the particular row */ - pInT1 = pIn + (l * numCols); - - /* Working pointer for the destination matrix that points - * to the pivot element of the particular row */ - pInT3 = pOut + (l * numCols); - - /* Temporary variable to hold the pivot value */ - in = *pInT1; - - /* Destination pointer modifier */ - k = 1u; - - /* Check if the pivot element is zero */ - if(*pInT1 == 0.0f) - { - /* Loop over the number rows present below */ - for (i = (l + 1u); i < numRows; i++) - { - /* Update the input and destination pointers */ - pInT2 = pInT1 + (numCols * l); - pInT4 = pInT3 + (numCols * k); - - /* Check if there is a non zero pivot element to - * replace in the rows below */ - if(*pInT2 != 0.0f) - { - /* Loop over number of columns - * to the right of the pilot element */ - for (j = 0u; j < (numCols - l); j++) - { - /* Exchange the row elements of the input matrix */ - Xchg = *pInT2; - *pInT2++ = *pInT1; - *pInT1++ = Xchg; - } - - for (j = 0u; j < numCols; j++) - { - Xchg = *pInT4; - *pInT4++ = *pInT3; - *pInT3++ = Xchg; - } - - /* Flag to indicate whether exchange is done or not */ - flag = 1u; - - /* Break after exchange is done */ - break; - } - - /* Update the destination pointer modifier */ - k++; - } - } - - /* Update the status if the matrix is singular */ - if((flag != 1u) && (in == 0.0f)) - { - status = ARM_MATH_SINGULAR; - - break; - } - - /* Points to the pivot row of input and destination matrices */ - pPivotRowIn = pIn + (l * numCols); - pPivotRowDst = pOut + (l * numCols); - - /* Temporary pointers to the pivot row pointers */ - pInT1 = pPivotRowIn; - pInT2 = pPivotRowDst; - - /* Pivot element of the row */ - in = *(pIn + (l * numCols)); - - /* Loop over number of columns - * to the right of the pilot element */ - for (j = 0u; j < (numCols - l); j++) - { - /* Divide each element of the row of the input matrix - * by the pivot element */ - *pInT1++ = *pInT1 / in; - } - for (j = 0u; j < numCols; j++) - { - /* Divide each element of the row of the destination matrix - * by the pivot element */ - *pInT2++ = *pInT2 / in; - } - - /* Replace the rows with the sum of that row and a multiple of row i - * so that each new element in column i above row i is zero.*/ - - /* Temporary pointers for input and destination matrices */ - pInT1 = pIn; - pInT2 = pOut; - - for (i = 0u; i < numRows; i++) - { - /* Check for the pivot element */ - if(i == l) - { - /* If the processing element is the pivot element, - only the columns to the right are to be processed */ - pInT1 += numCols - l; - pInT2 += numCols; - } - else - { - /* Element of the reference row */ - in = *pInT1; - - /* Working pointers for input and destination pivot rows */ - pPRT_in = pPivotRowIn; - pPRT_pDst = pPivotRowDst; - - /* Loop over the number of columns to the right of the pivot element, - to replace the elements in the input matrix */ - for (j = 0u; j < (numCols - l); j++) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - *pInT1++ = *pInT1 - (in * *pPRT_in++); - } - /* Loop over the number of columns to - replace the elements in the destination matrix */ - for (j = 0u; j < numCols; j++) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - *pInT2++ = *pInT2 - (in * *pPRT_pDst++); - } - - } - /* Increment the temporary input pointer */ - pInT1 = pInT1 + l; - } - /* Increment the input pointer */ - pIn++; - - /* Decrement the loop counter */ - loopCnt--; - /* Increment the index modifier */ - l++; - } - - -#endif /* #ifndef ARM_MATH_CM0 */ - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - if((flag != 1u) && (in == 0.0f)) - { - status = ARM_MATH_SINGULAR; - } - } - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixInv group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_f32.c deleted file mode 100644 index a2f513628e..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_f32.c +++ /dev/null @@ -1,284 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_mult_f32.c -* -* Description: Floating-point matrix multiplication. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixMult Matrix Multiplication - * - * Multiplies two matrices. - * - * \image html MatrixMultiplication.gif "Multiplication of two 3 x 3 matrices" - - * Matrix multiplication is only defined if the number of columns of the - * first matrix equals the number of rows of the second matrix. - * Multiplying an M x N matrix with an N x P matrix results - * in an M x P matrix. - * When matrix size checking is enabled, the functions check: (1) that the inner dimensions of - * pSrcA and pSrcB are equal; and (2) that the size of the output - * matrix equals the outer dimensions of pSrcA and pSrcB. - */ - - -/** - * @addtogroup MatrixMult - * @{ - */ - -/** - * @brief Floating-point matrix multiplication. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_mult_f32( - const arm_matrix_instance_f32 * pSrcA, - const arm_matrix_instance_f32 * pSrcB, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - float32_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - float32_t *px; /* Temporary output data matrix pointer */ - float32_t sum; /* Accumulator */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t in1, in2, in3, in4; - uint16_t col, i = 0u, j, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - j = 0u; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0.0f; - - /* Initiate the pointer pIn1 to point to the starting address of the column being processed */ - pIn1 = pInA; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - colCnt = numColsA >> 2u; - - /* matrix multiplication */ - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - in3 = *pIn2; - pIn2 += numColsB; - in1 = pIn1[0]; - in2 = pIn1[1]; - sum += in1 * in3; - in4 = *pIn2; - pIn2 += numColsB; - sum += in2 * in4; - - in3 = *pIn2; - pIn2 += numColsB; - in1 = pIn1[2]; - in2 = pIn1[3]; - sum += in1 * in3; - in4 = *pIn2; - pIn2 += numColsB; - sum += in2 * in4; - pIn1 += 4u; - - /* Decrement the loop count */ - colCnt--; - } - - /* If the columns of pSrcA is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - colCnt = numColsA % 0x4u; - - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - sum += *pIn1++ * (*pIn2); - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Store the result in the destination buffer */ - *px++ = sum; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - j++; - pIn2 = pSrcB->pData + j; - - /* Decrement the column loop counter */ - col--; - - } while(col > 0u); - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - uint16_t col, i = 0u, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pInA with each column in pInB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0.0f; - - /* Initialize the pointer pIn1 to point to the starting address of the row being processed */ - pIn1 = pInA; - - /* Matrix A columns number of MAC operations are to be performed */ - colCnt = numColsA; - - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - sum += *pIn1++ * (*pIn2); - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Store the result in the destination buffer */ - *px++ = sum; - - /* Decrement the column loop counter */ - col--; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - pIn2 = pInB + (numColsB - col); - - } while(col > 0u); - -#endif /* #ifndef ARM_MATH_CM0 */ - - /* Update the pointer pInA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q15.c deleted file mode 100644 index a88e3cdd1a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q15.c +++ /dev/null @@ -1,361 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_mult_fast_q15.c -* -* Description: Q15 matrix multiplication (fast variant) -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixMult - * @{ - */ - - -/** - * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @param[in] *pState points to the array for storing intermediate results - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The difference between the function arm_mat_mult_q15() and this fast variant is that - * the fast variant use a 32-bit rather than a 64-bit accumulator. - * The result of each 1.15 x 1.15 multiplication is truncated to - * 2.30 format. These intermediate results are accumulated in a 32-bit register in 2.30 - * format. Finally, the accumulator is saturated and converted to a 1.15 result. - * - * \par - * The fast version has the same overflow behavior as the standard version but provides - * less precision since it discards the low 16 bits of each multiplication result. - * In order to avoid overflows completely the input signals must be scaled down. - * Scale down one of the input matrices by log2(numColsA) bits to - * avoid overflows, as a total of numColsA additions are computed internally for each - * output element. - * - * \par - * See arm_mat_mult_q15() for a slower implementation of this function - * which uses 64-bit accumulation to provide higher precision. - */ - -arm_status arm_mat_mult_fast_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst, - q15_t * pState) -{ - q31_t sum; /* accumulator */ - q15_t *pSrcBT = pState; /* input data matrix pointer for transpose */ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A of Q15 type */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B of Q15 type */ - q15_t *px; /* Temporary output data matrix pointer */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint16_t numRowsB = pSrcB->numRows; /* number of rows of input matrix A */ - uint16_t col, i = 0u, row = numRowsB, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - q31_t in; /* Temporary variable to hold the input value */ - q31_t inA1, inA2, inB1, inB2; - -#else - - q15_t in; /* Temporary variable to hold the input value */ - q15_t inA1, inA2, inB1, inB2; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - /* Matrix transpose */ - do - { - /* Apply loop unrolling and exchange the columns with row elements */ - col = numColsB >> 2; - - /* The pointer px is set to starting address of the column being processed */ - px = pSrcBT + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(col > 0u) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) in; - -#else - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Unpack and store the second element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *px = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) in; - -#else - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Unpack and store the second element in the destination */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *px = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - -#else - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Decrement the column loop counter */ - col--; - } - - /* If the columns of pSrcB is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - col = numColsB % 0x4u; - - while(col > 0u) - { - /* Read and store the input element in the destination */ - *px = *pInB++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Decrement the column loop counter */ - col--; - } - - i++; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - - /* Reset the variables for the usage in the following multiplication process */ - row = numRowsA; - i = 0u; - px = pDst->pData; - - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the transposed pSrcB data */ - pInB = pSrcBT; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Apply loop unrolling and compute 2 MACs simultaneously. */ - colCnt = numColsA >> 2; - - /* Initiate the pointer pIn1 to point to the starting address of the column being processed */ - pInA = pSrcA->pData + i; - - /* matrix multiplication */ - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - inA1 = *__SIMD32(pInA)++; - inB1 = *__SIMD32(pInB)++; - inA2 = *__SIMD32(pInA)++; - inB2 = *__SIMD32(pInB)++; - - sum = __SMLAD(inA1, inB1, sum); - sum = __SMLAD(inA2, inB2, sum); - -#else - - inA1 = *pInA++; - inB1 = *pInB++; - inA2 = *pInA++; - sum += inA1 * inB1; - inB2 = *pInB++; - - inA1 = *pInA++; - inB1 = *pInB++; - sum += inA2 * inB2; - inA2 = *pInA++; - inB2 = *pInB++; - - sum += inA1 * inB1; - sum += inA2 * inB2; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - colCnt--; - } - - /* process odd column samples */ - colCnt = numColsA % 0x4u; - - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - sum += (q31_t) (*pInA++) * (*pInB++); - - colCnt--; - } - - /* Saturate and store the result in the destination buffer */ - *px = (q15_t) (sum >> 15); - px++; - - /* Decrement the column loop counter */ - col--; - - } while(col > 0u); - - i = i + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q31.c deleted file mode 100644 index 7fdbb1cb89..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q31.c +++ /dev/null @@ -1,218 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_mult_fast_q31.c -* -* Description: Q31 matrix multiplication (fast variant). -* -* Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixMult - * @{ - */ - -/** - * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The difference between the function arm_mat_mult_q31() and this fast variant is that - * the fast variant use a 32-bit rather than a 64-bit accumulator. - * The result of each 1.31 x 1.31 multiplication is truncated to - * 2.30 format. These intermediate results are accumulated in a 32-bit register in 2.30 - * format. Finally, the accumulator is saturated and converted to a 1.31 result. - * - * \par - * The fast version has the same overflow behavior as the standard version but provides - * less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signals must be scaled down. - * Scale down one of the input matrices by log2(numColsA) bits to - * avoid overflows, as a total of numColsA additions are computed internally for each - * output element. - * - * \par - * See arm_mat_mult_q31() for a slower implementation of this function - * which uses 64-bit accumulation to provide higher precision. - */ - -arm_status arm_mat_mult_fast_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pInA = pSrcA->pData; /* input data matrix pointer A */ -// q31_t *pSrcB = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t *px; /* Temporary output data matrix pointer */ - q31_t sum; /* Accumulator */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint16_t col, i = 0u, j, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - q31_t inA1, inA2, inA3, inA4, inB1, inB2, inB3, inB4; - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - j = 0u; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate the pointer pIn1 to point to the starting address of pInA */ - pIn1 = pInA; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - colCnt = numColsA >> 2; - - - /* matrix multiplication */ - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - inB1 = *pIn2; - pIn2 += numColsB; - - inA1 = pIn1[0]; - inA2 = pIn1[1]; - - inB2 = *pIn2; - pIn2 += numColsB; - - inB3 = *pIn2; - pIn2 += numColsB; - - sum = (q31_t) ((((q63_t) sum << 32) + ((q63_t) inA1 * inB1)) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + ((q63_t) inA2 * inB2)) >> 32); - - inA3 = pIn1[2]; - inA4 = pIn1[3]; - - inB4 = *pIn2; - pIn2 += numColsB; - - sum = (q31_t) ((((q63_t) sum << 32) + ((q63_t) inA3 * inB3)) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + ((q63_t) inA4 * inB4)) >> 32); - - pIn1 += 4u; - - /* Decrement the loop counter */ - colCnt--; - } - - /* If the columns of pSrcA is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - colCnt = numColsA % 0x4u; - - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * pIn1++ * (*pIn2))) >> 32); - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Convert the result from 2.30 to 1.31 format and store in destination buffer */ - *px++ = sum << 1; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - j++; - pIn2 = pSrcB->pData + j; - - /* Decrement the column loop counter */ - col--; - - } while(col > 0u); - - /* Update the pointer pInA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q15.c deleted file mode 100644 index b48d204ed5..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q15.c +++ /dev/null @@ -1,467 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_mult_q15.c -* -* Description: Q15 matrix multiplication. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixMult - * @{ - */ - - -/** - * @brief Q15 matrix multiplication - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @param[in] *pState points to the array for storing intermediate results - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. The inputs to the - * multiplications are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate - * results are accumulated in a 64-bit accumulator in 34.30 format. This approach - * provides 33 guard bits and there is no risk of overflow. The 34.30 result is then - * truncated to 34.15 format by discarding the low 15 bits and then saturated to - * 1.15 format. - * - * \par - * Refer to arm_mat_mult_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - */ - -arm_status arm_mat_mult_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst, - q15_t * pState) -{ - q63_t sum; /* accumulator */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pSrcBT = pState; /* input data matrix pointer for transpose */ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A of Q15 type */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B of Q15 type */ - q15_t *px; /* Temporary output data matrix pointer */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint16_t numRowsB = pSrcB->numRows; /* number of rows of input matrix A */ - uint16_t col, i = 0u, row = numRowsB, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - q31_t in; /* Temporary variable to hold the input value */ - q31_t pSourceA1, pSourceB1, pSourceA2, pSourceB2; - -#else - - q15_t in; /* Temporary variable to hold the input value */ - q15_t inA1, inB1, inA2, inB2; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - /* Matrix transpose */ - do - { - /* Apply loop unrolling and exchange the columns with row elements */ - col = numColsB >> 2; - - /* The pointer px is set to starting address of the column being processed */ - px = pSrcBT + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(col > 0u) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) in; - -#else - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Unpack and store the second element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *px = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) in; - -#else - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Unpack and store the second element in the destination */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *px = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - -#else - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the column loop counter */ - col--; - } - - /* If the columns of pSrcB is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - col = numColsB % 0x4u; - - while(col > 0u) - { - /* Read and store the input element in the destination */ - *px = *pInB++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Decrement the column loop counter */ - col--; - } - - i++; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - - /* Reset the variables for the usage in the following multiplication process */ - row = numRowsA; - i = 0u; - px = pDst->pData; - - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the transposed pSrcB data */ - pInB = pSrcBT; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Apply loop unrolling and compute 2 MACs simultaneously. */ - colCnt = numColsA >> 2; - - /* Initiate the pointer pIn1 to point to the starting address of the column being processed */ - pInA = pSrcA->pData + i; - - - /* matrix multiplication */ - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* read real and imag values from pSrcA and pSrcB buffer */ - pSourceA1 = *__SIMD32(pInA)++; - pSourceB1 = *__SIMD32(pInB)++; - - pSourceA2 = *__SIMD32(pInA)++; - pSourceB2 = *__SIMD32(pInB)++; - - /* Multiply and Accumlates */ - sum = __SMLALD(pSourceA1, pSourceB1, sum); - sum = __SMLALD(pSourceA2, pSourceB2, sum); - -#else - /* read real and imag values from pSrcA and pSrcB buffer */ - inA1 = *pInA++; - inB1 = *pInB++; - inA2 = *pInA++; - /* Multiply and Accumlates */ - sum += inA1 * inB1; - inB2 = *pInB++; - - inA1 = *pInA++; - inB1 = *pInB++; - /* Multiply and Accumlates */ - sum += inA2 * inB2; - inA2 = *pInA++; - inB2 = *pInB++; - - /* Multiply and Accumlates */ - sum += inA1 * inB1; - sum += inA2 * inB2; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - colCnt--; - } - - /* process remaining column samples */ - colCnt = numColsA & 3u; - - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - sum += *pInA++ * *pInB++; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Saturate and store the result in the destination buffer */ - *px = (q15_t) (__SSAT((sum >> 15), 16)); - px++; - - /* Decrement the column loop counter */ - col--; - - } while(col > 0u); - - i = i + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q15_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A of Q15 type */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B of Q15 type */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - q15_t *px; /* Temporary output data matrix pointer */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t col, i = 0u, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate the pointer pIn1 to point to the starting address of pSrcA */ - pIn1 = pInA; - - /* Matrix A columns number of MAC operations are to be performed */ - colCnt = numColsA; - - /* matrix multiplication */ - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - sum += (q31_t) * pIn1++ * *pIn2; - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Convert the result from 34.30 to 1.15 format and store the saturated value in destination buffer */ - /* Saturate and store the result in the destination buffer */ - *px++ = (q15_t) __SSAT((sum >> 15), 16); - - /* Decrement the column loop counter */ - col--; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - pIn2 = pInB + (numColsB - col); - - } while(col > 0u); - - /* Update the pointer pSrcA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - -#endif /* #ifndef ARM_MATH_CM0 */ - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q31.c deleted file mode 100644 index eb76522042..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q31.c +++ /dev/null @@ -1,292 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_mult_q31.c -* -* Description: Q31 matrix multiplication. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixMult - * @{ - */ - -/** - * @brief Q31 matrix multiplication - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate - * multiplication results but provides only a single guard bit. There is no saturation - * on intermediate additions. Thus, if the accumulator overflows it wraps around and - * distorts the result. The input signals should be scaled down to avoid intermediate - * overflows. The input is thus scaled down by log2(numColsA) bits - * to avoid overflows, as a total of numColsA additions are performed internally. - * The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * \par - * See arm_mat_mult_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - * - */ - -arm_status arm_mat_mult_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t *px; /* Temporary output data matrix pointer */ - q63_t sum; /* Accumulator */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - uint16_t col, i = 0u, j, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - q31_t a0, a1, a2, a3, b0, b1, b2, b3; - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - j = 0u; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate the pointer pIn1 to point to the starting address of pInA */ - pIn1 = pInA; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - colCnt = numColsA >> 2; - - - /* matrix multiplication */ - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - b0 = *pIn2; - pIn2 += numColsB; - - a0 = *pIn1++; - a1 = *pIn1++; - - b1 = *pIn2; - pIn2 += numColsB; - b2 = *pIn2; - pIn2 += numColsB; - - sum += (q63_t) a0 *b0; - sum += (q63_t) a1 *b1; - - a2 = *pIn1++; - a3 = *pIn1++; - - b3 = *pIn2; - pIn2 += numColsB; - - sum += (q63_t) a2 *b2; - sum += (q63_t) a3 *b3; - - /* Decrement the loop counter */ - colCnt--; - } - - /* If the columns of pSrcA is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - colCnt = numColsA % 0x4u; - - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - sum += (q63_t) * pIn1++ * *pIn2; - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Convert the result from 2.62 to 1.31 format and store in destination buffer */ - *px++ = (q31_t) (sum >> 31); - - /* Update the pointer pIn2 to point to the starting address of the next column */ - j++; - pIn2 = (pSrcB->pData) + j; - - /* Decrement the column loop counter */ - col--; - - } while(col > 0u); - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - uint16_t col, i = 0u, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate the pointer pIn1 to point to the starting address of pInA */ - pIn1 = pInA; - - /* Matrix A columns number of MAC operations are to be performed */ - colCnt = numColsA; - - /* matrix multiplication */ - while(colCnt > 0u) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - sum += (q63_t) * pIn1++ * *pIn2; - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Convert the result from 2.62 to 1.31 format and store in destination buffer */ - *px++ = (q31_t) (sum >> 31); - - /* Decrement the column loop counter */ - col--; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - pIn2 = pInB + (numColsB - col); - - } while(col > 0u); - -#endif - - /* Update the pointer pInA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_f32.c deleted file mode 100644 index e64cfd1d12..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_f32.c +++ /dev/null @@ -1,179 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_scale_f32.c -* -* Description: Multiplies a floating-point matrix by a scalar. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixScale Matrix Scale - * - * Multiplies a matrix by a scalar. This is accomplished by multiplying each element in the - * matrix by the scalar. For example: - * \image html MatrixScale.gif "Matrix Scaling of a 3 x 3 matrix" - * - * The function checks to make sure that the input and output matrices are of the same size. - * - * In the fixed-point Q15 and Q31 functions, scale is represented by - * a fractional multiplication scaleFract and an arithmetic shift shift. - * The shift allows the gain of the scaling operation to exceed 1.0. - * The overall scale factor applied to the fixed-point data is - *
        
- *     scale = scaleFract * 2^shift.        
- * 
- */ - -/** - * @addtogroup MatrixScale - * @{ - */ - -/** - * @brief Floating-point matrix scaling. - * @param[in] *pSrc points to input matrix structure - * @param[in] scale scale factor to be applied - * @param[out] *pDst points to output matrix structure - * @return The function returns either ARM_MATH_SIZE_MISMATCH - * or ARM_MATH_SUCCESS based on the outcome of size checking. - * - */ - -arm_status arm_mat_scale_f32( - const arm_matrix_instance_f32 * pSrc, - float32_t scale, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn = pSrc->pData; /* input data matrix pointer */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix scaling */ - -#ifndef ARM_MATH_CM0 - - float32_t in1, in2, in3, in4; /* temporary variables */ - float32_t out1, out2, out3, out4; /* temporary variables */ - -#endif // #ifndef ARM_MATH_CM0 - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pDst->numRows) || (pSrc->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrc->numRows * pSrc->numCols; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) * scale */ - /* Scaling and results are stored in the destination buffer. */ - in1 = pIn[0]; - in2 = pIn[1]; - in3 = pIn[2]; - in4 = pIn[3]; - - out1 = in1 * scale; - out2 = in2 * scale; - out3 = in3 * scale; - out4 = in4 * scale; - - - pOut[0] = out1; - pOut[1] = out2; - pOut[2] = out3; - pOut[3] = out4; - - /* update pointers to process next sampels */ - pIn += 4u; - pOut += 4u; - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) * scale */ - /* The results are stored in the destination buffer. */ - *pOut++ = (*pIn++) * scale; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixScale group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q15.c deleted file mode 100644 index 58011254c8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q15.c +++ /dev/null @@ -1,181 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_scale_q15.c -* -* Description: Multiplies a Q15 matrix by a scalar. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixScale - * @{ - */ - -/** - * @brief Q15 matrix scaling. - * @param[in] *pSrc points to input matrix - * @param[in] scaleFract fractional portion of the scale factor - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.15 format. - * These are multiplied to yield a 2.30 intermediate result and this is shifted with saturation to 1.15 format. - */ - -arm_status arm_mat_scale_q15( - const arm_matrix_instance_q15 * pSrc, - q15_t scaleFract, - int32_t shift, - arm_matrix_instance_q15 * pDst) -{ - q15_t *pIn = pSrc->pData; /* input data matrix pointer */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - uint32_t numSamples; /* total number of elements in the matrix */ - int32_t totShift = 15 - shift; /* total shift to apply after scaling */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix scaling */ - -#ifndef ARM_MATH_CM0 - - q15_t in1, in2, in3, in4; - q31_t out1, out2, out3, out4; - q31_t inA1, inA2; - -#endif // #ifndef ARM_MATH_CM0 - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch */ - if((pSrc->numRows != pDst->numRows) || (pSrc->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif // #ifdef ARM_MATH_MATRIX_CHECK - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrc->numRows * pSrc->numCols; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - /* Loop Unrolling */ - blkCnt = numSamples >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) * k */ - /* Scale, saturate and then store the results in the destination buffer. */ - /* Reading 2 inputs from memory */ - inA1 = _SIMD32_OFFSET(pIn); - inA2 = _SIMD32_OFFSET(pIn + 2); - - /* C = A * scale */ - /* Scale the inputs and then store the 2 results in the destination buffer - * in single cycle by packing the outputs */ - out1 = (q31_t) ((q15_t) (inA1 >> 16) * scaleFract); - out2 = (q31_t) ((q15_t) inA1 * scaleFract); - out3 = (q31_t) ((q15_t) (inA2 >> 16) * scaleFract); - out4 = (q31_t) ((q15_t) inA2 * scaleFract); - - out1 = out1 >> totShift; - inA1 = _SIMD32_OFFSET(pIn + 4); - out2 = out2 >> totShift; - inA2 = _SIMD32_OFFSET(pIn + 6); - out3 = out3 >> totShift; - out4 = out4 >> totShift; - - in1 = (q15_t) (__SSAT(out1, 16)); - in2 = (q15_t) (__SSAT(out2, 16)); - in3 = (q15_t) (__SSAT(out3, 16)); - in4 = (q15_t) (__SSAT(out4, 16)); - - _SIMD32_OFFSET(pOut) = __PKHBT(in2, in1, 16); - _SIMD32_OFFSET(pOut + 2) = __PKHBT(in4, in3, 16); - - /* update pointers to process next sampels */ - pIn += 4u; - pOut += 4u; - - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) * k */ - /* Scale, saturate and then store the results in the destination buffer. */ - *pOut++ = - (q15_t) (__SSAT(((q31_t) (*pIn++) * scaleFract) >> totShift, 16)); - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixScale group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q31.c deleted file mode 100644 index e5e1241254..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q31.c +++ /dev/null @@ -1,201 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_scale_q31.c -* -* Description: Multiplies a Q31 matrix by a scalar. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixScale - * @{ - */ - -/** - * @brief Q31 matrix scaling. - * @param[in] *pSrc points to input matrix - * @param[in] scaleFract fractional portion of the scale factor - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.31 format. - * These are multiplied to yield a 2.62 intermediate result and this is shifted with saturation to 1.31 format. - */ - -arm_status arm_mat_scale_q31( - const arm_matrix_instance_q31 * pSrc, - q31_t scaleFract, - int32_t shift, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn = pSrc->pData; /* input data matrix pointer */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - uint32_t numSamples; /* total number of elements in the matrix */ - int32_t totShift = shift + 1; /* shift to apply after scaling */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix scaling */ - q31_t in1, in2, out1; /* temporary variabels */ - -#ifndef ARM_MATH_CM0 - - q31_t in3, in4, out2, out3, out4; /* temporary variables */ - -#endif // #ifndef ARM_MAT_CM0 - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch */ - if((pSrc->numRows != pDst->numRows) || (pSrc->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif // #ifdef ARM_MATH_MATRIX_CHECK - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrc->numRows * pSrc->numCols; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) * k */ - /* Read values from input */ - in1 = *pIn; - in2 = *(pIn + 1); - in3 = *(pIn + 2); - in4 = *(pIn + 3); - - /* multiply input with scaler value */ - in1 = ((q63_t) in1 * scaleFract) >> 32; - in2 = ((q63_t) in2 * scaleFract) >> 32; - in3 = ((q63_t) in3 * scaleFract) >> 32; - in4 = ((q63_t) in4 * scaleFract) >> 32; - - /* apply shifting */ - out1 = in1 << totShift; - out2 = in2 << totShift; - - /* saturate the results. */ - if(in1 != (out1 >> totShift)) - out1 = 0x7FFFFFFF ^ (in1 >> 31); - - if(in2 != (out2 >> totShift)) - out2 = 0x7FFFFFFF ^ (in2 >> 31); - - out3 = in3 << totShift; - out4 = in4 << totShift; - - *pOut = out1; - *(pOut + 1) = out2; - - if(in3 != (out3 >> totShift)) - out3 = 0x7FFFFFFF ^ (in3 >> 31); - - if(in4 != (out4 >> totShift)) - out4 = 0x7FFFFFFF ^ (in4 >> 31); - - - *(pOut + 2) = out3; - *(pOut + 3) = out4; - - /* update pointers to process next sampels */ - pIn += 4u; - pOut += 4u; - - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) * k */ - /* Scale, saturate and then store the results in the destination buffer. */ - in1 = *pIn++; - - in2 = ((q63_t) in1 * scaleFract) >> 32; - - out1 = in2 << totShift; - - if(in2 != (out1 >> totShift)) - out1 = 0x7FFFFFFF ^ (in2 >> 31); - - *pOut++ = out1; - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixScale group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_f32.c deleted file mode 100644 index 3544d8e825..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_f32.c +++ /dev/null @@ -1,207 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_sub_f32.c -* -* Description: Floating-point matrix subtraction. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixSub Matrix Subtraction - * - * Subtract two matrices. - * \image html MatrixSubtraction.gif "Subraction of two 3 x 3 matrices" - * - * The functions check to make sure that - * pSrcA, pSrcB, and pDst have the same - * number of rows and columns. - */ - -/** - * @addtogroup MatrixSub - * @{ - */ - -/** - * @brief Floating-point matrix subtraction - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_sub_f32( - const arm_matrix_instance_f32 * pSrcA, - const arm_matrix_instance_f32 * pSrcB, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - -#ifndef ARM_MATH_CM0 - - float32_t inA1, inA2, inB1, inB2, out1, out2; /* temporary variables */ - -#endif // #ifndef ARM_MATH_CM0 - - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix subtraction */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract and then store the results in the destination buffer. */ - /* Read values from source A */ - inA1 = pIn1[0]; - - /* Read values from source B */ - inB1 = pIn2[0]; - - /* Read values from source A */ - inA2 = pIn1[1]; - - /* out = sourceA - sourceB */ - out1 = inA1 - inB1; - - /* Read values from source B */ - inB2 = pIn2[1]; - - /* Read values from source A */ - inA1 = pIn1[2]; - - /* out = sourceA - sourceB */ - out2 = inA2 - inB2; - - /* Read values from source B */ - inB1 = pIn2[2]; - - /* Store result in destination */ - pOut[0] = out1; - pOut[1] = out2; - - /* Read values from source A */ - inA2 = pIn1[3]; - - /* Read values from source B */ - inB2 = pIn2[3]; - - /* out = sourceA - sourceB */ - out1 = inA1 - inB1; - - - /* out = sourceA - sourceB */ - out2 = inA2 - inB2; - - /* Store result in destination */ - pOut[2] = out1; - - /* Store result in destination */ - pOut[3] = out2; - - - /* update pointers to process next sampels */ - pIn1 += 4u; - pIn2 += 4u; - pOut += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract and then store the results in the destination buffer. */ - *pOut++ = (*pIn1++) - (*pIn2++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixSub group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q15.c deleted file mode 100644 index 1857fd837c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q15.c +++ /dev/null @@ -1,158 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_sub_q15.c -* -* Description: Q15 Matrix subtraction -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixSub - * @{ - */ - -/** - * @brief Q15 matrix subtraction. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -arm_status arm_mat_sub_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst) -{ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix subtraction */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Apply loop unrolling */ - blkCnt = numSamples >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract, Saturate and then store the results in the destination buffer. */ - *__SIMD32(pOut)++ = __QSUB16(*__SIMD32(pInA)++, *__SIMD32(pInB)++); - *__SIMD32(pOut)++ = __QSUB16(*__SIMD32(pInA)++, *__SIMD32(pInB)++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4u; - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract and then store the results in the destination buffer. */ - *pOut++ = (q15_t) __QSUB16(*pInA++, *pInB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract and then store the results in the destination buffer. */ - *pOut++ = (q15_t) __SSAT(((q31_t) * pInA++ - *pInB++), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixSub group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q31.c deleted file mode 100644 index 279fd7f7c1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q31.c +++ /dev/null @@ -1,206 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_sub_q31.c -* -* Description: Q31 matrix subtraction -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixSub - * @{ - */ - -/** - * @brief Q31 matrix subtraction. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] will be saturated. - */ - - -arm_status arm_mat_sub_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t inA1, inB1; /* temporary variables */ - -#ifndef ARM_MATH_CM0 - - q31_t inA2, inB2; /* temporary variables */ - q31_t out1, out2; /* temporary variables */ - -#endif // #ifndef ARM_MATH_CM0 - - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix subtraction */ - - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract, saturate and then store the results in the destination buffer. */ - /* Read values from source A */ - inA1 = pIn1[0]; - - /* Read values from source B */ - inB1 = pIn2[0]; - - /* Read values from source A */ - inA2 = pIn1[1]; - - /* Subtract and saturate */ - out1 = __QSUB(inA1, inB1); - - /* Read values from source B */ - inB2 = pIn2[1]; - - /* Read values from source A */ - inA1 = pIn1[2]; - - /* Subtract and saturate */ - out2 = __QSUB(inA2, inB2); - - /* Read values from source B */ - inB1 = pIn2[2]; - - /* Store result in destination */ - pOut[0] = out1; - pOut[1] = out2; - - /* Read values from source A */ - inA2 = pIn1[3]; - - /* Read values from source B */ - inB2 = pIn2[3]; - - /* Subtract and saturate */ - out1 = __QSUB(inA1, inB1); - - /* Subtract and saturate */ - out2 = __QSUB(inA2, inB2); - - /* Store result in destination */ - pOut[2] = out1; - pOut[3] = out2; - - /* update pointers to process next samples */ - pIn1 += 4u; - pIn2 += 4u; - pOut += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract, saturate and then store the results in the destination buffer. */ - inA1 = *pIn1++; - inB1 = *pIn2++; - - inA1 = __QSUB(inA1, inB1); - - *pOut++ = inA1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixSub group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_f32.c deleted file mode 100644 index 235028f5ab..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_f32.c +++ /dev/null @@ -1,216 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_trans_f32.c -* -* Description: Floating-point matrix transpose. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -/** - * @defgroup MatrixTrans Matrix Transpose - * - * Tranposes a matrix. - * Transposing an M x N matrix flips it around the center diagonal and results in an N x M matrix. - * \image html MatrixTranspose.gif "Transpose of a 3 x 3 matrix" - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixTrans - * @{ - */ - -/** - * @brief Floating-point matrix transpose. - * @param[in] *pSrc points to the input matrix - * @param[out] *pDst points to the output matrix - * @return The function returns either ARM_MATH_SIZE_MISMATCH - * or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - - -arm_status arm_mat_trans_f32( - const arm_matrix_instance_f32 * pSrc, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn = pSrc->pData; /* input data matrix pointer */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - float32_t *px; /* Temporary output data matrix pointer */ - uint16_t nRows = pSrc->numRows; /* number of rows */ - uint16_t nColumns = pSrc->numCols; /* number of columns */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - uint16_t blkCnt, i = 0u, row = nRows; /* loop counters */ - arm_status status; /* status of matrix transpose */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* Loop Unrolling */ - blkCnt = nColumns >> 2; - - /* The pointer px is set to starting address of the column being processed */ - px = pOut + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) /* column loop */ - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - blkCnt--; - } - - /* Perform matrix transpose for last 3 samples here. */ - blkCnt = nColumns % 0x4u; - - while(blkCnt > 0u) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - uint16_t col, i = 0u, row = nRows; /* loop counters */ - arm_status status; /* status of matrix transpose */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* The pointer px is set to starting address of the column being processed */ - px = pOut + i; - - /* Initialize column loop counter */ - col = nColumns; - - while(col > 0u) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - col--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - i++; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); /* row loop end */ - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixTrans group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q15.c deleted file mode 100644 index be9c78e003..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q15.c +++ /dev/null @@ -1,282 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_trans_q15.c -* -* Description: Q15 matrix transpose. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixTrans - * @{ - */ - -/* - * @brief Q15 matrix transpose. - * @param[in] *pSrc points to the input matrix - * @param[out] *pDst points to the output matrix - * @return The function returns either ARM_MATH_SIZE_MISMATCH - * or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_trans_q15( - const arm_matrix_instance_q15 * pSrc, - arm_matrix_instance_q15 * pDst) -{ - q15_t *pSrcA = pSrc->pData; /* input data matrix pointer */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - uint16_t nRows = pSrc->numRows; /* number of nRows */ - uint16_t nColumns = pSrc->numCols; /* number of nColumns */ - uint16_t col, row = nRows, i = 0u; /* row and column loop counters */ - arm_status status; /* status of matrix transpose */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - q31_t in; /* variable to hold temporary output */ - -#else - - q15_t in; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - - /* Apply loop unrolling and exchange the columns with row elements */ - col = nColumns >> 2u; - - /* The pointer pOut is set to starting address of the column being processed */ - pOut = pDst->pData + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(col > 0u) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read two elements from the row */ - in = *__SIMD32(pSrcA)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *pOut = (q15_t) in; - -#else - - *pOut = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Unpack and store the second element in the destination */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *pOut = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *pOut = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Read two elements from the row */ -#ifndef ARM_MATH_BIG_ENDIAN - - in = *__SIMD32(pSrcA)++; - -#else - - in = *__SIMD32(pSrcA)++; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *pOut = (q15_t) in; - -#else - - *pOut = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Unpack and store the second element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *pOut = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *pOut = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - -#else - /* Read one element from the row */ - in = *pSrcA++; - - /* Store one element in the destination */ - *pOut = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Read one element from the row */ - in = *pSrcA++; - - /* Store one element in the destination */ - *pOut = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Read one element from the row */ - in = *pSrcA++; - - /* Store one element in the destination */ - *pOut = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Read one element from the row */ - in = *pSrcA++; - - /* Store one element in the destination */ - *pOut = in; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Decrement the column loop counter */ - col--; - } - - /* Perform matrix transpose for last 3 samples here. */ - col = nColumns % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* The pointer pOut is set to starting address of the column being processed */ - pOut = pDst->pData + i; - - /* Initialize column loop counter */ - col = nColumns; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(col > 0u) - { - /* Read and store the input element in the destination */ - *pOut = *pSrcA++; - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Decrement the column loop counter */ - col--; - } - - i++; - - /* Decrement the row loop counter */ - row--; - - } while(row > 0u); - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixTrans group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q31.c deleted file mode 100644 index 253a923d1c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q31.c +++ /dev/null @@ -1,208 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mat_trans_q31.c -* -* Description: Q31 matrix transpose. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixTrans - * @{ - */ - -/* - * @brief Q31 matrix transpose. - * @param[in] *pSrc points to the input matrix - * @param[out] *pDst points to the output matrix - * @return The function returns either ARM_MATH_SIZE_MISMATCH - * or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_trans_q31( - const arm_matrix_instance_q31 * pSrc, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn = pSrc->pData; /* input data matrix pointer */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t *px; /* Temporary output data matrix pointer */ - uint16_t nRows = pSrc->numRows; /* number of nRows */ - uint16_t nColumns = pSrc->numCols; /* number of nColumns */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - uint16_t blkCnt, i = 0u, row = nRows; /* loop counters */ - arm_status status; /* status of matrix transpose */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* Apply loop unrolling and exchange the columns with row elements */ - blkCnt = nColumns >> 2u; - - /* The pointer px is set to starting address of the column being processed */ - px = pOut + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - blkCnt--; - } - - /* Perform matrix transpose for last 3 samples here. */ - blkCnt = nColumns % 0x4u; - - while(blkCnt > 0u) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - uint16_t col, i = 0u, row = nRows; /* loop counters */ - arm_status status; /* status of matrix transpose */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* The pointer px is set to starting address of the column being processed */ - px = pOut + i; - - /* Initialize column loop counter */ - col = nColumns; - - while(col > 0u) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - col--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - i++; - - /* Decrement the row loop counter */ - row--; - - } - while(row > 0u); /* row loop end */ - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixTrans group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_f32.c deleted file mode 100644 index afd9648852..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_f32.c +++ /dev/null @@ -1,178 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_max_f32.c -* -* Description: Maximum value of a floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup Max Maximum - * - * Computes the maximum value of an array of data. - * The function returns both the maximum value and its position within the array. - * There are separate functions for floating-point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup Max - * @{ - */ - - -/** - * @brief Maximum value of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult maximum value returned here - * @param[out] *pIndex index of maximum value returned here - * @return none. - */ - -void arm_max_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult, - uint32_t * pIndex) -{ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t maxVal1, maxVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0u; - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1u) >> 2u; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - while(blkCnt > 0u) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 1u; - } - - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 2u; - } - - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 3u; - } - - /* compare for the maximum value */ - if(out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 4u; - } - - count += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1u) is not multiple of 4 */ - blkCnt = (blockSize - 1u) % 4u; - -#else - - /* Run the below code for Cortex-M0 */ - float32_t maxVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1u); - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and it's index */ - out = maxVal1; - outIndex = blockSize - blkCnt; - } - - - /* Decrement the loop counter */ - blkCnt--; - - } - - /* Store the maximum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Max group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q15.c deleted file mode 100644 index 939b5236f6..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q15.c +++ /dev/null @@ -1,168 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_max_q15.c -* -* Description: Maximum value of a Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup Max - * @{ - */ - - -/** - * @brief Maximum value of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult maximum value returned here - * @param[out] *pIndex index of maximum value returned here - * @return none. - */ - -void arm_max_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult, - uint32_t * pIndex) -{ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q15_t maxVal1, maxVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0u; - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1u) >> 2u; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - while(blkCnt > 0u) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 1u; - } - - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 2u; - } - - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 3u; - } - - /* compare for the maximum value */ - if(out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 4u; - } - - count += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1u) is not multiple of 4 */ - blkCnt = (blockSize - 1u) % 4u; - -#else - - /* Run the below code for Cortex-M0 */ - q15_t maxVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - blkCnt = (blockSize - 1u); - - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and it's index */ - out = maxVal1; - outIndex = blockSize - blkCnt; - } - /* Decrement the loop counter */ - blkCnt--; - - } - - /* Store the maximum value and its index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Max group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q31.c deleted file mode 100644 index 18e7572975..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q31.c +++ /dev/null @@ -1,169 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_max_q31.c -* -* Description: Maximum value of a Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup Max - * @{ - */ - - -/** - * @brief Maximum value of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult maximum value returned here - * @param[out] *pIndex index of maximum value returned here - * @return none. - */ - -void arm_max_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult, - uint32_t * pIndex) -{ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t maxVal1, maxVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0u; - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1u) >> 2u; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - while(blkCnt > 0u) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 1u; - } - - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 2u; - } - - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 3u; - } - - /* compare for the maximum value */ - if(out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 4u; - } - - count += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1u) is not multiple of 4 */ - blkCnt = (blockSize - 1u) % 4u; - -#else - - /* Run the below code for Cortex-M0 */ - q31_t maxVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1u); - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and it's index */ - out = maxVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - - } - - /* Store the maximum value and its index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Max group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q7.c deleted file mode 100644 index 110a8fe5f7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_max_q7.c +++ /dev/null @@ -1,169 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_max_q7.c -* -* Description: Maximum value of a Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup Max - * @{ - */ - - -/** - * @brief Maximum value of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult maximum value returned here - * @param[out] *pIndex index of maximum value returned here - * @return none. - */ - -void arm_max_q7( - q7_t * pSrc, - uint32_t blockSize, - q7_t * pResult, - uint32_t * pIndex) -{ -#ifndef ARM_MATH_CM0 - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t maxVal1, maxVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0u; - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1u) >> 2u; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - while(blkCnt > 0u) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 1u; - } - - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 2u; - } - - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 3u; - } - - /* compare for the maximum value */ - if(out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 4u; - } - - count += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1u) is not multiple of 4 */ - blkCnt = (blockSize - 1u) % 4u; - -#else - - /* Run the below code for Cortex-M0 */ - q7_t maxVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1u); - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if(out < maxVal1) - { - /* Update the maximum value and it's index */ - out = maxVal1; - outIndex = blockSize - blkCnt; - } - /* Decrement the loop counter */ - blkCnt--; - - } - - /* Store the maximum value and its index into destination pointers */ - *pResult = out; - *pIndex = outIndex; - -} - -/** - * @} end of Max group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_f32.c deleted file mode 100644 index 7823d746ca..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_f32.c +++ /dev/null @@ -1,131 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mean_f32.c -* -* Description: Mean value of a floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup mean Mean - * - * Calculates the mean of the input vector. Mean is defined as the average of the elements in the vector. - * The underlying algorithm is used: - * - *
    
- * 	Result = (pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]) / blockSize;    
- * 
- * - * There are separate functions for floating-point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup mean - * @{ - */ - - -/** - * @brief Mean value of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult mean value returned here - * @return none. - */ - - -void arm_mean_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t sum = 0.0f; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - sum += in1; - sum += in2; - sum += in3; - sum += in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - /* Store the result to the destination */ - *pResult = sum / (float32_t) blockSize; -} - -/** - * @} end of mean group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q15.c deleted file mode 100644 index 49ec1e62e7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q15.c +++ /dev/null @@ -1,125 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mean_q15.c -* -* Description: Mean value of a Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup mean - * @{ - */ - -/** - * @brief Mean value of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult mean value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 32-bit internal accumulator. - * The input is represented in 1.15 format and is accumulated in a 32-bit - * accumulator in 17.15 format. - * There is no risk of internal overflow with this approach, and the - * full precision of intermediate result is preserved. - * Finally, the accumulator is saturated and truncated to yield a result of 1.15 format. - * - */ - - -void arm_mean_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult) -{ - q31_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in = *__SIMD32(pSrc)++; - sum += ((in << 16) >> 16); - sum += (in >> 16); - in = *__SIMD32(pSrc)++; - sum += ((in << 16) >> 16); - sum += (in >> 16); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - /* Store the result to the destination */ - *pResult = (q15_t) (sum / blockSize); -} - -/** - * @} end of mean group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q31.c deleted file mode 100644 index 88a5de2995..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q31.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mean_q31.c -* -* Description: Mean value of a Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup mean - * @{ - */ - -/** - * @brief Mean value of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult mean value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - *\par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.31 format and is accumulated in a 64-bit - * accumulator in 33.31 format. - * There is no risk of internal overflow with this approach, and the - * full precision of intermediate result is preserved. - * Finally, the accumulator is truncated to yield a result of 1.31 format. - * - */ - - -void arm_mean_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q63_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - sum += in1; - sum += in2; - sum += in3; - sum += in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - /* Store the result to the destination */ - *pResult = (q31_t) (sum / (int32_t) blockSize); -} - -/** - * @} end of mean group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q7.c deleted file mode 100644 index a34c011bc1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_mean_q7.c +++ /dev/null @@ -1,125 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_mean_q7.c -* -* Description: Mean value of a Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup mean - * @{ - */ - -/** - * @brief Mean value of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult mean value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 32-bit internal accumulator. - * The input is represented in 1.7 format and is accumulated in a 32-bit - * accumulator in 25.7 format. - * There is no risk of internal overflow with this approach, and the - * full precision of intermediate result is preserved. - * Finally, the accumulator is truncated to yield a result of 1.7 format. - * - */ - - -void arm_mean_q7( - q7_t * pSrc, - uint32_t blockSize, - q7_t * pResult) -{ - q31_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in = *__SIMD32(pSrc)++; - - sum += ((in << 24) >> 24); - sum += ((in << 16) >> 24); - sum += ((in << 8) >> 24); - sum += (in >> 24); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - /* Store the result to the destination */ - *pResult = (q7_t) (sum / (int32_t) blockSize); -} - -/** - * @} end of mean group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_f32.c deleted file mode 100644 index dc2fdf624f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_f32.c +++ /dev/null @@ -1,175 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_min_f32.c -* -* Description: Minimum value of a floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup Min Minimum - * - * Computes the minimum value of an array of data. - * The function returns both the minimum value and its position within the array. - * There are separate functions for floating-point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup Min - * @{ - */ - - -/** - * @brief Minimum value of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult minimum value returned here - * @param[out] *pIndex index of minimum value returned here - * @return none. - * - */ - -void arm_min_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult, - uint32_t * pIndex) -{ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t minVal1, minVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0u; - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1u) >> 2u; - - while(blkCnt > 0) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 1u; - } - - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 2u; - } - - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 3u; - } - - /* compare for the minimum value */ - if(out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 4u; - } - - count += 4u; - - blkCnt--; - } - - /* if (blockSize - 1u ) is not multiple of 4 */ - blkCnt = (blockSize - 1u) % 4u; - -#else - - /* Run the below code for Cortex-M0 */ - float32_t minVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1u); - -#endif // #ifndef ARM_MATH_CM0 - - while(blkCnt > 0) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and it's index */ - out = minVal1; - outIndex = blockSize - blkCnt; - } - - blkCnt--; - - } - - /* Store the minimum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Min group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q15.c deleted file mode 100644 index 35b67bb1e9..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q15.c +++ /dev/null @@ -1,169 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_min_q15.c -* -* Description: Minimum value of a Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - - -/** - * @addtogroup Min - * @{ - */ - - -/** - * @brief Minimum value of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult minimum value returned here - * @param[out] *pIndex index of minimum value returned here - * @return none. - * - */ - -void arm_min_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult, - uint32_t * pIndex) -{ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q15_t minVal1, minVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0u; - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1u) >> 2u; - - while(blkCnt > 0) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 1u; - } - - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 2u; - } - - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 3u; - } - - /* compare for the minimum value */ - if(out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 4u; - } - - count += 4u; - - blkCnt--; - } - - /* if (blockSize - 1u ) is not multiple of 4 */ - blkCnt = (blockSize - 1u) % 4u; - -#else - - /* Run the below code for Cortex-M0 */ - q15_t minVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - blkCnt = (blockSize - 1u); - - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - -#endif // #ifndef ARM_MATH_CM0 - - while(blkCnt > 0) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and it's index */ - out = minVal1; - outIndex = blockSize - blkCnt; - } - - blkCnt--; - - } - - - - /* Store the minimum value and its index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Min group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q31.c deleted file mode 100644 index 4a9befc75c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q31.c +++ /dev/null @@ -1,168 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_min_q31.c -* -* Description: Minimum value of a Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - - -/** - * @addtogroup Min - * @{ - */ - - -/** - * @brief Minimum value of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult minimum value returned here - * @param[out] *pIndex index of minimum value returned here - * @return none. - * - */ - -void arm_min_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult, - uint32_t * pIndex) -{ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t minVal1, minVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0u; - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - - /* Loop unrolling */ - blkCnt = (blockSize - 1u) >> 2u; - - while(blkCnt > 0) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 1u; - } - - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 2u; - } - - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 3u; - } - - /* compare for the minimum value */ - if(out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 4u; - } - - count += 4u; - - blkCnt--; - } - - /* if (blockSize - 1u ) is not multiple of 4 */ - blkCnt = (blockSize - 1u) % 4u; - -#else - - /* Run the below code for Cortex-M0 */ - q31_t minVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - blkCnt = (blockSize - 1u); - - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - -#endif // #ifndef ARM_MATH_CM0 - - while(blkCnt > 0) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and it's index */ - out = minVal1; - outIndex = blockSize - blkCnt; - } - - blkCnt--; - - } - - /* Store the minimum value and its index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Min group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q7.c deleted file mode 100644 index aaf8ad9ff8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_min_q7.c +++ /dev/null @@ -1,170 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_min_q7.c -* -* Description: Minimum value of a Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup Min - * @{ - */ - - -/** - * @brief Minimum value of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult minimum value returned here - * @param[out] *pIndex index of minimum value returned here - * @return none. - * - */ - -void arm_min_q7( - q7_t * pSrc, - uint32_t blockSize, - q7_t * pResult, - uint32_t * pIndex) -{ -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t minVal1, minVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0u; - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1u) >> 2u; - - while(blkCnt > 0) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 1u; - } - - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 2u; - } - - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 3u; - } - - /* compare for the minimum value */ - if(out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 4u; - } - - count += 4u; - - blkCnt--; - } - - /* if (blockSize - 1u ) is not multiple of 4 */ - blkCnt = (blockSize - 1u) % 4u; - -#else - - /* Run the below code for Cortex-M0 */ - - q7_t minVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0u; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1u); - -#endif // #ifndef ARM_MATH_CM0 - - while(blkCnt > 0) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if(out > minVal1) - { - /* Update the minimum value and it's index */ - out = minVal1; - outIndex = blockSize - blkCnt; - } - - blkCnt--; - - } - - /* Store the minimum value and its index into destination pointers */ - *pResult = out; - *pIndex = outIndex; - - -} - -/** - * @} end of Min group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_f32.c deleted file mode 100644 index 5ee0060d8f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_f32.c +++ /dev/null @@ -1,138 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_power_f32.c -* -* Description: Sum of the squares of the elements of a floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup power Power - * - * Calculates the sum of the squares of the elements in the input vector. - * The underlying algorithm is used: - * - *
    
- * 	Result = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + pSrc[2] * pSrc[2] + ... + pSrc[blockSize-1] * pSrc[blockSize-1];    
- * 
- * - * There are separate functions for floating point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup power - * @{ - */ - - -/** - * @brief Sum of the squares of the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult sum of the squares value returned here - * @return none. - * - */ - - -void arm_power_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t sum = 0.0f; /* accumulator */ - float32_t in; /* Temporary variable to store input value */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* compute power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the result to the destination */ - *pResult = sum; -} - -/** - * @} end of power group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q15.c deleted file mode 100644 index aed06a17ac..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q15.c +++ /dev/null @@ -1,144 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_power_q15.c -* -* Description: Sum of the squares of the elements of a Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup power - * @{ - */ - -/** - * @brief Sum of the squares of the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult sum of the squares value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.15 format. - * Intermediate multiplication yields a 2.30 format, and this - * result is added without saturation to a 64-bit accumulator in 34.30 format. - * With 33 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the return result is in 34.30 format. - * - */ - -void arm_power_q15( - q15_t * pSrc, - uint32_t blockSize, - q63_t * pResult) -{ - q63_t sum = 0; /* Temporary result storage */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in32; /* Temporary variable to store input value */ - q15_t in16; /* Temporary variable to store input value */ - uint32_t blkCnt; /* loop counter */ - - - /* loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in32 = *__SIMD32(pSrc)++; - sum = __SMLALD(in32, in32, sum); - in32 = *__SIMD32(pSrc)++; - sum = __SMLALD(in32, in32, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in16 = *pSrc++; - sum = __SMLALD(in16, in16, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t in; /* Temporary variable to store input value */ - uint32_t blkCnt; /* loop counter */ - - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += ((q31_t) in * in); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - - /* Store the results in 34.30 format */ - *pResult = sum; -} - -/** - * @} end of power group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q31.c deleted file mode 100644 index 43f03f757f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q31.c +++ /dev/null @@ -1,135 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_power_q31.c -* -* Description: Sum of the squares of the elements of a Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup power - * @{ - */ - -/** - * @brief Sum of the squares of the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult sum of the squares value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.31 format. - * Intermediate multiplication yields a 2.62 format, and this - * result is truncated to 2.48 format by discarding the lower 14 bits. - * The 2.48 result is then added without saturation to a 64-bit accumulator in 16.48 format. - * With 15 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the return result is in 16.48 format. - * - */ - -void arm_power_q31( - q31_t * pSrc, - uint32_t blockSize, - q63_t * pResult) -{ - q63_t sum = 0; /* Temporary result storage */ - q31_t in; - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power then shift intermediate results by 14 bits to maintain 16.48 format and then store the result in a temporary variable sum, providing 15 guard bits. */ - in = *pSrc++; - sum += ((q63_t) in * in) >> 14u; - - in = *pSrc++; - sum += ((q63_t) in * in) >> 14u; - - in = *pSrc++; - sum += ((q63_t) in * in) >> 14u; - - in = *pSrc++; - sum += ((q63_t) in * in) >> 14u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += ((q63_t) in * in) >> 14u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the results in 16.48 format */ - *pResult = sum; -} - -/** - * @} end of power group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q7.c deleted file mode 100644 index 5cb99b4c2f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_power_q7.c +++ /dev/null @@ -1,133 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_power_q7.c -* -* Description: Sum of the squares of the elements of a Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup power - * @{ - */ - -/** - * @brief Sum of the squares of the elements of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult sum of the squares value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * The input is represented in 1.7 format. - * Intermediate multiplication yields a 2.14 format, and this - * result is added without saturation to an accumulator in 18.14 format. - * With 17 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the return result is in 18.14 format. - * - */ - -void arm_power_q7( - q7_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q31_t sum = 0; /* Temporary result storage */ - q7_t in; /* Temporary variable to store input */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t input1; /* Temporary variable to store packed input */ - q31_t in1, in2; /* Temporary variables to store input */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* Reading two inputs of pSrc vector and packing */ - input1 = *__SIMD32(pSrc)++; - - in1 = __SXTB16(__ROR(input1, 8)); - in2 = __SXTB16(input1); - - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* calculate power and accumulate to accumulator */ - sum = __SMLAD(in1, in1, sum); - sum = __SMLAD(in2, in2, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += ((q15_t) in * in); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the result in 18.14 format */ - *pResult = sum; -} - -/** - * @} end of power group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_f32.c deleted file mode 100644 index 573896ed4d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_f32.c +++ /dev/null @@ -1,133 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rms_f32.c -* -* Description: Root mean square value of an array of F32 type -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup RMS Root mean square (RMS) - * - * - * Calculates the Root Mean Sqaure of the elements in the input vector. - * The underlying algorithm is used: - * - *
    
- * 	Result = sqrt(((pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]) / blockSize));    
- * 
- * - * There are separate functions for floating point, Q31, and Q15 data types. - */ - -/** - * @addtogroup RMS - * @{ - */ - - -/** - * @brief Root Mean Square of the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult rms value returned here - * @return none. - * - */ - -void arm_rms_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t sum = 0.0f; /* Accumulator */ - float32_t in; /* Tempoprary variable to store input value */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute sum of the squares and then store the result in a temporary variable, sum */ - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in = *pSrc++; - sum += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Rms and store the result in the destination */ - arm_sqrt_f32(sum / (float32_t) blockSize, pResult); -} - -/** - * @} end of RMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q15.c deleted file mode 100644 index 491c652e7a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q15.c +++ /dev/null @@ -1,153 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rms_q15.c -* -* Description: Root Mean Square of the elements of a Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @addtogroup RMS - * @{ - */ - -/** - * @brief Root Mean Square of the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult rms value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.15 format. - * Intermediate multiplication yields a 2.30 format, and this - * result is added without saturation to a 64-bit accumulator in 34.30 format. - * With 33 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the 34.30 result is truncated to 34.15 format by discarding the lower - * 15 bits, and then saturated to yield a result in 1.15 format. - * - */ - -void arm_rms_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult) -{ - q63_t sum = 0; /* accumulator */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in; /* temporary variable to store the input value */ - q15_t in1; /* temporary variable to store the input value */ - uint32_t blkCnt; /* loop counter */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in = *__SIMD32(pSrc)++; - sum = __SMLALD(in, in, sum); - in = *__SIMD32(pSrc)++; - sum = __SMLALD(in, in, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in1 = *pSrc++; - sum = __SMLALD(in1, in1, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Truncating and saturating the accumulator to 1.15 format */ - sum = __SSAT((q31_t) (sum >> 15), 16); - - in1 = (q15_t) (sum / blockSize); - - /* Store the result in the destination */ - arm_sqrt_q15(in1, pResult); - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t in; /* temporary variable to store the input value */ - uint32_t blkCnt; /* loop counter */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in = *pSrc++; - sum += ((q31_t) in * in); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Truncating and saturating the accumulator to 1.15 format */ - sum = __SSAT((q31_t) (sum >> 15), 16); - - in = (q15_t) (sum / blockSize); - - /* Store the result in the destination */ - arm_sqrt_q15(in, pResult); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of RMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q31.c deleted file mode 100644 index 54038eb12e..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_rms_q31.c +++ /dev/null @@ -1,146 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rms_q31.c -* -* Description: Root Mean Square of the elements of a Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @addtogroup RMS - * @{ - */ - - -/** - * @brief Root Mean Square of the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult rms value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - *\par - * The function is implemented using an internal 64-bit accumulator. - * The input is represented in 1.31 format, and intermediate multiplication - * yields a 2.62 format. - * The accumulator maintains full precision of the intermediate multiplication results, - * but provides only a single guard bit. - * There is no saturation on intermediate additions. - * If the accumulator overflows, it wraps around and distorts the result. - * In order to avoid overflows completely, the input signal must be scaled down by - * log2(blockSize) bits, as a total of blockSize additions are performed internally. - * Finally, the 2.62 accumulator is right shifted by 31 bits to yield a 1.31 format value. - * - */ - -void arm_rms_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q63_t sum = 0; /* accumulator */ - q31_t in; /* Temporary variable to store the input */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2, in3, in4; /* Temporary input variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 8 outputs at a time. - ** a second loop below computes the remaining 1 to 7 samples. */ - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute sum of the squares and then store the result in a temporary variable, sum */ - /* read two samples from source buffer */ - in1 = pSrc[0]; - in2 = pSrc[1]; - - /* calculate power and accumulate to accumulator */ - sum += (q63_t) in1 *in1; - sum += (q63_t) in2 *in2; - - /* read two samples from source buffer */ - in3 = pSrc[2]; - in4 = pSrc[3]; - - /* calculate power and accumulate to accumulator */ - sum += (q63_t) in3 *in3; - sum += (q63_t) in4 *in4; - - - /* update source buffer to process next samples */ - pSrc += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 8, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in = *pSrc++; - sum += (q63_t) in *in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Convert data in 2.62 to 1.31 by 31 right shifts and saturate */ - - sum = __SSAT(sum >> 31, 31); - - - /* Compute Rms and store the result in the destination vector */ - arm_sqrt_q31((q31_t) ((q31_t) sum / (int32_t) blockSize), pResult); -} - -/** - * @} end of RMS group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_f32.c deleted file mode 100644 index 6442d5c295..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_f32.c +++ /dev/null @@ -1,188 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_std_f32.c -* -* Description: Standard deviation of the elements of a floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup STD Standard deviation - * - * Calculates the standard deviation of the elements in the input vector. - * The underlying algorithm is used: - * - *
    
- * 	Result = sqrt((sumOfSquares - sum2 / blockSize) / (blockSize - 1))   
- *   
- *	   where, sumOfSquares = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]   
- *   
- *	                   sum = pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]   
- * 
- * - * There are separate functions for floating point, Q31, and Q15 data types. - */ - -/** - * @addtogroup STD - * @{ - */ - - -/** - * @brief Standard deviation of the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult standard deviation value returned here - * @return none. - * - */ - - -void arm_std_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t sum = 0.0f; /* Temporary result storage */ - float32_t sumOfSquares = 0.0f; /* Sum of squares */ - float32_t in; /* input value */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t meanOfSquares, mean, squareOfMean; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = sumOfSquares / ((float32_t) blockSize - 1.0f); - - /* Compute mean of all input values */ - mean = sum / (float32_t) blockSize; - - /* Compute square of mean */ - squareOfMean = (mean * mean) * (((float32_t) blockSize) / - ((float32_t) blockSize - 1.0f)); - - /* Compute standard deviation and then store the result to the destination */ - arm_sqrt_f32((meanOfSquares - squareOfMean), pResult); - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t squareOfSum; /* Square of Sum */ - float32_t var; /* Temporary varaince storage */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++; - sumOfSquares += in * in; - - /* C = (A[0] + A[1] + ... + A[blockSize-1]) */ - /* Compute Sum of the input samples - * and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute the square of sum */ - squareOfSum = ((sum * sum) / (float32_t) blockSize); - - /* Compute the variance */ - var = ((sumOfSquares - squareOfSum) / (float32_t) (blockSize - 1.0f)); - - /* Compute standard deviation and then store the result to the destination */ - arm_sqrt_f32(var, pResult); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of STD group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q15.c deleted file mode 100644 index 2d1a49a505..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q15.c +++ /dev/null @@ -1,197 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_std_q15.c -* -* Description: Standard deviation of an array of Q15 type. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup STD - * @{ - */ - -/** - * @brief Standard deviation of the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult standard deviation value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.15 format. - * Intermediate multiplication yields a 2.30 format, and this - * result is added without saturation to a 64-bit accumulator in 34.30 format. - * With 33 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the 34.30 result is truncated to 34.15 format by discarding the lower - * 15 bits, and then saturated to yield a result in 1.15 format. - */ - -void arm_std_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult) -{ - q31_t sum = 0; /* Accumulator */ - q31_t meanOfSquares, squareOfMean; /* square of mean and mean of square */ - q15_t mean; /* mean */ - uint32_t blkCnt; /* loop counter */ - q15_t t; /* Temporary variable */ - q63_t sumOfSquares = 0; /* Accumulator */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in; /* input value */ - q15_t in1; /* input value */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *__SIMD32(pSrc)++; - sum += ((in << 16) >> 16); - sum += (in >> 16); - sumOfSquares = __SMLALD(in, in, sumOfSquares); - in = *__SIMD32(pSrc)++; - sum += ((in << 16) >> 16); - sum += (in >> 16); - sumOfSquares = __SMLALD(in, in, sumOfSquares); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in1 = *pSrc++; - sumOfSquares = __SMLALD(in1, in1, sumOfSquares); - sum += in1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - t = (q15_t) ((1.0 / (blockSize - 1)) * 16384LL); - sumOfSquares = __SSAT((sumOfSquares >> 15u), 16u); - - meanOfSquares = (q31_t) ((sumOfSquares * t) >> 14u); - - /* Compute mean of all input values */ - t = (q15_t) ((1.0 / (blockSize * (blockSize - 1))) * 32768LL); - mean = (q15_t) __SSAT(sum, 16u); - - /* Compute square of mean */ - squareOfMean = ((q31_t) mean * mean) >> 15; - squareOfMean = (q31_t) (((q63_t) squareOfMean * t) >> 15); - - /* mean of the squares minus the square of the mean. */ - in1 = (q15_t) (meanOfSquares - squareOfMean); - - /* Compute standard deviation and store the result to the destination */ - arm_sqrt_q15(in1, pResult); - -#else - - /* Run the below code for Cortex-M0 */ - q15_t in; /* input value */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++; - sumOfSquares += (in * in); - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - /* Compute sum of all input values and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - t = (q15_t) ((1.0 / (blockSize - 1)) * 16384LL); - sumOfSquares = __SSAT((sumOfSquares >> 15u), 16u); - meanOfSquares = (q31_t) ((sumOfSquares * t) >> 14u); - - /* Compute mean of all input values */ - mean = (q15_t) __SSAT(sum, 16u); - - /* Compute square of mean of the input samples - * and then store the result in a temporary variable, squareOfMean.*/ - t = (q15_t) ((1.0 / (blockSize * (blockSize - 1))) * 32768LL); - squareOfMean = ((q31_t) mean * mean) >> 15; - squareOfMean = (q31_t) (((q63_t) squareOfMean * t) >> 15); - - /* mean of the squares minus the square of the mean. */ - in = (q15_t) (meanOfSquares - squareOfMean); - - /* Compute standard deviation and store the result to the destination */ - arm_sqrt_q15(in, pResult); - -#endif /* #ifndef ARM_MATH_CM0 */ - - -} - -/** - * @} end of STD group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q31.c deleted file mode 100644 index 45bec01a1f..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_std_q31.c +++ /dev/null @@ -1,184 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_std_q31.c -* -* Description: Standard deviation of an array of Q31 type. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup STD - * @{ - */ - - -/** - * @brief Standard deviation of the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult standard deviation value returned here - * @return none. - * @details - * Scaling and Overflow Behavior: - * - *\par - * The function is implemented using an internal 64-bit accumulator. - * The input is represented in 1.31 format, and intermediate multiplication - * yields a 2.62 format. - * The accumulator maintains full precision of the intermediate multiplication results, - * but provides only a single guard bit. - * There is no saturation on intermediate additions. - * If the accumulator overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by - * log2(blockSize) bits, as a total of blockSize additions are performed internally. - * Finally, the 2.62 accumulator is right shifted by 31 bits to yield a 1.31 format value. - * - */ - - -void arm_std_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q63_t sum = 0; /* Accumulator */ - q31_t meanOfSquares, squareOfMean; /* square of mean and mean of square */ - q31_t mean; /* mean */ - q31_t in; /* input value */ - q31_t t; /* Temporary variable */ - uint32_t blkCnt; /* loop counter */ - q63_t sumOfSquares = 0; /* Accumulator */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - - /* Decrement the loop counter */ - blkCnt--; - } - - t = (q31_t) ((1.0f / (float32_t) (blockSize - 1u)) * 1073741824.0f); - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - sumOfSquares = (sumOfSquares >> 31); - meanOfSquares = (q31_t) ((sumOfSquares * t) >> 30); - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++; - sumOfSquares += ((q63_t) (in) * (in)); - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - /* Compute sum of all input values and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - t = (q31_t) ((1.0f / (float32_t) (blockSize - 1u)) * 1073741824.0f); - sumOfSquares = (sumOfSquares >> 31); - meanOfSquares = (q31_t) ((sumOfSquares * t) >> 30); - -#endif /* #ifndef ARM_MATH_CM0 */ - - /* Compute mean of all input values */ - t = (q31_t) ((1.0f / (blockSize * (blockSize - 1u))) * 2147483648.0f); - mean = (q31_t) (sum); - - /* Compute square of mean */ - squareOfMean = (q31_t) (((q63_t) mean * mean) >> 31); - squareOfMean = (q31_t) (((q63_t) squareOfMean * t) >> 31); - - - /* Compute standard deviation and then store the result to the destination */ - arm_sqrt_q31(meanOfSquares - squareOfMean, pResult); - -} - -/** - * @} end of STD group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_f32.c deleted file mode 100644 index 2adcfb443b..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_f32.c +++ /dev/null @@ -1,184 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_var_f32.c -* -* Description: Variance of the elements of a floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup variance Variance - * - * Calculates the variance of the elements in the input vector. - * The underlying algorithm is used: - * - *
    
- * 	Result = (sumOfSquares - sum2 / blockSize) / (blockSize - 1)   
- *   
- *	   where, sumOfSquares = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]   
- *   
- *	                   sum = pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]   
- * 
- * - * There are separate functions for floating point, Q31, and Q15 data types. - */ - -/** - * @addtogroup variance - * @{ - */ - - -/** - * @brief Variance of the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult variance value returned here - * @return none. - * - */ - - -void arm_var_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - - float32_t sum = 0.0f; /* Temporary result storage */ - float32_t sumOfSquares = 0.0f; /* Sum of squares */ - float32_t in; /* input value */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t meanOfSquares, mean, squareOfMean; /* Temporary variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = sumOfSquares / ((float32_t) blockSize - 1.0f); - - /* Compute mean of all input values */ - mean = sum / (float32_t) blockSize; - - /* Compute square of mean */ - squareOfMean = (mean * mean) * (((float32_t) blockSize) / - ((float32_t) blockSize - 1.0f)); - - /* Compute variance and then store the result to the destination */ - *pResult = meanOfSquares - squareOfMean; - -#else - - /* Run the below code for Cortex-M0 */ - float32_t squareOfSum; /* Square of Sum */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++; - sumOfSquares += in * in; - - /* C = (A[0] + A[1] + ... + A[blockSize-1]) */ - /* Compute Sum of the input samples - * and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute the square of sum */ - squareOfSum = ((sum * sum) / (float32_t) blockSize); - - /* Compute the variance */ - *pResult = ((sumOfSquares - squareOfSum) / (float32_t) (blockSize - 1.0f)); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of variance group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q15.c deleted file mode 100644 index 08dbc6587c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q15.c +++ /dev/null @@ -1,180 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_var_q15.c -* -* Description: Variance of an array of Q15 type. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup variance - * @{ - */ - -/** - * @brief Variance of the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult variance value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.15 format. - * Intermediate multiplication yields a 2.30 format, and this - * result is added without saturation to a 64-bit accumulator in 34.30 format. - * With 33 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the 34.30 result is truncated to 34.15 format by discarding the lower - * 15 bits, and then saturated to yield a result in 1.15 format. - * - */ - - -void arm_var_q15( - q15_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q31_t sum = 0; /* Accumulator */ - q31_t meanOfSquares, squareOfMean; /* Mean of square and square of mean */ - q15_t mean; /* mean */ - uint32_t blkCnt; /* loop counter */ - q15_t t; /* Temporary variable */ - q63_t sumOfSquares = 0; /* Accumulator */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in; /* Input variable */ - q15_t in1; /* Temporary variable */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *__SIMD32(pSrc)++; - sum += ((in << 16) >> 16); - sum += (in >> 16); - sumOfSquares = __SMLALD(in, in, sumOfSquares); - in = *__SIMD32(pSrc)++; - sum += ((in << 16) >> 16); - sum += (in >> 16); - sumOfSquares = __SMLALD(in, in, sumOfSquares); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in1 = *pSrc++; - sum += in1; - sumOfSquares = __SMLALD(in1, in1, sumOfSquares); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - t = (q15_t) ((1.0f / (float32_t) (blockSize - 1u)) * 16384); - sumOfSquares = __SSAT((sumOfSquares >> 15u), 16u); - - meanOfSquares = (q31_t) ((sumOfSquares * t) >> 14u); - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t in; /* Temporary variable */ - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++; - sumOfSquares += (in * in); - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - /* Compute sum of all input values and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - t = (q15_t) ((1.0f / (float32_t) (blockSize - 1u)) * 16384); - sumOfSquares = __SSAT((sumOfSquares >> 15u), 16u); - meanOfSquares = (q31_t) ((sumOfSquares * t) >> 14u); - -#endif /* #ifndef ARM_MATH_CM0 */ - - /* Compute mean of all input values */ - t = (q15_t) ((1.0f / (float32_t) (blockSize * (blockSize - 1u))) * 32768); - mean = __SSAT(sum, 16u); - - /* Compute square of mean */ - squareOfMean = ((q31_t) mean * mean) >> 15; - squareOfMean = (q31_t) (((q63_t) squareOfMean * t) >> 15); - - /* Compute variance and then store the result to the destination */ - *pResult = (meanOfSquares - squareOfMean); - -} - -/** - * @} end of variance group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q31.c deleted file mode 100644 index 13d6c15cb5..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/StatisticsFunctions/arm_var_q31.c +++ /dev/null @@ -1,170 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_var_q31.c -* -* Description: Variance of an array of Q31 type. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup variance - * @{ - */ - -/** - * @brief Variance of the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult variance value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - *\par - * The function is implemented using an internal 64-bit accumulator. - * The input is represented in 1.31 format, and intermediate multiplication - * yields a 2.62 format. - * The accumulator maintains full precision of the intermediate multiplication results, - * but provides only a single guard bit. - * There is no saturation on intermediate additions. - * If the accumulator overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by - * log2(blockSize) bits, as a total of blockSize additions are performed internally. - * Finally, the 2.62 accumulator is right shifted by 31 bits to yield a 1.31 format value. - * - */ - - -void arm_var_q31( - q31_t * pSrc, - uint32_t blockSize, - q63_t * pResult) -{ - q63_t sum = 0, sumSquare = 0; /* Accumulator */ - q31_t meanOfSquares, squareOfMean; /* square of mean and mean of square */ - q31_t mean; /* mean */ - q31_t in; /* input value */ - q31_t t; /* Temporary variable */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q63_t sumSquare1 = 0; /* Accumulator */ - q31_t in1, in2, in3, in4; /* Temporary input variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - /* read input samples from source buffer */ - in1 = pSrc[0]; - in2 = pSrc[1]; - - /* calculate sum of inputs */ - sum += in1; - /* calculate sum of squares */ - sumSquare += ((q63_t) (in1) * (in1)); - in3 = pSrc[2]; - sum += in2; - sumSquare1 += ((q63_t) (in2) * (in2)); - in4 = pSrc[3]; - sum += in3; - sumSquare += ((q63_t) (in3) * (in3)); - sum += in4; - sumSquare1 += ((q63_t) (in4) * (in4)); - - /* update input pointer to process next samples */ - pSrc += 4u; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* add two accumulators */ - sumSquare = sumSquare + sumSquare1; - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sumSquare += ((q63_t) (in) * (in)); - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - t = (q31_t) ((1.0f / (float32_t) (blockSize - 1u)) * 1073741824.0f); - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - sumSquare = (sumSquare >> 31); - meanOfSquares = (q31_t) ((sumSquare * t) >> 30); - - /* Compute mean of all input values */ - t = (q31_t) ((1.0f / (blockSize * (blockSize - 1u))) * 2147483648.0f); - mean = (q31_t) (sum); - - /* Compute square of mean */ - squareOfMean = (q31_t) (((q63_t) mean * mean) >> 31); - squareOfMean = (q31_t) (((q63_t) squareOfMean * t) >> 31); - - /* Compute variance and then store the result to the destination */ - *pResult = (q63_t) meanOfSquares - squareOfMean; - -} - -/** - * @} end of variance group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_f32.c deleted file mode 100644 index 619c1577a6..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_f32.c +++ /dev/null @@ -1,130 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_copy_f32.c -* -* Description: Copies the elements of a floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup copy Vector Copy - * - * Copies sample by sample from source vector to destination vector. - * - *
    
- * 	pDst[n] = pSrc[n];   0 <= n < blockSize.    
- * 
- * - * There are separate functions for floating point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup copy - * @{ - */ - -/** - * @brief Copies the elements of a floating-point vector. - * @param[in] *pSrc points to input vector - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the input vector - * @return none. - * - */ - - -void arm_copy_f32( - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A */ - /* Copy and then store the results in the destination buffer */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = in1; - *pDst++ = in2; - *pDst++ = in3; - *pDst++ = in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A */ - /* Copy and then store the results in the destination buffer */ - *pDst++ = *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicCopy group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q15.c deleted file mode 100644 index 00be9dc0b2..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q15.c +++ /dev/null @@ -1,109 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_copy_q15.c -* -* Description: Copies the elements of a Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup copy - * @{ - */ -/** - * @brief Copies the elements of a Q15 vector. - * @param[in] *pSrc points to input vector - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the input vector - * @return none. - * - */ - -void arm_copy_q15( - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A */ - /* Read two inputs */ - *__SIMD32(pDst)++ = *__SIMD32(pSrc)++; - *__SIMD32(pDst)++ = *__SIMD32(pSrc)++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A */ - /* Copy and then store the value in the destination buffer */ - *pDst++ = *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicCopy group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q31.c deleted file mode 100644 index 7ab0849f6e..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q31.c +++ /dev/null @@ -1,118 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_copy_q31.c -* -* Description: Copies the elements of a Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup copy - * @{ - */ - -/** - * @brief Copies the elements of a Q31 vector. - * @param[in] *pSrc points to input vector - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the input vector - * @return none. - * - */ - -void arm_copy_q31( - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A */ - /* Copy and then store the values in the destination buffer */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = in1; - *pDst++ = in2; - *pDst++ = in3; - *pDst++ = in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = A */ - /* Copy and then store the value in the destination buffer */ - *pDst++ = *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicCopy group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q7.c deleted file mode 100644 index 425885753e..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_copy_q7.c +++ /dev/null @@ -1,110 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_copy_q7.c -* -* Description: Copies the elements of a Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup copy - * @{ - */ - -/** - * @brief Copies the elements of a Q7 vector. - * @param[in] *pSrc points to input vector - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the input vector - * @return none. - * - */ - -void arm_copy_q7( - q7_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = A */ - /* Copy and then store the results in the destination buffer */ - /* 4 samples are copied and stored at a time using SIMD */ - *__SIMD32(pDst)++ = *__SIMD32(pSrc)++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = A */ - /* Copy and then store the results in the destination buffer */ - *pDst++ = *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicCopy group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_f32.c deleted file mode 100644 index 439e60db0c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_f32.c +++ /dev/null @@ -1,129 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fill_f32.c -* -* Description: Fills a constant value into a floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup Fill Vector Fill - * - * Fills the destination vector with a constant value. - * - *
    
- * 	pDst[n] = value;   0 <= n < blockSize.    
- * 
- * - * There are separate functions for floating point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup Fill - * @{ - */ - -/** - * @brief Fills a constant value into a floating-point vector. - * @param[in] value input value to be filled - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the output vector - * @return none. - * - */ - - -void arm_fill_f32( - float32_t value, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1 = value; - float32_t in2 = value; - float32_t in3 = value; - float32_t in4 = value; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = in1; - *pDst++ = in2; - *pDst++ = in3; - *pDst++ = in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - - while(blkCnt > 0u) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = value; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of Fill group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q15.c deleted file mode 100644 index 8f60d3b4ef..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q15.c +++ /dev/null @@ -1,115 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fill_q15.c -* -* Description: Fills a constant value into a Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup Fill - * @{ - */ - -/** - * @brief Fills a constant value into a Q15 vector. - * @param[in] value input value to be filled - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the output vector - * @return none. - * - */ - -void arm_fill_q15( - q15_t value, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t packedValue; /* value packed to 32 bits */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* Packing two 16 bit values to 32 bit value in order to use SIMD */ - packedValue = __PKHBT(value, value, 16u); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *__SIMD32(pDst)++ = packedValue; - *__SIMD32(pDst)++ = packedValue; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = value; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of Fill group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q31.c deleted file mode 100644 index 35565c3cf7..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q31.c +++ /dev/null @@ -1,116 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fill_q31.c -* -* Description: Fills a constant value into a Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup Fill - * @{ - */ - -/** - * @brief Fills a constant value into a Q31 vector. - * @param[in] value input value to be filled - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the output vector - * @return none. - * - */ - -void arm_fill_q31( - q31_t value, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1 = value; - q31_t in2 = value; - q31_t in3 = value; - q31_t in4 = value; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = in1; - *pDst++ = in2; - *pDst++ = in3; - *pDst++ = in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = value; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of Fill group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q7.c deleted file mode 100644 index 481d4c8f7b..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_fill_q7.c +++ /dev/null @@ -1,113 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_fill_q7.c -* -* Description: Fills a constant value into a Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup Fill - * @{ - */ - -/** - * @brief Fills a constant value into a Q7 vector. - * @param[in] value input value to be filled - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the output vector - * @return none. - * - */ - -void arm_fill_q7( - q7_t value, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t packedValue; /* value packed to 32 bits */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* Packing four 8 bit values to 32 bit value in order to use SIMD */ - packedValue = __PACKq7(value, value, value, value); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *__SIMD32(pDst)++ = packedValue; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = value; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of Fill group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q15.c deleted file mode 100644 index 1537b93ab9..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q15.c +++ /dev/null @@ -1,196 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_float_to_q15.c -* -* Description: Converts the elements of the floating-point vector to Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup float_to_x - * @{ - */ - -/** - * @brief Converts the elements of the floating-point vector to Q15 vector. - * @param[in] *pSrc points to the floating-point input vector - * @param[out] *pDst points to the Q15 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * \par - * The equation used for the conversion process is: - *
    
- * 	pDst[n] = (q15_t)(pSrc[n] * 32768);   0 <= n < blockSize.    
- * 
- * \par Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - * \note - * In order to apply rounding, the library should be rebuilt with the ROUNDING macro - * defined in the preprocessor section of project options. - * - */ - - -void arm_float_to_q15( - float32_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - float32_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifdef ARM_MATH_ROUNDING - - float32_t in; - -#endif /* #ifdef ARM_MATH_ROUNDING */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 32768.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - - in = *pIn++; - in = (in * 32768.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - - in = *pIn++; - in = (in * 32768.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - - in = *pIn++; - in = (in * 32768.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - -#else - - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 32768.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - -#else - - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 32768.0f); - in += in > 0 ? 0.5f : -0.5f; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - -#else - - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of float_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q31.c deleted file mode 100644 index 3ab52b9ff0..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q31.c +++ /dev/null @@ -1,203 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_float_to_q31.c -* -* Description: Converts the elements of the floating-point vector to Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup float_to_x Convert 32-bit floating point value - */ - -/** - * @addtogroup float_to_x - * @{ - */ - -/** - * @brief Converts the elements of the floating-point vector to Q31 vector. - * @param[in] *pSrc points to the floating-point input vector - * @param[out] *pDst points to the Q31 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - *\par Description: - * \par - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (q31_t)(pSrc[n] * 2147483648);   0 <= n < blockSize.    
- * 
- * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] will be saturated. - * - * \note In order to apply rounding, the library should be rebuilt with the ROUNDING macro - * defined in the preprocessor section of project options. - */ - - -void arm_float_to_q31( - float32_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - float32_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifdef ARM_MATH_ROUNDING - - float32_t in; - -#endif /* #ifdef ARM_MATH_ROUNDING */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - -#ifdef ARM_MATH_ROUNDING - - /* C = A * 32768 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - -#else - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - -#ifdef ARM_MATH_ROUNDING - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - -#else - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { - -#ifdef ARM_MATH_ROUNDING - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0 ? 0.5f : -0.5f; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - -#else - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of float_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q7.c deleted file mode 100644 index dea14c6a14..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_float_to_q7.c +++ /dev/null @@ -1,195 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_float_to_q7.c -* -* Description: Converts the elements of the floating-point vector to Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup float_to_x - * @{ - */ - -/** - * @brief Converts the elements of the floating-point vector to Q7 vector. - * @param[in] *pSrc points to the floating-point input vector - * @param[out] *pDst points to the Q7 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - *\par Description: - * \par - * The equation used for the conversion process is: - *
    
- * 	pDst[n] = (q7_t)(pSrc[n] * 128);   0 <= n < blockSize.    
- * 
- * \par Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. - * \note - * In order to apply rounding, the library should be rebuilt with the ROUNDING macro - * defined in the preprocessor section of project options. - */ - - -void arm_float_to_q7( - float32_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - float32_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifdef ARM_MATH_ROUNDING - - float32_t in; - -#endif /* #ifdef ARM_MATH_ROUNDING */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 128); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - - in = *pIn++; - in = (in * 128); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - - in = *pIn++; - in = (in * 128); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - - in = *pIn++; - in = (in * 128); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - -#else - - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - - while(blkCnt > 0u) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 128); - in += in > 0 ? 0.5 : -0.5; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - -#else - - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while(blkCnt > 0u) - { -#ifdef ARM_MATH_ROUNDING - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 128.0f); - in += in > 0 ? 0.5f : -0.5f; - *pDst++ = (q7_t) (__SSAT((q31_t) (in), 8)); - -#else - - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - *pDst++ = (q7_t) __SSAT((q31_t) (*pIn++ * 128.0f), 8); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of float_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_float.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_float.c deleted file mode 100644 index ce51e9a395..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_float.c +++ /dev/null @@ -1,126 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q15_to_float.c -* -* Description: Converts the elements of the Q15 vector to floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup q15_to_x Convert 16-bit Integer value - */ - -/** - * @addtogroup q15_to_x - * @{ - */ - - - - -/** - * @brief Converts the elements of the Q15 vector to floating-point vector. - * @param[in] *pSrc points to the Q15 input vector - * @param[out] *pDst points to the floating-point output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (float32_t) pSrc[n] / 32768;   0 <= n < blockSize.    
- * 
- * - */ - - -void arm_q15_to_float( - q15_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - q15_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (float32_t) A / 32768 */ - /* convert from q15 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (float32_t) A / 32768 */ - /* convert from q15 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of q15_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q31.c deleted file mode 100644 index a0f66c29e8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q31.c +++ /dev/null @@ -1,148 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q15_to_q31.c -* -* Description: Converts the elements of the Q15 vector to Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q15_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q15 vector to Q31 vector. - * @param[in] *pSrc points to the Q15 input vector - * @param[out] *pDst points to the Q31 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (q31_t) pSrc[n] << 16;   0 <= n < blockSize.    
- * 
- * - */ - - -void arm_q15_to_q31( - q15_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q15_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2; - q31_t out1, out2, out3, out4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (q31_t)A << 16 */ - /* convert from q15 to q31 and then store the results in the destination buffer */ - in1 = *__SIMD32(pIn)++; - in2 = *__SIMD32(pIn)++; - -#ifndef ARM_MATH_BIG_ENDIAN - - /* extract lower 16 bits to 32 bit result */ - out1 = in1 << 16u; - /* extract upper 16 bits to 32 bit result */ - out2 = in1 & 0xFFFF0000; - /* extract lower 16 bits to 32 bit result */ - out3 = in2 << 16u; - /* extract upper 16 bits to 32 bit result */ - out4 = in2 & 0xFFFF0000; - -#else - - /* extract upper 16 bits to 32 bit result */ - out1 = in1 & 0xFFFF0000; - /* extract lower 16 bits to 32 bit result */ - out2 = in1 << 16u; - /* extract upper 16 bits to 32 bit result */ - out3 = in2 & 0xFFFF0000; - /* extract lower 16 bits to 32 bit result */ - out4 = in2 << 16u; - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - *pDst++ = out1; - *pDst++ = out2; - *pDst++ = out3; - *pDst++ = out4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (q31_t)A << 16 */ - /* convert from q15 to q31 and then store the results in the destination buffer */ - *pDst++ = (q31_t) * pIn++ << 16; - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q15_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q7.c deleted file mode 100644 index 87fe63d9eb..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q15_to_q7.c +++ /dev/null @@ -1,146 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q15_to_q7.c -* -* Description: Converts the elements of the Q15 vector to Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q15_to_x - * @{ - */ - - -/** - * @brief Converts the elements of the Q15 vector to Q7 vector. - * @param[in] *pSrc points to the Q15 input vector - * @param[out] *pDst points to the Q7 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (q7_t) pSrc[n] >> 8;   0 <= n < blockSize.    
- * 
- * - */ - - -void arm_q15_to_q7( - q15_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - q15_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2; - q31_t out1, out2; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (q7_t) A >> 8 */ - /* convert from q15 to q7 and then store the results in the destination buffer */ - in1 = *__SIMD32(pIn)++; - in2 = *__SIMD32(pIn)++; - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __PKHTB(in2, in1, 16); - out2 = __PKHBT(in2, in1, 16); - -#else - - out1 = __PKHTB(in1, in2, 16); - out2 = __PKHBT(in1, in2, 16); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - /* rotate packed value by 24 */ - out2 = ((uint32_t) out2 << 8) | ((uint32_t) out2 >> 24); - - /* anding with 0xff00ff00 to get two 8 bit values */ - out1 = out1 & 0xFF00FF00; - /* anding with 0x00ff00ff to get two 8 bit values */ - out2 = out2 & 0x00FF00FF; - - /* oring two values(contains two 8 bit values) to get four packed 8 bit values */ - out1 = out1 | out2; - - /* store 4 samples at a time to destiantion buffer */ - *__SIMD32(pDst)++ = out1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (q7_t) A >> 8 */ - /* convert from q15 to q7 and then store the results in the destination buffer */ - *pDst++ = (q7_t) (*pIn++ >> 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q15_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_float.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_float.c deleted file mode 100644 index 94deec9a1b..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_float.c +++ /dev/null @@ -1,123 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q31_to_float.c -* -* Description: Converts the elements of the Q31 vector to floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup q31_to_x Convert 32-bit Integer value - */ - -/** - * @addtogroup q31_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q31 vector to floating-point vector. - * @param[in] *pSrc points to the Q31 input vector - * @param[out] *pDst points to the floating-point output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (float32_t) pSrc[n] / 2147483648;   0 <= n < blockSize.    
- * 
- * - */ - - -void arm_q31_to_float( - q31_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - q31_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (float32_t) A / 2147483648 */ - /* convert from q31 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (float32_t) A / 2147483648 */ - /* convert from q31 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of q31_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q15.c deleted file mode 100644 index ba79f85a13..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q15.c +++ /dev/null @@ -1,137 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q31_to_q15.c -* -* Description: Converts the elements of the Q31 vector to Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q31_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q31 vector to Q15 vector. - * @param[in] *pSrc points to the Q31 input vector - * @param[out] *pDst points to the Q15 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (q15_t) pSrc[n] >> 16;   0 <= n < blockSize.    
- * 
- * - */ - - -void arm_q31_to_q15( - q31_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q31_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - q31_t out1, out2; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (q15_t) A >> 16 */ - /* convert from q31 to q15 and then store the results in the destination buffer */ - in1 = *pIn++; - in2 = *pIn++; - in3 = *pIn++; - in4 = *pIn++; - - /* pack two higher 16-bit values from two 32-bit values */ -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __PKHTB(in2, in1, 16); - out2 = __PKHTB(in4, in3, 16); - -#else - - out1 = __PKHTB(in1, in2, 16); - out2 = __PKHTB(in3, in4, 16); - -#endif // #ifdef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = out1; - *__SIMD32(pDst)++ = out2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (q15_t) A >> 16 */ - /* convert from q31 to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) (*pIn++ >> 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q31_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q7.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q7.c deleted file mode 100644 index afc8fdbed4..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q31_to_q7.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q31_to_q7.c -* -* Description: Converts the elements of the Q31 vector to Q7 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q31_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q31 vector to Q7 vector. - * @param[in] *pSrc points to the Q31 input vector - * @param[out] *pDst points to the Q7 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (q7_t) pSrc[n] >> 24;   0 <= n < blockSize.     
- * 
- * - */ - - -void arm_q31_to_q7( - q31_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - q31_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - q7_t out1, out2, out3, out4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (q7_t) A >> 24 */ - /* convert from q31 to q7 and then store the results in the destination buffer */ - in1 = *pIn++; - in2 = *pIn++; - in3 = *pIn++; - in4 = *pIn++; - - out1 = (q7_t) (in1 >> 24); - out2 = (q7_t) (in2 >> 24); - out3 = (q7_t) (in3 >> 24); - out4 = (q7_t) (in4 >> 24); - - *__SIMD32(pDst)++ = __PACKq7(out1, out2, out3, out4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (q7_t) A >> 24 */ - /* convert from q31 to q7 and then store the results in the destination buffer */ - *pDst++ = (q7_t) (*pIn++ >> 24); - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q31_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_float.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_float.c deleted file mode 100644 index be4ac5fe30..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_float.c +++ /dev/null @@ -1,123 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q7_to_float.c -* -* Description: Converts the elements of the Q7 vector to floating-point vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup q7_to_x Convert 8-bit Integer value - */ - -/** - * @addtogroup q7_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q7 vector to floating-point vector. - * @param[in] *pSrc points to the Q7 input vector - * @param[out] *pDst points to the floating-point output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (float32_t) pSrc[n] / 128;   0 <= n < blockSize.    
- * 
- * - */ - - -void arm_q7_to_float( - q7_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - q7_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (float32_t) A / 128 */ - /* convert from q7 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 128.0f); - *pDst++ = ((float32_t) * pIn++ / 128.0f); - *pDst++ = ((float32_t) * pIn++ / 128.0f); - *pDst++ = ((float32_t) * pIn++ / 128.0f); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (float32_t) A / 128 */ - /* convert from q7 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 128.0f); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of q7_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q15.c deleted file mode 100644 index 019ca48159..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q15.c +++ /dev/null @@ -1,149 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q7_to_q15.c -* -* Description: Converts the elements of the Q7 vector to Q15 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q7_to_x - * @{ - */ - - - - -/** - * @brief Converts the elements of the Q7 vector to Q15 vector. - * @param[in] *pSrc points to the Q7 input vector - * @param[out] *pDst points to the Q15 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (q15_t) pSrc[n] << 8;   0 <= n < blockSize.    
- * 
- * - */ - - -void arm_q7_to_q15( - q7_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q7_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - q31_t in; - q31_t in1, in2; - q31_t out1, out2; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (q15_t) A << 8 */ - /* convert from q7 to q15 and then store the results in the destination buffer */ - in = *__SIMD32(pIn)++; - - /* rotatate in by 8 and extend two q7_t values to q15_t values */ - in1 = __SXTB16(__ROR(in, 8)); - - /* extend remainig two q7_t values to q15_t values */ - in2 = __SXTB16(in); - - in1 = in1 << 8u; - in2 = in2 << 8u; - - in1 = in1 & 0xFF00FF00; - in2 = in2 & 0xFF00FF00; - -#ifndef ARM_MATH_BIG_ENDIAN - - out2 = __PKHTB(in1, in2, 16); - out1 = __PKHBT(in2, in1, 16); - -#else - - out1 = __PKHTB(in1, in2, 16); - out2 = __PKHBT(in2, in1, 16); - -#endif - - *__SIMD32(pDst)++ = out1; - *__SIMD32(pDst)++ = out2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (q15_t) A << 8 */ - /* convert from q7 to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) * pIn++ << 8; - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q7_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q31.c deleted file mode 100644 index bbbcc6f4a3..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/SupportFunctions/arm_q7_to_q31.c +++ /dev/null @@ -1,134 +0,0 @@ -/* ---------------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_q7_to_q31.c -* -* Description: Converts the elements of the Q7 vector to Q31 vector. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* ---------------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q7_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q7 vector to Q31 vector. - * @param[in] *pSrc points to the Q7 input vector - * @param[out] *pDst points to the Q31 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
    
- * 	pDst[n] = (q31_t) pSrc[n] << 24;   0 <= n < blockSize.   
- * 
- * - */ - - -void arm_q7_to_q31( - q7_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q7_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifndef ARM_MATH_CM0 - - q31_t in; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while(blkCnt > 0u) - { - /* C = (q31_t) A << 24 */ - /* convert from q7 to q31 and then store the results in the destination buffer */ - in = *__SIMD32(pIn)++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *pDst++ = (__ROR(in, 8)) & 0xFF000000; - *pDst++ = (__ROR(in, 16)) & 0xFF000000; - *pDst++ = (__ROR(in, 24)) & 0xFF000000; - *pDst++ = (in & 0xFF000000); - -#else - - *pDst++ = (in & 0xFF000000); - *pDst++ = (__ROR(in, 24)) & 0xFF000000; - *pDst++ = (__ROR(in, 16)) & 0xFF000000; - *pDst++ = (__ROR(in, 8)) & 0xFF000000; - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4u; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #ifndef ARM_MATH_CM0 */ - - while(blkCnt > 0u) - { - /* C = (q31_t) A << 24 */ - /* convert from q7 to q31 and then store the results in the destination buffer */ - *pDst++ = (q31_t) * pIn++ << 24; - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q7_to_x group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_bitreversal.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_bitreversal.c deleted file mode 100644 index 3da790ebb1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_bitreversal.c +++ /dev/null @@ -1,222 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_bitreversal.c -* -* Description: This file has common tables like Bitreverse, reciprocal etc which are used across different functions -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Initial Version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/* - * @brief In-place bit reversal function. - * @param[in, out] *pSrc points to the in-place buffer of floating-point data type. - * @param[in] fftSize length of the FFT. - * @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table. - * @param[in] *pBitRevTab points to the bit reversal table. - * @return none. - */ - -void arm_bitreversal_f32( - float32_t * pSrc, - uint16_t fftSize, - uint16_t bitRevFactor, - uint16_t * pBitRevTab) -{ - uint16_t fftLenBy2, fftLenBy2p1; - uint16_t i, j; - float32_t in; - - /* Initializations */ - j = 0u; - fftLenBy2 = fftSize >> 1u; - fftLenBy2p1 = (fftSize >> 1u) + 1u; - - /* Bit Reversal Implementation */ - for (i = 0u; i <= (fftLenBy2 - 2u); i += 2u) - { - if(i < j) - { - /* pSrc[i] <-> pSrc[j]; */ - in = pSrc[2u * i]; - pSrc[2u * i] = pSrc[2u * j]; - pSrc[2u * j] = in; - - /* pSrc[i+1u] <-> pSrc[j+1u] */ - in = pSrc[(2u * i) + 1u]; - pSrc[(2u * i) + 1u] = pSrc[(2u * j) + 1u]; - pSrc[(2u * j) + 1u] = in; - - /* pSrc[i+fftLenBy2p1] <-> pSrc[j+fftLenBy2p1] */ - in = pSrc[2u * (i + fftLenBy2p1)]; - pSrc[2u * (i + fftLenBy2p1)] = pSrc[2u * (j + fftLenBy2p1)]; - pSrc[2u * (j + fftLenBy2p1)] = in; - - /* pSrc[i+fftLenBy2p1+1u] <-> pSrc[j+fftLenBy2p1+1u] */ - in = pSrc[(2u * (i + fftLenBy2p1)) + 1u]; - pSrc[(2u * (i + fftLenBy2p1)) + 1u] = - pSrc[(2u * (j + fftLenBy2p1)) + 1u]; - pSrc[(2u * (j + fftLenBy2p1)) + 1u] = in; - - } - - /* pSrc[i+1u] <-> pSrc[j+1u] */ - in = pSrc[2u * (i + 1u)]; - pSrc[2u * (i + 1u)] = pSrc[2u * (j + fftLenBy2)]; - pSrc[2u * (j + fftLenBy2)] = in; - - /* pSrc[i+2u] <-> pSrc[j+2u] */ - in = pSrc[(2u * (i + 1u)) + 1u]; - pSrc[(2u * (i + 1u)) + 1u] = pSrc[(2u * (j + fftLenBy2)) + 1u]; - pSrc[(2u * (j + fftLenBy2)) + 1u] = in; - - /* Reading the index for the bit reversal */ - j = *pBitRevTab; - - /* Updating the bit reversal index depending on the fft length */ - pBitRevTab += bitRevFactor; - } -} - - - -/* - * @brief In-place bit reversal function. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table - * @param[in] *pBitRevTab points to bit reversal table. - * @return none. - */ - -void arm_bitreversal_q31( - q31_t * pSrc, - uint32_t fftLen, - uint16_t bitRevFactor, - uint16_t * pBitRevTable) -{ - uint32_t fftLenBy2, fftLenBy2p1, i, j; - q31_t in; - - /* Initializations */ - j = 0u; - fftLenBy2 = fftLen / 2u; - fftLenBy2p1 = (fftLen / 2u) + 1u; - - /* Bit Reversal Implementation */ - for (i = 0u; i <= (fftLenBy2 - 2u); i += 2u) - { - if(i < j) - { - /* pSrc[i] <-> pSrc[j]; */ - in = pSrc[2u * i]; - pSrc[2u * i] = pSrc[2u * j]; - pSrc[2u * j] = in; - - /* pSrc[i+1u] <-> pSrc[j+1u] */ - in = pSrc[(2u * i) + 1u]; - pSrc[(2u * i) + 1u] = pSrc[(2u * j) + 1u]; - pSrc[(2u * j) + 1u] = in; - - /* pSrc[i+fftLenBy2p1] <-> pSrc[j+fftLenBy2p1] */ - in = pSrc[2u * (i + fftLenBy2p1)]; - pSrc[2u * (i + fftLenBy2p1)] = pSrc[2u * (j + fftLenBy2p1)]; - pSrc[2u * (j + fftLenBy2p1)] = in; - - /* pSrc[i+fftLenBy2p1+1u] <-> pSrc[j+fftLenBy2p1+1u] */ - in = pSrc[(2u * (i + fftLenBy2p1)) + 1u]; - pSrc[(2u * (i + fftLenBy2p1)) + 1u] = - pSrc[(2u * (j + fftLenBy2p1)) + 1u]; - pSrc[(2u * (j + fftLenBy2p1)) + 1u] = in; - - } - - /* pSrc[i+1u] <-> pSrc[j+1u] */ - in = pSrc[2u * (i + 1u)]; - pSrc[2u * (i + 1u)] = pSrc[2u * (j + fftLenBy2)]; - pSrc[2u * (j + fftLenBy2)] = in; - - /* pSrc[i+2u] <-> pSrc[j+2u] */ - in = pSrc[(2u * (i + 1u)) + 1u]; - pSrc[(2u * (i + 1u)) + 1u] = pSrc[(2u * (j + fftLenBy2)) + 1u]; - pSrc[(2u * (j + fftLenBy2)) + 1u] = in; - - /* Reading the index for the bit reversal */ - j = *pBitRevTable; - - /* Updating the bit reversal index depending on the fft length */ - pBitRevTable += bitRevFactor; - } -} - - - -/* - * @brief In-place bit reversal function. - * @param[in, out] *pSrc points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table - * @param[in] *pBitRevTab points to bit reversal table. - * @return none. - */ - -void arm_bitreversal_q15( - q15_t * pSrc16, - uint32_t fftLen, - uint16_t bitRevFactor, - uint16_t * pBitRevTab) -{ - q31_t *pSrc = (q31_t *) pSrc16; - q31_t in; - uint32_t fftLenBy2, fftLenBy2p1; - uint32_t i, j; - - /* Initializations */ - j = 0u; - fftLenBy2 = fftLen / 2u; - fftLenBy2p1 = (fftLen / 2u) + 1u; - - /* Bit Reversal Implementation */ - for (i = 0u; i <= (fftLenBy2 - 2u); i += 2u) - { - if(i < j) - { - /* pSrc[i] <-> pSrc[j]; */ - /* pSrc[i+1u] <-> pSrc[j+1u] */ - in = pSrc[i]; - pSrc[i] = pSrc[j]; - pSrc[j] = in; - - /* pSrc[i + fftLenBy2p1] <-> pSrc[j + fftLenBy2p1]; */ - /* pSrc[i + fftLenBy2p1+1u] <-> pSrc[j + fftLenBy2p1+1u] */ - in = pSrc[i + fftLenBy2p1]; - pSrc[i + fftLenBy2p1] = pSrc[j + fftLenBy2p1]; - pSrc[j + fftLenBy2p1] = in; - } - - /* pSrc[i+1u] <-> pSrc[j+fftLenBy2]; */ - /* pSrc[i+2] <-> pSrc[j+fftLenBy2+1u] */ - in = pSrc[i + 1u]; - pSrc[i + 1u] = pSrc[j + fftLenBy2]; - pSrc[j + fftLenBy2] = in; - - /* Reading the index for the bit reversal */ - j = *pBitRevTab; - - /* Updating the bit reversal index depending on the fft length */ - pBitRevTab += bitRevFactor; - } -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_f32.c deleted file mode 100644 index 274b699281..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_f32.c +++ /dev/null @@ -1,511 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix2_f32.c -* -* Description: Radix-2 Decimation in Frequency CFFT & CIFFT Floating point processing function -* -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.3 2010/11/29 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @defgroup Radix2_CFFT_CIFFT Radix-2 Complex FFT Functions - * - * \par - * Complex Fast Fourier Transform(CFFT) and Complex Inverse Fast Fourier Transform(CIFFT) is an efficient algorithm to compute Discrete Fourier Transform(DFT) and Inverse Discrete Fourier Transform(IDFT). - * Computational complexity of CFFT reduces drastically when compared to DFT. - * \par - * This set of functions implements CFFT/CIFFT - * for Q15, Q31, and floating-point data types. The functions operates on in-place buffer which uses same buffer for input and output. - * Complex input is stored in input buffer in an interleaved fashion. - * - * \par - * The functions operate on blocks of input and output data and each call to the function processes - * 2*fftLen samples through the transform. pSrc points to In-place arrays containing 2*fftLen values. - * \par - * The pSrc points to the array of in-place buffer of size 2*fftLen and inputs and outputs are stored in an interleaved fashion as shown below. - *
 {real[0], imag[0], real[1], imag[1],..} 
- * - * \par Lengths supported by the transform: - * \par - * Internally, the function utilize a radix-2 decimation in frequency(DIF) algorithm - * and the size of the FFT supported are of the lengths [16, 32, 64, 128, 256, 512, 1024, 2048, 4096]. - * - * - * \par Algorithm: - * - * Complex Fast Fourier Transform: - * \par - * Input real and imaginary data: - *
   
- * x(n) = xa + j * ya   
- * x(n+N/2 ) = xb + j * yb   
- * 
- * where N is length of FFT - * \par - * Output real and imaginary data: - *
   
- * X(2r) = xa'+ j * ya'   
- * X(2r+1) = xb'+ j * yb'   
- * 
- * \par - * Twiddle factors for radix-2 FFT: - *
   
- * Wn = cosVal + j * (- sinVal)   
- * 
- * - * \par - * \image html CFFT_Radix2.gif "Radix-2 Decimation-in Frequency Complex Fast Fourier Transform" - * - * \par - * Output from Radix-2 CFFT Results in Digit reversal order. Interchange middle two branches of every butterfly results in Bit reversed output. - * \par - * Butterfly CFFT equations: - *
   
- * xa' = xa + xb  
- * ya' = ya + yb  
- * xb' = (xa-xb)* cosVal + (ya-yb) * sinVal   
- * yb' = (ya-yb)* cosVal - (xa-xb) * sinVal   
- * 
- * - * - * Complex Inverse Fast Fourier Transform: - * \par - * CIFFT uses same twiddle factor table as CFFT with modifications in the design equation as shown below. - * - * \par - * Modified Butterfly CIFFT equations: - *
   
- * xa' = xa + xb  
- * ya' = ya + yb  
- * xb' = (xa-xb)* cosVal - (ya-yb) * sinVal   
- * yb' = (ya-yb)* cosVal + (xa-xb) * sinVal   
- * 
- * - * \par Instance Structure - * A separate instance structure must be defined for each Instance but the twiddle factors and bit reversal tables can be reused. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Initializes twiddle factor table and bit reversal table pointers - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Manually initialize the instance structure as follows: - *
   
- *arm_cfft_radix2_instance_f32 S = {fftLen, ifftFlag, bitReverseFlag, pTwiddle, pBitRevTable, twidCoefModifier, bitRevFactor, onebyfftLen};   
- *arm_cfft_radix2_instance_q31 S = {fftLen, ifftFlag, bitReverseFlag, pTwiddle, pBitRevTable, twidCoefModifier, bitRevFactor};   
- *arm_cfft_radix2_instance_q15 S = {fftLen, ifftFlag, bitReverseFlag, pTwiddle, pBitRevTable, twidCoefModifier, bitRevFactor};   
- * 
- * \par - * where fftLen length of CFFT/CIFFT; ifftFlag Flag for selection of CFFT or CIFFT(Set ifftFlag to calculate CIFFT otherwise calculates CFFT); - * bitReverseFlag Flag for selection of output order(Set bitReverseFlag to output in normal order otherwise output in bit reversed order); - * pTwiddlepoints to array of twiddle coefficients; pBitRevTable points to the array of bit reversal table. - * twidCoefModifier modifier for twiddle factor table which supports all FFT lengths with same table; - * pBitRevTable modifier for bit reversal table which supports all FFT lengths with same table. - * onebyfftLen value of 1/fftLen to calculate CIFFT; - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the CFFT/CIFFT function. - * Refer to the function specific documentation below for usage guidelines. - */ - - -/** - * @addtogroup Radix2_CFFT_CIFFT - * @{ - */ - -/** - * @details - * @brief Processing function for the floating-point Radix-2 CFFT/CIFFT. - * @param[in] *S points to an instance of the floating-point Radix-2 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. - * @return none. - */ - -void arm_cfft_radix2_f32( - const arm_cfft_radix2_instance_f32 * S, - float32_t * pSrc) -{ - - if(S->ifftFlag == 1u) - { - /* Complex IFFT radix-2 */ - arm_radix2_butterfly_inverse_f32(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier, S->onebyfftLen); - } - else - { - /* Complex FFT radix-2 */ - arm_radix2_butterfly_f32(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier); - } - - if(S->bitReverseFlag == 1u) - { - /* Bit Reversal */ - arm_bitreversal_f32(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); - } - -} - - -/** - * @} end of Radix2_CFFT_CIFFT group - */ - - - -/* ---------------------------------------------------------------------- -** Internal helper function used by the FFTs -** ------------------------------------------------------------------- */ - -/* - * @brief Core function for the floating-point CFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of floating-point data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to the twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_radix2_butterfly_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier) -{ - - int i, j, k, l; - int n1, n2, ia; - float32_t xt, yt, cosVal, sinVal; - -#ifndef ARM_MATH_CM0 - - /* Initializations for the first stage */ - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - - /* Twiddle coefficients index modifier */ - ia = ia + twidCoefModifier; - - /* index calculation for the input as, */ - /* pSrc[i + 0], pSrc[i + fftLen/1] */ - l = i + n2; - - /* Butterfly implementation */ - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = pSrc[2 * i] + pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - pSrc[2u * l] = xt * cosVal + yt * sinVal; - - pSrc[2u * l + 1u] = yt * cosVal - xt * sinVal; - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = pSrc[2 * i] + pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - pSrc[2u * l] = xt * cosVal + yt * sinVal; - - pSrc[2u * l + 1u] = yt * cosVal - xt * sinVal; - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2u * l] = xt; - - pSrc[2u * l + 1u] = yt; - - } // groups loop end - -#else - - //N = fftLen; - n2 = fftLen; - - // loop for stage - for (k = fftLen; k > 1; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = pSrc[2 * i] + pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - pSrc[2 * l] = (cosVal * xt + sinVal * yt); // >> 15; - pSrc[2 * l + 1] = (cosVal * yt - sinVal * xt); // >> 15; - - } - } - twidCoefModifier = twidCoefModifier << 1u; - } - -#endif // #ifndef ARM_MATH_CM0 - -} - - -void arm_radix2_butterfly_inverse_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier, - float32_t onebyfftLen) -{ - - int i, j, k, l; - int n1, n2, ia; - float32_t xt, yt, cosVal, sinVal; - -#ifndef ARM_MATH_CM0 - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = pSrc[2 * i] + pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - pSrc[2u * l] = xt * cosVal - yt * sinVal; - - pSrc[2u * l + 1u] = yt * cosVal + xt * sinVal; - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = pSrc[2 * i] + pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - pSrc[2u * l] = xt * cosVal - yt * sinVal; - - pSrc[2u * l + 1u] = yt * cosVal + xt * sinVal; - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) * onebyfftLen; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) * onebyfftLen; - - pSrc[2u * l] = xt * onebyfftLen; - - pSrc[2u * l + 1u] = yt * onebyfftLen; - - } // butterfly loop end - -#else - - //N = fftLen; - n2 = fftLen; - - // loop for stage - for (k = fftLen; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = pSrc[2 * i] + pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - pSrc[2u * l] = xt * cosVal - yt * sinVal; - - pSrc[2u * l + 1u] = yt * cosVal + xt * sinVal; - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) * onebyfftLen; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) * onebyfftLen; - - pSrc[2u * l] = xt * onebyfftLen; - - pSrc[2u * l + 1u] = yt * onebyfftLen; - - } // butterfly loop end - -#endif // #ifndef ARM_MATH_CM0 - -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_f32.c deleted file mode 100644 index a41ed25d2c..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_f32.c +++ /dev/null @@ -1,198 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix4_init_f32.c -* -* Description: Radix-4 Decimation in Frequency Floating-point CFFT & CIFFT Initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup Radix2_CFFT_CIFFT - * @{ - */ - -/** -* @brief Initialization function for the floating-point CFFT/CIFFT. -* @param[in,out] *S points to an instance of the floating-point CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ -arm_status arm_cfft_radix2_init_f32( - arm_cfft_radix2_instance_f32 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialise the FFT length */ - S->fftLen = fftLen; - - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (float32_t *) twiddleCoef; - - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLen) - { - - case 4096u: - /* Initializations of structure parameters for 4096 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.000244140625; - break; - - case 2048u: - /* Initializations of structure parameters for 2048 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 2u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 2u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[1]; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.00048828125; - break; - - case 1024u: - /* Initializations of structure parameters for 1024 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 4u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 4u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.0009765625f; - break; - - case 512u: - /* Initializations of structure parameters for 512 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 8u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 8u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[7]; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.001953125; - break; - - case 256u: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16u; - S->bitRevFactor = 16u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - S->onebyfftLen = 0.00390625f; - break; - - case 128u: - /* Initializations of structure parameters for 128 point FFT */ - S->twidCoefModifier = 32u; - S->bitRevFactor = 32u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[31]; - S->onebyfftLen = 0.0078125; - break; - - case 64u: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64u; - S->bitRevFactor = 64u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - S->onebyfftLen = 0.015625f; - break; - - case 32u: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 128u; - S->bitRevFactor = 128u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[127]; - S->onebyfftLen = 0.03125; - break; - - case 16u: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256u; - S->bitRevFactor = 256u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - S->onebyfftLen = 0.0625f; - break; - - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of Radix2_CFFT_CIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c deleted file mode 100644 index 86aa149b2d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c +++ /dev/null @@ -1,186 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix2_init_q15.c -* -* Description: Radix-2 Decimation in Frequency Q15 FFT & IFFT initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - - -/** - * @addtogroup Radix2_CFFT_CIFFT - * @{ - */ - -/** -* @brief Initialization function for the Q15 CFFT/CIFFT. -* @param[in,out] *S points to an instance of the Q15 CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix2_init_q15( - arm_cfft_radix2_instance_q15 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialise the FFT length */ - S->fftLen = fftLen; - - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (q15_t *) twiddleCoefQ15; - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLen) - { - case 4096u: - /* Initializations of structure parameters for 4096 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - - break; - - case 2048u: - /* Initializations of structure parameters for 2048 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 2u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 2u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[1]; - - break; - - case 1024u: - /* Initializations of structure parameters for 1024 point FFT */ - S->twidCoefModifier = 4u; - S->bitRevFactor = 4u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - - break; - - case 512u: - /* Initializations of structure parameters for 512 point FFT */ - S->twidCoefModifier = 8u; - S->bitRevFactor = 8u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[7]; - - break; - - case 256u: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16u; - S->bitRevFactor = 16u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - - break; - - case 128u: - /* Initializations of structure parameters for 128 point FFT */ - S->twidCoefModifier = 32u; - S->bitRevFactor = 32u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[31]; - - break; - - case 64u: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64u; - S->bitRevFactor = 64u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - - break; - - case 32u: - /* Initializations of structure parameters for 32 point FFT */ - S->twidCoefModifier = 128u; - S->bitRevFactor = 128u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[127]; - - break; - - case 16u: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256u; - S->bitRevFactor = 256u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - - break; - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of Radix2_CFFT_CIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q31.c deleted file mode 100644 index 29aa9a74bd..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q31.c +++ /dev/null @@ -1,164 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix2_init_q31.c -* -* Description: Radix-2 Decimation in Frequency Fixed-point CFFT & CIFFT Initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup Radix2_CFFT_CIFFT - * @{ - */ - - -/** -* -* @brief Initialization function for the Q31 CFFT/CIFFT. -* @param[in,out] *S points to an instance of the Q31 CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix2_init_q31( - arm_cfft_radix2_instance_q31 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialise the FFT length */ - S->fftLen = fftLen; - - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (q31_t *) twiddleCoefQ31; - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of Instance structure depending on the FFT length */ - switch (S->fftLen) - { - /* Initializations of structure parameters for 4096 point FFT */ - case 4096u: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - break; - - /* Initializations of structure parameters for 2048 point FFT */ - case 2048u: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 2u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 2u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[1]; - break; - - /* Initializations of structure parameters for 1024 point FFT */ - case 1024u: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 4u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 4u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - break; - - /* Initializations of structure parameters for 512 point FFT */ - case 512u: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 8u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 8u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[7]; - break; - - case 256u: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16u; - S->bitRevFactor = 16u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - break; - - case 128u: - /* Initializations of structure parameters for 128 point FFT */ - S->twidCoefModifier = 32u; - S->bitRevFactor = 32u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[31]; - break; - - case 64u: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64u; - S->bitRevFactor = 64u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - break; - - case 32u: - /* Initializations of structure parameters for 32 point FFT */ - S->twidCoefModifier = 128u; - S->bitRevFactor = 128u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[127]; - break; - - case 16u: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256u; - S->bitRevFactor = 256u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - break; - - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of Radix2_CFFT_CIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q15.c deleted file mode 100644 index 00c7420cf4..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q15.c +++ /dev/null @@ -1,712 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix2_q15.c -* -* Description: Radix-2 Decimation in Frequency CFFT & CIFFT Fixed point processing function -* -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @defgroup Radix2_CFFT_CIFFT Radix-2 Complex FFT Functions - * - * \par - * Complex Fast Fourier Transform(CFFT) and Complex Inverse Fast Fourier Transform(CIFFT) is an efficient algorithm to compute Discrete Fourier Transform(DFT) and Inverse Discrete Fourier Transform(IDFT). - * Computational complexity of CFFT reduces drastically when compared to DFT. - */ - - -/** - * @addtogroup Radix2_CFFT_CIFFT - * @{ - */ - -/** - * @details - * @brief Processing function for the fixed-point CFFT/CIFFT. - * @param[in] *S points to an instance of the fixed-point CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. - * @return none. - */ - -void arm_cfft_radix2_q15( - const arm_cfft_radix2_instance_q15 * S, - q15_t * pSrc) -{ - - if(S->ifftFlag == 1u) - { - arm_radix2_butterfly_inverse_q15(pSrc, S->fftLen, - S->pTwiddle, S->twidCoefModifier); - } - else - { - arm_radix2_butterfly_q15(pSrc, S->fftLen, - S->pTwiddle, S->twidCoefModifier); - } - - arm_bitreversal_q15(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); -} - -/** - * @} end of Radix2_CFFT_CIFFT group - */ - -void arm_radix2_butterfly_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pCoef, - uint16_t twidCoefModifier) -{ -#ifndef ARM_MATH_CM0 - - int i, j, k, l; - int n1, n2, ia; - q15_t in; - q31_t T, S, R; - q31_t coeff, out1, out2; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2u)); - - ia = ia + twidCoefModifier; - - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - in = ((int16_t) (S & 0xFFFF)) >> 2; - S = ((S >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - -#else - - out1 = __SMUSDX(R, coeff) >> 16u; - out2 = __SMUAD(coeff, R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2u * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - coeff = _SIMD32_OFFSET(pCoef + (ia * 2u)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - i++; - l++; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - in = ((int16_t) (S & 0xFFFF)) >> 2; - S = ((S >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - -#else - - out1 = __SMUSDX(R, coeff) >> 16u; - out2 = __SMUAD(coeff, R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2u * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2u)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - -#else - - out1 = __SMUSDX(R, coeff) >> 16u; - out2 = __SMUAD(coeff, R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2u * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - i += n1; - - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - -#else - - out1 = __SMUSDX(R, coeff) >> 16u; - out2 = __SMUAD(coeff, R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2u * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - coeff = _SIMD32_OFFSET(pCoef + (ia * 2u)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __QADD16(T, S); - - _SIMD32_OFFSET(pSrc + (2u * l)) = R; - - i += n1; - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __QADD16(T, S); - - _SIMD32_OFFSET(pSrc + (2u * l)) = R; - - } // groups loop end - - -#else - - int i, j, k, l; - int n1, n2, ia; - q15_t xt, yt, cosVal, sinVal; - - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = (pSrc[2 * i] >> 2u) - (pSrc[2 * l] >> 2u); - pSrc[2 * i] = ((pSrc[2 * i] >> 2u) + (pSrc[2 * l] >> 2u)) >> 1u; - - yt = (pSrc[2 * i + 1] >> 2u) - (pSrc[2 * l + 1] >> 2u); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 2u) + (pSrc[2 * i + 1] >> 2u)) >> 1u; - - pSrc[2u * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) + - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2u * l + 1u] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) - - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) >> 1u; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) >> 1u; - - pSrc[2u * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) + - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2u * l + 1u] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) - - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2u * l] = xt; - - pSrc[2u * l + 1u] = yt; - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - -#endif // #ifndef ARM_MATH_CM0 - -} - - -void arm_radix2_butterfly_inverse_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pCoef, - uint16_t twidCoefModifier) -{ -#ifndef ARM_MATH_CM0 - - int i, j, k, l; - int n1, n2, ia; - q15_t in; - q31_t T, S, R; - q31_t coeff, out1, out2; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2u)); - - ia = ia + twidCoefModifier; - - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - in = ((int16_t) (S & 0xFFFF)) >> 2; - S = ((S >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); -#else - - out1 = __SMUADX(R, coeff) >> 16u; - out2 = __SMUSD(__QSUB(0, coeff), R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2u * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - coeff = _SIMD32_OFFSET(pCoef + (ia * 2u)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - i++; - l++; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - in = ((int16_t) (S & 0xFFFF)) >> 2; - S = ((S >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); -#else - - out1 = __SMUADX(R, coeff) >> 16u; - out2 = __SMUSD(__QSUB(0, coeff), R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2u * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2u)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); - -#else - - out1 = __SMUADX(R, coeff) >> 16u; - out2 = __SMUSD(__QSUB(0, coeff), R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2u * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - i += n1; - - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); -#else - - out1 = __SMUADX(R, coeff) >> 16u; - out2 = __SMUSD(__QSUB(0, coeff), R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2u * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2u)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __QADD16(T, S); - - _SIMD32_OFFSET(pSrc + (2u * l)) = R; - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - -#else - - - int i, j, k, l; - int n1, n2, ia; - q15_t xt, yt, cosVal, sinVal; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = (pSrc[2 * i] >> 2u) - (pSrc[2 * l] >> 2u); - pSrc[2 * i] = ((pSrc[2 * i] >> 2u) + (pSrc[2 * l] >> 2u)) >> 1u; - - yt = (pSrc[2 * i + 1] >> 2u) - (pSrc[2 * l + 1] >> 2u); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 2u) + (pSrc[2 * i + 1] >> 2u)) >> 1u; - - pSrc[2u * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) - - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2u * l + 1u] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) + - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) >> 1u; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) >> 1u; - - pSrc[2u * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) - - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2u * l + 1u] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) + - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2u * l] = xt; - - pSrc[2u * l + 1u] = yt; - - } // groups loop end - - -#endif // #ifndef ARM_MATH_CM0 - -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q31.c deleted file mode 100644 index dd4b9e6b24..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q31.c +++ /dev/null @@ -1,310 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix2_q31.c -* -* Description: Radix-2 Decimation in Frequency CFFT & CIFFT Fixed point processing function -* -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @defgroup Radix2_CFFT_CIFFT Radix-2 Complex FFT Functions - * - * \par - * Complex Fast Fourier Transform(CFFT) and Complex Inverse Fast Fourier Transform(CIFFT) is an efficient algorithm to compute Discrete Fourier Transform(DFT) and Inverse Discrete Fourier Transform(IDFT). - * Computational complexity of CFFT reduces drastically when compared to DFT. - */ - - -/** - * @addtogroup Radix2_CFFT_CIFFT - * @{ - */ - -/** - * @details - * @brief Processing function for the fixed-point CFFT/CIFFT. - * @param[in] *S points to an instance of the fixed-point CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. - * @return none. - */ - -void arm_cfft_radix2_q31( - const arm_cfft_radix2_instance_q31 * S, - q31_t * pSrc) -{ - - if(S->ifftFlag == 1u) - { - arm_radix2_butterfly_inverse_q31(pSrc, S->fftLen, - S->pTwiddle, S->twidCoefModifier); - } - else - { - arm_radix2_butterfly_q31(pSrc, S->fftLen, - S->pTwiddle, S->twidCoefModifier); - } - - arm_bitreversal_q31(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); -} - -/** - * @} end of Radix2_CFFT_CIFFT group - */ - -void arm_radix2_butterfly_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint16_t twidCoefModifier) -{ - - int i, j, k, l; - int n1, n2, ia; - q31_t xt, yt, cosVal, sinVal; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - l = i + n2; - xt = (pSrc[2 * i] >> 2u) - (pSrc[2 * l] >> 2u); - pSrc[2 * i] = ((pSrc[2 * i] >> 2u) + (pSrc[2 * l] >> 2u)) >> 1u; - - yt = (pSrc[2 * i + 1] >> 2u) - (pSrc[2 * l + 1] >> 2u); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 2u) + (pSrc[2 * i + 1] >> 2u)) >> 1u; - - pSrc[2u * l] = (((int32_t) (((q63_t) xt * cosVal) >> 32)) + - ((int32_t) (((q63_t) yt * sinVal) >> 32))); - - pSrc[2u * l + 1u] = (((int32_t) (((q63_t) yt * cosVal) >> 32)) - - ((int32_t) (((q63_t) xt * sinVal) >> 32))); - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) >> 1u; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) >> 1u; - - pSrc[2u * l] = (((int32_t) (((q63_t) xt * cosVal) >> 32)) + - ((int32_t) (((q63_t) yt * sinVal) >> 32))); - - pSrc[2u * l + 1u] = (((int32_t) (((q63_t) yt * cosVal) >> 32)) - - ((int32_t) (((q63_t) xt * sinVal) >> 32))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2u * l] = xt; - - pSrc[2u * l + 1u] = yt; - - i += n1; - l = i + n2; - - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2u * l] = xt; - - pSrc[2u * l + 1u] = yt; - - } // butterfly loop end - -} - - -void arm_radix2_butterfly_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint16_t twidCoefModifier) -{ - - int i, j, k, l; - int n1, n2, ia; - q31_t xt, yt, cosVal, sinVal; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - l = i + n2; - xt = (pSrc[2 * i] >> 2u) - (pSrc[2 * l] >> 2u); - pSrc[2 * i] = ((pSrc[2 * i] >> 2u) + (pSrc[2 * l] >> 2u)) >> 1u; - - yt = (pSrc[2 * i + 1] >> 2u) - (pSrc[2 * l + 1] >> 2u); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 2u) + (pSrc[2 * i + 1] >> 2u)) >> 1u; - - pSrc[2u * l] = (((int32_t) (((q63_t) xt * cosVal) >> 32)) - - ((int32_t) (((q63_t) yt * sinVal) >> 32))); - - pSrc[2u * l + 1u] = (((int32_t) (((q63_t) yt * cosVal) >> 32)) + - ((int32_t) (((q63_t) xt * sinVal) >> 32))); - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) >> 1u; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) >> 1u; - - pSrc[2u * l] = (((int32_t) (((q63_t) xt * cosVal) >> 32)) - - ((int32_t) (((q63_t) yt * sinVal) >> 32))); - - pSrc[2u * l + 1u] = (((int32_t) (((q63_t) yt * cosVal) >> 32)) + - ((int32_t) (((q63_t) xt * sinVal) >> 32))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1u; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2u * l] = xt; - - pSrc[2u * l + 1u] = yt; - - i += n1; - l = i + n2; - - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2u * l] = xt; - - pSrc[2u * l + 1u] = yt; - - } // butterfly loop end - -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_f32.c deleted file mode 100644 index d51e9830bc..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_f32.c +++ /dev/null @@ -1,1236 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix4_f32.c -* -* Description: Radix-4 Decimation in Frequency CFFT & CIFFT Floating point processing function -* -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @defgroup Radix4_CFFT_CIFFT Radix-4 Complex FFT Functions - * - * \par - * Complex Fast Fourier Transform(CFFT) and Complex Inverse Fast Fourier Transform(CIFFT) is an efficient algorithm to compute Discrete Fourier Transform(DFT) and Inverse Discrete Fourier Transform(IDFT). - * Computational complexity of CFFT reduces drastically when compared to DFT. - * \par - * This set of functions implements CFFT/CIFFT - * for Q15, Q31, and floating-point data types. The functions operates on in-place buffer which uses same buffer for input and output. - * Complex input is stored in input buffer in an interleaved fashion. - * - * \par - * The functions operate on blocks of input and output data and each call to the function processes - * 2*fftLen samples through the transform. pSrc points to In-place arrays containing 2*fftLen values. - * \par - * The pSrc points to the array of in-place buffer of size 2*fftLen and inputs and outputs are stored in an interleaved fashion as shown below. - *
 {real[0], imag[0], real[1], imag[1],..} 
- * - * \par Lengths supported by the transform: - * \par - * Internally, the function utilize a radix-4 decimation in frequency(DIF) algorithm - * and the size of the FFT supported are of the lengths [16, 64, 256, 1024]. - * - * - * \par Algorithm: - * - * Complex Fast Fourier Transform: - * \par - * Input real and imaginary data: - *
    
- * x(n) = xa + j * ya    
- * x(n+N/4 ) = xb + j * yb    
- * x(n+N/2 ) = xc + j * yc    
- * x(n+3N 4) = xd + j * yd    
- * 
- * where N is length of FFT - * \par - * Output real and imaginary data: - *
    
- * X(4r) = xa'+ j * ya'    
- * X(4r+1) = xb'+ j * yb'    
- * X(4r+2) = xc'+ j * yc'    
- * X(4r+3) = xd'+ j * yd'    
- * 
- * \par - * Twiddle factors for radix-4 FFT: - *
    
- * Wn = co1 + j * (- si1)    
- * W2n = co2 + j * (- si2)    
- * W3n = co3 + j * (- si3)    
- * 
- * - * \par - * \image html CFFT.gif "Radix-4 Decimation-in Frequency Complex Fast Fourier Transform" - * - * \par - * Output from Radix-4 CFFT Results in Digit reversal order. Interchange middle two branches of every butterfly results in Bit reversed output. - * \par - * Butterfly CFFT equations: - *
    
- * xa' = xa + xb + xc + xd    
- * ya' = ya + yb + yc + yd    
- * xc' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1)    
- * yc' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1)    
- * xb' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2)    
- * yb' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2)    
- * xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3)    
- * yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3)    
- * 
- * - * - * Complex Inverse Fast Fourier Transform: - * \par - * CIFFT uses same twiddle factor table as CFFT with modifications in the design equation as shown below. - * - * \par - * Modified Butterfly CIFFT equations: - *
    
- * xa' = xa + xb + xc + xd    
- * ya' = ya + yb + yc + yd    
- * xc' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1)    
- * yc' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1)    
- * xb' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2)    
- * yb' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2)    
- * xd' = (xa+yb-xc-yd)* co3 - (ya-xb-yc+xd)* (si3)    
- * yd' = (ya-xb-yc+xd)* co3 + (xa+yb-xc-yd)* (si3)    
- * 
- * - * \par Instance Structure - * A separate instance structure must be defined for each Instance but the twiddle factors and bit reversal tables can be reused. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Initializes twiddle factor table and bit reversal table pointers - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Manually initialize the instance structure as follows: - *
    
- *arm_cfft_radix4_instance_f32 S = {fftLen, ifftFlag, bitReverseFlag, pTwiddle, pBitRevTable, twidCoefModifier, bitRevFactor, onebyfftLen};    
- *arm_cfft_radix4_instance_q31 S = {fftLen, ifftFlag, bitReverseFlag, pTwiddle, pBitRevTable, twidCoefModifier, bitRevFactor};    
- *arm_cfft_radix4_instance_q15 S = {fftLen, ifftFlag, bitReverseFlag, pTwiddle, pBitRevTable, twidCoefModifier, bitRevFactor};    
- * 
- * \par - * where fftLen length of CFFT/CIFFT; ifftFlag Flag for selection of CFFT or CIFFT(Set ifftFlag to calculate CIFFT otherwise calculates CFFT); - * bitReverseFlag Flag for selection of output order(Set bitReverseFlag to output in normal order otherwise output in bit reversed order); - * pTwiddlepoints to array of twiddle coefficients; pBitRevTable points to the array of bit reversal table. - * twidCoefModifier modifier for twiddle factor table which supports all FFT lengths with same table; - * pBitRevTable modifier for bit reversal table which supports all FFT lengths with same table. - * onebyfftLen value of 1/fftLen to calculate CIFFT; - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the CFFT/CIFFT function. - * Refer to the function specific documentation below for usage guidelines. - */ - - -/** - * @addtogroup Radix4_CFFT_CIFFT - * @{ - */ - -/** - * @details - * @brief Processing function for the floating-point Radix-4 CFFT/CIFFT. - * @param[in] *S points to an instance of the floating-point Radix-4 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. - * @return none. - */ - -void arm_cfft_radix4_f32( - const arm_cfft_radix4_instance_f32 * S, - float32_t * pSrc) -{ - - if(S->ifftFlag == 1u) - { - /* Complex IFFT radix-4 */ - arm_radix4_butterfly_inverse_f32(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier, S->onebyfftLen); - } - else - { - /* Complex FFT radix-4 */ - arm_radix4_butterfly_f32(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier); - } - - if(S->bitReverseFlag == 1u) - { - /* Bit Reversal */ - arm_bitreversal_f32(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); - } - -} - - -/** - * @} end of Radix4_CFFT_CIFFT group - */ - - -/* ---------------------------------------------------------------------- -** Internal helper function used by the FFTs -** ------------------------------------------------------------------- */ - -/* - * @brief Core function for the floating-point CFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of floating-point data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to the twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_radix4_butterfly_f32( - float32_t * pSrc, - uint16_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier) -{ - - float32_t co1, co2, co3, si1, si2, si3; - uint32_t ia1, ia2, ia3; - uint32_t i0, i1, i2, i3; - uint32_t n1, n2, j, k; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t xaIn, yaIn, xbIn, ybIn, xcIn, ycIn, xdIn, ydIn; - float32_t Xaplusc, Xbplusd, Yaplusc, Ybplusd, Xaminusc, Xbminusd, Yaminusc, - Ybminusd; - float32_t Xb12C_out, Yb12C_out, Xc12C_out, Yc12C_out, Xd12C_out, Yd12C_out; - float32_t Xb12_out, Yb12_out, Xc12_out, Yc12_out, Xd12_out, Yd12_out; - float32_t *ptr1; - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2u; - i0 = 0u; - ia1 = 0u; - - j = n2; - - /* Calculation of first stage */ - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - xaIn = pSrc[(2u * i0)]; - yaIn = pSrc[(2u * i0) + 1u]; - - xcIn = pSrc[(2u * i2)]; - ycIn = pSrc[(2u * i2) + 1u]; - - xbIn = pSrc[(2u * i1)]; - ybIn = pSrc[(2u * i1) + 1u]; - - xdIn = pSrc[(2u * i3)]; - ydIn = pSrc[(2u * i3) + 1u]; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - /* xb + xd */ - Xbplusd = xbIn + xdIn; - /* ya + yc */ - Yaplusc = yaIn + ycIn; - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - /* xb - xd */ - Xbminusd = xbIn - xdIn; - /* ya - yc */ - Yaminusc = yaIn - ycIn; - /* yb + yd */ - Ybminusd = ybIn - ydIn; - - /* xa' = xa + xb + xc + xd */ - pSrc[(2u * i0)] = Xaplusc + Xbplusd; - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = Yaplusc + Ybplusd; - - /* (xa - xc) + (yb - yd) */ - Xb12C_out = (Xaminusc + Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yb12C_out = (Yaminusc - Xbminusd); - /* (xa + xc) - (xb + xd) */ - Xc12C_out = (Xaplusc - Xbplusd); - /* (ya + yc) - (yb + yd) */ - Yc12C_out = (Yaplusc - Ybplusd); - /* (xa - xc) - (yb - yd) */ - Xd12C_out = (Xaminusc - Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yd12C_out = (Xbminusd + Yaminusc); - - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - - /* index calculation for the coefficients */ - ia3 = ia2 + ia1; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - - Xb12_out = Xb12C_out * co1; - Yb12_out = Yb12C_out * co1; - Xc12_out = Xc12C_out * co2; - Yc12_out = Yc12C_out * co2; - Xd12_out = Xd12C_out * co3; - Yd12_out = Yd12C_out * co3; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - Xb12_out += Yb12C_out * si1; - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - Yb12_out -= Xb12C_out * si1; - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - Xc12_out += Yc12C_out * si2; - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - Yc12_out -= Xc12C_out * si2; - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - Xd12_out += Yd12C_out * si3; - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - Yd12_out -= Xd12C_out * si3; - - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = Xc12_out; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = Yc12_out; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = Xb12_out; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = Yb12_out; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = Xd12_out; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = Yd12_out; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1u; - - } - while(--j); - - twidCoefModifier <<= 2u; - - /* Calculation of second stage to excluding last stage */ - for (k = fftLen / 4; k > 4u; k >>= 2u) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2u; - ia1 = 0u; - - /* Calculation of first stage */ - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - xaIn = pSrc[(2u * i0)]; - yaIn = pSrc[(2u * i0) + 1u]; - - xbIn = pSrc[(2u * i1)]; - ybIn = pSrc[(2u * i1) + 1u]; - - xcIn = pSrc[(2u * i2)]; - ycIn = pSrc[(2u * i2) + 1u]; - - xdIn = pSrc[(2u * i3)]; - ydIn = pSrc[(2u * i3) + 1u]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - /* (xb - xd) */ - Xbminusd = xbIn - xdIn; - /* ya - yc */ - Yaminusc = yaIn - ycIn; - /* (yb - yd) */ - Ybminusd = ybIn - ydIn; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - /* xb + xd */ - Xbplusd = xbIn + xdIn; - /* ya + yc */ - Yaplusc = yaIn + ycIn; - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* (xa - xc) + (yb - yd) */ - Xb12C_out = (Xaminusc + Ybminusd); - /* (ya - yc) - (xb - xd) */ - Yb12C_out = (Yaminusc - Xbminusd); - /* xa + xc -(xb + xd) */ - Xc12C_out = (Xaplusc - Xbplusd); - /* (ya + yc) - (yb + yd) */ - Yc12C_out = (Yaplusc - Ybplusd); - /* (xa - xc) - (yb - yd) */ - Xd12C_out = (Xaminusc - Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yd12C_out = (Xbminusd + Yaminusc); - - pSrc[(2u * i0)] = Xaplusc + Xbplusd; - pSrc[(2u * i0) + 1u] = Yaplusc + Ybplusd; - - Xb12_out = Xb12C_out * co1; - Yb12_out = Yb12C_out * co1; - Xc12_out = Xc12C_out * co2; - Yc12_out = Yc12C_out * co2; - Xd12_out = Xd12C_out * co3; - Yd12_out = Yd12C_out * co3; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - Xb12_out += Yb12C_out * si1; - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - Yb12_out -= Xb12C_out * si1; - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - Xc12_out += Yc12C_out * si2; - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - Yc12_out -= Xc12C_out * si2; - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - Xd12_out += Yd12C_out * si3; - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - Yd12_out -= Xd12C_out * si3; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = Xc12_out; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = Yc12_out; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = Xb12_out; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = Yb12_out; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = Xd12_out; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = Yd12_out; - - } - } - twidCoefModifier <<= 2u; - } - - j = fftLen >> 2; - ptr1 = &pSrc[0]; - - /* Calculations of last stage */ - do - { - - xaIn = ptr1[0]; - xcIn = ptr1[4]; - yaIn = ptr1[1]; - ycIn = ptr1[5]; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - - xbIn = ptr1[2]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - - xdIn = ptr1[6]; - - /* ya + yc */ - Yaplusc = yaIn + ycIn; - - ybIn = ptr1[3]; - - /* ya - yc */ - Yaminusc = yaIn - ycIn; - - ydIn = ptr1[7]; - - /* xb + xd */ - Xbplusd = xbIn + xdIn; - - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* xa' = xa + xb + xc + xd */ - ptr1[0] = (Xaplusc + Xbplusd); - - /* (xb-xd) */ - Xbminusd = xbIn - xdIn; - - /* ya' = ya + yb + yc + yd */ - ptr1[1] = (Yaplusc + Ybplusd); - - /* (yb-yd) */ - Ybminusd = ybIn - ydIn; - - /* xc' = (xa-xb+xc-xd) */ - ptr1[2] = (Xaplusc - Xbplusd); - /* yc' = (ya-yb+yc-yd) */ - ptr1[3] = (Yaplusc - Ybplusd); - /* xb' = (xa+yb-xc-yd) */ - ptr1[4] = (Xaminusc + Ybminusd); - /* yb' = (ya-xb-yc+xd) */ - ptr1[5] = (Yaminusc - Xbminusd); - /* xd' = (xa-yb-xc+yd)) */ - ptr1[6] = (Xaminusc - Ybminusd); - /* yd' = (ya+xb-yc-xd) */ - ptr1[7] = (Xbminusd + Yaminusc); - - /* increment pointer by 8 */ - ptr1 = ptr1 + 8u; - - } while(--j); - -#else - - float32_t t1, t2, r1, r2, s1, s2; - - /* Run the below code for Cortex-M0 */ - - /* Initializations for the fft calculation */ - n2 = fftLen; - n1 = n2; - for (k = fftLen; k > 1u; k >>= 2u) - { - /* Initializations for the fft calculation */ - n1 = n2; - n2 >>= 2u; - ia1 = 0u; - - /* FFT Calculation */ - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* xa + xc */ - r1 = pSrc[(2u * i0)] + pSrc[(2u * i2)]; - - /* xa - xc */ - r2 = pSrc[(2u * i0)] - pSrc[(2u * i2)]; - - /* ya + yc */ - s1 = pSrc[(2u * i0) + 1u] + pSrc[(2u * i2) + 1u]; - - /* ya - yc */ - s2 = pSrc[(2u * i0) + 1u] - pSrc[(2u * i2) + 1u]; - - /* xb + xd */ - t1 = pSrc[2u * i1] + pSrc[2u * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2u * i0] = r1 + t1; - - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSrc[(2u * i1) + 1u] + pSrc[(2u * i3) + 1u]; - - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = s1 + t2; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSrc[(2u * i1) + 1u] - pSrc[(2u * i3) + 1u]; - - /* (xb - xd) */ - t2 = pSrc[2u * i1] - pSrc[2u * i3]; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = (r1 * co2) + (s1 * si2); - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = (s1 * co2) - (r1 * si2); - - /* (xa - xc) + (yb - yd) */ - r1 = r2 + t1; - - /* (xa - xc) - (yb - yd) */ - r2 = r2 - t1; - - /* (ya - yc) - (xb - xd) */ - s1 = s2 - t2; - - /* (ya - yc) + (xb - xd) */ - s2 = s2 + t2; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = (r1 * co1) + (s1 * si1); - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = (s1 * co1) - (r1 * si1); - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = (r2 * co3) + (s2 * si3); - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = (s2 * co3) - (r2 * si3); - } - } - twidCoefModifier <<= 2u; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/* - * @brief Core function for the floating-point CIFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of floating-point data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @param[in] onebyfftLen value of 1/fftLen. - * @return none. - */ - -void arm_radix4_butterfly_inverse_f32( - float32_t * pSrc, - uint16_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier, - float32_t onebyfftLen) -{ - float32_t co1, co2, co3, si1, si2, si3; - uint32_t ia1, ia2, ia3; - uint32_t i0, i1, i2, i3; - uint32_t n1, n2, j, k; - -#ifndef ARM_MATH_CM0 - - float32_t xaIn, yaIn, xbIn, ybIn, xcIn, ycIn, xdIn, ydIn; - float32_t Xaplusc, Xbplusd, Yaplusc, Ybplusd, Xaminusc, Xbminusd, Yaminusc, - Ybminusd; - float32_t Xb12C_out, Yb12C_out, Xc12C_out, Yc12C_out, Xd12C_out, Yd12C_out; - float32_t Xb12_out, Yb12_out, Xc12_out, Yc12_out, Xd12_out, Yd12_out; - float32_t *ptr1; - - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2u; - i0 = 0u; - ia1 = 0u; - - j = n2; - - /* Calculation of first stage */ - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - xaIn = pSrc[(2u * i0)]; - yaIn = pSrc[(2u * i0) + 1u]; - - xcIn = pSrc[(2u * i2)]; - ycIn = pSrc[(2u * i2) + 1u]; - - xbIn = pSrc[(2u * i1)]; - ybIn = pSrc[(2u * i1) + 1u]; - - xdIn = pSrc[(2u * i3)]; - ydIn = pSrc[(2u * i3) + 1u]; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - /* xb + xd */ - Xbplusd = xbIn + xdIn; - /* ya + yc */ - Yaplusc = yaIn + ycIn; - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - /* xb - xd */ - Xbminusd = xbIn - xdIn; - /* ya - yc */ - Yaminusc = yaIn - ycIn; - /* yb - yd */ - Ybminusd = ybIn - ydIn; - - /* xa' = xa + xb + xc + xd */ - pSrc[(2u * i0)] = Xaplusc + Xbplusd; - - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = Yaplusc + Ybplusd; - - /* (xa - xc) - (yb - yd) */ - Xb12C_out = (Xaminusc - Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yb12C_out = (Yaminusc + Xbminusd); - /* (xa + xc) - (xb + xd) */ - Xc12C_out = (Xaplusc - Xbplusd); - /* (ya + yc) - (yb + yd) */ - Yc12C_out = (Yaplusc - Ybplusd); - /* (xa - xc) + (yb - yd) */ - Xd12C_out = (Xaminusc + Ybminusd); - /* (ya - yc) - (xb - xd) */ - Yd12C_out = (Yaminusc - Xbminusd); - - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - - /* index calculation for the coefficients */ - ia3 = ia2 + ia1; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - - Xb12_out = Xb12C_out * co1; - Yb12_out = Yb12C_out * co1; - Xc12_out = Xc12C_out * co2; - Yc12_out = Yc12C_out * co2; - Xd12_out = Xd12C_out * co3; - Yd12_out = Yd12C_out * co3; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - Xb12_out -= Yb12C_out * si1; - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - Yb12_out += Xb12C_out * si1; - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - Xc12_out -= Yc12C_out * si2; - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - Yc12_out += Xc12C_out * si2; - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - Xd12_out -= Yd12C_out * si3; - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - Yd12_out += Xd12C_out * si3; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = Xc12_out; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = Yc12_out; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = Xb12_out; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = Yb12_out; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = Xd12_out; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = Yd12_out; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1u; - - } while(--j); - - twidCoefModifier <<= 2u; - - /* Calculation of second stage to excluding last stage */ - for (k = fftLen / 4; k > 4u; k >>= 2u) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2u; - ia1 = 0u; - - /* Calculation of first stage */ - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - xaIn = pSrc[(2u * i0)]; - yaIn = pSrc[(2u * i0) + 1u]; - - xbIn = pSrc[(2u * i1)]; - ybIn = pSrc[(2u * i1) + 1u]; - - xcIn = pSrc[(2u * i2)]; - ycIn = pSrc[(2u * i2) + 1u]; - - xdIn = pSrc[(2u * i3)]; - ydIn = pSrc[(2u * i3) + 1u]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - /* (xb - xd) */ - Xbminusd = xbIn - xdIn; - /* ya - yc */ - Yaminusc = yaIn - ycIn; - /* (yb - yd) */ - Ybminusd = ybIn - ydIn; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - /* xb + xd */ - Xbplusd = xbIn + xdIn; - /* ya + yc */ - Yaplusc = yaIn + ycIn; - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* (xa - xc) - (yb - yd) */ - Xb12C_out = (Xaminusc - Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yb12C_out = (Yaminusc + Xbminusd); - /* xa + xc -(xb + xd) */ - Xc12C_out = (Xaplusc - Xbplusd); - /* (ya + yc) - (yb + yd) */ - Yc12C_out = (Yaplusc - Ybplusd); - /* (xa - xc) + (yb - yd) */ - Xd12C_out = (Xaminusc + Ybminusd); - /* (ya - yc) - (xb - xd) */ - Yd12C_out = (Yaminusc - Xbminusd); - - pSrc[(2u * i0)] = Xaplusc + Xbplusd; - pSrc[(2u * i0) + 1u] = Yaplusc + Ybplusd; - - Xb12_out = Xb12C_out * co1; - Yb12_out = Yb12C_out * co1; - Xc12_out = Xc12C_out * co2; - Yc12_out = Yc12C_out * co2; - Xd12_out = Xd12C_out * co3; - Yd12_out = Yd12C_out * co3; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - Xb12_out -= Yb12C_out * si1; - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - Yb12_out += Xb12C_out * si1; - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - Xc12_out -= Yc12C_out * si2; - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - Yc12_out += Xc12C_out * si2; - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - Xd12_out -= Yd12C_out * si3; - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - Yd12_out += Xd12C_out * si3; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = Xc12_out; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = Yc12_out; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = Xb12_out; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = Yb12_out; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = Xd12_out; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = Yd12_out; - - } - } - twidCoefModifier <<= 2u; - } - /* Initializations of last stage */ - - j = fftLen >> 2; - ptr1 = &pSrc[0]; - - /* Calculations of last stage */ - do - { - - xaIn = ptr1[0]; - xcIn = ptr1[4]; - yaIn = ptr1[1]; - ycIn = ptr1[5]; - - /* Butterfly implementation */ - /* xa + xc */ - Xaplusc = xaIn + xcIn; - - xbIn = ptr1[2]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - - xdIn = ptr1[6]; - - /* ya + yc */ - Yaplusc = yaIn + ycIn; - - ybIn = ptr1[3]; - - /* ya - yc */ - Yaminusc = yaIn - ycIn; - - ydIn = ptr1[7]; - - /* xc + xd */ - Xbplusd = xbIn + xdIn; - - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* xa' = xa + xb + xc + xd */ - ptr1[0] = (Xaplusc + Xbplusd) * onebyfftLen; - - /* (xb-xd) */ - Xbminusd = xbIn - xdIn; - - /* ya' = ya + yb + yc + yd */ - ptr1[1] = (Yaplusc + Ybplusd) * onebyfftLen; - - /* (yb-yd) */ - Ybminusd = ybIn - ydIn; - - /* xc' = (xa-xb+xc-xd) * onebyfftLen */ - ptr1[2] = (Xaplusc - Xbplusd) * onebyfftLen; - - /* yc' = (ya-yb+yc-yd) * onebyfftLen */ - ptr1[3] = (Yaplusc - Ybplusd) * onebyfftLen; - - /* xb' = (xa-yb-xc+yd) * onebyfftLen */ - ptr1[4] = (Xaminusc - Ybminusd) * onebyfftLen; - - /* yb' = (ya+xb-yc-xd) * onebyfftLen */ - ptr1[5] = (Yaminusc + Xbminusd) * onebyfftLen; - - /* xd' = (xa-yb-xc+yd) * onebyfftLen */ - ptr1[6] = (Xaminusc + Ybminusd) * onebyfftLen; - - /* yd' = (ya-xb-yc+xd) * onebyfftLen */ - ptr1[7] = (Yaminusc - Xbminusd) * onebyfftLen; - - /* increment source pointer by 8 for next calculations */ - ptr1 = ptr1 + 8u; - - } while(--j); - -#else - - float32_t t1, t2, r1, r2, s1, s2; - - /* Run the below code for Cortex-M0 */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* Calculation of first stage */ - for (k = fftLen; k > 4u; k >>= 2u) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2u; - ia1 = 0u; - - /* Calculation of first stage */ - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* xa + xc */ - r1 = pSrc[(2u * i0)] + pSrc[(2u * i2)]; - - /* xa - xc */ - r2 = pSrc[(2u * i0)] - pSrc[(2u * i2)]; - - /* ya + yc */ - s1 = pSrc[(2u * i0) + 1u] + pSrc[(2u * i2) + 1u]; - - /* ya - yc */ - s2 = pSrc[(2u * i0) + 1u] - pSrc[(2u * i2) + 1u]; - - /* xb + xd */ - t1 = pSrc[2u * i1] + pSrc[2u * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2u * i0] = r1 + t1; - - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSrc[(2u * i1) + 1u] + pSrc[(2u * i3) + 1u]; - - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = s1 + t2; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSrc[(2u * i1) + 1u] - pSrc[(2u * i3) + 1u]; - - /* (xb - xd) */ - t2 = pSrc[2u * i1] - pSrc[2u * i3]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = (r1 * co2) - (s1 * si2); - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = (s1 * co2) + (r1 * si2); - - /* (xa - xc) - (yb - yd) */ - r1 = r2 - t1; - - /* (xa - xc) + (yb - yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb - xd) */ - s1 = s2 + t2; - - /* (ya - yc) - (xb - xd) */ - s2 = s2 - t2; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = (r1 * co1) - (s1 * si1); - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = (s1 * co1) + (r1 * si1); - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = (r2 * co3) - (s2 * si3); - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = (s2 * co3) + (r2 * si3); - } - } - twidCoefModifier <<= 2u; - } - /* Initializations of last stage */ - n1 = n2; - n2 >>= 2u; - - /* Calculations of last stage */ - for (i0 = 0u; i0 <= (fftLen - n1); i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - /* xa + xc */ - r1 = pSrc[2u * i0] + pSrc[2u * i2]; - - /* xa - xc */ - r2 = pSrc[2u * i0] - pSrc[2u * i2]; - - /* ya + yc */ - s1 = pSrc[(2u * i0) + 1u] + pSrc[(2u * i2) + 1u]; - - /* ya - yc */ - s2 = pSrc[(2u * i0) + 1u] - pSrc[(2u * i2) + 1u]; - - /* xc + xd */ - t1 = pSrc[2u * i1] + pSrc[2u * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2u * i0] = (r1 + t1) * onebyfftLen; - - /* (xa + xb) - (xc + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSrc[(2u * i1) + 1u] + pSrc[(2u * i3) + 1u]; - - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = (s1 + t2) * onebyfftLen; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb-yd) */ - t1 = pSrc[(2u * i1) + 1u] - pSrc[(2u * i3) + 1u]; - - /* (xb-xd) */ - t2 = pSrc[2u * i1] - pSrc[2u * i3]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = r1 * onebyfftLen; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = s1 * onebyfftLen; - - - /* (xa - xc) - (yb-yd) */ - r1 = r2 - t1; - - /* (xa - xc) + (yb-yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb-xd) */ - s1 = s2 + t2; - - /* (ya - yc) - (xb-xd) */ - s2 = s2 - t2; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = r1 * onebyfftLen; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = s1 * onebyfftLen; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = r2 * onebyfftLen; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = s2 * onebyfftLen; - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_f32.c deleted file mode 100644 index f354e1dde1..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_f32.c +++ /dev/null @@ -1,161 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix4_init_f32.c -* -* Description: Radix-4 Decimation in Frequency Floating-point CFFT & CIFFT Initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup Radix4_CFFT_CIFFT - * @{ - */ - -/** -* @brief Initialization function for the floating-point CFFT/CIFFT. -* @param[in,out] *S points to an instance of the floating-point CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix4_init_f32( - arm_cfft_radix4_instance_f32 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialise the FFT length */ - S->fftLen = fftLen; - - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (float32_t *) twiddleCoef; - - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLen) - { - - case 4096u: - /* Initializations of structure parameters for 4096 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.000244140625; - break; - - case 1024u: - /* Initializations of structure parameters for 1024 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 4u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 4u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.0009765625f; - break; - - - case 256u: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16u; - S->bitRevFactor = 16u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - S->onebyfftLen = 0.00390625f; - break; - - case 64u: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64u; - S->bitRevFactor = 64u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - S->onebyfftLen = 0.015625f; - break; - - case 16u: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256u; - S->bitRevFactor = 256u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - S->onebyfftLen = 0.0625f; - break; - - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of Radix4_CFFT_CIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q15.c deleted file mode 100644 index 5ace3483d8..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q15.c +++ /dev/null @@ -1,149 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix4_init_q15.c -* -* Description: Radix-4 Decimation in Frequency Q15 FFT & IFFT initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - - -/** - * @addtogroup Radix4_CFFT_CIFFT - * @{ - */ - - -/** -* @brief Initialization function for the Q15 CFFT/CIFFT. -* @param[in,out] *S points to an instance of the Q15 CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix4_init_q15( - arm_cfft_radix4_instance_q15 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - /* Initialise the FFT length */ - S->fftLen = fftLen; - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (q15_t *) twiddleCoefQ15; - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLen) - { - case 4096u: - /* Initializations of structure parameters for 4096 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - - break; - - case 1024u: - /* Initializations of structure parameters for 1024 point FFT */ - S->twidCoefModifier = 4u; - S->bitRevFactor = 4u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - - break; - - case 256u: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16u; - S->bitRevFactor = 16u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - - break; - - case 64u: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64u; - S->bitRevFactor = 64u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - - break; - - case 16u: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256u; - S->bitRevFactor = 256u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - - break; - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of Radix4_CFFT_CIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q31.c deleted file mode 100644 index 6614994f74..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q31.c +++ /dev/null @@ -1,145 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix4_init_q31.c -* -* Description: Radix-4 Decimation in Frequency Q31 FFT & IFFT initialization function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup Radix4_CFFT_CIFFT - * @{ - */ - -/** -* -* @brief Initialization function for the Q31 CFFT/CIFFT. -* @param[in,out] *S points to an instance of the Q31 CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix4_init_q31( - arm_cfft_radix4_instance_q31 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - /* Initialise the FFT length */ - S->fftLen = fftLen; - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (q31_t *) twiddleCoefQ31; - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of Instance structure depending on the FFT length */ - switch (S->fftLen) - { - /* Initializations of structure parameters for 4096 point FFT */ - case 4096u: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - break; - - /* Initializations of structure parameters for 1024 point FFT */ - case 1024u: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 4u; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 4u; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - break; - - case 256u: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16u; - S->bitRevFactor = 16u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - break; - - case 64u: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64u; - S->bitRevFactor = 64u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - break; - - case 16u: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256u; - S->bitRevFactor = 256u; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - break; - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of Radix4_CFFT_CIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q15.c deleted file mode 100644 index 01d476e6c4..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q15.c +++ /dev/null @@ -1,1896 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix4_q15.c -* -* Description: This file has function definition of Radix-4 FFT & IFFT function and -* In-place bit reversal using bit reversal table -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup Radix4_CFFT_CIFFT - * @{ - */ - - -/** - * @details - * @brief Processing function for the Q15 CFFT/CIFFT. - * @param[in] *S points to an instance of the Q15 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place. - * @return none. - * - * \par Input and output formats: - * \par - * Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. - * Hence the output format is different for different FFT sizes. - * The input and output formats for different FFT sizes and number of bits to upscale are mentioned in the tables below for CFFT and CIFFT: - * \par - * \image html CFFTQ15.gif "Input and Output Formats for Q15 CFFT" - * \image html CIFFTQ15.gif "Input and Output Formats for Q15 CIFFT" - */ - -void arm_cfft_radix4_q15( - const arm_cfft_radix4_instance_q15 * S, - q15_t * pSrc) -{ - if(S->ifftFlag == 1u) - { - /* Complex IFFT radix-4 */ - arm_radix4_butterfly_inverse_q15(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier); - } - else - { - /* Complex FFT radix-4 */ - arm_radix4_butterfly_q15(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier); - } - - if(S->bitReverseFlag == 1u) - { - /* Bit Reversal */ - arm_bitreversal_q15(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); - } - -} - -/** - * @} end of Radix4_CFFT_CIFFT group - */ - -/* -* Radix-4 FFT algorithm used is : -* -* Input real and imaginary data: -* x(n) = xa + j * ya -* x(n+N/4 ) = xb + j * yb -* x(n+N/2 ) = xc + j * yc -* x(n+3N 4) = xd + j * yd -* -* -* Output real and imaginary data: -* x(4r) = xa'+ j * ya' -* x(4r+1) = xb'+ j * yb' -* x(4r+2) = xc'+ j * yc' -* x(4r+3) = xd'+ j * yd' -* -* -* Twiddle factors for radix-4 FFT: -* Wn = co1 + j * (- si1) -* W2n = co2 + j * (- si2) -* W3n = co3 + j * (- si3) - -* The real and imaginary output values for the radix-4 butterfly are -* xa' = xa + xb + xc + xd -* ya' = ya + yb + yc + yd -* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) -* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) -* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) -* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) -* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) -* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) -* -*/ - -/** - * @brief Core function for the Q15 CFFT butterfly process. - * @param[in, out] *pSrc16 points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef16 points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_radix4_butterfly_q15( - q15_t * pSrc16, - uint32_t fftLen, - q15_t * pCoef16, - uint32_t twidCoefModifier) -{ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t R, S, T, U; - q31_t C1, C2, C3, out1, out2; - uint32_t n1, n2, ic, i0, i1, i2, i3, j, k; - q15_t in; - - q15_t *ptr1; - - - - q31_t xaya, xbyb, xcyc, xdyd; - - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2u; - - /* Index for twiddle coefficient */ - ic = 0u; - - /* Index for input read and output write */ - i0 = 0u; - j = n2; - - /* Input is in 1.15(q15) format */ - - /* start of first stage process */ - do - { - /* Butterfly implementation */ - - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i0)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* Read yc (real), xc(imag) input */ - S = _SIMD32_OFFSET(pSrc16 + (2u * i2)); - in = ((int16_t) (S & 0xFFFF)) >> 2; - S = ((S >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* R = packed((ya + yc), (xa + xc) ) */ - R = __QADD16(T, S); - - /* S = packed((ya - yc), (xa - xc) ) */ - S = __QSUB16(T, S); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i1)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSrc16 + (2u * i3)); - in = ((int16_t) (U & 0xFFFF)) >> 2; - U = ((U >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* T = packed((yb + yd), (xb + xd) ) */ - T = __QADD16(T, U); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - _SIMD32_OFFSET(pSrc16 + (2u * i0)) = __SHADD16(R, T); - - /* R = packed((ya + yc) - (yb + yd), (xa + xc)- (xb + xd)) */ - R = __QSUB16(R, T); - - /* co2 & si2 are read from SIMD Coefficient pointer */ - C2 = _SIMD32_OFFSET(pCoef16 + (4u * ic)); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out1 = __SMUAD(C2, R) >> 16u; - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = __SMUSDX(C2, R); - -#else - - /* xc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out1 = __SMUSDX(R, C2) >> 16u; - /* yc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out2 = __SMUAD(C2, R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Reading i0+fftLen/4 */ - /* T = packed(yb, xb) */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i1)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* writing output(xc', yc') in little endian format */ - _SIMD32_OFFSET(pSrc16 + (2u * i1)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - /* Butterfly calculations */ - /* U = packed(yd, xd) */ - U = _SIMD32_OFFSET(pSrc16 + (2u * i3)); - in = ((int16_t) (U & 0xFFFF)) >> 2; - U = ((U >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* T = packed(yb-yd, xb-xd) */ - T = __QSUB16(T, U); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __QASX(S, T); - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __QSAX(S, T); - -#else - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __QSAX(S, T); - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __QASX(S, T); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* co1 & si1 are read from SIMD Coefficient pointer */ - C1 = _SIMD32_OFFSET(pCoef16 + (2u * ic)); - /* Butterfly process for the i0+fftLen/2 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out1 = __SMUAD(C1, S) >> 16u; - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out2 = __SMUSDX(C1, S); - -#else - - /* xb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out1 = __SMUSDX(S, C1) >> 16u; - /* yb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out2 = __SMUAD(C1, S); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* writing output(xb', yb') in little endian format */ - _SIMD32_OFFSET(pSrc16 + (2u * i2)) = - ((out2) & 0xFFFF0000) | ((out1) & 0x0000FFFF); - - - /* co3 & si3 are read from SIMD Coefficient pointer */ - C3 = _SIMD32_OFFSET(pCoef16 + (6u * ic)); - /* Butterfly process for the i0+3fftLen/4 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - out1 = __SMUAD(C3, R) >> 16u; - /* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - out2 = __SMUSDX(C3, R); - -#else - - /* xd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - out1 = __SMUSDX(R, C3) >> 16u; - /* yd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - out2 = __SMUAD(C3, R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* writing output(xd', yd') in little endian format */ - _SIMD32_OFFSET(pSrc16 + (2u * i3)) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1u; - - } while(--j); - /* data is in 4.11(q11) format */ - - /* end of first stage process */ - - - /* start of middle stage process */ - - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2u; - - /* Calculation of Middle stage */ - for (k = fftLen / 4u; k > 4u; k >>= 2u) - { - /* Initializations for the middle stage */ - n1 = n2; - n2 >>= 2u; - ic = 0u; - - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - C1 = _SIMD32_OFFSET(pCoef16 + (2u * ic)); - C2 = _SIMD32_OFFSET(pCoef16 + (4u * ic)); - C3 = _SIMD32_OFFSET(pCoef16 + (6u * ic)); - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Butterfly implementation */ - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i0)); - - /* Read yc (real), xc(imag) input */ - S = _SIMD32_OFFSET(pSrc16 + (2u * i2)); - - /* R = packed( (ya + yc), (xa + xc)) */ - R = __QADD16(T, S); - - /* S = packed((ya - yc), (xa - xc)) */ - S = __QSUB16(T, S); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i1)); - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSrc16 + (2u * i3)); - - /* T = packed( (yb + yd), (xb + xd)) */ - T = __QADD16(T, U); - - /* writing the butterfly processed i0 sample */ - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - out1 = __SHADD16(R, T); - in = ((int16_t) (out1 & 0xFFFF)) >> 1; - out1 = ((out1 >> 1) & 0xFFFF0000) | (in & 0xFFFF); - _SIMD32_OFFSET(pSrc16 + (2u * i0)) = out1; - - /* R = packed( (ya + yc) - (yb + yd), (xa + xc) - (xb + xd)) */ - R = __SHSUB16(R, T); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out1 = __SMUAD(C2, R) >> 16u; - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = __SMUSDX(C2, R); - -#else - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out1 = __SMUSDX(R, C2) >> 16u; - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out2 = __SMUAD(C2, R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Reading i0+3fftLen/4 */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i1)); - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - _SIMD32_OFFSET(pSrc16 + (2u * i1)) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - /* Butterfly calculations */ - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSrc16 + (2u * i3)); - - /* T = packed(yb-yd, xb-xd) */ - T = __QSUB16(T, U); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __SHASX(S, T); - - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __SHSAX(S, T); - - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = __SMUAD(C1, S) >> 16u; - out2 = __SMUSDX(C1, S); - -#else - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __SHSAX(S, T); - - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __SHASX(S, T); - - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = __SMUSDX(S, C1) >> 16u; - out2 = __SMUAD(C1, S); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - _SIMD32_OFFSET(pSrc16 + (2u * i2)) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - /* Butterfly process for the i0+3fftLen/4 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(C3, R) >> 16u; - out2 = __SMUSDX(C3, R); - -#else - - out1 = __SMUSDX(R, C3) >> 16u; - out2 = __SMUAD(C3, R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - /* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - _SIMD32_OFFSET(pSrc16 + (2u * i3)) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - } - } - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2u; - } - /* end of middle stage process */ - - - /* data is in 10.6(q6) format for the 1024 point */ - /* data is in 8.8(q8) format for the 256 point */ - /* data is in 6.10(q10) format for the 64 point */ - /* data is in 4.12(q12) format for the 16 point */ - - /* Initializations for the last stage */ - j = fftLen >> 2; - - ptr1 = &pSrc16[0]; - - /* start of last stage process */ - - /* Butterfly implementation */ - do - { - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD32(ptr1)++; - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD32(ptr1)++; - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD32(ptr1)++; - - /* Read xd (real), yd(imag) input */ - xdyd = *__SIMD32(ptr1)++; - - /* R = packed((ya + yc), (xa + xc)) */ - R = __QADD16(xaya, xcyc); - - /* T = packed((yb + yd), (xb + xd)) */ - T = __QADD16(xbyb, xdyd); - - /* pointer updation for writing */ - ptr1 = ptr1 - 8u; - - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - *__SIMD32(ptr1)++ = __SHADD16(R, T); - - /* T = packed((yb + yd), (xb + xd)) */ - T = __QADD16(xbyb, xdyd); - - /* xc' = (xa-xb+xc-xd) */ - /* yc' = (ya-yb+yc-yd) */ - *__SIMD32(ptr1)++ = __SHSUB16(R, T); - - /* S = packed((ya - yc), (xa - xc)) */ - S = __QSUB16(xaya, xcyc); - - /* Read yd (real), xd(imag) input */ - /* T = packed( (yb - yd), (xb - xd)) */ - U = __QSUB16(xbyb, xdyd); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - *__SIMD32(ptr1)++ = __SHSAX(S, U); - - - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - *__SIMD32(ptr1)++ = __SHASX(S, U); - -#else - - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - *__SIMD32(ptr1)++ = __SHASX(S, U); - - - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - *__SIMD32(ptr1)++ = __SHSAX(S, U); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - } while(--j); - - /* end of last stage process */ - - /* output is in 11.5(q5) format for the 1024 point */ - /* output is in 9.7(q7) format for the 256 point */ - /* output is in 7.9(q9) format for the 64 point */ - /* output is in 5.11(q11) format for the 16 point */ - - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t R0, R1, S0, S1, T0, T1, U0, U1; - q15_t Co1, Si1, Co2, Si2, Co3, Si3, out1, out2; - uint32_t n1, n2, ic, i0, i1, i2, i3, j, k; - - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2u; - - /* Index for twiddle coefficient */ - ic = 0u; - - /* Index for input read and output write */ - i0 = 0u; - j = n2; - - /* Input is in 1.15(q15) format */ - - /* start of first stage process */ - do - { - /* Butterfly implementation */ - - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - - /* input is down scale by 4 to avoid overflow */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2u] >> 2u; - T1 = pSrc16[(i0 * 2u) + 1u] >> 2u; - - /* input is down scale by 4 to avoid overflow */ - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2u] >> 2u; - S1 = pSrc16[(i2 * 2u) + 1u] >> 2u; - - /* R0 = (ya + yc) */ - R0 = __SSAT(T0 + S0, 16u); - /* R1 = (xa + xc) */ - R1 = __SSAT(T1 + S1, 16u); - - /* S0 = (ya - yc) */ - S0 = __SSAT(T0 - S0, 16); - /* S1 = (xa - xc) */ - S1 = __SSAT(T1 - S1, 16); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* input is down scale by 4 to avoid overflow */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u] >> 2u; - T1 = pSrc16[(i1 * 2u) + 1u] >> 2u; - - /* input is down scale by 4 to avoid overflow */ - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u] >> 2u; - U1 = pSrc16[(i3 * 2u) + 1] >> 2u; - - /* T0 = (yb + yd) */ - T0 = __SSAT(T0 + U0, 16u); - /* T1 = (xb + xd) */ - T1 = __SSAT(T1 + U1, 16u); - - /* writing the butterfly processed i0 sample */ - /* ya' = ya + yb + yc + yd */ - /* xa' = xa + xb + xc + xd */ - pSrc16[i0 * 2u] = (R0 >> 1u) + (T0 >> 1u); - pSrc16[(i0 * 2u) + 1u] = (R1 >> 1u) + (T1 >> 1u); - - /* R0 = (ya + yc) - (yb + yd) */ - /* R1 = (xa + xc) - (xb + xd) */ - R0 = __SSAT(R0 - T0, 16u); - R1 = __SSAT(R1 - T1, 16u); - - /* co2 & si2 are read from Coefficient pointer */ - Co2 = pCoef16[2u * ic * 2u]; - Si2 = pCoef16[(2u * ic * 2u) + 1]; - - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out1 = (short) ((Co2 * R0 + Si2 * R1) >> 16u); - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = (short) ((-Si2 * R0 + Co2 * R1) >> 16u); - - /* Reading i0+fftLen/4 */ - /* input is down scale by 4 to avoid overflow */ - /* T0 = yb, T1 = xb */ - T0 = pSrc16[i1 * 2u] >> 2; - T1 = pSrc16[(i1 * 2u) + 1] >> 2; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* writing output(xc', yc') in little endian format */ - pSrc16[i1 * 2u] = out1; - pSrc16[(i1 * 2u) + 1] = out2; - - /* Butterfly calculations */ - /* input is down scale by 4 to avoid overflow */ - /* U0 = yd, U1 = xd */ - U0 = pSrc16[i3 * 2u] >> 2; - U1 = pSrc16[(i3 * 2u) + 1] >> 2; - /* T0 = yb-yd */ - T0 = __SSAT(T0 - U0, 16); - /* T1 = xb-xd */ - T1 = __SSAT(T1 - U1, 16); - - /* R1 = (ya-yc) + (xb- xd), R0 = (xa-xc) - (yb-yd)) */ - R0 = (short) __SSAT((q31_t) (S0 - T1), 16); - R1 = (short) __SSAT((q31_t) (S1 + T0), 16); - - /* S1 = (ya-yc) - (xb- xd), S0 = (xa-xc) + (yb-yd)) */ - S0 = (short) __SSAT(((q31_t) S0 + T1), 16u); - S1 = (short) __SSAT(((q31_t) S1 - T0), 16u); - - /* co1 & si1 are read from Coefficient pointer */ - Co1 = pCoef16[ic * 2u]; - Si1 = pCoef16[(ic * 2u) + 1]; - /* Butterfly process for the i0+fftLen/2 sample */ - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out1 = (short) ((Si1 * S1 + Co1 * S0) >> 16); - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out2 = (short) ((-Si1 * S0 + Co1 * S1) >> 16); - - /* writing output(xb', yb') in little endian format */ - pSrc16[i2 * 2u] = out1; - pSrc16[(i2 * 2u) + 1] = out2; - - /* Co3 & si3 are read from Coefficient pointer */ - Co3 = pCoef16[3u * (ic * 2u)]; - Si3 = pCoef16[(3u * (ic * 2u)) + 1]; - /* Butterfly process for the i0+3fftLen/4 sample */ - /* xd' = (xa-yb-xc+yd)* Co3 + (ya+xb-yc-xd)* (si3) */ - out1 = (short) ((Si3 * R1 + Co3 * R0) >> 16u); - /* yd' = (ya+xb-yc-xd)* Co3 - (xa-yb-xc+yd)* (si3) */ - out2 = (short) ((-Si3 * R0 + Co3 * R1) >> 16u); - /* writing output(xd', yd') in little endian format */ - pSrc16[i3 * 2u] = out1; - pSrc16[(i3 * 2u) + 1] = out2; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1u; - - } while(--j); - /* data is in 4.11(q11) format */ - - /* end of first stage process */ - - - /* start of middle stage process */ - - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2u; - - /* Calculation of Middle stage */ - for (k = fftLen / 4u; k > 4u; k >>= 2u) - { - /* Initializations for the middle stage */ - n1 = n2; - n2 >>= 2u; - ic = 0u; - - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - Co1 = pCoef16[ic * 2u]; - Si1 = pCoef16[(ic * 2u) + 1u]; - Co2 = pCoef16[2u * (ic * 2u)]; - Si2 = pCoef16[(2u * (ic * 2u)) + 1u]; - Co3 = pCoef16[3u * (ic * 2u)]; - Si3 = pCoef16[(3u * (ic * 2u)) + 1u]; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Butterfly implementation */ - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2u]; - T1 = pSrc16[(i0 * 2u) + 1u]; - - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2u]; - S1 = pSrc16[(i2 * 2u) + 1u]; - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16); - R1 = __SSAT(T1 + S1, 16); - - /* S0 = (ya - yc), S1 =(xa - xc) */ - S0 = __SSAT(T0 - S0, 16); - S1 = __SSAT(T1 - S1, 16); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u]; - T1 = pSrc16[(i1 * 2u) + 1u]; - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u]; - U1 = pSrc16[(i3 * 2u) + 1u]; - - - /* T0 = (yb + yd), T1 = (xb + xd) */ - T0 = __SSAT(T0 + U0, 16); - T1 = __SSAT(T1 + U1, 16); - - /* writing the butterfly processed i0 sample */ - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - out1 = ((R0 >> 1u) + (T0 >> 1u)) >> 1u; - out2 = ((R1 >> 1u) + (T1 >> 1u)) >> 1u; - - pSrc16[i0 * 2u] = out1; - pSrc16[(2u * i0) + 1u] = out2; - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc) - (xb + xd) */ - R0 = (R0 >> 1u) - (T0 >> 1u); - R1 = (R1 >> 1u) - (T1 >> 1u); - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out1 = (short) ((Co2 * R0 + Si2 * R1) >> 16u); - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = (short) ((-Si2 * R0 + Co2 * R1) >> 16u); - - /* Reading i0+3fftLen/4 */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u]; - T1 = pSrc16[(i1 * 2u) + 1u]; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - pSrc16[i1 * 2u] = out1; - pSrc16[(i1 * 2u) + 1u] = out2; - - /* Butterfly calculations */ - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u]; - U1 = pSrc16[(i3 * 2u) + 1u]; - - /* T0 = yb-yd, T1 = xb-xd */ - T0 = __SSAT(T0 - U0, 16); - T1 = __SSAT(T1 - U1, 16); - - /* R0 = (ya-yc) + (xb- xd), R1 = (xa-xc) - (yb-yd)) */ - R0 = (S0 >> 1u) - (T1 >> 1u); - R1 = (S1 >> 1u) + (T0 >> 1u); - - /* S0 = (ya-yc) - (xb- xd), S1 = (xa-xc) + (yb-yd)) */ - S0 = (S0 >> 1u) + (T1 >> 1u); - S1 = (S1 >> 1u) - (T0 >> 1u); - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = (short) ((Co1 * S0 + Si1 * S1) >> 16u); - - out2 = (short) ((-Si1 * S0 + Co1 * S1) >> 16u); - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - pSrc16[i2 * 2u] = out1; - pSrc16[(i2 * 2u) + 1u] = out2; - - /* Butterfly process for the i0+3fftLen/4 sample */ - out1 = (short) ((Si3 * R1 + Co3 * R0) >> 16u); - - out2 = (short) ((-Si3 * R0 + Co3 * R1) >> 16u); - /* xd' = (xa-yb-xc+yd)* Co3 + (ya+xb-yc-xd)* (si3) */ - /* yd' = (ya+xb-yc-xd)* Co3 - (xa-yb-xc+yd)* (si3) */ - pSrc16[i3 * 2u] = out1; - pSrc16[(i3 * 2u) + 1u] = out2; - } - } - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2u; - } - /* end of middle stage process */ - - - /* data is in 10.6(q6) format for the 1024 point */ - /* data is in 8.8(q8) format for the 256 point */ - /* data is in 6.10(q10) format for the 64 point */ - /* data is in 4.12(q12) format for the 16 point */ - - /* Initializations for the last stage */ - n1 = n2; - n2 >>= 2u; - - /* start of last stage process */ - - /* Butterfly implementation */ - for (i0 = 0u; i0 <= (fftLen - n1); i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2u]; - T1 = pSrc16[(i0 * 2u) + 1u]; - - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2u]; - S1 = pSrc16[(i2 * 2u) + 1u]; - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16u); - R1 = __SSAT(T1 + S1, 16u); - - /* S0 = (ya - yc), S1 = (xa - xc) */ - S0 = __SSAT(T0 - S0, 16u); - S1 = __SSAT(T1 - S1, 16u); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u]; - T1 = pSrc16[(i1 * 2u) + 1u]; - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u]; - U1 = pSrc16[(i3 * 2u) + 1u]; - - /* T0 = (yb + yd), T1 = (xb + xd)) */ - T0 = __SSAT(T0 + U0, 16u); - T1 = __SSAT(T1 + U1, 16u); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - pSrc16[i0 * 2u] = (R0 >> 1u) + (T0 >> 1u); - pSrc16[(i0 * 2u) + 1u] = (R1 >> 1u) + (T1 >> 1u); - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc) - (xb + xd) */ - R0 = (R0 >> 1u) - (T0 >> 1u); - R1 = (R1 >> 1u) - (T1 >> 1u); - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u]; - T1 = pSrc16[(i1 * 2u) + 1u]; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd) */ - /* yc' = (ya-yb+yc-yd) */ - pSrc16[i1 * 2u] = R0; - pSrc16[(i1 * 2u) + 1u] = R1; - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u]; - U1 = pSrc16[(i3 * 2u) + 1u]; - /* T0 = (yb - yd), T1 = (xb - xd) */ - T0 = __SSAT(T0 - U0, 16u); - T1 = __SSAT(T1 - U1, 16u); - - /* writing the butterfly processed i0 + fftLen/2 sample */ - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - pSrc16[i2 * 2u] = (S0 >> 1u) + (T1 >> 1u); - pSrc16[(i2 * 2u) + 1u] = (S1 >> 1u) - (T0 >> 1u); - - /* writing the butterfly processed i0 + 3fftLen/4 sample */ - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - pSrc16[i3 * 2u] = (S0 >> 1u) - (T1 >> 1u); - pSrc16[(i3 * 2u) + 1u] = (S1 >> 1u) + (T0 >> 1u); - - } - - /* end of last stage process */ - - /* output is in 11.5(q5) format for the 1024 point */ - /* output is in 9.7(q7) format for the 256 point */ - /* output is in 7.9(q9) format for the 64 point */ - /* output is in 5.11(q11) format for the 16 point */ - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - - -/** - * @brief Core function for the Q15 CIFFT butterfly process. - * @param[in, out] *pSrc16 points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef16 points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -/* -* Radix-4 IFFT algorithm used is : -* -* CIFFT uses same twiddle coefficients as CFFT function -* x[k] = x[n] + (j)k * x[n + fftLen/4] + (-1)k * x[n+fftLen/2] + (-j)k * x[n+3*fftLen/4] -* -* -* IFFT is implemented with following changes in equations from FFT -* -* Input real and imaginary data: -* x(n) = xa + j * ya -* x(n+N/4 ) = xb + j * yb -* x(n+N/2 ) = xc + j * yc -* x(n+3N 4) = xd + j * yd -* -* -* Output real and imaginary data: -* x(4r) = xa'+ j * ya' -* x(4r+1) = xb'+ j * yb' -* x(4r+2) = xc'+ j * yc' -* x(4r+3) = xd'+ j * yd' -* -* -* Twiddle factors for radix-4 IFFT: -* Wn = co1 + j * (si1) -* W2n = co2 + j * (si2) -* W3n = co3 + j * (si3) - -* The real and imaginary output values for the radix-4 butterfly are -* xa' = xa + xb + xc + xd -* ya' = ya + yb + yc + yd -* xb' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1) -* yb' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1) -* xc' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2) -* yc' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) -* xd' = (xa+yb-xc-yd)* co3 - (ya-xb-yc+xd)* (si3) -* yd' = (ya-xb-yc+xd)* co3 + (xa+yb-xc-yd)* (si3) -* -*/ - -void arm_radix4_butterfly_inverse_q15( - q15_t * pSrc16, - uint32_t fftLen, - q15_t * pCoef16, - uint32_t twidCoefModifier) -{ - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t R, S, T, U; - q31_t C1, C2, C3, out1, out2; - uint32_t n1, n2, ic, i0, i1, i2, i3, j, k; - q15_t in; - - q15_t *ptr1; - - - - q31_t xaya, xbyb, xcyc, xdyd; - - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2u; - - /* Index for twiddle coefficient */ - ic = 0u; - - /* Index for input read and output write */ - i0 = 0u; - j = n2; - - /* Input is in 1.15(q15) format */ - - /* start of first stage process */ - do - { - /* Butterfly implementation */ - - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i0)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* Read yc (real), xc(imag) input */ - S = _SIMD32_OFFSET(pSrc16 + (2u * i2)); - in = ((int16_t) (S & 0xFFFF)) >> 2; - S = ((S >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* R = packed((ya + yc), (xa + xc) ) */ - R = __QADD16(T, S); - - /* S = packed((ya - yc), (xa - xc) ) */ - S = __QSUB16(T, S); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i1)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSrc16 + (2u * i3)); - in = ((int16_t) (U & 0xFFFF)) >> 2; - U = ((U >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* T = packed((yb + yd), (xb + xd) ) */ - T = __QADD16(T, U); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - _SIMD32_OFFSET(pSrc16 + (2u * i0)) = __SHADD16(R, T); - - /* R = packed((ya + yc) - (yb + yd), (xa + xc)- (xb + xd)) */ - R = __QSUB16(R, T); - - /* co2 & si2 are read from SIMD Coefficient pointer */ - C2 = _SIMD32_OFFSET(pCoef16 + (4u * ic)); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out1 = __SMUSD(C2, R) >> 16u; - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = __SMUADX(C2, R); - -#else - - /* xc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out1 = __SMUADX(C2, R) >> 16u; - /* yc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out2 = __SMUSD(__QSUB16(0, C2), R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Reading i0+fftLen/4 */ - /* T = packed(yb, xb) */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i1)); - in = ((int16_t) (T & 0xFFFF)) >> 2; - T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* writing output(xc', yc') in little endian format */ - _SIMD32_OFFSET(pSrc16 + (2u * i1)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - /* Butterfly calculations */ - /* U = packed(yd, xd) */ - U = _SIMD32_OFFSET(pSrc16 + (2u * i3)); - in = ((int16_t) (U & 0xFFFF)) >> 2; - U = ((U >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* T = packed(yb-yd, xb-xd) */ - T = __QSUB16(T, U); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __QSAX(S, T); - /* S = packed((ya-yc) + (xb- xd), (xa-xc) - (yb-yd)) */ - S = __QASX(S, T); - -#else - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __QASX(S, T); - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __QSAX(S, T); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* co1 & si1 are read from SIMD Coefficient pointer */ - C1 = _SIMD32_OFFSET(pCoef16 + (2u * ic)); - /* Butterfly process for the i0+fftLen/2 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out1 = __SMUSD(C1, S) >> 16u; - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out2 = __SMUADX(C1, S); - -#else - - /* xb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out1 = __SMUADX(C1, S) >> 16u; - /* yb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out2 = __SMUSD(__QSUB16(0, C1), S); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* writing output(xb', yb') in little endian format */ - _SIMD32_OFFSET(pSrc16 + (2u * i2)) = - ((out2) & 0xFFFF0000) | ((out1) & 0x0000FFFF); - - - /* co3 & si3 are read from SIMD Coefficient pointer */ - C3 = _SIMD32_OFFSET(pCoef16 + (6u * ic)); - /* Butterfly process for the i0+3fftLen/4 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - out1 = __SMUSD(C3, R) >> 16u; - /* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - out2 = __SMUADX(C3, R); - -#else - - /* xd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - out1 = __SMUADX(C3, R) >> 16u; - /* yd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - out2 = __SMUSD(__QSUB16(0, C3), R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* writing output(xd', yd') in little endian format */ - _SIMD32_OFFSET(pSrc16 + (2u * i3)) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1u; - - } while(--j); - /* data is in 4.11(q11) format */ - - /* end of first stage process */ - - - /* start of middle stage process */ - - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2u; - - /* Calculation of Middle stage */ - for (k = fftLen / 4u; k > 4u; k >>= 2u) - { - /* Initializations for the middle stage */ - n1 = n2; - n2 >>= 2u; - ic = 0u; - - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - C1 = _SIMD32_OFFSET(pCoef16 + (2u * ic)); - C2 = _SIMD32_OFFSET(pCoef16 + (4u * ic)); - C3 = _SIMD32_OFFSET(pCoef16 + (6u * ic)); - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Butterfly implementation */ - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i0)); - - /* Read yc (real), xc(imag) input */ - S = _SIMD32_OFFSET(pSrc16 + (2u * i2)); - - /* R = packed( (ya + yc), (xa + xc)) */ - R = __QADD16(T, S); - - /* S = packed((ya - yc), (xa - xc)) */ - S = __QSUB16(T, S); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i1)); - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSrc16 + (2u * i3)); - - /* T = packed( (yb + yd), (xb + xd)) */ - T = __QADD16(T, U); - - /* writing the butterfly processed i0 sample */ - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - out1 = __SHADD16(R, T); - in = ((int16_t) (out1 & 0xFFFF)) >> 1; - out1 = ((out1 >> 1) & 0xFFFF0000) | (in & 0xFFFF); - _SIMD32_OFFSET(pSrc16 + (2u * i0)) = out1; - - /* R = packed( (ya + yc) - (yb + yd), (xa + xc) - (xb + xd)) */ - R = __SHSUB16(R, T); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out1 = __SMUSD(C2, R) >> 16u; - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = __SMUADX(C2, R); - -#else - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out1 = __SMUADX(R, C2) >> 16u; - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out2 = __SMUSD(__QSUB16(0, C2), R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Reading i0+3fftLen/4 */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSrc16 + (2u * i1)); - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - _SIMD32_OFFSET(pSrc16 + (2u * i1)) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - /* Butterfly calculations */ - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSrc16 + (2u * i3)); - - /* T = packed(yb-yd, xb-xd) */ - T = __QSUB16(T, U); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __SHSAX(S, T); - - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __SHASX(S, T); - - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = __SMUSD(C1, S) >> 16u; - out2 = __SMUADX(C1, S); - -#else - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __SHASX(S, T); - - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __SHSAX(S, T); - - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = __SMUADX(S, C1) >> 16u; - out2 = __SMUSD(__QSUB16(0, C1), S); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - _SIMD32_OFFSET(pSrc16 + (2u * i2)) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - /* Butterfly process for the i0+3fftLen/4 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(C3, R) >> 16u; - out2 = __SMUADX(C3, R); - -#else - - out1 = __SMUADX(C3, R) >> 16u; - out2 = __SMUSD(__QSUB16(0, C3), R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - /* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - _SIMD32_OFFSET(pSrc16 + (2u * i3)) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - } - } - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2u; - } - /* end of middle stage process */ - - /* data is in 10.6(q6) format for the 1024 point */ - /* data is in 8.8(q8) format for the 256 point */ - /* data is in 6.10(q10) format for the 64 point */ - /* data is in 4.12(q12) format for the 16 point */ - - /* Initializations for the last stage */ - j = fftLen >> 2; - - ptr1 = &pSrc16[0]; - - /* start of last stage process */ - - /* Butterfly implementation */ - do - { - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD32(ptr1)++; - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD32(ptr1)++; - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD32(ptr1)++; - - /* Read xd (real), yd(imag) input */ - xdyd = *__SIMD32(ptr1)++; - - /* R = packed((ya + yc), (xa + xc)) */ - R = __QADD16(xaya, xcyc); - - /* T = packed((yb + yd), (xb + xd)) */ - T = __QADD16(xbyb, xdyd); - - /* pointer updation for writing */ - ptr1 = ptr1 - 8u; - - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - *__SIMD32(ptr1)++ = __SHADD16(R, T); - - /* T = packed((yb + yd), (xb + xd)) */ - T = __QADD16(xbyb, xdyd); - - /* xc' = (xa-xb+xc-xd) */ - /* yc' = (ya-yb+yc-yd) */ - *__SIMD32(ptr1)++ = __SHSUB16(R, T); - - /* S = packed((ya - yc), (xa - xc)) */ - S = __QSUB16(xaya, xcyc); - - /* Read yd (real), xd(imag) input */ - /* T = packed( (yb - yd), (xb - xd)) */ - U = __QSUB16(xbyb, xdyd); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - *__SIMD32(ptr1)++ = __SHASX(S, U); - - - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - *__SIMD32(ptr1)++ = __SHSAX(S, U); - -#else - - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - *__SIMD32(ptr1)++ = __SHSAX(S, U); - - - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - *__SIMD32(ptr1)++ = __SHASX(S, U); - - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - } while(--j); - - /* end of last stage process */ - - /* output is in 11.5(q5) format for the 1024 point */ - /* output is in 9.7(q7) format for the 256 point */ - /* output is in 7.9(q9) format for the 64 point */ - /* output is in 5.11(q11) format for the 16 point */ - - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t R0, R1, S0, S1, T0, T1, U0, U1; - q15_t Co1, Si1, Co2, Si2, Co3, Si3, out1, out2; - uint32_t n1, n2, ic, i0, i1, i2, i3, j, k; - - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2u; - - /* Index for twiddle coefficient */ - ic = 0u; - - /* Index for input read and output write */ - i0 = 0u; - - j = n2; - - /* Input is in 1.15(q15) format */ - - /* Start of first stage process */ - do - { - /* Butterfly implementation */ - - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* input is down scale by 4 to avoid overflow */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2u] >> 2u; - T1 = pSrc16[(i0 * 2u) + 1u] >> 2u; - /* input is down scale by 4 to avoid overflow */ - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2u] >> 2u; - S1 = pSrc16[(i2 * 2u) + 1u] >> 2u; - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16u); - R1 = __SSAT(T1 + S1, 16u); - /* S0 = (ya - yc), S1 = (xa - xc) */ - S0 = __SSAT(T0 - S0, 16u); - S1 = __SSAT(T1 - S1, 16u); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* input is down scale by 4 to avoid overflow */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u] >> 2u; - T1 = pSrc16[(i1 * 2u) + 1u] >> 2u; - /* Read yd (real), xd(imag) input */ - /* input is down scale by 4 to avoid overflow */ - U0 = pSrc16[i3 * 2u] >> 2u; - U1 = pSrc16[(i3 * 2u) + 1u] >> 2u; - - /* T0 = (yb + yd), T1 = (xb + xd) */ - T0 = __SSAT(T0 + U0, 16u); - T1 = __SSAT(T1 + U1, 16u); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - pSrc16[i0 * 2u] = (R0 >> 1u) + (T0 >> 1u); - pSrc16[(i0 * 2u) + 1u] = (R1 >> 1u) + (T1 >> 1u); - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc)- (xb + xd) */ - R0 = __SSAT(R0 - T0, 16u); - R1 = __SSAT(R1 - T1, 16u); - /* co2 & si2 are read from Coefficient pointer */ - Co2 = pCoef16[2u * ic * 2u]; - Si2 = pCoef16[(2u * ic * 2u) + 1u]; - /* xc' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2) */ - out1 = (short) ((Co2 * R0 - Si2 * R1) >> 16u); - /* yc' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) */ - out2 = (short) ((Si2 * R0 + Co2 * R1) >> 16u); - - /* Reading i0+fftLen/4 */ - /* input is down scale by 4 to avoid overflow */ - /* T0 = yb, T1 = xb */ - T0 = pSrc16[i1 * 2u] >> 2u; - T1 = pSrc16[(i1 * 2u) + 1u] >> 2u; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* writing output(xc', yc') in little endian format */ - pSrc16[i1 * 2u] = out1; - pSrc16[(i1 * 2u) + 1u] = out2; - - /* Butterfly calculations */ - /* input is down scale by 4 to avoid overflow */ - /* U0 = yd, U1 = xd) */ - U0 = pSrc16[i3 * 2u] >> 2u; - U1 = pSrc16[(i3 * 2u) + 1u] >> 2u; - - /* T0 = yb-yd, T1 = xb-xd) */ - T0 = __SSAT(T0 - U0, 16u); - T1 = __SSAT(T1 - U1, 16u); - /* R0 = (ya-yc) - (xb- xd) , R1 = (xa-xc) + (yb-yd) */ - R0 = (short) __SSAT((q31_t) (S0 + T1), 16); - R1 = (short) __SSAT((q31_t) (S1 - T0), 16); - /* S = (ya-yc) + (xb- xd), S1 = (xa-xc) - (yb-yd) */ - S0 = (short) __SSAT((q31_t) (S0 - T1), 16); - S1 = (short) __SSAT((q31_t) (S1 + T0), 16); - - /* co1 & si1 are read from Coefficient pointer */ - Co1 = pCoef16[ic * 2u]; - Si1 = pCoef16[(ic * 2u) + 1u]; - /* Butterfly process for the i0+fftLen/2 sample */ - /* xb' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1) */ - out1 = (short) ((Co1 * S0 - Si1 * S1) >> 16u); - /* yb' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1) */ - out2 = (short) ((Si1 * S0 + Co1 * S1) >> 16u); - /* writing output(xb', yb') in little endian format */ - pSrc16[i2 * 2u] = out1; - pSrc16[(i2 * 2u) + 1u] = out2; - - /* Co3 & si3 are read from Coefficient pointer */ - Co3 = pCoef16[3u * ic * 2u]; - Si3 = pCoef16[(3u * ic * 2u) + 1u]; - /* Butterfly process for the i0+3fftLen/4 sample */ - /* xd' = (xa+yb-xc-yd)* Co3 - (ya-xb-yc+xd)* (si3) */ - out1 = (short) ((Co3 * R0 - Si3 * R1) >> 16u); - /* yd' = (ya-xb-yc+xd)* Co3 + (xa+yb-xc-yd)* (si3) */ - out2 = (short) ((Si3 * R0 + Co3 * R1) >> 16u); - /* writing output(xd', yd') in little endian format */ - pSrc16[i3 * 2u] = out1; - pSrc16[(i3 * 2u) + 1u] = out2; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1u; - - } while(--j); - - /* End of first stage process */ - - /* data is in 4.11(q11) format */ - - - /* Start of Middle stage process */ - - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2u; - - /* Calculation of Middle stage */ - for (k = fftLen / 4u; k > 4u; k >>= 2u) - { - /* Initializations for the middle stage */ - n1 = n2; - n2 >>= 2u; - ic = 0u; - - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - Co1 = pCoef16[ic * 2u]; - Si1 = pCoef16[(ic * 2u) + 1u]; - Co2 = pCoef16[2u * ic * 2u]; - Si2 = pCoef16[2u * ic * 2u + 1u]; - Co3 = pCoef16[3u * ic * 2u]; - Si3 = pCoef16[(3u * ic * 2u) + 1u]; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Butterfly implementation */ - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2u]; - T1 = pSrc16[(i0 * 2u) + 1u]; - - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2u]; - S1 = pSrc16[(i2 * 2u) + 1u]; - - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16u); - R1 = __SSAT(T1 + S1, 16u); - /* S0 = (ya - yc), S1 = (xa - xc) */ - S0 = __SSAT(T0 - S0, 16u); - S1 = __SSAT(T1 - S1, 16u); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u]; - T1 = pSrc16[(i1 * 2u) + 1u]; - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u]; - U1 = pSrc16[(i3 * 2u) + 1u]; - - /* T0 = (yb + yd), T1 = (xb + xd) */ - T0 = __SSAT(T0 + U0, 16u); - T1 = __SSAT(T1 + U1, 16u); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - pSrc16[i0 * 2u] = ((R0 >> 1u) + (T0 >> 1u)) >> 1u; - pSrc16[(i0 * 2u) + 1u] = ((R1 >> 1u) + (T1 >> 1u)) >> 1u; - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc) - (xb + xd) */ - R0 = (R0 >> 1u) - (T0 >> 1u); - R1 = (R1 >> 1u) - (T1 >> 1u); - - /* (ya-yb+yc-yd)* (si2) - (xa-xb+xc-xd)* co2 */ - out1 = (short) ((Co2 * R0 - Si2 * R1) >> 16); - /* (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) */ - out2 = (short) ((Si2 * R0 + Co2 * R1) >> 16); - - /* Reading i0+3fftLen/4 */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u]; - T1 = pSrc16[(i1 * 2u) + 1u]; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2) */ - /* yc' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) */ - pSrc16[i1 * 2u] = out1; - pSrc16[(i1 * 2u) + 1u] = out2; - - /* Butterfly calculations */ - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u]; - U1 = pSrc16[(i3 * 2u) + 1u]; - - /* T0 = yb-yd, T1 = xb-xd) */ - T0 = __SSAT(T0 - U0, 16u); - T1 = __SSAT(T1 - U1, 16u); - - /* R0 = (ya-yc) - (xb- xd) , R1 = (xa-xc) + (yb-yd) */ - R0 = (S0 >> 1u) + (T1 >> 1u); - R1 = (S1 >> 1u) - (T0 >> 1u); - - /* S1 = (ya-yc) + (xb- xd), S1 = (xa-xc) - (yb-yd) */ - S0 = (S0 >> 1u) - (T1 >> 1u); - S1 = (S1 >> 1u) + (T0 >> 1u); - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = (short) ((Co1 * S0 - Si1 * S1) >> 16u); - out2 = (short) ((Si1 * S0 + Co1 * S1) >> 16u); - /* xb' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1) */ - /* yb' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1) */ - pSrc16[i2 * 2u] = out1; - pSrc16[(i2 * 2u) + 1u] = out2; - - /* Butterfly process for the i0+3fftLen/4 sample */ - out1 = (short) ((Co3 * R0 - Si3 * R1) >> 16u); - - out2 = (short) ((Si3 * R0 + Co3 * R1) >> 16u); - /* xd' = (xa+yb-xc-yd)* Co3 - (ya-xb-yc+xd)* (si3) */ - /* yd' = (ya-xb-yc+xd)* Co3 + (xa+yb-xc-yd)* (si3) */ - pSrc16[i3 * 2u] = out1; - pSrc16[(i3 * 2u) + 1u] = out2; - - - } - } - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2u; - } - /* End of Middle stages process */ - - - /* data is in 10.6(q6) format for the 1024 point */ - /* data is in 8.8(q8) format for the 256 point */ - /* data is in 6.10(q10) format for the 64 point */ - /* data is in 4.12(q12) format for the 16 point */ - - /* start of last stage process */ - - - /* Initializations for the last stage */ - n1 = n2; - n2 >>= 2u; - - /* Butterfly implementation */ - for (i0 = 0u; i0 <= (fftLen - n1); i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2u]; - T1 = pSrc16[(i0 * 2u) + 1u]; - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2u]; - S1 = pSrc16[(i2 * 2u) + 1u]; - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16u); - R1 = __SSAT(T1 + S1, 16u); - /* S0 = (ya - yc), S1 = (xa - xc) */ - S0 = __SSAT(T0 - S0, 16u); - S1 = __SSAT(T1 - S1, 16u); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u]; - T1 = pSrc16[(i1 * 2u) + 1u]; - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u]; - U1 = pSrc16[(i3 * 2u) + 1u]; - - /* T0 = (yb + yd), T1 = (xb + xd) */ - T0 = __SSAT(T0 + U0, 16u); - T1 = __SSAT(T1 + U1, 16u); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - pSrc16[i0 * 2u] = (R0 >> 1u) + (T0 >> 1u); - pSrc16[(i0 * 2u) + 1u] = (R1 >> 1u) + (T1 >> 1u); - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc) - (xb + xd) */ - R0 = (R0 >> 1u) - (T0 >> 1u); - R1 = (R1 >> 1u) - (T1 >> 1u); - - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2u]; - T1 = pSrc16[(i1 * 2u) + 1u]; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd) */ - /* yc' = (ya-yb+yc-yd) */ - pSrc16[i1 * 2u] = R0; - pSrc16[(i1 * 2u) + 1u] = R1; - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2u]; - U1 = pSrc16[(i3 * 2u) + 1u]; - /* T0 = (yb - yd), T1 = (xb - xd) */ - T0 = __SSAT(T0 - U0, 16u); - T1 = __SSAT(T1 - U1, 16u); - - /* writing the butterfly processed i0 + fftLen/2 sample */ - /* xb' = (xa-yb-xc+yd) */ - /* yb' = (ya+xb-yc-xd) */ - pSrc16[i2 * 2u] = (S0 >> 1u) - (T1 >> 1u); - pSrc16[(i2 * 2u) + 1u] = (S1 >> 1u) + (T0 >> 1u); - - - /* writing the butterfly processed i0 + 3fftLen/4 sample */ - /* xd' = (xa+yb-xc-yd) */ - /* yd' = (ya-xb-yc+xd) */ - pSrc16[i3 * 2u] = (S0 >> 1u) + (T1 >> 1u); - pSrc16[(i3 * 2u) + 1u] = (S1 >> 1u) - (T0 >> 1u); - } - /* end of last stage process */ - - /* output is in 11.5(q5) format for the 1024 point */ - /* output is in 9.7(q7) format for the 256 point */ - /* output is in 7.9(q9) format for the 64 point */ - /* output is in 5.11(q11) format for the 16 point */ - -#endif /* #ifndef ARM_MATH_CM0 */ - -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q31.c deleted file mode 100644 index 3a5c523dff..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q31.c +++ /dev/null @@ -1,891 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_cfft_radix4_q31.c -* -* Description: This file has function definition of Radix-4 FFT & IFFT function and -* In-place bit reversal using bit reversal table -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.5 2010/04/26 -* incorporated review comments and updated with latest CMSIS layer -* -* Version 0.0.3 2010/03/10 -* Initial version -* -------------------------------------------------------------------- */ -#include "arm_math.h" - - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup Radix4_CFFT_CIFFT - * @{ - */ - -/** - * @details - * @brief Processing function for the Q31 CFFT/CIFFT. - * @param[in] *S points to an instance of the Q31 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. - * @return none. - * - * \par Input and output formats: - * \par - * Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. - * Hence the output format is different for different FFT sizes. - * The input and output formats for different FFT sizes and number of bits to upscale are mentioned in the tables below for CFFT and CIFFT: - * \par - * \image html CFFTQ31.gif "Input and Output Formats for Q31 CFFT" - * \image html CIFFTQ31.gif "Input and Output Formats for Q31 CIFFT" - * - */ - -void arm_cfft_radix4_q31( - const arm_cfft_radix4_instance_q31 * S, - q31_t * pSrc) -{ - if(S->ifftFlag == 1u) - { - /* Complex IFFT radix-4 */ - arm_radix4_butterfly_inverse_q31(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier); - } - else - { - /* Complex FFT radix-4 */ - arm_radix4_butterfly_q31(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier); - } - - - if(S->bitReverseFlag == 1u) - { - /* Bit Reversal */ - arm_bitreversal_q31(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); - } - -} - -/** - * @} end of Radix4_CFFT_CIFFT group - */ - -/* -* Radix-4 FFT algorithm used is : -* -* Input real and imaginary data: -* x(n) = xa + j * ya -* x(n+N/4 ) = xb + j * yb -* x(n+N/2 ) = xc + j * yc -* x(n+3N 4) = xd + j * yd -* -* -* Output real and imaginary data: -* x(4r) = xa'+ j * ya' -* x(4r+1) = xb'+ j * yb' -* x(4r+2) = xc'+ j * yc' -* x(4r+3) = xd'+ j * yd' -* -* -* Twiddle factors for radix-4 FFT: -* Wn = co1 + j * (- si1) -* W2n = co2 + j * (- si2) -* W3n = co3 + j * (- si3) -* -* Butterfly implementation: -* xa' = xa + xb + xc + xd -* ya' = ya + yb + yc + yd -* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) -* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) -* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) -* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) -* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) -* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) -* -*/ - -/** - * @brief Core function for the Q31 CFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_radix4_butterfly_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint32_t twidCoefModifier) -{ - uint32_t n1, n2, ia1, ia2, ia3, i0, i1, i2, i3, j, k; - q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3; - - q31_t xa, xb, xc, xd; - q31_t ya, yb, yc, yd; - q31_t xa_out, xb_out, xc_out, xd_out; - q31_t ya_out, yb_out, yc_out, yd_out; - - q31_t *ptr1; - q63_t xaya, xbyb, xcyc, xdyd; - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - - /* start of first stage process */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - /* n2 = fftLen/4 */ - n2 >>= 2u; - i0 = 0u; - ia1 = 0u; - - j = n2; - - /* Calculation of first stage */ - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2u], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* input is in 1.31(q31) format and provide 4 guard bits for the input */ - - /* Butterfly implementation */ - /* xa + xc */ - r1 = (pSrc[(2u * i0)] >> 4u) + (pSrc[(2u * i2)] >> 4u); - /* xa - xc */ - r2 = (pSrc[2u * i0] >> 4u) - (pSrc[2u * i2] >> 4u); - - /* xb + xd */ - t1 = (pSrc[2u * i1] >> 4u) + (pSrc[2u * i3] >> 4u); - - /* ya + yc */ - s1 = (pSrc[(2u * i0) + 1u] >> 4u) + (pSrc[(2u * i2) + 1u] >> 4u); - /* ya - yc */ - s2 = (pSrc[(2u * i0) + 1u] >> 4u) - (pSrc[(2u * i2) + 1u] >> 4u); - - /* xa' = xa + xb + xc + xd */ - pSrc[2u * i0] = (r1 + t1); - /* (xa + xc) - (xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = (pSrc[(2u * i1) + 1u] >> 4u) + (pSrc[(2u * i3) + 1u] >> 4u); - - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = (s1 + t2); - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* yb - yd */ - t1 = (pSrc[(2u * i1) + 1u] >> 4u) - (pSrc[(2u * i3) + 1u] >> 4u); - /* xb - xd */ - t2 = (pSrc[2u * i1] >> 4u) - (pSrc[2u * i3] >> 4u); - - /* index calculation for the coefficients */ - ia2 = 2u * ia1; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = (((int32_t) (((q63_t) r1 * co2) >> 32)) + - ((int32_t) (((q63_t) s1 * si2) >> 32))) << 1u; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = (((int32_t) (((q63_t) s1 * co2) >> 32)) - - ((int32_t) (((q63_t) r1 * si2) >> 32))) << 1u; - - /* (xa - xc) + (yb - yd) */ - r1 = r2 + t1; - /* (xa - xc) - (yb - yd) */ - r2 = r2 - t1; - - /* (ya - yc) - (xb - xd) */ - s1 = s2 - t2; - /* (ya - yc) + (xb - xd) */ - s2 = s2 + t2; - - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = (((int32_t) (((q63_t) r1 * co1) >> 32)) + - ((int32_t) (((q63_t) s1 * si1) >> 32))) << 1u; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = (((int32_t) (((q63_t) s1 * co1) >> 32)) - - ((int32_t) (((q63_t) r1 * si1) >> 32))) << 1u; - - /* index calculation for the coefficients */ - ia3 = 3u * ia1; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = (((int32_t) (((q63_t) r2 * co3) >> 32)) + - ((int32_t) (((q63_t) s2 * si3) >> 32))) << 1u; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = (((int32_t) (((q63_t) s2 * co3) >> 32)) - - ((int32_t) (((q63_t) r2 * si3) >> 32))) << 1u; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1u; - - } while(--j); - - /* end of first stage process */ - - /* data is in 5.27(q27) format */ - - - /* start of Middle stages process */ - - - /* each stage in middle stages provides two down scaling of the input */ - - twidCoefModifier <<= 2u; - - - for (k = fftLen / 4u; k > 4u; k >>= 2u) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2u; - ia1 = 0u; - - /* Calculation of first stage */ - for (j = 0u; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2u], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - /* xa + xc */ - r1 = pSrc[2u * i0] + pSrc[2u * i2]; - /* xa - xc */ - r2 = pSrc[2u * i0] - pSrc[2u * i2]; - - /* ya + yc */ - s1 = pSrc[(2u * i0) + 1u] + pSrc[(2u * i2) + 1u]; - /* ya - yc */ - s2 = pSrc[(2u * i0) + 1u] - pSrc[(2u * i2) + 1u]; - - /* xb + xd */ - t1 = pSrc[2u * i1] + pSrc[2u * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2u * i0] = (r1 + t1) >> 2u; - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSrc[(2u * i1) + 1u] + pSrc[(2u * i3) + 1u]; - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = (s1 + t2) >> 2u; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSrc[(2u * i1) + 1u] - pSrc[(2u * i3) + 1u]; - /* (xb - xd) */ - t2 = pSrc[2u * i1] - pSrc[2u * i3]; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = (((int32_t) (((q63_t) r1 * co2) >> 32)) + - ((int32_t) (((q63_t) s1 * si2) >> 32))) >> 1u; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = (((int32_t) (((q63_t) s1 * co2) >> 32)) - - ((int32_t) (((q63_t) r1 * si2) >> 32))) >> 1u; - - /* (xa - xc) + (yb - yd) */ - r1 = r2 + t1; - /* (xa - xc) - (yb - yd) */ - r2 = r2 - t1; - - /* (ya - yc) - (xb - xd) */ - s1 = s2 - t2; - /* (ya - yc) + (xb - xd) */ - s2 = s2 + t2; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = (((int32_t) (((q63_t) r1 * co1) >> 32)) + - ((int32_t) (((q63_t) s1 * si1) >> 32))) >> 1u; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = (((int32_t) (((q63_t) s1 * co1) >> 32)) - - ((int32_t) (((q63_t) r1 * si1) >> 32))) >> 1u; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = (((int32_t) (((q63_t) r2 * co3) >> 32)) + - ((int32_t) (((q63_t) s2 * si3) >> 32))) >> 1u; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = (((int32_t) (((q63_t) s2 * co3) >> 32)) - - ((int32_t) (((q63_t) r2 * si3) >> 32))) >> 1u; - } - } - twidCoefModifier <<= 2u; - } - - /* End of Middle stages process */ - - /* data is in 11.21(q21) format for the 1024 point as there are 3 middle stages */ - /* data is in 9.23(q23) format for the 256 point as there are 2 middle stages */ - /* data is in 7.25(q25) format for the 64 point as there are 1 middle stage */ - /* data is in 5.27(q27) format for the 16 point as there are no middle stages */ - - - /* start of Last stage process */ - /* Initializations for the last stage */ - j = fftLen >> 2; - ptr1 = &pSrc[0]; - - /* Calculations of last stage */ - do - { - -#ifndef ARM_MATH_BIG_ENDIAN - - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD64(ptr1)++; - xa = (q31_t) xaya; - ya = (q31_t) (xaya >> 32); - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD64(ptr1)++; - xb = (q31_t) xbyb; - yb = (q31_t) (xbyb >> 32); - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD64(ptr1)++; - xc = (q31_t) xcyc; - yc = (q31_t) (xcyc >> 32); - - /* Read xc (real), yc(imag) input */ - xdyd = *__SIMD64(ptr1)++; - xd = (q31_t) xdyd; - yd = (q31_t) (xdyd >> 32); - -#else - - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD64(ptr1)++; - ya = (q31_t) xaya; - xa = (q31_t) (xaya >> 32); - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD64(ptr1)++; - yb = (q31_t) xbyb; - xb = (q31_t) (xbyb >> 32); - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD64(ptr1)++; - yc = (q31_t) xcyc; - xc = (q31_t) (xcyc >> 32); - - /* Read xc (real), yc(imag) input */ - xdyd = *__SIMD64(ptr1)++; - yd = (q31_t) xdyd; - xd = (q31_t) (xdyd >> 32); - - -#endif - - /* xa' = xa + xb + xc + xd */ - xa_out = xa + xb + xc + xd; - - /* ya' = ya + yb + yc + yd */ - ya_out = ya + yb + yc + yd; - - /* pointer updation for writing */ - ptr1 = ptr1 - 8u; - - /* writing xa' and ya' */ - *ptr1++ = xa_out; - *ptr1++ = ya_out; - - xc_out = (xa - xb + xc - xd); - yc_out = (ya - yb + yc - yd); - - /* writing xc' and yc' */ - *ptr1++ = xc_out; - *ptr1++ = yc_out; - - xb_out = (xa + yb - xc - yd); - yb_out = (ya - xb - yc + xd); - - /* writing xb' and yb' */ - *ptr1++ = xb_out; - *ptr1++ = yb_out; - - xd_out = (xa - yb - xc + yd); - yd_out = (ya + xb - yc - xd); - - /* writing xd' and yd' */ - *ptr1++ = xd_out; - *ptr1++ = yd_out; - - - } while(--j); - - /* output is in 11.21(q21) format for the 1024 point */ - /* output is in 9.23(q23) format for the 256 point */ - /* output is in 7.25(q25) format for the 64 point */ - /* output is in 5.27(q27) format for the 16 point */ - - /* End of last stage process */ - -} - - -/** - * @brief Core function for the Q31 CIFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - -/* -* Radix-4 IFFT algorithm used is : -* -* CIFFT uses same twiddle coefficients as CFFT Function -* x[k] = x[n] + (j)k * x[n + fftLen/4] + (-1)k * x[n+fftLen/2] + (-j)k * x[n+3*fftLen/4] -* -* -* IFFT is implemented with following changes in equations from FFT -* -* Input real and imaginary data: -* x(n) = xa + j * ya -* x(n+N/4 ) = xb + j * yb -* x(n+N/2 ) = xc + j * yc -* x(n+3N 4) = xd + j * yd -* -* -* Output real and imaginary data: -* x(4r) = xa'+ j * ya' -* x(4r+1) = xb'+ j * yb' -* x(4r+2) = xc'+ j * yc' -* x(4r+3) = xd'+ j * yd' -* -* -* Twiddle factors for radix-4 IFFT: -* Wn = co1 + j * (si1) -* W2n = co2 + j * (si2) -* W3n = co3 + j * (si3) - -* The real and imaginary output values for the radix-4 butterfly are -* xa' = xa + xb + xc + xd -* ya' = ya + yb + yc + yd -* xb' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1) -* yb' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1) -* xc' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2) -* yc' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) -* xd' = (xa+yb-xc-yd)* co3 - (ya-xb-yc+xd)* (si3) -* yd' = (ya-xb-yc+xd)* co3 + (xa+yb-xc-yd)* (si3) -* -*/ - -void arm_radix4_butterfly_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint32_t twidCoefModifier) -{ - uint32_t n1, n2, ia1, ia2, ia3, i0, i1, i2, i3, j, k; - q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3; - q31_t xa, xb, xc, xd; - q31_t ya, yb, yc, yd; - q31_t xa_out, xb_out, xc_out, xd_out; - q31_t ya_out, yb_out, yc_out, yd_out; - - q31_t *ptr1; - q63_t xaya, xbyb, xcyc, xdyd; - - /* input is be 1.31(q31) format for all FFT sizes */ - /* Total process is divided into three stages */ - /* process first stage, middle stages, & last stage */ - - /* Start of first stage process */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - /* n2 = fftLen/4 */ - n2 >>= 2u; - i0 = 0u; - ia1 = 0u; - - j = n2; - - do - { - - /* input is in 1.31(q31) format and provide 4 guard bits for the input */ - - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2u], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - /* xa + xc */ - r1 = (pSrc[2u * i0] >> 4u) + (pSrc[2u * i2] >> 4u); - /* xa - xc */ - r2 = (pSrc[2u * i0] >> 4u) - (pSrc[2u * i2] >> 4u); - - /* xb + xd */ - t1 = (pSrc[2u * i1] >> 4u) + (pSrc[2u * i3] >> 4u); - - /* ya + yc */ - s1 = (pSrc[(2u * i0) + 1u] >> 4u) + (pSrc[(2u * i2) + 1u] >> 4u); - /* ya - yc */ - s2 = (pSrc[(2u * i0) + 1u] >> 4u) - (pSrc[(2u * i2) + 1u] >> 4u); - - /* xa' = xa + xb + xc + xd */ - pSrc[2u * i0] = (r1 + t1); - /* (xa + xc) - (xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = (pSrc[(2u * i1) + 1u] >> 4u) + (pSrc[(2u * i3) + 1u] >> 4u); - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = (s1 + t2); - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* yb - yd */ - t1 = (pSrc[(2u * i1) + 1u] >> 4u) - (pSrc[(2u * i3) + 1u] >> 4u); - /* xb - xd */ - t2 = (pSrc[2u * i1] >> 4u) - (pSrc[2u * i3] >> 4u); - - /* index calculation for the coefficients */ - ia2 = 2u * ia1; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = (((int32_t) (((q63_t) r1 * co2) >> 32)) - - ((int32_t) (((q63_t) s1 * si2) >> 32))) << 1u; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[2u * i1 + 1u] = (((int32_t) (((q63_t) s1 * co2) >> 32)) + - ((int32_t) (((q63_t) r1 * si2) >> 32))) << 1u; - - /* (xa - xc) - (yb - yd) */ - r1 = r2 - t1; - /* (xa - xc) + (yb - yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb - xd) */ - s1 = s2 + t2; - /* (ya - yc) - (xb - xd) */ - s2 = s2 - t2; - - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = (((int32_t) (((q63_t) r1 * co1) >> 32)) - - ((int32_t) (((q63_t) s1 * si1) >> 32))) << 1u; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = (((int32_t) (((q63_t) s1 * co1) >> 32)) + - ((int32_t) (((q63_t) r1 * si1) >> 32))) << 1u; - - /* index calculation for the coefficients */ - ia3 = 3u * ia1; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2u * i3] = (((int32_t) (((q63_t) r2 * co3) >> 32)) - - ((int32_t) (((q63_t) s2 * si3) >> 32))) << 1u; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = (((int32_t) (((q63_t) s2 * co3) >> 32)) + - ((int32_t) (((q63_t) r2 * si3) >> 32))) << 1u; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1u; - - } while(--j); - - /* data is in 5.27(q27) format */ - /* each stage provides two down scaling of the input */ - - - /* Start of Middle stages process */ - - twidCoefModifier <<= 2u; - - /* Calculation of second stage to excluding last stage */ - for (k = fftLen / 4u; k > 4u; k >>= 2u) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2u; - ia1 = 0u; - - for (j = 0; j <= (n2 - 1u); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2u]; - si1 = pCoef[(ia1 * 2u) + 1u]; - co2 = pCoef[ia2 * 2u]; - si2 = pCoef[(ia2 * 2u) + 1u]; - co3 = pCoef[ia3 * 2u]; - si3 = pCoef[(ia3 * 2u) + 1u]; - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2u], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - /* xa + xc */ - r1 = pSrc[2u * i0] + pSrc[2u * i2]; - /* xa - xc */ - r2 = pSrc[2u * i0] - pSrc[2u * i2]; - - /* ya + yc */ - s1 = pSrc[(2u * i0) + 1u] + pSrc[(2u * i2) + 1u]; - /* ya - yc */ - s2 = pSrc[(2u * i0) + 1u] - pSrc[(2u * i2) + 1u]; - - /* xb + xd */ - t1 = pSrc[2u * i1] + pSrc[2u * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2u * i0] = (r1 + t1) >> 2u; - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = pSrc[(2u * i1) + 1u] + pSrc[(2u * i3) + 1u]; - /* ya' = ya + yb + yc + yd */ - pSrc[(2u * i0) + 1u] = (s1 + t2) >> 2u; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSrc[(2u * i1) + 1u] - pSrc[(2u * i3) + 1u]; - /* (xb - xd) */ - t2 = pSrc[2u * i1] - pSrc[2u * i3]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2u * i1] = (((int32_t) (((q63_t) r1 * co2) >> 32u)) - - ((int32_t) (((q63_t) s1 * si2) >> 32u))) >> 1u; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2u * i1) + 1u] = - (((int32_t) (((q63_t) s1 * co2) >> 32u)) + - ((int32_t) (((q63_t) r1 * si2) >> 32u))) >> 1u; - - /* (xa - xc) - (yb - yd) */ - r1 = r2 - t1; - /* (xa - xc) + (yb - yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb - xd) */ - s1 = s2 + t2; - /* (ya - yc) - (xb - xd) */ - s2 = s2 - t2; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2u * i2] = (((int32_t) (((q63_t) r1 * co1) >> 32)) - - ((int32_t) (((q63_t) s1 * si1) >> 32))) >> 1u; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2u * i2) + 1u] = (((int32_t) (((q63_t) s1 * co1) >> 32)) + - ((int32_t) (((q63_t) r1 * si1) >> 32))) >> 1u; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[(2u * i3)] = (((int32_t) (((q63_t) r2 * co3) >> 32)) - - ((int32_t) (((q63_t) s2 * si3) >> 32))) >> 1u; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2u * i3) + 1u] = (((int32_t) (((q63_t) s2 * co3) >> 32)) + - ((int32_t) (((q63_t) r2 * si3) >> 32))) >> 1u; - } - } - twidCoefModifier <<= 2u; - } - - /* End of Middle stages process */ - - /* data is in 11.21(q21) format for the 1024 point as there are 3 middle stages */ - /* data is in 9.23(q23) format for the 256 point as there are 2 middle stages */ - /* data is in 7.25(q25) format for the 64 point as there are 1 middle stage */ - /* data is in 5.27(q27) format for the 16 point as there are no middle stages */ - - - /* Start of last stage process */ - - - /* Initializations for the last stage */ - j = fftLen >> 2; - ptr1 = &pSrc[0]; - - /* Calculations of last stage */ - do - { -#ifndef ARM_MATH_BIG_ENDIAN - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD64(ptr1)++; - xa = (q31_t) xaya; - ya = (q31_t) (xaya >> 32); - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD64(ptr1)++; - xb = (q31_t) xbyb; - yb = (q31_t) (xbyb >> 32); - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD64(ptr1)++; - xc = (q31_t) xcyc; - yc = (q31_t) (xcyc >> 32); - - /* Read xc (real), yc(imag) input */ - xdyd = *__SIMD64(ptr1)++; - xd = (q31_t) xdyd; - yd = (q31_t) (xdyd >> 32); - -#else - - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD64(ptr1)++; - ya = (q31_t) xaya; - xa = (q31_t) (xaya >> 32); - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD64(ptr1)++; - yb = (q31_t) xbyb; - xb = (q31_t) (xbyb >> 32); - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD64(ptr1)++; - yc = (q31_t) xcyc; - xc = (q31_t) (xcyc >> 32); - - /* Read xc (real), yc(imag) input */ - xdyd = *__SIMD64(ptr1)++; - yd = (q31_t) xdyd; - xd = (q31_t) (xdyd >> 32); - - -#endif - - /* xa' = xa + xb + xc + xd */ - xa_out = xa + xb + xc + xd; - - /* ya' = ya + yb + yc + yd */ - ya_out = ya + yb + yc + yd; - - /* pointer updation for writing */ - ptr1 = ptr1 - 8u; - - /* writing xa' and ya' */ - *ptr1++ = xa_out; - *ptr1++ = ya_out; - - xc_out = (xa - xb + xc - xd); - yc_out = (ya - yb + yc - yd); - - /* writing xc' and yc' */ - *ptr1++ = xc_out; - *ptr1++ = yc_out; - - xb_out = (xa - yb - xc + yd); - yb_out = (ya + xb - yc - xd); - - /* writing xb' and yb' */ - *ptr1++ = xb_out; - *ptr1++ = yb_out; - - xd_out = (xa + yb - xc - yd); - yd_out = (ya - xb - yc + xd); - - /* writing xd' and yd' */ - *ptr1++ = xd_out; - *ptr1++ = yd_out; - - - } while(--j); - - /* output is in 11.21(q21) format for the 1024 point */ - /* output is in 9.23(q23) format for the 256 point */ - /* output is in 7.25(q25) format for the 64 point */ - /* output is in 5.27(q27) format for the 16 point */ - - /* End of last stage process */ -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_f32.c deleted file mode 100644 index fb79e31726..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_f32.c +++ /dev/null @@ -1,453 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dct4_f32.c -* -* Description: Processing function of DCT4 & IDCT4 F32. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @defgroup DCT4_IDCT4 DCT Type IV Functions - * Representation of signals by minimum number of values is important for storage and transmission. - * The possibility of large discontinuity between the beginning and end of a period of a signal - * in DFT can be avoided by extending the signal so that it is even-symmetric. - * Discrete Cosine Transform (DCT) is constructed such that its energy is heavily concentrated in the lower part of the - * spectrum and is very widely used in signal and image coding applications. - * The family of DCTs (DCT type- 1,2,3,4) is the outcome of different combinations of homogeneous boundary conditions. - * DCT has an excellent energy-packing capability, hence has many applications and in data compression in particular. - * - * DCT is essentially the Discrete Fourier Transform(DFT) of an even-extended real signal. - * Reordering of the input data makes the computation of DCT just a problem of - * computing the DFT of a real signal with a few additional operations. - * This approach provides regular, simple, and very efficient DCT algorithms for practical hardware and software implementations. - * - * DCT type-II can be implemented using Fast fourier transform (FFT) internally, as the transform is applied on real values, Real FFT can be used. - * DCT4 is implemented using DCT2 as their implementations are similar except with some added pre-processing and post-processing. - * DCT2 implementation can be described in the following steps: - * - Re-ordering input - * - Calculating Real FFT - * - Multiplication of weights and Real FFT output and getting real part from the product. - * - * This process is explained by the block diagram below: - * \image html DCT4.gif "Discrete Cosine Transform - type-IV" - * - * \par Algorithm: - * The N-point type-IV DCT is defined as a real, linear transformation by the formula: - * \image html DCT4Equation.gif - * where k = 0,1,2,.....N-1 - *\par - * Its inverse is defined as follows: - * \image html IDCT4Equation.gif - * where n = 0,1,2,.....N-1 - *\par - * The DCT4 matrices become involutory (i.e. they are self-inverse) by multiplying with an overall scale factor of sqrt(2/N). - * The symmetry of the transform matrix indicates that the fast algorithms for the forward - * and inverse transform computation are identical. - * Note that the implementation of Inverse DCT4 and DCT4 is same, hence same process function can be used for both. - * - * \par Lengths supported by the transform: - * As DCT4 internally uses Real FFT, it supports all the lengths supported by arm_rfft_f32(). - * The library provides separate functions for Q15, Q31, and floating-point data types. - * \par Instance Structure - * The instances for Real FFT and FFT, cosine values table and twiddle factor table are stored in an instance data structure. - * A separate instance structure must be defined for each transform. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Initializes Real FFT as its process function is used internally in DCT4, by calling arm_rfft_init_f32(). - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Manually initialize the instance structure as follows: - *
    
- *arm_dct4_instance_f32 S = {N, Nby2, normalize, pTwiddle, pCosFactor, pRfft, pCfft};    
- *arm_dct4_instance_q31 S = {N, Nby2, normalize, pTwiddle, pCosFactor, pRfft, pCfft};   
- *arm_dct4_instance_q15 S = {N, Nby2, normalize, pTwiddle, pCosFactor, pRfft, pCfft};   
- * 
- * where \c N is the length of the DCT4; \c Nby2 is half of the length of the DCT4; - * \c normalize is normalizing factor used and is equal to sqrt(2/N); - * \c pTwiddle points to the twiddle factor table; - * \c pCosFactor points to the cosFactor table; - * \c pRfft points to the real FFT instance; - * \c pCfft points to the complex FFT instance; - * The CFFT and RFFT structures also needs to be initialized, refer to arm_cfft_radix4_f32() - * and arm_rfft_f32() respectively for details regarding static initialization. - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the DCT4 transform functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - - /** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Processing function for the floating-point DCT4/IDCT4. - * @param[in] *S points to an instance of the floating-point DCT4/IDCT4 structure. - * @param[in] *pState points to state buffer. - * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. - * @return none. - */ - -void arm_dct4_f32( - const arm_dct4_instance_f32 * S, - float32_t * pState, - float32_t * pInlineBuffer) -{ - uint32_t i; /* Loop counter */ - float32_t *weights = S->pTwiddle; /* Pointer to the Weights table */ - float32_t *cosFact = S->pCosFactor; /* Pointer to the cos factors table */ - float32_t *pS1, *pS2, *pbuff; /* Temporary pointers for input buffer and pState buffer */ - float32_t in; /* Temporary variable */ - - - /* DCT4 computation involves DCT2 (which is calculated using RFFT) - * along with some pre-processing and post-processing. - * Computational procedure is explained as follows: - * (a) Pre-processing involves multiplying input with cos factor, - * r(n) = 2 * u(n) * cos(pi*(2*n+1)/(4*n)) - * where, - * r(n) -- output of preprocessing - * u(n) -- input to preprocessing(actual Source buffer) - * (b) Calculation of DCT2 using FFT is divided into three steps: - * Step1: Re-ordering of even and odd elements of input. - * Step2: Calculating FFT of the re-ordered input. - * Step3: Taking the real part of the product of FFT output and weights. - * (c) Post-processing - DCT4 can be obtained from DCT2 output using the following equation: - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * where, - * Y4 -- DCT4 output, Y2 -- DCT2 output - * (d) Multiplying the output with the normalizing factor sqrt(2/N). - */ - - /*-------- Pre-processing ------------*/ - /* Multiplying input with cos factor i.e. r(n) = 2 * x(n) * cos(pi*(2*n+1)/(4*n)) */ - arm_scale_f32(pInlineBuffer, 2.0f, pInlineBuffer, S->N); - arm_mult_f32(pInlineBuffer, cosFact, pInlineBuffer, S->N); - - /* ---------------------------------------------------------------- - * Step1: Re-ordering of even and odd elements as, - * pState[i] = pInlineBuffer[2*i] and - * pState[N-i-1] = pInlineBuffer[2*i+1] where i = 0 to N/2 - ---------------------------------------------------------------------*/ - - /* pS1 initialized to pState */ - pS1 = pState; - - /* pS2 initialized to pState+N-1, so that it points to the end of the state buffer */ - pS2 = pState + (S->N - 1u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Initializing the loop counter to N/2 >> 2 for loop unrolling by 4 */ - i = (uint32_t) S->Nby2 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = (uint32_t) S->N >> 2u; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. - * Compute 4 outputs at a time */ - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_f32(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_f32(pState, weights, pState, S->N); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* Initializing the loop counter to N >> 2 for loop unrolling by 4 */ - i = ((uint32_t) S->N - 1u) >> 2u; - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ * (float32_t) 0.5; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - i = ((uint32_t) S->N - 1u) % 0x4u; - - while(i > 0u) - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = (uint32_t) S->N >> 2u; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. Compute 4 outputs at a time */ - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = in * S->normalize; - - in = *pbuff; - *pbuff++ = in * S->normalize; - - in = *pbuff; - *pbuff++ = in * S->normalize; - - in = *pbuff; - *pbuff++ = in * S->normalize; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initializing the loop counter to N/2 */ - i = (uint32_t) S->Nby2; - - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter */ - i = (uint32_t) S->N; - - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_f32(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_f32(pState, weights, pState, S->N); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ * (float32_t) 0.5; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* Initializing the loop counter */ - i = ((uint32_t) S->N - 1u); - - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter */ - i = (uint32_t) S->N; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = in * S->normalize; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_f32.c deleted file mode 100644 index b5f91ea325..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_f32.c +++ /dev/null @@ -1,16511 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dct4_init_f32.c -* -* Description: Initialization function of DCT-4 & IDCT4 F32 -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/* -* @brief Weights Table -*/ - -/** -* \par -* Weights tables are generated using the formula :
weights[n] = e^(-j*n*pi/(2*N))
-* \par -* C command to generate the table -*
    
-* for(i = 0; i< N; i++)    
-* {    
-*    weights[2*i]= cos(i*c);    
-*    weights[(2*i)+1]= -sin(i * c);    
-* } 
-* \par -* Where N is the Number of weights to be calculated and c is pi/(2*N) -* \par -* In the tables below the real and imaginary values are placed alternatively, hence the -* array length is 2*N. -*/ - -static const float32_t Weights_128[256] = { - 1.000000000000000000f, 0.000000000000000000f, 0.999924701839144500f, - -0.012271538285719925f, - 0.999698818696204250f, -0.024541228522912288f, 0.999322384588349540f, - -0.036807222941358832f, - 0.998795456205172410f, -0.049067674327418015f, 0.998118112900149180f, - -0.061320736302208578f, - 0.997290456678690210f, -0.073564563599667426f, 0.996312612182778000f, - -0.085797312344439894f, - 0.995184726672196930f, -0.098017140329560604f, 0.993906970002356060f, - -0.110222207293883060f, - 0.992479534598709970f, -0.122410675199216200f, 0.990902635427780010f, - -0.134580708507126170f, - 0.989176509964781010f, -0.146730474455361750f, 0.987301418157858430f, - -0.158858143333861450f, - 0.985277642388941220f, -0.170961888760301220f, 0.983105487431216290f, - -0.183039887955140950f, - 0.980785280403230430f, -0.195090322016128250f, 0.978317370719627650f, - -0.207111376192218560f, - 0.975702130038528570f, -0.219101240156869800f, 0.972939952205560180f, - -0.231058108280671110f, - 0.970031253194543970f, -0.242980179903263870f, 0.966976471044852070f, - -0.254865659604514570f, - 0.963776065795439840f, -0.266712757474898370f, 0.960430519415565790f, - -0.278519689385053060f, - 0.956940335732208820f, -0.290284677254462330f, 0.953306040354193860f, - -0.302005949319228080f, - 0.949528180593036670f, -0.313681740398891520f, 0.945607325380521280f, - -0.325310292162262930f, - 0.941544065183020810f, -0.336889853392220050f, 0.937339011912574960f, - -0.348418680249434560f, - 0.932992798834738960f, -0.359895036534988110f, 0.928506080473215590f, - -0.371317193951837540f, - 0.923879532511286740f, -0.382683432365089780f, 0.919113851690057770f, - -0.393992040061048100f, - 0.914209755703530690f, -0.405241314004989860f, 0.909167983090522380f, - -0.416429560097637150f, - 0.903989293123443340f, -0.427555093430282080f, 0.898674465693953820f, - -0.438616238538527660f, - 0.893224301195515320f, -0.449611329654606540f, 0.887639620402853930f, - -0.460538710958240010f, - 0.881921264348355050f, -0.471396736825997640f, 0.876070094195406600f, - -0.482183772079122720f, - 0.870086991108711460f, -0.492898192229784040f, 0.863972856121586810f, - -0.503538383725717580f, - 0.857728610000272120f, -0.514102744193221660f, 0.851355193105265200f, - -0.524589682678468950f, - 0.844853565249707120f, -0.534997619887097150f, 0.838224705554838080f, - -0.545324988422046460f, - 0.831469612302545240f, -0.555570233019602180f, 0.824589302785025290f, - -0.565731810783613120f, - 0.817584813151583710f, -0.575808191417845340f, 0.810457198252594770f, - -0.585797857456438860f, - 0.803207531480644940f, -0.595699304492433360f, 0.795836904608883570f, - -0.605511041404325550f, - 0.788346427626606340f, -0.615231590580626820f, 0.780737228572094490f, - -0.624859488142386340f, - 0.773010453362736990f, -0.634393284163645490f, 0.765167265622458960f, - -0.643831542889791390f, - 0.757208846506484570f, -0.653172842953776760f, 0.749136394523459370f, - -0.662415777590171780f, - 0.740951125354959110f, -0.671558954847018330f, 0.732654271672412820f, - -0.680600997795453020f, - 0.724247082951467000f, -0.689540544737066830f, 0.715730825283818590f, - -0.698376249408972920f, - 0.707106781186547570f, -0.707106781186547460f, 0.698376249408972920f, - -0.715730825283818590f, - 0.689540544737066940f, -0.724247082951466890f, 0.680600997795453130f, - -0.732654271672412820f, - 0.671558954847018330f, -0.740951125354959110f, 0.662415777590171780f, - -0.749136394523459260f, - 0.653172842953776760f, -0.757208846506484460f, 0.643831542889791500f, - -0.765167265622458960f, - 0.634393284163645490f, -0.773010453362736990f, 0.624859488142386450f, - -0.780737228572094380f, - 0.615231590580626820f, -0.788346427626606230f, 0.605511041404325550f, - -0.795836904608883460f, - 0.595699304492433470f, -0.803207531480644830f, 0.585797857456438860f, - -0.810457198252594770f, - 0.575808191417845340f, -0.817584813151583710f, 0.565731810783613230f, - -0.824589302785025290f, - 0.555570233019602290f, -0.831469612302545240f, 0.545324988422046460f, - -0.838224705554837970f, - 0.534997619887097260f, -0.844853565249707010f, 0.524589682678468840f, - -0.851355193105265200f, - 0.514102744193221660f, -0.857728610000272120f, 0.503538383725717580f, - -0.863972856121586700f, - 0.492898192229784090f, -0.870086991108711350f, 0.482183772079122830f, - -0.876070094195406600f, - 0.471396736825997810f, -0.881921264348354940f, 0.460538710958240010f, - -0.887639620402853930f, - 0.449611329654606600f, -0.893224301195515320f, 0.438616238538527710f, - -0.898674465693953820f, - 0.427555093430282200f, -0.903989293123443340f, 0.416429560097637320f, - -0.909167983090522270f, - 0.405241314004989860f, -0.914209755703530690f, 0.393992040061048100f, - -0.919113851690057770f, - 0.382683432365089840f, -0.923879532511286740f, 0.371317193951837600f, - -0.928506080473215480f, - 0.359895036534988280f, -0.932992798834738850f, 0.348418680249434510f, - -0.937339011912574960f, - 0.336889853392220050f, -0.941544065183020810f, 0.325310292162262980f, - -0.945607325380521280f, - 0.313681740398891570f, -0.949528180593036670f, 0.302005949319228200f, - -0.953306040354193750f, - 0.290284677254462330f, -0.956940335732208940f, 0.278519689385053060f, - -0.960430519415565790f, - 0.266712757474898420f, -0.963776065795439840f, 0.254865659604514630f, - -0.966976471044852070f, - 0.242980179903263980f, -0.970031253194543970f, 0.231058108280671280f, - -0.972939952205560070f, - 0.219101240156869770f, -0.975702130038528570f, 0.207111376192218560f, - -0.978317370719627650f, - 0.195090322016128330f, -0.980785280403230430f, 0.183039887955141060f, - -0.983105487431216290f, - 0.170961888760301360f, -0.985277642388941220f, 0.158858143333861390f, - -0.987301418157858430f, - 0.146730474455361750f, -0.989176509964781010f, 0.134580708507126220f, - -0.990902635427780010f, - 0.122410675199216280f, -0.992479534598709970f, 0.110222207293883180f, - -0.993906970002356060f, - 0.098017140329560770f, -0.995184726672196820f, 0.085797312344439880f, - -0.996312612182778000f, - 0.073564563599667454f, -0.997290456678690210f, 0.061320736302208648f, - -0.998118112900149180f, - 0.049067674327418126f, -0.998795456205172410f, 0.036807222941358991f, - -0.999322384588349540f, - 0.024541228522912264f, -0.999698818696204250f, 0.012271538285719944f, - -0.999924701839144500f -}; - -static const float32_t Weights_512[1024] = { - 1.000000000000000000f, 0.000000000000000000f, 0.999995293809576190f, - -0.003067956762965976f, - 0.999981175282601110f, -0.006135884649154475f, 0.999957644551963900f, - -0.009203754782059819f, - 0.999924701839144500f, -0.012271538285719925f, 0.999882347454212560f, - -0.015339206284988100f, - 0.999830581795823400f, -0.018406729905804820f, 0.999769405351215280f, - -0.021474080275469508f, - 0.999698818696204250f, -0.024541228522912288f, 0.999618822495178640f, - -0.027608145778965740f, - 0.999529417501093140f, -0.030674803176636626f, 0.999430604555461730f, - -0.033741171851377580f, - 0.999322384588349540f, -0.036807222941358832f, 0.999204758618363890f, - -0.039872927587739811f, - 0.999077727752645360f, -0.042938256934940820f, 0.998941293186856870f, - -0.046003182130914623f, - 0.998795456205172410f, -0.049067674327418015f, 0.998640218180265270f, - -0.052131704680283324f, - 0.998475580573294770f, -0.055195244349689934f, 0.998301544933892890f, - -0.058258264500435752f, - 0.998118112900149180f, -0.061320736302208578f, 0.997925286198596000f, - -0.064382630929857465f, - 0.997723066644191640f, -0.067443919563664051f, 0.997511456140303450f, - -0.070504573389613856f, - 0.997290456678690210f, -0.073564563599667426f, 0.997060070339482960f, - -0.076623861392031492f, - 0.996820299291165670f, -0.079682437971430126f, 0.996571145790554840f, - -0.082740264549375692f, - 0.996312612182778000f, -0.085797312344439894f, 0.996044700901251970f, - -0.088853552582524600f, - 0.995767414467659820f, -0.091908956497132724f, 0.995480755491926940f, - -0.094963495329638992f, - 0.995184726672196930f, -0.098017140329560604f, 0.994879330794805620f, - -0.101069862754827820f, - 0.994564570734255420f, -0.104121633872054590f, 0.994240449453187900f, - -0.107172424956808840f, - 0.993906970002356060f, -0.110222207293883060f, 0.993564135520595300f, - -0.113270952177564350f, - 0.993211949234794500f, -0.116318630911904750f, 0.992850414459865100f, - -0.119365214810991350f, - 0.992479534598709970f, -0.122410675199216200f, 0.992099313142191800f, - -0.125454983411546230f, - 0.991709753669099530f, -0.128498110793793170f, 0.991310859846115440f, - -0.131540028702883120f, - 0.990902635427780010f, -0.134580708507126170f, 0.990485084256457090f, - -0.137620121586486040f, - 0.990058210262297120f, -0.140658239332849210f, 0.989622017463200890f, - -0.143695033150294470f, - 0.989176509964781010f, -0.146730474455361750f, 0.988721691960323780f, - -0.149764534677321510f, - 0.988257567730749460f, -0.152797185258443440f, 0.987784141644572180f, - -0.155828397654265230f, - 0.987301418157858430f, -0.158858143333861450f, 0.986809401814185530f, - -0.161886393780111830f, - 0.986308097244598670f, -0.164913120489969890f, 0.985797509167567480f, - -0.167938294974731170f, - 0.985277642388941220f, -0.170961888760301220f, 0.984748501801904210f, - -0.173983873387463820f, - 0.984210092386929030f, -0.177004220412148750f, 0.983662419211730250f, - -0.180022901405699510f, - 0.983105487431216290f, -0.183039887955140950f, 0.982539302287441240f, - -0.186055151663446630f, - 0.981963869109555240f, -0.189068664149806190f, 0.981379193313754560f, - -0.192080397049892440f, - 0.980785280403230430f, -0.195090322016128250f, 0.980182135968117430f, - -0.198098410717953560f, - 0.979569765685440520f, -0.201104634842091900f, 0.978948175319062200f, - -0.204108966092816870f, - 0.978317370719627650f, -0.207111376192218560f, 0.977677357824509930f, - -0.210111836880469610f, - 0.977028142657754390f, -0.213110319916091360f, 0.976369731330021140f, - -0.216106797076219520f, - 0.975702130038528570f, -0.219101240156869800f, 0.975025345066994120f, - -0.222093620973203510f, - 0.974339382785575860f, -0.225083911359792830f, 0.973644249650811980f, - -0.228072083170885730f, - 0.972939952205560180f, -0.231058108280671110f, 0.972226497078936270f, - -0.234041958583543430f, - 0.971503890986251780f, -0.237023605994367200f, 0.970772140728950350f, - -0.240003022448741500f, - 0.970031253194543970f, -0.242980179903263870f, 0.969281235356548530f, - -0.245955050335794590f, - 0.968522094274417380f, -0.248927605745720150f, 0.967753837093475510f, - -0.251897818154216970f, - 0.966976471044852070f, -0.254865659604514570f, 0.966190003445412500f, - -0.257831102162158990f, - 0.965394441697689400f, -0.260794117915275510f, 0.964589793289812760f, - -0.263754678974831350f, - 0.963776065795439840f, -0.266712757474898370f, 0.962953266873683880f, - -0.269668325572915090f, - 0.962121404269041580f, -0.272621355449948980f, 0.961280485811320640f, - -0.275571819310958140f, - 0.960430519415565790f, -0.278519689385053060f, 0.959571513081984520f, - -0.281464937925757940f, - 0.958703474895871600f, -0.284407537211271880f, 0.957826413027532910f, - -0.287347459544729510f, - 0.956940335732208820f, -0.290284677254462330f, 0.956045251349996410f, - -0.293219162694258630f, - 0.955141168305770780f, -0.296150888243623790f, 0.954228095109105670f, - -0.299079826308040480f, - 0.953306040354193860f, -0.302005949319228080f, 0.952375012719765880f, - -0.304929229735402370f, - 0.951435020969008340f, -0.307849640041534870f, 0.950486073949481700f, - -0.310767152749611470f, - 0.949528180593036670f, -0.313681740398891520f, 0.948561349915730270f, - -0.316593375556165850f, - 0.947585591017741090f, -0.319502030816015690f, 0.946600913083283530f, - -0.322407678801069850f, - 0.945607325380521280f, -0.325310292162262930f, 0.944604837261480260f, - -0.328209843579092500f, - 0.943593458161960390f, -0.331106305759876430f, 0.942573197601446870f, - -0.333999651442009380f, - 0.941544065183020810f, -0.336889853392220050f, 0.940506070593268300f, - -0.339776884406826850f, - 0.939459223602189920f, -0.342660717311994380f, 0.938403534063108060f, - -0.345541324963989090f, - 0.937339011912574960f, -0.348418680249434560f, 0.936265667170278260f, - -0.351292756085567090f, - 0.935183509938947610f, -0.354163525420490340f, 0.934092550404258980f, - -0.357030961233429980f, - 0.932992798834738960f, -0.359895036534988110f, 0.931884265581668150f, - -0.362755724367397230f, - 0.930766961078983710f, -0.365612997804773850f, 0.929640895843181330f, - -0.368466829953372320f, - 0.928506080473215590f, -0.371317193951837540f, 0.927362525650401110f, - -0.374164062971457930f, - 0.926210242138311380f, -0.377007410216418260f, 0.925049240782677580f, - -0.379847208924051160f, - 0.923879532511286740f, -0.382683432365089780f, 0.922701128333878630f, - -0.385516053843918850f, - 0.921514039342042010f, -0.388345046698826250f, 0.920318276709110590f, - -0.391170384302253870f, - 0.919113851690057770f, -0.393992040061048100f, 0.917900775621390500f, - -0.396809987416710310f, - 0.916679059921042700f, -0.399624199845646790f, 0.915448716088267830f, - -0.402434650859418430f, - 0.914209755703530690f, -0.405241314004989860f, 0.912962190428398210f, - -0.408044162864978690f, - 0.911706032005429880f, -0.410843171057903910f, 0.910441292258067250f, - -0.413638312238434500f, - 0.909167983090522380f, -0.416429560097637150f, 0.907886116487666260f, - -0.419216888363223910f, - 0.906595704514915330f, -0.422000270799799680f, 0.905296759318118820f, - -0.424779681209108810f, - 0.903989293123443340f, -0.427555093430282080f, 0.902673318237258830f, - -0.430326481340082610f, - 0.901348847046022030f, -0.433093818853151960f, 0.900015892016160280f, - -0.435857079922255470f, - 0.898674465693953820f, -0.438616238538527660f, 0.897324580705418320f, - -0.441371268731716670f, - 0.895966249756185220f, -0.444122144570429200f, 0.894599485631382700f, - -0.446868840162374160f, - 0.893224301195515320f, -0.449611329654606540f, 0.891840709392342720f, - -0.452349587233770890f, - 0.890448723244757880f, -0.455083587126343840f, 0.889048355854664570f, - -0.457813303598877170f, - 0.887639620402853930f, -0.460538710958240010f, 0.886222530148880640f, - -0.463259783551860150f, - 0.884797098430937790f, -0.465976495767966180f, 0.883363338665731580f, - -0.468688822035827900f, - 0.881921264348355050f, -0.471396736825997640f, 0.880470889052160750f, - -0.474100214650549970f, - 0.879012226428633530f, -0.476799230063322090f, 0.877545290207261350f, - -0.479493757660153010f, - 0.876070094195406600f, -0.482183772079122720f, 0.874586652278176110f, - -0.484869248000791060f, - 0.873094978418290090f, -0.487550160148436000f, 0.871595086655950980f, - -0.490226483288291160f, - 0.870086991108711460f, -0.492898192229784040f, 0.868570705971340900f, - -0.495565261825772540f, - 0.867046245515692650f, -0.498227666972781870f, 0.865513624090569090f, - -0.500885382611240710f, - 0.863972856121586810f, -0.503538383725717580f, 0.862423956111040610f, - -0.506186645345155230f, - 0.860866938637767310f, -0.508830142543106990f, 0.859301818357008470f, - -0.511468850437970300f, - 0.857728610000272120f, -0.514102744193221660f, 0.856147328375194470f, - -0.516731799017649870f, - 0.854557988365400530f, -0.519355990165589640f, 0.852960604930363630f, - -0.521975292937154390f, - 0.851355193105265200f, -0.524589682678468950f, 0.849741768000852550f, - -0.527199134781901280f, - 0.848120344803297230f, -0.529803624686294610f, 0.846490938774052130f, - -0.532403127877197900f, - 0.844853565249707120f, -0.534997619887097150f, 0.843208239641845440f, - -0.537587076295645390f, - 0.841554977436898440f, -0.540171472729892850f, 0.839893794195999520f, - -0.542750784864515890f, - 0.838224705554838080f, -0.545324988422046460f, 0.836547727223512010f, - -0.547894059173100190f, - 0.834862874986380010f, -0.550457972936604810f, 0.833170164701913190f, - -0.553016705580027470f, - 0.831469612302545240f, -0.555570233019602180f, 0.829761233794523050f, - -0.558118531220556100f, - 0.828045045257755800f, -0.560661576197336030f, 0.826321062845663530f, - -0.563199344013834090f, - 0.824589302785025290f, -0.565731810783613120f, 0.822849781375826430f, - -0.568258952670131490f, - 0.821102514991104650f, -0.570780745886967260f, 0.819347520076796900f, - -0.573297166698042200f, - 0.817584813151583710f, -0.575808191417845340f, 0.815814410806733780f, - -0.578313796411655590f, - 0.814036329705948410f, -0.580813958095764530f, 0.812250586585203880f, - -0.583308652937698290f, - 0.810457198252594770f, -0.585797857456438860f, 0.808656181588174980f, - -0.588281548222645220f, - 0.806847553543799330f, -0.590759701858874160f, 0.805031331142963660f, - -0.593232295039799800f, - 0.803207531480644940f, -0.595699304492433360f, 0.801376171723140240f, - -0.598160706996342270f, - 0.799537269107905010f, -0.600616479383868970f, 0.797690840943391160f, - -0.603066598540348160f, - 0.795836904608883570f, -0.605511041404325550f, 0.793975477554337170f, - -0.607949784967773630f, - 0.792106577300212390f, -0.610382806276309480f, 0.790230221437310030f, - -0.612810082429409710f, - 0.788346427626606340f, -0.615231590580626820f, 0.786455213599085770f, - -0.617647307937803870f, - 0.784556597155575240f, -0.620057211763289100f, 0.782650596166575730f, - -0.622461279374149970f, - 0.780737228572094490f, -0.624859488142386340f, 0.778816512381475980f, - -0.627251815495144080f, - 0.776888465673232440f, -0.629638238914926980f, 0.774953106594873930f, - -0.632018735939809060f, - 0.773010453362736990f, -0.634393284163645490f, 0.771060524261813820f, - -0.636761861236284200f, - 0.769103337645579700f, -0.639124444863775730f, 0.767138911935820400f, - -0.641481012808583160f, - 0.765167265622458960f, -0.643831542889791390f, 0.763188417263381270f, - -0.646176012983316280f, - 0.761202385484261780f, -0.648514401022112440f, 0.759209188978388070f, - -0.650846684996380880f, - 0.757208846506484570f, -0.653172842953776760f, 0.755201376896536550f, - -0.655492852999615350f, - 0.753186799043612520f, -0.657806693297078640f, 0.751165131909686480f, - -0.660114342067420480f, - 0.749136394523459370f, -0.662415777590171780f, 0.747100605980180130f, - -0.664710978203344790f, - 0.745057785441466060f, -0.666999922303637470f, 0.743007952135121720f, - -0.669282588346636010f, - 0.740951125354959110f, -0.671558954847018330f, 0.738887324460615110f, - -0.673829000378756040f, - 0.736816568877369900f, -0.676092703575315920f, 0.734738878095963500f, - -0.678350043129861470f, - 0.732654271672412820f, -0.680600997795453020f, 0.730562769227827590f, - -0.682845546385248080f, - 0.728464390448225200f, -0.685083667772700360f, 0.726359155084346010f, - -0.687315340891759050f, - 0.724247082951467000f, -0.689540544737066830f, 0.722128193929215350f, - -0.691759258364157750f, - 0.720002507961381650f, -0.693971460889654000f, 0.717870045055731710f, - -0.696177131491462990f, - 0.715730825283818590f, -0.698376249408972920f, 0.713584868780793640f, - -0.700568793943248340f, - 0.711432195745216430f, -0.702754744457225300f, 0.709272826438865690f, - -0.704934080375904880f, - 0.707106781186547570f, -0.707106781186547460f, 0.704934080375904990f, - -0.709272826438865580f, - 0.702754744457225300f, -0.711432195745216430f, 0.700568793943248450f, - -0.713584868780793520f, - 0.698376249408972920f, -0.715730825283818590f, 0.696177131491462990f, - -0.717870045055731710f, - 0.693971460889654000f, -0.720002507961381650f, 0.691759258364157750f, - -0.722128193929215350f, - 0.689540544737066940f, -0.724247082951466890f, 0.687315340891759160f, - -0.726359155084346010f, - 0.685083667772700360f, -0.728464390448225200f, 0.682845546385248080f, - -0.730562769227827590f, - 0.680600997795453130f, -0.732654271672412820f, 0.678350043129861580f, - -0.734738878095963390f, - 0.676092703575316030f, -0.736816568877369790f, 0.673829000378756150f, - -0.738887324460615110f, - 0.671558954847018330f, -0.740951125354959110f, 0.669282588346636010f, - -0.743007952135121720f, - 0.666999922303637470f, -0.745057785441465950f, 0.664710978203344900f, - -0.747100605980180130f, - 0.662415777590171780f, -0.749136394523459260f, 0.660114342067420480f, - -0.751165131909686370f, - 0.657806693297078640f, -0.753186799043612410f, 0.655492852999615460f, - -0.755201376896536550f, - 0.653172842953776760f, -0.757208846506484460f, 0.650846684996380990f, - -0.759209188978387960f, - 0.648514401022112550f, -0.761202385484261780f, 0.646176012983316390f, - -0.763188417263381270f, - 0.643831542889791500f, -0.765167265622458960f, 0.641481012808583160f, - -0.767138911935820400f, - 0.639124444863775730f, -0.769103337645579590f, 0.636761861236284200f, - -0.771060524261813710f, - 0.634393284163645490f, -0.773010453362736990f, 0.632018735939809060f, - -0.774953106594873820f, - 0.629638238914927100f, -0.776888465673232440f, 0.627251815495144190f, - -0.778816512381475870f, - 0.624859488142386450f, -0.780737228572094380f, 0.622461279374150080f, - -0.782650596166575730f, - 0.620057211763289210f, -0.784556597155575240f, 0.617647307937803980f, - -0.786455213599085770f, - 0.615231590580626820f, -0.788346427626606230f, 0.612810082429409710f, - -0.790230221437310030f, - 0.610382806276309480f, -0.792106577300212390f, 0.607949784967773740f, - -0.793975477554337170f, - 0.605511041404325550f, -0.795836904608883460f, 0.603066598540348280f, - -0.797690840943391040f, - 0.600616479383868970f, -0.799537269107905010f, 0.598160706996342380f, - -0.801376171723140130f, - 0.595699304492433470f, -0.803207531480644830f, 0.593232295039799800f, - -0.805031331142963660f, - 0.590759701858874280f, -0.806847553543799220f, 0.588281548222645330f, - -0.808656181588174980f, - 0.585797857456438860f, -0.810457198252594770f, 0.583308652937698290f, - -0.812250586585203880f, - 0.580813958095764530f, -0.814036329705948300f, 0.578313796411655590f, - -0.815814410806733780f, - 0.575808191417845340f, -0.817584813151583710f, 0.573297166698042320f, - -0.819347520076796900f, - 0.570780745886967370f, -0.821102514991104650f, 0.568258952670131490f, - -0.822849781375826320f, - 0.565731810783613230f, -0.824589302785025290f, 0.563199344013834090f, - -0.826321062845663420f, - 0.560661576197336030f, -0.828045045257755800f, 0.558118531220556100f, - -0.829761233794523050f, - 0.555570233019602290f, -0.831469612302545240f, 0.553016705580027580f, - -0.833170164701913190f, - 0.550457972936604810f, -0.834862874986380010f, 0.547894059173100190f, - -0.836547727223511890f, - 0.545324988422046460f, -0.838224705554837970f, 0.542750784864516000f, - -0.839893794195999410f, - 0.540171472729892970f, -0.841554977436898330f, 0.537587076295645510f, - -0.843208239641845440f, - 0.534997619887097260f, -0.844853565249707010f, 0.532403127877198010f, - -0.846490938774052020f, - 0.529803624686294830f, -0.848120344803297120f, 0.527199134781901390f, - -0.849741768000852440f, - 0.524589682678468840f, -0.851355193105265200f, 0.521975292937154390f, - -0.852960604930363630f, - 0.519355990165589530f, -0.854557988365400530f, 0.516731799017649980f, - -0.856147328375194470f, - 0.514102744193221660f, -0.857728610000272120f, 0.511468850437970520f, - -0.859301818357008360f, - 0.508830142543106990f, -0.860866938637767310f, 0.506186645345155450f, - -0.862423956111040500f, - 0.503538383725717580f, -0.863972856121586700f, 0.500885382611240940f, - -0.865513624090568980f, - 0.498227666972781870f, -0.867046245515692650f, 0.495565261825772490f, - -0.868570705971340900f, - 0.492898192229784090f, -0.870086991108711350f, 0.490226483288291100f, - -0.871595086655951090f, - 0.487550160148436050f, -0.873094978418290090f, 0.484869248000791120f, - -0.874586652278176110f, - 0.482183772079122830f, -0.876070094195406600f, 0.479493757660153010f, - -0.877545290207261240f, - 0.476799230063322250f, -0.879012226428633410f, 0.474100214650550020f, - -0.880470889052160750f, - 0.471396736825997810f, -0.881921264348354940f, 0.468688822035827960f, - -0.883363338665731580f, - 0.465976495767966130f, -0.884797098430937790f, 0.463259783551860260f, - -0.886222530148880640f, - 0.460538710958240010f, -0.887639620402853930f, 0.457813303598877290f, - -0.889048355854664570f, - 0.455083587126343840f, -0.890448723244757880f, 0.452349587233771000f, - -0.891840709392342720f, - 0.449611329654606600f, -0.893224301195515320f, 0.446868840162374330f, - -0.894599485631382580f, - 0.444122144570429260f, -0.895966249756185110f, 0.441371268731716620f, - -0.897324580705418320f, - 0.438616238538527710f, -0.898674465693953820f, 0.435857079922255470f, - -0.900015892016160280f, - 0.433093818853152010f, -0.901348847046022030f, 0.430326481340082610f, - -0.902673318237258830f, - 0.427555093430282200f, -0.903989293123443340f, 0.424779681209108810f, - -0.905296759318118820f, - 0.422000270799799790f, -0.906595704514915330f, 0.419216888363223960f, - -0.907886116487666150f, - 0.416429560097637320f, -0.909167983090522270f, 0.413638312238434560f, - -0.910441292258067140f, - 0.410843171057903910f, -0.911706032005429880f, 0.408044162864978740f, - -0.912962190428398100f, - 0.405241314004989860f, -0.914209755703530690f, 0.402434650859418540f, - -0.915448716088267830f, - 0.399624199845646790f, -0.916679059921042700f, 0.396809987416710420f, - -0.917900775621390390f, - 0.393992040061048100f, -0.919113851690057770f, 0.391170384302253980f, - -0.920318276709110480f, - 0.388345046698826300f, -0.921514039342041900f, 0.385516053843919020f, - -0.922701128333878520f, - 0.382683432365089840f, -0.923879532511286740f, 0.379847208924051110f, - -0.925049240782677580f, - 0.377007410216418310f, -0.926210242138311270f, 0.374164062971457990f, - -0.927362525650401110f, - 0.371317193951837600f, -0.928506080473215480f, 0.368466829953372320f, - -0.929640895843181330f, - 0.365612997804773960f, -0.930766961078983710f, 0.362755724367397230f, - -0.931884265581668150f, - 0.359895036534988280f, -0.932992798834738850f, 0.357030961233430030f, - -0.934092550404258870f, - 0.354163525420490510f, -0.935183509938947500f, 0.351292756085567150f, - -0.936265667170278260f, - 0.348418680249434510f, -0.937339011912574960f, 0.345541324963989150f, - -0.938403534063108060f, - 0.342660717311994380f, -0.939459223602189920f, 0.339776884406826960f, - -0.940506070593268300f, - 0.336889853392220050f, -0.941544065183020810f, 0.333999651442009490f, - -0.942573197601446870f, - 0.331106305759876430f, -0.943593458161960390f, 0.328209843579092660f, - -0.944604837261480260f, - 0.325310292162262980f, -0.945607325380521280f, 0.322407678801070020f, - -0.946600913083283530f, - 0.319502030816015750f, -0.947585591017741090f, 0.316593375556165850f, - -0.948561349915730270f, - 0.313681740398891570f, -0.949528180593036670f, 0.310767152749611470f, - -0.950486073949481700f, - 0.307849640041534980f, -0.951435020969008340f, 0.304929229735402430f, - -0.952375012719765880f, - 0.302005949319228200f, -0.953306040354193750f, 0.299079826308040480f, - -0.954228095109105670f, - 0.296150888243623960f, -0.955141168305770670f, 0.293219162694258680f, - -0.956045251349996410f, - 0.290284677254462330f, -0.956940335732208940f, 0.287347459544729570f, - -0.957826413027532910f, - 0.284407537211271820f, -0.958703474895871600f, 0.281464937925758050f, - -0.959571513081984520f, - 0.278519689385053060f, -0.960430519415565790f, 0.275571819310958250f, - -0.961280485811320640f, - 0.272621355449948980f, -0.962121404269041580f, 0.269668325572915200f, - -0.962953266873683880f, - 0.266712757474898420f, -0.963776065795439840f, 0.263754678974831510f, - -0.964589793289812650f, - 0.260794117915275570f, -0.965394441697689400f, 0.257831102162158930f, - -0.966190003445412620f, - 0.254865659604514630f, -0.966976471044852070f, 0.251897818154216910f, - -0.967753837093475510f, - 0.248927605745720260f, -0.968522094274417270f, 0.245955050335794590f, - -0.969281235356548530f, - 0.242980179903263980f, -0.970031253194543970f, 0.240003022448741500f, - -0.970772140728950350f, - 0.237023605994367340f, -0.971503890986251780f, 0.234041958583543460f, - -0.972226497078936270f, - 0.231058108280671280f, -0.972939952205560070f, 0.228072083170885790f, - -0.973644249650811870f, - 0.225083911359792780f, -0.974339382785575860f, 0.222093620973203590f, - -0.975025345066994120f, - 0.219101240156869770f, -0.975702130038528570f, 0.216106797076219600f, - -0.976369731330021140f, - 0.213110319916091360f, -0.977028142657754390f, 0.210111836880469720f, - -0.977677357824509930f, - 0.207111376192218560f, -0.978317370719627650f, 0.204108966092817010f, - -0.978948175319062200f, - 0.201104634842091960f, -0.979569765685440520f, 0.198098410717953730f, - -0.980182135968117320f, - 0.195090322016128330f, -0.980785280403230430f, 0.192080397049892380f, - -0.981379193313754560f, - 0.189068664149806280f, -0.981963869109555240f, 0.186055151663446630f, - -0.982539302287441240f, - 0.183039887955141060f, -0.983105487431216290f, 0.180022901405699510f, - -0.983662419211730250f, - 0.177004220412148860f, -0.984210092386929030f, 0.173983873387463850f, - -0.984748501801904210f, - 0.170961888760301360f, -0.985277642388941220f, 0.167938294974731230f, - -0.985797509167567370f, - 0.164913120489970090f, -0.986308097244598670f, 0.161886393780111910f, - -0.986809401814185420f, - 0.158858143333861390f, -0.987301418157858430f, 0.155828397654265320f, - -0.987784141644572180f, - 0.152797185258443410f, -0.988257567730749460f, 0.149764534677321620f, - -0.988721691960323780f, - 0.146730474455361750f, -0.989176509964781010f, 0.143695033150294580f, - -0.989622017463200780f, - 0.140658239332849240f, -0.990058210262297120f, 0.137620121586486180f, - -0.990485084256456980f, - 0.134580708507126220f, -0.990902635427780010f, 0.131540028702883280f, - -0.991310859846115440f, - 0.128498110793793220f, -0.991709753669099530f, 0.125454983411546210f, - -0.992099313142191800f, - 0.122410675199216280f, -0.992479534598709970f, 0.119365214810991350f, - -0.992850414459865100f, - 0.116318630911904880f, -0.993211949234794500f, 0.113270952177564360f, - -0.993564135520595300f, - 0.110222207293883180f, -0.993906970002356060f, 0.107172424956808870f, - -0.994240449453187900f, - 0.104121633872054730f, -0.994564570734255420f, 0.101069862754827880f, - -0.994879330794805620f, - 0.098017140329560770f, -0.995184726672196820f, 0.094963495329639061f, - -0.995480755491926940f, - 0.091908956497132696f, -0.995767414467659820f, 0.088853552582524684f, - -0.996044700901251970f, - 0.085797312344439880f, -0.996312612182778000f, 0.082740264549375803f, - -0.996571145790554840f, - 0.079682437971430126f, -0.996820299291165670f, 0.076623861392031617f, - -0.997060070339482960f, - 0.073564563599667454f, -0.997290456678690210f, 0.070504573389614009f, - -0.997511456140303450f, - 0.067443919563664106f, -0.997723066644191640f, 0.064382630929857410f, - -0.997925286198596000f, - 0.061320736302208648f, -0.998118112900149180f, 0.058258264500435732f, - -0.998301544933892890f, - 0.055195244349690031f, -0.998475580573294770f, 0.052131704680283317f, - -0.998640218180265270f, - 0.049067674327418126f, -0.998795456205172410f, 0.046003182130914644f, - -0.998941293186856870f, - 0.042938256934940959f, -0.999077727752645360f, 0.039872927587739845f, - -0.999204758618363890f, - 0.036807222941358991f, -0.999322384588349540f, 0.033741171851377642f, - -0.999430604555461730f, - 0.030674803176636581f, -0.999529417501093140f, 0.027608145778965820f, - -0.999618822495178640f, - 0.024541228522912264f, -0.999698818696204250f, 0.021474080275469605f, - -0.999769405351215280f, - 0.018406729905804820f, -0.999830581795823400f, 0.015339206284988220f, - -0.999882347454212560f, - 0.012271538285719944f, -0.999924701839144500f, 0.009203754782059960f, - -0.999957644551963900f, - 0.006135884649154515f, -0.999981175282601110f, 0.003067956762966138f, - -0.999995293809576190f -}; - -static const float32_t Weights_2048[4096] = { - 1.000000000000000000f, 0.000000000000000000f, 0.999999705862882230f, - -0.000766990318742704f, - 0.999998823451701880f, -0.001533980186284766f, 0.999997352766978210f, - -0.002300969151425805f, - 0.999995293809576190f, -0.003067956762965976f, 0.999992646580707190f, - -0.003834942569706228f, - 0.999989411081928400f, -0.004601926120448571f, 0.999985587315143200f, - -0.005368906963996343f, - 0.999981175282601110f, -0.006135884649154475f, 0.999976174986897610f, - -0.006902858724729756f, - 0.999970586430974140f, -0.007669828739531097f, 0.999964409618118280f, - -0.008436794242369799f, - 0.999957644551963900f, -0.009203754782059819f, 0.999950291236490480f, - -0.009970709907418031f, - 0.999942349676023910f, -0.010737659167264491f, 0.999933819875236000f, - -0.011504602110422714f, - 0.999924701839144500f, -0.012271538285719925f, 0.999914995573113470f, - -0.013038467241987334f, - 0.999904701082852900f, -0.013805388528060391f, 0.999893818374418490f, - -0.014572301692779064f, - 0.999882347454212560f, -0.015339206284988100f, 0.999870288328982950f, - -0.016106101853537287f, - 0.999857641005823860f, -0.016872987947281710f, 0.999844405492175240f, - -0.017639864115082053f, - 0.999830581795823400f, -0.018406729905804820f, 0.999816169924900410f, - -0.019173584868322623f, - 0.999801169887884260f, -0.019940428551514441f, 0.999785581693599210f, - -0.020707260504265895f, - 0.999769405351215280f, -0.021474080275469508f, 0.999752640870248840f, - -0.022240887414024961f, - 0.999735288260561680f, -0.023007681468839369f, 0.999717347532362190f, - -0.023774461988827555f, - 0.999698818696204250f, -0.024541228522912288f, 0.999679701762987930f, - -0.025307980620024571f, - 0.999659996743959220f, -0.026074717829103901f, 0.999639703650710200f, - -0.026841439699098531f, - 0.999618822495178640f, -0.027608145778965740f, 0.999597353289648380f, - -0.028374835617672099f, - 0.999575296046749220f, -0.029141508764193722f, 0.999552650779456990f, - -0.029908164767516555f, - 0.999529417501093140f, -0.030674803176636626f, 0.999505596225325310f, - -0.031441423540560301f, - 0.999481186966166950f, -0.032208025408304586f, 0.999456189737977340f, - -0.032974608328897335f, - 0.999430604555461730f, -0.033741171851377580f, 0.999404431433671300f, - -0.034507715524795750f, - 0.999377670388002850f, -0.035274238898213947f, 0.999350321434199440f, - -0.036040741520706229f, - 0.999322384588349540f, -0.036807222941358832f, 0.999293859866887790f, - -0.037573682709270494f, - 0.999264747286594420f, -0.038340120373552694f, 0.999235046864595850f, - -0.039106535483329888f, - 0.999204758618363890f, -0.039872927587739811f, 0.999173882565716380f, - -0.040639296235933736f, - 0.999142418724816910f, -0.041405640977076739f, 0.999110367114174890f, - -0.042171961360347947f, - 0.999077727752645360f, -0.042938256934940820f, 0.999044500659429290f, - -0.043704527250063421f, - 0.999010685854073380f, -0.044470771854938668f, 0.998976283356469820f, - -0.045236990298804590f, - 0.998941293186856870f, -0.046003182130914623f, 0.998905715365818290f, - -0.046769346900537863f, - 0.998869549914283560f, -0.047535484156959303f, 0.998832796853527990f, - -0.048301593449480144f, - 0.998795456205172410f, -0.049067674327418015f, 0.998757527991183340f, - -0.049833726340107277f, - 0.998719012233872940f, -0.050599749036899282f, 0.998679908955899090f, - -0.051365741967162593f, - 0.998640218180265270f, -0.052131704680283324f, 0.998599939930320370f, - -0.052897636725665324f, - 0.998559074229759310f, -0.053663537652730520f, 0.998517621102622210f, - -0.054429407010919133f, - 0.998475580573294770f, -0.055195244349689934f, 0.998432952666508440f, - -0.055961049218520569f, - 0.998389737407340160f, -0.056726821166907748f, 0.998345934821212370f, - -0.057492559744367566f, - 0.998301544933892890f, -0.058258264500435752f, 0.998256567771495180f, - -0.059023934984667931f, - 0.998211003360478190f, -0.059789570746639868f, 0.998164851727646240f, - -0.060555171335947788f, - 0.998118112900149180f, -0.061320736302208578f, 0.998070786905482340f, - -0.062086265195060088f, - 0.998022873771486240f, -0.062851757564161406f, 0.997974373526346990f, - -0.063617212959193106f, - 0.997925286198596000f, -0.064382630929857465f, 0.997875611817110150f, - -0.065148011025878833f, - 0.997825350411111640f, -0.065913352797003805f, 0.997774502010167820f, - -0.066678655793001557f, - 0.997723066644191640f, -0.067443919563664051f, 0.997671044343441000f, - -0.068209143658806329f, - 0.997618435138519550f, -0.068974327628266746f, 0.997565239060375750f, - -0.069739471021907307f, - 0.997511456140303450f, -0.070504573389613856f, 0.997457086409941910f, - -0.071269634281296401f, - 0.997402129901275300f, -0.072034653246889332f, 0.997346586646633230f, - -0.072799629836351673f, - 0.997290456678690210f, -0.073564563599667426f, 0.997233740030466280f, - -0.074329454086845756f, - 0.997176436735326190f, -0.075094300847921305f, 0.997118546826979980f, - -0.075859103432954447f, - 0.997060070339482960f, -0.076623861392031492f, 0.997001007307235290f, - -0.077388574275265049f, - 0.996941357764982160f, -0.078153241632794232f, 0.996881121747813850f, - -0.078917863014784942f, - 0.996820299291165670f, -0.079682437971430126f, 0.996758890430818000f, - -0.080446966052950014f, - 0.996696895202896060f, -0.081211446809592441f, 0.996634313643869900f, - -0.081975879791633066f, - 0.996571145790554840f, -0.082740264549375692f, 0.996507391680110820f, - -0.083504600633152432f, - 0.996443051350042630f, -0.084268887593324071f, 0.996378124838200210f, - -0.085033124980280275f, - 0.996312612182778000f, -0.085797312344439894f, 0.996246513422315520f, - -0.086561449236251170f, - 0.996179828595696980f, -0.087325535206192059f, 0.996112557742151130f, - -0.088089569804770507f, - 0.996044700901251970f, -0.088853552582524600f, 0.995976258112917790f, - -0.089617483090022959f, - 0.995907229417411720f, -0.090381360877864983f, 0.995837614855341610f, - -0.091145185496681005f, - 0.995767414467659820f, -0.091908956497132724f, 0.995696628295663520f, - -0.092672673429913310f, - 0.995625256380994310f, -0.093436335845747787f, 0.995553298765638470f, - -0.094199943295393204f, - 0.995480755491926940f, -0.094963495329638992f, 0.995407626602534900f, - -0.095726991499307162f, - 0.995333912140482280f, -0.096490431355252593f, 0.995259612149133390f, - -0.097253814448363271f, - 0.995184726672196930f, -0.098017140329560604f, 0.995109255753726110f, - -0.098780408549799623f, - 0.995033199438118630f, -0.099543618660069319f, 0.994956557770116380f, - -0.100306770211392860f, - 0.994879330794805620f, -0.101069862754827820f, 0.994801518557617110f, - -0.101832895841466530f, - 0.994723121104325700f, -0.102595869022436280f, 0.994644138481050710f, - -0.103358781848899610f, - 0.994564570734255420f, -0.104121633872054590f, 0.994484417910747600f, - -0.104884424643134970f, - 0.994403680057679100f, -0.105647153713410620f, 0.994322357222545810f, - -0.106409820634187680f, - 0.994240449453187900f, -0.107172424956808840f, 0.994157956797789730f, - -0.107934966232653650f, - 0.994074879304879370f, -0.108697444013138720f, 0.993991217023329380f, - -0.109459857849717980f, - 0.993906970002356060f, -0.110222207293883060f, 0.993822138291519660f, - -0.110984491897163390f, - 0.993736721940724600f, -0.111746711211126590f, 0.993650721000219120f, - -0.112508864787378690f, - 0.993564135520595300f, -0.113270952177564350f, 0.993476965552789190f, - -0.114032972933367200f, - 0.993389211148080650f, -0.114794926606510080f, 0.993300872358093280f, - -0.115556812748755260f, - 0.993211949234794500f, -0.116318630911904750f, 0.993122441830495580f, - -0.117080380647800590f, - 0.993032350197851410f, -0.117842061508324980f, 0.992941674389860470f, - -0.118603673045400720f, - 0.992850414459865100f, -0.119365214810991350f, 0.992758570461551140f, - -0.120126686357101500f, - 0.992666142448948020f, -0.120888087235777080f, 0.992573130476428810f, - -0.121649416999105530f, - 0.992479534598709970f, -0.122410675199216200f, 0.992385354870851670f, - -0.123171861388280480f, - 0.992290591348257370f, -0.123932975118512160f, 0.992195244086673920f, - -0.124694015942167640f, - 0.992099313142191800f, -0.125454983411546230f, 0.992002798571244520f, - -0.126215877078990350f, - 0.991905700430609330f, -0.126976696496885870f, 0.991808018777406430f, - -0.127737441217662310f, - 0.991709753669099530f, -0.128498110793793170f, 0.991610905163495370f, - -0.129258704777796140f, - 0.991511473318743900f, -0.130019222722233350f, 0.991411458193338540f, - -0.130779664179711710f, - 0.991310859846115440f, -0.131540028702883120f, 0.991209678336254060f, - -0.132300315844444650f, - 0.991107913723276890f, -0.133060525157139060f, 0.991005566067049370f, - -0.133820656193754720f, - 0.990902635427780010f, -0.134580708507126170f, 0.990799121866020370f, - -0.135340681650134210f, - 0.990695025442664630f, -0.136100575175706200f, 0.990590346218950150f, - -0.136860388636816380f, - 0.990485084256457090f, -0.137620121586486040f, 0.990379239617108160f, - -0.138379773577783890f, - 0.990272812363169110f, -0.139139344163826200f, 0.990165802557248400f, - -0.139898832897777210f, - 0.990058210262297120f, -0.140658239332849210f, 0.989950035541608990f, - -0.141417563022303020f, - 0.989841278458820530f, -0.142176803519448030f, 0.989731939077910570f, - -0.142935960377642670f, - 0.989622017463200890f, -0.143695033150294470f, 0.989511513679355190f, - -0.144454021390860470f, - 0.989400427791380380f, -0.145212924652847460f, 0.989288759864625170f, - -0.145971742489812210f, - 0.989176509964781010f, -0.146730474455361750f, 0.989063678157881540f, - -0.147489120103153570f, - 0.988950264510302990f, -0.148247678986896030f, 0.988836269088763540f, - -0.149006150660348450f, - 0.988721691960323780f, -0.149764534677321510f, 0.988606533192386450f, - -0.150522830591677400f, - 0.988490792852696590f, -0.151281037957330220f, 0.988374471009341280f, - -0.152039156328246050f, - 0.988257567730749460f, -0.152797185258443440f, 0.988140083085692570f, - -0.153555124301993450f, - 0.988022017143283530f, -0.154312973013020100f, 0.987903369972977790f, - -0.155070730945700510f, - 0.987784141644572180f, -0.155828397654265230f, 0.987664332228205710f, - -0.156585972692998430f, - 0.987543941794359230f, -0.157343455616238250f, 0.987422970413855410f, - -0.158100845978376980f, - 0.987301418157858430f, -0.158858143333861450f, 0.987179285097874340f, - -0.159615347237193060f, - 0.987056571305750970f, -0.160372457242928280f, 0.986933276853677710f, - -0.161129472905678810f, - 0.986809401814185530f, -0.161886393780111830f, 0.986684946260146690f, - -0.162643219420950310f, - 0.986559910264775410f, -0.163399949382973230f, 0.986434293901627180f, - -0.164156583221015810f, - 0.986308097244598670f, -0.164913120489969890f, 0.986181320367928270f, - -0.165669560744784120f, - 0.986053963346195440f, -0.166425903540464100f, 0.985926026254321130f, - -0.167182148432072940f, - 0.985797509167567480f, -0.167938294974731170f, 0.985668412161537550f, - -0.168694342723617330f, - 0.985538735312176060f, -0.169450291233967960f, 0.985408478695768420f, - -0.170206140061078070f, - 0.985277642388941220f, -0.170961888760301220f, 0.985146226468662230f, - -0.171717536887049970f, - 0.985014231012239840f, -0.172473083996795950f, 0.984881656097323700f, - -0.173228529645070320f, - 0.984748501801904210f, -0.173983873387463820f, 0.984614768204312600f, - -0.174739114779627200f, - 0.984480455383220930f, -0.175494253377271430f, 0.984345563417641900f, - -0.176249288736167880f, - 0.984210092386929030f, -0.177004220412148750f, 0.984074042370776450f, - -0.177759047961107170f, - 0.983937413449218920f, -0.178513770938997510f, 0.983800205702631600f, - -0.179268388901835750f, - 0.983662419211730250f, -0.180022901405699510f, 0.983524054057571260f, - -0.180777308006728590f, - 0.983385110321551180f, -0.181531608261124970f, 0.983245588085407070f, - -0.182285801725153300f, - 0.983105487431216290f, -0.183039887955140950f, 0.982964808441396440f, - -0.183793866507478450f, - 0.982823551198705240f, -0.184547736938619620f, 0.982681715786240860f, - -0.185301498805081900f, - 0.982539302287441240f, -0.186055151663446630f, 0.982396310786084690f, - -0.186808695070359270f, - 0.982252741366289370f, -0.187562128582529600f, 0.982108594112513610f, - -0.188315451756732120f, - 0.981963869109555240f, -0.189068664149806190f, 0.981818566442552500f, - -0.189821765318656410f, - 0.981672686196983110f, -0.190574754820252740f, 0.981526228458664770f, - -0.191327632211630900f, - 0.981379193313754560f, -0.192080397049892440f, 0.981231580848749730f, - -0.192833048892205230f, - 0.981083391150486710f, -0.193585587295803610f, 0.980934624306141640f, - -0.194338011817988600f, - 0.980785280403230430f, -0.195090322016128250f, 0.980635359529608120f, - -0.195842517447657850f, - 0.980484861773469380f, -0.196594597670080220f, 0.980333787223347960f, - -0.197346562240965920f, - 0.980182135968117430f, -0.198098410717953560f, 0.980029908096990090f, - -0.198850142658750090f, - 0.979877103699517640f, -0.199601757621130970f, 0.979723722865591170f, - -0.200353255162940450f, - 0.979569765685440520f, -0.201104634842091900f, 0.979415232249634780f, - -0.201855896216568050f, - 0.979260122649082020f, -0.202607038844421130f, 0.979104436975029250f, - -0.203358062283773320f, - 0.978948175319062200f, -0.204108966092816870f, 0.978791337773105670f, - -0.204859749829814420f, - 0.978633924429423210f, -0.205610413053099240f, 0.978475935380616830f, - -0.206360955321075510f, - 0.978317370719627650f, -0.207111376192218560f, 0.978158230539735050f, - -0.207861675225075070f, - 0.977998514934557140f, -0.208611851978263490f, 0.977838223998050430f, - -0.209361906010474160f, - 0.977677357824509930f, -0.210111836880469610f, 0.977515916508569280f, - -0.210861644147084860f, - 0.977353900145199960f, -0.211611327369227550f, 0.977191308829712280f, - -0.212360886105878420f, - 0.977028142657754390f, -0.213110319916091360f, 0.976864401725312640f, - -0.213859628358993750f, - 0.976700086128711840f, -0.214608810993786760f, 0.976535195964614470f, - -0.215357867379745550f, - 0.976369731330021140f, -0.216106797076219520f, 0.976203692322270560f, - -0.216855599642632620f, - 0.976037079039039020f, -0.217604274638483640f, 0.975869891578341030f, - -0.218352821623346320f, - 0.975702130038528570f, -0.219101240156869800f, 0.975533794518291360f, - -0.219849529798778700f, - 0.975364885116656980f, -0.220597690108873510f, 0.975195401932990370f, - -0.221345720647030810f, - 0.975025345066994120f, -0.222093620973203510f, 0.974854714618708430f, - -0.222841390647421120f, - 0.974683510688510670f, -0.223589029229789990f, 0.974511733377115720f, - -0.224336536280493600f, - 0.974339382785575860f, -0.225083911359792830f, 0.974166459015280320f, - -0.225831154028026170f, - 0.973992962167955830f, -0.226578263845610000f, 0.973818892345666100f, - -0.227325240373038860f, - 0.973644249650811980f, -0.228072083170885730f, 0.973469034186131070f, - -0.228818791799802220f, - 0.973293246054698250f, -0.229565365820518870f, 0.973116885359925130f, - -0.230311804793845440f, - 0.972939952205560180f, -0.231058108280671110f, 0.972762446695688570f, - -0.231804275841964780f, - 0.972584368934732210f, -0.232550307038775240f, 0.972405719027449770f, - -0.233296201432231590f, - 0.972226497078936270f, -0.234041958583543430f, 0.972046703194623500f, - -0.234787578054000970f, - 0.971866337480279400f, -0.235533059404975490f, 0.971685400042008540f, - -0.236278402197919570f, - 0.971503890986251780f, -0.237023605994367200f, 0.971321810419786160f, - -0.237768670355934190f, - 0.971139158449725090f, -0.238513594844318420f, 0.970955935183517970f, - -0.239258379021299980f, - 0.970772140728950350f, -0.240003022448741500f, 0.970587775194143630f, - -0.240747524688588430f, - 0.970402838687555500f, -0.241491885302869330f, 0.970217331317979160f, - -0.242236103853696010f, - 0.970031253194543970f, -0.242980179903263870f, 0.969844604426714830f, - -0.243724113013852160f, - 0.969657385124292450f, -0.244467902747824150f, 0.969469595397413060f, - -0.245211548667627540f, - 0.969281235356548530f, -0.245955050335794590f, 0.969092305112506210f, - -0.246698407314942410f, - 0.968902804776428870f, -0.247441619167773270f, 0.968712734459794780f, - -0.248184685457074780f, - 0.968522094274417380f, -0.248927605745720150f, 0.968330884332445190f, - -0.249670379596668570f, - 0.968139104746362440f, -0.250413006572965220f, 0.967946755628987800f, - -0.251155486237741920f, - 0.967753837093475510f, -0.251897818154216970f, 0.967560349253314360f, - -0.252640001885695520f, - 0.967366292222328510f, -0.253382036995570160f, 0.967171666114676640f, - -0.254123923047320620f, - 0.966976471044852070f, -0.254865659604514570f, 0.966780707127683270f, - -0.255607246230807380f, - 0.966584374478333120f, -0.256348682489942910f, 0.966387473212298900f, - -0.257089967945753120f, - 0.966190003445412500f, -0.257831102162158990f, 0.965991965293840570f, - -0.258572084703170340f, - 0.965793358874083680f, -0.259312915132886230f, 0.965594184302976830f, - -0.260053593015495190f, - 0.965394441697689400f, -0.260794117915275510f, 0.965194131175724720f, - -0.261534489396595520f, - 0.964993252854920320f, -0.262274707023913590f, 0.964791806853447900f, - -0.263014770361779000f, - 0.964589793289812760f, -0.263754678974831350f, 0.964387212282854290f, - -0.264494432427801630f, - 0.964184063951745830f, -0.265234030285511790f, 0.963980348415994110f, - -0.265973472112875590f, - 0.963776065795439840f, -0.266712757474898370f, 0.963571216210257320f, - -0.267451885936677620f, - 0.963365799780954050f, -0.268190857063403180f, 0.963159816628371360f, - -0.268929670420357260f, - 0.962953266873683880f, -0.269668325572915090f, 0.962746150638399410f, - -0.270406822086544820f, - 0.962538468044359160f, -0.271145159526808010f, 0.962330219213737400f, - -0.271883337459359720f, - 0.962121404269041580f, -0.272621355449948980f, 0.961912023333112210f, - -0.273359213064418680f, - 0.961702076529122540f, -0.274096909868706380f, 0.961491563980579000f, - -0.274834445428843940f, - 0.961280485811320640f, -0.275571819310958140f, 0.961068842145519350f, - -0.276309031081271080f, - 0.960856633107679660f, -0.277046080306099900f, 0.960643858822638590f, - -0.277782966551857690f, - 0.960430519415565790f, -0.278519689385053060f, 0.960216615011963430f, - -0.279256248372291180f, - 0.960002145737665960f, -0.279992643080273220f, 0.959787111718839900f, - -0.280728873075797190f, - 0.959571513081984520f, -0.281464937925757940f, 0.959355349953930790f, - -0.282200837197147560f, - 0.959138622461841890f, -0.282936570457055390f, 0.958921330733213170f, - -0.283672137272668430f, - 0.958703474895871600f, -0.284407537211271880f, 0.958485055077976100f, - -0.285142769840248670f, - 0.958266071408017670f, -0.285877834727080620f, 0.958046524014818600f, - -0.286612731439347790f, - 0.957826413027532910f, -0.287347459544729510f, 0.957605738575646350f, - -0.288082018611004130f, - 0.957384500788975860f, -0.288816408206049480f, 0.957162699797670210f, - -0.289550627897843030f, - 0.956940335732208820f, -0.290284677254462330f, 0.956717408723403050f, - -0.291018555844085090f, - 0.956493918902395100f, -0.291752263234989260f, 0.956269866400658030f, - -0.292485798995553880f, - 0.956045251349996410f, -0.293219162694258630f, 0.955820073882545420f, - -0.293952353899684660f, - 0.955594334130771110f, -0.294685372180514330f, 0.955368032227470350f, - -0.295418217105532010f, - 0.955141168305770780f, -0.296150888243623790f, 0.954913742499130520f, - -0.296883385163778270f, - 0.954685754941338340f, -0.297615707435086200f, 0.954457205766513490f, - -0.298347854626741400f, - 0.954228095109105670f, -0.299079826308040480f, 0.953998423103894490f, - -0.299811622048383350f, - 0.953768189885990330f, -0.300543241417273450f, 0.953537395590833280f, - -0.301274683984317950f, - 0.953306040354193860f, -0.302005949319228080f, 0.953074124312172200f, - -0.302737036991819140f, - 0.952841647601198720f, -0.303467946572011320f, 0.952608610358033350f, - -0.304198677629829110f, - 0.952375012719765880f, -0.304929229735402370f, 0.952140854823815830f, - -0.305659602458966120f, - 0.951906136807932350f, -0.306389795370860920f, 0.951670858810193860f, - -0.307119808041533100f, - 0.951435020969008340f, -0.307849640041534870f, 0.951198623423113230f, - -0.308579290941525090f, - 0.950961666311575080f, -0.309308760312268730f, 0.950724149773789610f, - -0.310038047724637890f, - 0.950486073949481700f, -0.310767152749611470f, 0.950247438978705230f, - -0.311496074958275910f, - 0.950008245001843000f, -0.312224813921824880f, 0.949768492159606680f, - -0.312953369211560200f, - 0.949528180593036670f, -0.313681740398891520f, 0.949287310443502120f, - -0.314409927055336660f, - 0.949045881852700560f, -0.315137928752522440f, 0.948803894962658490f, - -0.315865745062183960f, - 0.948561349915730270f, -0.316593375556165850f, 0.948318246854599090f, - -0.317320819806421740f, - 0.948074585922276230f, -0.318048077385014950f, 0.947830367262101010f, - -0.318775147864118480f, - 0.947585591017741090f, -0.319502030816015690f, 0.947340257333192050f, - -0.320228725813099860f, - 0.947094366352777220f, -0.320955232427875210f, 0.946847918221148000f, - -0.321681550232956580f, - 0.946600913083283530f, -0.322407678801069850f, 0.946353351084490590f, - -0.323133617705052330f, - 0.946105232370403450f, -0.323859366517852850f, 0.945856557086983910f, - -0.324584924812532150f, - 0.945607325380521280f, -0.325310292162262930f, 0.945357537397632290f, - -0.326035468140330240f, - 0.945107193285260610f, -0.326760452320131730f, 0.944856293190677210f, - -0.327485244275178000f, - 0.944604837261480260f, -0.328209843579092500f, 0.944352825645594750f, - -0.328934249805612200f, - 0.944100258491272660f, -0.329658462528587490f, 0.943847135947092690f, - -0.330382481321982780f, - 0.943593458161960390f, -0.331106305759876430f, 0.943339225285107720f, - -0.331829935416461110f, - 0.943084437466093490f, -0.332553369866044220f, 0.942829094854802710f, - -0.333276608683047930f, - 0.942573197601446870f, -0.333999651442009380f, 0.942316745856563780f, - -0.334722497717581220f, - 0.942059739771017310f, -0.335445147084531600f, 0.941802179495997650f, - -0.336167599117744520f, - 0.941544065183020810f, -0.336889853392220050f, 0.941285396983928660f, - -0.337611909483074620f, - 0.941026175050889260f, -0.338333766965541130f, 0.940766399536396070f, - -0.339055425414969640f, - 0.940506070593268300f, -0.339776884406826850f, 0.940245188374650880f, - -0.340498143516697160f, - 0.939983753034014050f, -0.341219202320282360f, 0.939721764725153340f, - -0.341940060393402190f, - 0.939459223602189920f, -0.342660717311994380f, 0.939196129819569900f, - -0.343381172652115040f, - 0.938932483532064600f, -0.344101425989938810f, 0.938668284894770170f, - -0.344821476901759290f, - 0.938403534063108060f, -0.345541324963989090f, 0.938138231192824360f, - -0.346260969753160010f, - 0.937872376439989890f, -0.346980410845923680f, 0.937605969960999990f, - -0.347699647819051380f, - 0.937339011912574960f, -0.348418680249434560f, 0.937071502451759190f, - -0.349137507714084970f, - 0.936803441735921560f, -0.349856129790134920f, 0.936534829922755500f, - -0.350574546054837510f, - 0.936265667170278260f, -0.351292756085567090f, 0.935995953636831410f, - -0.352010759459819080f, - 0.935725689481080370f, -0.352728555755210730f, 0.935454874862014620f, - -0.353446144549480810f, - 0.935183509938947610f, -0.354163525420490340f, 0.934911594871516090f, - -0.354880697946222790f, - 0.934639129819680780f, -0.355597661704783850f, 0.934366114943725790f, - -0.356314416274402410f, - 0.934092550404258980f, -0.357030961233429980f, 0.933818436362210960f, - -0.357747296160341900f, - 0.933543772978836170f, -0.358463420633736540f, 0.933268560415712050f, - -0.359179334232336500f, - 0.932992798834738960f, -0.359895036534988110f, 0.932716488398140250f, - -0.360610527120662270f, - 0.932439629268462360f, -0.361325805568454280f, 0.932162221608574430f, - -0.362040871457584180f, - 0.931884265581668150f, -0.362755724367397230f, 0.931605761351257830f, - -0.363470363877363760f, - 0.931326709081180430f, -0.364184789567079890f, 0.931047108935595280f, - -0.364899001016267320f, - 0.930766961078983710f, -0.365612997804773850f, 0.930486265676149780f, - -0.366326779512573590f, - 0.930205022892219070f, -0.367040345719767180f, 0.929923232892639670f, - -0.367753696006581980f, - 0.929640895843181330f, -0.368466829953372320f, 0.929358011909935500f, - -0.369179747140620020f, - 0.929074581259315860f, -0.369892447148934100f, 0.928790604058057020f, - -0.370604929559051670f, - 0.928506080473215590f, -0.371317193951837540f, 0.928221010672169440f, - -0.372029239908285010f, - 0.927935394822617890f, -0.372741067009515760f, 0.927649233092581180f, - -0.373452674836780300f, - 0.927362525650401110f, -0.374164062971457930f, 0.927075272664740100f, - -0.374875230995057540f, - 0.926787474304581750f, -0.375586178489217220f, 0.926499130739230510f, - -0.376296905035704790f, - 0.926210242138311380f, -0.377007410216418260f, 0.925920808671770070f, - -0.377717693613385640f, - 0.925630830509872720f, -0.378427754808765560f, 0.925340307823206310f, - -0.379137593384847320f, - 0.925049240782677580f, -0.379847208924051160f, 0.924757629559513910f, - -0.380556601008928520f, - 0.924465474325262600f, -0.381265769222162380f, 0.924172775251791200f, - -0.381974713146567220f, - 0.923879532511286740f, -0.382683432365089780f, 0.923585746276256670f, - -0.383391926460808660f, - 0.923291416719527640f, -0.384100195016935040f, 0.922996544014246250f, - -0.384808237616812880f, - 0.922701128333878630f, -0.385516053843918850f, 0.922405169852209880f, - -0.386223643281862980f, - 0.922108668743345180f, -0.386931005514388580f, 0.921811625181708120f, - -0.387638140125372730f, - 0.921514039342042010f, -0.388345046698826250f, 0.921215911399408730f, - -0.389051724818894380f, - 0.920917241529189520f, -0.389758174069856410f, 0.920618029907083970f, - -0.390464394036126590f, - 0.920318276709110590f, -0.391170384302253870f, 0.920017982111606570f, - -0.391876144452922350f, - 0.919717146291227360f, -0.392581674072951470f, 0.919415769424947070f, - -0.393286972747296400f, - 0.919113851690057770f, -0.393992040061048100f, 0.918811393264170050f, - -0.394696875599433560f, - 0.918508394325212250f, -0.395401478947816350f, 0.918204855051430900f, - -0.396105849691696270f, - 0.917900775621390500f, -0.396809987416710310f, 0.917596156213972950f, - -0.397513891708632330f, - 0.917290997008377910f, -0.398217562153373560f, 0.916985298184123000f, - -0.398920998336982910f, - 0.916679059921042700f, -0.399624199845646790f, 0.916372282399289140f, - -0.400327166265690090f, - 0.916064965799331720f, -0.401029897183575620f, 0.915757110301956720f, - -0.401732392185905010f, - 0.915448716088267830f, -0.402434650859418430f, 0.915139783339685260f, - -0.403136672790995300f, - 0.914830312237946200f, -0.403838457567654070f, 0.914520302965104450f, - -0.404540004776553000f, - 0.914209755703530690f, -0.405241314004989860f, 0.913898670635911680f, - -0.405942384840402510f, - 0.913587047945250810f, -0.406643216870369030f, 0.913274887814867760f, - -0.407343809682607970f, - 0.912962190428398210f, -0.408044162864978690f, 0.912648955969793900f, - -0.408744276005481360f, - 0.912335184623322750f, -0.409444148692257590f, 0.912020876573568340f, - -0.410143780513590240f, - 0.911706032005429880f, -0.410843171057903910f, 0.911390651104122430f, - -0.411542319913765220f, - 0.911074734055176360f, -0.412241226669882890f, 0.910758281044437570f, - -0.412939890915108080f, - 0.910441292258067250f, -0.413638312238434500f, 0.910123767882541680f, - -0.414336490228999100f, - 0.909805708104652220f, -0.415034424476081630f, 0.909487113111505430f, - -0.415732114569105360f, - 0.909167983090522380f, -0.416429560097637150f, 0.908848318229439120f, - -0.417126760651387870f, - 0.908528118716306120f, -0.417823715820212270f, 0.908207384739488700f, - -0.418520425194109700f, - 0.907886116487666260f, -0.419216888363223910f, 0.907564314149832630f, - -0.419913104917843620f, - 0.907241977915295820f, -0.420609074448402510f, 0.906919107973678140f, - -0.421304796545479640f, - 0.906595704514915330f, -0.422000270799799680f, 0.906271767729257660f, - -0.422695496802232950f, - 0.905947297807268460f, -0.423390474143796050f, 0.905622294939825270f, - -0.424085202415651560f, - 0.905296759318118820f, -0.424779681209108810f, 0.904970691133653250f, - -0.425473910115623800f, - 0.904644090578246240f, -0.426167888726799620f, 0.904316957844028320f, - -0.426861616634386430f, - 0.903989293123443340f, -0.427555093430282080f, 0.903661096609247980f, - -0.428248318706531960f, - 0.903332368494511820f, -0.428941292055329490f, 0.903003108972617150f, - -0.429634013069016380f, - 0.902673318237258830f, -0.430326481340082610f, 0.902342996482444200f, - -0.431018696461167030f, - 0.902012143902493180f, -0.431710658025057260f, 0.901680760692037730f, - -0.432402365624690140f, - 0.901348847046022030f, -0.433093818853151960f, 0.901016403159702330f, - -0.433785017303678520f, - 0.900683429228646970f, -0.434475960569655650f, 0.900349925448735600f, - -0.435166648244619260f, - 0.900015892016160280f, -0.435857079922255470f, 0.899681329127423930f, - -0.436547255196401200f, - 0.899346236979341570f, -0.437237173661044090f, 0.899010615769039070f, - -0.437926834910322860f, - 0.898674465693953820f, -0.438616238538527660f, 0.898337786951834310f, - -0.439305384140099950f, - 0.898000579740739880f, -0.439994271309633260f, 0.897662844259040860f, - -0.440682899641872900f, - 0.897324580705418320f, -0.441371268731716670f, 0.896985789278863970f, - -0.442059378174214700f, - 0.896646470178680150f, -0.442747227564570020f, 0.896306623604479550f, - -0.443434816498138480f, - 0.895966249756185220f, -0.444122144570429200f, 0.895625348834030110f, - -0.444809211377104880f, - 0.895283921038557580f, -0.445496016513981740f, 0.894941966570620750f, - -0.446182559577030070f, - 0.894599485631382700f, -0.446868840162374160f, 0.894256478422316040f, - -0.447554857866293010f, - 0.893912945145203250f, -0.448240612285219890f, 0.893568886002135910f, - -0.448926103015743260f, - 0.893224301195515320f, -0.449611329654606540f, 0.892879190928051680f, - -0.450296291798708610f, - 0.892533555402764580f, -0.450980989045103860f, 0.892187394822982480f, - -0.451665420991002490f, - 0.891840709392342720f, -0.452349587233770890f, 0.891493499314791380f, - -0.453033487370931580f, - 0.891145764794583180f, -0.453717121000163870f, 0.890797506036281490f, - -0.454400487719303580f, - 0.890448723244757880f, -0.455083587126343840f, 0.890099416625192320f, - -0.455766418819434640f, - 0.889749586383072780f, -0.456448982396883920f, 0.889399232724195520f, - -0.457131277457156980f, - 0.889048355854664570f, -0.457813303598877170f, 0.888696955980891600f, - -0.458495060420826270f, - 0.888345033309596350f, -0.459176547521944090f, 0.887992588047805560f, - -0.459857764501329540f, - 0.887639620402853930f, -0.460538710958240010f, 0.887286130582383150f, - -0.461219386492092380f, - 0.886932118794342190f, -0.461899790702462730f, 0.886577585246987040f, - -0.462579923189086810f, - 0.886222530148880640f, -0.463259783551860150f, 0.885866953708892790f, - -0.463939371390838520f, - 0.885510856136199950f, -0.464618686306237820f, 0.885154237640285110f, - -0.465297727898434600f, - 0.884797098430937790f, -0.465976495767966180f, 0.884439438718253810f, - -0.466654989515530920f, - 0.884081258712634990f, -0.467333208741988420f, 0.883722558624789660f, - -0.468011153048359830f, - 0.883363338665731580f, -0.468688822035827900f, 0.883003599046780830f, - -0.469366215305737520f, - 0.882643339979562790f, -0.470043332459595620f, 0.882282561676008710f, - -0.470720173099071600f, - 0.881921264348355050f, -0.471396736825997640f, 0.881559448209143780f, - -0.472073023242368660f, - 0.881197113471222090f, -0.472749031950342790f, 0.880834260347742040f, - -0.473424762552241530f, - 0.880470889052160750f, -0.474100214650549970f, 0.880106999798240360f, - -0.474775387847917120f, - 0.879742592800047410f, -0.475450281747155870f, 0.879377668271953290f, - -0.476124895951243580f, - 0.879012226428633530f, -0.476799230063322090f, 0.878646267485068130f, - -0.477473283686698060f, - 0.878279791656541580f, -0.478147056424843010f, 0.877912799158641840f, - -0.478820547881393890f, - 0.877545290207261350f, -0.479493757660153010f, 0.877177265018595940f, - -0.480166685365088390f, - 0.876808723809145650f, -0.480839330600333960f, 0.876439666795713610f, - -0.481511692970189860f, - 0.876070094195406600f, -0.482183772079122720f, 0.875700006225634600f, - -0.482855567531765670f, - 0.875329403104110890f, -0.483527078932918740f, 0.874958285048851650f, - -0.484198305887549030f, - 0.874586652278176110f, -0.484869248000791060f, 0.874214505010706300f, - -0.485539904877946960f, - 0.873841843465366860f, -0.486210276124486420f, 0.873468667861384880f, - -0.486880361346047340f, - 0.873094978418290090f, -0.487550160148436000f, 0.872720775355914300f, - -0.488219672137626790f, - 0.872346058894391540f, -0.488888896919763170f, 0.871970829254157810f, - -0.489557834101157440f, - 0.871595086655950980f, -0.490226483288291160f, 0.871218831320811020f, - -0.490894844087815090f, - 0.870842063470078980f, -0.491562916106549900f, 0.870464783325397670f, - -0.492230698951486020f, - 0.870086991108711460f, -0.492898192229784040f, 0.869708687042265670f, - -0.493565395548774770f, - 0.869329871348606840f, -0.494232308515959670f, 0.868950544250582380f, - -0.494898930739011260f, - 0.868570705971340900f, -0.495565261825772540f, 0.868190356734331310f, - -0.496231301384258250f, - 0.867809496763303320f, -0.496897049022654470f, 0.867428126282306920f, - -0.497562504349319150f, - 0.867046245515692650f, -0.498227666972781870f, 0.866663854688111130f, - -0.498892536501744590f, - 0.866280954024512990f, -0.499557112545081840f, 0.865897543750148820f, - -0.500221394711840680f, - 0.865513624090569090f, -0.500885382611240710f, 0.865129195271623800f, - -0.501549075852675390f, - 0.864744257519462380f, -0.502212474045710790f, 0.864358811060534030f, - -0.502875576800086990f, - 0.863972856121586810f, -0.503538383725717580f, 0.863586392929668100f, - -0.504200894432690340f, - 0.863199421712124160f, -0.504863108531267590f, 0.862811942696600330f, - -0.505525025631885390f, - 0.862423956111040610f, -0.506186645345155230f, 0.862035462183687210f, - -0.506847967281863210f, - 0.861646461143081300f, -0.507508991052970870f, 0.861256953218062170f, - -0.508169716269614600f, - 0.860866938637767310f, -0.508830142543106990f, 0.860476417631632070f, - -0.509490269484936360f, - 0.860085390429390140f, -0.510150096706766810f, 0.859693857261072610f, - -0.510809623820439040f, - 0.859301818357008470f, -0.511468850437970300f, 0.858909273947823900f, - -0.512127776171554690f, - 0.858516224264442740f, -0.512786400633562960f, 0.858122669538086140f, - -0.513444723436543460f, - 0.857728610000272120f, -0.514102744193221660f, 0.857334045882815590f, - -0.514760462516501200f, - 0.856938977417828760f, -0.515417878019462930f, 0.856543404837719960f, - -0.516074990315366630f, - 0.856147328375194470f, -0.516731799017649870f, 0.855750748263253920f, - -0.517388303739929060f, - 0.855353664735196030f, -0.518044504095999340f, 0.854956078024614930f, - -0.518700399699834950f, - 0.854557988365400530f, -0.519355990165589640f, 0.854159395991738850f, - -0.520011275107596040f, - 0.853760301138111410f, -0.520666254140367160f, 0.853360704039295430f, - -0.521320926878595660f, - 0.852960604930363630f, -0.521975292937154390f, 0.852560004046684080f, - -0.522629351931096610f, - 0.852158901623919830f, -0.523283103475656430f, 0.851757297898029120f, - -0.523936547186248600f, - 0.851355193105265200f, -0.524589682678468950f, 0.850952587482175730f, - -0.525242509568094710f, - 0.850549481265603480f, -0.525895027471084630f, 0.850145874692685210f, - -0.526547236003579440f, - 0.849741768000852550f, -0.527199134781901280f, 0.849337161427830780f, - -0.527850723422555230f, - 0.848932055211639610f, -0.528502001542228480f, 0.848526449590592650f, - -0.529152968757790610f, - 0.848120344803297230f, -0.529803624686294610f, 0.847713741088654380f, - -0.530453968944976320f, - 0.847306638685858320f, -0.531104001151255000f, 0.846899037834397240f, - -0.531753720922733320f, - 0.846490938774052130f, -0.532403127877197900f, 0.846082341744897050f, - -0.533052221632619450f, - 0.845673246987299070f, -0.533701001807152960f, 0.845263654741918220f, - -0.534349468019137520f, - 0.844853565249707120f, -0.534997619887097150f, 0.844442978751910660f, - -0.535645457029741090f, - 0.844031895490066410f, -0.536292979065963180f, 0.843620315706004150f, - -0.536940185614842910f, - 0.843208239641845440f, -0.537587076295645390f, 0.842795667540004120f, - -0.538233650727821700f, - 0.842382599643185850f, -0.538879908531008420f, 0.841969036194387680f, - -0.539525849325028890f, - 0.841554977436898440f, -0.540171472729892850f, 0.841140423614298080f, - -0.540816778365796670f, - 0.840725374970458070f, -0.541461765853123440f, 0.840309831749540770f, - -0.542106434812443920f, - 0.839893794195999520f, -0.542750784864515890f, 0.839477262554578550f, - -0.543394815630284800f, - 0.839060237070312740f, -0.544038526730883820f, 0.838642717988527300f, - -0.544681917787634530f, - 0.838224705554838080f, -0.545324988422046460f, 0.837806200015150940f, - -0.545967738255817570f, - 0.837387201615661940f, -0.546610166910834860f, 0.836967710602857020f, - -0.547252274009174090f, - 0.836547727223512010f, -0.547894059173100190f, 0.836127251724692270f, - -0.548535522025067390f, - 0.835706284353752600f, -0.549176662187719660f, 0.835284825358337370f, - -0.549817479283890910f, - 0.834862874986380010f, -0.550457972936604810f, 0.834440433486103190f, - -0.551098142769075430f, - 0.834017501106018130f, -0.551737988404707340f, 0.833594078094925140f, - -0.552377509467096070f, - 0.833170164701913190f, -0.553016705580027470f, 0.832745761176359460f, - -0.553655576367479310f, - 0.832320867767929680f, -0.554294121453620000f, 0.831895484726577590f, - -0.554932340462810370f, - 0.831469612302545240f, -0.555570233019602180f, 0.831043250746362320f, - -0.556207798748739930f, - 0.830616400308846310f, -0.556845037275160100f, 0.830189061241102370f, - -0.557481948223991550f, - 0.829761233794523050f, -0.558118531220556100f, 0.829332918220788250f, - -0.558754785890368310f, - 0.828904114771864870f, -0.559390711859136140f, 0.828474823700007130f, - -0.560026308752760380f, - 0.828045045257755800f, -0.560661576197336030f, 0.827614779697938400f, - -0.561296513819151470f, - 0.827184027273669130f, -0.561931121244689470f, 0.826752788238348520f, - -0.562565398100626560f, - 0.826321062845663530f, -0.563199344013834090f, 0.825888851349586780f, - -0.563832958611378170f, - 0.825456154004377550f, -0.564466241520519500f, 0.825022971064580220f, - -0.565099192368713980f, - 0.824589302785025290f, -0.565731810783613120f, 0.824155149420828570f, - -0.566364096393063840f, - 0.823720511227391430f, -0.566996048825108680f, 0.823285388460400110f, - -0.567627667707986230f, - 0.822849781375826430f, -0.568258952670131490f, 0.822413690229926390f, - -0.568889903340175860f, - 0.821977115279241550f, -0.569520519346947140f, 0.821540056780597610f, - -0.570150800319470300f, - 0.821102514991104650f, -0.570780745886967260f, 0.820664490168157460f, - -0.571410355678857230f, - 0.820225982569434690f, -0.572039629324757050f, 0.819786992452898990f, - -0.572668566454481160f, - 0.819347520076796900f, -0.573297166698042200f, 0.818907565699658950f, - -0.573925429685650750f, - 0.818467129580298660f, -0.574553355047715760f, 0.818026211977813440f, - -0.575180942414845080f, - 0.817584813151583710f, -0.575808191417845340f, 0.817142933361272970f, - -0.576435101687721830f, - 0.816700572866827850f, -0.577061672855679440f, 0.816257731928477390f, - -0.577687904553122800f, - 0.815814410806733780f, -0.578313796411655590f, 0.815370609762391290f, - -0.578939348063081780f, - 0.814926329056526620f, -0.579564559139405630f, 0.814481568950498610f, - -0.580189429272831680f, - 0.814036329705948410f, -0.580813958095764530f, 0.813590611584798510f, - -0.581438145240810170f, - 0.813144414849253590f, -0.582061990340775440f, 0.812697739761799490f, - -0.582685493028668460f, - 0.812250586585203880f, -0.583308652937698290f, 0.811802955582515470f, - -0.583931469701276180f, - 0.811354847017063730f, -0.584553942953015330f, 0.810906261152459670f, - -0.585176072326730410f, - 0.810457198252594770f, -0.585797857456438860f, 0.810007658581641140f, - -0.586419297976360500f, - 0.809557642404051260f, -0.587040393520917970f, 0.809107149984558240f, - -0.587661143724736660f, - 0.808656181588174980f, -0.588281548222645220f, 0.808204737480194720f, - -0.588901606649675720f, - 0.807752817926190360f, -0.589521318641063940f, 0.807300423192014450f, - -0.590140683832248820f, - 0.806847553543799330f, -0.590759701858874160f, 0.806394209247956240f, - -0.591378372356787580f, - 0.805940390571176280f, -0.591996694962040990f, 0.805486097780429230f, - -0.592614669310891130f, - 0.805031331142963660f, -0.593232295039799800f, 0.804576090926307110f, - -0.593849571785433630f, - 0.804120377398265810f, -0.594466499184664430f, 0.803664190826924090f, - -0.595083076874569960f, - 0.803207531480644940f, -0.595699304492433360f, 0.802750399628069160f, - -0.596315181675743710f, - 0.802292795538115720f, -0.596930708062196500f, 0.801834719479981310f, - -0.597545883289693160f, - 0.801376171723140240f, -0.598160706996342270f, 0.800917152537344300f, - -0.598775178820458720f, - 0.800457662192622820f, -0.599389298400564540f, 0.799997700959281910f, - -0.600003065375388940f, - 0.799537269107905010f, -0.600616479383868970f, 0.799076366909352350f, - -0.601229540065148500f, - 0.798614994634760820f, -0.601842247058580030f, 0.798153152555543750f, - -0.602454600003723750f, - 0.797690840943391160f, -0.603066598540348160f, 0.797228060070268810f, - -0.603678242308430370f, - 0.796764810208418830f, -0.604289530948155960f, 0.796301091630359110f, - -0.604900464099919820f, - 0.795836904608883570f, -0.605511041404325550f, 0.795372249417061310f, - -0.606121262502186120f, - 0.794907126328237010f, -0.606731127034524480f, 0.794441535616030590f, - -0.607340634642572930f, - 0.793975477554337170f, -0.607949784967773630f, 0.793508952417326660f, - -0.608558577651779450f, - 0.793041960479443640f, -0.609167012336453210f, 0.792574502015407690f, - -0.609775088663868430f, - 0.792106577300212390f, -0.610382806276309480f, 0.791638186609125880f, - -0.610990164816271660f, - 0.791169330217690200f, -0.611597163926461910f, 0.790700008401721610f, - -0.612203803249797950f, - 0.790230221437310030f, -0.612810082429409710f, 0.789759969600819070f, - -0.613416001108638590f, - 0.789289253168885650f, -0.614021558931038380f, 0.788818072418420280f, - -0.614626755540375050f, - 0.788346427626606340f, -0.615231590580626820f, 0.787874319070900220f, - -0.615836063695985090f, - 0.787401747029031430f, -0.616440174530853650f, 0.786928711779001810f, - -0.617043922729849760f, - 0.786455213599085770f, -0.617647307937803870f, 0.785981252767830150f, - -0.618250329799760250f, - 0.785506829564053930f, -0.618852987960976320f, 0.785031944266848080f, - -0.619455282066924020f, - 0.784556597155575240f, -0.620057211763289100f, 0.784080788509869950f, - -0.620658776695972140f, - 0.783604518609638200f, -0.621259976511087550f, 0.783127787735057310f, - -0.621860810854965360f, - 0.782650596166575730f, -0.622461279374149970f, 0.782172944184913010f, - -0.623061381715401260f, - 0.781694832071059390f, -0.623661117525694530f, 0.781216260106276090f, - -0.624260486452220650f, - 0.780737228572094490f, -0.624859488142386340f, 0.780257737750316590f, - -0.625458122243814360f, - 0.779777787923014550f, -0.626056388404343520f, 0.779297379372530300f, - -0.626654286272029350f, - 0.778816512381475980f, -0.627251815495144080f, 0.778335187232733210f, - -0.627848975722176460f, - 0.777853404209453150f, -0.628445766601832710f, 0.777371163595056310f, - -0.629042187783036000f, - 0.776888465673232440f, -0.629638238914926980f, 0.776405310727940390f, - -0.630233919646864370f, - 0.775921699043407690f, -0.630829229628424470f, 0.775437630904130540f, - -0.631424168509401860f, - 0.774953106594873930f, -0.632018735939809060f, 0.774468126400670860f, - -0.632612931569877410f, - 0.773982690606822900f, -0.633206755050057190f, 0.773496799498899050f, - -0.633800206031017280f, - 0.773010453362736990f, -0.634393284163645490f, 0.772523652484441330f, - -0.634985989099049460f, - 0.772036397150384520f, -0.635578320488556110f, 0.771548687647206300f, - -0.636170277983712170f, - 0.771060524261813820f, -0.636761861236284200f, 0.770571907281380810f, - -0.637353069898259130f, - 0.770082836993347900f, -0.637943903621844060f, 0.769593313685422940f, - -0.638534362059466790f, - 0.769103337645579700f, -0.639124444863775730f, 0.768612909162058380f, - -0.639714151687640450f, - 0.768122028523365420f, -0.640303482184151670f, 0.767630696018273380f, - -0.640892436006621380f, - 0.767138911935820400f, -0.641481012808583160f, 0.766646676565310380f, - -0.642069212243792540f, - 0.766153990196312920f, -0.642657033966226860f, 0.765660853118662500f, - -0.643244477630085850f, - 0.765167265622458960f, -0.643831542889791390f, 0.764673227998067140f, - -0.644418229399988380f, - 0.764178740536116670f, -0.645004536815543930f, 0.763683803527501870f, - -0.645590464791548690f, - 0.763188417263381270f, -0.646176012983316280f, 0.762692582035177980f, - -0.646761181046383920f, - 0.762196298134578900f, -0.647345968636512060f, 0.761699565853535380f, - -0.647930375409685340f, - 0.761202385484261780f, -0.648514401022112440f, 0.760704757319236920f, - -0.649098045130225950f, - 0.760206681651202420f, -0.649681307390683190f, 0.759708158773163440f, - -0.650264187460365850f, - 0.759209188978388070f, -0.650846684996380880f, 0.758709772560407390f, - -0.651428799656059820f, - 0.758209909813015280f, -0.652010531096959500f, 0.757709601030268080f, - -0.652591878976862440f, - 0.757208846506484570f, -0.653172842953776760f, 0.756707646536245670f, - -0.653753422685936060f, - 0.756206001414394540f, -0.654333617831800440f, 0.755703911436035880f, - -0.654913428050056030f, - 0.755201376896536550f, -0.655492852999615350f, 0.754698398091524500f, - -0.656071892339617600f, - 0.754194975316889170f, -0.656650545729428940f, 0.753691108868781210f, - -0.657228812828642540f, - 0.753186799043612520f, -0.657806693297078640f, 0.752682046138055340f, - -0.658384186794785050f, - 0.752176850449042810f, -0.658961292982037320f, 0.751671212273768430f, - -0.659538011519338660f, - 0.751165131909686480f, -0.660114342067420480f, 0.750658609654510700f, - -0.660690284287242300f, - 0.750151645806215070f, -0.661265837839992270f, 0.749644240663033480f, - -0.661841002387086870f, - 0.749136394523459370f, -0.662415777590171780f, 0.748628107686245440f, - -0.662990163111121470f, - 0.748119380450403600f, -0.663564158612039770f, 0.747610213115205150f, - -0.664137763755260010f, - 0.747100605980180130f, -0.664710978203344790f, 0.746590559345117310f, - -0.665283801619087180f, - 0.746080073510063780f, -0.665856233665509720f, 0.745569148775325430f, - -0.666428274005865240f, - 0.745057785441466060f, -0.666999922303637470f, 0.744545983809307370f, - -0.667571178222540310f, - 0.744033744179929290f, -0.668142041426518450f, 0.743521066854669120f, - -0.668712511579747980f, - 0.743007952135121720f, -0.669282588346636010f, 0.742494400323139180f, - -0.669852271391821020f, - 0.741980411720831070f, -0.670421560380173090f, 0.741465986630563290f, - -0.670990454976794220f, - 0.740951125354959110f, -0.671558954847018330f, 0.740435828196898020f, - -0.672127059656411730f, - 0.739920095459516200f, -0.672694769070772860f, 0.739403927446205760f, - -0.673262082756132970f, - 0.738887324460615110f, -0.673829000378756040f, 0.738370286806648620f, - -0.674395521605139050f, - 0.737852814788465980f, -0.674961646102011930f, 0.737334908710482910f, - -0.675527373536338520f, - 0.736816568877369900f, -0.676092703575315920f, 0.736297795594053170f, - -0.676657635886374950f, - 0.735778589165713590f, -0.677222170137180330f, 0.735258949897786840f, - -0.677786305995631500f, - 0.734738878095963500f, -0.678350043129861470f, 0.734218374066188280f, - -0.678913381208238410f, - 0.733697438114660370f, -0.679476319899364970f, 0.733176070547832740f, - -0.680038858872078930f, - 0.732654271672412820f, -0.680600997795453020f, 0.732132041795361290f, - -0.681162736338795430f, - 0.731609381223892630f, -0.681724074171649710f, 0.731086290265474340f, - -0.682285010963795570f, - 0.730562769227827590f, -0.682845546385248080f, 0.730038818418926260f, - -0.683405680106258680f, - 0.729514438146997010f, -0.683965411797315400f, 0.728989628720519420f, - -0.684524741129142300f, - 0.728464390448225200f, -0.685083667772700360f, 0.727938723639098620f, - -0.685642191399187470f, - 0.727412628602375770f, -0.686200311680038590f, 0.726886105647544970f, - -0.686758028286925890f, - 0.726359155084346010f, -0.687315340891759050f, 0.725831777222770370f, - -0.687872249166685550f, - 0.725303972373060770f, -0.688428752784090440f, 0.724775740845711280f, - -0.688984851416597040f, - 0.724247082951467000f, -0.689540544737066830f, 0.723717999001323500f, - -0.690095832418599950f, - 0.723188489306527460f, -0.690650714134534600f, 0.722658554178575610f, - -0.691205189558448450f, - 0.722128193929215350f, -0.691759258364157750f, 0.721597408870443770f, - -0.692312920225718220f, - 0.721066199314508110f, -0.692866174817424630f, 0.720534565573905270f, - -0.693419021813811760f, - 0.720002507961381650f, -0.693971460889654000f, 0.719470026789932990f, - -0.694523491719965520f, - 0.718937122372804490f, -0.695075113980000880f, 0.718403795023489830f, - -0.695626327345254870f, - 0.717870045055731710f, -0.696177131491462990f, 0.717335872783521730f, - -0.696727526094601200f, - 0.716801278521099540f, -0.697277510830886520f, 0.716266262582953120f, - -0.697827085376777290f, - 0.715730825283818590f, -0.698376249408972920f, 0.715194966938680120f, - -0.698925002604414150f, - 0.714658687862769090f, -0.699473344640283770f, 0.714121988371564820f, - -0.700021275194006250f, - 0.713584868780793640f, -0.700568793943248340f, 0.713047329406429340f, - -0.701115900565918660f, - 0.712509370564692320f, -0.701662594740168450f, 0.711970992572050100f, - -0.702208876144391870f, - 0.711432195745216430f, -0.702754744457225300f, 0.710892980401151680f, - -0.703300199357548730f, - 0.710353346857062420f, -0.703845240524484940f, 0.709813295430400840f, - -0.704389867637400410f, - 0.709272826438865690f, -0.704934080375904880f, 0.708731940200400650f, - -0.705477878419852100f, - 0.708190637033195400f, -0.706021261449339740f, 0.707648917255684350f, - -0.706564229144709510f, - 0.707106781186547570f, -0.707106781186547460f, 0.706564229144709620f, - -0.707648917255684350f, - 0.706021261449339740f, -0.708190637033195290f, 0.705477878419852210f, - -0.708731940200400650f, - 0.704934080375904990f, -0.709272826438865580f, 0.704389867637400410f, - -0.709813295430400840f, - 0.703845240524484940f, -0.710353346857062310f, 0.703300199357548730f, - -0.710892980401151680f, - 0.702754744457225300f, -0.711432195745216430f, 0.702208876144391870f, - -0.711970992572049990f, - 0.701662594740168570f, -0.712509370564692320f, 0.701115900565918660f, - -0.713047329406429230f, - 0.700568793943248450f, -0.713584868780793520f, 0.700021275194006360f, - -0.714121988371564710f, - 0.699473344640283770f, -0.714658687862768980f, 0.698925002604414150f, - -0.715194966938680010f, - 0.698376249408972920f, -0.715730825283818590f, 0.697827085376777290f, - -0.716266262582953120f, - 0.697277510830886630f, -0.716801278521099540f, 0.696727526094601200f, - -0.717335872783521730f, - 0.696177131491462990f, -0.717870045055731710f, 0.695626327345254870f, - -0.718403795023489720f, - 0.695075113980000880f, -0.718937122372804380f, 0.694523491719965520f, - -0.719470026789932990f, - 0.693971460889654000f, -0.720002507961381650f, 0.693419021813811880f, - -0.720534565573905270f, - 0.692866174817424740f, -0.721066199314508110f, 0.692312920225718220f, - -0.721597408870443660f, - 0.691759258364157750f, -0.722128193929215350f, 0.691205189558448450f, - -0.722658554178575610f, - 0.690650714134534720f, -0.723188489306527350f, 0.690095832418599950f, - -0.723717999001323390f, - 0.689540544737066940f, -0.724247082951466890f, 0.688984851416597150f, - -0.724775740845711280f, - 0.688428752784090550f, -0.725303972373060660f, 0.687872249166685550f, - -0.725831777222770370f, - 0.687315340891759160f, -0.726359155084346010f, 0.686758028286925890f, - -0.726886105647544970f, - 0.686200311680038700f, -0.727412628602375770f, 0.685642191399187470f, - -0.727938723639098620f, - 0.685083667772700360f, -0.728464390448225200f, 0.684524741129142300f, - -0.728989628720519310f, - 0.683965411797315510f, -0.729514438146996900f, 0.683405680106258790f, - -0.730038818418926150f, - 0.682845546385248080f, -0.730562769227827590f, 0.682285010963795570f, - -0.731086290265474230f, - 0.681724074171649820f, -0.731609381223892520f, 0.681162736338795430f, - -0.732132041795361290f, - 0.680600997795453130f, -0.732654271672412820f, 0.680038858872079040f, - -0.733176070547832740f, - 0.679476319899365080f, -0.733697438114660260f, 0.678913381208238410f, - -0.734218374066188170f, - 0.678350043129861580f, -0.734738878095963390f, 0.677786305995631500f, - -0.735258949897786730f, - 0.677222170137180450f, -0.735778589165713480f, 0.676657635886374950f, - -0.736297795594053060f, - 0.676092703575316030f, -0.736816568877369790f, 0.675527373536338630f, - -0.737334908710482790f, - 0.674961646102012040f, -0.737852814788465980f, 0.674395521605139050f, - -0.738370286806648510f, - 0.673829000378756150f, -0.738887324460615110f, 0.673262082756132970f, - -0.739403927446205760f, - 0.672694769070772970f, -0.739920095459516090f, 0.672127059656411840f, - -0.740435828196898020f, - 0.671558954847018330f, -0.740951125354959110f, 0.670990454976794220f, - -0.741465986630563290f, - 0.670421560380173090f, -0.741980411720830960f, 0.669852271391821130f, - -0.742494400323139180f, - 0.669282588346636010f, -0.743007952135121720f, 0.668712511579748090f, - -0.743521066854669120f, - 0.668142041426518560f, -0.744033744179929180f, 0.667571178222540310f, - -0.744545983809307250f, - 0.666999922303637470f, -0.745057785441465950f, 0.666428274005865350f, - -0.745569148775325430f, - 0.665856233665509720f, -0.746080073510063780f, 0.665283801619087180f, - -0.746590559345117310f, - 0.664710978203344900f, -0.747100605980180130f, 0.664137763755260010f, - -0.747610213115205150f, - 0.663564158612039880f, -0.748119380450403490f, 0.662990163111121470f, - -0.748628107686245330f, - 0.662415777590171780f, -0.749136394523459260f, 0.661841002387086870f, - -0.749644240663033480f, - 0.661265837839992270f, -0.750151645806214960f, 0.660690284287242300f, - -0.750658609654510590f, - 0.660114342067420480f, -0.751165131909686370f, 0.659538011519338770f, - -0.751671212273768430f, - 0.658961292982037320f, -0.752176850449042700f, 0.658384186794785050f, - -0.752682046138055230f, - 0.657806693297078640f, -0.753186799043612410f, 0.657228812828642650f, - -0.753691108868781210f, - 0.656650545729429050f, -0.754194975316889170f, 0.656071892339617710f, - -0.754698398091524390f, - 0.655492852999615460f, -0.755201376896536550f, 0.654913428050056150f, - -0.755703911436035880f, - 0.654333617831800550f, -0.756206001414394540f, 0.653753422685936170f, - -0.756707646536245670f, - 0.653172842953776760f, -0.757208846506484460f, 0.652591878976862550f, - -0.757709601030268080f, - 0.652010531096959500f, -0.758209909813015280f, 0.651428799656059820f, - -0.758709772560407390f, - 0.650846684996380990f, -0.759209188978387960f, 0.650264187460365960f, - -0.759708158773163440f, - 0.649681307390683190f, -0.760206681651202420f, 0.649098045130226060f, - -0.760704757319236920f, - 0.648514401022112550f, -0.761202385484261780f, 0.647930375409685460f, - -0.761699565853535270f, - 0.647345968636512060f, -0.762196298134578900f, 0.646761181046383920f, - -0.762692582035177870f, - 0.646176012983316390f, -0.763188417263381270f, 0.645590464791548800f, - -0.763683803527501870f, - 0.645004536815544040f, -0.764178740536116670f, 0.644418229399988380f, - -0.764673227998067140f, - 0.643831542889791500f, -0.765167265622458960f, 0.643244477630085850f, - -0.765660853118662390f, - 0.642657033966226860f, -0.766153990196312810f, 0.642069212243792540f, - -0.766646676565310380f, - 0.641481012808583160f, -0.767138911935820400f, 0.640892436006621380f, - -0.767630696018273270f, - 0.640303482184151670f, -0.768122028523365310f, 0.639714151687640450f, - -0.768612909162058270f, - 0.639124444863775730f, -0.769103337645579590f, 0.638534362059466790f, - -0.769593313685422940f, - 0.637943903621844170f, -0.770082836993347900f, 0.637353069898259130f, - -0.770571907281380700f, - 0.636761861236284200f, -0.771060524261813710f, 0.636170277983712170f, - -0.771548687647206300f, - 0.635578320488556230f, -0.772036397150384410f, 0.634985989099049460f, - -0.772523652484441330f, - 0.634393284163645490f, -0.773010453362736990f, 0.633800206031017280f, - -0.773496799498899050f, - 0.633206755050057190f, -0.773982690606822790f, 0.632612931569877520f, - -0.774468126400670860f, - 0.632018735939809060f, -0.774953106594873820f, 0.631424168509401860f, - -0.775437630904130430f, - 0.630829229628424470f, -0.775921699043407580f, 0.630233919646864480f, - -0.776405310727940390f, - 0.629638238914927100f, -0.776888465673232440f, 0.629042187783036000f, - -0.777371163595056200f, - 0.628445766601832710f, -0.777853404209453040f, 0.627848975722176570f, - -0.778335187232733090f, - 0.627251815495144190f, -0.778816512381475870f, 0.626654286272029460f, - -0.779297379372530300f, - 0.626056388404343520f, -0.779777787923014440f, 0.625458122243814360f, - -0.780257737750316590f, - 0.624859488142386450f, -0.780737228572094380f, 0.624260486452220650f, - -0.781216260106276090f, - 0.623661117525694640f, -0.781694832071059390f, 0.623061381715401370f, - -0.782172944184912900f, - 0.622461279374150080f, -0.782650596166575730f, 0.621860810854965360f, - -0.783127787735057310f, - 0.621259976511087660f, -0.783604518609638200f, 0.620658776695972140f, - -0.784080788509869950f, - 0.620057211763289210f, -0.784556597155575240f, 0.619455282066924020f, - -0.785031944266848080f, - 0.618852987960976320f, -0.785506829564053930f, 0.618250329799760250f, - -0.785981252767830150f, - 0.617647307937803980f, -0.786455213599085770f, 0.617043922729849760f, - -0.786928711779001700f, - 0.616440174530853650f, -0.787401747029031320f, 0.615836063695985090f, - -0.787874319070900110f, - 0.615231590580626820f, -0.788346427626606230f, 0.614626755540375050f, - -0.788818072418420170f, - 0.614021558931038490f, -0.789289253168885650f, 0.613416001108638590f, - -0.789759969600819070f, - 0.612810082429409710f, -0.790230221437310030f, 0.612203803249798060f, - -0.790700008401721610f, - 0.611597163926462020f, -0.791169330217690090f, 0.610990164816271770f, - -0.791638186609125770f, - 0.610382806276309480f, -0.792106577300212390f, 0.609775088663868430f, - -0.792574502015407580f, - 0.609167012336453210f, -0.793041960479443640f, 0.608558577651779450f, - -0.793508952417326660f, - 0.607949784967773740f, -0.793975477554337170f, 0.607340634642572930f, - -0.794441535616030590f, - 0.606731127034524480f, -0.794907126328237010f, 0.606121262502186230f, - -0.795372249417061190f, - 0.605511041404325550f, -0.795836904608883460f, 0.604900464099919930f, - -0.796301091630359110f, - 0.604289530948156070f, -0.796764810208418720f, 0.603678242308430370f, - -0.797228060070268700f, - 0.603066598540348280f, -0.797690840943391040f, 0.602454600003723860f, - -0.798153152555543750f, - 0.601842247058580030f, -0.798614994634760820f, 0.601229540065148620f, - -0.799076366909352350f, - 0.600616479383868970f, -0.799537269107905010f, 0.600003065375389060f, - -0.799997700959281910f, - 0.599389298400564540f, -0.800457662192622710f, 0.598775178820458720f, - -0.800917152537344300f, - 0.598160706996342380f, -0.801376171723140130f, 0.597545883289693270f, - -0.801834719479981310f, - 0.596930708062196500f, -0.802292795538115720f, 0.596315181675743820f, - -0.802750399628069160f, - 0.595699304492433470f, -0.803207531480644830f, 0.595083076874569960f, - -0.803664190826924090f, - 0.594466499184664540f, -0.804120377398265700f, 0.593849571785433630f, - -0.804576090926307000f, - 0.593232295039799800f, -0.805031331142963660f, 0.592614669310891130f, - -0.805486097780429120f, - 0.591996694962040990f, -0.805940390571176280f, 0.591378372356787580f, - -0.806394209247956240f, - 0.590759701858874280f, -0.806847553543799220f, 0.590140683832248940f, - -0.807300423192014450f, - 0.589521318641063940f, -0.807752817926190360f, 0.588901606649675840f, - -0.808204737480194720f, - 0.588281548222645330f, -0.808656181588174980f, 0.587661143724736770f, - -0.809107149984558130f, - 0.587040393520918080f, -0.809557642404051260f, 0.586419297976360500f, - -0.810007658581641140f, - 0.585797857456438860f, -0.810457198252594770f, 0.585176072326730410f, - -0.810906261152459670f, - 0.584553942953015330f, -0.811354847017063730f, 0.583931469701276300f, - -0.811802955582515360f, - 0.583308652937698290f, -0.812250586585203880f, 0.582685493028668460f, - -0.812697739761799490f, - 0.582061990340775550f, -0.813144414849253590f, 0.581438145240810280f, - -0.813590611584798510f, - 0.580813958095764530f, -0.814036329705948300f, 0.580189429272831680f, - -0.814481568950498610f, - 0.579564559139405740f, -0.814926329056526620f, 0.578939348063081890f, - -0.815370609762391290f, - 0.578313796411655590f, -0.815814410806733780f, 0.577687904553122800f, - -0.816257731928477390f, - 0.577061672855679550f, -0.816700572866827850f, 0.576435101687721830f, - -0.817142933361272970f, - 0.575808191417845340f, -0.817584813151583710f, 0.575180942414845190f, - -0.818026211977813440f, - 0.574553355047715760f, -0.818467129580298660f, 0.573925429685650750f, - -0.818907565699658950f, - 0.573297166698042320f, -0.819347520076796900f, 0.572668566454481160f, - -0.819786992452898990f, - 0.572039629324757050f, -0.820225982569434690f, 0.571410355678857340f, - -0.820664490168157460f, - 0.570780745886967370f, -0.821102514991104650f, 0.570150800319470300f, - -0.821540056780597610f, - 0.569520519346947250f, -0.821977115279241550f, 0.568889903340175970f, - -0.822413690229926390f, - 0.568258952670131490f, -0.822849781375826320f, 0.567627667707986230f, - -0.823285388460400110f, - 0.566996048825108680f, -0.823720511227391320f, 0.566364096393063950f, - -0.824155149420828570f, - 0.565731810783613230f, -0.824589302785025290f, 0.565099192368714090f, - -0.825022971064580220f, - 0.564466241520519500f, -0.825456154004377440f, 0.563832958611378170f, - -0.825888851349586780f, - 0.563199344013834090f, -0.826321062845663420f, 0.562565398100626560f, - -0.826752788238348520f, - 0.561931121244689470f, -0.827184027273669020f, 0.561296513819151470f, - -0.827614779697938400f, - 0.560661576197336030f, -0.828045045257755800f, 0.560026308752760380f, - -0.828474823700007130f, - 0.559390711859136140f, -0.828904114771864870f, 0.558754785890368310f, - -0.829332918220788250f, - 0.558118531220556100f, -0.829761233794523050f, 0.557481948223991660f, - -0.830189061241102370f, - 0.556845037275160100f, -0.830616400308846200f, 0.556207798748739930f, - -0.831043250746362320f, - 0.555570233019602290f, -0.831469612302545240f, 0.554932340462810370f, - -0.831895484726577590f, - 0.554294121453620110f, -0.832320867767929680f, 0.553655576367479310f, - -0.832745761176359460f, - 0.553016705580027580f, -0.833170164701913190f, 0.552377509467096070f, - -0.833594078094925140f, - 0.551737988404707450f, -0.834017501106018130f, 0.551098142769075430f, - -0.834440433486103190f, - 0.550457972936604810f, -0.834862874986380010f, 0.549817479283891020f, - -0.835284825358337370f, - 0.549176662187719770f, -0.835706284353752600f, 0.548535522025067390f, - -0.836127251724692160f, - 0.547894059173100190f, -0.836547727223511890f, 0.547252274009174090f, - -0.836967710602857020f, - 0.546610166910834860f, -0.837387201615661940f, 0.545967738255817680f, - -0.837806200015150940f, - 0.545324988422046460f, -0.838224705554837970f, 0.544681917787634530f, - -0.838642717988527300f, - 0.544038526730883930f, -0.839060237070312630f, 0.543394815630284800f, - -0.839477262554578550f, - 0.542750784864516000f, -0.839893794195999410f, 0.542106434812444030f, - -0.840309831749540770f, - 0.541461765853123560f, -0.840725374970458070f, 0.540816778365796670f, - -0.841140423614298080f, - 0.540171472729892970f, -0.841554977436898330f, 0.539525849325029010f, - -0.841969036194387680f, - 0.538879908531008420f, -0.842382599643185960f, 0.538233650727821700f, - -0.842795667540004120f, - 0.537587076295645510f, -0.843208239641845440f, 0.536940185614843020f, - -0.843620315706004040f, - 0.536292979065963180f, -0.844031895490066410f, 0.535645457029741090f, - -0.844442978751910660f, - 0.534997619887097260f, -0.844853565249707010f, 0.534349468019137520f, - -0.845263654741918220f, - 0.533701001807152960f, -0.845673246987299070f, 0.533052221632619670f, - -0.846082341744896940f, - 0.532403127877198010f, -0.846490938774052020f, 0.531753720922733320f, - -0.846899037834397350f, - 0.531104001151255000f, -0.847306638685858320f, 0.530453968944976320f, - -0.847713741088654270f, - 0.529803624686294830f, -0.848120344803297120f, 0.529152968757790720f, - -0.848526449590592650f, - 0.528502001542228480f, -0.848932055211639610f, 0.527850723422555460f, - -0.849337161427830670f, - 0.527199134781901390f, -0.849741768000852440f, 0.526547236003579330f, - -0.850145874692685210f, - 0.525895027471084740f, -0.850549481265603370f, 0.525242509568094710f, - -0.850952587482175730f, - 0.524589682678468840f, -0.851355193105265200f, 0.523936547186248600f, - -0.851757297898029120f, - 0.523283103475656430f, -0.852158901623919830f, 0.522629351931096720f, - -0.852560004046683970f, - 0.521975292937154390f, -0.852960604930363630f, 0.521320926878595550f, - -0.853360704039295430f, - 0.520666254140367270f, -0.853760301138111300f, 0.520011275107596040f, - -0.854159395991738730f, - 0.519355990165589530f, -0.854557988365400530f, 0.518700399699835170f, - -0.854956078024614820f, - 0.518044504095999340f, -0.855353664735196030f, 0.517388303739929060f, - -0.855750748263253920f, - 0.516731799017649980f, -0.856147328375194470f, 0.516074990315366630f, - -0.856543404837719960f, - 0.515417878019463150f, -0.856938977417828650f, 0.514760462516501200f, - -0.857334045882815590f, - 0.514102744193221660f, -0.857728610000272120f, 0.513444723436543570f, - -0.858122669538086020f, - 0.512786400633563070f, -0.858516224264442740f, 0.512127776171554690f, - -0.858909273947823900f, - 0.511468850437970520f, -0.859301818357008360f, 0.510809623820439040f, - -0.859693857261072610f, - 0.510150096706766700f, -0.860085390429390140f, 0.509490269484936360f, - -0.860476417631632070f, - 0.508830142543106990f, -0.860866938637767310f, 0.508169716269614710f, - -0.861256953218062060f, - 0.507508991052970870f, -0.861646461143081300f, 0.506847967281863320f, - -0.862035462183687210f, - 0.506186645345155450f, -0.862423956111040500f, 0.505525025631885510f, - -0.862811942696600330f, - 0.504863108531267480f, -0.863199421712124160f, 0.504200894432690560f, - -0.863586392929667990f, - 0.503538383725717580f, -0.863972856121586700f, 0.502875576800086880f, - -0.864358811060534030f, - 0.502212474045710900f, -0.864744257519462380f, 0.501549075852675390f, - -0.865129195271623690f, - 0.500885382611240940f, -0.865513624090568980f, 0.500221394711840680f, - -0.865897543750148820f, - 0.499557112545081890f, -0.866280954024512990f, 0.498892536501744750f, - -0.866663854688111020f, - 0.498227666972781870f, -0.867046245515692650f, 0.497562504349319090f, - -0.867428126282306920f, - 0.496897049022654640f, -0.867809496763303210f, 0.496231301384258310f, - -0.868190356734331310f, - 0.495565261825772490f, -0.868570705971340900f, 0.494898930739011310f, - -0.868950544250582380f, - 0.494232308515959730f, -0.869329871348606730f, 0.493565395548774880f, - -0.869708687042265560f, - 0.492898192229784090f, -0.870086991108711350f, 0.492230698951486080f, - -0.870464783325397670f, - 0.491562916106550060f, -0.870842063470078860f, 0.490894844087815140f, - -0.871218831320810900f, - 0.490226483288291100f, -0.871595086655951090f, 0.489557834101157550f, - -0.871970829254157700f, - 0.488888896919763230f, -0.872346058894391540f, 0.488219672137626740f, - -0.872720775355914300f, - 0.487550160148436050f, -0.873094978418290090f, 0.486880361346047400f, - -0.873468667861384880f, - 0.486210276124486530f, -0.873841843465366750f, 0.485539904877947020f, - -0.874214505010706300f, - 0.484869248000791120f, -0.874586652278176110f, 0.484198305887549140f, - -0.874958285048851540f, - 0.483527078932918740f, -0.875329403104110780f, 0.482855567531765670f, - -0.875700006225634600f, - 0.482183772079122830f, -0.876070094195406600f, 0.481511692970189920f, - -0.876439666795713610f, - 0.480839330600333900f, -0.876808723809145760f, 0.480166685365088440f, - -0.877177265018595940f, - 0.479493757660153010f, -0.877545290207261240f, 0.478820547881394050f, - -0.877912799158641730f, - 0.478147056424843120f, -0.878279791656541460f, 0.477473283686698060f, - -0.878646267485068130f, - 0.476799230063322250f, -0.879012226428633410f, 0.476124895951243630f, - -0.879377668271953180f, - 0.475450281747155870f, -0.879742592800047410f, 0.474775387847917230f, - -0.880106999798240360f, - 0.474100214650550020f, -0.880470889052160750f, 0.473424762552241530f, - -0.880834260347742040f, - 0.472749031950342900f, -0.881197113471221980f, 0.472073023242368660f, - -0.881559448209143780f, - 0.471396736825997810f, -0.881921264348354940f, 0.470720173099071710f, - -0.882282561676008600f, - 0.470043332459595620f, -0.882643339979562790f, 0.469366215305737630f, - -0.883003599046780720f, - 0.468688822035827960f, -0.883363338665731580f, 0.468011153048359830f, - -0.883722558624789660f, - 0.467333208741988530f, -0.884081258712634990f, 0.466654989515530970f, - -0.884439438718253700f, - 0.465976495767966130f, -0.884797098430937790f, 0.465297727898434650f, - -0.885154237640285110f, - 0.464618686306237820f, -0.885510856136199950f, 0.463939371390838460f, - -0.885866953708892790f, - 0.463259783551860260f, -0.886222530148880640f, 0.462579923189086810f, - -0.886577585246987040f, - 0.461899790702462840f, -0.886932118794342080f, 0.461219386492092430f, - -0.887286130582383150f, - 0.460538710958240010f, -0.887639620402853930f, 0.459857764501329650f, - -0.887992588047805560f, - 0.459176547521944150f, -0.888345033309596240f, 0.458495060420826220f, - -0.888696955980891710f, - 0.457813303598877290f, -0.889048355854664570f, 0.457131277457156980f, - -0.889399232724195520f, - 0.456448982396883860f, -0.889749586383072890f, 0.455766418819434750f, - -0.890099416625192210f, - 0.455083587126343840f, -0.890448723244757880f, 0.454400487719303750f, - -0.890797506036281490f, - 0.453717121000163930f, -0.891145764794583180f, 0.453033487370931580f, - -0.891493499314791380f, - 0.452349587233771000f, -0.891840709392342720f, 0.451665420991002540f, - -0.892187394822982480f, - 0.450980989045103810f, -0.892533555402764690f, 0.450296291798708730f, - -0.892879190928051680f, - 0.449611329654606600f, -0.893224301195515320f, 0.448926103015743260f, - -0.893568886002136020f, - 0.448240612285220000f, -0.893912945145203250f, 0.447554857866293010f, - -0.894256478422316040f, - 0.446868840162374330f, -0.894599485631382580f, 0.446182559577030120f, - -0.894941966570620750f, - 0.445496016513981740f, -0.895283921038557580f, 0.444809211377105000f, - -0.895625348834030000f, - 0.444122144570429260f, -0.895966249756185110f, 0.443434816498138430f, - -0.896306623604479660f, - 0.442747227564570130f, -0.896646470178680150f, 0.442059378174214760f, - -0.896985789278863970f, - 0.441371268731716620f, -0.897324580705418320f, 0.440682899641873020f, - -0.897662844259040750f, - 0.439994271309633260f, -0.898000579740739880f, 0.439305384140100060f, - -0.898337786951834190f, - 0.438616238538527710f, -0.898674465693953820f, 0.437926834910322860f, - -0.899010615769039070f, - 0.437237173661044200f, -0.899346236979341460f, 0.436547255196401250f, - -0.899681329127423930f, - 0.435857079922255470f, -0.900015892016160280f, 0.435166648244619370f, - -0.900349925448735600f, - 0.434475960569655710f, -0.900683429228646860f, 0.433785017303678520f, - -0.901016403159702330f, - 0.433093818853152010f, -0.901348847046022030f, 0.432402365624690140f, - -0.901680760692037730f, - 0.431710658025057370f, -0.902012143902493070f, 0.431018696461167080f, - -0.902342996482444200f, - 0.430326481340082610f, -0.902673318237258830f, 0.429634013069016500f, - -0.903003108972617040f, - 0.428941292055329550f, -0.903332368494511820f, 0.428248318706531910f, - -0.903661096609247980f, - 0.427555093430282200f, -0.903989293123443340f, 0.426861616634386490f, - -0.904316957844028320f, - 0.426167888726799620f, -0.904644090578246240f, 0.425473910115623910f, - -0.904970691133653250f, - 0.424779681209108810f, -0.905296759318118820f, 0.424085202415651670f, - -0.905622294939825160f, - 0.423390474143796100f, -0.905947297807268460f, 0.422695496802232950f, - -0.906271767729257660f, - 0.422000270799799790f, -0.906595704514915330f, 0.421304796545479700f, - -0.906919107973678030f, - 0.420609074448402510f, -0.907241977915295930f, 0.419913104917843730f, - -0.907564314149832520f, - 0.419216888363223960f, -0.907886116487666150f, 0.418520425194109700f, - -0.908207384739488700f, - 0.417823715820212380f, -0.908528118716306120f, 0.417126760651387870f, - -0.908848318229439120f, - 0.416429560097637320f, -0.909167983090522270f, 0.415732114569105420f, - -0.909487113111505430f, - 0.415034424476081630f, -0.909805708104652220f, 0.414336490228999210f, - -0.910123767882541570f, - 0.413638312238434560f, -0.910441292258067140f, 0.412939890915108020f, - -0.910758281044437570f, - 0.412241226669883000f, -0.911074734055176250f, 0.411542319913765280f, - -0.911390651104122320f, - 0.410843171057903910f, -0.911706032005429880f, 0.410143780513590350f, - -0.912020876573568230f, - 0.409444148692257590f, -0.912335184623322750f, 0.408744276005481520f, - -0.912648955969793900f, - 0.408044162864978740f, -0.912962190428398100f, 0.407343809682607970f, - -0.913274887814867760f, - 0.406643216870369140f, -0.913587047945250810f, 0.405942384840402570f, - -0.913898670635911680f, - 0.405241314004989860f, -0.914209755703530690f, 0.404540004776553110f, - -0.914520302965104450f, - 0.403838457567654130f, -0.914830312237946090f, 0.403136672790995240f, - -0.915139783339685260f, - 0.402434650859418540f, -0.915448716088267830f, 0.401732392185905010f, - -0.915757110301956720f, - 0.401029897183575790f, -0.916064965799331610f, 0.400327166265690150f, - -0.916372282399289140f, - 0.399624199845646790f, -0.916679059921042700f, 0.398920998336983020f, - -0.916985298184122890f, - 0.398217562153373620f, -0.917290997008377910f, 0.397513891708632330f, - -0.917596156213972950f, - 0.396809987416710420f, -0.917900775621390390f, 0.396105849691696320f, - -0.918204855051430900f, - 0.395401478947816300f, -0.918508394325212250f, 0.394696875599433670f, - -0.918811393264169940f, - 0.393992040061048100f, -0.919113851690057770f, 0.393286972747296570f, - -0.919415769424946960f, - 0.392581674072951530f, -0.919717146291227360f, 0.391876144452922350f, - -0.920017982111606570f, - 0.391170384302253980f, -0.920318276709110480f, 0.390464394036126650f, - -0.920618029907083860f, - 0.389758174069856410f, -0.920917241529189520f, 0.389051724818894500f, - -0.921215911399408730f, - 0.388345046698826300f, -0.921514039342041900f, 0.387638140125372680f, - -0.921811625181708120f, - 0.386931005514388690f, -0.922108668743345070f, 0.386223643281862980f, - -0.922405169852209880f, - 0.385516053843919020f, -0.922701128333878520f, 0.384808237616812930f, - -0.922996544014246250f, - 0.384100195016935040f, -0.923291416719527640f, 0.383391926460808770f, - -0.923585746276256560f, - 0.382683432365089840f, -0.923879532511286740f, 0.381974713146567220f, - -0.924172775251791200f, - 0.381265769222162490f, -0.924465474325262600f, 0.380556601008928570f, - -0.924757629559513910f, - 0.379847208924051110f, -0.925049240782677580f, 0.379137593384847430f, - -0.925340307823206200f, - 0.378427754808765620f, -0.925630830509872720f, 0.377717693613385810f, - -0.925920808671769960f, - 0.377007410216418310f, -0.926210242138311270f, 0.376296905035704790f, - -0.926499130739230510f, - 0.375586178489217330f, -0.926787474304581750f, 0.374875230995057600f, - -0.927075272664740100f, - 0.374164062971457990f, -0.927362525650401110f, 0.373452674836780410f, - -0.927649233092581180f, - 0.372741067009515810f, -0.927935394822617890f, 0.372029239908284960f, - -0.928221010672169440f, - 0.371317193951837600f, -0.928506080473215480f, 0.370604929559051670f, - -0.928790604058057020f, - 0.369892447148934270f, -0.929074581259315750f, 0.369179747140620070f, - -0.929358011909935500f, - 0.368466829953372320f, -0.929640895843181330f, 0.367753696006582090f, - -0.929923232892639560f, - 0.367040345719767240f, -0.930205022892219070f, 0.366326779512573590f, - -0.930486265676149780f, - 0.365612997804773960f, -0.930766961078983710f, 0.364899001016267380f, - -0.931047108935595170f, - 0.364184789567079840f, -0.931326709081180430f, 0.363470363877363870f, - -0.931605761351257830f, - 0.362755724367397230f, -0.931884265581668150f, 0.362040871457584350f, - -0.932162221608574320f, - 0.361325805568454340f, -0.932439629268462360f, 0.360610527120662270f, - -0.932716488398140250f, - 0.359895036534988280f, -0.932992798834738850f, 0.359179334232336560f, - -0.933268560415712050f, - 0.358463420633736540f, -0.933543772978836170f, 0.357747296160342010f, - -0.933818436362210960f, - 0.357030961233430030f, -0.934092550404258870f, 0.356314416274402360f, - -0.934366114943725900f, - 0.355597661704783960f, -0.934639129819680780f, 0.354880697946222790f, - -0.934911594871516090f, - 0.354163525420490510f, -0.935183509938947500f, 0.353446144549480870f, - -0.935454874862014620f, - 0.352728555755210730f, -0.935725689481080370f, 0.352010759459819240f, - -0.935995953636831300f, - 0.351292756085567150f, -0.936265667170278260f, 0.350574546054837570f, - -0.936534829922755500f, - 0.349856129790135030f, -0.936803441735921560f, 0.349137507714085030f, - -0.937071502451759190f, - 0.348418680249434510f, -0.937339011912574960f, 0.347699647819051490f, - -0.937605969960999990f, - 0.346980410845923680f, -0.937872376439989890f, 0.346260969753160170f, - -0.938138231192824360f, - 0.345541324963989150f, -0.938403534063108060f, 0.344821476901759290f, - -0.938668284894770170f, - 0.344101425989938980f, -0.938932483532064490f, 0.343381172652115100f, - -0.939196129819569900f, - 0.342660717311994380f, -0.939459223602189920f, 0.341940060393402300f, - -0.939721764725153340f, - 0.341219202320282410f, -0.939983753034013940f, 0.340498143516697100f, - -0.940245188374650880f, - 0.339776884406826960f, -0.940506070593268300f, 0.339055425414969640f, - -0.940766399536396070f, - 0.338333766965541290f, -0.941026175050889260f, 0.337611909483074680f, - -0.941285396983928660f, - 0.336889853392220050f, -0.941544065183020810f, 0.336167599117744690f, - -0.941802179495997650f, - 0.335445147084531660f, -0.942059739771017310f, 0.334722497717581220f, - -0.942316745856563780f, - 0.333999651442009490f, -0.942573197601446870f, 0.333276608683047980f, - -0.942829094854802710f, - 0.332553369866044220f, -0.943084437466093490f, 0.331829935416461220f, - -0.943339225285107720f, - 0.331106305759876430f, -0.943593458161960390f, 0.330382481321982950f, - -0.943847135947092690f, - 0.329658462528587550f, -0.944100258491272660f, 0.328934249805612200f, - -0.944352825645594750f, - 0.328209843579092660f, -0.944604837261480260f, 0.327485244275178060f, - -0.944856293190677210f, - 0.326760452320131790f, -0.945107193285260610f, 0.326035468140330350f, - -0.945357537397632290f, - 0.325310292162262980f, -0.945607325380521280f, 0.324584924812532150f, - -0.945856557086983910f, - 0.323859366517852960f, -0.946105232370403340f, 0.323133617705052330f, - -0.946353351084490590f, - 0.322407678801070020f, -0.946600913083283530f, 0.321681550232956640f, - -0.946847918221148000f, - 0.320955232427875210f, -0.947094366352777220f, 0.320228725813100020f, - -0.947340257333191940f, - 0.319502030816015750f, -0.947585591017741090f, 0.318775147864118480f, - -0.947830367262101010f, - 0.318048077385015060f, -0.948074585922276230f, 0.317320819806421790f, - -0.948318246854599090f, - 0.316593375556165850f, -0.948561349915730270f, 0.315865745062184070f, - -0.948803894962658380f, - 0.315137928752522440f, -0.949045881852700560f, 0.314409927055336820f, - -0.949287310443502010f, - 0.313681740398891570f, -0.949528180593036670f, 0.312953369211560200f, - -0.949768492159606680f, - 0.312224813921825050f, -0.950008245001843000f, 0.311496074958275970f, - -0.950247438978705230f, - 0.310767152749611470f, -0.950486073949481700f, 0.310038047724638000f, - -0.950724149773789610f, - 0.309308760312268780f, -0.950961666311575080f, 0.308579290941525030f, - -0.951198623423113230f, - 0.307849640041534980f, -0.951435020969008340f, 0.307119808041533100f, - -0.951670858810193860f, - 0.306389795370861080f, -0.951906136807932230f, 0.305659602458966230f, - -0.952140854823815830f, - 0.304929229735402430f, -0.952375012719765880f, 0.304198677629829270f, - -0.952608610358033240f, - 0.303467946572011370f, -0.952841647601198720f, 0.302737036991819140f, - -0.953074124312172200f, - 0.302005949319228200f, -0.953306040354193750f, 0.301274683984318000f, - -0.953537395590833280f, - 0.300543241417273400f, -0.953768189885990330f, 0.299811622048383460f, - -0.953998423103894490f, - 0.299079826308040480f, -0.954228095109105670f, 0.298347854626741570f, - -0.954457205766513490f, - 0.297615707435086310f, -0.954685754941338340f, 0.296883385163778270f, - -0.954913742499130520f, - 0.296150888243623960f, -0.955141168305770670f, 0.295418217105532070f, - -0.955368032227470240f, - 0.294685372180514330f, -0.955594334130771110f, 0.293952353899684770f, - -0.955820073882545420f, - 0.293219162694258680f, -0.956045251349996410f, 0.292485798995553830f, - -0.956269866400658140f, - 0.291752263234989370f, -0.956493918902394990f, 0.291018555844085090f, - -0.956717408723403050f, - 0.290284677254462330f, -0.956940335732208940f, 0.289550627897843140f, - -0.957162699797670100f, - 0.288816408206049480f, -0.957384500788975860f, 0.288082018611004300f, - -0.957605738575646240f, - 0.287347459544729570f, -0.957826413027532910f, 0.286612731439347790f, - -0.958046524014818600f, - 0.285877834727080730f, -0.958266071408017670f, 0.285142769840248720f, - -0.958485055077976100f, - 0.284407537211271820f, -0.958703474895871600f, 0.283672137272668550f, - -0.958921330733213060f, - 0.282936570457055390f, -0.959138622461841890f, 0.282200837197147500f, - -0.959355349953930790f, - 0.281464937925758050f, -0.959571513081984520f, 0.280728873075797190f, - -0.959787111718839900f, - 0.279992643080273380f, -0.960002145737665850f, 0.279256248372291240f, - -0.960216615011963430f, - 0.278519689385053060f, -0.960430519415565790f, 0.277782966551857800f, - -0.960643858822638470f, - 0.277046080306099950f, -0.960856633107679660f, 0.276309031081271030f, - -0.961068842145519350f, - 0.275571819310958250f, -0.961280485811320640f, 0.274834445428843940f, - -0.961491563980579000f, - 0.274096909868706330f, -0.961702076529122540f, 0.273359213064418790f, - -0.961912023333112100f, - 0.272621355449948980f, -0.962121404269041580f, 0.271883337459359890f, - -0.962330219213737400f, - 0.271145159526808070f, -0.962538468044359160f, 0.270406822086544820f, - -0.962746150638399410f, - 0.269668325572915200f, -0.962953266873683880f, 0.268929670420357310f, - -0.963159816628371360f, - 0.268190857063403180f, -0.963365799780954050f, 0.267451885936677740f, - -0.963571216210257210f, - 0.266712757474898420f, -0.963776065795439840f, 0.265973472112875530f, - -0.963980348415994110f, - 0.265234030285511900f, -0.964184063951745720f, 0.264494432427801630f, - -0.964387212282854290f, - 0.263754678974831510f, -0.964589793289812650f, 0.263014770361779060f, - -0.964791806853447900f, - 0.262274707023913590f, -0.964993252854920320f, 0.261534489396595630f, - -0.965194131175724720f, - 0.260794117915275570f, -0.965394441697689400f, 0.260053593015495130f, - -0.965594184302976830f, - 0.259312915132886350f, -0.965793358874083570f, 0.258572084703170390f, - -0.965991965293840570f, - 0.257831102162158930f, -0.966190003445412620f, 0.257089967945753230f, - -0.966387473212298790f, - 0.256348682489942910f, -0.966584374478333120f, 0.255607246230807550f, - -0.966780707127683270f, - 0.254865659604514630f, -0.966976471044852070f, 0.254123923047320620f, - -0.967171666114676640f, - 0.253382036995570270f, -0.967366292222328510f, 0.252640001885695580f, - -0.967560349253314360f, - 0.251897818154216910f, -0.967753837093475510f, 0.251155486237742030f, - -0.967946755628987800f, - 0.250413006572965280f, -0.968139104746362330f, 0.249670379596668520f, - -0.968330884332445300f, - 0.248927605745720260f, -0.968522094274417270f, 0.248184685457074780f, - -0.968712734459794780f, - 0.247441619167773440f, -0.968902804776428870f, 0.246698407314942500f, - -0.969092305112506100f, - 0.245955050335794590f, -0.969281235356548530f, 0.245211548667627680f, - -0.969469595397412950f, - 0.244467902747824210f, -0.969657385124292450f, 0.243724113013852130f, - -0.969844604426714830f, - 0.242980179903263980f, -0.970031253194543970f, 0.242236103853696070f, - -0.970217331317979160f, - 0.241491885302869300f, -0.970402838687555500f, 0.240747524688588540f, - -0.970587775194143630f, - 0.240003022448741500f, -0.970772140728950350f, 0.239258379021300120f, - -0.970955935183517970f, - 0.238513594844318500f, -0.971139158449725090f, 0.237768670355934210f, - -0.971321810419786160f, - 0.237023605994367340f, -0.971503890986251780f, 0.236278402197919620f, - -0.971685400042008540f, - 0.235533059404975460f, -0.971866337480279400f, 0.234787578054001080f, - -0.972046703194623500f, - 0.234041958583543460f, -0.972226497078936270f, 0.233296201432231560f, - -0.972405719027449770f, - 0.232550307038775330f, -0.972584368934732210f, 0.231804275841964780f, - -0.972762446695688570f, - 0.231058108280671280f, -0.972939952205560070f, 0.230311804793845530f, - -0.973116885359925130f, - 0.229565365820518870f, -0.973293246054698250f, 0.228818791799802360f, - -0.973469034186130950f, - 0.228072083170885790f, -0.973644249650811870f, 0.227325240373038830f, - -0.973818892345666100f, - 0.226578263845610110f, -0.973992962167955830f, 0.225831154028026200f, - -0.974166459015280320f, - 0.225083911359792780f, -0.974339382785575860f, 0.224336536280493690f, - -0.974511733377115720f, - 0.223589029229790020f, -0.974683510688510670f, 0.222841390647421280f, - -0.974854714618708430f, - 0.222093620973203590f, -0.975025345066994120f, 0.221345720647030810f, - -0.975195401932990370f, - 0.220597690108873650f, -0.975364885116656870f, 0.219849529798778750f, - -0.975533794518291360f, - 0.219101240156869770f, -0.975702130038528570f, 0.218352821623346430f, - -0.975869891578341030f, - 0.217604274638483670f, -0.976037079039039020f, 0.216855599642632570f, - -0.976203692322270560f, - 0.216106797076219600f, -0.976369731330021140f, 0.215357867379745550f, - -0.976535195964614470f, - 0.214608810993786920f, -0.976700086128711840f, 0.213859628358993830f, - -0.976864401725312640f, - 0.213110319916091360f, -0.977028142657754390f, 0.212360886105878580f, - -0.977191308829712280f, - 0.211611327369227610f, -0.977353900145199960f, 0.210861644147084830f, - -0.977515916508569280f, - 0.210111836880469720f, -0.977677357824509930f, 0.209361906010474190f, - -0.977838223998050430f, - 0.208611851978263460f, -0.977998514934557140f, 0.207861675225075150f, - -0.978158230539735050f, - 0.207111376192218560f, -0.978317370719627650f, 0.206360955321075680f, - -0.978475935380616830f, - 0.205610413053099320f, -0.978633924429423100f, 0.204859749829814420f, - -0.978791337773105670f, - 0.204108966092817010f, -0.978948175319062200f, 0.203358062283773370f, - -0.979104436975029250f, - 0.202607038844421110f, -0.979260122649082020f, 0.201855896216568160f, - -0.979415232249634780f, - 0.201104634842091960f, -0.979569765685440520f, 0.200353255162940420f, - -0.979723722865591170f, - 0.199601757621131050f, -0.979877103699517640f, 0.198850142658750120f, - -0.980029908096989980f, - 0.198098410717953730f, -0.980182135968117320f, 0.197346562240966000f, - -0.980333787223347960f, - 0.196594597670080220f, -0.980484861773469380f, 0.195842517447657990f, - -0.980635359529608120f, - 0.195090322016128330f, -0.980785280403230430f, 0.194338011817988600f, - -0.980934624306141640f, - 0.193585587295803750f, -0.981083391150486590f, 0.192833048892205290f, - -0.981231580848749730f, - 0.192080397049892380f, -0.981379193313754560f, 0.191327632211630990f, - -0.981526228458664660f, - 0.190574754820252800f, -0.981672686196983110f, 0.189821765318656580f, - -0.981818566442552500f, - 0.189068664149806280f, -0.981963869109555240f, 0.188315451756732120f, - -0.982108594112513610f, - 0.187562128582529740f, -0.982252741366289370f, 0.186808695070359330f, - -0.982396310786084690f, - 0.186055151663446630f, -0.982539302287441240f, 0.185301498805082040f, - -0.982681715786240860f, - 0.184547736938619640f, -0.982823551198705240f, 0.183793866507478390f, - -0.982964808441396440f, - 0.183039887955141060f, -0.983105487431216290f, 0.182285801725153320f, - -0.983245588085407070f, - 0.181531608261125130f, -0.983385110321551180f, 0.180777308006728670f, - -0.983524054057571260f, - 0.180022901405699510f, -0.983662419211730250f, 0.179268388901835880f, - -0.983800205702631490f, - 0.178513770938997590f, -0.983937413449218920f, 0.177759047961107140f, - -0.984074042370776450f, - 0.177004220412148860f, -0.984210092386929030f, 0.176249288736167940f, - -0.984345563417641900f, - 0.175494253377271400f, -0.984480455383220930f, 0.174739114779627310f, - -0.984614768204312600f, - 0.173983873387463850f, -0.984748501801904210f, 0.173228529645070490f, - -0.984881656097323700f, - 0.172473083996796030f, -0.985014231012239840f, 0.171717536887049970f, - -0.985146226468662230f, - 0.170961888760301360f, -0.985277642388941220f, 0.170206140061078120f, - -0.985408478695768420f, - 0.169450291233967930f, -0.985538735312176060f, 0.168694342723617440f, - -0.985668412161537550f, - 0.167938294974731230f, -0.985797509167567370f, 0.167182148432072880f, - -0.985926026254321130f, - 0.166425903540464220f, -0.986053963346195440f, 0.165669560744784140f, - -0.986181320367928270f, - 0.164913120489970090f, -0.986308097244598670f, 0.164156583221015890f, - -0.986434293901627070f, - 0.163399949382973230f, -0.986559910264775410f, 0.162643219420950450f, - -0.986684946260146690f, - 0.161886393780111910f, -0.986809401814185420f, 0.161129472905678780f, - -0.986933276853677710f, - 0.160372457242928400f, -0.987056571305750970f, 0.159615347237193090f, - -0.987179285097874340f, - 0.158858143333861390f, -0.987301418157858430f, 0.158100845978377090f, - -0.987422970413855410f, - 0.157343455616238280f, -0.987543941794359230f, 0.156585972692998590f, - -0.987664332228205710f, - 0.155828397654265320f, -0.987784141644572180f, 0.155070730945700510f, - -0.987903369972977790f, - 0.154312973013020240f, -0.988022017143283530f, 0.153555124301993500f, - -0.988140083085692570f, - 0.152797185258443410f, -0.988257567730749460f, 0.152039156328246160f, - -0.988374471009341280f, - 0.151281037957330250f, -0.988490792852696590f, 0.150522830591677370f, - -0.988606533192386450f, - 0.149764534677321620f, -0.988721691960323780f, 0.149006150660348470f, - -0.988836269088763540f, - 0.148247678986896200f, -0.988950264510302990f, 0.147489120103153680f, - -0.989063678157881540f, - 0.146730474455361750f, -0.989176509964781010f, 0.145971742489812370f, - -0.989288759864625170f, - 0.145212924652847520f, -0.989400427791380380f, 0.144454021390860440f, - -0.989511513679355190f, - 0.143695033150294580f, -0.989622017463200780f, 0.142935960377642700f, - -0.989731939077910570f, - 0.142176803519448000f, -0.989841278458820530f, 0.141417563022303130f, - -0.989950035541608990f, - 0.140658239332849240f, -0.990058210262297120f, 0.139898832897777380f, - -0.990165802557248400f, - 0.139139344163826280f, -0.990272812363169110f, 0.138379773577783890f, - -0.990379239617108160f, - 0.137620121586486180f, -0.990485084256456980f, 0.136860388636816430f, - -0.990590346218950150f, - 0.136100575175706200f, -0.990695025442664630f, 0.135340681650134330f, - -0.990799121866020370f, - 0.134580708507126220f, -0.990902635427780010f, 0.133820656193754690f, - -0.991005566067049370f, - 0.133060525157139180f, -0.991107913723276780f, 0.132300315844444680f, - -0.991209678336254060f, - 0.131540028702883280f, -0.991310859846115440f, 0.130779664179711790f, - -0.991411458193338540f, - 0.130019222722233350f, -0.991511473318743900f, 0.129258704777796270f, - -0.991610905163495370f, - 0.128498110793793220f, -0.991709753669099530f, 0.127737441217662280f, - -0.991808018777406430f, - 0.126976696496885980f, -0.991905700430609330f, 0.126215877078990400f, - -0.992002798571244520f, - 0.125454983411546210f, -0.992099313142191800f, 0.124694015942167770f, - -0.992195244086673920f, - 0.123932975118512200f, -0.992290591348257370f, 0.123171861388280650f, - -0.992385354870851670f, - 0.122410675199216280f, -0.992479534598709970f, 0.121649416999105540f, - -0.992573130476428810f, - 0.120888087235777220f, -0.992666142448948020f, 0.120126686357101580f, - -0.992758570461551140f, - 0.119365214810991350f, -0.992850414459865100f, 0.118603673045400840f, - -0.992941674389860470f, - 0.117842061508325020f, -0.993032350197851410f, 0.117080380647800550f, - -0.993122441830495580f, - 0.116318630911904880f, -0.993211949234794500f, 0.115556812748755290f, - -0.993300872358093280f, - 0.114794926606510250f, -0.993389211148080650f, 0.114032972933367300f, - -0.993476965552789190f, - 0.113270952177564360f, -0.993564135520595300f, 0.112508864787378830f, - -0.993650721000219120f, - 0.111746711211126660f, -0.993736721940724600f, 0.110984491897163380f, - -0.993822138291519660f, - 0.110222207293883180f, -0.993906970002356060f, 0.109459857849718030f, - -0.993991217023329380f, - 0.108697444013138670f, -0.994074879304879370f, 0.107934966232653760f, - -0.994157956797789730f, - 0.107172424956808870f, -0.994240449453187900f, 0.106409820634187840f, - -0.994322357222545810f, - 0.105647153713410700f, -0.994403680057679100f, 0.104884424643134970f, - -0.994484417910747600f, - 0.104121633872054730f, -0.994564570734255420f, 0.103358781848899700f, - -0.994644138481050710f, - 0.102595869022436280f, -0.994723121104325700f, 0.101832895841466670f, - -0.994801518557617110f, - 0.101069862754827880f, -0.994879330794805620f, 0.100306770211392820f, - -0.994956557770116380f, - 0.099543618660069444f, -0.995033199438118630f, 0.098780408549799664f, - -0.995109255753726110f, - 0.098017140329560770f, -0.995184726672196820f, 0.097253814448363354f, - -0.995259612149133390f, - 0.096490431355252607f, -0.995333912140482280f, 0.095726991499307315f, - -0.995407626602534900f, - 0.094963495329639061f, -0.995480755491926940f, 0.094199943295393190f, - -0.995553298765638470f, - 0.093436335845747912f, -0.995625256380994310f, 0.092672673429913366f, - -0.995696628295663520f, - 0.091908956497132696f, -0.995767414467659820f, 0.091145185496681130f, - -0.995837614855341610f, - 0.090381360877865011f, -0.995907229417411720f, 0.089617483090022917f, - -0.995976258112917790f, - 0.088853552582524684f, -0.996044700901251970f, 0.088089569804770507f, - -0.996112557742151130f, - 0.087325535206192226f, -0.996179828595696870f, 0.086561449236251239f, - -0.996246513422315520f, - 0.085797312344439880f, -0.996312612182778000f, 0.085033124980280414f, - -0.996378124838200210f, - 0.084268887593324127f, -0.996443051350042630f, 0.083504600633152404f, - -0.996507391680110820f, - 0.082740264549375803f, -0.996571145790554840f, 0.081975879791633108f, - -0.996634313643869900f, - 0.081211446809592386f, -0.996696895202896060f, 0.080446966052950097f, - -0.996758890430818000f, - 0.079682437971430126f, -0.996820299291165670f, 0.078917863014785095f, - -0.996881121747813850f, - 0.078153241632794315f, -0.996941357764982160f, 0.077388574275265049f, - -0.997001007307235290f, - 0.076623861392031617f, -0.997060070339482960f, 0.075859103432954503f, - -0.997118546826979980f, - 0.075094300847921291f, -0.997176436735326190f, 0.074329454086845867f, - -0.997233740030466160f, - 0.073564563599667454f, -0.997290456678690210f, 0.072799629836351618f, - -0.997346586646633230f, - 0.072034653246889416f, -0.997402129901275300f, 0.071269634281296415f, - -0.997457086409941910f, - 0.070504573389614009f, -0.997511456140303450f, 0.069739471021907376f, - -0.997565239060375750f, - 0.068974327628266732f, -0.997618435138519550f, 0.068209143658806454f, - -0.997671044343441000f, - 0.067443919563664106f, -0.997723066644191640f, 0.066678655793001543f, - -0.997774502010167820f, - 0.065913352797003930f, -0.997825350411111640f, 0.065148011025878860f, - -0.997875611817110150f, - 0.064382630929857410f, -0.997925286198596000f, 0.063617212959193190f, - -0.997974373526346990f, - 0.062851757564161420f, -0.998022873771486240f, 0.062086265195060247f, - -0.998070786905482340f, - 0.061320736302208648f, -0.998118112900149180f, 0.060555171335947781f, - -0.998164851727646240f, - 0.059789570746640007f, -0.998211003360478190f, 0.059023934984667986f, - -0.998256567771495180f, - 0.058258264500435732f, -0.998301544933892890f, 0.057492559744367684f, - -0.998345934821212370f, - 0.056726821166907783f, -0.998389737407340160f, 0.055961049218520520f, - -0.998432952666508440f, - 0.055195244349690031f, -0.998475580573294770f, 0.054429407010919147f, - -0.998517621102622210f, - 0.053663537652730679f, -0.998559074229759310f, 0.052897636725665401f, - -0.998599939930320370f, - 0.052131704680283317f, -0.998640218180265270f, 0.051365741967162731f, - -0.998679908955899090f, - 0.050599749036899337f, -0.998719012233872940f, 0.049833726340107257f, - -0.998757527991183340f, - 0.049067674327418126f, -0.998795456205172410f, 0.048301593449480172f, - -0.998832796853527990f, - 0.047535484156959261f, -0.998869549914283560f, 0.046769346900537960f, - -0.998905715365818290f, - 0.046003182130914644f, -0.998941293186856870f, 0.045236990298804750f, - -0.998976283356469820f, - 0.044470771854938744f, -0.999010685854073380f, 0.043704527250063421f, - -0.999044500659429290f, - 0.042938256934940959f, -0.999077727752645360f, 0.042171961360348002f, - -0.999110367114174890f, - 0.041405640977076712f, -0.999142418724816910f, 0.040639296235933854f, - -0.999173882565716380f, - 0.039872927587739845f, -0.999204758618363890f, 0.039106535483329839f, - -0.999235046864595850f, - 0.038340120373552791f, -0.999264747286594420f, 0.037573682709270514f, - -0.999293859866887790f, - 0.036807222941358991f, -0.999322384588349540f, 0.036040741520706299f, - -0.999350321434199440f, - 0.035274238898213947f, -0.999377670388002850f, 0.034507715524795889f, - -0.999404431433671300f, - 0.033741171851377642f, -0.999430604555461730f, 0.032974608328897315f, - -0.999456189737977340f, - 0.032208025408304704f, -0.999481186966166950f, 0.031441423540560343f, - -0.999505596225325310f, - 0.030674803176636581f, -0.999529417501093140f, 0.029908164767516655f, - -0.999552650779456990f, - 0.029141508764193740f, -0.999575296046749220f, 0.028374835617672258f, - -0.999597353289648380f, - 0.027608145778965820f, -0.999618822495178640f, 0.026841439699098527f, - -0.999639703650710200f, - 0.026074717829104040f, -0.999659996743959220f, 0.025307980620024630f, - -0.999679701762987930f, - 0.024541228522912264f, -0.999698818696204250f, 0.023774461988827676f, - -0.999717347532362190f, - 0.023007681468839410f, -0.999735288260561680f, 0.022240887414024919f, - -0.999752640870248840f, - 0.021474080275469605f, -0.999769405351215280f, 0.020707260504265912f, - -0.999785581693599210f, - 0.019940428551514598f, -0.999801169887884260f, 0.019173584868322699f, - -0.999816169924900410f, - 0.018406729905804820f, -0.999830581795823400f, 0.017639864115082195f, - -0.999844405492175240f, - 0.016872987947281773f, -0.999857641005823860f, 0.016106101853537263f, - -0.999870288328982950f, - 0.015339206284988220f, -0.999882347454212560f, 0.014572301692779104f, - -0.999893818374418490f, - 0.013805388528060349f, -0.999904701082852900f, 0.013038467241987433f, - -0.999914995573113470f, - 0.012271538285719944f, -0.999924701839144500f, 0.011504602110422875f, - -0.999933819875236000f, - 0.010737659167264572f, -0.999942349676023910f, 0.009970709907418029f, - -0.999950291236490480f, - 0.009203754782059960f, -0.999957644551963900f, 0.008436794242369860f, - -0.999964409618118280f, - 0.007669828739531077f, -0.999970586430974140f, 0.006902858724729877f, - -0.999976174986897610f, - 0.006135884649154515f, -0.999981175282601110f, 0.005368906963996303f, - -0.999985587315143200f, - 0.004601926120448672f, -0.999989411081928400f, 0.003834942569706248f, - -0.999992646580707190f, - 0.003067956762966138f, -0.999995293809576190f, 0.002300969151425887f, - -0.999997352766978210f, - 0.001533980186284766f, -0.999998823451701880f, 0.000766990318742846f, - -0.999999705862882230f -}; - -static const float32_t Weights_8192[16384] = { - 1.000000000000000000, -0.000000000000000000, 0.999999981616429330, - -0.000191747597310703, - 0.999999926465717890, -0.000383495187571396, 0.999999834547867670, - -0.000575242763732066, - 0.999999705862882230, -0.000766990318742704, 0.999999540410766110, - -0.000958737845553301, - 0.999999338191525530, -0.001150485337113849, 0.999999099205167830, - -0.001342232786374338, - 0.999998823451701880, -0.001533980186284766, 0.999998510931137790, - -0.001725727529795126, - 0.999998161643486980, -0.001917474809855419, 0.999997775588762350, - -0.002109222019415644, - 0.999997352766978210, -0.002300969151425805, 0.999996893178149880, - -0.002492716198835908, - 0.999996396822294350, -0.002684463154595962, 0.999995863699429940, - -0.002876210011655979, - 0.999995293809576190, -0.003067956762965976, 0.999994687152754080, - -0.003259703401475973, - 0.999994043728985820, -0.003451449920135994, 0.999993363538295150, - -0.003643196311896068, - 0.999992646580707190, -0.003834942569706228, 0.999991892856248010, - -0.004026688686516512, - 0.999991102364945590, -0.004218434655276963, 0.999990275106828920, - -0.004410180468937631, - 0.999989411081928400, -0.004601926120448571, 0.999988510290275690, - -0.004793671602759841, - 0.999987572731904080, -0.004985416908821511, 0.999986598406848000, - -0.005177162031583651, - 0.999985587315143200, -0.005368906963996343, 0.999984539456826970, - -0.005560651699009674, - 0.999983454831937730, -0.005752396229573736, 0.999982333440515350, - -0.005944140548638633, - 0.999981175282601110, -0.006135884649154475, 0.999979980358237650, - -0.006327628524071378, - 0.999978748667468830, -0.006519372166339468, 0.999977480210339940, - -0.006711115568908879, - 0.999976174986897610, -0.006902858724729756, 0.999974832997189810, - -0.007094601626752250, - 0.999973454241265940, -0.007286344267926521, 0.999972038719176730, - -0.007478086641202744, - 0.999970586430974140, -0.007669828739531097, 0.999969097376711580, - -0.007861570555861772, - 0.999967571556443780, -0.008053312083144972, 0.999966008970226920, - -0.008245053314330906, - 0.999964409618118280, -0.008436794242369799, 0.999962773500176930, - -0.008628534860211886, - 0.999961100616462820, -0.008820275160807412, 0.999959390967037450, - -0.009012015137106633, - 0.999957644551963900, -0.009203754782059819, 0.999955861371306100, - -0.009395494088617252, - 0.999954041425129780, -0.009587233049729225, 0.999952184713501780, - -0.009778971658346044, - 0.999950291236490480, -0.009970709907418031, 0.999948360994165400, - -0.010162447789895513, - 0.999946393986597460, -0.010354185298728842, 0.999944390213859060, - -0.010545922426868378, - 0.999942349676023910, -0.010737659167264491, 0.999940272373166960, - -0.010929395512867571, - 0.999938158305364590, -0.011121131456628021, 0.999936007472694620, - -0.011312866991496258, - 0.999933819875236000, -0.011504602110422714, 0.999931595513069200, - -0.011696336806357838, - 0.999929334386276070, -0.011888071072252092, 0.999927036494939640, - -0.012079804901055957, - 0.999924701839144500, -0.012271538285719925, 0.999922330418976490, - -0.012463271219194511, - 0.999919922234522750, -0.012655003694430242, 0.999917477285871770, - -0.012846735704377662, - 0.999914995573113470, -0.013038467241987334, 0.999912477096339240, - -0.013230198300209835, - 0.999909921855641540, -0.013421928871995765, 0.999907329851114300, - -0.013613658950295740, - 0.999904701082852900, -0.013805388528060391, 0.999902035550953920, - -0.013997117598240367, - 0.999899333255515390, -0.014188846153786345, 0.999896594196636680, - -0.014380574187649006, - 0.999893818374418490, -0.014572301692779064, 0.999891005788962950, - -0.014764028662127246, - 0.999888156440373320, -0.014955755088644296, 0.999885270328754520, - -0.015147480965280987, - 0.999882347454212560, -0.015339206284988100, 0.999879387816854930, - -0.015530931040716447, - 0.999876391416790410, -0.015722655225416857, 0.999873358254129260, - -0.015914378832040183, - 0.999870288328982950, -0.016106101853537287, 0.999867181641464380, - -0.016297824282859065, - 0.999864038191687680, -0.016489546112956437, 0.999860857979768540, - -0.016681267336780332, - 0.999857641005823860, -0.016872987947281710, 0.999854387269971890, - -0.017064707937411563, - 0.999851096772332190, -0.017256427300120877, 0.999847769513025900, - -0.017448146028360693, - 0.999844405492175240, -0.017639864115082053, 0.999841004709904000, - -0.017831581553236039, - 0.999837567166337090, -0.018023298335773746, 0.999834092861600960, - -0.018215014455646290, - 0.999830581795823400, -0.018406729905804820, 0.999827033969133420, - -0.018598444679200511, - 0.999823449381661570, -0.018790158768784555, 0.999819828033539420, - -0.018981872167508178, - 0.999816169924900410, -0.019173584868322623, 0.999812475055878780, - -0.019365296864179156, - 0.999808743426610520, -0.019557008148029083, 0.999804975037232870, - -0.019748718712823729, - 0.999801169887884260, -0.019940428551514441, 0.999797327978704690, - -0.020132137657052594, - 0.999793449309835270, -0.020323846022389593, 0.999789533881418780, - -0.020515553640476875, - 0.999785581693599210, -0.020707260504265895, 0.999781592746521670, - -0.020898966606708137, - 0.999777567040332940, -0.021090671940755121, 0.999773504575180990, - -0.021282376499358387, - 0.999769405351215280, -0.021474080275469508, 0.999765269368586450, - -0.021665783262040078, - 0.999761096627446610, -0.021857485452021735, 0.999756887127949080, - -0.022049186838366135, - 0.999752640870248840, -0.022240887414024961, 0.999748357854501780, - -0.022432587171949934, - 0.999744038080865430, -0.022624286105092803, 0.999739681549498660, - -0.022815984206405345, - 0.999735288260561680, -0.023007681468839369, 0.999730858214216030, - -0.023199377885346720, - 0.999726391410624470, -0.023391073448879258, 0.999721887849951310, - -0.023582768152388894, - 0.999717347532362190, -0.023774461988827555, 0.999712770458023870, - -0.023966154951147210, - 0.999708156627104880, -0.024157847032299864, 0.999703506039774650, - -0.024349538225237534, - 0.999698818696204250, -0.024541228522912288, 0.999694094596566000, - -0.024732917918276223, - 0.999689333741033640, -0.024924606404281468, 0.999684536129782140, - -0.025116293973880186, - 0.999679701762987930, -0.025307980620024571, 0.999674830640828740, - -0.025499666335666853, - 0.999669922763483760, -0.025691351113759295, 0.999664978131133310, - -0.025883034947254198, - 0.999659996743959220, -0.026074717829103901, 0.999654978602144690, - -0.026266399752260760, - 0.999649923705874240, -0.026458080709677187, 0.999644832055333610, - -0.026649760694305618, - 0.999639703650710200, -0.026841439699098531, 0.999634538492192300, - -0.027033117717008431, - 0.999629336579970110, -0.027224794740987875, 0.999624097914234570, - -0.027416470763989436, - 0.999618822495178640, -0.027608145778965740, 0.999613510322995950, - -0.027799819778869445, - 0.999608161397882110, -0.027991492756653243, 0.999602775720033530, - -0.028183164705269874, - 0.999597353289648380, -0.028374835617672099, 0.999591894106925950, - -0.028566505486812728, - 0.999586398172067070, -0.028758174305644615, 0.999580865485273700, - -0.028949842067120635, - 0.999575296046749220, -0.029141508764193722, 0.999569689856698580, - -0.029333174389816835, - 0.999564046915327740, -0.029524838936942976, 0.999558367222844300, - -0.029716502398525191, - 0.999552650779456990, -0.029908164767516555, 0.999546897585375960, - -0.030099826036870198, - 0.999541107640812940, -0.030291486199539284, 0.999535280945980540, - -0.030483145248477009, - 0.999529417501093140, -0.030674803176636626, 0.999523517306366350, - -0.030866459976971412, - 0.999517580362016990, -0.031058115642434700, 0.999511606668263440, - -0.031249770165979861, - 0.999505596225325310, -0.031441423540560301, 0.999499549033423640, - -0.031633075759129478, - 0.999493465092780590, -0.031824726814640887, 0.999487344403620080, - -0.032016376700048060, - 0.999481186966166950, -0.032208025408304586, 0.999474992780647780, - -0.032399672932364086, - 0.999468761847290050, -0.032591319265180226, 0.999462494166323160, - -0.032782964399706724, - 0.999456189737977340, -0.032974608328897335, 0.999449848562484530, - -0.033166251045705857, - 0.999443470640077770, -0.033357892543086139, 0.999437055970991530, - -0.033549532813992068, - 0.999430604555461730, -0.033741171851377580, 0.999424116393725640, - -0.033932809648196664, - 0.999417591486021720, -0.034124446197403326, 0.999411029832589780, - -0.034316081491951651, - 0.999404431433671300, -0.034507715524795750, 0.999397796289508640, - -0.034699348288889799, - 0.999391124400346050, -0.034890979777188004, 0.999384415766428560, - -0.035082609982644619, - 0.999377670388002850, -0.035274238898213947, 0.999370888265317170, - -0.035465866516850353, - 0.999364069398620550, -0.035657492831508222, 0.999357213788164000, - -0.035849117835142018, - 0.999350321434199440, -0.036040741520706229, 0.999343392336980220, - -0.036232363881155395, - 0.999336426496761240, -0.036423984909444110, 0.999329423913798420, - -0.036615604598527030, - 0.999322384588349540, -0.036807222941358832, 0.999315308520673070, - -0.036998839930894263, - 0.999308195711029470, -0.037190455560088119, 0.999301046159680070, - -0.037382069821895229, - 0.999293859866887790, -0.037573682709270494, 0.999286636832916740, - -0.037765294215168860, - 0.999279377058032710, -0.037956904332545310, 0.999272080542502610, - -0.038148513054354891, - 0.999264747286594420, -0.038340120373552694, 0.999257377290578060, - -0.038531726283093870, - 0.999249970554724420, -0.038723330775933623, 0.999242527079305830, - -0.038914933845027193, - 0.999235046864595850, -0.039106535483329888, 0.999227529910869610, - -0.039298135683797059, - 0.999219976218403530, -0.039489734439384118, 0.999212385787475290, - -0.039681331743046527, - 0.999204758618363890, -0.039872927587739811, 0.999197094711349880, - -0.040064521966419520, - 0.999189394066714920, -0.040256114872041282, 0.999181656684742350, - -0.040447706297560782, - 0.999173882565716380, -0.040639296235933736, 0.999166071709923000, - -0.040830884680115948, - 0.999158224117649430, -0.041022471623063238, 0.999150339789184110, - -0.041214057057731519, - 0.999142418724816910, -0.041405640977076739, 0.999134460924839150, - -0.041597223374054894, - 0.999126466389543390, -0.041788804241622061, 0.999118435119223490, - -0.041980383572734356, - 0.999110367114174890, -0.042171961360347947, 0.999102262374694130, - -0.042363537597419072, - 0.999094120901079070, -0.042555112276904020, 0.999085942693629270, - -0.042746685391759132, - 0.999077727752645360, -0.042938256934940820, 0.999069476078429330, - -0.043129826899405546, - 0.999061187671284600, -0.043321395278109825, 0.999052862531515930, - -0.043512962064010237, - 0.999044500659429290, -0.043704527250063421, 0.999036102055332330, - -0.043896090829226068, - 0.999027666719533690, -0.044087652794454944, 0.999019194652343460, - -0.044279213138706849, - 0.999010685854073380, -0.044470771854938668, 0.999002140325035980, - -0.044662328936107325, - 0.998993558065545680, -0.044853884375169815, 0.998984939075918010, - -0.045045438165083197, - 0.998976283356469820, -0.045236990298804590, 0.998967590907519300, - -0.045428540769291155, - 0.998958861729386080, -0.045620089569500144, 0.998950095822391250, - -0.045811636692388844, - 0.998941293186856870, -0.046003182130914623, 0.998932453823106690, - -0.046194725878034908, - 0.998923577731465780, -0.046386267926707157, 0.998914664912260440, - -0.046577808269888943, - 0.998905715365818290, -0.046769346900537863, 0.998896729092468410, - -0.046960883811611592, - 0.998887706092541290, -0.047152418996067869, 0.998878646366368690, - -0.047343952446864478, - 0.998869549914283560, -0.047535484156959303, 0.998860416736620520, - -0.047727014119310254, - 0.998851246833715180, -0.047918542326875327, 0.998842040205904840, - -0.048110068772612591, - 0.998832796853527990, -0.048301593449480144, 0.998823516776924490, - -0.048493116350436176, - 0.998814199976435390, -0.048684637468438943, 0.998804846452403420, - -0.048876156796446760, - 0.998795456205172410, -0.049067674327418015, 0.998786029235087640, - -0.049259190054311140, - 0.998776565542495610, -0.049450703970084664, 0.998767065127744380, - -0.049642216067697156, - 0.998757527991183340, -0.049833726340107277, 0.998747954133162860, - -0.050025234780273729, - 0.998738343554035230, -0.050216741381155311, 0.998728696254153720, - -0.050408246135710856, - 0.998719012233872940, -0.050599749036899282, 0.998709291493549030, - -0.050791250077679581, - 0.998699534033539280, -0.050982749251010803, 0.998689739854202620, - -0.051174246549852080, - 0.998679908955899090, -0.051365741967162593, 0.998670041338990070, - -0.051557235495901611, - 0.998660137003838490, -0.051748727129028456, 0.998650195950808280, - -0.051940216859502536, - 0.998640218180265270, -0.052131704680283324, 0.998630203692576050, - -0.052323190584330347, - 0.998620152488108870, -0.052514674564603223, 0.998610064567233340, - -0.052706156614061632, - 0.998599939930320370, -0.052897636725665324, 0.998589778577742230, - -0.053089114892374133, - 0.998579580509872500, -0.053280591107147945, 0.998569345727086110, - -0.053472065362946727, - 0.998559074229759310, -0.053663537652730520, 0.998548766018269920, - -0.053855007969459440, - 0.998538421092996730, -0.054046476306093660, 0.998528039454320230, - -0.054237942655593452, - 0.998517621102622210, -0.054429407010919133, 0.998507166038285490, - -0.054620869365031105, - 0.998496674261694640, -0.054812329710889854, 0.998486145773235360, - -0.055003788041455920, - 0.998475580573294770, -0.055195244349689934, 0.998464978662261250, - -0.055386698628552597, - 0.998454340040524800, -0.055578150871004678, 0.998443664708476340, - -0.055769601070007030, - 0.998432952666508440, -0.055961049218520569, 0.998422203915015020, - -0.056152495309506292, - 0.998411418454391300, -0.056343939335925290, 0.998400596285033640, - -0.056535381290738700, - 0.998389737407340160, -0.056726821166907748, 0.998378841821709990, - -0.056918258957393740, - 0.998367909528543820, -0.057109694655158062, 0.998356940528243420, - -0.057301128253162158, - 0.998345934821212370, -0.057492559744367566, 0.998334892407855000, - -0.057683989121735904, - 0.998323813288577560, -0.057875416378228857, 0.998312697463787260, - -0.058066841506808194, - 0.998301544933892890, -0.058258264500435752, 0.998290355699304350, - -0.058449685352073476, - 0.998279129760433200, -0.058641104054683341, 0.998267867117692110, - -0.058832520601227435, - 0.998256567771495180, -0.059023934984667931, 0.998245231722257880, - -0.059215347197967061, - 0.998233858970396850, -0.059406757234087150, 0.998222449516330550, - -0.059598165085990591, - 0.998211003360478190, -0.059789570746639868, 0.998199520503260660, - -0.059980974208997548, - 0.998188000945100300, -0.060172375466026259, 0.998176444686420530, - -0.060363774510688743, - 0.998164851727646240, -0.060555171335947788, 0.998153222069203760, - -0.060746565934766288, - 0.998141555711520520, -0.060937958300107203, 0.998129852655025630, - -0.061129348424933588, - 0.998118112900149180, -0.061320736302208578, 0.998106336447323050, - -0.061512121924895378, - 0.998094523296980010, -0.061703505285957298, 0.998082673449554590, - -0.061894886378357716, - 0.998070786905482340, -0.062086265195060088, 0.998058863665200250, - -0.062277641729027972, - 0.998046903729146840, -0.062469015973224996, 0.998034907097761770, - -0.062660387920614874, - 0.998022873771486240, -0.062851757564161406, 0.998010803750762450, - -0.063043124896828492, - 0.997998697036034390, -0.063234489911580066, 0.997986553627747020, - -0.063425852601380228, - 0.997974373526346990, -0.063617212959193106, 0.997962156732281950, - -0.063808570977982898, - 0.997949903246001190, -0.063999926650713940, 0.997937613067955250, - -0.064191279970350637, - 0.997925286198596000, -0.064382630929857465, 0.997912922638376610, - -0.064573979522198982, - 0.997900522387751620, -0.064765325740339885, 0.997888085447177110, - -0.064956669577244872, - 0.997875611817110150, -0.065148011025878833, 0.997863101498009500, - -0.065339350079206632, - 0.997850554490335110, -0.065530686730193327, 0.997837970794548280, - -0.065722020971803990, - 0.997825350411111640, -0.065913352797003805, 0.997812693340489280, - -0.066104682198758077, - 0.997799999583146470, -0.066296009170032130, 0.997787269139549960, - -0.066487333703791451, - 0.997774502010167820, -0.066678655793001557, 0.997761698195469560, - -0.066869975430628115, - 0.997748857695925690, -0.067061292609636822, 0.997735980512008620, - -0.067252607322993499, - 0.997723066644191640, -0.067443919563664051, 0.997710116092949570, - -0.067635229324614479, - 0.997697128858758500, -0.067826536598810869, 0.997684104942096030, - -0.068017841379219388, - 0.997671044343441000, -0.068209143658806329, 0.997657947063273710, - -0.068400443430538013, - 0.997644813102075420, -0.068591740687380942, 0.997631642460329320, - -0.068783035422301630, - 0.997618435138519550, -0.068974327628266746, 0.997605191137131640, - -0.069165617298242985, - 0.997591910456652630, -0.069356904425197208, 0.997578593097570800, - -0.069548189002096306, - 0.997565239060375750, -0.069739471021907307, 0.997551848345558430, - -0.069930750477597309, - 0.997538420953611340, -0.070122027362133521, 0.997524956885027960, - -0.070313301668483250, - 0.997511456140303450, -0.070504573389613856, 0.997497918719934210, - -0.070695842518492855, - 0.997484344624417930, -0.070887109048087801, 0.997470733854253670, - -0.071078372971366405, - 0.997457086409941910, -0.071269634281296401, 0.997443402291984360, - -0.071460892970845680, - 0.997429681500884180, -0.071652149032982212, 0.997415924037145960, - -0.071843402460674027, - 0.997402129901275300, -0.072034653246889332, 0.997388299093779460, - -0.072225901384596322, - 0.997374431615167150, -0.072417146866763413, 0.997360527465947940, - -0.072608389686358993, - 0.997346586646633230, -0.072799629836351673, 0.997332609157735470, - -0.072990867309710036, - 0.997318594999768600, -0.073182102099402888, 0.997304544173247990, - -0.073373334198399032, - 0.997290456678690210, -0.073564563599667426, 0.997276332516613180, - -0.073755790296177098, - 0.997262171687536170, -0.073947014280897200, 0.997247974191979860, - -0.074138235546796979, - 0.997233740030466280, -0.074329454086845756, 0.997219469203518670, - -0.074520669894013000, - 0.997205161711661850, -0.074711882961268211, 0.997190817555421940, - -0.074903093281581082, - 0.997176436735326190, -0.075094300847921305, 0.997162019251903290, - -0.075285505653258769, - 0.997147565105683480, -0.075476707690563388, 0.997133074297198110, - -0.075667906952805231, - 0.997118546826979980, -0.075859103432954447, 0.997103982695563330, - -0.076050297123981259, - 0.997089381903483400, -0.076241488018856066, 0.997074744451277310, - -0.076432676110549283, - 0.997060070339482960, -0.076623861392031492, 0.997045359568640040, - -0.076815043856273343, - 0.997030612139289450, -0.077006223496245640, 0.997015828051973310, - -0.077197400304919200, - 0.997001007307235290, -0.077388574275265049, 0.996986149905620180, - -0.077579745400254224, - 0.996971255847674320, -0.077770913672857947, 0.996956325133945280, - -0.077962079086047492, - 0.996941357764982160, -0.078153241632794232, 0.996926353741335090, - -0.078344401306069705, - 0.996911313063555740, -0.078535558098845479, 0.996896235732197210, - -0.078726712004093299, - 0.996881121747813850, -0.078917863014784942, 0.996865971110961310, - -0.079109011123892375, - 0.996850783822196610, -0.079300156324387597, 0.996835559882078170, - -0.079491298609242769, - 0.996820299291165670, -0.079682437971430126, 0.996805002050020430, - -0.079873574403921996, - 0.996789668159204560, -0.080064707899690890, 0.996774297619282050, - -0.080255838451709319, - 0.996758890430818000, -0.080446966052950014, 0.996743446594378860, - -0.080638090696385709, - 0.996727966110532490, -0.080829212374989329, 0.996712448979848010, - -0.081020331081733857, - 0.996696895202896060, -0.081211446809592441, 0.996681304780248300, - -0.081402559551538245, - 0.996665677712478160, -0.081593669300544652, 0.996650014000160070, - -0.081784776049585076, - 0.996634313643869900, -0.081975879791633066, 0.996618576644185070, - -0.082166980519662314, - 0.996602803001684130, -0.082358078226646536, 0.996586992716946950, - -0.082549172905559673, - 0.996571145790554840, -0.082740264549375692, 0.996555262223090540, - -0.082931353151068699, - 0.996539342015137940, -0.083122438703612911, 0.996523385167282450, - -0.083313521199982685, - 0.996507391680110820, -0.083504600633152432, 0.996491361554210920, - -0.083695676996096716, - 0.996475294790172160, -0.083886750281790226, 0.996459191388585410, - -0.084077820483207694, - 0.996443051350042630, -0.084268887593324071, 0.996426874675137240, - -0.084459951605114325, - 0.996410661364464100, -0.084651012511553617, 0.996394411418619290, - -0.084842070305617134, - 0.996378124838200210, -0.085033124980280275, 0.996361801623805720, - -0.085224176528518478, - 0.996345441776035900, -0.085415224943307333, 0.996329045295492380, - -0.085606270217622529, - 0.996312612182778000, -0.085797312344439894, 0.996296142438496850, - -0.085988351316735337, - 0.996279636063254650, -0.086179387127484894, 0.996263093057658140, - -0.086370419769664752, - 0.996246513422315520, -0.086561449236251170, 0.996229897157836500, - -0.086752475520220543, - 0.996213244264832040, -0.086943498614549378, 0.996196554743914220, - -0.087134518512214307, - 0.996179828595696980, -0.087325535206192059, 0.996163065820794950, - -0.087516548689459531, - 0.996146266419824620, -0.087707558954993659, 0.996129430393403740, - -0.087898565995771588, - 0.996112557742151130, -0.088089569804770507, 0.996095648466687300, - -0.088280570374967740, - 0.996078702567633980, -0.088471567699340767, 0.996061720045614000, - -0.088662561770867149, - 0.996044700901251970, -0.088853552582524600, 0.996027645135173610, - -0.089044540127290892, - 0.996010552748005870, -0.089235524398144014, 0.995993423740377360, - -0.089426505388061961, - 0.995976258112917790, -0.089617483090022959, 0.995959055866258320, - -0.089808457497005278, - 0.995941817001031350, -0.089999428601987341, 0.995924541517870800, - -0.090190396397947695, - 0.995907229417411720, -0.090381360877864983, 0.995889880700290720, - -0.090572322034717989, - 0.995872495367145730, -0.090763279861485621, 0.995855073418615790, - -0.090954234351146926, - 0.995837614855341610, -0.091145185496681005, 0.995820119677964910, - -0.091336133291067184, - 0.995802587887129160, -0.091527077727284828, 0.995785019483478750, - -0.091718018798313455, - 0.995767414467659820, -0.091908956497132724, 0.995749772840319510, - -0.092099890816722388, - 0.995732094602106430, -0.092290821750062355, 0.995714379753670610, - -0.092481749290132600, - 0.995696628295663520, -0.092672673429913310, 0.995678840228737540, - -0.092863594162384724, - 0.995661015553546910, -0.093054511480527249, 0.995643154270746900, - -0.093245425377321375, - 0.995625256380994310, -0.093436335845747787, 0.995607321884947050, - -0.093627242878787195, - 0.995589350783264600, -0.093818146469420549, 0.995571343076607770, - -0.094009046610628838, - 0.995553298765638470, -0.094199943295393204, 0.995535217851020390, - -0.094390836516694943, - 0.995517100333418110, -0.094581726267515445, 0.995498946213497770, - -0.094772612540836243, - 0.995480755491926940, -0.094963495329638992, 0.995462528169374420, - -0.095154374626905486, - 0.995444264246510340, -0.095345250425617617, 0.995425963724006160, - -0.095536122718757471, - 0.995407626602534900, -0.095726991499307162, 0.995389252882770690, - -0.095917856760249040, - 0.995370842565388990, -0.096108718494565509, 0.995352395651066810, - -0.096299576695239128, - 0.995333912140482280, -0.096490431355252593, 0.995315392034315070, - -0.096681282467588725, - 0.995296835333246090, -0.096872130025230471, 0.995278242037957670, - -0.097062974021160917, - 0.995259612149133390, -0.097253814448363271, 0.995240945667458130, - -0.097444651299820870, - 0.995222242593618360, -0.097635484568517200, 0.995203502928301510, - -0.097826314247435861, - 0.995184726672196930, -0.098017140329560604, 0.995165913825994620, - -0.098207962807875276, - 0.995147064390386470, -0.098398781675363881, 0.995128178366065490, - -0.098589596925010584, - 0.995109255753726110, -0.098780408549799623, 0.995090296554064000, - -0.098971216542715429, - 0.995071300767776170, -0.099162020896742503, 0.995052268395561050, - -0.099352821604865540, - 0.995033199438118630, -0.099543618660069319, 0.995014093896149700, - -0.099734412055338825, - 0.994994951770357020, -0.099925201783659073, 0.994975773061444140, - -0.100115987838015310, - 0.994956557770116380, -0.100306770211392860, 0.994937305897080070, - -0.100497548896777200, - 0.994918017443043200, -0.100688323887153960, 0.994898692408714870, - -0.100879095175508860, - 0.994879330794805620, -0.101069862754827820, 0.994859932602027320, - -0.101260626618096830, - 0.994840497831093180, -0.101451386758302080, 0.994821026482717860, - -0.101642143168429830, - 0.994801518557617110, -0.101832895841466530, 0.994781974056508260, - -0.102023644770398740, - 0.994762392980109930, -0.102214389948213210, 0.994742775329142010, - -0.102405131367896720, - 0.994723121104325700, -0.102595869022436280, 0.994703430306383860, - -0.102786602904819040, - 0.994683702936040250, -0.102977333008032220, 0.994663938994020390, - -0.103168059325063230, - 0.994644138481050710, -0.103358781848899610, 0.994624301397859400, - -0.103549500572529070, - 0.994604427745175660, -0.103740215488939370, 0.994584517523730340, - -0.103930926591118510, - 0.994564570734255420, -0.104121633872054590, 0.994544587377484300, - -0.104312337324735800, - 0.994524567454151740, -0.104503036942150570, 0.994504510964993700, - -0.104693732717287390, - 0.994484417910747600, -0.104884424643134970, 0.994464288292152390, - -0.105075112712682040, - 0.994444122109948040, -0.105265796918917600, 0.994423919364875950, - -0.105456477254830710, - 0.994403680057679100, -0.105647153713410620, 0.994383404189101430, - -0.105837826287646670, - 0.994363091759888570, -0.106028494970528410, 0.994342742770787270, - -0.106219159755045480, - 0.994322357222545810, -0.106409820634187680, 0.994301935115913580, - -0.106600477600944960, - 0.994281476451641550, -0.106791130648307390, 0.994260981230481790, - -0.106981779769265230, - 0.994240449453187900, -0.107172424956808840, 0.994219881120514960, - -0.107363066203928760, - 0.994199276233218910, -0.107553703503615620, 0.994178634792057590, - -0.107744336848860280, - 0.994157956797789730, -0.107934966232653650, 0.994137242251175720, - -0.108125591647986870, - 0.994116491152977070, -0.108316213087851170, 0.994095703503956930, - -0.108506830545237920, - 0.994074879304879370, -0.108697444013138720, 0.994054018556510210, - -0.108888053484545190, - 0.994033121259616400, -0.109078658952449240, 0.994012187414966220, - -0.109269260409842780, - 0.993991217023329380, -0.109459857849717980, 0.993970210085476920, - -0.109650451265067100, - 0.993949166602181130, -0.109841040648882600, 0.993928086574215830, - -0.110031625994157000, - 0.993906970002356060, -0.110222207293883060, 0.993885816887378090, - -0.110412784541053630, - 0.993864627230059750, -0.110603357728661730, 0.993843401031180180, - -0.110793926849700560, - 0.993822138291519660, -0.110984491897163390, 0.993800839011860120, - -0.111175052864043720, - 0.993779503192984580, -0.111365609743335160, 0.993758130835677430, - -0.111556162528031480, - 0.993736721940724600, -0.111746711211126590, 0.993715276508913230, - -0.111937255785614570, - 0.993693794541031790, -0.112127796244489640, 0.993672276037870010, - -0.112318332580746170, - 0.993650721000219120, -0.112508864787378690, 0.993629129428871720, - -0.112699392857381860, - 0.993607501324621610, -0.112889916783750520, 0.993585836688263950, - -0.113080436559479620, - 0.993564135520595300, -0.113270952177564350, 0.993542397822413600, - -0.113461463630999950, - 0.993520623594518090, -0.113651970912781870, 0.993498812837709360, - -0.113842474015905710, - 0.993476965552789190, -0.114032972933367200, 0.993455081740560960, - -0.114223467658162260, - 0.993433161401829360, -0.114413958183286920, 0.993411204537400060, - -0.114604444501737420, - 0.993389211148080650, -0.114794926606510080, 0.993367181234679600, - -0.114985404490601460, - 0.993345114798006910, -0.115175878147008190, 0.993323011838873950, - -0.115366347568727140, - 0.993300872358093280, -0.115556812748755260, 0.993278696356479030, - -0.115747273680089720, - 0.993256483834846440, -0.115937730355727780, 0.993234234794012290, - -0.116128182768666930, - 0.993211949234794500, -0.116318630911904750, 0.993189627158012620, - -0.116509074778439040, - 0.993167268564487230, -0.116699514361267690, 0.993144873455040430, - -0.116889949653388780, - 0.993122441830495580, -0.117080380647800590, 0.993099973691677570, - -0.117270807337501460, - 0.993077469039412300, -0.117461229715489990, 0.993054927874527320, - -0.117651647774764860, - 0.993032350197851410, -0.117842061508324980, 0.993009736010214580, - -0.118032470909169340, - 0.992987085312448390, -0.118222875970297170, 0.992964398105385610, - -0.118413276684707790, - 0.992941674389860470, -0.118603673045400720, 0.992918914166708300, - -0.118794065045375640, - 0.992896117436765980, -0.118984452677632340, 0.992873284200871730, - -0.119174835935170880, - 0.992850414459865100, -0.119365214810991350, 0.992827508214586760, - -0.119555589298094110, - 0.992804565465879140, -0.119745959389479600, 0.992781586214585570, - -0.119936325078148470, - 0.992758570461551140, -0.120126686357101500, 0.992735518207621850, - -0.120317043219339680, - 0.992712429453645460, -0.120507395657864130, 0.992689304200470750, - -0.120697743665676110, - 0.992666142448948020, -0.120888087235777080, 0.992642944199928820, - -0.121078426361168640, - 0.992619709454266140, -0.121268761034852600, 0.992596438212814290, - -0.121459091249830840, - 0.992573130476428810, -0.121649416999105530, 0.992549786245966680, - -0.121839738275678890, - 0.992526405522286100, -0.122030055072553360, 0.992502988306246950, - -0.122220367382731540, - 0.992479534598709970, -0.122410675199216200, 0.992456044400537700, - -0.122600978515010240, - 0.992432517712593660, -0.122791277323116770, 0.992408954535742850, - -0.122981571616539050, - 0.992385354870851670, -0.123171861388280480, 0.992361718718787870, - -0.123362146631344680, - 0.992338046080420420, -0.123552427338735370, 0.992314336956619640, - -0.123742703503456510, - 0.992290591348257370, -0.123932975118512160, 0.992266809256206580, - -0.124123242176906600, - 0.992242990681341700, -0.124313504671644230, 0.992219135624538450, - -0.124503762595729660, - 0.992195244086673920, -0.124694015942167640, 0.992171316068626520, - -0.124884264703963130, - 0.992147351571276090, -0.125074508874121170, 0.992123350595503720, - -0.125264748445647060, - 0.992099313142191800, -0.125454983411546230, 0.992075239212224070, - -0.125645213764824290, - 0.992051128806485720, -0.125835439498487000, 0.992026981925863360, - -0.126025660605540320, - 0.992002798571244520, -0.126215877078990350, 0.991978578743518580, - -0.126406088911843380, - 0.991954322443575950, -0.126596296097105850, 0.991930029672308480, - -0.126786498627784410, - 0.991905700430609330, -0.126976696496885870, 0.991881334719373010, - -0.127166889697417160, - 0.991856932539495470, -0.127357078222385400, 0.991832493891873780, - -0.127547262064797970, - 0.991808018777406430, -0.127737441217662310, 0.991783507196993490, - -0.127927615673986080, - 0.991758959151536110, -0.128117785426777130, 0.991734374641936810, - -0.128307950469043420, - 0.991709753669099530, -0.128498110793793170, 0.991685096233929420, - -0.128688266394034690, - 0.991660402337333210, -0.128878417262776550, 0.991635671980218740, - -0.129068563393027410, - 0.991610905163495370, -0.129258704777796140, 0.991586101888073500, - -0.129448841410091780, - 0.991561262154865290, -0.129638973282923560, 0.991536385964783880, - -0.129829100389300930, - 0.991511473318743900, -0.130019222722233350, 0.991486524217661480, - -0.130209340274730630, - 0.991461538662453790, -0.130399453039802690, 0.991436516654039420, - -0.130589561010459650, - 0.991411458193338540, -0.130779664179711710, 0.991386363281272280, - -0.130969762540569380, - 0.991361231918763460, -0.131159856086043270, 0.991336064106736140, - -0.131349944809144190, - 0.991310859846115440, -0.131540028702883120, 0.991285619137828200, - -0.131730107760271160, - 0.991260341982802440, -0.131920181974319790, 0.991235028381967420, - -0.132110251338040360, - 0.991209678336254060, -0.132300315844444650, 0.991184291846594180, - -0.132490375486544550, - 0.991158868913921350, -0.132680430257352070, 0.991133409539170170, - -0.132870480149879430, - 0.991107913723276890, -0.133060525157139060, 0.991082381467178640, - -0.133250565272143570, - 0.991056812771814340, -0.133440600487905680, 0.991031207638124130, - -0.133630630797438340, - 0.991005566067049370, -0.133820656193754720, 0.990979888059532740, - -0.134010676669868130, - 0.990954173616518500, -0.134200692218792020, 0.990928422738951990, - -0.134390702833540070, - 0.990902635427780010, -0.134580708507126170, 0.990876811683950700, - -0.134770709232564350, - 0.990850951508413620, -0.134960705002868750, 0.990825054902119470, - -0.135150695811053850, - 0.990799121866020370, -0.135340681650134210, 0.990773152401069780, - -0.135530662513124590, - 0.990747146508222710, -0.135720638393039910, 0.990721104188435180, - -0.135910609282895330, - 0.990695025442664630, -0.136100575175706200, 0.990668910271870100, - -0.136290536064487960, - 0.990642758677011570, -0.136480491942256280, 0.990616570659050620, - -0.136670442802027090, - 0.990590346218950150, -0.136860388636816380, 0.990564085357674370, - -0.137050329439640410, - 0.990537788076188750, -0.137240265203515590, 0.990511454375460290, - -0.137430195921458550, - 0.990485084256457090, -0.137620121586486040, 0.990458677720148620, - -0.137810042191615080, - 0.990432234767505970, -0.137999957729862790, 0.990405755399501260, - -0.138189868194246560, - 0.990379239617108160, -0.138379773577783890, 0.990352687421301450, - -0.138569673873492500, - 0.990326098813057330, -0.138759569074390350, 0.990299473793353590, - -0.138949459173495490, - 0.990272812363169110, -0.139139344163826200, 0.990246114523483990, - -0.139329224038400980, - 0.990219380275280000, -0.139519098790238490, 0.990192609619540030, - -0.139708968412357550, - 0.990165802557248400, -0.139898832897777210, 0.990138959089390650, - -0.140088692239516670, - 0.990112079216953770, -0.140278546430595420, 0.990085162940925970, - -0.140468395464033000, - 0.990058210262297120, -0.140658239332849210, 0.990031221182058000, - -0.140848078030064080, - 0.990004195701200910, -0.141037911548697710, 0.989977133820719610, - -0.141227739881770510, - 0.989950035541608990, -0.141417563022303020, 0.989922900864865450, - -0.141607380963316020, - 0.989895729791486660, -0.141797193697830390, 0.989868522322471580, - -0.141987001218867290, - 0.989841278458820530, -0.142176803519448030, 0.989813998201535260, - -0.142366600592594180, - 0.989786681551618640, -0.142556392431327340, 0.989759328510075200, - -0.142746179028669460, - 0.989731939077910570, -0.142935960377642670, 0.989704513256131850, - -0.143125736471269190, - 0.989677051045747210, -0.143315507302571500, 0.989649552447766530, - -0.143505272864572290, - 0.989622017463200890, -0.143695033150294470, 0.989594446093062460, - -0.143884788152760980, - 0.989566838338365120, -0.144074537864995160, 0.989539194200123930, - -0.144264282280020440, - 0.989511513679355190, -0.144454021390860470, 0.989483796777076760, - -0.144643755190539040, - 0.989456043494307710, -0.144833483672080210, 0.989428253832068230, - -0.145023206828508220, - 0.989400427791380380, -0.145212924652847460, 0.989372565373267010, - -0.145402637138122570, - 0.989344666578752640, -0.145592344277358340, 0.989316731408863000, - -0.145782046063579860, - 0.989288759864625170, -0.145971742489812210, 0.989260751947067640, - -0.146161433549080900, - 0.989232707657220050, -0.146351119234411460, 0.989204626996113780, - -0.146540799538829760, - 0.989176509964781010, -0.146730474455361750, 0.989148356564255590, - -0.146920143977033620, - 0.989120166795572690, -0.147109808096871820, 0.989091940659768800, - -0.147299466807902850, - 0.989063678157881540, -0.147489120103153570, 0.989035379290950310, - -0.147678767975650970, - 0.989007044060015270, -0.147868410418422220, 0.988978672466118480, - -0.148058047424494720, - 0.988950264510302990, -0.148247678986896030, 0.988921820193613190, - -0.148437305098653970, - 0.988893339517095130, -0.148626925752796540, 0.988864822481795640, - -0.148816540942351920, - 0.988836269088763540, -0.149006150660348450, 0.988807679339048450, - -0.149195754899814820, - 0.988779053233701520, -0.149385353653779720, 0.988750390773775360, - -0.149574946915272230, - 0.988721691960323780, -0.149764534677321510, 0.988692956794401940, - -0.149954116932956960, - 0.988664185277066230, -0.150143693675208190, 0.988635377409374790, - -0.150333264897105000, - 0.988606533192386450, -0.150522830591677400, 0.988577652627162020, - -0.150712390751955610, - 0.988548735714763200, -0.150901945370970040, 0.988519782456253270, - -0.151091494441751300, - 0.988490792852696590, -0.151281037957330220, 0.988461766905159300, - -0.151470575910737810, - 0.988432704614708340, -0.151660108295005310, 0.988403605982412390, - -0.151849635103164180, - 0.988374471009341280, -0.152039156328246050, 0.988345299696566150, - -0.152228671963282740, - 0.988316092045159690, -0.152418182001306330, 0.988286848056195820, - -0.152607686435349050, - 0.988257567730749460, -0.152797185258443440, 0.988228251069897420, - -0.152986678463622040, - 0.988198898074717610, -0.153176166043917840, 0.988169508746289060, - -0.153365647992363880, - 0.988140083085692570, -0.153555124301993450, 0.988110621094009820, - -0.153744594965840030, - 0.988081122772324070, -0.153934059976937350, 0.988051588121720110, - -0.154123519328319360, - 0.988022017143283530, -0.154312973013020100, 0.987992409838101880, - -0.154502421024073940, - 0.987962766207263420, -0.154691863354515430, 0.987933086251858380, - -0.154881299997379320, - 0.987903369972977790, -0.155070730945700510, 0.987873617371714200, - -0.155260156192514240, - 0.987843828449161740, -0.155449575730855850, 0.987814003206415550, - -0.155638989553760900, - 0.987784141644572180, -0.155828397654265230, 0.987754243764729530, - -0.156017800025404800, - 0.987724309567986960, -0.156207196660215900, 0.987694339055445130, - -0.156396587551734880, - 0.987664332228205710, -0.156585972692998430, 0.987634289087372160, - -0.156775352077043350, - 0.987604209634049160, -0.156964725696906780, 0.987574093869342360, - -0.157154093545625900, - 0.987543941794359230, -0.157343455616238250, 0.987513753410208420, - -0.157532811901781530, - 0.987483528717999710, -0.157722162395293630, 0.987453267718844560, - -0.157911507089812660, - 0.987422970413855410, -0.158100845978376980, 0.987392636804146240, - -0.158290179054025180, - 0.987362266890832400, -0.158479506309795960, 0.987331860675030430, - -0.158668827738728310, - 0.987301418157858430, -0.158858143333861450, 0.987270939340435420, - -0.159047453088234760, - 0.987240424223882250, -0.159236756994887850, 0.987209872809320820, - -0.159426055046860580, - 0.987179285097874340, -0.159615347237193060, 0.987148661090667570, - -0.159804633558925440, - 0.987118000788826280, -0.159993914005098270, 0.987087304193477900, - -0.160183188568752220, - 0.987056571305750970, -0.160372457242928280, 0.987025802126775600, - -0.160561720020667490, - 0.986994996657682980, -0.160750976895011220, 0.986964154899605650, - -0.160940227859001080, - 0.986933276853677710, -0.161129472905678810, 0.986902362521034470, - -0.161318712028086400, - 0.986871411902812470, -0.161507945219266120, 0.986840425000149680, - -0.161697172472260400, - 0.986809401814185530, -0.161886393780111830, 0.986778342346060430, - -0.162075609135863330, - 0.986747246596916590, -0.162264818532558000, 0.986716114567897100, - -0.162454021963239190, - 0.986684946260146690, -0.162643219420950310, 0.986653741674811350, - -0.162832410898735210, - 0.986622500813038480, -0.163021596389637840, 0.986591223675976400, - -0.163210775886702380, - 0.986559910264775410, -0.163399949382973230, 0.986528560580586690, - -0.163589116871495020, - 0.986497174624562880, -0.163778278345312670, 0.986465752397857940, - -0.163967433797471170, - 0.986434293901627180, -0.164156583221015810, 0.986402799137027220, - -0.164345726608992190, - 0.986371268105216030, -0.164534863954446000, 0.986339700807353000, - -0.164723995250423170, - 0.986308097244598670, -0.164913120489969890, 0.986276457418115090, - -0.165102239666132660, - 0.986244781329065460, -0.165291352771958000, 0.986213068978614490, - -0.165480459800492780, - 0.986181320367928270, -0.165669560744784120, 0.986149535498173860, - -0.165858655597879300, - 0.986117714370520090, -0.166047744352825790, 0.986085856986136820, - -0.166236827002671420, - 0.986053963346195440, -0.166425903540464100, 0.986022033451868560, - -0.166614973959252090, - 0.985990067304330140, -0.166804038252083730, 0.985958064904755460, - -0.166993096412007710, - 0.985926026254321130, -0.167182148432072940, 0.985893951354205210, - -0.167371194305328430, - 0.985861840205586980, -0.167560234024823560, 0.985829692809647050, - -0.167749267583607890, - 0.985797509167567480, -0.167938294974731170, 0.985765289280531310, - -0.168127316191243410, - 0.985733033149723490, -0.168316331226194830, 0.985700740776329850, - -0.168505340072635900, - 0.985668412161537550, -0.168694342723617330, 0.985636047306535420, - -0.168883339172189980, - 0.985603646212513400, -0.169072329411405010, 0.985571208880662740, - -0.169261313434313830, - 0.985538735312176060, -0.169450291233967960, 0.985506225508247290, - -0.169639262803419290, - 0.985473679470071810, -0.169828228135719850, 0.985441097198846210, - -0.170017187223921950, - 0.985408478695768420, -0.170206140061078070, 0.985375823962037710, - -0.170395086640240940, - 0.985343132998854790, -0.170584026954463590, 0.985310405807421570, - -0.170772960996799230, - 0.985277642388941220, -0.170961888760301220, 0.985244842744618540, - -0.171150810238023280, - 0.985212006875659350, -0.171339725423019310, 0.985179134783271130, - -0.171528634308343420, - 0.985146226468662230, -0.171717536887049970, 0.985113281933042710, - -0.171906433152193530, - 0.985080301177623800, -0.172095323096829010, 0.985047284203618200, - -0.172284206714011370, - 0.985014231012239840, -0.172473083996795950, 0.984981141604703960, - -0.172661954938238270, - 0.984948015982227030, -0.172850819531394080, 0.984914854146027200, - -0.173039677769319360, - 0.984881656097323700, -0.173228529645070320, 0.984848421837337010, - -0.173417375151703470, - 0.984815151367289140, -0.173606214282275410, 0.984781844688403350, - -0.173795047029843160, - 0.984748501801904210, -0.173983873387463820, 0.984715122709017620, - -0.174172693348194820, - 0.984681707410970940, -0.174361506905093750, 0.984648255908992630, - -0.174550314051218510, - 0.984614768204312600, -0.174739114779627200, 0.984581244298162180, - -0.174927909083378160, - 0.984547684191773960, -0.175116696955529920, 0.984514087886381840, - -0.175305478389141320, - 0.984480455383220930, -0.175494253377271430, 0.984446786683527920, - -0.175683021912979490, - 0.984413081788540700, -0.175871783989325040, 0.984379340699498510, - -0.176060539599367820, - 0.984345563417641900, -0.176249288736167880, 0.984311749944212780, - -0.176438031392785410, - 0.984277900280454370, -0.176626767562280880, 0.984244014427611110, - -0.176815497237715000, - 0.984210092386929030, -0.177004220412148750, 0.984176134159655320, - -0.177192937078643280, - 0.984142139747038570, -0.177381647230260040, 0.984108109150328540, - -0.177570350860060710, - 0.984074042370776450, -0.177759047961107170, 0.984039939409634970, - -0.177947738526461560, - 0.984005800268157870, -0.178136422549186300, 0.983971624947600270, - -0.178325100022344000, - 0.983937413449218920, -0.178513770938997510, 0.983903165774271500, - -0.178702435292209970, - 0.983868881924017220, -0.178891093075044720, 0.983834561899716630, - -0.179079744280565390, - 0.983800205702631600, -0.179268388901835750, 0.983765813334025240, - -0.179457026931919890, - 0.983731384795162090, -0.179645658363882160, 0.983696920087308140, - -0.179834283190787090, - 0.983662419211730250, -0.180022901405699510, 0.983627882169697210, - -0.180211513001684450, - 0.983593308962478650, -0.180400117971807240, 0.983558699591345900, - -0.180588716309133340, - 0.983524054057571260, -0.180777308006728590, 0.983489372362428730, - -0.180965893057658980, - 0.983454654507193270, -0.181154471454990810, 0.983419900493141540, - -0.181343043191790540, - 0.983385110321551180, -0.181531608261124970, 0.983350283993701500, - -0.181720166656061110, - 0.983315421510872810, -0.181908718369666160, 0.983280522874346970, - -0.182097263395007650, - 0.983245588085407070, -0.182285801725153300, 0.983210617145337640, - -0.182474333353171120, - 0.983175610055424420, -0.182662858272129270, 0.983140566816954500, - -0.182851376475096330, - 0.983105487431216290, -0.183039887955140950, 0.983070371899499640, - -0.183228392705332140, - 0.983035220223095640, -0.183416890718739100, 0.983000032403296590, - -0.183605381988431270, - 0.982964808441396440, -0.183793866507478450, 0.982929548338690170, - -0.183982344268950520, - 0.982894252096474070, -0.184170815265917720, 0.982858919716046110, - -0.184359279491450510, - 0.982823551198705240, -0.184547736938619620, 0.982788146545751970, - -0.184736187600495950, - 0.982752705758487830, -0.184924631470150790, 0.982717228838215990, - -0.185113068540655540, - 0.982681715786240860, -0.185301498805081900, 0.982646166603868050, - -0.185489922256501880, - 0.982610581292404750, -0.185678338887987630, 0.982574959853159240, - -0.185866748692611660, - 0.982539302287441240, -0.186055151663446630, 0.982503608596561830, - -0.186243547793565560, - 0.982467878781833170, -0.186431937076041610, 0.982432112844569110, - -0.186620319503948280, - 0.982396310786084690, -0.186808695070359270, 0.982360472607696210, - -0.186997063768348540, - 0.982324598310721280, -0.187185425590990330, 0.982288687896478830, - -0.187373780531359110, - 0.982252741366289370, -0.187562128582529600, 0.982216758721474510, - -0.187750469737576780, - 0.982180739963357090, -0.187938803989575910, 0.982144685093261580, - -0.188127131331602420, - 0.982108594112513610, -0.188315451756732120, 0.982072467022440000, - -0.188503765258040940, - 0.982036303824369020, -0.188692071828605230, 0.982000104519630490, - -0.188880371461501380, - 0.981963869109555240, -0.189068664149806190, 0.981927597595475540, - -0.189256949886596750, - 0.981891289978725100, -0.189445228664950230, 0.981854946260638630, - -0.189633500477944190, - 0.981818566442552500, -0.189821765318656410, 0.981782150525804310, - -0.190010023180164990, - 0.981745698511732990, -0.190198274055548150, 0.981709210401678800, - -0.190386517937884470, - 0.981672686196983110, -0.190574754820252740, 0.981636125898989080, - -0.190762984695732110, - 0.981599529509040720, -0.190951207557401800, 0.981562897028483650, - -0.191139423398341450, - 0.981526228458664770, -0.191327632211630900, 0.981489523800932130, - -0.191515833990350210, - 0.981452783056635520, -0.191704028727579800, 0.981416006227125550, - -0.191892216416400220, - 0.981379193313754560, -0.192080397049892440, 0.981342344317876040, - -0.192268570621137500, - 0.981305459240844670, -0.192456737123216840, 0.981268538084016710, - -0.192644896549212100, - 0.981231580848749730, -0.192833048892205230, 0.981194587536402320, - -0.193021194145278380, - 0.981157558148334830, -0.193209332301513960, 0.981120492685908730, - -0.193397463353994740, - 0.981083391150486710, -0.193585587295803610, 0.981046253543432780, - -0.193773704120023820, - 0.981009079866112630, -0.193961813819738840, 0.980971870119892840, - -0.194149916388032450, - 0.980934624306141640, -0.194338011817988600, 0.980897342426228390, - -0.194526100102691610, - 0.980860024481523870, -0.194714181235225960, 0.980822670473400100, - -0.194902255208676520, - 0.980785280403230430, -0.195090322016128250, 0.980747854272389750, - -0.195278381650666550, - 0.980710392082253970, -0.195466434105376980, 0.980672893834200530, - -0.195654479373345370, - 0.980635359529608120, -0.195842517447657850, 0.980597789169856850, - -0.196030548321400790, - 0.980560182756327840, -0.196218571987660880, 0.980522540290404090, - -0.196406588439524970, - 0.980484861773469380, -0.196594597670080220, 0.980447147206909060, - -0.196782599672414100, - 0.980409396592109910, -0.196970594439614340, 0.980371609930459800, - -0.197158581964768880, - 0.980333787223347960, -0.197346562240965920, 0.980295928472165290, - -0.197534535261294030, - 0.980258033678303550, -0.197722501018841920, 0.980220102843156080, - -0.197910459506698670, - 0.980182135968117430, -0.198098410717953560, 0.980144133054583590, - -0.198286354645696220, - 0.980106094103951770, -0.198474291283016390, 0.980068019117620650, - -0.198662220623004200, - 0.980029908096990090, -0.198850142658750090, 0.979991761043461200, - -0.199038057383344680, - 0.979953577958436740, -0.199225964789878830, 0.979915358843320480, - -0.199413864871443770, - 0.979877103699517640, -0.199601757621130970, 0.979838812528434740, - -0.199789643032032090, - 0.979800485331479790, -0.199977521097239150, 0.979762122110061750, - -0.200165391809844440, - 0.979723722865591170, -0.200353255162940450, 0.979685287599479930, - -0.200541111149619980, - 0.979646816313141210, -0.200728959762976140, 0.979608309007989450, - -0.200916800996102230, - 0.979569765685440520, -0.201104634842091900, 0.979531186346911500, - -0.201292461294039020, - 0.979492570993820810, -0.201480280345037730, 0.979453919627588210, - -0.201668091988182530, - 0.979415232249634780, -0.201855896216568050, 0.979376508861383170, - -0.202043693023289260, - 0.979337749464256780, -0.202231482401441450, 0.979298954059681040, - -0.202419264344120160, - 0.979260122649082020, -0.202607038844421130, 0.979221255233887700, - -0.202794805895440440, - 0.979182351815526930, -0.202982565490274440, 0.979143412395430230, - -0.203170317622019790, - 0.979104436975029250, -0.203358062283773320, 0.979065425555756930, - -0.203545799468632190, - 0.979026378139047580, -0.203733529169693920, 0.978987294726337050, - -0.203921251380056120, - 0.978948175319062200, -0.204108966092816870, 0.978909019918661310, - -0.204296673301074370, - 0.978869828526574120, -0.204484372997927240, 0.978830601144241470, - -0.204672065176474210, - 0.978791337773105670, -0.204859749829814420, 0.978752038414610340, - -0.205047426951047250, - 0.978712703070200420, -0.205235096533272350, 0.978673331741322210, - -0.205422758569589610, - 0.978633924429423210, -0.205610413053099240, 0.978594481135952270, - -0.205798059976901790, - 0.978555001862359550, -0.205985699334097910, 0.978515486610096910, - -0.206173331117788710, - 0.978475935380616830, -0.206360955321075510, 0.978436348175373730, - -0.206548571937059890, - 0.978396724995823090, -0.206736180958843690, 0.978357065843421640, - -0.206923782379529100, - 0.978317370719627650, -0.207111376192218560, 0.978277639625900530, - -0.207298962390014750, - 0.978237872563701090, -0.207486540966020650, 0.978198069534491400, - -0.207674111913339570, - 0.978158230539735050, -0.207861675225075070, 0.978118355580896660, - -0.208049230894330940, - 0.978078444659442380, -0.208236778914211330, 0.978038497776839600, - -0.208424319277820600, - 0.977998514934557140, -0.208611851978263490, 0.977958496134064830, - -0.208799377008644900, - 0.977918441376834370, -0.208986894362070070, 0.977878350664338150, - -0.209174404031644580, - 0.977838223998050430, -0.209361906010474160, 0.977798061379446360, - -0.209549400291664940, - 0.977757862810002760, -0.209736886868323290, 0.977717628291197460, - -0.209924365733555880, - 0.977677357824509930, -0.210111836880469610, 0.977637051411420770, - -0.210299300302171730, - 0.977596709053411890, -0.210486755991769720, 0.977556330751966460, - -0.210674203942371440, - 0.977515916508569280, -0.210861644147084860, 0.977475466324706170, - -0.211049076599018390, - 0.977434980201864260, -0.211236501291280710, 0.977394458141532250, - -0.211423918216980670, - 0.977353900145199960, -0.211611327369227550, 0.977313306214358750, - -0.211798728741130840, - 0.977272676350500860, -0.211986122325800330, 0.977232010555120320, - -0.212173508116346080, - 0.977191308829712280, -0.212360886105878420, 0.977150571175773200, - -0.212548256287508060, - 0.977109797594800880, -0.212735618654345930, 0.977068988088294450, - -0.212922973199503180, - 0.977028142657754390, -0.213110319916091360, 0.976987261304682390, - -0.213297658797222320, - 0.976946344030581670, -0.213484989836008050, 0.976905390836956490, - -0.213672313025560970, - 0.976864401725312640, -0.213859628358993750, 0.976823376697157240, - -0.214046935829419360, - 0.976782315753998650, -0.214234235429950990, 0.976741218897346550, - -0.214421527153702160, - 0.976700086128711840, -0.214608810993786760, 0.976658917449606980, - -0.214796086943318860, - 0.976617712861545640, -0.214983354995412820, 0.976576472366042610, - -0.215170615143183390, - 0.976535195964614470, -0.215357867379745550, 0.976493883658778650, - -0.215545111698214500, - 0.976452535450054060, -0.215732348091705880, 0.976411151339961040, - -0.215919576553335490, - 0.976369731330021140, -0.216106797076219520, 0.976328275421757260, - -0.216294009653474340, - 0.976286783616693630, -0.216481214278216730, 0.976245255916355800, - -0.216668410943563730, - 0.976203692322270560, -0.216855599642632620, 0.976162092835966110, - -0.217042780368540990, - 0.976120457458971910, -0.217229953114406790, 0.976078786192818850, - -0.217417117873348190, - 0.976037079039039020, -0.217604274638483640, 0.975995335999165990, - -0.217791423402931950, - 0.975953557074734300, -0.217978564159812200, 0.975911742267280170, - -0.218165696902243800, - 0.975869891578341030, -0.218352821623346320, 0.975828005009455660, - -0.218539938316239770, - 0.975786082562163930, -0.218727046974044440, 0.975744124238007270, - -0.218914147589880840, - 0.975702130038528570, -0.219101240156869800, 0.975660099965271590, - -0.219288324668132470, - 0.975618034019781750, -0.219475401116790310, 0.975575932203605720, - -0.219662469495965050, - 0.975533794518291360, -0.219849529798778700, 0.975491620965388110, - -0.220036582018353580, - 0.975449411546446380, -0.220223626147812380, 0.975407166263018270, - -0.220410662180277940, - 0.975364885116656980, -0.220597690108873510, 0.975322568108916930, - -0.220784709926722610, - 0.975280215241354220, -0.220971721626949110, 0.975237826515525820, - -0.221158725202677010, - 0.975195401932990370, -0.221345720647030810, 0.975152941495307620, - -0.221532707953135230, - 0.975110445204038890, -0.221719687114115220, 0.975067913060746470, - -0.221906658123096100, - 0.975025345066994120, -0.222093620973203510, 0.974982741224347140, - -0.222280575657563370, - 0.974940101534371830, -0.222467522169301880, 0.974897425998635820, - -0.222654460501545500, - 0.974854714618708430, -0.222841390647421120, 0.974811967396159830, - -0.223028312600055820, - 0.974769184332561770, -0.223215226352576980, 0.974726365429487320, - -0.223402131898112370, - 0.974683510688510670, -0.223589029229789990, 0.974640620111207560, - -0.223775918340738150, - 0.974597693699155050, -0.223962799224085460, 0.974554731453931230, - -0.224149671872960870, - 0.974511733377115720, -0.224336536280493600, 0.974468699470289580, - -0.224523392439813170, - 0.974425629735034990, -0.224710240344049430, 0.974382524172935470, - -0.224897079986332490, - 0.974339382785575860, -0.225083911359792830, 0.974296205574542440, - -0.225270734457561160, - 0.974252992541422500, -0.225457549272768540, 0.974209743687805220, - -0.225644355798546330, - 0.974166459015280320, -0.225831154028026170, 0.974123138525439640, - -0.226017943954340020, - 0.974079782219875680, -0.226204725570620190, 0.974036390100182610, - -0.226391498869999240, - 0.973992962167955830, -0.226578263845610000, 0.973949498424792170, - -0.226765020490585690, - 0.973905998872289570, -0.226951768798059810, 0.973862463512047300, - -0.227138508761166170, - 0.973818892345666100, -0.227325240373038860, 0.973775285374748110, - -0.227511963626812280, - 0.973731642600896400, -0.227698678515621170, 0.973687964025715670, - -0.227885385032600530, - 0.973644249650811980, -0.228072083170885730, 0.973600499477792370, - -0.228258772923612380, - 0.973556713508265560, -0.228445454283916470, 0.973512891743841370, - -0.228632127244934230, - 0.973469034186131070, -0.228818791799802220, 0.973425140836747030, - -0.229005447941657340, - 0.973381211697303290, -0.229192095663636770, 0.973337246769414910, - -0.229378734958878010, - 0.973293246054698250, -0.229565365820518870, 0.973249209554771230, - -0.229751988241697490, - 0.973205137271252800, -0.229938602215552210, 0.973161029205763530, - -0.230125207735221850, - 0.973116885359925130, -0.230311804793845440, 0.973072705735360530, - -0.230498393384562350, - 0.973028490333694210, -0.230684973500512200, 0.972984239156551740, - -0.230871545134835020, - 0.972939952205560180, -0.231058108280671110, 0.972895629482347760, - -0.231244662931161050, - 0.972851270988544180, -0.231431209079445750, 0.972806876725780370, - -0.231617746718666470, - 0.972762446695688570, -0.231804275841964780, 0.972717980899902250, - -0.231990796442482440, - 0.972673479340056430, -0.232177308513361710, 0.972628942017787270, - -0.232363812047745030, - 0.972584368934732210, -0.232550307038775240, 0.972539760092530180, - -0.232736793479595390, - 0.972495115492821190, -0.232923271363348980, 0.972450435137246830, - -0.233109740683179690, - 0.972405719027449770, -0.233296201432231590, 0.972360967165074140, - -0.233482653603649090, - 0.972316179551765300, -0.233669097190576820, 0.972271356189170040, - -0.233855532186159840, - 0.972226497078936270, -0.234041958583543430, 0.972181602222713440, - -0.234228376375873210, - 0.972136671622152230, -0.234414785556295160, 0.972091705278904430, - -0.234601186117955550, - 0.972046703194623500, -0.234787578054000970, 0.972001665370963890, - -0.234973961357578250, - 0.971956591809581720, -0.235160336021834730, 0.971911482512134000, - -0.235346702039917840, - 0.971866337480279400, -0.235533059404975490, 0.971821156715677700, - -0.235719408110155820, - 0.971775940219990140, -0.235905748148607370, 0.971730687994879160, - -0.236092079513478910, - 0.971685400042008540, -0.236278402197919570, 0.971640076363043390, - -0.236464716195078780, - 0.971594716959650160, -0.236651021498106380, 0.971549321833496630, - -0.236837318100152380, - 0.971503890986251780, -0.237023605994367200, 0.971458424419585960, - -0.237209885173901600, - 0.971412922135170940, -0.237396155631906610, 0.971367384134679490, - -0.237582417361533570, - 0.971321810419786160, -0.237768670355934190, 0.971276200992166490, - -0.237954914608260540, - 0.971230555853497380, -0.238141150111664840, 0.971184875005457030, - -0.238327376859299810, - 0.971139158449725090, -0.238513594844318420, 0.971093406187982460, - -0.238699804059873980, - 0.971047618221911100, -0.238886004499120040, 0.971001794553194690, - -0.239072196155210610, - 0.970955935183517970, -0.239258379021299980, 0.970910040114567050, - -0.239444553090542630, - 0.970864109348029470, -0.239630718356093560, 0.970818142885593870, - -0.239816874811108000, - 0.970772140728950350, -0.240003022448741500, 0.970726102879790110, - -0.240189161262149900, - 0.970680029339806130, -0.240375291244489450, 0.970633920110692160, - -0.240561412388916650, - 0.970587775194143630, -0.240747524688588430, 0.970541594591857070, - -0.240933628136661910, - 0.970495378305530560, -0.241119722726294590, 0.970449126336863090, - -0.241305808450644370, - 0.970402838687555500, -0.241491885302869330, 0.970356515359309450, - -0.241677953276128010, - 0.970310156353828110, -0.241864012363579180, 0.970263761672816140, - -0.242050062558382070, - 0.970217331317979160, -0.242236103853696010, 0.970170865291024480, - -0.242422136242680890, - 0.970124363593660280, -0.242608159718496810, 0.970077826227596420, - -0.242794174274304220, - 0.970031253194543970, -0.242980179903263870, 0.969984644496215240, - -0.243166176598536900, - 0.969938000134323960, -0.243352164353284740, 0.969891320110585100, - -0.243538143160669130, - 0.969844604426714830, -0.243724113013852160, 0.969797853084430890, - -0.243910073905996260, - 0.969751066085452140, -0.244096025830264210, 0.969704243431498860, - -0.244281968779819030, - 0.969657385124292450, -0.244467902747824150, 0.969610491165555870, - -0.244653827727443320, - 0.969563561557013180, -0.244839743711840670, 0.969516596300390000, - -0.245025650694180470, - 0.969469595397413060, -0.245211548667627540, 0.969422558849810320, - -0.245397437625346960, - 0.969375486659311280, -0.245583317560504060, 0.969328378827646660, - -0.245769188466264580, - 0.969281235356548530, -0.245955050335794590, 0.969234056247750050, - -0.246140903162260530, - 0.969186841502985950, -0.246326746938829030, 0.969139591123992280, - -0.246512581658667210, - 0.969092305112506210, -0.246698407314942410, 0.969044983470266240, - -0.246884223900822430, - 0.968997626199012420, -0.247070031409475250, 0.968950233300485800, - -0.247255829834069300, - 0.968902804776428870, -0.247441619167773270, 0.968855340628585580, - -0.247627399403756280, - 0.968807840858700970, -0.247813170535187670, 0.968760305468521430, - -0.247998932555237110, - 0.968712734459794780, -0.248184685457074780, 0.968665127834270060, - -0.248370429233870980, - 0.968617485593697540, -0.248556163878796560, 0.968569807739828930, - -0.248741889385022480, - 0.968522094274417380, -0.248927605745720150, 0.968474345199216820, - -0.249113312954061360, - 0.968426560515983190, -0.249299011003218190, 0.968378740226473300, - -0.249484699886362960, - 0.968330884332445190, -0.249670379596668550, 0.968282992835658660, - -0.249856050127307990, - 0.968235065737874320, -0.250041711471454650, 0.968187103040854420, - -0.250227363622282370, - 0.968139104746362440, -0.250413006572965220, 0.968091070856162970, - -0.250598640316677670, - 0.968043001372022260, -0.250784264846594500, 0.967994896295707670, - -0.250969880155890720, - 0.967946755628987800, -0.251155486237741920, 0.967898579373632660, - -0.251341083085323880, - 0.967850367531413620, -0.251526670691812610, 0.967802120104103270, - -0.251712249050384700, - 0.967753837093475510, -0.251897818154216970, 0.967705518501305480, - -0.252083377996486450, - 0.967657164329369880, -0.252268928570370810, 0.967608774579446500, - -0.252454469869047740, - 0.967560349253314360, -0.252640001885695520, 0.967511888352754150, - -0.252825524613492610, - 0.967463391879547550, -0.253011038045617860, 0.967414859835477480, - -0.253196542175250560, - 0.967366292222328510, -0.253382036995570160, 0.967317689041886310, - -0.253567522499756560, - 0.967269050295937790, -0.253752998680989990, 0.967220375986271420, - -0.253938465532451090, - 0.967171666114676640, -0.254123923047320620, 0.967122920682944360, - -0.254309371218780000, - 0.967074139692867040, -0.254494810040010730, 0.967025323146238010, - -0.254680239504194830, - 0.966976471044852070, -0.254865659604514570, 0.966927583390505660, - -0.255051070334152470, - 0.966878660184995910, -0.255236471686291710, 0.966829701430121810, - -0.255421863654115460, - 0.966780707127683270, -0.255607246230807380, 0.966731677279481840, - -0.255792619409551610, - 0.966682611887320080, -0.255977983183532430, 0.966633510953002100, - -0.256163337545934460, - 0.966584374478333120, -0.256348682489942910, 0.966535202465119700, - -0.256534018008743040, - 0.966485994915169840, -0.256719344095520660, 0.966436751830292650, - -0.256904660743461910, - 0.966387473212298900, -0.257089967945753120, 0.966338159063000130, - -0.257275265695581120, - 0.966288809384209690, -0.257460553986133100, 0.966239424177741890, - -0.257645832810596390, - 0.966190003445412500, -0.257831102162158990, 0.966140547189038750, - -0.258016362034009020, - 0.966091055410438830, -0.258201612419334870, 0.966041528111432400, - -0.258386853311325600, - 0.965991965293840570, -0.258572084703170340, 0.965942366959485540, - -0.258757306588058680, - 0.965892733110190860, -0.258942518959180520, 0.965843063747781510, - -0.259127721809726150, - 0.965793358874083680, -0.259312915132886230, 0.965743618490924830, - -0.259498098921851660, - 0.965693842600133690, -0.259683273169813770, 0.965644031203540590, - -0.259868437869964270, - 0.965594184302976830, -0.260053593015495190, 0.965544301900275180, - -0.260238738599598840, - 0.965494383997269500, -0.260423874615468010, 0.965444430595795430, - -0.260609001056295750, - 0.965394441697689400, -0.260794117915275510, 0.965344417304789370, - -0.260979225185601070, - 0.965294357418934660, -0.261164322860466480, 0.965244262041965780, - -0.261349410933066350, - 0.965194131175724720, -0.261534489396595520, 0.965143964822054450, - -0.261719558244249030, - 0.965093762982799590, -0.261904617469222610, 0.965043525659805890, - -0.262089667064712040, - 0.964993252854920320, -0.262274707023913590, 0.964942944569991410, - -0.262459737340023980, - 0.964892600806868890, -0.262644758006240040, 0.964842221567403620, - -0.262829769015759160, - 0.964791806853447900, -0.263014770361779000, 0.964741356666855340, - -0.263199762037497560, - 0.964690871009481030, -0.263384744036113280, 0.964640349883180930, - -0.263569716350824880, - 0.964589793289812760, -0.263754678974831350, 0.964539201231235150, - -0.263939631901332350, - 0.964488573709308410, -0.264124575123527550, 0.964437910725893910, - -0.264309508634617110, - 0.964387212282854290, -0.264494432427801630, 0.964336478382053720, - -0.264679346496281890, - 0.964285709025357480, -0.264864250833259260, 0.964234904214632200, - -0.265049145431935250, - 0.964184063951745830, -0.265234030285511790, 0.964133188238567640, - -0.265418905387191260, - 0.964082277076968140, -0.265603770730176330, 0.964031330468819280, - -0.265788626307669920, - 0.963980348415994110, -0.265973472112875590, 0.963929330920367140, - -0.266158308138996990, - 0.963878277983814200, -0.266343134379238180, 0.963827189608212340, - -0.266527950826803690, - 0.963776065795439840, -0.266712757474898370, 0.963724906547376530, - -0.266897554316727350, - 0.963673711865903230, -0.267082341345496300, 0.963622481752902220, - -0.267267118554410930, - 0.963571216210257320, -0.267451885936677620, 0.963519915239853140, - -0.267636643485503090, - 0.963468578843575950, -0.267821391194094150, 0.963417207023313350, - -0.268006129055658290, - 0.963365799780954050, -0.268190857063403180, 0.963314357118388200, - -0.268375575210536900, - 0.963262879037507070, -0.268560283490267890, 0.963211365540203480, - -0.268744981895804980, - 0.963159816628371360, -0.268929670420357260, 0.963108232303906190, - -0.269114349057134380, - 0.963056612568704340, -0.269299017799346120, 0.963004957424663850, - -0.269483676640202840, - 0.962953266873683880, -0.269668325572915090, 0.962901540917665000, - -0.269852964590693860, - 0.962849779558509030, -0.270037593686750570, 0.962797982798119010, - -0.270222212854296870, - 0.962746150638399410, -0.270406822086544820, 0.962694283081255930, - -0.270591421376706940, - 0.962642380128595710, -0.270776010717996010, 0.962590441782326890, - -0.270960590103625170, - 0.962538468044359160, -0.271145159526808010, 0.962486458916603450, - -0.271329718980758420, - 0.962434414400972100, -0.271514268458690700, 0.962382334499378380, - -0.271698807953819510, - 0.962330219213737400, -0.271883337459359720, 0.962278068545965090, - -0.272067856968526920, - 0.962225882497979020, -0.272252366474536710, 0.962173661071697880, - -0.272436865970605240, - 0.962121404269041580, -0.272621355449948980, 0.962069112091931580, - -0.272805834905784810, - 0.962016784542290560, -0.272990304331329920, 0.961964421622042320, - -0.273174763719801930, - 0.961912023333112210, -0.273359213064418680, 0.961859589677426570, - -0.273543652358398730, - 0.961807120656913540, -0.273728081594960540, 0.961754616273502010, - -0.273912500767323260, - 0.961702076529122540, -0.274096909868706380, 0.961649501425706820, - -0.274281308892329660, - 0.961596890965187860, -0.274465697831413220, 0.961544245149499990, - -0.274650076679177680, - 0.961491563980579000, -0.274834445428843940, 0.961438847460361680, - -0.275018804073633220, - 0.961386095590786250, -0.275203152606767310, 0.961333308373792270, - -0.275387491021468140, - 0.961280485811320640, -0.275571819310958140, 0.961227627905313460, - -0.275756137468460120, - 0.961174734657714080, -0.275940445487197150, 0.961121806070467380, - -0.276124743360392830, - 0.961068842145519350, -0.276309031081271080, 0.961015842884817230, - -0.276493308643055990, - 0.960962808290309780, -0.276677576038972420, 0.960909738363946770, - -0.276861833262245280, - 0.960856633107679660, -0.277046080306099900, 0.960803492523460760, - -0.277230317163762170, - 0.960750316613243950, -0.277414543828458090, 0.960697105378984450, - -0.277598760293414290, - 0.960643858822638590, -0.277782966551857690, 0.960590576946164120, - -0.277967162597015370, - 0.960537259751520050, -0.278151348422115090, 0.960483907240666790, - -0.278335524020384920, - 0.960430519415565790, -0.278519689385053060, 0.960377096278180130, - -0.278703844509348490, - 0.960323637830473920, -0.278887989386500280, 0.960270144074412800, - -0.279072124009737800, - 0.960216615011963430, -0.279256248372291180, 0.960163050645094000, - -0.279440362467390510, - 0.960109450975773940, -0.279624466288266590, 0.960055816005973890, - -0.279808559828150390, - 0.960002145737665960, -0.279992643080273220, 0.959948440172823210, - -0.280176716037866980, - 0.959894699313420530, -0.280360778694163810, 0.959840923161433770, - -0.280544831042396250, - 0.959787111718839900, -0.280728873075797190, 0.959733264987617680, - -0.280912904787600000, - 0.959679382969746750, -0.281096926171038260, 0.959625465667208190, - -0.281280937219346110, - 0.959571513081984520, -0.281464937925757940, 0.959517525216059260, - -0.281648928283508630, - 0.959463502071417510, -0.281832908285833350, 0.959409443650045550, - -0.282016877925967640, - 0.959355349953930790, -0.282200837197147560, 0.959301220985062210, - -0.282384786092609360, - 0.959247056745430090, -0.282568724605589740, 0.959192857237025740, - -0.282752652729325930, - 0.959138622461841890, -0.282936570457055390, 0.959084352421872730, - -0.283120477782015820, - 0.959030047119113660, -0.283304374697445740, 0.958975706555561080, - -0.283488261196583550, - 0.958921330733213170, -0.283672137272668430, 0.958866919654069010, - -0.283856002918939750, - 0.958812473320129310, -0.284039858128637190, 0.958757991733395710, - -0.284223702895001040, - 0.958703474895871600, -0.284407537211271880, 0.958648922809561150, - -0.284591361070690440, - 0.958594335476470220, -0.284775174466498300, 0.958539712898605730, - -0.284958977391937040, - 0.958485055077976100, -0.285142769840248670, 0.958430362016590930, - -0.285326551804675870, - 0.958375633716461170, -0.285510323278461260, 0.958320870179598880, - -0.285694084254848320, - 0.958266071408017670, -0.285877834727080620, 0.958211237403732260, - -0.286061574688402040, - 0.958156368168758820, -0.286245304132057120, 0.958101463705114730, - -0.286429023051290700, - 0.958046524014818600, -0.286612731439347790, 0.957991549099890370, - -0.286796429289474080, - 0.957936538962351420, -0.286980116594915570, 0.957881493604224370, - -0.287163793348918390, - 0.957826413027532910, -0.287347459544729510, 0.957771297234302320, - -0.287531115175595930, - 0.957716146226558870, -0.287714760234765170, 0.957660960006330610, - -0.287898394715485170, - 0.957605738575646350, -0.288082018611004130, 0.957550481936536470, - -0.288265631914570770, - 0.957495190091032570, -0.288449234619434220, 0.957439863041167680, - -0.288632826718843830, - 0.957384500788975860, -0.288816408206049480, 0.957329103336492790, - -0.288999979074301420, - 0.957273670685755200, -0.289183539316850200, 0.957218202838801210, - -0.289367088926947010, - 0.957162699797670210, -0.289550627897843030, 0.957107161564402790, - -0.289734156222790250, - 0.957051588141040970, -0.289917673895040750, 0.956995979529628230, - -0.290101180907847090, - 0.956940335732208820, -0.290284677254462330, 0.956884656750828900, - -0.290468162928139820, - 0.956828942587535370, -0.290651637922133220, 0.956773193244376930, - -0.290835102229696830, - 0.956717408723403050, -0.291018555844085090, 0.956661589026665090, - -0.291201998758552900, - 0.956605734156215080, -0.291385430966355660, 0.956549844114106820, - -0.291568852460749040, - 0.956493918902395100, -0.291752263234989260, 0.956437958523136180, - -0.291935663282332780, - 0.956381962978387730, -0.292119052596036380, 0.956325932270208230, - -0.292302431169357560, - 0.956269866400658030, -0.292485798995553880, 0.956213765371798470, - -0.292669156067883460, - 0.956157629185692140, -0.292852502379604810, 0.956101457844403040, - -0.293035837923976810, - 0.956045251349996410, -0.293219162694258630, 0.955989009704538930, - -0.293402476683710110, - 0.955932732910098280, -0.293585779885591200, 0.955876420968743590, - -0.293769072293162400, - 0.955820073882545420, -0.293952353899684660, 0.955763691653575440, - -0.294135624698419030, - 0.955707274283906560, -0.294318884682627400, 0.955650821775613330, - -0.294502133845571670, - 0.955594334130771110, -0.294685372180514330, 0.955537811351456880, - -0.294868599680718270, - 0.955481253439748770, -0.295051816339446720, 0.955424660397726330, - -0.295235022149963220, - 0.955368032227470350, -0.295418217105532010, 0.955311368931062720, - -0.295601401199417360, - 0.955254670510586990, -0.295784574424884260, 0.955197936968127710, - -0.295967736775197890, - 0.955141168305770780, -0.296150888243623790, 0.955084364525603410, - -0.296334028823428190, - 0.955027525629714160, -0.296517158507877470, 0.954970651620192790, - -0.296700277290238350, - 0.954913742499130520, -0.296883385163778270, 0.954856798268619580, - -0.297066482121764730, - 0.954799818930753720, -0.297249568157465840, 0.954742804487627940, - -0.297432643264150030, - 0.954685754941338340, -0.297615707435086200, 0.954628670293982680, - -0.297798760663543550, - 0.954571550547659630, -0.297981802942791810, 0.954514395704469500, - -0.298164834266100850, - 0.954457205766513490, -0.298347854626741400, 0.954399980735894490, - -0.298530864017984120, - 0.954342720614716480, -0.298713862433100330, 0.954285425405084650, - -0.298896849865361800, - 0.954228095109105670, -0.299079826308040480, 0.954170729728887280, - -0.299262791754408840, - 0.954113329266538800, -0.299445746197739890, 0.954055893724170660, - -0.299628689631306790, - 0.953998423103894490, -0.299811622048383350, 0.953940917407823500, - -0.299994543442243580, - 0.953883376638071770, -0.300177453806161950, 0.953825800796755050, - -0.300360353133413530, - 0.953768189885990330, -0.300543241417273450, 0.953710543907895670, - -0.300726118651017500, - 0.953652862864590500, -0.300908984827921890, 0.953595146758195680, - -0.301091839941263100, - 0.953537395590833280, -0.301274683984317950, 0.953479609364626610, - -0.301457516950363940, - 0.953421788081700310, -0.301640338832678770, 0.953363931744180330, - -0.301823149624540650, - 0.953306040354193860, -0.302005949319228080, 0.953248113913869320, - -0.302188737910019990, - 0.953190152425336670, -0.302371515390195970, 0.953132155890726750, - -0.302554281753035610, - 0.953074124312172200, -0.302737036991819140, 0.953016057691806530, - -0.302919781099827310, - 0.952957956031764700, -0.303102514070341060, 0.952899819334182880, - -0.303285235896641750, - 0.952841647601198720, -0.303467946572011320, 0.952783440834950920, - -0.303650646089731910, - 0.952725199037579570, -0.303833334443086360, 0.952666922211226170, - -0.304016011625357570, - 0.952608610358033350, -0.304198677629829110, 0.952550263480144930, - -0.304381332449784880, - 0.952491881579706320, -0.304563976078509100, 0.952433464658864030, - -0.304746608509286530, - 0.952375012719765880, -0.304929229735402370, 0.952316525764560940, - -0.305111839750142110, - 0.952258003795399600, -0.305294438546791670, 0.952199446814433580, - -0.305477026118637420, - 0.952140854823815830, -0.305659602458966120, 0.952082227825700620, - -0.305842167561065080, - 0.952023565822243570, -0.306024721418221790, 0.951964868815601380, - -0.306207264023724220, - 0.951906136807932350, -0.306389795370860920, 0.951847369801395620, - -0.306572315452920740, - 0.951788567798152130, -0.306754824263192780, 0.951729730800363830, - -0.306937321794966910, - 0.951670858810193860, -0.307119808041533100, 0.951611951829806850, - -0.307302282996181790, - 0.951553009861368590, -0.307484746652204100, 0.951494032907046370, - -0.307667199002891190, - 0.951435020969008340, -0.307849640041534870, 0.951375974049424420, - -0.308032069761427330, - 0.951316892150465550, -0.308214488155861050, 0.951257775274304000, - -0.308396895218129190, - 0.951198623423113230, -0.308579290941525090, 0.951139436599068190, - -0.308761675319342450, - 0.951080214804345010, -0.308944048344875710, 0.951020958041121080, - -0.309126410011419440, - 0.950961666311575080, -0.309308760312268730, 0.950902339617887060, - -0.309491099240719100, - 0.950842977962238160, -0.309673426790066380, 0.950783581346811070, - -0.309855742953607070, - 0.950724149773789610, -0.310038047724637890, 0.950664683245358910, - -0.310220341096455850, - 0.950605181763705340, -0.310402623062358720, 0.950545645331016600, - -0.310584893615644450, - 0.950486073949481700, -0.310767152749611470, 0.950426467621290900, - -0.310949400457558640, - 0.950366826348635780, -0.311131636732785270, 0.950307150133709260, - -0.311313861568590920, - 0.950247438978705230, -0.311496074958275910, 0.950187692885819280, - -0.311678276895140550, - 0.950127911857248100, -0.311860467372486020, 0.950068095895189590, - -0.312042646383613510, - 0.950008245001843000, -0.312224813921824880, 0.949948359179409010, - -0.312406969980422440, - 0.949888438430089300, -0.312589114552708710, 0.949828482756087110, - -0.312771247631986770, - 0.949768492159606680, -0.312953369211560200, 0.949708466642853800, - -0.313135479284732840, - 0.949648406208035480, -0.313317577844809010, 0.949588310857359950, - -0.313499664885093510, - 0.949528180593036670, -0.313681740398891520, 0.949468015417276550, - -0.313863804379508500, - 0.949407815332291570, -0.314045856820250710, 0.949347580340295210, - -0.314227897714424440, - 0.949287310443502120, -0.314409927055336660, 0.949227005644128210, - -0.314591944836294660, - 0.949166665944390700, -0.314773951050606070, 0.949106291346508260, - -0.314955945691579140, - 0.949045881852700560, -0.315137928752522440, 0.948985437465188710, - -0.315319900226744890, - 0.948924958186195160, -0.315501860107555990, 0.948864444017943340, - -0.315683808388265650, - 0.948803894962658490, -0.315865745062183960, 0.948743311022566480, - -0.316047670122621860, - 0.948682692199895090, -0.316229583562890330, 0.948622038496872990, - -0.316411485376300980, - 0.948561349915730270, -0.316593375556165850, 0.948500626458698260, - -0.316775254095797270, - 0.948439868128009620, -0.316957120988508150, 0.948379074925898120, - -0.317138976227611780, - 0.948318246854599090, -0.317320819806421740, 0.948257383916349060, - -0.317502651718252260, - 0.948196486113385580, -0.317684471956417970, 0.948135553447947980, - -0.317866280514233660, - 0.948074585922276230, -0.318048077385014950, 0.948013583538612200, - -0.318229862562077530, - 0.947952546299198670, -0.318411636038737790, 0.947891474206279840, - -0.318593397808312420, - 0.947830367262101010, -0.318775147864118480, 0.947769225468909180, - -0.318956886199473650, - 0.947708048828952100, -0.319138612807695900, 0.947646837344479300, - -0.319320327682103610, - 0.947585591017741090, -0.319502030816015690, 0.947524309850989570, - -0.319683722202751430, - 0.947462993846477700, -0.319865401835630500, 0.947401643006459900, - -0.320047069707973140, - 0.947340257333192050, -0.320228725813099860, 0.947278836828930880, - -0.320410370144331820, - 0.947217381495934820, -0.320592002694990330, 0.947155891336463270, - -0.320773623458397330, - 0.947094366352777220, -0.320955232427875210, 0.947032806547138620, - -0.321136829596746660, - 0.946971211921810880, -0.321318414958334850, 0.946909582479058760, - -0.321499988505963510, - 0.946847918221148000, -0.321681550232956580, 0.946786219150346000, - -0.321863100132638580, - 0.946724485268921170, -0.322044638198334510, 0.946662716579143360, - -0.322226164423369600, - 0.946600913083283530, -0.322407678801069850, 0.946539074783614100, - -0.322589181324761330, - 0.946477201682408680, -0.322770671987770710, 0.946415293781942110, - -0.322952150783425260, - 0.946353351084490590, -0.323133617705052330, 0.946291373592331620, - -0.323315072745979980, - 0.946229361307743820, -0.323496515899536710, 0.946167314233007370, - -0.323677947159051240, - 0.946105232370403450, -0.323859366517852850, 0.946043115722214560, - -0.324040773969271450, - 0.945980964290724760, -0.324222169506636960, 0.945918778078219110, - -0.324403553123280230, - 0.945856557086983910, -0.324584924812532150, 0.945794301319306970, - -0.324766284567724220, - 0.945732010777477150, -0.324947632382188430, 0.945669685463784710, - -0.325128968249257080, - 0.945607325380521280, -0.325310292162262930, 0.945544930529979680, - -0.325491604114539310, - 0.945482500914453740, -0.325672904099419850, 0.945420036536239070, - -0.325854192110238580, - 0.945357537397632290, -0.326035468140330240, 0.945295003500931210, - -0.326216732183029710, - 0.945232434848435000, -0.326397984231672490, 0.945169831442444150, - -0.326579224279594400, - 0.945107193285260610, -0.326760452320131730, 0.945044520379187070, - -0.326941668346621420, - 0.944981812726528150, -0.327122872352400510, 0.944919070329589220, - -0.327304064330806670, - 0.944856293190677210, -0.327485244275178000, 0.944793481312100280, - -0.327666412178853120, - 0.944730634696167800, -0.327847568035170840, 0.944667753345190490, - -0.328028711837470680, - 0.944604837261480260, -0.328209843579092500, 0.944541886447350490, - -0.328390963253376580, - 0.944478900905115550, -0.328572070853663740, 0.944415880637091250, - -0.328753166373294990, - 0.944352825645594750, -0.328934249805612200, 0.944289735932944410, - -0.329115321143957250, - 0.944226611501459810, -0.329296380381672750, 0.944163452353461770, - -0.329477427512101740, - 0.944100258491272660, -0.329658462528587490, 0.944037029917215830, - -0.329839485424473940, - 0.943973766633615980, -0.330020496193105420, 0.943910468642799150, - -0.330201494827826570, - 0.943847135947092690, -0.330382481321982780, 0.943783768548825060, - -0.330563455668919540, - 0.943720366450326200, -0.330744417861982890, 0.943656929653927220, - -0.330925367894519540, - 0.943593458161960390, -0.331106305759876430, 0.943529951976759480, - -0.331287231451400820, - 0.943466411100659320, -0.331468144962440870, 0.943402835535996240, - -0.331649046286344670, - 0.943339225285107720, -0.331829935416461110, 0.943275580350332540, - -0.332010812346139380, - 0.943211900734010620, -0.332191677068729150, 0.943148186438483420, - -0.332372529577580620, - 0.943084437466093490, -0.332553369866044220, 0.943020653819184650, - -0.332734197927471050, - 0.942956835500102120, -0.332915013755212650, 0.942892982511192250, - -0.333095817342620780, - 0.942829094854802710, -0.333276608683047930, 0.942765172533282510, - -0.333457387769846850, - 0.942701215548981900, -0.333638154596370860, 0.942637223904252530, - -0.333818909155973620, - 0.942573197601446870, -0.333999651442009380, 0.942509136642919240, - -0.334180381447832690, - 0.942445041031024890, -0.334361099166798740, 0.942380910768120470, - -0.334541804592262900, - 0.942316745856563780, -0.334722497717581220, 0.942252546298714020, - -0.334903178536110180, - 0.942188312096931770, -0.335083847041206580, 0.942124043253578570, - -0.335264503226227810, - 0.942059739771017310, -0.335445147084531600, 0.941995401651612550, - -0.335625778609476290, - 0.941931028897729620, -0.335806397794420450, 0.941866621511735280, - -0.335987004632723350, - 0.941802179495997650, -0.336167599117744520, 0.941737702852886160, - -0.336348181242844050, - 0.941673191584771360, -0.336528751001382410, 0.941608645694025250, - -0.336709308386720580, - 0.941544065183020810, -0.336889853392220050, 0.941479450054132580, - -0.337070386011242620, - 0.941414800309736340, -0.337250906237150590, 0.941350115952208970, - -0.337431414063306840, - 0.941285396983928660, -0.337611909483074620, 0.941220643407275180, - -0.337792392489817460, - 0.941155855224629190, -0.337972863076899720, 0.941091032438372780, - -0.338153321237685930, - 0.941026175050889260, -0.338333766965541130, 0.940961283064563280, - -0.338514200253830940, - 0.940896356481780830, -0.338694621095921190, 0.940831395304928870, - -0.338875029485178450, - 0.940766399536396070, -0.339055425414969640, 0.940701369178571940, - -0.339235808878661950, - 0.940636304233847590, -0.339416179869623360, 0.940571204704615190, - -0.339596538381222110, - 0.940506070593268300, -0.339776884406826850, 0.940440901902201750, - -0.339957217939806880, - 0.940375698633811540, -0.340137538973531720, 0.940310460790495070, - -0.340317847501371670, - 0.940245188374650880, -0.340498143516697160, 0.940179881388678920, - -0.340678427012879200, - 0.940114539834980280, -0.340858697983289440, 0.940049163715957370, - -0.341038956421299720, - 0.939983753034014050, -0.341219202320282360, 0.939918307791555050, - -0.341399435673610420, - 0.939852827990986680, -0.341579656474657160, 0.939787313634716570, - -0.341759864716796310, - 0.939721764725153340, -0.341940060393402190, 0.939656181264707180, - -0.342120243497849530, - 0.939590563255789270, -0.342300414023513520, 0.939524910700812230, - -0.342480571963769800, - 0.939459223602189920, -0.342660717311994380, 0.939393501962337510, - -0.342840850061563950, - 0.939327745783671400, -0.343020970205855540, 0.939261955068609210, - -0.343201077738246540, - 0.939196129819569900, -0.343381172652115040, 0.939130270038973650, - -0.343561254940839390, - 0.939064375729241950, -0.343741324597798490, 0.938998446892797540, - -0.343921381616371700, - 0.938932483532064600, -0.344101425989938810, 0.938866485649468060, - -0.344281457711880180, - 0.938800453247434770, -0.344461476775576540, 0.938734386328392460, - -0.344641483174408960, - 0.938668284894770170, -0.344821476901759290, 0.938602148948998400, - -0.345001457951009670, - 0.938535978493508560, -0.345181426315542550, 0.938469773530733800, - -0.345361381988741220, - 0.938403534063108060, -0.345541324963989090, 0.938337260093066950, - -0.345721255234670120, - 0.938270951623047190, -0.345901172794168990, 0.938204608655486490, - -0.346081077635870430, - 0.938138231192824360, -0.346260969753160010, 0.938071819237501270, - -0.346440849139423520, - 0.938005372791958840, -0.346620715788047320, 0.937938891858640320, - -0.346800569692418290, - 0.937872376439989890, -0.346980410845923680, 0.937805826538453120, - -0.347160239241951160, - 0.937739242156476970, -0.347340054873889140, 0.937672623296509470, - -0.347519857735126110, - 0.937605969960999990, -0.347699647819051380, 0.937539282152399230, - -0.347879425119054510, - 0.937472559873159250, -0.348059189628525610, 0.937405803125732960, - -0.348238941340855260, - 0.937339011912574960, -0.348418680249434560, 0.937272186236140950, - -0.348598406347654930, - 0.937205326098887960, -0.348778119628908420, 0.937138431503274140, - -0.348957820086587490, - 0.937071502451759190, -0.349137507714084970, 0.937004538946803690, - -0.349317182504794380, - 0.936937540990869900, -0.349496844452109550, 0.936870508586420960, - -0.349676493549424760, - 0.936803441735921560, -0.349856129790134920, 0.936736340441837620, - -0.350035753167635240, - 0.936669204706636170, -0.350215363675321580, 0.936602034532785570, - -0.350394961306590150, - 0.936534829922755500, -0.350574546054837510, 0.936467590879016990, - -0.350754117913461060, - 0.936400317404042060, -0.350933676875858360, 0.936333009500304180, - -0.351113222935427460, - 0.936265667170278260, -0.351292756085567090, 0.936198290416440090, - -0.351472276319676310, - 0.936130879241267030, -0.351651783631154570, 0.936063433647237540, - -0.351831278013402030, - 0.935995953636831410, -0.352010759459819080, 0.935928439212529660, - -0.352190227963806830, - 0.935860890376814640, -0.352369683518766630, 0.935793307132169900, - -0.352549126118100460, - 0.935725689481080370, -0.352728555755210730, 0.935658037426032040, - -0.352907972423500250, - 0.935590350969512370, -0.353087376116372480, 0.935522630114009930, - -0.353266766827231240, - 0.935454874862014620, -0.353446144549480810, 0.935387085216017770, - -0.353625509276525970, - 0.935319261178511610, -0.353804861001772050, 0.935251402751989920, - -0.353984199718624770, - 0.935183509938947610, -0.354163525420490340, 0.935115582741880890, - -0.354342838100775550, - 0.935047621163287430, -0.354522137752887430, 0.934979625205665800, - -0.354701424370233830, - 0.934911594871516090, -0.354880697946222790, 0.934843530163339540, - -0.355059958474262860, - 0.934775431083638700, -0.355239205947763310, 0.934707297634917440, - -0.355418440360133650, - 0.934639129819680780, -0.355597661704783850, 0.934570927640435030, - -0.355776869975124640, - 0.934502691099687870, -0.355956065164566850, 0.934434420199948050, - -0.356135247266522130, - 0.934366114943725790, -0.356314416274402410, 0.934297775333532530, - -0.356493572181620090, - 0.934229401371880820, -0.356672714981588260, 0.934160993061284530, - -0.356851844667720300, - 0.934092550404258980, -0.357030961233429980, 0.934024073403320390, - -0.357210064672131960, - 0.933955562060986730, -0.357389154977240940, 0.933887016379776890, - -0.357568232142172260, - 0.933818436362210960, -0.357747296160341900, 0.933749822010810580, - -0.357926347025166010, - 0.933681173328098410, -0.358105384730061590, 0.933612490316598540, - -0.358284409268445850, - 0.933543772978836170, -0.358463420633736540, 0.933475021317337950, - -0.358642418819351990, - 0.933406235334631520, -0.358821403818710860, 0.933337415033246190, - -0.359000375625232460, - 0.933268560415712050, -0.359179334232336500, 0.933199671484560730, - -0.359358279633443130, - 0.933130748242325230, -0.359537211821973070, 0.933061790691539380, - -0.359716130791347570, - 0.932992798834738960, -0.359895036534988110, 0.932923772674460140, - -0.360073929046317020, - 0.932854712213241120, -0.360252808318756890, 0.932785617453621100, - -0.360431674345730700, - 0.932716488398140250, -0.360610527120662270, 0.932647325049340450, - -0.360789366636975580, - 0.932578127409764420, -0.360968192888095230, 0.932508895481956590, - -0.361147005867446250, - 0.932439629268462360, -0.361325805568454280, 0.932370328771828460, - -0.361504591984545260, - 0.932300993994602760, -0.361683365109145840, 0.932231624939334540, - -0.361862124935682980, - 0.932162221608574430, -0.362040871457584180, 0.932092784004874050, - -0.362219604668277460, - 0.932023312130786490, -0.362398324561191310, 0.931953805988866010, - -0.362577031129754760, - 0.931884265581668150, -0.362755724367397230, 0.931814690911749730, - -0.362934404267548640, - 0.931745081981668720, -0.363113070823639470, 0.931675438793984620, - -0.363291724029100760, - 0.931605761351257830, -0.363470363877363760, 0.931536049656050300, - -0.363648990361860550, - 0.931466303710925090, -0.363827603476023500, 0.931396523518446600, - -0.364006203213285470, - 0.931326709081180430, -0.364184789567079890, 0.931256860401693420, - -0.364363362530840620, - 0.931186977482553750, -0.364541922098002120, 0.931117060326330790, - -0.364720468261999280, - 0.931047108935595280, -0.364899001016267320, 0.930977123312918930, - -0.365077520354242180, - 0.930907103460875130, -0.365256026269360320, 0.930837049382038150, - -0.365434518755058390, - 0.930766961078983710, -0.365612997804773850, 0.930696838554288860, - -0.365791463411944570, - 0.930626681810531760, -0.365969915570008740, 0.930556490850291800, - -0.366148354272405330, - 0.930486265676149780, -0.366326779512573590, 0.930416006290687550, - -0.366505191283953370, - 0.930345712696488470, -0.366683589579984930, 0.930275384896137150, - -0.366861974394109060, - 0.930205022892219070, -0.367040345719767180, 0.930134626687321390, - -0.367218703550400980, - 0.930064196284032360, -0.367397047879452710, 0.929993731684941480, - -0.367575378700365330, - 0.929923232892639670, -0.367753696006581980, 0.929852699909718750, - -0.367931999791546450, - 0.929782132738772190, -0.368110290048703050, 0.929711531382394370, - -0.368288566771496570, - 0.929640895843181330, -0.368466829953372320, 0.929570226123729860, - -0.368645079587776040, - 0.929499522226638560, -0.368823315668153910, 0.929428784154506800, - -0.369001538187952780, - 0.929358011909935500, -0.369179747140620020, 0.929287205495526790, - -0.369357942519603130, - 0.929216364913884040, -0.369536124318350650, 0.929145490167611720, - -0.369714292530311240, - 0.929074581259315860, -0.369892447148934100, 0.929003638191603360, - -0.370070588167669080, - 0.928932660967082820, -0.370248715579966360, 0.928861649588363700, - -0.370426829379276790, - 0.928790604058057020, -0.370604929559051670, 0.928719524378774810, - -0.370783016112742560, - 0.928648410553130520, -0.370961089033801980, 0.928577262583738850, - -0.371139148315682570, - 0.928506080473215590, -0.371317193951837540, 0.928434864224177980, - -0.371495225935720760, - 0.928363613839244370, -0.371673244260786520, 0.928292329321034670, - -0.371851248920489490, - 0.928221010672169440, -0.372029239908285010, 0.928149657895271150, - -0.372207217217628840, - 0.928078270992963140, -0.372385180841977360, 0.928006849967869970, - -0.372563130774787250, - 0.927935394822617890, -0.372741067009515760, 0.927863905559833780, - -0.372918989539620830, - 0.927792382182146320, -0.373096898358560640, 0.927720824692185200, - -0.373274793459793970, - 0.927649233092581180, -0.373452674836780300, 0.927577607385966730, - -0.373630542482979280, - 0.927505947574975180, -0.373808396391851210, 0.927434253662241300, - -0.373986236556857030, - 0.927362525650401110, -0.374164062971457930, 0.927290763542091720, - -0.374341875629115920, - 0.927218967339951790, -0.374519674523293210, 0.927147137046620880, - -0.374697459647452600, - 0.927075272664740100, -0.374875230995057540, 0.927003374196951670, - -0.375052988559571920, - 0.926931441645899130, -0.375230732334459920, 0.926859475014227160, - -0.375408462313186590, - 0.926787474304581750, -0.375586178489217220, 0.926715439519610330, - -0.375763880856017700, - 0.926643370661961230, -0.375941569407054420, 0.926571267734284330, - -0.376119244135794340, - 0.926499130739230510, -0.376296905035704790, 0.926426959679452210, - -0.376474552100253770, - 0.926354754557602860, -0.376652185322909560, 0.926282515376337210, - -0.376829804697141280, - 0.926210242138311380, -0.377007410216418260, 0.926137934846182560, - -0.377185001874210450, - 0.926065593502609310, -0.377362579663988340, 0.925993218110251480, - -0.377540143579222940, - 0.925920808671770070, -0.377717693613385640, 0.925848365189827270, - -0.377895229759948490, - 0.925775887667086740, -0.378072752012383990, 0.925703376106213230, - -0.378250260364165200, - 0.925630830509872720, -0.378427754808765560, 0.925558250880732740, - -0.378605235339659120, - 0.925485637221461490, -0.378782701950320540, 0.925412989534729060, - -0.378960154634224720, - 0.925340307823206310, -0.379137593384847320, 0.925267592089565660, - -0.379315018195664430, - 0.925194842336480530, -0.379492429060152630, 0.925122058566625880, - -0.379669825971788940, - 0.925049240782677580, -0.379847208924051160, 0.924976388987313160, - -0.380024577910417270, - 0.924903503183210910, -0.380201932924366050, 0.924830583373050800, - -0.380379273959376600, - 0.924757629559513910, -0.380556601008928520, 0.924684641745282420, - -0.380733914066502140, - 0.924611619933039970, -0.380911213125578070, 0.924538564125471420, - -0.381088498179637520, - 0.924465474325262600, -0.381265769222162380, 0.924392350535101050, - -0.381443026246634730, - 0.924319192757675160, -0.381620269246537360, 0.924246000995674890, - -0.381797498215353640, - 0.924172775251791200, -0.381974713146567220, 0.924099515528716280, - -0.382151914033662610, - 0.924026221829143850, -0.382329100870124510, 0.923952894155768640, - -0.382506273649438230, - 0.923879532511286740, -0.382683432365089780, 0.923806136898395410, - -0.382860577010565420, - 0.923732707319793290, -0.383037707579352020, 0.923659243778179980, - -0.383214824064937180, - 0.923585746276256670, -0.383391926460808660, 0.923512214816725630, - -0.383569014760454910, - 0.923438649402290370, -0.383746088957365010, 0.923365050035655720, - -0.383923149045028390, - 0.923291416719527640, -0.384100195016935040, 0.923217749456613500, - -0.384277226866575510, - 0.923144048249621930, -0.384454244587440820, 0.923070313101262420, - -0.384631248173022580, - 0.922996544014246250, -0.384808237616812880, 0.922922740991285680, - -0.384985212912304200, - 0.922848904035094120, -0.385162174052989860, 0.922775033148386380, - -0.385339121032363340, - 0.922701128333878630, -0.385516053843918850, 0.922627189594287910, - -0.385692972481151140, - 0.922553216932332830, -0.385869876937555310, 0.922479210350733210, - -0.386046767206627170, - 0.922405169852209880, -0.386223643281862980, 0.922331095439485440, - -0.386400505156759440, - 0.922256987115283030, -0.386577352824813920, 0.922182844882327600, - -0.386754186279524180, - 0.922108668743345180, -0.386931005514388580, 0.922034458701062820, - -0.387107810522905990, - 0.921960214758209220, -0.387284601298575840, 0.921885936917513970, - -0.387461377834897870, - 0.921811625181708120, -0.387638140125372730, 0.921737279553523910, - -0.387814888163501180, - 0.921662900035694730, -0.387991621942784860, 0.921588486630955490, - -0.388168341456725740, - 0.921514039342042010, -0.388345046698826250, 0.921439558171691430, - -0.388521737662589570, - 0.921365043122642340, -0.388698414341519190, 0.921290494197634540, - -0.388875076729119250, - 0.921215911399408730, -0.389051724818894380, 0.921141294730707270, - -0.389228358604349730, - 0.921066644194273640, -0.389404978078990940, 0.920991959792852310, - -0.389581583236324300, - 0.920917241529189520, -0.389758174069856410, 0.920842489406032190, - -0.389934750573094730, - 0.920767703426128790, -0.390111312739546910, 0.920692883592229120, - -0.390287860562721190, - 0.920618029907083970, -0.390464394036126590, 0.920543142373445480, - -0.390640913153272430, - 0.920468220994067110, -0.390817417907668500, 0.920393265771703550, - -0.390993908292825380, - 0.920318276709110590, -0.391170384302253870, 0.920243253809045370, - -0.391346845929465560, - 0.920168197074266340, -0.391523293167972410, 0.920093106507533180, - -0.391699726011286940, - 0.920017982111606570, -0.391876144452922350, 0.919942823889248640, - -0.392052548486392090, - 0.919867631843222950, -0.392228938105210310, 0.919792405976293860, - -0.392405313302891690, - 0.919717146291227360, -0.392581674072951470, 0.919641852790790470, - -0.392758020408905280, - 0.919566525477751530, -0.392934352304269490, 0.919491164354880100, - -0.393110669752560760, - 0.919415769424947070, -0.393286972747296400, 0.919340340690724340, - -0.393463261281994330, - 0.919264878154985370, -0.393639535350172880, 0.919189381820504470, - -0.393815794945351020, - 0.919113851690057770, -0.393992040061048100, 0.919038287766422050, - -0.394168270690784080, - 0.918962690052375630, -0.394344486828079600, 0.918887058550697970, - -0.394520688466455600, - 0.918811393264170050, -0.394696875599433560, 0.918735694195573550, - -0.394873048220535760, - 0.918659961347691900, -0.395049206323284770, 0.918584194723309540, - -0.395225349901203670, - 0.918508394325212250, -0.395401478947816350, 0.918432560156186910, - -0.395577593456646840, - 0.918356692219021720, -0.395753693421220080, 0.918280790516506130, - -0.395929778835061250, - 0.918204855051430900, -0.396105849691696270, 0.918128885826588030, - -0.396281905984651520, - 0.918052882844770380, -0.396457947707453910, 0.917976846108772730, - -0.396633974853630830, - 0.917900775621390500, -0.396809987416710310, 0.917824671385420570, - -0.396985985390220900, - 0.917748533403661250, -0.397161968767691610, 0.917672361678911860, - -0.397337937542652060, - 0.917596156213972950, -0.397513891708632330, 0.917519917011646260, - -0.397689831259163180, - 0.917443644074735220, -0.397865756187775750, 0.917367337406043930, - -0.398041666488001770, - 0.917290997008377910, -0.398217562153373560, 0.917214622884544250, - -0.398393443177423980, - 0.917138215037350710, -0.398569309553686300, 0.917061773469606820, - -0.398745161275694430, - 0.916985298184123000, -0.398920998336982910, 0.916908789183710990, - -0.399096820731086540, - 0.916832246471183890, -0.399272628451540990, 0.916755670049355990, - -0.399448421491882140, - 0.916679059921042700, -0.399624199845646790, 0.916602416089060790, - -0.399799963506371980, - 0.916525738556228210, -0.399975712467595330, 0.916449027325364150, - -0.400151446722855130, - 0.916372282399289140, -0.400327166265690090, 0.916295503780824800, - -0.400502871089639500, - 0.916218691472794220, -0.400678561188243240, 0.916141845478021350, - -0.400854236555041650, - 0.916064965799331720, -0.401029897183575620, 0.915988052439551950, - -0.401205543067386710, - 0.915911105401509880, -0.401381174200016790, 0.915834124688034710, - -0.401556790575008540, - 0.915757110301956720, -0.401732392185905010, 0.915680062246107650, - -0.401907979026249700, - 0.915602980523320230, -0.402083551089586990, 0.915525865136428530, - -0.402259108369461490, - 0.915448716088267830, -0.402434650859418430, 0.915371533381674760, - -0.402610178553003680, - 0.915294317019487050, -0.402785691443763530, 0.915217067004543860, - -0.402961189525244900, - 0.915139783339685260, -0.403136672790995300, 0.915062466027752760, - -0.403312141234562550, - 0.914985115071589310, -0.403487594849495310, 0.914907730474038730, - -0.403663033629342640, - 0.914830312237946200, -0.403838457567654070, 0.914752860366158220, - -0.404013866657979890, - 0.914675374861522390, -0.404189260893870690, 0.914597855726887790, - -0.404364640268877810, - 0.914520302965104450, -0.404540004776553000, 0.914442716579023870, - -0.404715354410448650, - 0.914365096571498560, -0.404890689164117580, 0.914287442945382440, - -0.405066009031113340, - 0.914209755703530690, -0.405241314004989860, 0.914132034848799460, - -0.405416604079301630, - 0.914054280384046570, -0.405591879247603870, 0.913976492312130630, - -0.405767139503452060, - 0.913898670635911680, -0.405942384840402510, 0.913820815358251100, - -0.406117615252011840, - 0.913742926482011390, -0.406292830731837360, 0.913665004010056350, - -0.406468031273437000, - 0.913587047945250810, -0.406643216870369030, 0.913509058290461140, - -0.406818387516192310, - 0.913431035048554720, -0.406993543204466510, 0.913352978222400250, - -0.407168683928751550, - 0.913274887814867760, -0.407343809682607970, 0.913196763828828200, - -0.407518920459596920, - 0.913118606267154240, -0.407694016253280110, 0.913040415132719160, - -0.407869097057219800, - 0.912962190428398210, -0.408044162864978690, 0.912883932157067200, - -0.408219213670120100, - 0.912805640321603500, -0.408394249466208000, 0.912727314924885900, - -0.408569270246806780, - 0.912648955969793900, -0.408744276005481360, 0.912570563459208730, - -0.408919266735797430, - 0.912492137396012650, -0.409094242431320980, 0.912413677783089020, - -0.409269203085618590, - 0.912335184623322750, -0.409444148692257590, 0.912256657919599760, - -0.409619079244805670, - 0.912178097674807180, -0.409793994736831150, 0.912099503891833470, - -0.409968895161902880, - 0.912020876573568340, -0.410143780513590240, 0.911942215722902570, - -0.410318650785463260, - 0.911863521342728520, -0.410493505971092410, 0.911784793435939430, - -0.410668346064048730, - 0.911706032005429880, -0.410843171057903910, 0.911627237054095650, - -0.411017980946230210, - 0.911548408584833990, -0.411192775722600160, 0.911469546600543020, - -0.411367555380587220, - 0.911390651104122430, -0.411542319913765220, 0.911311722098472780, - -0.411717069315708560, - 0.911232759586496190, -0.411891803579992170, 0.911153763571095900, - -0.412066522700191560, - 0.911074734055176360, -0.412241226669882890, 0.910995671041643140, - -0.412415915482642730, - 0.910916574533403360, -0.412590589132048210, 0.910837444533365010, - -0.412765247611677270, - 0.910758281044437570, -0.412939890915108080, 0.910679084069531570, - -0.413114519035919450, - 0.910599853611558930, -0.413289131967690960, 0.910520589673432750, - -0.413463729704002410, - 0.910441292258067250, -0.413638312238434500, 0.910361961368377990, - -0.413812879564568300, - 0.910282597007281760, -0.413987431675985400, 0.910203199177696540, - -0.414161968566268080, - 0.910123767882541680, -0.414336490228999100, 0.910044303124737500, - -0.414510996657761750, - 0.909964804907205660, -0.414685487846140010, 0.909885273232869160, - -0.414859963787718330, - 0.909805708104652220, -0.415034424476081630, 0.909726109525480160, - -0.415208869904815590, - 0.909646477498279540, -0.415383300067506230, 0.909566812025978330, - -0.415557714957740410, - 0.909487113111505430, -0.415732114569105360, 0.909407380757791260, - -0.415906498895188770, - 0.909327614967767260, -0.416080867929579210, 0.909247815744366310, - -0.416255221665865480, - 0.909167983090522380, -0.416429560097637150, 0.909088117009170580, - -0.416603883218484350, - 0.909008217503247450, -0.416778191021997650, 0.908928284575690640, - -0.416952483501768170, - 0.908848318229439120, -0.417126760651387870, 0.908768318467432890, - -0.417301022464448890, - 0.908688285292613360, -0.417475268934544290, 0.908608218707923190, - -0.417649500055267410, - 0.908528118716306120, -0.417823715820212270, 0.908447985320707250, - -0.417997916222973550, - 0.908367818524072890, -0.418172101257146320, 0.908287618329350450, - -0.418346270916326260, - 0.908207384739488700, -0.418520425194109700, 0.908127117757437600, - -0.418694564084093560, - 0.908046817386148340, -0.418868687579875050, 0.907966483628573350, - -0.419042795675052370, - 0.907886116487666260, -0.419216888363223910, 0.907805715966381930, - -0.419390965637988890, - 0.907725282067676440, -0.419565027492946880, 0.907644814794507200, - -0.419739073921698180, - 0.907564314149832630, -0.419913104917843620, 0.907483780136612570, - -0.420087120474984530, - 0.907403212757808110, -0.420261120586722880, 0.907322612016381420, - -0.420435105246661170, - 0.907241977915295820, -0.420609074448402510, 0.907161310457516250, - -0.420783028185550520, - 0.907080609646008450, -0.420956966451709440, 0.906999875483739610, - -0.421130889240483970, - 0.906919107973678140, -0.421304796545479640, 0.906838307118793430, - -0.421478688360302280, - 0.906757472922056550, -0.421652564678558330, 0.906676605386439460, - -0.421826425493854910, - 0.906595704514915330, -0.422000270799799680, 0.906514770310458800, - -0.422174100590000770, - 0.906433802776045460, -0.422347914858067050, 0.906352801914652400, - -0.422521713597607820, - 0.906271767729257660, -0.422695496802232950, 0.906190700222840650, - -0.422869264465553060, - 0.906109599398381980, -0.423043016581179040, 0.906028465258863600, - -0.423216753142722610, - 0.905947297807268460, -0.423390474143796050, 0.905866097046580940, - -0.423564179578011960, - 0.905784862979786550, -0.423737869438983840, 0.905703595609872010, - -0.423911543720325580, - 0.905622294939825270, -0.424085202415651560, 0.905540960972635590, - -0.424258845518576950, - 0.905459593711293250, -0.424432473022717420, 0.905378193158790090, - -0.424606084921689110, - 0.905296759318118820, -0.424779681209108810, 0.905215292192273590, - -0.424953261878593890, - 0.905133791784249690, -0.425126826923762360, 0.905052258097043590, - -0.425300376338232640, - 0.904970691133653250, -0.425473910115623800, 0.904889090897077470, - -0.425647428249555590, - 0.904807457390316540, -0.425820930733648240, 0.904725790616371930, - -0.425994417561522400, - 0.904644090578246240, -0.426167888726799620, 0.904562357278943300, - -0.426341344223101830, - 0.904480590721468250, -0.426514784044051520, 0.904398790908827350, - -0.426688208183271860, - 0.904316957844028320, -0.426861616634386430, 0.904235091530079750, - -0.427035009391019680, - 0.904153191969991780, -0.427208386446796320, 0.904071259166775440, - -0.427381747795341770, - 0.903989293123443340, -0.427555093430282080, 0.903907293843009050, - -0.427728423345243800, - 0.903825261328487510, -0.427901737533854080, 0.903743195582894620, - -0.428075035989740730, - 0.903661096609247980, -0.428248318706531960, 0.903578964410566070, - -0.428421585677856650, - 0.903496798989868450, -0.428594836897344400, 0.903414600350176290, - -0.428768072358625070, - 0.903332368494511820, -0.428941292055329490, 0.903250103425898400, - -0.429114495981088750, - 0.903167805147360720, -0.429287684129534610, 0.903085473661924600, - -0.429460856494299490, - 0.903003108972617150, -0.429634013069016380, 0.902920711082466740, - -0.429807153847318710, - 0.902838279994502830, -0.429980278822840620, 0.902755815711756120, - -0.430153387989216870, - 0.902673318237258830, -0.430326481340082610, 0.902590787574043870, - -0.430499558869073820, - 0.902508223725145940, -0.430672620569826800, 0.902425626693600380, - -0.430845666435978660, - 0.902342996482444200, -0.431018696461167030, 0.902260333094715540, - -0.431191710639029950, - 0.902177636533453620, -0.431364708963206330, 0.902094906801698900, - -0.431537691427335500, - 0.902012143902493180, -0.431710658025057260, 0.901929347838879460, - -0.431883608750012250, - 0.901846518613901750, -0.432056543595841500, 0.901763656230605730, - -0.432229462556186720, - 0.901680760692037730, -0.432402365624690140, 0.901597832001245660, - -0.432575252794994650, - 0.901514870161278740, -0.432748124060743700, 0.901431875175186970, - -0.432920979415581280, - 0.901348847046022030, -0.433093818853151960, 0.901265785776836580, - -0.433266642367100940, - 0.901182691370684520, -0.433439449951074090, 0.901099563830620950, - -0.433612241598717580, - 0.901016403159702330, -0.433785017303678520, 0.900933209360986200, - -0.433957777059604420, - 0.900849982437531450, -0.434130520860143310, 0.900766722392397860, - -0.434303248698943990, - 0.900683429228646970, -0.434475960569655650, 0.900600102949340900, - -0.434648656465928320, - 0.900516743557543520, -0.434821336381412290, 0.900433351056319830, - -0.434994000309758710, - 0.900349925448735600, -0.435166648244619260, 0.900266466737858480, - -0.435339280179646070, - 0.900182974926756810, -0.435511896108492000, 0.900099450018500450, - -0.435684496024810460, - 0.900015892016160280, -0.435857079922255470, 0.899932300922808510, - -0.436029647794481560, - 0.899848676741518580, -0.436202199635143950, 0.899765019475365140, - -0.436374735437898340, - 0.899681329127423930, -0.436547255196401200, 0.899597605700772180, - -0.436719758904309360, - 0.899513849198487980, -0.436892246555280360, 0.899430059623650860, - -0.437064718142972370, - 0.899346236979341570, -0.437237173661044090, 0.899262381268642000, - -0.437409613103154790, - 0.899178492494635330, -0.437582036462964400, 0.899094570660405770, - -0.437754443734133410, - 0.899010615769039070, -0.437926834910322860, 0.898926627823621870, - -0.438099209985194470, - 0.898842606827242370, -0.438271568952410430, 0.898758552782989440, - -0.438443911805633690, - 0.898674465693953820, -0.438616238538527660, 0.898590345563227030, - -0.438788549144756290, - 0.898506192393901950, -0.438960843617984320, 0.898422006189072530, - -0.439133121951876930, - 0.898337786951834310, -0.439305384140099950, 0.898253534685283570, - -0.439477630176319800, - 0.898169249392518080, -0.439649860054203480, 0.898084931076636780, - -0.439822073767418500, - 0.898000579740739880, -0.439994271309633260, 0.897916195387928660, - -0.440166452674516320, - 0.897831778021305650, -0.440338617855737250, 0.897747327643974690, - -0.440510766846965940, - 0.897662844259040860, -0.440682899641872900, 0.897578327869610230, - -0.440855016234129430, - 0.897493778478790310, -0.441027116617407230, 0.897409196089689720, - -0.441199200785378660, - 0.897324580705418320, -0.441371268731716670, 0.897239932329087160, - -0.441543320450094870, - 0.897155250963808550, -0.441715355934187310, 0.897070536612695870, - -0.441887375177668850, - 0.896985789278863970, -0.442059378174214700, 0.896901008965428790, - -0.442231364917500980, - 0.896816195675507300, -0.442403335401204080, 0.896731349412217880, - -0.442575289619001170, - 0.896646470178680150, -0.442747227564570020, 0.896561557978014960, - -0.442919149231588980, - 0.896476612813344120, -0.443091054613736880, 0.896391634687790820, - -0.443262943704693320, - 0.896306623604479550, -0.443434816498138480, 0.896221579566536030, - -0.443606672987752970, - 0.896136502577086770, -0.443778513167218220, 0.896051392639260150, - -0.443950337030216140, - 0.895966249756185220, -0.444122144570429200, 0.895881073930992370, - -0.444293935781540580, - 0.895795865166813530, -0.444465710657234000, 0.895710623466781320, - -0.444637469191193790, - 0.895625348834030110, -0.444809211377104880, 0.895540041271694950, - -0.444980937208652730, - 0.895454700782912450, -0.445152646679523640, 0.895369327370820310, - -0.445324339783404190, - 0.895283921038557580, -0.445496016513981740, 0.895198481789264200, - -0.445667676864944300, - 0.895113009626081760, -0.445839320829980290, 0.895027504552152630, - -0.446010948402778940, - 0.894941966570620750, -0.446182559577030070, 0.894856395684631050, - -0.446354154346423840, - 0.894770791897329550, -0.446525732704651350, 0.894685155211863980, - -0.446697294645404090, - 0.894599485631382700, -0.446868840162374160, 0.894513783159035620, - -0.447040369249254440, - 0.894428047797973800, -0.447211881899738320, 0.894342279551349480, - -0.447383378107519600, - 0.894256478422316040, -0.447554857866293010, 0.894170644414028270, - -0.447726321169753580, - 0.894084777529641990, -0.447897768011597310, 0.893998877772314240, - -0.448069198385520400, - 0.893912945145203250, -0.448240612285219890, 0.893826979651468620, - -0.448412009704393430, - 0.893740981294271040, -0.448583390636739240, 0.893654950076772540, - -0.448754755075955970, - 0.893568886002135910, -0.448926103015743260, 0.893482789073525850, - -0.449097434449801050, - 0.893396659294107720, -0.449268749371829920, 0.893310496667048200, - -0.449440047775531150, - 0.893224301195515320, -0.449611329654606540, 0.893138072882678320, - -0.449782595002758690, - 0.893051811731707450, -0.449953843813690520, 0.892965517745774370, - -0.450125076081105690, - 0.892879190928051680, -0.450296291798708610, 0.892792831281713610, - -0.450467490960204110, - 0.892706438809935390, -0.450638673559297600, 0.892620013515893150, - -0.450809839589695280, - 0.892533555402764580, -0.450980989045103860, 0.892447064473728680, - -0.451152121919230600, - 0.892360540731965360, -0.451323238205783520, 0.892273984180655840, - -0.451494337898471100, - 0.892187394822982480, -0.451665420991002490, 0.892100772662129060, - -0.451836487477087490, - 0.892014117701280470, -0.452007537350436420, 0.891927429943622510, - -0.452178570604760350, - 0.891840709392342720, -0.452349587233770890, 0.891753956050629460, - -0.452520587231180050, - 0.891667169921672280, -0.452691570590700920, 0.891580351008662290, - -0.452862537306046750, - 0.891493499314791380, -0.453033487370931580, 0.891406614843252900, - -0.453204420779070190, - 0.891319697597241390, -0.453375337524177750, 0.891232747579952520, - -0.453546237599970090, - 0.891145764794583180, -0.453717121000163870, 0.891058749244331590, - -0.453887987718476050, - 0.890971700932396860, -0.454058837748624430, 0.890884619861979530, - -0.454229671084327320, - 0.890797506036281490, -0.454400487719303580, 0.890710359458505630, - -0.454571287647272950, - 0.890623180131855930, -0.454742070861955450, 0.890535968059537830, - -0.454912837357071940, - 0.890448723244757880, -0.455083587126343840, 0.890361445690723840, - -0.455254320163493100, - 0.890274135400644600, -0.455425036462242360, 0.890186792377730240, - -0.455595736016314980, - 0.890099416625192320, -0.455766418819434640, 0.890012008146243260, - -0.455937084865326030, - 0.889924566944096720, -0.456107734147714110, 0.889837093021967900, - -0.456278366660324620, - 0.889749586383072780, -0.456448982396883920, 0.889662047030628900, - -0.456619581351118910, - 0.889574474967854580, -0.456790163516757160, 0.889486870197969900, - -0.456960728887526980, - 0.889399232724195520, -0.457131277457156980, 0.889311562549753850, - -0.457301809219376630, - 0.889223859677868210, -0.457472324167916060, 0.889136124111763240, - -0.457642822296505770, - 0.889048355854664570, -0.457813303598877170, 0.888960554909799310, - -0.457983768068762120, - 0.888872721280395630, -0.458154215699893060, 0.888784854969682850, - -0.458324646486003240, - 0.888696955980891600, -0.458495060420826270, 0.888609024317253860, - -0.458665457498096560, - 0.888521059982002260, -0.458835837711549120, 0.888433062978371320, - -0.459006201054919630, - 0.888345033309596350, -0.459176547521944090, 0.888256970978913870, - -0.459346877106359630, - 0.888168875989561730, -0.459517189801903480, 0.888080748344778900, - -0.459687485602313870, - 0.887992588047805560, -0.459857764501329540, 0.887904395101883240, - -0.460028026492689650, - 0.887816169510254440, -0.460198271570134320, 0.887727911276163020, - -0.460368499727404010, - 0.887639620402853930, -0.460538710958240010, 0.887551296893573370, - -0.460708905256384080, - 0.887462940751568840, -0.460879082615578690, 0.887374551980088850, - -0.461049243029566900, - 0.887286130582383150, -0.461219386492092380, 0.887197676561702900, - -0.461389512996899450, - 0.887109189921300170, -0.461559622537733080, 0.887020670664428360, - -0.461729715108338770, - 0.886932118794342190, -0.461899790702462730, 0.886843534314297410, - -0.462069849313851750, - 0.886754917227550840, -0.462239890936253340, 0.886666267537361000, - -0.462409915563415430, - 0.886577585246987040, -0.462579923189086810, 0.886488870359689600, - -0.462749913807016740, - 0.886400122878730600, -0.462919887410955080, 0.886311342807372780, - -0.463089843994652530, - 0.886222530148880640, -0.463259783551860150, 0.886133684906519340, - -0.463429706076329830, - 0.886044807083555600, -0.463599611561814010, 0.885955896683257030, - -0.463769500002065630, - 0.885866953708892790, -0.463939371390838520, 0.885777978163732940, - -0.464109225721886950, - 0.885688970051048960, -0.464279062988965760, 0.885599929374113360, - -0.464448883185830660, - 0.885510856136199950, -0.464618686306237820, 0.885421750340583680, - -0.464788472343943990, - 0.885332611990540590, -0.464958241292706690, 0.885243441089348270, - -0.465127993146283950, - 0.885154237640285110, -0.465297727898434600, 0.885065001646630930, - -0.465467445542917800, - 0.884975733111666660, -0.465637146073493660, 0.884886432038674560, - -0.465806829483922710, - 0.884797098430937790, -0.465976495767966180, 0.884707732291741040, - -0.466146144919385890, - 0.884618333624369920, -0.466315776931944430, 0.884528902432111460, - -0.466485391799404900, - 0.884439438718253810, -0.466654989515530920, 0.884349942486086120, - -0.466824570074086950, - 0.884260413738899190, -0.466994133468838000, 0.884170852479984500, - -0.467163679693549770, - 0.884081258712634990, -0.467333208741988420, 0.883991632440144890, - -0.467502720607920920, - 0.883901973665809470, -0.467672215285114770, 0.883812282392925090, - -0.467841692767338170, - 0.883722558624789660, -0.468011153048359830, 0.883632802364701870, - -0.468180596121949290, - 0.883543013615961880, -0.468350021981876530, 0.883453192381870920, - -0.468519430621912310, - 0.883363338665731580, -0.468688822035827900, 0.883273452470847430, - -0.468858196217395330, - 0.883183533800523390, -0.469027553160387130, 0.883093582658065370, - -0.469196892858576580, - 0.883003599046780830, -0.469366215305737520, 0.882913582969978020, - -0.469535520495644450, - 0.882823534430966620, -0.469704808422072460, 0.882733453433057650, - -0.469874079078797360, - 0.882643339979562790, -0.470043332459595620, 0.882553194073795510, - -0.470212568558244170, - 0.882463015719070150, -0.470381787368520650, 0.882372804918702290, - -0.470550988884203550, - 0.882282561676008710, -0.470720173099071600, 0.882192285994307430, - -0.470889340006904520, - 0.882101977876917580, -0.471058489601482500, 0.882011637327159590, - -0.471227621876586340, - 0.881921264348355050, -0.471396736825997640, 0.881830858943826620, - -0.471565834443498420, - 0.881740421116898320, -0.471734914722871430, 0.881649950870895260, - -0.471903977657900210, - 0.881559448209143780, -0.472073023242368660, 0.881468913134971440, - -0.472242051470061490, - 0.881378345651706920, -0.472411062334764040, 0.881287745762680100, - -0.472580055830262250, - 0.881197113471222090, -0.472749031950342790, 0.881106448780665130, - -0.472917990688792760, - 0.881015751694342870, -0.473086932039400050, 0.880925022215589880, - -0.473255855995953320, - 0.880834260347742040, -0.473424762552241530, 0.880743466094136340, - -0.473593651702054530, - 0.880652639458111010, -0.473762523439182850, 0.880561780443005700, - -0.473931377757417450, - 0.880470889052160750, -0.474100214650549970, 0.880379965288918150, - -0.474269034112372980, - 0.880289009156621010, -0.474437836136679230, 0.880198020658613190, - -0.474606620717262560, - 0.880106999798240360, -0.474775387847917120, 0.880015946578849070, - -0.474944137522437800, - 0.879924861003786860, -0.475112869734620300, 0.879833743076402940, - -0.475281584478260740, - 0.879742592800047410, -0.475450281747155870, 0.879651410178071580, - -0.475618961535103300, - 0.879560195213827890, -0.475787623835901120, 0.879468947910670210, - -0.475956268643348060, - 0.879377668271953290, -0.476124895951243580, 0.879286356301033250, - -0.476293505753387690, - 0.879195012001267480, -0.476462098043581190, 0.879103635376014330, - -0.476630672815625320, - 0.879012226428633530, -0.476799230063322090, 0.878920785162485840, - -0.476967769780474170, - 0.878829311580933360, -0.477136291960884810, 0.878737805687339390, - -0.477304796598357890, - 0.878646267485068130, -0.477473283686698060, 0.878554696977485450, - -0.477641753219710470, - 0.878463094167957870, -0.477810205191200990, 0.878371459059853480, - -0.477978639594976160, - 0.878279791656541580, -0.478147056424843010, 0.878188091961392250, - -0.478315455674609480, - 0.878096359977777130, -0.478483837338083970, 0.878004595709069080, - -0.478652201409075500, - 0.877912799158641840, -0.478820547881393890, 0.877820970329870500, - -0.478988876748849490, - 0.877729109226131570, -0.479157188005253310, 0.877637215850802230, - -0.479325481644417070, - 0.877545290207261350, -0.479493757660153010, 0.877453332298888560, - -0.479662016046274180, - 0.877361342129065140, -0.479830256796594190, 0.877269319701173170, - -0.479998479904927280, - 0.877177265018595940, -0.480166685365088390, 0.877085178084718420, - -0.480334873170893020, - 0.876993058902925890, -0.480503043316157510, 0.876900907476605650, - -0.480671195794698640, - 0.876808723809145650, -0.480839330600333960, 0.876716507903935400, - -0.481007447726881590, - 0.876624259764365310, -0.481175547168160300, 0.876531979393827100, - -0.481343628917989710, - 0.876439666795713610, -0.481511692970189860, 0.876347321973419020, - -0.481679739318581490, - 0.876254944930338510, -0.481847767956986030, 0.876162535669868460, - -0.482015778879225590, - 0.876070094195406600, -0.482183772079122720, 0.875977620510351770, - -0.482351747550500980, - 0.875885114618103810, -0.482519705287184350, 0.875792576522063880, - -0.482687645282997460, - 0.875700006225634600, -0.482855567531765670, 0.875607403732219350, - -0.483023472027314880, - 0.875514769045222850, -0.483191358763471860, 0.875422102168050940, - -0.483359227734063810, - 0.875329403104110890, -0.483527078932918740, 0.875236671856810870, - -0.483694912353865140, - 0.875143908429560360, -0.483862727990732270, 0.875051112825769970, - -0.484030525837350010, - 0.874958285048851650, -0.484198305887549030, 0.874865425102218320, - -0.484366068135160420, - 0.874772532989284150, -0.484533812574016180, 0.874679608713464510, - -0.484701539197948670, - 0.874586652278176110, -0.484869248000791060, 0.874493663686836560, - -0.485036938976377290, - 0.874400642942864790, -0.485204612118541820, 0.874307590049680950, - -0.485372267421119770, - 0.874214505010706300, -0.485539904877946960, 0.874121387829363330, - -0.485707524482859750, - 0.874028238509075740, -0.485875126229695250, 0.873935057053268240, - -0.486042710112291330, - 0.873841843465366860, -0.486210276124486420, 0.873748597748798870, - -0.486377824260119440, - 0.873655319906992630, -0.486545354513030270, 0.873562009943377850, - -0.486712866877059170, - 0.873468667861384880, -0.486880361346047340, 0.873375293664446000, - -0.487047837913836380, - 0.873281887355994210, -0.487215296574268760, 0.873188448939463790, - -0.487382737321187360, - 0.873094978418290090, -0.487550160148436000, 0.873001475795909920, - -0.487717565049858800, - 0.872907941075761080, -0.487884952019301040, 0.872814374261282390, - -0.488052321050608250, - 0.872720775355914300, -0.488219672137626790, 0.872627144363097960, - -0.488387005274203530, - 0.872533481286276170, -0.488554320454186180, 0.872439786128892280, - -0.488721617671423080, - 0.872346058894391540, -0.488888896919763170, 0.872252299586219860, - -0.489056158193056030, - 0.872158508207824480, -0.489223401485151980, 0.872064684762653860, - -0.489390626789901920, - 0.871970829254157810, -0.489557834101157440, 0.871876941685786890, - -0.489725023412770910, - 0.871783022060993120, -0.489892194718595190, 0.871689070383229740, - -0.490059348012483850, - 0.871595086655950980, -0.490226483288291160, 0.871501070882612530, - -0.490393600539871970, - 0.871407023066670950, -0.490560699761082020, 0.871312943211584030, - -0.490727780945777400, - 0.871218831320811020, -0.490894844087815090, 0.871124687397811900, - -0.491061889181052650, - 0.871030511446048260, -0.491228916219348280, 0.870936303468982760, - -0.491395925196560780, - 0.870842063470078980, -0.491562916106549900, 0.870747791452801790, - -0.491729888943175760, - 0.870653487420617430, -0.491896843700299290, 0.870559151376993250, - -0.492063780371782000, - 0.870464783325397670, -0.492230698951486020, 0.870370383269300270, - -0.492397599433274380, - 0.870275951212171940, -0.492564481811010590, 0.870181487157484560, - -0.492731346078558840, - 0.870086991108711460, -0.492898192229784040, 0.869992463069326870, - -0.493065020258551700, - 0.869897903042806340, -0.493231830158727900, 0.869803311032626650, - -0.493398621924179770, - 0.869708687042265670, -0.493565395548774770, 0.869614031075202300, - -0.493732151026381020, - 0.869519343134916860, -0.493898888350867480, 0.869424623224890890, - -0.494065607516103570, - 0.869329871348606840, -0.494232308515959670, 0.869235087509548370, - -0.494398991344306650, - 0.869140271711200560, -0.494565655995015950, 0.869045423957049530, - -0.494732302461959870, - 0.868950544250582380, -0.494898930739011260, 0.868855632595287860, - -0.495065540820043560, - 0.868760688994655310, -0.495232132698931180, 0.868665713452175690, - -0.495398706369549020, - 0.868570705971340900, -0.495565261825772540, 0.868475666555644120, - -0.495731799061477960, - 0.868380595208579800, -0.495898318070542190, 0.868285491933643350, - -0.496064818846842890, - 0.868190356734331310, -0.496231301384258250, 0.868095189614141670, - -0.496397765676667160, - 0.867999990576573510, -0.496564211717949290, 0.867904759625126920, - -0.496730639501984760, - 0.867809496763303320, -0.496897049022654470, 0.867714201994605140, - -0.497063440273840250, - 0.867618875322536230, -0.497229813249424220, 0.867523516750601460, - -0.497396167943289280, - 0.867428126282306920, -0.497562504349319150, 0.867332703921159800, - -0.497728822461397940, - 0.867237249670668400, -0.497895122273410870, 0.867141763534342470, - -0.498061403779243410, - 0.867046245515692650, -0.498227666972781870, 0.866950695618230900, - -0.498393911847913210, - 0.866855113845470430, -0.498560138398525140, 0.866759500200925400, - -0.498726346618505900, - 0.866663854688111130, -0.498892536501744590, 0.866568177310544470, - -0.499058708042130870, - 0.866472468071743050, -0.499224861233555080, 0.866376726975225830, - -0.499390996069908170, - 0.866280954024512990, -0.499557112545081840, 0.866185149223125840, - -0.499723210652968540, - 0.866089312574586770, -0.499889290387461330, 0.865993444082419520, - -0.500055351742453860, - 0.865897543750148820, -0.500221394711840680, 0.865801611581300760, - -0.500387419289516580, - 0.865705647579402380, -0.500553425469377420, 0.865609651747981990, - -0.500719413245319880, - 0.865513624090569090, -0.500885382611240710, 0.865417564610694410, - -0.501051333561038040, - 0.865321473311889800, -0.501217266088609950, 0.865225350197688200, - -0.501383180187855770, - 0.865129195271623800, -0.501549075852675390, 0.865033008537231860, - -0.501714953076969120, - 0.864936789998049020, -0.501880811854638290, 0.864840539657612870, - -0.502046652179584660, - 0.864744257519462380, -0.502212474045710790, 0.864647943587137480, - -0.502378277446919760, - 0.864551597864179340, -0.502544062377115690, 0.864455220354130360, - -0.502709828830202990, - 0.864358811060534030, -0.502875576800086990, 0.864262369986934950, - -0.503041306280673450, - 0.864165897136879300, -0.503207017265868920, 0.864069392513913790, - -0.503372709749581040, - 0.863972856121586810, -0.503538383725717580, 0.863876287963447510, - -0.503704039188187070, - 0.863779688043046720, -0.503869676130898950, 0.863683056363935830, - -0.504035294547763190, - 0.863586392929668100, -0.504200894432690340, 0.863489697743797140, - -0.504366475779592040, - 0.863392970809878420, -0.504532038582380270, 0.863296212131468230, - -0.504697582834967570, - 0.863199421712124160, -0.504863108531267590, 0.863102599555404910, - -0.505028615665194080, - 0.863005745664870320, -0.505194104230662240, 0.862908860044081400, - -0.505359574221587280, - 0.862811942696600330, -0.505525025631885390, 0.862714993625990690, - -0.505690458455473450, - 0.862618012835816740, -0.505855872686268860, 0.862521000329644520, - -0.506021268318189720, - 0.862423956111040610, -0.506186645345155230, 0.862326880183573060, - -0.506352003761084800, - 0.862229772550811240, -0.506517343559898530, 0.862132633216325380, - -0.506682664735517600, - 0.862035462183687210, -0.506847967281863210, 0.861938259456469290, - -0.507013251192858230, - 0.861841025038245330, -0.507178516462425180, 0.861743758932590700, - -0.507343763084487920, - 0.861646461143081300, -0.507508991052970870, 0.861549131673294720, - -0.507674200361798890, - 0.861451770526809320, -0.507839391004897720, 0.861354377707204910, - -0.508004562976194010, - 0.861256953218062170, -0.508169716269614600, 0.861159497062963350, - -0.508334850879087360, - 0.861062009245491480, -0.508499966798540930, 0.860964489769231010, - -0.508665064021904030, - 0.860866938637767310, -0.508830142543106990, 0.860769355854687170, - -0.508995202356080090, - 0.860671741423578380, -0.509160243454754640, 0.860574095348029980, - -0.509325265833062480, - 0.860476417631632070, -0.509490269484936360, 0.860378708277976130, - -0.509655254404309250, - 0.860280967290654510, -0.509820220585115450, 0.860183194673260990, - -0.509985168021289460, - 0.860085390429390140, -0.510150096706766810, 0.859987554562638200, - -0.510315006635483240, - 0.859889687076602290, -0.510479897801375700, 0.859791787974880650, - -0.510644770198381610, - 0.859693857261072610, -0.510809623820439040, 0.859595894938779080, - -0.510974458661486830, - 0.859497901011601730, -0.511139274715464390, 0.859399875483143450, - -0.511304071976312000, - 0.859301818357008470, -0.511468850437970300, 0.859203729636801920, - -0.511633610094381240, - 0.859105609326130450, -0.511798350939486890, 0.859007457428601520, - -0.511963072967230200, - 0.858909273947823900, -0.512127776171554690, 0.858811058887407610, - -0.512292460546404870, - 0.858712812250963520, -0.512457126085725690, 0.858614534042104190, - -0.512621772783462990, - 0.858516224264442740, -0.512786400633562960, 0.858417882921593930, - -0.512951009629972980, - 0.858319510017173440, -0.513115599766640560, 0.858221105554798250, - -0.513280171037514220, - 0.858122669538086140, -0.513444723436543460, 0.858024201970656540, - -0.513609256957677780, - 0.857925702856129790, -0.513773771594868030, 0.857827172198127430, - -0.513938267342065380, - 0.857728610000272120, -0.514102744193221660, 0.857630016266187620, - -0.514267202142289710, - 0.857531390999499150, -0.514431641183222820, 0.857432734203832700, - -0.514596061309975040, - 0.857334045882815590, -0.514760462516501200, 0.857235326040076460, - -0.514924844796756490, - 0.857136574679244980, -0.515089208144697160, 0.857037791803951680, - -0.515253552554280180, - 0.856938977417828760, -0.515417878019462930, 0.856840131524509220, - -0.515582184534203790, - 0.856741254127627470, -0.515746472092461380, 0.856642345230818840, - -0.515910740688195650, - 0.856543404837719960, -0.516074990315366630, 0.856444432951968590, - -0.516239220967935510, - 0.856345429577203610, -0.516403432639863990, 0.856246394717065210, - -0.516567625325114350, - 0.856147328375194470, -0.516731799017649870, 0.856048230555233940, - -0.516895953711434150, - 0.855949101260826910, -0.517060089400431910, 0.855849940495618240, - -0.517224206078608310, - 0.855750748263253920, -0.517388303739929060, 0.855651524567380690, - -0.517552382378360880, - 0.855552269411646860, -0.517716441987871150, 0.855452982799701830, - -0.517880482562427690, - 0.855353664735196030, -0.518044504095999340, 0.855254315221780970, - -0.518208506582555460, - 0.855154934263109620, -0.518372490016066110, 0.855055521862835950, - -0.518536454390502220, - 0.854956078024614930, -0.518700399699834950, 0.854856602752102850, - -0.518864325938036890, - 0.854757096048957220, -0.519028233099080860, 0.854657557918836460, - -0.519192121176940250, - 0.854557988365400530, -0.519355990165589640, 0.854458387392310170, - -0.519519840059003760, - 0.854358755003227440, -0.519683670851158410, 0.854259091201815530, - -0.519847482536030190, - 0.854159395991738850, -0.520011275107596040, 0.854059669376662780, - -0.520175048559833760, - 0.853959911360254180, -0.520338802886721960, 0.853860121946180770, - -0.520502538082239670, - 0.853760301138111410, -0.520666254140367160, 0.853660448939716380, - -0.520829951055084670, - 0.853560565354666840, -0.520993628820373920, 0.853460650386635320, - -0.521157287430216610, - 0.853360704039295430, -0.521320926878595660, 0.853260726316321880, - -0.521484547159494330, - 0.853160717221390420, -0.521648148266897090, 0.853060676758178320, - -0.521811730194788550, - 0.852960604930363630, -0.521975292937154390, 0.852860501741625750, - -0.522138836487980760, - 0.852760367195645300, -0.522302360841254590, 0.852660201296103760, - -0.522465865990963780, - 0.852560004046684080, -0.522629351931096610, 0.852459775451070100, - -0.522792818655642090, - 0.852359515512947090, -0.522956266158590140, 0.852259224236001090, - -0.523119694433931250, - 0.852158901623919830, -0.523283103475656430, 0.852058547680391690, - -0.523446493277757830, - 0.851958162409106380, -0.523609863834227920, 0.851857745813754840, - -0.523773215139060170, - 0.851757297898029120, -0.523936547186248600, 0.851656818665622370, - -0.524099859969787700, - 0.851556308120228980, -0.524263153483673360, 0.851455766265544310, - -0.524426427721901400, - 0.851355193105265200, -0.524589682678468950, 0.851254588643089120, - -0.524752918347373360, - 0.851153952882715340, -0.524916134722613000, 0.851053285827843790, - -0.525079331798186780, - 0.850952587482175730, -0.525242509568094710, 0.850851857849413530, - -0.525405668026336930, - 0.850751096933260790, -0.525568807166914680, 0.850650304737422090, - -0.525731926983829760, - 0.850549481265603480, -0.525895027471084630, 0.850448626521511760, - -0.526058108622682760, - 0.850347740508854980, -0.526221170432628060, 0.850246823231342710, - -0.526384212894925100, - 0.850145874692685210, -0.526547236003579440, 0.850044894896594180, - -0.526710239752597010, - 0.849943883846782210, -0.526873224135984590, 0.849842841546963320, - -0.527036189147750080, - 0.849741768000852550, -0.527199134781901280, 0.849640663212165910, - -0.527362061032447540, - 0.849539527184620890, -0.527524967893398200, 0.849438359921936060, - -0.527687855358763720, - 0.849337161427830780, -0.527850723422555230, 0.849235931706025960, - -0.528013572078784630, - 0.849134670760243630, -0.528176401321464370, 0.849033378594206800, - -0.528339211144607690, - 0.848932055211639610, -0.528502001542228480, 0.848830700616267530, - -0.528664772508341320, - 0.848729314811817130, -0.528827524036961870, 0.848627897802015860, - -0.528990256122106040, - 0.848526449590592650, -0.529152968757790610, 0.848424970181277600, - -0.529315661938033260, - 0.848323459577801640, -0.529478335656851980, 0.848221917783896990, - -0.529640989908265910, - 0.848120344803297230, -0.529803624686294610, 0.848018740639736810, - -0.529966239984958620, - 0.847917105296951410, -0.530128835798278960, 0.847815438778677930, - -0.530291412120277310, - 0.847713741088654380, -0.530453968944976320, 0.847612012230619660, - -0.530616506266399330, - 0.847510252208314330, -0.530779024078570140, 0.847408461025479730, - -0.530941522375513620, - 0.847306638685858320, -0.531104001151255000, 0.847204785193194090, - -0.531266460399820390, - 0.847102900551231500, -0.531428900115236800, 0.847000984763716880, - -0.531591320291531670, - 0.846899037834397240, -0.531753720922733320, 0.846797059767020910, - -0.531916102002870650, - 0.846695050565337450, -0.532078463525973540, 0.846593010233097190, - -0.532240805486072220, - 0.846490938774052130, -0.532403127877197900, 0.846388836191954930, - -0.532565430693382580, - 0.846286702490559710, -0.532727713928658810, 0.846184537673621560, - -0.532889977577059800, - 0.846082341744897050, -0.533052221632619450, 0.845980114708143270, - -0.533214446089372960, - 0.845877856567119000, -0.533376650941355330, 0.845775567325584010, - -0.533538836182603120, - 0.845673246987299070, -0.533701001807152960, 0.845570895556026270, - -0.533863147809042650, - 0.845468513035528830, -0.534025274182310380, 0.845366099429570970, - -0.534187380920995380, - 0.845263654741918220, -0.534349468019137520, 0.845161178976337140, - -0.534511535470777120, - 0.845058672136595470, -0.534673583269955510, 0.844956134226462210, - -0.534835611410714560, - 0.844853565249707120, -0.534997619887097150, 0.844750965210101510, - -0.535159608693146600, - 0.844648334111417820, -0.535321577822907120, 0.844545671957429240, - -0.535483527270423370, - 0.844442978751910660, -0.535645457029741090, 0.844340254498637590, - -0.535807367094906390, - 0.844237499201387020, -0.535969257459966710, 0.844134712863936930, - -0.536131128118969460, - 0.844031895490066410, -0.536292979065963180, 0.843929047083555870, - -0.536454810294997090, - 0.843826167648186740, -0.536616621800121040, 0.843723257187741660, - -0.536778413575385920, - 0.843620315706004150, -0.536940185614842910, 0.843517343206759200, - -0.537101937912544130, - 0.843414339693792760, -0.537263670462542530, 0.843311305170892140, - -0.537425383258891550, - 0.843208239641845440, -0.537587076295645390, 0.843105143110442160, - -0.537748749566859360, - 0.843002015580472940, -0.537910403066588880, 0.842898857055729310, - -0.538072036788890600, - 0.842795667540004120, -0.538233650727821700, 0.842692447037091670, - -0.538395244877439950, - 0.842589195550786710, -0.538556819231804100, 0.842485913084885630, - -0.538718373784973560, - 0.842382599643185850, -0.538879908531008420, 0.842279255229485990, - -0.539041423463969440, - 0.842175879847585570, -0.539202918577918240, 0.842072473501285560, - -0.539364393866917040, - 0.841969036194387680, -0.539525849325028890, 0.841865567930695340, - -0.539687284946317570, - 0.841762068714012490, -0.539848700724847590, 0.841658538548144760, - -0.540010096654684020, - 0.841554977436898440, -0.540171472729892850, 0.841451385384081260, - -0.540332828944540710, - 0.841347762393501950, -0.540494165292695230, 0.841244108468970580, - -0.540655481768424150, - 0.841140423614298080, -0.540816778365796670, 0.841036707833296650, - -0.540978055078882080, - 0.840932961129779780, -0.541139311901750800, 0.840829183507561640, - -0.541300548828474120, - 0.840725374970458070, -0.541461765853123440, 0.840621535522285690, - -0.541622962969771530, - 0.840517665166862550, -0.541784140172491550, 0.840413763908007480, - -0.541945297455357360, - 0.840309831749540770, -0.542106434812443920, 0.840205868695283580, - -0.542267552237826520, - 0.840101874749058400, -0.542428649725581250, 0.839997849914688840, - -0.542589727269785270, - 0.839893794195999520, -0.542750784864515890, 0.839789707596816370, - -0.542911822503851730, - 0.839685590120966110, -0.543072840181871740, 0.839581441772277120, - -0.543233837892655890, - 0.839477262554578550, -0.543394815630284800, 0.839373052471700690, - -0.543555773388839540, - 0.839268811527475230, -0.543716711162402280, 0.839164539725734680, - -0.543877628945055980, - 0.839060237070312740, -0.544038526730883820, 0.838955903565044460, - -0.544199404513970310, - 0.838851539213765760, -0.544360262288400400, 0.838747144020313920, - -0.544521100048259600, - 0.838642717988527300, -0.544681917787634530, 0.838538261122245280, - -0.544842715500612360, - 0.838433773425308340, -0.545003493181281160, 0.838329254901558300, - -0.545164250823729320, - 0.838224705554838080, -0.545324988422046460, 0.838120125388991500, - -0.545485705970322530, - 0.838015514407863820, -0.545646403462648590, 0.837910872615301170, - -0.545807080893116140, - 0.837806200015150940, -0.545967738255817570, 0.837701496611261700, - -0.546128375544845950, - 0.837596762407483040, -0.546288992754295210, 0.837491997407665890, - -0.546449589878259650, - 0.837387201615661940, -0.546610166910834860, 0.837282375035324320, - -0.546770723846116800, - 0.837177517670507300, -0.546931260678202190, 0.837072629525066000, - -0.547091777401188530, - 0.836967710602857020, -0.547252274009174090, 0.836862760907737920, - -0.547412750496257930, - 0.836757780443567190, -0.547573206856539760, 0.836652769214204950, - -0.547733643084120090, - 0.836547727223512010, -0.547894059173100190, 0.836442654475350380, - -0.548054455117581880, - 0.836337550973583530, -0.548214830911667780, 0.836232416722075600, - -0.548375186549461600, - 0.836127251724692270, -0.548535522025067390, 0.836022055985299880, - -0.548695837332590090, - 0.835916829507766360, -0.548856132466135290, 0.835811572295960700, - -0.549016407419809390, - 0.835706284353752600, -0.549176662187719660, 0.835600965685013410, - -0.549336896763974010, - 0.835495616293615350, -0.549497111142680960, 0.835390236183431890, - -0.549657305317949870, - 0.835284825358337370, -0.549817479283890910, 0.835179383822207690, - -0.549977633034614890, - 0.835073911578919410, -0.550137766564233630, 0.834968408632350450, - -0.550297879866859190, - 0.834862874986380010, -0.550457972936604810, 0.834757310644888230, - -0.550618045767584330, - 0.834651715611756440, -0.550778098353912120, 0.834546089890866870, - -0.550938130689703880, - 0.834440433486103190, -0.551098142769075430, 0.834334746401350080, - -0.551258134586143590, - 0.834229028640493420, -0.551418106135026060, 0.834123280207420100, - -0.551578057409841000, - 0.834017501106018130, -0.551737988404707340, 0.833911691340176840, - -0.551897899113745210, - 0.833805850913786340, -0.552057789531074980, 0.833699979830738290, - -0.552217659650817930, - 0.833594078094925140, -0.552377509467096070, 0.833488145710240770, - -0.552537338974032120, - 0.833382182680579730, -0.552697148165749770, 0.833276189009838240, - -0.552856937036373290, - 0.833170164701913190, -0.553016705580027470, 0.833064109760702890, - -0.553176453790838350, - 0.832958024190106670, -0.553336181662932300, 0.832851907994025090, - -0.553495889190436570, - 0.832745761176359460, -0.553655576367479310, 0.832639583741012770, - -0.553815243188189090, - 0.832533375691888680, -0.553974889646695500, 0.832427137032892280, - -0.554134515737128910, - 0.832320867767929680, -0.554294121453620000, 0.832214567900907980, - -0.554453706790300930, - 0.832108237435735590, -0.554613271741304040, 0.832001876376321950, - -0.554772816300762470, - 0.831895484726577590, -0.554932340462810370, 0.831789062490414400, - -0.555091844221582420, - 0.831682609671745120, -0.555251327571213980, 0.831576126274483740, - -0.555410790505841630, - 0.831469612302545240, -0.555570233019602180, 0.831363067759845920, - -0.555729655106633410, - 0.831256492650303210, -0.555889056761073810, 0.831149886977835540, - -0.556048437977062600, - 0.831043250746362320, -0.556207798748739930, 0.830936583959804410, - -0.556367139070246370, - 0.830829886622083570, -0.556526458935723610, 0.830723158737122880, - -0.556685758339313890, - 0.830616400308846310, -0.556845037275160100, 0.830509611341179070, - -0.557004295737405950, - 0.830402791838047550, -0.557163533720196220, 0.830295941803379070, - -0.557322751217676160, - 0.830189061241102370, -0.557481948223991550, 0.830082150155146970, - -0.557641124733289420, - 0.829975208549443950, -0.557800280739716990, 0.829868236427924840, - -0.557959416237422960, - 0.829761233794523050, -0.558118531220556100, 0.829654200653172640, - -0.558277625683266330, - 0.829547137007808910, -0.558436699619704100, 0.829440042862368170, - -0.558595753024020760, - 0.829332918220788250, -0.558754785890368310, 0.829225763087007570, - -0.558913798212899770, - 0.829118577464965980, -0.559072789985768480, 0.829011361358604430, - -0.559231761203128900, - 0.828904114771864870, -0.559390711859136140, 0.828796837708690610, - -0.559549641947945760, - 0.828689530173025820, -0.559708551463714680, 0.828582192168815790, - -0.559867440400600210, - 0.828474823700007130, -0.560026308752760380, 0.828367424770547480, - -0.560185156514354080, - 0.828259995384385660, -0.560343983679540860, 0.828152535545471410, - -0.560502790242481060, - 0.828045045257755800, -0.560661576197336030, 0.827937524525190870, - -0.560820341538267430, - 0.827829973351729920, -0.560979086259438150, 0.827722391741327220, - -0.561137810355011420, - 0.827614779697938400, -0.561296513819151470, 0.827507137225519830, - -0.561455196646023280, - 0.827399464328029470, -0.561613858829792420, 0.827291761009425810, - -0.561772500364625340, - 0.827184027273669130, -0.561931121244689470, 0.827076263124720270, - -0.562089721464152480, - 0.826968468566541600, -0.562248301017183150, 0.826860643603096190, - -0.562406859897951140, - 0.826752788238348520, -0.562565398100626560, 0.826644902476264320, - -0.562723915619380400, - 0.826536986320809960, -0.562882412448384440, 0.826429039775953500, - -0.563040888581811230, - 0.826321062845663530, -0.563199344013834090, 0.826213055533910220, - -0.563357778738627020, - 0.826105017844664610, -0.563516192750364800, 0.825996949781899080, - -0.563674586043223070, - 0.825888851349586780, -0.563832958611378170, 0.825780722551702430, - -0.563991310449006970, - 0.825672563392221390, -0.564149641550287680, 0.825564373875120490, - -0.564307951909398640, - 0.825456154004377550, -0.564466241520519500, 0.825347903783971380, - -0.564624510377830120, - 0.825239623217882250, -0.564782758475511400, 0.825131312310091070, - -0.564940985807745210, - 0.825022971064580220, -0.565099192368713980, 0.824914599485333190, - -0.565257378152600800, - 0.824806197576334330, -0.565415543153589660, 0.824697765341569470, - -0.565573687365865330, - 0.824589302785025290, -0.565731810783613120, 0.824480809910689500, - -0.565889913401019570, - 0.824372286722551250, -0.566047995212271450, 0.824263733224600560, - -0.566206056211556730, - 0.824155149420828570, -0.566364096393063840, 0.824046535315227760, - -0.566522115750982100, - 0.823937890911791370, -0.566680114279501600, 0.823829216214513990, - -0.566838091972813320, - 0.823720511227391430, -0.566996048825108680, 0.823611775954420260, - -0.567153984830580100, - 0.823503010399598500, -0.567311899983420800, 0.823394214566925080, - -0.567469794277824510, - 0.823285388460400110, -0.567627667707986230, 0.823176532084024860, - -0.567785520268101140, - 0.823067645441801670, -0.567943351952365560, 0.822958728537734000, - -0.568101162754976460, - 0.822849781375826430, -0.568258952670131490, 0.822740803960084420, - -0.568416721692029280, - 0.822631796294514990, -0.568574469814869140, 0.822522758383125940, - -0.568732197032851050, - 0.822413690229926390, -0.568889903340175860, 0.822304591838926350, - -0.569047588731045110, - 0.822195463214137170, -0.569205253199661200, 0.822086304359571090, - -0.569362896740227220, - 0.821977115279241550, -0.569520519346947140, 0.821867895977163250, - -0.569678121014025600, - 0.821758646457351750, -0.569835701735668000, 0.821649366723823940, - -0.569993261506080540, - 0.821540056780597610, -0.570150800319470300, 0.821430716631691870, - -0.570308318170044900, - 0.821321346281126740, -0.570465815052012990, 0.821211945732923550, - -0.570623290959583750, - 0.821102514991104650, -0.570780745886967260, 0.820993054059693580, - -0.570938179828374360, - 0.820883562942714580, -0.571095592778016690, 0.820774041644193650, - -0.571252984730106660, - 0.820664490168157460, -0.571410355678857230, 0.820554908518633890, - -0.571567705618482580, - 0.820445296699652050, -0.571725034543197120, 0.820335654715241840, - -0.571882342447216590, - 0.820225982569434690, -0.572039629324757050, 0.820116280266262820, - -0.572196895170035580, - 0.820006547809759680, -0.572354139977269920, 0.819896785203959810, - -0.572511363740678790, - 0.819786992452898990, -0.572668566454481160, 0.819677169560613870, - -0.572825748112897550, - 0.819567316531142230, -0.572982908710148560, 0.819457433368523280, - -0.573140048240455950, - 0.819347520076796900, -0.573297166698042200, 0.819237576660004520, - -0.573454264077130400, - 0.819127603122188240, -0.573611340371944610, 0.819017599467391500, - -0.573768395576709560, - 0.818907565699658950, -0.573925429685650750, 0.818797501823036010, - -0.574082442692994470, - 0.818687407841569680, -0.574239434592967890, 0.818577283759307610, - -0.574396405379798750, - 0.818467129580298660, -0.574553355047715760, 0.818356945308593150, - -0.574710283590948330, - 0.818246730948242070, -0.574867191003726740, 0.818136486503297730, - -0.575024077280281710, - 0.818026211977813440, -0.575180942414845080, 0.817915907375843850, - -0.575337786401649450, - 0.817805572701444270, -0.575494609234928120, 0.817695207958671680, - -0.575651410908915140, - 0.817584813151583710, -0.575808191417845340, 0.817474388284239240, - -0.575964950755954220, - 0.817363933360698460, -0.576121688917478280, 0.817253448385022340, - -0.576278405896654910, - 0.817142933361272970, -0.576435101687721830, 0.817032388293513880, - -0.576591776284917760, - 0.816921813185809480, -0.576748429682482410, 0.816811208042225290, - -0.576905061874655960, - 0.816700572866827850, -0.577061672855679440, 0.816589907663684890, - -0.577218262619794920, - 0.816479212436865390, -0.577374831161244880, 0.816368487190439200, - -0.577531378474272720, - 0.816257731928477390, -0.577687904553122800, 0.816146946655052270, - -0.577844409392039850, - 0.816036131374236810, -0.578000892985269910, 0.815925286090105510, - -0.578157355327059360, - 0.815814410806733780, -0.578313796411655590, 0.815703505528198260, - -0.578470216233306630, - 0.815592570258576790, -0.578626614786261430, 0.815481605001947770, - -0.578782992064769690, - 0.815370609762391290, -0.578939348063081780, 0.815259584543988280, - -0.579095682775449090, - 0.815148529350820830, -0.579251996196123550, 0.815037444186972220, - -0.579408288319357870, - 0.814926329056526620, -0.579564559139405630, 0.814815183963569440, - -0.579720808650521450, - 0.814704008912187080, -0.579877036846960350, 0.814592803906467270, - -0.580033243722978150, - 0.814481568950498610, -0.580189429272831680, 0.814370304048371070, - -0.580345593490778300, - 0.814259009204175270, -0.580501736371076490, 0.814147684422003360, - -0.580657857907985300, - 0.814036329705948410, -0.580813958095764530, 0.813924945060104600, - -0.580970036928674770, - 0.813813530488567190, -0.581126094400977620, 0.813702085995432700, - -0.581282130506935000, - 0.813590611584798510, -0.581438145240810170, 0.813479107260763220, - -0.581594138596866930, - 0.813367573027426570, -0.581750110569369650, 0.813256008888889380, - -0.581906061152583810, - 0.813144414849253590, -0.582061990340775440, 0.813032790912622040, - -0.582217898128211670, - 0.812921137083098770, -0.582373784509160110, 0.812809453364789270, - -0.582529649477889320, - 0.812697739761799490, -0.582685493028668460, 0.812585996278237130, - -0.582841315155767650, - 0.812474222918210480, -0.582997115853457700, 0.812362419685829230, - -0.583152895116010430, - 0.812250586585203880, -0.583308652937698290, 0.812138723620446480, - -0.583464389312794320, - 0.812026830795669730, -0.583620104235572760, 0.811914908114987790, - -0.583775797700308070, - 0.811802955582515470, -0.583931469701276180, 0.811690973202369050, - -0.584087120232753440, - 0.811578960978665890, -0.584242749289016980, 0.811466918915524250, - -0.584398356864344600, - 0.811354847017063730, -0.584553942953015330, 0.811242745287404810, - -0.584709507549308390, - 0.811130613730669190, -0.584865050647504490, 0.811018452350979470, - -0.585020572241884530, - 0.810906261152459670, -0.585176072326730410, 0.810794040139234730, - -0.585331550896324940, - 0.810681789315430780, -0.585487007944951340, 0.810569508685174630, - -0.585642443466894420, - 0.810457198252594770, -0.585797857456438860, 0.810344858021820550, - -0.585953249907870570, - 0.810232487996982330, -0.586108620815476430, 0.810120088182211600, - -0.586263970173543590, - 0.810007658581641140, -0.586419297976360500, 0.809895199199404450, - -0.586574604218216170, - 0.809782710039636530, -0.586729888893400390, 0.809670191106473090, - -0.586885151996203950, - 0.809557642404051260, -0.587040393520917970, 0.809445063936509170, - -0.587195613461834800, - 0.809332455707985950, -0.587350811813247660, 0.809219817722621750, - -0.587505988569450020, - 0.809107149984558240, -0.587661143724736660, 0.808994452497937670, - -0.587816277273402910, - 0.808881725266903610, -0.587971389209745010, 0.808768968295600850, - -0.588126479528059850, - 0.808656181588174980, -0.588281548222645220, 0.808543365148773010, - -0.588436595287799790, - 0.808430518981542720, -0.588591620717822890, 0.808317643090633250, - -0.588746624507014540, - 0.808204737480194720, -0.588901606649675720, 0.808091802154378370, - -0.589056567140108460, - 0.807978837117336310, -0.589211505972614960, 0.807865842373222120, - -0.589366423141498790, - 0.807752817926190360, -0.589521318641063940, 0.807639763780396480, - -0.589676192465615420, - 0.807526679939997160, -0.589831044609458790, 0.807413566409150190, - -0.589985875066900920, - 0.807300423192014450, -0.590140683832248820, 0.807187250292749960, - -0.590295470899810830, - 0.807074047715517610, -0.590450236263895810, 0.806960815464479730, - -0.590604979918813330, - 0.806847553543799330, -0.590759701858874160, 0.806734261957640860, - -0.590914402078389520, - 0.806620940710169650, -0.591069080571671400, 0.806507589805552260, - -0.591223737333032910, - 0.806394209247956240, -0.591378372356787580, 0.806280799041550480, - -0.591532985637249990, - 0.806167359190504420, -0.591687577168735430, 0.806053889698989060, - -0.591842146945560140, - 0.805940390571176280, -0.591996694962040990, 0.805826861811239300, - -0.592151221212495530, - 0.805713303423352230, -0.592305725691242290, 0.805599715411690060, - -0.592460208392600830, - 0.805486097780429230, -0.592614669310891130, 0.805372450533747060, - -0.592769108440434070, - 0.805258773675822210, -0.592923525775551300, 0.805145067210834230, - -0.593077921310565470, - 0.805031331142963660, -0.593232295039799800, 0.804917565476392260, - -0.593386646957578480, - 0.804803770215302920, -0.593540977058226390, 0.804689945363879500, - -0.593695285336069190, - 0.804576090926307110, -0.593849571785433630, 0.804462206906771840, - -0.594003836400646690, - 0.804348293309460780, -0.594158079176036800, 0.804234350138562260, - -0.594312300105932830, - 0.804120377398265810, -0.594466499184664430, 0.804006375092761520, - -0.594620676406562240, - 0.803892343226241260, -0.594774831765957580, 0.803778281802897570, - -0.594928965257182420, - 0.803664190826924090, -0.595083076874569960, 0.803550070302515680, - -0.595237166612453850, - 0.803435920233868120, -0.595391234465168730, 0.803321740625178580, - -0.595545280427049790, - 0.803207531480644940, -0.595699304492433360, 0.803093292804466400, - -0.595853306655656280, - 0.802979024600843250, -0.596007286911056530, 0.802864726873976700, - -0.596161245252972540, - 0.802750399628069160, -0.596315181675743710, 0.802636042867324150, - -0.596469096173710360, - 0.802521656595946430, -0.596622988741213220, 0.802407240818141300, - -0.596776859372594390, - 0.802292795538115720, -0.596930708062196500, 0.802178320760077450, - -0.597084534804362740, - 0.802063816488235440, -0.597238339593437420, 0.801949282726799770, - -0.597392122423765710, - 0.801834719479981310, -0.597545883289693160, 0.801720126751992330, - -0.597699622185566830, - 0.801605504547046150, -0.597853339105733910, 0.801490852869356950, - -0.598007034044542700, - 0.801376171723140240, -0.598160706996342270, 0.801261461112612540, - -0.598314357955482600, - 0.801146721041991360, -0.598467986916314310, 0.801031951515495330, - -0.598621593873188920, - 0.800917152537344300, -0.598775178820458720, 0.800802324111759110, - -0.598928741752476900, - 0.800687466242961610, -0.599082282663597310, 0.800572578935174860, - -0.599235801548174570, - 0.800457662192622820, -0.599389298400564540, 0.800342716019530660, - -0.599542773215123390, - 0.800227740420124790, -0.599696225986208310, 0.800112735398632370, - -0.599849656708177250, - 0.799997700959281910, -0.600003065375388940, 0.799882637106302810, - -0.600156451982203240, - 0.799767543843925680, -0.600309816522980430, 0.799652421176382240, - -0.600463158992081580, - 0.799537269107905010, -0.600616479383868970, 0.799422087642728040, - -0.600769777692705230, - 0.799306876785086160, -0.600923053912954090, 0.799191636539215210, - -0.601076308038980160, - 0.799076366909352350, -0.601229540065148500, 0.798961067899735760, - -0.601382749985825420, - 0.798845739514604580, -0.601535937795377730, 0.798730381758199210, - -0.601689103488172950, - 0.798614994634760820, -0.601842247058580030, 0.798499578148532120, - -0.601995368500968020, - 0.798384132303756380, -0.602148467809707210, 0.798268657104678430, - -0.602301544979168550, - 0.798153152555543750, -0.602454600003723750, 0.798037618660599410, - -0.602607632877745440, - 0.797922055424093000, -0.602760643595607220, 0.797806462850273570, - -0.602913632151683030, - 0.797690840943391160, -0.603066598540348160, 0.797575189707696700, - -0.603219542755978440, - 0.797459509147442460, -0.603372464792950260, 0.797343799266881700, - -0.603525364645641550, - 0.797228060070268700, -0.603678242308430370, 0.797112291561858920, - -0.603831097775695880, - 0.796996493745908750, -0.603983931041818020, 0.796880666626675780, - -0.604136742101177520, - 0.796764810208418830, -0.604289530948155960, 0.796648924495397260, - -0.604442297577135860, - 0.796533009491872000, -0.604595041982500360, 0.796417065202104980, - -0.604747764158633410, - 0.796301091630359110, -0.604900464099919820, 0.796185088780898440, - -0.605053141800745320, - 0.796069056657987990, -0.605205797255496500, 0.795952995265893910, - -0.605358430458560530, - 0.795836904608883570, -0.605511041404325550, 0.795720784691225090, - -0.605663630087180380, - 0.795604635517188070, -0.605816196501514970, 0.795488457091042990, - -0.605968740641719680, - 0.795372249417061310, -0.606121262502186120, 0.795256012499515610, - -0.606273762077306430, - 0.795139746342679590, -0.606426239361473550, 0.795023450950828050, - -0.606578694349081290, - 0.794907126328237010, -0.606731127034524480, 0.794790772479183170, - -0.606883537412198470, - 0.794674389407944550, -0.607035925476499650, 0.794557977118800380, - -0.607188291221825160, - 0.794441535616030590, -0.607340634642572930, 0.794325064903916520, - -0.607492955733141550, - 0.794208564986740640, -0.607645254487930830, 0.794092035868785960, - -0.607797530901341140, - 0.793975477554337170, -0.607949784967773630, 0.793858890047679730, - -0.608102016681630440, - 0.793742273353100210, -0.608254226037314490, 0.793625627474886300, - -0.608406413029229150, - 0.793508952417326660, -0.608558577651779450, 0.793392248184711100, - -0.608710719899370310, - 0.793275514781330630, -0.608862839766408200, 0.793158752211477140, - -0.609014937247299830, - 0.793041960479443640, -0.609167012336453210, 0.792925139589524260, - -0.609319065028276820, - 0.792808289546014120, -0.609471095317180240, 0.792691410353209450, - -0.609623103197573730, - 0.792574502015407690, -0.609775088663868430, 0.792457564536907080, - -0.609927051710476120, - 0.792340597922007170, -0.610078992331809620, 0.792223602175008310, - -0.610230910522282620, - 0.792106577300212390, -0.610382806276309480, 0.791989523301921850, - -0.610534679588305320, - 0.791872440184440470, -0.610686530452686280, 0.791755327952073150, - -0.610838358863869170, - 0.791638186609125880, -0.610990164816271660, 0.791521016159905220, - -0.611141948304312570, - 0.791403816608719500, -0.611293709322410890, 0.791286587959877830, - -0.611445447864987000, - 0.791169330217690200, -0.611597163926461910, 0.791052043386467950, - -0.611748857501257290, - 0.790934727470523290, -0.611900528583796070, 0.790817382474169770, - -0.612052177168501470, - 0.790700008401721610, -0.612203803249797950, 0.790582605257494460, - -0.612355406822110650, - 0.790465173045804880, -0.612506987879865570, 0.790347711770970520, - -0.612658546417489290, - 0.790230221437310030, -0.612810082429409710, 0.790112702049143300, - -0.612961595910055170, - 0.789995153610791090, -0.613113086853854910, 0.789877576126575280, - -0.613264555255239040, - 0.789759969600819070, -0.613416001108638590, 0.789642334037846340, - -0.613567424408485330, - 0.789524669441982190, -0.613718825149211720, 0.789406975817552930, - -0.613870203325251330, - 0.789289253168885650, -0.614021558931038380, 0.789171501500308900, - -0.614172891961007990, - 0.789053720816151880, -0.614324202409595950, 0.788935911120745240, - -0.614475490271239040, - 0.788818072418420280, -0.614626755540375050, 0.788700204713509660, - -0.614777998211442080, - 0.788582308010347120, -0.614929218278879590, 0.788464382313267540, - -0.615080415737127460, - 0.788346427626606340, -0.615231590580626820, 0.788228443954700490, - -0.615382742803819220, - 0.788110431301888070, -0.615533872401147320, 0.787992389672507950, - -0.615684979367054570, - 0.787874319070900220, -0.615836063695985090, 0.787756219501406060, - -0.615987125382383760, - 0.787638090968367450, -0.616138164420696910, 0.787519933476127810, - -0.616289180805370980, - 0.787401747029031430, -0.616440174530853650, 0.787283531631423620, - -0.616591145591593110, - 0.787165287287651010, -0.616742093982038720, 0.787047014002060790, - -0.616893019696640680, - 0.786928711779001810, -0.617043922729849760, 0.786810380622823490, - -0.617194803076117630, - 0.786692020537876790, -0.617345660729896830, 0.786573631528513230, - -0.617496495685640910, - 0.786455213599085770, -0.617647307937803870, 0.786336766753948260, - -0.617798097480841020, - 0.786218290997455660, -0.617948864309208150, 0.786099786333963930, - -0.618099608417362000, - 0.785981252767830150, -0.618250329799760250, 0.785862690303412600, - -0.618401028450860980, - 0.785744098945070360, -0.618551704365123740, 0.785625478697163700, - -0.618702357537008530, - 0.785506829564053930, -0.618852987960976320, 0.785388151550103550, - -0.619003595631488660, - 0.785269444659675850, -0.619154180543008410, 0.785150708897135560, - -0.619304742689998690, - 0.785031944266848080, -0.619455282066924020, 0.784913150773180020, - -0.619605798668249270, - 0.784794328420499230, -0.619756292488440660, 0.784675477213174320, - -0.619906763521964720, - 0.784556597155575240, -0.620057211763289100, 0.784437688252072830, - -0.620207637206882430, - 0.784318750507038920, -0.620358039847213720, 0.784199783924846570, - -0.620508419678753360, - 0.784080788509869950, -0.620658776695972140, 0.783961764266484120, - -0.620809110893341900, - 0.783842711199065230, -0.620959422265335180, 0.783723629311990470, - -0.621109710806425630, - 0.783604518609638200, -0.621259976511087550, 0.783485379096387820, - -0.621410219373796150, - 0.783366210776619720, -0.621560439389027160, 0.783247013654715380, - -0.621710636551257690, - 0.783127787735057310, -0.621860810854965360, 0.783008533022029110, - -0.622010962294628600, - 0.782889249520015480, -0.622161090864726820, 0.782769937233402050, - -0.622311196559740320, - 0.782650596166575730, -0.622461279374149970, 0.782531226323924240, - -0.622611339302437730, - 0.782411827709836530, -0.622761376339086350, 0.782292400328702400, - -0.622911390478579460, - 0.782172944184913010, -0.623061381715401260, 0.782053459282860300, - -0.623211350044037270, - 0.781933945626937630, -0.623361295458973230, 0.781814403221538830, - -0.623511217954696440, - 0.781694832071059390, -0.623661117525694530, 0.781575232179895550, - -0.623810994166456130, - 0.781455603552444590, -0.623960847871470660, 0.781335946193104870, - -0.624110678635228510, - 0.781216260106276090, -0.624260486452220650, 0.781096545296358520, - -0.624410271316939270, - 0.780976801767753750, -0.624560033223877210, 0.780857029524864580, - -0.624709772167528100, - 0.780737228572094490, -0.624859488142386340, 0.780617398913848400, - -0.625009181142947460, - 0.780497540554531910, -0.625158851163707620, 0.780377653498552040, - -0.625308498199164010, - 0.780257737750316590, -0.625458122243814360, 0.780137793314234610, - -0.625607723292157410, - 0.780017820194715990, -0.625757301338692900, 0.779897818396172000, - -0.625906856377921090, - 0.779777787923014550, -0.626056388404343520, 0.779657728779656890, - -0.626205897412462130, - 0.779537640970513260, -0.626355383396779990, 0.779417524499998900, - -0.626504846351800810, - 0.779297379372530300, -0.626654286272029350, 0.779177205592524680, - -0.626803703151971200, - 0.779057003164400630, -0.626953096986132660, 0.778936772092577500, - -0.627102467769020900, - 0.778816512381475980, -0.627251815495144080, 0.778696224035517530, - -0.627401140159011050, - 0.778575907059125050, -0.627550441755131530, 0.778455561456721900, - -0.627699720278016240, - 0.778335187232733210, -0.627848975722176460, 0.778214784391584540, - -0.627998208082124700, - 0.778094352937702790, -0.628147417352374000, 0.777973892875516100, - -0.628296603527438320, - 0.777853404209453150, -0.628445766601832710, 0.777732886943944050, - -0.628594906570072550, - 0.777612341083420030, -0.628744023426674680, 0.777491766632313010, - -0.628893117166156480, - 0.777371163595056310, -0.629042187783036000, 0.777250531976084070, - -0.629191235271832290, - 0.777129871779831620, -0.629340259627065630, 0.777009183010735290, - -0.629489260843256630, - 0.776888465673232440, -0.629638238914926980, 0.776767719771761510, - -0.629787193836599200, - 0.776646945310762060, -0.629936125602796440, 0.776526142294674430, - -0.630085034208043180, - 0.776405310727940390, -0.630233919646864370, 0.776284450615002510, - -0.630382781913785940, - 0.776163561960304340, -0.630531621003334600, 0.776042644768290770, - -0.630680436910037940, - 0.775921699043407690, -0.630829229628424470, 0.775800724790101650, - -0.630977999153023550, - 0.775679722012820650, -0.631126745478365340, 0.775558690716013580, - -0.631275468598980760, - 0.775437630904130540, -0.631424168509401860, 0.775316542581622530, - -0.631572845204161020, - 0.775195425752941420, -0.631721498677792260, 0.775074280422540450, - -0.631870128924829850, - 0.774953106594873930, -0.632018735939809060, 0.774831904274396850, - -0.632167319717265920, - 0.774710673465565550, -0.632315880251737570, 0.774589414172837550, - -0.632464417537761840, - 0.774468126400670860, -0.632612931569877410, 0.774346810153525130, - -0.632761422342624000, - 0.774225465435860680, -0.632909889850541750, 0.774104092252139050, - -0.633058334088172140, - 0.773982690606822900, -0.633206755050057190, 0.773861260504375540, - -0.633355152730739950, - 0.773739801949261840, -0.633503527124764320, 0.773618314945947460, - -0.633651878226674900, - 0.773496799498899050, -0.633800206031017280, 0.773375255612584470, - -0.633948510532337810, - 0.773253683291472590, -0.634096791725183740, 0.773132082540033070, - -0.634245049604103330, - 0.773010453362736990, -0.634393284163645490, 0.772888795764056220, - -0.634541495398360020, - 0.772767109748463850, -0.634689683302797740, 0.772645395320433860, - -0.634837847871509990, - 0.772523652484441330, -0.634985989099049460, 0.772401881244962450, - -0.635134106979969190, - 0.772280081606474320, -0.635282201508823420, 0.772158253573455240, - -0.635430272680167160, - 0.772036397150384520, -0.635578320488556110, 0.771914512341742350, - -0.635726344928547070, - 0.771792599152010150, -0.635874345994697720, 0.771670657585670330, - -0.636022323681566300, - 0.771548687647206300, -0.636170277983712170, 0.771426689341102590, - -0.636318208895695460, - 0.771304662671844830, -0.636466116412077180, 0.771182607643919330, - -0.636614000527419120, - 0.771060524261813820, -0.636761861236284200, 0.770938412530016940, - -0.636909698533235870, - 0.770816272453018540, -0.637057512412838590, 0.770694104035309140, - -0.637205302869657600, - 0.770571907281380810, -0.637353069898259130, 0.770449682195725960, - -0.637500813493210190, - 0.770327428782838890, -0.637648533649078810, 0.770205147047214210, - -0.637796230360433540, - 0.770082836993347900, -0.637943903621844060, 0.769960498625737230, - -0.638091553427880820, - 0.769838131948879840, -0.638239179773115280, 0.769715736967275130, - -0.638386782652119570, - 0.769593313685422940, -0.638534362059466790, 0.769470862107824670, - -0.638681917989730730, - 0.769348382238982280, -0.638829450437486290, 0.769225874083399260, - -0.638976959397309140, - 0.769103337645579700, -0.639124444863775730, 0.768980772930028870, - -0.639271906831463510, - 0.768858179941253270, -0.639419345294950700, 0.768735558683760310, - -0.639566760248816310, - 0.768612909162058380, -0.639714151687640450, 0.768490231380656860, - -0.639861519606003900, - 0.768367525344066270, -0.640008863998488440, 0.768244791056798330, - -0.640156184859676510, - 0.768122028523365420, -0.640303482184151670, 0.767999237748281270, - -0.640450755966498140, - 0.767876418736060610, -0.640598006201301030, 0.767753571491219030, - -0.640745232883146440, - 0.767630696018273380, -0.640892436006621380, 0.767507792321741270, - -0.641039615566313390, - 0.767384860406141730, -0.641186771556811250, 0.767261900275994500, - -0.641333903972704290, - 0.767138911935820400, -0.641481012808583160, 0.767015895390141480, - -0.641628098059038750, - 0.766892850643480670, -0.641775159718663500, 0.766769777700361920, - -0.641922197782050170, - 0.766646676565310380, -0.642069212243792540, 0.766523547242852210, - -0.642216203098485370, - 0.766400389737514230, -0.642363170340724320, 0.766277204053824710, - -0.642510113965105710, - 0.766153990196312920, -0.642657033966226860, 0.766030748169509000, - -0.642803930338685990, - 0.765907477977944340, -0.642950803077082080, 0.765784179626150970, - -0.643097652176015110, - 0.765660853118662500, -0.643244477630085850, 0.765537498460013070, - -0.643391279433895850, - 0.765414115654738270, -0.643538057582047740, 0.765290704707374370, - -0.643684812069144850, - 0.765167265622458960, -0.643831542889791390, 0.765043798404530520, - -0.643978250038592660, - 0.764920303058128410, -0.644124933510154540, 0.764796779587793460, - -0.644271593299083790, - 0.764673227998067140, -0.644418229399988380, 0.764549648293492150, - -0.644564841807476640, - 0.764426040478612070, -0.644711430516158310, 0.764302404557971720, - -0.644857995520643710, - 0.764178740536116670, -0.645004536815543930, 0.764055048417593970, - -0.645151054395471160, - 0.763931328206951090, -0.645297548255038380, 0.763807579908737160, - -0.645444018388859230, - 0.763683803527501870, -0.645590464791548690, 0.763559999067796150, - -0.645736887457722290, - 0.763436166534172010, -0.645883286381996320, 0.763312305931182380, - -0.646029661558988330, - 0.763188417263381270, -0.646176012983316280, 0.763064500535323710, - -0.646322340649599480, - 0.762940555751565720, -0.646468644552457780, 0.762816582916664430, - -0.646614924686512050, - 0.762692582035177980, -0.646761181046383920, 0.762568553111665380, - -0.646907413626696020, - 0.762444496150687210, -0.647053622422071540, 0.762320411156804270, - -0.647199807427135230, - 0.762196298134578900, -0.647345968636512060, 0.762072157088574560, - -0.647492106044828100, - 0.761947988023355390, -0.647638219646710310, 0.761823790943486960, - -0.647784309436786440, - 0.761699565853535380, -0.647930375409685340, 0.761575312758068000, - -0.648076417560036530, - 0.761451031661653620, -0.648222435882470420, 0.761326722568861360, - -0.648368430371618290, - 0.761202385484261780, -0.648514401022112440, 0.761078020412426560, - -0.648660347828585840, - 0.760953627357928150, -0.648806270785672550, 0.760829206325340010, - -0.648952169888007300, - 0.760704757319236920, -0.649098045130225950, 0.760580280344194450, - -0.649243896506964900, - 0.760455775404789260, -0.649389724012861660, 0.760331242505599030, - -0.649535527642554730, - 0.760206681651202420, -0.649681307390683190, 0.760082092846179340, - -0.649827063251887100, - 0.759957476095110330, -0.649972795220807530, 0.759832831402577400, - -0.650118503292086200, - 0.759708158773163440, -0.650264187460365850, 0.759583458211452010, - -0.650409847720290310, - 0.759458729722028210, -0.650555484066503880, 0.759333973309477940, - -0.650701096493652040, - 0.759209188978388070, -0.650846684996380880, 0.759084376733346610, - -0.650992249569337660, - 0.758959536578942440, -0.651137790207170330, 0.758834668519765660, - -0.651283306904527740, - 0.758709772560407390, -0.651428799656059820, 0.758584848705459610, - -0.651574268456416970, - 0.758459896959515430, -0.651719713300250910, 0.758334917327168960, - -0.651865134182213920, - 0.758209909813015280, -0.652010531096959500, 0.758084874421650730, - -0.652155904039141590, - 0.757959811157672300, -0.652301253003415460, 0.757834720025678310, - -0.652446577984436730, - 0.757709601030268080, -0.652591878976862440, 0.757584454176041810, - -0.652737155975350310, - 0.757459279467600720, -0.652882408974558850, 0.757334076909547130, - -0.653027637969147530, - 0.757208846506484570, -0.653172842953776760, 0.757083588263017140, - -0.653318023923107670, - 0.756958302183750490, -0.653463180871802330, 0.756832988273290820, - -0.653608313794523890, - 0.756707646536245670, -0.653753422685936060, 0.756582276977223470, - -0.653898507540703780, - 0.756456879600833740, -0.654043568353492640, 0.756331454411686920, - -0.654188605118969040, - 0.756206001414394540, -0.654333617831800440, 0.756080520613569120, - -0.654478606486655350, - 0.755955012013824420, -0.654623571078202680, 0.755829475619774760, - -0.654768511601112600, - 0.755703911436035880, -0.654913428050056030, 0.755578319467224540, - -0.655058320419704910, - 0.755452699717958250, -0.655203188704731820, 0.755327052192855670, - -0.655348032899810470, - 0.755201376896536550, -0.655492852999615350, 0.755075673833621620, - -0.655637648998821820, - 0.754949943008732640, -0.655782420892106030, 0.754824184426492350, - -0.655927168674145360, - 0.754698398091524500, -0.656071892339617600, 0.754572584008453840, - -0.656216591883201920, - 0.754446742181906440, -0.656361267299578000, 0.754320872616508820, - -0.656505918583426550, - 0.754194975316889170, -0.656650545729428940, 0.754069050287676120, - -0.656795148732268070, - 0.753943097533499640, -0.656939727586627110, 0.753817117058990790, - -0.657084282287190180, - 0.753691108868781210, -0.657228812828642540, 0.753565072967504300, - -0.657373319205670210, - 0.753439009359793580, -0.657517801412960120, 0.753312918050284330, - -0.657662259445200070, - 0.753186799043612520, -0.657806693297078640, 0.753060652344415100, - -0.657951102963285520, - 0.752934477957330150, -0.658095488438511180, 0.752808275886996950, - -0.658239849717446870, - 0.752682046138055340, -0.658384186794785050, 0.752555788715146390, - -0.658528499665218650, - 0.752429503622912390, -0.658672788323441890, 0.752303190865996400, - -0.658817052764149480, - 0.752176850449042810, -0.658961292982037320, 0.752050482376696360, - -0.659105508971802090, - 0.751924086653603550, -0.659249700728141490, 0.751797663284411550, - -0.659393868245753860, - 0.751671212273768430, -0.659538011519338660, 0.751544733626323680, - -0.659682130543596150, - 0.751418227346727470, -0.659826225313227320, 0.751291693439630870, - -0.659970295822934540, - 0.751165131909686480, -0.660114342067420480, 0.751038542761547360, - -0.660258364041389050, - 0.750911925999867890, -0.660402361739545030, 0.750785281629303690, - -0.660546335156593890, - 0.750658609654510700, -0.660690284287242300, 0.750531910080146410, - -0.660834209126197610, - 0.750405182910869330, -0.660978109668168060, 0.750278428151338720, - -0.661121985907862860, - 0.750151645806215070, -0.661265837839992270, 0.750024835880159780, - -0.661409665459266940, - 0.749897998377835330, -0.661553468760398890, 0.749771133303905100, - -0.661697247738101010, - 0.749644240663033480, -0.661841002387086870, 0.749517320459886170, - -0.661984732702070920, - 0.749390372699129560, -0.662128438677768720, 0.749263397385431130, - -0.662272120308896590, - 0.749136394523459370, -0.662415777590171780, 0.749009364117883880, - -0.662559410516312290, - 0.748882306173375150, -0.662703019082037440, 0.748755220694604760, - -0.662846603282066900, - 0.748628107686245440, -0.662990163111121470, 0.748500967152970430, - -0.663133698563923010, - 0.748373799099454560, -0.663277209635194100, 0.748246603530373420, - -0.663420696319658280, - 0.748119380450403600, -0.663564158612039770, 0.747992129864222700, - -0.663707596507064010, - 0.747864851776509410, -0.663851009999457340, 0.747737546191943330, - -0.663994399083946640, - 0.747610213115205150, -0.664137763755260010, 0.747482852550976570, - -0.664281104008126230, - 0.747355464503940190, -0.664424419837275180, 0.747228048978779920, - -0.664567711237437520, - 0.747100605980180130, -0.664710978203344790, 0.746973135512826850, - -0.664854220729729660, - 0.746845637581406540, -0.664997438811325340, 0.746718112190607130, - -0.665140632442866140, - 0.746590559345117310, -0.665283801619087180, 0.746462979049626770, - -0.665426946334724660, - 0.746335371308826320, -0.665570066584515450, 0.746207736127407760, - -0.665713162363197550, - 0.746080073510063780, -0.665856233665509720, 0.745952383461488290, - -0.665999280486191500, - 0.745824665986376090, -0.666142302819983540, 0.745696921089422760, - -0.666285300661627280, - 0.745569148775325430, -0.666428274005865240, 0.745441349048781680, - -0.666571222847440640, - 0.745313521914490520, -0.666714147181097670, 0.745185667377151640, - -0.666857047001581220, - 0.745057785441466060, -0.666999922303637470, 0.744929876112135350, - -0.667142773082013310, - 0.744801939393862630, -0.667285599331456370, 0.744673975291351710, - -0.667428401046715520, - 0.744545983809307370, -0.667571178222540310, 0.744417964952435620, - -0.667713930853681030, - 0.744289918725443260, -0.667856658934889320, 0.744161845133038180, - -0.667999362460917400, - 0.744033744179929290, -0.668142041426518450, 0.743905615870826490, - -0.668284695826446670, - 0.743777460210440890, -0.668427325655456820, 0.743649277203484060, - -0.668569930908304970, - 0.743521066854669120, -0.668712511579747980, 0.743392829168709970, - -0.668855067664543610, - 0.743264564150321600, -0.668997599157450270, 0.743136271804219820, - -0.669140106053227600, - 0.743007952135121720, -0.669282588346636010, 0.742879605147745200, - -0.669425046032436910, - 0.742751230846809050, -0.669567479105392490, 0.742622829237033490, - -0.669709887560265840, - 0.742494400323139180, -0.669852271391821020, 0.742365944109848460, - -0.669994630594823000, - 0.742237460601884000, -0.670136965164037650, 0.742108949803969910, - -0.670279275094231800, - 0.741980411720831070, -0.670421560380173090, 0.741851846357193480, - -0.670563821016630040, - 0.741723253717784140, -0.670706056998372160, 0.741594633807331150, - -0.670848268320169640, - 0.741465986630563290, -0.670990454976794220, 0.741337312192210660, - -0.671132616963017740, - 0.741208610497004260, -0.671274754273613490, 0.741079881549676080, - -0.671416866903355450, - 0.740951125354959110, -0.671558954847018330, 0.740822341917587330, - -0.671701018099378320, - 0.740693531242295760, -0.671843056655211930, 0.740564693333820250, - -0.671985070509296900, - 0.740435828196898020, -0.672127059656411730, 0.740306935836266940, - -0.672269024091335930, - 0.740178016256666240, -0.672410963808849790, 0.740049069462835550, - -0.672552878803734710, - 0.739920095459516200, -0.672694769070772860, 0.739791094251449950, - -0.672836634604747300, - 0.739662065843380010, -0.672978475400442090, 0.739533010240050250, - -0.673120291452642070, - 0.739403927446205760, -0.673262082756132970, 0.739274817466592520, - -0.673403849305701740, - 0.739145680305957510, -0.673545591096136100, 0.739016515969048720, - -0.673687308122224330, - 0.738887324460615110, -0.673829000378756040, 0.738758105785406900, - -0.673970667860521620, - 0.738628859948174840, -0.674112310562312360, 0.738499586953671130, - -0.674253928478920410, - 0.738370286806648620, -0.674395521605139050, 0.738240959511861310, - -0.674537089935762000, - 0.738111605074064260, -0.674678633465584540, 0.737982223498013570, - -0.674820152189402170, - 0.737852814788465980, -0.674961646102011930, 0.737723378950179700, - -0.675103115198211420, - 0.737593915987913570, -0.675244559472799270, 0.737464425906427580, - -0.675385978920574840, - 0.737334908710482910, -0.675527373536338520, 0.737205364404841190, - -0.675668743314891910, - 0.737075792994265730, -0.675810088251036940, 0.736946194483520280, - -0.675951408339577010, - 0.736816568877369900, -0.676092703575315920, 0.736686916180580460, - -0.676233973953058950, - 0.736557236397919150, -0.676375219467611590, 0.736427529534153690, - -0.676516440113781090, - 0.736297795594053170, -0.676657635886374950, 0.736168034582387330, - -0.676798806780201770, - 0.736038246503927350, -0.676939952790071130, 0.735908431363445190, - -0.677081073910793530, - 0.735778589165713590, -0.677222170137180330, 0.735648719915506510, - -0.677363241464043920, - 0.735518823617598900, -0.677504287886197430, 0.735388900276766730, - -0.677645309398454910, - 0.735258949897786840, -0.677786305995631500, 0.735128972485437180, - -0.677927277672543020, - 0.734998968044496710, -0.678068224424006600, 0.734868936579745170, - -0.678209146244839860, - 0.734738878095963500, -0.678350043129861470, 0.734608792597933550, - -0.678490915073891140, - 0.734478680090438370, -0.678631762071749360, 0.734348540578261600, - -0.678772584118257690, - 0.734218374066188280, -0.678913381208238410, 0.734088180559004040, - -0.679054153336514870, - 0.733957960061495940, -0.679194900497911200, 0.733827712578451700, - -0.679335622687252560, - 0.733697438114660370, -0.679476319899364970, 0.733567136674911360, - -0.679616992129075560, - 0.733436808263995710, -0.679757639371212030, 0.733306452886705260, - -0.679898261620603290, - 0.733176070547832740, -0.680038858872078930, 0.733045661252172080, - -0.680179431120469750, - 0.732915225004517780, -0.680319978360607200, 0.732784761809665790, - -0.680460500587323880, - 0.732654271672412820, -0.680600997795453020, 0.732523754597556700, - -0.680741469979829090, - 0.732393210589896040, -0.680881917135287230, 0.732262639654230770, - -0.681022339256663670, - 0.732132041795361290, -0.681162736338795430, 0.732001417018089630, - -0.681303108376520530, - 0.731870765327218290, -0.681443455364677870, 0.731740086727550980, - -0.681583777298107480, - 0.731609381223892630, -0.681724074171649710, 0.731478648821048520, - -0.681864345980146670, - 0.731347889523825570, -0.682004592718440830, 0.731217103337031270, - -0.682144814381375640, - 0.731086290265474340, -0.682285010963795570, 0.730955450313964360, - -0.682425182460546060, - 0.730824583487312160, -0.682565328866473250, 0.730693689790329000, - -0.682705450176424590, - 0.730562769227827590, -0.682845546385248080, 0.730431821804621520, - -0.682985617487792740, - 0.730300847525525490, -0.683125663478908680, 0.730169846395354870, - -0.683265684353446700, - 0.730038818418926260, -0.683405680106258680, 0.729907763601057140, - -0.683545650732197530, - 0.729776681946566090, -0.683685596226116580, 0.729645573460272480, - -0.683825516582870720, - 0.729514438146997010, -0.683965411797315400, 0.729383276011561050, - -0.684105281864307080, - 0.729252087058786970, -0.684245126778703080, 0.729120871293498230, - -0.684384946535361750, - 0.728989628720519420, -0.684524741129142300, 0.728858359344675800, - -0.684664510554904960, - 0.728727063170793830, -0.684804254807510620, 0.728595740203700770, - -0.684943973881821490, - 0.728464390448225200, -0.685083667772700360, 0.728333013909196360, - -0.685223336475011210, - 0.728201610591444610, -0.685362979983618730, 0.728070180499801210, - -0.685502598293388550, - 0.727938723639098620, -0.685642191399187470, 0.727807240014169960, - -0.685781759295883030, - 0.727675729629849610, -0.685921301978343560, 0.727544192490972800, - -0.686060819441438710, - 0.727412628602375770, -0.686200311680038590, 0.727281037968895870, - -0.686339778689014520, - 0.727149420595371020, -0.686479220463238950, 0.727017776486640680, - -0.686618636997584630, - 0.726886105647544970, -0.686758028286925890, 0.726754408082925020, - -0.686897394326137610, - 0.726622683797622850, -0.687036735110095660, 0.726490932796481910, - -0.687176050633676820, - 0.726359155084346010, -0.687315340891759050, 0.726227350666060370, - -0.687454605879221030, - 0.726095519546471000, -0.687593845590942170, 0.725963661730424930, - -0.687733060021803230, - 0.725831777222770370, -0.687872249166685550, 0.725699866028356120, - -0.688011413020471640, - 0.725567928152032300, -0.688150551578044830, 0.725435963598649810, - -0.688289664834289330, - 0.725303972373060770, -0.688428752784090440, 0.725171954480117950, - -0.688567815422334250, - 0.725039909924675370, -0.688706852743907750, 0.724907838711587820, - -0.688845864743699020, - 0.724775740845711280, -0.688984851416597040, 0.724643616331902550, - -0.689123812757491570, - 0.724511465175019630, -0.689262748761273470, 0.724379287379921190, - -0.689401659422834270, - 0.724247082951467000, -0.689540544737066830, 0.724114851894517850, - -0.689679404698864800, - 0.723982594213935520, -0.689818239303122470, 0.723850309914582880, - -0.689957048544735390, - 0.723717999001323500, -0.690095832418599950, 0.723585661479022150, - -0.690234590919613370, - 0.723453297352544380, -0.690373324042674040, 0.723320906626756970, - -0.690512031782681060, - 0.723188489306527460, -0.690650714134534600, 0.723056045396724410, - -0.690789371093135650, - 0.722923574902217700, -0.690928002653386160, 0.722791077827877550, - -0.691066608810189220, - 0.722658554178575610, -0.691205189558448450, 0.722526003959184540, - -0.691343744893068710, - 0.722393427174577550, -0.691482274808955850, 0.722260823829629310, - -0.691620779301016290, - 0.722128193929215350, -0.691759258364157750, 0.721995537478211880, - -0.691897711993288760, - 0.721862854481496340, -0.692036140183318720, 0.721730144943947160, - -0.692174542929158140, - 0.721597408870443770, -0.692312920225718220, 0.721464646265866370, - -0.692451272067911130, - 0.721331857135096290, -0.692589598450650380, 0.721199041483015720, - -0.692727899368849820, - 0.721066199314508110, -0.692866174817424630, 0.720933330634457530, - -0.693004424791290870, - 0.720800435447749190, -0.693142649285365400, 0.720667513759269520, - -0.693280848294566040, - 0.720534565573905270, -0.693419021813811760, 0.720401590896544760, - -0.693557169838022290, - 0.720268589732077190, -0.693695292362118240, 0.720135562085392420, - -0.693833389381021350, - 0.720002507961381650, -0.693971460889654000, 0.719869427364936860, - -0.694109506882939820, - 0.719736320300951030, -0.694247527355803310, 0.719603186774318120, - -0.694385522303169740, - 0.719470026789932990, -0.694523491719965520, 0.719336840352691740, - -0.694661435601117820, - 0.719203627467491220, -0.694799353941554900, 0.719070388139229190, - -0.694937246736205830, - 0.718937122372804490, -0.695075113980000880, 0.718803830173116890, - -0.695212955667870780, - 0.718670511545067230, -0.695350771794747690, 0.718537166493557370, - -0.695488562355564440, - 0.718403795023489830, -0.695626327345254870, 0.718270397139768260, - -0.695764066758753690, - 0.718136972847297490, -0.695901780590996830, 0.718003522150983180, - -0.696039468836920690, - 0.717870045055731710, -0.696177131491462990, 0.717736541566450950, - -0.696314768549562090, - 0.717603011688049080, -0.696452380006157830, 0.717469455425435830, - -0.696589965856190370, - 0.717335872783521730, -0.696727526094601200, 0.717202263767218070, - -0.696865060716332470, - 0.717068628381437480, -0.697002569716327460, 0.716934966631093130, - -0.697140053089530420, - 0.716801278521099540, -0.697277510830886520, 0.716667564056371890, - -0.697414942935341790, - 0.716533823241826680, -0.697552349397843160, 0.716400056082381000, - -0.697689730213338800, - 0.716266262582953120, -0.697827085376777290, 0.716132442748462330, - -0.697964414883108670, - 0.715998596583828690, -0.698101718727283770, 0.715864724093973500, - -0.698238996904254280, - 0.715730825283818590, -0.698376249408972920, 0.715596900158287470, - -0.698513476236393040, - 0.715462948722303760, -0.698650677381469460, 0.715328970980792620, - -0.698787852839157670, - 0.715194966938680120, -0.698925002604414150, 0.715060936600893090, - -0.699062126672196140, - 0.714926879972359490, -0.699199225037462120, 0.714792797058008240, - -0.699336297695171140, - 0.714658687862769090, -0.699473344640283770, 0.714524552391572860, - -0.699610365867761040, - 0.714390390649351390, -0.699747361372564990, 0.714256202641037510, - -0.699884331149658760, - 0.714121988371564820, -0.700021275194006250, 0.713987747845867830, - -0.700158193500572730, - 0.713853481068882470, -0.700295086064323780, 0.713719188045545240, - -0.700431952880226420, - 0.713584868780793640, -0.700568793943248340, 0.713450523279566260, - -0.700705609248358450, - 0.713316151546802610, -0.700842398790526120, 0.713181753587443180, - -0.700979162564722370, - 0.713047329406429340, -0.701115900565918660, 0.712912879008703480, - -0.701252612789087460, - 0.712778402399208980, -0.701389299229202230, 0.712643899582890210, - -0.701525959881237340, - 0.712509370564692320, -0.701662594740168450, 0.712374815349561710, - -0.701799203800971720, - 0.712240233942445510, -0.701935787058624360, 0.712105626348291890, - -0.702072344508104630, - 0.711970992572050100, -0.702208876144391870, 0.711836332618670080, - -0.702345381962465880, - 0.711701646493102970, -0.702481861957308000, 0.711566934200300700, - -0.702618316123900130, - 0.711432195745216430, -0.702754744457225300, 0.711297431132803970, - -0.702891146952267400, - 0.711162640368018350, -0.703027523604011220, 0.711027823455815280, - -0.703163874407442770, - 0.710892980401151680, -0.703300199357548730, 0.710758111208985350, - -0.703436498449316660, - 0.710623215884275020, -0.703572771677735580, 0.710488294431980470, - -0.703709019037794810, - 0.710353346857062420, -0.703845240524484940, 0.710218373164482220, - -0.703981436132797620, - 0.710083373359202800, -0.704117605857725310, 0.709948347446187400, - -0.704253749694261470, - 0.709813295430400840, -0.704389867637400410, 0.709678217316808580, - -0.704525959682137380, - 0.709543113110376770, -0.704662025823468820, 0.709407982816072980, - -0.704798066056391950, - 0.709272826438865690, -0.704934080375904880, 0.709137643983724030, - -0.705070068777006840, - 0.709002435455618250, -0.705206031254697830, 0.708867200859519820, - -0.705341967803978840, - 0.708731940200400650, -0.705477878419852100, 0.708596653483234080, - -0.705613763097320490, - 0.708461340712994160, -0.705749621831387790, 0.708326001894655890, - -0.705885454617058980, - 0.708190637033195400, -0.706021261449339740, 0.708055246133589500, - -0.706157042323237060, - 0.707919829200816310, -0.706292797233758480, 0.707784386239854620, - -0.706428526175912790, - 0.707648917255684350, -0.706564229144709510, 0.707513422253286280, - -0.706699906135159430, - 0.707377901237642100, -0.706835557142273750, 0.707242354213734710, - -0.706971182161065360, - 0.707106781186547570, -0.707106781186547460, 0.706971182161065360, - -0.707242354213734600, - 0.706835557142273860, -0.707377901237642100, 0.706699906135159430, - -0.707513422253286170, - 0.706564229144709620, -0.707648917255684350, 0.706428526175912790, - -0.707784386239854620, - 0.706292797233758480, -0.707919829200816310, 0.706157042323237060, - -0.708055246133589500, - 0.706021261449339740, -0.708190637033195290, 0.705885454617058980, - -0.708326001894655780, - 0.705749621831387790, -0.708461340712994050, 0.705613763097320490, - -0.708596653483234080, - 0.705477878419852210, -0.708731940200400650, 0.705341967803978950, - -0.708867200859519820, - 0.705206031254697830, -0.709002435455618250, 0.705070068777006840, - -0.709137643983723920, - 0.704934080375904990, -0.709272826438865580, 0.704798066056391950, - -0.709407982816072980, - 0.704662025823468930, -0.709543113110376770, 0.704525959682137380, - -0.709678217316808470, - 0.704389867637400410, -0.709813295430400840, 0.704253749694261580, - -0.709948347446187400, - 0.704117605857725430, -0.710083373359202690, 0.703981436132797730, - -0.710218373164482220, - 0.703845240524484940, -0.710353346857062310, 0.703709019037794810, - -0.710488294431980470, - 0.703572771677735580, -0.710623215884275020, 0.703436498449316770, - -0.710758111208985350, - 0.703300199357548730, -0.710892980401151680, 0.703163874407442770, - -0.711027823455815280, - 0.703027523604011220, -0.711162640368018350, 0.702891146952267400, - -0.711297431132803970, - 0.702754744457225300, -0.711432195745216430, 0.702618316123900130, - -0.711566934200300700, - 0.702481861957308000, -0.711701646493102970, 0.702345381962465880, - -0.711836332618670080, - 0.702208876144391870, -0.711970992572049990, 0.702072344508104740, - -0.712105626348291890, - 0.701935787058624360, -0.712240233942445510, 0.701799203800971720, - -0.712374815349561710, - 0.701662594740168570, -0.712509370564692320, 0.701525959881237450, - -0.712643899582890210, - 0.701389299229202230, -0.712778402399208870, 0.701252612789087460, - -0.712912879008703370, - 0.701115900565918660, -0.713047329406429230, 0.700979162564722480, - -0.713181753587443070, - 0.700842398790526230, -0.713316151546802610, 0.700705609248358450, - -0.713450523279566150, - 0.700568793943248450, -0.713584868780793520, 0.700431952880226420, - -0.713719188045545130, - 0.700295086064323780, -0.713853481068882470, 0.700158193500572730, - -0.713987747845867830, - 0.700021275194006360, -0.714121988371564710, 0.699884331149658760, - -0.714256202641037400, - 0.699747361372564990, -0.714390390649351390, 0.699610365867761040, - -0.714524552391572860, - 0.699473344640283770, -0.714658687862768980, 0.699336297695171250, - -0.714792797058008130, - 0.699199225037462120, -0.714926879972359370, 0.699062126672196140, - -0.715060936600892980, - 0.698925002604414150, -0.715194966938680010, 0.698787852839157790, - -0.715328970980792620, - 0.698650677381469580, -0.715462948722303650, 0.698513476236393040, - -0.715596900158287360, - 0.698376249408972920, -0.715730825283818590, 0.698238996904254390, - -0.715864724093973390, - 0.698101718727283880, -0.715998596583828690, 0.697964414883108790, - -0.716132442748462330, - 0.697827085376777290, -0.716266262582953120, 0.697689730213338800, - -0.716400056082380890, - 0.697552349397843270, -0.716533823241826570, 0.697414942935341790, - -0.716667564056371890, - 0.697277510830886630, -0.716801278521099540, 0.697140053089530530, - -0.716934966631093130, - 0.697002569716327460, -0.717068628381437480, 0.696865060716332470, - -0.717202263767218070, - 0.696727526094601200, -0.717335872783521730, 0.696589965856190370, - -0.717469455425435830, - 0.696452380006157830, -0.717603011688049080, 0.696314768549562200, - -0.717736541566450840, - 0.696177131491462990, -0.717870045055731710, 0.696039468836920690, - -0.718003522150983060, - 0.695901780590996830, -0.718136972847297490, 0.695764066758753800, - -0.718270397139768260, - 0.695626327345254870, -0.718403795023489720, 0.695488562355564440, - -0.718537166493557370, - 0.695350771794747800, -0.718670511545067230, 0.695212955667870890, - -0.718803830173116890, - 0.695075113980000880, -0.718937122372804380, 0.694937246736205940, - -0.719070388139229190, - 0.694799353941554900, -0.719203627467491220, 0.694661435601117930, - -0.719336840352691740, - 0.694523491719965520, -0.719470026789932990, 0.694385522303169860, - -0.719603186774318000, - 0.694247527355803310, -0.719736320300951030, 0.694109506882939820, - -0.719869427364936860, - 0.693971460889654000, -0.720002507961381650, 0.693833389381021350, - -0.720135562085392310, - 0.693695292362118350, -0.720268589732077080, 0.693557169838022400, - -0.720401590896544760, - 0.693419021813811880, -0.720534565573905270, 0.693280848294566150, - -0.720667513759269410, - 0.693142649285365510, -0.720800435447749190, 0.693004424791290870, - -0.720933330634457530, - 0.692866174817424740, -0.721066199314508110, 0.692727899368849820, - -0.721199041483015720, - 0.692589598450650380, -0.721331857135096180, 0.692451272067911240, - -0.721464646265866370, - 0.692312920225718220, -0.721597408870443660, 0.692174542929158140, - -0.721730144943947160, - 0.692036140183318830, -0.721862854481496340, 0.691897711993288760, - -0.721995537478211880, - 0.691759258364157750, -0.722128193929215350, 0.691620779301016400, - -0.722260823829629310, - 0.691482274808955850, -0.722393427174577550, 0.691343744893068820, - -0.722526003959184430, - 0.691205189558448450, -0.722658554178575610, 0.691066608810189220, - -0.722791077827877550, - 0.690928002653386280, -0.722923574902217700, 0.690789371093135760, - -0.723056045396724410, - 0.690650714134534720, -0.723188489306527350, 0.690512031782681170, - -0.723320906626756850, - 0.690373324042674040, -0.723453297352544380, 0.690234590919613370, - -0.723585661479022040, - 0.690095832418599950, -0.723717999001323390, 0.689957048544735390, - -0.723850309914582880, - 0.689818239303122470, -0.723982594213935520, 0.689679404698864800, - -0.724114851894517850, - 0.689540544737066940, -0.724247082951466890, 0.689401659422834380, - -0.724379287379921080, - 0.689262748761273470, -0.724511465175019520, 0.689123812757491680, - -0.724643616331902550, - 0.688984851416597150, -0.724775740845711280, 0.688845864743699130, - -0.724907838711587820, - 0.688706852743907750, -0.725039909924675370, 0.688567815422334360, - -0.725171954480117840, - 0.688428752784090550, -0.725303972373060660, 0.688289664834289440, - -0.725435963598649810, - 0.688150551578044830, -0.725567928152032300, 0.688011413020471640, - -0.725699866028356120, - 0.687872249166685550, -0.725831777222770370, 0.687733060021803230, - -0.725963661730424930, - 0.687593845590942170, -0.726095519546470890, 0.687454605879221030, - -0.726227350666060260, - 0.687315340891759160, -0.726359155084346010, 0.687176050633676930, - -0.726490932796481910, - 0.687036735110095660, -0.726622683797622850, 0.686897394326137610, - -0.726754408082924910, - 0.686758028286925890, -0.726886105647544970, 0.686618636997584740, - -0.727017776486640680, - 0.686479220463238950, -0.727149420595371020, 0.686339778689014630, - -0.727281037968895760, - 0.686200311680038700, -0.727412628602375770, 0.686060819441438710, - -0.727544192490972800, - 0.685921301978343670, -0.727675729629849610, 0.685781759295883030, - -0.727807240014169960, - 0.685642191399187470, -0.727938723639098620, 0.685502598293388670, - -0.728070180499801210, - 0.685362979983618730, -0.728201610591444500, 0.685223336475011210, - -0.728333013909196360, - 0.685083667772700360, -0.728464390448225200, 0.684943973881821490, - -0.728595740203700770, - 0.684804254807510620, -0.728727063170793720, 0.684664510554904960, - -0.728858359344675690, - 0.684524741129142300, -0.728989628720519310, 0.684384946535361750, - -0.729120871293498230, - 0.684245126778703080, -0.729252087058786970, 0.684105281864307080, - -0.729383276011561050, - 0.683965411797315510, -0.729514438146996900, 0.683825516582870830, - -0.729645573460272480, - 0.683685596226116690, -0.729776681946565970, 0.683545650732197530, - -0.729907763601057140, - 0.683405680106258790, -0.730038818418926150, 0.683265684353446700, - -0.730169846395354870, - 0.683125663478908800, -0.730300847525525380, 0.682985617487792850, - -0.730431821804621520, - 0.682845546385248080, -0.730562769227827590, 0.682705450176424590, - -0.730693689790328890, - 0.682565328866473250, -0.730824583487312050, 0.682425182460546060, - -0.730955450313964360, - 0.682285010963795570, -0.731086290265474230, 0.682144814381375640, - -0.731217103337031160, - 0.682004592718440830, -0.731347889523825460, 0.681864345980146780, - -0.731478648821048520, - 0.681724074171649820, -0.731609381223892520, 0.681583777298107480, - -0.731740086727550980, - 0.681443455364677990, -0.731870765327218290, 0.681303108376520530, - -0.732001417018089520, - 0.681162736338795430, -0.732132041795361290, 0.681022339256663670, - -0.732262639654230660, - 0.680881917135287340, -0.732393210589896040, 0.680741469979829090, - -0.732523754597556590, - 0.680600997795453130, -0.732654271672412820, 0.680460500587323880, - -0.732784761809665790, - 0.680319978360607200, -0.732915225004517780, 0.680179431120469750, - -0.733045661252171970, - 0.680038858872079040, -0.733176070547832740, 0.679898261620603290, - -0.733306452886705260, - 0.679757639371212030, -0.733436808263995710, 0.679616992129075560, - -0.733567136674911360, - 0.679476319899365080, -0.733697438114660260, 0.679335622687252670, - -0.733827712578451700, - 0.679194900497911200, -0.733957960061495940, 0.679054153336514870, - -0.734088180559004040, - 0.678913381208238410, -0.734218374066188170, 0.678772584118257690, - -0.734348540578261600, - 0.678631762071749470, -0.734478680090438370, 0.678490915073891250, - -0.734608792597933550, - 0.678350043129861580, -0.734738878095963390, 0.678209146244839860, - -0.734868936579745060, - 0.678068224424006600, -0.734998968044496600, 0.677927277672543130, - -0.735128972485437180, - 0.677786305995631500, -0.735258949897786730, 0.677645309398454910, - -0.735388900276766620, - 0.677504287886197430, -0.735518823617598900, 0.677363241464044030, - -0.735648719915506400, - 0.677222170137180450, -0.735778589165713480, 0.677081073910793530, - -0.735908431363445190, - 0.676939952790071240, -0.736038246503927350, 0.676798806780201770, - -0.736168034582387330, - 0.676657635886374950, -0.736297795594053060, 0.676516440113781090, - -0.736427529534153690, - 0.676375219467611700, -0.736557236397919150, 0.676233973953058950, - -0.736686916180580460, - 0.676092703575316030, -0.736816568877369790, 0.675951408339577010, - -0.736946194483520170, - 0.675810088251037060, -0.737075792994265620, 0.675668743314891910, - -0.737205364404841190, - 0.675527373536338630, -0.737334908710482790, 0.675385978920574950, - -0.737464425906427580, - 0.675244559472799270, -0.737593915987913460, 0.675103115198211530, - -0.737723378950179590, - 0.674961646102012040, -0.737852814788465980, 0.674820152189402280, - -0.737982223498013570, - 0.674678633465584540, -0.738111605074064260, 0.674537089935762110, - -0.738240959511861310, - 0.674395521605139050, -0.738370286806648510, 0.674253928478920520, - -0.738499586953671130, - 0.674112310562312360, -0.738628859948174840, 0.673970667860521620, - -0.738758105785406900, - 0.673829000378756150, -0.738887324460615110, 0.673687308122224330, - -0.739016515969048600, - 0.673545591096136100, -0.739145680305957400, 0.673403849305701850, - -0.739274817466592520, - 0.673262082756132970, -0.739403927446205760, 0.673120291452642070, - -0.739533010240050250, - 0.672978475400442090, -0.739662065843379900, 0.672836634604747410, - -0.739791094251449950, - 0.672694769070772970, -0.739920095459516090, 0.672552878803734820, - -0.740049069462835550, - 0.672410963808849900, -0.740178016256666240, 0.672269024091336040, - -0.740306935836266940, - 0.672127059656411840, -0.740435828196898020, 0.671985070509296900, - -0.740564693333820250, - 0.671843056655211930, -0.740693531242295640, 0.671701018099378320, - -0.740822341917587330, - 0.671558954847018330, -0.740951125354959110, 0.671416866903355450, - -0.741079881549676080, - 0.671274754273613490, -0.741208610497004260, 0.671132616963017850, - -0.741337312192210660, - 0.670990454976794220, -0.741465986630563290, 0.670848268320169750, - -0.741594633807331150, - 0.670706056998372160, -0.741723253717784140, 0.670563821016630040, - -0.741851846357193480, - 0.670421560380173090, -0.741980411720830960, 0.670279275094231910, - -0.742108949803969800, - 0.670136965164037760, -0.742237460601884000, 0.669994630594823000, - -0.742365944109848460, - 0.669852271391821130, -0.742494400323139180, 0.669709887560265840, - -0.742622829237033380, - 0.669567479105392490, -0.742751230846809050, 0.669425046032436910, - -0.742879605147745090, - 0.669282588346636010, -0.743007952135121720, 0.669140106053227710, - -0.743136271804219820, - 0.668997599157450270, -0.743264564150321490, 0.668855067664543610, - -0.743392829168709970, - 0.668712511579748090, -0.743521066854669120, 0.668569930908305080, - -0.743649277203484060, - 0.668427325655456820, -0.743777460210440780, 0.668284695826446670, - -0.743905615870826490, - 0.668142041426518560, -0.744033744179929180, 0.667999362460917510, - -0.744161845133038070, - 0.667856658934889440, -0.744289918725443140, 0.667713930853681140, - -0.744417964952435620, - 0.667571178222540310, -0.744545983809307250, 0.667428401046715640, - -0.744673975291351600, - 0.667285599331456480, -0.744801939393862630, 0.667142773082013310, - -0.744929876112135350, - 0.666999922303637470, -0.745057785441465950, 0.666857047001581220, - -0.745185667377151640, - 0.666714147181097670, -0.745313521914490410, 0.666571222847440750, - -0.745441349048781680, - 0.666428274005865350, -0.745569148775325430, 0.666285300661627390, - -0.745696921089422760, - 0.666142302819983540, -0.745824665986375980, 0.665999280486191500, - -0.745952383461488180, - 0.665856233665509720, -0.746080073510063780, 0.665713162363197660, - -0.746207736127407650, - 0.665570066584515560, -0.746335371308826320, 0.665426946334724660, - -0.746462979049626770, - 0.665283801619087180, -0.746590559345117310, 0.665140632442866140, - -0.746718112190607020, - 0.664997438811325340, -0.746845637581406540, 0.664854220729729660, - -0.746973135512826740, - 0.664710978203344900, -0.747100605980180130, 0.664567711237437520, - -0.747228048978779920, - 0.664424419837275180, -0.747355464503940190, 0.664281104008126230, - -0.747482852550976570, - 0.664137763755260010, -0.747610213115205150, 0.663994399083946640, - -0.747737546191943330, - 0.663851009999457340, -0.747864851776509410, 0.663707596507064120, - -0.747992129864222700, - 0.663564158612039880, -0.748119380450403490, 0.663420696319658280, - -0.748246603530373420, - 0.663277209635194100, -0.748373799099454560, 0.663133698563923010, - -0.748500967152970430, - 0.662990163111121470, -0.748628107686245330, 0.662846603282066900, - -0.748755220694604760, - 0.662703019082037440, -0.748882306173375030, 0.662559410516312400, - -0.749009364117883770, - 0.662415777590171780, -0.749136394523459260, 0.662272120308896590, - -0.749263397385431020, - 0.662128438677768720, -0.749390372699129560, 0.661984732702071030, - -0.749517320459886170, - 0.661841002387086870, -0.749644240663033480, 0.661697247738101120, - -0.749771133303904990, - 0.661553468760399000, -0.749897998377835220, 0.661409665459266940, - -0.750024835880159780, - 0.661265837839992270, -0.750151645806214960, 0.661121985907862970, - -0.750278428151338610, - 0.660978109668168060, -0.750405182910869220, 0.660834209126197610, - -0.750531910080146410, - 0.660690284287242300, -0.750658609654510590, 0.660546335156593890, - -0.750785281629303580, - 0.660402361739545030, -0.750911925999867890, 0.660258364041389050, - -0.751038542761547250, - 0.660114342067420480, -0.751165131909686370, 0.659970295822934540, - -0.751291693439630870, - 0.659826225313227430, -0.751418227346727360, 0.659682130543596150, - -0.751544733626323570, - 0.659538011519338770, -0.751671212273768430, 0.659393868245753970, - -0.751797663284411440, - 0.659249700728141490, -0.751924086653603550, 0.659105508971802200, - -0.752050482376696360, - 0.658961292982037320, -0.752176850449042700, 0.658817052764149480, - -0.752303190865996400, - 0.658672788323441890, -0.752429503622912390, 0.658528499665218760, - -0.752555788715146390, - 0.658384186794785050, -0.752682046138055230, 0.658239849717446980, - -0.752808275886996950, - 0.658095488438511290, -0.752934477957330150, 0.657951102963285630, - -0.753060652344415100, - 0.657806693297078640, -0.753186799043612410, 0.657662259445200070, - -0.753312918050284330, - 0.657517801412960120, -0.753439009359793580, 0.657373319205670210, - -0.753565072967504190, - 0.657228812828642650, -0.753691108868781210, 0.657084282287190180, - -0.753817117058990680, - 0.656939727586627110, -0.753943097533499640, 0.656795148732268070, - -0.754069050287676120, - 0.656650545729429050, -0.754194975316889170, 0.656505918583426550, - -0.754320872616508820, - 0.656361267299578000, -0.754446742181906330, 0.656216591883202030, - -0.754572584008453840, - 0.656071892339617710, -0.754698398091524390, 0.655927168674145360, - -0.754824184426492240, - 0.655782420892106030, -0.754949943008732640, 0.655637648998821820, - -0.755075673833621510, - 0.655492852999615460, -0.755201376896536550, 0.655348032899810580, - -0.755327052192855560, - 0.655203188704731930, -0.755452699717958140, 0.655058320419704910, - -0.755578319467224540, - 0.654913428050056150, -0.755703911436035880, 0.654768511601112600, - -0.755829475619774760, - 0.654623571078202680, -0.755955012013824310, 0.654478606486655350, - -0.756080520613569120, - 0.654333617831800550, -0.756206001414394540, 0.654188605118969040, - -0.756331454411686920, - 0.654043568353492640, -0.756456879600833630, 0.653898507540703890, - -0.756582276977223470, - 0.653753422685936170, -0.756707646536245670, 0.653608313794523890, - -0.756832988273290820, - 0.653463180871802330, -0.756958302183750490, 0.653318023923107670, - -0.757083588263017140, - 0.653172842953776760, -0.757208846506484460, 0.653027637969147650, - -0.757334076909547130, - 0.652882408974558960, -0.757459279467600720, 0.652737155975350420, - -0.757584454176041810, - 0.652591878976862550, -0.757709601030268080, 0.652446577984436840, - -0.757834720025678310, - 0.652301253003415460, -0.757959811157672300, 0.652155904039141700, - -0.758084874421650620, - 0.652010531096959500, -0.758209909813015280, 0.651865134182214030, - -0.758334917327168960, - 0.651719713300251020, -0.758459896959515320, 0.651574268456417080, - -0.758584848705459500, - 0.651428799656059820, -0.758709772560407390, 0.651283306904527850, - -0.758834668519765660, - 0.651137790207170330, -0.758959536578942440, 0.650992249569337660, - -0.759084376733346500, - 0.650846684996380990, -0.759209188978387960, 0.650701096493652040, - -0.759333973309477940, - 0.650555484066503990, -0.759458729722028210, 0.650409847720290420, - -0.759583458211452010, - 0.650264187460365960, -0.759708158773163440, 0.650118503292086200, - -0.759832831402577400, - 0.649972795220807530, -0.759957476095110330, 0.649827063251887100, - -0.760082092846179220, - 0.649681307390683190, -0.760206681651202420, 0.649535527642554730, - -0.760331242505599030, - 0.649389724012861770, -0.760455775404789260, 0.649243896506965010, - -0.760580280344194340, - 0.649098045130226060, -0.760704757319236920, 0.648952169888007410, - -0.760829206325340010, - 0.648806270785672550, -0.760953627357928040, 0.648660347828585840, - -0.761078020412426560, - 0.648514401022112550, -0.761202385484261780, 0.648368430371618400, - -0.761326722568861250, - 0.648222435882470420, -0.761451031661653510, 0.648076417560036530, - -0.761575312758068000, - 0.647930375409685460, -0.761699565853535270, 0.647784309436786550, - -0.761823790943486840, - 0.647638219646710420, -0.761947988023355390, 0.647492106044828100, - -0.762072157088574560, - 0.647345968636512060, -0.762196298134578900, 0.647199807427135230, - -0.762320411156804160, - 0.647053622422071650, -0.762444496150687100, 0.646907413626696020, - -0.762568553111665380, - 0.646761181046383920, -0.762692582035177870, 0.646614924686512050, - -0.762816582916664320, - 0.646468644552457890, -0.762940555751565720, 0.646322340649599590, - -0.763064500535323710, - 0.646176012983316390, -0.763188417263381270, 0.646029661558988330, - -0.763312305931182380, - 0.645883286381996440, -0.763436166534172010, 0.645736887457722290, - -0.763559999067796150, - 0.645590464791548800, -0.763683803527501870, 0.645444018388859230, - -0.763807579908737160, - 0.645297548255038380, -0.763931328206951090, 0.645151054395471270, - -0.764055048417593860, - 0.645004536815544040, -0.764178740536116670, 0.644857995520643710, - -0.764302404557971720, - 0.644711430516158420, -0.764426040478612070, 0.644564841807476750, - -0.764549648293492150, - 0.644418229399988380, -0.764673227998067140, 0.644271593299083900, - -0.764796779587793460, - 0.644124933510154540, -0.764920303058128410, 0.643978250038592660, - -0.765043798404530410, - 0.643831542889791500, -0.765167265622458960, 0.643684812069144960, - -0.765290704707374260, - 0.643538057582047850, -0.765414115654738160, 0.643391279433895960, - -0.765537498460013070, - 0.643244477630085850, -0.765660853118662390, 0.643097652176015110, - -0.765784179626150970, - 0.642950803077082080, -0.765907477977944230, 0.642803930338686100, - -0.766030748169509000, - 0.642657033966226860, -0.766153990196312810, 0.642510113965105710, - -0.766277204053824710, - 0.642363170340724320, -0.766400389737514120, 0.642216203098485370, - -0.766523547242852100, - 0.642069212243792540, -0.766646676565310380, 0.641922197782050170, - -0.766769777700361920, - 0.641775159718663500, -0.766892850643480670, 0.641628098059038860, - -0.767015895390141480, - 0.641481012808583160, -0.767138911935820400, 0.641333903972704290, - -0.767261900275994390, - 0.641186771556811250, -0.767384860406141620, 0.641039615566313390, - -0.767507792321741270, - 0.640892436006621380, -0.767630696018273270, 0.640745232883146440, - -0.767753571491219030, - 0.640598006201301030, -0.767876418736060610, 0.640450755966498140, - -0.767999237748281270, - 0.640303482184151670, -0.768122028523365310, 0.640156184859676620, - -0.768244791056798220, - 0.640008863998488440, -0.768367525344066270, 0.639861519606004010, - -0.768490231380656750, - 0.639714151687640450, -0.768612909162058270, 0.639566760248816420, - -0.768735558683760310, - 0.639419345294950700, -0.768858179941253270, 0.639271906831463510, - -0.768980772930028870, - 0.639124444863775730, -0.769103337645579590, 0.638976959397309140, - -0.769225874083399260, - 0.638829450437486400, -0.769348382238982280, 0.638681917989730840, - -0.769470862107824560, - 0.638534362059466790, -0.769593313685422940, 0.638386782652119680, - -0.769715736967275020, - 0.638239179773115390, -0.769838131948879840, 0.638091553427880930, - -0.769960498625737230, - 0.637943903621844170, -0.770082836993347900, 0.637796230360433540, - -0.770205147047214100, - 0.637648533649078810, -0.770327428782838770, 0.637500813493210310, - -0.770449682195725960, - 0.637353069898259130, -0.770571907281380700, 0.637205302869657600, - -0.770694104035309140, - 0.637057512412838590, -0.770816272453018430, 0.636909698533235870, - -0.770938412530016940, - 0.636761861236284200, -0.771060524261813710, 0.636614000527419230, - -0.771182607643919220, - 0.636466116412077180, -0.771304662671844720, 0.636318208895695570, - -0.771426689341102590, - 0.636170277983712170, -0.771548687647206300, 0.636022323681566300, - -0.771670657585670330, - 0.635874345994697720, -0.771792599152010150, 0.635726344928547180, - -0.771914512341742350, - 0.635578320488556230, -0.772036397150384410, 0.635430272680167160, - -0.772158253573455240, - 0.635282201508823530, -0.772280081606474320, 0.635134106979969300, - -0.772401881244962340, - 0.634985989099049460, -0.772523652484441330, 0.634837847871510100, - -0.772645395320433860, - 0.634689683302797850, -0.772767109748463740, 0.634541495398360130, - -0.772888795764056220, - 0.634393284163645490, -0.773010453362736990, 0.634245049604103330, - -0.773132082540033070, - 0.634096791725183740, -0.773253683291472590, 0.633948510532337810, - -0.773375255612584470, - 0.633800206031017280, -0.773496799498899050, 0.633651878226674900, - -0.773618314945947460, - 0.633503527124764320, -0.773739801949261840, 0.633355152730740060, - -0.773861260504375540, - 0.633206755050057190, -0.773982690606822790, 0.633058334088172250, - -0.774104092252138940, - 0.632909889850541860, -0.774225465435860570, 0.632761422342624000, - -0.774346810153525020, - 0.632612931569877520, -0.774468126400670860, 0.632464417537761840, - -0.774589414172837550, - 0.632315880251737680, -0.774710673465565550, 0.632167319717266030, - -0.774831904274396850, - 0.632018735939809060, -0.774953106594873820, 0.631870128924829850, - -0.775074280422540450, - 0.631721498677792370, -0.775195425752941310, 0.631572845204161130, - -0.775316542581622410, - 0.631424168509401860, -0.775437630904130430, 0.631275468598980870, - -0.775558690716013580, - 0.631126745478365340, -0.775679722012820540, 0.630977999153023660, - -0.775800724790101540, - 0.630829229628424470, -0.775921699043407580, 0.630680436910038060, - -0.776042644768290770, - 0.630531621003334600, -0.776163561960304340, 0.630382781913785940, - -0.776284450615002400, - 0.630233919646864480, -0.776405310727940390, 0.630085034208043290, - -0.776526142294674430, - 0.629936125602796550, -0.776646945310762060, 0.629787193836599200, - -0.776767719771761510, - 0.629638238914927100, -0.776888465673232440, 0.629489260843256740, - -0.777009183010735290, - 0.629340259627065750, -0.777129871779831620, 0.629191235271832410, - -0.777250531976084070, - 0.629042187783036000, -0.777371163595056200, 0.628893117166156480, - -0.777491766632312900, - 0.628744023426674790, -0.777612341083419920, 0.628594906570072660, - -0.777732886943944050, - 0.628445766601832710, -0.777853404209453040, 0.628296603527438440, - -0.777973892875515990, - 0.628147417352374120, -0.778094352937702790, 0.627998208082124810, - -0.778214784391584420, - 0.627848975722176570, -0.778335187232733090, 0.627699720278016240, - -0.778455561456721900, - 0.627550441755131530, -0.778575907059124940, 0.627401140159011160, - -0.778696224035517530, - 0.627251815495144190, -0.778816512381475870, 0.627102467769021010, - -0.778936772092577500, - 0.626953096986132770, -0.779057003164400630, 0.626803703151971310, - -0.779177205592524680, - 0.626654286272029460, -0.779297379372530300, 0.626504846351800930, - -0.779417524499998900, - 0.626355383396779990, -0.779537640970513150, 0.626205897412462130, - -0.779657728779656780, - 0.626056388404343520, -0.779777787923014440, 0.625906856377921210, - -0.779897818396171890, - 0.625757301338692900, -0.780017820194715990, 0.625607723292157410, - -0.780137793314234500, - 0.625458122243814360, -0.780257737750316590, 0.625308498199164010, - -0.780377653498552040, - 0.625158851163707730, -0.780497540554531910, 0.625009181142947460, - -0.780617398913848290, - 0.624859488142386450, -0.780737228572094380, 0.624709772167528100, - -0.780857029524864470, - 0.624560033223877320, -0.780976801767753750, 0.624410271316939380, - -0.781096545296358410, - 0.624260486452220650, -0.781216260106276090, 0.624110678635228510, - -0.781335946193104870, - 0.623960847871470770, -0.781455603552444480, 0.623810994166456130, - -0.781575232179895550, - 0.623661117525694640, -0.781694832071059390, 0.623511217954696550, - -0.781814403221538830, - 0.623361295458973340, -0.781933945626937630, 0.623211350044037270, - -0.782053459282860300, - 0.623061381715401370, -0.782172944184912900, 0.622911390478579460, - -0.782292400328702400, - 0.622761376339086460, -0.782411827709836420, 0.622611339302437730, - -0.782531226323924240, - 0.622461279374150080, -0.782650596166575730, 0.622311196559740320, - -0.782769937233402050, - 0.622161090864726930, -0.782889249520015480, 0.622010962294628600, - -0.783008533022029110, - 0.621860810854965360, -0.783127787735057310, 0.621710636551257690, - -0.783247013654715380, - 0.621560439389027270, -0.783366210776619720, 0.621410219373796150, - -0.783485379096387820, - 0.621259976511087660, -0.783604518609638200, 0.621109710806425740, - -0.783723629311990470, - 0.620959422265335180, -0.783842711199065230, 0.620809110893341900, - -0.783961764266484010, - 0.620658776695972140, -0.784080788509869950, 0.620508419678753360, - -0.784199783924846570, - 0.620358039847213830, -0.784318750507038920, 0.620207637206882430, - -0.784437688252072720, - 0.620057211763289210, -0.784556597155575240, 0.619906763521964830, - -0.784675477213174320, - 0.619756292488440660, -0.784794328420499230, 0.619605798668249390, - -0.784913150773180020, - 0.619455282066924020, -0.785031944266848080, 0.619304742689998690, - -0.785150708897135560, - 0.619154180543008410, -0.785269444659675850, 0.619003595631488770, - -0.785388151550103550, - 0.618852987960976320, -0.785506829564053930, 0.618702357537008640, - -0.785625478697163700, - 0.618551704365123860, -0.785744098945070360, 0.618401028450860980, - -0.785862690303412600, - 0.618250329799760250, -0.785981252767830150, 0.618099608417362110, - -0.786099786333963820, - 0.617948864309208260, -0.786218290997455550, 0.617798097480841140, - -0.786336766753948260, - 0.617647307937803980, -0.786455213599085770, 0.617496495685640910, - -0.786573631528513230, - 0.617345660729896940, -0.786692020537876680, 0.617194803076117630, - -0.786810380622823490, - 0.617043922729849760, -0.786928711779001700, 0.616893019696640790, - -0.787047014002060790, - 0.616742093982038830, -0.787165287287650890, 0.616591145591593230, - -0.787283531631423620, - 0.616440174530853650, -0.787401747029031320, 0.616289180805370980, - -0.787519933476127810, - 0.616138164420696910, -0.787638090968367450, 0.615987125382383870, - -0.787756219501405950, - 0.615836063695985090, -0.787874319070900110, 0.615684979367054570, - -0.787992389672507950, - 0.615533872401147430, -0.788110431301888070, 0.615382742803819330, - -0.788228443954700490, - 0.615231590580626820, -0.788346427626606230, 0.615080415737127460, - -0.788464382313267430, - 0.614929218278879590, -0.788582308010347120, 0.614777998211442190, - -0.788700204713509660, - 0.614626755540375050, -0.788818072418420170, 0.614475490271239160, - -0.788935911120745130, - 0.614324202409595950, -0.789053720816151880, 0.614172891961007990, - -0.789171501500308790, - 0.614021558931038490, -0.789289253168885650, 0.613870203325251440, - -0.789406975817552810, - 0.613718825149211830, -0.789524669441982190, 0.613567424408485330, - -0.789642334037846340, - 0.613416001108638590, -0.789759969600819070, 0.613264555255239150, - -0.789877576126575280, - 0.613113086853854910, -0.789995153610791090, 0.612961595910055170, - -0.790112702049143300, - 0.612810082429409710, -0.790230221437310030, 0.612658546417489290, - -0.790347711770970520, - 0.612506987879865570, -0.790465173045804880, 0.612355406822110760, - -0.790582605257494460, - 0.612203803249798060, -0.790700008401721610, 0.612052177168501580, - -0.790817382474169660, - 0.611900528583796070, -0.790934727470523290, 0.611748857501257400, - -0.791052043386467950, - 0.611597163926462020, -0.791169330217690090, 0.611445447864987110, - -0.791286587959877720, - 0.611293709322411010, -0.791403816608719500, 0.611141948304312570, - -0.791521016159905220, - 0.610990164816271770, -0.791638186609125770, 0.610838358863869280, - -0.791755327952073150, - 0.610686530452686280, -0.791872440184440470, 0.610534679588305320, - -0.791989523301921850, - 0.610382806276309480, -0.792106577300212390, 0.610230910522282620, - -0.792223602175008310, - 0.610078992331809620, -0.792340597922007060, 0.609927051710476230, - -0.792457564536906970, - 0.609775088663868430, -0.792574502015407580, 0.609623103197573730, - -0.792691410353209450, - 0.609471095317180240, -0.792808289546014120, 0.609319065028276820, - -0.792925139589524260, - 0.609167012336453210, -0.793041960479443640, 0.609014937247299940, - -0.793158752211477140, - 0.608862839766408200, -0.793275514781330630, 0.608710719899370420, - -0.793392248184711100, - 0.608558577651779450, -0.793508952417326660, 0.608406413029229260, - -0.793625627474886190, - 0.608254226037314490, -0.793742273353100100, 0.608102016681630550, - -0.793858890047679620, - 0.607949784967773740, -0.793975477554337170, 0.607797530901341140, - -0.794092035868785960, - 0.607645254487930830, -0.794208564986740640, 0.607492955733141660, - -0.794325064903916520, - 0.607340634642572930, -0.794441535616030590, 0.607188291221825160, - -0.794557977118800270, - 0.607035925476499760, -0.794674389407944550, 0.606883537412198580, - -0.794790772479183170, - 0.606731127034524480, -0.794907126328237010, 0.606578694349081400, - -0.795023450950828050, - 0.606426239361473550, -0.795139746342679590, 0.606273762077306430, - -0.795256012499515500, - 0.606121262502186230, -0.795372249417061190, 0.605968740641719790, - -0.795488457091042990, - 0.605816196501515080, -0.795604635517188070, 0.605663630087180490, - -0.795720784691225090, - 0.605511041404325550, -0.795836904608883460, 0.605358430458560530, - -0.795952995265893910, - 0.605205797255496500, -0.796069056657987990, 0.605053141800745430, - -0.796185088780898440, - 0.604900464099919930, -0.796301091630359110, 0.604747764158633410, - -0.796417065202104980, - 0.604595041982500360, -0.796533009491872000, 0.604442297577135970, - -0.796648924495397150, - 0.604289530948156070, -0.796764810208418720, 0.604136742101177630, - -0.796880666626675780, - 0.603983931041818020, -0.796996493745908750, 0.603831097775695880, - -0.797112291561858920, - 0.603678242308430370, -0.797228060070268700, 0.603525364645641550, - -0.797343799266881700, - 0.603372464792950370, -0.797459509147442460, 0.603219542755978440, - -0.797575189707696590, - 0.603066598540348280, -0.797690840943391040, 0.602913632151683140, - -0.797806462850273570, - 0.602760643595607220, -0.797922055424093000, 0.602607632877745550, - -0.798037618660599410, - 0.602454600003723860, -0.798153152555543750, 0.602301544979168550, - -0.798268657104678310, - 0.602148467809707320, -0.798384132303756380, 0.601995368500968130, - -0.798499578148532010, - 0.601842247058580030, -0.798614994634760820, 0.601689103488173060, - -0.798730381758199210, - 0.601535937795377730, -0.798845739514604580, 0.601382749985825420, - -0.798961067899735760, - 0.601229540065148620, -0.799076366909352350, 0.601076308038980160, - -0.799191636539215210, - 0.600923053912954090, -0.799306876785086160, 0.600769777692705230, - -0.799422087642728040, - 0.600616479383868970, -0.799537269107905010, 0.600463158992081690, - -0.799652421176382130, - 0.600309816522980430, -0.799767543843925680, 0.600156451982203350, - -0.799882637106302810, - 0.600003065375389060, -0.799997700959281910, 0.599849656708177360, - -0.800112735398632370, - 0.599696225986208310, -0.800227740420124790, 0.599542773215123390, - -0.800342716019530660, - 0.599389298400564540, -0.800457662192622710, 0.599235801548174570, - -0.800572578935174750, - 0.599082282663597310, -0.800687466242961500, 0.598928741752476900, - -0.800802324111759110, - 0.598775178820458720, -0.800917152537344300, 0.598621593873188920, - -0.801031951515495330, - 0.598467986916314310, -0.801146721041991250, 0.598314357955482600, - -0.801261461112612540, - 0.598160706996342380, -0.801376171723140130, 0.598007034044542700, - -0.801490852869356840, - 0.597853339105733910, -0.801605504547046040, 0.597699622185566830, - -0.801720126751992330, - 0.597545883289693270, -0.801834719479981310, 0.597392122423765710, - -0.801949282726799660, - 0.597238339593437530, -0.802063816488235440, 0.597084534804362740, - -0.802178320760077450, - 0.596930708062196500, -0.802292795538115720, 0.596776859372594500, - -0.802407240818141300, - 0.596622988741213330, -0.802521656595946320, 0.596469096173710360, - -0.802636042867324150, - 0.596315181675743820, -0.802750399628069160, 0.596161245252972540, - -0.802864726873976590, - 0.596007286911056530, -0.802979024600843140, 0.595853306655656390, - -0.803093292804466400, - 0.595699304492433470, -0.803207531480644830, 0.595545280427049790, - -0.803321740625178470, - 0.595391234465168730, -0.803435920233868120, 0.595237166612453850, - -0.803550070302515570, - 0.595083076874569960, -0.803664190826924090, 0.594928965257182420, - -0.803778281802897570, - 0.594774831765957580, -0.803892343226241260, 0.594620676406562240, - -0.804006375092761520, - 0.594466499184664540, -0.804120377398265700, 0.594312300105932830, - -0.804234350138562260, - 0.594158079176036800, -0.804348293309460780, 0.594003836400646690, - -0.804462206906771840, - 0.593849571785433630, -0.804576090926307000, 0.593695285336069300, - -0.804689945363879500, - 0.593540977058226390, -0.804803770215302810, 0.593386646957578480, - -0.804917565476392150, - 0.593232295039799800, -0.805031331142963660, 0.593077921310565580, - -0.805145067210834120, - 0.592923525775551410, -0.805258773675822210, 0.592769108440434070, - -0.805372450533747060, - 0.592614669310891130, -0.805486097780429120, 0.592460208392600940, - -0.805599715411689950, - 0.592305725691242400, -0.805713303423352120, 0.592151221212495640, - -0.805826861811239300, - 0.591996694962040990, -0.805940390571176280, 0.591842146945560250, - -0.806053889698988950, - 0.591687577168735550, -0.806167359190504310, 0.591532985637249990, - -0.806280799041550370, - 0.591378372356787580, -0.806394209247956240, 0.591223737333032910, - -0.806507589805552260, - 0.591069080571671510, -0.806620940710169650, 0.590914402078389520, - -0.806734261957640750, - 0.590759701858874280, -0.806847553543799220, 0.590604979918813440, - -0.806960815464479620, - 0.590450236263895920, -0.807074047715517610, 0.590295470899810940, - -0.807187250292749850, - 0.590140683832248940, -0.807300423192014450, 0.589985875066900920, - -0.807413566409150190, - 0.589831044609458900, -0.807526679939997160, 0.589676192465615420, - -0.807639763780396370, - 0.589521318641063940, -0.807752817926190360, 0.589366423141498790, - -0.807865842373222120, - 0.589211505972615070, -0.807978837117336310, 0.589056567140108460, - -0.808091802154378260, - 0.588901606649675840, -0.808204737480194720, 0.588746624507014650, - -0.808317643090633250, - 0.588591620717822890, -0.808430518981542720, 0.588436595287799900, - -0.808543365148773010, - 0.588281548222645330, -0.808656181588174980, 0.588126479528059850, - -0.808768968295600850, - 0.587971389209745120, -0.808881725266903610, 0.587816277273403020, - -0.808994452497937560, - 0.587661143724736770, -0.809107149984558130, 0.587505988569450020, - -0.809219817722621750, - 0.587350811813247660, -0.809332455707985840, 0.587195613461834910, - -0.809445063936509170, - 0.587040393520918080, -0.809557642404051260, 0.586885151996203950, - -0.809670191106473090, - 0.586729888893400500, -0.809782710039636420, 0.586574604218216280, - -0.809895199199404450, - 0.586419297976360500, -0.810007658581641140, 0.586263970173543700, - -0.810120088182211600, - 0.586108620815476430, -0.810232487996982330, 0.585953249907870680, - -0.810344858021820550, - 0.585797857456438860, -0.810457198252594770, 0.585642443466894420, - -0.810569508685174630, - 0.585487007944951450, -0.810681789315430670, 0.585331550896324940, - -0.810794040139234730, - 0.585176072326730410, -0.810906261152459670, 0.585020572241884530, - -0.811018452350979470, - 0.584865050647504490, -0.811130613730669190, 0.584709507549308500, - -0.811242745287404810, - 0.584553942953015330, -0.811354847017063730, 0.584398356864344710, - -0.811466918915524250, - 0.584242749289016980, -0.811578960978665890, 0.584087120232753550, - -0.811690973202369050, - 0.583931469701276300, -0.811802955582515360, 0.583775797700308070, - -0.811914908114987680, - 0.583620104235572760, -0.812026830795669730, 0.583464389312794430, - -0.812138723620446480, - 0.583308652937698290, -0.812250586585203880, 0.583152895116010540, - -0.812362419685829120, - 0.582997115853457700, -0.812474222918210480, 0.582841315155767650, - -0.812585996278237020, - 0.582685493028668460, -0.812697739761799490, 0.582529649477889320, - -0.812809453364789160, - 0.582373784509160220, -0.812921137083098770, 0.582217898128211790, - -0.813032790912621930, - 0.582061990340775550, -0.813144414849253590, 0.581906061152583920, - -0.813256008888889380, - 0.581750110569369760, -0.813367573027426570, 0.581594138596866930, - -0.813479107260763220, - 0.581438145240810280, -0.813590611584798510, 0.581282130506935110, - -0.813702085995432700, - 0.581126094400977620, -0.813813530488567190, 0.580970036928674880, - -0.813924945060104490, - 0.580813958095764530, -0.814036329705948300, 0.580657857907985410, - -0.814147684422003360, - 0.580501736371076600, -0.814259009204175270, 0.580345593490778300, - -0.814370304048371070, - 0.580189429272831680, -0.814481568950498610, 0.580033243722978150, - -0.814592803906467270, - 0.579877036846960350, -0.814704008912187080, 0.579720808650521560, - -0.814815183963569330, - 0.579564559139405740, -0.814926329056526620, 0.579408288319357980, - -0.815037444186972220, - 0.579251996196123550, -0.815148529350820830, 0.579095682775449210, - -0.815259584543988280, - 0.578939348063081890, -0.815370609762391290, 0.578782992064769690, - -0.815481605001947770, - 0.578626614786261430, -0.815592570258576680, 0.578470216233306740, - -0.815703505528198260, - 0.578313796411655590, -0.815814410806733780, 0.578157355327059360, - -0.815925286090105390, - 0.578000892985269910, -0.816036131374236700, 0.577844409392039850, - -0.816146946655052160, - 0.577687904553122800, -0.816257731928477390, 0.577531378474272830, - -0.816368487190439200, - 0.577374831161244880, -0.816479212436865390, 0.577218262619794920, - -0.816589907663684890, - 0.577061672855679550, -0.816700572866827850, 0.576905061874655960, - -0.816811208042225290, - 0.576748429682482520, -0.816921813185809480, 0.576591776284917870, - -0.817032388293513880, - 0.576435101687721830, -0.817142933361272970, 0.576278405896654910, - -0.817253448385022230, - 0.576121688917478390, -0.817363933360698460, 0.575964950755954330, - -0.817474388284239240, - 0.575808191417845340, -0.817584813151583710, 0.575651410908915250, - -0.817695207958671680, - 0.575494609234928230, -0.817805572701444270, 0.575337786401649560, - -0.817915907375843740, - 0.575180942414845190, -0.818026211977813440, 0.575024077280281820, - -0.818136486503297620, - 0.574867191003726740, -0.818246730948241960, 0.574710283590948450, - -0.818356945308593150, - 0.574553355047715760, -0.818467129580298660, 0.574396405379798750, - -0.818577283759307490, - 0.574239434592967890, -0.818687407841569570, 0.574082442692994470, - -0.818797501823036010, - 0.573925429685650750, -0.818907565699658950, 0.573768395576709560, - -0.819017599467391500, - 0.573611340371944610, -0.819127603122188240, 0.573454264077130400, - -0.819237576660004520, - 0.573297166698042320, -0.819347520076796900, 0.573140048240456060, - -0.819457433368523280, - 0.572982908710148680, -0.819567316531142230, 0.572825748112897550, - -0.819677169560613760, - 0.572668566454481160, -0.819786992452898990, 0.572511363740678790, - -0.819896785203959810, - 0.572354139977270030, -0.820006547809759680, 0.572196895170035580, - -0.820116280266262710, - 0.572039629324757050, -0.820225982569434690, 0.571882342447216590, - -0.820335654715241840, - 0.571725034543197120, -0.820445296699652050, 0.571567705618482580, - -0.820554908518633890, - 0.571410355678857340, -0.820664490168157460, 0.571252984730106660, - -0.820774041644193650, - 0.571095592778016690, -0.820883562942714580, 0.570938179828374360, - -0.820993054059693470, - 0.570780745886967370, -0.821102514991104650, 0.570623290959583860, - -0.821211945732923550, - 0.570465815052012990, -0.821321346281126740, 0.570308318170045010, - -0.821430716631691760, - 0.570150800319470300, -0.821540056780597610, 0.569993261506080650, - -0.821649366723823830, - 0.569835701735668110, -0.821758646457351640, 0.569678121014025710, - -0.821867895977163140, - 0.569520519346947250, -0.821977115279241550, 0.569362896740227330, - -0.822086304359571090, - 0.569205253199661200, -0.822195463214137170, 0.569047588731045220, - -0.822304591838926350, - 0.568889903340175970, -0.822413690229926390, 0.568732197032851160, - -0.822522758383125940, - 0.568574469814869250, -0.822631796294514990, 0.568416721692029390, - -0.822740803960084420, - 0.568258952670131490, -0.822849781375826320, 0.568101162754976570, - -0.822958728537734000, - 0.567943351952365670, -0.823067645441801670, 0.567785520268101250, - -0.823176532084024860, - 0.567627667707986230, -0.823285388460400110, 0.567469794277824620, - -0.823394214566925080, - 0.567311899983420800, -0.823503010399598390, 0.567153984830580100, - -0.823611775954420260, - 0.566996048825108680, -0.823720511227391320, 0.566838091972813320, - -0.823829216214513990, - 0.566680114279501710, -0.823937890911791370, 0.566522115750982100, - -0.824046535315227760, - 0.566364096393063950, -0.824155149420828570, 0.566206056211556840, - -0.824263733224600450, - 0.566047995212271560, -0.824372286722551250, 0.565889913401019570, - -0.824480809910689500, - 0.565731810783613230, -0.824589302785025290, 0.565573687365865440, - -0.824697765341569470, - 0.565415543153589770, -0.824806197576334330, 0.565257378152600910, - -0.824914599485333080, - 0.565099192368714090, -0.825022971064580220, 0.564940985807745320, - -0.825131312310090960, - 0.564782758475511400, -0.825239623217882130, 0.564624510377830120, - -0.825347903783971380, - 0.564466241520519500, -0.825456154004377440, 0.564307951909398750, - -0.825564373875120490, - 0.564149641550287680, -0.825672563392221390, 0.563991310449007080, - -0.825780722551702430, - 0.563832958611378170, -0.825888851349586780, 0.563674586043223180, - -0.825996949781898970, - 0.563516192750364910, -0.826105017844664610, 0.563357778738627020, - -0.826213055533910110, - 0.563199344013834090, -0.826321062845663420, 0.563040888581811230, - -0.826429039775953390, - 0.562882412448384550, -0.826536986320809960, 0.562723915619380400, - -0.826644902476264210, - 0.562565398100626560, -0.826752788238348520, 0.562406859897951140, - -0.826860643603096080, - 0.562248301017183150, -0.826968468566541490, 0.562089721464152480, - -0.827076263124720270, - 0.561931121244689470, -0.827184027273669020, 0.561772500364625450, - -0.827291761009425810, - 0.561613858829792420, -0.827399464328029350, 0.561455196646023280, - -0.827507137225519830, - 0.561296513819151470, -0.827614779697938400, 0.561137810355011530, - -0.827722391741327220, - 0.560979086259438260, -0.827829973351729810, 0.560820341538267540, - -0.827937524525190870, - 0.560661576197336030, -0.828045045257755800, 0.560502790242481060, - -0.828152535545471410, - 0.560343983679540860, -0.828259995384385550, 0.560185156514354080, - -0.828367424770547480, - 0.560026308752760380, -0.828474823700007130, 0.559867440400600320, - -0.828582192168815790, - 0.559708551463714790, -0.828689530173025710, 0.559549641947945870, - -0.828796837708690610, - 0.559390711859136140, -0.828904114771864870, 0.559231761203129010, - -0.829011361358604430, - 0.559072789985768480, -0.829118577464965980, 0.558913798212899770, - -0.829225763087007570, - 0.558754785890368310, -0.829332918220788250, 0.558595753024020760, - -0.829440042862368170, - 0.558436699619704100, -0.829547137007808800, 0.558277625683266330, - -0.829654200653172640, - 0.558118531220556100, -0.829761233794523050, 0.557959416237422960, - -0.829868236427924840, - 0.557800280739717100, -0.829975208549443840, 0.557641124733289420, - -0.830082150155146970, - 0.557481948223991660, -0.830189061241102370, 0.557322751217676160, - -0.830295941803379070, - 0.557163533720196340, -0.830402791838047550, 0.557004295737406060, - -0.830509611341179070, - 0.556845037275160100, -0.830616400308846200, 0.556685758339313890, - -0.830723158737122880, - 0.556526458935723720, -0.830829886622083570, 0.556367139070246490, - -0.830936583959804410, - 0.556207798748739930, -0.831043250746362320, 0.556048437977062720, - -0.831149886977835430, - 0.555889056761073920, -0.831256492650303210, 0.555729655106633520, - -0.831363067759845920, - 0.555570233019602290, -0.831469612302545240, 0.555410790505841740, - -0.831576126274483630, - 0.555251327571214090, -0.831682609671745120, 0.555091844221582420, - -0.831789062490414400, - 0.554932340462810370, -0.831895484726577590, 0.554772816300762580, - -0.832001876376321840, - 0.554613271741304040, -0.832108237435735480, 0.554453706790301040, - -0.832214567900907980, - 0.554294121453620110, -0.832320867767929680, 0.554134515737128910, - -0.832427137032892280, - 0.553974889646695610, -0.832533375691888680, 0.553815243188189090, - -0.832639583741012770, - 0.553655576367479310, -0.832745761176359460, 0.553495889190436570, - -0.832851907994024980, - 0.553336181662932410, -0.832958024190106670, 0.553176453790838460, - -0.833064109760702890, - 0.553016705580027580, -0.833170164701913190, 0.552856937036373290, - -0.833276189009838240, - 0.552697148165749770, -0.833382182680579730, 0.552537338974032120, - -0.833488145710240770, - 0.552377509467096070, -0.833594078094925140, 0.552217659650817930, - -0.833699979830738290, - 0.552057789531074980, -0.833805850913786340, 0.551897899113745320, - -0.833911691340176730, - 0.551737988404707450, -0.834017501106018130, 0.551578057409841000, - -0.834123280207419990, - 0.551418106135026060, -0.834229028640493420, 0.551258134586143700, - -0.834334746401350080, - 0.551098142769075430, -0.834440433486103190, 0.550938130689703880, - -0.834546089890866760, - 0.550778098353912230, -0.834651715611756330, 0.550618045767584330, - -0.834757310644888230, - 0.550457972936604810, -0.834862874986380010, 0.550297879866859190, - -0.834968408632350450, - 0.550137766564233630, -0.835073911578919300, 0.549977633034615000, - -0.835179383822207580, - 0.549817479283891020, -0.835284825358337370, 0.549657305317949980, - -0.835390236183431780, - 0.549497111142680960, -0.835495616293615350, 0.549336896763974010, - -0.835600965685013410, - 0.549176662187719770, -0.835706284353752600, 0.549016407419809390, - -0.835811572295960590, - 0.548856132466135290, -0.835916829507766360, 0.548695837332590090, - -0.836022055985299880, - 0.548535522025067390, -0.836127251724692160, 0.548375186549461600, - -0.836232416722075600, - 0.548214830911667780, -0.836337550973583530, 0.548054455117581880, - -0.836442654475350380, - 0.547894059173100190, -0.836547727223511890, 0.547733643084120200, - -0.836652769214204950, - 0.547573206856539870, -0.836757780443567190, 0.547412750496257930, - -0.836862760907737810, - 0.547252274009174090, -0.836967710602857020, 0.547091777401188530, - -0.837072629525066000, - 0.546931260678202190, -0.837177517670507190, 0.546770723846116800, - -0.837282375035324320, - 0.546610166910834860, -0.837387201615661940, 0.546449589878259760, - -0.837491997407665890, - 0.546288992754295210, -0.837596762407483040, 0.546128375544846060, - -0.837701496611261700, - 0.545967738255817680, -0.837806200015150940, 0.545807080893116140, - -0.837910872615301060, - 0.545646403462648590, -0.838015514407863700, 0.545485705970322530, - -0.838120125388991500, - 0.545324988422046460, -0.838224705554837970, 0.545164250823729320, - -0.838329254901558300, - 0.545003493181281160, -0.838433773425308340, 0.544842715500612470, - -0.838538261122245170, - 0.544681917787634530, -0.838642717988527300, 0.544521100048259710, - -0.838747144020313920, - 0.544360262288400400, -0.838851539213765760, 0.544199404513970420, - -0.838955903565044350, - 0.544038526730883930, -0.839060237070312630, 0.543877628945055980, - -0.839164539725734570, - 0.543716711162402390, -0.839268811527475230, 0.543555773388839650, - -0.839373052471700690, - 0.543394815630284800, -0.839477262554578550, 0.543233837892656000, - -0.839581441772277120, - 0.543072840181871850, -0.839685590120966110, 0.542911822503851730, - -0.839789707596816260, - 0.542750784864516000, -0.839893794195999410, 0.542589727269785270, - -0.839997849914688730, - 0.542428649725581360, -0.840101874749058400, 0.542267552237826520, - -0.840205868695283580, - 0.542106434812444030, -0.840309831749540770, 0.541945297455357470, - -0.840413763908007480, - 0.541784140172491660, -0.840517665166862440, 0.541622962969771640, - -0.840621535522285690, - 0.541461765853123560, -0.840725374970458070, 0.541300548828474120, - -0.840829183507561640, - 0.541139311901750910, -0.840932961129779670, 0.540978055078882190, - -0.841036707833296650, - 0.540816778365796670, -0.841140423614298080, 0.540655481768424260, - -0.841244108468970580, - 0.540494165292695230, -0.841347762393501950, 0.540332828944540820, - -0.841451385384081260, - 0.540171472729892970, -0.841554977436898330, 0.540010096654684020, - -0.841658538548144760, - 0.539848700724847700, -0.841762068714012490, 0.539687284946317570, - -0.841865567930695340, - 0.539525849325029010, -0.841969036194387680, 0.539364393866917150, - -0.842072473501285450, - 0.539202918577918240, -0.842175879847585570, 0.539041423463969550, - -0.842279255229485880, - 0.538879908531008420, -0.842382599643185960, 0.538718373784973670, - -0.842485913084885630, - 0.538556819231804210, -0.842589195550786600, 0.538395244877439950, - -0.842692447037091560, - 0.538233650727821700, -0.842795667540004120, 0.538072036788890600, - -0.842898857055729310, - 0.537910403066588990, -0.843002015580472830, 0.537748749566859470, - -0.843105143110442050, - 0.537587076295645510, -0.843208239641845440, 0.537425383258891660, - -0.843311305170892030, - 0.537263670462542530, -0.843414339693792760, 0.537101937912544240, - -0.843517343206759080, - 0.536940185614843020, -0.843620315706004040, 0.536778413575385920, - -0.843723257187741550, - 0.536616621800121150, -0.843826167648186740, 0.536454810294997090, - -0.843929047083555870, - 0.536292979065963180, -0.844031895490066410, 0.536131128118969350, - -0.844134712863936930, - 0.535969257459966710, -0.844237499201387020, 0.535807367094906620, - -0.844340254498637590, - 0.535645457029741090, -0.844442978751910660, 0.535483527270423370, - -0.844545671957429240, - 0.535321577822907010, -0.844648334111417820, 0.535159608693146720, - -0.844750965210101510, - 0.534997619887097260, -0.844853565249707010, 0.534835611410714670, - -0.844956134226462100, - 0.534673583269955510, -0.845058672136595470, 0.534511535470777010, - -0.845161178976337140, - 0.534349468019137520, -0.845263654741918220, 0.534187380920995600, - -0.845366099429570970, - 0.534025274182310380, -0.845468513035528830, 0.533863147809042650, - -0.845570895556026270, - 0.533701001807152960, -0.845673246987299070, 0.533538836182603120, - -0.845775567325583900, - 0.533376650941355560, -0.845877856567118890, 0.533214446089372960, - -0.845980114708143270, - 0.533052221632619670, -0.846082341744896940, 0.532889977577059690, - -0.846184537673621670, - 0.532727713928658810, -0.846286702490559710, 0.532565430693382580, - -0.846388836191954930, - 0.532403127877198010, -0.846490938774052020, 0.532240805486072330, - -0.846593010233097190, - 0.532078463525973540, -0.846695050565337450, 0.531916102002870760, - -0.846797059767020910, - 0.531753720922733320, -0.846899037834397350, 0.531591320291531780, - -0.847000984763716880, - 0.531428900115236910, -0.847102900551231500, 0.531266460399820390, - -0.847204785193193980, - 0.531104001151255000, -0.847306638685858320, 0.530941522375513510, - -0.847408461025479730, - 0.530779024078570250, -0.847510252208314330, 0.530616506266399450, - -0.847612012230619660, - 0.530453968944976320, -0.847713741088654270, 0.530291412120277420, - -0.847815438778677930, - 0.530128835798278850, -0.847917105296951410, 0.529966239984958620, - -0.848018740639736810, - 0.529803624686294830, -0.848120344803297120, 0.529640989908265910, - -0.848221917783896990, - 0.529478335656852090, -0.848323459577801530, 0.529315661938033140, - -0.848424970181277600, - 0.529152968757790720, -0.848526449590592650, 0.528990256122106040, - -0.848627897802015860, - 0.528827524036961980, -0.848729314811817010, 0.528664772508341540, - -0.848830700616267530, - 0.528502001542228480, -0.848932055211639610, 0.528339211144607690, - -0.849033378594206690, - 0.528176401321464370, -0.849134670760243630, 0.528013572078784740, - -0.849235931706025960, - 0.527850723422555460, -0.849337161427830670, 0.527687855358763720, - -0.849438359921935950, - 0.527524967893398200, -0.849539527184620890, 0.527362061032447430, - -0.849640663212165910, - 0.527199134781901390, -0.849741768000852440, 0.527036189147750190, - -0.849842841546963210, - 0.526873224135984700, -0.849943883846782210, 0.526710239752597010, - -0.850044894896594070, - 0.526547236003579330, -0.850145874692685210, 0.526384212894925210, - -0.850246823231342710, - 0.526221170432628170, -0.850347740508854980, 0.526058108622682760, - -0.850448626521511650, - 0.525895027471084740, -0.850549481265603370, 0.525731926983829640, - -0.850650304737422200, - 0.525568807166914680, -0.850751096933260790, 0.525405668026336810, - -0.850851857849413640, - 0.525242509568094710, -0.850952587482175730, 0.525079331798186890, - -0.851053285827843790, - 0.524916134722612890, -0.851153952882715340, 0.524752918347373360, - -0.851254588643089120, - 0.524589682678468840, -0.851355193105265200, 0.524426427721901510, - -0.851455766265544310, - 0.524263153483673470, -0.851556308120228870, 0.524099859969787810, - -0.851656818665622370, - 0.523936547186248600, -0.851757297898029120, 0.523773215139060170, - -0.851857745813754840, - 0.523609863834228030, -0.851958162409106380, 0.523446493277757940, - -0.852058547680391580, - 0.523283103475656430, -0.852158901623919830, 0.523119694433931250, - -0.852259224236001090, - 0.522956266158590140, -0.852359515512947090, 0.522792818655642200, - -0.852459775451070100, - 0.522629351931096720, -0.852560004046683970, 0.522465865990963900, - -0.852660201296103760, - 0.522302360841254700, -0.852760367195645300, 0.522138836487980650, - -0.852860501741625860, - 0.521975292937154390, -0.852960604930363630, 0.521811730194788550, - -0.853060676758178320, - 0.521648148266897090, -0.853160717221390420, 0.521484547159494550, - -0.853260726316321770, - 0.521320926878595550, -0.853360704039295430, 0.521157287430216610, - -0.853460650386635320, - 0.520993628820373810, -0.853560565354666840, 0.520829951055084780, - -0.853660448939716270, - 0.520666254140367270, -0.853760301138111300, 0.520502538082239790, - -0.853860121946180660, - 0.520338802886721960, -0.853959911360254060, 0.520175048559833760, - -0.854059669376662780, - 0.520011275107596040, -0.854159395991738730, 0.519847482536030300, - -0.854259091201815420, - 0.519683670851158520, -0.854358755003227440, 0.519519840059003870, - -0.854458387392310060, - 0.519355990165589530, -0.854557988365400530, 0.519192121176940360, - -0.854657557918836460, - 0.519028233099080970, -0.854757096048957110, 0.518864325938037000, - -0.854856602752102850, - 0.518700399699835170, -0.854956078024614820, 0.518536454390502110, - -0.855055521862835950, - 0.518372490016066220, -0.855154934263109620, 0.518208506582555460, - -0.855254315221781080, - 0.518044504095999340, -0.855353664735196030, 0.517880482562427800, - -0.855452982799701830, - 0.517716441987871150, -0.855552269411646970, 0.517552382378360990, - -0.855651524567380690, - 0.517388303739929060, -0.855750748263253920, 0.517224206078608310, - -0.855849940495618240, - 0.517060089400432130, -0.855949101260826790, 0.516895953711434260, - -0.856048230555233820, - 0.516731799017649980, -0.856147328375194470, 0.516567625325114350, - -0.856246394717065210, - 0.516403432639863990, -0.856345429577203610, 0.516239220967935620, - -0.856444432951968480, - 0.516074990315366630, -0.856543404837719960, 0.515910740688195650, - -0.856642345230818720, - 0.515746472092461380, -0.856741254127627470, 0.515582184534203790, - -0.856840131524509220, - 0.515417878019463150, -0.856938977417828650, 0.515253552554280290, - -0.857037791803951680, - 0.515089208144697270, -0.857136574679244870, 0.514924844796756490, - -0.857235326040076460, - 0.514760462516501200, -0.857334045882815590, 0.514596061309975040, - -0.857432734203832700, - 0.514431641183222930, -0.857531390999499040, 0.514267202142289830, - -0.857630016266187620, - 0.514102744193221660, -0.857728610000272120, 0.513938267342065490, - -0.857827172198127320, - 0.513773771594868030, -0.857925702856129790, 0.513609256957677900, - -0.858024201970656540, - 0.513444723436543570, -0.858122669538086020, 0.513280171037514330, - -0.858221105554798250, - 0.513115599766640560, -0.858319510017173440, 0.512951009629972860, - -0.858417882921594040, - 0.512786400633563070, -0.858516224264442740, 0.512621772783463100, - -0.858614534042104080, - 0.512457126085725800, -0.858712812250963520, 0.512292460546404980, - -0.858811058887407500, - 0.512127776171554690, -0.858909273947823900, 0.511963072967230200, - -0.859007457428601410, - 0.511798350939487000, -0.859105609326130340, 0.511633610094381350, - -0.859203729636801920, - 0.511468850437970520, -0.859301818357008360, 0.511304071976311890, - -0.859399875483143450, - 0.511139274715464390, -0.859497901011601620, 0.510974458661486720, - -0.859595894938779080, - 0.510809623820439040, -0.859693857261072610, 0.510644770198381730, - -0.859791787974880540, - 0.510479897801375700, -0.859889687076602290, 0.510315006635483350, - -0.859987554562638200, - 0.510150096706766700, -0.860085390429390140, 0.509985168021289570, - -0.860183194673260880, - 0.509820220585115560, -0.860280967290654510, 0.509655254404309250, - -0.860378708277976130, - 0.509490269484936360, -0.860476417631632070, 0.509325265833062480, - -0.860574095348029980, - 0.509160243454754750, -0.860671741423578380, 0.508995202356080310, - -0.860769355854687060, - 0.508830142543106990, -0.860866938637767310, 0.508665064021904260, - -0.860964489769230900, - 0.508499966798540810, -0.861062009245491480, 0.508334850879087470, - -0.861159497062963350, - 0.508169716269614710, -0.861256953218062060, 0.508004562976194010, - -0.861354377707204800, - 0.507839391004897940, -0.861451770526809210, 0.507674200361798890, - -0.861549131673294720, - 0.507508991052970870, -0.861646461143081300, 0.507343763084487920, - -0.861743758932590700, - 0.507178516462425290, -0.861841025038245330, 0.507013251192858340, - -0.861938259456469180, - 0.506847967281863320, -0.862035462183687210, 0.506682664735517600, - -0.862132633216325380, - 0.506517343559898530, -0.862229772550811240, 0.506352003761084800, - -0.862326880183573060, - 0.506186645345155450, -0.862423956111040500, 0.506021268318189830, - -0.862521000329644520, - 0.505855872686268860, -0.862618012835816740, 0.505690458455473340, - -0.862714993625990690, - 0.505525025631885510, -0.862811942696600330, 0.505359574221587390, - -0.862908860044081290, - 0.505194104230662240, -0.863005745664870210, 0.505028615665194300, - -0.863102599555404800, - 0.504863108531267480, -0.863199421712124160, 0.504697582834967680, - -0.863296212131468230, - 0.504532038582380380, -0.863392970809878310, 0.504366475779592150, - -0.863489697743797140, - 0.504200894432690560, -0.863586392929667990, 0.504035294547763080, - -0.863683056363935940, - 0.503869676130898950, -0.863779688043046610, 0.503704039188186960, - -0.863876287963447510, - 0.503538383725717580, -0.863972856121586700, 0.503372709749581150, - -0.864069392513913680, - 0.503207017265869030, -0.864165897136879300, 0.503041306280673450, - -0.864262369986934950, - 0.502875576800086880, -0.864358811060534030, 0.502709828830203100, - -0.864455220354130250, - 0.502544062377115800, -0.864551597864179230, 0.502378277446919870, - -0.864647943587137480, - 0.502212474045710900, -0.864744257519462380, 0.502046652179584660, - -0.864840539657612980, - 0.501880811854638400, -0.864936789998049020, 0.501714953076969230, - -0.865033008537231750, - 0.501549075852675390, -0.865129195271623690, 0.501383180187855880, - -0.865225350197688090, - 0.501217266088609950, -0.865321473311889800, 0.501051333561038040, - -0.865417564610694410, - 0.500885382611240940, -0.865513624090568980, 0.500719413245319880, - -0.865609651747981880, - 0.500553425469377640, -0.865705647579402270, 0.500387419289516580, - -0.865801611581300760, - 0.500221394711840680, -0.865897543750148820, 0.500055351742453860, - -0.865993444082419520, - 0.499889290387461380, -0.866089312574586770, 0.499723210652968710, - -0.866185149223125730, - 0.499557112545081890, -0.866280954024512990, 0.499390996069908220, - -0.866376726975225830, - 0.499224861233555030, -0.866472468071743050, 0.499058708042130930, - -0.866568177310544360, - 0.498892536501744750, -0.866663854688111020, 0.498726346618505960, - -0.866759500200925290, - 0.498560138398525200, -0.866855113845470320, 0.498393911847913150, - -0.866950695618231020, - 0.498227666972781870, -0.867046245515692650, 0.498061403779243520, - -0.867141763534342360, - 0.497895122273410930, -0.867237249670668400, 0.497728822461398100, - -0.867332703921159690, - 0.497562504349319090, -0.867428126282306920, 0.497396167943289340, - -0.867523516750601460, - 0.497229813249424340, -0.867618875322536230, 0.497063440273840310, - -0.867714201994605140, - 0.496897049022654640, -0.867809496763303210, 0.496730639501984710, - -0.867904759625126920, - 0.496564211717949340, -0.867999990576573400, 0.496397765676667160, - -0.868095189614141670, - 0.496231301384258310, -0.868190356734331310, 0.496064818846843060, - -0.868285491933643240, - 0.495898318070542240, -0.868380595208579800, 0.495731799061478020, - -0.868475666555644120, - 0.495565261825772490, -0.868570705971340900, 0.495398706369549080, - -0.868665713452175580, - 0.495232132698931350, -0.868760688994655190, 0.495065540820043610, - -0.868855632595287750, - 0.494898930739011310, -0.868950544250582380, 0.494732302461959820, - -0.869045423957049530, - 0.494565655995016010, -0.869140271711200560, 0.494398991344306760, - -0.869235087509548250, - 0.494232308515959730, -0.869329871348606730, 0.494065607516103730, - -0.869424623224890780, - 0.493898888350867430, -0.869519343134916970, 0.493732151026381070, - -0.869614031075202300, - 0.493565395548774880, -0.869708687042265560, 0.493398621924179830, - -0.869803311032626650, - 0.493231830158728070, -0.869897903042806340, 0.493065020258551650, - -0.869992463069326870, - 0.492898192229784090, -0.870086991108711350, 0.492731346078558840, - -0.870181487157484560, - 0.492564481811010650, -0.870275951212171830, 0.492397599433274550, - -0.870370383269300160, - 0.492230698951486080, -0.870464783325397670, 0.492063780371782060, - -0.870559151376993250, - 0.491896843700299240, -0.870653487420617540, 0.491729888943175820, - -0.870747791452801790, - 0.491562916106550060, -0.870842063470078860, 0.491395925196560830, - -0.870936303468982760, - 0.491228916219348330, -0.871030511446048260, 0.491061889181052590, - -0.871124687397811900, - 0.490894844087815140, -0.871218831320810900, 0.490727780945777570, - -0.871312943211583920, - 0.490560699761082080, -0.871407023066670950, 0.490393600539872130, - -0.871501070882612530, - 0.490226483288291100, -0.871595086655951090, 0.490059348012483910, - -0.871689070383229740, - 0.489892194718595300, -0.871783022060993010, 0.489725023412770970, - -0.871876941685786890, - 0.489557834101157550, -0.871970829254157700, 0.489390626789901920, - -0.872064684762653970, - 0.489223401485152030, -0.872158508207824480, 0.489056158193055980, - -0.872252299586219860, - 0.488888896919763230, -0.872346058894391540, 0.488721617671423250, - -0.872439786128892280, - 0.488554320454186230, -0.872533481286276060, 0.488387005274203590, - -0.872627144363097960, - 0.488219672137626740, -0.872720775355914300, 0.488052321050608310, - -0.872814374261282390, - 0.487884952019301210, -0.872907941075760970, 0.487717565049858860, - -0.873001475795909920, - 0.487550160148436050, -0.873094978418290090, 0.487382737321187310, - -0.873188448939463790, - 0.487215296574268820, -0.873281887355994210, 0.487047837913836550, - -0.873375293664446000, - 0.486880361346047400, -0.873468667861384880, 0.486712866877059340, - -0.873562009943377740, - 0.486545354513030270, -0.873655319906992630, 0.486377824260119500, - -0.873748597748798870, - 0.486210276124486530, -0.873841843465366750, 0.486042710112291390, - -0.873935057053268130, - 0.485875126229695420, -0.874028238509075630, 0.485707524482859750, - -0.874121387829363330, - 0.485539904877947020, -0.874214505010706300, 0.485372267421119770, - -0.874307590049680950, - 0.485204612118541880, -0.874400642942864790, 0.485036938976377450, - -0.874493663686836450, - 0.484869248000791120, -0.874586652278176110, 0.484701539197948730, - -0.874679608713464510, - 0.484533812574016120, -0.874772532989284150, 0.484366068135160480, - -0.874865425102218210, - 0.484198305887549140, -0.874958285048851540, 0.484030525837350010, - -0.875051112825769970, - 0.483862727990732320, -0.875143908429560250, 0.483694912353865080, - -0.875236671856810870, - 0.483527078932918740, -0.875329403104110780, 0.483359227734063980, - -0.875422102168050830, - 0.483191358763471910, -0.875514769045222740, 0.483023472027315050, - -0.875607403732219240, - 0.482855567531765670, -0.875700006225634600, 0.482687645282997510, - -0.875792576522063880, - 0.482519705287184520, -0.875885114618103700, 0.482351747550501030, - -0.875977620510351660, - 0.482183772079122830, -0.876070094195406600, 0.482015778879225530, - -0.876162535669868460, - 0.481847767956986080, -0.876254944930338400, 0.481679739318581490, - -0.876347321973419020, - 0.481511692970189920, -0.876439666795713610, 0.481343628917989870, - -0.876531979393827100, - 0.481175547168160360, -0.876624259764365310, 0.481007447726881640, - -0.876716507903935400, - 0.480839330600333900, -0.876808723809145760, 0.480671195794698690, - -0.876900907476605650, - 0.480503043316157670, -0.876993058902925780, 0.480334873170893070, - -0.877085178084718310, - 0.480166685365088440, -0.877177265018595940, 0.479998479904927220, - -0.877269319701173170, - 0.479830256796594250, -0.877361342129065140, 0.479662016046274340, - -0.877453332298888560, - 0.479493757660153060, -0.877545290207261240, 0.479325481644417130, - -0.877637215850802120, - 0.479157188005253310, -0.877729109226131570, 0.478988876748849550, - -0.877820970329870500, - 0.478820547881394050, -0.877912799158641730, 0.478652201409075550, - -0.878004595709069080, - 0.478483837338084080, -0.878096359977777130, 0.478315455674609480, - -0.878188091961392250, - 0.478147056424843120, -0.878279791656541460, 0.477978639594976110, - -0.878371459059853590, - 0.477810205191201040, -0.878463094167957870, 0.477641753219710590, - -0.878554696977485340, - 0.477473283686698060, -0.878646267485068130, 0.477304796598358010, - -0.878737805687339280, - 0.477136291960884750, -0.878829311580933360, 0.476967769780474230, - -0.878920785162485840, - 0.476799230063322250, -0.879012226428633410, 0.476630672815625380, - -0.879103635376014330, - 0.476462098043581310, -0.879195012001267370, 0.476293505753387750, - -0.879286356301033250, - 0.476124895951243630, -0.879377668271953180, 0.475956268643348220, - -0.879468947910670100, - 0.475787623835901120, -0.879560195213827890, 0.475618961535103410, - -0.879651410178071470, - 0.475450281747155870, -0.879742592800047410, 0.475281584478260800, - -0.879833743076402940, - 0.475112869734620470, -0.879924861003786860, 0.474944137522437860, - -0.880015946578848960, - 0.474775387847917230, -0.880106999798240360, 0.474606620717262560, - -0.880198020658613190, - 0.474437836136679340, -0.880289009156620890, 0.474269034112372920, - -0.880379965288918260, - 0.474100214650550020, -0.880470889052160750, 0.473931377757417560, - -0.880561780443005590, - 0.473762523439182850, -0.880652639458111010, 0.473593651702054640, - -0.880743466094136230, - 0.473424762552241530, -0.880834260347742040, 0.473255855995953380, - -0.880925022215589880, - 0.473086932039400220, -0.881015751694342760, 0.472917990688792760, - -0.881106448780665130, - 0.472749031950342900, -0.881197113471221980, 0.472580055830262250, - -0.881287745762680100, - 0.472411062334764100, -0.881378345651706810, 0.472242051470061650, - -0.881468913134971330, - 0.472073023242368660, -0.881559448209143780, 0.471903977657900320, - -0.881649950870895260, - 0.471734914722871430, -0.881740421116898320, 0.471565834443498480, - -0.881830858943826620, - 0.471396736825997810, -0.881921264348354940, 0.471227621876586400, - -0.882011637327159590, - 0.471058489601482610, -0.882101977876917580, 0.470889340006904520, - -0.882192285994307430, - 0.470720173099071710, -0.882282561676008600, 0.470550988884203490, - -0.882372804918702290, - 0.470381787368520710, -0.882463015719070040, 0.470212568558244280, - -0.882553194073795400, - 0.470043332459595620, -0.882643339979562790, 0.469874079078797470, - -0.882733453433057540, - 0.469704808422072460, -0.882823534430966730, 0.469535520495644510, - -0.882913582969978020, - 0.469366215305737630, -0.883003599046780720, 0.469196892858576630, - -0.883093582658065370, - 0.469027553160387240, -0.883183533800523280, 0.468858196217395330, - -0.883273452470847430, - 0.468688822035827960, -0.883363338665731580, 0.468519430621912420, - -0.883453192381870920, - 0.468350021981876530, -0.883543013615961880, 0.468180596121949400, - -0.883632802364701760, - 0.468011153048359830, -0.883722558624789660, 0.467841692767338220, - -0.883812282392925090, - 0.467672215285114710, -0.883901973665809470, 0.467502720607920920, - -0.883991632440144890, - 0.467333208741988530, -0.884081258712634990, 0.467163679693549770, - -0.884170852479984500, - 0.466994133468838110, -0.884260413738899080, 0.466824570074086950, - -0.884349942486086120, - 0.466654989515530970, -0.884439438718253700, 0.466485391799405010, - -0.884528902432111350, - 0.466315776931944480, -0.884618333624369920, 0.466146144919386000, - -0.884707732291740930, - 0.465976495767966130, -0.884797098430937790, 0.465806829483922770, - -0.884886432038674560, - 0.465637146073493770, -0.884975733111666660, 0.465467445542917800, - -0.885065001646630930, - 0.465297727898434650, -0.885154237640285110, 0.465127993146283950, - -0.885243441089348270, - 0.464958241292706740, -0.885332611990540590, 0.464788472343944160, - -0.885421750340583570, - 0.464618686306237820, -0.885510856136199950, 0.464448883185830770, - -0.885599929374113360, - 0.464279062988965760, -0.885688970051048960, 0.464109225721887010, - -0.885777978163732940, - 0.463939371390838460, -0.885866953708892790, 0.463769500002065680, - -0.885955896683257030, - 0.463599611561814120, -0.886044807083555490, 0.463429706076329880, - -0.886133684906519340, - 0.463259783551860260, -0.886222530148880640, 0.463089843994652470, - -0.886311342807372890, - 0.462919887410955130, -0.886400122878730490, 0.462749913807016850, - -0.886488870359689600, - 0.462579923189086810, -0.886577585246987040, 0.462409915563415540, - -0.886666267537360890, - 0.462239890936253280, -0.886754917227550950, 0.462069849313851810, - -0.886843534314297300, - 0.461899790702462840, -0.886932118794342080, 0.461729715108338770, - -0.887020670664428360, - 0.461559622537733190, -0.887109189921300060, 0.461389512996899450, - -0.887197676561702900, - 0.461219386492092430, -0.887286130582383150, 0.461049243029567010, - -0.887374551980088740, - 0.460879082615578690, -0.887462940751568840, 0.460708905256384190, - -0.887551296893573370, - 0.460538710958240010, -0.887639620402853930, 0.460368499727404070, - -0.887727911276163020, - 0.460198271570134270, -0.887816169510254550, 0.460028026492689700, - -0.887904395101883240, - 0.459857764501329650, -0.887992588047805560, 0.459687485602313870, - -0.888080748344778900, - 0.459517189801903590, -0.888168875989561620, 0.459346877106359570, - -0.888256970978913870, - 0.459176547521944150, -0.888345033309596240, 0.459006201054919680, - -0.888433062978371320, - 0.458835837711549120, -0.888521059982002260, 0.458665457498096670, - -0.888609024317253750, - 0.458495060420826220, -0.888696955980891710, 0.458324646486003300, - -0.888784854969682850, - 0.458154215699893230, -0.888872721280395520, 0.457983768068762180, - -0.888960554909799310, - 0.457813303598877290, -0.889048355854664570, 0.457642822296505770, - -0.889136124111763240, - 0.457472324167916110, -0.889223859677868210, 0.457301809219376800, - -0.889311562549753850, - 0.457131277457156980, -0.889399232724195520, 0.456960728887527030, - -0.889486870197969790, - 0.456790163516757220, -0.889574474967854580, 0.456619581351118960, - -0.889662047030628790, - 0.456448982396883860, -0.889749586383072890, 0.456278366660324670, - -0.889837093021967900, - 0.456107734147714220, -0.889924566944096720, 0.455937084865326030, - -0.890012008146243260, - 0.455766418819434750, -0.890099416625192210, 0.455595736016314920, - -0.890186792377730240, - 0.455425036462242420, -0.890274135400644480, 0.455254320163493210, - -0.890361445690723730, - 0.455083587126343840, -0.890448723244757880, 0.454912837357072050, - -0.890535968059537830, - 0.454742070861955450, -0.890623180131855930, 0.454571287647273000, - -0.890710359458505520, - 0.454400487719303750, -0.890797506036281490, 0.454229671084327320, - -0.890884619861979530, - 0.454058837748624540, -0.890971700932396750, 0.453887987718476050, - -0.891058749244331590, - 0.453717121000163930, -0.891145764794583180, 0.453546237599970260, - -0.891232747579952520, - 0.453375337524177750, -0.891319697597241390, 0.453204420779070300, - -0.891406614843252900, - 0.453033487370931580, -0.891493499314791380, 0.452862537306046810, - -0.891580351008662290, - 0.452691570590700860, -0.891667169921672390, 0.452520587231180100, - -0.891753956050629460, - 0.452349587233771000, -0.891840709392342720, 0.452178570604760410, - -0.891927429943622510, - 0.452007537350436530, -0.892014117701280360, 0.451836487477087430, - -0.892100772662129170, - 0.451665420991002540, -0.892187394822982480, 0.451494337898471210, - -0.892273984180655730, - 0.451323238205783520, -0.892360540731965360, 0.451152121919230710, - -0.892447064473728680, - 0.450980989045103810, -0.892533555402764690, 0.450809839589695340, - -0.892620013515893040, - 0.450638673559297760, -0.892706438809935280, 0.450467490960204110, - -0.892792831281713610, - 0.450296291798708730, -0.892879190928051680, 0.450125076081105750, - -0.892965517745774260, - 0.449953843813690580, -0.893051811731707450, 0.449782595002758860, - -0.893138072882678210, - 0.449611329654606600, -0.893224301195515320, 0.449440047775531260, - -0.893310496667048090, - 0.449268749371829920, -0.893396659294107610, 0.449097434449801100, - -0.893482789073525850, - 0.448926103015743260, -0.893568886002136020, 0.448754755075956020, - -0.893654950076772430, - 0.448583390636739300, -0.893740981294271040, 0.448412009704393430, - -0.893826979651468620, - 0.448240612285220000, -0.893912945145203250, 0.448069198385520340, - -0.893998877772314240, - 0.447897768011597310, -0.894084777529641990, 0.447726321169753750, - -0.894170644414028270, - 0.447554857866293010, -0.894256478422316040, 0.447383378107519710, - -0.894342279551349480, - 0.447211881899738260, -0.894428047797973800, 0.447040369249254500, - -0.894513783159035620, - 0.446868840162374330, -0.894599485631382580, 0.446697294645404090, - -0.894685155211863980, - 0.446525732704651400, -0.894770791897329550, 0.446354154346423840, - -0.894856395684630930, - 0.446182559577030120, -0.894941966570620750, 0.446010948402779110, - -0.895027504552152630, - 0.445839320829980350, -0.895113009626081760, 0.445667676864944350, - -0.895198481789264200, - 0.445496016513981740, -0.895283921038557580, 0.445324339783404240, - -0.895369327370820310, - 0.445152646679523590, -0.895454700782912450, 0.444980937208652780, - -0.895540041271694840, - 0.444809211377105000, -0.895625348834030000, 0.444637469191193790, - -0.895710623466781320, - 0.444465710657234110, -0.895795865166813420, 0.444293935781540580, - -0.895881073930992370, - 0.444122144570429260, -0.895966249756185110, 0.443950337030216250, - -0.896051392639260040, - 0.443778513167218220, -0.896136502577086770, 0.443606672987753080, - -0.896221579566535920, - 0.443434816498138430, -0.896306623604479660, 0.443262943704693380, - -0.896391634687790820, - 0.443091054613736990, -0.896476612813344010, 0.442919149231588980, - -0.896561557978014960, - 0.442747227564570130, -0.896646470178680150, 0.442575289619001170, - -0.896731349412217880, - 0.442403335401204130, -0.896816195675507190, 0.442231364917501090, - -0.896901008965428680, - 0.442059378174214760, -0.896985789278863970, 0.441887375177668960, - -0.897070536612695870, - 0.441715355934187310, -0.897155250963808550, 0.441543320450094920, - -0.897239932329087050, - 0.441371268731716620, -0.897324580705418320, 0.441199200785378660, - -0.897409196089689720, - 0.441027116617407340, -0.897493778478790190, 0.440855016234129430, - -0.897578327869610230, - 0.440682899641873020, -0.897662844259040750, 0.440510766846965880, - -0.897747327643974690, - 0.440338617855737300, -0.897831778021305650, 0.440166452674516480, - -0.897916195387928550, - 0.439994271309633260, -0.898000579740739880, 0.439822073767418610, - -0.898084931076636780, - 0.439649860054203420, -0.898169249392518080, 0.439477630176319860, - -0.898253534685283570, - 0.439305384140100060, -0.898337786951834190, 0.439133121951876930, - -0.898422006189072530, - 0.438960843617984430, -0.898506192393901840, 0.438788549144756290, - -0.898590345563227030, - 0.438616238538527710, -0.898674465693953820, 0.438443911805633860, - -0.898758552782989440, - 0.438271568952410480, -0.898842606827242260, 0.438099209985194580, - -0.898926627823621870, - 0.437926834910322860, -0.899010615769039070, 0.437754443734133470, - -0.899094570660405770, - 0.437582036462964340, -0.899178492494635330, 0.437409613103154850, - -0.899262381268642000, - 0.437237173661044200, -0.899346236979341460, 0.437064718142972370, - -0.899430059623650860, - 0.436892246555280470, -0.899513849198487870, 0.436719758904309310, - -0.899597605700772180, - 0.436547255196401250, -0.899681329127423930, 0.436374735437898510, - -0.899765019475365020, - 0.436202199635143950, -0.899848676741518580, 0.436029647794481670, - -0.899932300922808400, - 0.435857079922255470, -0.900015892016160280, 0.435684496024810520, - -0.900099450018500340, - 0.435511896108492170, -0.900182974926756700, 0.435339280179646070, - -0.900266466737858480, - 0.435166648244619370, -0.900349925448735600, 0.434994000309758710, - -0.900433351056319830, - 0.434821336381412350, -0.900516743557543520, 0.434648656465928430, - -0.900600102949340790, - 0.434475960569655710, -0.900683429228646860, 0.434303248698944100, - -0.900766722392397860, - 0.434130520860143310, -0.900849982437531450, 0.433957777059604480, - -0.900933209360986200, - 0.433785017303678520, -0.901016403159702330, 0.433612241598717640, - -0.901099563830620950, - 0.433439449951074200, -0.901182691370684410, 0.433266642367100940, - -0.901265785776836580, - 0.433093818853152010, -0.901348847046022030, 0.432920979415581220, - -0.901431875175186970, - 0.432748124060743760, -0.901514870161278630, 0.432575252794994810, - -0.901597832001245660, - 0.432402365624690140, -0.901680760692037730, 0.432229462556186770, - -0.901763656230605610, - 0.432056543595841450, -0.901846518613901860, 0.431883608750012300, - -0.901929347838879350, - 0.431710658025057370, -0.902012143902493070, 0.431537691427335500, - -0.902094906801698900, - 0.431364708963206440, -0.902177636533453510, 0.431191710639030000, - -0.902260333094715540, - 0.431018696461167080, -0.902342996482444200, 0.430845666435978820, - -0.902425626693600270, - 0.430672620569826860, -0.902508223725145830, 0.430499558869073930, - -0.902590787574043870, - 0.430326481340082610, -0.902673318237258830, 0.430153387989216930, - -0.902755815711756120, - 0.429980278822840570, -0.902838279994502830, 0.429807153847318770, - -0.902920711082466630, - 0.429634013069016500, -0.903003108972617040, 0.429460856494299490, - -0.903085473661924600, - 0.429287684129534720, -0.903167805147360610, 0.429114495981088690, - -0.903250103425898400, - 0.428941292055329550, -0.903332368494511820, 0.428768072358625240, - -0.903414600350176290, - 0.428594836897344400, -0.903496798989868450, 0.428421585677856760, - -0.903578964410565950, - 0.428248318706531910, -0.903661096609247980, 0.428075035989740780, - -0.903743195582894620, - 0.427901737533854240, -0.903825261328487390, 0.427728423345243860, - -0.903907293843009050, - 0.427555093430282200, -0.903989293123443340, 0.427381747795341770, - -0.904071259166775440, - 0.427208386446796370, -0.904153191969991670, 0.427035009391019790, - -0.904235091530079750, - 0.426861616634386490, -0.904316957844028320, 0.426688208183271970, - -0.904398790908827350, - 0.426514784044051520, -0.904480590721468250, 0.426341344223101880, - -0.904562357278943190, - 0.426167888726799620, -0.904644090578246240, 0.425994417561522450, - -0.904725790616371930, - 0.425820930733648300, -0.904807457390316540, 0.425647428249555590, - -0.904889090897077470, - 0.425473910115623910, -0.904970691133653250, 0.425300376338232590, - -0.905052258097043590, - 0.425126826923762410, -0.905133791784249580, 0.424953261878594060, - -0.905215292192273480, - 0.424779681209108810, -0.905296759318118820, 0.424606084921689220, - -0.905378193158789980, - 0.424432473022717420, -0.905459593711293250, 0.424258845518577010, - -0.905540960972635480, - 0.424085202415651670, -0.905622294939825160, 0.423911543720325580, - -0.905703595609872010, - 0.423737869438983950, -0.905784862979786440, 0.423564179578011960, - -0.905866097046580940, - 0.423390474143796100, -0.905947297807268460, 0.423216753142722780, - -0.906028465258863490, - 0.423043016581179100, -0.906109599398381980, 0.422869264465553170, - -0.906190700222840540, - 0.422695496802232950, -0.906271767729257660, 0.422521713597607870, - -0.906352801914652280, - 0.422347914858067000, -0.906433802776045460, 0.422174100590000820, - -0.906514770310458800, - 0.422000270799799790, -0.906595704514915330, 0.421826425493854910, - -0.906676605386439460, - 0.421652564678558380, -0.906757472922056550, 0.421478688360302220, - -0.906838307118793540, - 0.421304796545479700, -0.906919107973678030, 0.421130889240484140, - -0.906999875483739610, - 0.420956966451709440, -0.907080609646008450, 0.420783028185550630, - -0.907161310457516250, - 0.420609074448402510, -0.907241977915295930, 0.420435105246661220, - -0.907322612016381310, - 0.420261120586723050, -0.907403212757808000, 0.420087120474984590, - -0.907483780136612570, - 0.419913104917843730, -0.907564314149832520, 0.419739073921698180, - -0.907644814794507090, - 0.419565027492946940, -0.907725282067676330, 0.419390965637989050, - -0.907805715966381820, - 0.419216888363223960, -0.907886116487666150, 0.419042795675052480, - -0.907966483628573240, - 0.418868687579875110, -0.908046817386148340, 0.418694564084093610, - -0.908127117757437600, - 0.418520425194109700, -0.908207384739488700, 0.418346270916326310, - -0.908287618329350450, - 0.418172101257146430, -0.908367818524072780, 0.417997916222973550, - -0.908447985320707250, - 0.417823715820212380, -0.908528118716306120, 0.417649500055267410, - -0.908608218707923190, - 0.417475268934544340, -0.908688285292613360, 0.417301022464449060, - -0.908768318467432780, - 0.417126760651387870, -0.908848318229439120, 0.416952483501768280, - -0.908928284575690640, - 0.416778191021997590, -0.909008217503247450, 0.416603883218484410, - -0.909088117009170580, - 0.416429560097637320, -0.909167983090522270, 0.416255221665865480, - -0.909247815744366310, - 0.416080867929579320, -0.909327614967767260, 0.415906498895188770, - -0.909407380757791260, - 0.415732114569105420, -0.909487113111505430, 0.415557714957740580, - -0.909566812025978220, - 0.415383300067506290, -0.909646477498279540, 0.415208869904815650, - -0.909726109525480160, - 0.415034424476081630, -0.909805708104652220, 0.414859963787718390, - -0.909885273232869160, - 0.414685487846140010, -0.909964804907205660, 0.414510996657761810, - -0.910044303124737390, - 0.414336490228999210, -0.910123767882541570, 0.414161968566268080, - -0.910203199177696540, - 0.413987431675985510, -0.910282597007281760, 0.413812879564568300, - -0.910361961368377990, - 0.413638312238434560, -0.910441292258067140, 0.413463729704002580, - -0.910520589673432630, - 0.413289131967690960, -0.910599853611558930, 0.413114519035919560, - -0.910679084069531570, - 0.412939890915108020, -0.910758281044437570, 0.412765247611677320, - -0.910837444533365010, - 0.412590589132048380, -0.910916574533403240, 0.412415915482642730, - -0.910995671041643140, - 0.412241226669883000, -0.911074734055176250, 0.412066522700191560, - -0.911153763571095900, - 0.411891803579992220, -0.911232759586496190, 0.411717069315708670, - -0.911311722098472670, - 0.411542319913765280, -0.911390651104122320, 0.411367555380587340, - -0.911469546600543020, - 0.411192775722600160, -0.911548408584833990, 0.411017980946230270, - -0.911627237054095650, - 0.410843171057903910, -0.911706032005429880, 0.410668346064048780, - -0.911784793435939430, - 0.410493505971092520, -0.911863521342728520, 0.410318650785463260, - -0.911942215722902570, - 0.410143780513590350, -0.912020876573568230, 0.409968895161902820, - -0.912099503891833470, - 0.409793994736831200, -0.912178097674807060, 0.409619079244805840, - -0.912256657919599650, - 0.409444148692257590, -0.912335184623322750, 0.409269203085618700, - -0.912413677783089020, - 0.409094242431320920, -0.912492137396012650, 0.408919266735797480, - -0.912570563459208730, - 0.408744276005481520, -0.912648955969793900, 0.408569270246806780, - -0.912727314924885900, - 0.408394249466208110, -0.912805640321603500, 0.408219213670120100, - -0.912883932157067200, - 0.408044162864978740, -0.912962190428398100, 0.407869097057219960, - -0.913040415132719160, - 0.407694016253280170, -0.913118606267154130, 0.407518920459597030, - -0.913196763828828200, - 0.407343809682607970, -0.913274887814867760, 0.407168683928751610, - -0.913352978222400250, - 0.406993543204466460, -0.913431035048554720, 0.406818387516192370, - -0.913509058290461140, - 0.406643216870369140, -0.913587047945250810, 0.406468031273437000, - -0.913665004010056350, - 0.406292830731837470, -0.913742926482011390, 0.406117615252011790, - -0.913820815358251100, - 0.405942384840402570, -0.913898670635911680, 0.405767139503452220, - -0.913976492312130520, - 0.405591879247603870, -0.914054280384046460, 0.405416604079301750, - -0.914132034848799460, - 0.405241314004989860, -0.914209755703530690, 0.405066009031113390, - -0.914287442945382440, - 0.404890689164117750, -0.914365096571498450, 0.404715354410448650, - -0.914442716579023870, - 0.404540004776553110, -0.914520302965104450, 0.404364640268877810, - -0.914597855726887790, - 0.404189260893870750, -0.914675374861522390, 0.404013866657980060, - -0.914752860366158100, - 0.403838457567654130, -0.914830312237946090, 0.403663033629342750, - -0.914907730474038620, - 0.403487594849495310, -0.914985115071589310, 0.403312141234562660, - -0.915062466027752760, - 0.403136672790995240, -0.915139783339685260, 0.402961189525244960, - -0.915217067004543750, - 0.402785691443763640, -0.915294317019487050, 0.402610178553003680, - -0.915371533381674760, - 0.402434650859418540, -0.915448716088267830, 0.402259108369461440, - -0.915525865136428530, - 0.402083551089587040, -0.915602980523320230, 0.401907979026249860, - -0.915680062246107650, - 0.401732392185905010, -0.915757110301956720, 0.401556790575008650, - -0.915834124688034710, - 0.401381174200016790, -0.915911105401509880, 0.401205543067386760, - -0.915988052439551840, - 0.401029897183575790, -0.916064965799331610, 0.400854236555041650, - -0.916141845478021350, - 0.400678561188243350, -0.916218691472794110, 0.400502871089639500, - -0.916295503780824800, - 0.400327166265690150, -0.916372282399289140, 0.400151446722855300, - -0.916449027325364040, - 0.399975712467595390, -0.916525738556228100, 0.399799963506372090, - -0.916602416089060680, - 0.399624199845646790, -0.916679059921042700, 0.399448421491882260, - -0.916755670049355990, - 0.399272628451540930, -0.916832246471183890, 0.399096820731086600, - -0.916908789183710990, - 0.398920998336983020, -0.916985298184122890, 0.398745161275694480, - -0.917061773469606820, - 0.398569309553686360, -0.917138215037350710, 0.398393443177423920, - -0.917214622884544250, - 0.398217562153373620, -0.917290997008377910, 0.398041666488001930, - -0.917367337406043810, - 0.397865756187775750, -0.917443644074735220, 0.397689831259163240, - -0.917519917011646260, - 0.397513891708632330, -0.917596156213972950, 0.397337937542652120, - -0.917672361678911750, - 0.397161968767691720, -0.917748533403661250, 0.396985985390220900, - -0.917824671385420570, - 0.396809987416710420, -0.917900775621390390, 0.396633974853630830, - -0.917976846108772730, - 0.396457947707453960, -0.918052882844770380, 0.396281905984651680, - -0.918128885826587910, - 0.396105849691696320, -0.918204855051430900, 0.395929778835061360, - -0.918280790516506130, - 0.395753693421220080, -0.918356692219021720, 0.395577593456646950, - -0.918432560156186790, - 0.395401478947816300, -0.918508394325212250, 0.395225349901203730, - -0.918584194723309540, - 0.395049206323284880, -0.918659961347691900, 0.394873048220535760, - -0.918735694195573550, - 0.394696875599433670, -0.918811393264169940, 0.394520688466455550, - -0.918887058550697970, - 0.394344486828079650, -0.918962690052375630, 0.394168270690784250, - -0.919038287766421940, - 0.393992040061048100, -0.919113851690057770, 0.393815794945351130, - -0.919189381820504470, - 0.393639535350172880, -0.919264878154985250, 0.393463261281994380, - -0.919340340690724230, - 0.393286972747296570, -0.919415769424946960, 0.393110669752560760, - -0.919491164354880100, - 0.392934352304269600, -0.919566525477751530, 0.392758020408905280, - -0.919641852790790470, - 0.392581674072951530, -0.919717146291227360, 0.392405313302891860, - -0.919792405976293750, - 0.392228938105210370, -0.919867631843222950, 0.392052548486392200, - -0.919942823889248640, - 0.391876144452922350, -0.920017982111606570, 0.391699726011287050, - -0.920093106507533070, - 0.391523293167972350, -0.920168197074266450, 0.391346845929465610, - -0.920243253809045370, - 0.391170384302253980, -0.920318276709110480, 0.390993908292825380, - -0.920393265771703550, - 0.390817417907668610, -0.920468220994067110, 0.390640913153272370, - -0.920543142373445480, - 0.390464394036126650, -0.920618029907083860, 0.390287860562721360, - -0.920692883592229010, - 0.390111312739546910, -0.920767703426128790, 0.389934750573094790, - -0.920842489406032080, - 0.389758174069856410, -0.920917241529189520, 0.389581583236324360, - -0.920991959792852310, - 0.389404978078991100, -0.921066644194273530, 0.389228358604349730, - -0.921141294730707270, - 0.389051724818894500, -0.921215911399408730, 0.388875076729119250, - -0.921290494197634540, - 0.388698414341519250, -0.921365043122642340, 0.388521737662589740, - -0.921439558171691320, - 0.388345046698826300, -0.921514039342041900, 0.388168341456725850, - -0.921588486630955380, - 0.387991621942784910, -0.921662900035694730, 0.387814888163501290, - -0.921737279553523800, - 0.387638140125372680, -0.921811625181708120, 0.387461377834897920, - -0.921885936917513970, - 0.387284601298575890, -0.921960214758209110, 0.387107810522905990, - -0.922034458701062820, - 0.386931005514388690, -0.922108668743345070, 0.386754186279524130, - -0.922182844882327600, - 0.386577352824813980, -0.922256987115283030, 0.386400505156759610, - -0.922331095439485330, - 0.386223643281862980, -0.922405169852209880, 0.386046767206627280, - -0.922479210350733100, - 0.385869876937555310, -0.922553216932332830, 0.385692972481151200, - -0.922627189594287800, - 0.385516053843919020, -0.922701128333878520, 0.385339121032363340, - -0.922775033148386380, - 0.385162174052989970, -0.922848904035094120, 0.384985212912304200, - -0.922922740991285680, - 0.384808237616812930, -0.922996544014246250, 0.384631248173022740, - -0.923070313101262420, - 0.384454244587440870, -0.923144048249621820, 0.384277226866575620, - -0.923217749456613500, - 0.384100195016935040, -0.923291416719527640, 0.383923149045028500, - -0.923365050035655610, - 0.383746088957365010, -0.923438649402290370, 0.383569014760454960, - -0.923512214816725520, - 0.383391926460808770, -0.923585746276256560, 0.383214824064937180, - -0.923659243778179980, - 0.383037707579352130, -0.923732707319793180, 0.382860577010565360, - -0.923806136898395410, - 0.382683432365089840, -0.923879532511286740, 0.382506273649438400, - -0.923952894155768640, - 0.382329100870124510, -0.924026221829143850, 0.382151914033662720, - -0.924099515528716280, - 0.381974713146567220, -0.924172775251791200, 0.381797498215353690, - -0.924246000995674890, - 0.381620269246537520, -0.924319192757675160, 0.381443026246634730, - -0.924392350535101050, - 0.381265769222162490, -0.924465474325262600, 0.381088498179637520, - -0.924538564125471420, - 0.380911213125578130, -0.924611619933039970, 0.380733914066502090, - -0.924684641745282530, - 0.380556601008928570, -0.924757629559513910, 0.380379273959376710, - -0.924830583373050800, - 0.380201932924366050, -0.924903503183210910, 0.380024577910417380, - -0.924976388987313050, - 0.379847208924051110, -0.925049240782677580, 0.379669825971789000, - -0.925122058566625770, - 0.379492429060152740, -0.925194842336480420, 0.379315018195664430, - -0.925267592089565550, - 0.379137593384847430, -0.925340307823206200, 0.378960154634224720, - -0.925412989534729060, - 0.378782701950320600, -0.925485637221461490, 0.378605235339659290, - -0.925558250880732620, - 0.378427754808765620, -0.925630830509872720, 0.378250260364165310, - -0.925703376106213120, - 0.378072752012383990, -0.925775887667086740, 0.377895229759948550, - -0.925848365189827270, - 0.377717693613385810, -0.925920808671769960, 0.377540143579222940, - -0.925993218110251480, - 0.377362579663988450, -0.926065593502609310, 0.377185001874210450, - -0.926137934846182560, - 0.377007410216418310, -0.926210242138311270, 0.376829804697141220, - -0.926282515376337210, - 0.376652185322909620, -0.926354754557602860, 0.376474552100253880, - -0.926426959679452100, - 0.376296905035704790, -0.926499130739230510, 0.376119244135794390, - -0.926571267734284220, - 0.375941569407054420, -0.926643370661961230, 0.375763880856017750, - -0.926715439519610330, - 0.375586178489217330, -0.926787474304581750, 0.375408462313186590, - -0.926859475014227160, - 0.375230732334460030, -0.926931441645899130, 0.375052988559571860, - -0.927003374196951670, - 0.374875230995057600, -0.927075272664740100, 0.374697459647452770, - -0.927147137046620880, - 0.374519674523293210, -0.927218967339951790, 0.374341875629116030, - -0.927290763542091720, - 0.374164062971457990, -0.927362525650401110, 0.373986236556857090, - -0.927434253662241300, - 0.373808396391851370, -0.927505947574975180, 0.373630542482979280, - -0.927577607385966730, - 0.373452674836780410, -0.927649233092581180, 0.373274793459794030, - -0.927720824692185200, - 0.373096898358560690, -0.927792382182146320, 0.372918989539620770, - -0.927863905559833780, - 0.372741067009515810, -0.927935394822617890, 0.372563130774787370, - -0.928006849967869970, - 0.372385180841977360, -0.928078270992963140, 0.372207217217628950, - -0.928149657895271150, - 0.372029239908284960, -0.928221010672169440, 0.371851248920489540, - -0.928292329321034560, - 0.371673244260786630, -0.928363613839244370, 0.371495225935720760, - -0.928434864224177980, - 0.371317193951837600, -0.928506080473215480, 0.371139148315682510, - -0.928577262583738850, - 0.370961089033802040, -0.928648410553130520, 0.370783016112742720, - -0.928719524378774700, - 0.370604929559051670, -0.928790604058057020, 0.370426829379276900, - -0.928861649588363700, - 0.370248715579966360, -0.928932660967082820, 0.370070588167669130, - -0.929003638191603360, - 0.369892447148934270, -0.929074581259315750, 0.369714292530311240, - -0.929145490167611720, - 0.369536124318350760, -0.929216364913883930, 0.369357942519603190, - -0.929287205495526790, - 0.369179747140620070, -0.929358011909935500, 0.369001538187952780, - -0.929428784154506800, - 0.368823315668153960, -0.929499522226638560, 0.368645079587776150, - -0.929570226123729860, - 0.368466829953372320, -0.929640895843181330, 0.368288566771496680, - -0.929711531382394370, - 0.368110290048703050, -0.929782132738772190, 0.367931999791546500, - -0.929852699909718750, - 0.367753696006582090, -0.929923232892639560, 0.367575378700365330, - -0.929993731684941480, - 0.367397047879452820, -0.930064196284032360, 0.367218703550400930, - -0.930134626687321390, - 0.367040345719767240, -0.930205022892219070, 0.366861974394109220, - -0.930275384896137040, - 0.366683589579984930, -0.930345712696488470, 0.366505191283953480, - -0.930416006290687550, - 0.366326779512573590, -0.930486265676149780, 0.366148354272405390, - -0.930556490850291800, - 0.365969915570008910, -0.930626681810531650, 0.365791463411944570, - -0.930696838554288860, - 0.365612997804773960, -0.930766961078983710, 0.365434518755058390, - -0.930837049382038150, - 0.365256026269360380, -0.930907103460875020, 0.365077520354242180, - -0.930977123312918930, - 0.364899001016267380, -0.931047108935595170, 0.364720468261999390, - -0.931117060326330790, - 0.364541922098002180, -0.931186977482553750, 0.364363362530840730, - -0.931256860401693420, - 0.364184789567079840, -0.931326709081180430, 0.364006203213285530, - -0.931396523518446600, - 0.363827603476023610, -0.931466303710925090, 0.363648990361860550, - -0.931536049656050300, - 0.363470363877363870, -0.931605761351257830, 0.363291724029100700, - -0.931675438793984620, - 0.363113070823639530, -0.931745081981668720, 0.362934404267548750, - -0.931814690911749620, - 0.362755724367397230, -0.931884265581668150, 0.362577031129754870, - -0.931953805988865900, - 0.362398324561191310, -0.932023312130786490, 0.362219604668277570, - -0.932092784004874050, - 0.362040871457584350, -0.932162221608574320, 0.361862124935682980, - -0.932231624939334540, - 0.361683365109145950, -0.932300993994602640, 0.361504591984545260, - -0.932370328771828460, - 0.361325805568454340, -0.932439629268462360, 0.361147005867446190, - -0.932508895481956700, - 0.360968192888095290, -0.932578127409764420, 0.360789366636975690, - -0.932647325049340340, - 0.360610527120662270, -0.932716488398140250, 0.360431674345730810, - -0.932785617453620990, - 0.360252808318756830, -0.932854712213241230, 0.360073929046317080, - -0.932923772674460140, - 0.359895036534988280, -0.932992798834738850, 0.359716130791347570, - -0.933061790691539380, - 0.359537211821973180, -0.933130748242325110, 0.359358279633443080, - -0.933199671484560730, - 0.359179334232336560, -0.933268560415712050, 0.359000375625232630, - -0.933337415033246080, - 0.358821403818710920, -0.933406235334631520, 0.358642418819352100, - -0.933475021317337950, - 0.358463420633736540, -0.933543772978836170, 0.358284409268445900, - -0.933612490316598540, - 0.358105384730061760, -0.933681173328098300, 0.357926347025166070, - -0.933749822010810580, - 0.357747296160342010, -0.933818436362210960, 0.357568232142172260, - -0.933887016379776890, - 0.357389154977241000, -0.933955562060986730, 0.357210064672131900, - -0.934024073403320500, - 0.357030961233430030, -0.934092550404258870, 0.356851844667720410, - -0.934160993061284420, - 0.356672714981588260, -0.934229401371880820, 0.356493572181620200, - -0.934297775333532530, - 0.356314416274402360, -0.934366114943725900, 0.356135247266522180, - -0.934434420199948050, - 0.355956065164567010, -0.934502691099687870, 0.355776869975124640, - -0.934570927640435030, - 0.355597661704783960, -0.934639129819680780, 0.355418440360133590, - -0.934707297634917440, - 0.355239205947763370, -0.934775431083638700, 0.355059958474263030, - -0.934843530163339430, - 0.354880697946222790, -0.934911594871516090, 0.354701424370233940, - -0.934979625205665800, - 0.354522137752887430, -0.935047621163287430, 0.354342838100775600, - -0.935115582741880890, - 0.354163525420490510, -0.935183509938947500, 0.353984199718624830, - -0.935251402751989810, - 0.353804861001772160, -0.935319261178511500, 0.353625509276525970, - -0.935387085216017770, - 0.353446144549480870, -0.935454874862014620, 0.353266766827231180, - -0.935522630114009930, - 0.353087376116372530, -0.935590350969512370, 0.352907972423500360, - -0.935658037426032040, - 0.352728555755210730, -0.935725689481080370, 0.352549126118100580, - -0.935793307132169900, - 0.352369683518766630, -0.935860890376814640, 0.352190227963806890, - -0.935928439212529660, - 0.352010759459819240, -0.935995953636831300, 0.351831278013402030, - -0.936063433647237540, - 0.351651783631154680, -0.936130879241266920, 0.351472276319676260, - -0.936198290416440090, - 0.351292756085567150, -0.936265667170278260, 0.351113222935427630, - -0.936333009500304180, - 0.350933676875858360, -0.936400317404042060, 0.350754117913461170, - -0.936467590879016880, - 0.350574546054837570, -0.936534829922755500, 0.350394961306590200, - -0.936602034532785570, - 0.350215363675321740, -0.936669204706636060, 0.350035753167635300, - -0.936736340441837620, - 0.349856129790135030, -0.936803441735921560, 0.349676493549424760, - -0.936870508586420960, - 0.349496844452109600, -0.936937540990869900, 0.349317182504794320, - -0.937004538946803690, - 0.349137507714085030, -0.937071502451759190, 0.348957820086587600, - -0.937138431503274140, - 0.348778119628908420, -0.937205326098887960, 0.348598406347655040, - -0.937272186236140950, - 0.348418680249434510, -0.937339011912574960, 0.348238941340855310, - -0.937405803125732850, - 0.348059189628525780, -0.937472559873159140, 0.347879425119054510, - -0.937539282152399230, - 0.347699647819051490, -0.937605969960999990, 0.347519857735126110, - -0.937672623296509470, - 0.347340054873889190, -0.937739242156476970, 0.347160239241951330, - -0.937805826538453010, - 0.346980410845923680, -0.937872376439989890, 0.346800569692418400, - -0.937938891858640210, - 0.346620715788047320, -0.938005372791958840, 0.346440849139423580, - -0.938071819237501160, - 0.346260969753160170, -0.938138231192824360, 0.346081077635870480, - -0.938204608655486490, - 0.345901172794169100, -0.938270951623047080, 0.345721255234670120, - -0.938337260093066950, - 0.345541324963989150, -0.938403534063108060, 0.345361381988741170, - -0.938469773530733800, - 0.345181426315542610, -0.938535978493508560, 0.345001457951009780, - -0.938602148948998290, - 0.344821476901759290, -0.938668284894770170, 0.344641483174409070, - -0.938734386328392460, - 0.344461476775576480, -0.938800453247434770, 0.344281457711880230, - -0.938866485649468060, - 0.344101425989938980, -0.938932483532064490, 0.343921381616371700, - -0.938998446892797540, - 0.343741324597798600, -0.939064375729241950, 0.343561254940839330, - -0.939130270038973650, - 0.343381172652115100, -0.939196129819569900, 0.343201077738246710, - -0.939261955068609100, - 0.343020970205855540, -0.939327745783671400, 0.342840850061564060, - -0.939393501962337510, - 0.342660717311994380, -0.939459223602189920, 0.342480571963769850, - -0.939524910700812120, - 0.342300414023513690, -0.939590563255789160, 0.342120243497849590, - -0.939656181264707070, - 0.341940060393402300, -0.939721764725153340, 0.341759864716796310, - -0.939787313634716570, - 0.341579656474657210, -0.939852827990986680, 0.341399435673610360, - -0.939918307791555050, - 0.341219202320282410, -0.939983753034013940, 0.341038956421299830, - -0.940049163715957370, - 0.340858697983289440, -0.940114539834980280, 0.340678427012879310, - -0.940179881388678810, - 0.340498143516697100, -0.940245188374650880, 0.340317847501371730, - -0.940310460790495070, - 0.340137538973531880, -0.940375698633811540, 0.339957217939806880, - -0.940440901902201750, - 0.339776884406826960, -0.940506070593268300, 0.339596538381222060, - -0.940571204704615190, - 0.339416179869623410, -0.940636304233847590, 0.339235808878662120, - -0.940701369178571940, - 0.339055425414969640, -0.940766399536396070, 0.338875029485178560, - -0.940831395304928870, - 0.338694621095921190, -0.940896356481780830, 0.338514200253831000, - -0.940961283064563280, - 0.338333766965541290, -0.941026175050889260, 0.338153321237685990, - -0.941091032438372780, - 0.337972863076899830, -0.941155855224629190, 0.337792392489817460, - -0.941220643407275180, - 0.337611909483074680, -0.941285396983928660, 0.337431414063306790, - -0.941350115952208970, - 0.337250906237150650, -0.941414800309736230, 0.337070386011242730, - -0.941479450054132580, - 0.336889853392220050, -0.941544065183020810, 0.336709308386720700, - -0.941608645694025140, - 0.336528751001382350, -0.941673191584771360, 0.336348181242844100, - -0.941737702852886160, - 0.336167599117744690, -0.941802179495997650, 0.335987004632723350, - -0.941866621511735280, - 0.335806397794420560, -0.941931028897729510, 0.335625778609476230, - -0.941995401651612550, - 0.335445147084531660, -0.942059739771017310, 0.335264503226227970, - -0.942124043253578460, - 0.335083847041206580, -0.942188312096931770, 0.334903178536110290, - -0.942252546298714020, - 0.334722497717581220, -0.942316745856563780, 0.334541804592262960, - -0.942380910768120470, - 0.334361099166798900, -0.942445041031024890, 0.334180381447832740, - -0.942509136642919240, - 0.333999651442009490, -0.942573197601446870, 0.333818909155973620, - -0.942637223904252530, - 0.333638154596370920, -0.942701215548981900, 0.333457387769846790, - -0.942765172533282510, - 0.333276608683047980, -0.942829094854802710, 0.333095817342620890, - -0.942892982511192130, - 0.332915013755212650, -0.942956835500102120, 0.332734197927471160, - -0.943020653819184650, - 0.332553369866044220, -0.943084437466093490, 0.332372529577580680, - -0.943148186438483420, - 0.332191677068729320, -0.943211900734010620, 0.332010812346139380, - -0.943275580350332540, - 0.331829935416461220, -0.943339225285107720, 0.331649046286344620, - -0.943402835535996240, - 0.331468144962440920, -0.943466411100659320, 0.331287231451400990, - -0.943529951976759370, - 0.331106305759876430, -0.943593458161960390, 0.330925367894519650, - -0.943656929653927110, - 0.330744417861982890, -0.943720366450326200, 0.330563455668919590, - -0.943783768548825060, - 0.330382481321982950, -0.943847135947092690, 0.330201494827826620, - -0.943910468642799150, - 0.330020496193105530, -0.943973766633615980, 0.329839485424473940, - -0.944037029917215830, - 0.329658462528587550, -0.944100258491272660, 0.329477427512101680, - -0.944163452353461770, - 0.329296380381672800, -0.944226611501459810, 0.329115321143957360, - -0.944289735932944410, - 0.328934249805612200, -0.944352825645594750, 0.328753166373295100, - -0.944415880637091250, - 0.328572070853663690, -0.944478900905115550, 0.328390963253376630, - -0.944541886447350380, - 0.328209843579092660, -0.944604837261480260, 0.328028711837470730, - -0.944667753345190490, - 0.327847568035170960, -0.944730634696167800, 0.327666412178853060, - -0.944793481312100280, - 0.327485244275178060, -0.944856293190677210, 0.327304064330806830, - -0.944919070329589220, - 0.327122872352400510, -0.944981812726528150, 0.326941668346621530, - -0.945044520379187070, - 0.326760452320131790, -0.945107193285260610, 0.326579224279594460, - -0.945169831442444150, - 0.326397984231672660, -0.945232434848434890, 0.326216732183029770, - -0.945295003500931100, - 0.326035468140330350, -0.945357537397632290, 0.325854192110238580, - -0.945420036536239070, - 0.325672904099419900, -0.945482500914453740, 0.325491604114539260, - -0.945544930529979680, - 0.325310292162262980, -0.945607325380521280, 0.325128968249257190, - -0.945669685463784710, - 0.324947632382188430, -0.945732010777477150, 0.324766284567724330, - -0.945794301319306860, - 0.324584924812532150, -0.945856557086983910, 0.324403553123280290, - -0.945918778078219110, - 0.324222169506637130, -0.945980964290724760, 0.324040773969271450, - -0.946043115722214560, - 0.323859366517852960, -0.946105232370403340, 0.323677947159051180, - -0.946167314233007370, - 0.323496515899536760, -0.946229361307743820, 0.323315072745980150, - -0.946291373592331510, - 0.323133617705052330, -0.946353351084490590, 0.322952150783425370, - -0.946415293781942110, - 0.322770671987770710, -0.946477201682408680, 0.322589181324761390, - -0.946539074783614100, - 0.322407678801070020, -0.946600913083283530, 0.322226164423369650, - -0.946662716579143360, - 0.322044638198334620, -0.946724485268921170, 0.321863100132638580, - -0.946786219150346000, - 0.321681550232956640, -0.946847918221148000, 0.321499988505963450, - -0.946909582479058760, - 0.321318414958334910, -0.946971211921810880, 0.321136829596746780, - -0.947032806547138620, - 0.320955232427875210, -0.947094366352777220, 0.320773623458397440, - -0.947155891336463270, - 0.320592002694990330, -0.947217381495934820, 0.320410370144331880, - -0.947278836828930880, - 0.320228725813100020, -0.947340257333191940, 0.320047069707973140, - -0.947401643006459900, - 0.319865401835630610, -0.947462993846477700, 0.319683722202751370, - -0.947524309850989570, - 0.319502030816015750, -0.947585591017741090, 0.319320327682103720, - -0.947646837344479190, - 0.319138612807695900, -0.947708048828952100, 0.318956886199473770, - -0.947769225468909180, - 0.318775147864118480, -0.947830367262101010, 0.318593397808312470, - -0.947891474206279730, - 0.318411636038737960, -0.947952546299198560, 0.318229862562077580, - -0.948013583538612200, - 0.318048077385015060, -0.948074585922276230, 0.317866280514233660, - -0.948135553447947980, - 0.317684471956418020, -0.948196486113385580, 0.317502651718252260, - -0.948257383916349060, - 0.317320819806421790, -0.948318246854599090, 0.317138976227611890, - -0.948379074925898120, - 0.316957120988508150, -0.948439868128009620, 0.316775254095797380, - -0.948500626458698260, - 0.316593375556165850, -0.948561349915730270, 0.316411485376301090, - -0.948622038496872990, - 0.316229583562890490, -0.948682692199895090, 0.316047670122621860, - -0.948743311022566480, - 0.315865745062184070, -0.948803894962658380, 0.315683808388265600, - -0.948864444017943340, - 0.315501860107556040, -0.948924958186195160, 0.315319900226745050, - -0.948985437465188710, - 0.315137928752522440, -0.949045881852700560, 0.314955945691579250, - -0.949106291346508260, - 0.314773951050606070, -0.949166665944390700, 0.314591944836294710, - -0.949227005644128210, - 0.314409927055336820, -0.949287310443502010, 0.314227897714424500, - -0.949347580340295210, - 0.314045856820250820, -0.949407815332291460, 0.313863804379508500, - -0.949468015417276550, - 0.313681740398891570, -0.949528180593036670, 0.313499664885093450, - -0.949588310857359950, - 0.313317577844809070, -0.949648406208035480, 0.313135479284732950, - -0.949708466642853800, - 0.312953369211560200, -0.949768492159606680, 0.312771247631986880, - -0.949828482756087000, - 0.312589114552708660, -0.949888438430089300, 0.312406969980422500, - -0.949948359179409010, - 0.312224813921825050, -0.950008245001843000, 0.312042646383613510, - -0.950068095895189590, - 0.311860467372486130, -0.950127911857248100, 0.311678276895140550, - -0.950187692885819280, - 0.311496074958275970, -0.950247438978705230, 0.311313861568591090, - -0.950307150133709140, - 0.311131636732785270, -0.950366826348635780, 0.310949400457558760, - -0.950426467621290900, - 0.310767152749611470, -0.950486073949481700, 0.310584893615644560, - -0.950545645331016600, - 0.310402623062358880, -0.950605181763705230, 0.310220341096455910, - -0.950664683245358910, - 0.310038047724638000, -0.950724149773789610, 0.309855742953607130, - -0.950783581346811070, - 0.309673426790066490, -0.950842977962238160, 0.309491099240719050, - -0.950902339617887060, - 0.309308760312268780, -0.950961666311575080, 0.309126410011419550, - -0.951020958041121080, - 0.308944048344875710, -0.951080214804345010, 0.308761675319342570, - -0.951139436599068190, - 0.308579290941525030, -0.951198623423113230, 0.308396895218129240, - -0.951257775274304000, - 0.308214488155861220, -0.951316892150465550, 0.308032069761427330, - -0.951375974049424420, - 0.307849640041534980, -0.951435020969008340, 0.307667199002891190, - -0.951494032907046370, - 0.307484746652204160, -0.951553009861368590, 0.307302282996181950, - -0.951611951829806730, - 0.307119808041533100, -0.951670858810193860, 0.306937321794967020, - -0.951729730800363720, - 0.306754824263192780, -0.951788567798152130, 0.306572315452920800, - -0.951847369801395620, - 0.306389795370861080, -0.951906136807932230, 0.306207264023724280, - -0.951964868815601380, - 0.306024721418221900, -0.952023565822243570, 0.305842167561065080, - -0.952082227825700620, - 0.305659602458966230, -0.952140854823815830, 0.305477026118637360, - -0.952199446814433580, - 0.305294438546791720, -0.952258003795399600, 0.305111839750142220, - -0.952316525764560830, - 0.304929229735402430, -0.952375012719765880, 0.304746608509286640, - -0.952433464658864030, - 0.304563976078509050, -0.952491881579706320, 0.304381332449784940, - -0.952550263480144930, - 0.304198677629829270, -0.952608610358033240, 0.304016011625357570, - -0.952666922211226170, - 0.303833334443086470, -0.952725199037579570, 0.303650646089731910, - -0.952783440834950920, - 0.303467946572011370, -0.952841647601198720, 0.303285235896641910, - -0.952899819334182880, - 0.303102514070341060, -0.952957956031764700, 0.302919781099827420, - -0.953016057691806530, - 0.302737036991819140, -0.953074124312172200, 0.302554281753035670, - -0.953132155890726750, - 0.302371515390196130, -0.953190152425336560, 0.302188737910020040, - -0.953248113913869320, - 0.302005949319228200, -0.953306040354193750, 0.301823149624540650, - -0.953363931744180330, - 0.301640338832678880, -0.953421788081700310, 0.301457516950363940, - -0.953479609364626610, - 0.301274683984318000, -0.953537395590833280, 0.301091839941263210, - -0.953595146758195680, - 0.300908984827921890, -0.953652862864590500, 0.300726118651017620, - -0.953710543907895560, - 0.300543241417273400, -0.953768189885990330, 0.300360353133413580, - -0.953825800796755050, - 0.300177453806162120, -0.953883376638071770, 0.299994543442243580, - -0.953940917407823500, - 0.299811622048383460, -0.953998423103894490, 0.299628689631306790, - -0.954055893724170660, - 0.299445746197739950, -0.954113329266538800, 0.299262791754409010, - -0.954170729728887280, - 0.299079826308040480, -0.954228095109105670, 0.298896849865361910, - -0.954285425405084650, - 0.298713862433100390, -0.954342720614716480, 0.298530864017984230, - -0.954399980735894490, - 0.298347854626741570, -0.954457205766513490, 0.298164834266100910, - -0.954514395704469500, - 0.297981802942791920, -0.954571550547659630, 0.297798760663543550, - -0.954628670293982680, - 0.297615707435086310, -0.954685754941338340, 0.297432643264150030, - -0.954742804487627940, - 0.297249568157465890, -0.954799818930753720, 0.297066482121764840, - -0.954856798268619580, - 0.296883385163778270, -0.954913742499130520, 0.296700277290238460, - -0.954970651620192790, - 0.296517158507877410, -0.955027525629714160, 0.296334028823428240, - -0.955084364525603410, - 0.296150888243623960, -0.955141168305770670, 0.295967736775197890, - -0.955197936968127710, - 0.295784574424884370, -0.955254670510586990, 0.295601401199417360, - -0.955311368931062720, - 0.295418217105532070, -0.955368032227470240, 0.295235022149963390, - -0.955424660397726330, - 0.295051816339446720, -0.955481253439748770, 0.294868599680718380, - -0.955537811351456770, - 0.294685372180514330, -0.955594334130771110, 0.294502133845571720, - -0.955650821775613220, - 0.294318884682627570, -0.955707274283906560, 0.294135624698419080, - -0.955763691653575440, - 0.293952353899684770, -0.955820073882545420, 0.293769072293162400, - -0.955876420968743590, - 0.293585779885591310, -0.955932732910098170, 0.293402476683710060, - -0.955989009704538930, - 0.293219162694258680, -0.956045251349996410, 0.293035837923976920, - -0.956101457844403040, - 0.292852502379604810, -0.956157629185692140, 0.292669156067883570, - -0.956213765371798470, - 0.292485798995553830, -0.956269866400658140, 0.292302431169357610, - -0.956325932270208230, - 0.292119052596036540, -0.956381962978387620, 0.291935663282332780, - -0.956437958523136180, - 0.291752263234989370, -0.956493918902394990, 0.291568852460749040, - -0.956549844114106820, - 0.291385430966355720, -0.956605734156215080, 0.291201998758553020, - -0.956661589026664980, - 0.291018555844085090, -0.956717408723403050, 0.290835102229696940, - -0.956773193244376930, - 0.290651637922133220, -0.956828942587535370, 0.290468162928139870, - -0.956884656750828900, - 0.290284677254462330, -0.956940335732208940, 0.290101180907847140, - -0.956995979529628230, - 0.289917673895040860, -0.957051588141040970, 0.289734156222790250, - -0.957107161564402790, - 0.289550627897843140, -0.957162699797670100, 0.289367088926946960, - -0.957218202838801210, - 0.289183539316850310, -0.957273670685755200, 0.288999979074301530, - -0.957329103336492790, - 0.288816408206049480, -0.957384500788975860, 0.288632826718843940, - -0.957439863041167570, - 0.288449234619434170, -0.957495190091032570, 0.288265631914570830, - -0.957550481936536470, - 0.288082018611004300, -0.957605738575646240, 0.287898394715485170, - -0.957660960006330610, - 0.287714760234765280, -0.957716146226558870, 0.287531115175595930, - -0.957771297234302320, - 0.287347459544729570, -0.957826413027532910, 0.287163793348918560, - -0.957881493604224250, - 0.286980116594915570, -0.957936538962351420, 0.286796429289474190, - -0.957991549099890370, - 0.286612731439347790, -0.958046524014818600, 0.286429023051290750, - -0.958101463705114620, - 0.286245304132057120, -0.958156368168758820, 0.286061574688402100, - -0.958211237403732260, - 0.285877834727080730, -0.958266071408017670, 0.285694084254848320, - -0.958320870179598880, - 0.285510323278461380, -0.958375633716461170, 0.285326551804675810, - -0.958430362016591040, - 0.285142769840248720, -0.958485055077976100, 0.284958977391937150, - -0.958539712898605730, - 0.284775174466498300, -0.958594335476470220, 0.284591361070690550, - -0.958648922809561040, - 0.284407537211271820, -0.958703474895871600, 0.284223702895001100, - -0.958757991733395710, - 0.284039858128637360, -0.958812473320129200, 0.283856002918939750, - -0.958866919654069010, - 0.283672137272668550, -0.958921330733213060, 0.283488261196583550, - -0.958975706555561080, - 0.283304374697445790, -0.959030047119113550, 0.283120477782015990, - -0.959084352421872730, - 0.282936570457055390, -0.959138622461841890, 0.282752652729326040, - -0.959192857237025740, - 0.282568724605589740, -0.959247056745430090, 0.282384786092609420, - -0.959301220985062210, - 0.282200837197147500, -0.959355349953930790, 0.282016877925967690, - -0.959409443650045550, - 0.281832908285833460, -0.959463502071417510, 0.281648928283508680, - -0.959517525216059260, - 0.281464937925758050, -0.959571513081984520, 0.281280937219346110, - -0.959625465667208300, - 0.281096926171038320, -0.959679382969746750, 0.280912904787600120, - -0.959733264987617680, - 0.280728873075797190, -0.959787111718839900, 0.280544831042396360, - -0.959840923161433660, - 0.280360778694163810, -0.959894699313420530, 0.280176716037867040, - -0.959948440172823210, - 0.279992643080273380, -0.960002145737665850, 0.279808559828150390, - -0.960055816005973890, - 0.279624466288266700, -0.960109450975773940, 0.279440362467390510, - -0.960163050645094000, - 0.279256248372291240, -0.960216615011963430, 0.279072124009737970, - -0.960270144074412800, - 0.278887989386500280, -0.960323637830473920, 0.278703844509348600, - -0.960377096278180130, - 0.278519689385053060, -0.960430519415565790, 0.278335524020384970, - -0.960483907240666790, - 0.278151348422115090, -0.960537259751520050, 0.277967162597015430, - -0.960590576946164120, - 0.277782966551857800, -0.960643858822638470, 0.277598760293414290, - -0.960697105378984450, - 0.277414543828458200, -0.960750316613243950, 0.277230317163762120, - -0.960803492523460760, - 0.277046080306099950, -0.960856633107679660, 0.276861833262245390, - -0.960909738363946770, - 0.276677576038972420, -0.960962808290309780, 0.276493308643056100, - -0.961015842884817230, - 0.276309031081271030, -0.961068842145519350, 0.276124743360392890, - -0.961121806070467380, - 0.275940445487197320, -0.961174734657714080, 0.275756137468460120, - -0.961227627905313460, - 0.275571819310958250, -0.961280485811320640, 0.275387491021468140, - -0.961333308373792270, - 0.275203152606767370, -0.961386095590786250, 0.275018804073633380, - -0.961438847460361570, - 0.274834445428843940, -0.961491563980579000, 0.274650076679177790, - -0.961544245149499990, - 0.274465697831413220, -0.961596890965187860, 0.274281308892329710, - -0.961649501425706820, - 0.274096909868706330, -0.961702076529122540, 0.273912500767323320, - -0.961754616273502010, - 0.273728081594960650, -0.961807120656913540, 0.273543652358398730, - -0.961859589677426570, - 0.273359213064418790, -0.961912023333112100, 0.273174763719801870, - -0.961964421622042320, - 0.272990304331329980, -0.962016784542290560, 0.272805834905784920, - -0.962069112091931580, - 0.272621355449948980, -0.962121404269041580, 0.272436865970605350, - -0.962173661071697770, - 0.272252366474536660, -0.962225882497979020, 0.272067856968526980, - -0.962278068545965090, - 0.271883337459359890, -0.962330219213737400, 0.271698807953819510, - -0.962382334499378380, - 0.271514268458690810, -0.962434414400971990, 0.271329718980758420, - -0.962486458916603450, - 0.271145159526808070, -0.962538468044359160, 0.270960590103625330, - -0.962590441782326780, - 0.270776010717996010, -0.962642380128595710, 0.270591421376707050, - -0.962694283081255930, - 0.270406822086544820, -0.962746150638399410, 0.270222212854296930, - -0.962797982798119010, - 0.270037593686750510, -0.962849779558509030, 0.269852964590693910, - -0.962901540917665000, - 0.269668325572915200, -0.962953266873683880, 0.269483676640202840, - -0.963004957424663850, - 0.269299017799346230, -0.963056612568704340, 0.269114349057134330, - -0.963108232303906190, - 0.268929670420357310, -0.963159816628371360, 0.268744981895805090, - -0.963211365540203480, - 0.268560283490267890, -0.963262879037507070, 0.268375575210537010, - -0.963314357118388090, - 0.268190857063403180, -0.963365799780954050, 0.268006129055658350, - -0.963417207023313350, - 0.267821391194094320, -0.963468578843575950, 0.267636643485503090, - -0.963519915239853140, - 0.267451885936677740, -0.963571216210257210, 0.267267118554410930, - -0.963622481752902220, - 0.267082341345496350, -0.963673711865903230, 0.266897554316727510, - -0.963724906547376410, - 0.266712757474898420, -0.963776065795439840, 0.266527950826803810, - -0.963827189608212340, - 0.266343134379238180, -0.963878277983814200, 0.266158308138997050, - -0.963929330920367140, - 0.265973472112875530, -0.963980348415994110, 0.265788626307669970, - -0.964031330468819280, - 0.265603770730176440, -0.964082277076968140, 0.265418905387191260, - -0.964133188238567640, - 0.265234030285511900, -0.964184063951745720, 0.265049145431935200, - -0.964234904214632200, - 0.264864250833259320, -0.964285709025357370, 0.264679346496282050, - -0.964336478382053720, - 0.264494432427801630, -0.964387212282854290, 0.264309508634617220, - -0.964437910725893910, - 0.264124575123527490, -0.964488573709308410, 0.263939631901332410, - -0.964539201231235150, - 0.263754678974831510, -0.964589793289812650, 0.263569716350824880, - -0.964640349883180930, - 0.263384744036113390, -0.964690871009480920, 0.263199762037497560, - -0.964741356666855340, - 0.263014770361779060, -0.964791806853447900, 0.262829769015759330, - -0.964842221567403510, - 0.262644758006240100, -0.964892600806868890, 0.262459737340024090, - -0.964942944569991410, - 0.262274707023913590, -0.964993252854920320, 0.262089667064712100, - -0.965043525659805890, - 0.261904617469222560, -0.965093762982799590, 0.261719558244249080, - -0.965143964822054450, - 0.261534489396595630, -0.965194131175724720, 0.261349410933066350, - -0.965244262041965780, - 0.261164322860466590, -0.965294357418934660, 0.260979225185601020, - -0.965344417304789370, - 0.260794117915275570, -0.965394441697689400, 0.260609001056295920, - -0.965444430595795430, - 0.260423874615468010, -0.965494383997269500, 0.260238738599598950, - -0.965544301900275070, - 0.260053593015495130, -0.965594184302976830, 0.259868437869964330, - -0.965644031203540590, - 0.259683273169813930, -0.965693842600133690, 0.259498098921851660, - -0.965743618490924830, - 0.259312915132886350, -0.965793358874083570, 0.259127721809726150, - -0.965843063747781510, - 0.258942518959180580, -0.965892733110190860, 0.258757306588058840, - -0.965942366959485540, - 0.258572084703170390, -0.965991965293840570, 0.258386853311325710, - -0.966041528111432400, - 0.258201612419334870, -0.966091055410438830, 0.258016362034009070, - -0.966140547189038750, - 0.257831102162158930, -0.966190003445412620, 0.257645832810596440, - -0.966239424177741890, - 0.257460553986133210, -0.966288809384209580, 0.257275265695581120, - -0.966338159063000130, - 0.257089967945753230, -0.966387473212298790, 0.256904660743461850, - -0.966436751830292650, - 0.256719344095520720, -0.966485994915169840, 0.256534018008743200, - -0.966535202465119700, - 0.256348682489942910, -0.966584374478333120, 0.256163337545934570, - -0.966633510953002100, - 0.255977983183532380, -0.966682611887320190, 0.255792619409551670, - -0.966731677279481840, - 0.255607246230807550, -0.966780707127683270, 0.255421863654115460, - -0.966829701430121810, - 0.255236471686291820, -0.966878660184995910, 0.255051070334152530, - -0.966927583390505660, - 0.254865659604514630, -0.966976471044852070, 0.254680239504194990, - -0.967025323146237900, - 0.254494810040010790, -0.967074139692867040, 0.254309371218780110, - -0.967122920682944360, - 0.254123923047320620, -0.967171666114676640, 0.253938465532451140, - -0.967220375986271310, - 0.253752998680989940, -0.967269050295937790, 0.253567522499756610, - -0.967317689041886310, - 0.253382036995570270, -0.967366292222328510, 0.253196542175250560, - -0.967414859835477480, - 0.253011038045617980, -0.967463391879547440, 0.252825524613492610, - -0.967511888352754150, - 0.252640001885695580, -0.967560349253314360, 0.252454469869047900, - -0.967608774579446380, - 0.252268928570370810, -0.967657164329369880, 0.252083377996486560, - -0.967705518501305480, - 0.251897818154216910, -0.967753837093475510, 0.251712249050384750, - -0.967802120104103270, - 0.251526670691812780, -0.967850367531413620, 0.251341083085323880, - -0.967898579373632660, - 0.251155486237742030, -0.967946755628987800, 0.250969880155890720, - -0.967994896295707670, - 0.250784264846594550, -0.968043001372022260, 0.250598640316677830, - -0.968091070856162970, - 0.250413006572965280, -0.968139104746362330, 0.250227363622282540, - -0.968187103040854420, - 0.250041711471454650, -0.968235065737874320, 0.249856050127308050, - -0.968282992835658660, - 0.249670379596668520, -0.968330884332445300, 0.249484699886363010, - -0.968378740226473300, - 0.249299011003218300, -0.968426560515983190, 0.249113312954061360, - -0.968474345199216820, - 0.248927605745720260, -0.968522094274417270, 0.248741889385022420, - -0.968569807739828930, - 0.248556163878796620, -0.968617485593697540, 0.248370429233871150, - -0.968665127834269950, - 0.248184685457074780, -0.968712734459794780, 0.247998932555237220, - -0.968760305468521430, - 0.247813170535187620, -0.968807840858700970, 0.247627399403756330, - -0.968855340628585580, - 0.247441619167773440, -0.968902804776428870, 0.247255829834069320, - -0.968950233300485800, - 0.247070031409475370, -0.968997626199012310, 0.246884223900822430, - -0.969044983470266240, - 0.246698407314942500, -0.969092305112506100, 0.246512581658667380, - -0.969139591123992280, - 0.246326746938829060, -0.969186841502985950, 0.246140903162260640, - -0.969234056247750050, - 0.245955050335794590, -0.969281235356548530, 0.245769188466264670, - -0.969328378827646660, - 0.245583317560504000, -0.969375486659311280, 0.245397437625346990, - -0.969422558849810320, - 0.245211548667627680, -0.969469595397412950, 0.245025650694180470, - -0.969516596300390000, - 0.244839743711840750, -0.969563561557013180, 0.244653827727443320, - -0.969610491165555870, - 0.244467902747824210, -0.969657385124292450, 0.244281968779819170, - -0.969704243431498750, - 0.244096025830264210, -0.969751066085452140, 0.243910073905996370, - -0.969797853084430890, - 0.243724113013852130, -0.969844604426714830, 0.243538143160669180, - -0.969891320110585100, - 0.243352164353284880, -0.969938000134323960, 0.243166176598536930, - -0.969984644496215240, - 0.242980179903263980, -0.970031253194543970, 0.242794174274304190, - -0.970077826227596420, - 0.242608159718496890, -0.970124363593660280, 0.242422136242681050, - -0.970170865291024360, - 0.242236103853696040, -0.970217331317979160, 0.242050062558382180, - -0.970263761672816140, - 0.241864012363579210, -0.970310156353828110, 0.241677953276128090, - -0.970356515359309450, - 0.241491885302869300, -0.970402838687555500, 0.241305808450644390, - -0.970449126336863090, - 0.241119722726294730, -0.970495378305530450, 0.240933628136661910, - -0.970541594591857070, - 0.240747524688588540, -0.970587775194143630, 0.240561412388916620, - -0.970633920110692160, - 0.240375291244489500, -0.970680029339806130, 0.240189161262150040, - -0.970726102879790110, - 0.240003022448741500, -0.970772140728950350, 0.239816874811108110, - -0.970818142885593870, - 0.239630718356093560, -0.970864109348029470, 0.239444553090542720, - -0.970910040114567050, - 0.239258379021300120, -0.970955935183517970, 0.239072196155210660, - -0.971001794553194690, - 0.238886004499120170, -0.971047618221911100, 0.238699804059873950, - -0.971093406187982460, - 0.238513594844318500, -0.971139158449725090, 0.238327376859299970, - -0.971184875005457030, - 0.238141150111664870, -0.971230555853497380, 0.237954914608260650, - -0.971276200992166490, - 0.237768670355934210, -0.971321810419786160, 0.237582417361533650, - -0.971367384134679490, - 0.237396155631906550, -0.971412922135170940, 0.237209885173901620, - -0.971458424419585960, - 0.237023605994367340, -0.971503890986251780, 0.236837318100152380, - -0.971549321833496630, - 0.236651021498106460, -0.971594716959650160, 0.236464716195078750, - -0.971640076363043390, - 0.236278402197919620, -0.971685400042008540, 0.236092079513479050, - -0.971730687994879160, - 0.235905748148607370, -0.971775940219990140, 0.235719408110155930, - -0.971821156715677700, - 0.235533059404975460, -0.971866337480279400, 0.235346702039917920, - -0.971911482512134000, - 0.235160336021834860, -0.971956591809581600, 0.234973961357578310, - -0.972001665370963890, - 0.234787578054001080, -0.972046703194623380, 0.234601186117955550, - -0.972091705278904430, - 0.234414785556295250, -0.972136671622152120, 0.234228376375873380, - -0.972181602222713440, - 0.234041958583543460, -0.972226497078936270, 0.233855532186159950, - -0.972271356189170040, - 0.233669097190576820, -0.972316179551765300, 0.233482653603649170, - -0.972360967165074140, - 0.233296201432231560, -0.972405719027449770, 0.233109740683179740, - -0.972450435137246830, - 0.232923271363349120, -0.972495115492821190, 0.232736793479595420, - -0.972539760092530180, - 0.232550307038775330, -0.972584368934732210, 0.232363812047745010, - -0.972628942017787270, - 0.232177308513361770, -0.972673479340056430, 0.231990796442482580, - -0.972717980899902250, - 0.231804275841964780, -0.972762446695688570, 0.231617746718666580, - -0.972806876725780370, - 0.231431209079445730, -0.972851270988544180, 0.231244662931161110, - -0.972895629482347760, - 0.231058108280671280, -0.972939952205560070, 0.230871545134835070, - -0.972984239156551740, - 0.230684973500512310, -0.973028490333694100, 0.230498393384562320, - -0.973072705735360530, - 0.230311804793845530, -0.973116885359925130, 0.230125207735222020, - -0.973161029205763530, - 0.229938602215552260, -0.973205137271252800, 0.229751988241697600, - -0.973249209554771120, - 0.229565365820518870, -0.973293246054698250, 0.229378734958878120, - -0.973337246769414800, - 0.229192095663636740, -0.973381211697303290, 0.229005447941657390, - -0.973425140836747030, - 0.228818791799802360, -0.973469034186130950, 0.228632127244934230, - -0.973512891743841370, - 0.228445454283916550, -0.973556713508265560, 0.228258772923612350, - -0.973600499477792370, - 0.228072083170885790, -0.973644249650811870, 0.227885385032600700, - -0.973687964025715670, - 0.227698678515621170, -0.973731642600896400, 0.227511963626812390, - -0.973775285374748000, - 0.227325240373038830, -0.973818892345666100, 0.227138508761166260, - -0.973862463512047300, - 0.226951768798059980, -0.973905998872289460, 0.226765020490585720, - -0.973949498424792170, - 0.226578263845610110, -0.973992962167955830, 0.226391498869999210, - -0.974036390100182610, - 0.226204725570620270, -0.974079782219875680, 0.226017943954340190, - -0.974123138525439520, - 0.225831154028026200, -0.974166459015280320, 0.225644355798546440, - -0.974209743687805110, - 0.225457549272768540, -0.974252992541422500, 0.225270734457561240, - -0.974296205574542330, - 0.225083911359792780, -0.974339382785575860, 0.224897079986332540, - -0.974382524172935470, - 0.224710240344049570, -0.974425629735034990, 0.224523392439813170, - -0.974468699470289580, - 0.224336536280493690, -0.974511733377115720, 0.224149671872960840, - -0.974554731453931230, - 0.223962799224085520, -0.974597693699155050, 0.223775918340738290, - -0.974640620111207560, - 0.223589029229790020, -0.974683510688510670, 0.223402131898112480, - -0.974726365429487320, - 0.223215226352576960, -0.974769184332561770, 0.223028312600055870, - -0.974811967396159830, - 0.222841390647421280, -0.974854714618708430, 0.222654460501545550, - -0.974897425998635820, - 0.222467522169301990, -0.974940101534371720, 0.222280575657563370, - -0.974982741224347140, - 0.222093620973203590, -0.975025345066994120, 0.221906658123096260, - -0.975067913060746360, - 0.221719687114115240, -0.975110445204038890, 0.221532707953135340, - -0.975152941495307620, - 0.221345720647030810, -0.975195401932990370, 0.221158725202677100, - -0.975237826515525820, - 0.220971721626949060, -0.975280215241354220, 0.220784709926722670, - -0.975322568108916930, - 0.220597690108873650, -0.975364885116656870, 0.220410662180277940, - -0.975407166263018270, - 0.220223626147812460, -0.975449411546446380, 0.220036582018353550, - -0.975491620965388110, - 0.219849529798778750, -0.975533794518291360, 0.219662469495965180, - -0.975575932203605610, - 0.219475401116790340, -0.975618034019781750, 0.219288324668132580, - -0.975660099965271590, - 0.219101240156869770, -0.975702130038528570, 0.218914147589880900, - -0.975744124238007270, - 0.218727046974044600, -0.975786082562163930, 0.218539938316239830, - -0.975828005009455550, - 0.218352821623346430, -0.975869891578341030, 0.218165696902243770, - -0.975911742267280170, - 0.217978564159812290, -0.975953557074734300, 0.217791423402932120, - -0.975995335999165880, - 0.217604274638483670, -0.976037079039039020, 0.217417117873348300, - -0.976078786192818850, - 0.217229953114406790, -0.976120457458971910, 0.217042780368541080, - -0.976162092835966110, - 0.216855599642632570, -0.976203692322270560, 0.216668410943563790, - -0.976245255916355800, - 0.216481214278216900, -0.976286783616693630, 0.216294009653474370, - -0.976328275421757260, - 0.216106797076219600, -0.976369731330021140, 0.215919576553335460, - -0.976411151339961040, - 0.215732348091705940, -0.976452535450054060, 0.215545111698214660, - -0.976493883658778540, - 0.215357867379745550, -0.976535195964614470, 0.215170615143183500, - -0.976576472366042610, - 0.214983354995412820, -0.976617712861545640, 0.214796086943318920, - -0.976658917449606980, - 0.214608810993786920, -0.976700086128711840, 0.214421527153702190, - -0.976741218897346550, - 0.214234235429951100, -0.976782315753998650, 0.214046935829419330, - -0.976823376697157240, - 0.213859628358993830, -0.976864401725312640, 0.213672313025561140, - -0.976905390836956490, - 0.213484989836008080, -0.976946344030581560, 0.213297658797222430, - -0.976987261304682390, - 0.213110319916091360, -0.977028142657754390, 0.212922973199503260, - -0.977068988088294450, - 0.212735618654345870, -0.977109797594800880, 0.212548256287508120, - -0.977150571175773200, - 0.212360886105878580, -0.977191308829712280, 0.212173508116346080, - -0.977232010555120320, - 0.211986122325800410, -0.977272676350500860, 0.211798728741130820, - -0.977313306214358750, - 0.211611327369227610, -0.977353900145199960, 0.211423918216980810, - -0.977394458141532250, - 0.211236501291280710, -0.977434980201864260, 0.211049076599018500, - -0.977475466324706050, - 0.210861644147084830, -0.977515916508569280, 0.210674203942371490, - -0.977556330751966460, - 0.210486755991769890, -0.977596709053411780, 0.210299300302171750, - -0.977637051411420770, - 0.210111836880469720, -0.977677357824509930, 0.209924365733555860, - -0.977717628291197570, - 0.209736886868323370, -0.977757862810002760, 0.209549400291665110, - -0.977798061379446360, - 0.209361906010474190, -0.977838223998050430, 0.209174404031644700, - -0.977878350664338150, - 0.208986894362070070, -0.977918441376834370, 0.208799377008644980, - -0.977958496134064830, - 0.208611851978263460, -0.977998514934557140, 0.208424319277820650, - -0.978038497776839600, - 0.208236778914211470, -0.978078444659442380, 0.208049230894330940, - -0.978118355580896660, - 0.207861675225075150, -0.978158230539735050, 0.207674111913339540, - -0.978198069534491400, - 0.207486540966020700, -0.978237872563701090, 0.207298962390014880, - -0.978277639625900420, - 0.207111376192218560, -0.978317370719627650, 0.206923782379529210, - -0.978357065843421640, - 0.206736180958843660, -0.978396724995823090, 0.206548571937059940, - -0.978436348175373730, - 0.206360955321075680, -0.978475935380616830, 0.206173331117788770, - -0.978515486610096910, - 0.205985699334098050, -0.978555001862359550, 0.205798059976901760, - -0.978594481135952270, - 0.205610413053099320, -0.978633924429423100, 0.205422758569589780, - -0.978673331741322210, - 0.205235096533272380, -0.978712703070200420, 0.205047426951047380, - -0.978752038414610340, - 0.204859749829814420, -0.978791337773105670, 0.204672065176474290, - -0.978830601144241470, - 0.204484372997927180, -0.978869828526574120, 0.204296673301074430, - -0.978909019918661310, - 0.204108966092817010, -0.978948175319062200, 0.203921251380056150, - -0.978987294726337050, - 0.203733529169694010, -0.979026378139047580, 0.203545799468632190, - -0.979065425555756930, - 0.203358062283773370, -0.979104436975029250, 0.203170317622019920, - -0.979143412395430230, - 0.202982565490274460, -0.979182351815526930, 0.202794805895440550, - -0.979221255233887700, - 0.202607038844421110, -0.979260122649082020, 0.202419264344120220, - -0.979298954059681040, - 0.202231482401441620, -0.979337749464256780, 0.202043693023289280, - -0.979376508861383170, - 0.201855896216568160, -0.979415232249634780, 0.201668091988182500, - -0.979453919627588210, - 0.201480280345037820, -0.979492570993820700, 0.201292461294039190, - -0.979531186346911390, - 0.201104634842091960, -0.979569765685440520, 0.200916800996102370, - -0.979608309007989450, - 0.200728959762976140, -0.979646816313141210, 0.200541111149620090, - -0.979685287599479930, - 0.200353255162940420, -0.979723722865591170, 0.200165391809844500, - -0.979762122110061640, - 0.199977521097239290, -0.979800485331479680, 0.199789643032032120, - -0.979838812528434740, - 0.199601757621131050, -0.979877103699517640, 0.199413864871443750, - -0.979915358843320480, - 0.199225964789878890, -0.979953577958436740, 0.199038057383344820, - -0.979991761043461200, - 0.198850142658750120, -0.980029908096989980, 0.198662220623004320, - -0.980068019117620650, - 0.198474291283016360, -0.980106094103951770, 0.198286354645696270, - -0.980144133054583590, - 0.198098410717953730, -0.980182135968117320, 0.197910459506698720, - -0.980220102843155970, - 0.197722501018842030, -0.980258033678303550, 0.197534535261294000, - -0.980295928472165290, - 0.197346562240966000, -0.980333787223347960, 0.197158581964769040, - -0.980371609930459690, - 0.196970594439614370, -0.980409396592109910, 0.196782599672414240, - -0.980447147206909060, - 0.196594597670080220, -0.980484861773469380, 0.196406588439525050, - -0.980522540290404090, - 0.196218571987660850, -0.980560182756327950, 0.196030548321400880, - -0.980597789169856850, - 0.195842517447657990, -0.980635359529608120, 0.195654479373345370, - -0.980672893834200530, - 0.195466434105377090, -0.980710392082253970, 0.195278381650666520, - -0.980747854272389750, - 0.195090322016128330, -0.980785280403230430, 0.194902255208676660, - -0.980822670473399990, - 0.194714181235225990, -0.980860024481523870, 0.194526100102691720, - -0.980897342426228390, - 0.194338011817988600, -0.980934624306141640, 0.194149916388032530, - -0.980971870119892840, - 0.193961813819739010, -0.981009079866112630, 0.193773704120023840, - -0.981046253543432780, - 0.193585587295803750, -0.981083391150486590, 0.193397463353994740, - -0.981120492685908730, - 0.193209332301514080, -0.981157558148334830, 0.193021194145278320, - -0.981194587536402320, - 0.192833048892205290, -0.981231580848749730, 0.192644896549212240, - -0.981268538084016710, - 0.192456737123216840, -0.981305459240844670, 0.192268570621137590, - -0.981342344317875930, - 0.192080397049892380, -0.981379193313754560, 0.191892216416400310, - -0.981416006227125550, - 0.191704028727579940, -0.981452783056635520, 0.191515833990350240, - -0.981489523800932130, - 0.191327632211630990, -0.981526228458664660, 0.191139423398341420, - -0.981562897028483650, - 0.190951207557401860, -0.981599529509040720, 0.190762984695732250, - -0.981636125898989080, - 0.190574754820252800, -0.981672686196983110, 0.190386517937884580, - -0.981709210401678800, - 0.190198274055548120, -0.981745698511732990, 0.190010023180165050, - -0.981782150525804310, - 0.189821765318656580, -0.981818566442552500, 0.189633500477944220, - -0.981854946260638630, - 0.189445228664950340, -0.981891289978724990, 0.189256949886596720, - -0.981927597595475540, - 0.189068664149806280, -0.981963869109555240, 0.188880371461501330, - -0.982000104519630490, - 0.188692071828605260, -0.982036303824369020, 0.188503765258041080, - -0.982072467022439890, - 0.188315451756732120, -0.982108594112513610, 0.188127131331602530, - -0.982144685093261580, - 0.187938803989575850, -0.982180739963357200, 0.187750469737576840, - -0.982216758721474510, - 0.187562128582529740, -0.982252741366289370, 0.187373780531359110, - -0.982288687896478830, - 0.187185425590990440, -0.982324598310721160, 0.186997063768348510, - -0.982360472607696210, - 0.186808695070359330, -0.982396310786084690, 0.186620319503948420, - -0.982432112844569110, - 0.186431937076041640, -0.982467878781833170, 0.186243547793565670, - -0.982503608596561720, - 0.186055151663446630, -0.982539302287441240, 0.185866748692611720, - -0.982574959853159240, - 0.185678338887987790, -0.982610581292404750, 0.185489922256501900, - -0.982646166603868050, - 0.185301498805082040, -0.982681715786240860, 0.185113068540655510, - -0.982717228838215990, - 0.184924631470150870, -0.982752705758487830, 0.184736187600495930, - -0.982788146545751970, - 0.184547736938619640, -0.982823551198705240, 0.184359279491450640, - -0.982858919716046110, - 0.184170815265917720, -0.982894252096474070, 0.183982344268950600, - -0.982929548338690060, - 0.183793866507478390, -0.982964808441396440, 0.183605381988431350, - -0.983000032403296590, - 0.183416890718739230, -0.983035220223095640, 0.183228392705332140, - -0.983070371899499640, - 0.183039887955141060, -0.983105487431216290, 0.182851376475096310, - -0.983140566816954500, - 0.182662858272129360, -0.983175610055424420, 0.182474333353171260, - -0.983210617145337640, - 0.182285801725153320, -0.983245588085407070, 0.182097263395007760, - -0.983280522874346970, - 0.181908718369666160, -0.983315421510872810, 0.181720166656061170, - -0.983350283993701500, - 0.181531608261125130, -0.983385110321551180, 0.181343043191790590, - -0.983419900493141540, - 0.181154471454990920, -0.983454654507193270, 0.180965893057658980, - -0.983489372362428730, - 0.180777308006728670, -0.983524054057571260, 0.180588716309133280, - -0.983558699591345900, - 0.180400117971807270, -0.983593308962478650, 0.180211513001684590, - -0.983627882169697210, - 0.180022901405699510, -0.983662419211730250, 0.179834283190787180, - -0.983696920087308020, - 0.179645658363882100, -0.983731384795162090, 0.179457026931919950, - -0.983765813334025240, - 0.179268388901835880, -0.983800205702631490, 0.179079744280565390, - -0.983834561899716630, - 0.178891093075044830, -0.983868881924017220, 0.178702435292209940, - -0.983903165774271500, - 0.178513770938997590, -0.983937413449218920, 0.178325100022344140, - -0.983971624947600270, - 0.178136422549186320, -0.984005800268157870, 0.177947738526461670, - -0.984039939409634970, - 0.177759047961107140, -0.984074042370776450, 0.177570350860060790, - -0.984108109150328540, - 0.177381647230260200, -0.984142139747038570, 0.177192937078643310, - -0.984176134159655320, - 0.177004220412148860, -0.984210092386929030, 0.176815497237715000, - -0.984244014427611110, - 0.176626767562280960, -0.984277900280454370, 0.176438031392785350, - -0.984311749944212780, - 0.176249288736167940, -0.984345563417641900, 0.176060539599367960, - -0.984379340699498510, - 0.175871783989325040, -0.984413081788540700, 0.175683021912979580, - -0.984446786683527920, - 0.175494253377271400, -0.984480455383220930, 0.175305478389141370, - -0.984514087886381840, - 0.175116696955530060, -0.984547684191773960, 0.174927909083378160, - -0.984581244298162180, - 0.174739114779627310, -0.984614768204312600, 0.174550314051218490, - -0.984648255908992630, - 0.174361506905093830, -0.984681707410970940, 0.174172693348194960, - -0.984715122709017620, - 0.173983873387463850, -0.984748501801904210, 0.173795047029843270, - -0.984781844688403350, - 0.173606214282275410, -0.984815151367289140, 0.173417375151703520, - -0.984848421837337010, - 0.173228529645070490, -0.984881656097323700, 0.173039677769319390, - -0.984914854146027200, - 0.172850819531394200, -0.984948015982227030, 0.172661954938238270, - -0.984981141604703960, - 0.172473083996796030, -0.985014231012239840, 0.172284206714011350, - -0.985047284203618200, - 0.172095323096829040, -0.985080301177623800, 0.171906433152193700, - -0.985113281933042590, - 0.171717536887049970, -0.985146226468662230, 0.171528634308343500, - -0.985179134783271020, - 0.171339725423019260, -0.985212006875659460, 0.171150810238023340, - -0.985244842744618540, - 0.170961888760301360, -0.985277642388941220, 0.170772960996799230, - -0.985310405807421570, - 0.170584026954463700, -0.985343132998854790, 0.170395086640240920, - -0.985375823962037710, - 0.170206140061078120, -0.985408478695768420, 0.170017187223922090, - -0.985441097198846210, - 0.169828228135719880, -0.985473679470071810, 0.169639262803419400, - -0.985506225508247290, - 0.169450291233967930, -0.985538735312176060, 0.169261313434313890, - -0.985571208880662740, - 0.169072329411405180, -0.985603646212513400, 0.168883339172190010, - -0.985636047306535420, - 0.168694342723617440, -0.985668412161537550, 0.168505340072635900, - -0.985700740776329850, - 0.168316331226194910, -0.985733033149723490, 0.168127316191243350, - -0.985765289280531310, - 0.167938294974731230, -0.985797509167567370, 0.167749267583608030, - -0.985829692809647050, - 0.167560234024823590, -0.985861840205586980, 0.167371194305328540, - -0.985893951354205210, - 0.167182148432072880, -0.985926026254321130, 0.166993096412007770, - -0.985958064904755460, - 0.166804038252083870, -0.985990067304330030, 0.166614973959252090, - -0.986022033451868560, - 0.166425903540464220, -0.986053963346195440, 0.166236827002671390, - -0.986085856986136820, - 0.166047744352825850, -0.986117714370520090, 0.165858655597879430, - -0.986149535498173860, - 0.165669560744784140, -0.986181320367928270, 0.165480459800492890, - -0.986213068978614490, - 0.165291352771957970, -0.986244781329065460, 0.165102239666132720, - -0.986276457418114980, - 0.164913120489970090, -0.986308097244598670, 0.164723995250423190, - -0.986339700807353000, - 0.164534863954446110, -0.986371268105216030, 0.164345726608992190, - -0.986402799137027220, - 0.164156583221015890, -0.986434293901627070, 0.163967433797471110, - -0.986465752397857940, - 0.163778278345312690, -0.986497174624562880, 0.163589116871495160, - -0.986528560580586690, - 0.163399949382973230, -0.986559910264775410, 0.163210775886702460, - -0.986591223675976400, - 0.163021596389637810, -0.986622500813038480, 0.162832410898735260, - -0.986653741674811350, - 0.162643219420950450, -0.986684946260146690, 0.162454021963239190, - -0.986716114567897100, - 0.162264818532558110, -0.986747246596916480, 0.162075609135863330, - -0.986778342346060430, - 0.161886393780111910, -0.986809401814185420, 0.161697172472260540, - -0.986840425000149680, - 0.161507945219266150, -0.986871411902812470, 0.161318712028086540, - -0.986902362521034470, - 0.161129472905678780, -0.986933276853677710, 0.160940227859001140, - -0.986964154899605650, - 0.160750976895011390, -0.986994996657682870, 0.160561720020667510, - -0.987025802126775600, - 0.160372457242928400, -0.987056571305750970, 0.160183188568752240, - -0.987087304193477900, - 0.159993914005098350, -0.987118000788826280, 0.159804633558925380, - -0.987148661090667570, - 0.159615347237193090, -0.987179285097874340, 0.159426055046860750, - -0.987209872809320820, - 0.159236756994887850, -0.987240424223882250, 0.159047453088234840, - -0.987270939340435420, - 0.158858143333861390, -0.987301418157858430, 0.158668827738728370, - -0.987331860675030430, - 0.158479506309796100, -0.987362266890832400, 0.158290179054025180, - -0.987392636804146240, - 0.158100845978377090, -0.987422970413855410, 0.157911507089812640, - -0.987453267718844560, - 0.157722162395293690, -0.987483528717999710, 0.157532811901781670, - -0.987513753410208420, - 0.157343455616238280, -0.987543941794359230, 0.157154093545626010, - -0.987574093869342360, - 0.156964725696906750, -0.987604209634049160, 0.156775352077043430, - -0.987634289087372160, - 0.156585972692998590, -0.987664332228205710, 0.156396587551734940, - -0.987694339055445130, - 0.156207196660216040, -0.987724309567986960, 0.156017800025404830, - -0.987754243764729530, - 0.155828397654265320, -0.987784141644572180, 0.155638989553760850, - -0.987814003206415550, - 0.155449575730855880, -0.987843828449161740, 0.155260156192514380, - -0.987873617371714200, - 0.155070730945700510, -0.987903369972977790, 0.154881299997379400, - -0.987933086251858380, - 0.154691863354515400, -0.987962766207263420, 0.154502421024073990, - -0.987992409838101880, - 0.154312973013020240, -0.988022017143283530, 0.154123519328319360, - -0.988051588121720110, - 0.153934059976937460, -0.988081122772324070, 0.153744594965840000, - -0.988110621094009820, - 0.153555124301993500, -0.988140083085692570, 0.153365647992364020, - -0.988169508746289060, - 0.153176166043917870, -0.988198898074717610, 0.152986678463622160, - -0.988228251069897420, - 0.152797185258443410, -0.988257567730749460, 0.152607686435349140, - -0.988286848056195710, - 0.152418182001306500, -0.988316092045159690, 0.152228671963282770, - -0.988345299696566150, - 0.152039156328246160, -0.988374471009341280, 0.151849635103164180, - -0.988403605982412390, - 0.151660108295005400, -0.988432704614708340, 0.151470575910737760, - -0.988461766905159300, - 0.151281037957330250, -0.988490792852696590, 0.151091494441751430, - -0.988519782456253270, - 0.150901945370970040, -0.988548735714763200, 0.150712390751955720, - -0.988577652627162020, - 0.150522830591677370, -0.988606533192386450, 0.150333264897105050, - -0.988635377409374790, - 0.150143693675208330, -0.988664185277066230, 0.149954116932956990, - -0.988692956794401940, - 0.149764534677321620, -0.988721691960323780, 0.149574946915272210, - -0.988750390773775360, - 0.149385353653779810, -0.988779053233701520, 0.149195754899814960, - -0.988807679339048340, - 0.149006150660348470, -0.988836269088763540, 0.148816540942352030, - -0.988864822481795640, - 0.148626925752796540, -0.988893339517095130, 0.148437305098654050, - -0.988921820193613190, - 0.148247678986896200, -0.988950264510302990, 0.148058047424494740, - -0.988978672466118480, - 0.147868410418422360, -0.989007044060015270, 0.147678767975650970, - -0.989035379290950310, - 0.147489120103153680, -0.989063678157881540, 0.147299466807902820, - -0.989091940659768800, - 0.147109808096871850, -0.989120166795572690, 0.146920143977033760, - -0.989148356564255590, - 0.146730474455361750, -0.989176509964781010, 0.146540799538829870, - -0.989204626996113780, - 0.146351119234411440, -0.989232707657220050, 0.146161433549080950, - -0.989260751947067640, - 0.145971742489812370, -0.989288759864625170, 0.145782046063579860, - -0.989316731408863000, - 0.145592344277358450, -0.989344666578752640, 0.145402637138122540, - -0.989372565373267010, - 0.145212924652847520, -0.989400427791380380, 0.145023206828508360, - -0.989428253832068230, - 0.144833483672080240, -0.989456043494307710, 0.144643755190539150, - -0.989483796777076760, - 0.144454021390860440, -0.989511513679355190, 0.144264282280020530, - -0.989539194200123930, - 0.144074537864995330, -0.989566838338365120, 0.143884788152761010, - -0.989594446093062460, - 0.143695033150294580, -0.989622017463200780, 0.143505272864572290, - -0.989649552447766530, - 0.143315507302571590, -0.989677051045747210, 0.143125736471269140, - -0.989704513256131850, - 0.142935960377642700, -0.989731939077910570, 0.142746179028669620, - -0.989759328510075200, - 0.142556392431327340, -0.989786681551618640, 0.142366600592594260, - -0.989813998201535260, - 0.142176803519448000, -0.989841278458820530, 0.141987001218867340, - -0.989868522322471580, - 0.141797193697830530, -0.989895729791486660, 0.141607380963316020, - -0.989922900864865450, - 0.141417563022303130, -0.989950035541608990, 0.141227739881770480, - -0.989977133820719610, - 0.141037911548697770, -0.990004195701200910, 0.140848078030064220, - -0.990031221182058000, - 0.140658239332849240, -0.990058210262297120, 0.140468395464033110, - -0.990085162940925970, - 0.140278546430595420, -0.990112079216953770, 0.140088692239516780, - -0.990138959089390650, - 0.139898832897777380, -0.990165802557248400, 0.139708968412357580, - -0.990192609619540030, - 0.139519098790238600, -0.990219380275280000, 0.139329224038400980, - -0.990246114523483990, - 0.139139344163826280, -0.990272812363169110, 0.138949459173495440, - -0.990299473793353590, - 0.138759569074390380, -0.990326098813057330, 0.138569673873492640, - -0.990352687421301340, - 0.138379773577783890, -0.990379239617108160, 0.138189868194246640, - -0.990405755399501260, - 0.137999957729862760, -0.990432234767505970, 0.137810042191615130, - -0.990458677720148620, - 0.137620121586486180, -0.990485084256456980, 0.137430195921458550, - -0.990511454375460290, - 0.137240265203515700, -0.990537788076188750, 0.137050329439640380, - -0.990564085357674370, - 0.136860388636816430, -0.990590346218950150, 0.136670442802027230, - -0.990616570659050620, - 0.136480491942256310, -0.990642758677011570, 0.136290536064488070, - -0.990668910271869980, - 0.136100575175706200, -0.990695025442664630, 0.135910609282895440, - -0.990721104188435180, - 0.135720638393040080, -0.990747146508222710, 0.135530662513124620, - -0.990773152401069780, - 0.135340681650134330, -0.990799121866020370, 0.135150695811053850, - -0.990825054902119470, - 0.134960705002868830, -0.990850951508413620, 0.134770709232564290, - -0.990876811683950810, - 0.134580708507126220, -0.990902635427780010, 0.134390702833540240, - -0.990928422738951990, - 0.134200692218792020, -0.990954173616518500, 0.134010676669868210, - -0.990979888059532740, - 0.133820656193754690, -0.991005566067049370, 0.133630630797438390, - -0.991031207638124130, - 0.133440600487905820, -0.991056812771814340, 0.133250565272143570, - -0.991082381467178640, - 0.133060525157139180, -0.991107913723276780, 0.132870480149879400, - -0.991133409539170170, - 0.132680430257352130, -0.991158868913921350, 0.132490375486544710, - -0.991184291846594180, - 0.132300315844444680, -0.991209678336254060, 0.132110251338040470, - -0.991235028381967420, - 0.131920181974319760, -0.991260341982802440, 0.131730107760271280, - -0.991285619137828200, - 0.131540028702883280, -0.991310859846115440, 0.131349944809144220, - -0.991336064106736140, - 0.131159856086043410, -0.991361231918763460, 0.130969762540569380, - -0.991386363281272280, - 0.130779664179711790, -0.991411458193338540, 0.130589561010459600, - -0.991436516654039420, - 0.130399453039802740, -0.991461538662453790, 0.130209340274730770, - -0.991486524217661480, - 0.130019222722233350, -0.991511473318743900, 0.129829100389301010, - -0.991536385964783880, - 0.129638973282923540, -0.991561262154865290, 0.129448841410091830, - -0.991586101888073500, - 0.129258704777796270, -0.991610905163495370, 0.129068563393027410, - -0.991635671980218740, - 0.128878417262776660, -0.991660402337333210, 0.128688266394034690, - -0.991685096233929530, - 0.128498110793793220, -0.991709753669099530, 0.128307950469043590, - -0.991734374641936810, - 0.128117785426777150, -0.991758959151536110, 0.127927615673986190, - -0.991783507196993490, - 0.127737441217662280, -0.991808018777406430, 0.127547262064798050, - -0.991832493891873780, - 0.127357078222385570, -0.991856932539495360, 0.127166889697417180, - -0.991881334719373010, - 0.126976696496885980, -0.991905700430609330, 0.126786498627784430, - -0.991930029672308480, - 0.126596296097105960, -0.991954322443575950, 0.126406088911843320, - -0.991978578743518580, - 0.126215877078990400, -0.992002798571244520, 0.126025660605540460, - -0.992026981925863360, - 0.125835439498487020, -0.992051128806485720, 0.125645213764824380, - -0.992075239212224070, - 0.125454983411546210, -0.992099313142191800, 0.125264748445647110, - -0.992123350595503720, - 0.125074508874121300, -0.992147351571276090, 0.124884264703963150, - -0.992171316068626520, - 0.124694015942167770, -0.992195244086673920, 0.124503762595729650, - -0.992219135624538450, - 0.124313504671644300, -0.992242990681341700, 0.124123242176906760, - -0.992266809256206580, - 0.123932975118512200, -0.992290591348257370, 0.123742703503456630, - -0.992314336956619640, - 0.123552427338735370, -0.992338046080420420, 0.123362146631344750, - -0.992361718718787870, - 0.123171861388280650, -0.992385354870851670, 0.122981571616539080, - -0.992408954535742850, - 0.122791277323116900, -0.992432517712593550, 0.122600978515010240, - -0.992456044400537700, - 0.122410675199216280, -0.992479534598709970, 0.122220367382731500, - -0.992502988306246950, - 0.122030055072553410, -0.992526405522286100, 0.121839738275679020, - -0.992549786245966570, - 0.121649416999105540, -0.992573130476428810, 0.121459091249830950, - -0.992596438212814290, - 0.121268761034852550, -0.992619709454266140, 0.121078426361168710, - -0.992642944199928820, - 0.120888087235777220, -0.992666142448948020, 0.120697743665676120, - -0.992689304200470750, - 0.120507395657864240, -0.992712429453645460, 0.120317043219339670, - -0.992735518207621850, - 0.120126686357101580, -0.992758570461551140, 0.119936325078148620, - -0.992781586214585570, - 0.119745959389479630, -0.992804565465879140, 0.119555589298094230, - -0.992827508214586760, - 0.119365214810991350, -0.992850414459865100, 0.119174835935170960, - -0.992873284200871730, - 0.118984452677632520, -0.992896117436765980, 0.118794065045375670, - -0.992918914166708300, - 0.118603673045400840, -0.992941674389860470, 0.118413276684707770, - -0.992964398105385610, - 0.118222875970297250, -0.992987085312448390, 0.118032470909169300, - -0.993009736010214580, - 0.117842061508325020, -0.993032350197851410, 0.117651647774765000, - -0.993054927874527320, - 0.117461229715489990, -0.993077469039412300, 0.117270807337501560, - -0.993099973691677570, - 0.117080380647800550, -0.993122441830495580, 0.116889949653388850, - -0.993144873455040430, - 0.116699514361267840, -0.993167268564487230, 0.116509074778439050, - -0.993189627158012620, - 0.116318630911904880, -0.993211949234794500, 0.116128182768666920, - -0.993234234794012290, - 0.115937730355727850, -0.993256483834846440, 0.115747273680089870, - -0.993278696356479030, - 0.115556812748755290, -0.993300872358093280, 0.115366347568727250, - -0.993323011838873950, - 0.115175878147008180, -0.993345114798006910, 0.114985404490601530, - -0.993367181234679600, - 0.114794926606510250, -0.993389211148080650, 0.114604444501737460, - -0.993411204537400060, - 0.114413958183287050, -0.993433161401829360, 0.114223467658162260, - -0.993455081740560960, - 0.114032972933367300, -0.993476965552789190, 0.113842474015905660, - -0.993498812837709360, - 0.113651970912781920, -0.993520623594518090, 0.113461463631000080, - -0.993542397822413600, - 0.113270952177564360, -0.993564135520595300, 0.113080436559479720, - -0.993585836688263950, - 0.112889916783750470, -0.993607501324621610, 0.112699392857381910, - -0.993629129428871720, - 0.112508864787378830, -0.993650721000219120, 0.112318332580746190, - -0.993672276037870010, - 0.112127796244489750, -0.993693794541031680, 0.111937255785614560, - -0.993715276508913230, - 0.111746711211126660, -0.993736721940724600, 0.111556162528031630, - -0.993758130835677430, - 0.111365609743335190, -0.993779503192984580, 0.111175052864043830, - -0.993800839011860120, - 0.110984491897163380, -0.993822138291519660, 0.110793926849700630, - -0.993843401031180180, - 0.110603357728661910, -0.993864627230059750, 0.110412784541053660, - -0.993885816887378090, - 0.110222207293883180, -0.993906970002356060, 0.110031625994157000, - -0.993928086574215830, - 0.109841040648882680, -0.993949166602181130, 0.109650451265067080, - -0.993970210085476920, - 0.109459857849718030, -0.993991217023329380, 0.109269260409842920, - -0.994012187414966220, - 0.109078658952449240, -0.994033121259616400, 0.108888053484545310, - -0.994054018556510210, - 0.108697444013138670, -0.994074879304879370, 0.108506830545237980, - -0.994095703503956930, - 0.108316213087851300, -0.994116491152977070, 0.108125591647986880, - -0.994137242251175720, - 0.107934966232653760, -0.994157956797789730, 0.107744336848860260, - -0.994178634792057590, - 0.107553703503615710, -0.994199276233218910, 0.107363066203928920, - -0.994219881120514850, - 0.107172424956808870, -0.994240449453187900, 0.106981779769265340, - -0.994260981230481790, - 0.106791130648307380, -0.994281476451641550, 0.106600477600945030, - -0.994301935115913580, - 0.106409820634187840, -0.994322357222545810, 0.106219159755045520, - -0.994342742770787270, - 0.106028494970528530, -0.994363091759888570, 0.105837826287646670, - -0.994383404189101430, - 0.105647153713410700, -0.994403680057679100, 0.105456477254830660, - -0.994423919364875950, - 0.105265796918917650, -0.994444122109948040, 0.105075112712682180, - -0.994464288292152390, - 0.104884424643134970, -0.994484417910747600, 0.104693732717287500, - -0.994504510964993590, - 0.104503036942150550, -0.994524567454151740, 0.104312337324735870, - -0.994544587377484300, - 0.104121633872054730, -0.994564570734255420, 0.103930926591118540, - -0.994584517523730340, - 0.103740215488939480, -0.994604427745175660, 0.103549500572529040, - -0.994624301397859400, - 0.103358781848899700, -0.994644138481050710, 0.103168059325063390, - -0.994663938994020280, - 0.102977333008032250, -0.994683702936040250, 0.102786602904819150, - -0.994703430306383860, - 0.102595869022436280, -0.994723121104325700, 0.102405131367896790, - -0.994742775329142010, - 0.102214389948213370, -0.994762392980109930, 0.102023644770398800, - -0.994781974056508260, - 0.101832895841466670, -0.994801518557617110, 0.101642143168429830, - -0.994821026482717860, - 0.101451386758302160, -0.994840497831093180, 0.101260626618096800, - -0.994859932602027320, - 0.101069862754827880, -0.994879330794805620, 0.100879095175509010, - -0.994898692408714870, - 0.100688323887153970, -0.994918017443043200, 0.100497548896777310, - -0.994937305897080070, - 0.100306770211392820, -0.994956557770116380, 0.100115987838015370, - -0.994975773061444140, - 0.099925201783659226, -0.994994951770357020, 0.099734412055338839, - -0.995014093896149700, - 0.099543618660069444, -0.995033199438118630, 0.099352821604865513, - -0.995052268395561160, - 0.099162020896742573, -0.995071300767776170, 0.098971216542715582, - -0.995090296554063890, - 0.098780408549799664, -0.995109255753726110, 0.098589596925010708, - -0.995128178366065490, - 0.098398781675363881, -0.995147064390386470, 0.098207962807875346, - -0.995165913825994620, - 0.098017140329560770, -0.995184726672196820, 0.097826314247435903, - -0.995203502928301510, - 0.097635484568517339, -0.995222242593618240, 0.097444651299820870, - -0.995240945667458130, - 0.097253814448363354, -0.995259612149133390, 0.097062974021160875, - -0.995278242037957670, - 0.096872130025230527, -0.995296835333246090, 0.096681282467588864, - -0.995315392034315070, - 0.096490431355252607, -0.995333912140482280, 0.096299576695239225, - -0.995352395651066810, - 0.096108718494565468, -0.995370842565388990, 0.095917856760249096, - -0.995389252882770690, - 0.095726991499307315, -0.995407626602534900, 0.095536122718757485, - -0.995425963724006160, - 0.095345250425617742, -0.995444264246510340, 0.095154374626905472, - -0.995462528169374420, - 0.094963495329639061, -0.995480755491926940, 0.094772612540836410, - -0.995498946213497770, - 0.094581726267515473, -0.995517100333418110, 0.094390836516695067, - -0.995535217851020390, - 0.094199943295393190, -0.995553298765638470, 0.094009046610628907, - -0.995571343076607770, - 0.093818146469420494, -0.995589350783264600, 0.093627242878787237, - -0.995607321884947050, - 0.093436335845747912, -0.995625256380994310, 0.093245425377321389, - -0.995643154270746900, - 0.093054511480527333, -0.995661015553546910, 0.092863594162384697, - -0.995678840228737540, - 0.092672673429913366, -0.995696628295663520, 0.092481749290132753, - -0.995714379753670610, - 0.092290821750062355, -0.995732094602106430, 0.092099890816722485, - -0.995749772840319400, - 0.091908956497132696, -0.995767414467659820, 0.091718018798313525, - -0.995785019483478750, - 0.091527077727284981, -0.995802587887129160, 0.091336133291067212, - -0.995820119677964910, - 0.091145185496681130, -0.995837614855341610, 0.090954234351146898, - -0.995855073418615790, - 0.090763279861485704, -0.995872495367145730, 0.090572322034718156, - -0.995889880700290720, - 0.090381360877865011, -0.995907229417411720, 0.090190396397947820, - -0.995924541517870690, - 0.089999428601987341, -0.995941817001031350, 0.089808457497005362, - -0.995959055866258320, - 0.089617483090022917, -0.995976258112917790, 0.089426505388062016, - -0.995993423740377360, - 0.089235524398144139, -0.996010552748005870, 0.089044540127290905, - -0.996027645135173610, - 0.088853552582524684, -0.996044700901251970, 0.088662561770867121, - -0.996061720045614000, - 0.088471567699340822, -0.996078702567633980, 0.088280570374967879, - -0.996095648466687300, - 0.088089569804770507, -0.996112557742151130, 0.087898565995771685, - -0.996129430393403740, - 0.087707558954993645, -0.996146266419824620, 0.087516548689459586, - -0.996163065820794950, - 0.087325535206192226, -0.996179828595696870, 0.087134518512214321, - -0.996196554743914220, - 0.086943498614549489, -0.996213244264832040, 0.086752475520220515, - -0.996229897157836500, - 0.086561449236251239, -0.996246513422315520, 0.086370419769664919, - -0.996263093057658030, - 0.086179387127484922, -0.996279636063254650, 0.085988351316735448, - -0.996296142438496850, - 0.085797312344439880, -0.996312612182778000, 0.085606270217622613, - -0.996329045295492380, - 0.085415224943307277, -0.996345441776035900, 0.085224176528518519, - -0.996361801623805720, - 0.085033124980280414, -0.996378124838200210, 0.084842070305617148, - -0.996394411418619290, - 0.084651012511553700, -0.996410661364464100, 0.084459951605114297, - -0.996426874675137240, - 0.084268887593324127, -0.996443051350042630, 0.084077820483207846, - -0.996459191388585410, - 0.083886750281790226, -0.996475294790172160, 0.083695676996096827, - -0.996491361554210920, - 0.083504600633152404, -0.996507391680110820, 0.083313521199982740, - -0.996523385167282450, - 0.083122438703613077, -0.996539342015137940, 0.082931353151068726, - -0.996555262223090540, - 0.082740264549375803, -0.996571145790554840, 0.082549172905559659, - -0.996586992716946950, - 0.082358078226646619, -0.996602803001684130, 0.082166980519662466, - -0.996618576644185070, - 0.081975879791633108, -0.996634313643869900, 0.081784776049585201, - -0.996650014000160070, - 0.081593669300544638, -0.996665677712478160, 0.081402559551538328, - -0.996681304780248300, - 0.081211446809592386, -0.996696895202896060, 0.081020331081733912, - -0.996712448979848010, - 0.080829212374989468, -0.996727966110532490, 0.080638090696385709, - -0.996743446594378860, - 0.080446966052950097, -0.996758890430818000, 0.080255838451709291, - -0.996774297619282050, - 0.080064707899690932, -0.996789668159204560, 0.079873574403922148, - -0.996805002050020320, - 0.079682437971430126, -0.996820299291165670, 0.079491298609242866, - -0.996835559882078170, - 0.079300156324387569, -0.996850783822196610, 0.079109011123892431, - -0.996865971110961310, - 0.078917863014785095, -0.996881121747813850, 0.078726712004093313, - -0.996896235732197210, - 0.078535558098845590, -0.996911313063555740, 0.078344401306069678, - -0.996926353741335090, - 0.078153241632794315, -0.996941357764982160, 0.077962079086047645, - -0.996956325133945280, - 0.077770913672857989, -0.996971255847674320, 0.077579745400254363, - -0.996986149905620180, - 0.077388574275265049, -0.997001007307235290, 0.077197400304919297, - -0.997015828051973310, - 0.077006223496245585, -0.997030612139289450, 0.076815043856273399, - -0.997045359568640040, - 0.076623861392031617, -0.997060070339482960, 0.076432676110549283, - -0.997074744451277310, - 0.076241488018856149, -0.997089381903483400, 0.076050297123981231, - -0.997103982695563330, - 0.075859103432954503, -0.997118546826979980, 0.075667906952805383, - -0.997133074297198110, - 0.075476707690563416, -0.997147565105683480, 0.075285505653258880, - -0.997162019251903290, - 0.075094300847921291, -0.997176436735326190, 0.074903093281581137, - -0.997190817555421940, - 0.074711882961268378, -0.997205161711661850, 0.074520669894013014, - -0.997219469203518670, - 0.074329454086845867, -0.997233740030466160, 0.074138235546796952, - -0.997247974191979860, - 0.073947014280897269, -0.997262171687536170, 0.073755790296177265, - -0.997276332516613180, - 0.073564563599667454, -0.997290456678690210, 0.073373334198399157, - -0.997304544173247990, - 0.073182102099402888, -0.997318594999768600, 0.072990867309710133, - -0.997332609157735470, - 0.072799629836351618, -0.997346586646633230, 0.072608389686359048, - -0.997360527465947940, - 0.072417146866763538, -0.997374431615167030, 0.072225901384596336, - -0.997388299093779460, - 0.072034653246889416, -0.997402129901275300, 0.071843402460674000, - -0.997415924037145960, - 0.071652149032982254, -0.997429681500884180, 0.071460892970845832, - -0.997443402291984360, - 0.071269634281296415, -0.997457086409941910, 0.071078372971366502, - -0.997470733854253670, - 0.070887109048087787, -0.997484344624417930, 0.070695842518492924, - -0.997497918719934210, - 0.070504573389614009, -0.997511456140303450, 0.070313301668483263, - -0.997524956885027960, - 0.070122027362133646, -0.997538420953611230, 0.069930750477597295, - -0.997551848345558430, - 0.069739471021907376, -0.997565239060375750, 0.069548189002096472, - -0.997578593097570800, - 0.069356904425197236, -0.997591910456652630, 0.069165617298243109, - -0.997605191137131640, - 0.068974327628266732, -0.997618435138519550, 0.068783035422301728, - -0.997631642460329320, - 0.068591740687380900, -0.997644813102075420, 0.068400443430538069, - -0.997657947063273710, - 0.068209143658806454, -0.997671044343441000, 0.068017841379219388, - -0.997684104942096030, - 0.067826536598810966, -0.997697128858758500, 0.067635229324614451, - -0.997710116092949570, - 0.067443919563664106, -0.997723066644191640, 0.067252607322993652, - -0.997735980512008620, - 0.067061292609636836, -0.997748857695925690, 0.066869975430628226, - -0.997761698195469560, - 0.066678655793001543, -0.997774502010167820, 0.066487333703791507, - -0.997787269139549960, - 0.066296009170032283, -0.997799999583146470, 0.066104682198758091, - -0.997812693340489280, - 0.065913352797003930, -0.997825350411111640, 0.065722020971803977, - -0.997837970794548280, - 0.065530686730193397, -0.997850554490335110, 0.065339350079206798, - -0.997863101498009500, - 0.065148011025878860, -0.997875611817110150, 0.064956669577245010, - -0.997888085447177110, - 0.064765325740339871, -0.997900522387751620, 0.064573979522199065, - -0.997912922638376610, - 0.064382630929857410, -0.997925286198596000, 0.064191279970350679, - -0.997937613067955250, - 0.063999926650714078, -0.997949903246001190, 0.063808570977982898, - -0.997962156732281950, - 0.063617212959193190, -0.997974373526346990, 0.063425852601380200, - -0.997986553627747020, - 0.063234489911580136, -0.997998697036034390, 0.063043124896828631, - -0.998010803750762450, - 0.062851757564161420, -0.998022873771486240, 0.062660387920614985, - -0.998034907097761770, - 0.062469015973224969, -0.998046903729146840, 0.062277641729028041, - -0.998058863665200250, - 0.062086265195060247, -0.998070786905482340, 0.061894886378357744, - -0.998082673449554590, - 0.061703505285957416, -0.998094523296980010, 0.061512121924895365, - -0.998106336447323050, - 0.061320736302208648, -0.998118112900149180, 0.061129348424933755, - -0.998129852655025520, - 0.060937958300107238, -0.998141555711520520, 0.060746565934766412, - -0.998153222069203650, - 0.060555171335947781, -0.998164851727646240, 0.060363774510688827, - -0.998176444686420530, - 0.060172375466026218, -0.998188000945100300, 0.059980974208997596, - -0.998199520503260660, - 0.059789570746640007, -0.998211003360478190, 0.059598165085990598, - -0.998222449516330550, - 0.059406757234087247, -0.998233858970396850, 0.059215347197967026, - -0.998245231722257880, - 0.059023934984667986, -0.998256567771495180, 0.058832520601227581, - -0.998267867117692110, - 0.058641104054683348, -0.998279129760433200, 0.058449685352073573, - -0.998290355699304350, - 0.058258264500435732, -0.998301544933892890, 0.058066841506808263, - -0.998312697463787260, - 0.057875416378229017, -0.998323813288577560, 0.057683989121735932, - -0.998334892407855000, - 0.057492559744367684, -0.998345934821212370, 0.057301128253162144, - -0.998356940528243420, - 0.057109694655158132, -0.998367909528543820, 0.056918258957393907, - -0.998378841821709990, - 0.056726821166907783, -0.998389737407340160, 0.056535381290738825, - -0.998400596285033640, - 0.056343939335925283, -0.998411418454391300, 0.056152495309506383, - -0.998422203915015020, - 0.055961049218520520, -0.998432952666508440, 0.055769601070007072, - -0.998443664708476340, - 0.055578150871004817, -0.998454340040524800, 0.055386698628552604, - -0.998464978662261250, - 0.055195244349690031, -0.998475580573294770, 0.055003788041455885, - -0.998486145773235360, - 0.054812329710889909, -0.998496674261694640, 0.054620869365031251, - -0.998507166038285490, - 0.054429407010919147, -0.998517621102622210, 0.054237942655593556, - -0.998528039454320230, - 0.054046476306093640, -0.998538421092996730, 0.053855007969459509, - -0.998548766018269920, - 0.053663537652730679, -0.998559074229759310, 0.053472065362946755, - -0.998569345727086110, - 0.053280591107148056, -0.998579580509872500, 0.053089114892374119, - -0.998589778577742230, - 0.052897636725665401, -0.998599939930320370, 0.052706156614061798, - -0.998610064567233340, - 0.052514674564603257, -0.998620152488108870, 0.052323190584330471, - -0.998630203692576050, - 0.052131704680283317, -0.998640218180265270, 0.051940216859502626, - -0.998650195950808280, - 0.051748727129028414, -0.998660137003838490, 0.051557235495901653, - -0.998670041338990070, - 0.051365741967162731, -0.998679908955899090, 0.051174246549852087, - -0.998689739854202620, - 0.050982749251010900, -0.998699534033539280, 0.050791250077679546, - -0.998709291493549030, - 0.050599749036899337, -0.998719012233872940, 0.050408246135710995, - -0.998728696254153720, - 0.050216741381155325, -0.998738343554035230, 0.050025234780273840, - -0.998747954133162860, - 0.049833726340107257, -0.998757527991183340, 0.049642216067697226, - -0.998767065127744380, - 0.049450703970084824, -0.998776565542495610, 0.049259190054311168, - -0.998786029235087640, - 0.049067674327418126, -0.998795456205172410, 0.048876156796446746, - -0.998804846452403420, - 0.048684637468439020, -0.998814199976435390, 0.048493116350436342, - -0.998823516776924380, - 0.048301593449480172, -0.998832796853527990, 0.048110068772612716, - -0.998842040205904840, - 0.047918542326875327, -0.998851246833715180, 0.047727014119310344, - -0.998860416736620520, - 0.047535484156959261, -0.998869549914283560, 0.047343952446864526, - -0.998878646366368690, - 0.047152418996068000, -0.998887706092541290, 0.046960883811611599, - -0.998896729092468410, - 0.046769346900537960, -0.998905715365818290, 0.046577808269888908, - -0.998914664912260440, - 0.046386267926707213, -0.998923577731465780, 0.046194725878035046, - -0.998932453823106690, - 0.046003182130914644, -0.998941293186856870, 0.045811636692388955, - -0.998950095822391250, - 0.045620089569500123, -0.998958861729386080, 0.045428540769291224, - -0.998967590907519300, - 0.045236990298804750, -0.998976283356469820, 0.045045438165083225, - -0.998984939075918010, - 0.044853884375169933, -0.998993558065545680, 0.044662328936107311, - -0.999002140325035980, - 0.044470771854938744, -0.999010685854073380, 0.044279213138707016, - -0.999019194652343460, - 0.044087652794454979, -0.999027666719533690, 0.043896090829226200, - -0.999036102055332330, - 0.043704527250063421, -0.999044500659429290, 0.043512962064010327, - -0.999052862531515930, - 0.043321395278109784, -0.999061187671284600, 0.043129826899405595, - -0.999069476078429330, - 0.042938256934940959, -0.999077727752645360, 0.042746685391759139, - -0.999085942693629270, - 0.042555112276904117, -0.999094120901079070, 0.042363537597419038, - -0.999102262374694130, - 0.042171961360348002, -0.999110367114174890, 0.041980383572734502, - -0.999118435119223490, - 0.041788804241622082, -0.999126466389543390, 0.041597223374055005, - -0.999134460924839150, - 0.041405640977076712, -0.999142418724816910, 0.041214057057731589, - -0.999150339789184110, - 0.041022471623063397, -0.999158224117649430, 0.040830884680115968, - -0.999166071709923000, - 0.040639296235933854, -0.999173882565716380, 0.040447706297560768, - -0.999181656684742350, - 0.040256114872041358, -0.999189394066714920, 0.040064521966419686, - -0.999197094711349880, - 0.039872927587739845, -0.999204758618363890, 0.039681331743046659, - -0.999212385787475290, - 0.039489734439384118, -0.999219976218403530, 0.039298135683797149, - -0.999227529910869610, - 0.039106535483329839, -0.999235046864595850, 0.038914933845027241, - -0.999242527079305830, - 0.038723330775933762, -0.999249970554724420, 0.038531726283093877, - -0.999257377290578060, - 0.038340120373552791, -0.999264747286594420, 0.038148513054354856, - -0.999272080542502610, - 0.037956904332545366, -0.999279377058032710, 0.037765294215169005, - -0.999286636832916740, - 0.037573682709270514, -0.999293859866887790, 0.037382069821895340, - -0.999301046159680070, - 0.037190455560088091, -0.999308195711029470, 0.036998839930894332, - -0.999315308520673070, - 0.036807222941358991, -0.999322384588349540, 0.036615604598527057, - -0.999329423913798420, - 0.036423984909444228, -0.999336426496761240, 0.036232363881155374, - -0.999343392336980220, - 0.036040741520706299, -0.999350321434199440, 0.035849117835142184, - -0.999357213788164000, - 0.035657492831508264, -0.999364069398620550, 0.035465866516850478, - -0.999370888265317060, - 0.035274238898213947, -0.999377670388002850, 0.035082609982644702, - -0.999384415766428560, - 0.034890979777187955, -0.999391124400346050, 0.034699348288889847, - -0.999397796289508640, - 0.034507715524795889, -0.999404431433671300, 0.034316081491951658, - -0.999411029832589780, - 0.034124446197403423, -0.999417591486021720, 0.033932809648196623, - -0.999424116393725640, - 0.033741171851377642, -0.999430604555461730, 0.033549532813992221, - -0.999437055970991530, - 0.033357892543086159, -0.999443470640077770, 0.033166251045705968, - -0.999449848562484530, - 0.032974608328897315, -0.999456189737977340, 0.032782964399706793, - -0.999462494166323160, - 0.032591319265180385, -0.999468761847290050, 0.032399672932364114, - -0.999474992780647780, - 0.032208025408304704, -0.999481186966166950, 0.032016376700048046, - -0.999487344403620080, - 0.031824726814640963, -0.999493465092780590, 0.031633075759129645, - -0.999499549033423640, - 0.031441423540560343, -0.999505596225325310, 0.031249770165979990, - -0.999511606668263440, - 0.031058115642434700, -0.999517580362016990, 0.030866459976971503, - -0.999523517306366350, - 0.030674803176636581, -0.999529417501093140, 0.030483145248477058, - -0.999535280945980540, - 0.030291486199539423, -0.999541107640812940, 0.030099826036870208, - -0.999546897585375960, - 0.029908164767516655, -0.999552650779456990, 0.029716502398525156, - -0.999558367222844300, - 0.029524838936943035, -0.999564046915327740, 0.029333174389816984, - -0.999569689856698580, - 0.029141508764193740, -0.999575296046749220, 0.028949842067120746, - -0.999580865485273700, - 0.028758174305644590, -0.999586398172067070, 0.028566505486812797, - -0.999591894106925950, - 0.028374835617672258, -0.999597353289648380, 0.028183164705269902, - -0.999602775720033530, - 0.027991492756653365, -0.999608161397882110, 0.027799819778869434, - -0.999613510322995950, - 0.027608145778965820, -0.999618822495178640, 0.027416470763989606, - -0.999624097914234570, - 0.027224794740987910, -0.999629336579970110, 0.027033117717008563, - -0.999634538492192300, - 0.026841439699098527, -0.999639703650710200, 0.026649760694305708, - -0.999644832055333610, - 0.026458080709677145, -0.999649923705874240, 0.026266399752260809, - -0.999654978602144690, - 0.026074717829104040, -0.999659996743959220, 0.025883034947254208, - -0.999664978131133310, - 0.025691351113759395, -0.999669922763483760, 0.025499666335666818, - -0.999674830640828740, - 0.025307980620024630, -0.999679701762987930, 0.025116293973880335, - -0.999684536129782140, - 0.024924606404281485, -0.999689333741033640, 0.024732917918276334, - -0.999694094596566000, - 0.024541228522912264, -0.999698818696204250, 0.024349538225237600, - -0.999703506039774650, - 0.024157847032300020, -0.999708156627104880, 0.023966154951147241, - -0.999712770458023870, - 0.023774461988827676, -0.999717347532362190, 0.023582768152388880, - -0.999721887849951310, - 0.023391073448879338, -0.999726391410624470, 0.023199377885346890, - -0.999730858214216030, - 0.023007681468839410, -0.999735288260561680, 0.022815984206405477, - -0.999739681549498660, - 0.022624286105092803, -0.999744038080865430, 0.022432587171950024, - -0.999748357854501780, - 0.022240887414024919, -0.999752640870248840, 0.022049186838366180, - -0.999756887127949080, - 0.021857485452021874, -0.999761096627446610, 0.021665783262040089, - -0.999765269368586450, - 0.021474080275469605, -0.999769405351215280, 0.021282376499358355, - -0.999773504575180990, - 0.021090671940755180, -0.999777567040332940, 0.020898966606708289, - -0.999781592746521670, - 0.020707260504265912, -0.999785581693599210, 0.020515553640476986, - -0.999789533881418780, - 0.020323846022389572, -0.999793449309835270, 0.020132137657052664, - -0.999797327978704690, - 0.019940428551514598, -0.999801169887884260, 0.019748718712823757, - -0.999804975037232870, - 0.019557008148029204, -0.999808743426610520, 0.019365296864179146, - -0.999812475055878780, - 0.019173584868322699, -0.999816169924900410, 0.018981872167508348, - -0.999819828033539420, - 0.018790158768784596, -0.999823449381661570, 0.018598444679200642, - -0.999827033969133420, - 0.018406729905804820, -0.999830581795823400, 0.018215014455646376, - -0.999834092861600960, - 0.018023298335773701, -0.999837567166337090, 0.017831581553236088, - -0.999841004709904000, - 0.017639864115082195, -0.999844405492175240, 0.017448146028360704, - -0.999847769513025900, - 0.017256427300120978, -0.999851096772332190, 0.017064707937411529, - -0.999854387269971890, - 0.016872987947281773, -0.999857641005823860, 0.016681267336780482, - -0.999860857979768540, - 0.016489546112956454, -0.999864038191687680, 0.016297824282859176, - -0.999867181641464380, - 0.016106101853537263, -0.999870288328982950, 0.015914378832040249, - -0.999873358254129260, - 0.015722655225417017, -0.999876391416790410, 0.015530931040716478, - -0.999879387816854930, - 0.015339206284988220, -0.999882347454212560, 0.015147480965280975, - -0.999885270328754520, - 0.014955755088644378, -0.999888156440373320, 0.014764028662127416, - -0.999891005788962950, - 0.014572301692779104, -0.999893818374418490, 0.014380574187649138, - -0.999896594196636680, - 0.014188846153786343, -0.999899333255515390, 0.013997117598240459, - -0.999902035550953920, - 0.013805388528060349, -0.999904701082852900, 0.013613658950295789, - -0.999907329851114300, - 0.013421928871995907, -0.999909921855641540, 0.013230198300209845, - -0.999912477096339240, - 0.013038467241987433, -0.999914995573113470, 0.012846735704377631, - -0.999917477285871770, - 0.012655003694430301, -0.999919922234522750, 0.012463271219194662, - -0.999922330418976490, - 0.012271538285719944, -0.999924701839144500, 0.012079804901056066, - -0.999927036494939640, - 0.011888071072252072, -0.999929334386276070, 0.011696336806357907, - -0.999931595513069200, - 0.011504602110422875, -0.999933819875236000, 0.011312866991496287, - -0.999936007472694620, - 0.011121131456628141, -0.999938158305364590, 0.010929395512867561, - -0.999940272373166960, - 0.010737659167264572, -0.999942349676023910, 0.010545922426868548, - -0.999944390213859060, - 0.010354185298728884, -0.999946393986597460, 0.010162447789895645, - -0.999948360994165400, - 0.009970709907418029, -0.999950291236490480, 0.009778971658346134, - -0.999952184713501780, - 0.009587233049729183, -0.999954041425129780, 0.009395494088617302, - -0.999955861371306100, - 0.009203754782059960, -0.999957644551963900, 0.009012015137106642, - -0.999959390967037450, - 0.008820275160807512, -0.999961100616462820, 0.008628534860211857, - -0.999962773500176930, - 0.008436794242369860, -0.999964409618118280, 0.008245053314331058, - -0.999966008970226920, - 0.008053312083144991, -0.999967571556443780, 0.007861570555861883, - -0.999969097376711580, - 0.007669828739531077, -0.999970586430974140, 0.007478086641202815, - -0.999972038719176730, - 0.007286344267926684, -0.999973454241265940, 0.007094601626752279, - -0.999974832997189810, - 0.006902858724729877, -0.999976174986897610, 0.006711115568908869, - -0.999977480210339940, - 0.006519372166339549, -0.999978748667468830, 0.006327628524071549, - -0.999979980358237650, - 0.006135884649154515, -0.999981175282601110, 0.005944140548638765, - -0.999982333440515350, - 0.005752396229573737, -0.999983454831937730, 0.005560651699009764, - -0.999984539456826970, - 0.005368906963996303, -0.999985587315143200, 0.005177162031583702, - -0.999986598406848000, - 0.004985416908821652, -0.999987572731904080, 0.004793671602759852, - -0.999988510290275690, - 0.004601926120448672, -0.999989411081928400, 0.004410180468937601, - -0.999990275106828920, - 0.004218434655277024, -0.999991102364945590, 0.004026688686516664, - -0.999991892856248010, - 0.003834942569706248, -0.999992646580707190, 0.003643196311896179, - -0.999993363538295150, - 0.003451449920135975, -0.999994043728985820, 0.003259703401476044, - -0.999994687152754080, - 0.003067956762966138, -0.999995293809576190, 0.002876210011656010, - -0.999995863699429940, - 0.002684463154596083, -0.999996396822294350, 0.002492716198835898, - -0.999996893178149880, - 0.002300969151425887, -0.999997352766978210, 0.002109222019415816, - -0.999997775588762350, - 0.001917474809855460, -0.999998161643486980, 0.001725727529795258, - -0.999998510931137790, - 0.001533980186284766, -0.999998823451701880, 0.001342232786374430, - -0.999999099205167830, - 0.001150485337113809, -0.999999338191525530, 0.000958737845553352, - -0.999999540410766110, - 0.000766990318742846, -0.999999705862882230, 0.000575242763732077, - -0.999999834547867670, - 0.000383495187571497, -0.999999926465717890, 0.000191747597310674, - -0.999999981616429330, - -}; - -/** -* \par -* cosFactor tables are generated using the formula :
cos_factors[n] = 2 * cos((2n+1)*pi/(4*N))
-* \par -* C command to generate the table -* \par -*
 for(i = 0; i< N; i++)    
-* {    
-*    cos_factors[i]= 2 * cos((2*i+1)*c/2);    
-* } 
-* \par -* where N is the number of factors to generate and c is pi/(2*N) -*/ -static const float32_t cos_factors_128[128] = { - 0.999981175282601110f, 0.999830581795823400f, 0.999529417501093140f, - 0.999077727752645360f, - 0.998475580573294770f, 0.997723066644191640f, 0.996820299291165670f, - 0.995767414467659820f, - 0.994564570734255420f, 0.993211949234794500f, 0.991709753669099530f, - 0.990058210262297120f, - 0.988257567730749460f, 0.986308097244598670f, 0.984210092386929030f, - 0.981963869109555240f, - 0.979569765685440520f, 0.977028142657754390f, 0.974339382785575860f, - 0.971503890986251780f, - 0.968522094274417380f, 0.965394441697689400f, 0.962121404269041580f, - 0.958703474895871600f, - 0.955141168305770780f, 0.951435020969008340f, 0.947585591017741090f, - 0.943593458161960390f, - 0.939459223602189920f, 0.935183509938947610f, 0.930766961078983710f, - 0.926210242138311380f, - 0.921514039342042010f, 0.916679059921042700f, 0.911706032005429880f, - 0.906595704514915330f, - 0.901348847046022030f, 0.895966249756185220f, 0.890448723244757880f, - 0.884797098430937790f, - 0.879012226428633530f, 0.873094978418290090f, 0.867046245515692650f, - 0.860866938637767310f, - 0.854557988365400530f, 0.848120344803297230f, 0.841554977436898440f, - 0.834862874986380010f, - 0.828045045257755800f, 0.821102514991104650f, 0.814036329705948410f, - 0.806847553543799330f, - 0.799537269107905010f, 0.792106577300212390f, 0.784556597155575240f, - 0.776888465673232440f, - 0.769103337645579700f, 0.761202385484261780f, 0.753186799043612520f, - 0.745057785441466060f, - 0.736816568877369900f, 0.728464390448225200f, 0.720002507961381650f, - 0.711432195745216430f, - 0.702754744457225300f, 0.693971460889654000f, 0.685083667772700360f, - 0.676092703575316030f, - 0.666999922303637470f, 0.657806693297078640f, 0.648514401022112550f, - 0.639124444863775730f, - 0.629638238914927100f, 0.620057211763289210f, 0.610382806276309480f, - 0.600616479383868970f, - 0.590759701858874280f, 0.580813958095764530f, 0.570780745886967370f, - 0.560661576197336030f, - 0.550457972936604810f, 0.540171472729892970f, 0.529803624686294830f, - 0.519355990165589530f, - 0.508830142543106990f, 0.498227666972781870f, 0.487550160148436050f, - 0.476799230063322250f, - 0.465976495767966130f, 0.455083587126343840f, 0.444122144570429260f, - 0.433093818853152010f, - 0.422000270799799790f, 0.410843171057903910f, 0.399624199845646790f, - 0.388345046698826300f, - 0.377007410216418310f, 0.365612997804773960f, 0.354163525420490510f, - 0.342660717311994380f, - 0.331106305759876430f, 0.319502030816015750f, 0.307849640041534980f, - 0.296150888243623960f, - 0.284407537211271820f, 0.272621355449948980f, 0.260794117915275570f, - 0.248927605745720260f, - 0.237023605994367340f, 0.225083911359792780f, 0.213110319916091360f, - 0.201104634842091960f, - 0.189068664149806280f, 0.177004220412148860f, 0.164913120489970090f, - 0.152797185258443410f, - 0.140658239332849240f, 0.128498110793793220f, 0.116318630911904880f, - 0.104121633872054730f, - 0.091908956497132696f, 0.079682437971430126f, 0.067443919563664106f, - 0.055195244349690031f, - 0.042938256934940959f, 0.030674803176636581f, 0.018406729905804820f, - 0.006135884649154515f -}; - -static const float32_t cos_factors_512[512] = { - 0.999998823451701880f, 0.999989411081928400f, 0.999970586430974140f, - 0.999942349676023910f, - 0.999904701082852900f, 0.999857641005823860f, 0.999801169887884260f, - 0.999735288260561680f, - 0.999659996743959220f, 0.999575296046749220f, 0.999481186966166950f, - 0.999377670388002850f, - 0.999264747286594420f, 0.999142418724816910f, 0.999010685854073380f, - 0.998869549914283560f, - 0.998719012233872940f, 0.998559074229759310f, 0.998389737407340160f, - 0.998211003360478190f, - 0.998022873771486240f, 0.997825350411111640f, 0.997618435138519550f, - 0.997402129901275300f, - 0.997176436735326190f, 0.996941357764982160f, 0.996696895202896060f, - 0.996443051350042630f, - 0.996179828595696980f, 0.995907229417411720f, 0.995625256380994310f, - 0.995333912140482280f, - 0.995033199438118630f, 0.994723121104325700f, 0.994403680057679100f, - 0.994074879304879370f, - 0.993736721940724600f, 0.993389211148080650f, 0.993032350197851410f, - 0.992666142448948020f, - 0.992290591348257370f, 0.991905700430609330f, 0.991511473318743900f, - 0.991107913723276890f, - 0.990695025442664630f, 0.990272812363169110f, 0.989841278458820530f, - 0.989400427791380380f, - 0.988950264510302990f, 0.988490792852696590f, 0.988022017143283530f, - 0.987543941794359230f, - 0.987056571305750970f, 0.986559910264775410f, 0.986053963346195440f, - 0.985538735312176060f, - 0.985014231012239840f, 0.984480455383220930f, 0.983937413449218920f, - 0.983385110321551180f, - 0.982823551198705240f, 0.982252741366289370f, 0.981672686196983110f, - 0.981083391150486710f, - 0.980484861773469380f, 0.979877103699517640f, 0.979260122649082020f, - 0.978633924429423210f, - 0.977998514934557140f, 0.977353900145199960f, 0.976700086128711840f, - 0.976037079039039020f, - 0.975364885116656980f, 0.974683510688510670f, 0.973992962167955830f, - 0.973293246054698250f, - 0.972584368934732210f, 0.971866337480279400f, 0.971139158449725090f, - 0.970402838687555500f, - 0.969657385124292450f, 0.968902804776428870f, 0.968139104746362440f, - 0.967366292222328510f, - 0.966584374478333120f, 0.965793358874083680f, 0.964993252854920320f, - 0.964184063951745830f, - 0.963365799780954050f, 0.962538468044359160f, 0.961702076529122540f, - 0.960856633107679660f, - 0.960002145737665960f, 0.959138622461841890f, 0.958266071408017670f, - 0.957384500788975860f, - 0.956493918902395100f, 0.955594334130771110f, 0.954685754941338340f, - 0.953768189885990330f, - 0.952841647601198720f, 0.951906136807932350f, 0.950961666311575080f, - 0.950008245001843000f, - 0.949045881852700560f, 0.948074585922276230f, 0.947094366352777220f, - 0.946105232370403450f, - 0.945107193285260610f, 0.944100258491272660f, 0.943084437466093490f, - 0.942059739771017310f, - 0.941026175050889260f, 0.939983753034014050f, 0.938932483532064600f, - 0.937872376439989890f, - 0.936803441735921560f, 0.935725689481080370f, 0.934639129819680780f, - 0.933543772978836170f, - 0.932439629268462360f, 0.931326709081180430f, 0.930205022892219070f, - 0.929074581259315860f, - 0.927935394822617890f, 0.926787474304581750f, 0.925630830509872720f, - 0.924465474325262600f, - 0.923291416719527640f, 0.922108668743345180f, 0.920917241529189520f, - 0.919717146291227360f, - 0.918508394325212250f, 0.917290997008377910f, 0.916064965799331720f, - 0.914830312237946200f, - 0.913587047945250810f, 0.912335184623322750f, 0.911074734055176360f, - 0.909805708104652220f, - 0.908528118716306120f, 0.907241977915295820f, 0.905947297807268460f, - 0.904644090578246240f, - 0.903332368494511820f, 0.902012143902493180f, 0.900683429228646970f, - 0.899346236979341570f, - 0.898000579740739880f, 0.896646470178680150f, 0.895283921038557580f, - 0.893912945145203250f, - 0.892533555402764580f, 0.891145764794583180f, 0.889749586383072780f, - 0.888345033309596350f, - 0.886932118794342190f, 0.885510856136199950f, 0.884081258712634990f, - 0.882643339979562790f, - 0.881197113471222090f, 0.879742592800047410f, 0.878279791656541580f, - 0.876808723809145650f, - 0.875329403104110890f, 0.873841843465366860f, 0.872346058894391540f, - 0.870842063470078980f, - 0.869329871348606840f, 0.867809496763303320f, 0.866280954024512990f, - 0.864744257519462380f, - 0.863199421712124160f, 0.861646461143081300f, 0.860085390429390140f, - 0.858516224264442740f, - 0.856938977417828760f, 0.855353664735196030f, 0.853760301138111410f, - 0.852158901623919830f, - 0.850549481265603480f, 0.848932055211639610f, 0.847306638685858320f, - 0.845673246987299070f, - 0.844031895490066410f, 0.842382599643185850f, 0.840725374970458070f, - 0.839060237070312740f, - 0.837387201615661940f, 0.835706284353752600f, 0.834017501106018130f, - 0.832320867767929680f, - 0.830616400308846310f, 0.828904114771864870f, 0.827184027273669130f, - 0.825456154004377550f, - 0.823720511227391430f, 0.821977115279241550f, 0.820225982569434690f, - 0.818467129580298660f, - 0.816700572866827850f, 0.814926329056526620f, 0.813144414849253590f, - 0.811354847017063730f, - 0.809557642404051260f, 0.807752817926190360f, 0.805940390571176280f, - 0.804120377398265810f, - 0.802292795538115720f, 0.800457662192622820f, 0.798614994634760820f, - 0.796764810208418830f, - 0.794907126328237010f, 0.793041960479443640f, 0.791169330217690200f, - 0.789289253168885650f, - 0.787401747029031430f, 0.785506829564053930f, 0.783604518609638200f, - 0.781694832071059390f, - 0.779777787923014550f, 0.777853404209453150f, 0.775921699043407690f, - 0.773982690606822900f, - 0.772036397150384520f, 0.770082836993347900f, 0.768122028523365420f, - 0.766153990196312920f, - 0.764178740536116670f, 0.762196298134578900f, 0.760206681651202420f, - 0.758209909813015280f, - 0.756206001414394540f, 0.754194975316889170f, 0.752176850449042810f, - 0.750151645806215070f, - 0.748119380450403600f, 0.746080073510063780f, 0.744033744179929290f, - 0.741980411720831070f, - 0.739920095459516200f, 0.737852814788465980f, 0.735778589165713590f, - 0.733697438114660370f, - 0.731609381223892630f, 0.729514438146997010f, 0.727412628602375770f, - 0.725303972373060770f, - 0.723188489306527460f, 0.721066199314508110f, 0.718937122372804490f, - 0.716801278521099540f, - 0.714658687862769090f, 0.712509370564692320f, 0.710353346857062420f, - 0.708190637033195400f, - 0.706021261449339740f, 0.703845240524484940f, 0.701662594740168570f, - 0.699473344640283770f, - 0.697277510830886630f, 0.695075113980000880f, 0.692866174817424740f, - 0.690650714134534720f, - 0.688428752784090550f, 0.686200311680038700f, 0.683965411797315510f, - 0.681724074171649820f, - 0.679476319899365080f, 0.677222170137180450f, 0.674961646102012040f, - 0.672694769070772970f, - 0.670421560380173090f, 0.668142041426518560f, 0.665856233665509720f, - 0.663564158612039880f, - 0.661265837839992270f, 0.658961292982037320f, 0.656650545729429050f, - 0.654333617831800550f, - 0.652010531096959500f, 0.649681307390683190f, 0.647345968636512060f, - 0.645004536815544040f, - 0.642657033966226860f, 0.640303482184151670f, 0.637943903621844170f, - 0.635578320488556230f, - 0.633206755050057190f, 0.630829229628424470f, 0.628445766601832710f, - 0.626056388404343520f, - 0.623661117525694640f, 0.621259976511087660f, 0.618852987960976320f, - 0.616440174530853650f, - 0.614021558931038490f, 0.611597163926462020f, 0.609167012336453210f, - 0.606731127034524480f, - 0.604289530948156070f, 0.601842247058580030f, 0.599389298400564540f, - 0.596930708062196500f, - 0.594466499184664540f, 0.591996694962040990f, 0.589521318641063940f, - 0.587040393520918080f, - 0.584553942953015330f, 0.582061990340775550f, 0.579564559139405740f, - 0.577061672855679550f, - 0.574553355047715760f, 0.572039629324757050f, 0.569520519346947250f, - 0.566996048825108680f, - 0.564466241520519500f, 0.561931121244689470f, 0.559390711859136140f, - 0.556845037275160100f, - 0.554294121453620110f, 0.551737988404707450f, 0.549176662187719770f, - 0.546610166910834860f, - 0.544038526730883930f, 0.541461765853123560f, 0.538879908531008420f, - 0.536292979065963180f, - 0.533701001807152960f, 0.531104001151255000f, 0.528502001542228480f, - 0.525895027471084740f, - 0.523283103475656430f, 0.520666254140367270f, 0.518044504095999340f, - 0.515417878019463150f, - 0.512786400633563070f, 0.510150096706766700f, 0.507508991052970870f, - 0.504863108531267480f, - 0.502212474045710900f, 0.499557112545081890f, 0.496897049022654640f, - 0.494232308515959730f, - 0.491562916106550060f, 0.488888896919763230f, 0.486210276124486530f, - 0.483527078932918740f, - 0.480839330600333900f, 0.478147056424843120f, 0.475450281747155870f, - 0.472749031950342900f, - 0.470043332459595620f, 0.467333208741988530f, 0.464618686306237820f, - 0.461899790702462840f, - 0.459176547521944150f, 0.456448982396883860f, 0.453717121000163930f, - 0.450980989045103810f, - 0.448240612285220000f, 0.445496016513981740f, 0.442747227564570130f, - 0.439994271309633260f, - 0.437237173661044200f, 0.434475960569655710f, 0.431710658025057370f, - 0.428941292055329550f, - 0.426167888726799620f, 0.423390474143796100f, 0.420609074448402510f, - 0.417823715820212380f, - 0.415034424476081630f, 0.412241226669883000f, 0.409444148692257590f, - 0.406643216870369140f, - 0.403838457567654130f, 0.401029897183575790f, 0.398217562153373620f, - 0.395401478947816300f, - 0.392581674072951530f, 0.389758174069856410f, 0.386931005514388690f, - 0.384100195016935040f, - 0.381265769222162490f, 0.378427754808765620f, 0.375586178489217330f, - 0.372741067009515810f, - 0.369892447148934270f, 0.367040345719767240f, 0.364184789567079840f, - 0.361325805568454340f, - 0.358463420633736540f, 0.355597661704783960f, 0.352728555755210730f, - 0.349856129790135030f, - 0.346980410845923680f, 0.344101425989938980f, 0.341219202320282410f, - 0.338333766965541290f, - 0.335445147084531660f, 0.332553369866044220f, 0.329658462528587550f, - 0.326760452320131790f, - 0.323859366517852960f, 0.320955232427875210f, 0.318048077385015060f, - 0.315137928752522440f, - 0.312224813921825050f, 0.309308760312268780f, 0.306389795370861080f, - 0.303467946572011370f, - 0.300543241417273400f, 0.297615707435086310f, 0.294685372180514330f, - 0.291752263234989370f, - 0.288816408206049480f, 0.285877834727080730f, 0.282936570457055390f, - 0.279992643080273380f, - 0.277046080306099950f, 0.274096909868706330f, 0.271145159526808070f, - 0.268190857063403180f, - 0.265234030285511900f, 0.262274707023913590f, 0.259312915132886350f, - 0.256348682489942910f, - 0.253382036995570270f, 0.250413006572965280f, 0.247441619167773440f, - 0.244467902747824210f, - 0.241491885302869300f, 0.238513594844318500f, 0.235533059404975460f, - 0.232550307038775330f, - 0.229565365820518870f, 0.226578263845610110f, 0.223589029229790020f, - 0.220597690108873650f, - 0.217604274638483670f, 0.214608810993786920f, 0.211611327369227610f, - 0.208611851978263460f, - 0.205610413053099320f, 0.202607038844421110f, 0.199601757621131050f, - 0.196594597670080220f, - 0.193585587295803750f, 0.190574754820252800f, 0.187562128582529740f, - 0.184547736938619640f, - 0.181531608261125130f, 0.178513770938997590f, 0.175494253377271400f, - 0.172473083996796030f, - 0.169450291233967930f, 0.166425903540464220f, 0.163399949382973230f, - 0.160372457242928400f, - 0.157343455616238280f, 0.154312973013020240f, 0.151281037957330250f, - 0.148247678986896200f, - 0.145212924652847520f, 0.142176803519448000f, 0.139139344163826280f, - 0.136100575175706200f, - 0.133060525157139180f, 0.130019222722233350f, 0.126976696496885980f, - 0.123932975118512200f, - 0.120888087235777220f, 0.117842061508325020f, 0.114794926606510250f, - 0.111746711211126660f, - 0.108697444013138670f, 0.105647153713410700f, 0.102595869022436280f, - 0.099543618660069444f, - 0.096490431355252607f, 0.093436335845747912f, 0.090381360877865011f, - 0.087325535206192226f, - 0.084268887593324127f, 0.081211446809592386f, 0.078153241632794315f, - 0.075094300847921291f, - 0.072034653246889416f, 0.068974327628266732f, 0.065913352797003930f, - 0.062851757564161420f, - 0.059789570746640007f, 0.056726821166907783f, 0.053663537652730679f, - 0.050599749036899337f, - 0.047535484156959261f, 0.044470771854938744f, 0.041405640977076712f, - 0.038340120373552791f, - 0.035274238898213947f, 0.032208025408304704f, 0.029141508764193740f, - 0.026074717829104040f, - 0.023007681468839410f, 0.019940428551514598f, 0.016872987947281773f, - 0.013805388528060349f, - 0.010737659167264572f, 0.007669828739531077f, 0.004601926120448672f, - 0.001533980186284766f -}; - -static const float32_t cos_factors_2048[2048] = { - 0.999999926465717890f, 0.999999338191525530f, 0.999998161643486980f, - 0.999996396822294350f, - 0.999994043728985820f, 0.999991102364945590f, 0.999987572731904080f, - 0.999983454831937730f, - 0.999978748667468830f, 0.999973454241265940f, 0.999967571556443780f, - 0.999961100616462820f, - 0.999954041425129780f, 0.999946393986597460f, 0.999938158305364590f, - 0.999929334386276070f, - 0.999919922234522750f, 0.999909921855641540f, 0.999899333255515390f, - 0.999888156440373320f, - 0.999876391416790410f, 0.999864038191687680f, 0.999851096772332190f, - 0.999837567166337090f, - 0.999823449381661570f, 0.999808743426610520f, 0.999793449309835270f, - 0.999777567040332940f, - 0.999761096627446610f, 0.999744038080865430f, 0.999726391410624470f, - 0.999708156627104880f, - 0.999689333741033640f, 0.999669922763483760f, 0.999649923705874240f, - 0.999629336579970110f, - 0.999608161397882110f, 0.999586398172067070f, 0.999564046915327740f, - 0.999541107640812940f, - 0.999517580362016990f, 0.999493465092780590f, 0.999468761847290050f, - 0.999443470640077770f, - 0.999417591486021720f, 0.999391124400346050f, 0.999364069398620550f, - 0.999336426496761240f, - 0.999308195711029470f, 0.999279377058032710f, 0.999249970554724420f, - 0.999219976218403530f, - 0.999189394066714920f, 0.999158224117649430f, 0.999126466389543390f, - 0.999094120901079070f, - 0.999061187671284600f, 0.999027666719533690f, 0.998993558065545680f, - 0.998958861729386080f, - 0.998923577731465780f, 0.998887706092541290f, 0.998851246833715180f, - 0.998814199976435390f, - 0.998776565542495610f, 0.998738343554035230f, 0.998699534033539280f, - 0.998660137003838490f, - 0.998620152488108870f, 0.998579580509872500f, 0.998538421092996730f, - 0.998496674261694640f, - 0.998454340040524800f, 0.998411418454391300f, 0.998367909528543820f, - 0.998323813288577560f, - 0.998279129760433200f, 0.998233858970396850f, 0.998188000945100300f, - 0.998141555711520520f, - 0.998094523296980010f, 0.998046903729146840f, 0.997998697036034390f, - 0.997949903246001190f, - 0.997900522387751620f, 0.997850554490335110f, 0.997799999583146470f, - 0.997748857695925690f, - 0.997697128858758500f, 0.997644813102075420f, 0.997591910456652630f, - 0.997538420953611340f, - 0.997484344624417930f, 0.997429681500884180f, 0.997374431615167150f, - 0.997318594999768600f, - 0.997262171687536170f, 0.997205161711661850f, 0.997147565105683480f, - 0.997089381903483400f, - 0.997030612139289450f, 0.996971255847674320f, 0.996911313063555740f, - 0.996850783822196610f, - 0.996789668159204560f, 0.996727966110532490f, 0.996665677712478160f, - 0.996602803001684130f, - 0.996539342015137940f, 0.996475294790172160f, 0.996410661364464100f, - 0.996345441776035900f, - 0.996279636063254650f, 0.996213244264832040f, 0.996146266419824620f, - 0.996078702567633980f, - 0.996010552748005870f, 0.995941817001031350f, 0.995872495367145730f, - 0.995802587887129160f, - 0.995732094602106430f, 0.995661015553546910f, 0.995589350783264600f, - 0.995517100333418110f, - 0.995444264246510340f, 0.995370842565388990f, 0.995296835333246090f, - 0.995222242593618360f, - 0.995147064390386470f, 0.995071300767776170f, 0.994994951770357020f, - 0.994918017443043200f, - 0.994840497831093180f, 0.994762392980109930f, 0.994683702936040250f, - 0.994604427745175660f, - 0.994524567454151740f, 0.994444122109948040f, 0.994363091759888570f, - 0.994281476451641550f, - 0.994199276233218910f, 0.994116491152977070f, 0.994033121259616400f, - 0.993949166602181130f, - 0.993864627230059750f, 0.993779503192984580f, 0.993693794541031790f, - 0.993607501324621610f, - 0.993520623594518090f, 0.993433161401829360f, 0.993345114798006910f, - 0.993256483834846440f, - 0.993167268564487230f, 0.993077469039412300f, 0.992987085312448390f, - 0.992896117436765980f, - 0.992804565465879140f, 0.992712429453645460f, 0.992619709454266140f, - 0.992526405522286100f, - 0.992432517712593660f, 0.992338046080420420f, 0.992242990681341700f, - 0.992147351571276090f, - 0.992051128806485720f, 0.991954322443575950f, 0.991856932539495470f, - 0.991758959151536110f, - 0.991660402337333210f, 0.991561262154865290f, 0.991461538662453790f, - 0.991361231918763460f, - 0.991260341982802440f, 0.991158868913921350f, 0.991056812771814340f, - 0.990954173616518500f, - 0.990850951508413620f, 0.990747146508222710f, 0.990642758677011570f, - 0.990537788076188750f, - 0.990432234767505970f, 0.990326098813057330f, 0.990219380275280000f, - 0.990112079216953770f, - 0.990004195701200910f, 0.989895729791486660f, 0.989786681551618640f, - 0.989677051045747210f, - 0.989566838338365120f, 0.989456043494307710f, 0.989344666578752640f, - 0.989232707657220050f, - 0.989120166795572690f, 0.989007044060015270f, 0.988893339517095130f, - 0.988779053233701520f, - 0.988664185277066230f, 0.988548735714763200f, 0.988432704614708340f, - 0.988316092045159690f, - 0.988198898074717610f, 0.988081122772324070f, 0.987962766207263420f, - 0.987843828449161740f, - 0.987724309567986960f, 0.987604209634049160f, 0.987483528717999710f, - 0.987362266890832400f, - 0.987240424223882250f, 0.987118000788826280f, 0.986994996657682980f, - 0.986871411902812470f, - 0.986747246596916590f, 0.986622500813038480f, 0.986497174624562880f, - 0.986371268105216030f, - 0.986244781329065460f, 0.986117714370520090f, 0.985990067304330140f, - 0.985861840205586980f, - 0.985733033149723490f, 0.985603646212513400f, 0.985473679470071810f, - 0.985343132998854790f, - 0.985212006875659350f, 0.985080301177623800f, 0.984948015982227030f, - 0.984815151367289140f, - 0.984681707410970940f, 0.984547684191773960f, 0.984413081788540700f, - 0.984277900280454370f, - 0.984142139747038570f, 0.984005800268157870f, 0.983868881924017220f, - 0.983731384795162090f, - 0.983593308962478650f, 0.983454654507193270f, 0.983315421510872810f, - 0.983175610055424420f, - 0.983035220223095640f, 0.982894252096474070f, 0.982752705758487830f, - 0.982610581292404750f, - 0.982467878781833170f, 0.982324598310721280f, 0.982180739963357090f, - 0.982036303824369020f, - 0.981891289978725100f, 0.981745698511732990f, 0.981599529509040720f, - 0.981452783056635520f, - 0.981305459240844670f, 0.981157558148334830f, 0.981009079866112630f, - 0.980860024481523870f, - 0.980710392082253970f, 0.980560182756327840f, 0.980409396592109910f, - 0.980258033678303550f, - 0.980106094103951770f, 0.979953577958436740f, 0.979800485331479790f, - 0.979646816313141210f, - 0.979492570993820810f, 0.979337749464256780f, 0.979182351815526930f, - 0.979026378139047580f, - 0.978869828526574120f, 0.978712703070200420f, 0.978555001862359550f, - 0.978396724995823090f, - 0.978237872563701090f, 0.978078444659442380f, 0.977918441376834370f, - 0.977757862810002760f, - 0.977596709053411890f, 0.977434980201864260f, 0.977272676350500860f, - 0.977109797594800880f, - 0.976946344030581670f, 0.976782315753998650f, 0.976617712861545640f, - 0.976452535450054060f, - 0.976286783616693630f, 0.976120457458971910f, 0.975953557074734300f, - 0.975786082562163930f, - 0.975618034019781750f, 0.975449411546446380f, 0.975280215241354220f, - 0.975110445204038890f, - 0.974940101534371830f, 0.974769184332561770f, 0.974597693699155050f, - 0.974425629735034990f, - 0.974252992541422500f, 0.974079782219875680f, 0.973905998872289570f, - 0.973731642600896400f, - 0.973556713508265560f, 0.973381211697303290f, 0.973205137271252800f, - 0.973028490333694210f, - 0.972851270988544180f, 0.972673479340056430f, 0.972495115492821190f, - 0.972316179551765300f, - 0.972136671622152230f, 0.971956591809581720f, 0.971775940219990140f, - 0.971594716959650160f, - 0.971412922135170940f, 0.971230555853497380f, 0.971047618221911100f, - 0.970864109348029470f, - 0.970680029339806130f, 0.970495378305530560f, 0.970310156353828110f, - 0.970124363593660280f, - 0.969938000134323960f, 0.969751066085452140f, 0.969563561557013180f, - 0.969375486659311280f, - 0.969186841502985950f, 0.968997626199012420f, 0.968807840858700970f, - 0.968617485593697540f, - 0.968426560515983190f, 0.968235065737874320f, 0.968043001372022260f, - 0.967850367531413620f, - 0.967657164329369880f, 0.967463391879547550f, 0.967269050295937790f, - 0.967074139692867040f, - 0.966878660184995910f, 0.966682611887320080f, 0.966485994915169840f, - 0.966288809384209690f, - 0.966091055410438830f, 0.965892733110190860f, 0.965693842600133690f, - 0.965494383997269500f, - 0.965294357418934660f, 0.965093762982799590f, 0.964892600806868890f, - 0.964690871009481030f, - 0.964488573709308410f, 0.964285709025357480f, 0.964082277076968140f, - 0.963878277983814200f, - 0.963673711865903230f, 0.963468578843575950f, 0.963262879037507070f, - 0.963056612568704340f, - 0.962849779558509030f, 0.962642380128595710f, 0.962434414400972100f, - 0.962225882497979020f, - 0.962016784542290560f, 0.961807120656913540f, 0.961596890965187860f, - 0.961386095590786250f, - 0.961174734657714080f, 0.960962808290309780f, 0.960750316613243950f, - 0.960537259751520050f, - 0.960323637830473920f, 0.960109450975773940f, 0.959894699313420530f, - 0.959679382969746750f, - 0.959463502071417510f, 0.959247056745430090f, 0.959030047119113660f, - 0.958812473320129310f, - 0.958594335476470220f, 0.958375633716461170f, 0.958156368168758820f, - 0.957936538962351420f, - 0.957716146226558870f, 0.957495190091032570f, 0.957273670685755200f, - 0.957051588141040970f, - 0.956828942587535370f, 0.956605734156215080f, 0.956381962978387730f, - 0.956157629185692140f, - 0.955932732910098280f, 0.955707274283906560f, 0.955481253439748770f, - 0.955254670510586990f, - 0.955027525629714160f, 0.954799818930753720f, 0.954571550547659630f, - 0.954342720614716480f, - 0.954113329266538800f, 0.953883376638071770f, 0.953652862864590500f, - 0.953421788081700310f, - 0.953190152425336670f, 0.952957956031764700f, 0.952725199037579570f, - 0.952491881579706320f, - 0.952258003795399600f, 0.952023565822243570f, 0.951788567798152130f, - 0.951553009861368590f, - 0.951316892150465550f, 0.951080214804345010f, 0.950842977962238160f, - 0.950605181763705340f, - 0.950366826348635780f, 0.950127911857248100f, 0.949888438430089300f, - 0.949648406208035480f, - 0.949407815332291570f, 0.949166665944390700f, 0.948924958186195160f, - 0.948682692199895090f, - 0.948439868128009620f, 0.948196486113385580f, 0.947952546299198670f, - 0.947708048828952100f, - 0.947462993846477700f, 0.947217381495934820f, 0.946971211921810880f, - 0.946724485268921170f, - 0.946477201682408680f, 0.946229361307743820f, 0.945980964290724760f, - 0.945732010777477150f, - 0.945482500914453740f, 0.945232434848435000f, 0.944981812726528150f, - 0.944730634696167800f, - 0.944478900905115550f, 0.944226611501459810f, 0.943973766633615980f, - 0.943720366450326200f, - 0.943466411100659320f, 0.943211900734010620f, 0.942956835500102120f, - 0.942701215548981900f, - 0.942445041031024890f, 0.942188312096931770f, 0.941931028897729620f, - 0.941673191584771360f, - 0.941414800309736340f, 0.941155855224629190f, 0.940896356481780830f, - 0.940636304233847590f, - 0.940375698633811540f, 0.940114539834980280f, 0.939852827990986680f, - 0.939590563255789270f, - 0.939327745783671400f, 0.939064375729241950f, 0.938800453247434770f, - 0.938535978493508560f, - 0.938270951623047190f, 0.938005372791958840f, 0.937739242156476970f, - 0.937472559873159250f, - 0.937205326098887960f, 0.936937540990869900f, 0.936669204706636170f, - 0.936400317404042060f, - 0.936130879241267030f, 0.935860890376814640f, 0.935590350969512370f, - 0.935319261178511610f, - 0.935047621163287430f, 0.934775431083638700f, 0.934502691099687870f, - 0.934229401371880820f, - 0.933955562060986730f, 0.933681173328098410f, 0.933406235334631520f, - 0.933130748242325230f, - 0.932854712213241120f, 0.932578127409764420f, 0.932300993994602760f, - 0.932023312130786490f, - 0.931745081981668720f, 0.931466303710925090f, 0.931186977482553750f, - 0.930907103460875130f, - 0.930626681810531760f, 0.930345712696488470f, 0.930064196284032360f, - 0.929782132738772190f, - 0.929499522226638560f, 0.929216364913884040f, 0.928932660967082820f, - 0.928648410553130520f, - 0.928363613839244370f, 0.928078270992963140f, 0.927792382182146320f, - 0.927505947574975180f, - 0.927218967339951790f, 0.926931441645899130f, 0.926643370661961230f, - 0.926354754557602860f, - 0.926065593502609310f, 0.925775887667086740f, 0.925485637221461490f, - 0.925194842336480530f, - 0.924903503183210910f, 0.924611619933039970f, 0.924319192757675160f, - 0.924026221829143850f, - 0.923732707319793290f, 0.923438649402290370f, 0.923144048249621930f, - 0.922848904035094120f, - 0.922553216932332830f, 0.922256987115283030f, 0.921960214758209220f, - 0.921662900035694730f, - 0.921365043122642340f, 0.921066644194273640f, 0.920767703426128790f, - 0.920468220994067110f, - 0.920168197074266340f, 0.919867631843222950f, 0.919566525477751530f, - 0.919264878154985370f, - 0.918962690052375630f, 0.918659961347691900f, 0.918356692219021720f, - 0.918052882844770380f, - 0.917748533403661250f, 0.917443644074735220f, 0.917138215037350710f, - 0.916832246471183890f, - 0.916525738556228210f, 0.916218691472794220f, 0.915911105401509880f, - 0.915602980523320230f, - 0.915294317019487050f, 0.914985115071589310f, 0.914675374861522390f, - 0.914365096571498560f, - 0.914054280384046570f, 0.913742926482011390f, 0.913431035048554720f, - 0.913118606267154240f, - 0.912805640321603500f, 0.912492137396012650f, 0.912178097674807180f, - 0.911863521342728520f, - 0.911548408584833990f, 0.911232759586496190f, 0.910916574533403360f, - 0.910599853611558930f, - 0.910282597007281760f, 0.909964804907205660f, 0.909646477498279540f, - 0.909327614967767260f, - 0.909008217503247450f, 0.908688285292613360f, 0.908367818524072890f, - 0.908046817386148340f, - 0.907725282067676440f, 0.907403212757808110f, 0.907080609646008450f, - 0.906757472922056550f, - 0.906433802776045460f, 0.906109599398381980f, 0.905784862979786550f, - 0.905459593711293250f, - 0.905133791784249690f, 0.904807457390316540f, 0.904480590721468250f, - 0.904153191969991780f, - 0.903825261328487510f, 0.903496798989868450f, 0.903167805147360720f, - 0.902838279994502830f, - 0.902508223725145940f, 0.902177636533453620f, 0.901846518613901750f, - 0.901514870161278740f, - 0.901182691370684520f, 0.900849982437531450f, 0.900516743557543520f, - 0.900182974926756810f, - 0.899848676741518580f, 0.899513849198487980f, 0.899178492494635330f, - 0.898842606827242370f, - 0.898506192393901950f, 0.898169249392518080f, 0.897831778021305650f, - 0.897493778478790310f, - 0.897155250963808550f, 0.896816195675507300f, 0.896476612813344120f, - 0.896136502577086770f, - 0.895795865166813530f, 0.895454700782912450f, 0.895113009626081760f, - 0.894770791897329550f, - 0.894428047797973800f, 0.894084777529641990f, 0.893740981294271040f, - 0.893396659294107720f, - 0.893051811731707450f, 0.892706438809935390f, 0.892360540731965360f, - 0.892014117701280470f, - 0.891667169921672280f, 0.891319697597241390f, 0.890971700932396860f, - 0.890623180131855930f, - 0.890274135400644600f, 0.889924566944096720f, 0.889574474967854580f, - 0.889223859677868210f, - 0.888872721280395630f, 0.888521059982002260f, 0.888168875989561730f, - 0.887816169510254440f, - 0.887462940751568840f, 0.887109189921300170f, 0.886754917227550840f, - 0.886400122878730600f, - 0.886044807083555600f, 0.885688970051048960f, 0.885332611990540590f, - 0.884975733111666660f, - 0.884618333624369920f, 0.884260413738899190f, 0.883901973665809470f, - 0.883543013615961880f, - 0.883183533800523390f, 0.882823534430966620f, 0.882463015719070150f, - 0.882101977876917580f, - 0.881740421116898320f, 0.881378345651706920f, 0.881015751694342870f, - 0.880652639458111010f, - 0.880289009156621010f, 0.879924861003786860f, 0.879560195213827890f, - 0.879195012001267480f, - 0.878829311580933360f, 0.878463094167957870f, 0.878096359977777130f, - 0.877729109226131570f, - 0.877361342129065140f, 0.876993058902925890f, 0.876624259764365310f, - 0.876254944930338510f, - 0.875885114618103810f, 0.875514769045222850f, 0.875143908429560360f, - 0.874772532989284150f, - 0.874400642942864790f, 0.874028238509075740f, 0.873655319906992630f, - 0.873281887355994210f, - 0.872907941075761080f, 0.872533481286276170f, 0.872158508207824480f, - 0.871783022060993120f, - 0.871407023066670950f, 0.871030511446048260f, 0.870653487420617430f, - 0.870275951212171940f, - 0.869897903042806340f, 0.869519343134916860f, 0.869140271711200560f, - 0.868760688994655310f, - 0.868380595208579800f, 0.867999990576573510f, 0.867618875322536230f, - 0.867237249670668400f, - 0.866855113845470430f, 0.866472468071743050f, 0.866089312574586770f, - 0.865705647579402380f, - 0.865321473311889800f, 0.864936789998049020f, 0.864551597864179340f, - 0.864165897136879300f, - 0.863779688043046720f, 0.863392970809878420f, 0.863005745664870320f, - 0.862618012835816740f, - 0.862229772550811240f, 0.861841025038245330f, 0.861451770526809320f, - 0.861062009245491480f, - 0.860671741423578380f, 0.860280967290654510f, 0.859889687076602290f, - 0.859497901011601730f, - 0.859105609326130450f, 0.858712812250963520f, 0.858319510017173440f, - 0.857925702856129790f, - 0.857531390999499150f, 0.857136574679244980f, 0.856741254127627470f, - 0.856345429577203610f, - 0.855949101260826910f, 0.855552269411646860f, 0.855154934263109620f, - 0.854757096048957220f, - 0.854358755003227440f, 0.853959911360254180f, 0.853560565354666840f, - 0.853160717221390420f, - 0.852760367195645300f, 0.852359515512947090f, 0.851958162409106380f, - 0.851556308120228980f, - 0.851153952882715340f, 0.850751096933260790f, 0.850347740508854980f, - 0.849943883846782210f, - 0.849539527184620890f, 0.849134670760243630f, 0.848729314811817130f, - 0.848323459577801640f, - 0.847917105296951410f, 0.847510252208314330f, 0.847102900551231500f, - 0.846695050565337450f, - 0.846286702490559710f, 0.845877856567119000f, 0.845468513035528830f, - 0.845058672136595470f, - 0.844648334111417820f, 0.844237499201387020f, 0.843826167648186740f, - 0.843414339693792760f, - 0.843002015580472940f, 0.842589195550786710f, 0.842175879847585570f, - 0.841762068714012490f, - 0.841347762393501950f, 0.840932961129779780f, 0.840517665166862550f, - 0.840101874749058400f, - 0.839685590120966110f, 0.839268811527475230f, 0.838851539213765760f, - 0.838433773425308340f, - 0.838015514407863820f, 0.837596762407483040f, 0.837177517670507300f, - 0.836757780443567190f, - 0.836337550973583530f, 0.835916829507766360f, 0.835495616293615350f, - 0.835073911578919410f, - 0.834651715611756440f, 0.834229028640493420f, 0.833805850913786340f, - 0.833382182680579730f, - 0.832958024190106670f, 0.832533375691888680f, 0.832108237435735590f, - 0.831682609671745120f, - 0.831256492650303210f, 0.830829886622083570f, 0.830402791838047550f, - 0.829975208549443950f, - 0.829547137007808910f, 0.829118577464965980f, 0.828689530173025820f, - 0.828259995384385660f, - 0.827829973351729920f, 0.827399464328029470f, 0.826968468566541600f, - 0.826536986320809960f, - 0.826105017844664610f, 0.825672563392221390f, 0.825239623217882250f, - 0.824806197576334330f, - 0.824372286722551250f, 0.823937890911791370f, 0.823503010399598500f, - 0.823067645441801670f, - 0.822631796294514990f, 0.822195463214137170f, 0.821758646457351750f, - 0.821321346281126740f, - 0.820883562942714580f, 0.820445296699652050f, 0.820006547809759680f, - 0.819567316531142230f, - 0.819127603122188240f, 0.818687407841569680f, 0.818246730948242070f, - 0.817805572701444270f, - 0.817363933360698460f, 0.816921813185809480f, 0.816479212436865390f, - 0.816036131374236810f, - 0.815592570258576790f, 0.815148529350820830f, 0.814704008912187080f, - 0.814259009204175270f, - 0.813813530488567190f, 0.813367573027426570f, 0.812921137083098770f, - 0.812474222918210480f, - 0.812026830795669730f, 0.811578960978665890f, 0.811130613730669190f, - 0.810681789315430780f, - 0.810232487996982330f, 0.809782710039636530f, 0.809332455707985950f, - 0.808881725266903610f, - 0.808430518981542720f, 0.807978837117336310f, 0.807526679939997160f, - 0.807074047715517610f, - 0.806620940710169650f, 0.806167359190504420f, 0.805713303423352230f, - 0.805258773675822210f, - 0.804803770215302920f, 0.804348293309460780f, 0.803892343226241260f, - 0.803435920233868120f, - 0.802979024600843250f, 0.802521656595946430f, 0.802063816488235440f, - 0.801605504547046150f, - 0.801146721041991360f, 0.800687466242961610f, 0.800227740420124790f, - 0.799767543843925680f, - 0.799306876785086160f, 0.798845739514604580f, 0.798384132303756380f, - 0.797922055424093000f, - 0.797459509147442460f, 0.796996493745908750f, 0.796533009491872000f, - 0.796069056657987990f, - 0.795604635517188070f, 0.795139746342679590f, 0.794674389407944550f, - 0.794208564986740640f, - 0.793742273353100210f, 0.793275514781330630f, 0.792808289546014120f, - 0.792340597922007170f, - 0.791872440184440470f, 0.791403816608719500f, 0.790934727470523290f, - 0.790465173045804880f, - 0.789995153610791090f, 0.789524669441982190f, 0.789053720816151880f, - 0.788582308010347120f, - 0.788110431301888070f, 0.787638090968367450f, 0.787165287287651010f, - 0.786692020537876790f, - 0.786218290997455660f, 0.785744098945070360f, 0.785269444659675850f, - 0.784794328420499230f, - 0.784318750507038920f, 0.783842711199065230f, 0.783366210776619720f, - 0.782889249520015480f, - 0.782411827709836530f, 0.781933945626937630f, 0.781455603552444590f, - 0.780976801767753750f, - 0.780497540554531910f, 0.780017820194715990f, 0.779537640970513260f, - 0.779057003164400630f, - 0.778575907059125050f, 0.778094352937702790f, 0.777612341083420030f, - 0.777129871779831620f, - 0.776646945310762060f, 0.776163561960304340f, 0.775679722012820650f, - 0.775195425752941420f, - 0.774710673465565550f, 0.774225465435860680f, 0.773739801949261840f, - 0.773253683291472590f, - 0.772767109748463850f, 0.772280081606474320f, 0.771792599152010150f, - 0.771304662671844830f, - 0.770816272453018540f, 0.770327428782838890f, 0.769838131948879840f, - 0.769348382238982280f, - 0.768858179941253270f, 0.768367525344066270f, 0.767876418736060610f, - 0.767384860406141730f, - 0.766892850643480670f, 0.766400389737514230f, 0.765907477977944340f, - 0.765414115654738270f, - 0.764920303058128410f, 0.764426040478612070f, 0.763931328206951090f, - 0.763436166534172010f, - 0.762940555751565720f, 0.762444496150687210f, 0.761947988023355390f, - 0.761451031661653620f, - 0.760953627357928150f, 0.760455775404789260f, 0.759957476095110330f, - 0.759458729722028210f, - 0.758959536578942440f, 0.758459896959515430f, 0.757959811157672300f, - 0.757459279467600720f, - 0.756958302183750490f, 0.756456879600833740f, 0.755955012013824420f, - 0.755452699717958250f, - 0.754949943008732640f, 0.754446742181906440f, 0.753943097533499640f, - 0.753439009359793580f, - 0.752934477957330150f, 0.752429503622912390f, 0.751924086653603550f, - 0.751418227346727470f, - 0.750911925999867890f, 0.750405182910869330f, 0.749897998377835330f, - 0.749390372699129560f, - 0.748882306173375150f, 0.748373799099454560f, 0.747864851776509410f, - 0.747355464503940190f, - 0.746845637581406540f, 0.746335371308826320f, 0.745824665986376090f, - 0.745313521914490520f, - 0.744801939393862630f, 0.744289918725443260f, 0.743777460210440890f, - 0.743264564150321600f, - 0.742751230846809050f, 0.742237460601884000f, 0.741723253717784140f, - 0.741208610497004260f, - 0.740693531242295760f, 0.740178016256666240f, 0.739662065843380010f, - 0.739145680305957510f, - 0.738628859948174840f, 0.738111605074064260f, 0.737593915987913570f, - 0.737075792994265730f, - 0.736557236397919150f, 0.736038246503927350f, 0.735518823617598900f, - 0.734998968044496710f, - 0.734478680090438370f, 0.733957960061495940f, 0.733436808263995710f, - 0.732915225004517780f, - 0.732393210589896040f, 0.731870765327218290f, 0.731347889523825570f, - 0.730824583487312160f, - 0.730300847525525490f, 0.729776681946566090f, 0.729252087058786970f, - 0.728727063170793830f, - 0.728201610591444610f, 0.727675729629849610f, 0.727149420595371020f, - 0.726622683797622850f, - 0.726095519546471000f, 0.725567928152032300f, 0.725039909924675370f, - 0.724511465175019630f, - 0.723982594213935520f, 0.723453297352544380f, 0.722923574902217700f, - 0.722393427174577550f, - 0.721862854481496340f, 0.721331857135096290f, 0.720800435447749190f, - 0.720268589732077190f, - 0.719736320300951030f, 0.719203627467491220f, 0.718670511545067230f, - 0.718136972847297490f, - 0.717603011688049080f, 0.717068628381437480f, 0.716533823241826680f, - 0.715998596583828690f, - 0.715462948722303760f, 0.714926879972359490f, 0.714390390649351390f, - 0.713853481068882470f, - 0.713316151546802610f, 0.712778402399208980f, 0.712240233942445510f, - 0.711701646493102970f, - 0.711162640368018350f, 0.710623215884275020f, 0.710083373359202800f, - 0.709543113110376770f, - 0.709002435455618250f, 0.708461340712994160f, 0.707919829200816310f, - 0.707377901237642100f, - 0.706835557142273860f, 0.706292797233758480f, 0.705749621831387790f, - 0.705206031254697830f, - 0.704662025823468930f, 0.704117605857725430f, 0.703572771677735580f, - 0.703027523604011220f, - 0.702481861957308000f, 0.701935787058624360f, 0.701389299229202230f, - 0.700842398790526230f, - 0.700295086064323780f, 0.699747361372564990f, 0.699199225037462120f, - 0.698650677381469580f, - 0.698101718727283880f, 0.697552349397843270f, 0.697002569716327460f, - 0.696452380006157830f, - 0.695901780590996830f, 0.695350771794747800f, 0.694799353941554900f, - 0.694247527355803310f, - 0.693695292362118350f, 0.693142649285365510f, 0.692589598450650380f, - 0.692036140183318830f, - 0.691482274808955850f, 0.690928002653386280f, 0.690373324042674040f, - 0.689818239303122470f, - 0.689262748761273470f, 0.688706852743907750f, 0.688150551578044830f, - 0.687593845590942170f, - 0.687036735110095660f, 0.686479220463238950f, 0.685921301978343670f, - 0.685362979983618730f, - 0.684804254807510620f, 0.684245126778703080f, 0.683685596226116690f, - 0.683125663478908800f, - 0.682565328866473250f, 0.682004592718440830f, 0.681443455364677990f, - 0.680881917135287340f, - 0.680319978360607200f, 0.679757639371212030f, 0.679194900497911200f, - 0.678631762071749470f, - 0.678068224424006600f, 0.677504287886197430f, 0.676939952790071240f, - 0.676375219467611700f, - 0.675810088251037060f, 0.675244559472799270f, 0.674678633465584540f, - 0.674112310562312360f, - 0.673545591096136100f, 0.672978475400442090f, 0.672410963808849900f, - 0.671843056655211930f, - 0.671274754273613490f, 0.670706056998372160f, 0.670136965164037760f, - 0.669567479105392490f, - 0.668997599157450270f, 0.668427325655456820f, 0.667856658934889440f, - 0.667285599331456480f, - 0.666714147181097670f, 0.666142302819983540f, 0.665570066584515560f, - 0.664997438811325340f, - 0.664424419837275180f, 0.663851009999457340f, 0.663277209635194100f, - 0.662703019082037440f, - 0.662128438677768720f, 0.661553468760399000f, 0.660978109668168060f, - 0.660402361739545030f, - 0.659826225313227430f, 0.659249700728141490f, 0.658672788323441890f, - 0.658095488438511290f, - 0.657517801412960120f, 0.656939727586627110f, 0.656361267299578000f, - 0.655782420892106030f, - 0.655203188704731930f, 0.654623571078202680f, 0.654043568353492640f, - 0.653463180871802330f, - 0.652882408974558960f, 0.652301253003415460f, 0.651719713300251020f, - 0.651137790207170330f, - 0.650555484066503990f, 0.649972795220807530f, 0.649389724012861770f, - 0.648806270785672550f, - 0.648222435882470420f, 0.647638219646710420f, 0.647053622422071650f, - 0.646468644552457890f, - 0.645883286381996440f, 0.645297548255038380f, 0.644711430516158420f, - 0.644124933510154540f, - 0.643538057582047850f, 0.642950803077082080f, 0.642363170340724320f, - 0.641775159718663500f, - 0.641186771556811250f, 0.640598006201301030f, 0.640008863998488440f, - 0.639419345294950700f, - 0.638829450437486400f, 0.638239179773115390f, 0.637648533649078810f, - 0.637057512412838590f, - 0.636466116412077180f, 0.635874345994697720f, 0.635282201508823530f, - 0.634689683302797850f, - 0.634096791725183740f, 0.633503527124764320f, 0.632909889850541860f, - 0.632315880251737680f, - 0.631721498677792370f, 0.631126745478365340f, 0.630531621003334600f, - 0.629936125602796550f, - 0.629340259627065750f, 0.628744023426674790f, 0.628147417352374120f, - 0.627550441755131530f, - 0.626953096986132770f, 0.626355383396779990f, 0.625757301338692900f, - 0.625158851163707730f, - 0.624560033223877320f, 0.623960847871470770f, 0.623361295458973340f, - 0.622761376339086460f, - 0.622161090864726930f, 0.621560439389027270f, 0.620959422265335180f, - 0.620358039847213830f, - 0.619756292488440660f, 0.619154180543008410f, 0.618551704365123860f, - 0.617948864309208260f, - 0.617345660729896940f, 0.616742093982038830f, 0.616138164420696910f, - 0.615533872401147430f, - 0.614929218278879590f, 0.614324202409595950f, 0.613718825149211830f, - 0.613113086853854910f, - 0.612506987879865570f, 0.611900528583796070f, 0.611293709322411010f, - 0.610686530452686280f, - 0.610078992331809620f, 0.609471095317180240f, 0.608862839766408200f, - 0.608254226037314490f, - 0.607645254487930830f, 0.607035925476499760f, 0.606426239361473550f, - 0.605816196501515080f, - 0.605205797255496500f, 0.604595041982500360f, 0.603983931041818020f, - 0.603372464792950370f, - 0.602760643595607220f, 0.602148467809707320f, 0.601535937795377730f, - 0.600923053912954090f, - 0.600309816522980430f, 0.599696225986208310f, 0.599082282663597310f, - 0.598467986916314310f, - 0.597853339105733910f, 0.597238339593437530f, 0.596622988741213330f, - 0.596007286911056530f, - 0.595391234465168730f, 0.594774831765957580f, 0.594158079176036800f, - 0.593540977058226390f, - 0.592923525775551410f, 0.592305725691242400f, 0.591687577168735550f, - 0.591069080571671510f, - 0.590450236263895920f, 0.589831044609458900f, 0.589211505972615070f, - 0.588591620717822890f, - 0.587971389209745120f, 0.587350811813247660f, 0.586729888893400500f, - 0.586108620815476430f, - 0.585487007944951450f, 0.584865050647504490f, 0.584242749289016980f, - 0.583620104235572760f, - 0.582997115853457700f, 0.582373784509160220f, 0.581750110569369760f, - 0.581126094400977620f, - 0.580501736371076600f, 0.579877036846960350f, 0.579251996196123550f, - 0.578626614786261430f, - 0.578000892985269910f, 0.577374831161244880f, 0.576748429682482520f, - 0.576121688917478390f, - 0.575494609234928230f, 0.574867191003726740f, 0.574239434592967890f, - 0.573611340371944610f, - 0.572982908710148680f, 0.572354139977270030f, 0.571725034543197120f, - 0.571095592778016690f, - 0.570465815052012990f, 0.569835701735668110f, 0.569205253199661200f, - 0.568574469814869250f, - 0.567943351952365670f, 0.567311899983420800f, 0.566680114279501710f, - 0.566047995212271560f, - 0.565415543153589770f, 0.564782758475511400f, 0.564149641550287680f, - 0.563516192750364910f, - 0.562882412448384550f, 0.562248301017183150f, 0.561613858829792420f, - 0.560979086259438260f, - 0.560343983679540860f, 0.559708551463714790f, 0.559072789985768480f, - 0.558436699619704100f, - 0.557800280739717100f, 0.557163533720196340f, 0.556526458935723720f, - 0.555889056761073920f, - 0.555251327571214090f, 0.554613271741304040f, 0.553974889646695610f, - 0.553336181662932410f, - 0.552697148165749770f, 0.552057789531074980f, 0.551418106135026060f, - 0.550778098353912230f, - 0.550137766564233630f, 0.549497111142680960f, 0.548856132466135290f, - 0.548214830911667780f, - 0.547573206856539870f, 0.546931260678202190f, 0.546288992754295210f, - 0.545646403462648590f, - 0.545003493181281160f, 0.544360262288400400f, 0.543716711162402390f, - 0.543072840181871850f, - 0.542428649725581360f, 0.541784140172491660f, 0.541139311901750910f, - 0.540494165292695230f, - 0.539848700724847700f, 0.539202918577918240f, 0.538556819231804210f, - 0.537910403066588990f, - 0.537263670462542530f, 0.536616621800121150f, 0.535969257459966710f, - 0.535321577822907010f, - 0.534673583269955510f, 0.534025274182310380f, 0.533376650941355560f, - 0.532727713928658810f, - 0.532078463525973540f, 0.531428900115236910f, 0.530779024078570250f, - 0.530128835798278850f, - 0.529478335656852090f, 0.528827524036961980f, 0.528176401321464370f, - 0.527524967893398200f, - 0.526873224135984700f, 0.526221170432628170f, 0.525568807166914680f, - 0.524916134722612890f, - 0.524263153483673470f, 0.523609863834228030f, 0.522956266158590140f, - 0.522302360841254700f, - 0.521648148266897090f, 0.520993628820373810f, 0.520338802886721960f, - 0.519683670851158520f, - 0.519028233099080970f, 0.518372490016066220f, 0.517716441987871150f, - 0.517060089400432130f, - 0.516403432639863990f, 0.515746472092461380f, 0.515089208144697270f, - 0.514431641183222930f, - 0.513773771594868030f, 0.513115599766640560f, 0.512457126085725800f, - 0.511798350939487000f, - 0.511139274715464390f, 0.510479897801375700f, 0.509820220585115560f, - 0.509160243454754750f, - 0.508499966798540810f, 0.507839391004897940f, 0.507178516462425290f, - 0.506517343559898530f, - 0.505855872686268860f, 0.505194104230662240f, 0.504532038582380380f, - 0.503869676130898950f, - 0.503207017265869030f, 0.502544062377115800f, 0.501880811854638400f, - 0.501217266088609950f, - 0.500553425469377640f, 0.499889290387461380f, 0.499224861233555030f, - 0.498560138398525200f, - 0.497895122273410930f, 0.497229813249424340f, 0.496564211717949340f, - 0.495898318070542240f, - 0.495232132698931350f, 0.494565655995016010f, 0.493898888350867430f, - 0.493231830158728070f, - 0.492564481811010650f, 0.491896843700299240f, 0.491228916219348330f, - 0.490560699761082080f, - 0.489892194718595300f, 0.489223401485152030f, 0.488554320454186230f, - 0.487884952019301210f, - 0.487215296574268820f, 0.486545354513030270f, 0.485875126229695420f, - 0.485204612118541880f, - 0.484533812574016120f, 0.483862727990732320f, 0.483191358763471910f, - 0.482519705287184520f, - 0.481847767956986080f, 0.481175547168160360f, 0.480503043316157670f, - 0.479830256796594250f, - 0.479157188005253310f, 0.478483837338084080f, 0.477810205191201040f, - 0.477136291960884750f, - 0.476462098043581310f, 0.475787623835901120f, 0.475112869734620470f, - 0.474437836136679340f, - 0.473762523439182850f, 0.473086932039400220f, 0.472411062334764100f, - 0.471734914722871430f, - 0.471058489601482610f, 0.470381787368520710f, 0.469704808422072460f, - 0.469027553160387240f, - 0.468350021981876530f, 0.467672215285114710f, 0.466994133468838110f, - 0.466315776931944480f, - 0.465637146073493770f, 0.464958241292706740f, 0.464279062988965760f, - 0.463599611561814120f, - 0.462919887410955130f, 0.462239890936253280f, 0.461559622537733190f, - 0.460879082615578690f, - 0.460198271570134270f, 0.459517189801903590f, 0.458835837711549120f, - 0.458154215699893230f, - 0.457472324167916110f, 0.456790163516757220f, 0.456107734147714220f, - 0.455425036462242420f, - 0.454742070861955450f, 0.454058837748624540f, 0.453375337524177750f, - 0.452691570590700860f, - 0.452007537350436530f, 0.451323238205783520f, 0.450638673559297760f, - 0.449953843813690580f, - 0.449268749371829920f, 0.448583390636739300f, 0.447897768011597360f, - 0.447211881899738260f, - 0.446525732704651400f, 0.445839320829980350f, 0.445152646679523590f, - 0.444465710657234110f, - 0.443778513167218280f, 0.443091054613736990f, 0.442403335401204130f, - 0.441715355934187310f, - 0.441027116617407340f, 0.440338617855737300f, 0.439649860054203420f, - 0.438960843617984430f, - 0.438271568952410480f, 0.437582036462964340f, 0.436892246555280470f, - 0.436202199635143950f, - 0.435511896108492170f, 0.434821336381412350f, 0.434130520860143310f, - 0.433439449951074200f, - 0.432748124060743760f, 0.432056543595841450f, 0.431364708963206440f, - 0.430672620569826860f, - 0.429980278822840570f, 0.429287684129534720f, 0.428594836897344400f, - 0.427901737533854240f, - 0.427208386446796370f, 0.426514784044051520f, 0.425820930733648350f, - 0.425126826923762410f, - 0.424432473022717420f, 0.423737869438983950f, 0.423043016581179100f, - 0.422347914858067000f, - 0.421652564678558380f, 0.420956966451709440f, 0.420261120586723050f, - 0.419565027492946940f, - 0.418868687579875110f, 0.418172101257146430f, 0.417475268934544340f, - 0.416778191021997590f, - 0.416080867929579320f, 0.415383300067506290f, 0.414685487846140010f, - 0.413987431675985510f, - 0.413289131967690960f, 0.412590589132048380f, 0.411891803579992220f, - 0.411192775722600160f, - 0.410493505971092520f, 0.409793994736831200f, 0.409094242431320920f, - 0.408394249466208110f, - 0.407694016253280170f, 0.406993543204466460f, 0.406292830731837470f, - 0.405591879247603870f, - 0.404890689164117750f, 0.404189260893870750f, 0.403487594849495310f, - 0.402785691443763640f, - 0.402083551089587040f, 0.401381174200016790f, 0.400678561188243350f, - 0.399975712467595390f, - 0.399272628451540930f, 0.398569309553686360f, 0.397865756187775750f, - 0.397161968767691720f, - 0.396457947707453960f, 0.395753693421220080f, 0.395049206323284880f, - 0.394344486828079650f, - 0.393639535350172880f, 0.392934352304269600f, 0.392228938105210370f, - 0.391523293167972350f, - 0.390817417907668610f, 0.390111312739546910f, 0.389404978078991100f, - 0.388698414341519250f, - 0.387991621942784910f, 0.387284601298575890f, 0.386577352824813980f, - 0.385869876937555310f, - 0.385162174052989970f, 0.384454244587440870f, 0.383746088957365010f, - 0.383037707579352130f, - 0.382329100870124510f, 0.381620269246537520f, 0.380911213125578130f, - 0.380201932924366050f, - 0.379492429060152740f, 0.378782701950320600f, 0.378072752012383990f, - 0.377362579663988450f, - 0.376652185322909620f, 0.375941569407054420f, 0.375230732334460030f, - 0.374519674523293210f, - 0.373808396391851370f, 0.373096898358560690f, 0.372385180841977360f, - 0.371673244260786630f, - 0.370961089033802040f, 0.370248715579966360f, 0.369536124318350760f, - 0.368823315668153960f, - 0.368110290048703050f, 0.367397047879452820f, 0.366683589579984930f, - 0.365969915570008910f, - 0.365256026269360380f, 0.364541922098002180f, 0.363827603476023610f, - 0.363113070823639530f, - 0.362398324561191310f, 0.361683365109145950f, 0.360968192888095290f, - 0.360252808318756830f, - 0.359537211821973180f, 0.358821403818710860f, 0.358105384730061760f, - 0.357389154977241000f, - 0.356672714981588260f, 0.355956065164567010f, 0.355239205947763370f, - 0.354522137752887430f, - 0.353804861001772160f, 0.353087376116372530f, 0.352369683518766630f, - 0.351651783631154680f, - 0.350933676875858360f, 0.350215363675321740f, 0.349496844452109600f, - 0.348778119628908420f, - 0.348059189628525780f, 0.347340054873889190f, 0.346620715788047320f, - 0.345901172794169100f, - 0.345181426315542610f, 0.344461476775576480f, 0.343741324597798600f, - 0.343020970205855540f, - 0.342300414023513690f, 0.341579656474657210f, 0.340858697983289440f, - 0.340137538973531880f, - 0.339416179869623410f, 0.338694621095921190f, 0.337972863076899830f, - 0.337250906237150650f, - 0.336528751001382350f, 0.335806397794420560f, 0.335083847041206580f, - 0.334361099166798900f, - 0.333638154596370920f, 0.332915013755212650f, 0.332191677068729320f, - 0.331468144962440920f, - 0.330744417861982890f, 0.330020496193105530f, 0.329296380381672800f, - 0.328572070853663690f, - 0.327847568035170960f, 0.327122872352400510f, 0.326397984231672660f, - 0.325672904099419900f, - 0.324947632382188430f, 0.324222169506637130f, 0.323496515899536760f, - 0.322770671987770710f, - 0.322044638198334620f, 0.321318414958334910f, 0.320592002694990330f, - 0.319865401835630610f, - 0.319138612807695900f, 0.318411636038737960f, 0.317684471956418020f, - 0.316957120988508150f, - 0.316229583562890490f, 0.315501860107556040f, 0.314773951050606070f, - 0.314045856820250820f, - 0.313317577844809070f, 0.312589114552708660f, 0.311860467372486130f, - 0.311131636732785270f, - 0.310402623062358880f, 0.309673426790066490f, 0.308944048344875710f, - 0.308214488155861220f, - 0.307484746652204160f, 0.306754824263192780f, 0.306024721418221900f, - 0.305294438546791720f, - 0.304563976078509050f, 0.303833334443086470f, 0.303102514070341060f, - 0.302371515390196130f, - 0.301640338832678880f, 0.300908984827921890f, 0.300177453806162120f, - 0.299445746197739950f, - 0.298713862433100390f, 0.297981802942791920f, 0.297249568157465890f, - 0.296517158507877410f, - 0.295784574424884370f, 0.295051816339446720f, 0.294318884682627570f, - 0.293585779885591310f, - 0.292852502379604810f, 0.292119052596036540f, 0.291385430966355720f, - 0.290651637922133220f, - 0.289917673895040860f, 0.289183539316850310f, 0.288449234619434170f, - 0.287714760234765280f, - 0.286980116594915570f, 0.286245304132057120f, 0.285510323278461380f, - 0.284775174466498300f, - 0.284039858128637360f, 0.283304374697445790f, 0.282568724605589740f, - 0.281832908285833460f, - 0.281096926171038320f, 0.280360778694163810f, 0.279624466288266700f, - 0.278887989386500280f, - 0.278151348422115090f, 0.277414543828458200f, 0.276677576038972420f, - 0.275940445487197320f, - 0.275203152606767370f, 0.274465697831413220f, 0.273728081594960650f, - 0.272990304331329980f, - 0.272252366474536660f, 0.271514268458690810f, 0.270776010717996010f, - 0.270037593686750510f, - 0.269299017799346230f, 0.268560283490267890f, 0.267821391194094320f, - 0.267082341345496350f, - 0.266343134379238180f, 0.265603770730176440f, 0.264864250833259320f, - 0.264124575123527490f, - 0.263384744036113390f, 0.262644758006240100f, 0.261904617469222560f, - 0.261164322860466590f, - 0.260423874615468010f, 0.259683273169813930f, 0.258942518959180580f, - 0.258201612419334870f, - 0.257460553986133210f, 0.256719344095520720f, 0.255977983183532380f, - 0.255236471686291820f, - 0.254494810040010790f, 0.253752998680989940f, 0.253011038045617980f, - 0.252268928570370810f, - 0.251526670691812780f, 0.250784264846594550f, 0.250041711471454650f, - 0.249299011003218300f, - 0.248556163878796620f, 0.247813170535187620f, 0.247070031409475370f, - 0.246326746938829060f, - 0.245583317560504000f, 0.244839743711840750f, 0.244096025830264210f, - 0.243352164353284880f, - 0.242608159718496890f, 0.241864012363579210f, 0.241119722726294730f, - 0.240375291244489500f, - 0.239630718356093560f, 0.238886004499120170f, 0.238141150111664870f, - 0.237396155631906550f, - 0.236651021498106460f, 0.235905748148607370f, 0.235160336021834860f, - 0.234414785556295250f, - 0.233669097190576820f, 0.232923271363349120f, 0.232177308513361770f, - 0.231431209079445730f, - 0.230684973500512310f, 0.229938602215552260f, 0.229192095663636740f, - 0.228445454283916550f, - 0.227698678515621170f, 0.226951768798059980f, 0.226204725570620270f, - 0.225457549272768540f, - 0.224710240344049570f, 0.223962799224085520f, 0.223215226352576960f, - 0.222467522169301990f, - 0.221719687114115240f, 0.220971721626949060f, 0.220223626147812460f, - 0.219475401116790340f, - 0.218727046974044600f, 0.217978564159812290f, 0.217229953114406790f, - 0.216481214278216900f, - 0.215732348091705940f, 0.214983354995412820f, 0.214234235429951100f, - 0.213484989836008080f, - 0.212735618654345870f, 0.211986122325800410f, 0.211236501291280710f, - 0.210486755991769890f, - 0.209736886868323370f, 0.208986894362070070f, 0.208236778914211470f, - 0.207486540966020700f, - 0.206736180958843660f, 0.205985699334098050f, 0.205235096533272380f, - 0.204484372997927180f, - 0.203733529169694010f, 0.202982565490274460f, 0.202231482401441620f, - 0.201480280345037820f, - 0.200728959762976140f, 0.199977521097239290f, 0.199225964789878890f, - 0.198474291283016360f, - 0.197722501018842030f, 0.196970594439614370f, 0.196218571987660850f, - 0.195466434105377090f, - 0.194714181235225990f, 0.193961813819739010f, 0.193209332301514080f, - 0.192456737123216840f, - 0.191704028727579940f, 0.190951207557401860f, 0.190198274055548120f, - 0.189445228664950340f, - 0.188692071828605260f, 0.187938803989575850f, 0.187185425590990440f, - 0.186431937076041640f, - 0.185678338887987790f, 0.184924631470150870f, 0.184170815265917720f, - 0.183416890718739230f, - 0.182662858272129360f, 0.181908718369666160f, 0.181154471454990920f, - 0.180400117971807270f, - 0.179645658363882100f, 0.178891093075044830f, 0.178136422549186320f, - 0.177381647230260200f, - 0.176626767562280960f, 0.175871783989325040f, 0.175116696955530060f, - 0.174361506905093830f, - 0.173606214282275410f, 0.172850819531394200f, 0.172095323096829040f, - 0.171339725423019260f, - 0.170584026954463700f, 0.169828228135719880f, 0.169072329411405180f, - 0.168316331226194910f, - 0.167560234024823590f, 0.166804038252083870f, 0.166047744352825850f, - 0.165291352771957970f, - 0.164534863954446110f, 0.163778278345312690f, 0.163021596389637810f, - 0.162264818532558110f, - 0.161507945219266150f, 0.160750976895011390f, 0.159993914005098350f, - 0.159236756994887850f, - 0.158479506309796100f, 0.157722162395293690f, 0.156964725696906750f, - 0.156207196660216040f, - 0.155449575730855880f, 0.154691863354515400f, 0.153934059976937460f, - 0.153176166043917870f, - 0.152418182001306500f, 0.151660108295005400f, 0.150901945370970040f, - 0.150143693675208330f, - 0.149385353653779810f, 0.148626925752796540f, 0.147868410418422360f, - 0.147109808096871850f, - 0.146351119234411440f, 0.145592344277358450f, 0.144833483672080240f, - 0.144074537864995330f, - 0.143315507302571590f, 0.142556392431327340f, 0.141797193697830530f, - 0.141037911548697770f, - 0.140278546430595420f, 0.139519098790238600f, 0.138759569074390380f, - 0.137999957729862760f, - 0.137240265203515700f, 0.136480491942256310f, 0.135720638393040080f, - 0.134960705002868830f, - 0.134200692218792020f, 0.133440600487905820f, 0.132680430257352130f, - 0.131920181974319760f, - 0.131159856086043410f, 0.130399453039802740f, 0.129638973282923540f, - 0.128878417262776660f, - 0.128117785426777150f, 0.127357078222385570f, 0.126596296097105960f, - 0.125835439498487020f, - 0.125074508874121300f, 0.124313504671644300f, 0.123552427338735370f, - 0.122791277323116900f, - 0.122030055072553410f, 0.121268761034852550f, 0.120507395657864240f, - 0.119745959389479630f, - 0.118984452677632520f, 0.118222875970297250f, 0.117461229715489990f, - 0.116699514361267840f, - 0.115937730355727850f, 0.115175878147008180f, 0.114413958183287050f, - 0.113651970912781920f, - 0.112889916783750470f, 0.112127796244489750f, 0.111365609743335190f, - 0.110603357728661910f, - 0.109841040648882680f, 0.109078658952449240f, 0.108316213087851300f, - 0.107553703503615710f, - 0.106791130648307380f, 0.106028494970528530f, 0.105265796918917650f, - 0.104503036942150550f, - 0.103740215488939480f, 0.102977333008032250f, 0.102214389948213370f, - 0.101451386758302160f, - 0.100688323887153970f, 0.099925201783659226f, 0.099162020896742573f, - 0.098398781675363881f, - 0.097635484568517339f, 0.096872130025230527f, 0.096108718494565468f, - 0.095345250425617742f, - 0.094581726267515473f, 0.093818146469420494f, 0.093054511480527333f, - 0.092290821750062355f, - 0.091527077727284981f, 0.090763279861485704f, 0.089999428601987341f, - 0.089235524398144139f, - 0.088471567699340822f, 0.087707558954993645f, 0.086943498614549489f, - 0.086179387127484922f, - 0.085415224943307277f, 0.084651012511553700f, 0.083886750281790226f, - 0.083122438703613077f, - 0.082358078226646619f, 0.081593669300544638f, 0.080829212374989468f, - 0.080064707899690932f, - 0.079300156324387569f, 0.078535558098845590f, 0.077770913672857989f, - 0.077006223496245585f, - 0.076241488018856149f, 0.075476707690563416f, 0.074711882961268378f, - 0.073947014280897269f, - 0.073182102099402888f, 0.072417146866763538f, 0.071652149032982254f, - 0.070887109048087787f, - 0.070122027362133646f, 0.069356904425197236f, 0.068591740687380900f, - 0.067826536598810966f, - 0.067061292609636836f, 0.066296009170032283f, 0.065530686730193397f, - 0.064765325740339871f, - 0.063999926650714078f, 0.063234489911580136f, 0.062469015973224969f, - 0.061703505285957416f, - 0.060937958300107238f, 0.060172375466026218f, 0.059406757234087247f, - 0.058641104054683348f, - 0.057875416378229017f, 0.057109694655158132f, 0.056343939335925283f, - 0.055578150871004817f, - 0.054812329710889909f, 0.054046476306093640f, 0.053280591107148056f, - 0.052514674564603257f, - 0.051748727129028414f, 0.050982749251010900f, 0.050216741381155325f, - 0.049450703970084824f, - 0.048684637468439020f, 0.047918542326875327f, 0.047152418996068000f, - 0.046386267926707213f, - 0.045620089569500123f, 0.044853884375169933f, 0.044087652794454979f, - 0.043321395278109784f, - 0.042555112276904117f, 0.041788804241622082f, 0.041022471623063397f, - 0.040256114872041358f, - 0.039489734439384118f, 0.038723330775933762f, 0.037956904332545366f, - 0.037190455560088091f, - 0.036423984909444228f, 0.035657492831508264f, 0.034890979777187955f, - 0.034124446197403423f, - 0.033357892543086159f, 0.032591319265180385f, 0.031824726814640963f, - 0.031058115642434700f, - 0.030291486199539423f, 0.029524838936943035f, 0.028758174305644590f, - 0.027991492756653365f, - 0.027224794740987910f, 0.026458080709677145f, 0.025691351113759395f, - 0.024924606404281485f, - 0.024157847032300020f, 0.023391073448879338f, 0.022624286105092803f, - 0.021857485452021874f, - 0.021090671940755180f, 0.020323846022389572f, 0.019557008148029204f, - 0.018790158768784596f, - 0.018023298335773701f, 0.017256427300120978f, 0.016489546112956454f, - 0.015722655225417017f, - 0.014955755088644378f, 0.014188846153786343f, 0.013421928871995907f, - 0.012655003694430301f, - 0.011888071072252072f, 0.011121131456628141f, 0.010354185298728884f, - 0.009587233049729183f, - 0.008820275160807512f, 0.008053312083144991f, 0.007286344267926684f, - 0.006519372166339549f, - 0.005752396229573737f, 0.004985416908821652f, 0.004218434655277024f, - 0.003451449920135975f, - 0.002684463154596083f, 0.001917474809855460f, 0.001150485337113809f, - 0.000383495187571497f -}; - -static const float32_t cos_factors_8192[8192] = { - 1.999999990808214700, 1.999999917273932200, 1.999999770205369800, - 1.999999549602533100, - 1.999999255465430200, 1.999998887794072000, 1.999998446588471700, - 1.999997931848645600, - 1.999997343574612800, 1.999996681766395000, 1.999995946424016200, - 1.999995137547503600, - 1.999994255136887000, 1.999993299192198700, 1.999992269713474200, - 1.999991166700750800, - 1.999989990154069600, 1.999988740073473500, 1.999987416459008600, - 1.999986019310723500, - 1.999984548628669600, 1.999983004412901000, 1.999981386663474400, - 1.999979695380449400, - 1.999977930563888100, 1.999976092213855400, 1.999974180330418700, - 1.999972194913648900, - 1.999970135963618400, 1.999968003480403000, 1.999965797464081200, - 1.999963517914734100, - 1.999961164832445800, 1.999958738217302300, 1.999956238069392900, - 1.999953664388809800, - 1.999951017175647600, 1.999948296430003500, 1.999945502151977600, - 1.999942634341672600, - 1.999939692999193900, 1.999936678124649700, 1.999933589718150700, - 1.999930427779810900, - 1.999927192309745900, 1.999923883308075200, 1.999920500774920300, - 1.999917044710405500, - 1.999913515114657900, 1.999909911987807200, 1.999906235329986100, - 1.999902485141329400, - 1.999898661421975400, 1.999894764172064600, 1.999890793391740000, - 1.999886749081147800, - 1.999882631240436700, 1.999878439869758200, 1.999874174969266300, - 1.999869836539117700, - 1.999865424579472000, 1.999860939090491600, 1.999856380072341000, - 1.999851747525188200, - 1.999847041449203300, 1.999842261844559700, 1.999837408711432600, - 1.999832482050000900, - 1.999827481860445300, 1.999822408142949900, 1.999817260897701400, - 1.999812040124888700, - 1.999806745824704000, 1.999801377997341800, 1.999795936642999600, - 1.999790421761877400, - 1.999784833354177900, 1.999779171420106700, 1.999773435959872000, - 1.999767626973684400, - 1.999761744461757700, 1.999755788424308200, 1.999749758861554900, - 1.999743655773719400, - 1.999737479161026100, 1.999731229023702200, 1.999724905361977200, - 1.999718508176084000, - 1.999712037466257600, 1.999705493232735800, 1.999698875475759600, - 1.999692184195571900, - 1.999685419392419000, 1.999678581066549400, 1.999671669218214600, - 1.999664683847668800, - 1.999657624955168700, 1.999650492540973900, 1.999643286605346800, - 1.999636007148552400, - 1.999628654170857900, 1.999621227672533800, 1.999613727653853500, - 1.999606154115092500, - 1.999598507056529000, 1.999590786478444600, 1.999582992381123000, - 1.999575124764850800, - 1.999567183629917100, 1.999559168976613900, 1.999551080805236100, - 1.999542919116081000, - 1.999534683909448600, 1.999526375185641800, 1.999517992944965800, - 1.999509537187729200, - 1.999501007914242600, 1.999492405124819700, 1.999483728819776900, - 1.999474978999432800, - 1.999466155664109600, 1.999457258814131500, 1.999448288449825500, - 1.999439244571521700, - 1.999430127179552500, 1.999420936274252800, 1.999411671855960900, - 1.999402333925017300, - 1.999392922481765500, 1.999383437526551300, 1.999373879059723500, - 1.999364247081633500, - 1.999354541592635500, 1.999344762593086500, 1.999334910083345700, - 1.999324984063775700, - 1.999314984534741100, 1.999304911496609700, 1.999294764949752100, - 1.999284544894541100, - 1.999274251331352400, 1.999263884260564600, 1.999253443682558900, - 1.999242929597719200, - 1.999232342006432000, 1.999221680909086400, 1.999210946306074500, - 1.999200138197791100, - 1.999189256584633600, 1.999178301467001900, 1.999167272845298900, - 1.999156170719930100, - 1.999144995091303600, 1.999133745959830600, 1.999122423325924200, - 1.999111027190001000, - 1.999099557552479900, 1.999088014413782800, 1.999076397774334000, - 1.999064707634560700, - 1.999052943994892300, 1.999041106855761900, 1.999029196217604100, - 1.999017212080857400, - 1.999005154445962200, 1.998993023313361700, 1.998980818683502100, - 1.998968540556831800, - 1.998956188933802800, 1.998943763814868800, 1.998931265200486900, - 1.998918693091116200, - 1.998906047487219600, 1.998893328389261400, 1.998880535797709700, - 1.998867669713034500, - 1.998854730135709400, 1.998841717066209400, 1.998828630505013400, - 1.998815470452602400, - 1.998802236909460500, 1.998788929876074100, 1.998775549352932400, - 1.998762095340527400, - 1.998748567839354000, 1.998734966849909000, 1.998721292372693100, - 1.998707544408208700, - 1.998693722956961500, 1.998679828019459300, 1.998665859596213500, - 1.998651817687737300, - 1.998637702294547000, 1.998623513417161700, 1.998609251056103100, - 1.998594915211895600, - 1.998580505885066100, 1.998566023076144600, 1.998551466785663400, - 1.998536837014157900, - 1.998522133762165900, 1.998507357030227900, 1.998492506818887200, - 1.998477583128690100, - 1.998462585960185000, 1.998447515313923400, 1.998432371190459500, - 1.998417153590349900, - 1.998401862514154200, 1.998386497962434800, 1.998371059935756300, - 1.998355548434686400, - 1.998339963459795400, 1.998324305011656600, 1.998308573090845200, - 1.998292767697940100, - 1.998276888833522300, 1.998260936498175400, 1.998244910692486000, - 1.998228811417043700, - 1.998212638672439900, 1.998196392459269400, 1.998180072778129600, - 1.998163679629620500, - 1.998147213014344900, 1.998130672932908000, 1.998114059385918400, - 1.998097372373986300, - 1.998080611897725700, 1.998063777957752600, 1.998046870554686100, - 1.998029889689147700, - 1.998012835361761900, 1.997995707573155600, 1.997978506323958600, - 1.997961231614803200, - 1.997943883446324800, 1.997926461819161000, 1.997908966733952500, - 1.997891398191342400, - 1.997873756191977000, 1.997856040736504500, 1.997838251825576400, - 1.997820389459846700, - 1.997802453639972300, 1.997784444366612600, 1.997766361640429800, - 1.997748205462088500, - 1.997729975832256600, 1.997711672751604200, 1.997693296220804000, - 1.997674846240532000, - 1.997656322811466500, 1.997637725934288300, 1.997619055609681600, - 1.997600311838332500, - 1.997581494620930300, 1.997562603958166600, 1.997543639850736200, - 1.997524602299336500, - 1.997505491304667000, 1.997486306867430900, 1.997467048988333000, - 1.997447717668082000, - 1.997428312907388200, 1.997408834706965000, 1.997389283067528800, - 1.997369657989798400, - 1.997349959474495200, 1.997330187522343700, 1.997310342134070800, - 1.997290423310406100, - 1.997270431052081900, 1.997250365359833200, 1.997230226234397900, - 1.997210013676516700, - 1.997189727686932400, 1.997169368266390900, 1.997148935415640600, - 1.997128429135433400, - 1.997107849426522600, 1.997087196289665000, 1.997066469725620200, - 1.997045669735150000, - 1.997024796319019300, 1.997003849477995600, 1.996982829212848900, - 1.996961735524351900, - 1.996940568413280600, 1.996919327880412900, 1.996898013926530000, - 1.996876626552415400, - 1.996855165758855600, 1.996833631546639300, 1.996812023916558800, - 1.996790342869408000, - 1.996768588405984300, 1.996746760527087700, 1.996724859233520500, - 1.996702884526087900, - 1.996680836405598100, 1.996658714872861800, 1.996636519928692000, - 1.996614251573904900, - 1.996591909809319400, 1.996569494635756600, 1.996547006054041100, - 1.996524444064999400, - 1.996501808669461000, 1.996479099868258400, 1.996456317662226300, - 1.996433462052202600, - 1.996410533039027400, 1.996387530623543900, 1.996364454806597500, - 1.996341305589037100, - 1.996318082971713500, 1.996294786955480800, 1.996271417541195300, - 1.996247974729716200, - 1.996224458521905600, 1.996200868918628100, 1.996177205920750800, - 1.996153469529144100, - 1.996129659744680300, 1.996105776568235100, 1.996081820000686500, - 1.996057790042915500, - 1.996033686695805300, 1.996009509960242400, 1.995985259837115500, - 1.995960936327316300, - 1.995936539431739000, 1.995912069151280800, 1.995887525486841300, - 1.995862908439323100, - 1.995838218009630800, 1.995813454198672700, 1.995788617007359100, - 1.995763706436603200, - 1.995738722487320600, 1.995713665160430600, 1.995688534456853800, - 1.995663330377514400, - 1.995638052923339300, 1.995612702095257400, 1.995587277894201400, - 1.995561780321105600, - 1.995536209376907600, 1.995510565062547800, 1.995484847378968600, - 1.995459056327116000, - 1.995433191907938000, 1.995407254122385700, 1.995381242971412600, - 1.995355158455975200, - 1.995329000577032800, 1.995302769335546500, 1.995276464732481200, - 1.995250086768804100, - 1.995223635445484900, 1.995197110763496000, 1.995170512723813100, - 1.995143841327413400, - 1.995117096575278200, 1.995090278468390600, 1.995063387007736600, - 1.995036422194304700, - 1.995009384029086800, 1.994982272513076600, 1.994955087647271000, - 1.994927829432669800, - 1.994900497870274900, 1.994873092961091200, 1.994845614706126400, - 1.994818063106391000, - 1.994790438162897600, 1.994762739876662100, 1.994734968248702800, - 1.994707123280041100, - 1.994679204971700100, 1.994651213324707000, 1.994623148340090700, - 1.994595010018883000, - 1.994566798362118300, 1.994538513370834200, 1.994510155046070700, - 1.994481723388870100, - 1.994453218400277900, 1.994424640081342100, 1.994395988433113700, - 1.994367263456646100, - 1.994338465152995000, 1.994309593523219600, 1.994280648568381500, - 1.994251630289544600, - 1.994222538687776100, 1.994193373764145500, 1.994164135519725000, - 1.994134823955589800, - 1.994105439072817700, 1.994075980872488800, 1.994046449355686200, - 1.994016844523496000, - 1.993987166377006600, 1.993957414917308700, 1.993927590145496900, - 1.993897692062667200, - 1.993867720669919400, 1.993837675968354700, 1.993807557959078600, - 1.993777366643197900, - 1.993747102021822900, 1.993716764096066200, 1.993686352867043200, - 1.993655868335872300, - 1.993625310503674100, 1.993594679371572200, 1.993563974940692800, - 1.993533197212164800, - 1.993502346187119700, 1.993471421866692200, 1.993440424252018900, - 1.993409353344239600, - 1.993378209144496700, 1.993346991653935300, 1.993315700873703200, - 1.993284336804950900, - 1.993252899448831400, 1.993221388806500900, 1.993189804879117500, - 1.993158147667842800, - 1.993126417173840500, 1.993094613398277400, 1.993062736342323000, - 1.993030786007148800, - 1.992998762393930000, 1.992966665503844000, 1.992934495338070800, - 1.992902251897793000, - 1.992869935184196300, 1.992837545198469000, 1.992805081941801700, - 1.992772545415388200, - 1.992739935620424700, 1.992707252558110200, 1.992674496229646500, - 1.992641666636237700, - 1.992608763779091000, 1.992575787659416100, 1.992542738278425300, - 1.992509615637334100, - 1.992476419737359900, 1.992443150579723500, 1.992409808165648100, - 1.992376392496359300, - 1.992342903573086000, 1.992309341397059600, 1.992275705969513800, - 1.992241997291685400, - 1.992208215364813700, 1.992174360190140900, 1.992140431768911500, - 1.992106430102373400, - 1.992072355191776300, 1.992038207038373300, 1.992003985643419700, - 1.991969691008174100, - 1.991935323133897000, 1.991900882021852200, 1.991866367673306200, - 1.991831780089527500, - 1.991797119271788300, 1.991762385221362600, 1.991727577939527600, - 1.991692697427563300, - 1.991657743686751700, 1.991622716718378400, 1.991587616523731000, - 1.991552443104099800, - 1.991517196460778500, 1.991481876595062800, 1.991446483508251500, - 1.991411017201645500, - 1.991375477676549100, 1.991339864934268800, 1.991304178976114100, - 1.991268419803397200, - 1.991232587417432600, 1.991196681819537900, 1.991160703011033200, - 1.991124650993241400, - 1.991088525767488200, 1.991052327335101300, 1.991016055697411900, - 1.990979710855753900, - 1.990943292811463000, 1.990906801565878600, 1.990870237120342400, - 1.990833599476198800, - 1.990796888634794400, 1.990760104597479400, 1.990723247365606200, - 1.990686316940529800, - 1.990649313323608100, 1.990612236516201300, 1.990575086519673200, - 1.990537863335389400, - 1.990500566964718400, 1.990463197409031700, 1.990425754669703100, - 1.990388238748109100, - 1.990350649645629600, 1.990312987363646000, 1.990275251903543600, - 1.990237443266709400, - 1.990199561454533600, 1.990161606468409300, 1.990123578309731700, - 1.990085476979899000, - 1.990047302480312300, 1.990009054812374800, 1.989970733977493000, - 1.989932339977075900, - 1.989893872812535000, 1.989855332485284800, 1.989816718996742200, - 1.989778032348326700, - 1.989739272541461100, 1.989700439577570400, 1.989661533458082100, - 1.989622554184426800, - 1.989583501758037700, 1.989544376180350600, 1.989505177452804100, - 1.989465905576839600, - 1.989426560553900500, 1.989387142385433900, 1.989347651072888900, - 1.989308086617717500, - 1.989268449021374300, 1.989228738285316900, 1.989188954411005100, - 1.989149097399901500, - 1.989109167253472000, 1.989069163973184300, 1.989029087560509700, - 1.988988938016921000, - 1.988948715343894900, 1.988908419542910100, 1.988868050615448100, - 1.988827608562993200, - 1.988787093387032600, 1.988746505089055600, 1.988705843670554500, - 1.988665109133024500, - 1.988624301477963200, 1.988583420706871100, 1.988542466821251000, - 1.988501439822608900, - 1.988460339712453200, 1.988419166492295000, 1.988377920163648000, - 1.988336600728029000, - 1.988295208186956700, 1.988253742541953800, 1.988212203794544000, - 1.988170591946255100, - 1.988128906998616800, 1.988087148953161700, 1.988045317811425700, - 1.988003413574946000, - 1.987961436245263800, 1.987919385823922400, 1.987877262312467600, - 1.987835065712448600, - 1.987792796025416500, 1.987750453252925500, 1.987708037396532800, - 1.987665548457797400, - 1.987622986438281700, 1.987580351339550700, 1.987537643163171700, - 1.987494861910715100, - 1.987452007583754100, 1.987409080183863800, 1.987366079712622900, - 1.987323006171612500, - 1.987279859562415900, 1.987236639886619700, 1.987193347145813000, - 1.987149981341587400, - 1.987106542475537400, 1.987063030549260300, 1.987019445564355700, - 1.986975787522426100, - 1.986932056425076800, 1.986888252273915500, 1.986844375070552900, - 1.986800424816602200, - 1.986756401513679400, 1.986712305163403000, 1.986668135767394300, - 1.986623893327277500, - 1.986579577844678900, 1.986535189321228000, 1.986490727758556800, - 1.986446193158300400, - 1.986401585522095600, 1.986356904851583000, 1.986312151148405200, - 1.986267324414207500, - 1.986222424650638400, 1.986177451859348200, 1.986132406041990900, - 1.986087287200222700, - 1.986042095335702300, 1.985996830450091200, 1.985951492545054100, - 1.985906081622257300, - 1.985860597683371000, 1.985815040730067200, 1.985769410764020900, - 1.985723707786909900, - 1.985677931800414500, 1.985632082806217900, 1.985586160806005700, - 1.985540165801466200, - 1.985494097794290800, 1.985447956786173100, 1.985401742778809500, - 1.985355455773899500, - 1.985309095773144500, 1.985262662778249300, 1.985216156790921000, - 1.985169577812869500, - 1.985122925845807400, 1.985076200891450000, 1.985029402951515200, - 1.984982532027723700, - 1.984935588121798700, 1.984888571235466200, 1.984841481370454900, - 1.984794318528496200, - 1.984747082711324100, 1.984699773920675300, 1.984652392158289500, - 1.984604937425908300, - 1.984557409725276700, 1.984509809058142300, 1.984462135426255000, - 1.984414388831367900, - 1.984366569275236400, 1.984318676759618400, 1.984270711286275200, - 1.984222672856969800, - 1.984174561473469200, 1.984126377137541700, 1.984078119850959200, - 1.984029789615495900, - 1.983981386432928800, 1.983932910305037400, 1.983884361233604100, - 1.983835739220414000, - 1.983787044267254700, 1.983738276375916800, 1.983689435548192900, - 1.983640521785879200, - 1.983591535090773800, 1.983542475464678000, 1.983493342909395500, - 1.983444137426732600, - 1.983394859018498900, 1.983345507686505900, 1.983296083432567900, - 1.983246586258502700, - 1.983197016166129400, 1.983147373157271300, 1.983097657233753100, - 1.983047868397403100, - 1.982998006650051400, 1.982948071993531700, 1.982898064429679900, - 1.982847983960334600, - 1.982797830587336800, 1.982747604312531200, 1.982697305137763700, - 1.982646933064884200, - 1.982596488095744300, 1.982545970232199000, 1.982495379476105800, - 1.982444715829324600, - 1.982393979293718200, 1.982343169871152000, 1.982292287563494300, - 1.982241332372615600, - 1.982190304300389400, 1.982139203348692200, 1.982088029519402300, - 1.982036782814401900, - 1.981985463235574700, 1.981934070784807400, 1.981882605463990200, - 1.981831067275015000, - 1.981779456219776600, 1.981727772300172500, 1.981676015518103500, - 1.981624185875472000, - 1.981572283374183800, 1.981520308016147200, 1.981468259803273300, - 1.981416138737475800, - 1.981363944820670800, 1.981311678054777500, 1.981259338441717400, - 1.981206925983415300, - 1.981154440681797800, 1.981101882538794900, 1.981049251556338900, - 1.980996547736364900, - 1.980943771080810700, 1.980890921591616600, 1.980837999270726100, - 1.980785004120084700, - 1.980731936141640900, 1.980678795337345900, 1.980625581709153600, - 1.980572295259020600, - 1.980518935988905700, 1.980465503900771000, 1.980411998996581200, - 1.980358421278303200, - 1.980304770747907300, 1.980251047407365600, 1.980197251258653900, - 1.980143382303749500, - 1.980089440544633600, 1.980035425983289300, 1.979981338621702200, - 1.979927178461861500, - 1.979872945505758000, 1.979818639755386100, 1.979764261212742400, - 1.979709809879825800, - 1.979655285758638900, 1.979600688851186100, 1.979546019159474900, - 1.979491276685515300, - 1.979436461431320000, 1.979381573398904400, 1.979326612590286400, - 1.979271579007487100, - 1.979216472652529900, 1.979161293527440500, 1.979106041634248100, - 1.979050716974983800, - 1.978995319551682100, 1.978939849366379700, 1.978884306421115900, - 1.978828690717932900, - 1.978773002258875600, 1.978717241045991700, 1.978661407081331100, - 1.978605500366946700, - 1.978549520904894000, 1.978493468697231300, 1.978437343746019600, - 1.978381146053322000, - 1.978324875621205300, 1.978268532451738200, 1.978212116546992100, - 1.978155627909041300, - 1.978099066539962900, 1.978042432441836400, 1.977985725616743900, - 1.977928946066770600, - 1.977872093794004200, 1.977815168800534500, 1.977758171088455100, - 1.977701100659861300, - 1.977643957516851400, 1.977586741661526500, 1.977529453095990200, - 1.977472091822348700, - 1.977414657842711200, 1.977357151159189400, 1.977299571773897700, - 1.977241919688953000, - 1.977184194906475000, 1.977126397428586000, 1.977068527257411300, - 1.977010584395078300, - 1.976952568843717700, 1.976894480605462500, 1.976836319682448300, - 1.976778086076813600, - 1.976719779790699500, 1.976661400826249500, 1.976602949185610500, - 1.976544424870931400, - 1.976485827884363800, 1.976427158228062100, 1.976368415904183900, - 1.976309600914888400, - 1.976250713262338600, 1.976191752948699200, 1.976132719976138000, - 1.976073614346825800, - 1.976014436062935700, 1.975955185126643300, 1.975895861540127200, - 1.975836465305568400, - 1.975776996425151000, 1.975717454901061400, 1.975657840735488800, - 1.975598153930624900, - 1.975538394488664200, 1.975478562411804100, 1.975418657702244300, - 1.975358680362187400, - 1.975298630393838500, 1.975238507799405500, 1.975178312581099100, - 1.975118044741132300, - 1.975057704281721000, 1.974997291205083700, 1.974936805513442000, - 1.974876247209019100, - 1.974815616294042200, 1.974754912770740200, 1.974694136641345300, - 1.974633287908091500, - 1.974572366573216400, 1.974511372638960000, 1.974450306107564900, - 1.974389166981275900, - 1.974327955262341400, 1.974266670953011400, 1.974205314055540000, - 1.974143884572182400, - 1.974082382505197400, 1.974020807856846400, 1.973959160629393100, - 1.973897440825104200, - 1.973835648446248900, 1.973773783495099500, 1.973711845973930000, - 1.973649835885018100, - 1.973587753230643400, 1.973525598013088800, 1.973463370234639600, - 1.973401069897583200, - 1.973338697004211100, 1.973276251556815600, 1.973213733557693400, - 1.973151143009142800, - 1.973088479913465100, 1.973025744272964200, 1.972962936089946800, - 1.972900055366722000, - 1.972837102105601900, 1.972774076308901200, 1.972710977978936900, - 1.972647807118029300, - 1.972584563728500700, 1.972521247812676600, 1.972457859372884500, - 1.972394398411455800, - 1.972330864930723200, 1.972267258933022600, 1.972203580420693000, - 1.972139829396075200, - 1.972076005861513700, 1.972012109819354600, 1.971948141271947500, - 1.971884100221644300, - 1.971819986670799500, 1.971755800621770400, 1.971691542076916800, - 1.971627211038601500, - 1.971562807509189800, 1.971498331491049700, 1.971433782986551400, - 1.971369161998068400, - 1.971304468527976800, 1.971239702578655000, 1.971174864152484400, - 1.971109953251848600, - 1.971044969879134600, 1.970979914036731500, 1.970914785727030800, - 1.970849584952427900, - 1.970784311715319400, 1.970718966018105500, 1.970653547863188600, - 1.970588057252973900, - 1.970522494189869800, 1.970456858676286300, 1.970391150714636800, - 1.970325370307337100, - 1.970259517456806100, 1.970193592165464700, 1.970127594435737000, - 1.970061524270049400, - 1.969995381670831100, 1.969929166640514100, 1.969862879181532700, - 1.969796519296324300, - 1.969730086987328900, 1.969663582256988600, 1.969597005107748900, - 1.969530355542057800, - 1.969463633562365400, 1.969396839171125200, 1.969329972370792700, - 1.969263033163826800, - 1.969196021552688500, 1.969128937539841500, 1.969061781127752400, - 1.968994552318890300, - 1.968927251115727200, 1.968859877520737300, 1.968792431536398000, - 1.968724913165188900, - 1.968657322409592500, 1.968589659272094000, 1.968521923755181000, - 1.968454115861344000, - 1.968386235593076300, 1.968318282952873600, 1.968250257943234200, - 1.968182160566659000, - 1.968113990825652200, 1.968045748722719900, 1.967977434260371300, - 1.967909047441118100, - 1.967840588267474500, 1.967772056741957900, 1.967703452867087800, - 1.967634776645386600, - 1.967566028079379200, 1.967497207171593500, 1.967428313924559600, - 1.967359348340810700, - 1.967290310422882700, 1.967221200173313400, 1.967152017594644200, - 1.967082762689418500, - 1.967013435460182700, 1.966944035909485600, 1.966874564039879300, - 1.966805019853917500, - 1.966735403354157500, 1.966665714543159000, 1.966595953423483800, - 1.966526119997697100, - 1.966456214268366600, 1.966386236238062200, 1.966316185909357200, - 1.966246063284826700, - 1.966175868367049400, 1.966105601158605600, 1.966035261662079300, - 1.965964849880056600, - 1.965894365815126000, 1.965823809469879400, 1.965753180846910900, - 1.965682479948817100, - 1.965611706778197700, 1.965540861337654600, 1.965469943629792700, - 1.965398953657219600, - 1.965327891422544900, 1.965256756928382100, 1.965185550177345900, - 1.965114271172054800, - 1.965042919915129400, 1.964971496409193100, 1.964900000656872000, - 1.964828432660794500, - 1.964756792423592200, 1.964685079947899200, 1.964613295236352000, - 1.964541438291590000, - 1.964469509116255000, 1.964397507712991800, 1.964325434084447600, - 1.964253288233272400, - 1.964181070162119000, 1.964108779873642100, 1.964036417370500300, - 1.963963982655353400, - 1.963891475730865400, 1.963818896599701400, 1.963746245264530700, - 1.963673521728023900, - 1.963600725992855200, 1.963527858061700600, 1.963454917937239800, - 1.963381905622154400, - 1.963308821119128700, 1.963235664430850200, 1.963162435560008100, - 1.963089134509295300, - 1.963015761281406800, 1.962942315879040000, 1.962868798304895400, - 1.962795208561676200, - 1.962721546652088200, 1.962647812578839400, 1.962574006344640900, - 1.962500127952206300, - 1.962426177404252200, 1.962352154703497200, 1.962278059852663000, - 1.962203892854473800, - 1.962129653711656800, 1.962055342426941400, 1.961980959003059500, - 1.961906503442746300, - 1.961831975748739200, 1.961757375923778700, 1.961682703970607100, - 1.961607959891970200, - 1.961533143690616000, 1.961458255369295400, 1.961383294930761700, - 1.961308262377770900, - 1.961233157713082200, 1.961157980939456400, 1.961082732059657800, - 1.961007411076453000, - 1.960932017992611500, 1.960856552810905200, 1.960781015534108800, - 1.960705406164999300, - 1.960629724706357100, 1.960553971160964500, 1.960478145531606700, - 1.960402247821071900, - 1.960326278032150200, 1.960250236167635100, 1.960174122230322400, - 1.960097936223010400, - 1.960021678148500500, 1.959945348009596500, 1.959868945809104500, - 1.959792471549834000, - 1.959715925234596600, 1.959639306866206600, 1.959562616447480900, - 1.959485853981239600, - 1.959409019470304700, 1.959332112917501400, 1.959255134325657000, - 1.959178083697602300, - 1.959100961036169800, 1.959023766344195200, 1.958946499624516700, - 1.958869160879975500, - 1.958791750113414700, 1.958714267327680500, 1.958636712525621900, - 1.958559085710090500, - 1.958481386883940100, 1.958403616050027600, 1.958325773211212300, - 1.958247858370356400, - 1.958169871530324600, 1.958091812693984400, 1.958013681864205500, - 1.957935479043860600, - 1.957857204235825100, 1.957778857442976900, 1.957700438668196700, - 1.957621947914367500, - 1.957543385184375300, 1.957464750481108700, 1.957386043807458800, - 1.957307265166319500, - 1.957228414560587200, 1.957149491993160900, 1.957070497466942400, - 1.956991430984836400, - 1.956912292549749500, 1.956833082164591600, 1.956753799832275300, - 1.956674445555715000, - 1.956595019337829000, 1.956515521181537000, 1.956435951089762200, - 1.956356309065430100, - 1.956276595111468900, 1.956196809230809500, 1.956116951426385600, - 1.956037021701132900, - 1.955957020057990500, 1.955876946499899700, 1.955796801029804800, - 1.955716583650652000, - 1.955636294365391300, 1.955555933176974300, 1.955475500088355900, - 1.955394995102493100, - 1.955314418222346100, 1.955233769450877200, 1.955153048791052000, - 1.955072256245838000, - 1.954991391818206000, 1.954910455511129000, 1.954829447327582900, - 1.954748367270545900, - 1.954667215342999600, 1.954585991547927100, 1.954504695888315000, - 1.954423328367152600, - 1.954341888987431100, 1.954260377752145000, 1.954178794664291200, - 1.954097139726869600, - 1.954015412942881900, 1.953933614315333200, 1.953851743847231100, - 1.953769801541585400, - 1.953687787401409400, 1.953605701429718100, 1.953523543629529700, - 1.953441314003864900, - 1.953359012555747200, 1.953276639288202400, 1.953194194204259200, - 1.953111677306948800, - 1.953029088599305100, 1.952946428084364900, 1.952863695765167100, - 1.952780891644753500, - 1.952698015726169100, 1.952615068012460300, 1.952532048506677300, - 1.952448957211872200, - 1.952365794131100300, 1.952282559267419100, 1.952199252623889200, - 1.952115874203572900, - 1.952032424009536600, 1.951948902044847900, 1.951865308312577900, - 1.951781642815800100, - 1.951697905557590700, 1.951614096541028500, 1.951530215769194700, - 1.951446263245173500, - 1.951362238972051500, 1.951278142952918200, 1.951193975190865600, - 1.951109735688987900, - 1.951025424450382900, 1.950941041478150100, 1.950856586775392200, - 1.950772060345214300, - 1.950687462190724200, 1.950602792315032200, 1.950518050721251600, - 1.950433237412498000, - 1.950348352391889600, 1.950263395662547700, 1.950178367227595900, - 1.950093267090159800, - 1.950008095253369200, 1.949922851720355100, 1.949837536494251700, - 1.949752149578196000, - 1.949666690975327100, 1.949581160688787400, 1.949495558721721500, - 1.949409885077276500, - 1.949324139758602700, 1.949238322768852800, 1.949152434111181700, - 1.949066473788747300, - 1.948980441804710300, 1.948894338162233900, 1.948808162864483600, - 1.948721915914628100, - 1.948635597315838200, 1.948549207071288000, 1.948462745184153400, - 1.948376211657613500, - 1.948289606494849800, 1.948202929699046800, 1.948116181273391100, - 1.948029361221072400, - 1.947942469545282500, 1.947855506249216700, 1.947768471336071700, - 1.947681364809048100, - 1.947594186671348000, 1.947506936926177300, 1.947419615576743600, - 1.947332222626257500, - 1.947244758077932200, 1.947157221934983500, 1.947069614200629900, - 1.946981934878092300, - 1.946894183970594900, 1.946806361481363500, 1.946718467413627300, - 1.946630501770618000, - 1.946542464555569800, 1.946454355771719300, 1.946366175422306500, - 1.946277923510573200, - 1.946189600039764300, 1.946101205013127000, 1.946012738433911600, - 1.945924200305370700, - 1.945835590630759400, 1.945746909413335900, 1.945658156656360700, - 1.945569332363096700, - 1.945480436536810100, 1.945391469180769200, 1.945302430298244900, - 1.945213319892511200, - 1.945124137966844200, 1.945034884524523100, 1.944945559568829200, - 1.944856163103046800, - 1.944766695130463000, 1.944677155654366900, 1.944587544678050900, - 1.944497862204809900, - 1.944408108237940700, 1.944318282780743900, 1.944228385836521700, - 1.944138417408579400, - 1.944048377500225100, 1.943958266114769200, 1.943868083255524800, - 1.943777828925807600, - 1.943687503128936200, 1.943597105868231500, 1.943506637147017300, - 1.943416096968619400, - 1.943325485336367300, 1.943234802253592400, 1.943144047723628400, - 1.943053221749812400, - 1.942962324335484100, 1.942871355483985200, 1.942780315198660200, - 1.942689203482856900, - 1.942598020339924700, 1.942506765773216500, 1.942415439786087300, - 1.942324042381895000, - 1.942232573564000000, 1.942141033335765400, 1.942049421700556600, - 1.941957738661741900, - 1.941865984222692900, 1.941774158386782200, 1.941682261157386700, - 1.941590292537884700, - 1.941498252531658200, 1.941406141142090600, 1.941313958372568900, - 1.941221704226482500, - 1.941129378707223000, 1.941036981818185400, 1.940944513562766300, - 1.940851973944365900, - 1.940759362966386600, 1.940666680632233200, 1.940573926945313700, - 1.940481101909038200, - 1.940388205526819600, 1.940295237802073500, 1.940202198738217900, - 1.940109088338673600, - 1.940015906606864300, 1.939922653546215500, 1.939829329160156500, - 1.939735933452118000, - 1.939642466425534300, 1.939548928083841800, 1.939455318430479500, - 1.939361637468889100, - 1.939267885202515400, 1.939174061634805000, 1.939080166769207700, - 1.938986200609175600, - 1.938892163158163700, 1.938798054419629500, 1.938703874397032800, - 1.938609623093837000, - 1.938515300513506700, 1.938420906659510600, 1.938326441535318500, - 1.938231905144404400, - 1.938137297490243500, 1.938042618576314400, 1.937947868406098500, - 1.937853046983079300, - 1.937758154310742900, 1.937663190392578500, 1.937568155232077600, - 1.937473048832734500, - 1.937377871198045600, 1.937282622331510500, 1.937187302236631500, - 1.937091910916912900, - 1.936996448375861900, 1.936900914616988900, 1.936805309643805800, - 1.936709633459828200, - 1.936613886068573500, 1.936518067473562300, 1.936422177678317300, - 1.936326216686364400, - 1.936230184501231500, 1.936134081126449800, 1.936037906565552400, - 1.935941660822075600, - 1.935845343899558000, 1.935748955801540800, 1.935652496531568000, - 1.935555966093186300, - 1.935459364489944500, 1.935362691725394500, 1.935265947803090900, - 1.935169132726590500, - 1.935072246499453000, 1.934975289125240500, 1.934878260607517900, - 1.934781160949852600, - 1.934683990155814800, 1.934586748228977100, 1.934489435172914900, - 1.934392050991206300, - 1.934294595687431300, 1.934197069265173500, 1.934099471728018700, - 1.934001803079554700, - 1.933904063323373300, 1.933806252463067500, 1.933708370502233800, - 1.933610417444471000, - 1.933512393293380600, 1.933414298052566600, 1.933316131725635800, - 1.933217894316197300, - 1.933119585827862900, 1.933021206264247600, 1.932922755628968100, - 1.932824233925644300, - 1.932725641157898600, 1.932626977329356100, 1.932528242443643900, - 1.932429436504392800, - 1.932330559515235100, 1.932231611479806800, 1.932132592401745400, - 1.932033502284691700, - 1.931934341132289100, 1.931835108948183300, 1.931735805736022800, - 1.931636431499459000, - 1.931536986242145200, 1.931437469967737900, 1.931337882679895900, - 1.931238224382281000, - 1.931138495078557300, 1.931038694772391200, 1.930938823467452500, - 1.930838881167413100, - 1.930738867875947400, 1.930638783596732700, 1.930538628333448900, - 1.930438402089778200, - 1.930338104869405900, 1.930237736676019500, 1.930137297513309300, - 1.930036787384968200, - 1.929936206294691400, 1.929835554246177400, 1.929734831243126600, - 1.929634037289242400, - 1.929533172388230700, 1.929432236543799900, 1.929331229759661200, - 1.929230152039528500, - 1.929129003387117800, 1.929027783806148300, 1.928926493300341400, - 1.928825131873421500, - 1.928723699529115000, 1.928622196271151800, 1.928520622103263400, - 1.928418977029184600, - 1.928317261052652700, 1.928215474177407100, 1.928113616407190600, - 1.928011687745748300, - 1.927909688196827400, 1.927807617764178300, 1.927705476451554000, - 1.927603264262709900, - 1.927500981201404100, 1.927398627271397000, 1.927296202476451900, - 1.927193706820335100, - 1.927091140306814500, 1.926988502939661400, 1.926885794722649600, - 1.926783015659555300, - 1.926680165754157500, 1.926577245010237400, 1.926474253431579500, - 1.926371191021970100, - 1.926268057785198700, 1.926164853725057300, 1.926061578845340600, - 1.925958233149845000, - 1.925854816642371000, 1.925751329326720600, 1.925647771206698600, - 1.925544142286112800, - 1.925440442568773000, 1.925336672058492300, 1.925232830759086000, - 1.925128918674371900, - 1.925024935808170600, 1.924920882164305300, 1.924816757746601800, - 1.924712562558888100, - 1.924608296604995800, 1.924503959888757900, 1.924399552414010700, - 1.924295074184593000, - 1.924190525204346300, 1.924085905477114400, 1.923981215006744100, - 1.923876453797084300, - 1.923771621851986700, 1.923666719175306100, 1.923561745770898900, - 1.923456701642625200, - 1.923351586794346900, 1.923246401229928600, 1.923141144953238300, - 1.923035817968145300, - 1.922930420278522500, 1.922824951888245000, 1.922719412801190600, - 1.922613803021239600, - 1.922508122552275100, 1.922402371398182600, 1.922296549562850100, - 1.922190657050168800, - 1.922084693864031700, 1.921978660008334600, 1.921872555486976700, - 1.921766380303858500, - 1.921660134462884100, 1.921553817967959900, 1.921447430822994500, - 1.921340973031900000, - 1.921234444598590100, 1.921127845526981600, 1.921021175820994100, - 1.920914435484549100, - 1.920807624521571700, 1.920700742935988600, 1.920593790731729600, - 1.920486767912727300, - 1.920379674482916500, 1.920272510446234400, 1.920165275806621400, - 1.920057970568020100, - 1.919950594734376000, 1.919843148309637000, 1.919735631297753400, - 1.919628043702678300, - 1.919520385528367300, 1.919412656778779000, 1.919304857457874200, - 1.919196987569616200, - 1.919089047117971100, 1.918981036106907700, 1.918872954540397300, - 1.918764802422413500, - 1.918656579756932800, 1.918548286547934400, 1.918439922799399800, - 1.918331488515313300, - 1.918222983699661600, 1.918114408356434300, 1.918005762489623400, - 1.917897046103223200, - 1.917788259201231200, 1.917679401787647100, 1.917570473866473200, - 1.917461475441714500, - 1.917352406517378600, 1.917243267097475700, 1.917134057186018300, - 1.917024776787022100, - 1.916915425904504700, 1.916806004542486800, 1.916696512704991500, - 1.916586950396044400, - 1.916477317619674100, 1.916367614379911100, 1.916257840680788900, - 1.916147996526343700, - 1.916038081920614400, 1.915928096867641800, 1.915818041371470000, - 1.915707915436145200, - 1.915597719065716700, 1.915487452264236000, 1.915377115035757200, - 1.915266707384337200, - 1.915156229314035200, 1.915045680828913400, 1.914935061933036300, - 1.914824372630470800, - 1.914713612925287100, 1.914602782821557000, 1.914491882323355700, - 1.914380911434760500, - 1.914269870159851700, 1.914158758502712000, 1.914047576467426500, - 1.913936324058083100, - 1.913825001278772100, 1.913713608133586600, 1.913602144626622500, - 1.913490610761977600, - 1.913379006543752800, 1.913267331976051400, 1.913155587062979500, - 1.913043771808645700, - 1.912931886217160900, 1.912819930292639000, 1.912707904039196300, - 1.912595807460951500, - 1.912483640562026200, 1.912371403346544400, 1.912259095818632700, - 1.912146717982420500, - 1.912034269842039600, 1.911921751401624200, 1.911809162665311500, - 1.911696503637241100, - 1.911583774321554700, 1.911470974722397500, 1.911358104843916500, - 1.911245164690262000, - 1.911132154265586100, 1.911019073574044200, 1.910905922619793800, - 1.910792701406995000, - 1.910679409939810600, 1.910566048222406300, 1.910452616258949900, - 1.910339114053611900, - 1.910225541610565800, 1.910111898933986900, 1.909998186028053700, - 1.909884402896947100, - 1.909770549544850500, 1.909656625975950200, 1.909542632194434700, - 1.909428568204495100, - 1.909314434010325400, 1.909200229616121700, 1.909085955026083200, - 1.908971610244411600, - 1.908857195275310800, 1.908742710122987700, 1.908628154791651300, - 1.908513529285513500, - 1.908398833608789100, 1.908284067765694900, 1.908169231760450400, - 1.908054325597278200, - 1.907939349280402400, 1.907824302814050900, 1.907709186202453600, - 1.907593999449842800, - 1.907478742560453600, 1.907363415538523700, 1.907248018388293400, - 1.907132551114005600, - 1.907017013719905600, 1.906901406210241200, 1.906785728589263300, - 1.906669980861224900, - 1.906554163030381500, 1.906438275100991600, 1.906322317077316300, - 1.906206288963618700, - 1.906090190764164700, 1.905974022483223300, 1.905857784125065500, - 1.905741475693964800, - 1.905625097194197900, 1.905508648630043700, 1.905392130005783400, - 1.905275541325701400, - 1.905158882594083900, 1.905042153815220700, 1.904925354993402900, - 1.904808486132925300, - 1.904691547238084800, 1.904574538313180700, 1.904457459362515200, - 1.904340310390393100, - 1.904223091401121600, 1.904105802399010300, 1.903988443388371600, - 1.903871014373520700, - 1.903753515358774800, 1.903635946348454500, 1.903518307346881800, - 1.903400598358382600, - 1.903282819387284200, 1.903164970437917400, 1.903047051514615000, - 1.902929062621712600, - 1.902811003763547900, 1.902692874944462300, 1.902574676168798700, - 1.902456407440902700, - 1.902338068765123200, 1.902219660145810800, 1.902101181587319000, - 1.901982633094004200, - 1.901864014670225000, 1.901745326320342500, 1.901626568048721000, - 1.901507739859726200, - 1.901388841757727600, 1.901269873747096600, 1.901150835832207100, - 1.901031728017436300, - 1.900912550307162700, 1.900793302705768900, 1.900673985217638900, - 1.900554597847159400, - 1.900435140598720500, 1.900315613476714100, 1.900196016485534700, - 1.900076349629579600, - 1.899956612913248800, 1.899836806340944300, 1.899716929917071500, - 1.899596983646037600, - 1.899476967532252900, 1.899356881580129800, 1.899236725794083600, - 1.899116500178532200, - 1.898996204737895900, 1.898875839476597700, 1.898755404399062900, - 1.898634899509719500, - 1.898514324812998300, 1.898393680313332600, 1.898272966015157800, - 1.898152181922912600, - 1.898031328041037700, 1.897910404373976500, 1.897789410926175000, - 1.897668347702081900, - 1.897547214706148300, 1.897426011942827900, 1.897304739416577200, - 1.897183397131854600, - 1.897061985093121800, 1.896940503304842800, 1.896818951771484000, - 1.896697330497514800, - 1.896575639487406300, 1.896453878745633100, 1.896332048276672100, - 1.896210148085002400, - 1.896088178175106200, 1.895966138551467700, 1.895844029218574100, - 1.895721850180915000, - 1.895599601442982600, 1.895477283009271400, 1.895354894884279100, - 1.895232437072505300, - 1.895109909578452500, 1.894987312406625700, 1.894864645561532100, - 1.894741909047682500, - 1.894619102869589100, 1.894496227031767100, 1.894373281538734400, - 1.894250266395011600, - 1.894127181605121100, 1.894004027173588700, 1.893880803104942600, - 1.893757509403713100, - 1.893634146074433500, 1.893510713121639300, 1.893387210549869000, - 1.893263638363663400, - 1.893139996567565900, 1.893016285166122500, 1.892892504163881600, - 1.892768653565394300, - 1.892644733375214300, 1.892520743597897700, 1.892396684238003300, - 1.892272555300092300, - 1.892148356788728700, 1.892024088708479200, 1.891899751063912200, - 1.891775343859599400, - 1.891650867100115300, 1.891526320790036100, 1.891401704933941100, - 1.891277019536412400, - 1.891152264602033800, 1.891027440135392600, 1.890902546141078000, - 1.890777582623682300, - 1.890652549587799700, 1.890527447038027300, 1.890402274978965100, - 1.890277033415215200, - 1.890151722351382200, 1.890026341792073500, 1.889900891741899100, - 1.889775372205471300, - 1.889649783187405100, 1.889524124692318200, 1.889398396724830500, - 1.889272599289564900, - 1.889146732391146400, 1.889020796034202700, 1.888894790223364600, - 1.888768714963264400, - 1.888642570258537700, 1.888516356113822700, 1.888390072533759700, - 1.888263719522991900, - 1.888137297086165000, 1.888010805227927000, 1.887884243952928600, - 1.887757613265823400, - 1.887630913171267000, 1.887504143673917700, 1.887377304778437000, - 1.887250396489487800, - 1.887123418811736500, 1.886996371749851700, 1.886869255308504200, - 1.886742069492368000, - 1.886614814306119400, 1.886487489754437300, 1.886360095842002600, - 1.886232632573499700, - 1.886105099953614900, 1.885977497987037000, 1.885849826678457800, - 1.885722086032571200, - 1.885594276054074300, 1.885466396747665700, 1.885338448118047700, - 1.885210430169924200, - 1.885082342908002400, 1.884954186336991400, 1.884825960461603100, - 1.884697665286552400, - 1.884569300816556000, 1.884440867056333700, 1.884312364010607600, - 1.884183791684102400, - 1.884055150081545200, 1.883926439207665800, 1.883797659067196800, - 1.883668809664872600, - 1.883539891005431100, 1.883410903093611900, 1.883281845934157800, - 1.883152719531813800, - 1.883023523891327300, 1.882894259017448900, 1.882764924914930700, - 1.882635521588528400, - 1.882506049042999700, 1.882376507283104900, 1.882246896313606800, - 1.882117216139270700, - 1.881987466764865100, 1.881857648195159900, 1.881727760434928500, - 1.881597803488946500, - 1.881467777361992100, 1.881337682058845700, 1.881207517584290600, - 1.881077283943112900, - 1.880946981140100500, 1.880816609180044700, 1.880686168067738500, - 1.880555657807977800, - 1.880425078405561600, 1.880294429865290600, 1.880163712191968300, - 1.880032925390400900, - 1.879902069465397200, 1.879771144421768200, 1.879640150264327600, - 1.879509086997891900, - 1.879377954627279700, 1.879246753157312700, 1.879115482592814500, - 1.878984142938611600, - 1.878852734199532900, 1.878721256380410100, 1.878589709486077300, - 1.878458093521370800, - 1.878326408491130200, 1.878194654400196600, 1.878062831253414900, - 1.877930939055631100, - 1.877798977811695200, 1.877666947526458700, 1.877534848204775800, - 1.877402679851504000, - 1.877270442471502100, 1.877138136069632400, 1.877005760650759500, - 1.876873316219750200, - 1.876740802781474500, 1.876608220340804100, 1.876475568902614000, - 1.876342848471781200, - 1.876210059053185600, 1.876077200651709500, 1.875944273272237800, - 1.875811276919657500, - 1.875678211598858800, 1.875545077314734000, 1.875411874072178100, - 1.875278601876088700, - 1.875145260731365700, 1.875011850642911600, 1.874878371615631900, - 1.874744823654434000, - 1.874611206764227800, 1.874477520949926500, 1.874343766216444800, - 1.874209942568701100, - 1.874076050011615400, 1.873942088550110400, 1.873808058189111700, - 1.873673958933546900, - 1.873539790788347100, 1.873405553758444600, 1.873271247848775400, - 1.873136873064277000, - 1.873002429409890600, 1.872867916890558900, 1.872733335511227700, - 1.872598685276845000, - 1.872463966192361900, 1.872329178262731200, 1.872194321492908700, - 1.872059395887852900, - 1.871924401452524700, 1.871789338191887100, 1.871654206110906500, - 1.871519005214550700, - 1.871383735507791100, 1.871248396995601300, 1.871112989682956800, - 1.870977513574836500, - 1.870841968676221400, 1.870706354992095000, 1.870570672527443600, - 1.870434921287255700, - 1.870299101276522400, 1.870163212500237900, 1.870027254963397800, - 1.869891228671001200, - 1.869755133628049600, 1.869618969839546500, 1.869482737310498100, - 1.869346436045913800, - 1.869210066050804600, 1.869073627330184700, 1.868937119889070300, - 1.868800543732480600, - 1.868663898865437200, 1.868527185292963700, 1.868390403020087100, - 1.868253552051836200, - 1.868116632393243000, 1.867979644049341200, 1.867842587025167800, - 1.867705461325761800, - 1.867568266956164800, 1.867431003921421500, 1.867293672226578300, - 1.867156271876684500, - 1.867018802876792200, 1.866881265231955500, 1.866743658947231300, - 1.866605984027679000, - 1.866468240478360600, 1.866330428304340300, 1.866192547510685300, - 1.866054598102465000, - 1.865916580084751500, 1.865778493462619100, 1.865640338241145100, - 1.865502114425408900, - 1.865363822020492700, 1.865225461031480900, 1.865087031463460900, - 1.864948533321522300, - 1.864809966610757400, 1.864671331336260600, 1.864532627503129100, - 1.864393855116463200, - 1.864255014181364500, 1.864116104702938000, 1.863977126686291200, - 1.863838080136534000, - 1.863698965058778300, 1.863559781458139300, 1.863420529339734100, - 1.863281208708683000, - 1.863141819570107900, 1.863002361929134500, 1.862862835790889400, - 1.862723241160503300, - 1.862583578043108100, 1.862443846443839300, 1.862304046367834200, - 1.862164177820232700, - 1.862024240806177800, 1.861884235330814300, 1.861744161399289600, - 1.861604019016754200, - 1.861463808188360500, 1.861323528919263800, 1.861183181214621600, - 1.861042765079594200, - 1.860902280519344500, 1.860761727539037300, 1.860621106143840500, - 1.860480416338924600, - 1.860339658129461800, 1.860198831520627900, 1.860057936517600700, - 1.859916973125560000, - 1.859775941349689000, 1.859634841195173100, 1.859493672667199800, - 1.859352435770959900, - 1.859211130511645900, 1.859069756894453400, 1.858928314924580300, - 1.858786804607227100, - 1.858645225947596300, 1.858503578950893900, 1.858361863622327400, - 1.858220079967107600, - 1.858078227990447300, 1.857936307697561900, 1.857794319093669900, - 1.857652262183991000, - 1.857510136973749000, 1.857367943468169100, 1.857225681672479300, - 1.857083351591910300, - 1.856940953231694900, 1.856798486597069000, 1.856655951693270600, - 1.856513348525540300, - 1.856370677099121100, 1.856227937419258700, 1.856085129491201100, - 1.855942253320199200, - 1.855799308911506100, 1.855656296270377300, 1.855513215402071000, - 1.855370066311848000, - 1.855226849004971500, 1.855083563486706900, 1.854940209762322700, - 1.854796787837089500, - 1.854653297716280400, 1.854509739405171300, 1.854366112909040300, - 1.854222418233168400, - 1.854078655382838300, 1.853934824363336200, 1.853790925179950500, - 1.853646957837971500, - 1.853502922342692600, 1.853358818699409900, 1.853214646913421200, - 1.853070406990027500, - 1.852926098934532200, 1.852781722752241000, 1.852637278448462200, - 1.852492766028506400, - 1.852348185497687300, 1.852203536861320600, 1.852058820124724300, - 1.851914035293219700, - 1.851769182372129600, 1.851624261366780400, 1.851479272282500000, - 1.851334215124619300, - 1.851189089898471800, 1.851043896609393400, 1.850898635262721900, - 1.850753305863798800, - 1.850607908417967200, 1.850462442930572900, 1.850316909406964200, - 1.850171307852492200, - 1.850025638272510000, 1.849879900672373600, 1.849734095057441200, - 1.849588221433073700, - 1.849442279804634600, 1.849296270177489800, 1.849150192557007300, - 1.849004046948558200, - 1.848857833357515900, 1.848711551789256300, 1.848565202249157400, - 1.848418784742600400, - 1.848272299274968500, 1.848125745851647800, 1.847979124478026100, - 1.847832435159495000, - 1.847685677901447200, 1.847538852709279100, 1.847391959588388300, - 1.847244998544176300, - 1.847097969582046200, 1.846950872707404000, 1.846803707925657600, - 1.846656475242218300, - 1.846509174662499300, 1.846361806191916000, 1.846214369835887500, - 1.846066865599834000, - 1.845919293489179000, 1.845771653509348200, 1.845623945665770100, - 1.845476169963875500, - 1.845328326409097400, 1.845180415006871800, 1.845032435762637100, - 1.844884388681833800, - 1.844736273769905300, 1.844588091032297400, 1.844439840474458200, - 1.844291522101838800, - 1.844143135919891900, 1.843994681934073600, 1.843846160149842200, - 1.843697570572658200, - 1.843548913207985000, 1.843400188061288000, 1.843251395138035800, - 1.843102534443698900, - 1.842953605983750400, 1.842804609763666100, 1.842655545788924000, - 1.842506414065004900, - 1.842357214597392100, 1.842207947391570900, 1.842058612453029600, - 1.841909209787258900, - 1.841759739399751800, 1.841610201296003800, 1.841460595481513100, - 1.841310921961780500, - 1.841161180742308500, 1.841011371828603200, 1.840861495226172600, - 1.840711550940526700, - 1.840561538977179200, 1.840411459341645400, 1.840261312039443100, - 1.840111097076092800, - 1.839960814457117600, 1.839810464188043100, 1.839660046274397100, - 1.839509560721709800, - 1.839359007535514400, 1.839208386721346500, 1.839057698284743500, - 1.838906942231246100, - 1.838756118566397200, 1.838605227295741800, 1.838454268424828400, - 1.838303241959206700, - 1.838152147904429800, 1.838000986266052900, 1.837849757049633900, - 1.837698460260732900, - 1.837547095904912700, 1.837395663987738700, 1.837244164514778600, - 1.837092597491602100, - 1.836940962923782700, 1.836789260816895000, 1.836637491176516600, - 1.836485654008228200, - 1.836333749317611700, 1.836181777110252900, 1.836029737391738700, - 1.835877630167659800, - 1.835725455443608200, 1.835573213225179400, 1.835420903517970500, - 1.835268526327581900, - 1.835116081659615700, 1.834963569519677100, 1.834810989913373500, - 1.834658342846314800, - 1.834505628324113200, 1.834352846352383700, 1.834199996936744000, - 1.834047080082813300, - 1.833894095796214400, 1.833741044082571900, 1.833587924947513100, - 1.833434738396668000, - 1.833281484435668400, 1.833128163070149300, 1.832974774305747600, - 1.832821318148103500, - 1.832667794602858400, 1.832514203675657600, 1.832360545372147900, - 1.832206819697979000, - 1.832053026658802700, 1.831899166260273700, 1.831745238508049300, - 1.831591243407788300, - 1.831437180965153100, 1.831283051185808300, 1.831128854075420500, - 1.830974589639659000, - 1.830820257884196100, 1.830665858814705600, 1.830511392436864800, - 1.830356858756352800, - 1.830202257778851300, 1.830047589510044500, 1.829892853955619200, - 1.829738051121264600, - 1.829583181012672400, 1.829428243635536500, 1.829273238995553700, - 1.829118167098423100, - 1.828963027949846100, 1.828807821555527000, 1.828652547921171900, - 1.828497207052490100, - 1.828341798955192900, 1.828186323634994200, 1.828030781097610400, - 1.827875171348760400, - 1.827719494394165500, 1.827563750239549400, 1.827407938890638600, - 1.827252060353161500, - 1.827096114632849700, 1.826940101735436500, 1.826784021666658400, - 1.826627874432253700, - 1.826471660037963800, 1.826315378489531800, 1.826159029792704400, - 1.826002613953229500, - 1.825846130976858100, 1.825689580869344100, 1.825532963636443000, - 1.825376279283913200, - 1.825219527817515800, 1.825062709243013800, 1.824905823566173000, - 1.824748870792761900, - 1.824591850928550800, 1.824434763979313300, 1.824277609950824700, - 1.824120388848863300, - 1.823963100679209600, 1.823805745447646600, 1.823648323159960100, - 1.823490833821937600, - 1.823333277439369600, 1.823175654018049300, 1.823017963563772000, - 1.822860206082335300, - 1.822702381579539800, 1.822544490061187800, 1.822386531533084900, - 1.822228506001038800, - 1.822070413470859600, 1.821912253948359700, 1.821754027439354400, - 1.821595733949661100, - 1.821437373485099900, 1.821278946051493100, 1.821120451654665700, - 1.820961890300445400, - 1.820803261994661500, 1.820644566743146800, 1.820485804551735800, - 1.820326975426265600, - 1.820168079372576300, 1.820009116396509800, 1.819850086503910700, - 1.819690989700625900, - 1.819531825992505500, 1.819372595385401000, 1.819213297885166900, - 1.819053933497660300, - 1.818894502228740600, 1.818735004084269600, 1.818575439070111200, - 1.818415807192132600, - 1.818256108456203000, 1.818096342868193800, 1.817936510433979300, - 1.817776611159436000, - 1.817616645050443000, 1.817456612112881900, 1.817296512352636300, - 1.817136345775592900, - 1.816976112387640700, 1.816815812194670700, 1.816655445202576700, - 1.816495011417255300, - 1.816334510844604700, 1.816173943490526400, 1.816013309360923900, - 1.815852608461703300, - 1.815691840798773000, 1.815531006378043900, 1.815370105205429600, - 1.815209137286846200, - 1.815048102628211500, 1.814887001235446600, 1.814725833114474700, - 1.814564598271221300, - 1.814403296711615000, 1.814241928441585800, 1.814080493467067300, - 1.813918991793994900, - 1.813757423428306000, 1.813595788375941700, 1.813434086642844400, - 1.813272318234959700, - 1.813110483158235400, 1.812948581418621500, 1.812786613022070700, - 1.812624577974538000, - 1.812462476281981200, 1.812300307950360300, 1.812138072985637800, - 1.811975771393778300, - 1.811813403180749300, 1.811650968352521000, 1.811488466915065000, - 1.811325898874356800, - 1.811163264236372900, 1.811000563007093100, 1.810837795192499400, - 1.810674960798576600, - 1.810512059831311400, 1.810349092296693400, 1.810186058200714100, - 1.810022957549368000, - 1.809859790348652200, 1.809696556604565300, 1.809533256323109200, - 1.809369889510288100, - 1.809206456172108200, 1.809042956314578900, 1.808879389943711200, - 1.808715757065519200, - 1.808552057686019200, 1.808388291811230000, 1.808224459447172800, - 1.808060560599871200, - 1.807896595275351200, 1.807732563479641300, 1.807568465218772900, - 1.807404300498778800, - 1.807240069325695400, 1.807075771705560800, 1.806911407644415700, - 1.806746977148303300, - 1.806582480223269500, 1.806417916875362000, 1.806253287110631600, - 1.806088590935131000, - 1.805923828354915900, 1.805758999376044100, 1.805594104004575800, - 1.805429142246573600, - 1.805264114108102900, 1.805099019595231200, 1.804933858714028700, - 1.804768631470567500, - 1.804603337870923000, 1.804437977921172300, 1.804272551627395400, - 1.804107058995674500, - 1.803941500032094200, 1.803775874742741500, 1.803610183133706400, - 1.803444425211080400, - 1.803278600980958300, 1.803112710449436900, 1.802946753622615400, - 1.802780730506595700, - 1.802614641107481900, 1.802448485431380900, 1.802282263484401300, - 1.802115975272655000, - 1.801949620802255600, 1.801783200079319900, 1.801616713109966300, - 1.801450159900316300, - 1.801283540456493700, 1.801116854784624400, 1.800950102890836800, - 1.800783284781262200, - 1.800616400462033800, 1.800449449939287800, 1.800282433219162000, - 1.800115350307797600, - 1.799948201211337500, 1.799780985935927300, 1.799613704487715200, - 1.799446356872851400, - 1.799278943097489100, 1.799111463167783400, 1.798943917089892000, - 1.798776304869975200, - 1.798608626514195800, 1.798440882028718500, 1.798273071419711000, - 1.798105194693343500, - 1.797937251855787700, 1.797769242913218800, 1.797601167871813800, - 1.797433026737752700, - 1.797264819517217200, 1.797096546216391900, 1.796928206841463800, - 1.796759801398622100, - 1.796591329894058800, 1.796422792333968000, 1.796254188724546500, - 1.796085519071992900, - 1.795916783382509200, 1.795747981662299200, 1.795579113917569200, - 1.795410180154527900, - 1.795241180379386800, 1.795072114598359200, 1.794902982817661500, - 1.794733785043511900, - 1.794564521282131300, 1.794395191539743400, 1.794225795822573600, - 1.794056334136850300, - 1.793886806488804100, 1.793717212884667900, 1.793547553330677300, - 1.793377827833070100, - 1.793208036398086900, 1.793038179031970000, 1.792868255740965000, - 1.792698266531319400, - 1.792528211409282900, 1.792358090381108300, 1.792187903453050100, - 1.792017650631366100, - 1.791847331922315600, 1.791676947332161000, 1.791506496867166600, - 1.791335980533599300, - 1.791165398337728900, 1.790994750285827000, 1.790824036384167900, - 1.790653256639028100, - 1.790482411056686800, 1.790311499643425500, 1.790140522405528200, - 1.789969479349281100, - 1.789798370480973000, 1.789627195806895200, 1.789455955333341100, - 1.789284649066606800, - 1.789113277012990900, 1.788941839178794100, 1.788770335570319700, - 1.788598766193873600, - 1.788427131055763600, 1.788255430162300400, 1.788083663519796800, - 1.787911831134568300, - 1.787739933012932900, 1.787567969161210300, 1.787395939585723500, - 1.787223844292797500, - 1.787051683288759500, 1.786879456579939700, 1.786707164172670200, - 1.786534806073285700, - 1.786362382288123400, 1.786189892823522700, 1.786017337685825700, - 1.785844716881376700, - 1.785672030416522300, 1.785499278297612000, 1.785326460530997300, - 1.785153577123032000, - 1.784980628080072900, 1.784807613408478300, 1.784634533114609800, - 1.784461387204831400, - 1.784288175685508700, 1.784114898563010200, 1.783941555843707100, - 1.783768147533972200, - 1.783594673640181800, 1.783421134168713800, 1.783247529125948900, - 1.783073858518269700, - 1.782900122352062000, 1.782726320633713200, 1.782552453369613800, - 1.782378520566156200, - 1.782204522229735600, 1.782030458366749200, 1.781856328983596900, - 1.781682134086680900, - 1.781507873682406200, 1.781333547777179200, 1.781159156377410100, - 1.780984699489510200, - 1.780810177119894100, 1.780635589274978600, 1.780460935961182300, - 1.780286217184927000, - 1.780111432952636600, 1.779936583270737400, 1.779761668145658300, - 1.779586687583830200, - 1.779411641591686500, 1.779236530175663600, 1.779061353342199500, - 1.778886111097735000, - 1.778710803448713400, 1.778535430401580100, 1.778359991962783000, - 1.778184488138772900, - 1.778008918936002000, 1.777833284360925900, 1.777657584420002000, - 1.777481819119690200, - 1.777305988466453000, 1.777130092466755200, 1.776954131127064200, - 1.776778104453849100, - 1.776602012453582400, 1.776425855132738100, 1.776249632497793200, - 1.776073344555227000, - 1.775896991311520800, 1.775720572773158900, 1.775544088946627600, - 1.775367539838415700, - 1.775190925455014400, 1.775014245802917200, 1.774837500888620400, - 1.774660690718622000, - 1.774483815299423100, 1.774306874637527000, 1.774129868739439100, - 1.773952797611667100, - 1.773775661260722100, 1.773598459693116500, 1.773421192915365400, - 1.773243860933986400, - 1.773066463755499800, 1.772889001386427800, 1.772711473833295200, - 1.772533881102629000, - 1.772356223200959100, 1.772178500134817100, 1.772000711910737700, - 1.771822858535257600, - 1.771644940014915700, 1.771466956356254000, 1.771288907565816000, - 1.771110793650148500, - 1.770932614615799800, 1.770754370469321400, 1.770576061217266500, - 1.770397686866191300, - 1.770219247422653700, 1.770040742893215000, 1.769862173284438000, - 1.769683538602888000, - 1.769504838855133100, 1.769326074047743700, 1.769147244187292200, - 1.768968349280353800, - 1.768789389333506000, 1.768610364353328600, 1.768431274346403900, - 1.768252119319316400, - 1.768072899278653200, 1.767893614231003800, 1.767714264182959500, - 1.767534849141115100, - 1.767355369112067100, 1.767175824102414000, 1.766996214118757800, - 1.766816539167701800, - 1.766636799255852300, 1.766456994389817600, 1.766277124576209000, - 1.766097189821639300, - 1.765917190132724600, 1.765737125516083000, 1.765556995978334800, - 1.765376801526102700, - 1.765196542166012100, 1.765016217904690900, 1.764835828748768400, - 1.764655374704877700, - 1.764474855779653200, 1.764294271979732100, 1.764113623311754000, - 1.763932909782361100, - 1.763752131398197200, 1.763571288165909400, 1.763390380092146400, - 1.763209407183560200, - 1.763028369446804500, 1.762847266888535100, 1.762666099515411100, - 1.762484867334093400, - 1.762303570351245300, 1.762122208573532600, 1.761940782007623600, - 1.761759290660188400, - 1.761577734537900500, 1.761396113647435000, 1.761214427995469100, - 1.761032677588683800, - 1.760850862433760700, 1.760668982537384900, 1.760487037906243600, - 1.760305028547026500, - 1.760122954466425600, 1.759940815671135100, 1.759758612167851700, - 1.759576343963274600, - 1.759394011064105100, 1.759211613477047200, 1.759029151208807400, - 1.758846624266093800, - 1.758664032655617500, 1.758481376384092500, 1.758298655458233600, - 1.758115869884759700, - 1.757933019670390800, 1.757750104821850000, 1.757567125345862700, - 1.757384081249156100, - 1.757200972538460700, 1.757017799220508500, 1.756834561302034400, - 1.756651258789775800, - 1.756467891690471700, 1.756284460010864200, 1.756100963757697900, - 1.755917402937718900, - 1.755733777557676500, 1.755550087624322000, 1.755366333144409200, - 1.755182514124693900, - 1.754998630571935200, 1.754814682492893600, 1.754630669894332600, - 1.754446592783017500, - 1.754262451165716300, 1.754078245049199600, 1.753893974440240000, - 1.753709639345612600, - 1.753525239772095100, 1.753340775726466700, 1.753156247215510400, - 1.752971654246010300, - 1.752786996824753600, 1.752602274958529500, 1.752417488654129700, - 1.752232637918348200, - 1.752047722757981600, 1.751862743179828600, 1.751677699190690400, - 1.751492590797370600, - 1.751307418006674800, 1.751122180825411800, 1.750936879260391700, - 1.750751513318427700, - 1.750566083006335600, 1.750380588330932500, 1.750195029299038900, - 1.750009405917477100, - 1.749823718193071800, 1.749637966132650900, 1.749452149743043100, - 1.749266269031080700, - 1.749080324003598100, 1.748894314667431800, 1.748708241029421000, - 1.748522103096407300, - 1.748335900875233900, 1.748149634372747200, 1.747963303595795500, - 1.747776908551230000, - 1.747590449245904000, 1.747403925686672500, 1.747217337880393900, - 1.747030685833928200, - 1.746843969554138200, 1.746657189047889200, 1.746470344322048200, - 1.746283435383485100, - 1.746096462239072000, 1.745909424895683200, 1.745722323360195900, - 1.745535157639489100, - 1.745347927740444200, 1.745160633669945200, 1.744973275434878300, - 1.744785853042132300, - 1.744598366498598200, 1.744410815811169300, 1.744223200986741100, - 1.744035522032211900, - 1.743847778954482000, 1.743659971760454200, 1.743472100457033700, - 1.743284165051127700, - 1.743096165549646400, 1.742908101959502100, 1.742719974287608900, - 1.742531782540884100, - 1.742343526726246800, 1.742155206850618800, 1.741966822920923800, - 1.741778374944088000, - 1.741589862927040800, 1.741401286876712800, 1.741212646800037300, - 1.741023942703950200, - 1.740835174595389600, 1.740646342481295900, 1.740457446368612000, - 1.740268486264283200, - 1.740079462175256900, 1.739890374108482600, 1.739701222070913200, - 1.739512006069502800, - 1.739322726111208500, 1.739133382202989500, 1.738943974351807600, - 1.738754502564626700, - 1.738564966848413100, 1.738375367210135400, 1.738185703656765200, - 1.737995976195275000, - 1.737806184832640900, 1.737616329575841300, 1.737426410431856200, - 1.737236427407668800, - 1.737046380510263800, 1.736856269746629000, 1.736666095123754000, - 1.736475856648631400, - 1.736285554328254900, 1.736095188169622500, 1.735904758179732400, - 1.735714264365586700, - 1.735523706734189100, 1.735333085292545900, 1.735142400047666100, - 1.734951651006560100, - 1.734760838176241400, 1.734569961563725600, 1.734379021176030600, - 1.734188017020177100, - 1.733996949103187500, 1.733805817432086900, 1.733614622013902600, - 1.733423362855664100, - 1.733232039964403900, 1.733040653347156300, 1.732849203010957900, - 1.732657688962847600, - 1.732466111209867200, 1.732274469759060200, 1.732082764617472800, - 1.731890995792153600, - 1.731699163290153100, 1.731507267118524500, 1.731315307284323700, - 1.731123283794607800, - 1.730931196656437600, 1.730739045876875200, 1.730546831462985500, - 1.730354553421835600, - 1.730162211760495300, 1.729969806486036500, 1.729777337605533000, - 1.729584805126061400, - 1.729392209054700900, 1.729199549398532400, 1.729006826164639400, - 1.728814039360108100, - 1.728621188992026400, 1.728428275067485100, 1.728235297593577100, - 1.728042256577397200, - 1.727849152026043500, 1.727655983946615700, 1.727462752346216000, - 1.727269457231948900, - 1.727076098610921500, 1.726882676490243000, 1.726689190877025000, - 1.726495641778381200, - 1.726302029201427900, 1.726108353153283900, 1.725914613641069900, - 1.725720810671909300, - 1.725526944252927700, 1.725333014391252900, 1.725139021094015200, - 1.724944964368347000, - 1.724750844221383500, 1.724556660660261800, 1.724362413692121400, - 1.724168103324104300, - 1.723973729563354600, 1.723779292417019200, 1.723584791892246700, - 1.723390227996188600, - 1.723195600735998100, 1.723000910118831300, 1.722806156151846400, - 1.722611338842204000, - 1.722416458197066900, 1.722221514223600100, 1.722026506928971500, - 1.721831436320350800, - 1.721636302404910200, 1.721441105189824000, 1.721245844682269600, - 1.721050520889425600, - 1.720855133818473900, 1.720659683476597900, 1.720464169870984200, - 1.720268593008821100, - 1.720072952897299100, 1.719877249543611900, 1.719681482954954500, - 1.719485653138524800, - 1.719289760101522900, 1.719093803851151400, 1.718897784394614900, - 1.718701701739120400, - 1.718505555891877400, 1.718309346860097600, 1.718113074650995200, - 1.717916739271786500, - 1.717720340729689700, 1.717523879031926500, 1.717327354185719900, - 1.717130766198295700, - 1.716934115076881800, 1.716737400828708400, 1.716540623461008100, - 1.716343782981016200, - 1.716146879395969500, 1.715949912713108100, 1.715752882939673300, - 1.715555790082909900, - 1.715358634150064000, 1.715161415148384500, 1.714964133085122900, - 1.714766787967532600, - 1.714569379802868900, 1.714371908598390800, 1.714174374361358000, - 1.713976777099033700, - 1.713779116818682900, 1.713581393527573000, 1.713383607232973600, - 1.713185757942156800, - 1.712987845662396800, 1.712789870400970700, 1.712591832165157200, - 1.712393730962237500, - 1.712195566799495500, 1.711997339684216700, 1.711799049623689900, - 1.711600696625205300, - 1.711402280696055800, 1.711203801843536700, 1.711005260074945200, - 1.710806655397581600, - 1.710607987818747700, 1.710409257345748100, 1.710210463985889500, - 1.710011607746480600, - 1.709812688634833300, 1.709613706658261100, 1.709414661824080000, - 1.709215554139608400, - 1.709016383612166600, 1.708817150249077900, 1.708617854057667300, - 1.708418495045262300, - 1.708219073219193300, 1.708019588586791700, 1.707820041155392500, - 1.707620430932332400, - 1.707420757924950300, 1.707221022140587900, 1.707021223586588700, - 1.706821362270298600, - 1.706621438199066300, 1.706421451380242000, 1.706221401821179200, - 1.706021289529232800, - 1.705821114511760300, 1.705620876776121600, 1.705420576329679000, - 1.705220213179796900, - 1.705019787333842200, 1.704819298799183700, 1.704618747583193100, - 1.704418133693243800, - 1.704217457136711900, 1.704016717920976000, 1.703815916053416300, - 1.703615051541415900, - 1.703414124392360000, 1.703213134613636100, 1.703012082212634000, - 1.702810967196746000, - 1.702609789573366300, 1.702408549349891500, 1.702207246533721000, - 1.702005881132255800, - 1.701804453152900000, 1.701602962603059100, 1.701401409490141300, - 1.701199793821557300, - 1.700998115604720000, 1.700796374847044300, 1.700594571555948100, - 1.700392705738850400, - 1.700190777403173700, 1.699988786556342300, 1.699786733205783000, - 1.699584617358924400, - 1.699382439023197700, 1.699180198206036600, 1.698977894914877100, - 1.698775529157156700, - 1.698573100940316400, 1.698370610271798800, 1.698168057159048700, - 1.697965441609513300, - 1.697762763630642700, 1.697560023229888200, 1.697357220414704500, - 1.697154355192547900, - 1.696951427570877000, 1.696748437557152900, 1.696545385158839200, - 1.696342270383401200, - 1.696139093238307400, 1.695935853731027600, 1.695732551869034300, - 1.695529187659802400, - 1.695325761110809200, 1.695122272229534000, 1.694918721023458600, - 1.694715107500066800, - 1.694511431666845000, 1.694307693531282000, 1.694103893100868100, - 1.693900030383096900, - 1.693696105385463800, 1.693492118115466500, 1.693288068580604900, - 1.693083956788381500, - 1.692879782746300700, 1.692675546461869900, 1.692471247942597600, - 1.692266887195995600, - 1.692062464229577600, 1.691857979050859900, 1.691653431667360600, - 1.691448822086600400, - 1.691244150316102000, 1.691039416363390800, 1.690834620235994300, - 1.690629761941442100, - 1.690424841487266700, 1.690219858881001800, 1.690014814130184300, - 1.689809707242353200, - 1.689604538225049700, 1.689399307085817300, 1.689194013832201500, - 1.688988658471750600, - 1.688783241012014700, 1.688577761460546800, 1.688372219824901400, - 1.688166616112636100, - 1.687960950331309800, 1.687755222488484600, 1.687549432591724400, - 1.687343580648595700, - 1.687137666666667100, 1.686931690653509000, 1.686725652616694900, - 1.686519552563800400, - 1.686313390502403000, 1.686107166440082600, 1.685900880384421800, - 1.685694532343004600, - 1.685488122323418400, 1.685281650333251900, 1.685075116380096800, - 1.684868520471546600, - 1.684661862615197000, 1.684455142818646700, 1.684248361089495800, - 1.684041517435347400, - 1.683834611863806100, 1.683627644382479800, 1.683420614998977900, - 1.683213523720911800, - 1.683006370555896400, 1.682799155511547600, 1.682591878595484300, - 1.682384539815327400, - 1.682177139178700400, 1.681969676693228600, 1.681762152366539600, - 1.681554566206263900, - 1.681346918220033800, 1.681139208415483700, 1.680931436800250600, - 1.680723603381973500, - 1.680515708168294200, 1.680307751166856300, 1.680099732385305300, - 1.679891651831290100, - 1.679683509512460900, 1.679475305436470600, 1.679267039610974300, - 1.679058712043629300, - 1.678850322742095200, 1.678641871714033900, 1.678433358967109400, - 1.678224784508988400, - 1.678016148347339300, 1.677807450489833300, 1.677598690944143400, - 1.677389869717945000, - 1.677180986818916300, 1.676972042254736900, 1.676763036033089600, - 1.676553968161658600, - 1.676344838648130600, 1.676135647500194700, 1.675926394725542700, - 1.675717080331867900, - 1.675507704326866200, 1.675298266718235900, 1.675088767513677200, - 1.674879206720892900, - 1.674669584347587800, 1.674459900401469700, 1.674250154890247300, - 1.674040347821632800, - 1.673830479203340000, 1.673620549043085500, 1.673410557348587600, - 1.673200504127567000, - 1.672990389387746700, 1.672780213136852300, 1.672569975382611300, - 1.672359676132753500, - 1.672149315395010900, 1.671938893177118000, 1.671728409486811500, - 1.671517864331830000, - 1.671307257719914800, 1.671096589658809500, 1.670885860156259300, - 1.670675069220012500, - 1.670464216857819200, 1.670253303077431800, 1.670042327886605200, - 1.669831291293095900, - 1.669620193304663500, 1.669409033929069500, 1.669197813174077200, - 1.668986531047453000, - 1.668775187556965000, 1.668563782710383600, 1.668352316515481700, - 1.668140788980034400, - 1.667929200111818400, 1.667717549918614100, 1.667505838408202700, - 1.667294065588368100, - 1.667082231466896900, 1.666870336051577800, 1.666658379350201000, - 1.666446361370560000, - 1.666234282120450100, 1.666022141607668600, 1.665809939840015500, - 1.665597676825292700, - 1.665385352571304500, 1.665172967085857700, 1.664960520376761000, - 1.664748012451825200, - 1.664535443318863900, 1.664322812985692600, 1.664110121460129000, - 1.663897368749993400, - 1.663684554863107800, 1.663471679807296800, 1.663258743590387400, - 1.663045746220208600, - 1.662832687704591800, 1.662619568051370500, 1.662406387268380100, - 1.662193145363459100, - 1.661979842344447600, 1.661766478219188300, 1.661553052995526000, - 1.661339566681307600, - 1.661126019284382200, 1.660912410812601900, 1.660698741273819700, - 1.660485010675892400, - 1.660271219026677700, 1.660057366334036300, 1.659843452605831200, - 1.659629477849926800, - 1.659415442074190900, 1.659201345286492900, 1.658987187494704200, - 1.658772968706699000, - 1.658558688930353400, 1.658344348173546300, 1.658129946444157700, - 1.657915483750071100, - 1.657700960099171200, 1.657486375499345900, 1.657271729958484500, - 1.657057023484479000, - 1.656842256085223800, 1.656627427768615000, 1.656412538542551200, - 1.656197588414933600, - 1.655982577393664700, 1.655767505486650500, 1.655552372701798200, - 1.655337179047017700, - 1.655121924530220900, 1.654906609159322500, 1.654691232942238500, - 1.654475795886888300, - 1.654260298001192200, 1.654044739293073900, 1.653829119770458900, - 1.653613439441274500, - 1.653397698313451300, 1.653181896394921000, 1.652966033693617800, - 1.652750110217479100, - 1.652534125974443000, 1.652318080972451400, 1.652101975219447200, - 1.651885808723375900, - 1.651669581492185300, 1.651453293533826000, 1.651236944856249600, - 1.651020535467411200, - 1.650804065375267400, 1.650587534587776700, 1.650370943112901000, - 1.650154290958603300, - 1.649937578132849400, 1.649720804643607400, 1.649503970498847200, - 1.649287075706541200, - 1.649070120274664000, 1.648853104211192700, 1.648636027524106100, - 1.648418890221385400, - 1.648201692311014300, 1.647984433800978600, 1.647767114699266100, - 1.647549735013867000, - 1.647332294752774200, 1.647114793923981600, 1.646897232535486500, - 1.646679610595287900, - 1.646461928111387300, 1.646244185091788400, 1.646026381544496400, - 1.645808517477519700, - 1.645590592898868600, 1.645372607816555400, 1.645154562238594800, - 1.644936456173004000, - 1.644718289627801600, 1.644500062611009300, 1.644281775130650900, - 1.644063427194751600, - 1.643845018811340300, 1.643626549988446200, 1.643408020734102600, - 1.643189431056343700, - 1.642970780963206800, 1.642752070462730800, 1.642533299562957100, - 1.642314468271929300, - 1.642095576597693200, 1.641876624548297000, 1.641657612131790500, - 1.641438539356226500, - 1.641219406229659700, 1.641000212760146800, 1.640780958955747200, - 1.640561644824521700, - 1.640342270374534500, 1.640122835613851100, 1.639903340550539200, - 1.639683785192669600, - 1.639464169548314100, 1.639244493625547900, 1.639024757432447500, - 1.638804960977092100, - 1.638585104267562800, 1.638365187311943400, 1.638145210118319400, - 1.637925172694778800, - 1.637705075049411800, 1.637484917190310800, 1.637264699125570200, - 1.637044420863286600, - 1.636824082411559600, 1.636603683778490100, 1.636383224972181500, - 1.636162706000739300, - 1.635942126872271800, 1.635721487594888400, 1.635500788176702100, - 1.635280028625826900, - 1.635059208950379700, 1.634838329158479200, 1.634617389258246700, - 1.634396389257805700, - 1.634175329165281400, 1.633954208988801700, 1.633733028736496400, - 1.633511788416498000, - 1.633290488036940500, 1.633069127605960800, 1.632847707131697600, - 1.632626226622291700, - 1.632404686085886300, 1.632183085530627200, 1.631961424964661700, - 1.631739704396139900, - 1.631517923833213400, 1.631296083284036900, 1.631074182756766300, - 1.630852222259560700, - 1.630630201800580900, 1.630408121387990000, 1.630185981029953000, - 1.629963780734637400, - 1.629741520510213000, 1.629519200364851800, 1.629296820306727700, - 1.629074380344017100, - 1.628851880484898200, 1.628629320737551700, 1.628406701110161100, - 1.628184021610910700, - 1.627961282247988300, 1.627738483029583100, 1.627515623963887000, - 1.627292705059093700, - 1.627069726323399500, 1.626846687765002700, 1.626623589392103500, - 1.626400431212904800, - 1.626177213235611400, 1.625953935468430500, 1.625730597919571300, - 1.625507200597245500, - 1.625283743509666300, 1.625060226665050000, 1.624836650071614500, - 1.624613013737580000, - 1.624389317671169500, 1.624165561880607000, 1.623941746374119500, - 1.623717871159936300, - 1.623493936246288300, 1.623269941641409400, 1.623045887353534900, - 1.622821773390902700, - 1.622597599761753000, 1.622373366474327800, 1.622149073536871800, - 1.621924720957631300, - 1.621700308744855200, 1.621475836906794500, 1.621251305451702400, - 1.621026714387834300, - 1.620802063723447700, 1.620577353466802700, 1.620352583626160500, - 1.620127754209786100, - 1.619902865225945300, 1.619677916682906700, 1.619452908588941300, - 1.619227840952321800, - 1.619002713781323200, 1.618777527084222800, 1.618552280869300300, - 1.618326975144837000, - 1.618101609919117200, 1.617876185200426600, 1.617650700997053500, - 1.617425157317288200, - 1.617199554169423500, 1.616973891561754200, 1.616748169502577200, - 1.616522388000191500, - 1.616296547062898500, 1.616070646699001800, 1.615844686916807300, - 1.615618667724622700, - 1.615392589130757900, 1.615166451143525300, 1.614940253771239400, - 1.614713997022216900, - 1.614487680904776600, 1.614261305427239200, 1.614034870597928400, - 1.613808376425168900, - 1.613581822917288900, 1.613355210082617800, 1.613128537929487500, - 1.612901806466232200, - 1.612675015701188000, 1.612448165642693400, 1.612221256299089200, - 1.611994287678718100, - 1.611767259789925100, 1.611540172641057200, 1.611313026240463800, - 1.611085820596496600, - 1.610858555717509200, 1.610631231611857800, 1.610403848287899700, - 1.610176405753995800, - 1.609948904018508200, 1.609721343089801600, 1.609493722976242900, - 1.609266043686200700, - 1.609038305228046400, 1.608810507610153100, 1.608582650840896200, - 1.608354734928653800, - 1.608126759881805400, 1.607898725708732900, 1.607670632417820500, - 1.607442480017454700, - 1.607214268516024000, 1.606985997921919000, 1.606757668243532500, - 1.606529279489259600, - 1.606300831667497600, 1.606072324786645500, 1.605843758855105300, - 1.605615133881280700, - 1.605386449873577300, 1.605157706840403300, 1.604928904790168700, - 1.604700043731286200, - 1.604471123672170500, 1.604242144621237800, 1.604013106586907400, - 1.603784009577600100, - 1.603554853601739700, 1.603325638667751000, 1.603096364784061900, - 1.602867031959102100, - 1.602637640201303400, 1.602408189519099800, 1.602178679920927900, - 1.601949111415226000, - 1.601719484010434300, 1.601489797714996000, 1.601260052537355700, - 1.601030248485960900, - 1.600800385569260300, 1.600570463795705700, 1.600340483173750400, - 1.600110443711850300, - 1.599880345418463100, 1.599650188302049100, 1.599419972371070500, - 1.599189697633991400, - 1.598959364099278700, 1.598728971775401000, 1.598498520670828900, - 1.598268010794035900, - 1.598037442153496900, 1.597806814757689200, 1.597576128615092200, - 1.597345383734188000, - 1.597114580123460100, 1.596883717791394800, 1.596652796746479600, - 1.596421816997205500, - 1.596190778552064800, 1.595959681419551800, 1.595728525608163700, - 1.595497311126399300, - 1.595266037982759500, 1.595034706185747500, 1.594803315743869000, - 1.594571866665631700, - 1.594340358959544800, 1.594108792634120600, 1.593877167697873100, - 1.593645484159318200, - 1.593413742026974500, 1.593181941309362400, 1.592950082015004700, - 1.592718164152426000, - 1.592486187730153300, 1.592254152756715600, 1.592022059240644400, - 1.591789907190473100, - 1.591557696614737100, 1.591325427521974100, 1.591093099920724200, - 1.590860713819529400, - 1.590628269226933600, 1.590395766151483400, 1.590163204601727100, - 1.589930584586215500, - 1.589697906113501000, 1.589465169192139100, 1.589232373830686400, - 1.588999520037702300, - 1.588766607821748200, 1.588533637191387400, 1.588300608155185600, - 1.588067520721711000, - 1.587834374899533400, 1.587601170697224600, 1.587367908123358900, - 1.587134587186513000, - 1.586901207895265300, 1.586667770258196600, 1.586434274283889500, - 1.586200719980929200, - 1.585967107357902700, 1.585733436423399000, 1.585499707186010200, - 1.585265919654329300, - 1.585032073836952100, 1.584798169742476400, 1.584564207379502500, - 1.584330186756632200, - 1.584096107882470000, 1.583861970765622100, 1.583627775414697000, - 1.583393521838305700, - 1.583159210045060900, 1.582924840043577400, 1.582690411842472700, - 1.582455925450365600, - 1.582221380875877800, 1.581986778127632700, 1.581752117214255900, - 1.581517398144375800, - 1.581282620926621300, 1.581047785569625400, 1.580812892082021900, - 1.580577940472447200, - 1.580342930749539800, 1.580107862921940700, 1.579872736998292100, - 1.579637552987239100, - 1.579402310897428900, 1.579167010737510600, 1.578931652516135700, - 1.578696236241957200, - 1.578460761923630800, 1.578225229569814700, 1.577989639189168100, - 1.577753990790353500, - 1.577518284382034800, 1.577282519972878200, 1.577046697571552000, - 1.576810817186727000, - 1.576574878827075700, 1.576338882501273000, 1.576102828217995600, - 1.575866715985922500, - 1.575630545813735200, 1.575394317710116600, 1.575158031683752300, - 1.574921687743330300, - 1.574685285897539800, 1.574448826155072400, 1.574212308524622500, - 1.573975733014886000, - 1.573739099634561500, 1.573502408392348600, 1.573265659296950300, - 1.573028852357070800, - 1.572791987581417100, 1.572555064978698100, 1.572318084557624800, - 1.572081046326909900, - 1.571843950295269000, 1.571606796471419100, 1.571369584864080100, - 1.571132315481973200, - 1.570894988333822400, 1.570657603428353300, 1.570420160774294000, - 1.570182660380374600, - 1.569945102255327200, 1.569707486407886600, 1.569469812846788500, - 1.569232081580771900, - 1.568994292618577400, 1.568756445968948000, 1.568518541640628400, - 1.568280579642366000, - 1.568042559982909500, 1.567804482671010500, 1.567566347715422500, - 1.567328155124900800, - 1.567089904908203200, 1.566851597074089500, 1.566613231631321500, - 1.566374808588663300, - 1.566136327954881000, 1.565897789738742900, 1.565659193949019400, - 1.565420540594482800, - 1.565181829683907700, 1.564943061226071100, 1.564704235229751500, - 1.564465351703730400, - 1.564226410656790000, 1.563987412097716200, 1.563748356035296000, - 1.563509242478319000, - 1.563270071435576500, 1.563030842915862100, 1.562791556927971800, - 1.562552213480703300, - 1.562312812582856500, 1.562073354243233700, 1.561833838470639200, - 1.561594265273878800, - 1.561354634661761300, 1.561114946643096900, 1.560875201226698900, - 1.560635398421381400, - 1.560395538235961800, 1.560155620679258400, 1.559915645760092900, - 1.559675613487288200, - 1.559435523869669500, 1.559195376916064700, 1.558955172635302800, - 1.558714911036215700, - 1.558474592127637100, 1.558234215918402600, 1.557993782417350400, - 1.557753291633320500, - 1.557512743575155000, 1.557272138251698300, 1.557031475671796400, - 1.556790755844298400, - 1.556549978778054300, 1.556309144481917300, 1.556068252964741600, - 1.555827304235384500, - 1.555586298302704900, 1.555345235175563900, 1.555104114862824600, - 1.554862937373352500, - 1.554621702716015000, 1.554380410899681300, 1.554139061933223200, - 1.553897655825514600, - 1.553656192585431100, 1.553414672221850700, 1.553173094743653300, - 1.552931460159721100, - 1.552689768478938500, 1.552448019710191300, 1.552206213862368500, - 1.551964350944360100, - 1.551722430965059000, 1.551480453933359800, 1.551238419858159700, - 1.550996328748356800, - 1.550754180612852900, 1.550511975460550500, 1.550269713300355100, - 1.550027394141174000, - 1.549785017991916400, 1.549542584861493900, 1.549300094758820000, - 1.549057547692810600, - 1.548814943672383300, 1.548572282706457900, 1.548329564803956300, - 1.548086789973802700, - 1.547843958224923000, 1.547601069566245900, 1.547358124006701400, - 1.547115121555221700, - 1.546872062220741700, 1.546628946012197800, 1.546385772938528600, - 1.546142543008675300, - 1.545899256231580300, 1.545655912616188800, 1.545412512171447700, - 1.545169054906306200, - 1.544925540829715600, 1.544681969950629300, 1.544438342278002600, - 1.544194657820792800, - 1.543950916587959700, 1.543707118588464800, 1.543463263831272000, - 1.543219352325347200, - 1.542975384079658300, 1.542731359103175300, 1.542487277404870100, - 1.542243138993717000, - 1.541998943878692300, 1.541754692068774600, 1.541510383572944000, - 1.541266018400183200, - 1.541021596559476700, 1.540777118059811100, 1.540532582910175500, - 1.540287991119560600, - 1.540043342696959100, 1.539798637651366400, 1.539553875991779300, - 1.539309057727197300, - 1.539064182866621400, 1.538819251419055100, 1.538574263393503800, - 1.538329218798974800, - 1.538084117644477900, 1.537838959939025200, 1.537593745691629500, - 1.537348474911307300, - 1.537103147607076200, 1.536857763787956400, 1.536612323462969800, - 1.536366826641140800, - 1.536121273331495300, 1.535875663543061700, 1.535629997284870400, - 1.535384274565953600, - 1.535138495395346400, 1.534892659782085100, 1.534646767735208000, - 1.534400819263756400, - 1.534154814376772700, 1.533908753083302200, 1.533662635392391700, - 1.533416461313090100, - 1.533170230854448400, 1.532923944025520200, 1.532677600835360600, - 1.532431201293027000, - 1.532184745407578500, 1.531938233188077100, 1.531691664643585900, - 1.531445039783170500, - 1.531198358615898800, 1.530951621150840700, 1.530704827397067800, - 1.530457977363654000, - 1.530211071059675200, 1.529964108494209700, 1.529717089676337500, - 1.529470014615140800, - 1.529222883319703700, 1.528975695799112500, 1.528728452062455600, - 1.528481152118823700, - 1.528233795977309400, 1.527986383647006500, 1.527738915137012400, - 1.527491390456425600, - 1.527243809614346600, 1.526996172619878900, 1.526748479482126700, - 1.526500730210197200, - 1.526252924813199500, 1.526005063300244900, 1.525757145680446200, - 1.525509171962918800, - 1.525261142156779900, 1.525013056271149000, 1.524764914315147200, - 1.524516716297898300, - 1.524268462228527900, 1.524020152116163200, 1.523771785969934000, - 1.523523363798972000, - 1.523274885612411200, 1.523026351419387100, 1.522777761229038100, - 1.522529115050503600, - 1.522280412892925900, 1.522031654765448900, 1.521782840677218700, - 1.521533970637383800, - 1.521285044655094300, 1.521036062739502300, 1.520787024899762100, - 1.520537931145030400, - 1.520288781484465700, 1.520039575927228500, 1.519790314482481100, - 1.519540997159388300, - 1.519291623967116600, 1.519042194914835200, 1.518792710011714500, - 1.518543169266927600, - 1.518293572689648900, 1.518043920289055900, 1.517794212074327500, - 1.517544448054644500, - 1.517294628239190400, 1.517044752637150000, 1.516794821257710500, - 1.516544834110061600, - 1.516294791203394200, 1.516044692546901800, 1.515794538149779700, - 1.515544328021225500, - 1.515294062170438700, 1.515043740606620800, 1.514793363338975600, - 1.514542930376708600, - 1.514292441729027300, 1.514041897405141700, 1.513791297414263800, - 1.513540641765606800, - 1.513289930468387300, 1.513039163531823000, 1.512788340965133500, - 1.512537462777541200, - 1.512286528978270300, 1.512035539576546600, 1.511784494581598600, - 1.511533394002656100, - 1.511282237848951400, 1.511031026129719100, 1.510779758854195400, - 1.510528436031618900, - 1.510277057671229400, 1.510025623782270000, 1.509774134373984800, - 1.509522589455620600, - 1.509270989036425800, 1.509019333125651200, 1.508767621732549400, - 1.508515854866375100, - 1.508264032536385000, 1.508012154751837700, 1.507760221521994700, - 1.507508232856118200, - 1.507256188763473200, 1.507004089253327000, 1.506751934334948000, - 1.506499724017607900, - 1.506247458310579400, 1.505995137223137500, 1.505742760764559300, - 1.505490328944124200, - 1.505237841771113200, 1.504985299254809800, 1.504732701404498900, - 1.504480048229468000, - 1.504227339739006500, 1.503974575942405700, 1.503721756848958700, - 1.503468882467961600, - 1.503215952808711500, 1.502962967880507600, 1.502709927692651900, - 1.502456832254447600, - 1.502203681575200700, 1.501950475664218600, 1.501697214530810700, - 1.501443898184289200, - 1.501190526633967600, 1.500937099889161600, 1.500683617959188900, - 1.500430080853369500, - 1.500176488581024900, 1.499922841151479600, 1.499669138574058800, - 1.499415380858090800, - 1.499161568012905300, 1.498907700047834600, 1.498653776972212600, - 1.498399798795375000, - 1.498145765526660300, 1.497891677175408500, 1.497637533750961300, - 1.497383335262663300, - 1.497129081719860400, 1.496874773131900800, 1.496620409508134800, - 1.496365990857914600, - 1.496111517190594300, 1.495856988515530400, 1.495602404842080800, - 1.495347766179606400, - 1.495093072537469100, 1.494838323925033400, 1.494583520351665500, - 1.494328661826734200, - 1.494073748359609600, 1.493818779959664300, 1.493563756636272500, - 1.493308678398810800, - 1.493053545256657800, 1.492798357219194100, 1.492543114295801900, - 1.492287816495866200, - 1.492032463828773200, 1.491777056303911700, 1.491521593930672100, - 1.491266076718446900, - 1.491010504676631500, 1.490754877814621800, 1.490499196141816600, - 1.490243459667616600, - 1.489987668401424800, 1.489731822352645500, 1.489475921530685900, - 1.489219965944954300, - 1.488963955604861500, 1.488707890519820600, 1.488451770699245900, - 1.488195596152554800, - 1.487939366889165600, 1.487683082918499300, 1.487426744249978400, - 1.487170350893028500, - 1.486913902857075700, 1.486657400151549600, 1.486400842785880100, - 1.486144230769501000, - 1.485887564111846500, 1.485630842822354100, 1.485374066910462500, - 1.485117236385612200, - 1.484860351257246500, 1.484603411534810300, 1.484346417227750700, - 1.484089368345516300, - 1.483832264897558400, 1.483575106893329600, 1.483317894342285100, - 1.483060627253882000, - 1.482803305637578900, 1.482545929502837100, 1.482288498859119400, - 1.482031013715890700, - 1.481773474082618300, 1.481515879968770900, 1.481258231383819800, - 1.481000528337237800, - 1.480742770838499900, 1.480484958897083200, 1.480227092522466500, - 1.479969171724131200, - 1.479711196511560100, 1.479453166894238100, 1.479195082881652200, - 1.478936944483291600, - 1.478678751708647000, 1.478420504567211900, 1.478162203068481100, - 1.477903847221951400, - 1.477645437037121900, 1.477386972523493800, 1.477128453690569800, - 1.476869880547855300, - 1.476611253104856700, 1.476352571371083700, 1.476093835356046700, - 1.475835045069259000, - 1.475576200520235500, 1.475317301718493300, 1.475058348673551100, - 1.474799341394929900, - 1.474540279892153000, 1.474281164174744900, 1.474021994252233000, - 1.473762770134145800, - 1.473503491830014300, 1.473244159349371700, 1.472984772701752900, - 1.472725331896694400, - 1.472465836943735600, 1.472206287852416900, 1.471946684632281500, - 1.471687027292874400, - 1.471427315843742100, 1.471167550294433700, 1.470907730654499800, - 1.470647856933493300, - 1.470387929140969200, 1.470127947286484100, 1.469867911379596900, - 1.469607821429868500, - 1.469347677446861500, 1.469087479440140300, 1.468827227419272200, - 1.468566921393825700, - 1.468306561373371900, 1.468046147367482600, 1.467785679385733300, - 1.467525157437700200, - 1.467264581532962100, 1.467003951681099800, 1.466743267891695800, - 1.466482530174334500, - 1.466221738538602500, 1.465960892994088800, 1.465699993550383400, - 1.465439040217079400, - 1.465178033003770700, 1.464916971920054100, 1.464655856975527900, - 1.464394688179792900, - 1.464133465542451200, 1.463872189073107500, 1.463610858781367900, - 1.463349474676840700, - 1.463088036769136600, 1.462826545067867700, 1.462564999582648600, - 1.462303400323095000, - 1.462041747298825900, 1.461780040519460800, 1.461518279994622200, - 1.461256465733934400, - 1.460994597747023600, 1.460732676043517800, 1.460470700633046800, - 1.460208671525243400, - 1.459946588729741100, 1.459684452256176300, 1.459422262114186800, - 1.459160018313412400, - 1.458897720863495500, 1.458635369774079500, 1.458372965054810700, - 1.458110506715337000, - 1.457847994765308200, 1.457585429214375700, 1.457322810072193800, - 1.457060137348418000, - 1.456797411052706200, 1.456534631194717800, 1.456271797784114900, - 1.456008910830560500, - 1.455745970343720800, 1.455482976333263100, 1.455219928808857200, - 1.454956827780174100, - 1.454693673256887600, 1.454430465248673300, 1.454167203765208000, - 1.453903888816171900, - 1.453640520411245900, 1.453377098560113100, 1.453113623272459100, - 1.452850094557971000, - 1.452586512426338000, 1.452322876887251400, 1.452059187950404100, - 1.451795445625491300, - 1.451531649922210200, 1.451267800850259500, 1.451003898419340500, - 1.450739942639155800, - 1.450475933519410400, 1.450211871069811300, 1.449947755300067500, - 1.449683586219889400, - 1.449419363838989800, 1.449155088167083600, 1.448890759213887100, - 1.448626376989119400, - 1.448361941502500900, 1.448097452763754000, 1.447832910782603100, - 1.447568315568775100, - 1.447303667131997900, 1.447038965482002200, 1.446774210628520200, - 1.446509402581286400, - 1.446244541350036700, 1.445979626944509300, 1.445714659374444500, - 1.445449638649584500, - 1.445184564779673500, 1.444919437774456700, 1.444654257643682900, - 1.444389024397101600, - 1.444123738044464900, 1.443858398595526400, 1.443593006060042100, - 1.443327560447769600, - 1.443062061768468400, 1.442796510031900500, 1.442530905247829200, - 1.442265247426020200, - 1.441999536576240800, 1.441733772708260600, 1.441467955831850800, - 1.441202085956784900, - 1.440936163092837900, 1.440670187249787600, 1.440404158437412500, - 1.440138076665494100, - 1.439871941943815300, 1.439605754282161400, 1.439339513690319100, - 1.439073220178077400, - 1.438806873755226900, 1.438540474431560600, 1.438274022216873500, - 1.438007517120961900, - 1.437740959153624500, 1.437474348324662100, 1.437207684643876800, - 1.436940968121073600, - 1.436674198766058500, 1.436407376588640000, 1.436140501598628400, - 1.435873573805835900, - 1.435606593220076600, 1.435339559851166500, 1.435072473708924000, - 1.434805334803169100, - 1.434538143143723200, 1.434270898740410700, 1.434003601603057300, - 1.433736251741490700, - 1.433468849165540500, 1.433201393885038500, 1.432933885909818000, - 1.432666325249714700, - 1.432398711914566200, 1.432131045914211600, 1.431863327258492400, - 1.431595555957251700, - 1.431327732020334800, 1.431059855457588600, 1.430791926278862400, - 1.430523944494007400, - 1.430255910112876000, 1.429987823145323100, 1.429719683601205800, - 1.429451491490382900, - 1.429183246822714800, 1.428914949608064200, 1.428646599856295400, - 1.428378197577275100, - 1.428109742780871800, 1.427841235476955400, 1.427572675675398600, - 1.427304063386075200, - 1.427035398618861500, 1.426766681383635500, 1.426497911690277000, - 1.426229089548668200, - 1.425960214968693000, 1.425691287960236600, 1.425422308533187200, - 1.425153276697434000, - 1.424884192462868800, 1.424615055839385300, 1.424345866836878200, - 1.424076625465245500, - 1.423807331734385800, 1.423537985654200800, 1.423268587234593400, - 1.422999136485468600, - 1.422729633416733200, 1.422460078038296300, 1.422190470360068300, - 1.421920810391962500, - 1.421651098143893000, 1.421381333625776600, 1.421111516847531700, - 1.420841647819078600, - 1.420571726550339700, 1.420301753051239400, 1.420031727331703800, - 1.419761649401660500, - 1.419491519271040000, 1.419221336949774100, 1.418951102447796800, - 1.418680815775043500, - 1.418410476941452100, 1.418140085956961900, 1.417869642831514700, - 1.417599147575054000, - 1.417328600197524900, 1.417058000708874700, 1.416787349119052600, - 1.416516645438009600, - 1.416245889675698900, 1.415975081842075300, 1.415704221947095700, - 1.415433310000718600, - 1.415162346012905000, 1.414891329993617200, 1.414620261952819600, - 1.414349141900479000, - 1.414077969846563500, 1.413806745801043500, 1.413535469773890700, - 1.413264141775079300, - 1.412992761814585400, 1.412721329902386900, 1.412449846048463600, - 1.412178310262796900, - 1.411906722555370500, 1.411635082936170100, 1.411363391415182900, - 1.411091648002398500, - 1.410819852707807700, 1.410548005541404100, 1.410276106513182400, - 1.410004155633139500, - 1.409732152911274500, 1.409460098357588200, 1.409187991982083100, - 1.408915833794763800, - 1.408643623805636800, 1.408371362024710500, 1.408099048461995300, - 1.407826683127503000, - 1.407554266031248100, 1.407281797183246500, 1.407009276593515800, - 1.406736704272076400, - 1.406464080228949600, 1.406191404474159000, 1.405918677017730100, - 1.405645897869690400, - 1.405373067040069300, 1.405100184538898000, 1.404827250376209400, - 1.404554264562038400, - 1.404281227106422400, 1.404008138019399800, 1.403734997311011600, - 1.403461804991300100, - 1.403188561070310100, 1.402915265558087700, 1.402641918464681400, - 1.402368519800141200, - 1.402095069574519800, 1.401821567797870300, 1.401548014480249000, - 1.401274409631713600, - 1.401000753262323900, 1.400727045382141400, 1.400453286001229800, - 1.400179475129653700, - 1.399905612777481200, 1.399631698954780800, 1.399357733671623900, - 1.399083716938083600, - 1.398809648764234100, 1.398535529160152400, 1.398261358135917300, - 1.397987135701609200, - 1.397712861867310300, 1.397438536643105000, 1.397164160039079200, - 1.396889732065321300, - 1.396615252731921100, 1.396340722048970300, 1.396066140026562800, - 1.395791506674794100, - 1.395516822003761700, 1.395242086023564800, 1.394967298744304900, - 1.394692460176085300, - 1.394417570329010700, 1.394142629213188000, 1.393867636838725900, - 1.393592593215735600, - 1.393317498354329300, 1.393042352264621600, 1.392767154956728400, - 1.392491906440768600, - 1.392216606726861800, 1.391941255825130100, 1.391665853745697400, - 1.391390400498689700, - 1.391114896094234100, 1.390839340542460600, 1.390563733853500200, - 1.390288076037486500, - 1.390012367104554600, 1.389736607064841100, 1.389460795928485500, - 1.389184933705628300, - 1.388909020406412100, 1.388633056040981600, 1.388357040619483200, - 1.388080974152065200, - 1.387804856648877600, 1.387528688120072600, 1.387252468575804100, - 1.386976198026228100, - 1.386699876481501900, 1.386423503951785200, 1.386147080447239600, - 1.385870605978028100, - 1.385594080554316100, 1.385317504186270900, 1.385040876884061000, - 1.384764198657857200, - 1.384487469517832200, 1.384210689474160600, 1.383933858537019100, - 1.383656976716585600, - 1.383380044023040400, 1.383103060466565300, 1.382826026057344600, - 1.382548940805563800, - 1.382271804721410600, 1.381994617815074400, 1.381717380096746800, - 1.381440091576620700, - 1.381162752264891500, 1.380885362171756300, 1.380607921307413400, - 1.380330429682064000, - 1.380052887305910400, 1.379775294189157000, 1.379497650342010400, - 1.379219955774678700, - 1.378942210497371600, 1.378664414520301500, 1.378386567853681700, - 1.378108670507728300, - 1.377830722492658500, 1.377552723818691500, 1.377274674496048700, - 1.376996574534953300, - 1.376718423945630000, 1.376440222738305700, 1.376161970923209400, - 1.375883668510570900, - 1.375605315510623200, 1.375326911933600200, 1.375048457789738400, - 1.374769953089275400, - 1.374491397842451100, 1.374212792059507100, 1.373934135750687100, - 1.373655428926236400, - 1.373376671596402400, 1.373097863771434200, 1.372819005461582500, - 1.372540096677100200, - 1.372261137428242300, 1.371982127725264800, 1.371703067578426700, - 1.371423956997988000, - 1.371144795994210500, 1.370865584577358300, 1.370586322757697500, - 1.370307010545495500, - 1.370027647951022100, 1.369748234984548000, 1.369468771656347200, - 1.369189257976694200, - 1.368909693955866000, 1.368630079604142000, 1.368350414931802000, - 1.368070699949128800, - 1.367790934666406600, 1.367511119093921800, 1.367231253241962200, - 1.366951337120818000, - 1.366671370740780500, 1.366391354112143500, 1.366111287245202400, - 1.365831170150254300, - 1.365551002837598600, 1.365270785317536100, 1.364990517600369400, - 1.364710199696403300, - 1.364429831615944200, 1.364149413369300600, 1.363868944966782900, - 1.363588426418702600, - 1.363307857735373900, 1.363027238927112300, 1.362746570004235400, - 1.362465850977062900, - 1.362185081855915600, 1.361904262651116900, 1.361623393372991300, - 1.361342474031866000, - 1.361061504638069400, 1.360780485201932300, 1.360499415733786400, - 1.360218296243966200, - 1.359937126742807300, 1.359655907240648000, 1.359374637747827700, - 1.359093318274687800, - 1.358811948831571500, 1.358530529428824400, 1.358249060076792900, - 1.357967540785826300, - 1.357685971566275200, 1.357404352428492000, 1.357122683382830900, - 1.356840964439648200, - 1.356559195609301700, 1.356277376902151900, 1.355995508328559500, - 1.355713589898888800, - 1.355431621623504700, 1.355149603512774400, 1.354867535577067200, - 1.354585417826753800, - 1.354303250272206500, 1.354021032923800300, 1.353738765791911100, - 1.353456448886917200, - 1.353174082219199100, 1.352891665799137900, 1.352609199637117500, - 1.352326683743523300, - 1.352044118128742600, 1.351761502803164900, 1.351478837777180700, - 1.351196123061183100, - 1.350913358665566400, 1.350630544600727200, 1.350347680877063800, - 1.350064767504976400, - 1.349781804494866600, 1.349498791857138400, 1.349215729602197400, - 1.348932617740450600, - 1.348649456282307700, 1.348366245238179500, 1.348082984618478800, - 1.347799674433620500, - 1.347516314694020800, 1.347232905410098200, 1.346949446592273100, - 1.346665938250967100, - 1.346382380396604000, 1.346098773039609700, 1.345815116190411300, - 1.345531409859438200, - 1.345247654057121700, 1.344963848793894200, 1.344679994080190800, - 1.344396089926448000, - 1.344112136343103900, 1.343828133340598800, 1.343544080929374800, - 1.343259979119875600, - 1.342975827922546600, 1.342691627347835500, 1.342407377406191500, - 1.342123078108065700, - 1.341838729463910900, 1.341554331484181600, 1.341269884179334700, - 1.340985387559828100, - 1.340700841636122400, 1.340416246418678800, 1.340131601917961900, - 1.339846908144436600, - 1.339562165108570700, 1.339277372820833400, 1.338992531291695500, - 1.338707640531629800, - 1.338422700551110900, 1.338137711360615200, 1.337852672970621300, - 1.337567585391608900, - 1.337282448634059800, 1.336997262708457900, 1.336712027625288600, - 1.336426743395039000, - 1.336141410028198500, 1.335856027535258000, 1.335570595926709700, - 1.335285115213048500, - 1.334999585404770700, 1.334714006512374400, 1.334428378546359500, - 1.334142701517227600, - 1.333856975435482300, 1.333571200311629100, 1.333285376156174700, - 1.332999502979628700, - 1.332713580792501500, 1.332427609605305400, 1.332141589428554900, - 1.331855520272766200, - 1.331569402148457400, 1.331283235066148100, 1.330997019036359800, - 1.330710754069615700, - 1.330424440176441300, 1.330138077367363200, 1.329851665652910500, - 1.329565205043613800, - 1.329278695550004700, 1.328992137182618100, 1.328705529951989400, - 1.328418873868656900, - 1.328132168943159800, 1.327845415186039000, 1.327558612607838500, - 1.327271761219102500, - 1.326984861030378000, 1.326697912052213500, 1.326410914295159400, - 1.326123867769767500, - 1.325836772486591800, 1.325549628456188100, 1.325262435689113600, - 1.324975194195928000, - 1.324687903987191900, 1.324400565073468300, 1.324113177465321900, - 1.323825741173318700, - 1.323538256208027800, 1.323250722580018500, 1.322963140299862500, - 1.322675509378133900, - 1.322387829825407700, 1.322100101652261100, 1.321812324869273500, - 1.321524499487024800, - 1.321236625516098100, 1.320948702967077400, 1.320660731850549000, - 1.320372712177100700, - 1.320084643957322400, 1.319796527201805300, 1.319508361921142500, - 1.319220148125929100, - 1.318931885826762000, 1.318643575034239800, 1.318355215758962900, - 1.318066808011533200, - 1.317778351802554800, 1.317489847142633300, 1.317201294042376300, - 1.316912692512393300, - 1.316624042563294900, 1.316335344205694200, 1.316046597450205800, - 1.315757802307445900, - 1.315468958788033000, 1.315180066902586800, 1.314891126661728900, - 1.314602138076083300, - 1.314313101156274800, 1.314024015912930600, 1.313734882356679900, - 1.313445700498152800, - 1.313156470347981900, 1.312867191916801100, 1.312577865215246900, - 1.312288490253956900, - 1.311999067043570200, 1.311709595594728000, 1.311420075918073900, - 1.311130508024252400, - 1.310840891923910100, 1.310551227627695400, 1.310261515146258200, - 1.309971754490250700, - 1.309681945670326400, 1.309392088697140900, 1.309102183581351200, - 1.308812230333616500, - 1.308522228964597500, 1.308232179484956500, 1.307942081905358000, - 1.307651936236467800, - 1.307361742488954300, 1.307071500673486800, 1.306781210800736200, - 1.306490872881376200, - 1.306200486926081700, 1.305910052945529200, 1.305619570950396800, - 1.305329040951365100, - 1.305038462959116100, 1.304747836984333300, 1.304457163037702200, - 1.304166441129910300, - 1.303875671271646400, 1.303584853473601200, 1.303293987746467300, - 1.303003074100939100, - 1.302712112547712800, 1.302421103097485900, 1.302130045760958100, - 1.301838940548830600, - 1.301547787471806900, 1.301256586540591600, 1.300965337765891600, - 1.300674041158414800, - 1.300382696728871400, 1.300091304487973800, 1.299799864446435200, - 1.299508376614971500, - 1.299216841004299200, 1.298925257625137800, 1.298633626488207500, - 1.298341947604231300, - 1.298050220983932900, 1.297758446638038700, 1.297466624577275900, - 1.297174754812374400, - 1.296882837354065100, 1.296590872213081200, 1.296298859400157700, - 1.296006798926030200, - 1.295714690801437600, 1.295422535037119800, 1.295130331643818500, - 1.294838080632277000, - 1.294545782013240900, 1.294253435797456900, 1.293961041995673700, - 1.293668600618642000, - 1.293376111677113900, 1.293083575181843500, 1.292790991143586200, - 1.292498359573099700, - 1.292205680481143500, 1.291912953878477900, 1.291620179775866400, - 1.291327358184073200, - 1.291034489113864100, 1.290741572576007400, 1.290448608581273000, - 1.290155597140431700, - 1.289862538264257700, 1.289569431963524900, 1.289276278249010600, - 1.288983077131493000, - 1.288689828621752300, 1.288396532730570400, 1.288103189468731400, - 1.287809798847019800, - 1.287516360876223500, 1.287222875567130900, 1.286929342930532800, - 1.286635762977221800, - 1.286342135717991600, 1.286048461163638000, 1.285754739324958900, - 1.285460970212753500, - 1.285167153837822900, 1.284873290210969900, 1.284579379342998700, - 1.284285421244715900, - 1.283991415926929400, 1.283697363400448900, 1.283403263676086100, - 1.283109116764654000, - 1.282814922676967400, 1.282520681423843000, 1.282226393016099500, - 1.281932057464557000, - 1.281637674780037100, 1.281343244973363700, 1.281048768055361900, - 1.280754244036858900, - 1.280459672928683500, 1.280165054741666300, 1.279870389486639400, - 1.279575677174437100, - 1.279280917815894600, 1.278986111421849900, 1.278691258003142000, - 1.278396357570611900, - 1.278101410135101800, 1.277806415707456700, 1.277511374298522200, - 1.277216285919146500, - 1.276921150580179200, 1.276625968292471000, 1.276330739066875400, - 1.276035462914247000, - 1.275740139845442400, 1.275444769871319600, 1.275149353002738700, - 1.274853889250561200, - 1.274558378625650200, 1.274262821138871300, 1.273967216801090900, - 1.273671565623178100, - 1.273375867616002300, 1.273080122790436000, 1.272784331157352800, - 1.272488492727628100, - 1.272192607512139300, 1.271896675521764900, 1.271600696767385400, - 1.271304671259883200, - 1.271008599010142500, 1.270712480029048800, 1.270416314327489800, - 1.270120101916354600, - 1.269823842806533800, 1.269527537008920300, 1.269231184534408200, - 1.268934785393893700, - 1.268638339598274500, 1.268341847158450200, 1.268045308085321800, - 1.267748722389792100, - 1.267452090082765900, 1.267155411175149500, 1.266858685677851000, - 1.266561913601780100, - 1.266265094957848000, 1.265968229756968100, 1.265671318010055400, - 1.265374359728026500, - 1.265077354921799300, 1.264780303602294200, 1.264483205780432700, - 1.264186061467138500, - 1.263888870673336400, 1.263591633409954000, 1.263294349687918800, - 1.262997019518161700, - 1.262699642911614600, 1.262402219879211300, 1.262104750431887000, - 1.261807234580578900, - 1.261509672336225600, 1.261212063709767900, 1.260914408712147800, - 1.260616707354309500, - 1.260318959647198400, 1.260021165601761900, 1.259723325228949000, - 1.259425438539710300, - 1.259127505544998600, 1.258829526255768000, 1.258531500682973800, - 1.258233428837574300, - 1.257935310730528000, 1.257637146372796400, 1.257338935775342200, - 1.257040678949129500, - 1.256742375905124400, 1.256444026654294400, 1.256145631207609400, - 1.255847189576040100, - 1.255548701770560000, 1.255250167802143000, 1.254951587681765600, - 1.254652961420405600, - 1.254354289029042900, 1.254055570518658500, 1.253756805900235700, - 1.253457995184759300, - 1.253159138383215200, 1.252860235506592100, 1.252561286565879300, - 1.252262291572068900, - 1.251963250536153500, 1.251664163469128300, 1.251365030381989700, - 1.251065851285736200, - 1.250766626191367500, 1.250467355109885500, 1.250168038052293500, - 1.249868675029596200, - 1.249569266052800800, 1.249269811132915200, 1.248970310280950200, - 1.248670763507917100, - 1.248371170824829300, 1.248071532242702100, 1.247771847772552300, - 1.247472117425398700, - 1.247172341212261500, 1.246872519144162300, 1.246572651232124700, - 1.246272737487174300, - 1.245972777920338000, 1.245672772542644400, 1.245372721365123600, - 1.245072624398807900, - 1.244772481654731000, 1.244472293143928300, 1.244172058877436800, - 1.243871778866295400, - 1.243571453121544000, 1.243271081654225400, 1.242970664475383100, - 1.242670201596062700, - 1.242369693027311200, 1.242069138780177400, 1.241768538865712000, - 1.241467893294967200, - 1.241167202078996800, 1.240866465228856100, 1.240565682755603100, - 1.240264854670295900, - 1.239963980983995300, 1.239663061707763700, 1.239362096852665300, - 1.239061086429765300, - 1.238760030450130900, 1.238458928924831600, 1.238157781864937400, - 1.237856589281521000, - 1.237555351185656500, 1.237254067588419400, 1.236952738500886900, - 1.236651363934138300, - 1.236349943899254000, 1.236048478407316500, 1.235746967469409900, - 1.235445411096619500, - 1.235143809300033300, 1.234842162090739700, 1.234540469479829900, - 1.234238731478396000, - 1.233936948097532400, 1.233635119348334400, 1.233333245241899200, - 1.233031325789326400, - 1.232729361001716500, 1.232427350890172000, 1.232125295465796600, - 1.231823194739696300, - 1.231521048722978200, 1.231218857426751700, 1.230916620862127400, - 1.230614339040217800, - 1.230312011972136500, 1.230009639668999500, 1.229707222141924100, - 1.229404759402029400, - 1.229102251460436400, 1.228799698328266700, 1.228497100016644900, - 1.228194456536696500, - 1.227891767899548700, 1.227589034116330700, 1.227286255198173100, - 1.226983431156208200, - 1.226680562001569900, 1.226377647745394000, 1.226074688398817600, - 1.225771683972980200, - 1.225468634479021500, 1.225165539928084300, 1.224862400331312400, - 1.224559215699851500, - 1.224255986044848500, 1.223952711377453100, 1.223649391708814700, - 1.223346027050086400, - 1.223042617412421600, 1.222739162806975900, 1.222435663244906700, - 1.222132118737372400, - 1.221828529295533800, 1.221524894930552800, 1.221221215653593100, - 1.220917491475820500, - 1.220613722408401900, 1.220309908462505800, 1.220006049649302800, - 1.219702145979964600, - 1.219398197465665400, 1.219094204117580300, 1.218790165946886100, - 1.218486082964761500, - 1.218181955182386500, 1.217877782610943700, 1.217573565261616000, - 1.217269303145589000, - 1.216964996274049400, 1.216660644658185600, 1.216356248309187600, - 1.216051807238247800, - 1.215747321456559300, 1.215442790975316700, 1.215138215805717300, - 1.214833595958959300, - 1.214528931446242600, 1.214224222278769100, 1.213919468467741900, - 1.213614670024366000, - 1.213309826959847700, 1.213004939285395400, 1.212700007012219100, - 1.212395030151530300, - 1.212090008714541600, 1.211784942712468300, 1.211479832156526800, - 1.211174677057934800, - 1.210869477427912300, 1.210564233277680500, 1.210258944618462200, - 1.209953611461482200, - 1.209648233817966600, 1.209342811699143600, 1.209037345116242400, - 1.208731834080493800, - 1.208426278603131200, 1.208120678695388600, 1.207815034368502100, - 1.207509345633709600, - 1.207203612502250300, 1.206897834985365000, 1.206592013094296200, - 1.206286146840288300, - 1.205980236234587100, 1.205674281288440000, 1.205368282013096200, - 1.205062238419806200, - 1.204756150519822300, 1.204450018324398900, 1.204143841844791200, - 1.203837621092256800, - 1.203531356078054100, 1.203225046813444000, 1.202918693309688300, - 1.202612295578050900, - 1.202305853629797500, 1.201999367476194400, 1.201692837128510700, - 1.201386262598016500, - 1.201079643895983700, 1.200772981033685800, 1.200466274022397900, - 1.200159522873396800, - 1.199852727597960700, 1.199545888207369700, 1.199239004712905300, - 1.198932077125851100, - 1.198625105457491700, 1.198318089719113200, 1.198011029922004400, - 1.197703926077454200, - 1.197396778196754700, 1.197089586291198500, 1.196782350372080300, - 1.196475070450696100, - 1.196167746538343600, 1.195860378646322700, 1.195552966785933900, - 1.195245510968480300, - 1.194938011205265900, 1.194630467507596500, 1.194322879886780000, - 1.194015248354125100, - 1.193707572920943000, 1.193399853598545500, 1.193092090398246900, - 1.192784283331362700, - 1.192476432409210100, 1.192168537643107900, 1.191860599044376500, - 1.191552616624337800, - 1.191244590394315400, 1.190936520365635000, 1.190628406549622900, - 1.190320248957608100, - 1.190012047600920200, 1.189703802490891000, 1.189395513638853900, - 1.189087181056143900, - 1.188778804754097300, 1.188470384744052100, 1.188161921037348400, - 1.187853413645327100, - 1.187544862579331500, 1.187236267850706000, 1.186927629470796900, - 1.186618947450951600, - 1.186310221802519900, 1.186001452536852300, 1.185692639665301600, - 1.185383783199222000, - 1.185074883149969100, 1.184765939528900500, 1.184456952347374900, - 1.184147921616753200, - 1.183838847348397400, 1.183529729553671500, 1.183220568243940300, - 1.182911363430571200, - 1.182602115124932900, 1.182292823338395100, 1.181983488082330300, - 1.181674109368111300, - 1.181364687207113100, 1.181055221610712400, 1.180745712590287400, - 1.180436160157217800, - 1.180126564322885100, 1.179816925098671900, 1.179507242495962900, - 1.179197516526144600, - 1.178887747200604300, 1.178577934530731700, 1.178268078527917200, - 1.177958179203553800, - 1.177648236569035300, 1.177338250635757700, 1.177028221415118200, - 1.176718148918515700, - 1.176408033157350300, 1.176097874143024600, 1.175787671886942000, - 1.175477426400507700, - 1.175167137695128900, 1.174856805782213500, 1.174546430673171900, - 1.174236012379415600, - 1.173925550912357800, 1.173615046283413200, 1.173304498503998400, - 1.172993907585530900, - 1.172683273539430800, 1.172372596377118800, 1.172061876110017700, - 1.171751112749551900, - 1.171440306307147200, 1.171129456794231200, 1.170818564222232800, - 1.170507628602582800, - 1.170196649946713100, 1.169885628266057900, 1.169574563572052300, - 1.169263455876133200, - 1.168952305189739200, 1.168641111524310700, 1.168329874891289400, - 1.168018595302118000, - 1.167707272768241800, 1.167395907301107100, 1.167084498912162300, - 1.166773047612856400, - 1.166461553414641000, 1.166150016328968600, 1.165838436367293800, - 1.165526813541072100, - 1.165215147861761400, 1.164903439340820900, 1.164591687989710500, - 1.164279893819892800, - 1.163968056842831700, 1.163656177069992500, 1.163344254512841800, - 1.163032289182848800, - 1.162720281091483000, 1.162408230250216100, 1.162096136670521600, - 1.161784000363874000, - 1.161471821341749900, 1.161159599615627000, 1.160847335196984800, - 1.160535028097304600, - 1.160222678328068700, 1.159910285900761700, 1.159597850826869200, - 1.159285373117878500, - 1.158972852785278500, 1.158660289840559800, 1.158347684295214300, - 1.158035036160735900, - 1.157722345448619400, 1.157409612170361600, 1.157096836337461000, - 1.156784017961417500, - 1.156471157053732300, 1.156158253625908700, 1.155845307689450800, - 1.155532319255865300, - 1.155219288336659400, 1.154906214943342700, 1.154593099087426000, - 1.154279940780421400, - 1.153966740033842900, 1.153653496859206000, 1.153340211268028000, - 1.153026883271827300, - 1.152713512882124400, 1.152400100110440700, 1.152086644968299400, - 1.151773147467225300, - 1.151459607618745300, 1.151146025434387000, 1.150832400925680100, - 1.150518734104155400, - 1.150205024981345800, 1.149891273568785400, 1.149577479878009800, - 1.149263643920556800, - 1.148949765707964600, 1.148635845251773800, 1.148321882563526400, - 1.148007877654766200, - 1.147693830537038100, 1.147379741221888500, 1.147065609720865600, - 1.146751436045519300, - 1.146437220207400700, 1.146122962218062600, 1.145808662089060000, - 1.145494319831947800, - 1.145179935458284100, 1.144865508979627800, 1.144551040407539400, - 1.144236529753581000, - 1.143921977029316500, 1.143607382246310600, 1.143292745416130600, - 1.142978066550344400, - 1.142663345660522000, 1.142348582758234900, 1.142033777855056000, - 1.141718930962559500, - 1.141404042092321500, 1.141089111255919800, 1.140774138464933700, - 1.140459123730943200, - 1.140144067065530700, 1.139828968480280300, 1.139513827986776900, - 1.139198645596607400, - 1.138883421321360600, 1.138568155172625700, 1.138252847161994400, - 1.137937497301059600, - 1.137622105601416000, 1.137306672074659900, 1.136991196732388200, - 1.136675679586200500, - 1.136360120647697200, 1.136044519928480800, 1.135728877440154800, - 1.135413193194324800, - 1.135097467202597100, 1.134781699476580300, 1.134465890027884300, - 1.134150038868120500, - 1.133834146008902100, 1.133518211461843200, 1.133202235238559800, - 1.132886217350669500, - 1.132570157809791500, 1.132254056627546300, 1.131937913815556300, - 1.131621729385444900, - 1.131305503348837300, 1.130989235717360100, 1.130672926502642100, - 1.130356575716312500, - 1.130040183370002900, 1.129723749475346000, 1.129407274043976200, - 1.129090757087529500, - 1.128774198617643200, 1.128457598645956600, 1.128140957184109700, - 1.127824274243744500, - 1.127507549836505000, 1.127190783974035800, 1.126873976667983800, - 1.126557127929996800, - 1.126240237771724700, 1.125923306204818400, 1.125606333240930700, - 1.125289318891715900, - 1.124972263168829500, 1.124655166083928800, 1.124338027648672500, - 1.124020847874721100, - 1.123703626773736100, 1.123386364357381200, 1.123069060637320600, - 1.122751715625221400, - 1.122434329332750800, 1.122116901771578400, 1.121799432953375600, - 1.121481922889814300, - 1.121164371592568300, 1.120846779073313400, 1.120529145343726500, - 1.120211470415486200, - 1.119893754300272300, 1.119575997009766300, 1.119258198555651300, - 1.118940358949611900, - 1.118622478203333800, 1.118304556328505200, 1.117986593336814700, - 1.117668589239953200, - 1.117350544049612300, 1.117032457777486200, 1.116714330435269600, - 1.116396162034659600, - 1.116077952587353600, 1.115759702105052000, 1.115441410599455500, - 1.115123078082267000, - 1.114804704565190500, 1.114486290059931900, 1.114167834578198200, - 1.113849338131698300, - 1.113530800732142100, 1.113212222391241500, 1.112893603120710000, - 1.112574942932261600, - 1.112256241837613000, 1.111937499848481900, 1.111618716976587700, - 1.111299893233650600, - 1.110981028631393700, 1.110662123181539900, 1.110343176895814500, - 1.110024189785944900, - 1.109705161863658600, 1.109386093140686000, 1.109066983628758100, - 1.108747833339607200, - 1.108428642284968100, 1.108109410476576300, 1.107790137926169200, - 1.107470824645485600, - 1.107151470646265300, 1.106832075940250600, 1.106512640539184100, - 1.106193164454811100, - 1.105873647698877300, 1.105554090283131100, 1.105234492219321100, - 1.104914853519198400, - 1.104595174194514800, 1.104275454257024300, 1.103955693718482200, - 1.103635892590644900, - 1.103316050885270600, 1.102996168614119000, 1.102676245788951400, - 1.102356282421530300, - 1.102036278523620000, 1.101716234106985700, 1.101396149183395000, - 1.101076023764616400, - 1.100755857862419700, 1.100435651488577100, 1.100115404654861100, - 1.099795117373046200, - 1.099474789654909100, 1.099154421512226600, 1.098834012956778200, - 1.098513564000344300, - 1.098193074654706800, 1.097872544931649100, 1.097551974842956500, - 1.097231364400415000, - 1.096910713615813200, 1.096590022500939700, 1.096269291067585700, - 1.095948519327543800, - 1.095627707292607700, 1.095306854974572800, 1.094985962385235800, - 1.094665029536395100, - 1.094344056439850600, 1.094023043107403200, 1.093701989550856000, - 1.093380895782013000, - 1.093059761812680100, 1.092738587654664300, 1.092417373319774200, - 1.092096118819820200, - 1.091774824166613600, 1.091453489371968100, 1.091132114447697300, - 1.090810699405617900, - 1.090489244257547300, 1.090167749015304300, 1.089846213690709900, - 1.089524638295585400, - 1.089203022841754400, 1.088881367341041800, 1.088559671805274100, - 1.088237936246279100, - 1.087916160675885800, 1.087594345105925300, 1.087272489548229700, - 1.086950594014632700, - 1.086628658516969500, 1.086306683067076900, 1.085984667676792600, - 1.085662612357956500, - 1.085340517122409800, 1.085018381981994500, 1.084696206948555300, - 1.084373992033937000, - 1.084051737249986900, 1.083729442608553300, 1.083407108121486000, - 1.083084733800636200, - 1.082762319657857100, 1.082439865705002500, 1.082117371953928300, - 1.081794838416491700, - 1.081472265104551200, 1.081149652029967000, 1.080826999204601100, - 1.080504306640315500, - 1.080181574348975500, 1.079858802342446900, 1.079535990632596800, - 1.079213139231294500, - 1.078890248150409700, 1.078567317401815100, 1.078244346997383300, - 1.077921336948988600, - 1.077598287268508400, 1.077275197967819000, 1.076952069058800400, - 1.076628900553332700, - 1.076305692463297900, 1.075982444800579700, 1.075659157577062200, - 1.075335830804633000, - 1.075012464495178800, 1.074689058660589700, 1.074365613312755900, - 1.074042128463569500, - 1.073718604124924500, 1.073395040308715400, 1.073071437026839500, - 1.072747794291194300, - 1.072424112113678600, 1.072100390506194500, 1.071776629480643500, - 1.071452829048929800, - 1.071128989222958500, 1.070805110014635900, 1.070481191435870500, - 1.070157233498571600, - 1.069833236214650800, 1.069509199596019800, 1.069185123654592600, - 1.068861008402285200, - 1.068536853851013600, 1.068212660012696700, 1.067888426899253500, - 1.067564154522606000, - 1.067239842894676100, 1.066915492027387600, 1.066591101932666800, - 1.066266672622439700, - 1.065942204108635300, 1.065617696403183400, 1.065293149518014500, - 1.064968563465062100, - 1.064643938256259400, 1.064319273903543000, 1.063994570418849400, - 1.063669827814116300, - 1.063345046101285000, 1.063020225292295300, 1.062695365399091200, - 1.062370466433616400, - 1.062045528407815900, 1.061720551333637600, 1.061395535223029500, - 1.061070480087941800, - 1.060745385940325500, 1.060420252792134000, 1.060095080655320900, - 1.059769869541841800, - 1.059444619463654400, 1.059119330432716700, 1.058794002460989000, - 1.058468635560432500, - 1.058143229743009600, 1.057817785020685100, 1.057492301405424500, - 1.057166778909195000, - 1.056841217543965200, 1.056515617321704500, 1.056189978254385100, - 1.055864300353978900, - 1.055538583632461100, 1.055212828101807200, 1.054887033773993300, - 1.054561200660999200, - 1.054235328774803900, 1.053909418127389400, 1.053583468730738200, - 1.053257480596834700, - 1.052931453737664600, 1.052605388165214700, 1.052279283891473600, - 1.051953140928431100, - 1.051626959288079100, 1.051300738982409800, 1.050974480023417500, - 1.050648182423098000, - 1.050321846193448000, 1.049995471346466300, 1.049669057894152800, - 1.049342605848508200, - 1.049016115221536000, 1.048689586025239700, 1.048363018271625300, - 1.048036411972699500, - 1.047709767140470500, 1.047383083786948700, 1.047056361924144400, - 1.046729601564071200, - 1.046402802718742400, 1.046075965400174300, 1.045749089620383200, - 1.045422175391386800, - 1.045095222725206200, 1.044768231633861100, 1.044441202129375200, - 1.044114134223771900, - 1.043787027929076000, 1.043459883257315400, 1.043132700220517300, - 1.042805478830712200, - 1.042478219099930400, 1.042150921040204200, 1.041823584663568200, - 1.041496209982056600, - 1.041168797007707000, 1.040841345752557200, 1.040513856228645800, - 1.040186328448014800, - 1.039858762422705600, 1.039531158164762400, 1.039203515686230000, - 1.038875834999155100, - 1.038548116115585800, 1.038220359047570500, 1.037892563807160800, - 1.037564730406408200, - 1.037236858857366600, 1.036908949172090900, 1.036581001362636600, - 1.036253015441062700, - 1.035924991419427100, 1.035596929309791300, 1.035268829124216700, - 1.034940690874766300, - 1.034612514573505700, 1.034284300232500000, 1.033956047863817500, - 1.033627757479526700, - 1.033299429091697700, 1.032971062712402700, 1.032642658353714300, - 1.032314216027707700, - 1.031985735746457900, 1.031657217522042900, 1.031328661366541300, - 1.031000067292032300, - 1.030671435310598600, 1.030342765434322200, 1.030014057675287900, - 1.029685312045581100, - 1.029356528557288300, 1.029027707222499100, 1.028698848053302100, - 1.028369951061789600, - 1.028041016260053500, 1.027712043660187600, 1.027383033274288400, - 1.027053985114451100, - 1.026724899192775300, 1.026395775521359500, 1.026066614112305600, - 1.025737414977715200, - 1.025408178129692000, 1.025078903580341600, 1.024749591341769700, - 1.024420241426085200, - 1.024090853845396800, 1.023761428611814600, 1.023431965737451800, - 1.023102465234420700, - 1.022772927114837100, 1.022443351390816400, 1.022113738074476300, - 1.021784087177936000, - 1.021454398713315600, 1.021124672692737000, 1.020794909128323000, - 1.020465108032198300, - 1.020135269416488700, 1.019805393293321100, 1.019475479674824900, - 1.019145528573129000, - 1.018815540000365800, 1.018485513968667500, 1.018155450490168000, - 1.017825349577003300, - 1.017495211241309800, 1.017165035495226400, 1.016834822350892300, - 1.016504571820448000, - 1.016174283916036800, 1.015843958649801600, 1.015513596033888400, - 1.015183196080442900, - 1.014852758801613200, 1.014522284209548900, 1.014191772316400000, - 1.013861223134318900, - 1.013530636675459100, 1.013200012951974700, 1.012869351976022300, - 1.012538653759758900, - 1.012207918315344300, 1.011877145654937400, 1.011546335790700600, - 1.011215488734796800, - 1.010884604499389800, 1.010553683096645900, 1.010222724538731600, - 1.009891728837815700, - 1.009560696006067900, 1.009229626055658800, 1.008898518998761800, - 1.008567374847549900, - 1.008236193614199000, 1.007904975310885300, 1.007573719949786700, - 1.007242427543082900, - 1.006911098102953900, 1.006579731641582500, 1.006248328171152100, - 1.005916887703846500, - 1.005585410251852700, 1.005253895827357800, 1.004922344442551000, - 1.004590756109621900, - 1.004259130840762700, 1.003927468648166100, 1.003595769544025900, - 1.003264033540538500, - 1.002932260649900000, 1.002600450884309800, 1.002268604255967200, - 1.001936720777072400, - 1.001604800459829000, 1.001272843316440000, 1.000940849359111000, - 1.000608818600048100, - 1.000276751051459200, 0.999944646725553720, 0.999612505634541740, - 0.999280327790635690, - 0.998948113206048590, 0.998615861892994560, 0.998283573863690270, - 0.997951249130352380, - 0.997618887705200020, 0.997286489600452630, 0.996954054828332210, - 0.996621583401061110, - 0.996289075330862860, 0.995956530629963810, 0.995623949310589620, - 0.995291331384969390, - 0.994958676865332010, 0.994625985763907820, 0.994293258092929790, - 0.993960493864630480, - 0.993627693091245660, 0.993294855785010760, 0.992961981958163210, - 0.992629071622942340, - 0.992296124791587690, 0.991963141476341460, 0.991630121689446090, - 0.991297065443145440, - 0.990963972749685840, 0.990630843621313260, 0.990297678070276800, - 0.989964476108825210, - 0.989631237749210020, 0.989297963003683330, 0.988964651884498000, - 0.988631304403909890, - 0.988297920574174430, 0.987964500407549910, 0.987631043916294970, - 0.987297551112669370, - 0.986964022008935520, 0.986630456617355380, 0.986296854950194260, - 0.985963217019717120, - 0.985629542838190490, 0.985295832417883540, 0.984962085771065030, - 0.984628302910006580, - 0.984294483846980150, 0.983960628594258810, 0.983626737164118190, - 0.983292809568833910, - 0.982958845820684270, 0.982624845931947320, 0.982290809914904140, - 0.981956737781835790, - 0.981622629545024770, 0.981288485216756160, 0.980954304809314670, - 0.980620088334987930, - 0.980285835806063770, 0.979951547234831130, 0.979617222633581860, - 0.979282862014607240, - 0.978948465390201530, 0.978614032772659240, 0.978279564174275860, - 0.977945059607349900, - 0.977610519084179290, 0.977275942617064740, 0.976941330218307540, - 0.976606681900209830, - 0.976271997675076550, 0.975937277555212310, 0.975602521552924600, - 0.975267729680520560, - 0.974932901950310350, 0.974598038374604350, 0.974263138965714040, - 0.973928203735953460, - 0.973593232697636530, 0.973258225863079970, 0.972923183244600480, - 0.972588104854516410, - 0.972252990705148370, 0.971917840808816710, 0.971582655177844700, - 0.971247433824555920, - 0.970912176761274950, 0.970576884000329040, 0.970241555554045230, - 0.969906191434753320, - 0.969570791654783330, 0.969235356226466500, 0.968899885162136650, - 0.968564378474127350, - 0.968228836174775060, 0.967893258276415700, 0.967557644791388500, - 0.967221995732032490, - 0.966886311110688230, 0.966550590939698640, 0.966214835231406500, - 0.965879043998157160, - 0.965543217252296420, 0.965207355006171270, 0.964871457272131190, - 0.964535524062525410, - 0.964199555389706030, 0.963863551266025300, 0.963527511703836660, - 0.963191436715496120, - 0.962855326313359350, 0.962519180509785130, 0.962182999317132030, - 0.961846782747760140, - 0.961510530814032040, 0.961174243528309820, 0.960837920902958720, - 0.960501562950343390, - 0.960165169682831830, 0.959828741112791590, 0.959492277252591900, - 0.959155778114604400, - 0.958819243711200310, 0.958482674054753960, 0.958146069157639560, - 0.957809429032232760, - 0.957472753690911670, 0.957136043146054050, 0.956799297410040440, - 0.956462516495251940, - 0.956125700414070300, 0.955788849178880300, 0.955451962802066120, - 0.955115041296014880, - 0.954778084673113870, 0.954441092945751630, 0.954104066126319150, - 0.953767004227207060, - 0.953429907260809120, 0.953092775239518630, 0.952755608175731570, - 0.952418406081844360, - 0.952081168970254520, 0.951743896853362140, 0.951406589743566950, - 0.951069247653271500, - 0.950731870594878510, 0.950394458580791970, 0.950057011623418380, - 0.949719529735163940, - 0.949382012928437600, 0.949044461215648560, 0.948706874609207220, - 0.948369253121526420, - 0.948031596765018910, 0.947693905552099870, 0.947356179495185020, - 0.947018418606691230, - 0.946680622899037650, 0.946342792384643360, 0.946004927075930090, - 0.945667026985319680, - 0.945329092125236190, 0.944991122508104350, 0.944653118146349890, - 0.944315079052401090, - 0.943977005238685770, 0.943638896717634900, 0.943300753501679190, - 0.942962575603250920, - 0.942624363034784580, 0.942286115808714690, 0.941947833937478270, - 0.941609517433512730, - 0.941271166309256450, 0.940932780577150460, 0.940594360249635500, - 0.940255905339155150, - 0.939917415858152920, 0.939578891819073720, 0.939240333234364950, - 0.938901740116473540, - 0.938563112477849630, 0.938224450330942590, 0.937885753688204820, - 0.937547022562088990, - 0.937208256965048840, 0.936869456909540490, 0.936530622408019990, - 0.936191753472946030, - 0.935852850116777430, 0.935513912351974450, 0.935174940190999560, - 0.934835933646314900, - 0.934496892730385720, 0.934157817455677160, 0.933818707834655590, - 0.933479563879790030, - 0.933140385603548840, 0.932801173018403480, 0.932461926136825660, - 0.932122644971287830, - 0.931783329534265240, 0.931443979838232900, 0.931104595895668410, - 0.930765177719049210, - 0.930425725320855430, 0.930086238713567440, 0.929746717909666790, - 0.929407162921637610, - 0.929067573761963250, 0.928727950443130500, 0.928388292977625930, - 0.928048601377937210, - 0.927708875656554800, 0.927369115825968480, 0.927029321898671270, - 0.926689493887155820, - 0.926349631803916270, 0.926009735661449170, 0.925669805472250860, - 0.925329841248820340, - 0.924989843003656610, 0.924649810749260110, 0.924309744498133750, - 0.923969644262779830, - 0.923629510055703820, 0.923289341889410480, 0.922949139776407800, - 0.922608903729203570, - 0.922268633760306990, 0.921928329882229390, 0.921587992107482210, - 0.921247620448579440, - 0.920907214918035070, 0.920566775528364410, 0.920226302292085460, - 0.919885795221715540, - 0.919545254329774850, 0.919204679628783720, 0.918864071131263780, - 0.918523428849739030, - 0.918182752796733110, 0.917842042984772340, 0.917501299426383480, - 0.917160522134094160, - 0.916819711120434700, 0.916478866397934850, 0.916137987979127270, - 0.915797075876544350, - 0.915456130102721200, 0.915115150670193110, 0.914774137591496510, - 0.914433090879170130, - 0.914092010545752620, 0.913750896603785280, 0.913409749065809520, - 0.913068567944367970, - 0.912727353252005710, 0.912386105001267270, 0.912044823204700370, - 0.911703507874852440, - 0.911362159024272310, 0.911020776665511290, 0.910679360811120000, - 0.910337911473652390, - 0.909996428665661990, 0.909654912399703860, 0.909313362688335290, - 0.908971779544113350, - 0.908630162979597760, 0.908288513007348140, 0.907946829639926790, - 0.907605112889895870, - 0.907263362769819000, 0.906921579292262250, 0.906579762469791110, - 0.906237912314974080, - 0.905896028840379560, 0.905554112058577170, 0.905212161982139160, - 0.904870178623637170, - 0.904528161995645670, 0.904186112110739510, 0.903844028981494190, - 0.903501912620488070, - 0.903159763040298880, 0.902817580253507450, 0.902475364272694370, - 0.902133115110441470, - 0.901790832779333250, 0.901448517291953520, 0.901106168660889110, - 0.900763786898726380, - 0.900421372018054500, 0.900078924031462610, 0.899736442951541320, - 0.899393928790883420, - 0.899051381562081310, 0.898708801277730340, 0.898366187950425780, - 0.898023541592764210, - 0.897680862217344440, 0.897338149836764960, 0.896995404463627350, - 0.896652626110532870, - 0.896309814790084090, 0.895966970514885940, 0.895624093297543110, - 0.895281183150662960, - 0.894938240086852970, 0.894595264118721810, 0.894252255258880410, - 0.893909213519939460, - 0.893566138914512420, 0.893223031455212530, 0.892879891154655380, - 0.892536718025457090, - 0.892193512080234670, 0.891850273331607600, 0.891507001792195000, - 0.891163697474618880, - 0.890820360391500920, 0.890476990555464480, 0.890133587979135000, - 0.889790152675137610, - 0.889446684656100330, 0.889103183934650930, 0.888759650523418650, - 0.888416084435035060, - 0.888072485682131150, 0.887728854277341050, 0.887385190233298650, - 0.887041493562639060, - 0.886697764277999840, 0.886354002392018110, 0.886010207917333760, - 0.885666380866586560, - 0.885322521252418610, 0.884978629087472270, 0.884634704384391180, - 0.884290747155821230, - 0.883946757414407980, 0.883602735172799640, 0.883258680443644530, - 0.882914593239592320, - 0.882570473573294660, 0.882226321457403320, 0.881882136904572400, - 0.881537919927456340, - 0.881193670538710450, 0.880849388750992610, 0.880505074576960370, - 0.880160728029273920, - 0.879816349120593590, 0.879471937863580690, 0.879127494270899090, - 0.878783018355212220, - 0.878438510129186170, 0.878093969605486800, 0.877749396796782770, - 0.877404791715742370, - 0.877060154375035710, 0.876715484787334630, 0.876370782965310900, - 0.876026048921639160, - 0.875681282668993700, 0.875336484220050390, 0.874991653587487090, - 0.874646790783981660, - 0.874301895822214290, 0.873956968714865500, 0.873612009474616810, - 0.873267018114152300, - 0.872921994646155390, 0.872576939083312460, 0.872231851438309840, - 0.871886731723835020, - 0.871541579952577750, 0.871196396137227660, 0.870851180290476810, - 0.870505932425017060, - 0.870160652553543020, 0.869815340688749220, 0.869469996843331370, - 0.869124621029987670, - 0.868779213261415610, 0.868433773550315810, 0.868088301909388680, - 0.867742798351335720, - 0.867397262888861100, 0.867051695534668210, 0.866706096301463340, - 0.866360465201952980, - 0.866014802248844420, 0.865669107454847490, 0.865323380832671800, - 0.864977622395029290, - 0.864631832154632240, 0.864286010124194040, 0.863940156316430170, - 0.863594270744056040, - 0.863248353419789670, 0.862902404356348570, 0.862556423566453230, - 0.862210411062823810, - 0.861864366858181910, 0.861518290965251340, 0.861172183396755500, - 0.860826044165420630, - 0.860479873283972910, 0.860133670765139580, 0.859787436621650360, - 0.859441170866234390, - 0.859094873511623840, 0.858748544570550610, 0.858402184055747750, - 0.858055791979950740, - 0.857709368355894840, 0.857362913196317630, 0.857016426513956930, - 0.856669908321551650, - 0.856323358631843170, 0.855976777457572280, 0.855630164811482460, - 0.855283520706317080, - 0.854936845154821930, 0.854590138169742830, 0.854243399763827020, - 0.853896629949823630, - 0.853549828740481690, 0.853202996148552880, 0.852856132186788910, - 0.852509236867942440, - 0.852162310204768740, 0.851815352210022470, 0.851468362896461110, - 0.851121342276842110, - 0.850774290363923820, 0.850427207170467380, 0.850080092709233130, - 0.849732946992984290, - 0.849385770034483680, 0.849038561846496730, 0.848691322441788910, - 0.848344051833126780, - 0.847996750033279350, 0.847649417055015060, 0.847302052911105160, - 0.846954657614320980, - 0.846607231177434640, 0.846259773613221020, 0.845912284934454140, - 0.845564765153910990, - 0.845217214284368690, 0.844869632338605130, 0.844522019329400630, - 0.844174375269535320, - 0.843826700171791620, 0.843478994048952440, 0.843131256913801420, - 0.842783488779124570, - 0.842435689657707650, 0.842087859562339000, 0.841739998505806610, - 0.841392106500900900, - 0.841044183560412770, 0.840696229697133760, 0.840348244923857960, - 0.840000229253379030, - 0.839652182698493290, 0.839304105271996950, 0.838955996986687550, - 0.838607857855364740, - 0.838259687890827830, 0.837911487105878820, 0.837563255513319780, - 0.837214993125953600, - 0.836866699956585690, 0.836518376018021260, 0.836170021323067610, - 0.835821635884532730, - 0.835473219715225040, 0.835124772827955830, 0.834776295235535540, - 0.834427786950777460, - 0.834079247986494690, 0.833730678355502630, 0.833382078070616820, - 0.833033447144653880, - 0.832684785590432690, 0.832336093420771970, 0.831987370648492710, - 0.831638617286416190, - 0.831289833347364620, 0.830941018844162600, 0.830592173789634240, - 0.830243298196606360, - 0.829894392077905720, 0.829545455446360270, 0.829196488314800080, - 0.828847490696055010, - 0.828498462602957340, 0.828149404048339590, 0.827800315045035150, - 0.827451195605879990, - 0.827102045743709160, 0.826752865471360950, 0.826403654801672770, - 0.826054413747485010, - 0.825705142321637720, 0.825355840536972420, 0.825006508406332490, - 0.824657145942561230, - 0.824307753158504460, 0.823958330067008030, 0.823608876680918760, - 0.823259393013085820, - 0.822909879076357930, 0.822560334883586490, 0.822210760447622980, - 0.821861155781319800, - 0.821511520897531660, 0.821161855809112830, 0.820812160528920360, - 0.820462435069811090, - 0.820112679444643060, 0.819762893666276530, 0.819413077747571440, - 0.819063231701390170, - 0.818713355540594880, 0.818363449278050270, 0.818013512926620940, - 0.817663546499172720, - 0.817313550008573640, 0.816963523467691410, 0.816613466889396070, - 0.816263380286557980, - 0.815913263672048310, 0.815563117058740630, 0.815212940459508210, - 0.814862733887226740, - 0.814512497354771830, 0.814162230875020380, 0.813811934460851430, - 0.813461608125143560, - 0.813111251880778150, 0.812760865740636440, 0.812410449717600570, - 0.812060003824555230, - 0.811709528074384460, 0.811359022479975040, 0.811008487054213360, - 0.810657921809988410, - 0.810307326760189020, 0.809956701917705080, 0.809606047295428950, - 0.809255362906252440, - 0.808904648763069890, 0.808553904878775760, 0.808203131266265420, - 0.807852327938436750, - 0.807501494908186900, 0.807150632188415760, 0.806799739792023240, - 0.806448817731910130, - 0.806097866020979660, 0.805746884672134620, 0.805395873698280360, - 0.805044833112322000, - 0.804693762927166100, 0.804342663155721230, 0.803991533810895500, - 0.803640374905599810, - 0.803289186452744390, 0.802937968465242240, 0.802586720956006250, - 0.802235443937950320, - 0.801884137423990890, 0.801532801427043530, 0.801181435960026780, - 0.800830041035858750, - 0.800478616667459010, 0.800127162867749210, 0.799775679649650460, - 0.799424167026086540, - 0.799072625009981330, 0.798721053614259490, 0.798369452851848020, - 0.798017822735673680, - 0.797666163278665570, 0.797314474493752810, 0.796962756393865600, - 0.796611008991936490, - 0.796259232300897350, 0.795907426333682830, 0.795555591103226930, - 0.795203726622466520, - 0.794851832904338360, 0.794499909961779990, 0.794147957807731400, - 0.793795976455132220, - 0.793443965916924570, 0.793091926206050400, 0.792739857335452710, - 0.792387759318077150, - 0.792035632166868230, 0.791683475894773720, 0.791331290514740830, - 0.790979076039718180, - 0.790626832482656310, 0.790274559856505520, 0.789922258174218570, - 0.789569927448748320, - 0.789217567693048520, 0.788865178920075130, 0.788512761142783790, - 0.788160314374132590, - 0.787807838627079260, 0.787455333914584220, 0.787102800249607550, - 0.786750237645110430, - 0.786397646114056490, 0.786045025669408700, 0.785692376324132690, - 0.785339698091194080, - 0.784986990983559170, 0.784634255014197040, 0.784281490196075850, - 0.783928696542166680, - 0.783575874065440270, 0.783223022778868350, 0.782870142695425320, - 0.782517233828084580, - 0.782164296189822530, 0.781811329793615120, 0.781458334652439630, - 0.781105310779275470, - 0.780752258187101480, 0.780399176888899150, 0.780046066897649550, - 0.779692928226336290, - 0.779339760887942880, 0.778986564895453810, 0.778633340261856040, - 0.778280087000135730, - 0.777926805123281830, 0.777573494644283050, 0.777220155576129220, - 0.776866787931812410, - 0.776513391724324210, 0.776159966966658680, 0.775806513671809860, - 0.775453031852772920, - 0.775099521522545020, 0.774745982694123090, 0.774392415380506400, - 0.774038819594694230, - 0.773685195349686940, 0.773331542658487140, 0.772977861534096640, - 0.772624151989520280, - 0.772270414037761980, 0.771916647691828660, 0.771562852964726710, - 0.771209029869463940, - 0.770855178419050050, 0.770501298626494410, 0.770147390504808960, - 0.769793454067005500, - 0.769439489326096850, 0.769085496295098040, 0.768731474987023660, - 0.768377425414890850, - 0.768023347591716640, 0.767669241530518850, 0.767315107244318060, - 0.766960944746133740, - 0.766606754048988260, 0.766252535165903970, 0.765898288109903900, - 0.765544012894013530, - 0.765189709531257760, 0.764835378034664170, 0.764481018417259680, - 0.764126630692073870, - 0.763772214872136200, 0.763417770970477140, 0.763063299000129260, - 0.762708798974124800, - 0.762354270905498450, 0.761999714807284790, 0.761645130692519490, - 0.761290518574240350, - 0.760935878465484720, 0.760581210379292380, 0.760226514328703140, - 0.759871790326757670, - 0.759517038386499090, 0.759162258520969860, 0.758807450743214760, - 0.758452615066278920, - 0.758097751503208020, 0.757742860067050380, 0.757387940770853360, - 0.757032993627667290, - 0.756678018650541630, 0.756323015852528700, 0.755967985246680520, - 0.755612926846050080, - 0.755257840663692730, 0.754902726712663120, 0.754547585006018600, - 0.754192415556816380, - 0.753837218378114460, 0.753481993482973400, 0.753126740884452970, - 0.752771460595615500, - 0.752416152629523330, 0.752060816999239660, 0.751705453717829930, - 0.751350062798359140, - 0.750994644253894730, 0.750639198097504010, 0.750283724342255320, - 0.749928223001219310, - 0.749572694087465850, 0.749217137614067500, 0.748861553594096340, - 0.748505942040627040, - 0.748150302966733790, 0.747794636385492150, 0.747438942309979870, - 0.747083220753273820, - 0.746727471728453770, 0.746371695248599140, 0.746015891326790470, - 0.745660059976110400, - 0.745304201209641030, 0.744948315040467210, 0.744592401481673270, - 0.744236460546344850, - 0.743880492247569580, 0.743524496598434670, 0.743168473612029980, - 0.742812423301444810, - 0.742456345679769810, 0.742100240760097840, 0.741744108555520860, - 0.741387949079133860, - 0.741031762344030790, 0.740675548363308620, 0.740319307150063780, - 0.739963038717393880, - 0.739606743078398690, 0.739250420246177380, 0.738894070233831800, - 0.738537693054463370, - 0.738181288721174830, 0.737824857247070810, 0.737468398645255490, - 0.737111912928835710, - 0.736755400110918000, 0.736398860204609870, 0.736042293223021060, - 0.735685699179260850, - 0.735329078086440880, 0.734972429957672760, 0.734615754806068890, - 0.734259052644744230, - 0.733902323486812610, 0.733545567345390890, 0.733188784233595240, - 0.732831974164544150, - 0.732475137151356370, 0.732118273207151170, 0.731761382345050280, - 0.731404464578174760, - 0.731047519919648340, 0.730690548382594280, 0.730333549980137110, - 0.729976524725403530, - 0.729619472631519270, 0.729262393711613280, 0.728905287978813600, - 0.728548155446249730, - 0.728190996127053180, 0.727833810034354990, 0.727476597181288540, - 0.727119357580987220, - 0.726762091246585200, 0.726404798191218950, 0.726047478428024420, - 0.725690131970139980, - 0.725332758830703360, 0.724975359022855150, 0.724617932559735390, - 0.724260479454485130, - 0.723902999720247850, 0.723545493370166160, 0.723187960417385530, - 0.722830400875050790, - 0.722472814756308090, 0.722115202074305680, 0.721757562842191060, - 0.721399897073114470, - 0.721042204780225960, 0.720684485976676230, 0.720326740675618530, - 0.719968968890205230, - 0.719611170633591480, 0.719253345918932090, 0.718895494759382860, - 0.718537617168101610, - 0.718179713158245800, 0.717821782742975370, 0.717463825935449550, - 0.717105842748830160, - 0.716747833196278770, 0.716389797290958090, 0.716031735046032900, - 0.715673646474667140, - 0.715315531590027700, 0.714957390405280950, 0.714599222933594240, - 0.714241029188137260, - 0.713882809182079030, 0.713524562928591010, 0.713166290440844450, - 0.712807991732011590, - 0.712449666815266890, 0.712091315703784260, 0.711732938410739810, - 0.711374534949309800, - 0.711016105332671340, 0.710657649574003460, 0.710299167686484930, - 0.709940659683296890, - 0.709582125577619790, 0.709223565382636760, 0.708864979111530680, - 0.708506366777485130, - 0.708147728393686340, 0.707789063973319310, 0.707430373529572170, - 0.707071657075632460, - 0.706712914624688770, 0.706354146189931750, 0.705995351784551530, - 0.705636531421740880, - 0.705277685114692020, 0.704918812876598410, 0.704559914720655490, - 0.704200990660058150, - 0.703842040708003820, 0.703483064877689630, 0.703124063182313690, - 0.702765035635076310, - 0.702405982249177160, 0.702046903037818250, 0.701687798014201110, - 0.701328667191529980, - 0.700969510583008600, 0.700610328201841660, 0.700251120061236020, - 0.699891886174398130, - 0.699532626554536630, 0.699173341214860190, 0.698814030168578240, - 0.698454693428902320, - 0.698095331009043640, 0.697735942922215520, 0.697376529181631400, - 0.697017089800505250, - 0.696657624792053730, 0.696298134169492380, 0.695938617946039510, - 0.695579076134912990, - 0.695219508749331800, 0.694859915802517050, 0.694500297307689140, - 0.694140653278070950, - 0.693780983726884790, 0.693421288667355530, 0.693061568112707690, - 0.692701822076166820, - 0.692342050570960430, 0.691982253610315510, 0.691622431207461700, - 0.691262583375628180, - 0.690902710128045050, 0.690542811477944610, 0.690182887438558710, - 0.689822938023121220, - 0.689462963244866330, 0.689102963117028790, 0.688742937652845550, - 0.688382886865552930, - 0.688022810768389670, 0.687662709374594510, 0.687302582697406850, - 0.686942430750068330, - 0.686582253545819920, 0.686222051097905130, 0.685861823419566700, - 0.685501570524050140, - 0.685141292424600310, 0.684780989134463280, 0.684420660666887120, - 0.684060307035119440, - 0.683699928252410110, 0.683339524332008840, 0.682979095287166160, - 0.682618641131135020, - 0.682258161877167370, 0.681897657538517720, 0.681537128128440470, - 0.681176573660190910, - 0.680815994147026320, 0.680455389602203310, 0.680094760038981280, - 0.679734105470619080, - 0.679373425910376310, 0.679012721371515250, 0.678651991867297080, - 0.678291237410985510, - 0.677930458015843620, 0.677569653695137220, 0.677208824462131490, - 0.676847970330092700, - 0.676487091312289350, 0.676126187421989040, 0.675765258672461950, - 0.675404305076978020, - 0.675043326648808170, 0.674682323401225250, 0.674321295347501510, - 0.673960242500911690, - 0.673599164874730370, 0.673238062482232950, 0.672876935336696900, - 0.672515783451398950, - 0.672154606839618470, 0.671793405514634180, 0.671432179489727110, - 0.671070928778178090, - 0.670709653393269050, 0.670348353348283690, 0.669987028656505170, - 0.669625679331219300, - 0.669264305385711360, 0.668902906833267590, 0.668541483687176590, - 0.668180035960725840, - 0.667818563667205600, 0.667457066819905800, 0.667095545432117240, - 0.666733999517132860, - 0.666372429088244790, 0.666010834158747840, 0.665649214741936390, - 0.665287570851105680, - 0.664925902499553190, 0.664564209700575500, 0.664202492467472090, - 0.663840750813541210, - 0.663478984752084110, 0.663117194296401260, 0.662755379459794350, - 0.662393540255567070, - 0.662031676697022450, 0.661669788797465960, 0.661307876570202740, - 0.660945940028538900, - 0.660583979185782600, 0.660221994055241400, 0.659859984650225110, - 0.659497950984043510, - 0.659135893070007080, 0.658773810921428500, 0.658411704551619570, - 0.658049573973894850, - 0.657687419201568260, 0.657325240247955020, 0.656963037126372160, - 0.656600809850135910, - 0.656238558432565400, 0.655876282886978410, 0.655513983226695960, - 0.655151659465038060, - 0.654789311615326050, 0.654426939690883280, 0.654064543705032310, - 0.653702123671098150, - 0.653339679602405470, 0.652977211512280050, 0.652614719414049580, - 0.652252203321041060, - 0.651889663246583930, 0.651527099204007310, 0.651164511206641320, - 0.650801899267818060, - 0.650439263400868990, 0.650076603619127890, 0.649713919935928420, - 0.649351212364604910, - 0.648988480918494040, 0.648625725610931460, 0.648262946455255510, - 0.647900143464803730, - 0.647537316652916140, 0.647174466032932490, 0.646811591618193350, - 0.646448693422041360, - 0.646085771457818310, 0.645722825738868860, 0.645359856278536980, - 0.644996863090167570, - 0.644633846187107620, 0.644270805582703550, 0.643907741290304040, - 0.643544653323257610, - 0.643181541694913480, 0.642818406418622980, 0.642455247507736860, - 0.642092064975608220, - 0.641728858835589830, 0.641365629101035340, 0.641002375785300500, - 0.640639098901740200, - 0.640275798463712080, 0.639912474484572560, 0.639549126977681070, - 0.639185755956396480, - 0.638822361434078330, 0.638458943424088490, 0.638095501939787920, - 0.637732036994540290, - 0.637368548601708660, 0.637005036774657030, 0.636641501526751590, - 0.636277942871357530, - 0.635914360821842830, 0.635550755391574910, 0.635187126593922070, - 0.634823474442254840, - 0.634459798949942640, 0.634096100130357660, 0.633732377996871770, - 0.633368632562857470, - 0.633004863841689520, 0.632641071846741790, 0.632277256591390780, - 0.631913418089012020, - 0.631549556352983710, 0.631185671396683470, 0.630821763233490040, - 0.630457831876783950, - 0.630093877339945260, 0.629729899636356280, 0.629365898779399080, - 0.629001874782456500, - 0.628637827658913300, 0.628273757422153860, 0.627909664085564810, - 0.627545547662532230, - 0.627181408166443410, 0.626817245610687520, 0.626453060008652860, - 0.626088851373730380, - 0.625724619719310480, 0.625360365058784670, 0.624996087405546350, - 0.624631786772988030, - 0.624267463174504880, 0.623903116623491180, 0.623538747133343780, - 0.623174354717459190, - 0.622809939389234460, 0.622445501162069090, 0.622081040049361490, - 0.621716556064512820, - 0.621352049220923570, 0.620987519531995270, 0.620622967011131400, - 0.620258391671734690, - 0.619893793527210410, 0.619529172590963410, 0.619164528876399280, - 0.618799862396925750, - 0.618435173165949760, 0.618070461196880800, 0.617705726503127720, - 0.617340969098100430, - 0.616976188995210780, 0.616611386207870040, 0.616246560749491690, - 0.615881712633488340, - 0.615516841873275490, 0.615151948482267840, 0.614787032473881110, - 0.614422093861533010, - 0.614057132658640590, 0.613692148878623000, 0.613327142534899510, - 0.612962113640889710, - 0.612597062210015750, 0.612231988255698470, 0.611866891791361560, - 0.611501772830428060, - 0.611136631386322020, 0.610771467472469460, 0.610406281102295440, - 0.610041072289227990, - 0.609675841046694030, 0.609310587388121830, 0.608945311326941520, - 0.608580012876582370, - 0.608214692050476290, 0.607849348862054220, 0.607483983324749510, - 0.607118595451995420, - 0.606753185257225550, 0.606387752753876020, 0.606022297955381760, - 0.605656820875180360, - 0.605291321526709060, 0.604925799923405670, 0.604560256078710220, - 0.604194690006061960, - 0.603829101718902580, 0.603463491230673220, 0.603097858554815790, - 0.602732203704774650, - 0.602366526693992930, 0.602000827535916330, 0.601635106243990190, - 0.601269362831660550, - 0.600903597312375640, 0.600537809699582810, 0.600172000006731770, - 0.599806168247271620, - 0.599440314434653620, 0.599074438582328780, 0.598708540703749010, - 0.598342620812368000, - 0.597976678921638860, 0.597610715045016950, 0.597244729195957500, - 0.596878721387916090, - 0.596512691634350830, 0.596146639948718640, 0.595780566344478960, - 0.595414470835091030, - 0.595048353434014630, 0.594682214154711790, 0.594316053010643270, - 0.593949870015273000, - 0.593583665182063740, 0.593217438524479500, 0.592851190055986300, - 0.592484919790049140, - 0.592118627740135460, 0.591752313919712170, 0.591385978342248260, - 0.591019621021212420, - 0.590653241970074180, 0.590286841202305120, 0.589920418731375800, - 0.589553974570759530, - 0.589187508733928890, 0.588821021234357310, 0.588454512085520460, - 0.588087981300892900, - 0.587721428893951850, 0.587354854878173850, 0.586988259267036350, - 0.586621642074019120, - 0.586255003312600500, 0.585888342996261690, 0.585521661138483250, - 0.585154957752746730, - 0.584788232852535560, 0.584421486451332410, 0.584054718562622140, - 0.583687929199888990, - 0.583321118376619710, 0.582954286106300290, 0.582587432402417840, - 0.582220557278461340, - 0.581853660747918780, 0.581486742824280810, 0.581119803521037650, - 0.580752842851679940, - 0.580385860829700780, 0.580018857468592270, 0.579651832781848730, - 0.579284786782964360, - 0.578917719485433800, 0.578550630902754050, 0.578183521048421080, - 0.577816389935933090, - 0.577449237578788300, 0.577082063990485340, 0.576714869184524860, - 0.576347653174406840, - 0.575980415973633590, 0.575613157595706530, 0.575245878054129520, - 0.574878577362406000, - 0.574511255534040030, 0.574143912582537940, 0.573776548521405030, - 0.573409163364148930, - 0.573041757124277180, 0.572674329815297640, 0.572306881450720390, - 0.571939412044054740, - 0.571571921608812320, 0.571204410158504090, 0.570836877706642270, - 0.570469324266740570, - 0.570101749852312100, 0.569734154476872480, 0.569366538153936560, - 0.568998900897020210, - 0.568631242719641270, 0.568263563635316600, 0.567895863657565500, - 0.567528142799906490, - 0.567160401075860410, 0.566792638498947680, 0.566424855082689470, - 0.566057050840608870, - 0.565689225786228160, 0.565321379933072190, 0.564953513294665140, - 0.564585625884531870, - 0.564217717716199550, 0.563849788803194140, 0.563481839159044150, - 0.563113868797277870, - 0.562745877731423820, 0.562377865975012940, 0.562009833541575080, - 0.561641780444642640, - 0.561273706697747450, 0.560905612314422150, 0.560537497308201240, - 0.560169361692618440, - 0.559801205481210040, 0.559433028687510990, 0.559064831325059240, - 0.558696613407391630, - 0.558328374948046320, 0.557960115960563050, 0.557591836458480870, - 0.557223536455341280, - 0.556855215964685120, 0.556486875000054000, 0.556118513574991650, - 0.555750131703040880, - 0.555381729397746880, 0.555013306672654360, 0.554644863541308600, - 0.554276400017257090, - 0.553907916114046440, 0.553539411845225590, 0.553170887224342820, - 0.552802342264947400, - 0.552433776980590490, 0.552065191384822350, 0.551696585491195710, - 0.551327959313262280, - 0.550959312864576220, 0.550590646158691240, 0.550221959209161620, - 0.549853252029543830, - 0.549484524633393480, 0.549115777034268170, 0.548747009245725500, - 0.548378221281323520, - 0.548009413154622370, 0.547640584879181100, 0.547271736468561530, - 0.546902867936324590, - 0.546533979296032200, 0.546165070561248080, 0.545796141745535150, - 0.545427192862458780, - 0.545058223925583670, 0.544689234948475210, 0.544320225944701200, - 0.543951196927828010, - 0.543582147911424560, 0.543213078909059120, 0.542843989934301940, - 0.542474881000723050, - 0.542105752121893050, 0.541736603311384620, 0.541367434582769480, - 0.540998245949621760, - 0.540629037425515050, 0.540259809024023600, 0.539890560758723770, - 0.539521292643190930, - 0.539152004691002770, 0.538782696915736770, 0.538413369330970610, - 0.538044021950284450, - 0.537674654787257180, 0.537305267855470390, 0.536935861168504670, - 0.536566434739941920, - 0.536196988583365510, 0.535827522712358230, 0.535458037140505110, - 0.535088531881390050, - 0.534719006948599860, 0.534349462355720230, 0.533979898116337950, - 0.533610314244041710, - 0.533240710752419080, 0.532871087655060300, 0.532501444965554960, - 0.532131782697493170, - 0.531762100864467290, 0.531392399480068670, 0.531022678557890980, - 0.530652938111527360, - 0.530283178154571710, 0.529913398700619820, 0.529543599763266700, - 0.529173781356109600, - 0.528803943492745180, 0.528434086186771010, 0.528064209451786560, - 0.527694313301390160, - 0.527324397749182720, 0.526954462808764120, 0.526584508493736840, - 0.526214534817702310, - 0.525844541794263210, 0.525474529437023890, 0.525104497759587900, - 0.524734446775560910, - 0.524364376498548390, 0.523994286942156220, 0.523624178119992400, - 0.523254050045663940, - 0.522883902732780290, 0.522513736194950230, 0.522143550445783310, - 0.521773345498891090, - 0.521403121367884030, 0.521032878066375100, 0.520662615607976660, - 0.520292334006301820, - 0.519922033274965560, 0.519551713427582000, 0.519181374477767470, - 0.518811016439137520, - 0.518440639325310040, 0.518070243149902240, 0.517699827926532130, - 0.517329393668819580, - 0.516958940390383700, 0.516588468104845820, 0.516217976825826600, - 0.515847466566947580, - 0.515476937341832310, 0.515106389164103120, 0.514735822047384990, - 0.514365236005302040, - 0.513994631051479240, 0.513624007199543600, 0.513253364463121090, - 0.512882702855839920, - 0.512512022391327980, 0.512141323083213470, 0.511770604945127050, - 0.511399867990697920, - 0.511029112233557960, 0.510658337687338040, 0.510287544365671140, - 0.509916732282189920, - 0.509545901450527690, 0.509175051884319660, 0.508804183597200140, - 0.508433296602805670, - 0.508062390914772230, 0.507691466546736580, 0.507320523512337470, - 0.506949561825212450, - 0.506578581499001590, 0.506207582547344550, 0.505836564983881190, - 0.505465528822253710, - 0.505094474076103310, 0.504723400759073290, 0.504352308884806750, - 0.503981198466947000, - 0.503610069519139780, 0.503238922055029400, 0.502867756088262840, - 0.502496571632486070, - 0.502125368701347050, 0.501754147308493770, 0.501382907467574190, - 0.501011649192238950, - 0.500640372496137020, 0.500269077392920150, 0.499897763896239410, - 0.499526432019746450, - 0.499155081777094940, 0.498783713181937540, 0.498412326247929250, - 0.498040920988724490, - 0.497669497417978280, 0.497298055549347750, 0.496926595396488870, - 0.496555116973059980, - 0.496183620292718900, 0.495812105369124070, 0.495440572215935850, - 0.495069020846813650, - 0.494697451275419140, 0.494325863515413130, 0.493954257580458580, - 0.493582633484217940, - 0.493210991240354450, 0.492839330862533120, 0.492467652364417970, - 0.492095955759675460, - 0.491724241061971320, 0.491352508284972070, 0.490980757442346090, - 0.490608988547760690, - 0.490237201614885710, 0.489865396657390210, 0.489493573688943970, - 0.489121732723218740, - 0.488749873773885120, 0.488377996854616250, 0.488006101979084450, - 0.487634189160962910, - 0.487262258413926560, 0.486890309751649490, 0.486518343187807900, - 0.486146358736077200, - 0.485774356410135000, 0.485402336223658360, 0.485030298190324950, - 0.484658242323814380, - 0.484286168637805270, 0.483914077145978560, 0.483541967862014480, - 0.483169840799594130, - 0.482797695972400300, 0.482425533394114920, 0.482053353078422120, - 0.481681155039005550, - 0.481308939289549380, 0.480936705843739820, 0.480564454715261990, - 0.480192185917803270, - 0.479819899465050160, 0.479447595370691370, 0.479075273648415010, - 0.478702934311909910, - 0.478330577374866780, 0.477958202850975230, 0.477585810753927250, - 0.477213401097414220, - 0.476840973895128200, 0.476468529160763100, 0.476096066908011760, - 0.475723587150569390, - 0.475351089902130650, 0.474978575176390750, 0.474606042987046840, - 0.474233493347795020, - 0.473860926272333670, 0.473488341774360670, 0.473115739867574380, - 0.472743120565675250, - 0.472370483882362520, 0.471997829831337810, 0.471625158426301700, - 0.471252469680957190, - 0.470879763609006460, 0.470507040224152460, 0.470134299540099940, - 0.469761541570552780, - 0.469388766329217000, 0.469015973829798090, 0.468643164086002100, - 0.468270337111537040, - 0.467897492920109850, 0.467524631525429830, 0.467151752941205530, - 0.466778857181146260, - 0.466405944258963200, 0.466033014188366350, 0.465660066983068220, - 0.465287102656780530, - 0.464914121223215740, 0.464541122696088100, 0.464168107089110940, - 0.463795074415999760, - 0.463422024690469060, 0.463048957926235630, 0.462675874137015720, - 0.462302773336526080, - 0.461929655538485470, 0.461556520756611410, 0.461183369004623920, - 0.460810200296242310, - 0.460437014645186440, 0.460063812065178160, 0.459690592569938270, - 0.459317356173189750, - 0.458944102888655060, 0.458570832730057170, 0.458197545711121090, - 0.457824241845570630, - 0.457450921147131930, 0.457077583629530550, 0.456704229306492570, - 0.456330858191746010, - 0.455957470299017840, 0.455584065642037350, 0.455210644234532610, - 0.454837206090234200, - 0.454463751222871910, 0.454090279646176210, 0.453716791373879380, - 0.453343286419712720, - 0.452969764797409750, 0.452596226520703360, 0.452222671603327130, - 0.451849100059016350, - 0.451475511901505420, 0.451101907144530910, 0.450728285801828830, - 0.450354647887135640, - 0.449980993414189900, 0.449607322396728900, 0.449233634848492320, - 0.448859930783219170, - 0.448486210214649020, 0.448112473156523420, 0.447738719622582710, - 0.447364949626569590, - 0.446991163182225700, 0.446617360303294910, 0.446243541003520480, - 0.445869705296646270, - 0.445495853196417930, 0.445121984716580210, 0.444748099870879880, - 0.444374198673063330, - 0.444000281136877280, 0.443626347276070590, 0.443252397104390790, - 0.442878430635587910, - 0.442504447883411090, 0.442130448861610240, 0.441756433583937120, - 0.441382402064142250, - 0.441008354315978680, 0.440634290353198510, 0.440260210189554690, - 0.439886113838801880, - 0.439512001314693700, 0.439137872630986080, 0.438763727801433690, - 0.438389566839793740, - 0.438015389759822630, 0.437641196575277220, 0.437266987299916590, - 0.436892761947498260, - 0.436518520531782470, 0.436144263066528480, 0.435769989565496290, - 0.435395700042447710, - 0.435021394511143410, 0.434647072985346380, 0.434272735478819010, - 0.433898382005324050, - 0.433524012578626440, 0.433149627212489670, 0.432775225920679740, - 0.432400808716961900, - 0.432026375615101930, 0.431651926628867530, 0.431277461772025310, - 0.430902981058344070, - 0.430528484501591540, 0.430153972115537800, 0.429779443913952170, - 0.429404899910604490, - 0.429030340119266550, 0.428655764553708960, 0.428281173227704760, - 0.427906566155026040, - 0.427531943349445720, 0.427157304824738350, 0.426782650594677570, - 0.426407980673039090, - 0.426033295073598160, 0.425658593810130330, 0.425283876896413280, - 0.424909144346223290, - 0.424534396173339160, 0.424159632391538870, 0.423784853014600950, - 0.423410058056305830, - 0.423035247530432810, 0.422660421450763490, 0.422285579831078230, - 0.421910722685159720, - 0.421535850026790060, 0.421160961869751720, 0.420786058227829220, - 0.420411139114805770, - 0.420036204544466940, 0.419661254530597550, 0.419286289086983070, - 0.418911308227410740, - 0.418536311965666650, 0.418161300315539220, 0.417786273290816130, - 0.417411230905285650, - 0.417036173172737830, 0.416661100106961610, 0.416286011721748230, - 0.415910908030888200, - 0.415535789048172620, 0.415160654787394280, 0.414785505262345030, - 0.414410340486818910, - 0.414035160474608700, 0.413659965239509710, 0.413284754795316230, - 0.412909529155823300, - 0.412534288334827750, 0.412159032346125280, 0.411783761203513790, - 0.411408474920790520, - 0.411033173511753220, 0.410657856990201580, 0.410282525369933980, - 0.409907178664751180, - 0.409531816888453190, 0.409156440054840590, 0.408781048177715660, - 0.408405641270879690, - 0.408030219348136270, 0.407654782423288010, 0.407279330510138260, - 0.406903863622492260, - 0.406528381774153900, 0.406152884978929480, 0.405777373250624070, - 0.405401846603045010, - 0.405026305049998980, 0.404650748605293040, 0.404275177282736260, - 0.403899591096136380, - 0.403523990059303620, 0.403148374186047210, 0.402772743490177110, - 0.402397097985504990, - 0.402021437685841480, 0.401645762604999350, 0.401270072756790610, - 0.400894368155027990, - 0.400518648813525830, 0.400142914746097480, 0.399767165966558420, - 0.399391402488723400, - 0.399015624326407800, 0.398639831493428740, 0.398264024003602220, - 0.397888201870746420, - 0.397512365108678430, 0.397136513731217500, 0.396760647752182230, - 0.396384767185391620, - 0.396008872044666730, 0.395632962343827170, 0.395257038096694990, - 0.394881099317091370, - 0.394505146018838130, 0.394129178215758820, 0.393753195921675850, - 0.393377199150413860, - 0.393001187915796750, 0.392625162231649010, 0.392249122111796800, - 0.391873067570065240, - 0.391496998620281590, 0.391120915276272410, 0.390744817551864850, - 0.390368705460887750, - 0.389992579017168830, 0.389616438234538010, 0.389240283126824070, - 0.388864113707858060, - 0.388487929991470140, 0.388111731991491180, 0.387735519721753690, - 0.387359293196089140, - 0.386983052428331030, 0.386606797432312350, 0.386230528221866430, - 0.385854244810828530, - 0.385477947213032580, 0.385101635442314900, 0.384725309512510880, - 0.384348969437456610, - 0.383972615230989860, 0.383596246906947210, 0.383219864479167560, - 0.382843467961488940, - 0.382467057367749940, 0.382090632711791060, 0.381714194007451380, - 0.381337741268572390, - 0.380961274508994250, 0.380584793742559550, 0.380208298983109930, - 0.379831790244487540, - 0.379455267540536490, 0.379078730885099520, 0.378702180292021630, - 0.378325615775147170, - 0.377949037348320800, 0.377572445025389230, 0.377195838820197690, - 0.376819218746593910, - 0.376442584818424570, 0.376065937049537060, 0.375689275453780500, - 0.375312600045002780, - 0.374935910837054080, 0.374559207843783660, 0.374182491079041500, - 0.373805760556679190, - 0.373429016290547200, 0.373052258294498230, 0.372675486582383640, - 0.372298701168057190, - 0.371921902065371730, 0.371545089288180640, 0.371168262850339210, - 0.370791422765701320, - 0.370414569048123140, 0.370037701711460170, 0.369660820769568240, - 0.369283926236305070, - 0.368907018125527120, 0.368530096451093140, 0.368153161226860980, - 0.367776212466689010, - 0.367399250184437480, 0.367022274393965340, 0.366645285109133750, - 0.366268282343803150, - 0.365891266111834370, 0.365514236427090080, 0.365137193303431750, - 0.364760136754723020, - 0.364383066794826350, 0.364005983437606320, 0.363628886696926890, - 0.363251776586652310, - 0.362874653120648700, 0.362497516312780990, 0.362120366176916230, - 0.361743202726920790, - 0.361366025976661450, 0.360988835940006750, 0.360611632630824020, - 0.360234416062982840, - 0.359857186250351960, 0.359479943206800550, 0.359102686946199680, - 0.358725417482419150, - 0.358348134829330870, 0.357970839000806010, 0.357593530010716310, - 0.357216207872935120, - 0.356838872601334680, 0.356461524209789380, 0.356084162712172360, - 0.355706788122359060, - 0.355329400454223950, 0.354951999721642100, 0.354574585938490280, - 0.354197159118644080, - 0.353819719275981330, 0.353442266424378930, 0.353064800577714280, - 0.352687321749866610, - 0.352309829954713830, 0.351932325206136210, 0.351554807518012990, - 0.351177276904224070, - 0.350799733378650890, 0.350422176955173910, 0.350044607647675640, - 0.349667025470037810, - 0.349289430436142520, 0.348911822559873850, 0.348534201855114360, - 0.348156568335749040, - 0.347778922015661520, 0.347401262908737570, 0.347023591028862320, - 0.346645906389921150, - 0.346268209005801410, 0.345890498890388980, 0.345512776057572080, - 0.345135040521238170, - 0.344757292295274910, 0.344379531393571970, 0.344001757830017680, - 0.343623971618502560, - 0.343246172772916250, 0.342868361307148980, 0.342490537235092600, - 0.342112700570637750, - 0.341734851327677280, 0.341356989520103240, 0.340979115161808070, - 0.340601228266685980, - 0.340223328848629880, 0.339845416921535030, 0.339467492499295200, - 0.339089555595806560, - 0.338711606224964210, 0.338333644400663940, 0.337955670136803170, - 0.337577683447278010, - 0.337199684345986910, 0.336821672846827290, 0.336443648963697160, - 0.336065612710496290, - 0.335687564101123050, 0.335309503149478110, 0.334931429869461230, - 0.334553344274972690, - 0.334175246379914470, 0.333797136198187240, 0.333419013743693980, - 0.333040879030336690, - 0.332662732072017800, 0.332284572882641680, 0.331906401476111280, - 0.331528217866331690, - 0.331150022067206780, 0.330771814092642610, 0.330393593956544440, - 0.330015361672817750, - 0.329637117255370090, 0.329258860718107450, 0.328880592074938190, - 0.328502311339769700, - 0.328124018526509800, 0.327745713649068180, 0.327367396721353070, - 0.326989067757275040, - 0.326610726770743760, 0.326232373775669270, 0.325854008785963320, - 0.325475631815536570, - 0.325097242878301660, 0.324718841988170470, 0.324340429159055250, - 0.323962004404870050, - 0.323583567739527570, 0.323205119176942720, 0.322826658731029110, - 0.322448186415702550, - 0.322069702244877910, 0.321691206232470550, 0.321312698392397570, - 0.320934178738574720, - 0.320555647284919980, 0.320177104045350440, 0.319798549033783570, - 0.319419982264138650, - 0.319041403750333630, 0.318662813506288670, 0.318284211545923010, - 0.317905597883156250, - 0.317526972531909870, 0.317148335506103940, 0.316769686819660780, - 0.316391026486501690, - 0.316012354520548600, 0.315633670935725030, 0.315254975745953180, - 0.314876268965157470, - 0.314497550607261090, 0.314118820686189180, 0.313740079215866160, - 0.313361326210216840, - 0.312982561683167790, 0.312603785648644220, 0.312224998120573420, - 0.311846199112882030, - 0.311467388639496860, 0.311088566714346650, 0.310709733351358600, - 0.310330888564462340, - 0.309952032367586390, 0.309573164774659850, 0.309194285799613390, - 0.308815395456376430, - 0.308436493758880660, 0.308057580721056660, 0.307678656356835560, - 0.307299720680150270, - 0.306920773704932260, 0.306541815445115160, 0.306162845914631390, - 0.305783865127415400, - 0.305404873097400780, 0.305025869838521590, 0.304646855364713530, - 0.304267829689911010, - 0.303888792828050650, 0.303509744793068030, 0.303130685598899270, - 0.302751615259482190, - 0.302372533788753170, 0.301993441200650910, 0.301614337509113100, - 0.301235222728077840, - 0.300856096871485010, 0.300476959953273060, 0.300097811987382670, - 0.299718652987753580, - 0.299339482968325970, 0.298960301943041680, 0.298581109925841300, - 0.298201906930667390, - 0.297822692971461410, 0.297443468062166820, 0.297064232216726120, - 0.296684985449082390, - 0.296305727773180260, 0.295926459202963120, 0.295547179752376430, - 0.295167889435364820, - 0.294788588265873170, 0.294409276257848300, 0.294029953425235520, - 0.293650619781982260, - 0.293271275342035120, 0.292891920119341120, 0.292512554127848930, - 0.292133177381505850, - 0.291753789894261320, 0.291374391680063520, 0.290994982752862730, - 0.290615563126608250, - 0.290236132815249790, 0.289856691832738880, 0.289477240193025510, - 0.289097777910061970, - 0.288718304997799550, 0.288338821470189910, 0.287959327341186510, - 0.287579822624741350, - 0.287200307334808670, 0.286820781485341620, 0.286441245090293950, - 0.286061698163620930, - 0.285682140719276560, 0.285302572771216960, 0.284922994333397350, - 0.284543405419773240, - 0.284163806044301910, 0.283784196220939370, 0.283404575963643550, - 0.283024945286371230, - 0.282645304203081090, 0.282265652727731130, 0.281885990874279570, - 0.281506318656686290, - 0.281126636088910030, 0.280746943184911340, 0.280367239958650150, - 0.279987526424086530, - 0.279607802595182420, 0.279228068485898210, 0.278848324110196550, - 0.278468569482039130, - 0.278088804615388040, 0.277709029524206950, 0.277329244222458250, - 0.276949448724106480, - 0.276569643043115150, 0.276189827193448200, 0.275810001189071290, - 0.275430165043948570, - 0.275050318772046500, 0.274670462387330010, 0.274290595903766200, - 0.273910719335321300, - 0.273530832695961790, 0.273150935999655950, 0.272771029260370560, - 0.272391112492074590, - 0.272011185708736060, 0.271631248924323390, 0.271251302152806570, - 0.270871345408154380, - 0.270491378704337540, 0.270111402055325910, 0.269731415475089780, - 0.269351418977600950, - 0.268971412576829990, 0.268591396286749500, 0.268211370121331170, - 0.267831334094547010, - 0.267451288220370730, 0.267071232512774700, 0.266691166985733360, - 0.266311091653219700, - 0.265931006529208920, 0.265550911627675250, 0.265170806962593210, - 0.264790692547939020, - 0.264410568397687560, 0.264030434525815760, 0.263650290946299660, - 0.263270137673115630, - 0.262889974720241610, 0.262509802101654310, 0.262129619831332370, - 0.261749427923253670, - 0.261369226391396310, 0.260989015249740050, 0.260608794512263380, - 0.260228564192946710, - 0.259848324305769600, 0.259468074864711960, 0.259087815883755400, - 0.258707547376880010, - 0.258327269358068100, 0.257946981841300490, 0.257566684840560170, - 0.257186378369829110, - 0.256806062443089680, 0.256425737074325920, 0.256045402277520320, - 0.255665058066657680, - 0.255284704455721660, 0.254904341458696390, 0.254523969089567590, - 0.254143587362319620, - 0.253763196290938850, 0.253382795889410710, 0.253002386171721110, - 0.252621967151857420, - 0.252241538843805680, 0.251861101261554090, 0.251480654419089730, - 0.251100198330400150, - 0.250719733009474530, 0.250339258470300590, 0.249958774726868170, - 0.249578281793165680, - 0.249197779683183660, 0.248817268410911650, 0.248436747990339490, - 0.248056218435458720, - 0.247675679760259450, 0.247295131978733870, 0.246914575104873220, - 0.246534009152669040, - 0.246153434136114490, 0.245772850069201410, 0.245392256965923620, - 0.245011654840274010, - 0.244631043706245800, 0.244250423577833860, 0.243869794469031620, - 0.243489156393834590, - 0.243108509366237320, 0.242727853400234670, 0.242347188509823150, - 0.241966514708997830, - 0.241585832011755900, 0.241205140432093070, 0.240824439984007180, - 0.240443730681495050, - 0.240063012538553830, 0.239682285569182310, 0.239301549787377890, - 0.238920805207139960, - 0.238540051842467020, 0.238159289707357810, 0.237778518815812740, - 0.237397739181830820, - 0.237016950819413100, 0.236636153742559610, 0.236255347965270780, - 0.235874533501548580, - 0.235493710365393630, 0.235112878570808560, 0.234732038131795020, - 0.234351189062355030, - 0.233970331376492150, 0.233589465088208580, 0.233208590211508550, - 0.232827706760394850, - 0.232446814748872410, 0.232065914190945020, 0.231685005100616930, - 0.231304087491893930, - 0.230923161378780380, 0.230542226775282770, 0.230161283695406500, - 0.229780332153157300, - 0.229399372162542610, 0.229018403737568290, 0.228637426892242400, - 0.228256441640571880, - 0.227875447996564060, 0.227494445974227850, 0.227113435587570770, - 0.226732416850602300, - 0.226351389777330990, 0.225970354381765690, 0.225589310677916880, - 0.225208258679793520, - 0.224827198401406690, 0.224446129856766040, 0.224065053059883250, - 0.223683968024768950, - 0.223302874765434120, 0.222921773295891380, 0.222540663630151820, - 0.222159545782228660, - 0.221778419766134050, 0.221397285595880480, 0.221016143285482050, - 0.220634992848951380, - 0.220253834300303180, 0.219872667653551100, 0.219491492922709110, - 0.219110310121792800, - 0.218729119264816280, 0.218347920365795780, 0.217966713438746380, - 0.217585498497683580, - 0.217204275556624420, 0.216823044629584520, 0.216441805730581500, - 0.216060558873631570, - 0.215679304072752960, 0.215298041341962870, 0.214916770695278810, - 0.214535492146719880, - 0.214154205710303750, 0.213772911400050090, 0.213391609229977570, - 0.213010299214105140, - 0.212628981366453330, 0.212247655701041290, 0.211866322231890090, - 0.211484980973019880, - 0.211103631938451000, 0.210722275142205480, 0.210340910598303870, - 0.209959538320768660, - 0.209578158323621420, 0.209196770620883960, 0.208815375226579670, - 0.208433972154730530, - 0.208052561419360520, 0.207671143034492080, 0.207289717014149830, - 0.206908283372357230, - 0.206526842123138070, 0.206145393280517730, 0.205763936858520150, - 0.205382472871171230, - 0.205001001332495910, 0.204619522256519300, 0.204238035657268250, - 0.203856541548768030, - 0.203475039945045950, 0.203093530860128300, 0.202712014308041620, - 0.202330490302814110, - 0.201948958858472420, 0.201567419989045200, 0.201185873708560170, - 0.200804320031045230, - 0.200422758970529910, 0.200041190541042220, 0.199659614756612230, - 0.199278031631268500, - 0.198896441179041650, 0.198514843413961220, 0.198133238350057030, - 0.197751626001360480, - 0.197370006381901520, 0.196988379505712050, 0.196606745386822960, - 0.196225104039265410, - 0.195843455477072190, 0.195461799714274460, 0.195080136764905570, - 0.194698466642997730, - 0.194316789362583340, 0.193935104937696560, 0.193553413382369890, - 0.193171714710637930, - 0.192790008936534220, 0.192408296074092570, 0.192026576137348330, - 0.191644849140335360, - 0.191263115097089540, 0.190881374021645320, 0.190499625928039040, - 0.190117870830306100, - 0.189736108742482030, 0.189354339678604100, 0.188972563652707950, - 0.188590780678831250, - 0.188208990771010640, 0.187827193943283040, 0.187445390209686870, - 0.187063579584259070, - 0.186681762081038650, 0.186299937714063470, 0.185918106497371700, - 0.185536268445003070, - 0.185154423570995760, 0.184772571889390000, 0.184390713414225000, - 0.184008848159540110, - 0.183626976139376310, 0.183245097367773090, 0.182863211858771880, - 0.182481319626412670, - 0.182099420684737420, 0.181717515047787020, 0.181335602729602590, - 0.180953683744226880, - 0.180571758105701030, 0.180189825828068250, 0.179807886925370670, - 0.179425941411650660, - 0.179043989300952110, 0.178662030607317450, 0.178280065344791100, - 0.177898093527416370, - 0.177516115169236820, 0.177134130284297610, 0.176752138886642350, - 0.176370140990316640, - 0.175988136609365020, 0.175606125757832240, 0.175224108449764660, - 0.174842084699207030, - 0.174460054520206240, 0.174078017926807490, 0.173695974933058080, - 0.173313925553004180, - 0.172931869800692250, 0.172549807690170230, 0.172167739235484620, - 0.171785664450683800, - 0.171403583349815180, 0.171021495946926340, 0.170639402256066410, - 0.170257302291283000, - 0.169875196066625710, 0.169493083596143100, 0.169110964893883830, - 0.168728839973898290, - 0.168346708850235140, 0.167964571536945220, 0.167582428048078130, - 0.167200278397683750, - 0.166818122599813570, 0.166435960668517400, 0.166053792617847200, - 0.165671618461853270, - 0.165289438214587970, 0.164907251890102520, 0.164525059502448390, - 0.164142861065678550, - 0.163760656593844480, 0.163378446100999640, 0.162996229601196390, - 0.162614007108487250, - 0.162231778636926370, 0.161849544200566300, 0.161467303813461580, - 0.161085057489665670, - 0.160702805243232240, 0.160320547088216470, 0.159938283038672050, - 0.159556013108654580, - 0.159173737312218650, 0.158791455663418930, 0.158409168176311760, - 0.158026874864951870, - 0.157644575743395960, 0.157262270825699210, 0.156879960125918730, - 0.156497643658110590, - 0.156115321436331000, 0.155732993474637760, 0.155350659787087090, - 0.154968320387737170, - 0.154585975290645110, 0.154203624509868190, 0.153821268059465250, - 0.153438905953493550, - 0.153056538206012340, 0.152674164831079730, 0.152291785842754070, - 0.151909401255095250, - 0.151527011082161540, 0.151144615338013210, 0.150762214036709470, - 0.150379807192309620, - 0.149997394818874590, 0.149614976930463660, 0.149232553541138180, - 0.148850124664957870, - 0.148467690315984390, 0.148085250508278370, 0.147702805255900570, - 0.147320354572913260, - 0.146937898473377210, 0.146555436971355090, 0.146172970080908520, - 0.145790497816099230, - 0.145408020190990560, 0.145025537219644170, 0.144643048916123810, - 0.144260555294492000, - 0.143878056368811510, 0.143495552153146630, 0.143113042661560050, - 0.142730527908116440, - 0.142348007906879320, 0.141965482671912420, 0.141582952217280980, - 0.141200416557048680, - 0.140817875705281120, 0.140435329676042390, 0.140052778483398480, - 0.139670222141414250, - 0.139287660664154770, 0.138905094065686600, 0.138522522360074780, - 0.138139945561386200, - 0.137757363683686740, 0.137374776741042340, 0.136992184747520560, - 0.136609587717187310, - 0.136226985664110460, 0.135844378602356760, 0.135461766545993150, - 0.135079149509088060, - 0.134696527505708320, 0.134313900549922760, 0.133931268655799020, - 0.133548631837404950, - 0.133165990108809860, 0.132783343484081580, 0.132400691977289760, - 0.132018035602502530, - 0.131635374373789940, 0.131252708305220960, 0.130870037410864640, - 0.130487361704791580, - 0.130104681201070800, 0.129721995913773260, 0.129339305856968730, - 0.128956611044727220, - 0.128573911491120210, 0.128191207210217570, 0.127808498216091110, - 0.127425784522811530, - 0.127043066144449680, 0.126660343095077900, 0.126277615388766920, - 0.125894883039589430, - 0.125512146061616980, 0.125129404468921260, 0.124746658275575490, - 0.124363907495651240, - 0.123981152143222060, 0.123598392232359880, 0.123215627777138580, - 0.122832858791630880, - 0.122450085289909640, 0.122067307286049230, 0.121684524794122440, - 0.121301737828203960, - 0.120918946402367330, 0.120536150530686250, 0.120153350227235940, - 0.119770545506089950, - 0.119387736381323830, 0.119004922867011920, 0.118622104977228730, - 0.118239282726050290, - 0.117856456127550970, 0.117473625195807100, 0.117090789944893860, - 0.116707950388886520, - 0.116325106541861910, 0.115942258417895240, 0.115559406031063570, - 0.115176549395442460, - 0.114793688525109290, 0.114410823434140360, 0.114027954136612060, - 0.113645080646602280, - 0.113262202978187320, 0.112879321145445350, 0.112496435162453430, - 0.112113545043288730, - 0.111730650802029900, 0.111347752452754000, 0.110964850009539970, - 0.110581943486465610, - 0.110199032897608850, 0.109816118257049110, 0.109433199578864170, - 0.109050276877133770, - 0.108667350165936400, 0.108284419459350770, 0.107901484771457020, - 0.107518546116333660, - 0.107135603508061170, 0.106752656960718350, 0.106369706488385940, - 0.105986752105143480, - 0.105603793825070680, 0.105220831662248700, 0.104837865630757090, - 0.104454895744677270, - 0.104071922018089540, 0.103688944465074300, 0.103305963099713400, - 0.102922977936087120, - 0.102539988988277600, 0.102156996270365800, 0.101773999796432830, - 0.101390999580561250, - 0.101007995636832020, 0.100624987979327970, 0.100241976622130760, - 0.099858961579322170, - 0.099475942864985456, 0.099092920493202258, 0.098709894478056073, - 0.098326864833628791, - 0.097943831574004214, 0.097560794713264939, 0.097177754265493674, - 0.096794710244774623, - 0.096411662665190329, 0.096028611540825232, 0.095645556885762609, - 0.095262498714085819, - 0.094879437039879722, 0.094496371877227495, 0.094113303240214247, - 0.093730231142923864, - 0.093347155599440373, 0.092964076623849271, 0.092580994230234359, - 0.092197908432681386, - 0.091814819245274432, 0.091431726682099479, 0.091048630757241303, - 0.090665531484784803, - 0.090282428878816323, 0.089899322953420582, 0.089516213722684160, - 0.089133101200692441, - 0.088749985401530951, 0.088366866339286629, 0.087983744028044805, - 0.087600618481892656, - 0.087217489714916191, 0.086834357741201490, 0.086451222574836131, - 0.086068084229906014, - 0.085684942720498897, 0.085301798060701386, 0.084918650264600160, - 0.084535499346283349, - 0.084152345319837438, 0.083769188199350780, 0.083386027998910095, - 0.083002864732603973, - 0.082619698414519799, 0.082236529058745025, 0.081853356679368619, - 0.081470181290477811, - 0.081087002906161790, 0.080703821540508452, 0.080320637207605849, - 0.079937449921543474, - 0.079554259696409127, 0.079171066546292510, 0.078787870485282088, - 0.078404671527466441, - 0.078021469686935602, 0.077638264977777913, 0.077255057414083589, - 0.076871847009941652, - 0.076488633779441206, 0.076105417736672773, 0.075722198895725248, - 0.075338977270689375, - 0.074955752875654230, 0.074572525724710764, 0.074189295831948693, - 0.073806063211457842, - 0.073422827877329483, 0.073039589843653177, 0.072656349124520389, - 0.072273105734021334, - 0.071889859686246352, 0.071506610995287156, 0.071123359675233852, - 0.070740105740178361, - 0.070356849204211397, 0.069973590081423773, 0.069590328385907715, - 0.069207064131753759, - 0.068823797333054326, 0.068440528003900616, 0.068057256158383886, - 0.067673981810596848, - 0.067290704974630494, 0.066907425664577733, 0.066524143894529736, - 0.066140859678579578, - 0.065757573030819083, 0.065374283965340146, 0.064990992496236119, - 0.064607698637598646, - 0.064224402403521202, 0.063841103808096086, 0.063457802865415636, - 0.063074499589573618, - 0.062691193994662109, 0.062307886094775049, 0.061924575904005130, - 0.061541263436445129, - 0.061157948706189229, 0.060774631727329942, 0.060391312513961619, - 0.060007991080177375, - 0.059624667440070382, 0.059241341607735261, 0.058858013597264912, - 0.058474683422754095, - 0.058091351098295878, 0.057708016637985186, 0.057324680055915692, - 0.056941341366181127, - 0.056558000582876661, 0.056174657720095743, 0.055791312791933681, - 0.055407965812484541, - 0.055024616795842439, 0.054641265756102911, 0.054257912707359794, - 0.053874557663708772, - 0.053491200639244271, 0.053107841648060788, 0.052724480704254229, - 0.052341117821918783, - 0.051957753015150501, 0.051574386298044173, 0.051191017684694640, - 0.050807647189198162, - 0.050424274825649297, 0.050040900608144430, 0.049657524550778251, - 0.049274146667647289, - 0.048890766972846805, 0.048507385480472134, 0.048124002204620014, - 0.047740617159385448, - 0.047357230358865306, 0.046973841817155179, 0.046590451548350717, - 0.046207059566548990, - 0.045823665885845313, 0.045440270520336883, 0.045056873484119603, - 0.044673474791289434, - 0.044290074455943754, 0.043906672492178188, 0.043523268914090238, - 0.043139863735776100, - 0.042756456971332048, 0.042373048634855741, 0.041989638740443119, - 0.041606227302191955, - 0.041222814334198304, 0.040839399850560058, 0.040455983865373815, - 0.040072566392736257, - 0.039689147446745419, 0.039305727041497644, 0.038922305191091085, - 0.038538881909622631, - 0.038155457211189216, 0.037772031109889144, 0.037388603619819022, - 0.037005174755077273, - 0.036621744529761024, 0.036238312957967478, 0.035854880053795196, - 0.035471445831341021, - 0.035088010304703626, 0.034704573487980395, 0.034321135395268765, - 0.033937696040667535, - 0.033554255438273790, 0.033170813602186440, 0.032787370546502645, - 0.032403926285321405, - 0.032020480832740429, 0.031637034202857461, 0.031253586409771626, - 0.030870137467580314, - 0.030486687390382738, 0.030103236192276818, 0.029719783887360508, - 0.029336330489733147, - 0.028952876013492331, 0.028569420472737472, 0.028185963881566689, - 0.027802506254078142, - 0.027419047604371360, 0.027035587946544135, 0.026652127294696067, - 0.026268665662925468, - 0.025885203065330677, 0.025501739516011413, 0.025118275029065638, - 0.024734809618593138, - 0.024351343298691951, 0.023967876083461924, 0.023584407987001611, - 0.023200939023409587, - 0.022817469206785804, 0.022433998551228459, 0.022050527070837558, - 0.021667054779711814, - 0.021283581691949955, 0.020900107821652084, 0.020516633182916549, - 0.020133157789843505, - 0.019749681656531803, 0.019366204797080316, 0.018982727225589285, - 0.018599248956157190, - 0.018215770002884327, 0.017832290379869671, 0.017448810101212228, - 0.017065329181012358, - 0.016681847633368677, 0.016298365472381587, 0.015914882712149747, - 0.015531399366773606, - 0.015147915450352307, 0.014764430976985016, 0.014380945960772247, - 0.013997460415812761, - 0.013613974356207112, 0.013230487796054543, 0.012847000749454314, - 0.012463513230507034, - 0.012080025253311559, 0.011696536831968529, 0.011313047980577277, - 0.010929558713237145, - 0.010546069044048827, 0.010162578987111254, 0.009779088556525145, - 0.009395597766389905, - 0.009012106630804949, 0.008628615163871038, 0.008245123379687167, - 0.007861631292354124, - 0.007478138915970929, 0.007094646264638386, 0.006711153352455981, - 0.006327660193523208, - 0.005944166801940901, 0.005560673191808128, 0.005177179377225743, - 0.004793685372293270, - 0.004410191191110246, 0.004026696847777542, 0.003643202356394263, - 0.003259707731061291, - 0.002876212985878184, 0.002492718134944503, 0.002109223192361147, - 0.001725728172227238, - 0.001342233088643682, 0.000958737955710053, 0.000575242787525925, - 0.000191747598192208, - -}; - -/** - * @brief Initialization function for the floating-point DCT4/IDCT4. - * @param[in,out] *S points to an instance of floating-point DCT4/IDCT4 structure. - * @param[in] *S_RFFT points to an instance of floating-point RFFT/RIFFT structure. - * @param[in] *S_CFFT points to an instance of floating-point CFFT/CIFFT structure. - * @param[in] N length of the DCT4. - * @param[in] Nby2 half of the length of the DCT4. - * @param[in] normalize normalizing factor. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported transform length. - * \par Normalizing factor: - * The normalizing factor is sqrt(2/N), which depends on the size of transform N. - * Floating-point normalizing factors are mentioned in the table below for different DCT sizes: - * \image html dct4NormalizingF32Table.gif - */ - -arm_status arm_dct4_init_f32( - arm_dct4_instance_f32 * S, - arm_rfft_instance_f32 * S_RFFT, - arm_cfft_radix4_instance_f32 * S_CFFT, - uint16_t N, - uint16_t Nby2, - float32_t normalize) -{ - /* Initialize the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initializing the pointer array with the weight table base addresses of different lengths */ - float32_t *twiddlePtr[4] = - { (float32_t *) Weights_128, (float32_t *) Weights_512, - (float32_t *) Weights_2048, (float32_t *) Weights_8192 - }; - - /* Initializing the pointer array with the cos factor table base addresses of different lengths */ - float32_t *pCosFactor[4] = - { (float32_t *) cos_factors_128, (float32_t *) cos_factors_512, - (float32_t *) cos_factors_2048, (float32_t *) cos_factors_8192 - }; - - /* Initialize the DCT4 length */ - S->N = N; - - /* Initialize the half of DCT4 length */ - S->Nby2 = Nby2; - - /* Initialize the DCT4 Normalizing factor */ - S->normalize = normalize; - - /* Initialize Real FFT Instance */ - S->pRfft = S_RFFT; - - /* Initialize Complex FFT Instance */ - S->pCfft = S_CFFT; - - switch (N) - { - /* Initialize the table modifier values */ - case 8192u: - S->pTwiddle = twiddlePtr[3]; - S->pCosFactor = pCosFactor[3]; - break; - case 2048u: - S->pTwiddle = twiddlePtr[2]; - S->pCosFactor = pCosFactor[2]; - break; - case 512u: - S->pTwiddle = twiddlePtr[1]; - S->pCosFactor = pCosFactor[1]; - break; - case 128u: - S->pTwiddle = twiddlePtr[0]; - S->pCosFactor = pCosFactor[0]; - break; - default: - status = ARM_MATH_ARGUMENT_ERROR; - } - - /* Initialize the RFFT/RIFFT */ - arm_rfft_init_f32(S->pRfft, S->pCfft, S->N, 0u, 1u); - - /* return the status of DCT4 Init function */ - return (status); -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q15.c deleted file mode 100644 index c6452fe98a..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q15.c +++ /dev/null @@ -1,4276 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dct4_init_q15.c -* -* Description: Initialization function of DCT-4 & IDCT4 Q15 -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/* -* @brief Weights Table -*/ - -/** -* \par -* Weights tables are generated using the formula :
weights[n] = e^(-j*n*pi/(2*N))
-* \par -* C command to generate the table -*
    
-* for(i = 0; i< N; i++)    
-* {    
-*   weights[2*i]= cos(i*c);    
-*   weights[(2*i)+1]= -sin(i * c);    
-* } 
-* \par -* where N is the Number of weights to be calculated and c is pi/(2*N) -* \par -* Converted the output to q15 format by multiplying with 2^31 and saturated if required. -* \par -* In the tables below the real and imaginary values are placed alternatively, hence the -* array length is 2*N. -*/ - -static const q15_t ALIGN4 WeightsQ15_128[256] = { - 0x7fff, 0x0, 0x7ffd, 0xfe6e, 0x7ff6, 0xfcdc, 0x7fe9, 0xfb4a, - 0x7fd8, 0xf9b9, 0x7fc2, 0xf827, 0x7fa7, 0xf696, 0x7f87, 0xf505, - 0x7f62, 0xf375, 0x7f38, 0xf1e5, 0x7f09, 0xf055, 0x7ed5, 0xeec7, - 0x7e9d, 0xed38, 0x7e5f, 0xebab, 0x7e1d, 0xea1e, 0x7dd6, 0xe893, - 0x7d8a, 0xe708, 0x7d39, 0xe57e, 0x7ce3, 0xe3f5, 0x7c89, 0xe26d, - 0x7c29, 0xe0e7, 0x7bc5, 0xdf61, 0x7b5d, 0xdddd, 0x7aef, 0xdc5a, - 0x7a7d, 0xdad8, 0x7a05, 0xd958, 0x798a, 0xd7da, 0x7909, 0xd65d, - 0x7884, 0xd4e1, 0x77fa, 0xd368, 0x776c, 0xd1ef, 0x76d9, 0xd079, - 0x7641, 0xcf05, 0x75a5, 0xcd92, 0x7504, 0xcc22, 0x745f, 0xcab3, - 0x73b5, 0xc946, 0x7307, 0xc7dc, 0x7255, 0xc674, 0x719e, 0xc50e, - 0x70e2, 0xc3aa, 0x7023, 0xc248, 0x6f5f, 0xc0e9, 0x6e96, 0xbf8d, - 0x6dca, 0xbe32, 0x6cf9, 0xbcdb, 0x6c24, 0xbb86, 0x6b4a, 0xba33, - 0x6a6d, 0xb8e4, 0x698c, 0xb797, 0x68a6, 0xb64c, 0x67bd, 0xb505, - 0x66cf, 0xb3c1, 0x65dd, 0xb27f, 0x64e8, 0xb141, 0x63ef, 0xb005, - 0x62f2, 0xaecd, 0x61f1, 0xad97, 0x60ec, 0xac65, 0x5fe3, 0xab36, - 0x5ed7, 0xaa0b, 0x5dc7, 0xa8e3, 0x5cb4, 0xa7be, 0x5b9d, 0xa69c, - 0x5a82, 0xa57e, 0x5964, 0xa463, 0x5842, 0xa34c, 0x571d, 0xa239, - 0x55f5, 0xa129, 0x54ca, 0xa01d, 0x539b, 0x9f14, 0x5269, 0x9e0f, - 0x5133, 0x9d0e, 0x4ffb, 0x9c11, 0x4ebf, 0x9b18, 0x4d81, 0x9a23, - 0x4c3f, 0x9931, 0x4afb, 0x9843, 0x49b4, 0x975a, 0x4869, 0x9674, - 0x471c, 0x9593, 0x45cd, 0x94b6, 0x447a, 0x93dc, 0x4325, 0x9307, - 0x41ce, 0x9236, 0x4073, 0x916a, 0x3f17, 0x90a1, 0x3db8, 0x8fdd, - 0x3c56, 0x8f1e, 0x3af2, 0x8e62, 0x398c, 0x8dab, 0x3824, 0x8cf9, - 0x36ba, 0x8c4b, 0x354d, 0x8ba1, 0x33de, 0x8afc, 0x326e, 0x8a5b, - 0x30fb, 0x89bf, 0x2f87, 0x8927, 0x2e11, 0x8894, 0x2c98, 0x8806, - 0x2b1f, 0x877c, 0x29a3, 0x86f7, 0x2826, 0x8676, 0x26a8, 0x85fb, - 0x2528, 0x8583, 0x23a6, 0x8511, 0x2223, 0x84a3, 0x209f, 0x843b, - 0x1f19, 0x83d7, 0x1d93, 0x8377, 0x1c0b, 0x831d, 0x1a82, 0x82c7, - 0x18f8, 0x8276, 0x176d, 0x822a, 0x15e2, 0x81e3, 0x1455, 0x81a1, - 0x12c8, 0x8163, 0x1139, 0x812b, 0xfab, 0x80f7, 0xe1b, 0x80c8, - 0xc8b, 0x809e, 0xafb, 0x8079, 0x96a, 0x8059, 0x7d9, 0x803e, - 0x647, 0x8028, 0x4b6, 0x8017, 0x324, 0x800a, 0x192, 0x8003, -}; - -static const q15_t ALIGN4 WeightsQ15_512[1024] = { - 0x7fff, 0x0, 0x7fff, 0xff9c, 0x7fff, 0xff37, 0x7ffe, 0xfed3, - 0x7ffd, 0xfe6e, 0x7ffc, 0xfe0a, 0x7ffa, 0xfda5, 0x7ff8, 0xfd41, - 0x7ff6, 0xfcdc, 0x7ff3, 0xfc78, 0x7ff0, 0xfc13, 0x7fed, 0xfbaf, - 0x7fe9, 0xfb4a, 0x7fe5, 0xfae6, 0x7fe1, 0xfa81, 0x7fdd, 0xfa1d, - 0x7fd8, 0xf9b9, 0x7fd3, 0xf954, 0x7fce, 0xf8f0, 0x7fc8, 0xf88b, - 0x7fc2, 0xf827, 0x7fbc, 0xf7c3, 0x7fb5, 0xf75e, 0x7fae, 0xf6fa, - 0x7fa7, 0xf696, 0x7f9f, 0xf632, 0x7f97, 0xf5cd, 0x7f8f, 0xf569, - 0x7f87, 0xf505, 0x7f7e, 0xf4a1, 0x7f75, 0xf43d, 0x7f6b, 0xf3d9, - 0x7f62, 0xf375, 0x7f58, 0xf311, 0x7f4d, 0xf2ad, 0x7f43, 0xf249, - 0x7f38, 0xf1e5, 0x7f2d, 0xf181, 0x7f21, 0xf11d, 0x7f15, 0xf0b9, - 0x7f09, 0xf055, 0x7efd, 0xeff2, 0x7ef0, 0xef8e, 0x7ee3, 0xef2a, - 0x7ed5, 0xeec7, 0x7ec8, 0xee63, 0x7eba, 0xedff, 0x7eab, 0xed9c, - 0x7e9d, 0xed38, 0x7e8e, 0xecd5, 0x7e7f, 0xec72, 0x7e6f, 0xec0e, - 0x7e5f, 0xebab, 0x7e4f, 0xeb48, 0x7e3f, 0xeae5, 0x7e2e, 0xea81, - 0x7e1d, 0xea1e, 0x7e0c, 0xe9bb, 0x7dfa, 0xe958, 0x7de8, 0xe8f6, - 0x7dd6, 0xe893, 0x7dc3, 0xe830, 0x7db0, 0xe7cd, 0x7d9d, 0xe76a, - 0x7d8a, 0xe708, 0x7d76, 0xe6a5, 0x7d62, 0xe643, 0x7d4e, 0xe5e0, - 0x7d39, 0xe57e, 0x7d24, 0xe51c, 0x7d0f, 0xe4b9, 0x7cf9, 0xe457, - 0x7ce3, 0xe3f5, 0x7ccd, 0xe393, 0x7cb7, 0xe331, 0x7ca0, 0xe2cf, - 0x7c89, 0xe26d, 0x7c71, 0xe20b, 0x7c5a, 0xe1aa, 0x7c42, 0xe148, - 0x7c29, 0xe0e7, 0x7c11, 0xe085, 0x7bf8, 0xe024, 0x7bdf, 0xdfc2, - 0x7bc5, 0xdf61, 0x7bac, 0xdf00, 0x7b92, 0xde9f, 0x7b77, 0xde3e, - 0x7b5d, 0xdddd, 0x7b42, 0xdd7c, 0x7b26, 0xdd1b, 0x7b0b, 0xdcbb, - 0x7aef, 0xdc5a, 0x7ad3, 0xdbf9, 0x7ab6, 0xdb99, 0x7a9a, 0xdb39, - 0x7a7d, 0xdad8, 0x7a5f, 0xda78, 0x7a42, 0xda18, 0x7a24, 0xd9b8, - 0x7a05, 0xd958, 0x79e7, 0xd8f9, 0x79c8, 0xd899, 0x79a9, 0xd839, - 0x798a, 0xd7da, 0x796a, 0xd77a, 0x794a, 0xd71b, 0x792a, 0xd6bc, - 0x7909, 0xd65d, 0x78e8, 0xd5fe, 0x78c7, 0xd59f, 0x78a6, 0xd540, - 0x7884, 0xd4e1, 0x7862, 0xd483, 0x7840, 0xd424, 0x781d, 0xd3c6, - 0x77fa, 0xd368, 0x77d7, 0xd309, 0x77b4, 0xd2ab, 0x7790, 0xd24d, - 0x776c, 0xd1ef, 0x7747, 0xd192, 0x7723, 0xd134, 0x76fe, 0xd0d7, - 0x76d9, 0xd079, 0x76b3, 0xd01c, 0x768e, 0xcfbf, 0x7668, 0xcf62, - 0x7641, 0xcf05, 0x761b, 0xcea8, 0x75f4, 0xce4b, 0x75cc, 0xcdef, - 0x75a5, 0xcd92, 0x757d, 0xcd36, 0x7555, 0xccda, 0x752d, 0xcc7e, - 0x7504, 0xcc22, 0x74db, 0xcbc6, 0x74b2, 0xcb6a, 0x7489, 0xcb0e, - 0x745f, 0xcab3, 0x7435, 0xca58, 0x740b, 0xc9fc, 0x73e0, 0xc9a1, - 0x73b5, 0xc946, 0x738a, 0xc8ec, 0x735f, 0xc891, 0x7333, 0xc836, - 0x7307, 0xc7dc, 0x72db, 0xc782, 0x72af, 0xc728, 0x7282, 0xc6ce, - 0x7255, 0xc674, 0x7227, 0xc61a, 0x71fa, 0xc5c0, 0x71cc, 0xc567, - 0x719e, 0xc50e, 0x716f, 0xc4b4, 0x7141, 0xc45b, 0x7112, 0xc403, - 0x70e2, 0xc3aa, 0x70b3, 0xc351, 0x7083, 0xc2f9, 0x7053, 0xc2a0, - 0x7023, 0xc248, 0x6ff2, 0xc1f0, 0x6fc1, 0xc198, 0x6f90, 0xc141, - 0x6f5f, 0xc0e9, 0x6f2d, 0xc092, 0x6efb, 0xc03b, 0x6ec9, 0xbfe3, - 0x6e96, 0xbf8d, 0x6e63, 0xbf36, 0x6e30, 0xbedf, 0x6dfd, 0xbe89, - 0x6dca, 0xbe32, 0x6d96, 0xbddc, 0x6d62, 0xbd86, 0x6d2d, 0xbd30, - 0x6cf9, 0xbcdb, 0x6cc4, 0xbc85, 0x6c8f, 0xbc30, 0x6c59, 0xbbdb, - 0x6c24, 0xbb86, 0x6bee, 0xbb31, 0x6bb8, 0xbadc, 0x6b81, 0xba88, - 0x6b4a, 0xba33, 0x6b13, 0xb9df, 0x6adc, 0xb98b, 0x6aa5, 0xb937, - 0x6a6d, 0xb8e4, 0x6a35, 0xb890, 0x69fd, 0xb83d, 0x69c4, 0xb7ea, - 0x698c, 0xb797, 0x6953, 0xb744, 0x6919, 0xb6f1, 0x68e0, 0xb69f, - 0x68a6, 0xb64c, 0x686c, 0xb5fa, 0x6832, 0xb5a8, 0x67f7, 0xb557, - 0x67bd, 0xb505, 0x6782, 0xb4b4, 0x6746, 0xb462, 0x670b, 0xb411, - 0x66cf, 0xb3c1, 0x6693, 0xb370, 0x6657, 0xb31f, 0x661a, 0xb2cf, - 0x65dd, 0xb27f, 0x65a0, 0xb22f, 0x6563, 0xb1df, 0x6526, 0xb190, - 0x64e8, 0xb141, 0x64aa, 0xb0f1, 0x646c, 0xb0a2, 0x642d, 0xb054, - 0x63ef, 0xb005, 0x63b0, 0xafb7, 0x6371, 0xaf69, 0x6331, 0xaf1b, - 0x62f2, 0xaecd, 0x62b2, 0xae7f, 0x6271, 0xae32, 0x6231, 0xade4, - 0x61f1, 0xad97, 0x61b0, 0xad4b, 0x616f, 0xacfe, 0x612d, 0xacb2, - 0x60ec, 0xac65, 0x60aa, 0xac19, 0x6068, 0xabcd, 0x6026, 0xab82, - 0x5fe3, 0xab36, 0x5fa0, 0xaaeb, 0x5f5e, 0xaaa0, 0x5f1a, 0xaa55, - 0x5ed7, 0xaa0b, 0x5e93, 0xa9c0, 0x5e50, 0xa976, 0x5e0b, 0xa92c, - 0x5dc7, 0xa8e3, 0x5d83, 0xa899, 0x5d3e, 0xa850, 0x5cf9, 0xa807, - 0x5cb4, 0xa7be, 0x5c6e, 0xa775, 0x5c29, 0xa72c, 0x5be3, 0xa6e4, - 0x5b9d, 0xa69c, 0x5b56, 0xa654, 0x5b10, 0xa60d, 0x5ac9, 0xa5c5, - 0x5a82, 0xa57e, 0x5a3b, 0xa537, 0x59f3, 0xa4f0, 0x59ac, 0xa4aa, - 0x5964, 0xa463, 0x591c, 0xa41d, 0x58d4, 0xa3d7, 0x588b, 0xa392, - 0x5842, 0xa34c, 0x57f9, 0xa307, 0x57b0, 0xa2c2, 0x5767, 0xa27d, - 0x571d, 0xa239, 0x56d4, 0xa1f5, 0x568a, 0xa1b0, 0x5640, 0xa16d, - 0x55f5, 0xa129, 0x55ab, 0xa0e6, 0x5560, 0xa0a2, 0x5515, 0xa060, - 0x54ca, 0xa01d, 0x547e, 0x9fda, 0x5433, 0x9f98, 0x53e7, 0x9f56, - 0x539b, 0x9f14, 0x534e, 0x9ed3, 0x5302, 0x9e91, 0x52b5, 0x9e50, - 0x5269, 0x9e0f, 0x521c, 0x9dcf, 0x51ce, 0x9d8f, 0x5181, 0x9d4e, - 0x5133, 0x9d0e, 0x50e5, 0x9ccf, 0x5097, 0x9c8f, 0x5049, 0x9c50, - 0x4ffb, 0x9c11, 0x4fac, 0x9bd3, 0x4f5e, 0x9b94, 0x4f0f, 0x9b56, - 0x4ebf, 0x9b18, 0x4e70, 0x9ada, 0x4e21, 0x9a9d, 0x4dd1, 0x9a60, - 0x4d81, 0x9a23, 0x4d31, 0x99e6, 0x4ce1, 0x99a9, 0x4c90, 0x996d, - 0x4c3f, 0x9931, 0x4bef, 0x98f5, 0x4b9e, 0x98ba, 0x4b4c, 0x987e, - 0x4afb, 0x9843, 0x4aa9, 0x9809, 0x4a58, 0x97ce, 0x4a06, 0x9794, - 0x49b4, 0x975a, 0x4961, 0x9720, 0x490f, 0x96e7, 0x48bc, 0x96ad, - 0x4869, 0x9674, 0x4816, 0x963c, 0x47c3, 0x9603, 0x4770, 0x95cb, - 0x471c, 0x9593, 0x46c9, 0x955b, 0x4675, 0x9524, 0x4621, 0x94ed, - 0x45cd, 0x94b6, 0x4578, 0x947f, 0x4524, 0x9448, 0x44cf, 0x9412, - 0x447a, 0x93dc, 0x4425, 0x93a7, 0x43d0, 0x9371, 0x437b, 0x933c, - 0x4325, 0x9307, 0x42d0, 0x92d3, 0x427a, 0x929e, 0x4224, 0x926a, - 0x41ce, 0x9236, 0x4177, 0x9203, 0x4121, 0x91d0, 0x40ca, 0x919d, - 0x4073, 0x916a, 0x401d, 0x9137, 0x3fc5, 0x9105, 0x3f6e, 0x90d3, - 0x3f17, 0x90a1, 0x3ebf, 0x9070, 0x3e68, 0x903f, 0x3e10, 0x900e, - 0x3db8, 0x8fdd, 0x3d60, 0x8fad, 0x3d07, 0x8f7d, 0x3caf, 0x8f4d, - 0x3c56, 0x8f1e, 0x3bfd, 0x8eee, 0x3ba5, 0x8ebf, 0x3b4c, 0x8e91, - 0x3af2, 0x8e62, 0x3a99, 0x8e34, 0x3a40, 0x8e06, 0x39e6, 0x8dd9, - 0x398c, 0x8dab, 0x3932, 0x8d7e, 0x38d8, 0x8d51, 0x387e, 0x8d25, - 0x3824, 0x8cf9, 0x37ca, 0x8ccd, 0x376f, 0x8ca1, 0x3714, 0x8c76, - 0x36ba, 0x8c4b, 0x365f, 0x8c20, 0x3604, 0x8bf5, 0x35a8, 0x8bcb, - 0x354d, 0x8ba1, 0x34f2, 0x8b77, 0x3496, 0x8b4e, 0x343a, 0x8b25, - 0x33de, 0x8afc, 0x3382, 0x8ad3, 0x3326, 0x8aab, 0x32ca, 0x8a83, - 0x326e, 0x8a5b, 0x3211, 0x8a34, 0x31b5, 0x8a0c, 0x3158, 0x89e5, - 0x30fb, 0x89bf, 0x309e, 0x8998, 0x3041, 0x8972, 0x2fe4, 0x894d, - 0x2f87, 0x8927, 0x2f29, 0x8902, 0x2ecc, 0x88dd, 0x2e6e, 0x88b9, - 0x2e11, 0x8894, 0x2db3, 0x8870, 0x2d55, 0x884c, 0x2cf7, 0x8829, - 0x2c98, 0x8806, 0x2c3a, 0x87e3, 0x2bdc, 0x87c0, 0x2b7d, 0x879e, - 0x2b1f, 0x877c, 0x2ac0, 0x875a, 0x2a61, 0x8739, 0x2a02, 0x8718, - 0x29a3, 0x86f7, 0x2944, 0x86d6, 0x28e5, 0x86b6, 0x2886, 0x8696, - 0x2826, 0x8676, 0x27c7, 0x8657, 0x2767, 0x8638, 0x2707, 0x8619, - 0x26a8, 0x85fb, 0x2648, 0x85dc, 0x25e8, 0x85be, 0x2588, 0x85a1, - 0x2528, 0x8583, 0x24c7, 0x8566, 0x2467, 0x854a, 0x2407, 0x852d, - 0x23a6, 0x8511, 0x2345, 0x84f5, 0x22e5, 0x84da, 0x2284, 0x84be, - 0x2223, 0x84a3, 0x21c2, 0x8489, 0x2161, 0x846e, 0x2100, 0x8454, - 0x209f, 0x843b, 0x203e, 0x8421, 0x1fdc, 0x8408, 0x1f7b, 0x83ef, - 0x1f19, 0x83d7, 0x1eb8, 0x83be, 0x1e56, 0x83a6, 0x1df5, 0x838f, - 0x1d93, 0x8377, 0x1d31, 0x8360, 0x1ccf, 0x8349, 0x1c6d, 0x8333, - 0x1c0b, 0x831d, 0x1ba9, 0x8307, 0x1b47, 0x82f1, 0x1ae4, 0x82dc, - 0x1a82, 0x82c7, 0x1a20, 0x82b2, 0x19bd, 0x829e, 0x195b, 0x828a, - 0x18f8, 0x8276, 0x1896, 0x8263, 0x1833, 0x8250, 0x17d0, 0x823d, - 0x176d, 0x822a, 0x170a, 0x8218, 0x16a8, 0x8206, 0x1645, 0x81f4, - 0x15e2, 0x81e3, 0x157f, 0x81d2, 0x151b, 0x81c1, 0x14b8, 0x81b1, - 0x1455, 0x81a1, 0x13f2, 0x8191, 0x138e, 0x8181, 0x132b, 0x8172, - 0x12c8, 0x8163, 0x1264, 0x8155, 0x1201, 0x8146, 0x119d, 0x8138, - 0x1139, 0x812b, 0x10d6, 0x811d, 0x1072, 0x8110, 0x100e, 0x8103, - 0xfab, 0x80f7, 0xf47, 0x80eb, 0xee3, 0x80df, 0xe7f, 0x80d3, - 0xe1b, 0x80c8, 0xdb7, 0x80bd, 0xd53, 0x80b3, 0xcef, 0x80a8, - 0xc8b, 0x809e, 0xc27, 0x8095, 0xbc3, 0x808b, 0xb5f, 0x8082, - 0xafb, 0x8079, 0xa97, 0x8071, 0xa33, 0x8069, 0x9ce, 0x8061, - 0x96a, 0x8059, 0x906, 0x8052, 0x8a2, 0x804b, 0x83d, 0x8044, - 0x7d9, 0x803e, 0x775, 0x8038, 0x710, 0x8032, 0x6ac, 0x802d, - 0x647, 0x8028, 0x5e3, 0x8023, 0x57f, 0x801f, 0x51a, 0x801b, - 0x4b6, 0x8017, 0x451, 0x8013, 0x3ed, 0x8010, 0x388, 0x800d, - 0x324, 0x800a, 0x2bf, 0x8008, 0x25b, 0x8006, 0x1f6, 0x8004, - 0x192, 0x8003, 0x12d, 0x8002, 0xc9, 0x8001, 0x64, 0x8001, -}; - -static const q15_t ALIGN4 WeightsQ15_2048[4096] = { - 0x7fff, 0x0, 0x7fff, 0xffe7, 0x7fff, 0xffce, 0x7fff, 0xffb5, - 0x7fff, 0xff9c, 0x7fff, 0xff83, 0x7fff, 0xff6a, 0x7fff, 0xff51, - 0x7fff, 0xff37, 0x7fff, 0xff1e, 0x7fff, 0xff05, 0x7ffe, 0xfeec, - 0x7ffe, 0xfed3, 0x7ffe, 0xfeba, 0x7ffe, 0xfea1, 0x7ffd, 0xfe88, - 0x7ffd, 0xfe6e, 0x7ffd, 0xfe55, 0x7ffc, 0xfe3c, 0x7ffc, 0xfe23, - 0x7ffc, 0xfe0a, 0x7ffb, 0xfdf1, 0x7ffb, 0xfdd8, 0x7ffa, 0xfdbe, - 0x7ffa, 0xfda5, 0x7ff9, 0xfd8c, 0x7ff9, 0xfd73, 0x7ff8, 0xfd5a, - 0x7ff8, 0xfd41, 0x7ff7, 0xfd28, 0x7ff7, 0xfd0f, 0x7ff6, 0xfcf5, - 0x7ff6, 0xfcdc, 0x7ff5, 0xfcc3, 0x7ff4, 0xfcaa, 0x7ff4, 0xfc91, - 0x7ff3, 0xfc78, 0x7ff2, 0xfc5f, 0x7ff2, 0xfc46, 0x7ff1, 0xfc2c, - 0x7ff0, 0xfc13, 0x7fef, 0xfbfa, 0x7fee, 0xfbe1, 0x7fee, 0xfbc8, - 0x7fed, 0xfbaf, 0x7fec, 0xfb96, 0x7feb, 0xfb7d, 0x7fea, 0xfb64, - 0x7fe9, 0xfb4a, 0x7fe8, 0xfb31, 0x7fe7, 0xfb18, 0x7fe6, 0xfaff, - 0x7fe5, 0xfae6, 0x7fe4, 0xfacd, 0x7fe3, 0xfab4, 0x7fe2, 0xfa9b, - 0x7fe1, 0xfa81, 0x7fe0, 0xfa68, 0x7fdf, 0xfa4f, 0x7fde, 0xfa36, - 0x7fdd, 0xfa1d, 0x7fdc, 0xfa04, 0x7fda, 0xf9eb, 0x7fd9, 0xf9d2, - 0x7fd8, 0xf9b9, 0x7fd7, 0xf9a0, 0x7fd6, 0xf986, 0x7fd4, 0xf96d, - 0x7fd3, 0xf954, 0x7fd2, 0xf93b, 0x7fd0, 0xf922, 0x7fcf, 0xf909, - 0x7fce, 0xf8f0, 0x7fcc, 0xf8d7, 0x7fcb, 0xf8be, 0x7fc9, 0xf8a5, - 0x7fc8, 0xf88b, 0x7fc6, 0xf872, 0x7fc5, 0xf859, 0x7fc3, 0xf840, - 0x7fc2, 0xf827, 0x7fc0, 0xf80e, 0x7fbf, 0xf7f5, 0x7fbd, 0xf7dc, - 0x7fbc, 0xf7c3, 0x7fba, 0xf7aa, 0x7fb8, 0xf791, 0x7fb7, 0xf778, - 0x7fb5, 0xf75e, 0x7fb3, 0xf745, 0x7fb1, 0xf72c, 0x7fb0, 0xf713, - 0x7fae, 0xf6fa, 0x7fac, 0xf6e1, 0x7faa, 0xf6c8, 0x7fa9, 0xf6af, - 0x7fa7, 0xf696, 0x7fa5, 0xf67d, 0x7fa3, 0xf664, 0x7fa1, 0xf64b, - 0x7f9f, 0xf632, 0x7f9d, 0xf619, 0x7f9b, 0xf600, 0x7f99, 0xf5e7, - 0x7f97, 0xf5cd, 0x7f95, 0xf5b4, 0x7f93, 0xf59b, 0x7f91, 0xf582, - 0x7f8f, 0xf569, 0x7f8d, 0xf550, 0x7f8b, 0xf537, 0x7f89, 0xf51e, - 0x7f87, 0xf505, 0x7f85, 0xf4ec, 0x7f82, 0xf4d3, 0x7f80, 0xf4ba, - 0x7f7e, 0xf4a1, 0x7f7c, 0xf488, 0x7f79, 0xf46f, 0x7f77, 0xf456, - 0x7f75, 0xf43d, 0x7f72, 0xf424, 0x7f70, 0xf40b, 0x7f6e, 0xf3f2, - 0x7f6b, 0xf3d9, 0x7f69, 0xf3c0, 0x7f67, 0xf3a7, 0x7f64, 0xf38e, - 0x7f62, 0xf375, 0x7f5f, 0xf35c, 0x7f5d, 0xf343, 0x7f5a, 0xf32a, - 0x7f58, 0xf311, 0x7f55, 0xf2f8, 0x7f53, 0xf2df, 0x7f50, 0xf2c6, - 0x7f4d, 0xf2ad, 0x7f4b, 0xf294, 0x7f48, 0xf27b, 0x7f45, 0xf262, - 0x7f43, 0xf249, 0x7f40, 0xf230, 0x7f3d, 0xf217, 0x7f3b, 0xf1fe, - 0x7f38, 0xf1e5, 0x7f35, 0xf1cc, 0x7f32, 0xf1b3, 0x7f2f, 0xf19a, - 0x7f2d, 0xf181, 0x7f2a, 0xf168, 0x7f27, 0xf14f, 0x7f24, 0xf136, - 0x7f21, 0xf11d, 0x7f1e, 0xf104, 0x7f1b, 0xf0eb, 0x7f18, 0xf0d2, - 0x7f15, 0xf0b9, 0x7f12, 0xf0a0, 0x7f0f, 0xf087, 0x7f0c, 0xf06e, - 0x7f09, 0xf055, 0x7f06, 0xf03c, 0x7f03, 0xf023, 0x7f00, 0xf00b, - 0x7efd, 0xeff2, 0x7ef9, 0xefd9, 0x7ef6, 0xefc0, 0x7ef3, 0xefa7, - 0x7ef0, 0xef8e, 0x7eed, 0xef75, 0x7ee9, 0xef5c, 0x7ee6, 0xef43, - 0x7ee3, 0xef2a, 0x7edf, 0xef11, 0x7edc, 0xeef8, 0x7ed9, 0xeedf, - 0x7ed5, 0xeec7, 0x7ed2, 0xeeae, 0x7ecf, 0xee95, 0x7ecb, 0xee7c, - 0x7ec8, 0xee63, 0x7ec4, 0xee4a, 0x7ec1, 0xee31, 0x7ebd, 0xee18, - 0x7eba, 0xedff, 0x7eb6, 0xede7, 0x7eb3, 0xedce, 0x7eaf, 0xedb5, - 0x7eab, 0xed9c, 0x7ea8, 0xed83, 0x7ea4, 0xed6a, 0x7ea1, 0xed51, - 0x7e9d, 0xed38, 0x7e99, 0xed20, 0x7e95, 0xed07, 0x7e92, 0xecee, - 0x7e8e, 0xecd5, 0x7e8a, 0xecbc, 0x7e86, 0xeca3, 0x7e83, 0xec8a, - 0x7e7f, 0xec72, 0x7e7b, 0xec59, 0x7e77, 0xec40, 0x7e73, 0xec27, - 0x7e6f, 0xec0e, 0x7e6b, 0xebf5, 0x7e67, 0xebdd, 0x7e63, 0xebc4, - 0x7e5f, 0xebab, 0x7e5b, 0xeb92, 0x7e57, 0xeb79, 0x7e53, 0xeb61, - 0x7e4f, 0xeb48, 0x7e4b, 0xeb2f, 0x7e47, 0xeb16, 0x7e43, 0xeafd, - 0x7e3f, 0xeae5, 0x7e3b, 0xeacc, 0x7e37, 0xeab3, 0x7e32, 0xea9a, - 0x7e2e, 0xea81, 0x7e2a, 0xea69, 0x7e26, 0xea50, 0x7e21, 0xea37, - 0x7e1d, 0xea1e, 0x7e19, 0xea06, 0x7e14, 0xe9ed, 0x7e10, 0xe9d4, - 0x7e0c, 0xe9bb, 0x7e07, 0xe9a3, 0x7e03, 0xe98a, 0x7dff, 0xe971, - 0x7dfa, 0xe958, 0x7df6, 0xe940, 0x7df1, 0xe927, 0x7ded, 0xe90e, - 0x7de8, 0xe8f6, 0x7de4, 0xe8dd, 0x7ddf, 0xe8c4, 0x7dda, 0xe8ab, - 0x7dd6, 0xe893, 0x7dd1, 0xe87a, 0x7dcd, 0xe861, 0x7dc8, 0xe849, - 0x7dc3, 0xe830, 0x7dbf, 0xe817, 0x7dba, 0xe7fe, 0x7db5, 0xe7e6, - 0x7db0, 0xe7cd, 0x7dac, 0xe7b4, 0x7da7, 0xe79c, 0x7da2, 0xe783, - 0x7d9d, 0xe76a, 0x7d98, 0xe752, 0x7d94, 0xe739, 0x7d8f, 0xe720, - 0x7d8a, 0xe708, 0x7d85, 0xe6ef, 0x7d80, 0xe6d6, 0x7d7b, 0xe6be, - 0x7d76, 0xe6a5, 0x7d71, 0xe68d, 0x7d6c, 0xe674, 0x7d67, 0xe65b, - 0x7d62, 0xe643, 0x7d5d, 0xe62a, 0x7d58, 0xe611, 0x7d53, 0xe5f9, - 0x7d4e, 0xe5e0, 0x7d49, 0xe5c8, 0x7d43, 0xe5af, 0x7d3e, 0xe596, - 0x7d39, 0xe57e, 0x7d34, 0xe565, 0x7d2f, 0xe54d, 0x7d29, 0xe534, - 0x7d24, 0xe51c, 0x7d1f, 0xe503, 0x7d19, 0xe4ea, 0x7d14, 0xe4d2, - 0x7d0f, 0xe4b9, 0x7d09, 0xe4a1, 0x7d04, 0xe488, 0x7cff, 0xe470, - 0x7cf9, 0xe457, 0x7cf4, 0xe43f, 0x7cee, 0xe426, 0x7ce9, 0xe40e, - 0x7ce3, 0xe3f5, 0x7cde, 0xe3dc, 0x7cd8, 0xe3c4, 0x7cd3, 0xe3ab, - 0x7ccd, 0xe393, 0x7cc8, 0xe37a, 0x7cc2, 0xe362, 0x7cbc, 0xe349, - 0x7cb7, 0xe331, 0x7cb1, 0xe318, 0x7cab, 0xe300, 0x7ca6, 0xe2e8, - 0x7ca0, 0xe2cf, 0x7c9a, 0xe2b7, 0x7c94, 0xe29e, 0x7c8f, 0xe286, - 0x7c89, 0xe26d, 0x7c83, 0xe255, 0x7c7d, 0xe23c, 0x7c77, 0xe224, - 0x7c71, 0xe20b, 0x7c6c, 0xe1f3, 0x7c66, 0xe1db, 0x7c60, 0xe1c2, - 0x7c5a, 0xe1aa, 0x7c54, 0xe191, 0x7c4e, 0xe179, 0x7c48, 0xe160, - 0x7c42, 0xe148, 0x7c3c, 0xe130, 0x7c36, 0xe117, 0x7c30, 0xe0ff, - 0x7c29, 0xe0e7, 0x7c23, 0xe0ce, 0x7c1d, 0xe0b6, 0x7c17, 0xe09d, - 0x7c11, 0xe085, 0x7c0b, 0xe06d, 0x7c05, 0xe054, 0x7bfe, 0xe03c, - 0x7bf8, 0xe024, 0x7bf2, 0xe00b, 0x7beb, 0xdff3, 0x7be5, 0xdfdb, - 0x7bdf, 0xdfc2, 0x7bd9, 0xdfaa, 0x7bd2, 0xdf92, 0x7bcc, 0xdf79, - 0x7bc5, 0xdf61, 0x7bbf, 0xdf49, 0x7bb9, 0xdf30, 0x7bb2, 0xdf18, - 0x7bac, 0xdf00, 0x7ba5, 0xdee8, 0x7b9f, 0xdecf, 0x7b98, 0xdeb7, - 0x7b92, 0xde9f, 0x7b8b, 0xde87, 0x7b84, 0xde6e, 0x7b7e, 0xde56, - 0x7b77, 0xde3e, 0x7b71, 0xde26, 0x7b6a, 0xde0d, 0x7b63, 0xddf5, - 0x7b5d, 0xdddd, 0x7b56, 0xddc5, 0x7b4f, 0xddac, 0x7b48, 0xdd94, - 0x7b42, 0xdd7c, 0x7b3b, 0xdd64, 0x7b34, 0xdd4c, 0x7b2d, 0xdd33, - 0x7b26, 0xdd1b, 0x7b1f, 0xdd03, 0x7b19, 0xdceb, 0x7b12, 0xdcd3, - 0x7b0b, 0xdcbb, 0x7b04, 0xdca2, 0x7afd, 0xdc8a, 0x7af6, 0xdc72, - 0x7aef, 0xdc5a, 0x7ae8, 0xdc42, 0x7ae1, 0xdc2a, 0x7ada, 0xdc12, - 0x7ad3, 0xdbf9, 0x7acc, 0xdbe1, 0x7ac5, 0xdbc9, 0x7abd, 0xdbb1, - 0x7ab6, 0xdb99, 0x7aaf, 0xdb81, 0x7aa8, 0xdb69, 0x7aa1, 0xdb51, - 0x7a9a, 0xdb39, 0x7a92, 0xdb21, 0x7a8b, 0xdb09, 0x7a84, 0xdaf1, - 0x7a7d, 0xdad8, 0x7a75, 0xdac0, 0x7a6e, 0xdaa8, 0x7a67, 0xda90, - 0x7a5f, 0xda78, 0x7a58, 0xda60, 0x7a50, 0xda48, 0x7a49, 0xda30, - 0x7a42, 0xda18, 0x7a3a, 0xda00, 0x7a33, 0xd9e8, 0x7a2b, 0xd9d0, - 0x7a24, 0xd9b8, 0x7a1c, 0xd9a0, 0x7a15, 0xd988, 0x7a0d, 0xd970, - 0x7a05, 0xd958, 0x79fe, 0xd940, 0x79f6, 0xd928, 0x79ef, 0xd911, - 0x79e7, 0xd8f9, 0x79df, 0xd8e1, 0x79d8, 0xd8c9, 0x79d0, 0xd8b1, - 0x79c8, 0xd899, 0x79c0, 0xd881, 0x79b9, 0xd869, 0x79b1, 0xd851, - 0x79a9, 0xd839, 0x79a1, 0xd821, 0x7999, 0xd80a, 0x7992, 0xd7f2, - 0x798a, 0xd7da, 0x7982, 0xd7c2, 0x797a, 0xd7aa, 0x7972, 0xd792, - 0x796a, 0xd77a, 0x7962, 0xd763, 0x795a, 0xd74b, 0x7952, 0xd733, - 0x794a, 0xd71b, 0x7942, 0xd703, 0x793a, 0xd6eb, 0x7932, 0xd6d4, - 0x792a, 0xd6bc, 0x7922, 0xd6a4, 0x7919, 0xd68c, 0x7911, 0xd675, - 0x7909, 0xd65d, 0x7901, 0xd645, 0x78f9, 0xd62d, 0x78f1, 0xd615, - 0x78e8, 0xd5fe, 0x78e0, 0xd5e6, 0x78d8, 0xd5ce, 0x78cf, 0xd5b7, - 0x78c7, 0xd59f, 0x78bf, 0xd587, 0x78b6, 0xd56f, 0x78ae, 0xd558, - 0x78a6, 0xd540, 0x789d, 0xd528, 0x7895, 0xd511, 0x788c, 0xd4f9, - 0x7884, 0xd4e1, 0x787c, 0xd4ca, 0x7873, 0xd4b2, 0x786b, 0xd49a, - 0x7862, 0xd483, 0x7859, 0xd46b, 0x7851, 0xd453, 0x7848, 0xd43c, - 0x7840, 0xd424, 0x7837, 0xd40d, 0x782e, 0xd3f5, 0x7826, 0xd3dd, - 0x781d, 0xd3c6, 0x7814, 0xd3ae, 0x780c, 0xd397, 0x7803, 0xd37f, - 0x77fa, 0xd368, 0x77f1, 0xd350, 0x77e9, 0xd338, 0x77e0, 0xd321, - 0x77d7, 0xd309, 0x77ce, 0xd2f2, 0x77c5, 0xd2da, 0x77bc, 0xd2c3, - 0x77b4, 0xd2ab, 0x77ab, 0xd294, 0x77a2, 0xd27c, 0x7799, 0xd265, - 0x7790, 0xd24d, 0x7787, 0xd236, 0x777e, 0xd21e, 0x7775, 0xd207, - 0x776c, 0xd1ef, 0x7763, 0xd1d8, 0x775a, 0xd1c1, 0x7751, 0xd1a9, - 0x7747, 0xd192, 0x773e, 0xd17a, 0x7735, 0xd163, 0x772c, 0xd14b, - 0x7723, 0xd134, 0x771a, 0xd11d, 0x7710, 0xd105, 0x7707, 0xd0ee, - 0x76fe, 0xd0d7, 0x76f5, 0xd0bf, 0x76eb, 0xd0a8, 0x76e2, 0xd091, - 0x76d9, 0xd079, 0x76cf, 0xd062, 0x76c6, 0xd04b, 0x76bd, 0xd033, - 0x76b3, 0xd01c, 0x76aa, 0xd005, 0x76a0, 0xcfed, 0x7697, 0xcfd6, - 0x768e, 0xcfbf, 0x7684, 0xcfa7, 0x767b, 0xcf90, 0x7671, 0xcf79, - 0x7668, 0xcf62, 0x765e, 0xcf4a, 0x7654, 0xcf33, 0x764b, 0xcf1c, - 0x7641, 0xcf05, 0x7638, 0xceee, 0x762e, 0xced6, 0x7624, 0xcebf, - 0x761b, 0xcea8, 0x7611, 0xce91, 0x7607, 0xce7a, 0x75fd, 0xce62, - 0x75f4, 0xce4b, 0x75ea, 0xce34, 0x75e0, 0xce1d, 0x75d6, 0xce06, - 0x75cc, 0xcdef, 0x75c3, 0xcdd8, 0x75b9, 0xcdc0, 0x75af, 0xcda9, - 0x75a5, 0xcd92, 0x759b, 0xcd7b, 0x7591, 0xcd64, 0x7587, 0xcd4d, - 0x757d, 0xcd36, 0x7573, 0xcd1f, 0x7569, 0xcd08, 0x755f, 0xccf1, - 0x7555, 0xccda, 0x754b, 0xccc3, 0x7541, 0xccac, 0x7537, 0xcc95, - 0x752d, 0xcc7e, 0x7523, 0xcc67, 0x7519, 0xcc50, 0x750f, 0xcc39, - 0x7504, 0xcc22, 0x74fa, 0xcc0b, 0x74f0, 0xcbf4, 0x74e6, 0xcbdd, - 0x74db, 0xcbc6, 0x74d1, 0xcbaf, 0x74c7, 0xcb98, 0x74bd, 0xcb81, - 0x74b2, 0xcb6a, 0x74a8, 0xcb53, 0x749e, 0xcb3c, 0x7493, 0xcb25, - 0x7489, 0xcb0e, 0x747e, 0xcaf8, 0x7474, 0xcae1, 0x746a, 0xcaca, - 0x745f, 0xcab3, 0x7455, 0xca9c, 0x744a, 0xca85, 0x7440, 0xca6e, - 0x7435, 0xca58, 0x742b, 0xca41, 0x7420, 0xca2a, 0x7415, 0xca13, - 0x740b, 0xc9fc, 0x7400, 0xc9e6, 0x73f6, 0xc9cf, 0x73eb, 0xc9b8, - 0x73e0, 0xc9a1, 0x73d6, 0xc98b, 0x73cb, 0xc974, 0x73c0, 0xc95d, - 0x73b5, 0xc946, 0x73ab, 0xc930, 0x73a0, 0xc919, 0x7395, 0xc902, - 0x738a, 0xc8ec, 0x737f, 0xc8d5, 0x7375, 0xc8be, 0x736a, 0xc8a8, - 0x735f, 0xc891, 0x7354, 0xc87a, 0x7349, 0xc864, 0x733e, 0xc84d, - 0x7333, 0xc836, 0x7328, 0xc820, 0x731d, 0xc809, 0x7312, 0xc7f3, - 0x7307, 0xc7dc, 0x72fc, 0xc7c5, 0x72f1, 0xc7af, 0x72e6, 0xc798, - 0x72db, 0xc782, 0x72d0, 0xc76b, 0x72c5, 0xc755, 0x72ba, 0xc73e, - 0x72af, 0xc728, 0x72a3, 0xc711, 0x7298, 0xc6fa, 0x728d, 0xc6e4, - 0x7282, 0xc6ce, 0x7276, 0xc6b7, 0x726b, 0xc6a1, 0x7260, 0xc68a, - 0x7255, 0xc674, 0x7249, 0xc65d, 0x723e, 0xc647, 0x7233, 0xc630, - 0x7227, 0xc61a, 0x721c, 0xc603, 0x7211, 0xc5ed, 0x7205, 0xc5d7, - 0x71fa, 0xc5c0, 0x71ee, 0xc5aa, 0x71e3, 0xc594, 0x71d7, 0xc57d, - 0x71cc, 0xc567, 0x71c0, 0xc551, 0x71b5, 0xc53a, 0x71a9, 0xc524, - 0x719e, 0xc50e, 0x7192, 0xc4f7, 0x7186, 0xc4e1, 0x717b, 0xc4cb, - 0x716f, 0xc4b4, 0x7164, 0xc49e, 0x7158, 0xc488, 0x714c, 0xc472, - 0x7141, 0xc45b, 0x7135, 0xc445, 0x7129, 0xc42f, 0x711d, 0xc419, - 0x7112, 0xc403, 0x7106, 0xc3ec, 0x70fa, 0xc3d6, 0x70ee, 0xc3c0, - 0x70e2, 0xc3aa, 0x70d6, 0xc394, 0x70cb, 0xc37d, 0x70bf, 0xc367, - 0x70b3, 0xc351, 0x70a7, 0xc33b, 0x709b, 0xc325, 0x708f, 0xc30f, - 0x7083, 0xc2f9, 0x7077, 0xc2e3, 0x706b, 0xc2cd, 0x705f, 0xc2b7, - 0x7053, 0xc2a0, 0x7047, 0xc28a, 0x703b, 0xc274, 0x702f, 0xc25e, - 0x7023, 0xc248, 0x7016, 0xc232, 0x700a, 0xc21c, 0x6ffe, 0xc206, - 0x6ff2, 0xc1f0, 0x6fe6, 0xc1da, 0x6fda, 0xc1c4, 0x6fcd, 0xc1ae, - 0x6fc1, 0xc198, 0x6fb5, 0xc183, 0x6fa9, 0xc16d, 0x6f9c, 0xc157, - 0x6f90, 0xc141, 0x6f84, 0xc12b, 0x6f77, 0xc115, 0x6f6b, 0xc0ff, - 0x6f5f, 0xc0e9, 0x6f52, 0xc0d3, 0x6f46, 0xc0bd, 0x6f39, 0xc0a8, - 0x6f2d, 0xc092, 0x6f20, 0xc07c, 0x6f14, 0xc066, 0x6f07, 0xc050, - 0x6efb, 0xc03b, 0x6eee, 0xc025, 0x6ee2, 0xc00f, 0x6ed5, 0xbff9, - 0x6ec9, 0xbfe3, 0x6ebc, 0xbfce, 0x6eaf, 0xbfb8, 0x6ea3, 0xbfa2, - 0x6e96, 0xbf8d, 0x6e89, 0xbf77, 0x6e7d, 0xbf61, 0x6e70, 0xbf4b, - 0x6e63, 0xbf36, 0x6e57, 0xbf20, 0x6e4a, 0xbf0a, 0x6e3d, 0xbef5, - 0x6e30, 0xbedf, 0x6e24, 0xbeca, 0x6e17, 0xbeb4, 0x6e0a, 0xbe9e, - 0x6dfd, 0xbe89, 0x6df0, 0xbe73, 0x6de3, 0xbe5e, 0x6dd6, 0xbe48, - 0x6dca, 0xbe32, 0x6dbd, 0xbe1d, 0x6db0, 0xbe07, 0x6da3, 0xbdf2, - 0x6d96, 0xbddc, 0x6d89, 0xbdc7, 0x6d7c, 0xbdb1, 0x6d6f, 0xbd9c, - 0x6d62, 0xbd86, 0x6d55, 0xbd71, 0x6d48, 0xbd5b, 0x6d3a, 0xbd46, - 0x6d2d, 0xbd30, 0x6d20, 0xbd1b, 0x6d13, 0xbd06, 0x6d06, 0xbcf0, - 0x6cf9, 0xbcdb, 0x6cec, 0xbcc5, 0x6cde, 0xbcb0, 0x6cd1, 0xbc9b, - 0x6cc4, 0xbc85, 0x6cb7, 0xbc70, 0x6ca9, 0xbc5b, 0x6c9c, 0xbc45, - 0x6c8f, 0xbc30, 0x6c81, 0xbc1b, 0x6c74, 0xbc05, 0x6c67, 0xbbf0, - 0x6c59, 0xbbdb, 0x6c4c, 0xbbc5, 0x6c3f, 0xbbb0, 0x6c31, 0xbb9b, - 0x6c24, 0xbb86, 0x6c16, 0xbb70, 0x6c09, 0xbb5b, 0x6bfb, 0xbb46, - 0x6bee, 0xbb31, 0x6be0, 0xbb1c, 0x6bd3, 0xbb06, 0x6bc5, 0xbaf1, - 0x6bb8, 0xbadc, 0x6baa, 0xbac7, 0x6b9c, 0xbab2, 0x6b8f, 0xba9d, - 0x6b81, 0xba88, 0x6b73, 0xba73, 0x6b66, 0xba5d, 0x6b58, 0xba48, - 0x6b4a, 0xba33, 0x6b3d, 0xba1e, 0x6b2f, 0xba09, 0x6b21, 0xb9f4, - 0x6b13, 0xb9df, 0x6b06, 0xb9ca, 0x6af8, 0xb9b5, 0x6aea, 0xb9a0, - 0x6adc, 0xb98b, 0x6ace, 0xb976, 0x6ac1, 0xb961, 0x6ab3, 0xb94c, - 0x6aa5, 0xb937, 0x6a97, 0xb922, 0x6a89, 0xb90d, 0x6a7b, 0xb8f8, - 0x6a6d, 0xb8e4, 0x6a5f, 0xb8cf, 0x6a51, 0xb8ba, 0x6a43, 0xb8a5, - 0x6a35, 0xb890, 0x6a27, 0xb87b, 0x6a19, 0xb866, 0x6a0b, 0xb852, - 0x69fd, 0xb83d, 0x69ef, 0xb828, 0x69e1, 0xb813, 0x69d3, 0xb7fe, - 0x69c4, 0xb7ea, 0x69b6, 0xb7d5, 0x69a8, 0xb7c0, 0x699a, 0xb7ab, - 0x698c, 0xb797, 0x697d, 0xb782, 0x696f, 0xb76d, 0x6961, 0xb758, - 0x6953, 0xb744, 0x6944, 0xb72f, 0x6936, 0xb71a, 0x6928, 0xb706, - 0x6919, 0xb6f1, 0x690b, 0xb6dd, 0x68fd, 0xb6c8, 0x68ee, 0xb6b3, - 0x68e0, 0xb69f, 0x68d1, 0xb68a, 0x68c3, 0xb676, 0x68b5, 0xb661, - 0x68a6, 0xb64c, 0x6898, 0xb638, 0x6889, 0xb623, 0x687b, 0xb60f, - 0x686c, 0xb5fa, 0x685e, 0xb5e6, 0x684f, 0xb5d1, 0x6840, 0xb5bd, - 0x6832, 0xb5a8, 0x6823, 0xb594, 0x6815, 0xb57f, 0x6806, 0xb56b, - 0x67f7, 0xb557, 0x67e9, 0xb542, 0x67da, 0xb52e, 0x67cb, 0xb519, - 0x67bd, 0xb505, 0x67ae, 0xb4f1, 0x679f, 0xb4dc, 0x6790, 0xb4c8, - 0x6782, 0xb4b4, 0x6773, 0xb49f, 0x6764, 0xb48b, 0x6755, 0xb477, - 0x6746, 0xb462, 0x6737, 0xb44e, 0x6729, 0xb43a, 0x671a, 0xb426, - 0x670b, 0xb411, 0x66fc, 0xb3fd, 0x66ed, 0xb3e9, 0x66de, 0xb3d5, - 0x66cf, 0xb3c1, 0x66c0, 0xb3ac, 0x66b1, 0xb398, 0x66a2, 0xb384, - 0x6693, 0xb370, 0x6684, 0xb35c, 0x6675, 0xb348, 0x6666, 0xb334, - 0x6657, 0xb31f, 0x6648, 0xb30b, 0x6639, 0xb2f7, 0x6629, 0xb2e3, - 0x661a, 0xb2cf, 0x660b, 0xb2bb, 0x65fc, 0xb2a7, 0x65ed, 0xb293, - 0x65dd, 0xb27f, 0x65ce, 0xb26b, 0x65bf, 0xb257, 0x65b0, 0xb243, - 0x65a0, 0xb22f, 0x6591, 0xb21b, 0x6582, 0xb207, 0x6573, 0xb1f3, - 0x6563, 0xb1df, 0x6554, 0xb1cc, 0x6545, 0xb1b8, 0x6535, 0xb1a4, - 0x6526, 0xb190, 0x6516, 0xb17c, 0x6507, 0xb168, 0x64f7, 0xb154, - 0x64e8, 0xb141, 0x64d9, 0xb12d, 0x64c9, 0xb119, 0x64ba, 0xb105, - 0x64aa, 0xb0f1, 0x649b, 0xb0de, 0x648b, 0xb0ca, 0x647b, 0xb0b6, - 0x646c, 0xb0a2, 0x645c, 0xb08f, 0x644d, 0xb07b, 0x643d, 0xb067, - 0x642d, 0xb054, 0x641e, 0xb040, 0x640e, 0xb02c, 0x63fe, 0xb019, - 0x63ef, 0xb005, 0x63df, 0xaff1, 0x63cf, 0xafde, 0x63c0, 0xafca, - 0x63b0, 0xafb7, 0x63a0, 0xafa3, 0x6390, 0xaf90, 0x6380, 0xaf7c, - 0x6371, 0xaf69, 0x6361, 0xaf55, 0x6351, 0xaf41, 0x6341, 0xaf2e, - 0x6331, 0xaf1b, 0x6321, 0xaf07, 0x6311, 0xaef4, 0x6301, 0xaee0, - 0x62f2, 0xaecd, 0x62e2, 0xaeb9, 0x62d2, 0xaea6, 0x62c2, 0xae92, - 0x62b2, 0xae7f, 0x62a2, 0xae6c, 0x6292, 0xae58, 0x6282, 0xae45, - 0x6271, 0xae32, 0x6261, 0xae1e, 0x6251, 0xae0b, 0x6241, 0xadf8, - 0x6231, 0xade4, 0x6221, 0xadd1, 0x6211, 0xadbe, 0x6201, 0xadab, - 0x61f1, 0xad97, 0x61e0, 0xad84, 0x61d0, 0xad71, 0x61c0, 0xad5e, - 0x61b0, 0xad4b, 0x619f, 0xad37, 0x618f, 0xad24, 0x617f, 0xad11, - 0x616f, 0xacfe, 0x615e, 0xaceb, 0x614e, 0xacd8, 0x613e, 0xacc5, - 0x612d, 0xacb2, 0x611d, 0xac9e, 0x610d, 0xac8b, 0x60fc, 0xac78, - 0x60ec, 0xac65, 0x60db, 0xac52, 0x60cb, 0xac3f, 0x60ba, 0xac2c, - 0x60aa, 0xac19, 0x6099, 0xac06, 0x6089, 0xabf3, 0x6078, 0xabe0, - 0x6068, 0xabcd, 0x6057, 0xabbb, 0x6047, 0xaba8, 0x6036, 0xab95, - 0x6026, 0xab82, 0x6015, 0xab6f, 0x6004, 0xab5c, 0x5ff4, 0xab49, - 0x5fe3, 0xab36, 0x5fd3, 0xab24, 0x5fc2, 0xab11, 0x5fb1, 0xaafe, - 0x5fa0, 0xaaeb, 0x5f90, 0xaad8, 0x5f7f, 0xaac6, 0x5f6e, 0xaab3, - 0x5f5e, 0xaaa0, 0x5f4d, 0xaa8e, 0x5f3c, 0xaa7b, 0x5f2b, 0xaa68, - 0x5f1a, 0xaa55, 0x5f0a, 0xaa43, 0x5ef9, 0xaa30, 0x5ee8, 0xaa1d, - 0x5ed7, 0xaa0b, 0x5ec6, 0xa9f8, 0x5eb5, 0xa9e6, 0x5ea4, 0xa9d3, - 0x5e93, 0xa9c0, 0x5e82, 0xa9ae, 0x5e71, 0xa99b, 0x5e60, 0xa989, - 0x5e50, 0xa976, 0x5e3f, 0xa964, 0x5e2d, 0xa951, 0x5e1c, 0xa93f, - 0x5e0b, 0xa92c, 0x5dfa, 0xa91a, 0x5de9, 0xa907, 0x5dd8, 0xa8f5, - 0x5dc7, 0xa8e3, 0x5db6, 0xa8d0, 0x5da5, 0xa8be, 0x5d94, 0xa8ab, - 0x5d83, 0xa899, 0x5d71, 0xa887, 0x5d60, 0xa874, 0x5d4f, 0xa862, - 0x5d3e, 0xa850, 0x5d2d, 0xa83d, 0x5d1b, 0xa82b, 0x5d0a, 0xa819, - 0x5cf9, 0xa807, 0x5ce8, 0xa7f4, 0x5cd6, 0xa7e2, 0x5cc5, 0xa7d0, - 0x5cb4, 0xa7be, 0x5ca2, 0xa7ab, 0x5c91, 0xa799, 0x5c80, 0xa787, - 0x5c6e, 0xa775, 0x5c5d, 0xa763, 0x5c4b, 0xa751, 0x5c3a, 0xa73f, - 0x5c29, 0xa72c, 0x5c17, 0xa71a, 0x5c06, 0xa708, 0x5bf4, 0xa6f6, - 0x5be3, 0xa6e4, 0x5bd1, 0xa6d2, 0x5bc0, 0xa6c0, 0x5bae, 0xa6ae, - 0x5b9d, 0xa69c, 0x5b8b, 0xa68a, 0x5b79, 0xa678, 0x5b68, 0xa666, - 0x5b56, 0xa654, 0x5b45, 0xa642, 0x5b33, 0xa630, 0x5b21, 0xa61f, - 0x5b10, 0xa60d, 0x5afe, 0xa5fb, 0x5aec, 0xa5e9, 0x5adb, 0xa5d7, - 0x5ac9, 0xa5c5, 0x5ab7, 0xa5b3, 0x5aa5, 0xa5a2, 0x5a94, 0xa590, - 0x5a82, 0xa57e, 0x5a70, 0xa56c, 0x5a5e, 0xa55b, 0x5a4d, 0xa549, - 0x5a3b, 0xa537, 0x5a29, 0xa525, 0x5a17, 0xa514, 0x5a05, 0xa502, - 0x59f3, 0xa4f0, 0x59e1, 0xa4df, 0x59d0, 0xa4cd, 0x59be, 0xa4bb, - 0x59ac, 0xa4aa, 0x599a, 0xa498, 0x5988, 0xa487, 0x5976, 0xa475, - 0x5964, 0xa463, 0x5952, 0xa452, 0x5940, 0xa440, 0x592e, 0xa42f, - 0x591c, 0xa41d, 0x590a, 0xa40c, 0x58f8, 0xa3fa, 0x58e6, 0xa3e9, - 0x58d4, 0xa3d7, 0x58c1, 0xa3c6, 0x58af, 0xa3b5, 0x589d, 0xa3a3, - 0x588b, 0xa392, 0x5879, 0xa380, 0x5867, 0xa36f, 0x5855, 0xa35e, - 0x5842, 0xa34c, 0x5830, 0xa33b, 0x581e, 0xa32a, 0x580c, 0xa318, - 0x57f9, 0xa307, 0x57e7, 0xa2f6, 0x57d5, 0xa2e5, 0x57c3, 0xa2d3, - 0x57b0, 0xa2c2, 0x579e, 0xa2b1, 0x578c, 0xa2a0, 0x5779, 0xa28f, - 0x5767, 0xa27d, 0x5755, 0xa26c, 0x5742, 0xa25b, 0x5730, 0xa24a, - 0x571d, 0xa239, 0x570b, 0xa228, 0x56f9, 0xa217, 0x56e6, 0xa206, - 0x56d4, 0xa1f5, 0x56c1, 0xa1e4, 0x56af, 0xa1d3, 0x569c, 0xa1c1, - 0x568a, 0xa1b0, 0x5677, 0xa1a0, 0x5665, 0xa18f, 0x5652, 0xa17e, - 0x5640, 0xa16d, 0x562d, 0xa15c, 0x561a, 0xa14b, 0x5608, 0xa13a, - 0x55f5, 0xa129, 0x55e3, 0xa118, 0x55d0, 0xa107, 0x55bd, 0xa0f6, - 0x55ab, 0xa0e6, 0x5598, 0xa0d5, 0x5585, 0xa0c4, 0x5572, 0xa0b3, - 0x5560, 0xa0a2, 0x554d, 0xa092, 0x553a, 0xa081, 0x5528, 0xa070, - 0x5515, 0xa060, 0x5502, 0xa04f, 0x54ef, 0xa03e, 0x54dc, 0xa02d, - 0x54ca, 0xa01d, 0x54b7, 0xa00c, 0x54a4, 0x9ffc, 0x5491, 0x9feb, - 0x547e, 0x9fda, 0x546b, 0x9fca, 0x5458, 0x9fb9, 0x5445, 0x9fa9, - 0x5433, 0x9f98, 0x5420, 0x9f88, 0x540d, 0x9f77, 0x53fa, 0x9f67, - 0x53e7, 0x9f56, 0x53d4, 0x9f46, 0x53c1, 0x9f35, 0x53ae, 0x9f25, - 0x539b, 0x9f14, 0x5388, 0x9f04, 0x5375, 0x9ef3, 0x5362, 0x9ee3, - 0x534e, 0x9ed3, 0x533b, 0x9ec2, 0x5328, 0x9eb2, 0x5315, 0x9ea2, - 0x5302, 0x9e91, 0x52ef, 0x9e81, 0x52dc, 0x9e71, 0x52c9, 0x9e61, - 0x52b5, 0x9e50, 0x52a2, 0x9e40, 0x528f, 0x9e30, 0x527c, 0x9e20, - 0x5269, 0x9e0f, 0x5255, 0x9dff, 0x5242, 0x9def, 0x522f, 0x9ddf, - 0x521c, 0x9dcf, 0x5208, 0x9dbf, 0x51f5, 0x9daf, 0x51e2, 0x9d9f, - 0x51ce, 0x9d8f, 0x51bb, 0x9d7e, 0x51a8, 0x9d6e, 0x5194, 0x9d5e, - 0x5181, 0x9d4e, 0x516e, 0x9d3e, 0x515a, 0x9d2e, 0x5147, 0x9d1e, - 0x5133, 0x9d0e, 0x5120, 0x9cff, 0x510c, 0x9cef, 0x50f9, 0x9cdf, - 0x50e5, 0x9ccf, 0x50d2, 0x9cbf, 0x50bf, 0x9caf, 0x50ab, 0x9c9f, - 0x5097, 0x9c8f, 0x5084, 0x9c80, 0x5070, 0x9c70, 0x505d, 0x9c60, - 0x5049, 0x9c50, 0x5036, 0x9c40, 0x5022, 0x9c31, 0x500f, 0x9c21, - 0x4ffb, 0x9c11, 0x4fe7, 0x9c02, 0x4fd4, 0x9bf2, 0x4fc0, 0x9be2, - 0x4fac, 0x9bd3, 0x4f99, 0x9bc3, 0x4f85, 0x9bb3, 0x4f71, 0x9ba4, - 0x4f5e, 0x9b94, 0x4f4a, 0x9b85, 0x4f36, 0x9b75, 0x4f22, 0x9b65, - 0x4f0f, 0x9b56, 0x4efb, 0x9b46, 0x4ee7, 0x9b37, 0x4ed3, 0x9b27, - 0x4ebf, 0x9b18, 0x4eac, 0x9b09, 0x4e98, 0x9af9, 0x4e84, 0x9aea, - 0x4e70, 0x9ada, 0x4e5c, 0x9acb, 0x4e48, 0x9abb, 0x4e34, 0x9aac, - 0x4e21, 0x9a9d, 0x4e0d, 0x9a8d, 0x4df9, 0x9a7e, 0x4de5, 0x9a6f, - 0x4dd1, 0x9a60, 0x4dbd, 0x9a50, 0x4da9, 0x9a41, 0x4d95, 0x9a32, - 0x4d81, 0x9a23, 0x4d6d, 0x9a13, 0x4d59, 0x9a04, 0x4d45, 0x99f5, - 0x4d31, 0x99e6, 0x4d1d, 0x99d7, 0x4d09, 0x99c7, 0x4cf5, 0x99b8, - 0x4ce1, 0x99a9, 0x4ccc, 0x999a, 0x4cb8, 0x998b, 0x4ca4, 0x997c, - 0x4c90, 0x996d, 0x4c7c, 0x995e, 0x4c68, 0x994f, 0x4c54, 0x9940, - 0x4c3f, 0x9931, 0x4c2b, 0x9922, 0x4c17, 0x9913, 0x4c03, 0x9904, - 0x4bef, 0x98f5, 0x4bda, 0x98e6, 0x4bc6, 0x98d7, 0x4bb2, 0x98c9, - 0x4b9e, 0x98ba, 0x4b89, 0x98ab, 0x4b75, 0x989c, 0x4b61, 0x988d, - 0x4b4c, 0x987e, 0x4b38, 0x9870, 0x4b24, 0x9861, 0x4b0f, 0x9852, - 0x4afb, 0x9843, 0x4ae7, 0x9835, 0x4ad2, 0x9826, 0x4abe, 0x9817, - 0x4aa9, 0x9809, 0x4a95, 0x97fa, 0x4a81, 0x97eb, 0x4a6c, 0x97dd, - 0x4a58, 0x97ce, 0x4a43, 0x97c0, 0x4a2f, 0x97b1, 0x4a1a, 0x97a2, - 0x4a06, 0x9794, 0x49f1, 0x9785, 0x49dd, 0x9777, 0x49c8, 0x9768, - 0x49b4, 0x975a, 0x499f, 0x974b, 0x498a, 0x973d, 0x4976, 0x972f, - 0x4961, 0x9720, 0x494d, 0x9712, 0x4938, 0x9703, 0x4923, 0x96f5, - 0x490f, 0x96e7, 0x48fa, 0x96d8, 0x48e6, 0x96ca, 0x48d1, 0x96bc, - 0x48bc, 0x96ad, 0x48a8, 0x969f, 0x4893, 0x9691, 0x487e, 0x9683, - 0x4869, 0x9674, 0x4855, 0x9666, 0x4840, 0x9658, 0x482b, 0x964a, - 0x4816, 0x963c, 0x4802, 0x962d, 0x47ed, 0x961f, 0x47d8, 0x9611, - 0x47c3, 0x9603, 0x47ae, 0x95f5, 0x479a, 0x95e7, 0x4785, 0x95d9, - 0x4770, 0x95cb, 0x475b, 0x95bd, 0x4746, 0x95af, 0x4731, 0x95a1, - 0x471c, 0x9593, 0x4708, 0x9585, 0x46f3, 0x9577, 0x46de, 0x9569, - 0x46c9, 0x955b, 0x46b4, 0x954d, 0x469f, 0x953f, 0x468a, 0x9532, - 0x4675, 0x9524, 0x4660, 0x9516, 0x464b, 0x9508, 0x4636, 0x94fa, - 0x4621, 0x94ed, 0x460c, 0x94df, 0x45f7, 0x94d1, 0x45e2, 0x94c3, - 0x45cd, 0x94b6, 0x45b8, 0x94a8, 0x45a3, 0x949a, 0x458d, 0x948d, - 0x4578, 0x947f, 0x4563, 0x9471, 0x454e, 0x9464, 0x4539, 0x9456, - 0x4524, 0x9448, 0x450f, 0x943b, 0x44fa, 0x942d, 0x44e4, 0x9420, - 0x44cf, 0x9412, 0x44ba, 0x9405, 0x44a5, 0x93f7, 0x4490, 0x93ea, - 0x447a, 0x93dc, 0x4465, 0x93cf, 0x4450, 0x93c1, 0x443b, 0x93b4, - 0x4425, 0x93a7, 0x4410, 0x9399, 0x43fb, 0x938c, 0x43e5, 0x937f, - 0x43d0, 0x9371, 0x43bb, 0x9364, 0x43a5, 0x9357, 0x4390, 0x9349, - 0x437b, 0x933c, 0x4365, 0x932f, 0x4350, 0x9322, 0x433b, 0x9314, - 0x4325, 0x9307, 0x4310, 0x92fa, 0x42fa, 0x92ed, 0x42e5, 0x92e0, - 0x42d0, 0x92d3, 0x42ba, 0x92c6, 0x42a5, 0x92b8, 0x428f, 0x92ab, - 0x427a, 0x929e, 0x4264, 0x9291, 0x424f, 0x9284, 0x4239, 0x9277, - 0x4224, 0x926a, 0x420e, 0x925d, 0x41f9, 0x9250, 0x41e3, 0x9243, - 0x41ce, 0x9236, 0x41b8, 0x922a, 0x41a2, 0x921d, 0x418d, 0x9210, - 0x4177, 0x9203, 0x4162, 0x91f6, 0x414c, 0x91e9, 0x4136, 0x91dc, - 0x4121, 0x91d0, 0x410b, 0x91c3, 0x40f6, 0x91b6, 0x40e0, 0x91a9, - 0x40ca, 0x919d, 0x40b5, 0x9190, 0x409f, 0x9183, 0x4089, 0x9177, - 0x4073, 0x916a, 0x405e, 0x915d, 0x4048, 0x9151, 0x4032, 0x9144, - 0x401d, 0x9137, 0x4007, 0x912b, 0x3ff1, 0x911e, 0x3fdb, 0x9112, - 0x3fc5, 0x9105, 0x3fb0, 0x90f9, 0x3f9a, 0x90ec, 0x3f84, 0x90e0, - 0x3f6e, 0x90d3, 0x3f58, 0x90c7, 0x3f43, 0x90ba, 0x3f2d, 0x90ae, - 0x3f17, 0x90a1, 0x3f01, 0x9095, 0x3eeb, 0x9089, 0x3ed5, 0x907c, - 0x3ebf, 0x9070, 0x3ea9, 0x9064, 0x3e93, 0x9057, 0x3e7d, 0x904b, - 0x3e68, 0x903f, 0x3e52, 0x9033, 0x3e3c, 0x9026, 0x3e26, 0x901a, - 0x3e10, 0x900e, 0x3dfa, 0x9002, 0x3de4, 0x8ff6, 0x3dce, 0x8fea, - 0x3db8, 0x8fdd, 0x3da2, 0x8fd1, 0x3d8c, 0x8fc5, 0x3d76, 0x8fb9, - 0x3d60, 0x8fad, 0x3d49, 0x8fa1, 0x3d33, 0x8f95, 0x3d1d, 0x8f89, - 0x3d07, 0x8f7d, 0x3cf1, 0x8f71, 0x3cdb, 0x8f65, 0x3cc5, 0x8f59, - 0x3caf, 0x8f4d, 0x3c99, 0x8f41, 0x3c83, 0x8f35, 0x3c6c, 0x8f2a, - 0x3c56, 0x8f1e, 0x3c40, 0x8f12, 0x3c2a, 0x8f06, 0x3c14, 0x8efa, - 0x3bfd, 0x8eee, 0x3be7, 0x8ee3, 0x3bd1, 0x8ed7, 0x3bbb, 0x8ecb, - 0x3ba5, 0x8ebf, 0x3b8e, 0x8eb4, 0x3b78, 0x8ea8, 0x3b62, 0x8e9c, - 0x3b4c, 0x8e91, 0x3b35, 0x8e85, 0x3b1f, 0x8e7a, 0x3b09, 0x8e6e, - 0x3af2, 0x8e62, 0x3adc, 0x8e57, 0x3ac6, 0x8e4b, 0x3aaf, 0x8e40, - 0x3a99, 0x8e34, 0x3a83, 0x8e29, 0x3a6c, 0x8e1d, 0x3a56, 0x8e12, - 0x3a40, 0x8e06, 0x3a29, 0x8dfb, 0x3a13, 0x8def, 0x39fd, 0x8de4, - 0x39e6, 0x8dd9, 0x39d0, 0x8dcd, 0x39b9, 0x8dc2, 0x39a3, 0x8db7, - 0x398c, 0x8dab, 0x3976, 0x8da0, 0x395f, 0x8d95, 0x3949, 0x8d8a, - 0x3932, 0x8d7e, 0x391c, 0x8d73, 0x3906, 0x8d68, 0x38ef, 0x8d5d, - 0x38d8, 0x8d51, 0x38c2, 0x8d46, 0x38ab, 0x8d3b, 0x3895, 0x8d30, - 0x387e, 0x8d25, 0x3868, 0x8d1a, 0x3851, 0x8d0f, 0x383b, 0x8d04, - 0x3824, 0x8cf9, 0x380d, 0x8cee, 0x37f7, 0x8ce3, 0x37e0, 0x8cd8, - 0x37ca, 0x8ccd, 0x37b3, 0x8cc2, 0x379c, 0x8cb7, 0x3786, 0x8cac, - 0x376f, 0x8ca1, 0x3758, 0x8c96, 0x3742, 0x8c8b, 0x372b, 0x8c81, - 0x3714, 0x8c76, 0x36fe, 0x8c6b, 0x36e7, 0x8c60, 0x36d0, 0x8c55, - 0x36ba, 0x8c4b, 0x36a3, 0x8c40, 0x368c, 0x8c35, 0x3675, 0x8c2a, - 0x365f, 0x8c20, 0x3648, 0x8c15, 0x3631, 0x8c0a, 0x361a, 0x8c00, - 0x3604, 0x8bf5, 0x35ed, 0x8beb, 0x35d6, 0x8be0, 0x35bf, 0x8bd5, - 0x35a8, 0x8bcb, 0x3592, 0x8bc0, 0x357b, 0x8bb6, 0x3564, 0x8bab, - 0x354d, 0x8ba1, 0x3536, 0x8b96, 0x351f, 0x8b8c, 0x3508, 0x8b82, - 0x34f2, 0x8b77, 0x34db, 0x8b6d, 0x34c4, 0x8b62, 0x34ad, 0x8b58, - 0x3496, 0x8b4e, 0x347f, 0x8b43, 0x3468, 0x8b39, 0x3451, 0x8b2f, - 0x343a, 0x8b25, 0x3423, 0x8b1a, 0x340c, 0x8b10, 0x33f5, 0x8b06, - 0x33de, 0x8afc, 0x33c7, 0x8af1, 0x33b0, 0x8ae7, 0x3399, 0x8add, - 0x3382, 0x8ad3, 0x336b, 0x8ac9, 0x3354, 0x8abf, 0x333d, 0x8ab5, - 0x3326, 0x8aab, 0x330f, 0x8aa1, 0x32f8, 0x8a97, 0x32e1, 0x8a8d, - 0x32ca, 0x8a83, 0x32b3, 0x8a79, 0x329c, 0x8a6f, 0x3285, 0x8a65, - 0x326e, 0x8a5b, 0x3257, 0x8a51, 0x3240, 0x8a47, 0x3228, 0x8a3d, - 0x3211, 0x8a34, 0x31fa, 0x8a2a, 0x31e3, 0x8a20, 0x31cc, 0x8a16, - 0x31b5, 0x8a0c, 0x319e, 0x8a03, 0x3186, 0x89f9, 0x316f, 0x89ef, - 0x3158, 0x89e5, 0x3141, 0x89dc, 0x312a, 0x89d2, 0x3112, 0x89c8, - 0x30fb, 0x89bf, 0x30e4, 0x89b5, 0x30cd, 0x89ac, 0x30b6, 0x89a2, - 0x309e, 0x8998, 0x3087, 0x898f, 0x3070, 0x8985, 0x3059, 0x897c, - 0x3041, 0x8972, 0x302a, 0x8969, 0x3013, 0x8960, 0x2ffb, 0x8956, - 0x2fe4, 0x894d, 0x2fcd, 0x8943, 0x2fb5, 0x893a, 0x2f9e, 0x8931, - 0x2f87, 0x8927, 0x2f6f, 0x891e, 0x2f58, 0x8915, 0x2f41, 0x890b, - 0x2f29, 0x8902, 0x2f12, 0x88f9, 0x2efb, 0x88f0, 0x2ee3, 0x88e6, - 0x2ecc, 0x88dd, 0x2eb5, 0x88d4, 0x2e9d, 0x88cb, 0x2e86, 0x88c2, - 0x2e6e, 0x88b9, 0x2e57, 0x88af, 0x2e3f, 0x88a6, 0x2e28, 0x889d, - 0x2e11, 0x8894, 0x2df9, 0x888b, 0x2de2, 0x8882, 0x2dca, 0x8879, - 0x2db3, 0x8870, 0x2d9b, 0x8867, 0x2d84, 0x885e, 0x2d6c, 0x8855, - 0x2d55, 0x884c, 0x2d3d, 0x8844, 0x2d26, 0x883b, 0x2d0e, 0x8832, - 0x2cf7, 0x8829, 0x2cdf, 0x8820, 0x2cc8, 0x8817, 0x2cb0, 0x880f, - 0x2c98, 0x8806, 0x2c81, 0x87fd, 0x2c69, 0x87f4, 0x2c52, 0x87ec, - 0x2c3a, 0x87e3, 0x2c23, 0x87da, 0x2c0b, 0x87d2, 0x2bf3, 0x87c9, - 0x2bdc, 0x87c0, 0x2bc4, 0x87b8, 0x2bad, 0x87af, 0x2b95, 0x87a7, - 0x2b7d, 0x879e, 0x2b66, 0x8795, 0x2b4e, 0x878d, 0x2b36, 0x8784, - 0x2b1f, 0x877c, 0x2b07, 0x8774, 0x2aef, 0x876b, 0x2ad8, 0x8763, - 0x2ac0, 0x875a, 0x2aa8, 0x8752, 0x2a91, 0x874a, 0x2a79, 0x8741, - 0x2a61, 0x8739, 0x2a49, 0x8731, 0x2a32, 0x8728, 0x2a1a, 0x8720, - 0x2a02, 0x8718, 0x29eb, 0x870f, 0x29d3, 0x8707, 0x29bb, 0x86ff, - 0x29a3, 0x86f7, 0x298b, 0x86ef, 0x2974, 0x86e7, 0x295c, 0x86de, - 0x2944, 0x86d6, 0x292c, 0x86ce, 0x2915, 0x86c6, 0x28fd, 0x86be, - 0x28e5, 0x86b6, 0x28cd, 0x86ae, 0x28b5, 0x86a6, 0x289d, 0x869e, - 0x2886, 0x8696, 0x286e, 0x868e, 0x2856, 0x8686, 0x283e, 0x867e, - 0x2826, 0x8676, 0x280e, 0x866e, 0x27f6, 0x8667, 0x27df, 0x865f, - 0x27c7, 0x8657, 0x27af, 0x864f, 0x2797, 0x8647, 0x277f, 0x8640, - 0x2767, 0x8638, 0x274f, 0x8630, 0x2737, 0x8628, 0x271f, 0x8621, - 0x2707, 0x8619, 0x26ef, 0x8611, 0x26d8, 0x860a, 0x26c0, 0x8602, - 0x26a8, 0x85fb, 0x2690, 0x85f3, 0x2678, 0x85eb, 0x2660, 0x85e4, - 0x2648, 0x85dc, 0x2630, 0x85d5, 0x2618, 0x85cd, 0x2600, 0x85c6, - 0x25e8, 0x85be, 0x25d0, 0x85b7, 0x25b8, 0x85b0, 0x25a0, 0x85a8, - 0x2588, 0x85a1, 0x2570, 0x8599, 0x2558, 0x8592, 0x2540, 0x858b, - 0x2528, 0x8583, 0x250f, 0x857c, 0x24f7, 0x8575, 0x24df, 0x856e, - 0x24c7, 0x8566, 0x24af, 0x855f, 0x2497, 0x8558, 0x247f, 0x8551, - 0x2467, 0x854a, 0x244f, 0x8543, 0x2437, 0x853b, 0x241f, 0x8534, - 0x2407, 0x852d, 0x23ee, 0x8526, 0x23d6, 0x851f, 0x23be, 0x8518, - 0x23a6, 0x8511, 0x238e, 0x850a, 0x2376, 0x8503, 0x235e, 0x84fc, - 0x2345, 0x84f5, 0x232d, 0x84ee, 0x2315, 0x84e7, 0x22fd, 0x84e1, - 0x22e5, 0x84da, 0x22cd, 0x84d3, 0x22b4, 0x84cc, 0x229c, 0x84c5, - 0x2284, 0x84be, 0x226c, 0x84b8, 0x2254, 0x84b1, 0x223b, 0x84aa, - 0x2223, 0x84a3, 0x220b, 0x849d, 0x21f3, 0x8496, 0x21da, 0x848f, - 0x21c2, 0x8489, 0x21aa, 0x8482, 0x2192, 0x847c, 0x2179, 0x8475, - 0x2161, 0x846e, 0x2149, 0x8468, 0x2131, 0x8461, 0x2118, 0x845b, - 0x2100, 0x8454, 0x20e8, 0x844e, 0x20d0, 0x8447, 0x20b7, 0x8441, - 0x209f, 0x843b, 0x2087, 0x8434, 0x206e, 0x842e, 0x2056, 0x8427, - 0x203e, 0x8421, 0x2025, 0x841b, 0x200d, 0x8415, 0x1ff5, 0x840e, - 0x1fdc, 0x8408, 0x1fc4, 0x8402, 0x1fac, 0x83fb, 0x1f93, 0x83f5, - 0x1f7b, 0x83ef, 0x1f63, 0x83e9, 0x1f4a, 0x83e3, 0x1f32, 0x83dd, - 0x1f19, 0x83d7, 0x1f01, 0x83d0, 0x1ee9, 0x83ca, 0x1ed0, 0x83c4, - 0x1eb8, 0x83be, 0x1ea0, 0x83b8, 0x1e87, 0x83b2, 0x1e6f, 0x83ac, - 0x1e56, 0x83a6, 0x1e3e, 0x83a0, 0x1e25, 0x839a, 0x1e0d, 0x8394, - 0x1df5, 0x838f, 0x1ddc, 0x8389, 0x1dc4, 0x8383, 0x1dab, 0x837d, - 0x1d93, 0x8377, 0x1d7a, 0x8371, 0x1d62, 0x836c, 0x1d49, 0x8366, - 0x1d31, 0x8360, 0x1d18, 0x835a, 0x1d00, 0x8355, 0x1ce8, 0x834f, - 0x1ccf, 0x8349, 0x1cb7, 0x8344, 0x1c9e, 0x833e, 0x1c86, 0x8338, - 0x1c6d, 0x8333, 0x1c55, 0x832d, 0x1c3c, 0x8328, 0x1c24, 0x8322, - 0x1c0b, 0x831d, 0x1bf2, 0x8317, 0x1bda, 0x8312, 0x1bc1, 0x830c, - 0x1ba9, 0x8307, 0x1b90, 0x8301, 0x1b78, 0x82fc, 0x1b5f, 0x82f7, - 0x1b47, 0x82f1, 0x1b2e, 0x82ec, 0x1b16, 0x82e7, 0x1afd, 0x82e1, - 0x1ae4, 0x82dc, 0x1acc, 0x82d7, 0x1ab3, 0x82d1, 0x1a9b, 0x82cc, - 0x1a82, 0x82c7, 0x1a6a, 0x82c2, 0x1a51, 0x82bd, 0x1a38, 0x82b7, - 0x1a20, 0x82b2, 0x1a07, 0x82ad, 0x19ef, 0x82a8, 0x19d6, 0x82a3, - 0x19bd, 0x829e, 0x19a5, 0x8299, 0x198c, 0x8294, 0x1973, 0x828f, - 0x195b, 0x828a, 0x1942, 0x8285, 0x192a, 0x8280, 0x1911, 0x827b, - 0x18f8, 0x8276, 0x18e0, 0x8271, 0x18c7, 0x826c, 0x18ae, 0x8268, - 0x1896, 0x8263, 0x187d, 0x825e, 0x1864, 0x8259, 0x184c, 0x8254, - 0x1833, 0x8250, 0x181a, 0x824b, 0x1802, 0x8246, 0x17e9, 0x8241, - 0x17d0, 0x823d, 0x17b7, 0x8238, 0x179f, 0x8233, 0x1786, 0x822f, - 0x176d, 0x822a, 0x1755, 0x8226, 0x173c, 0x8221, 0x1723, 0x821c, - 0x170a, 0x8218, 0x16f2, 0x8213, 0x16d9, 0x820f, 0x16c0, 0x820a, - 0x16a8, 0x8206, 0x168f, 0x8201, 0x1676, 0x81fd, 0x165d, 0x81f9, - 0x1645, 0x81f4, 0x162c, 0x81f0, 0x1613, 0x81ec, 0x15fa, 0x81e7, - 0x15e2, 0x81e3, 0x15c9, 0x81df, 0x15b0, 0x81da, 0x1597, 0x81d6, - 0x157f, 0x81d2, 0x1566, 0x81ce, 0x154d, 0x81c9, 0x1534, 0x81c5, - 0x151b, 0x81c1, 0x1503, 0x81bd, 0x14ea, 0x81b9, 0x14d1, 0x81b5, - 0x14b8, 0x81b1, 0x149f, 0x81ad, 0x1487, 0x81a9, 0x146e, 0x81a5, - 0x1455, 0x81a1, 0x143c, 0x819d, 0x1423, 0x8199, 0x140b, 0x8195, - 0x13f2, 0x8191, 0x13d9, 0x818d, 0x13c0, 0x8189, 0x13a7, 0x8185, - 0x138e, 0x8181, 0x1376, 0x817d, 0x135d, 0x817a, 0x1344, 0x8176, - 0x132b, 0x8172, 0x1312, 0x816e, 0x12f9, 0x816b, 0x12e0, 0x8167, - 0x12c8, 0x8163, 0x12af, 0x815f, 0x1296, 0x815c, 0x127d, 0x8158, - 0x1264, 0x8155, 0x124b, 0x8151, 0x1232, 0x814d, 0x1219, 0x814a, - 0x1201, 0x8146, 0x11e8, 0x8143, 0x11cf, 0x813f, 0x11b6, 0x813c, - 0x119d, 0x8138, 0x1184, 0x8135, 0x116b, 0x8131, 0x1152, 0x812e, - 0x1139, 0x812b, 0x1121, 0x8127, 0x1108, 0x8124, 0x10ef, 0x8121, - 0x10d6, 0x811d, 0x10bd, 0x811a, 0x10a4, 0x8117, 0x108b, 0x8113, - 0x1072, 0x8110, 0x1059, 0x810d, 0x1040, 0x810a, 0x1027, 0x8107, - 0x100e, 0x8103, 0xff5, 0x8100, 0xfdd, 0x80fd, 0xfc4, 0x80fa, - 0xfab, 0x80f7, 0xf92, 0x80f4, 0xf79, 0x80f1, 0xf60, 0x80ee, - 0xf47, 0x80eb, 0xf2e, 0x80e8, 0xf15, 0x80e5, 0xefc, 0x80e2, - 0xee3, 0x80df, 0xeca, 0x80dc, 0xeb1, 0x80d9, 0xe98, 0x80d6, - 0xe7f, 0x80d3, 0xe66, 0x80d1, 0xe4d, 0x80ce, 0xe34, 0x80cb, - 0xe1b, 0x80c8, 0xe02, 0x80c5, 0xde9, 0x80c3, 0xdd0, 0x80c0, - 0xdb7, 0x80bd, 0xd9e, 0x80bb, 0xd85, 0x80b8, 0xd6c, 0x80b5, - 0xd53, 0x80b3, 0xd3a, 0x80b0, 0xd21, 0x80ad, 0xd08, 0x80ab, - 0xcef, 0x80a8, 0xcd6, 0x80a6, 0xcbd, 0x80a3, 0xca4, 0x80a1, - 0xc8b, 0x809e, 0xc72, 0x809c, 0xc59, 0x8099, 0xc40, 0x8097, - 0xc27, 0x8095, 0xc0e, 0x8092, 0xbf5, 0x8090, 0xbdc, 0x808e, - 0xbc3, 0x808b, 0xbaa, 0x8089, 0xb91, 0x8087, 0xb78, 0x8084, - 0xb5f, 0x8082, 0xb46, 0x8080, 0xb2d, 0x807e, 0xb14, 0x807b, - 0xafb, 0x8079, 0xae2, 0x8077, 0xac9, 0x8075, 0xab0, 0x8073, - 0xa97, 0x8071, 0xa7e, 0x806f, 0xa65, 0x806d, 0xa4c, 0x806b, - 0xa33, 0x8069, 0xa19, 0x8067, 0xa00, 0x8065, 0x9e7, 0x8063, - 0x9ce, 0x8061, 0x9b5, 0x805f, 0x99c, 0x805d, 0x983, 0x805b, - 0x96a, 0x8059, 0x951, 0x8057, 0x938, 0x8056, 0x91f, 0x8054, - 0x906, 0x8052, 0x8ed, 0x8050, 0x8d4, 0x804f, 0x8bb, 0x804d, - 0x8a2, 0x804b, 0x888, 0x8049, 0x86f, 0x8048, 0x856, 0x8046, - 0x83d, 0x8044, 0x824, 0x8043, 0x80b, 0x8041, 0x7f2, 0x8040, - 0x7d9, 0x803e, 0x7c0, 0x803d, 0x7a7, 0x803b, 0x78e, 0x803a, - 0x775, 0x8038, 0x75b, 0x8037, 0x742, 0x8035, 0x729, 0x8034, - 0x710, 0x8032, 0x6f7, 0x8031, 0x6de, 0x8030, 0x6c5, 0x802e, - 0x6ac, 0x802d, 0x693, 0x802c, 0x67a, 0x802a, 0x660, 0x8029, - 0x647, 0x8028, 0x62e, 0x8027, 0x615, 0x8026, 0x5fc, 0x8024, - 0x5e3, 0x8023, 0x5ca, 0x8022, 0x5b1, 0x8021, 0x598, 0x8020, - 0x57f, 0x801f, 0x565, 0x801e, 0x54c, 0x801d, 0x533, 0x801c, - 0x51a, 0x801b, 0x501, 0x801a, 0x4e8, 0x8019, 0x4cf, 0x8018, - 0x4b6, 0x8017, 0x49c, 0x8016, 0x483, 0x8015, 0x46a, 0x8014, - 0x451, 0x8013, 0x438, 0x8012, 0x41f, 0x8012, 0x406, 0x8011, - 0x3ed, 0x8010, 0x3d4, 0x800f, 0x3ba, 0x800e, 0x3a1, 0x800e, - 0x388, 0x800d, 0x36f, 0x800c, 0x356, 0x800c, 0x33d, 0x800b, - 0x324, 0x800a, 0x30b, 0x800a, 0x2f1, 0x8009, 0x2d8, 0x8009, - 0x2bf, 0x8008, 0x2a6, 0x8008, 0x28d, 0x8007, 0x274, 0x8007, - 0x25b, 0x8006, 0x242, 0x8006, 0x228, 0x8005, 0x20f, 0x8005, - 0x1f6, 0x8004, 0x1dd, 0x8004, 0x1c4, 0x8004, 0x1ab, 0x8003, - 0x192, 0x8003, 0x178, 0x8003, 0x15f, 0x8002, 0x146, 0x8002, - 0x12d, 0x8002, 0x114, 0x8002, 0xfb, 0x8001, 0xe2, 0x8001, - 0xc9, 0x8001, 0xaf, 0x8001, 0x96, 0x8001, 0x7d, 0x8001, - 0x64, 0x8001, 0x4b, 0x8001, 0x32, 0x8001, 0x19, 0x8001, -}; - -static const q15_t ALIGN4 WeightsQ15_8192[16384] = { - 0x7fff, 0x0, 0x7fff, 0xfffa, 0x7fff, 0xfff4, 0x7fff, 0xffee, - 0x7fff, 0xffe7, 0x7fff, 0xffe1, 0x7fff, 0xffdb, 0x7fff, 0xffd5, - 0x7fff, 0xffce, 0x7fff, 0xffc8, 0x7fff, 0xffc2, 0x7fff, 0xffbb, - 0x7fff, 0xffb5, 0x7fff, 0xffaf, 0x7fff, 0xffa9, 0x7fff, 0xffa2, - 0x7fff, 0xff9c, 0x7fff, 0xff96, 0x7fff, 0xff8f, 0x7fff, 0xff89, - 0x7fff, 0xff83, 0x7fff, 0xff7d, 0x7fff, 0xff76, 0x7fff, 0xff70, - 0x7fff, 0xff6a, 0x7fff, 0xff63, 0x7fff, 0xff5d, 0x7fff, 0xff57, - 0x7fff, 0xff51, 0x7fff, 0xff4a, 0x7fff, 0xff44, 0x7fff, 0xff3e, - 0x7fff, 0xff37, 0x7fff, 0xff31, 0x7fff, 0xff2b, 0x7fff, 0xff25, - 0x7fff, 0xff1e, 0x7fff, 0xff18, 0x7fff, 0xff12, 0x7fff, 0xff0b, - 0x7fff, 0xff05, 0x7ffe, 0xfeff, 0x7ffe, 0xfef9, 0x7ffe, 0xfef2, - 0x7ffe, 0xfeec, 0x7ffe, 0xfee6, 0x7ffe, 0xfedf, 0x7ffe, 0xfed9, - 0x7ffe, 0xfed3, 0x7ffe, 0xfecd, 0x7ffe, 0xfec6, 0x7ffe, 0xfec0, - 0x7ffe, 0xfeba, 0x7ffe, 0xfeb3, 0x7ffe, 0xfead, 0x7ffe, 0xfea7, - 0x7ffe, 0xfea1, 0x7ffe, 0xfe9a, 0x7ffd, 0xfe94, 0x7ffd, 0xfe8e, - 0x7ffd, 0xfe88, 0x7ffd, 0xfe81, 0x7ffd, 0xfe7b, 0x7ffd, 0xfe75, - 0x7ffd, 0xfe6e, 0x7ffd, 0xfe68, 0x7ffd, 0xfe62, 0x7ffd, 0xfe5c, - 0x7ffd, 0xfe55, 0x7ffd, 0xfe4f, 0x7ffd, 0xfe49, 0x7ffc, 0xfe42, - 0x7ffc, 0xfe3c, 0x7ffc, 0xfe36, 0x7ffc, 0xfe30, 0x7ffc, 0xfe29, - 0x7ffc, 0xfe23, 0x7ffc, 0xfe1d, 0x7ffc, 0xfe16, 0x7ffc, 0xfe10, - 0x7ffc, 0xfe0a, 0x7ffc, 0xfe04, 0x7ffb, 0xfdfd, 0x7ffb, 0xfdf7, - 0x7ffb, 0xfdf1, 0x7ffb, 0xfdea, 0x7ffb, 0xfde4, 0x7ffb, 0xfdde, - 0x7ffb, 0xfdd8, 0x7ffb, 0xfdd1, 0x7ffb, 0xfdcb, 0x7ffb, 0xfdc5, - 0x7ffa, 0xfdbe, 0x7ffa, 0xfdb8, 0x7ffa, 0xfdb2, 0x7ffa, 0xfdac, - 0x7ffa, 0xfda5, 0x7ffa, 0xfd9f, 0x7ffa, 0xfd99, 0x7ffa, 0xfd93, - 0x7ff9, 0xfd8c, 0x7ff9, 0xfd86, 0x7ff9, 0xfd80, 0x7ff9, 0xfd79, - 0x7ff9, 0xfd73, 0x7ff9, 0xfd6d, 0x7ff9, 0xfd67, 0x7ff9, 0xfd60, - 0x7ff8, 0xfd5a, 0x7ff8, 0xfd54, 0x7ff8, 0xfd4d, 0x7ff8, 0xfd47, - 0x7ff8, 0xfd41, 0x7ff8, 0xfd3b, 0x7ff8, 0xfd34, 0x7ff8, 0xfd2e, - 0x7ff7, 0xfd28, 0x7ff7, 0xfd21, 0x7ff7, 0xfd1b, 0x7ff7, 0xfd15, - 0x7ff7, 0xfd0f, 0x7ff7, 0xfd08, 0x7ff7, 0xfd02, 0x7ff6, 0xfcfc, - 0x7ff6, 0xfcf5, 0x7ff6, 0xfcef, 0x7ff6, 0xfce9, 0x7ff6, 0xfce3, - 0x7ff6, 0xfcdc, 0x7ff5, 0xfcd6, 0x7ff5, 0xfcd0, 0x7ff5, 0xfcc9, - 0x7ff5, 0xfcc3, 0x7ff5, 0xfcbd, 0x7ff5, 0xfcb7, 0x7ff5, 0xfcb0, - 0x7ff4, 0xfcaa, 0x7ff4, 0xfca4, 0x7ff4, 0xfc9e, 0x7ff4, 0xfc97, - 0x7ff4, 0xfc91, 0x7ff4, 0xfc8b, 0x7ff3, 0xfc84, 0x7ff3, 0xfc7e, - 0x7ff3, 0xfc78, 0x7ff3, 0xfc72, 0x7ff3, 0xfc6b, 0x7ff2, 0xfc65, - 0x7ff2, 0xfc5f, 0x7ff2, 0xfc58, 0x7ff2, 0xfc52, 0x7ff2, 0xfc4c, - 0x7ff2, 0xfc46, 0x7ff1, 0xfc3f, 0x7ff1, 0xfc39, 0x7ff1, 0xfc33, - 0x7ff1, 0xfc2c, 0x7ff1, 0xfc26, 0x7ff0, 0xfc20, 0x7ff0, 0xfc1a, - 0x7ff0, 0xfc13, 0x7ff0, 0xfc0d, 0x7ff0, 0xfc07, 0x7fef, 0xfc01, - 0x7fef, 0xfbfa, 0x7fef, 0xfbf4, 0x7fef, 0xfbee, 0x7fef, 0xfbe7, - 0x7fee, 0xfbe1, 0x7fee, 0xfbdb, 0x7fee, 0xfbd5, 0x7fee, 0xfbce, - 0x7fee, 0xfbc8, 0x7fed, 0xfbc2, 0x7fed, 0xfbbb, 0x7fed, 0xfbb5, - 0x7fed, 0xfbaf, 0x7fed, 0xfba9, 0x7fec, 0xfba2, 0x7fec, 0xfb9c, - 0x7fec, 0xfb96, 0x7fec, 0xfb8f, 0x7fec, 0xfb89, 0x7feb, 0xfb83, - 0x7feb, 0xfb7d, 0x7feb, 0xfb76, 0x7feb, 0xfb70, 0x7fea, 0xfb6a, - 0x7fea, 0xfb64, 0x7fea, 0xfb5d, 0x7fea, 0xfb57, 0x7fea, 0xfb51, - 0x7fe9, 0xfb4a, 0x7fe9, 0xfb44, 0x7fe9, 0xfb3e, 0x7fe9, 0xfb38, - 0x7fe8, 0xfb31, 0x7fe8, 0xfb2b, 0x7fe8, 0xfb25, 0x7fe8, 0xfb1e, - 0x7fe7, 0xfb18, 0x7fe7, 0xfb12, 0x7fe7, 0xfb0c, 0x7fe7, 0xfb05, - 0x7fe6, 0xfaff, 0x7fe6, 0xfaf9, 0x7fe6, 0xfaf3, 0x7fe6, 0xfaec, - 0x7fe5, 0xfae6, 0x7fe5, 0xfae0, 0x7fe5, 0xfad9, 0x7fe5, 0xfad3, - 0x7fe4, 0xfacd, 0x7fe4, 0xfac7, 0x7fe4, 0xfac0, 0x7fe4, 0xfaba, - 0x7fe3, 0xfab4, 0x7fe3, 0xfaad, 0x7fe3, 0xfaa7, 0x7fe3, 0xfaa1, - 0x7fe2, 0xfa9b, 0x7fe2, 0xfa94, 0x7fe2, 0xfa8e, 0x7fe2, 0xfa88, - 0x7fe1, 0xfa81, 0x7fe1, 0xfa7b, 0x7fe1, 0xfa75, 0x7fe0, 0xfa6f, - 0x7fe0, 0xfa68, 0x7fe0, 0xfa62, 0x7fe0, 0xfa5c, 0x7fdf, 0xfa56, - 0x7fdf, 0xfa4f, 0x7fdf, 0xfa49, 0x7fdf, 0xfa43, 0x7fde, 0xfa3c, - 0x7fde, 0xfa36, 0x7fde, 0xfa30, 0x7fdd, 0xfa2a, 0x7fdd, 0xfa23, - 0x7fdd, 0xfa1d, 0x7fdd, 0xfa17, 0x7fdc, 0xfa11, 0x7fdc, 0xfa0a, - 0x7fdc, 0xfa04, 0x7fdb, 0xf9fe, 0x7fdb, 0xf9f7, 0x7fdb, 0xf9f1, - 0x7fda, 0xf9eb, 0x7fda, 0xf9e5, 0x7fda, 0xf9de, 0x7fda, 0xf9d8, - 0x7fd9, 0xf9d2, 0x7fd9, 0xf9cb, 0x7fd9, 0xf9c5, 0x7fd8, 0xf9bf, - 0x7fd8, 0xf9b9, 0x7fd8, 0xf9b2, 0x7fd7, 0xf9ac, 0x7fd7, 0xf9a6, - 0x7fd7, 0xf9a0, 0x7fd6, 0xf999, 0x7fd6, 0xf993, 0x7fd6, 0xf98d, - 0x7fd6, 0xf986, 0x7fd5, 0xf980, 0x7fd5, 0xf97a, 0x7fd5, 0xf974, - 0x7fd4, 0xf96d, 0x7fd4, 0xf967, 0x7fd4, 0xf961, 0x7fd3, 0xf95b, - 0x7fd3, 0xf954, 0x7fd3, 0xf94e, 0x7fd2, 0xf948, 0x7fd2, 0xf941, - 0x7fd2, 0xf93b, 0x7fd1, 0xf935, 0x7fd1, 0xf92f, 0x7fd1, 0xf928, - 0x7fd0, 0xf922, 0x7fd0, 0xf91c, 0x7fd0, 0xf916, 0x7fcf, 0xf90f, - 0x7fcf, 0xf909, 0x7fcf, 0xf903, 0x7fce, 0xf8fc, 0x7fce, 0xf8f6, - 0x7fce, 0xf8f0, 0x7fcd, 0xf8ea, 0x7fcd, 0xf8e3, 0x7fcd, 0xf8dd, - 0x7fcc, 0xf8d7, 0x7fcc, 0xf8d0, 0x7fcb, 0xf8ca, 0x7fcb, 0xf8c4, - 0x7fcb, 0xf8be, 0x7fca, 0xf8b7, 0x7fca, 0xf8b1, 0x7fca, 0xf8ab, - 0x7fc9, 0xf8a5, 0x7fc9, 0xf89e, 0x7fc9, 0xf898, 0x7fc8, 0xf892, - 0x7fc8, 0xf88b, 0x7fc7, 0xf885, 0x7fc7, 0xf87f, 0x7fc7, 0xf879, - 0x7fc6, 0xf872, 0x7fc6, 0xf86c, 0x7fc6, 0xf866, 0x7fc5, 0xf860, - 0x7fc5, 0xf859, 0x7fc5, 0xf853, 0x7fc4, 0xf84d, 0x7fc4, 0xf846, - 0x7fc3, 0xf840, 0x7fc3, 0xf83a, 0x7fc3, 0xf834, 0x7fc2, 0xf82d, - 0x7fc2, 0xf827, 0x7fc1, 0xf821, 0x7fc1, 0xf81b, 0x7fc1, 0xf814, - 0x7fc0, 0xf80e, 0x7fc0, 0xf808, 0x7fc0, 0xf802, 0x7fbf, 0xf7fb, - 0x7fbf, 0xf7f5, 0x7fbe, 0xf7ef, 0x7fbe, 0xf7e8, 0x7fbe, 0xf7e2, - 0x7fbd, 0xf7dc, 0x7fbd, 0xf7d6, 0x7fbc, 0xf7cf, 0x7fbc, 0xf7c9, - 0x7fbc, 0xf7c3, 0x7fbb, 0xf7bd, 0x7fbb, 0xf7b6, 0x7fba, 0xf7b0, - 0x7fba, 0xf7aa, 0x7fb9, 0xf7a3, 0x7fb9, 0xf79d, 0x7fb9, 0xf797, - 0x7fb8, 0xf791, 0x7fb8, 0xf78a, 0x7fb7, 0xf784, 0x7fb7, 0xf77e, - 0x7fb7, 0xf778, 0x7fb6, 0xf771, 0x7fb6, 0xf76b, 0x7fb5, 0xf765, - 0x7fb5, 0xf75e, 0x7fb4, 0xf758, 0x7fb4, 0xf752, 0x7fb4, 0xf74c, - 0x7fb3, 0xf745, 0x7fb3, 0xf73f, 0x7fb2, 0xf739, 0x7fb2, 0xf733, - 0x7fb1, 0xf72c, 0x7fb1, 0xf726, 0x7fb1, 0xf720, 0x7fb0, 0xf71a, - 0x7fb0, 0xf713, 0x7faf, 0xf70d, 0x7faf, 0xf707, 0x7fae, 0xf700, - 0x7fae, 0xf6fa, 0x7fae, 0xf6f4, 0x7fad, 0xf6ee, 0x7fad, 0xf6e7, - 0x7fac, 0xf6e1, 0x7fac, 0xf6db, 0x7fab, 0xf6d5, 0x7fab, 0xf6ce, - 0x7faa, 0xf6c8, 0x7faa, 0xf6c2, 0x7fa9, 0xf6bc, 0x7fa9, 0xf6b5, - 0x7fa9, 0xf6af, 0x7fa8, 0xf6a9, 0x7fa8, 0xf6a2, 0x7fa7, 0xf69c, - 0x7fa7, 0xf696, 0x7fa6, 0xf690, 0x7fa6, 0xf689, 0x7fa5, 0xf683, - 0x7fa5, 0xf67d, 0x7fa4, 0xf677, 0x7fa4, 0xf670, 0x7fa3, 0xf66a, - 0x7fa3, 0xf664, 0x7fa3, 0xf65e, 0x7fa2, 0xf657, 0x7fa2, 0xf651, - 0x7fa1, 0xf64b, 0x7fa1, 0xf644, 0x7fa0, 0xf63e, 0x7fa0, 0xf638, - 0x7f9f, 0xf632, 0x7f9f, 0xf62b, 0x7f9e, 0xf625, 0x7f9e, 0xf61f, - 0x7f9d, 0xf619, 0x7f9d, 0xf612, 0x7f9c, 0xf60c, 0x7f9c, 0xf606, - 0x7f9b, 0xf600, 0x7f9b, 0xf5f9, 0x7f9a, 0xf5f3, 0x7f9a, 0xf5ed, - 0x7f99, 0xf5e7, 0x7f99, 0xf5e0, 0x7f98, 0xf5da, 0x7f98, 0xf5d4, - 0x7f97, 0xf5cd, 0x7f97, 0xf5c7, 0x7f96, 0xf5c1, 0x7f96, 0xf5bb, - 0x7f95, 0xf5b4, 0x7f95, 0xf5ae, 0x7f94, 0xf5a8, 0x7f94, 0xf5a2, - 0x7f93, 0xf59b, 0x7f93, 0xf595, 0x7f92, 0xf58f, 0x7f92, 0xf589, - 0x7f91, 0xf582, 0x7f91, 0xf57c, 0x7f90, 0xf576, 0x7f90, 0xf570, - 0x7f8f, 0xf569, 0x7f8f, 0xf563, 0x7f8e, 0xf55d, 0x7f8e, 0xf556, - 0x7f8d, 0xf550, 0x7f8d, 0xf54a, 0x7f8c, 0xf544, 0x7f8b, 0xf53d, - 0x7f8b, 0xf537, 0x7f8a, 0xf531, 0x7f8a, 0xf52b, 0x7f89, 0xf524, - 0x7f89, 0xf51e, 0x7f88, 0xf518, 0x7f88, 0xf512, 0x7f87, 0xf50b, - 0x7f87, 0xf505, 0x7f86, 0xf4ff, 0x7f86, 0xf4f9, 0x7f85, 0xf4f2, - 0x7f85, 0xf4ec, 0x7f84, 0xf4e6, 0x7f83, 0xf4e0, 0x7f83, 0xf4d9, - 0x7f82, 0xf4d3, 0x7f82, 0xf4cd, 0x7f81, 0xf4c6, 0x7f81, 0xf4c0, - 0x7f80, 0xf4ba, 0x7f80, 0xf4b4, 0x7f7f, 0xf4ad, 0x7f7e, 0xf4a7, - 0x7f7e, 0xf4a1, 0x7f7d, 0xf49b, 0x7f7d, 0xf494, 0x7f7c, 0xf48e, - 0x7f7c, 0xf488, 0x7f7b, 0xf482, 0x7f7b, 0xf47b, 0x7f7a, 0xf475, - 0x7f79, 0xf46f, 0x7f79, 0xf469, 0x7f78, 0xf462, 0x7f78, 0xf45c, - 0x7f77, 0xf456, 0x7f77, 0xf450, 0x7f76, 0xf449, 0x7f75, 0xf443, - 0x7f75, 0xf43d, 0x7f74, 0xf437, 0x7f74, 0xf430, 0x7f73, 0xf42a, - 0x7f72, 0xf424, 0x7f72, 0xf41e, 0x7f71, 0xf417, 0x7f71, 0xf411, - 0x7f70, 0xf40b, 0x7f70, 0xf405, 0x7f6f, 0xf3fe, 0x7f6e, 0xf3f8, - 0x7f6e, 0xf3f2, 0x7f6d, 0xf3ec, 0x7f6d, 0xf3e5, 0x7f6c, 0xf3df, - 0x7f6b, 0xf3d9, 0x7f6b, 0xf3d2, 0x7f6a, 0xf3cc, 0x7f6a, 0xf3c6, - 0x7f69, 0xf3c0, 0x7f68, 0xf3b9, 0x7f68, 0xf3b3, 0x7f67, 0xf3ad, - 0x7f67, 0xf3a7, 0x7f66, 0xf3a0, 0x7f65, 0xf39a, 0x7f65, 0xf394, - 0x7f64, 0xf38e, 0x7f64, 0xf387, 0x7f63, 0xf381, 0x7f62, 0xf37b, - 0x7f62, 0xf375, 0x7f61, 0xf36e, 0x7f60, 0xf368, 0x7f60, 0xf362, - 0x7f5f, 0xf35c, 0x7f5f, 0xf355, 0x7f5e, 0xf34f, 0x7f5d, 0xf349, - 0x7f5d, 0xf343, 0x7f5c, 0xf33c, 0x7f5b, 0xf336, 0x7f5b, 0xf330, - 0x7f5a, 0xf32a, 0x7f5a, 0xf323, 0x7f59, 0xf31d, 0x7f58, 0xf317, - 0x7f58, 0xf311, 0x7f57, 0xf30a, 0x7f56, 0xf304, 0x7f56, 0xf2fe, - 0x7f55, 0xf2f8, 0x7f55, 0xf2f1, 0x7f54, 0xf2eb, 0x7f53, 0xf2e5, - 0x7f53, 0xf2df, 0x7f52, 0xf2d8, 0x7f51, 0xf2d2, 0x7f51, 0xf2cc, - 0x7f50, 0xf2c6, 0x7f4f, 0xf2bf, 0x7f4f, 0xf2b9, 0x7f4e, 0xf2b3, - 0x7f4d, 0xf2ad, 0x7f4d, 0xf2a6, 0x7f4c, 0xf2a0, 0x7f4b, 0xf29a, - 0x7f4b, 0xf294, 0x7f4a, 0xf28d, 0x7f49, 0xf287, 0x7f49, 0xf281, - 0x7f48, 0xf27b, 0x7f47, 0xf274, 0x7f47, 0xf26e, 0x7f46, 0xf268, - 0x7f45, 0xf262, 0x7f45, 0xf25b, 0x7f44, 0xf255, 0x7f43, 0xf24f, - 0x7f43, 0xf249, 0x7f42, 0xf242, 0x7f41, 0xf23c, 0x7f41, 0xf236, - 0x7f40, 0xf230, 0x7f3f, 0xf229, 0x7f3f, 0xf223, 0x7f3e, 0xf21d, - 0x7f3d, 0xf217, 0x7f3d, 0xf210, 0x7f3c, 0xf20a, 0x7f3b, 0xf204, - 0x7f3b, 0xf1fe, 0x7f3a, 0xf1f7, 0x7f39, 0xf1f1, 0x7f39, 0xf1eb, - 0x7f38, 0xf1e5, 0x7f37, 0xf1de, 0x7f36, 0xf1d8, 0x7f36, 0xf1d2, - 0x7f35, 0xf1cc, 0x7f34, 0xf1c6, 0x7f34, 0xf1bf, 0x7f33, 0xf1b9, - 0x7f32, 0xf1b3, 0x7f32, 0xf1ad, 0x7f31, 0xf1a6, 0x7f30, 0xf1a0, - 0x7f2f, 0xf19a, 0x7f2f, 0xf194, 0x7f2e, 0xf18d, 0x7f2d, 0xf187, - 0x7f2d, 0xf181, 0x7f2c, 0xf17b, 0x7f2b, 0xf174, 0x7f2a, 0xf16e, - 0x7f2a, 0xf168, 0x7f29, 0xf162, 0x7f28, 0xf15b, 0x7f28, 0xf155, - 0x7f27, 0xf14f, 0x7f26, 0xf149, 0x7f25, 0xf142, 0x7f25, 0xf13c, - 0x7f24, 0xf136, 0x7f23, 0xf130, 0x7f23, 0xf129, 0x7f22, 0xf123, - 0x7f21, 0xf11d, 0x7f20, 0xf117, 0x7f20, 0xf110, 0x7f1f, 0xf10a, - 0x7f1e, 0xf104, 0x7f1d, 0xf0fe, 0x7f1d, 0xf0f8, 0x7f1c, 0xf0f1, - 0x7f1b, 0xf0eb, 0x7f1a, 0xf0e5, 0x7f1a, 0xf0df, 0x7f19, 0xf0d8, - 0x7f18, 0xf0d2, 0x7f17, 0xf0cc, 0x7f17, 0xf0c6, 0x7f16, 0xf0bf, - 0x7f15, 0xf0b9, 0x7f14, 0xf0b3, 0x7f14, 0xf0ad, 0x7f13, 0xf0a6, - 0x7f12, 0xf0a0, 0x7f11, 0xf09a, 0x7f11, 0xf094, 0x7f10, 0xf08d, - 0x7f0f, 0xf087, 0x7f0e, 0xf081, 0x7f0e, 0xf07b, 0x7f0d, 0xf075, - 0x7f0c, 0xf06e, 0x7f0b, 0xf068, 0x7f0b, 0xf062, 0x7f0a, 0xf05c, - 0x7f09, 0xf055, 0x7f08, 0xf04f, 0x7f08, 0xf049, 0x7f07, 0xf043, - 0x7f06, 0xf03c, 0x7f05, 0xf036, 0x7f04, 0xf030, 0x7f04, 0xf02a, - 0x7f03, 0xf023, 0x7f02, 0xf01d, 0x7f01, 0xf017, 0x7f01, 0xf011, - 0x7f00, 0xf00b, 0x7eff, 0xf004, 0x7efe, 0xeffe, 0x7efd, 0xeff8, - 0x7efd, 0xeff2, 0x7efc, 0xefeb, 0x7efb, 0xefe5, 0x7efa, 0xefdf, - 0x7ef9, 0xefd9, 0x7ef9, 0xefd2, 0x7ef8, 0xefcc, 0x7ef7, 0xefc6, - 0x7ef6, 0xefc0, 0x7ef5, 0xefb9, 0x7ef5, 0xefb3, 0x7ef4, 0xefad, - 0x7ef3, 0xefa7, 0x7ef2, 0xefa1, 0x7ef1, 0xef9a, 0x7ef1, 0xef94, - 0x7ef0, 0xef8e, 0x7eef, 0xef88, 0x7eee, 0xef81, 0x7eed, 0xef7b, - 0x7eed, 0xef75, 0x7eec, 0xef6f, 0x7eeb, 0xef68, 0x7eea, 0xef62, - 0x7ee9, 0xef5c, 0x7ee9, 0xef56, 0x7ee8, 0xef50, 0x7ee7, 0xef49, - 0x7ee6, 0xef43, 0x7ee5, 0xef3d, 0x7ee4, 0xef37, 0x7ee4, 0xef30, - 0x7ee3, 0xef2a, 0x7ee2, 0xef24, 0x7ee1, 0xef1e, 0x7ee0, 0xef18, - 0x7edf, 0xef11, 0x7edf, 0xef0b, 0x7ede, 0xef05, 0x7edd, 0xeeff, - 0x7edc, 0xeef8, 0x7edb, 0xeef2, 0x7eda, 0xeeec, 0x7eda, 0xeee6, - 0x7ed9, 0xeedf, 0x7ed8, 0xeed9, 0x7ed7, 0xeed3, 0x7ed6, 0xeecd, - 0x7ed5, 0xeec7, 0x7ed5, 0xeec0, 0x7ed4, 0xeeba, 0x7ed3, 0xeeb4, - 0x7ed2, 0xeeae, 0x7ed1, 0xeea7, 0x7ed0, 0xeea1, 0x7ecf, 0xee9b, - 0x7ecf, 0xee95, 0x7ece, 0xee8f, 0x7ecd, 0xee88, 0x7ecc, 0xee82, - 0x7ecb, 0xee7c, 0x7eca, 0xee76, 0x7ec9, 0xee6f, 0x7ec9, 0xee69, - 0x7ec8, 0xee63, 0x7ec7, 0xee5d, 0x7ec6, 0xee57, 0x7ec5, 0xee50, - 0x7ec4, 0xee4a, 0x7ec3, 0xee44, 0x7ec3, 0xee3e, 0x7ec2, 0xee37, - 0x7ec1, 0xee31, 0x7ec0, 0xee2b, 0x7ebf, 0xee25, 0x7ebe, 0xee1f, - 0x7ebd, 0xee18, 0x7ebc, 0xee12, 0x7ebb, 0xee0c, 0x7ebb, 0xee06, - 0x7eba, 0xedff, 0x7eb9, 0xedf9, 0x7eb8, 0xedf3, 0x7eb7, 0xeded, - 0x7eb6, 0xede7, 0x7eb5, 0xede0, 0x7eb4, 0xedda, 0x7eb4, 0xedd4, - 0x7eb3, 0xedce, 0x7eb2, 0xedc7, 0x7eb1, 0xedc1, 0x7eb0, 0xedbb, - 0x7eaf, 0xedb5, 0x7eae, 0xedaf, 0x7ead, 0xeda8, 0x7eac, 0xeda2, - 0x7eab, 0xed9c, 0x7eab, 0xed96, 0x7eaa, 0xed8f, 0x7ea9, 0xed89, - 0x7ea8, 0xed83, 0x7ea7, 0xed7d, 0x7ea6, 0xed77, 0x7ea5, 0xed70, - 0x7ea4, 0xed6a, 0x7ea3, 0xed64, 0x7ea2, 0xed5e, 0x7ea1, 0xed58, - 0x7ea1, 0xed51, 0x7ea0, 0xed4b, 0x7e9f, 0xed45, 0x7e9e, 0xed3f, - 0x7e9d, 0xed38, 0x7e9c, 0xed32, 0x7e9b, 0xed2c, 0x7e9a, 0xed26, - 0x7e99, 0xed20, 0x7e98, 0xed19, 0x7e97, 0xed13, 0x7e96, 0xed0d, - 0x7e95, 0xed07, 0x7e94, 0xed01, 0x7e94, 0xecfa, 0x7e93, 0xecf4, - 0x7e92, 0xecee, 0x7e91, 0xece8, 0x7e90, 0xece1, 0x7e8f, 0xecdb, - 0x7e8e, 0xecd5, 0x7e8d, 0xeccf, 0x7e8c, 0xecc9, 0x7e8b, 0xecc2, - 0x7e8a, 0xecbc, 0x7e89, 0xecb6, 0x7e88, 0xecb0, 0x7e87, 0xecaa, - 0x7e86, 0xeca3, 0x7e85, 0xec9d, 0x7e84, 0xec97, 0x7e84, 0xec91, - 0x7e83, 0xec8a, 0x7e82, 0xec84, 0x7e81, 0xec7e, 0x7e80, 0xec78, - 0x7e7f, 0xec72, 0x7e7e, 0xec6b, 0x7e7d, 0xec65, 0x7e7c, 0xec5f, - 0x7e7b, 0xec59, 0x7e7a, 0xec53, 0x7e79, 0xec4c, 0x7e78, 0xec46, - 0x7e77, 0xec40, 0x7e76, 0xec3a, 0x7e75, 0xec34, 0x7e74, 0xec2d, - 0x7e73, 0xec27, 0x7e72, 0xec21, 0x7e71, 0xec1b, 0x7e70, 0xec15, - 0x7e6f, 0xec0e, 0x7e6e, 0xec08, 0x7e6d, 0xec02, 0x7e6c, 0xebfc, - 0x7e6b, 0xebf5, 0x7e6a, 0xebef, 0x7e69, 0xebe9, 0x7e68, 0xebe3, - 0x7e67, 0xebdd, 0x7e66, 0xebd6, 0x7e65, 0xebd0, 0x7e64, 0xebca, - 0x7e63, 0xebc4, 0x7e62, 0xebbe, 0x7e61, 0xebb7, 0x7e60, 0xebb1, - 0x7e5f, 0xebab, 0x7e5e, 0xeba5, 0x7e5d, 0xeb9f, 0x7e5c, 0xeb98, - 0x7e5b, 0xeb92, 0x7e5a, 0xeb8c, 0x7e59, 0xeb86, 0x7e58, 0xeb80, - 0x7e57, 0xeb79, 0x7e56, 0xeb73, 0x7e55, 0xeb6d, 0x7e54, 0xeb67, - 0x7e53, 0xeb61, 0x7e52, 0xeb5a, 0x7e51, 0xeb54, 0x7e50, 0xeb4e, - 0x7e4f, 0xeb48, 0x7e4e, 0xeb42, 0x7e4d, 0xeb3b, 0x7e4c, 0xeb35, - 0x7e4b, 0xeb2f, 0x7e4a, 0xeb29, 0x7e49, 0xeb23, 0x7e48, 0xeb1c, - 0x7e47, 0xeb16, 0x7e46, 0xeb10, 0x7e45, 0xeb0a, 0x7e44, 0xeb04, - 0x7e43, 0xeafd, 0x7e42, 0xeaf7, 0x7e41, 0xeaf1, 0x7e40, 0xeaeb, - 0x7e3f, 0xeae5, 0x7e3e, 0xeade, 0x7e3d, 0xead8, 0x7e3c, 0xead2, - 0x7e3b, 0xeacc, 0x7e3a, 0xeac6, 0x7e39, 0xeabf, 0x7e38, 0xeab9, - 0x7e37, 0xeab3, 0x7e35, 0xeaad, 0x7e34, 0xeaa7, 0x7e33, 0xeaa0, - 0x7e32, 0xea9a, 0x7e31, 0xea94, 0x7e30, 0xea8e, 0x7e2f, 0xea88, - 0x7e2e, 0xea81, 0x7e2d, 0xea7b, 0x7e2c, 0xea75, 0x7e2b, 0xea6f, - 0x7e2a, 0xea69, 0x7e29, 0xea63, 0x7e28, 0xea5c, 0x7e27, 0xea56, - 0x7e26, 0xea50, 0x7e25, 0xea4a, 0x7e24, 0xea44, 0x7e22, 0xea3d, - 0x7e21, 0xea37, 0x7e20, 0xea31, 0x7e1f, 0xea2b, 0x7e1e, 0xea25, - 0x7e1d, 0xea1e, 0x7e1c, 0xea18, 0x7e1b, 0xea12, 0x7e1a, 0xea0c, - 0x7e19, 0xea06, 0x7e18, 0xe9ff, 0x7e17, 0xe9f9, 0x7e16, 0xe9f3, - 0x7e14, 0xe9ed, 0x7e13, 0xe9e7, 0x7e12, 0xe9e1, 0x7e11, 0xe9da, - 0x7e10, 0xe9d4, 0x7e0f, 0xe9ce, 0x7e0e, 0xe9c8, 0x7e0d, 0xe9c2, - 0x7e0c, 0xe9bb, 0x7e0b, 0xe9b5, 0x7e0a, 0xe9af, 0x7e08, 0xe9a9, - 0x7e07, 0xe9a3, 0x7e06, 0xe99c, 0x7e05, 0xe996, 0x7e04, 0xe990, - 0x7e03, 0xe98a, 0x7e02, 0xe984, 0x7e01, 0xe97e, 0x7e00, 0xe977, - 0x7dff, 0xe971, 0x7dfd, 0xe96b, 0x7dfc, 0xe965, 0x7dfb, 0xe95f, - 0x7dfa, 0xe958, 0x7df9, 0xe952, 0x7df8, 0xe94c, 0x7df7, 0xe946, - 0x7df6, 0xe940, 0x7df5, 0xe93a, 0x7df3, 0xe933, 0x7df2, 0xe92d, - 0x7df1, 0xe927, 0x7df0, 0xe921, 0x7def, 0xe91b, 0x7dee, 0xe914, - 0x7ded, 0xe90e, 0x7dec, 0xe908, 0x7dea, 0xe902, 0x7de9, 0xe8fc, - 0x7de8, 0xe8f6, 0x7de7, 0xe8ef, 0x7de6, 0xe8e9, 0x7de5, 0xe8e3, - 0x7de4, 0xe8dd, 0x7de2, 0xe8d7, 0x7de1, 0xe8d0, 0x7de0, 0xe8ca, - 0x7ddf, 0xe8c4, 0x7dde, 0xe8be, 0x7ddd, 0xe8b8, 0x7ddc, 0xe8b2, - 0x7dda, 0xe8ab, 0x7dd9, 0xe8a5, 0x7dd8, 0xe89f, 0x7dd7, 0xe899, - 0x7dd6, 0xe893, 0x7dd5, 0xe88c, 0x7dd4, 0xe886, 0x7dd2, 0xe880, - 0x7dd1, 0xe87a, 0x7dd0, 0xe874, 0x7dcf, 0xe86e, 0x7dce, 0xe867, - 0x7dcd, 0xe861, 0x7dcc, 0xe85b, 0x7dca, 0xe855, 0x7dc9, 0xe84f, - 0x7dc8, 0xe849, 0x7dc7, 0xe842, 0x7dc6, 0xe83c, 0x7dc5, 0xe836, - 0x7dc3, 0xe830, 0x7dc2, 0xe82a, 0x7dc1, 0xe823, 0x7dc0, 0xe81d, - 0x7dbf, 0xe817, 0x7dbd, 0xe811, 0x7dbc, 0xe80b, 0x7dbb, 0xe805, - 0x7dba, 0xe7fe, 0x7db9, 0xe7f8, 0x7db8, 0xe7f2, 0x7db6, 0xe7ec, - 0x7db5, 0xe7e6, 0x7db4, 0xe7e0, 0x7db3, 0xe7d9, 0x7db2, 0xe7d3, - 0x7db0, 0xe7cd, 0x7daf, 0xe7c7, 0x7dae, 0xe7c1, 0x7dad, 0xe7bb, - 0x7dac, 0xe7b4, 0x7dab, 0xe7ae, 0x7da9, 0xe7a8, 0x7da8, 0xe7a2, - 0x7da7, 0xe79c, 0x7da6, 0xe796, 0x7da5, 0xe78f, 0x7da3, 0xe789, - 0x7da2, 0xe783, 0x7da1, 0xe77d, 0x7da0, 0xe777, 0x7d9f, 0xe771, - 0x7d9d, 0xe76a, 0x7d9c, 0xe764, 0x7d9b, 0xe75e, 0x7d9a, 0xe758, - 0x7d98, 0xe752, 0x7d97, 0xe74c, 0x7d96, 0xe745, 0x7d95, 0xe73f, - 0x7d94, 0xe739, 0x7d92, 0xe733, 0x7d91, 0xe72d, 0x7d90, 0xe727, - 0x7d8f, 0xe720, 0x7d8e, 0xe71a, 0x7d8c, 0xe714, 0x7d8b, 0xe70e, - 0x7d8a, 0xe708, 0x7d89, 0xe702, 0x7d87, 0xe6fb, 0x7d86, 0xe6f5, - 0x7d85, 0xe6ef, 0x7d84, 0xe6e9, 0x7d82, 0xe6e3, 0x7d81, 0xe6dd, - 0x7d80, 0xe6d6, 0x7d7f, 0xe6d0, 0x7d7e, 0xe6ca, 0x7d7c, 0xe6c4, - 0x7d7b, 0xe6be, 0x7d7a, 0xe6b8, 0x7d79, 0xe6b2, 0x7d77, 0xe6ab, - 0x7d76, 0xe6a5, 0x7d75, 0xe69f, 0x7d74, 0xe699, 0x7d72, 0xe693, - 0x7d71, 0xe68d, 0x7d70, 0xe686, 0x7d6f, 0xe680, 0x7d6d, 0xe67a, - 0x7d6c, 0xe674, 0x7d6b, 0xe66e, 0x7d6a, 0xe668, 0x7d68, 0xe661, - 0x7d67, 0xe65b, 0x7d66, 0xe655, 0x7d65, 0xe64f, 0x7d63, 0xe649, - 0x7d62, 0xe643, 0x7d61, 0xe63d, 0x7d60, 0xe636, 0x7d5e, 0xe630, - 0x7d5d, 0xe62a, 0x7d5c, 0xe624, 0x7d5a, 0xe61e, 0x7d59, 0xe618, - 0x7d58, 0xe611, 0x7d57, 0xe60b, 0x7d55, 0xe605, 0x7d54, 0xe5ff, - 0x7d53, 0xe5f9, 0x7d52, 0xe5f3, 0x7d50, 0xe5ed, 0x7d4f, 0xe5e6, - 0x7d4e, 0xe5e0, 0x7d4c, 0xe5da, 0x7d4b, 0xe5d4, 0x7d4a, 0xe5ce, - 0x7d49, 0xe5c8, 0x7d47, 0xe5c2, 0x7d46, 0xe5bb, 0x7d45, 0xe5b5, - 0x7d43, 0xe5af, 0x7d42, 0xe5a9, 0x7d41, 0xe5a3, 0x7d3f, 0xe59d, - 0x7d3e, 0xe596, 0x7d3d, 0xe590, 0x7d3c, 0xe58a, 0x7d3a, 0xe584, - 0x7d39, 0xe57e, 0x7d38, 0xe578, 0x7d36, 0xe572, 0x7d35, 0xe56b, - 0x7d34, 0xe565, 0x7d32, 0xe55f, 0x7d31, 0xe559, 0x7d30, 0xe553, - 0x7d2f, 0xe54d, 0x7d2d, 0xe547, 0x7d2c, 0xe540, 0x7d2b, 0xe53a, - 0x7d29, 0xe534, 0x7d28, 0xe52e, 0x7d27, 0xe528, 0x7d25, 0xe522, - 0x7d24, 0xe51c, 0x7d23, 0xe515, 0x7d21, 0xe50f, 0x7d20, 0xe509, - 0x7d1f, 0xe503, 0x7d1d, 0xe4fd, 0x7d1c, 0xe4f7, 0x7d1b, 0xe4f1, - 0x7d19, 0xe4ea, 0x7d18, 0xe4e4, 0x7d17, 0xe4de, 0x7d15, 0xe4d8, - 0x7d14, 0xe4d2, 0x7d13, 0xe4cc, 0x7d11, 0xe4c6, 0x7d10, 0xe4bf, - 0x7d0f, 0xe4b9, 0x7d0d, 0xe4b3, 0x7d0c, 0xe4ad, 0x7d0b, 0xe4a7, - 0x7d09, 0xe4a1, 0x7d08, 0xe49b, 0x7d07, 0xe494, 0x7d05, 0xe48e, - 0x7d04, 0xe488, 0x7d03, 0xe482, 0x7d01, 0xe47c, 0x7d00, 0xe476, - 0x7cff, 0xe470, 0x7cfd, 0xe46a, 0x7cfc, 0xe463, 0x7cfb, 0xe45d, - 0x7cf9, 0xe457, 0x7cf8, 0xe451, 0x7cf6, 0xe44b, 0x7cf5, 0xe445, - 0x7cf4, 0xe43f, 0x7cf2, 0xe438, 0x7cf1, 0xe432, 0x7cf0, 0xe42c, - 0x7cee, 0xe426, 0x7ced, 0xe420, 0x7cec, 0xe41a, 0x7cea, 0xe414, - 0x7ce9, 0xe40e, 0x7ce7, 0xe407, 0x7ce6, 0xe401, 0x7ce5, 0xe3fb, - 0x7ce3, 0xe3f5, 0x7ce2, 0xe3ef, 0x7ce1, 0xe3e9, 0x7cdf, 0xe3e3, - 0x7cde, 0xe3dc, 0x7cdc, 0xe3d6, 0x7cdb, 0xe3d0, 0x7cda, 0xe3ca, - 0x7cd8, 0xe3c4, 0x7cd7, 0xe3be, 0x7cd5, 0xe3b8, 0x7cd4, 0xe3b2, - 0x7cd3, 0xe3ab, 0x7cd1, 0xe3a5, 0x7cd0, 0xe39f, 0x7ccf, 0xe399, - 0x7ccd, 0xe393, 0x7ccc, 0xe38d, 0x7cca, 0xe387, 0x7cc9, 0xe381, - 0x7cc8, 0xe37a, 0x7cc6, 0xe374, 0x7cc5, 0xe36e, 0x7cc3, 0xe368, - 0x7cc2, 0xe362, 0x7cc1, 0xe35c, 0x7cbf, 0xe356, 0x7cbe, 0xe350, - 0x7cbc, 0xe349, 0x7cbb, 0xe343, 0x7cb9, 0xe33d, 0x7cb8, 0xe337, - 0x7cb7, 0xe331, 0x7cb5, 0xe32b, 0x7cb4, 0xe325, 0x7cb2, 0xe31f, - 0x7cb1, 0xe318, 0x7cb0, 0xe312, 0x7cae, 0xe30c, 0x7cad, 0xe306, - 0x7cab, 0xe300, 0x7caa, 0xe2fa, 0x7ca8, 0xe2f4, 0x7ca7, 0xe2ee, - 0x7ca6, 0xe2e8, 0x7ca4, 0xe2e1, 0x7ca3, 0xe2db, 0x7ca1, 0xe2d5, - 0x7ca0, 0xe2cf, 0x7c9e, 0xe2c9, 0x7c9d, 0xe2c3, 0x7c9c, 0xe2bd, - 0x7c9a, 0xe2b7, 0x7c99, 0xe2b0, 0x7c97, 0xe2aa, 0x7c96, 0xe2a4, - 0x7c94, 0xe29e, 0x7c93, 0xe298, 0x7c91, 0xe292, 0x7c90, 0xe28c, - 0x7c8f, 0xe286, 0x7c8d, 0xe280, 0x7c8c, 0xe279, 0x7c8a, 0xe273, - 0x7c89, 0xe26d, 0x7c87, 0xe267, 0x7c86, 0xe261, 0x7c84, 0xe25b, - 0x7c83, 0xe255, 0x7c82, 0xe24f, 0x7c80, 0xe249, 0x7c7f, 0xe242, - 0x7c7d, 0xe23c, 0x7c7c, 0xe236, 0x7c7a, 0xe230, 0x7c79, 0xe22a, - 0x7c77, 0xe224, 0x7c76, 0xe21e, 0x7c74, 0xe218, 0x7c73, 0xe212, - 0x7c71, 0xe20b, 0x7c70, 0xe205, 0x7c6e, 0xe1ff, 0x7c6d, 0xe1f9, - 0x7c6c, 0xe1f3, 0x7c6a, 0xe1ed, 0x7c69, 0xe1e7, 0x7c67, 0xe1e1, - 0x7c66, 0xe1db, 0x7c64, 0xe1d4, 0x7c63, 0xe1ce, 0x7c61, 0xe1c8, - 0x7c60, 0xe1c2, 0x7c5e, 0xe1bc, 0x7c5d, 0xe1b6, 0x7c5b, 0xe1b0, - 0x7c5a, 0xe1aa, 0x7c58, 0xe1a4, 0x7c57, 0xe19e, 0x7c55, 0xe197, - 0x7c54, 0xe191, 0x7c52, 0xe18b, 0x7c51, 0xe185, 0x7c4f, 0xe17f, - 0x7c4e, 0xe179, 0x7c4c, 0xe173, 0x7c4b, 0xe16d, 0x7c49, 0xe167, - 0x7c48, 0xe160, 0x7c46, 0xe15a, 0x7c45, 0xe154, 0x7c43, 0xe14e, - 0x7c42, 0xe148, 0x7c40, 0xe142, 0x7c3f, 0xe13c, 0x7c3d, 0xe136, - 0x7c3c, 0xe130, 0x7c3a, 0xe12a, 0x7c39, 0xe123, 0x7c37, 0xe11d, - 0x7c36, 0xe117, 0x7c34, 0xe111, 0x7c33, 0xe10b, 0x7c31, 0xe105, - 0x7c30, 0xe0ff, 0x7c2e, 0xe0f9, 0x7c2d, 0xe0f3, 0x7c2b, 0xe0ed, - 0x7c29, 0xe0e7, 0x7c28, 0xe0e0, 0x7c26, 0xe0da, 0x7c25, 0xe0d4, - 0x7c23, 0xe0ce, 0x7c22, 0xe0c8, 0x7c20, 0xe0c2, 0x7c1f, 0xe0bc, - 0x7c1d, 0xe0b6, 0x7c1c, 0xe0b0, 0x7c1a, 0xe0aa, 0x7c19, 0xe0a3, - 0x7c17, 0xe09d, 0x7c16, 0xe097, 0x7c14, 0xe091, 0x7c12, 0xe08b, - 0x7c11, 0xe085, 0x7c0f, 0xe07f, 0x7c0e, 0xe079, 0x7c0c, 0xe073, - 0x7c0b, 0xe06d, 0x7c09, 0xe067, 0x7c08, 0xe061, 0x7c06, 0xe05a, - 0x7c05, 0xe054, 0x7c03, 0xe04e, 0x7c01, 0xe048, 0x7c00, 0xe042, - 0x7bfe, 0xe03c, 0x7bfd, 0xe036, 0x7bfb, 0xe030, 0x7bfa, 0xe02a, - 0x7bf8, 0xe024, 0x7bf6, 0xe01e, 0x7bf5, 0xe017, 0x7bf3, 0xe011, - 0x7bf2, 0xe00b, 0x7bf0, 0xe005, 0x7bef, 0xdfff, 0x7bed, 0xdff9, - 0x7beb, 0xdff3, 0x7bea, 0xdfed, 0x7be8, 0xdfe7, 0x7be7, 0xdfe1, - 0x7be5, 0xdfdb, 0x7be4, 0xdfd5, 0x7be2, 0xdfce, 0x7be0, 0xdfc8, - 0x7bdf, 0xdfc2, 0x7bdd, 0xdfbc, 0x7bdc, 0xdfb6, 0x7bda, 0xdfb0, - 0x7bd9, 0xdfaa, 0x7bd7, 0xdfa4, 0x7bd5, 0xdf9e, 0x7bd4, 0xdf98, - 0x7bd2, 0xdf92, 0x7bd1, 0xdf8c, 0x7bcf, 0xdf86, 0x7bcd, 0xdf7f, - 0x7bcc, 0xdf79, 0x7bca, 0xdf73, 0x7bc9, 0xdf6d, 0x7bc7, 0xdf67, - 0x7bc5, 0xdf61, 0x7bc4, 0xdf5b, 0x7bc2, 0xdf55, 0x7bc1, 0xdf4f, - 0x7bbf, 0xdf49, 0x7bbd, 0xdf43, 0x7bbc, 0xdf3d, 0x7bba, 0xdf37, - 0x7bb9, 0xdf30, 0x7bb7, 0xdf2a, 0x7bb5, 0xdf24, 0x7bb4, 0xdf1e, - 0x7bb2, 0xdf18, 0x7bb0, 0xdf12, 0x7baf, 0xdf0c, 0x7bad, 0xdf06, - 0x7bac, 0xdf00, 0x7baa, 0xdefa, 0x7ba8, 0xdef4, 0x7ba7, 0xdeee, - 0x7ba5, 0xdee8, 0x7ba3, 0xdee2, 0x7ba2, 0xdedb, 0x7ba0, 0xded5, - 0x7b9f, 0xdecf, 0x7b9d, 0xdec9, 0x7b9b, 0xdec3, 0x7b9a, 0xdebd, - 0x7b98, 0xdeb7, 0x7b96, 0xdeb1, 0x7b95, 0xdeab, 0x7b93, 0xdea5, - 0x7b92, 0xde9f, 0x7b90, 0xde99, 0x7b8e, 0xde93, 0x7b8d, 0xde8d, - 0x7b8b, 0xde87, 0x7b89, 0xde80, 0x7b88, 0xde7a, 0x7b86, 0xde74, - 0x7b84, 0xde6e, 0x7b83, 0xde68, 0x7b81, 0xde62, 0x7b7f, 0xde5c, - 0x7b7e, 0xde56, 0x7b7c, 0xde50, 0x7b7a, 0xde4a, 0x7b79, 0xde44, - 0x7b77, 0xde3e, 0x7b76, 0xde38, 0x7b74, 0xde32, 0x7b72, 0xde2c, - 0x7b71, 0xde26, 0x7b6f, 0xde1f, 0x7b6d, 0xde19, 0x7b6c, 0xde13, - 0x7b6a, 0xde0d, 0x7b68, 0xde07, 0x7b67, 0xde01, 0x7b65, 0xddfb, - 0x7b63, 0xddf5, 0x7b62, 0xddef, 0x7b60, 0xdde9, 0x7b5e, 0xdde3, - 0x7b5d, 0xdddd, 0x7b5b, 0xddd7, 0x7b59, 0xddd1, 0x7b57, 0xddcb, - 0x7b56, 0xddc5, 0x7b54, 0xddbf, 0x7b52, 0xddb9, 0x7b51, 0xddb2, - 0x7b4f, 0xddac, 0x7b4d, 0xdda6, 0x7b4c, 0xdda0, 0x7b4a, 0xdd9a, - 0x7b48, 0xdd94, 0x7b47, 0xdd8e, 0x7b45, 0xdd88, 0x7b43, 0xdd82, - 0x7b42, 0xdd7c, 0x7b40, 0xdd76, 0x7b3e, 0xdd70, 0x7b3c, 0xdd6a, - 0x7b3b, 0xdd64, 0x7b39, 0xdd5e, 0x7b37, 0xdd58, 0x7b36, 0xdd52, - 0x7b34, 0xdd4c, 0x7b32, 0xdd46, 0x7b31, 0xdd40, 0x7b2f, 0xdd39, - 0x7b2d, 0xdd33, 0x7b2b, 0xdd2d, 0x7b2a, 0xdd27, 0x7b28, 0xdd21, - 0x7b26, 0xdd1b, 0x7b25, 0xdd15, 0x7b23, 0xdd0f, 0x7b21, 0xdd09, - 0x7b1f, 0xdd03, 0x7b1e, 0xdcfd, 0x7b1c, 0xdcf7, 0x7b1a, 0xdcf1, - 0x7b19, 0xdceb, 0x7b17, 0xdce5, 0x7b15, 0xdcdf, 0x7b13, 0xdcd9, - 0x7b12, 0xdcd3, 0x7b10, 0xdccd, 0x7b0e, 0xdcc7, 0x7b0c, 0xdcc1, - 0x7b0b, 0xdcbb, 0x7b09, 0xdcb5, 0x7b07, 0xdcae, 0x7b06, 0xdca8, - 0x7b04, 0xdca2, 0x7b02, 0xdc9c, 0x7b00, 0xdc96, 0x7aff, 0xdc90, - 0x7afd, 0xdc8a, 0x7afb, 0xdc84, 0x7af9, 0xdc7e, 0x7af8, 0xdc78, - 0x7af6, 0xdc72, 0x7af4, 0xdc6c, 0x7af2, 0xdc66, 0x7af1, 0xdc60, - 0x7aef, 0xdc5a, 0x7aed, 0xdc54, 0x7aeb, 0xdc4e, 0x7aea, 0xdc48, - 0x7ae8, 0xdc42, 0x7ae6, 0xdc3c, 0x7ae4, 0xdc36, 0x7ae3, 0xdc30, - 0x7ae1, 0xdc2a, 0x7adf, 0xdc24, 0x7add, 0xdc1e, 0x7adc, 0xdc18, - 0x7ada, 0xdc12, 0x7ad8, 0xdc0c, 0x7ad6, 0xdc06, 0x7ad5, 0xdbff, - 0x7ad3, 0xdbf9, 0x7ad1, 0xdbf3, 0x7acf, 0xdbed, 0x7acd, 0xdbe7, - 0x7acc, 0xdbe1, 0x7aca, 0xdbdb, 0x7ac8, 0xdbd5, 0x7ac6, 0xdbcf, - 0x7ac5, 0xdbc9, 0x7ac3, 0xdbc3, 0x7ac1, 0xdbbd, 0x7abf, 0xdbb7, - 0x7abd, 0xdbb1, 0x7abc, 0xdbab, 0x7aba, 0xdba5, 0x7ab8, 0xdb9f, - 0x7ab6, 0xdb99, 0x7ab5, 0xdb93, 0x7ab3, 0xdb8d, 0x7ab1, 0xdb87, - 0x7aaf, 0xdb81, 0x7aad, 0xdb7b, 0x7aac, 0xdb75, 0x7aaa, 0xdb6f, - 0x7aa8, 0xdb69, 0x7aa6, 0xdb63, 0x7aa4, 0xdb5d, 0x7aa3, 0xdb57, - 0x7aa1, 0xdb51, 0x7a9f, 0xdb4b, 0x7a9d, 0xdb45, 0x7a9b, 0xdb3f, - 0x7a9a, 0xdb39, 0x7a98, 0xdb33, 0x7a96, 0xdb2d, 0x7a94, 0xdb27, - 0x7a92, 0xdb21, 0x7a91, 0xdb1b, 0x7a8f, 0xdb15, 0x7a8d, 0xdb0f, - 0x7a8b, 0xdb09, 0x7a89, 0xdb03, 0x7a87, 0xdafd, 0x7a86, 0xdaf7, - 0x7a84, 0xdaf1, 0x7a82, 0xdaea, 0x7a80, 0xdae4, 0x7a7e, 0xdade, - 0x7a7d, 0xdad8, 0x7a7b, 0xdad2, 0x7a79, 0xdacc, 0x7a77, 0xdac6, - 0x7a75, 0xdac0, 0x7a73, 0xdaba, 0x7a72, 0xdab4, 0x7a70, 0xdaae, - 0x7a6e, 0xdaa8, 0x7a6c, 0xdaa2, 0x7a6a, 0xda9c, 0x7a68, 0xda96, - 0x7a67, 0xda90, 0x7a65, 0xda8a, 0x7a63, 0xda84, 0x7a61, 0xda7e, - 0x7a5f, 0xda78, 0x7a5d, 0xda72, 0x7a5c, 0xda6c, 0x7a5a, 0xda66, - 0x7a58, 0xda60, 0x7a56, 0xda5a, 0x7a54, 0xda54, 0x7a52, 0xda4e, - 0x7a50, 0xda48, 0x7a4f, 0xda42, 0x7a4d, 0xda3c, 0x7a4b, 0xda36, - 0x7a49, 0xda30, 0x7a47, 0xda2a, 0x7a45, 0xda24, 0x7a43, 0xda1e, - 0x7a42, 0xda18, 0x7a40, 0xda12, 0x7a3e, 0xda0c, 0x7a3c, 0xda06, - 0x7a3a, 0xda00, 0x7a38, 0xd9fa, 0x7a36, 0xd9f4, 0x7a35, 0xd9ee, - 0x7a33, 0xd9e8, 0x7a31, 0xd9e2, 0x7a2f, 0xd9dc, 0x7a2d, 0xd9d6, - 0x7a2b, 0xd9d0, 0x7a29, 0xd9ca, 0x7a27, 0xd9c4, 0x7a26, 0xd9be, - 0x7a24, 0xd9b8, 0x7a22, 0xd9b2, 0x7a20, 0xd9ac, 0x7a1e, 0xd9a6, - 0x7a1c, 0xd9a0, 0x7a1a, 0xd99a, 0x7a18, 0xd994, 0x7a16, 0xd98e, - 0x7a15, 0xd988, 0x7a13, 0xd982, 0x7a11, 0xd97c, 0x7a0f, 0xd976, - 0x7a0d, 0xd970, 0x7a0b, 0xd96a, 0x7a09, 0xd964, 0x7a07, 0xd95e, - 0x7a05, 0xd958, 0x7a04, 0xd952, 0x7a02, 0xd94c, 0x7a00, 0xd946, - 0x79fe, 0xd940, 0x79fc, 0xd93a, 0x79fa, 0xd934, 0x79f8, 0xd92e, - 0x79f6, 0xd928, 0x79f4, 0xd922, 0x79f2, 0xd91c, 0x79f0, 0xd917, - 0x79ef, 0xd911, 0x79ed, 0xd90b, 0x79eb, 0xd905, 0x79e9, 0xd8ff, - 0x79e7, 0xd8f9, 0x79e5, 0xd8f3, 0x79e3, 0xd8ed, 0x79e1, 0xd8e7, - 0x79df, 0xd8e1, 0x79dd, 0xd8db, 0x79db, 0xd8d5, 0x79d9, 0xd8cf, - 0x79d8, 0xd8c9, 0x79d6, 0xd8c3, 0x79d4, 0xd8bd, 0x79d2, 0xd8b7, - 0x79d0, 0xd8b1, 0x79ce, 0xd8ab, 0x79cc, 0xd8a5, 0x79ca, 0xd89f, - 0x79c8, 0xd899, 0x79c6, 0xd893, 0x79c4, 0xd88d, 0x79c2, 0xd887, - 0x79c0, 0xd881, 0x79be, 0xd87b, 0x79bc, 0xd875, 0x79bb, 0xd86f, - 0x79b9, 0xd869, 0x79b7, 0xd863, 0x79b5, 0xd85d, 0x79b3, 0xd857, - 0x79b1, 0xd851, 0x79af, 0xd84b, 0x79ad, 0xd845, 0x79ab, 0xd83f, - 0x79a9, 0xd839, 0x79a7, 0xd833, 0x79a5, 0xd82d, 0x79a3, 0xd827, - 0x79a1, 0xd821, 0x799f, 0xd81b, 0x799d, 0xd815, 0x799b, 0xd80f, - 0x7999, 0xd80a, 0x7997, 0xd804, 0x7995, 0xd7fe, 0x7993, 0xd7f8, - 0x7992, 0xd7f2, 0x7990, 0xd7ec, 0x798e, 0xd7e6, 0x798c, 0xd7e0, - 0x798a, 0xd7da, 0x7988, 0xd7d4, 0x7986, 0xd7ce, 0x7984, 0xd7c8, - 0x7982, 0xd7c2, 0x7980, 0xd7bc, 0x797e, 0xd7b6, 0x797c, 0xd7b0, - 0x797a, 0xd7aa, 0x7978, 0xd7a4, 0x7976, 0xd79e, 0x7974, 0xd798, - 0x7972, 0xd792, 0x7970, 0xd78c, 0x796e, 0xd786, 0x796c, 0xd780, - 0x796a, 0xd77a, 0x7968, 0xd774, 0x7966, 0xd76e, 0x7964, 0xd768, - 0x7962, 0xd763, 0x7960, 0xd75d, 0x795e, 0xd757, 0x795c, 0xd751, - 0x795a, 0xd74b, 0x7958, 0xd745, 0x7956, 0xd73f, 0x7954, 0xd739, - 0x7952, 0xd733, 0x7950, 0xd72d, 0x794e, 0xd727, 0x794c, 0xd721, - 0x794a, 0xd71b, 0x7948, 0xd715, 0x7946, 0xd70f, 0x7944, 0xd709, - 0x7942, 0xd703, 0x7940, 0xd6fd, 0x793e, 0xd6f7, 0x793c, 0xd6f1, - 0x793a, 0xd6eb, 0x7938, 0xd6e5, 0x7936, 0xd6e0, 0x7934, 0xd6da, - 0x7932, 0xd6d4, 0x7930, 0xd6ce, 0x792e, 0xd6c8, 0x792c, 0xd6c2, - 0x792a, 0xd6bc, 0x7928, 0xd6b6, 0x7926, 0xd6b0, 0x7924, 0xd6aa, - 0x7922, 0xd6a4, 0x7920, 0xd69e, 0x791e, 0xd698, 0x791c, 0xd692, - 0x7919, 0xd68c, 0x7917, 0xd686, 0x7915, 0xd680, 0x7913, 0xd67a, - 0x7911, 0xd675, 0x790f, 0xd66f, 0x790d, 0xd669, 0x790b, 0xd663, - 0x7909, 0xd65d, 0x7907, 0xd657, 0x7905, 0xd651, 0x7903, 0xd64b, - 0x7901, 0xd645, 0x78ff, 0xd63f, 0x78fd, 0xd639, 0x78fb, 0xd633, - 0x78f9, 0xd62d, 0x78f7, 0xd627, 0x78f5, 0xd621, 0x78f3, 0xd61b, - 0x78f1, 0xd615, 0x78ee, 0xd610, 0x78ec, 0xd60a, 0x78ea, 0xd604, - 0x78e8, 0xd5fe, 0x78e6, 0xd5f8, 0x78e4, 0xd5f2, 0x78e2, 0xd5ec, - 0x78e0, 0xd5e6, 0x78de, 0xd5e0, 0x78dc, 0xd5da, 0x78da, 0xd5d4, - 0x78d8, 0xd5ce, 0x78d6, 0xd5c8, 0x78d4, 0xd5c2, 0x78d2, 0xd5bc, - 0x78cf, 0xd5b7, 0x78cd, 0xd5b1, 0x78cb, 0xd5ab, 0x78c9, 0xd5a5, - 0x78c7, 0xd59f, 0x78c5, 0xd599, 0x78c3, 0xd593, 0x78c1, 0xd58d, - 0x78bf, 0xd587, 0x78bd, 0xd581, 0x78bb, 0xd57b, 0x78b9, 0xd575, - 0x78b6, 0xd56f, 0x78b4, 0xd569, 0x78b2, 0xd564, 0x78b0, 0xd55e, - 0x78ae, 0xd558, 0x78ac, 0xd552, 0x78aa, 0xd54c, 0x78a8, 0xd546, - 0x78a6, 0xd540, 0x78a4, 0xd53a, 0x78a2, 0xd534, 0x789f, 0xd52e, - 0x789d, 0xd528, 0x789b, 0xd522, 0x7899, 0xd51c, 0x7897, 0xd517, - 0x7895, 0xd511, 0x7893, 0xd50b, 0x7891, 0xd505, 0x788f, 0xd4ff, - 0x788c, 0xd4f9, 0x788a, 0xd4f3, 0x7888, 0xd4ed, 0x7886, 0xd4e7, - 0x7884, 0xd4e1, 0x7882, 0xd4db, 0x7880, 0xd4d5, 0x787e, 0xd4d0, - 0x787c, 0xd4ca, 0x7879, 0xd4c4, 0x7877, 0xd4be, 0x7875, 0xd4b8, - 0x7873, 0xd4b2, 0x7871, 0xd4ac, 0x786f, 0xd4a6, 0x786d, 0xd4a0, - 0x786b, 0xd49a, 0x7868, 0xd494, 0x7866, 0xd48f, 0x7864, 0xd489, - 0x7862, 0xd483, 0x7860, 0xd47d, 0x785e, 0xd477, 0x785c, 0xd471, - 0x7859, 0xd46b, 0x7857, 0xd465, 0x7855, 0xd45f, 0x7853, 0xd459, - 0x7851, 0xd453, 0x784f, 0xd44e, 0x784d, 0xd448, 0x784a, 0xd442, - 0x7848, 0xd43c, 0x7846, 0xd436, 0x7844, 0xd430, 0x7842, 0xd42a, - 0x7840, 0xd424, 0x783e, 0xd41e, 0x783b, 0xd418, 0x7839, 0xd412, - 0x7837, 0xd40d, 0x7835, 0xd407, 0x7833, 0xd401, 0x7831, 0xd3fb, - 0x782e, 0xd3f5, 0x782c, 0xd3ef, 0x782a, 0xd3e9, 0x7828, 0xd3e3, - 0x7826, 0xd3dd, 0x7824, 0xd3d7, 0x7821, 0xd3d2, 0x781f, 0xd3cc, - 0x781d, 0xd3c6, 0x781b, 0xd3c0, 0x7819, 0xd3ba, 0x7817, 0xd3b4, - 0x7814, 0xd3ae, 0x7812, 0xd3a8, 0x7810, 0xd3a2, 0x780e, 0xd39d, - 0x780c, 0xd397, 0x780a, 0xd391, 0x7807, 0xd38b, 0x7805, 0xd385, - 0x7803, 0xd37f, 0x7801, 0xd379, 0x77ff, 0xd373, 0x77fc, 0xd36d, - 0x77fa, 0xd368, 0x77f8, 0xd362, 0x77f6, 0xd35c, 0x77f4, 0xd356, - 0x77f1, 0xd350, 0x77ef, 0xd34a, 0x77ed, 0xd344, 0x77eb, 0xd33e, - 0x77e9, 0xd338, 0x77e6, 0xd333, 0x77e4, 0xd32d, 0x77e2, 0xd327, - 0x77e0, 0xd321, 0x77de, 0xd31b, 0x77db, 0xd315, 0x77d9, 0xd30f, - 0x77d7, 0xd309, 0x77d5, 0xd303, 0x77d3, 0xd2fe, 0x77d0, 0xd2f8, - 0x77ce, 0xd2f2, 0x77cc, 0xd2ec, 0x77ca, 0xd2e6, 0x77c8, 0xd2e0, - 0x77c5, 0xd2da, 0x77c3, 0xd2d4, 0x77c1, 0xd2cf, 0x77bf, 0xd2c9, - 0x77bc, 0xd2c3, 0x77ba, 0xd2bd, 0x77b8, 0xd2b7, 0x77b6, 0xd2b1, - 0x77b4, 0xd2ab, 0x77b1, 0xd2a5, 0x77af, 0xd2a0, 0x77ad, 0xd29a, - 0x77ab, 0xd294, 0x77a8, 0xd28e, 0x77a6, 0xd288, 0x77a4, 0xd282, - 0x77a2, 0xd27c, 0x77a0, 0xd276, 0x779d, 0xd271, 0x779b, 0xd26b, - 0x7799, 0xd265, 0x7797, 0xd25f, 0x7794, 0xd259, 0x7792, 0xd253, - 0x7790, 0xd24d, 0x778e, 0xd247, 0x778b, 0xd242, 0x7789, 0xd23c, - 0x7787, 0xd236, 0x7785, 0xd230, 0x7782, 0xd22a, 0x7780, 0xd224, - 0x777e, 0xd21e, 0x777c, 0xd219, 0x7779, 0xd213, 0x7777, 0xd20d, - 0x7775, 0xd207, 0x7773, 0xd201, 0x7770, 0xd1fb, 0x776e, 0xd1f5, - 0x776c, 0xd1ef, 0x776a, 0xd1ea, 0x7767, 0xd1e4, 0x7765, 0xd1de, - 0x7763, 0xd1d8, 0x7760, 0xd1d2, 0x775e, 0xd1cc, 0x775c, 0xd1c6, - 0x775a, 0xd1c1, 0x7757, 0xd1bb, 0x7755, 0xd1b5, 0x7753, 0xd1af, - 0x7751, 0xd1a9, 0x774e, 0xd1a3, 0x774c, 0xd19d, 0x774a, 0xd198, - 0x7747, 0xd192, 0x7745, 0xd18c, 0x7743, 0xd186, 0x7741, 0xd180, - 0x773e, 0xd17a, 0x773c, 0xd174, 0x773a, 0xd16f, 0x7738, 0xd169, - 0x7735, 0xd163, 0x7733, 0xd15d, 0x7731, 0xd157, 0x772e, 0xd151, - 0x772c, 0xd14b, 0x772a, 0xd146, 0x7727, 0xd140, 0x7725, 0xd13a, - 0x7723, 0xd134, 0x7721, 0xd12e, 0x771e, 0xd128, 0x771c, 0xd123, - 0x771a, 0xd11d, 0x7717, 0xd117, 0x7715, 0xd111, 0x7713, 0xd10b, - 0x7710, 0xd105, 0x770e, 0xd0ff, 0x770c, 0xd0fa, 0x770a, 0xd0f4, - 0x7707, 0xd0ee, 0x7705, 0xd0e8, 0x7703, 0xd0e2, 0x7700, 0xd0dc, - 0x76fe, 0xd0d7, 0x76fc, 0xd0d1, 0x76f9, 0xd0cb, 0x76f7, 0xd0c5, - 0x76f5, 0xd0bf, 0x76f2, 0xd0b9, 0x76f0, 0xd0b4, 0x76ee, 0xd0ae, - 0x76eb, 0xd0a8, 0x76e9, 0xd0a2, 0x76e7, 0xd09c, 0x76e4, 0xd096, - 0x76e2, 0xd091, 0x76e0, 0xd08b, 0x76dd, 0xd085, 0x76db, 0xd07f, - 0x76d9, 0xd079, 0x76d6, 0xd073, 0x76d4, 0xd06e, 0x76d2, 0xd068, - 0x76cf, 0xd062, 0x76cd, 0xd05c, 0x76cb, 0xd056, 0x76c8, 0xd050, - 0x76c6, 0xd04b, 0x76c4, 0xd045, 0x76c1, 0xd03f, 0x76bf, 0xd039, - 0x76bd, 0xd033, 0x76ba, 0xd02d, 0x76b8, 0xd028, 0x76b6, 0xd022, - 0x76b3, 0xd01c, 0x76b1, 0xd016, 0x76af, 0xd010, 0x76ac, 0xd00a, - 0x76aa, 0xd005, 0x76a8, 0xcfff, 0x76a5, 0xcff9, 0x76a3, 0xcff3, - 0x76a0, 0xcfed, 0x769e, 0xcfe7, 0x769c, 0xcfe2, 0x7699, 0xcfdc, - 0x7697, 0xcfd6, 0x7695, 0xcfd0, 0x7692, 0xcfca, 0x7690, 0xcfc5, - 0x768e, 0xcfbf, 0x768b, 0xcfb9, 0x7689, 0xcfb3, 0x7686, 0xcfad, - 0x7684, 0xcfa7, 0x7682, 0xcfa2, 0x767f, 0xcf9c, 0x767d, 0xcf96, - 0x767b, 0xcf90, 0x7678, 0xcf8a, 0x7676, 0xcf85, 0x7673, 0xcf7f, - 0x7671, 0xcf79, 0x766f, 0xcf73, 0x766c, 0xcf6d, 0x766a, 0xcf67, - 0x7668, 0xcf62, 0x7665, 0xcf5c, 0x7663, 0xcf56, 0x7660, 0xcf50, - 0x765e, 0xcf4a, 0x765c, 0xcf45, 0x7659, 0xcf3f, 0x7657, 0xcf39, - 0x7654, 0xcf33, 0x7652, 0xcf2d, 0x7650, 0xcf28, 0x764d, 0xcf22, - 0x764b, 0xcf1c, 0x7648, 0xcf16, 0x7646, 0xcf10, 0x7644, 0xcf0b, - 0x7641, 0xcf05, 0x763f, 0xceff, 0x763c, 0xcef9, 0x763a, 0xcef3, - 0x7638, 0xceee, 0x7635, 0xcee8, 0x7633, 0xcee2, 0x7630, 0xcedc, - 0x762e, 0xced6, 0x762b, 0xced1, 0x7629, 0xcecb, 0x7627, 0xcec5, - 0x7624, 0xcebf, 0x7622, 0xceb9, 0x761f, 0xceb4, 0x761d, 0xceae, - 0x761b, 0xcea8, 0x7618, 0xcea2, 0x7616, 0xce9c, 0x7613, 0xce97, - 0x7611, 0xce91, 0x760e, 0xce8b, 0x760c, 0xce85, 0x760a, 0xce7f, - 0x7607, 0xce7a, 0x7605, 0xce74, 0x7602, 0xce6e, 0x7600, 0xce68, - 0x75fd, 0xce62, 0x75fb, 0xce5d, 0x75f9, 0xce57, 0x75f6, 0xce51, - 0x75f4, 0xce4b, 0x75f1, 0xce45, 0x75ef, 0xce40, 0x75ec, 0xce3a, - 0x75ea, 0xce34, 0x75e7, 0xce2e, 0x75e5, 0xce28, 0x75e3, 0xce23, - 0x75e0, 0xce1d, 0x75de, 0xce17, 0x75db, 0xce11, 0x75d9, 0xce0c, - 0x75d6, 0xce06, 0x75d4, 0xce00, 0x75d1, 0xcdfa, 0x75cf, 0xcdf4, - 0x75cc, 0xcdef, 0x75ca, 0xcde9, 0x75c8, 0xcde3, 0x75c5, 0xcddd, - 0x75c3, 0xcdd8, 0x75c0, 0xcdd2, 0x75be, 0xcdcc, 0x75bb, 0xcdc6, - 0x75b9, 0xcdc0, 0x75b6, 0xcdbb, 0x75b4, 0xcdb5, 0x75b1, 0xcdaf, - 0x75af, 0xcda9, 0x75ac, 0xcda3, 0x75aa, 0xcd9e, 0x75a7, 0xcd98, - 0x75a5, 0xcd92, 0x75a3, 0xcd8c, 0x75a0, 0xcd87, 0x759e, 0xcd81, - 0x759b, 0xcd7b, 0x7599, 0xcd75, 0x7596, 0xcd70, 0x7594, 0xcd6a, - 0x7591, 0xcd64, 0x758f, 0xcd5e, 0x758c, 0xcd58, 0x758a, 0xcd53, - 0x7587, 0xcd4d, 0x7585, 0xcd47, 0x7582, 0xcd41, 0x7580, 0xcd3c, - 0x757d, 0xcd36, 0x757b, 0xcd30, 0x7578, 0xcd2a, 0x7576, 0xcd25, - 0x7573, 0xcd1f, 0x7571, 0xcd19, 0x756e, 0xcd13, 0x756c, 0xcd0d, - 0x7569, 0xcd08, 0x7567, 0xcd02, 0x7564, 0xccfc, 0x7562, 0xccf6, - 0x755f, 0xccf1, 0x755d, 0xcceb, 0x755a, 0xcce5, 0x7558, 0xccdf, - 0x7555, 0xccda, 0x7553, 0xccd4, 0x7550, 0xccce, 0x754e, 0xccc8, - 0x754b, 0xccc3, 0x7549, 0xccbd, 0x7546, 0xccb7, 0x7544, 0xccb1, - 0x7541, 0xccac, 0x753f, 0xcca6, 0x753c, 0xcca0, 0x753a, 0xcc9a, - 0x7537, 0xcc95, 0x7535, 0xcc8f, 0x7532, 0xcc89, 0x752f, 0xcc83, - 0x752d, 0xcc7e, 0x752a, 0xcc78, 0x7528, 0xcc72, 0x7525, 0xcc6c, - 0x7523, 0xcc67, 0x7520, 0xcc61, 0x751e, 0xcc5b, 0x751b, 0xcc55, - 0x7519, 0xcc50, 0x7516, 0xcc4a, 0x7514, 0xcc44, 0x7511, 0xcc3e, - 0x750f, 0xcc39, 0x750c, 0xcc33, 0x7509, 0xcc2d, 0x7507, 0xcc27, - 0x7504, 0xcc22, 0x7502, 0xcc1c, 0x74ff, 0xcc16, 0x74fd, 0xcc10, - 0x74fa, 0xcc0b, 0x74f8, 0xcc05, 0x74f5, 0xcbff, 0x74f2, 0xcbf9, - 0x74f0, 0xcbf4, 0x74ed, 0xcbee, 0x74eb, 0xcbe8, 0x74e8, 0xcbe2, - 0x74e6, 0xcbdd, 0x74e3, 0xcbd7, 0x74e1, 0xcbd1, 0x74de, 0xcbcb, - 0x74db, 0xcbc6, 0x74d9, 0xcbc0, 0x74d6, 0xcbba, 0x74d4, 0xcbb5, - 0x74d1, 0xcbaf, 0x74cf, 0xcba9, 0x74cc, 0xcba3, 0x74c9, 0xcb9e, - 0x74c7, 0xcb98, 0x74c4, 0xcb92, 0x74c2, 0xcb8c, 0x74bf, 0xcb87, - 0x74bd, 0xcb81, 0x74ba, 0xcb7b, 0x74b7, 0xcb75, 0x74b5, 0xcb70, - 0x74b2, 0xcb6a, 0x74b0, 0xcb64, 0x74ad, 0xcb5f, 0x74ab, 0xcb59, - 0x74a8, 0xcb53, 0x74a5, 0xcb4d, 0x74a3, 0xcb48, 0x74a0, 0xcb42, - 0x749e, 0xcb3c, 0x749b, 0xcb36, 0x7498, 0xcb31, 0x7496, 0xcb2b, - 0x7493, 0xcb25, 0x7491, 0xcb20, 0x748e, 0xcb1a, 0x748b, 0xcb14, - 0x7489, 0xcb0e, 0x7486, 0xcb09, 0x7484, 0xcb03, 0x7481, 0xcafd, - 0x747e, 0xcaf8, 0x747c, 0xcaf2, 0x7479, 0xcaec, 0x7477, 0xcae6, - 0x7474, 0xcae1, 0x7471, 0xcadb, 0x746f, 0xcad5, 0x746c, 0xcad0, - 0x746a, 0xcaca, 0x7467, 0xcac4, 0x7464, 0xcabe, 0x7462, 0xcab9, - 0x745f, 0xcab3, 0x745c, 0xcaad, 0x745a, 0xcaa8, 0x7457, 0xcaa2, - 0x7455, 0xca9c, 0x7452, 0xca96, 0x744f, 0xca91, 0x744d, 0xca8b, - 0x744a, 0xca85, 0x7448, 0xca80, 0x7445, 0xca7a, 0x7442, 0xca74, - 0x7440, 0xca6e, 0x743d, 0xca69, 0x743a, 0xca63, 0x7438, 0xca5d, - 0x7435, 0xca58, 0x7432, 0xca52, 0x7430, 0xca4c, 0x742d, 0xca46, - 0x742b, 0xca41, 0x7428, 0xca3b, 0x7425, 0xca35, 0x7423, 0xca30, - 0x7420, 0xca2a, 0x741d, 0xca24, 0x741b, 0xca1f, 0x7418, 0xca19, - 0x7415, 0xca13, 0x7413, 0xca0d, 0x7410, 0xca08, 0x740d, 0xca02, - 0x740b, 0xc9fc, 0x7408, 0xc9f7, 0x7406, 0xc9f1, 0x7403, 0xc9eb, - 0x7400, 0xc9e6, 0x73fe, 0xc9e0, 0x73fb, 0xc9da, 0x73f8, 0xc9d5, - 0x73f6, 0xc9cf, 0x73f3, 0xc9c9, 0x73f0, 0xc9c3, 0x73ee, 0xc9be, - 0x73eb, 0xc9b8, 0x73e8, 0xc9b2, 0x73e6, 0xc9ad, 0x73e3, 0xc9a7, - 0x73e0, 0xc9a1, 0x73de, 0xc99c, 0x73db, 0xc996, 0x73d8, 0xc990, - 0x73d6, 0xc98b, 0x73d3, 0xc985, 0x73d0, 0xc97f, 0x73ce, 0xc97a, - 0x73cb, 0xc974, 0x73c8, 0xc96e, 0x73c6, 0xc968, 0x73c3, 0xc963, - 0x73c0, 0xc95d, 0x73bd, 0xc957, 0x73bb, 0xc952, 0x73b8, 0xc94c, - 0x73b5, 0xc946, 0x73b3, 0xc941, 0x73b0, 0xc93b, 0x73ad, 0xc935, - 0x73ab, 0xc930, 0x73a8, 0xc92a, 0x73a5, 0xc924, 0x73a3, 0xc91f, - 0x73a0, 0xc919, 0x739d, 0xc913, 0x739b, 0xc90e, 0x7398, 0xc908, - 0x7395, 0xc902, 0x7392, 0xc8fd, 0x7390, 0xc8f7, 0x738d, 0xc8f1, - 0x738a, 0xc8ec, 0x7388, 0xc8e6, 0x7385, 0xc8e0, 0x7382, 0xc8db, - 0x737f, 0xc8d5, 0x737d, 0xc8cf, 0x737a, 0xc8ca, 0x7377, 0xc8c4, - 0x7375, 0xc8be, 0x7372, 0xc8b9, 0x736f, 0xc8b3, 0x736c, 0xc8ad, - 0x736a, 0xc8a8, 0x7367, 0xc8a2, 0x7364, 0xc89c, 0x7362, 0xc897, - 0x735f, 0xc891, 0x735c, 0xc88b, 0x7359, 0xc886, 0x7357, 0xc880, - 0x7354, 0xc87a, 0x7351, 0xc875, 0x734f, 0xc86f, 0x734c, 0xc869, - 0x7349, 0xc864, 0x7346, 0xc85e, 0x7344, 0xc858, 0x7341, 0xc853, - 0x733e, 0xc84d, 0x733b, 0xc847, 0x7339, 0xc842, 0x7336, 0xc83c, - 0x7333, 0xc836, 0x7330, 0xc831, 0x732e, 0xc82b, 0x732b, 0xc825, - 0x7328, 0xc820, 0x7326, 0xc81a, 0x7323, 0xc814, 0x7320, 0xc80f, - 0x731d, 0xc809, 0x731b, 0xc803, 0x7318, 0xc7fe, 0x7315, 0xc7f8, - 0x7312, 0xc7f3, 0x7310, 0xc7ed, 0x730d, 0xc7e7, 0x730a, 0xc7e2, - 0x7307, 0xc7dc, 0x7305, 0xc7d6, 0x7302, 0xc7d1, 0x72ff, 0xc7cb, - 0x72fc, 0xc7c5, 0x72f9, 0xc7c0, 0x72f7, 0xc7ba, 0x72f4, 0xc7b4, - 0x72f1, 0xc7af, 0x72ee, 0xc7a9, 0x72ec, 0xc7a3, 0x72e9, 0xc79e, - 0x72e6, 0xc798, 0x72e3, 0xc793, 0x72e1, 0xc78d, 0x72de, 0xc787, - 0x72db, 0xc782, 0x72d8, 0xc77c, 0x72d5, 0xc776, 0x72d3, 0xc771, - 0x72d0, 0xc76b, 0x72cd, 0xc765, 0x72ca, 0xc760, 0x72c8, 0xc75a, - 0x72c5, 0xc755, 0x72c2, 0xc74f, 0x72bf, 0xc749, 0x72bc, 0xc744, - 0x72ba, 0xc73e, 0x72b7, 0xc738, 0x72b4, 0xc733, 0x72b1, 0xc72d, - 0x72af, 0xc728, 0x72ac, 0xc722, 0x72a9, 0xc71c, 0x72a6, 0xc717, - 0x72a3, 0xc711, 0x72a1, 0xc70b, 0x729e, 0xc706, 0x729b, 0xc700, - 0x7298, 0xc6fa, 0x7295, 0xc6f5, 0x7293, 0xc6ef, 0x7290, 0xc6ea, - 0x728d, 0xc6e4, 0x728a, 0xc6de, 0x7287, 0xc6d9, 0x7285, 0xc6d3, - 0x7282, 0xc6ce, 0x727f, 0xc6c8, 0x727c, 0xc6c2, 0x7279, 0xc6bd, - 0x7276, 0xc6b7, 0x7274, 0xc6b1, 0x7271, 0xc6ac, 0x726e, 0xc6a6, - 0x726b, 0xc6a1, 0x7268, 0xc69b, 0x7266, 0xc695, 0x7263, 0xc690, - 0x7260, 0xc68a, 0x725d, 0xc684, 0x725a, 0xc67f, 0x7257, 0xc679, - 0x7255, 0xc674, 0x7252, 0xc66e, 0x724f, 0xc668, 0x724c, 0xc663, - 0x7249, 0xc65d, 0x7247, 0xc658, 0x7244, 0xc652, 0x7241, 0xc64c, - 0x723e, 0xc647, 0x723b, 0xc641, 0x7238, 0xc63c, 0x7236, 0xc636, - 0x7233, 0xc630, 0x7230, 0xc62b, 0x722d, 0xc625, 0x722a, 0xc620, - 0x7227, 0xc61a, 0x7224, 0xc614, 0x7222, 0xc60f, 0x721f, 0xc609, - 0x721c, 0xc603, 0x7219, 0xc5fe, 0x7216, 0xc5f8, 0x7213, 0xc5f3, - 0x7211, 0xc5ed, 0x720e, 0xc5e7, 0x720b, 0xc5e2, 0x7208, 0xc5dc, - 0x7205, 0xc5d7, 0x7202, 0xc5d1, 0x71ff, 0xc5cc, 0x71fd, 0xc5c6, - 0x71fa, 0xc5c0, 0x71f7, 0xc5bb, 0x71f4, 0xc5b5, 0x71f1, 0xc5b0, - 0x71ee, 0xc5aa, 0x71eb, 0xc5a4, 0x71e9, 0xc59f, 0x71e6, 0xc599, - 0x71e3, 0xc594, 0x71e0, 0xc58e, 0x71dd, 0xc588, 0x71da, 0xc583, - 0x71d7, 0xc57d, 0x71d4, 0xc578, 0x71d2, 0xc572, 0x71cf, 0xc56c, - 0x71cc, 0xc567, 0x71c9, 0xc561, 0x71c6, 0xc55c, 0x71c3, 0xc556, - 0x71c0, 0xc551, 0x71bd, 0xc54b, 0x71bb, 0xc545, 0x71b8, 0xc540, - 0x71b5, 0xc53a, 0x71b2, 0xc535, 0x71af, 0xc52f, 0x71ac, 0xc529, - 0x71a9, 0xc524, 0x71a6, 0xc51e, 0x71a3, 0xc519, 0x71a1, 0xc513, - 0x719e, 0xc50e, 0x719b, 0xc508, 0x7198, 0xc502, 0x7195, 0xc4fd, - 0x7192, 0xc4f7, 0x718f, 0xc4f2, 0x718c, 0xc4ec, 0x7189, 0xc4e7, - 0x7186, 0xc4e1, 0x7184, 0xc4db, 0x7181, 0xc4d6, 0x717e, 0xc4d0, - 0x717b, 0xc4cb, 0x7178, 0xc4c5, 0x7175, 0xc4c0, 0x7172, 0xc4ba, - 0x716f, 0xc4b4, 0x716c, 0xc4af, 0x7169, 0xc4a9, 0x7167, 0xc4a4, - 0x7164, 0xc49e, 0x7161, 0xc499, 0x715e, 0xc493, 0x715b, 0xc48d, - 0x7158, 0xc488, 0x7155, 0xc482, 0x7152, 0xc47d, 0x714f, 0xc477, - 0x714c, 0xc472, 0x7149, 0xc46c, 0x7146, 0xc467, 0x7143, 0xc461, - 0x7141, 0xc45b, 0x713e, 0xc456, 0x713b, 0xc450, 0x7138, 0xc44b, - 0x7135, 0xc445, 0x7132, 0xc440, 0x712f, 0xc43a, 0x712c, 0xc434, - 0x7129, 0xc42f, 0x7126, 0xc429, 0x7123, 0xc424, 0x7120, 0xc41e, - 0x711d, 0xc419, 0x711a, 0xc413, 0x7117, 0xc40e, 0x7114, 0xc408, - 0x7112, 0xc403, 0x710f, 0xc3fd, 0x710c, 0xc3f7, 0x7109, 0xc3f2, - 0x7106, 0xc3ec, 0x7103, 0xc3e7, 0x7100, 0xc3e1, 0x70fd, 0xc3dc, - 0x70fa, 0xc3d6, 0x70f7, 0xc3d1, 0x70f4, 0xc3cb, 0x70f1, 0xc3c5, - 0x70ee, 0xc3c0, 0x70eb, 0xc3ba, 0x70e8, 0xc3b5, 0x70e5, 0xc3af, - 0x70e2, 0xc3aa, 0x70df, 0xc3a4, 0x70dc, 0xc39f, 0x70d9, 0xc399, - 0x70d6, 0xc394, 0x70d3, 0xc38e, 0x70d1, 0xc389, 0x70ce, 0xc383, - 0x70cb, 0xc37d, 0x70c8, 0xc378, 0x70c5, 0xc372, 0x70c2, 0xc36d, - 0x70bf, 0xc367, 0x70bc, 0xc362, 0x70b9, 0xc35c, 0x70b6, 0xc357, - 0x70b3, 0xc351, 0x70b0, 0xc34c, 0x70ad, 0xc346, 0x70aa, 0xc341, - 0x70a7, 0xc33b, 0x70a4, 0xc336, 0x70a1, 0xc330, 0x709e, 0xc32a, - 0x709b, 0xc325, 0x7098, 0xc31f, 0x7095, 0xc31a, 0x7092, 0xc314, - 0x708f, 0xc30f, 0x708c, 0xc309, 0x7089, 0xc304, 0x7086, 0xc2fe, - 0x7083, 0xc2f9, 0x7080, 0xc2f3, 0x707d, 0xc2ee, 0x707a, 0xc2e8, - 0x7077, 0xc2e3, 0x7074, 0xc2dd, 0x7071, 0xc2d8, 0x706e, 0xc2d2, - 0x706b, 0xc2cd, 0x7068, 0xc2c7, 0x7065, 0xc2c2, 0x7062, 0xc2bc, - 0x705f, 0xc2b7, 0x705c, 0xc2b1, 0x7059, 0xc2ab, 0x7056, 0xc2a6, - 0x7053, 0xc2a0, 0x7050, 0xc29b, 0x704d, 0xc295, 0x704a, 0xc290, - 0x7047, 0xc28a, 0x7044, 0xc285, 0x7041, 0xc27f, 0x703e, 0xc27a, - 0x703b, 0xc274, 0x7038, 0xc26f, 0x7035, 0xc269, 0x7032, 0xc264, - 0x702f, 0xc25e, 0x702c, 0xc259, 0x7029, 0xc253, 0x7026, 0xc24e, - 0x7023, 0xc248, 0x7020, 0xc243, 0x701d, 0xc23d, 0x7019, 0xc238, - 0x7016, 0xc232, 0x7013, 0xc22d, 0x7010, 0xc227, 0x700d, 0xc222, - 0x700a, 0xc21c, 0x7007, 0xc217, 0x7004, 0xc211, 0x7001, 0xc20c, - 0x6ffe, 0xc206, 0x6ffb, 0xc201, 0x6ff8, 0xc1fb, 0x6ff5, 0xc1f6, - 0x6ff2, 0xc1f0, 0x6fef, 0xc1eb, 0x6fec, 0xc1e5, 0x6fe9, 0xc1e0, - 0x6fe6, 0xc1da, 0x6fe3, 0xc1d5, 0x6fe0, 0xc1cf, 0x6fdd, 0xc1ca, - 0x6fda, 0xc1c4, 0x6fd6, 0xc1bf, 0x6fd3, 0xc1b9, 0x6fd0, 0xc1b4, - 0x6fcd, 0xc1ae, 0x6fca, 0xc1a9, 0x6fc7, 0xc1a3, 0x6fc4, 0xc19e, - 0x6fc1, 0xc198, 0x6fbe, 0xc193, 0x6fbb, 0xc18d, 0x6fb8, 0xc188, - 0x6fb5, 0xc183, 0x6fb2, 0xc17d, 0x6faf, 0xc178, 0x6fac, 0xc172, - 0x6fa9, 0xc16d, 0x6fa5, 0xc167, 0x6fa2, 0xc162, 0x6f9f, 0xc15c, - 0x6f9c, 0xc157, 0x6f99, 0xc151, 0x6f96, 0xc14c, 0x6f93, 0xc146, - 0x6f90, 0xc141, 0x6f8d, 0xc13b, 0x6f8a, 0xc136, 0x6f87, 0xc130, - 0x6f84, 0xc12b, 0x6f81, 0xc125, 0x6f7d, 0xc120, 0x6f7a, 0xc11a, - 0x6f77, 0xc115, 0x6f74, 0xc10f, 0x6f71, 0xc10a, 0x6f6e, 0xc105, - 0x6f6b, 0xc0ff, 0x6f68, 0xc0fa, 0x6f65, 0xc0f4, 0x6f62, 0xc0ef, - 0x6f5f, 0xc0e9, 0x6f5b, 0xc0e4, 0x6f58, 0xc0de, 0x6f55, 0xc0d9, - 0x6f52, 0xc0d3, 0x6f4f, 0xc0ce, 0x6f4c, 0xc0c8, 0x6f49, 0xc0c3, - 0x6f46, 0xc0bd, 0x6f43, 0xc0b8, 0x6f3f, 0xc0b3, 0x6f3c, 0xc0ad, - 0x6f39, 0xc0a8, 0x6f36, 0xc0a2, 0x6f33, 0xc09d, 0x6f30, 0xc097, - 0x6f2d, 0xc092, 0x6f2a, 0xc08c, 0x6f27, 0xc087, 0x6f23, 0xc081, - 0x6f20, 0xc07c, 0x6f1d, 0xc077, 0x6f1a, 0xc071, 0x6f17, 0xc06c, - 0x6f14, 0xc066, 0x6f11, 0xc061, 0x6f0e, 0xc05b, 0x6f0b, 0xc056, - 0x6f07, 0xc050, 0x6f04, 0xc04b, 0x6f01, 0xc045, 0x6efe, 0xc040, - 0x6efb, 0xc03b, 0x6ef8, 0xc035, 0x6ef5, 0xc030, 0x6ef1, 0xc02a, - 0x6eee, 0xc025, 0x6eeb, 0xc01f, 0x6ee8, 0xc01a, 0x6ee5, 0xc014, - 0x6ee2, 0xc00f, 0x6edf, 0xc00a, 0x6edc, 0xc004, 0x6ed8, 0xbfff, - 0x6ed5, 0xbff9, 0x6ed2, 0xbff4, 0x6ecf, 0xbfee, 0x6ecc, 0xbfe9, - 0x6ec9, 0xbfe3, 0x6ec6, 0xbfde, 0x6ec2, 0xbfd9, 0x6ebf, 0xbfd3, - 0x6ebc, 0xbfce, 0x6eb9, 0xbfc8, 0x6eb6, 0xbfc3, 0x6eb3, 0xbfbd, - 0x6eaf, 0xbfb8, 0x6eac, 0xbfb3, 0x6ea9, 0xbfad, 0x6ea6, 0xbfa8, - 0x6ea3, 0xbfa2, 0x6ea0, 0xbf9d, 0x6e9c, 0xbf97, 0x6e99, 0xbf92, - 0x6e96, 0xbf8d, 0x6e93, 0xbf87, 0x6e90, 0xbf82, 0x6e8d, 0xbf7c, - 0x6e89, 0xbf77, 0x6e86, 0xbf71, 0x6e83, 0xbf6c, 0x6e80, 0xbf67, - 0x6e7d, 0xbf61, 0x6e7a, 0xbf5c, 0x6e76, 0xbf56, 0x6e73, 0xbf51, - 0x6e70, 0xbf4b, 0x6e6d, 0xbf46, 0x6e6a, 0xbf41, 0x6e67, 0xbf3b, - 0x6e63, 0xbf36, 0x6e60, 0xbf30, 0x6e5d, 0xbf2b, 0x6e5a, 0xbf26, - 0x6e57, 0xbf20, 0x6e53, 0xbf1b, 0x6e50, 0xbf15, 0x6e4d, 0xbf10, - 0x6e4a, 0xbf0a, 0x6e47, 0xbf05, 0x6e44, 0xbf00, 0x6e40, 0xbefa, - 0x6e3d, 0xbef5, 0x6e3a, 0xbeef, 0x6e37, 0xbeea, 0x6e34, 0xbee5, - 0x6e30, 0xbedf, 0x6e2d, 0xbeda, 0x6e2a, 0xbed4, 0x6e27, 0xbecf, - 0x6e24, 0xbeca, 0x6e20, 0xbec4, 0x6e1d, 0xbebf, 0x6e1a, 0xbeb9, - 0x6e17, 0xbeb4, 0x6e14, 0xbeae, 0x6e10, 0xbea9, 0x6e0d, 0xbea4, - 0x6e0a, 0xbe9e, 0x6e07, 0xbe99, 0x6e04, 0xbe93, 0x6e00, 0xbe8e, - 0x6dfd, 0xbe89, 0x6dfa, 0xbe83, 0x6df7, 0xbe7e, 0x6df3, 0xbe78, - 0x6df0, 0xbe73, 0x6ded, 0xbe6e, 0x6dea, 0xbe68, 0x6de7, 0xbe63, - 0x6de3, 0xbe5e, 0x6de0, 0xbe58, 0x6ddd, 0xbe53, 0x6dda, 0xbe4d, - 0x6dd6, 0xbe48, 0x6dd3, 0xbe43, 0x6dd0, 0xbe3d, 0x6dcd, 0xbe38, - 0x6dca, 0xbe32, 0x6dc6, 0xbe2d, 0x6dc3, 0xbe28, 0x6dc0, 0xbe22, - 0x6dbd, 0xbe1d, 0x6db9, 0xbe17, 0x6db6, 0xbe12, 0x6db3, 0xbe0d, - 0x6db0, 0xbe07, 0x6dac, 0xbe02, 0x6da9, 0xbdfd, 0x6da6, 0xbdf7, - 0x6da3, 0xbdf2, 0x6d9f, 0xbdec, 0x6d9c, 0xbde7, 0x6d99, 0xbde2, - 0x6d96, 0xbddc, 0x6d92, 0xbdd7, 0x6d8f, 0xbdd1, 0x6d8c, 0xbdcc, - 0x6d89, 0xbdc7, 0x6d85, 0xbdc1, 0x6d82, 0xbdbc, 0x6d7f, 0xbdb7, - 0x6d7c, 0xbdb1, 0x6d78, 0xbdac, 0x6d75, 0xbda6, 0x6d72, 0xbda1, - 0x6d6f, 0xbd9c, 0x6d6b, 0xbd96, 0x6d68, 0xbd91, 0x6d65, 0xbd8c, - 0x6d62, 0xbd86, 0x6d5e, 0xbd81, 0x6d5b, 0xbd7c, 0x6d58, 0xbd76, - 0x6d55, 0xbd71, 0x6d51, 0xbd6b, 0x6d4e, 0xbd66, 0x6d4b, 0xbd61, - 0x6d48, 0xbd5b, 0x6d44, 0xbd56, 0x6d41, 0xbd51, 0x6d3e, 0xbd4b, - 0x6d3a, 0xbd46, 0x6d37, 0xbd40, 0x6d34, 0xbd3b, 0x6d31, 0xbd36, - 0x6d2d, 0xbd30, 0x6d2a, 0xbd2b, 0x6d27, 0xbd26, 0x6d23, 0xbd20, - 0x6d20, 0xbd1b, 0x6d1d, 0xbd16, 0x6d1a, 0xbd10, 0x6d16, 0xbd0b, - 0x6d13, 0xbd06, 0x6d10, 0xbd00, 0x6d0c, 0xbcfb, 0x6d09, 0xbcf5, - 0x6d06, 0xbcf0, 0x6d03, 0xbceb, 0x6cff, 0xbce5, 0x6cfc, 0xbce0, - 0x6cf9, 0xbcdb, 0x6cf5, 0xbcd5, 0x6cf2, 0xbcd0, 0x6cef, 0xbccb, - 0x6cec, 0xbcc5, 0x6ce8, 0xbcc0, 0x6ce5, 0xbcbb, 0x6ce2, 0xbcb5, - 0x6cde, 0xbcb0, 0x6cdb, 0xbcab, 0x6cd8, 0xbca5, 0x6cd4, 0xbca0, - 0x6cd1, 0xbc9b, 0x6cce, 0xbc95, 0x6cca, 0xbc90, 0x6cc7, 0xbc8b, - 0x6cc4, 0xbc85, 0x6cc1, 0xbc80, 0x6cbd, 0xbc7b, 0x6cba, 0xbc75, - 0x6cb7, 0xbc70, 0x6cb3, 0xbc6b, 0x6cb0, 0xbc65, 0x6cad, 0xbc60, - 0x6ca9, 0xbc5b, 0x6ca6, 0xbc55, 0x6ca3, 0xbc50, 0x6c9f, 0xbc4b, - 0x6c9c, 0xbc45, 0x6c99, 0xbc40, 0x6c95, 0xbc3b, 0x6c92, 0xbc35, - 0x6c8f, 0xbc30, 0x6c8b, 0xbc2b, 0x6c88, 0xbc25, 0x6c85, 0xbc20, - 0x6c81, 0xbc1b, 0x6c7e, 0xbc15, 0x6c7b, 0xbc10, 0x6c77, 0xbc0b, - 0x6c74, 0xbc05, 0x6c71, 0xbc00, 0x6c6d, 0xbbfb, 0x6c6a, 0xbbf5, - 0x6c67, 0xbbf0, 0x6c63, 0xbbeb, 0x6c60, 0xbbe5, 0x6c5d, 0xbbe0, - 0x6c59, 0xbbdb, 0x6c56, 0xbbd5, 0x6c53, 0xbbd0, 0x6c4f, 0xbbcb, - 0x6c4c, 0xbbc5, 0x6c49, 0xbbc0, 0x6c45, 0xbbbb, 0x6c42, 0xbbb5, - 0x6c3f, 0xbbb0, 0x6c3b, 0xbbab, 0x6c38, 0xbba6, 0x6c34, 0xbba0, - 0x6c31, 0xbb9b, 0x6c2e, 0xbb96, 0x6c2a, 0xbb90, 0x6c27, 0xbb8b, - 0x6c24, 0xbb86, 0x6c20, 0xbb80, 0x6c1d, 0xbb7b, 0x6c1a, 0xbb76, - 0x6c16, 0xbb70, 0x6c13, 0xbb6b, 0x6c0f, 0xbb66, 0x6c0c, 0xbb61, - 0x6c09, 0xbb5b, 0x6c05, 0xbb56, 0x6c02, 0xbb51, 0x6bff, 0xbb4b, - 0x6bfb, 0xbb46, 0x6bf8, 0xbb41, 0x6bf5, 0xbb3b, 0x6bf1, 0xbb36, - 0x6bee, 0xbb31, 0x6bea, 0xbb2c, 0x6be7, 0xbb26, 0x6be4, 0xbb21, - 0x6be0, 0xbb1c, 0x6bdd, 0xbb16, 0x6bd9, 0xbb11, 0x6bd6, 0xbb0c, - 0x6bd3, 0xbb06, 0x6bcf, 0xbb01, 0x6bcc, 0xbafc, 0x6bc9, 0xbaf7, - 0x6bc5, 0xbaf1, 0x6bc2, 0xbaec, 0x6bbe, 0xbae7, 0x6bbb, 0xbae1, - 0x6bb8, 0xbadc, 0x6bb4, 0xbad7, 0x6bb1, 0xbad2, 0x6bad, 0xbacc, - 0x6baa, 0xbac7, 0x6ba7, 0xbac2, 0x6ba3, 0xbabc, 0x6ba0, 0xbab7, - 0x6b9c, 0xbab2, 0x6b99, 0xbaad, 0x6b96, 0xbaa7, 0x6b92, 0xbaa2, - 0x6b8f, 0xba9d, 0x6b8b, 0xba97, 0x6b88, 0xba92, 0x6b85, 0xba8d, - 0x6b81, 0xba88, 0x6b7e, 0xba82, 0x6b7a, 0xba7d, 0x6b77, 0xba78, - 0x6b73, 0xba73, 0x6b70, 0xba6d, 0x6b6d, 0xba68, 0x6b69, 0xba63, - 0x6b66, 0xba5d, 0x6b62, 0xba58, 0x6b5f, 0xba53, 0x6b5c, 0xba4e, - 0x6b58, 0xba48, 0x6b55, 0xba43, 0x6b51, 0xba3e, 0x6b4e, 0xba39, - 0x6b4a, 0xba33, 0x6b47, 0xba2e, 0x6b44, 0xba29, 0x6b40, 0xba23, - 0x6b3d, 0xba1e, 0x6b39, 0xba19, 0x6b36, 0xba14, 0x6b32, 0xba0e, - 0x6b2f, 0xba09, 0x6b2c, 0xba04, 0x6b28, 0xb9ff, 0x6b25, 0xb9f9, - 0x6b21, 0xb9f4, 0x6b1e, 0xb9ef, 0x6b1a, 0xb9ea, 0x6b17, 0xb9e4, - 0x6b13, 0xb9df, 0x6b10, 0xb9da, 0x6b0d, 0xb9d5, 0x6b09, 0xb9cf, - 0x6b06, 0xb9ca, 0x6b02, 0xb9c5, 0x6aff, 0xb9c0, 0x6afb, 0xb9ba, - 0x6af8, 0xb9b5, 0x6af4, 0xb9b0, 0x6af1, 0xb9ab, 0x6aee, 0xb9a5, - 0x6aea, 0xb9a0, 0x6ae7, 0xb99b, 0x6ae3, 0xb996, 0x6ae0, 0xb990, - 0x6adc, 0xb98b, 0x6ad9, 0xb986, 0x6ad5, 0xb981, 0x6ad2, 0xb97b, - 0x6ace, 0xb976, 0x6acb, 0xb971, 0x6ac8, 0xb96c, 0x6ac4, 0xb966, - 0x6ac1, 0xb961, 0x6abd, 0xb95c, 0x6aba, 0xb957, 0x6ab6, 0xb951, - 0x6ab3, 0xb94c, 0x6aaf, 0xb947, 0x6aac, 0xb942, 0x6aa8, 0xb93c, - 0x6aa5, 0xb937, 0x6aa1, 0xb932, 0x6a9e, 0xb92d, 0x6a9a, 0xb928, - 0x6a97, 0xb922, 0x6a93, 0xb91d, 0x6a90, 0xb918, 0x6a8c, 0xb913, - 0x6a89, 0xb90d, 0x6a86, 0xb908, 0x6a82, 0xb903, 0x6a7f, 0xb8fe, - 0x6a7b, 0xb8f8, 0x6a78, 0xb8f3, 0x6a74, 0xb8ee, 0x6a71, 0xb8e9, - 0x6a6d, 0xb8e4, 0x6a6a, 0xb8de, 0x6a66, 0xb8d9, 0x6a63, 0xb8d4, - 0x6a5f, 0xb8cf, 0x6a5c, 0xb8c9, 0x6a58, 0xb8c4, 0x6a55, 0xb8bf, - 0x6a51, 0xb8ba, 0x6a4e, 0xb8b5, 0x6a4a, 0xb8af, 0x6a47, 0xb8aa, - 0x6a43, 0xb8a5, 0x6a40, 0xb8a0, 0x6a3c, 0xb89b, 0x6a39, 0xb895, - 0x6a35, 0xb890, 0x6a32, 0xb88b, 0x6a2e, 0xb886, 0x6a2b, 0xb880, - 0x6a27, 0xb87b, 0x6a24, 0xb876, 0x6a20, 0xb871, 0x6a1d, 0xb86c, - 0x6a19, 0xb866, 0x6a16, 0xb861, 0x6a12, 0xb85c, 0x6a0e, 0xb857, - 0x6a0b, 0xb852, 0x6a07, 0xb84c, 0x6a04, 0xb847, 0x6a00, 0xb842, - 0x69fd, 0xb83d, 0x69f9, 0xb838, 0x69f6, 0xb832, 0x69f2, 0xb82d, - 0x69ef, 0xb828, 0x69eb, 0xb823, 0x69e8, 0xb81e, 0x69e4, 0xb818, - 0x69e1, 0xb813, 0x69dd, 0xb80e, 0x69da, 0xb809, 0x69d6, 0xb804, - 0x69d3, 0xb7fe, 0x69cf, 0xb7f9, 0x69cb, 0xb7f4, 0x69c8, 0xb7ef, - 0x69c4, 0xb7ea, 0x69c1, 0xb7e4, 0x69bd, 0xb7df, 0x69ba, 0xb7da, - 0x69b6, 0xb7d5, 0x69b3, 0xb7d0, 0x69af, 0xb7ca, 0x69ac, 0xb7c5, - 0x69a8, 0xb7c0, 0x69a5, 0xb7bb, 0x69a1, 0xb7b6, 0x699d, 0xb7b1, - 0x699a, 0xb7ab, 0x6996, 0xb7a6, 0x6993, 0xb7a1, 0x698f, 0xb79c, - 0x698c, 0xb797, 0x6988, 0xb791, 0x6985, 0xb78c, 0x6981, 0xb787, - 0x697d, 0xb782, 0x697a, 0xb77d, 0x6976, 0xb778, 0x6973, 0xb772, - 0x696f, 0xb76d, 0x696c, 0xb768, 0x6968, 0xb763, 0x6964, 0xb75e, - 0x6961, 0xb758, 0x695d, 0xb753, 0x695a, 0xb74e, 0x6956, 0xb749, - 0x6953, 0xb744, 0x694f, 0xb73f, 0x694b, 0xb739, 0x6948, 0xb734, - 0x6944, 0xb72f, 0x6941, 0xb72a, 0x693d, 0xb725, 0x693a, 0xb720, - 0x6936, 0xb71a, 0x6932, 0xb715, 0x692f, 0xb710, 0x692b, 0xb70b, - 0x6928, 0xb706, 0x6924, 0xb701, 0x6921, 0xb6fb, 0x691d, 0xb6f6, - 0x6919, 0xb6f1, 0x6916, 0xb6ec, 0x6912, 0xb6e7, 0x690f, 0xb6e2, - 0x690b, 0xb6dd, 0x6907, 0xb6d7, 0x6904, 0xb6d2, 0x6900, 0xb6cd, - 0x68fd, 0xb6c8, 0x68f9, 0xb6c3, 0x68f5, 0xb6be, 0x68f2, 0xb6b8, - 0x68ee, 0xb6b3, 0x68eb, 0xb6ae, 0x68e7, 0xb6a9, 0x68e3, 0xb6a4, - 0x68e0, 0xb69f, 0x68dc, 0xb69a, 0x68d9, 0xb694, 0x68d5, 0xb68f, - 0x68d1, 0xb68a, 0x68ce, 0xb685, 0x68ca, 0xb680, 0x68c7, 0xb67b, - 0x68c3, 0xb676, 0x68bf, 0xb670, 0x68bc, 0xb66b, 0x68b8, 0xb666, - 0x68b5, 0xb661, 0x68b1, 0xb65c, 0x68ad, 0xb657, 0x68aa, 0xb652, - 0x68a6, 0xb64c, 0x68a3, 0xb647, 0x689f, 0xb642, 0x689b, 0xb63d, - 0x6898, 0xb638, 0x6894, 0xb633, 0x6890, 0xb62e, 0x688d, 0xb628, - 0x6889, 0xb623, 0x6886, 0xb61e, 0x6882, 0xb619, 0x687e, 0xb614, - 0x687b, 0xb60f, 0x6877, 0xb60a, 0x6873, 0xb605, 0x6870, 0xb5ff, - 0x686c, 0xb5fa, 0x6868, 0xb5f5, 0x6865, 0xb5f0, 0x6861, 0xb5eb, - 0x685e, 0xb5e6, 0x685a, 0xb5e1, 0x6856, 0xb5dc, 0x6853, 0xb5d6, - 0x684f, 0xb5d1, 0x684b, 0xb5cc, 0x6848, 0xb5c7, 0x6844, 0xb5c2, - 0x6840, 0xb5bd, 0x683d, 0xb5b8, 0x6839, 0xb5b3, 0x6835, 0xb5ae, - 0x6832, 0xb5a8, 0x682e, 0xb5a3, 0x682b, 0xb59e, 0x6827, 0xb599, - 0x6823, 0xb594, 0x6820, 0xb58f, 0x681c, 0xb58a, 0x6818, 0xb585, - 0x6815, 0xb57f, 0x6811, 0xb57a, 0x680d, 0xb575, 0x680a, 0xb570, - 0x6806, 0xb56b, 0x6802, 0xb566, 0x67ff, 0xb561, 0x67fb, 0xb55c, - 0x67f7, 0xb557, 0x67f4, 0xb552, 0x67f0, 0xb54c, 0x67ec, 0xb547, - 0x67e9, 0xb542, 0x67e5, 0xb53d, 0x67e1, 0xb538, 0x67de, 0xb533, - 0x67da, 0xb52e, 0x67d6, 0xb529, 0x67d3, 0xb524, 0x67cf, 0xb51f, - 0x67cb, 0xb519, 0x67c8, 0xb514, 0x67c4, 0xb50f, 0x67c0, 0xb50a, - 0x67bd, 0xb505, 0x67b9, 0xb500, 0x67b5, 0xb4fb, 0x67b2, 0xb4f6, - 0x67ae, 0xb4f1, 0x67aa, 0xb4ec, 0x67a6, 0xb4e7, 0x67a3, 0xb4e1, - 0x679f, 0xb4dc, 0x679b, 0xb4d7, 0x6798, 0xb4d2, 0x6794, 0xb4cd, - 0x6790, 0xb4c8, 0x678d, 0xb4c3, 0x6789, 0xb4be, 0x6785, 0xb4b9, - 0x6782, 0xb4b4, 0x677e, 0xb4af, 0x677a, 0xb4aa, 0x6776, 0xb4a4, - 0x6773, 0xb49f, 0x676f, 0xb49a, 0x676b, 0xb495, 0x6768, 0xb490, - 0x6764, 0xb48b, 0x6760, 0xb486, 0x675d, 0xb481, 0x6759, 0xb47c, - 0x6755, 0xb477, 0x6751, 0xb472, 0x674e, 0xb46d, 0x674a, 0xb468, - 0x6746, 0xb462, 0x6743, 0xb45d, 0x673f, 0xb458, 0x673b, 0xb453, - 0x6737, 0xb44e, 0x6734, 0xb449, 0x6730, 0xb444, 0x672c, 0xb43f, - 0x6729, 0xb43a, 0x6725, 0xb435, 0x6721, 0xb430, 0x671d, 0xb42b, - 0x671a, 0xb426, 0x6716, 0xb421, 0x6712, 0xb41c, 0x670e, 0xb417, - 0x670b, 0xb411, 0x6707, 0xb40c, 0x6703, 0xb407, 0x6700, 0xb402, - 0x66fc, 0xb3fd, 0x66f8, 0xb3f8, 0x66f4, 0xb3f3, 0x66f1, 0xb3ee, - 0x66ed, 0xb3e9, 0x66e9, 0xb3e4, 0x66e5, 0xb3df, 0x66e2, 0xb3da, - 0x66de, 0xb3d5, 0x66da, 0xb3d0, 0x66d6, 0xb3cb, 0x66d3, 0xb3c6, - 0x66cf, 0xb3c1, 0x66cb, 0xb3bc, 0x66c8, 0xb3b7, 0x66c4, 0xb3b1, - 0x66c0, 0xb3ac, 0x66bc, 0xb3a7, 0x66b9, 0xb3a2, 0x66b5, 0xb39d, - 0x66b1, 0xb398, 0x66ad, 0xb393, 0x66aa, 0xb38e, 0x66a6, 0xb389, - 0x66a2, 0xb384, 0x669e, 0xb37f, 0x669b, 0xb37a, 0x6697, 0xb375, - 0x6693, 0xb370, 0x668f, 0xb36b, 0x668b, 0xb366, 0x6688, 0xb361, - 0x6684, 0xb35c, 0x6680, 0xb357, 0x667c, 0xb352, 0x6679, 0xb34d, - 0x6675, 0xb348, 0x6671, 0xb343, 0x666d, 0xb33e, 0x666a, 0xb339, - 0x6666, 0xb334, 0x6662, 0xb32f, 0x665e, 0xb32a, 0x665b, 0xb325, - 0x6657, 0xb31f, 0x6653, 0xb31a, 0x664f, 0xb315, 0x664b, 0xb310, - 0x6648, 0xb30b, 0x6644, 0xb306, 0x6640, 0xb301, 0x663c, 0xb2fc, - 0x6639, 0xb2f7, 0x6635, 0xb2f2, 0x6631, 0xb2ed, 0x662d, 0xb2e8, - 0x6629, 0xb2e3, 0x6626, 0xb2de, 0x6622, 0xb2d9, 0x661e, 0xb2d4, - 0x661a, 0xb2cf, 0x6616, 0xb2ca, 0x6613, 0xb2c5, 0x660f, 0xb2c0, - 0x660b, 0xb2bb, 0x6607, 0xb2b6, 0x6603, 0xb2b1, 0x6600, 0xb2ac, - 0x65fc, 0xb2a7, 0x65f8, 0xb2a2, 0x65f4, 0xb29d, 0x65f0, 0xb298, - 0x65ed, 0xb293, 0x65e9, 0xb28e, 0x65e5, 0xb289, 0x65e1, 0xb284, - 0x65dd, 0xb27f, 0x65da, 0xb27a, 0x65d6, 0xb275, 0x65d2, 0xb270, - 0x65ce, 0xb26b, 0x65ca, 0xb266, 0x65c7, 0xb261, 0x65c3, 0xb25c, - 0x65bf, 0xb257, 0x65bb, 0xb252, 0x65b7, 0xb24d, 0x65b4, 0xb248, - 0x65b0, 0xb243, 0x65ac, 0xb23e, 0x65a8, 0xb239, 0x65a4, 0xb234, - 0x65a0, 0xb22f, 0x659d, 0xb22a, 0x6599, 0xb225, 0x6595, 0xb220, - 0x6591, 0xb21b, 0x658d, 0xb216, 0x658a, 0xb211, 0x6586, 0xb20c, - 0x6582, 0xb207, 0x657e, 0xb202, 0x657a, 0xb1fd, 0x6576, 0xb1f8, - 0x6573, 0xb1f3, 0x656f, 0xb1ee, 0x656b, 0xb1e9, 0x6567, 0xb1e4, - 0x6563, 0xb1df, 0x655f, 0xb1da, 0x655c, 0xb1d6, 0x6558, 0xb1d1, - 0x6554, 0xb1cc, 0x6550, 0xb1c7, 0x654c, 0xb1c2, 0x6548, 0xb1bd, - 0x6545, 0xb1b8, 0x6541, 0xb1b3, 0x653d, 0xb1ae, 0x6539, 0xb1a9, - 0x6535, 0xb1a4, 0x6531, 0xb19f, 0x652d, 0xb19a, 0x652a, 0xb195, - 0x6526, 0xb190, 0x6522, 0xb18b, 0x651e, 0xb186, 0x651a, 0xb181, - 0x6516, 0xb17c, 0x6513, 0xb177, 0x650f, 0xb172, 0x650b, 0xb16d, - 0x6507, 0xb168, 0x6503, 0xb163, 0x64ff, 0xb15e, 0x64fb, 0xb159, - 0x64f7, 0xb154, 0x64f4, 0xb14f, 0x64f0, 0xb14a, 0x64ec, 0xb146, - 0x64e8, 0xb141, 0x64e4, 0xb13c, 0x64e0, 0xb137, 0x64dc, 0xb132, - 0x64d9, 0xb12d, 0x64d5, 0xb128, 0x64d1, 0xb123, 0x64cd, 0xb11e, - 0x64c9, 0xb119, 0x64c5, 0xb114, 0x64c1, 0xb10f, 0x64bd, 0xb10a, - 0x64ba, 0xb105, 0x64b6, 0xb100, 0x64b2, 0xb0fb, 0x64ae, 0xb0f6, - 0x64aa, 0xb0f1, 0x64a6, 0xb0ec, 0x64a2, 0xb0e8, 0x649e, 0xb0e3, - 0x649b, 0xb0de, 0x6497, 0xb0d9, 0x6493, 0xb0d4, 0x648f, 0xb0cf, - 0x648b, 0xb0ca, 0x6487, 0xb0c5, 0x6483, 0xb0c0, 0x647f, 0xb0bb, - 0x647b, 0xb0b6, 0x6478, 0xb0b1, 0x6474, 0xb0ac, 0x6470, 0xb0a7, - 0x646c, 0xb0a2, 0x6468, 0xb09e, 0x6464, 0xb099, 0x6460, 0xb094, - 0x645c, 0xb08f, 0x6458, 0xb08a, 0x6454, 0xb085, 0x6451, 0xb080, - 0x644d, 0xb07b, 0x6449, 0xb076, 0x6445, 0xb071, 0x6441, 0xb06c, - 0x643d, 0xb067, 0x6439, 0xb062, 0x6435, 0xb05e, 0x6431, 0xb059, - 0x642d, 0xb054, 0x6429, 0xb04f, 0x6426, 0xb04a, 0x6422, 0xb045, - 0x641e, 0xb040, 0x641a, 0xb03b, 0x6416, 0xb036, 0x6412, 0xb031, - 0x640e, 0xb02c, 0x640a, 0xb027, 0x6406, 0xb023, 0x6402, 0xb01e, - 0x63fe, 0xb019, 0x63fa, 0xb014, 0x63f7, 0xb00f, 0x63f3, 0xb00a, - 0x63ef, 0xb005, 0x63eb, 0xb000, 0x63e7, 0xaffb, 0x63e3, 0xaff6, - 0x63df, 0xaff1, 0x63db, 0xafed, 0x63d7, 0xafe8, 0x63d3, 0xafe3, - 0x63cf, 0xafde, 0x63cb, 0xafd9, 0x63c7, 0xafd4, 0x63c3, 0xafcf, - 0x63c0, 0xafca, 0x63bc, 0xafc5, 0x63b8, 0xafc1, 0x63b4, 0xafbc, - 0x63b0, 0xafb7, 0x63ac, 0xafb2, 0x63a8, 0xafad, 0x63a4, 0xafa8, - 0x63a0, 0xafa3, 0x639c, 0xaf9e, 0x6398, 0xaf99, 0x6394, 0xaf94, - 0x6390, 0xaf90, 0x638c, 0xaf8b, 0x6388, 0xaf86, 0x6384, 0xaf81, - 0x6380, 0xaf7c, 0x637c, 0xaf77, 0x6378, 0xaf72, 0x6375, 0xaf6d, - 0x6371, 0xaf69, 0x636d, 0xaf64, 0x6369, 0xaf5f, 0x6365, 0xaf5a, - 0x6361, 0xaf55, 0x635d, 0xaf50, 0x6359, 0xaf4b, 0x6355, 0xaf46, - 0x6351, 0xaf41, 0x634d, 0xaf3d, 0x6349, 0xaf38, 0x6345, 0xaf33, - 0x6341, 0xaf2e, 0x633d, 0xaf29, 0x6339, 0xaf24, 0x6335, 0xaf1f, - 0x6331, 0xaf1b, 0x632d, 0xaf16, 0x6329, 0xaf11, 0x6325, 0xaf0c, - 0x6321, 0xaf07, 0x631d, 0xaf02, 0x6319, 0xaefd, 0x6315, 0xaef8, - 0x6311, 0xaef4, 0x630d, 0xaeef, 0x6309, 0xaeea, 0x6305, 0xaee5, - 0x6301, 0xaee0, 0x62fd, 0xaedb, 0x62f9, 0xaed6, 0x62f5, 0xaed2, - 0x62f2, 0xaecd, 0x62ee, 0xaec8, 0x62ea, 0xaec3, 0x62e6, 0xaebe, - 0x62e2, 0xaeb9, 0x62de, 0xaeb4, 0x62da, 0xaeb0, 0x62d6, 0xaeab, - 0x62d2, 0xaea6, 0x62ce, 0xaea1, 0x62ca, 0xae9c, 0x62c6, 0xae97, - 0x62c2, 0xae92, 0x62be, 0xae8e, 0x62ba, 0xae89, 0x62b6, 0xae84, - 0x62b2, 0xae7f, 0x62ae, 0xae7a, 0x62aa, 0xae75, 0x62a6, 0xae71, - 0x62a2, 0xae6c, 0x629e, 0xae67, 0x629a, 0xae62, 0x6296, 0xae5d, - 0x6292, 0xae58, 0x628e, 0xae54, 0x628a, 0xae4f, 0x6286, 0xae4a, - 0x6282, 0xae45, 0x627e, 0xae40, 0x627a, 0xae3b, 0x6275, 0xae37, - 0x6271, 0xae32, 0x626d, 0xae2d, 0x6269, 0xae28, 0x6265, 0xae23, - 0x6261, 0xae1e, 0x625d, 0xae1a, 0x6259, 0xae15, 0x6255, 0xae10, - 0x6251, 0xae0b, 0x624d, 0xae06, 0x6249, 0xae01, 0x6245, 0xadfd, - 0x6241, 0xadf8, 0x623d, 0xadf3, 0x6239, 0xadee, 0x6235, 0xade9, - 0x6231, 0xade4, 0x622d, 0xade0, 0x6229, 0xaddb, 0x6225, 0xadd6, - 0x6221, 0xadd1, 0x621d, 0xadcc, 0x6219, 0xadc8, 0x6215, 0xadc3, - 0x6211, 0xadbe, 0x620d, 0xadb9, 0x6209, 0xadb4, 0x6205, 0xadaf, - 0x6201, 0xadab, 0x61fd, 0xada6, 0x61f9, 0xada1, 0x61f5, 0xad9c, - 0x61f1, 0xad97, 0x61ec, 0xad93, 0x61e8, 0xad8e, 0x61e4, 0xad89, - 0x61e0, 0xad84, 0x61dc, 0xad7f, 0x61d8, 0xad7b, 0x61d4, 0xad76, - 0x61d0, 0xad71, 0x61cc, 0xad6c, 0x61c8, 0xad67, 0x61c4, 0xad63, - 0x61c0, 0xad5e, 0x61bc, 0xad59, 0x61b8, 0xad54, 0x61b4, 0xad4f, - 0x61b0, 0xad4b, 0x61ac, 0xad46, 0x61a8, 0xad41, 0x61a3, 0xad3c, - 0x619f, 0xad37, 0x619b, 0xad33, 0x6197, 0xad2e, 0x6193, 0xad29, - 0x618f, 0xad24, 0x618b, 0xad1f, 0x6187, 0xad1b, 0x6183, 0xad16, - 0x617f, 0xad11, 0x617b, 0xad0c, 0x6177, 0xad08, 0x6173, 0xad03, - 0x616f, 0xacfe, 0x616b, 0xacf9, 0x6166, 0xacf4, 0x6162, 0xacf0, - 0x615e, 0xaceb, 0x615a, 0xace6, 0x6156, 0xace1, 0x6152, 0xacdd, - 0x614e, 0xacd8, 0x614a, 0xacd3, 0x6146, 0xacce, 0x6142, 0xacc9, - 0x613e, 0xacc5, 0x613a, 0xacc0, 0x6135, 0xacbb, 0x6131, 0xacb6, - 0x612d, 0xacb2, 0x6129, 0xacad, 0x6125, 0xaca8, 0x6121, 0xaca3, - 0x611d, 0xac9e, 0x6119, 0xac9a, 0x6115, 0xac95, 0x6111, 0xac90, - 0x610d, 0xac8b, 0x6108, 0xac87, 0x6104, 0xac82, 0x6100, 0xac7d, - 0x60fc, 0xac78, 0x60f8, 0xac74, 0x60f4, 0xac6f, 0x60f0, 0xac6a, - 0x60ec, 0xac65, 0x60e8, 0xac61, 0x60e4, 0xac5c, 0x60df, 0xac57, - 0x60db, 0xac52, 0x60d7, 0xac4e, 0x60d3, 0xac49, 0x60cf, 0xac44, - 0x60cb, 0xac3f, 0x60c7, 0xac3b, 0x60c3, 0xac36, 0x60bf, 0xac31, - 0x60ba, 0xac2c, 0x60b6, 0xac28, 0x60b2, 0xac23, 0x60ae, 0xac1e, - 0x60aa, 0xac19, 0x60a6, 0xac15, 0x60a2, 0xac10, 0x609e, 0xac0b, - 0x6099, 0xac06, 0x6095, 0xac02, 0x6091, 0xabfd, 0x608d, 0xabf8, - 0x6089, 0xabf3, 0x6085, 0xabef, 0x6081, 0xabea, 0x607d, 0xabe5, - 0x6078, 0xabe0, 0x6074, 0xabdc, 0x6070, 0xabd7, 0x606c, 0xabd2, - 0x6068, 0xabcd, 0x6064, 0xabc9, 0x6060, 0xabc4, 0x605c, 0xabbf, - 0x6057, 0xabbb, 0x6053, 0xabb6, 0x604f, 0xabb1, 0x604b, 0xabac, - 0x6047, 0xaba8, 0x6043, 0xaba3, 0x603f, 0xab9e, 0x603a, 0xab99, - 0x6036, 0xab95, 0x6032, 0xab90, 0x602e, 0xab8b, 0x602a, 0xab87, - 0x6026, 0xab82, 0x6022, 0xab7d, 0x601d, 0xab78, 0x6019, 0xab74, - 0x6015, 0xab6f, 0x6011, 0xab6a, 0x600d, 0xab66, 0x6009, 0xab61, - 0x6004, 0xab5c, 0x6000, 0xab57, 0x5ffc, 0xab53, 0x5ff8, 0xab4e, - 0x5ff4, 0xab49, 0x5ff0, 0xab45, 0x5fec, 0xab40, 0x5fe7, 0xab3b, - 0x5fe3, 0xab36, 0x5fdf, 0xab32, 0x5fdb, 0xab2d, 0x5fd7, 0xab28, - 0x5fd3, 0xab24, 0x5fce, 0xab1f, 0x5fca, 0xab1a, 0x5fc6, 0xab16, - 0x5fc2, 0xab11, 0x5fbe, 0xab0c, 0x5fba, 0xab07, 0x5fb5, 0xab03, - 0x5fb1, 0xaafe, 0x5fad, 0xaaf9, 0x5fa9, 0xaaf5, 0x5fa5, 0xaaf0, - 0x5fa0, 0xaaeb, 0x5f9c, 0xaae7, 0x5f98, 0xaae2, 0x5f94, 0xaadd, - 0x5f90, 0xaad8, 0x5f8c, 0xaad4, 0x5f87, 0xaacf, 0x5f83, 0xaaca, - 0x5f7f, 0xaac6, 0x5f7b, 0xaac1, 0x5f77, 0xaabc, 0x5f72, 0xaab8, - 0x5f6e, 0xaab3, 0x5f6a, 0xaaae, 0x5f66, 0xaaaa, 0x5f62, 0xaaa5, - 0x5f5e, 0xaaa0, 0x5f59, 0xaa9c, 0x5f55, 0xaa97, 0x5f51, 0xaa92, - 0x5f4d, 0xaa8e, 0x5f49, 0xaa89, 0x5f44, 0xaa84, 0x5f40, 0xaa7f, - 0x5f3c, 0xaa7b, 0x5f38, 0xaa76, 0x5f34, 0xaa71, 0x5f2f, 0xaa6d, - 0x5f2b, 0xaa68, 0x5f27, 0xaa63, 0x5f23, 0xaa5f, 0x5f1f, 0xaa5a, - 0x5f1a, 0xaa55, 0x5f16, 0xaa51, 0x5f12, 0xaa4c, 0x5f0e, 0xaa47, - 0x5f0a, 0xaa43, 0x5f05, 0xaa3e, 0x5f01, 0xaa39, 0x5efd, 0xaa35, - 0x5ef9, 0xaa30, 0x5ef5, 0xaa2b, 0x5ef0, 0xaa27, 0x5eec, 0xaa22, - 0x5ee8, 0xaa1d, 0x5ee4, 0xaa19, 0x5edf, 0xaa14, 0x5edb, 0xaa10, - 0x5ed7, 0xaa0b, 0x5ed3, 0xaa06, 0x5ecf, 0xaa02, 0x5eca, 0xa9fd, - 0x5ec6, 0xa9f8, 0x5ec2, 0xa9f4, 0x5ebe, 0xa9ef, 0x5eb9, 0xa9ea, - 0x5eb5, 0xa9e6, 0x5eb1, 0xa9e1, 0x5ead, 0xa9dc, 0x5ea9, 0xa9d8, - 0x5ea4, 0xa9d3, 0x5ea0, 0xa9ce, 0x5e9c, 0xa9ca, 0x5e98, 0xa9c5, - 0x5e93, 0xa9c0, 0x5e8f, 0xa9bc, 0x5e8b, 0xa9b7, 0x5e87, 0xa9b3, - 0x5e82, 0xa9ae, 0x5e7e, 0xa9a9, 0x5e7a, 0xa9a5, 0x5e76, 0xa9a0, - 0x5e71, 0xa99b, 0x5e6d, 0xa997, 0x5e69, 0xa992, 0x5e65, 0xa98d, - 0x5e60, 0xa989, 0x5e5c, 0xa984, 0x5e58, 0xa980, 0x5e54, 0xa97b, - 0x5e50, 0xa976, 0x5e4b, 0xa972, 0x5e47, 0xa96d, 0x5e43, 0xa968, - 0x5e3f, 0xa964, 0x5e3a, 0xa95f, 0x5e36, 0xa95b, 0x5e32, 0xa956, - 0x5e2d, 0xa951, 0x5e29, 0xa94d, 0x5e25, 0xa948, 0x5e21, 0xa943, - 0x5e1c, 0xa93f, 0x5e18, 0xa93a, 0x5e14, 0xa936, 0x5e10, 0xa931, - 0x5e0b, 0xa92c, 0x5e07, 0xa928, 0x5e03, 0xa923, 0x5dff, 0xa91e, - 0x5dfa, 0xa91a, 0x5df6, 0xa915, 0x5df2, 0xa911, 0x5dee, 0xa90c, - 0x5de9, 0xa907, 0x5de5, 0xa903, 0x5de1, 0xa8fe, 0x5ddc, 0xa8fa, - 0x5dd8, 0xa8f5, 0x5dd4, 0xa8f0, 0x5dd0, 0xa8ec, 0x5dcb, 0xa8e7, - 0x5dc7, 0xa8e3, 0x5dc3, 0xa8de, 0x5dbf, 0xa8d9, 0x5dba, 0xa8d5, - 0x5db6, 0xa8d0, 0x5db2, 0xa8cc, 0x5dad, 0xa8c7, 0x5da9, 0xa8c2, - 0x5da5, 0xa8be, 0x5da1, 0xa8b9, 0x5d9c, 0xa8b5, 0x5d98, 0xa8b0, - 0x5d94, 0xa8ab, 0x5d8f, 0xa8a7, 0x5d8b, 0xa8a2, 0x5d87, 0xa89e, - 0x5d83, 0xa899, 0x5d7e, 0xa894, 0x5d7a, 0xa890, 0x5d76, 0xa88b, - 0x5d71, 0xa887, 0x5d6d, 0xa882, 0x5d69, 0xa87d, 0x5d65, 0xa879, - 0x5d60, 0xa874, 0x5d5c, 0xa870, 0x5d58, 0xa86b, 0x5d53, 0xa867, - 0x5d4f, 0xa862, 0x5d4b, 0xa85d, 0x5d46, 0xa859, 0x5d42, 0xa854, - 0x5d3e, 0xa850, 0x5d3a, 0xa84b, 0x5d35, 0xa847, 0x5d31, 0xa842, - 0x5d2d, 0xa83d, 0x5d28, 0xa839, 0x5d24, 0xa834, 0x5d20, 0xa830, - 0x5d1b, 0xa82b, 0x5d17, 0xa827, 0x5d13, 0xa822, 0x5d0e, 0xa81d, - 0x5d0a, 0xa819, 0x5d06, 0xa814, 0x5d01, 0xa810, 0x5cfd, 0xa80b, - 0x5cf9, 0xa807, 0x5cf5, 0xa802, 0x5cf0, 0xa7fd, 0x5cec, 0xa7f9, - 0x5ce8, 0xa7f4, 0x5ce3, 0xa7f0, 0x5cdf, 0xa7eb, 0x5cdb, 0xa7e7, - 0x5cd6, 0xa7e2, 0x5cd2, 0xa7de, 0x5cce, 0xa7d9, 0x5cc9, 0xa7d4, - 0x5cc5, 0xa7d0, 0x5cc1, 0xa7cb, 0x5cbc, 0xa7c7, 0x5cb8, 0xa7c2, - 0x5cb4, 0xa7be, 0x5caf, 0xa7b9, 0x5cab, 0xa7b5, 0x5ca7, 0xa7b0, - 0x5ca2, 0xa7ab, 0x5c9e, 0xa7a7, 0x5c9a, 0xa7a2, 0x5c95, 0xa79e, - 0x5c91, 0xa799, 0x5c8d, 0xa795, 0x5c88, 0xa790, 0x5c84, 0xa78c, - 0x5c80, 0xa787, 0x5c7b, 0xa783, 0x5c77, 0xa77e, 0x5c73, 0xa779, - 0x5c6e, 0xa775, 0x5c6a, 0xa770, 0x5c66, 0xa76c, 0x5c61, 0xa767, - 0x5c5d, 0xa763, 0x5c58, 0xa75e, 0x5c54, 0xa75a, 0x5c50, 0xa755, - 0x5c4b, 0xa751, 0x5c47, 0xa74c, 0x5c43, 0xa748, 0x5c3e, 0xa743, - 0x5c3a, 0xa73f, 0x5c36, 0xa73a, 0x5c31, 0xa735, 0x5c2d, 0xa731, - 0x5c29, 0xa72c, 0x5c24, 0xa728, 0x5c20, 0xa723, 0x5c1b, 0xa71f, - 0x5c17, 0xa71a, 0x5c13, 0xa716, 0x5c0e, 0xa711, 0x5c0a, 0xa70d, - 0x5c06, 0xa708, 0x5c01, 0xa704, 0x5bfd, 0xa6ff, 0x5bf9, 0xa6fb, - 0x5bf4, 0xa6f6, 0x5bf0, 0xa6f2, 0x5beb, 0xa6ed, 0x5be7, 0xa6e9, - 0x5be3, 0xa6e4, 0x5bde, 0xa6e0, 0x5bda, 0xa6db, 0x5bd6, 0xa6d7, - 0x5bd1, 0xa6d2, 0x5bcd, 0xa6ce, 0x5bc8, 0xa6c9, 0x5bc4, 0xa6c5, - 0x5bc0, 0xa6c0, 0x5bbb, 0xa6bc, 0x5bb7, 0xa6b7, 0x5bb2, 0xa6b3, - 0x5bae, 0xa6ae, 0x5baa, 0xa6aa, 0x5ba5, 0xa6a5, 0x5ba1, 0xa6a1, - 0x5b9d, 0xa69c, 0x5b98, 0xa698, 0x5b94, 0xa693, 0x5b8f, 0xa68f, - 0x5b8b, 0xa68a, 0x5b87, 0xa686, 0x5b82, 0xa681, 0x5b7e, 0xa67d, - 0x5b79, 0xa678, 0x5b75, 0xa674, 0x5b71, 0xa66f, 0x5b6c, 0xa66b, - 0x5b68, 0xa666, 0x5b63, 0xa662, 0x5b5f, 0xa65d, 0x5b5b, 0xa659, - 0x5b56, 0xa654, 0x5b52, 0xa650, 0x5b4d, 0xa64b, 0x5b49, 0xa647, - 0x5b45, 0xa642, 0x5b40, 0xa63e, 0x5b3c, 0xa639, 0x5b37, 0xa635, - 0x5b33, 0xa630, 0x5b2f, 0xa62c, 0x5b2a, 0xa627, 0x5b26, 0xa623, - 0x5b21, 0xa61f, 0x5b1d, 0xa61a, 0x5b19, 0xa616, 0x5b14, 0xa611, - 0x5b10, 0xa60d, 0x5b0b, 0xa608, 0x5b07, 0xa604, 0x5b02, 0xa5ff, - 0x5afe, 0xa5fb, 0x5afa, 0xa5f6, 0x5af5, 0xa5f2, 0x5af1, 0xa5ed, - 0x5aec, 0xa5e9, 0x5ae8, 0xa5e4, 0x5ae4, 0xa5e0, 0x5adf, 0xa5dc, - 0x5adb, 0xa5d7, 0x5ad6, 0xa5d3, 0x5ad2, 0xa5ce, 0x5acd, 0xa5ca, - 0x5ac9, 0xa5c5, 0x5ac5, 0xa5c1, 0x5ac0, 0xa5bc, 0x5abc, 0xa5b8, - 0x5ab7, 0xa5b3, 0x5ab3, 0xa5af, 0x5aae, 0xa5aa, 0x5aaa, 0xa5a6, - 0x5aa5, 0xa5a2, 0x5aa1, 0xa59d, 0x5a9d, 0xa599, 0x5a98, 0xa594, - 0x5a94, 0xa590, 0x5a8f, 0xa58b, 0x5a8b, 0xa587, 0x5a86, 0xa582, - 0x5a82, 0xa57e, 0x5a7e, 0xa57a, 0x5a79, 0xa575, 0x5a75, 0xa571, - 0x5a70, 0xa56c, 0x5a6c, 0xa568, 0x5a67, 0xa563, 0x5a63, 0xa55f, - 0x5a5e, 0xa55b, 0x5a5a, 0xa556, 0x5a56, 0xa552, 0x5a51, 0xa54d, - 0x5a4d, 0xa549, 0x5a48, 0xa544, 0x5a44, 0xa540, 0x5a3f, 0xa53b, - 0x5a3b, 0xa537, 0x5a36, 0xa533, 0x5a32, 0xa52e, 0x5a2d, 0xa52a, - 0x5a29, 0xa525, 0x5a24, 0xa521, 0x5a20, 0xa51c, 0x5a1c, 0xa518, - 0x5a17, 0xa514, 0x5a13, 0xa50f, 0x5a0e, 0xa50b, 0x5a0a, 0xa506, - 0x5a05, 0xa502, 0x5a01, 0xa4fe, 0x59fc, 0xa4f9, 0x59f8, 0xa4f5, - 0x59f3, 0xa4f0, 0x59ef, 0xa4ec, 0x59ea, 0xa4e7, 0x59e6, 0xa4e3, - 0x59e1, 0xa4df, 0x59dd, 0xa4da, 0x59d9, 0xa4d6, 0x59d4, 0xa4d1, - 0x59d0, 0xa4cd, 0x59cb, 0xa4c9, 0x59c7, 0xa4c4, 0x59c2, 0xa4c0, - 0x59be, 0xa4bb, 0x59b9, 0xa4b7, 0x59b5, 0xa4b3, 0x59b0, 0xa4ae, - 0x59ac, 0xa4aa, 0x59a7, 0xa4a5, 0x59a3, 0xa4a1, 0x599e, 0xa49d, - 0x599a, 0xa498, 0x5995, 0xa494, 0x5991, 0xa48f, 0x598c, 0xa48b, - 0x5988, 0xa487, 0x5983, 0xa482, 0x597f, 0xa47e, 0x597a, 0xa479, - 0x5976, 0xa475, 0x5971, 0xa471, 0x596d, 0xa46c, 0x5968, 0xa468, - 0x5964, 0xa463, 0x595f, 0xa45f, 0x595b, 0xa45b, 0x5956, 0xa456, - 0x5952, 0xa452, 0x594d, 0xa44e, 0x5949, 0xa449, 0x5944, 0xa445, - 0x5940, 0xa440, 0x593b, 0xa43c, 0x5937, 0xa438, 0x5932, 0xa433, - 0x592e, 0xa42f, 0x5929, 0xa42a, 0x5925, 0xa426, 0x5920, 0xa422, - 0x591c, 0xa41d, 0x5917, 0xa419, 0x5913, 0xa415, 0x590e, 0xa410, - 0x590a, 0xa40c, 0x5905, 0xa407, 0x5901, 0xa403, 0x58fc, 0xa3ff, - 0x58f8, 0xa3fa, 0x58f3, 0xa3f6, 0x58ef, 0xa3f2, 0x58ea, 0xa3ed, - 0x58e6, 0xa3e9, 0x58e1, 0xa3e5, 0x58dd, 0xa3e0, 0x58d8, 0xa3dc, - 0x58d4, 0xa3d7, 0x58cf, 0xa3d3, 0x58cb, 0xa3cf, 0x58c6, 0xa3ca, - 0x58c1, 0xa3c6, 0x58bd, 0xa3c2, 0x58b8, 0xa3bd, 0x58b4, 0xa3b9, - 0x58af, 0xa3b5, 0x58ab, 0xa3b0, 0x58a6, 0xa3ac, 0x58a2, 0xa3a8, - 0x589d, 0xa3a3, 0x5899, 0xa39f, 0x5894, 0xa39a, 0x5890, 0xa396, - 0x588b, 0xa392, 0x5887, 0xa38d, 0x5882, 0xa389, 0x587d, 0xa385, - 0x5879, 0xa380, 0x5874, 0xa37c, 0x5870, 0xa378, 0x586b, 0xa373, - 0x5867, 0xa36f, 0x5862, 0xa36b, 0x585e, 0xa366, 0x5859, 0xa362, - 0x5855, 0xa35e, 0x5850, 0xa359, 0x584b, 0xa355, 0x5847, 0xa351, - 0x5842, 0xa34c, 0x583e, 0xa348, 0x5839, 0xa344, 0x5835, 0xa33f, - 0x5830, 0xa33b, 0x582c, 0xa337, 0x5827, 0xa332, 0x5822, 0xa32e, - 0x581e, 0xa32a, 0x5819, 0xa325, 0x5815, 0xa321, 0x5810, 0xa31d, - 0x580c, 0xa318, 0x5807, 0xa314, 0x5803, 0xa310, 0x57fe, 0xa30b, - 0x57f9, 0xa307, 0x57f5, 0xa303, 0x57f0, 0xa2ff, 0x57ec, 0xa2fa, - 0x57e7, 0xa2f6, 0x57e3, 0xa2f2, 0x57de, 0xa2ed, 0x57d9, 0xa2e9, - 0x57d5, 0xa2e5, 0x57d0, 0xa2e0, 0x57cc, 0xa2dc, 0x57c7, 0xa2d8, - 0x57c3, 0xa2d3, 0x57be, 0xa2cf, 0x57b9, 0xa2cb, 0x57b5, 0xa2c6, - 0x57b0, 0xa2c2, 0x57ac, 0xa2be, 0x57a7, 0xa2ba, 0x57a3, 0xa2b5, - 0x579e, 0xa2b1, 0x5799, 0xa2ad, 0x5795, 0xa2a8, 0x5790, 0xa2a4, - 0x578c, 0xa2a0, 0x5787, 0xa29b, 0x5783, 0xa297, 0x577e, 0xa293, - 0x5779, 0xa28f, 0x5775, 0xa28a, 0x5770, 0xa286, 0x576c, 0xa282, - 0x5767, 0xa27d, 0x5762, 0xa279, 0x575e, 0xa275, 0x5759, 0xa271, - 0x5755, 0xa26c, 0x5750, 0xa268, 0x574b, 0xa264, 0x5747, 0xa25f, - 0x5742, 0xa25b, 0x573e, 0xa257, 0x5739, 0xa253, 0x5734, 0xa24e, - 0x5730, 0xa24a, 0x572b, 0xa246, 0x5727, 0xa241, 0x5722, 0xa23d, - 0x571d, 0xa239, 0x5719, 0xa235, 0x5714, 0xa230, 0x5710, 0xa22c, - 0x570b, 0xa228, 0x5706, 0xa224, 0x5702, 0xa21f, 0x56fd, 0xa21b, - 0x56f9, 0xa217, 0x56f4, 0xa212, 0x56ef, 0xa20e, 0x56eb, 0xa20a, - 0x56e6, 0xa206, 0x56e2, 0xa201, 0x56dd, 0xa1fd, 0x56d8, 0xa1f9, - 0x56d4, 0xa1f5, 0x56cf, 0xa1f0, 0x56ca, 0xa1ec, 0x56c6, 0xa1e8, - 0x56c1, 0xa1e4, 0x56bd, 0xa1df, 0x56b8, 0xa1db, 0x56b3, 0xa1d7, - 0x56af, 0xa1d3, 0x56aa, 0xa1ce, 0x56a5, 0xa1ca, 0x56a1, 0xa1c6, - 0x569c, 0xa1c1, 0x5698, 0xa1bd, 0x5693, 0xa1b9, 0x568e, 0xa1b5, - 0x568a, 0xa1b0, 0x5685, 0xa1ac, 0x5680, 0xa1a8, 0x567c, 0xa1a4, - 0x5677, 0xa1a0, 0x5673, 0xa19b, 0x566e, 0xa197, 0x5669, 0xa193, - 0x5665, 0xa18f, 0x5660, 0xa18a, 0x565b, 0xa186, 0x5657, 0xa182, - 0x5652, 0xa17e, 0x564d, 0xa179, 0x5649, 0xa175, 0x5644, 0xa171, - 0x5640, 0xa16d, 0x563b, 0xa168, 0x5636, 0xa164, 0x5632, 0xa160, - 0x562d, 0xa15c, 0x5628, 0xa157, 0x5624, 0xa153, 0x561f, 0xa14f, - 0x561a, 0xa14b, 0x5616, 0xa147, 0x5611, 0xa142, 0x560c, 0xa13e, - 0x5608, 0xa13a, 0x5603, 0xa136, 0x55fe, 0xa131, 0x55fa, 0xa12d, - 0x55f5, 0xa129, 0x55f0, 0xa125, 0x55ec, 0xa121, 0x55e7, 0xa11c, - 0x55e3, 0xa118, 0x55de, 0xa114, 0x55d9, 0xa110, 0x55d5, 0xa10b, - 0x55d0, 0xa107, 0x55cb, 0xa103, 0x55c7, 0xa0ff, 0x55c2, 0xa0fb, - 0x55bd, 0xa0f6, 0x55b9, 0xa0f2, 0x55b4, 0xa0ee, 0x55af, 0xa0ea, - 0x55ab, 0xa0e6, 0x55a6, 0xa0e1, 0x55a1, 0xa0dd, 0x559d, 0xa0d9, - 0x5598, 0xa0d5, 0x5593, 0xa0d1, 0x558f, 0xa0cc, 0x558a, 0xa0c8, - 0x5585, 0xa0c4, 0x5581, 0xa0c0, 0x557c, 0xa0bc, 0x5577, 0xa0b7, - 0x5572, 0xa0b3, 0x556e, 0xa0af, 0x5569, 0xa0ab, 0x5564, 0xa0a7, - 0x5560, 0xa0a2, 0x555b, 0xa09e, 0x5556, 0xa09a, 0x5552, 0xa096, - 0x554d, 0xa092, 0x5548, 0xa08e, 0x5544, 0xa089, 0x553f, 0xa085, - 0x553a, 0xa081, 0x5536, 0xa07d, 0x5531, 0xa079, 0x552c, 0xa074, - 0x5528, 0xa070, 0x5523, 0xa06c, 0x551e, 0xa068, 0x5519, 0xa064, - 0x5515, 0xa060, 0x5510, 0xa05b, 0x550b, 0xa057, 0x5507, 0xa053, - 0x5502, 0xa04f, 0x54fd, 0xa04b, 0x54f9, 0xa046, 0x54f4, 0xa042, - 0x54ef, 0xa03e, 0x54ea, 0xa03a, 0x54e6, 0xa036, 0x54e1, 0xa032, - 0x54dc, 0xa02d, 0x54d8, 0xa029, 0x54d3, 0xa025, 0x54ce, 0xa021, - 0x54ca, 0xa01d, 0x54c5, 0xa019, 0x54c0, 0xa014, 0x54bb, 0xa010, - 0x54b7, 0xa00c, 0x54b2, 0xa008, 0x54ad, 0xa004, 0x54a9, 0xa000, - 0x54a4, 0x9ffc, 0x549f, 0x9ff7, 0x549a, 0x9ff3, 0x5496, 0x9fef, - 0x5491, 0x9feb, 0x548c, 0x9fe7, 0x5488, 0x9fe3, 0x5483, 0x9fde, - 0x547e, 0x9fda, 0x5479, 0x9fd6, 0x5475, 0x9fd2, 0x5470, 0x9fce, - 0x546b, 0x9fca, 0x5467, 0x9fc6, 0x5462, 0x9fc1, 0x545d, 0x9fbd, - 0x5458, 0x9fb9, 0x5454, 0x9fb5, 0x544f, 0x9fb1, 0x544a, 0x9fad, - 0x5445, 0x9fa9, 0x5441, 0x9fa4, 0x543c, 0x9fa0, 0x5437, 0x9f9c, - 0x5433, 0x9f98, 0x542e, 0x9f94, 0x5429, 0x9f90, 0x5424, 0x9f8c, - 0x5420, 0x9f88, 0x541b, 0x9f83, 0x5416, 0x9f7f, 0x5411, 0x9f7b, - 0x540d, 0x9f77, 0x5408, 0x9f73, 0x5403, 0x9f6f, 0x53fe, 0x9f6b, - 0x53fa, 0x9f67, 0x53f5, 0x9f62, 0x53f0, 0x9f5e, 0x53eb, 0x9f5a, - 0x53e7, 0x9f56, 0x53e2, 0x9f52, 0x53dd, 0x9f4e, 0x53d8, 0x9f4a, - 0x53d4, 0x9f46, 0x53cf, 0x9f41, 0x53ca, 0x9f3d, 0x53c5, 0x9f39, - 0x53c1, 0x9f35, 0x53bc, 0x9f31, 0x53b7, 0x9f2d, 0x53b2, 0x9f29, - 0x53ae, 0x9f25, 0x53a9, 0x9f21, 0x53a4, 0x9f1c, 0x539f, 0x9f18, - 0x539b, 0x9f14, 0x5396, 0x9f10, 0x5391, 0x9f0c, 0x538c, 0x9f08, - 0x5388, 0x9f04, 0x5383, 0x9f00, 0x537e, 0x9efc, 0x5379, 0x9ef8, - 0x5375, 0x9ef3, 0x5370, 0x9eef, 0x536b, 0x9eeb, 0x5366, 0x9ee7, - 0x5362, 0x9ee3, 0x535d, 0x9edf, 0x5358, 0x9edb, 0x5353, 0x9ed7, - 0x534e, 0x9ed3, 0x534a, 0x9ecf, 0x5345, 0x9ecb, 0x5340, 0x9ec6, - 0x533b, 0x9ec2, 0x5337, 0x9ebe, 0x5332, 0x9eba, 0x532d, 0x9eb6, - 0x5328, 0x9eb2, 0x5323, 0x9eae, 0x531f, 0x9eaa, 0x531a, 0x9ea6, - 0x5315, 0x9ea2, 0x5310, 0x9e9e, 0x530c, 0x9e9a, 0x5307, 0x9e95, - 0x5302, 0x9e91, 0x52fd, 0x9e8d, 0x52f8, 0x9e89, 0x52f4, 0x9e85, - 0x52ef, 0x9e81, 0x52ea, 0x9e7d, 0x52e5, 0x9e79, 0x52e1, 0x9e75, - 0x52dc, 0x9e71, 0x52d7, 0x9e6d, 0x52d2, 0x9e69, 0x52cd, 0x9e65, - 0x52c9, 0x9e61, 0x52c4, 0x9e5d, 0x52bf, 0x9e58, 0x52ba, 0x9e54, - 0x52b5, 0x9e50, 0x52b1, 0x9e4c, 0x52ac, 0x9e48, 0x52a7, 0x9e44, - 0x52a2, 0x9e40, 0x529d, 0x9e3c, 0x5299, 0x9e38, 0x5294, 0x9e34, - 0x528f, 0x9e30, 0x528a, 0x9e2c, 0x5285, 0x9e28, 0x5281, 0x9e24, - 0x527c, 0x9e20, 0x5277, 0x9e1c, 0x5272, 0x9e18, 0x526d, 0x9e14, - 0x5269, 0x9e0f, 0x5264, 0x9e0b, 0x525f, 0x9e07, 0x525a, 0x9e03, - 0x5255, 0x9dff, 0x5251, 0x9dfb, 0x524c, 0x9df7, 0x5247, 0x9df3, - 0x5242, 0x9def, 0x523d, 0x9deb, 0x5238, 0x9de7, 0x5234, 0x9de3, - 0x522f, 0x9ddf, 0x522a, 0x9ddb, 0x5225, 0x9dd7, 0x5220, 0x9dd3, - 0x521c, 0x9dcf, 0x5217, 0x9dcb, 0x5212, 0x9dc7, 0x520d, 0x9dc3, - 0x5208, 0x9dbf, 0x5203, 0x9dbb, 0x51ff, 0x9db7, 0x51fa, 0x9db3, - 0x51f5, 0x9daf, 0x51f0, 0x9dab, 0x51eb, 0x9da7, 0x51e6, 0x9da3, - 0x51e2, 0x9d9f, 0x51dd, 0x9d9b, 0x51d8, 0x9d97, 0x51d3, 0x9d93, - 0x51ce, 0x9d8f, 0x51c9, 0x9d8b, 0x51c5, 0x9d86, 0x51c0, 0x9d82, - 0x51bb, 0x9d7e, 0x51b6, 0x9d7a, 0x51b1, 0x9d76, 0x51ac, 0x9d72, - 0x51a8, 0x9d6e, 0x51a3, 0x9d6a, 0x519e, 0x9d66, 0x5199, 0x9d62, - 0x5194, 0x9d5e, 0x518f, 0x9d5a, 0x518b, 0x9d56, 0x5186, 0x9d52, - 0x5181, 0x9d4e, 0x517c, 0x9d4a, 0x5177, 0x9d46, 0x5172, 0x9d42, - 0x516e, 0x9d3e, 0x5169, 0x9d3a, 0x5164, 0x9d36, 0x515f, 0x9d32, - 0x515a, 0x9d2e, 0x5155, 0x9d2a, 0x5150, 0x9d26, 0x514c, 0x9d22, - 0x5147, 0x9d1e, 0x5142, 0x9d1a, 0x513d, 0x9d16, 0x5138, 0x9d12, - 0x5133, 0x9d0e, 0x512e, 0x9d0b, 0x512a, 0x9d07, 0x5125, 0x9d03, - 0x5120, 0x9cff, 0x511b, 0x9cfb, 0x5116, 0x9cf7, 0x5111, 0x9cf3, - 0x510c, 0x9cef, 0x5108, 0x9ceb, 0x5103, 0x9ce7, 0x50fe, 0x9ce3, - 0x50f9, 0x9cdf, 0x50f4, 0x9cdb, 0x50ef, 0x9cd7, 0x50ea, 0x9cd3, - 0x50e5, 0x9ccf, 0x50e1, 0x9ccb, 0x50dc, 0x9cc7, 0x50d7, 0x9cc3, - 0x50d2, 0x9cbf, 0x50cd, 0x9cbb, 0x50c8, 0x9cb7, 0x50c3, 0x9cb3, - 0x50bf, 0x9caf, 0x50ba, 0x9cab, 0x50b5, 0x9ca7, 0x50b0, 0x9ca3, - 0x50ab, 0x9c9f, 0x50a6, 0x9c9b, 0x50a1, 0x9c97, 0x509c, 0x9c93, - 0x5097, 0x9c8f, 0x5093, 0x9c8b, 0x508e, 0x9c88, 0x5089, 0x9c84, - 0x5084, 0x9c80, 0x507f, 0x9c7c, 0x507a, 0x9c78, 0x5075, 0x9c74, - 0x5070, 0x9c70, 0x506c, 0x9c6c, 0x5067, 0x9c68, 0x5062, 0x9c64, - 0x505d, 0x9c60, 0x5058, 0x9c5c, 0x5053, 0x9c58, 0x504e, 0x9c54, - 0x5049, 0x9c50, 0x5044, 0x9c4c, 0x503f, 0x9c48, 0x503b, 0x9c44, - 0x5036, 0x9c40, 0x5031, 0x9c3d, 0x502c, 0x9c39, 0x5027, 0x9c35, - 0x5022, 0x9c31, 0x501d, 0x9c2d, 0x5018, 0x9c29, 0x5013, 0x9c25, - 0x500f, 0x9c21, 0x500a, 0x9c1d, 0x5005, 0x9c19, 0x5000, 0x9c15, - 0x4ffb, 0x9c11, 0x4ff6, 0x9c0d, 0x4ff1, 0x9c09, 0x4fec, 0x9c06, - 0x4fe7, 0x9c02, 0x4fe2, 0x9bfe, 0x4fdd, 0x9bfa, 0x4fd9, 0x9bf6, - 0x4fd4, 0x9bf2, 0x4fcf, 0x9bee, 0x4fca, 0x9bea, 0x4fc5, 0x9be6, - 0x4fc0, 0x9be2, 0x4fbb, 0x9bde, 0x4fb6, 0x9bda, 0x4fb1, 0x9bd7, - 0x4fac, 0x9bd3, 0x4fa7, 0x9bcf, 0x4fa2, 0x9bcb, 0x4f9e, 0x9bc7, - 0x4f99, 0x9bc3, 0x4f94, 0x9bbf, 0x4f8f, 0x9bbb, 0x4f8a, 0x9bb7, - 0x4f85, 0x9bb3, 0x4f80, 0x9baf, 0x4f7b, 0x9bac, 0x4f76, 0x9ba8, - 0x4f71, 0x9ba4, 0x4f6c, 0x9ba0, 0x4f67, 0x9b9c, 0x4f62, 0x9b98, - 0x4f5e, 0x9b94, 0x4f59, 0x9b90, 0x4f54, 0x9b8c, 0x4f4f, 0x9b88, - 0x4f4a, 0x9b85, 0x4f45, 0x9b81, 0x4f40, 0x9b7d, 0x4f3b, 0x9b79, - 0x4f36, 0x9b75, 0x4f31, 0x9b71, 0x4f2c, 0x9b6d, 0x4f27, 0x9b69, - 0x4f22, 0x9b65, 0x4f1d, 0x9b62, 0x4f18, 0x9b5e, 0x4f14, 0x9b5a, - 0x4f0f, 0x9b56, 0x4f0a, 0x9b52, 0x4f05, 0x9b4e, 0x4f00, 0x9b4a, - 0x4efb, 0x9b46, 0x4ef6, 0x9b43, 0x4ef1, 0x9b3f, 0x4eec, 0x9b3b, - 0x4ee7, 0x9b37, 0x4ee2, 0x9b33, 0x4edd, 0x9b2f, 0x4ed8, 0x9b2b, - 0x4ed3, 0x9b27, 0x4ece, 0x9b24, 0x4ec9, 0x9b20, 0x4ec4, 0x9b1c, - 0x4ebf, 0x9b18, 0x4eba, 0x9b14, 0x4eb6, 0x9b10, 0x4eb1, 0x9b0c, - 0x4eac, 0x9b09, 0x4ea7, 0x9b05, 0x4ea2, 0x9b01, 0x4e9d, 0x9afd, - 0x4e98, 0x9af9, 0x4e93, 0x9af5, 0x4e8e, 0x9af1, 0x4e89, 0x9aed, - 0x4e84, 0x9aea, 0x4e7f, 0x9ae6, 0x4e7a, 0x9ae2, 0x4e75, 0x9ade, - 0x4e70, 0x9ada, 0x4e6b, 0x9ad6, 0x4e66, 0x9ad3, 0x4e61, 0x9acf, - 0x4e5c, 0x9acb, 0x4e57, 0x9ac7, 0x4e52, 0x9ac3, 0x4e4d, 0x9abf, - 0x4e48, 0x9abb, 0x4e43, 0x9ab8, 0x4e3e, 0x9ab4, 0x4e39, 0x9ab0, - 0x4e34, 0x9aac, 0x4e2f, 0x9aa8, 0x4e2a, 0x9aa4, 0x4e26, 0x9aa1, - 0x4e21, 0x9a9d, 0x4e1c, 0x9a99, 0x4e17, 0x9a95, 0x4e12, 0x9a91, - 0x4e0d, 0x9a8d, 0x4e08, 0x9a8a, 0x4e03, 0x9a86, 0x4dfe, 0x9a82, - 0x4df9, 0x9a7e, 0x4df4, 0x9a7a, 0x4def, 0x9a76, 0x4dea, 0x9a73, - 0x4de5, 0x9a6f, 0x4de0, 0x9a6b, 0x4ddb, 0x9a67, 0x4dd6, 0x9a63, - 0x4dd1, 0x9a60, 0x4dcc, 0x9a5c, 0x4dc7, 0x9a58, 0x4dc2, 0x9a54, - 0x4dbd, 0x9a50, 0x4db8, 0x9a4c, 0x4db3, 0x9a49, 0x4dae, 0x9a45, - 0x4da9, 0x9a41, 0x4da4, 0x9a3d, 0x4d9f, 0x9a39, 0x4d9a, 0x9a36, - 0x4d95, 0x9a32, 0x4d90, 0x9a2e, 0x4d8b, 0x9a2a, 0x4d86, 0x9a26, - 0x4d81, 0x9a23, 0x4d7c, 0x9a1f, 0x4d77, 0x9a1b, 0x4d72, 0x9a17, - 0x4d6d, 0x9a13, 0x4d68, 0x9a10, 0x4d63, 0x9a0c, 0x4d5e, 0x9a08, - 0x4d59, 0x9a04, 0x4d54, 0x9a00, 0x4d4f, 0x99fd, 0x4d4a, 0x99f9, - 0x4d45, 0x99f5, 0x4d40, 0x99f1, 0x4d3b, 0x99ed, 0x4d36, 0x99ea, - 0x4d31, 0x99e6, 0x4d2c, 0x99e2, 0x4d27, 0x99de, 0x4d22, 0x99da, - 0x4d1d, 0x99d7, 0x4d18, 0x99d3, 0x4d13, 0x99cf, 0x4d0e, 0x99cb, - 0x4d09, 0x99c7, 0x4d04, 0x99c4, 0x4cff, 0x99c0, 0x4cfa, 0x99bc, - 0x4cf5, 0x99b8, 0x4cf0, 0x99b5, 0x4ceb, 0x99b1, 0x4ce6, 0x99ad, - 0x4ce1, 0x99a9, 0x4cdb, 0x99a5, 0x4cd6, 0x99a2, 0x4cd1, 0x999e, - 0x4ccc, 0x999a, 0x4cc7, 0x9996, 0x4cc2, 0x9993, 0x4cbd, 0x998f, - 0x4cb8, 0x998b, 0x4cb3, 0x9987, 0x4cae, 0x9984, 0x4ca9, 0x9980, - 0x4ca4, 0x997c, 0x4c9f, 0x9978, 0x4c9a, 0x9975, 0x4c95, 0x9971, - 0x4c90, 0x996d, 0x4c8b, 0x9969, 0x4c86, 0x9965, 0x4c81, 0x9962, - 0x4c7c, 0x995e, 0x4c77, 0x995a, 0x4c72, 0x9956, 0x4c6d, 0x9953, - 0x4c68, 0x994f, 0x4c63, 0x994b, 0x4c5e, 0x9947, 0x4c59, 0x9944, - 0x4c54, 0x9940, 0x4c4f, 0x993c, 0x4c49, 0x9938, 0x4c44, 0x9935, - 0x4c3f, 0x9931, 0x4c3a, 0x992d, 0x4c35, 0x992a, 0x4c30, 0x9926, - 0x4c2b, 0x9922, 0x4c26, 0x991e, 0x4c21, 0x991b, 0x4c1c, 0x9917, - 0x4c17, 0x9913, 0x4c12, 0x990f, 0x4c0d, 0x990c, 0x4c08, 0x9908, - 0x4c03, 0x9904, 0x4bfe, 0x9900, 0x4bf9, 0x98fd, 0x4bf4, 0x98f9, - 0x4bef, 0x98f5, 0x4be9, 0x98f2, 0x4be4, 0x98ee, 0x4bdf, 0x98ea, - 0x4bda, 0x98e6, 0x4bd5, 0x98e3, 0x4bd0, 0x98df, 0x4bcb, 0x98db, - 0x4bc6, 0x98d7, 0x4bc1, 0x98d4, 0x4bbc, 0x98d0, 0x4bb7, 0x98cc, - 0x4bb2, 0x98c9, 0x4bad, 0x98c5, 0x4ba8, 0x98c1, 0x4ba3, 0x98bd, - 0x4b9e, 0x98ba, 0x4b98, 0x98b6, 0x4b93, 0x98b2, 0x4b8e, 0x98af, - 0x4b89, 0x98ab, 0x4b84, 0x98a7, 0x4b7f, 0x98a3, 0x4b7a, 0x98a0, - 0x4b75, 0x989c, 0x4b70, 0x9898, 0x4b6b, 0x9895, 0x4b66, 0x9891, - 0x4b61, 0x988d, 0x4b5c, 0x988a, 0x4b56, 0x9886, 0x4b51, 0x9882, - 0x4b4c, 0x987e, 0x4b47, 0x987b, 0x4b42, 0x9877, 0x4b3d, 0x9873, - 0x4b38, 0x9870, 0x4b33, 0x986c, 0x4b2e, 0x9868, 0x4b29, 0x9865, - 0x4b24, 0x9861, 0x4b1f, 0x985d, 0x4b19, 0x985a, 0x4b14, 0x9856, - 0x4b0f, 0x9852, 0x4b0a, 0x984e, 0x4b05, 0x984b, 0x4b00, 0x9847, - 0x4afb, 0x9843, 0x4af6, 0x9840, 0x4af1, 0x983c, 0x4aec, 0x9838, - 0x4ae7, 0x9835, 0x4ae1, 0x9831, 0x4adc, 0x982d, 0x4ad7, 0x982a, - 0x4ad2, 0x9826, 0x4acd, 0x9822, 0x4ac8, 0x981f, 0x4ac3, 0x981b, - 0x4abe, 0x9817, 0x4ab9, 0x9814, 0x4ab4, 0x9810, 0x4aae, 0x980c, - 0x4aa9, 0x9809, 0x4aa4, 0x9805, 0x4a9f, 0x9801, 0x4a9a, 0x97fe, - 0x4a95, 0x97fa, 0x4a90, 0x97f6, 0x4a8b, 0x97f3, 0x4a86, 0x97ef, - 0x4a81, 0x97eb, 0x4a7b, 0x97e8, 0x4a76, 0x97e4, 0x4a71, 0x97e0, - 0x4a6c, 0x97dd, 0x4a67, 0x97d9, 0x4a62, 0x97d5, 0x4a5d, 0x97d2, - 0x4a58, 0x97ce, 0x4a52, 0x97cb, 0x4a4d, 0x97c7, 0x4a48, 0x97c3, - 0x4a43, 0x97c0, 0x4a3e, 0x97bc, 0x4a39, 0x97b8, 0x4a34, 0x97b5, - 0x4a2f, 0x97b1, 0x4a2a, 0x97ad, 0x4a24, 0x97aa, 0x4a1f, 0x97a6, - 0x4a1a, 0x97a2, 0x4a15, 0x979f, 0x4a10, 0x979b, 0x4a0b, 0x9798, - 0x4a06, 0x9794, 0x4a01, 0x9790, 0x49fb, 0x978d, 0x49f6, 0x9789, - 0x49f1, 0x9785, 0x49ec, 0x9782, 0x49e7, 0x977e, 0x49e2, 0x977a, - 0x49dd, 0x9777, 0x49d8, 0x9773, 0x49d2, 0x9770, 0x49cd, 0x976c, - 0x49c8, 0x9768, 0x49c3, 0x9765, 0x49be, 0x9761, 0x49b9, 0x975d, - 0x49b4, 0x975a, 0x49ae, 0x9756, 0x49a9, 0x9753, 0x49a4, 0x974f, - 0x499f, 0x974b, 0x499a, 0x9748, 0x4995, 0x9744, 0x4990, 0x9741, - 0x498a, 0x973d, 0x4985, 0x9739, 0x4980, 0x9736, 0x497b, 0x9732, - 0x4976, 0x972f, 0x4971, 0x972b, 0x496c, 0x9727, 0x4966, 0x9724, - 0x4961, 0x9720, 0x495c, 0x971d, 0x4957, 0x9719, 0x4952, 0x9715, - 0x494d, 0x9712, 0x4948, 0x970e, 0x4942, 0x970b, 0x493d, 0x9707, - 0x4938, 0x9703, 0x4933, 0x9700, 0x492e, 0x96fc, 0x4929, 0x96f9, - 0x4923, 0x96f5, 0x491e, 0x96f1, 0x4919, 0x96ee, 0x4914, 0x96ea, - 0x490f, 0x96e7, 0x490a, 0x96e3, 0x4905, 0x96df, 0x48ff, 0x96dc, - 0x48fa, 0x96d8, 0x48f5, 0x96d5, 0x48f0, 0x96d1, 0x48eb, 0x96ce, - 0x48e6, 0x96ca, 0x48e0, 0x96c6, 0x48db, 0x96c3, 0x48d6, 0x96bf, - 0x48d1, 0x96bc, 0x48cc, 0x96b8, 0x48c7, 0x96b5, 0x48c1, 0x96b1, - 0x48bc, 0x96ad, 0x48b7, 0x96aa, 0x48b2, 0x96a6, 0x48ad, 0x96a3, - 0x48a8, 0x969f, 0x48a2, 0x969c, 0x489d, 0x9698, 0x4898, 0x9694, - 0x4893, 0x9691, 0x488e, 0x968d, 0x4888, 0x968a, 0x4883, 0x9686, - 0x487e, 0x9683, 0x4879, 0x967f, 0x4874, 0x967b, 0x486f, 0x9678, - 0x4869, 0x9674, 0x4864, 0x9671, 0x485f, 0x966d, 0x485a, 0x966a, - 0x4855, 0x9666, 0x484f, 0x9663, 0x484a, 0x965f, 0x4845, 0x965b, - 0x4840, 0x9658, 0x483b, 0x9654, 0x4836, 0x9651, 0x4830, 0x964d, - 0x482b, 0x964a, 0x4826, 0x9646, 0x4821, 0x9643, 0x481c, 0x963f, - 0x4816, 0x963c, 0x4811, 0x9638, 0x480c, 0x9635, 0x4807, 0x9631, - 0x4802, 0x962d, 0x47fc, 0x962a, 0x47f7, 0x9626, 0x47f2, 0x9623, - 0x47ed, 0x961f, 0x47e8, 0x961c, 0x47e2, 0x9618, 0x47dd, 0x9615, - 0x47d8, 0x9611, 0x47d3, 0x960e, 0x47ce, 0x960a, 0x47c8, 0x9607, - 0x47c3, 0x9603, 0x47be, 0x9600, 0x47b9, 0x95fc, 0x47b4, 0x95f9, - 0x47ae, 0x95f5, 0x47a9, 0x95f2, 0x47a4, 0x95ee, 0x479f, 0x95ea, - 0x479a, 0x95e7, 0x4794, 0x95e3, 0x478f, 0x95e0, 0x478a, 0x95dc, - 0x4785, 0x95d9, 0x4780, 0x95d5, 0x477a, 0x95d2, 0x4775, 0x95ce, - 0x4770, 0x95cb, 0x476b, 0x95c7, 0x4765, 0x95c4, 0x4760, 0x95c0, - 0x475b, 0x95bd, 0x4756, 0x95b9, 0x4751, 0x95b6, 0x474b, 0x95b2, - 0x4746, 0x95af, 0x4741, 0x95ab, 0x473c, 0x95a8, 0x4737, 0x95a4, - 0x4731, 0x95a1, 0x472c, 0x959d, 0x4727, 0x959a, 0x4722, 0x9596, - 0x471c, 0x9593, 0x4717, 0x958f, 0x4712, 0x958c, 0x470d, 0x9588, - 0x4708, 0x9585, 0x4702, 0x9581, 0x46fd, 0x957e, 0x46f8, 0x957a, - 0x46f3, 0x9577, 0x46ed, 0x9574, 0x46e8, 0x9570, 0x46e3, 0x956d, - 0x46de, 0x9569, 0x46d8, 0x9566, 0x46d3, 0x9562, 0x46ce, 0x955f, - 0x46c9, 0x955b, 0x46c4, 0x9558, 0x46be, 0x9554, 0x46b9, 0x9551, - 0x46b4, 0x954d, 0x46af, 0x954a, 0x46a9, 0x9546, 0x46a4, 0x9543, - 0x469f, 0x953f, 0x469a, 0x953c, 0x4694, 0x9538, 0x468f, 0x9535, - 0x468a, 0x9532, 0x4685, 0x952e, 0x467f, 0x952b, 0x467a, 0x9527, - 0x4675, 0x9524, 0x4670, 0x9520, 0x466a, 0x951d, 0x4665, 0x9519, - 0x4660, 0x9516, 0x465b, 0x9512, 0x4655, 0x950f, 0x4650, 0x950c, - 0x464b, 0x9508, 0x4646, 0x9505, 0x4640, 0x9501, 0x463b, 0x94fe, - 0x4636, 0x94fa, 0x4631, 0x94f7, 0x462b, 0x94f3, 0x4626, 0x94f0, - 0x4621, 0x94ed, 0x461c, 0x94e9, 0x4616, 0x94e6, 0x4611, 0x94e2, - 0x460c, 0x94df, 0x4607, 0x94db, 0x4601, 0x94d8, 0x45fc, 0x94d4, - 0x45f7, 0x94d1, 0x45f2, 0x94ce, 0x45ec, 0x94ca, 0x45e7, 0x94c7, - 0x45e2, 0x94c3, 0x45dd, 0x94c0, 0x45d7, 0x94bc, 0x45d2, 0x94b9, - 0x45cd, 0x94b6, 0x45c7, 0x94b2, 0x45c2, 0x94af, 0x45bd, 0x94ab, - 0x45b8, 0x94a8, 0x45b2, 0x94a4, 0x45ad, 0x94a1, 0x45a8, 0x949e, - 0x45a3, 0x949a, 0x459d, 0x9497, 0x4598, 0x9493, 0x4593, 0x9490, - 0x458d, 0x948d, 0x4588, 0x9489, 0x4583, 0x9486, 0x457e, 0x9482, - 0x4578, 0x947f, 0x4573, 0x947b, 0x456e, 0x9478, 0x4569, 0x9475, - 0x4563, 0x9471, 0x455e, 0x946e, 0x4559, 0x946a, 0x4553, 0x9467, - 0x454e, 0x9464, 0x4549, 0x9460, 0x4544, 0x945d, 0x453e, 0x9459, - 0x4539, 0x9456, 0x4534, 0x9453, 0x452e, 0x944f, 0x4529, 0x944c, - 0x4524, 0x9448, 0x451f, 0x9445, 0x4519, 0x9442, 0x4514, 0x943e, - 0x450f, 0x943b, 0x4509, 0x9437, 0x4504, 0x9434, 0x44ff, 0x9431, - 0x44fa, 0x942d, 0x44f4, 0x942a, 0x44ef, 0x9427, 0x44ea, 0x9423, - 0x44e4, 0x9420, 0x44df, 0x941c, 0x44da, 0x9419, 0x44d4, 0x9416, - 0x44cf, 0x9412, 0x44ca, 0x940f, 0x44c5, 0x940b, 0x44bf, 0x9408, - 0x44ba, 0x9405, 0x44b5, 0x9401, 0x44af, 0x93fe, 0x44aa, 0x93fb, - 0x44a5, 0x93f7, 0x449f, 0x93f4, 0x449a, 0x93f1, 0x4495, 0x93ed, - 0x4490, 0x93ea, 0x448a, 0x93e6, 0x4485, 0x93e3, 0x4480, 0x93e0, - 0x447a, 0x93dc, 0x4475, 0x93d9, 0x4470, 0x93d6, 0x446a, 0x93d2, - 0x4465, 0x93cf, 0x4460, 0x93cc, 0x445a, 0x93c8, 0x4455, 0x93c5, - 0x4450, 0x93c1, 0x444b, 0x93be, 0x4445, 0x93bb, 0x4440, 0x93b7, - 0x443b, 0x93b4, 0x4435, 0x93b1, 0x4430, 0x93ad, 0x442b, 0x93aa, - 0x4425, 0x93a7, 0x4420, 0x93a3, 0x441b, 0x93a0, 0x4415, 0x939d, - 0x4410, 0x9399, 0x440b, 0x9396, 0x4405, 0x9393, 0x4400, 0x938f, - 0x43fb, 0x938c, 0x43f5, 0x9389, 0x43f0, 0x9385, 0x43eb, 0x9382, - 0x43e5, 0x937f, 0x43e0, 0x937b, 0x43db, 0x9378, 0x43d5, 0x9375, - 0x43d0, 0x9371, 0x43cb, 0x936e, 0x43c5, 0x936b, 0x43c0, 0x9367, - 0x43bb, 0x9364, 0x43b5, 0x9361, 0x43b0, 0x935d, 0x43ab, 0x935a, - 0x43a5, 0x9357, 0x43a0, 0x9353, 0x439b, 0x9350, 0x4395, 0x934d, - 0x4390, 0x9349, 0x438b, 0x9346, 0x4385, 0x9343, 0x4380, 0x933f, - 0x437b, 0x933c, 0x4375, 0x9339, 0x4370, 0x9336, 0x436b, 0x9332, - 0x4365, 0x932f, 0x4360, 0x932c, 0x435b, 0x9328, 0x4355, 0x9325, - 0x4350, 0x9322, 0x434b, 0x931e, 0x4345, 0x931b, 0x4340, 0x9318, - 0x433b, 0x9314, 0x4335, 0x9311, 0x4330, 0x930e, 0x432b, 0x930b, - 0x4325, 0x9307, 0x4320, 0x9304, 0x431b, 0x9301, 0x4315, 0x92fd, - 0x4310, 0x92fa, 0x430b, 0x92f7, 0x4305, 0x92f4, 0x4300, 0x92f0, - 0x42fa, 0x92ed, 0x42f5, 0x92ea, 0x42f0, 0x92e6, 0x42ea, 0x92e3, - 0x42e5, 0x92e0, 0x42e0, 0x92dd, 0x42da, 0x92d9, 0x42d5, 0x92d6, - 0x42d0, 0x92d3, 0x42ca, 0x92cf, 0x42c5, 0x92cc, 0x42c0, 0x92c9, - 0x42ba, 0x92c6, 0x42b5, 0x92c2, 0x42af, 0x92bf, 0x42aa, 0x92bc, - 0x42a5, 0x92b8, 0x429f, 0x92b5, 0x429a, 0x92b2, 0x4295, 0x92af, - 0x428f, 0x92ab, 0x428a, 0x92a8, 0x4284, 0x92a5, 0x427f, 0x92a2, - 0x427a, 0x929e, 0x4274, 0x929b, 0x426f, 0x9298, 0x426a, 0x9295, - 0x4264, 0x9291, 0x425f, 0x928e, 0x425a, 0x928b, 0x4254, 0x9288, - 0x424f, 0x9284, 0x4249, 0x9281, 0x4244, 0x927e, 0x423f, 0x927b, - 0x4239, 0x9277, 0x4234, 0x9274, 0x422f, 0x9271, 0x4229, 0x926e, - 0x4224, 0x926a, 0x421e, 0x9267, 0x4219, 0x9264, 0x4214, 0x9261, - 0x420e, 0x925d, 0x4209, 0x925a, 0x4203, 0x9257, 0x41fe, 0x9254, - 0x41f9, 0x9250, 0x41f3, 0x924d, 0x41ee, 0x924a, 0x41e9, 0x9247, - 0x41e3, 0x9243, 0x41de, 0x9240, 0x41d8, 0x923d, 0x41d3, 0x923a, - 0x41ce, 0x9236, 0x41c8, 0x9233, 0x41c3, 0x9230, 0x41bd, 0x922d, - 0x41b8, 0x922a, 0x41b3, 0x9226, 0x41ad, 0x9223, 0x41a8, 0x9220, - 0x41a2, 0x921d, 0x419d, 0x9219, 0x4198, 0x9216, 0x4192, 0x9213, - 0x418d, 0x9210, 0x4188, 0x920d, 0x4182, 0x9209, 0x417d, 0x9206, - 0x4177, 0x9203, 0x4172, 0x9200, 0x416d, 0x91fc, 0x4167, 0x91f9, - 0x4162, 0x91f6, 0x415c, 0x91f3, 0x4157, 0x91f0, 0x4152, 0x91ec, - 0x414c, 0x91e9, 0x4147, 0x91e6, 0x4141, 0x91e3, 0x413c, 0x91e0, - 0x4136, 0x91dc, 0x4131, 0x91d9, 0x412c, 0x91d6, 0x4126, 0x91d3, - 0x4121, 0x91d0, 0x411b, 0x91cc, 0x4116, 0x91c9, 0x4111, 0x91c6, - 0x410b, 0x91c3, 0x4106, 0x91c0, 0x4100, 0x91bc, 0x40fb, 0x91b9, - 0x40f6, 0x91b6, 0x40f0, 0x91b3, 0x40eb, 0x91b0, 0x40e5, 0x91ad, - 0x40e0, 0x91a9, 0x40da, 0x91a6, 0x40d5, 0x91a3, 0x40d0, 0x91a0, - 0x40ca, 0x919d, 0x40c5, 0x9199, 0x40bf, 0x9196, 0x40ba, 0x9193, - 0x40b5, 0x9190, 0x40af, 0x918d, 0x40aa, 0x918a, 0x40a4, 0x9186, - 0x409f, 0x9183, 0x4099, 0x9180, 0x4094, 0x917d, 0x408f, 0x917a, - 0x4089, 0x9177, 0x4084, 0x9173, 0x407e, 0x9170, 0x4079, 0x916d, - 0x4073, 0x916a, 0x406e, 0x9167, 0x4069, 0x9164, 0x4063, 0x9160, - 0x405e, 0x915d, 0x4058, 0x915a, 0x4053, 0x9157, 0x404d, 0x9154, - 0x4048, 0x9151, 0x4043, 0x914d, 0x403d, 0x914a, 0x4038, 0x9147, - 0x4032, 0x9144, 0x402d, 0x9141, 0x4027, 0x913e, 0x4022, 0x913a, - 0x401d, 0x9137, 0x4017, 0x9134, 0x4012, 0x9131, 0x400c, 0x912e, - 0x4007, 0x912b, 0x4001, 0x9128, 0x3ffc, 0x9124, 0x3ff6, 0x9121, - 0x3ff1, 0x911e, 0x3fec, 0x911b, 0x3fe6, 0x9118, 0x3fe1, 0x9115, - 0x3fdb, 0x9112, 0x3fd6, 0x910f, 0x3fd0, 0x910b, 0x3fcb, 0x9108, - 0x3fc5, 0x9105, 0x3fc0, 0x9102, 0x3fbb, 0x90ff, 0x3fb5, 0x90fc, - 0x3fb0, 0x90f9, 0x3faa, 0x90f5, 0x3fa5, 0x90f2, 0x3f9f, 0x90ef, - 0x3f9a, 0x90ec, 0x3f94, 0x90e9, 0x3f8f, 0x90e6, 0x3f89, 0x90e3, - 0x3f84, 0x90e0, 0x3f7f, 0x90dd, 0x3f79, 0x90d9, 0x3f74, 0x90d6, - 0x3f6e, 0x90d3, 0x3f69, 0x90d0, 0x3f63, 0x90cd, 0x3f5e, 0x90ca, - 0x3f58, 0x90c7, 0x3f53, 0x90c4, 0x3f4d, 0x90c1, 0x3f48, 0x90bd, - 0x3f43, 0x90ba, 0x3f3d, 0x90b7, 0x3f38, 0x90b4, 0x3f32, 0x90b1, - 0x3f2d, 0x90ae, 0x3f27, 0x90ab, 0x3f22, 0x90a8, 0x3f1c, 0x90a5, - 0x3f17, 0x90a1, 0x3f11, 0x909e, 0x3f0c, 0x909b, 0x3f06, 0x9098, - 0x3f01, 0x9095, 0x3efb, 0x9092, 0x3ef6, 0x908f, 0x3ef1, 0x908c, - 0x3eeb, 0x9089, 0x3ee6, 0x9086, 0x3ee0, 0x9083, 0x3edb, 0x907f, - 0x3ed5, 0x907c, 0x3ed0, 0x9079, 0x3eca, 0x9076, 0x3ec5, 0x9073, - 0x3ebf, 0x9070, 0x3eba, 0x906d, 0x3eb4, 0x906a, 0x3eaf, 0x9067, - 0x3ea9, 0x9064, 0x3ea4, 0x9061, 0x3e9e, 0x905e, 0x3e99, 0x905b, - 0x3e93, 0x9057, 0x3e8e, 0x9054, 0x3e88, 0x9051, 0x3e83, 0x904e, - 0x3e7d, 0x904b, 0x3e78, 0x9048, 0x3e73, 0x9045, 0x3e6d, 0x9042, - 0x3e68, 0x903f, 0x3e62, 0x903c, 0x3e5d, 0x9039, 0x3e57, 0x9036, - 0x3e52, 0x9033, 0x3e4c, 0x9030, 0x3e47, 0x902d, 0x3e41, 0x902a, - 0x3e3c, 0x9026, 0x3e36, 0x9023, 0x3e31, 0x9020, 0x3e2b, 0x901d, - 0x3e26, 0x901a, 0x3e20, 0x9017, 0x3e1b, 0x9014, 0x3e15, 0x9011, - 0x3e10, 0x900e, 0x3e0a, 0x900b, 0x3e05, 0x9008, 0x3dff, 0x9005, - 0x3dfa, 0x9002, 0x3df4, 0x8fff, 0x3def, 0x8ffc, 0x3de9, 0x8ff9, - 0x3de4, 0x8ff6, 0x3dde, 0x8ff3, 0x3dd9, 0x8ff0, 0x3dd3, 0x8fed, - 0x3dce, 0x8fea, 0x3dc8, 0x8fe7, 0x3dc3, 0x8fe3, 0x3dbd, 0x8fe0, - 0x3db8, 0x8fdd, 0x3db2, 0x8fda, 0x3dad, 0x8fd7, 0x3da7, 0x8fd4, - 0x3da2, 0x8fd1, 0x3d9c, 0x8fce, 0x3d97, 0x8fcb, 0x3d91, 0x8fc8, - 0x3d8c, 0x8fc5, 0x3d86, 0x8fc2, 0x3d81, 0x8fbf, 0x3d7b, 0x8fbc, - 0x3d76, 0x8fb9, 0x3d70, 0x8fb6, 0x3d6b, 0x8fb3, 0x3d65, 0x8fb0, - 0x3d60, 0x8fad, 0x3d5a, 0x8faa, 0x3d55, 0x8fa7, 0x3d4f, 0x8fa4, - 0x3d49, 0x8fa1, 0x3d44, 0x8f9e, 0x3d3e, 0x8f9b, 0x3d39, 0x8f98, - 0x3d33, 0x8f95, 0x3d2e, 0x8f92, 0x3d28, 0x8f8f, 0x3d23, 0x8f8c, - 0x3d1d, 0x8f89, 0x3d18, 0x8f86, 0x3d12, 0x8f83, 0x3d0d, 0x8f80, - 0x3d07, 0x8f7d, 0x3d02, 0x8f7a, 0x3cfc, 0x8f77, 0x3cf7, 0x8f74, - 0x3cf1, 0x8f71, 0x3cec, 0x8f6e, 0x3ce6, 0x8f6b, 0x3ce1, 0x8f68, - 0x3cdb, 0x8f65, 0x3cd6, 0x8f62, 0x3cd0, 0x8f5f, 0x3cca, 0x8f5c, - 0x3cc5, 0x8f59, 0x3cbf, 0x8f56, 0x3cba, 0x8f53, 0x3cb4, 0x8f50, - 0x3caf, 0x8f4d, 0x3ca9, 0x8f4a, 0x3ca4, 0x8f47, 0x3c9e, 0x8f44, - 0x3c99, 0x8f41, 0x3c93, 0x8f3e, 0x3c8e, 0x8f3b, 0x3c88, 0x8f38, - 0x3c83, 0x8f35, 0x3c7d, 0x8f32, 0x3c77, 0x8f2f, 0x3c72, 0x8f2d, - 0x3c6c, 0x8f2a, 0x3c67, 0x8f27, 0x3c61, 0x8f24, 0x3c5c, 0x8f21, - 0x3c56, 0x8f1e, 0x3c51, 0x8f1b, 0x3c4b, 0x8f18, 0x3c46, 0x8f15, - 0x3c40, 0x8f12, 0x3c3b, 0x8f0f, 0x3c35, 0x8f0c, 0x3c2f, 0x8f09, - 0x3c2a, 0x8f06, 0x3c24, 0x8f03, 0x3c1f, 0x8f00, 0x3c19, 0x8efd, - 0x3c14, 0x8efa, 0x3c0e, 0x8ef7, 0x3c09, 0x8ef4, 0x3c03, 0x8ef1, - 0x3bfd, 0x8eee, 0x3bf8, 0x8eec, 0x3bf2, 0x8ee9, 0x3bed, 0x8ee6, - 0x3be7, 0x8ee3, 0x3be2, 0x8ee0, 0x3bdc, 0x8edd, 0x3bd7, 0x8eda, - 0x3bd1, 0x8ed7, 0x3bcc, 0x8ed4, 0x3bc6, 0x8ed1, 0x3bc0, 0x8ece, - 0x3bbb, 0x8ecb, 0x3bb5, 0x8ec8, 0x3bb0, 0x8ec5, 0x3baa, 0x8ec2, - 0x3ba5, 0x8ebf, 0x3b9f, 0x8ebd, 0x3b99, 0x8eba, 0x3b94, 0x8eb7, - 0x3b8e, 0x8eb4, 0x3b89, 0x8eb1, 0x3b83, 0x8eae, 0x3b7e, 0x8eab, - 0x3b78, 0x8ea8, 0x3b73, 0x8ea5, 0x3b6d, 0x8ea2, 0x3b67, 0x8e9f, - 0x3b62, 0x8e9c, 0x3b5c, 0x8e99, 0x3b57, 0x8e97, 0x3b51, 0x8e94, - 0x3b4c, 0x8e91, 0x3b46, 0x8e8e, 0x3b40, 0x8e8b, 0x3b3b, 0x8e88, - 0x3b35, 0x8e85, 0x3b30, 0x8e82, 0x3b2a, 0x8e7f, 0x3b25, 0x8e7c, - 0x3b1f, 0x8e7a, 0x3b19, 0x8e77, 0x3b14, 0x8e74, 0x3b0e, 0x8e71, - 0x3b09, 0x8e6e, 0x3b03, 0x8e6b, 0x3afe, 0x8e68, 0x3af8, 0x8e65, - 0x3af2, 0x8e62, 0x3aed, 0x8e5f, 0x3ae7, 0x8e5d, 0x3ae2, 0x8e5a, - 0x3adc, 0x8e57, 0x3ad7, 0x8e54, 0x3ad1, 0x8e51, 0x3acb, 0x8e4e, - 0x3ac6, 0x8e4b, 0x3ac0, 0x8e48, 0x3abb, 0x8e45, 0x3ab5, 0x8e43, - 0x3aaf, 0x8e40, 0x3aaa, 0x8e3d, 0x3aa4, 0x8e3a, 0x3a9f, 0x8e37, - 0x3a99, 0x8e34, 0x3a94, 0x8e31, 0x3a8e, 0x8e2e, 0x3a88, 0x8e2c, - 0x3a83, 0x8e29, 0x3a7d, 0x8e26, 0x3a78, 0x8e23, 0x3a72, 0x8e20, - 0x3a6c, 0x8e1d, 0x3a67, 0x8e1a, 0x3a61, 0x8e17, 0x3a5c, 0x8e15, - 0x3a56, 0x8e12, 0x3a50, 0x8e0f, 0x3a4b, 0x8e0c, 0x3a45, 0x8e09, - 0x3a40, 0x8e06, 0x3a3a, 0x8e03, 0x3a34, 0x8e01, 0x3a2f, 0x8dfe, - 0x3a29, 0x8dfb, 0x3a24, 0x8df8, 0x3a1e, 0x8df5, 0x3a19, 0x8df2, - 0x3a13, 0x8def, 0x3a0d, 0x8ded, 0x3a08, 0x8dea, 0x3a02, 0x8de7, - 0x39fd, 0x8de4, 0x39f7, 0x8de1, 0x39f1, 0x8dde, 0x39ec, 0x8ddc, - 0x39e6, 0x8dd9, 0x39e0, 0x8dd6, 0x39db, 0x8dd3, 0x39d5, 0x8dd0, - 0x39d0, 0x8dcd, 0x39ca, 0x8dca, 0x39c4, 0x8dc8, 0x39bf, 0x8dc5, - 0x39b9, 0x8dc2, 0x39b4, 0x8dbf, 0x39ae, 0x8dbc, 0x39a8, 0x8db9, - 0x39a3, 0x8db7, 0x399d, 0x8db4, 0x3998, 0x8db1, 0x3992, 0x8dae, - 0x398c, 0x8dab, 0x3987, 0x8da9, 0x3981, 0x8da6, 0x397c, 0x8da3, - 0x3976, 0x8da0, 0x3970, 0x8d9d, 0x396b, 0x8d9a, 0x3965, 0x8d98, - 0x395f, 0x8d95, 0x395a, 0x8d92, 0x3954, 0x8d8f, 0x394f, 0x8d8c, - 0x3949, 0x8d8a, 0x3943, 0x8d87, 0x393e, 0x8d84, 0x3938, 0x8d81, - 0x3932, 0x8d7e, 0x392d, 0x8d7b, 0x3927, 0x8d79, 0x3922, 0x8d76, - 0x391c, 0x8d73, 0x3916, 0x8d70, 0x3911, 0x8d6d, 0x390b, 0x8d6b, - 0x3906, 0x8d68, 0x3900, 0x8d65, 0x38fa, 0x8d62, 0x38f5, 0x8d5f, - 0x38ef, 0x8d5d, 0x38e9, 0x8d5a, 0x38e4, 0x8d57, 0x38de, 0x8d54, - 0x38d8, 0x8d51, 0x38d3, 0x8d4f, 0x38cd, 0x8d4c, 0x38c8, 0x8d49, - 0x38c2, 0x8d46, 0x38bc, 0x8d44, 0x38b7, 0x8d41, 0x38b1, 0x8d3e, - 0x38ab, 0x8d3b, 0x38a6, 0x8d38, 0x38a0, 0x8d36, 0x389b, 0x8d33, - 0x3895, 0x8d30, 0x388f, 0x8d2d, 0x388a, 0x8d2b, 0x3884, 0x8d28, - 0x387e, 0x8d25, 0x3879, 0x8d22, 0x3873, 0x8d1f, 0x386d, 0x8d1d, - 0x3868, 0x8d1a, 0x3862, 0x8d17, 0x385d, 0x8d14, 0x3857, 0x8d12, - 0x3851, 0x8d0f, 0x384c, 0x8d0c, 0x3846, 0x8d09, 0x3840, 0x8d07, - 0x383b, 0x8d04, 0x3835, 0x8d01, 0x382f, 0x8cfe, 0x382a, 0x8cfb, - 0x3824, 0x8cf9, 0x381e, 0x8cf6, 0x3819, 0x8cf3, 0x3813, 0x8cf0, - 0x380d, 0x8cee, 0x3808, 0x8ceb, 0x3802, 0x8ce8, 0x37fd, 0x8ce5, - 0x37f7, 0x8ce3, 0x37f1, 0x8ce0, 0x37ec, 0x8cdd, 0x37e6, 0x8cda, - 0x37e0, 0x8cd8, 0x37db, 0x8cd5, 0x37d5, 0x8cd2, 0x37cf, 0x8cd0, - 0x37ca, 0x8ccd, 0x37c4, 0x8cca, 0x37be, 0x8cc7, 0x37b9, 0x8cc5, - 0x37b3, 0x8cc2, 0x37ad, 0x8cbf, 0x37a8, 0x8cbc, 0x37a2, 0x8cba, - 0x379c, 0x8cb7, 0x3797, 0x8cb4, 0x3791, 0x8cb1, 0x378b, 0x8caf, - 0x3786, 0x8cac, 0x3780, 0x8ca9, 0x377a, 0x8ca7, 0x3775, 0x8ca4, - 0x376f, 0x8ca1, 0x3769, 0x8c9e, 0x3764, 0x8c9c, 0x375e, 0x8c99, - 0x3758, 0x8c96, 0x3753, 0x8c94, 0x374d, 0x8c91, 0x3747, 0x8c8e, - 0x3742, 0x8c8b, 0x373c, 0x8c89, 0x3736, 0x8c86, 0x3731, 0x8c83, - 0x372b, 0x8c81, 0x3725, 0x8c7e, 0x3720, 0x8c7b, 0x371a, 0x8c78, - 0x3714, 0x8c76, 0x370f, 0x8c73, 0x3709, 0x8c70, 0x3703, 0x8c6e, - 0x36fe, 0x8c6b, 0x36f8, 0x8c68, 0x36f2, 0x8c65, 0x36ed, 0x8c63, - 0x36e7, 0x8c60, 0x36e1, 0x8c5d, 0x36dc, 0x8c5b, 0x36d6, 0x8c58, - 0x36d0, 0x8c55, 0x36cb, 0x8c53, 0x36c5, 0x8c50, 0x36bf, 0x8c4d, - 0x36ba, 0x8c4b, 0x36b4, 0x8c48, 0x36ae, 0x8c45, 0x36a9, 0x8c43, - 0x36a3, 0x8c40, 0x369d, 0x8c3d, 0x3698, 0x8c3a, 0x3692, 0x8c38, - 0x368c, 0x8c35, 0x3686, 0x8c32, 0x3681, 0x8c30, 0x367b, 0x8c2d, - 0x3675, 0x8c2a, 0x3670, 0x8c28, 0x366a, 0x8c25, 0x3664, 0x8c22, - 0x365f, 0x8c20, 0x3659, 0x8c1d, 0x3653, 0x8c1a, 0x364e, 0x8c18, - 0x3648, 0x8c15, 0x3642, 0x8c12, 0x363d, 0x8c10, 0x3637, 0x8c0d, - 0x3631, 0x8c0a, 0x362b, 0x8c08, 0x3626, 0x8c05, 0x3620, 0x8c02, - 0x361a, 0x8c00, 0x3615, 0x8bfd, 0x360f, 0x8bfa, 0x3609, 0x8bf8, - 0x3604, 0x8bf5, 0x35fe, 0x8bf3, 0x35f8, 0x8bf0, 0x35f3, 0x8bed, - 0x35ed, 0x8beb, 0x35e7, 0x8be8, 0x35e1, 0x8be5, 0x35dc, 0x8be3, - 0x35d6, 0x8be0, 0x35d0, 0x8bdd, 0x35cb, 0x8bdb, 0x35c5, 0x8bd8, - 0x35bf, 0x8bd5, 0x35ba, 0x8bd3, 0x35b4, 0x8bd0, 0x35ae, 0x8bce, - 0x35a8, 0x8bcb, 0x35a3, 0x8bc8, 0x359d, 0x8bc6, 0x3597, 0x8bc3, - 0x3592, 0x8bc0, 0x358c, 0x8bbe, 0x3586, 0x8bbb, 0x3580, 0x8bb8, - 0x357b, 0x8bb6, 0x3575, 0x8bb3, 0x356f, 0x8bb1, 0x356a, 0x8bae, - 0x3564, 0x8bab, 0x355e, 0x8ba9, 0x3558, 0x8ba6, 0x3553, 0x8ba4, - 0x354d, 0x8ba1, 0x3547, 0x8b9e, 0x3542, 0x8b9c, 0x353c, 0x8b99, - 0x3536, 0x8b96, 0x3530, 0x8b94, 0x352b, 0x8b91, 0x3525, 0x8b8f, - 0x351f, 0x8b8c, 0x351a, 0x8b89, 0x3514, 0x8b87, 0x350e, 0x8b84, - 0x3508, 0x8b82, 0x3503, 0x8b7f, 0x34fd, 0x8b7c, 0x34f7, 0x8b7a, - 0x34f2, 0x8b77, 0x34ec, 0x8b75, 0x34e6, 0x8b72, 0x34e0, 0x8b6f, - 0x34db, 0x8b6d, 0x34d5, 0x8b6a, 0x34cf, 0x8b68, 0x34ca, 0x8b65, - 0x34c4, 0x8b62, 0x34be, 0x8b60, 0x34b8, 0x8b5d, 0x34b3, 0x8b5b, - 0x34ad, 0x8b58, 0x34a7, 0x8b55, 0x34a1, 0x8b53, 0x349c, 0x8b50, - 0x3496, 0x8b4e, 0x3490, 0x8b4b, 0x348b, 0x8b49, 0x3485, 0x8b46, - 0x347f, 0x8b43, 0x3479, 0x8b41, 0x3474, 0x8b3e, 0x346e, 0x8b3c, - 0x3468, 0x8b39, 0x3462, 0x8b37, 0x345d, 0x8b34, 0x3457, 0x8b31, - 0x3451, 0x8b2f, 0x344b, 0x8b2c, 0x3446, 0x8b2a, 0x3440, 0x8b27, - 0x343a, 0x8b25, 0x3435, 0x8b22, 0x342f, 0x8b1f, 0x3429, 0x8b1d, - 0x3423, 0x8b1a, 0x341e, 0x8b18, 0x3418, 0x8b15, 0x3412, 0x8b13, - 0x340c, 0x8b10, 0x3407, 0x8b0e, 0x3401, 0x8b0b, 0x33fb, 0x8b08, - 0x33f5, 0x8b06, 0x33f0, 0x8b03, 0x33ea, 0x8b01, 0x33e4, 0x8afe, - 0x33de, 0x8afc, 0x33d9, 0x8af9, 0x33d3, 0x8af7, 0x33cd, 0x8af4, - 0x33c7, 0x8af1, 0x33c2, 0x8aef, 0x33bc, 0x8aec, 0x33b6, 0x8aea, - 0x33b0, 0x8ae7, 0x33ab, 0x8ae5, 0x33a5, 0x8ae2, 0x339f, 0x8ae0, - 0x3399, 0x8add, 0x3394, 0x8adb, 0x338e, 0x8ad8, 0x3388, 0x8ad6, - 0x3382, 0x8ad3, 0x337d, 0x8ad1, 0x3377, 0x8ace, 0x3371, 0x8acb, - 0x336b, 0x8ac9, 0x3366, 0x8ac6, 0x3360, 0x8ac4, 0x335a, 0x8ac1, - 0x3354, 0x8abf, 0x334f, 0x8abc, 0x3349, 0x8aba, 0x3343, 0x8ab7, - 0x333d, 0x8ab5, 0x3338, 0x8ab2, 0x3332, 0x8ab0, 0x332c, 0x8aad, - 0x3326, 0x8aab, 0x3321, 0x8aa8, 0x331b, 0x8aa6, 0x3315, 0x8aa3, - 0x330f, 0x8aa1, 0x330a, 0x8a9e, 0x3304, 0x8a9c, 0x32fe, 0x8a99, - 0x32f8, 0x8a97, 0x32f3, 0x8a94, 0x32ed, 0x8a92, 0x32e7, 0x8a8f, - 0x32e1, 0x8a8d, 0x32db, 0x8a8a, 0x32d6, 0x8a88, 0x32d0, 0x8a85, - 0x32ca, 0x8a83, 0x32c4, 0x8a80, 0x32bf, 0x8a7e, 0x32b9, 0x8a7b, - 0x32b3, 0x8a79, 0x32ad, 0x8a76, 0x32a8, 0x8a74, 0x32a2, 0x8a71, - 0x329c, 0x8a6f, 0x3296, 0x8a6c, 0x3290, 0x8a6a, 0x328b, 0x8a67, - 0x3285, 0x8a65, 0x327f, 0x8a62, 0x3279, 0x8a60, 0x3274, 0x8a5d, - 0x326e, 0x8a5b, 0x3268, 0x8a59, 0x3262, 0x8a56, 0x325d, 0x8a54, - 0x3257, 0x8a51, 0x3251, 0x8a4f, 0x324b, 0x8a4c, 0x3245, 0x8a4a, - 0x3240, 0x8a47, 0x323a, 0x8a45, 0x3234, 0x8a42, 0x322e, 0x8a40, - 0x3228, 0x8a3d, 0x3223, 0x8a3b, 0x321d, 0x8a38, 0x3217, 0x8a36, - 0x3211, 0x8a34, 0x320c, 0x8a31, 0x3206, 0x8a2f, 0x3200, 0x8a2c, - 0x31fa, 0x8a2a, 0x31f4, 0x8a27, 0x31ef, 0x8a25, 0x31e9, 0x8a22, - 0x31e3, 0x8a20, 0x31dd, 0x8a1d, 0x31d8, 0x8a1b, 0x31d2, 0x8a19, - 0x31cc, 0x8a16, 0x31c6, 0x8a14, 0x31c0, 0x8a11, 0x31bb, 0x8a0f, - 0x31b5, 0x8a0c, 0x31af, 0x8a0a, 0x31a9, 0x8a07, 0x31a3, 0x8a05, - 0x319e, 0x8a03, 0x3198, 0x8a00, 0x3192, 0x89fe, 0x318c, 0x89fb, - 0x3186, 0x89f9, 0x3181, 0x89f6, 0x317b, 0x89f4, 0x3175, 0x89f2, - 0x316f, 0x89ef, 0x3169, 0x89ed, 0x3164, 0x89ea, 0x315e, 0x89e8, - 0x3158, 0x89e5, 0x3152, 0x89e3, 0x314c, 0x89e1, 0x3147, 0x89de, - 0x3141, 0x89dc, 0x313b, 0x89d9, 0x3135, 0x89d7, 0x312f, 0x89d5, - 0x312a, 0x89d2, 0x3124, 0x89d0, 0x311e, 0x89cd, 0x3118, 0x89cb, - 0x3112, 0x89c8, 0x310d, 0x89c6, 0x3107, 0x89c4, 0x3101, 0x89c1, - 0x30fb, 0x89bf, 0x30f5, 0x89bc, 0x30f0, 0x89ba, 0x30ea, 0x89b8, - 0x30e4, 0x89b5, 0x30de, 0x89b3, 0x30d8, 0x89b0, 0x30d3, 0x89ae, - 0x30cd, 0x89ac, 0x30c7, 0x89a9, 0x30c1, 0x89a7, 0x30bb, 0x89a4, - 0x30b6, 0x89a2, 0x30b0, 0x89a0, 0x30aa, 0x899d, 0x30a4, 0x899b, - 0x309e, 0x8998, 0x3099, 0x8996, 0x3093, 0x8994, 0x308d, 0x8991, - 0x3087, 0x898f, 0x3081, 0x898d, 0x307b, 0x898a, 0x3076, 0x8988, - 0x3070, 0x8985, 0x306a, 0x8983, 0x3064, 0x8981, 0x305e, 0x897e, - 0x3059, 0x897c, 0x3053, 0x897a, 0x304d, 0x8977, 0x3047, 0x8975, - 0x3041, 0x8972, 0x303b, 0x8970, 0x3036, 0x896e, 0x3030, 0x896b, - 0x302a, 0x8969, 0x3024, 0x8967, 0x301e, 0x8964, 0x3019, 0x8962, - 0x3013, 0x8960, 0x300d, 0x895d, 0x3007, 0x895b, 0x3001, 0x8958, - 0x2ffb, 0x8956, 0x2ff6, 0x8954, 0x2ff0, 0x8951, 0x2fea, 0x894f, - 0x2fe4, 0x894d, 0x2fde, 0x894a, 0x2fd8, 0x8948, 0x2fd3, 0x8946, - 0x2fcd, 0x8943, 0x2fc7, 0x8941, 0x2fc1, 0x893f, 0x2fbb, 0x893c, - 0x2fb5, 0x893a, 0x2fb0, 0x8938, 0x2faa, 0x8935, 0x2fa4, 0x8933, - 0x2f9e, 0x8931, 0x2f98, 0x892e, 0x2f92, 0x892c, 0x2f8d, 0x892a, - 0x2f87, 0x8927, 0x2f81, 0x8925, 0x2f7b, 0x8923, 0x2f75, 0x8920, - 0x2f6f, 0x891e, 0x2f6a, 0x891c, 0x2f64, 0x8919, 0x2f5e, 0x8917, - 0x2f58, 0x8915, 0x2f52, 0x8912, 0x2f4c, 0x8910, 0x2f47, 0x890e, - 0x2f41, 0x890b, 0x2f3b, 0x8909, 0x2f35, 0x8907, 0x2f2f, 0x8904, - 0x2f29, 0x8902, 0x2f24, 0x8900, 0x2f1e, 0x88fd, 0x2f18, 0x88fb, - 0x2f12, 0x88f9, 0x2f0c, 0x88f6, 0x2f06, 0x88f4, 0x2f01, 0x88f2, - 0x2efb, 0x88f0, 0x2ef5, 0x88ed, 0x2eef, 0x88eb, 0x2ee9, 0x88e9, - 0x2ee3, 0x88e6, 0x2edd, 0x88e4, 0x2ed8, 0x88e2, 0x2ed2, 0x88df, - 0x2ecc, 0x88dd, 0x2ec6, 0x88db, 0x2ec0, 0x88d9, 0x2eba, 0x88d6, - 0x2eb5, 0x88d4, 0x2eaf, 0x88d2, 0x2ea9, 0x88cf, 0x2ea3, 0x88cd, - 0x2e9d, 0x88cb, 0x2e97, 0x88c8, 0x2e91, 0x88c6, 0x2e8c, 0x88c4, - 0x2e86, 0x88c2, 0x2e80, 0x88bf, 0x2e7a, 0x88bd, 0x2e74, 0x88bb, - 0x2e6e, 0x88b9, 0x2e68, 0x88b6, 0x2e63, 0x88b4, 0x2e5d, 0x88b2, - 0x2e57, 0x88af, 0x2e51, 0x88ad, 0x2e4b, 0x88ab, 0x2e45, 0x88a9, - 0x2e3f, 0x88a6, 0x2e3a, 0x88a4, 0x2e34, 0x88a2, 0x2e2e, 0x88a0, - 0x2e28, 0x889d, 0x2e22, 0x889b, 0x2e1c, 0x8899, 0x2e16, 0x8896, - 0x2e11, 0x8894, 0x2e0b, 0x8892, 0x2e05, 0x8890, 0x2dff, 0x888d, - 0x2df9, 0x888b, 0x2df3, 0x8889, 0x2ded, 0x8887, 0x2de7, 0x8884, - 0x2de2, 0x8882, 0x2ddc, 0x8880, 0x2dd6, 0x887e, 0x2dd0, 0x887b, - 0x2dca, 0x8879, 0x2dc4, 0x8877, 0x2dbe, 0x8875, 0x2db9, 0x8872, - 0x2db3, 0x8870, 0x2dad, 0x886e, 0x2da7, 0x886c, 0x2da1, 0x8869, - 0x2d9b, 0x8867, 0x2d95, 0x8865, 0x2d8f, 0x8863, 0x2d8a, 0x8860, - 0x2d84, 0x885e, 0x2d7e, 0x885c, 0x2d78, 0x885a, 0x2d72, 0x8858, - 0x2d6c, 0x8855, 0x2d66, 0x8853, 0x2d60, 0x8851, 0x2d5b, 0x884f, - 0x2d55, 0x884c, 0x2d4f, 0x884a, 0x2d49, 0x8848, 0x2d43, 0x8846, - 0x2d3d, 0x8844, 0x2d37, 0x8841, 0x2d31, 0x883f, 0x2d2c, 0x883d, - 0x2d26, 0x883b, 0x2d20, 0x8838, 0x2d1a, 0x8836, 0x2d14, 0x8834, - 0x2d0e, 0x8832, 0x2d08, 0x8830, 0x2d02, 0x882d, 0x2cfd, 0x882b, - 0x2cf7, 0x8829, 0x2cf1, 0x8827, 0x2ceb, 0x8825, 0x2ce5, 0x8822, - 0x2cdf, 0x8820, 0x2cd9, 0x881e, 0x2cd3, 0x881c, 0x2ccd, 0x881a, - 0x2cc8, 0x8817, 0x2cc2, 0x8815, 0x2cbc, 0x8813, 0x2cb6, 0x8811, - 0x2cb0, 0x880f, 0x2caa, 0x880c, 0x2ca4, 0x880a, 0x2c9e, 0x8808, - 0x2c98, 0x8806, 0x2c93, 0x8804, 0x2c8d, 0x8801, 0x2c87, 0x87ff, - 0x2c81, 0x87fd, 0x2c7b, 0x87fb, 0x2c75, 0x87f9, 0x2c6f, 0x87f6, - 0x2c69, 0x87f4, 0x2c63, 0x87f2, 0x2c5e, 0x87f0, 0x2c58, 0x87ee, - 0x2c52, 0x87ec, 0x2c4c, 0x87e9, 0x2c46, 0x87e7, 0x2c40, 0x87e5, - 0x2c3a, 0x87e3, 0x2c34, 0x87e1, 0x2c2e, 0x87df, 0x2c29, 0x87dc, - 0x2c23, 0x87da, 0x2c1d, 0x87d8, 0x2c17, 0x87d6, 0x2c11, 0x87d4, - 0x2c0b, 0x87d2, 0x2c05, 0x87cf, 0x2bff, 0x87cd, 0x2bf9, 0x87cb, - 0x2bf3, 0x87c9, 0x2bee, 0x87c7, 0x2be8, 0x87c5, 0x2be2, 0x87c2, - 0x2bdc, 0x87c0, 0x2bd6, 0x87be, 0x2bd0, 0x87bc, 0x2bca, 0x87ba, - 0x2bc4, 0x87b8, 0x2bbe, 0x87b6, 0x2bb8, 0x87b3, 0x2bb2, 0x87b1, - 0x2bad, 0x87af, 0x2ba7, 0x87ad, 0x2ba1, 0x87ab, 0x2b9b, 0x87a9, - 0x2b95, 0x87a7, 0x2b8f, 0x87a4, 0x2b89, 0x87a2, 0x2b83, 0x87a0, - 0x2b7d, 0x879e, 0x2b77, 0x879c, 0x2b71, 0x879a, 0x2b6c, 0x8798, - 0x2b66, 0x8795, 0x2b60, 0x8793, 0x2b5a, 0x8791, 0x2b54, 0x878f, - 0x2b4e, 0x878d, 0x2b48, 0x878b, 0x2b42, 0x8789, 0x2b3c, 0x8787, - 0x2b36, 0x8784, 0x2b30, 0x8782, 0x2b2b, 0x8780, 0x2b25, 0x877e, - 0x2b1f, 0x877c, 0x2b19, 0x877a, 0x2b13, 0x8778, 0x2b0d, 0x8776, - 0x2b07, 0x8774, 0x2b01, 0x8771, 0x2afb, 0x876f, 0x2af5, 0x876d, - 0x2aef, 0x876b, 0x2ae9, 0x8769, 0x2ae4, 0x8767, 0x2ade, 0x8765, - 0x2ad8, 0x8763, 0x2ad2, 0x8761, 0x2acc, 0x875e, 0x2ac6, 0x875c, - 0x2ac0, 0x875a, 0x2aba, 0x8758, 0x2ab4, 0x8756, 0x2aae, 0x8754, - 0x2aa8, 0x8752, 0x2aa2, 0x8750, 0x2a9c, 0x874e, 0x2a97, 0x874c, - 0x2a91, 0x874a, 0x2a8b, 0x8747, 0x2a85, 0x8745, 0x2a7f, 0x8743, - 0x2a79, 0x8741, 0x2a73, 0x873f, 0x2a6d, 0x873d, 0x2a67, 0x873b, - 0x2a61, 0x8739, 0x2a5b, 0x8737, 0x2a55, 0x8735, 0x2a4f, 0x8733, - 0x2a49, 0x8731, 0x2a44, 0x872e, 0x2a3e, 0x872c, 0x2a38, 0x872a, - 0x2a32, 0x8728, 0x2a2c, 0x8726, 0x2a26, 0x8724, 0x2a20, 0x8722, - 0x2a1a, 0x8720, 0x2a14, 0x871e, 0x2a0e, 0x871c, 0x2a08, 0x871a, - 0x2a02, 0x8718, 0x29fc, 0x8716, 0x29f6, 0x8714, 0x29f0, 0x8712, - 0x29eb, 0x870f, 0x29e5, 0x870d, 0x29df, 0x870b, 0x29d9, 0x8709, - 0x29d3, 0x8707, 0x29cd, 0x8705, 0x29c7, 0x8703, 0x29c1, 0x8701, - 0x29bb, 0x86ff, 0x29b5, 0x86fd, 0x29af, 0x86fb, 0x29a9, 0x86f9, - 0x29a3, 0x86f7, 0x299d, 0x86f5, 0x2997, 0x86f3, 0x2991, 0x86f1, - 0x298b, 0x86ef, 0x2986, 0x86ed, 0x2980, 0x86eb, 0x297a, 0x86e9, - 0x2974, 0x86e7, 0x296e, 0x86e4, 0x2968, 0x86e2, 0x2962, 0x86e0, - 0x295c, 0x86de, 0x2956, 0x86dc, 0x2950, 0x86da, 0x294a, 0x86d8, - 0x2944, 0x86d6, 0x293e, 0x86d4, 0x2938, 0x86d2, 0x2932, 0x86d0, - 0x292c, 0x86ce, 0x2926, 0x86cc, 0x2920, 0x86ca, 0x291b, 0x86c8, - 0x2915, 0x86c6, 0x290f, 0x86c4, 0x2909, 0x86c2, 0x2903, 0x86c0, - 0x28fd, 0x86be, 0x28f7, 0x86bc, 0x28f1, 0x86ba, 0x28eb, 0x86b8, - 0x28e5, 0x86b6, 0x28df, 0x86b4, 0x28d9, 0x86b2, 0x28d3, 0x86b0, - 0x28cd, 0x86ae, 0x28c7, 0x86ac, 0x28c1, 0x86aa, 0x28bb, 0x86a8, - 0x28b5, 0x86a6, 0x28af, 0x86a4, 0x28a9, 0x86a2, 0x28a3, 0x86a0, - 0x289d, 0x869e, 0x2898, 0x869c, 0x2892, 0x869a, 0x288c, 0x8698, - 0x2886, 0x8696, 0x2880, 0x8694, 0x287a, 0x8692, 0x2874, 0x8690, - 0x286e, 0x868e, 0x2868, 0x868c, 0x2862, 0x868a, 0x285c, 0x8688, - 0x2856, 0x8686, 0x2850, 0x8684, 0x284a, 0x8682, 0x2844, 0x8680, - 0x283e, 0x867e, 0x2838, 0x867c, 0x2832, 0x867a, 0x282c, 0x8678, - 0x2826, 0x8676, 0x2820, 0x8674, 0x281a, 0x8672, 0x2814, 0x8670, - 0x280e, 0x866e, 0x2808, 0x866d, 0x2802, 0x866b, 0x27fc, 0x8669, - 0x27f6, 0x8667, 0x27f1, 0x8665, 0x27eb, 0x8663, 0x27e5, 0x8661, - 0x27df, 0x865f, 0x27d9, 0x865d, 0x27d3, 0x865b, 0x27cd, 0x8659, - 0x27c7, 0x8657, 0x27c1, 0x8655, 0x27bb, 0x8653, 0x27b5, 0x8651, - 0x27af, 0x864f, 0x27a9, 0x864d, 0x27a3, 0x864b, 0x279d, 0x8649, - 0x2797, 0x8647, 0x2791, 0x8645, 0x278b, 0x8644, 0x2785, 0x8642, - 0x277f, 0x8640, 0x2779, 0x863e, 0x2773, 0x863c, 0x276d, 0x863a, - 0x2767, 0x8638, 0x2761, 0x8636, 0x275b, 0x8634, 0x2755, 0x8632, - 0x274f, 0x8630, 0x2749, 0x862e, 0x2743, 0x862c, 0x273d, 0x862a, - 0x2737, 0x8628, 0x2731, 0x8627, 0x272b, 0x8625, 0x2725, 0x8623, - 0x271f, 0x8621, 0x2719, 0x861f, 0x2713, 0x861d, 0x270d, 0x861b, - 0x2707, 0x8619, 0x2701, 0x8617, 0x26fb, 0x8615, 0x26f5, 0x8613, - 0x26ef, 0x8611, 0x26e9, 0x8610, 0x26e4, 0x860e, 0x26de, 0x860c, - 0x26d8, 0x860a, 0x26d2, 0x8608, 0x26cc, 0x8606, 0x26c6, 0x8604, - 0x26c0, 0x8602, 0x26ba, 0x8600, 0x26b4, 0x85fe, 0x26ae, 0x85fc, - 0x26a8, 0x85fb, 0x26a2, 0x85f9, 0x269c, 0x85f7, 0x2696, 0x85f5, - 0x2690, 0x85f3, 0x268a, 0x85f1, 0x2684, 0x85ef, 0x267e, 0x85ed, - 0x2678, 0x85eb, 0x2672, 0x85ea, 0x266c, 0x85e8, 0x2666, 0x85e6, - 0x2660, 0x85e4, 0x265a, 0x85e2, 0x2654, 0x85e0, 0x264e, 0x85de, - 0x2648, 0x85dc, 0x2642, 0x85da, 0x263c, 0x85d9, 0x2636, 0x85d7, - 0x2630, 0x85d5, 0x262a, 0x85d3, 0x2624, 0x85d1, 0x261e, 0x85cf, - 0x2618, 0x85cd, 0x2612, 0x85cb, 0x260c, 0x85ca, 0x2606, 0x85c8, - 0x2600, 0x85c6, 0x25fa, 0x85c4, 0x25f4, 0x85c2, 0x25ee, 0x85c0, - 0x25e8, 0x85be, 0x25e2, 0x85bd, 0x25dc, 0x85bb, 0x25d6, 0x85b9, - 0x25d0, 0x85b7, 0x25ca, 0x85b5, 0x25c4, 0x85b3, 0x25be, 0x85b1, - 0x25b8, 0x85b0, 0x25b2, 0x85ae, 0x25ac, 0x85ac, 0x25a6, 0x85aa, - 0x25a0, 0x85a8, 0x259a, 0x85a6, 0x2594, 0x85a4, 0x258e, 0x85a3, - 0x2588, 0x85a1, 0x2582, 0x859f, 0x257c, 0x859d, 0x2576, 0x859b, - 0x2570, 0x8599, 0x256a, 0x8598, 0x2564, 0x8596, 0x255e, 0x8594, - 0x2558, 0x8592, 0x2552, 0x8590, 0x254c, 0x858e, 0x2546, 0x858d, - 0x2540, 0x858b, 0x253a, 0x8589, 0x2534, 0x8587, 0x252e, 0x8585, - 0x2528, 0x8583, 0x2522, 0x8582, 0x251c, 0x8580, 0x2516, 0x857e, - 0x250f, 0x857c, 0x2509, 0x857a, 0x2503, 0x8579, 0x24fd, 0x8577, - 0x24f7, 0x8575, 0x24f1, 0x8573, 0x24eb, 0x8571, 0x24e5, 0x856f, - 0x24df, 0x856e, 0x24d9, 0x856c, 0x24d3, 0x856a, 0x24cd, 0x8568, - 0x24c7, 0x8566, 0x24c1, 0x8565, 0x24bb, 0x8563, 0x24b5, 0x8561, - 0x24af, 0x855f, 0x24a9, 0x855d, 0x24a3, 0x855c, 0x249d, 0x855a, - 0x2497, 0x8558, 0x2491, 0x8556, 0x248b, 0x8554, 0x2485, 0x8553, - 0x247f, 0x8551, 0x2479, 0x854f, 0x2473, 0x854d, 0x246d, 0x854b, - 0x2467, 0x854a, 0x2461, 0x8548, 0x245b, 0x8546, 0x2455, 0x8544, - 0x244f, 0x8543, 0x2449, 0x8541, 0x2443, 0x853f, 0x243d, 0x853d, - 0x2437, 0x853b, 0x2431, 0x853a, 0x242b, 0x8538, 0x2425, 0x8536, - 0x241f, 0x8534, 0x2419, 0x8533, 0x2413, 0x8531, 0x240d, 0x852f, - 0x2407, 0x852d, 0x2401, 0x852b, 0x23fa, 0x852a, 0x23f4, 0x8528, - 0x23ee, 0x8526, 0x23e8, 0x8524, 0x23e2, 0x8523, 0x23dc, 0x8521, - 0x23d6, 0x851f, 0x23d0, 0x851d, 0x23ca, 0x851c, 0x23c4, 0x851a, - 0x23be, 0x8518, 0x23b8, 0x8516, 0x23b2, 0x8515, 0x23ac, 0x8513, - 0x23a6, 0x8511, 0x23a0, 0x850f, 0x239a, 0x850e, 0x2394, 0x850c, - 0x238e, 0x850a, 0x2388, 0x8508, 0x2382, 0x8507, 0x237c, 0x8505, - 0x2376, 0x8503, 0x2370, 0x8501, 0x236a, 0x8500, 0x2364, 0x84fe, - 0x235e, 0x84fc, 0x2358, 0x84fa, 0x2352, 0x84f9, 0x234b, 0x84f7, - 0x2345, 0x84f5, 0x233f, 0x84f4, 0x2339, 0x84f2, 0x2333, 0x84f0, - 0x232d, 0x84ee, 0x2327, 0x84ed, 0x2321, 0x84eb, 0x231b, 0x84e9, - 0x2315, 0x84e7, 0x230f, 0x84e6, 0x2309, 0x84e4, 0x2303, 0x84e2, - 0x22fd, 0x84e1, 0x22f7, 0x84df, 0x22f1, 0x84dd, 0x22eb, 0x84db, - 0x22e5, 0x84da, 0x22df, 0x84d8, 0x22d9, 0x84d6, 0x22d3, 0x84d5, - 0x22cd, 0x84d3, 0x22c7, 0x84d1, 0x22c0, 0x84cf, 0x22ba, 0x84ce, - 0x22b4, 0x84cc, 0x22ae, 0x84ca, 0x22a8, 0x84c9, 0x22a2, 0x84c7, - 0x229c, 0x84c5, 0x2296, 0x84c4, 0x2290, 0x84c2, 0x228a, 0x84c0, - 0x2284, 0x84be, 0x227e, 0x84bd, 0x2278, 0x84bb, 0x2272, 0x84b9, - 0x226c, 0x84b8, 0x2266, 0x84b6, 0x2260, 0x84b4, 0x225a, 0x84b3, - 0x2254, 0x84b1, 0x224e, 0x84af, 0x2247, 0x84ae, 0x2241, 0x84ac, - 0x223b, 0x84aa, 0x2235, 0x84a9, 0x222f, 0x84a7, 0x2229, 0x84a5, - 0x2223, 0x84a3, 0x221d, 0x84a2, 0x2217, 0x84a0, 0x2211, 0x849e, - 0x220b, 0x849d, 0x2205, 0x849b, 0x21ff, 0x8499, 0x21f9, 0x8498, - 0x21f3, 0x8496, 0x21ed, 0x8494, 0x21e7, 0x8493, 0x21e1, 0x8491, - 0x21da, 0x848f, 0x21d4, 0x848e, 0x21ce, 0x848c, 0x21c8, 0x848a, - 0x21c2, 0x8489, 0x21bc, 0x8487, 0x21b6, 0x8486, 0x21b0, 0x8484, - 0x21aa, 0x8482, 0x21a4, 0x8481, 0x219e, 0x847f, 0x2198, 0x847d, - 0x2192, 0x847c, 0x218c, 0x847a, 0x2186, 0x8478, 0x2180, 0x8477, - 0x2179, 0x8475, 0x2173, 0x8473, 0x216d, 0x8472, 0x2167, 0x8470, - 0x2161, 0x846e, 0x215b, 0x846d, 0x2155, 0x846b, 0x214f, 0x846a, - 0x2149, 0x8468, 0x2143, 0x8466, 0x213d, 0x8465, 0x2137, 0x8463, - 0x2131, 0x8461, 0x212b, 0x8460, 0x2125, 0x845e, 0x211e, 0x845d, - 0x2118, 0x845b, 0x2112, 0x8459, 0x210c, 0x8458, 0x2106, 0x8456, - 0x2100, 0x8454, 0x20fa, 0x8453, 0x20f4, 0x8451, 0x20ee, 0x8450, - 0x20e8, 0x844e, 0x20e2, 0x844c, 0x20dc, 0x844b, 0x20d6, 0x8449, - 0x20d0, 0x8447, 0x20c9, 0x8446, 0x20c3, 0x8444, 0x20bd, 0x8443, - 0x20b7, 0x8441, 0x20b1, 0x843f, 0x20ab, 0x843e, 0x20a5, 0x843c, - 0x209f, 0x843b, 0x2099, 0x8439, 0x2093, 0x8437, 0x208d, 0x8436, - 0x2087, 0x8434, 0x2081, 0x8433, 0x207a, 0x8431, 0x2074, 0x842f, - 0x206e, 0x842e, 0x2068, 0x842c, 0x2062, 0x842b, 0x205c, 0x8429, - 0x2056, 0x8427, 0x2050, 0x8426, 0x204a, 0x8424, 0x2044, 0x8423, - 0x203e, 0x8421, 0x2038, 0x8420, 0x2032, 0x841e, 0x202b, 0x841c, - 0x2025, 0x841b, 0x201f, 0x8419, 0x2019, 0x8418, 0x2013, 0x8416, - 0x200d, 0x8415, 0x2007, 0x8413, 0x2001, 0x8411, 0x1ffb, 0x8410, - 0x1ff5, 0x840e, 0x1fef, 0x840d, 0x1fe9, 0x840b, 0x1fe2, 0x840a, - 0x1fdc, 0x8408, 0x1fd6, 0x8406, 0x1fd0, 0x8405, 0x1fca, 0x8403, - 0x1fc4, 0x8402, 0x1fbe, 0x8400, 0x1fb8, 0x83ff, 0x1fb2, 0x83fd, - 0x1fac, 0x83fb, 0x1fa6, 0x83fa, 0x1f9f, 0x83f8, 0x1f99, 0x83f7, - 0x1f93, 0x83f5, 0x1f8d, 0x83f4, 0x1f87, 0x83f2, 0x1f81, 0x83f1, - 0x1f7b, 0x83ef, 0x1f75, 0x83ee, 0x1f6f, 0x83ec, 0x1f69, 0x83ea, - 0x1f63, 0x83e9, 0x1f5d, 0x83e7, 0x1f56, 0x83e6, 0x1f50, 0x83e4, - 0x1f4a, 0x83e3, 0x1f44, 0x83e1, 0x1f3e, 0x83e0, 0x1f38, 0x83de, - 0x1f32, 0x83dd, 0x1f2c, 0x83db, 0x1f26, 0x83da, 0x1f20, 0x83d8, - 0x1f19, 0x83d7, 0x1f13, 0x83d5, 0x1f0d, 0x83d3, 0x1f07, 0x83d2, - 0x1f01, 0x83d0, 0x1efb, 0x83cf, 0x1ef5, 0x83cd, 0x1eef, 0x83cc, - 0x1ee9, 0x83ca, 0x1ee3, 0x83c9, 0x1edd, 0x83c7, 0x1ed6, 0x83c6, - 0x1ed0, 0x83c4, 0x1eca, 0x83c3, 0x1ec4, 0x83c1, 0x1ebe, 0x83c0, - 0x1eb8, 0x83be, 0x1eb2, 0x83bd, 0x1eac, 0x83bb, 0x1ea6, 0x83ba, - 0x1ea0, 0x83b8, 0x1e99, 0x83b7, 0x1e93, 0x83b5, 0x1e8d, 0x83b4, - 0x1e87, 0x83b2, 0x1e81, 0x83b1, 0x1e7b, 0x83af, 0x1e75, 0x83ae, - 0x1e6f, 0x83ac, 0x1e69, 0x83ab, 0x1e62, 0x83a9, 0x1e5c, 0x83a8, - 0x1e56, 0x83a6, 0x1e50, 0x83a5, 0x1e4a, 0x83a3, 0x1e44, 0x83a2, - 0x1e3e, 0x83a0, 0x1e38, 0x839f, 0x1e32, 0x839d, 0x1e2c, 0x839c, - 0x1e25, 0x839a, 0x1e1f, 0x8399, 0x1e19, 0x8397, 0x1e13, 0x8396, - 0x1e0d, 0x8394, 0x1e07, 0x8393, 0x1e01, 0x8392, 0x1dfb, 0x8390, - 0x1df5, 0x838f, 0x1dee, 0x838d, 0x1de8, 0x838c, 0x1de2, 0x838a, - 0x1ddc, 0x8389, 0x1dd6, 0x8387, 0x1dd0, 0x8386, 0x1dca, 0x8384, - 0x1dc4, 0x8383, 0x1dbe, 0x8381, 0x1db7, 0x8380, 0x1db1, 0x837e, - 0x1dab, 0x837d, 0x1da5, 0x837c, 0x1d9f, 0x837a, 0x1d99, 0x8379, - 0x1d93, 0x8377, 0x1d8d, 0x8376, 0x1d87, 0x8374, 0x1d80, 0x8373, - 0x1d7a, 0x8371, 0x1d74, 0x8370, 0x1d6e, 0x836f, 0x1d68, 0x836d, - 0x1d62, 0x836c, 0x1d5c, 0x836a, 0x1d56, 0x8369, 0x1d50, 0x8367, - 0x1d49, 0x8366, 0x1d43, 0x8364, 0x1d3d, 0x8363, 0x1d37, 0x8362, - 0x1d31, 0x8360, 0x1d2b, 0x835f, 0x1d25, 0x835d, 0x1d1f, 0x835c, - 0x1d18, 0x835a, 0x1d12, 0x8359, 0x1d0c, 0x8358, 0x1d06, 0x8356, - 0x1d00, 0x8355, 0x1cfa, 0x8353, 0x1cf4, 0x8352, 0x1cee, 0x8350, - 0x1ce8, 0x834f, 0x1ce1, 0x834e, 0x1cdb, 0x834c, 0x1cd5, 0x834b, - 0x1ccf, 0x8349, 0x1cc9, 0x8348, 0x1cc3, 0x8347, 0x1cbd, 0x8345, - 0x1cb7, 0x8344, 0x1cb0, 0x8342, 0x1caa, 0x8341, 0x1ca4, 0x833f, - 0x1c9e, 0x833e, 0x1c98, 0x833d, 0x1c92, 0x833b, 0x1c8c, 0x833a, - 0x1c86, 0x8338, 0x1c7f, 0x8337, 0x1c79, 0x8336, 0x1c73, 0x8334, - 0x1c6d, 0x8333, 0x1c67, 0x8331, 0x1c61, 0x8330, 0x1c5b, 0x832f, - 0x1c55, 0x832d, 0x1c4e, 0x832c, 0x1c48, 0x832b, 0x1c42, 0x8329, - 0x1c3c, 0x8328, 0x1c36, 0x8326, 0x1c30, 0x8325, 0x1c2a, 0x8324, - 0x1c24, 0x8322, 0x1c1d, 0x8321, 0x1c17, 0x831f, 0x1c11, 0x831e, - 0x1c0b, 0x831d, 0x1c05, 0x831b, 0x1bff, 0x831a, 0x1bf9, 0x8319, - 0x1bf2, 0x8317, 0x1bec, 0x8316, 0x1be6, 0x8314, 0x1be0, 0x8313, - 0x1bda, 0x8312, 0x1bd4, 0x8310, 0x1bce, 0x830f, 0x1bc8, 0x830e, - 0x1bc1, 0x830c, 0x1bbb, 0x830b, 0x1bb5, 0x830a, 0x1baf, 0x8308, - 0x1ba9, 0x8307, 0x1ba3, 0x8305, 0x1b9d, 0x8304, 0x1b96, 0x8303, - 0x1b90, 0x8301, 0x1b8a, 0x8300, 0x1b84, 0x82ff, 0x1b7e, 0x82fd, - 0x1b78, 0x82fc, 0x1b72, 0x82fb, 0x1b6c, 0x82f9, 0x1b65, 0x82f8, - 0x1b5f, 0x82f7, 0x1b59, 0x82f5, 0x1b53, 0x82f4, 0x1b4d, 0x82f3, - 0x1b47, 0x82f1, 0x1b41, 0x82f0, 0x1b3a, 0x82ef, 0x1b34, 0x82ed, - 0x1b2e, 0x82ec, 0x1b28, 0x82eb, 0x1b22, 0x82e9, 0x1b1c, 0x82e8, - 0x1b16, 0x82e7, 0x1b0f, 0x82e5, 0x1b09, 0x82e4, 0x1b03, 0x82e3, - 0x1afd, 0x82e1, 0x1af7, 0x82e0, 0x1af1, 0x82df, 0x1aeb, 0x82dd, - 0x1ae4, 0x82dc, 0x1ade, 0x82db, 0x1ad8, 0x82d9, 0x1ad2, 0x82d8, - 0x1acc, 0x82d7, 0x1ac6, 0x82d5, 0x1ac0, 0x82d4, 0x1ab9, 0x82d3, - 0x1ab3, 0x82d1, 0x1aad, 0x82d0, 0x1aa7, 0x82cf, 0x1aa1, 0x82ce, - 0x1a9b, 0x82cc, 0x1a95, 0x82cb, 0x1a8e, 0x82ca, 0x1a88, 0x82c8, - 0x1a82, 0x82c7, 0x1a7c, 0x82c6, 0x1a76, 0x82c4, 0x1a70, 0x82c3, - 0x1a6a, 0x82c2, 0x1a63, 0x82c1, 0x1a5d, 0x82bf, 0x1a57, 0x82be, - 0x1a51, 0x82bd, 0x1a4b, 0x82bb, 0x1a45, 0x82ba, 0x1a3e, 0x82b9, - 0x1a38, 0x82b7, 0x1a32, 0x82b6, 0x1a2c, 0x82b5, 0x1a26, 0x82b4, - 0x1a20, 0x82b2, 0x1a1a, 0x82b1, 0x1a13, 0x82b0, 0x1a0d, 0x82ae, - 0x1a07, 0x82ad, 0x1a01, 0x82ac, 0x19fb, 0x82ab, 0x19f5, 0x82a9, - 0x19ef, 0x82a8, 0x19e8, 0x82a7, 0x19e2, 0x82a6, 0x19dc, 0x82a4, - 0x19d6, 0x82a3, 0x19d0, 0x82a2, 0x19ca, 0x82a0, 0x19c3, 0x829f, - 0x19bd, 0x829e, 0x19b7, 0x829d, 0x19b1, 0x829b, 0x19ab, 0x829a, - 0x19a5, 0x8299, 0x199f, 0x8298, 0x1998, 0x8296, 0x1992, 0x8295, - 0x198c, 0x8294, 0x1986, 0x8293, 0x1980, 0x8291, 0x197a, 0x8290, - 0x1973, 0x828f, 0x196d, 0x828e, 0x1967, 0x828c, 0x1961, 0x828b, - 0x195b, 0x828a, 0x1955, 0x8289, 0x194e, 0x8287, 0x1948, 0x8286, - 0x1942, 0x8285, 0x193c, 0x8284, 0x1936, 0x8282, 0x1930, 0x8281, - 0x192a, 0x8280, 0x1923, 0x827f, 0x191d, 0x827e, 0x1917, 0x827c, - 0x1911, 0x827b, 0x190b, 0x827a, 0x1905, 0x8279, 0x18fe, 0x8277, - 0x18f8, 0x8276, 0x18f2, 0x8275, 0x18ec, 0x8274, 0x18e6, 0x8272, - 0x18e0, 0x8271, 0x18d9, 0x8270, 0x18d3, 0x826f, 0x18cd, 0x826e, - 0x18c7, 0x826c, 0x18c1, 0x826b, 0x18bb, 0x826a, 0x18b4, 0x8269, - 0x18ae, 0x8268, 0x18a8, 0x8266, 0x18a2, 0x8265, 0x189c, 0x8264, - 0x1896, 0x8263, 0x188f, 0x8261, 0x1889, 0x8260, 0x1883, 0x825f, - 0x187d, 0x825e, 0x1877, 0x825d, 0x1871, 0x825b, 0x186a, 0x825a, - 0x1864, 0x8259, 0x185e, 0x8258, 0x1858, 0x8257, 0x1852, 0x8255, - 0x184c, 0x8254, 0x1845, 0x8253, 0x183f, 0x8252, 0x1839, 0x8251, - 0x1833, 0x8250, 0x182d, 0x824e, 0x1827, 0x824d, 0x1820, 0x824c, - 0x181a, 0x824b, 0x1814, 0x824a, 0x180e, 0x8248, 0x1808, 0x8247, - 0x1802, 0x8246, 0x17fb, 0x8245, 0x17f5, 0x8244, 0x17ef, 0x8243, - 0x17e9, 0x8241, 0x17e3, 0x8240, 0x17dd, 0x823f, 0x17d6, 0x823e, - 0x17d0, 0x823d, 0x17ca, 0x823b, 0x17c4, 0x823a, 0x17be, 0x8239, - 0x17b7, 0x8238, 0x17b1, 0x8237, 0x17ab, 0x8236, 0x17a5, 0x8234, - 0x179f, 0x8233, 0x1799, 0x8232, 0x1792, 0x8231, 0x178c, 0x8230, - 0x1786, 0x822f, 0x1780, 0x822e, 0x177a, 0x822c, 0x1774, 0x822b, - 0x176d, 0x822a, 0x1767, 0x8229, 0x1761, 0x8228, 0x175b, 0x8227, - 0x1755, 0x8226, 0x174e, 0x8224, 0x1748, 0x8223, 0x1742, 0x8222, - 0x173c, 0x8221, 0x1736, 0x8220, 0x1730, 0x821f, 0x1729, 0x821e, - 0x1723, 0x821c, 0x171d, 0x821b, 0x1717, 0x821a, 0x1711, 0x8219, - 0x170a, 0x8218, 0x1704, 0x8217, 0x16fe, 0x8216, 0x16f8, 0x8214, - 0x16f2, 0x8213, 0x16ec, 0x8212, 0x16e5, 0x8211, 0x16df, 0x8210, - 0x16d9, 0x820f, 0x16d3, 0x820e, 0x16cd, 0x820d, 0x16c6, 0x820b, - 0x16c0, 0x820a, 0x16ba, 0x8209, 0x16b4, 0x8208, 0x16ae, 0x8207, - 0x16a8, 0x8206, 0x16a1, 0x8205, 0x169b, 0x8204, 0x1695, 0x8203, - 0x168f, 0x8201, 0x1689, 0x8200, 0x1682, 0x81ff, 0x167c, 0x81fe, - 0x1676, 0x81fd, 0x1670, 0x81fc, 0x166a, 0x81fb, 0x1664, 0x81fa, - 0x165d, 0x81f9, 0x1657, 0x81f8, 0x1651, 0x81f6, 0x164b, 0x81f5, - 0x1645, 0x81f4, 0x163e, 0x81f3, 0x1638, 0x81f2, 0x1632, 0x81f1, - 0x162c, 0x81f0, 0x1626, 0x81ef, 0x161f, 0x81ee, 0x1619, 0x81ed, - 0x1613, 0x81ec, 0x160d, 0x81ea, 0x1607, 0x81e9, 0x1601, 0x81e8, - 0x15fa, 0x81e7, 0x15f4, 0x81e6, 0x15ee, 0x81e5, 0x15e8, 0x81e4, - 0x15e2, 0x81e3, 0x15db, 0x81e2, 0x15d5, 0x81e1, 0x15cf, 0x81e0, - 0x15c9, 0x81df, 0x15c3, 0x81de, 0x15bc, 0x81dc, 0x15b6, 0x81db, - 0x15b0, 0x81da, 0x15aa, 0x81d9, 0x15a4, 0x81d8, 0x159d, 0x81d7, - 0x1597, 0x81d6, 0x1591, 0x81d5, 0x158b, 0x81d4, 0x1585, 0x81d3, - 0x157f, 0x81d2, 0x1578, 0x81d1, 0x1572, 0x81d0, 0x156c, 0x81cf, - 0x1566, 0x81ce, 0x1560, 0x81cd, 0x1559, 0x81cc, 0x1553, 0x81cb, - 0x154d, 0x81c9, 0x1547, 0x81c8, 0x1541, 0x81c7, 0x153a, 0x81c6, - 0x1534, 0x81c5, 0x152e, 0x81c4, 0x1528, 0x81c3, 0x1522, 0x81c2, - 0x151b, 0x81c1, 0x1515, 0x81c0, 0x150f, 0x81bf, 0x1509, 0x81be, - 0x1503, 0x81bd, 0x14fc, 0x81bc, 0x14f6, 0x81bb, 0x14f0, 0x81ba, - 0x14ea, 0x81b9, 0x14e4, 0x81b8, 0x14dd, 0x81b7, 0x14d7, 0x81b6, - 0x14d1, 0x81b5, 0x14cb, 0x81b4, 0x14c5, 0x81b3, 0x14be, 0x81b2, - 0x14b8, 0x81b1, 0x14b2, 0x81b0, 0x14ac, 0x81af, 0x14a6, 0x81ae, - 0x149f, 0x81ad, 0x1499, 0x81ac, 0x1493, 0x81ab, 0x148d, 0x81aa, - 0x1487, 0x81a9, 0x1480, 0x81a8, 0x147a, 0x81a7, 0x1474, 0x81a6, - 0x146e, 0x81a5, 0x1468, 0x81a4, 0x1461, 0x81a3, 0x145b, 0x81a2, - 0x1455, 0x81a1, 0x144f, 0x81a0, 0x1449, 0x819f, 0x1442, 0x819e, - 0x143c, 0x819d, 0x1436, 0x819c, 0x1430, 0x819b, 0x142a, 0x819a, - 0x1423, 0x8199, 0x141d, 0x8198, 0x1417, 0x8197, 0x1411, 0x8196, - 0x140b, 0x8195, 0x1404, 0x8194, 0x13fe, 0x8193, 0x13f8, 0x8192, - 0x13f2, 0x8191, 0x13eb, 0x8190, 0x13e5, 0x818f, 0x13df, 0x818e, - 0x13d9, 0x818d, 0x13d3, 0x818c, 0x13cc, 0x818b, 0x13c6, 0x818a, - 0x13c0, 0x8189, 0x13ba, 0x8188, 0x13b4, 0x8187, 0x13ad, 0x8186, - 0x13a7, 0x8185, 0x13a1, 0x8184, 0x139b, 0x8183, 0x1395, 0x8182, - 0x138e, 0x8181, 0x1388, 0x8180, 0x1382, 0x817f, 0x137c, 0x817e, - 0x1376, 0x817d, 0x136f, 0x817c, 0x1369, 0x817c, 0x1363, 0x817b, - 0x135d, 0x817a, 0x1356, 0x8179, 0x1350, 0x8178, 0x134a, 0x8177, - 0x1344, 0x8176, 0x133e, 0x8175, 0x1337, 0x8174, 0x1331, 0x8173, - 0x132b, 0x8172, 0x1325, 0x8171, 0x131f, 0x8170, 0x1318, 0x816f, - 0x1312, 0x816e, 0x130c, 0x816d, 0x1306, 0x816c, 0x12ff, 0x816c, - 0x12f9, 0x816b, 0x12f3, 0x816a, 0x12ed, 0x8169, 0x12e7, 0x8168, - 0x12e0, 0x8167, 0x12da, 0x8166, 0x12d4, 0x8165, 0x12ce, 0x8164, - 0x12c8, 0x8163, 0x12c1, 0x8162, 0x12bb, 0x8161, 0x12b5, 0x8160, - 0x12af, 0x815f, 0x12a8, 0x815f, 0x12a2, 0x815e, 0x129c, 0x815d, - 0x1296, 0x815c, 0x1290, 0x815b, 0x1289, 0x815a, 0x1283, 0x8159, - 0x127d, 0x8158, 0x1277, 0x8157, 0x1271, 0x8156, 0x126a, 0x8155, - 0x1264, 0x8155, 0x125e, 0x8154, 0x1258, 0x8153, 0x1251, 0x8152, - 0x124b, 0x8151, 0x1245, 0x8150, 0x123f, 0x814f, 0x1239, 0x814e, - 0x1232, 0x814d, 0x122c, 0x814c, 0x1226, 0x814c, 0x1220, 0x814b, - 0x1219, 0x814a, 0x1213, 0x8149, 0x120d, 0x8148, 0x1207, 0x8147, - 0x1201, 0x8146, 0x11fa, 0x8145, 0x11f4, 0x8145, 0x11ee, 0x8144, - 0x11e8, 0x8143, 0x11e1, 0x8142, 0x11db, 0x8141, 0x11d5, 0x8140, - 0x11cf, 0x813f, 0x11c9, 0x813e, 0x11c2, 0x813d, 0x11bc, 0x813d, - 0x11b6, 0x813c, 0x11b0, 0x813b, 0x11a9, 0x813a, 0x11a3, 0x8139, - 0x119d, 0x8138, 0x1197, 0x8137, 0x1191, 0x8137, 0x118a, 0x8136, - 0x1184, 0x8135, 0x117e, 0x8134, 0x1178, 0x8133, 0x1171, 0x8132, - 0x116b, 0x8131, 0x1165, 0x8131, 0x115f, 0x8130, 0x1159, 0x812f, - 0x1152, 0x812e, 0x114c, 0x812d, 0x1146, 0x812c, 0x1140, 0x812b, - 0x1139, 0x812b, 0x1133, 0x812a, 0x112d, 0x8129, 0x1127, 0x8128, - 0x1121, 0x8127, 0x111a, 0x8126, 0x1114, 0x8126, 0x110e, 0x8125, - 0x1108, 0x8124, 0x1101, 0x8123, 0x10fb, 0x8122, 0x10f5, 0x8121, - 0x10ef, 0x8121, 0x10e8, 0x8120, 0x10e2, 0x811f, 0x10dc, 0x811e, - 0x10d6, 0x811d, 0x10d0, 0x811c, 0x10c9, 0x811c, 0x10c3, 0x811b, - 0x10bd, 0x811a, 0x10b7, 0x8119, 0x10b0, 0x8118, 0x10aa, 0x8117, - 0x10a4, 0x8117, 0x109e, 0x8116, 0x1098, 0x8115, 0x1091, 0x8114, - 0x108b, 0x8113, 0x1085, 0x8113, 0x107f, 0x8112, 0x1078, 0x8111, - 0x1072, 0x8110, 0x106c, 0x810f, 0x1066, 0x810f, 0x105f, 0x810e, - 0x1059, 0x810d, 0x1053, 0x810c, 0x104d, 0x810b, 0x1047, 0x810b, - 0x1040, 0x810a, 0x103a, 0x8109, 0x1034, 0x8108, 0x102e, 0x8107, - 0x1027, 0x8107, 0x1021, 0x8106, 0x101b, 0x8105, 0x1015, 0x8104, - 0x100e, 0x8103, 0x1008, 0x8103, 0x1002, 0x8102, 0xffc, 0x8101, - 0xff5, 0x8100, 0xfef, 0x80ff, 0xfe9, 0x80ff, 0xfe3, 0x80fe, - 0xfdd, 0x80fd, 0xfd6, 0x80fc, 0xfd0, 0x80fc, 0xfca, 0x80fb, - 0xfc4, 0x80fa, 0xfbd, 0x80f9, 0xfb7, 0x80f8, 0xfb1, 0x80f8, - 0xfab, 0x80f7, 0xfa4, 0x80f6, 0xf9e, 0x80f5, 0xf98, 0x80f5, - 0xf92, 0x80f4, 0xf8b, 0x80f3, 0xf85, 0x80f2, 0xf7f, 0x80f2, - 0xf79, 0x80f1, 0xf73, 0x80f0, 0xf6c, 0x80ef, 0xf66, 0x80ef, - 0xf60, 0x80ee, 0xf5a, 0x80ed, 0xf53, 0x80ec, 0xf4d, 0x80ec, - 0xf47, 0x80eb, 0xf41, 0x80ea, 0xf3a, 0x80e9, 0xf34, 0x80e9, - 0xf2e, 0x80e8, 0xf28, 0x80e7, 0xf21, 0x80e6, 0xf1b, 0x80e6, - 0xf15, 0x80e5, 0xf0f, 0x80e4, 0xf08, 0x80e3, 0xf02, 0x80e3, - 0xefc, 0x80e2, 0xef6, 0x80e1, 0xef0, 0x80e0, 0xee9, 0x80e0, - 0xee3, 0x80df, 0xedd, 0x80de, 0xed7, 0x80dd, 0xed0, 0x80dd, - 0xeca, 0x80dc, 0xec4, 0x80db, 0xebe, 0x80db, 0xeb7, 0x80da, - 0xeb1, 0x80d9, 0xeab, 0x80d8, 0xea5, 0x80d8, 0xe9e, 0x80d7, - 0xe98, 0x80d6, 0xe92, 0x80d6, 0xe8c, 0x80d5, 0xe85, 0x80d4, - 0xe7f, 0x80d3, 0xe79, 0x80d3, 0xe73, 0x80d2, 0xe6c, 0x80d1, - 0xe66, 0x80d1, 0xe60, 0x80d0, 0xe5a, 0x80cf, 0xe53, 0x80ce, - 0xe4d, 0x80ce, 0xe47, 0x80cd, 0xe41, 0x80cc, 0xe3a, 0x80cc, - 0xe34, 0x80cb, 0xe2e, 0x80ca, 0xe28, 0x80ca, 0xe22, 0x80c9, - 0xe1b, 0x80c8, 0xe15, 0x80c7, 0xe0f, 0x80c7, 0xe09, 0x80c6, - 0xe02, 0x80c5, 0xdfc, 0x80c5, 0xdf6, 0x80c4, 0xdf0, 0x80c3, - 0xde9, 0x80c3, 0xde3, 0x80c2, 0xddd, 0x80c1, 0xdd7, 0x80c1, - 0xdd0, 0x80c0, 0xdca, 0x80bf, 0xdc4, 0x80bf, 0xdbe, 0x80be, - 0xdb7, 0x80bd, 0xdb1, 0x80bd, 0xdab, 0x80bc, 0xda5, 0x80bb, - 0xd9e, 0x80bb, 0xd98, 0x80ba, 0xd92, 0x80b9, 0xd8c, 0x80b9, - 0xd85, 0x80b8, 0xd7f, 0x80b7, 0xd79, 0x80b7, 0xd73, 0x80b6, - 0xd6c, 0x80b5, 0xd66, 0x80b5, 0xd60, 0x80b4, 0xd5a, 0x80b3, - 0xd53, 0x80b3, 0xd4d, 0x80b2, 0xd47, 0x80b1, 0xd41, 0x80b1, - 0xd3a, 0x80b0, 0xd34, 0x80af, 0xd2e, 0x80af, 0xd28, 0x80ae, - 0xd21, 0x80ad, 0xd1b, 0x80ad, 0xd15, 0x80ac, 0xd0f, 0x80ab, - 0xd08, 0x80ab, 0xd02, 0x80aa, 0xcfc, 0x80aa, 0xcf6, 0x80a9, - 0xcef, 0x80a8, 0xce9, 0x80a8, 0xce3, 0x80a7, 0xcdd, 0x80a6, - 0xcd6, 0x80a6, 0xcd0, 0x80a5, 0xcca, 0x80a5, 0xcc4, 0x80a4, - 0xcbd, 0x80a3, 0xcb7, 0x80a3, 0xcb1, 0x80a2, 0xcab, 0x80a1, - 0xca4, 0x80a1, 0xc9e, 0x80a0, 0xc98, 0x80a0, 0xc92, 0x809f, - 0xc8b, 0x809e, 0xc85, 0x809e, 0xc7f, 0x809d, 0xc79, 0x809c, - 0xc72, 0x809c, 0xc6c, 0x809b, 0xc66, 0x809b, 0xc60, 0x809a, - 0xc59, 0x8099, 0xc53, 0x8099, 0xc4d, 0x8098, 0xc47, 0x8098, - 0xc40, 0x8097, 0xc3a, 0x8096, 0xc34, 0x8096, 0xc2e, 0x8095, - 0xc27, 0x8095, 0xc21, 0x8094, 0xc1b, 0x8093, 0xc14, 0x8093, - 0xc0e, 0x8092, 0xc08, 0x8092, 0xc02, 0x8091, 0xbfb, 0x8090, - 0xbf5, 0x8090, 0xbef, 0x808f, 0xbe9, 0x808f, 0xbe2, 0x808e, - 0xbdc, 0x808e, 0xbd6, 0x808d, 0xbd0, 0x808c, 0xbc9, 0x808c, - 0xbc3, 0x808b, 0xbbd, 0x808b, 0xbb7, 0x808a, 0xbb0, 0x8089, - 0xbaa, 0x8089, 0xba4, 0x8088, 0xb9e, 0x8088, 0xb97, 0x8087, - 0xb91, 0x8087, 0xb8b, 0x8086, 0xb85, 0x8085, 0xb7e, 0x8085, - 0xb78, 0x8084, 0xb72, 0x8084, 0xb6c, 0x8083, 0xb65, 0x8083, - 0xb5f, 0x8082, 0xb59, 0x8082, 0xb53, 0x8081, 0xb4c, 0x8080, - 0xb46, 0x8080, 0xb40, 0x807f, 0xb3a, 0x807f, 0xb33, 0x807e, - 0xb2d, 0x807e, 0xb27, 0x807d, 0xb20, 0x807d, 0xb1a, 0x807c, - 0xb14, 0x807b, 0xb0e, 0x807b, 0xb07, 0x807a, 0xb01, 0x807a, - 0xafb, 0x8079, 0xaf5, 0x8079, 0xaee, 0x8078, 0xae8, 0x8078, - 0xae2, 0x8077, 0xadc, 0x8077, 0xad5, 0x8076, 0xacf, 0x8076, - 0xac9, 0x8075, 0xac3, 0x8075, 0xabc, 0x8074, 0xab6, 0x8073, - 0xab0, 0x8073, 0xaaa, 0x8072, 0xaa3, 0x8072, 0xa9d, 0x8071, - 0xa97, 0x8071, 0xa90, 0x8070, 0xa8a, 0x8070, 0xa84, 0x806f, - 0xa7e, 0x806f, 0xa77, 0x806e, 0xa71, 0x806e, 0xa6b, 0x806d, - 0xa65, 0x806d, 0xa5e, 0x806c, 0xa58, 0x806c, 0xa52, 0x806b, - 0xa4c, 0x806b, 0xa45, 0x806a, 0xa3f, 0x806a, 0xa39, 0x8069, - 0xa33, 0x8069, 0xa2c, 0x8068, 0xa26, 0x8068, 0xa20, 0x8067, - 0xa19, 0x8067, 0xa13, 0x8066, 0xa0d, 0x8066, 0xa07, 0x8065, - 0xa00, 0x8065, 0x9fa, 0x8064, 0x9f4, 0x8064, 0x9ee, 0x8063, - 0x9e7, 0x8063, 0x9e1, 0x8062, 0x9db, 0x8062, 0x9d5, 0x8061, - 0x9ce, 0x8061, 0x9c8, 0x8060, 0x9c2, 0x8060, 0x9bc, 0x805f, - 0x9b5, 0x805f, 0x9af, 0x805e, 0x9a9, 0x805e, 0x9a2, 0x805d, - 0x99c, 0x805d, 0x996, 0x805d, 0x990, 0x805c, 0x989, 0x805c, - 0x983, 0x805b, 0x97d, 0x805b, 0x977, 0x805a, 0x970, 0x805a, - 0x96a, 0x8059, 0x964, 0x8059, 0x95e, 0x8058, 0x957, 0x8058, - 0x951, 0x8057, 0x94b, 0x8057, 0x944, 0x8057, 0x93e, 0x8056, - 0x938, 0x8056, 0x932, 0x8055, 0x92b, 0x8055, 0x925, 0x8054, - 0x91f, 0x8054, 0x919, 0x8053, 0x912, 0x8053, 0x90c, 0x8052, - 0x906, 0x8052, 0x900, 0x8052, 0x8f9, 0x8051, 0x8f3, 0x8051, - 0x8ed, 0x8050, 0x8e6, 0x8050, 0x8e0, 0x804f, 0x8da, 0x804f, - 0x8d4, 0x804f, 0x8cd, 0x804e, 0x8c7, 0x804e, 0x8c1, 0x804d, - 0x8bb, 0x804d, 0x8b4, 0x804c, 0x8ae, 0x804c, 0x8a8, 0x804c, - 0x8a2, 0x804b, 0x89b, 0x804b, 0x895, 0x804a, 0x88f, 0x804a, - 0x888, 0x8049, 0x882, 0x8049, 0x87c, 0x8049, 0x876, 0x8048, - 0x86f, 0x8048, 0x869, 0x8047, 0x863, 0x8047, 0x85d, 0x8047, - 0x856, 0x8046, 0x850, 0x8046, 0x84a, 0x8045, 0x843, 0x8045, - 0x83d, 0x8044, 0x837, 0x8044, 0x831, 0x8044, 0x82a, 0x8043, - 0x824, 0x8043, 0x81e, 0x8042, 0x818, 0x8042, 0x811, 0x8042, - 0x80b, 0x8041, 0x805, 0x8041, 0x7fe, 0x8040, 0x7f8, 0x8040, - 0x7f2, 0x8040, 0x7ec, 0x803f, 0x7e5, 0x803f, 0x7df, 0x803f, - 0x7d9, 0x803e, 0x7d3, 0x803e, 0x7cc, 0x803d, 0x7c6, 0x803d, - 0x7c0, 0x803d, 0x7ba, 0x803c, 0x7b3, 0x803c, 0x7ad, 0x803b, - 0x7a7, 0x803b, 0x7a0, 0x803b, 0x79a, 0x803a, 0x794, 0x803a, - 0x78e, 0x803a, 0x787, 0x8039, 0x781, 0x8039, 0x77b, 0x8039, - 0x775, 0x8038, 0x76e, 0x8038, 0x768, 0x8037, 0x762, 0x8037, - 0x75b, 0x8037, 0x755, 0x8036, 0x74f, 0x8036, 0x749, 0x8036, - 0x742, 0x8035, 0x73c, 0x8035, 0x736, 0x8035, 0x730, 0x8034, - 0x729, 0x8034, 0x723, 0x8033, 0x71d, 0x8033, 0x716, 0x8033, - 0x710, 0x8032, 0x70a, 0x8032, 0x704, 0x8032, 0x6fd, 0x8031, - 0x6f7, 0x8031, 0x6f1, 0x8031, 0x6ea, 0x8030, 0x6e4, 0x8030, - 0x6de, 0x8030, 0x6d8, 0x802f, 0x6d1, 0x802f, 0x6cb, 0x802f, - 0x6c5, 0x802e, 0x6bf, 0x802e, 0x6b8, 0x802e, 0x6b2, 0x802d, - 0x6ac, 0x802d, 0x6a5, 0x802d, 0x69f, 0x802c, 0x699, 0x802c, - 0x693, 0x802c, 0x68c, 0x802b, 0x686, 0x802b, 0x680, 0x802b, - 0x67a, 0x802a, 0x673, 0x802a, 0x66d, 0x802a, 0x667, 0x802a, - 0x660, 0x8029, 0x65a, 0x8029, 0x654, 0x8029, 0x64e, 0x8028, - 0x647, 0x8028, 0x641, 0x8028, 0x63b, 0x8027, 0x635, 0x8027, - 0x62e, 0x8027, 0x628, 0x8026, 0x622, 0x8026, 0x61b, 0x8026, - 0x615, 0x8026, 0x60f, 0x8025, 0x609, 0x8025, 0x602, 0x8025, - 0x5fc, 0x8024, 0x5f6, 0x8024, 0x5ef, 0x8024, 0x5e9, 0x8023, - 0x5e3, 0x8023, 0x5dd, 0x8023, 0x5d6, 0x8023, 0x5d0, 0x8022, - 0x5ca, 0x8022, 0x5c4, 0x8022, 0x5bd, 0x8021, 0x5b7, 0x8021, - 0x5b1, 0x8021, 0x5aa, 0x8021, 0x5a4, 0x8020, 0x59e, 0x8020, - 0x598, 0x8020, 0x591, 0x8020, 0x58b, 0x801f, 0x585, 0x801f, - 0x57f, 0x801f, 0x578, 0x801e, 0x572, 0x801e, 0x56c, 0x801e, - 0x565, 0x801e, 0x55f, 0x801d, 0x559, 0x801d, 0x553, 0x801d, - 0x54c, 0x801d, 0x546, 0x801c, 0x540, 0x801c, 0x539, 0x801c, - 0x533, 0x801c, 0x52d, 0x801b, 0x527, 0x801b, 0x520, 0x801b, - 0x51a, 0x801b, 0x514, 0x801a, 0x50d, 0x801a, 0x507, 0x801a, - 0x501, 0x801a, 0x4fb, 0x8019, 0x4f4, 0x8019, 0x4ee, 0x8019, - 0x4e8, 0x8019, 0x4e2, 0x8018, 0x4db, 0x8018, 0x4d5, 0x8018, - 0x4cf, 0x8018, 0x4c8, 0x8017, 0x4c2, 0x8017, 0x4bc, 0x8017, - 0x4b6, 0x8017, 0x4af, 0x8016, 0x4a9, 0x8016, 0x4a3, 0x8016, - 0x49c, 0x8016, 0x496, 0x8016, 0x490, 0x8015, 0x48a, 0x8015, - 0x483, 0x8015, 0x47d, 0x8015, 0x477, 0x8014, 0x471, 0x8014, - 0x46a, 0x8014, 0x464, 0x8014, 0x45e, 0x8014, 0x457, 0x8013, - 0x451, 0x8013, 0x44b, 0x8013, 0x445, 0x8013, 0x43e, 0x8013, - 0x438, 0x8012, 0x432, 0x8012, 0x42b, 0x8012, 0x425, 0x8012, - 0x41f, 0x8012, 0x419, 0x8011, 0x412, 0x8011, 0x40c, 0x8011, - 0x406, 0x8011, 0x3ff, 0x8011, 0x3f9, 0x8010, 0x3f3, 0x8010, - 0x3ed, 0x8010, 0x3e6, 0x8010, 0x3e0, 0x8010, 0x3da, 0x800f, - 0x3d4, 0x800f, 0x3cd, 0x800f, 0x3c7, 0x800f, 0x3c1, 0x800f, - 0x3ba, 0x800e, 0x3b4, 0x800e, 0x3ae, 0x800e, 0x3a8, 0x800e, - 0x3a1, 0x800e, 0x39b, 0x800e, 0x395, 0x800d, 0x38e, 0x800d, - 0x388, 0x800d, 0x382, 0x800d, 0x37c, 0x800d, 0x375, 0x800c, - 0x36f, 0x800c, 0x369, 0x800c, 0x362, 0x800c, 0x35c, 0x800c, - 0x356, 0x800c, 0x350, 0x800b, 0x349, 0x800b, 0x343, 0x800b, - 0x33d, 0x800b, 0x337, 0x800b, 0x330, 0x800b, 0x32a, 0x800b, - 0x324, 0x800a, 0x31d, 0x800a, 0x317, 0x800a, 0x311, 0x800a, - 0x30b, 0x800a, 0x304, 0x800a, 0x2fe, 0x8009, 0x2f8, 0x8009, - 0x2f1, 0x8009, 0x2eb, 0x8009, 0x2e5, 0x8009, 0x2df, 0x8009, - 0x2d8, 0x8009, 0x2d2, 0x8008, 0x2cc, 0x8008, 0x2c5, 0x8008, - 0x2bf, 0x8008, 0x2b9, 0x8008, 0x2b3, 0x8008, 0x2ac, 0x8008, - 0x2a6, 0x8008, 0x2a0, 0x8007, 0x299, 0x8007, 0x293, 0x8007, - 0x28d, 0x8007, 0x287, 0x8007, 0x280, 0x8007, 0x27a, 0x8007, - 0x274, 0x8007, 0x26d, 0x8006, 0x267, 0x8006, 0x261, 0x8006, - 0x25b, 0x8006, 0x254, 0x8006, 0x24e, 0x8006, 0x248, 0x8006, - 0x242, 0x8006, 0x23b, 0x8005, 0x235, 0x8005, 0x22f, 0x8005, - 0x228, 0x8005, 0x222, 0x8005, 0x21c, 0x8005, 0x216, 0x8005, - 0x20f, 0x8005, 0x209, 0x8005, 0x203, 0x8005, 0x1fc, 0x8004, - 0x1f6, 0x8004, 0x1f0, 0x8004, 0x1ea, 0x8004, 0x1e3, 0x8004, - 0x1dd, 0x8004, 0x1d7, 0x8004, 0x1d0, 0x8004, 0x1ca, 0x8004, - 0x1c4, 0x8004, 0x1be, 0x8004, 0x1b7, 0x8003, 0x1b1, 0x8003, - 0x1ab, 0x8003, 0x1a4, 0x8003, 0x19e, 0x8003, 0x198, 0x8003, - 0x192, 0x8003, 0x18b, 0x8003, 0x185, 0x8003, 0x17f, 0x8003, - 0x178, 0x8003, 0x172, 0x8003, 0x16c, 0x8003, 0x166, 0x8002, - 0x15f, 0x8002, 0x159, 0x8002, 0x153, 0x8002, 0x14d, 0x8002, - 0x146, 0x8002, 0x140, 0x8002, 0x13a, 0x8002, 0x133, 0x8002, - 0x12d, 0x8002, 0x127, 0x8002, 0x121, 0x8002, 0x11a, 0x8002, - 0x114, 0x8002, 0x10e, 0x8002, 0x107, 0x8002, 0x101, 0x8002, - 0xfb, 0x8001, 0xf5, 0x8001, 0xee, 0x8001, 0xe8, 0x8001, - 0xe2, 0x8001, 0xdb, 0x8001, 0xd5, 0x8001, 0xcf, 0x8001, - 0xc9, 0x8001, 0xc2, 0x8001, 0xbc, 0x8001, 0xb6, 0x8001, - 0xaf, 0x8001, 0xa9, 0x8001, 0xa3, 0x8001, 0x9d, 0x8001, - 0x96, 0x8001, 0x90, 0x8001, 0x8a, 0x8001, 0x83, 0x8001, - 0x7d, 0x8001, 0x77, 0x8001, 0x71, 0x8001, 0x6a, 0x8001, - 0x64, 0x8001, 0x5e, 0x8001, 0x57, 0x8001, 0x51, 0x8001, - 0x4b, 0x8001, 0x45, 0x8001, 0x3e, 0x8001, 0x38, 0x8001, - 0x32, 0x8001, 0x2b, 0x8001, 0x25, 0x8001, 0x1f, 0x8001, - 0x19, 0x8001, 0x12, 0x8001, 0xc, 0x8001, 0x6, 0x8001, -}; - - -/** -* \par -* cosFactor tables are generated using the formula :
 cos_factors[n] = 2 * cos((2n+1)*pi/(4*N)) 
-* \par -* C command to generate the table -*
    
-* for(i = 0; i< N; i++)    
-* {    
-*   cos_factors[i]= 2 * cos((2*i+1)*c/2);    
-* } 
-* \par -* where N is the number of factors to generate and c is pi/(2*N) -* \par -* Then converted to q15 format by multiplying with 2^31 and saturated if required. - -*/ - -static const q15_t ALIGN4 cos_factorsQ15_128[128] = { - 0x7fff, 0x7ffa, 0x7ff0, 0x7fe1, 0x7fce, 0x7fb5, 0x7f97, 0x7f75, - 0x7f4d, 0x7f21, 0x7ef0, 0x7eba, 0x7e7f, 0x7e3f, 0x7dfa, 0x7db0, - 0x7d62, 0x7d0f, 0x7cb7, 0x7c5a, 0x7bf8, 0x7b92, 0x7b26, 0x7ab6, - 0x7a42, 0x79c8, 0x794a, 0x78c7, 0x7840, 0x77b4, 0x7723, 0x768e, - 0x75f4, 0x7555, 0x74b2, 0x740b, 0x735f, 0x72af, 0x71fa, 0x7141, - 0x7083, 0x6fc1, 0x6efb, 0x6e30, 0x6d62, 0x6c8f, 0x6bb8, 0x6adc, - 0x69fd, 0x6919, 0x6832, 0x6746, 0x6657, 0x6563, 0x646c, 0x6371, - 0x6271, 0x616f, 0x6068, 0x5f5e, 0x5e50, 0x5d3e, 0x5c29, 0x5b10, - 0x59f3, 0x58d4, 0x57b0, 0x568a, 0x5560, 0x5433, 0x5302, 0x51ce, - 0x5097, 0x4f5e, 0x4e21, 0x4ce1, 0x4b9e, 0x4a58, 0x490f, 0x47c3, - 0x4675, 0x4524, 0x43d0, 0x427a, 0x4121, 0x3fc5, 0x3e68, 0x3d07, - 0x3ba5, 0x3a40, 0x38d8, 0x376f, 0x3604, 0x3496, 0x3326, 0x31b5, - 0x3041, 0x2ecc, 0x2d55, 0x2bdc, 0x2a61, 0x28e5, 0x2767, 0x25e8, - 0x2467, 0x22e5, 0x2161, 0x1fdc, 0x1e56, 0x1ccf, 0x1b47, 0x19bd, - 0x1833, 0x16a8, 0x151b, 0x138e, 0x1201, 0x1072, 0xee3, 0xd53, - 0xbc3, 0xa33, 0x8a2, 0x710, 0x57f, 0x3ed, 0x25b, 0xc9 -}; - -static const q15_t ALIGN4 cos_factorsQ15_512[512] = { - 0x7fff, 0x7fff, 0x7fff, 0x7ffe, 0x7ffc, 0x7ffb, 0x7ff9, 0x7ff7, - 0x7ff4, 0x7ff2, 0x7fee, 0x7feb, 0x7fe7, 0x7fe3, 0x7fdf, 0x7fda, - 0x7fd6, 0x7fd0, 0x7fcb, 0x7fc5, 0x7fbf, 0x7fb8, 0x7fb1, 0x7faa, - 0x7fa3, 0x7f9b, 0x7f93, 0x7f8b, 0x7f82, 0x7f79, 0x7f70, 0x7f67, - 0x7f5d, 0x7f53, 0x7f48, 0x7f3d, 0x7f32, 0x7f27, 0x7f1b, 0x7f0f, - 0x7f03, 0x7ef6, 0x7ee9, 0x7edc, 0x7ecf, 0x7ec1, 0x7eb3, 0x7ea4, - 0x7e95, 0x7e86, 0x7e77, 0x7e67, 0x7e57, 0x7e47, 0x7e37, 0x7e26, - 0x7e14, 0x7e03, 0x7df1, 0x7ddf, 0x7dcd, 0x7dba, 0x7da7, 0x7d94, - 0x7d80, 0x7d6c, 0x7d58, 0x7d43, 0x7d2f, 0x7d19, 0x7d04, 0x7cee, - 0x7cd8, 0x7cc2, 0x7cab, 0x7c94, 0x7c7d, 0x7c66, 0x7c4e, 0x7c36, - 0x7c1d, 0x7c05, 0x7beb, 0x7bd2, 0x7bb9, 0x7b9f, 0x7b84, 0x7b6a, - 0x7b4f, 0x7b34, 0x7b19, 0x7afd, 0x7ae1, 0x7ac5, 0x7aa8, 0x7a8b, - 0x7a6e, 0x7a50, 0x7a33, 0x7a15, 0x79f6, 0x79d8, 0x79b9, 0x7999, - 0x797a, 0x795a, 0x793a, 0x7919, 0x78f9, 0x78d8, 0x78b6, 0x7895, - 0x7873, 0x7851, 0x782e, 0x780c, 0x77e9, 0x77c5, 0x77a2, 0x777e, - 0x775a, 0x7735, 0x7710, 0x76eb, 0x76c6, 0x76a0, 0x767b, 0x7654, - 0x762e, 0x7607, 0x75e0, 0x75b9, 0x7591, 0x7569, 0x7541, 0x7519, - 0x74f0, 0x74c7, 0x749e, 0x7474, 0x744a, 0x7420, 0x73f6, 0x73cb, - 0x73a0, 0x7375, 0x7349, 0x731d, 0x72f1, 0x72c5, 0x7298, 0x726b, - 0x723e, 0x7211, 0x71e3, 0x71b5, 0x7186, 0x7158, 0x7129, 0x70fa, - 0x70cb, 0x709b, 0x706b, 0x703b, 0x700a, 0x6fda, 0x6fa9, 0x6f77, - 0x6f46, 0x6f14, 0x6ee2, 0x6eaf, 0x6e7d, 0x6e4a, 0x6e17, 0x6de3, - 0x6db0, 0x6d7c, 0x6d48, 0x6d13, 0x6cde, 0x6ca9, 0x6c74, 0x6c3f, - 0x6c09, 0x6bd3, 0x6b9c, 0x6b66, 0x6b2f, 0x6af8, 0x6ac1, 0x6a89, - 0x6a51, 0x6a19, 0x69e1, 0x69a8, 0x696f, 0x6936, 0x68fd, 0x68c3, - 0x6889, 0x684f, 0x6815, 0x67da, 0x679f, 0x6764, 0x6729, 0x66ed, - 0x66b1, 0x6675, 0x6639, 0x65fc, 0x65bf, 0x6582, 0x6545, 0x6507, - 0x64c9, 0x648b, 0x644d, 0x640e, 0x63cf, 0x6390, 0x6351, 0x6311, - 0x62d2, 0x6292, 0x6251, 0x6211, 0x61d0, 0x618f, 0x614e, 0x610d, - 0x60cb, 0x6089, 0x6047, 0x6004, 0x5fc2, 0x5f7f, 0x5f3c, 0x5ef9, - 0x5eb5, 0x5e71, 0x5e2d, 0x5de9, 0x5da5, 0x5d60, 0x5d1b, 0x5cd6, - 0x5c91, 0x5c4b, 0x5c06, 0x5bc0, 0x5b79, 0x5b33, 0x5aec, 0x5aa5, - 0x5a5e, 0x5a17, 0x59d0, 0x5988, 0x5940, 0x58f8, 0x58af, 0x5867, - 0x581e, 0x57d5, 0x578c, 0x5742, 0x56f9, 0x56af, 0x5665, 0x561a, - 0x55d0, 0x5585, 0x553a, 0x54ef, 0x54a4, 0x5458, 0x540d, 0x53c1, - 0x5375, 0x5328, 0x52dc, 0x528f, 0x5242, 0x51f5, 0x51a8, 0x515a, - 0x510c, 0x50bf, 0x5070, 0x5022, 0x4fd4, 0x4f85, 0x4f36, 0x4ee7, - 0x4e98, 0x4e48, 0x4df9, 0x4da9, 0x4d59, 0x4d09, 0x4cb8, 0x4c68, - 0x4c17, 0x4bc6, 0x4b75, 0x4b24, 0x4ad2, 0x4a81, 0x4a2f, 0x49dd, - 0x498a, 0x4938, 0x48e6, 0x4893, 0x4840, 0x47ed, 0x479a, 0x4746, - 0x46f3, 0x469f, 0x464b, 0x45f7, 0x45a3, 0x454e, 0x44fa, 0x44a5, - 0x4450, 0x43fb, 0x43a5, 0x4350, 0x42fa, 0x42a5, 0x424f, 0x41f9, - 0x41a2, 0x414c, 0x40f6, 0x409f, 0x4048, 0x3ff1, 0x3f9a, 0x3f43, - 0x3eeb, 0x3e93, 0x3e3c, 0x3de4, 0x3d8c, 0x3d33, 0x3cdb, 0x3c83, - 0x3c2a, 0x3bd1, 0x3b78, 0x3b1f, 0x3ac6, 0x3a6c, 0x3a13, 0x39b9, - 0x395f, 0x3906, 0x38ab, 0x3851, 0x37f7, 0x379c, 0x3742, 0x36e7, - 0x368c, 0x3631, 0x35d6, 0x357b, 0x351f, 0x34c4, 0x3468, 0x340c, - 0x33b0, 0x3354, 0x32f8, 0x329c, 0x3240, 0x31e3, 0x3186, 0x312a, - 0x30cd, 0x3070, 0x3013, 0x2fb5, 0x2f58, 0x2efb, 0x2e9d, 0x2e3f, - 0x2de2, 0x2d84, 0x2d26, 0x2cc8, 0x2c69, 0x2c0b, 0x2bad, 0x2b4e, - 0x2aef, 0x2a91, 0x2a32, 0x29d3, 0x2974, 0x2915, 0x28b5, 0x2856, - 0x27f6, 0x2797, 0x2737, 0x26d8, 0x2678, 0x2618, 0x25b8, 0x2558, - 0x24f7, 0x2497, 0x2437, 0x23d6, 0x2376, 0x2315, 0x22b4, 0x2254, - 0x21f3, 0x2192, 0x2131, 0x20d0, 0x206e, 0x200d, 0x1fac, 0x1f4a, - 0x1ee9, 0x1e87, 0x1e25, 0x1dc4, 0x1d62, 0x1d00, 0x1c9e, 0x1c3c, - 0x1bda, 0x1b78, 0x1b16, 0x1ab3, 0x1a51, 0x19ef, 0x198c, 0x192a, - 0x18c7, 0x1864, 0x1802, 0x179f, 0x173c, 0x16d9, 0x1676, 0x1613, - 0x15b0, 0x154d, 0x14ea, 0x1487, 0x1423, 0x13c0, 0x135d, 0x12f9, - 0x1296, 0x1232, 0x11cf, 0x116b, 0x1108, 0x10a4, 0x1040, 0xfdd, - 0xf79, 0xf15, 0xeb1, 0xe4d, 0xde9, 0xd85, 0xd21, 0xcbd, - 0xc59, 0xbf5, 0xb91, 0xb2d, 0xac9, 0xa65, 0xa00, 0x99c, - 0x938, 0x8d4, 0x86f, 0x80b, 0x7a7, 0x742, 0x6de, 0x67a, - 0x615, 0x5b1, 0x54c, 0x4e8, 0x483, 0x41f, 0x3ba, 0x356, - 0x2f1, 0x28d, 0x228, 0x1c4, 0x15f, 0xfb, 0x96, 0x32, -}; - -static const q15_t ALIGN4 cos_factorsQ15_2048[2048] = { - 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, - 0x7fff, 0x7fff, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffd, 0x7ffd, - 0x7ffd, 0x7ffd, 0x7ffc, 0x7ffc, 0x7ffb, 0x7ffb, 0x7ffb, 0x7ffa, - 0x7ffa, 0x7ff9, 0x7ff9, 0x7ff8, 0x7ff8, 0x7ff7, 0x7ff7, 0x7ff6, - 0x7ff5, 0x7ff5, 0x7ff4, 0x7ff3, 0x7ff3, 0x7ff2, 0x7ff1, 0x7ff0, - 0x7ff0, 0x7fef, 0x7fee, 0x7fed, 0x7fec, 0x7fec, 0x7feb, 0x7fea, - 0x7fe9, 0x7fe8, 0x7fe7, 0x7fe6, 0x7fe5, 0x7fe4, 0x7fe3, 0x7fe2, - 0x7fe1, 0x7fe0, 0x7fdf, 0x7fdd, 0x7fdc, 0x7fdb, 0x7fda, 0x7fd9, - 0x7fd7, 0x7fd6, 0x7fd5, 0x7fd4, 0x7fd2, 0x7fd1, 0x7fd0, 0x7fce, - 0x7fcd, 0x7fcb, 0x7fca, 0x7fc9, 0x7fc7, 0x7fc6, 0x7fc4, 0x7fc3, - 0x7fc1, 0x7fc0, 0x7fbe, 0x7fbc, 0x7fbb, 0x7fb9, 0x7fb7, 0x7fb6, - 0x7fb4, 0x7fb2, 0x7fb1, 0x7faf, 0x7fad, 0x7fab, 0x7fa9, 0x7fa8, - 0x7fa6, 0x7fa4, 0x7fa2, 0x7fa0, 0x7f9e, 0x7f9c, 0x7f9a, 0x7f98, - 0x7f96, 0x7f94, 0x7f92, 0x7f90, 0x7f8e, 0x7f8c, 0x7f8a, 0x7f88, - 0x7f86, 0x7f83, 0x7f81, 0x7f7f, 0x7f7d, 0x7f7b, 0x7f78, 0x7f76, - 0x7f74, 0x7f71, 0x7f6f, 0x7f6d, 0x7f6a, 0x7f68, 0x7f65, 0x7f63, - 0x7f60, 0x7f5e, 0x7f5b, 0x7f59, 0x7f56, 0x7f54, 0x7f51, 0x7f4f, - 0x7f4c, 0x7f49, 0x7f47, 0x7f44, 0x7f41, 0x7f3f, 0x7f3c, 0x7f39, - 0x7f36, 0x7f34, 0x7f31, 0x7f2e, 0x7f2b, 0x7f28, 0x7f25, 0x7f23, - 0x7f20, 0x7f1d, 0x7f1a, 0x7f17, 0x7f14, 0x7f11, 0x7f0e, 0x7f0b, - 0x7f08, 0x7f04, 0x7f01, 0x7efe, 0x7efb, 0x7ef8, 0x7ef5, 0x7ef1, - 0x7eee, 0x7eeb, 0x7ee8, 0x7ee4, 0x7ee1, 0x7ede, 0x7eda, 0x7ed7, - 0x7ed4, 0x7ed0, 0x7ecd, 0x7ec9, 0x7ec6, 0x7ec3, 0x7ebf, 0x7ebb, - 0x7eb8, 0x7eb4, 0x7eb1, 0x7ead, 0x7eaa, 0x7ea6, 0x7ea2, 0x7e9f, - 0x7e9b, 0x7e97, 0x7e94, 0x7e90, 0x7e8c, 0x7e88, 0x7e84, 0x7e81, - 0x7e7d, 0x7e79, 0x7e75, 0x7e71, 0x7e6d, 0x7e69, 0x7e65, 0x7e61, - 0x7e5d, 0x7e59, 0x7e55, 0x7e51, 0x7e4d, 0x7e49, 0x7e45, 0x7e41, - 0x7e3d, 0x7e39, 0x7e34, 0x7e30, 0x7e2c, 0x7e28, 0x7e24, 0x7e1f, - 0x7e1b, 0x7e17, 0x7e12, 0x7e0e, 0x7e0a, 0x7e05, 0x7e01, 0x7dfc, - 0x7df8, 0x7df3, 0x7def, 0x7dea, 0x7de6, 0x7de1, 0x7ddd, 0x7dd8, - 0x7dd4, 0x7dcf, 0x7dca, 0x7dc6, 0x7dc1, 0x7dbc, 0x7db8, 0x7db3, - 0x7dae, 0x7da9, 0x7da5, 0x7da0, 0x7d9b, 0x7d96, 0x7d91, 0x7d8c, - 0x7d87, 0x7d82, 0x7d7e, 0x7d79, 0x7d74, 0x7d6f, 0x7d6a, 0x7d65, - 0x7d60, 0x7d5a, 0x7d55, 0x7d50, 0x7d4b, 0x7d46, 0x7d41, 0x7d3c, - 0x7d36, 0x7d31, 0x7d2c, 0x7d27, 0x7d21, 0x7d1c, 0x7d17, 0x7d11, - 0x7d0c, 0x7d07, 0x7d01, 0x7cfc, 0x7cf6, 0x7cf1, 0x7cec, 0x7ce6, - 0x7ce1, 0x7cdb, 0x7cd5, 0x7cd0, 0x7cca, 0x7cc5, 0x7cbf, 0x7cb9, - 0x7cb4, 0x7cae, 0x7ca8, 0x7ca3, 0x7c9d, 0x7c97, 0x7c91, 0x7c8c, - 0x7c86, 0x7c80, 0x7c7a, 0x7c74, 0x7c6e, 0x7c69, 0x7c63, 0x7c5d, - 0x7c57, 0x7c51, 0x7c4b, 0x7c45, 0x7c3f, 0x7c39, 0x7c33, 0x7c2d, - 0x7c26, 0x7c20, 0x7c1a, 0x7c14, 0x7c0e, 0x7c08, 0x7c01, 0x7bfb, - 0x7bf5, 0x7bef, 0x7be8, 0x7be2, 0x7bdc, 0x7bd5, 0x7bcf, 0x7bc9, - 0x7bc2, 0x7bbc, 0x7bb5, 0x7baf, 0x7ba8, 0x7ba2, 0x7b9b, 0x7b95, - 0x7b8e, 0x7b88, 0x7b81, 0x7b7a, 0x7b74, 0x7b6d, 0x7b67, 0x7b60, - 0x7b59, 0x7b52, 0x7b4c, 0x7b45, 0x7b3e, 0x7b37, 0x7b31, 0x7b2a, - 0x7b23, 0x7b1c, 0x7b15, 0x7b0e, 0x7b07, 0x7b00, 0x7af9, 0x7af2, - 0x7aeb, 0x7ae4, 0x7add, 0x7ad6, 0x7acf, 0x7ac8, 0x7ac1, 0x7aba, - 0x7ab3, 0x7aac, 0x7aa4, 0x7a9d, 0x7a96, 0x7a8f, 0x7a87, 0x7a80, - 0x7a79, 0x7a72, 0x7a6a, 0x7a63, 0x7a5c, 0x7a54, 0x7a4d, 0x7a45, - 0x7a3e, 0x7a36, 0x7a2f, 0x7a27, 0x7a20, 0x7a18, 0x7a11, 0x7a09, - 0x7a02, 0x79fa, 0x79f2, 0x79eb, 0x79e3, 0x79db, 0x79d4, 0x79cc, - 0x79c4, 0x79bc, 0x79b5, 0x79ad, 0x79a5, 0x799d, 0x7995, 0x798e, - 0x7986, 0x797e, 0x7976, 0x796e, 0x7966, 0x795e, 0x7956, 0x794e, - 0x7946, 0x793e, 0x7936, 0x792e, 0x7926, 0x791e, 0x7915, 0x790d, - 0x7905, 0x78fd, 0x78f5, 0x78ec, 0x78e4, 0x78dc, 0x78d4, 0x78cb, - 0x78c3, 0x78bb, 0x78b2, 0x78aa, 0x78a2, 0x7899, 0x7891, 0x7888, - 0x7880, 0x7877, 0x786f, 0x7866, 0x785e, 0x7855, 0x784d, 0x7844, - 0x783b, 0x7833, 0x782a, 0x7821, 0x7819, 0x7810, 0x7807, 0x77ff, - 0x77f6, 0x77ed, 0x77e4, 0x77db, 0x77d3, 0x77ca, 0x77c1, 0x77b8, - 0x77af, 0x77a6, 0x779d, 0x7794, 0x778b, 0x7782, 0x7779, 0x7770, - 0x7767, 0x775e, 0x7755, 0x774c, 0x7743, 0x773a, 0x7731, 0x7727, - 0x771e, 0x7715, 0x770c, 0x7703, 0x76f9, 0x76f0, 0x76e7, 0x76dd, - 0x76d4, 0x76cb, 0x76c1, 0x76b8, 0x76af, 0x76a5, 0x769c, 0x7692, - 0x7689, 0x767f, 0x7676, 0x766c, 0x7663, 0x7659, 0x7650, 0x7646, - 0x763c, 0x7633, 0x7629, 0x761f, 0x7616, 0x760c, 0x7602, 0x75f9, - 0x75ef, 0x75e5, 0x75db, 0x75d1, 0x75c8, 0x75be, 0x75b4, 0x75aa, - 0x75a0, 0x7596, 0x758c, 0x7582, 0x7578, 0x756e, 0x7564, 0x755a, - 0x7550, 0x7546, 0x753c, 0x7532, 0x7528, 0x751e, 0x7514, 0x7509, - 0x74ff, 0x74f5, 0x74eb, 0x74e1, 0x74d6, 0x74cc, 0x74c2, 0x74b7, - 0x74ad, 0x74a3, 0x7498, 0x748e, 0x7484, 0x7479, 0x746f, 0x7464, - 0x745a, 0x744f, 0x7445, 0x743a, 0x7430, 0x7425, 0x741b, 0x7410, - 0x7406, 0x73fb, 0x73f0, 0x73e6, 0x73db, 0x73d0, 0x73c6, 0x73bb, - 0x73b0, 0x73a5, 0x739b, 0x7390, 0x7385, 0x737a, 0x736f, 0x7364, - 0x7359, 0x734f, 0x7344, 0x7339, 0x732e, 0x7323, 0x7318, 0x730d, - 0x7302, 0x72f7, 0x72ec, 0x72e1, 0x72d5, 0x72ca, 0x72bf, 0x72b4, - 0x72a9, 0x729e, 0x7293, 0x7287, 0x727c, 0x7271, 0x7266, 0x725a, - 0x724f, 0x7244, 0x7238, 0x722d, 0x7222, 0x7216, 0x720b, 0x71ff, - 0x71f4, 0x71e9, 0x71dd, 0x71d2, 0x71c6, 0x71bb, 0x71af, 0x71a3, - 0x7198, 0x718c, 0x7181, 0x7175, 0x7169, 0x715e, 0x7152, 0x7146, - 0x713b, 0x712f, 0x7123, 0x7117, 0x710c, 0x7100, 0x70f4, 0x70e8, - 0x70dc, 0x70d1, 0x70c5, 0x70b9, 0x70ad, 0x70a1, 0x7095, 0x7089, - 0x707d, 0x7071, 0x7065, 0x7059, 0x704d, 0x7041, 0x7035, 0x7029, - 0x701d, 0x7010, 0x7004, 0x6ff8, 0x6fec, 0x6fe0, 0x6fd3, 0x6fc7, - 0x6fbb, 0x6faf, 0x6fa2, 0x6f96, 0x6f8a, 0x6f7d, 0x6f71, 0x6f65, - 0x6f58, 0x6f4c, 0x6f3f, 0x6f33, 0x6f27, 0x6f1a, 0x6f0e, 0x6f01, - 0x6ef5, 0x6ee8, 0x6edc, 0x6ecf, 0x6ec2, 0x6eb6, 0x6ea9, 0x6e9c, - 0x6e90, 0x6e83, 0x6e76, 0x6e6a, 0x6e5d, 0x6e50, 0x6e44, 0x6e37, - 0x6e2a, 0x6e1d, 0x6e10, 0x6e04, 0x6df7, 0x6dea, 0x6ddd, 0x6dd0, - 0x6dc3, 0x6db6, 0x6da9, 0x6d9c, 0x6d8f, 0x6d82, 0x6d75, 0x6d68, - 0x6d5b, 0x6d4e, 0x6d41, 0x6d34, 0x6d27, 0x6d1a, 0x6d0c, 0x6cff, - 0x6cf2, 0x6ce5, 0x6cd8, 0x6cca, 0x6cbd, 0x6cb0, 0x6ca3, 0x6c95, - 0x6c88, 0x6c7b, 0x6c6d, 0x6c60, 0x6c53, 0x6c45, 0x6c38, 0x6c2a, - 0x6c1d, 0x6c0f, 0x6c02, 0x6bf5, 0x6be7, 0x6bd9, 0x6bcc, 0x6bbe, - 0x6bb1, 0x6ba3, 0x6b96, 0x6b88, 0x6b7a, 0x6b6d, 0x6b5f, 0x6b51, - 0x6b44, 0x6b36, 0x6b28, 0x6b1a, 0x6b0d, 0x6aff, 0x6af1, 0x6ae3, - 0x6ad5, 0x6ac8, 0x6aba, 0x6aac, 0x6a9e, 0x6a90, 0x6a82, 0x6a74, - 0x6a66, 0x6a58, 0x6a4a, 0x6a3c, 0x6a2e, 0x6a20, 0x6a12, 0x6a04, - 0x69f6, 0x69e8, 0x69da, 0x69cb, 0x69bd, 0x69af, 0x69a1, 0x6993, - 0x6985, 0x6976, 0x6968, 0x695a, 0x694b, 0x693d, 0x692f, 0x6921, - 0x6912, 0x6904, 0x68f5, 0x68e7, 0x68d9, 0x68ca, 0x68bc, 0x68ad, - 0x689f, 0x6890, 0x6882, 0x6873, 0x6865, 0x6856, 0x6848, 0x6839, - 0x682b, 0x681c, 0x680d, 0x67ff, 0x67f0, 0x67e1, 0x67d3, 0x67c4, - 0x67b5, 0x67a6, 0x6798, 0x6789, 0x677a, 0x676b, 0x675d, 0x674e, - 0x673f, 0x6730, 0x6721, 0x6712, 0x6703, 0x66f4, 0x66e5, 0x66d6, - 0x66c8, 0x66b9, 0x66aa, 0x669b, 0x668b, 0x667c, 0x666d, 0x665e, - 0x664f, 0x6640, 0x6631, 0x6622, 0x6613, 0x6603, 0x65f4, 0x65e5, - 0x65d6, 0x65c7, 0x65b7, 0x65a8, 0x6599, 0x658a, 0x657a, 0x656b, - 0x655c, 0x654c, 0x653d, 0x652d, 0x651e, 0x650f, 0x64ff, 0x64f0, - 0x64e0, 0x64d1, 0x64c1, 0x64b2, 0x64a2, 0x6493, 0x6483, 0x6474, - 0x6464, 0x6454, 0x6445, 0x6435, 0x6426, 0x6416, 0x6406, 0x63f7, - 0x63e7, 0x63d7, 0x63c7, 0x63b8, 0x63a8, 0x6398, 0x6388, 0x6378, - 0x6369, 0x6359, 0x6349, 0x6339, 0x6329, 0x6319, 0x6309, 0x62f9, - 0x62ea, 0x62da, 0x62ca, 0x62ba, 0x62aa, 0x629a, 0x628a, 0x627a, - 0x6269, 0x6259, 0x6249, 0x6239, 0x6229, 0x6219, 0x6209, 0x61f9, - 0x61e8, 0x61d8, 0x61c8, 0x61b8, 0x61a8, 0x6197, 0x6187, 0x6177, - 0x6166, 0x6156, 0x6146, 0x6135, 0x6125, 0x6115, 0x6104, 0x60f4, - 0x60e4, 0x60d3, 0x60c3, 0x60b2, 0x60a2, 0x6091, 0x6081, 0x6070, - 0x6060, 0x604f, 0x603f, 0x602e, 0x601d, 0x600d, 0x5ffc, 0x5fec, - 0x5fdb, 0x5fca, 0x5fba, 0x5fa9, 0x5f98, 0x5f87, 0x5f77, 0x5f66, - 0x5f55, 0x5f44, 0x5f34, 0x5f23, 0x5f12, 0x5f01, 0x5ef0, 0x5edf, - 0x5ecf, 0x5ebe, 0x5ead, 0x5e9c, 0x5e8b, 0x5e7a, 0x5e69, 0x5e58, - 0x5e47, 0x5e36, 0x5e25, 0x5e14, 0x5e03, 0x5df2, 0x5de1, 0x5dd0, - 0x5dbf, 0x5dad, 0x5d9c, 0x5d8b, 0x5d7a, 0x5d69, 0x5d58, 0x5d46, - 0x5d35, 0x5d24, 0x5d13, 0x5d01, 0x5cf0, 0x5cdf, 0x5cce, 0x5cbc, - 0x5cab, 0x5c9a, 0x5c88, 0x5c77, 0x5c66, 0x5c54, 0x5c43, 0x5c31, - 0x5c20, 0x5c0e, 0x5bfd, 0x5beb, 0x5bda, 0x5bc8, 0x5bb7, 0x5ba5, - 0x5b94, 0x5b82, 0x5b71, 0x5b5f, 0x5b4d, 0x5b3c, 0x5b2a, 0x5b19, - 0x5b07, 0x5af5, 0x5ae4, 0x5ad2, 0x5ac0, 0x5aae, 0x5a9d, 0x5a8b, - 0x5a79, 0x5a67, 0x5a56, 0x5a44, 0x5a32, 0x5a20, 0x5a0e, 0x59fc, - 0x59ea, 0x59d9, 0x59c7, 0x59b5, 0x59a3, 0x5991, 0x597f, 0x596d, - 0x595b, 0x5949, 0x5937, 0x5925, 0x5913, 0x5901, 0x58ef, 0x58dd, - 0x58cb, 0x58b8, 0x58a6, 0x5894, 0x5882, 0x5870, 0x585e, 0x584b, - 0x5839, 0x5827, 0x5815, 0x5803, 0x57f0, 0x57de, 0x57cc, 0x57b9, - 0x57a7, 0x5795, 0x5783, 0x5770, 0x575e, 0x574b, 0x5739, 0x5727, - 0x5714, 0x5702, 0x56ef, 0x56dd, 0x56ca, 0x56b8, 0x56a5, 0x5693, - 0x5680, 0x566e, 0x565b, 0x5649, 0x5636, 0x5624, 0x5611, 0x55fe, - 0x55ec, 0x55d9, 0x55c7, 0x55b4, 0x55a1, 0x558f, 0x557c, 0x5569, - 0x5556, 0x5544, 0x5531, 0x551e, 0x550b, 0x54f9, 0x54e6, 0x54d3, - 0x54c0, 0x54ad, 0x549a, 0x5488, 0x5475, 0x5462, 0x544f, 0x543c, - 0x5429, 0x5416, 0x5403, 0x53f0, 0x53dd, 0x53ca, 0x53b7, 0x53a4, - 0x5391, 0x537e, 0x536b, 0x5358, 0x5345, 0x5332, 0x531f, 0x530c, - 0x52f8, 0x52e5, 0x52d2, 0x52bf, 0x52ac, 0x5299, 0x5285, 0x5272, - 0x525f, 0x524c, 0x5238, 0x5225, 0x5212, 0x51ff, 0x51eb, 0x51d8, - 0x51c5, 0x51b1, 0x519e, 0x518b, 0x5177, 0x5164, 0x5150, 0x513d, - 0x512a, 0x5116, 0x5103, 0x50ef, 0x50dc, 0x50c8, 0x50b5, 0x50a1, - 0x508e, 0x507a, 0x5067, 0x5053, 0x503f, 0x502c, 0x5018, 0x5005, - 0x4ff1, 0x4fdd, 0x4fca, 0x4fb6, 0x4fa2, 0x4f8f, 0x4f7b, 0x4f67, - 0x4f54, 0x4f40, 0x4f2c, 0x4f18, 0x4f05, 0x4ef1, 0x4edd, 0x4ec9, - 0x4eb6, 0x4ea2, 0x4e8e, 0x4e7a, 0x4e66, 0x4e52, 0x4e3e, 0x4e2a, - 0x4e17, 0x4e03, 0x4def, 0x4ddb, 0x4dc7, 0x4db3, 0x4d9f, 0x4d8b, - 0x4d77, 0x4d63, 0x4d4f, 0x4d3b, 0x4d27, 0x4d13, 0x4cff, 0x4ceb, - 0x4cd6, 0x4cc2, 0x4cae, 0x4c9a, 0x4c86, 0x4c72, 0x4c5e, 0x4c49, - 0x4c35, 0x4c21, 0x4c0d, 0x4bf9, 0x4be4, 0x4bd0, 0x4bbc, 0x4ba8, - 0x4b93, 0x4b7f, 0x4b6b, 0x4b56, 0x4b42, 0x4b2e, 0x4b19, 0x4b05, - 0x4af1, 0x4adc, 0x4ac8, 0x4ab4, 0x4a9f, 0x4a8b, 0x4a76, 0x4a62, - 0x4a4d, 0x4a39, 0x4a24, 0x4a10, 0x49fb, 0x49e7, 0x49d2, 0x49be, - 0x49a9, 0x4995, 0x4980, 0x496c, 0x4957, 0x4942, 0x492e, 0x4919, - 0x4905, 0x48f0, 0x48db, 0x48c7, 0x48b2, 0x489d, 0x4888, 0x4874, - 0x485f, 0x484a, 0x4836, 0x4821, 0x480c, 0x47f7, 0x47e2, 0x47ce, - 0x47b9, 0x47a4, 0x478f, 0x477a, 0x4765, 0x4751, 0x473c, 0x4727, - 0x4712, 0x46fd, 0x46e8, 0x46d3, 0x46be, 0x46a9, 0x4694, 0x467f, - 0x466a, 0x4655, 0x4640, 0x462b, 0x4616, 0x4601, 0x45ec, 0x45d7, - 0x45c2, 0x45ad, 0x4598, 0x4583, 0x456e, 0x4559, 0x4544, 0x452e, - 0x4519, 0x4504, 0x44ef, 0x44da, 0x44c5, 0x44af, 0x449a, 0x4485, - 0x4470, 0x445a, 0x4445, 0x4430, 0x441b, 0x4405, 0x43f0, 0x43db, - 0x43c5, 0x43b0, 0x439b, 0x4385, 0x4370, 0x435b, 0x4345, 0x4330, - 0x431b, 0x4305, 0x42f0, 0x42da, 0x42c5, 0x42af, 0x429a, 0x4284, - 0x426f, 0x425a, 0x4244, 0x422f, 0x4219, 0x4203, 0x41ee, 0x41d8, - 0x41c3, 0x41ad, 0x4198, 0x4182, 0x416d, 0x4157, 0x4141, 0x412c, - 0x4116, 0x4100, 0x40eb, 0x40d5, 0x40bf, 0x40aa, 0x4094, 0x407e, - 0x4069, 0x4053, 0x403d, 0x4027, 0x4012, 0x3ffc, 0x3fe6, 0x3fd0, - 0x3fbb, 0x3fa5, 0x3f8f, 0x3f79, 0x3f63, 0x3f4d, 0x3f38, 0x3f22, - 0x3f0c, 0x3ef6, 0x3ee0, 0x3eca, 0x3eb4, 0x3e9e, 0x3e88, 0x3e73, - 0x3e5d, 0x3e47, 0x3e31, 0x3e1b, 0x3e05, 0x3def, 0x3dd9, 0x3dc3, - 0x3dad, 0x3d97, 0x3d81, 0x3d6b, 0x3d55, 0x3d3e, 0x3d28, 0x3d12, - 0x3cfc, 0x3ce6, 0x3cd0, 0x3cba, 0x3ca4, 0x3c8e, 0x3c77, 0x3c61, - 0x3c4b, 0x3c35, 0x3c1f, 0x3c09, 0x3bf2, 0x3bdc, 0x3bc6, 0x3bb0, - 0x3b99, 0x3b83, 0x3b6d, 0x3b57, 0x3b40, 0x3b2a, 0x3b14, 0x3afe, - 0x3ae7, 0x3ad1, 0x3abb, 0x3aa4, 0x3a8e, 0x3a78, 0x3a61, 0x3a4b, - 0x3a34, 0x3a1e, 0x3a08, 0x39f1, 0x39db, 0x39c4, 0x39ae, 0x3998, - 0x3981, 0x396b, 0x3954, 0x393e, 0x3927, 0x3911, 0x38fa, 0x38e4, - 0x38cd, 0x38b7, 0x38a0, 0x388a, 0x3873, 0x385d, 0x3846, 0x382f, - 0x3819, 0x3802, 0x37ec, 0x37d5, 0x37be, 0x37a8, 0x3791, 0x377a, - 0x3764, 0x374d, 0x3736, 0x3720, 0x3709, 0x36f2, 0x36dc, 0x36c5, - 0x36ae, 0x3698, 0x3681, 0x366a, 0x3653, 0x363d, 0x3626, 0x360f, - 0x35f8, 0x35e1, 0x35cb, 0x35b4, 0x359d, 0x3586, 0x356f, 0x3558, - 0x3542, 0x352b, 0x3514, 0x34fd, 0x34e6, 0x34cf, 0x34b8, 0x34a1, - 0x348b, 0x3474, 0x345d, 0x3446, 0x342f, 0x3418, 0x3401, 0x33ea, - 0x33d3, 0x33bc, 0x33a5, 0x338e, 0x3377, 0x3360, 0x3349, 0x3332, - 0x331b, 0x3304, 0x32ed, 0x32d6, 0x32bf, 0x32a8, 0x3290, 0x3279, - 0x3262, 0x324b, 0x3234, 0x321d, 0x3206, 0x31ef, 0x31d8, 0x31c0, - 0x31a9, 0x3192, 0x317b, 0x3164, 0x314c, 0x3135, 0x311e, 0x3107, - 0x30f0, 0x30d8, 0x30c1, 0x30aa, 0x3093, 0x307b, 0x3064, 0x304d, - 0x3036, 0x301e, 0x3007, 0x2ff0, 0x2fd8, 0x2fc1, 0x2faa, 0x2f92, - 0x2f7b, 0x2f64, 0x2f4c, 0x2f35, 0x2f1e, 0x2f06, 0x2eef, 0x2ed8, - 0x2ec0, 0x2ea9, 0x2e91, 0x2e7a, 0x2e63, 0x2e4b, 0x2e34, 0x2e1c, - 0x2e05, 0x2ded, 0x2dd6, 0x2dbe, 0x2da7, 0x2d8f, 0x2d78, 0x2d60, - 0x2d49, 0x2d31, 0x2d1a, 0x2d02, 0x2ceb, 0x2cd3, 0x2cbc, 0x2ca4, - 0x2c8d, 0x2c75, 0x2c5e, 0x2c46, 0x2c2e, 0x2c17, 0x2bff, 0x2be8, - 0x2bd0, 0x2bb8, 0x2ba1, 0x2b89, 0x2b71, 0x2b5a, 0x2b42, 0x2b2b, - 0x2b13, 0x2afb, 0x2ae4, 0x2acc, 0x2ab4, 0x2a9c, 0x2a85, 0x2a6d, - 0x2a55, 0x2a3e, 0x2a26, 0x2a0e, 0x29f6, 0x29df, 0x29c7, 0x29af, - 0x2997, 0x2980, 0x2968, 0x2950, 0x2938, 0x2920, 0x2909, 0x28f1, - 0x28d9, 0x28c1, 0x28a9, 0x2892, 0x287a, 0x2862, 0x284a, 0x2832, - 0x281a, 0x2802, 0x27eb, 0x27d3, 0x27bb, 0x27a3, 0x278b, 0x2773, - 0x275b, 0x2743, 0x272b, 0x2713, 0x26fb, 0x26e4, 0x26cc, 0x26b4, - 0x269c, 0x2684, 0x266c, 0x2654, 0x263c, 0x2624, 0x260c, 0x25f4, - 0x25dc, 0x25c4, 0x25ac, 0x2594, 0x257c, 0x2564, 0x254c, 0x2534, - 0x251c, 0x2503, 0x24eb, 0x24d3, 0x24bb, 0x24a3, 0x248b, 0x2473, - 0x245b, 0x2443, 0x242b, 0x2413, 0x23fa, 0x23e2, 0x23ca, 0x23b2, - 0x239a, 0x2382, 0x236a, 0x2352, 0x2339, 0x2321, 0x2309, 0x22f1, - 0x22d9, 0x22c0, 0x22a8, 0x2290, 0x2278, 0x2260, 0x2247, 0x222f, - 0x2217, 0x21ff, 0x21e7, 0x21ce, 0x21b6, 0x219e, 0x2186, 0x216d, - 0x2155, 0x213d, 0x2125, 0x210c, 0x20f4, 0x20dc, 0x20c3, 0x20ab, - 0x2093, 0x207a, 0x2062, 0x204a, 0x2032, 0x2019, 0x2001, 0x1fe9, - 0x1fd0, 0x1fb8, 0x1f9f, 0x1f87, 0x1f6f, 0x1f56, 0x1f3e, 0x1f26, - 0x1f0d, 0x1ef5, 0x1edd, 0x1ec4, 0x1eac, 0x1e93, 0x1e7b, 0x1e62, - 0x1e4a, 0x1e32, 0x1e19, 0x1e01, 0x1de8, 0x1dd0, 0x1db7, 0x1d9f, - 0x1d87, 0x1d6e, 0x1d56, 0x1d3d, 0x1d25, 0x1d0c, 0x1cf4, 0x1cdb, - 0x1cc3, 0x1caa, 0x1c92, 0x1c79, 0x1c61, 0x1c48, 0x1c30, 0x1c17, - 0x1bff, 0x1be6, 0x1bce, 0x1bb5, 0x1b9d, 0x1b84, 0x1b6c, 0x1b53, - 0x1b3a, 0x1b22, 0x1b09, 0x1af1, 0x1ad8, 0x1ac0, 0x1aa7, 0x1a8e, - 0x1a76, 0x1a5d, 0x1a45, 0x1a2c, 0x1a13, 0x19fb, 0x19e2, 0x19ca, - 0x19b1, 0x1998, 0x1980, 0x1967, 0x194e, 0x1936, 0x191d, 0x1905, - 0x18ec, 0x18d3, 0x18bb, 0x18a2, 0x1889, 0x1871, 0x1858, 0x183f, - 0x1827, 0x180e, 0x17f5, 0x17dd, 0x17c4, 0x17ab, 0x1792, 0x177a, - 0x1761, 0x1748, 0x1730, 0x1717, 0x16fe, 0x16e5, 0x16cd, 0x16b4, - 0x169b, 0x1682, 0x166a, 0x1651, 0x1638, 0x161f, 0x1607, 0x15ee, - 0x15d5, 0x15bc, 0x15a4, 0x158b, 0x1572, 0x1559, 0x1541, 0x1528, - 0x150f, 0x14f6, 0x14dd, 0x14c5, 0x14ac, 0x1493, 0x147a, 0x1461, - 0x1449, 0x1430, 0x1417, 0x13fe, 0x13e5, 0x13cc, 0x13b4, 0x139b, - 0x1382, 0x1369, 0x1350, 0x1337, 0x131f, 0x1306, 0x12ed, 0x12d4, - 0x12bb, 0x12a2, 0x1289, 0x1271, 0x1258, 0x123f, 0x1226, 0x120d, - 0x11f4, 0x11db, 0x11c2, 0x11a9, 0x1191, 0x1178, 0x115f, 0x1146, - 0x112d, 0x1114, 0x10fb, 0x10e2, 0x10c9, 0x10b0, 0x1098, 0x107f, - 0x1066, 0x104d, 0x1034, 0x101b, 0x1002, 0xfe9, 0xfd0, 0xfb7, - 0xf9e, 0xf85, 0xf6c, 0xf53, 0xf3a, 0xf21, 0xf08, 0xef0, - 0xed7, 0xebe, 0xea5, 0xe8c, 0xe73, 0xe5a, 0xe41, 0xe28, - 0xe0f, 0xdf6, 0xddd, 0xdc4, 0xdab, 0xd92, 0xd79, 0xd60, - 0xd47, 0xd2e, 0xd15, 0xcfc, 0xce3, 0xcca, 0xcb1, 0xc98, - 0xc7f, 0xc66, 0xc4d, 0xc34, 0xc1b, 0xc02, 0xbe9, 0xbd0, - 0xbb7, 0xb9e, 0xb85, 0xb6c, 0xb53, 0xb3a, 0xb20, 0xb07, - 0xaee, 0xad5, 0xabc, 0xaa3, 0xa8a, 0xa71, 0xa58, 0xa3f, - 0xa26, 0xa0d, 0x9f4, 0x9db, 0x9c2, 0x9a9, 0x990, 0x977, - 0x95e, 0x944, 0x92b, 0x912, 0x8f9, 0x8e0, 0x8c7, 0x8ae, - 0x895, 0x87c, 0x863, 0x84a, 0x831, 0x818, 0x7fe, 0x7e5, - 0x7cc, 0x7b3, 0x79a, 0x781, 0x768, 0x74f, 0x736, 0x71d, - 0x704, 0x6ea, 0x6d1, 0x6b8, 0x69f, 0x686, 0x66d, 0x654, - 0x63b, 0x622, 0x609, 0x5ef, 0x5d6, 0x5bd, 0x5a4, 0x58b, - 0x572, 0x559, 0x540, 0x527, 0x50d, 0x4f4, 0x4db, 0x4c2, - 0x4a9, 0x490, 0x477, 0x45e, 0x445, 0x42b, 0x412, 0x3f9, - 0x3e0, 0x3c7, 0x3ae, 0x395, 0x37c, 0x362, 0x349, 0x330, - 0x317, 0x2fe, 0x2e5, 0x2cc, 0x2b3, 0x299, 0x280, 0x267, - 0x24e, 0x235, 0x21c, 0x203, 0x1ea, 0x1d0, 0x1b7, 0x19e, - 0x185, 0x16c, 0x153, 0x13a, 0x121, 0x107, 0xee, 0xd5, - 0xbc, 0xa3, 0x8a, 0x71, 0x57, 0x3e, 0x25, 0xc, - -}; - -static const q15_t ALIGN4 cos_factorsQ15_8192[8192] = { - 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, - 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, - 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, - 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, - 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, - 0x7fff, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, - 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, - 0x7ffe, 0x7ffe, 0x7ffd, 0x7ffd, 0x7ffd, 0x7ffd, 0x7ffd, 0x7ffd, - 0x7ffd, 0x7ffd, 0x7ffd, 0x7ffd, 0x7ffd, 0x7ffd, 0x7ffd, 0x7ffc, - 0x7ffc, 0x7ffc, 0x7ffc, 0x7ffc, 0x7ffc, 0x7ffc, 0x7ffc, 0x7ffc, - 0x7ffc, 0x7ffb, 0x7ffb, 0x7ffb, 0x7ffb, 0x7ffb, 0x7ffb, 0x7ffb, - 0x7ffb, 0x7ffb, 0x7ffb, 0x7ffa, 0x7ffa, 0x7ffa, 0x7ffa, 0x7ffa, - 0x7ffa, 0x7ffa, 0x7ffa, 0x7ffa, 0x7ff9, 0x7ff9, 0x7ff9, 0x7ff9, - 0x7ff9, 0x7ff9, 0x7ff9, 0x7ff9, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, - 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff7, 0x7ff7, 0x7ff7, 0x7ff7, 0x7ff7, - 0x7ff7, 0x7ff7, 0x7ff6, 0x7ff6, 0x7ff6, 0x7ff6, 0x7ff6, 0x7ff6, - 0x7ff6, 0x7ff5, 0x7ff5, 0x7ff5, 0x7ff5, 0x7ff5, 0x7ff5, 0x7ff4, - 0x7ff4, 0x7ff4, 0x7ff4, 0x7ff4, 0x7ff4, 0x7ff3, 0x7ff3, 0x7ff3, - 0x7ff3, 0x7ff3, 0x7ff3, 0x7ff2, 0x7ff2, 0x7ff2, 0x7ff2, 0x7ff2, - 0x7ff1, 0x7ff1, 0x7ff1, 0x7ff1, 0x7ff1, 0x7ff1, 0x7ff0, 0x7ff0, - 0x7ff0, 0x7ff0, 0x7ff0, 0x7fef, 0x7fef, 0x7fef, 0x7fef, 0x7fef, - 0x7fee, 0x7fee, 0x7fee, 0x7fee, 0x7fee, 0x7fed, 0x7fed, 0x7fed, - 0x7fed, 0x7fed, 0x7fec, 0x7fec, 0x7fec, 0x7fec, 0x7feb, 0x7feb, - 0x7feb, 0x7feb, 0x7feb, 0x7fea, 0x7fea, 0x7fea, 0x7fea, 0x7fe9, - 0x7fe9, 0x7fe9, 0x7fe9, 0x7fe8, 0x7fe8, 0x7fe8, 0x7fe8, 0x7fe8, - 0x7fe7, 0x7fe7, 0x7fe7, 0x7fe7, 0x7fe6, 0x7fe6, 0x7fe6, 0x7fe6, - 0x7fe5, 0x7fe5, 0x7fe5, 0x7fe5, 0x7fe4, 0x7fe4, 0x7fe4, 0x7fe4, - 0x7fe3, 0x7fe3, 0x7fe3, 0x7fe2, 0x7fe2, 0x7fe2, 0x7fe2, 0x7fe1, - 0x7fe1, 0x7fe1, 0x7fe1, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fdf, 0x7fdf, - 0x7fdf, 0x7fdf, 0x7fde, 0x7fde, 0x7fde, 0x7fde, 0x7fdd, 0x7fdd, - 0x7fdd, 0x7fdc, 0x7fdc, 0x7fdc, 0x7fdb, 0x7fdb, 0x7fdb, 0x7fdb, - 0x7fda, 0x7fda, 0x7fda, 0x7fd9, 0x7fd9, 0x7fd9, 0x7fd8, 0x7fd8, - 0x7fd8, 0x7fd8, 0x7fd7, 0x7fd7, 0x7fd7, 0x7fd6, 0x7fd6, 0x7fd6, - 0x7fd5, 0x7fd5, 0x7fd5, 0x7fd4, 0x7fd4, 0x7fd4, 0x7fd3, 0x7fd3, - 0x7fd3, 0x7fd2, 0x7fd2, 0x7fd2, 0x7fd1, 0x7fd1, 0x7fd1, 0x7fd0, - 0x7fd0, 0x7fd0, 0x7fcf, 0x7fcf, 0x7fcf, 0x7fce, 0x7fce, 0x7fce, - 0x7fcd, 0x7fcd, 0x7fcd, 0x7fcc, 0x7fcc, 0x7fcc, 0x7fcb, 0x7fcb, - 0x7fcb, 0x7fca, 0x7fca, 0x7fc9, 0x7fc9, 0x7fc9, 0x7fc8, 0x7fc8, - 0x7fc8, 0x7fc7, 0x7fc7, 0x7fc7, 0x7fc6, 0x7fc6, 0x7fc5, 0x7fc5, - 0x7fc5, 0x7fc4, 0x7fc4, 0x7fc4, 0x7fc3, 0x7fc3, 0x7fc2, 0x7fc2, - 0x7fc2, 0x7fc1, 0x7fc1, 0x7fc0, 0x7fc0, 0x7fc0, 0x7fbf, 0x7fbf, - 0x7fbf, 0x7fbe, 0x7fbe, 0x7fbd, 0x7fbd, 0x7fbd, 0x7fbc, 0x7fbc, - 0x7fbb, 0x7fbb, 0x7fbb, 0x7fba, 0x7fba, 0x7fb9, 0x7fb9, 0x7fb8, - 0x7fb8, 0x7fb8, 0x7fb7, 0x7fb7, 0x7fb6, 0x7fb6, 0x7fb6, 0x7fb5, - 0x7fb5, 0x7fb4, 0x7fb4, 0x7fb3, 0x7fb3, 0x7fb3, 0x7fb2, 0x7fb2, - 0x7fb1, 0x7fb1, 0x7fb0, 0x7fb0, 0x7faf, 0x7faf, 0x7faf, 0x7fae, - 0x7fae, 0x7fad, 0x7fad, 0x7fac, 0x7fac, 0x7fac, 0x7fab, 0x7fab, - 0x7faa, 0x7faa, 0x7fa9, 0x7fa9, 0x7fa8, 0x7fa8, 0x7fa7, 0x7fa7, - 0x7fa6, 0x7fa6, 0x7fa6, 0x7fa5, 0x7fa5, 0x7fa4, 0x7fa4, 0x7fa3, - 0x7fa3, 0x7fa2, 0x7fa2, 0x7fa1, 0x7fa1, 0x7fa0, 0x7fa0, 0x7f9f, - 0x7f9f, 0x7f9e, 0x7f9e, 0x7f9d, 0x7f9d, 0x7f9c, 0x7f9c, 0x7f9c, - 0x7f9b, 0x7f9b, 0x7f9a, 0x7f9a, 0x7f99, 0x7f99, 0x7f98, 0x7f98, - 0x7f97, 0x7f97, 0x7f96, 0x7f96, 0x7f95, 0x7f95, 0x7f94, 0x7f94, - 0x7f93, 0x7f92, 0x7f92, 0x7f91, 0x7f91, 0x7f90, 0x7f90, 0x7f8f, - 0x7f8f, 0x7f8e, 0x7f8e, 0x7f8d, 0x7f8d, 0x7f8c, 0x7f8c, 0x7f8b, - 0x7f8b, 0x7f8a, 0x7f8a, 0x7f89, 0x7f89, 0x7f88, 0x7f87, 0x7f87, - 0x7f86, 0x7f86, 0x7f85, 0x7f85, 0x7f84, 0x7f84, 0x7f83, 0x7f83, - 0x7f82, 0x7f81, 0x7f81, 0x7f80, 0x7f80, 0x7f7f, 0x7f7f, 0x7f7e, - 0x7f7e, 0x7f7d, 0x7f7c, 0x7f7c, 0x7f7b, 0x7f7b, 0x7f7a, 0x7f7a, - 0x7f79, 0x7f79, 0x7f78, 0x7f77, 0x7f77, 0x7f76, 0x7f76, 0x7f75, - 0x7f75, 0x7f74, 0x7f73, 0x7f73, 0x7f72, 0x7f72, 0x7f71, 0x7f70, - 0x7f70, 0x7f6f, 0x7f6f, 0x7f6e, 0x7f6d, 0x7f6d, 0x7f6c, 0x7f6c, - 0x7f6b, 0x7f6b, 0x7f6a, 0x7f69, 0x7f69, 0x7f68, 0x7f68, 0x7f67, - 0x7f66, 0x7f66, 0x7f65, 0x7f64, 0x7f64, 0x7f63, 0x7f63, 0x7f62, - 0x7f61, 0x7f61, 0x7f60, 0x7f60, 0x7f5f, 0x7f5e, 0x7f5e, 0x7f5d, - 0x7f5c, 0x7f5c, 0x7f5b, 0x7f5b, 0x7f5a, 0x7f59, 0x7f59, 0x7f58, - 0x7f57, 0x7f57, 0x7f56, 0x7f55, 0x7f55, 0x7f54, 0x7f54, 0x7f53, - 0x7f52, 0x7f52, 0x7f51, 0x7f50, 0x7f50, 0x7f4f, 0x7f4e, 0x7f4e, - 0x7f4d, 0x7f4c, 0x7f4c, 0x7f4b, 0x7f4a, 0x7f4a, 0x7f49, 0x7f48, - 0x7f48, 0x7f47, 0x7f46, 0x7f46, 0x7f45, 0x7f44, 0x7f44, 0x7f43, - 0x7f42, 0x7f42, 0x7f41, 0x7f40, 0x7f40, 0x7f3f, 0x7f3e, 0x7f3e, - 0x7f3d, 0x7f3c, 0x7f3c, 0x7f3b, 0x7f3a, 0x7f3a, 0x7f39, 0x7f38, - 0x7f37, 0x7f37, 0x7f36, 0x7f35, 0x7f35, 0x7f34, 0x7f33, 0x7f33, - 0x7f32, 0x7f31, 0x7f31, 0x7f30, 0x7f2f, 0x7f2e, 0x7f2e, 0x7f2d, - 0x7f2c, 0x7f2c, 0x7f2b, 0x7f2a, 0x7f29, 0x7f29, 0x7f28, 0x7f27, - 0x7f27, 0x7f26, 0x7f25, 0x7f24, 0x7f24, 0x7f23, 0x7f22, 0x7f21, - 0x7f21, 0x7f20, 0x7f1f, 0x7f1f, 0x7f1e, 0x7f1d, 0x7f1c, 0x7f1c, - 0x7f1b, 0x7f1a, 0x7f19, 0x7f19, 0x7f18, 0x7f17, 0x7f16, 0x7f16, - 0x7f15, 0x7f14, 0x7f13, 0x7f13, 0x7f12, 0x7f11, 0x7f10, 0x7f10, - 0x7f0f, 0x7f0e, 0x7f0d, 0x7f0d, 0x7f0c, 0x7f0b, 0x7f0a, 0x7f09, - 0x7f09, 0x7f08, 0x7f07, 0x7f06, 0x7f06, 0x7f05, 0x7f04, 0x7f03, - 0x7f02, 0x7f02, 0x7f01, 0x7f00, 0x7eff, 0x7eff, 0x7efe, 0x7efd, - 0x7efc, 0x7efb, 0x7efb, 0x7efa, 0x7ef9, 0x7ef8, 0x7ef7, 0x7ef7, - 0x7ef6, 0x7ef5, 0x7ef4, 0x7ef3, 0x7ef3, 0x7ef2, 0x7ef1, 0x7ef0, - 0x7eef, 0x7eef, 0x7eee, 0x7eed, 0x7eec, 0x7eeb, 0x7eeb, 0x7eea, - 0x7ee9, 0x7ee8, 0x7ee7, 0x7ee6, 0x7ee6, 0x7ee5, 0x7ee4, 0x7ee3, - 0x7ee2, 0x7ee2, 0x7ee1, 0x7ee0, 0x7edf, 0x7ede, 0x7edd, 0x7edd, - 0x7edc, 0x7edb, 0x7eda, 0x7ed9, 0x7ed8, 0x7ed8, 0x7ed7, 0x7ed6, - 0x7ed5, 0x7ed4, 0x7ed3, 0x7ed2, 0x7ed2, 0x7ed1, 0x7ed0, 0x7ecf, - 0x7ece, 0x7ecd, 0x7ecc, 0x7ecc, 0x7ecb, 0x7eca, 0x7ec9, 0x7ec8, - 0x7ec7, 0x7ec6, 0x7ec6, 0x7ec5, 0x7ec4, 0x7ec3, 0x7ec2, 0x7ec1, - 0x7ec0, 0x7ebf, 0x7ebf, 0x7ebe, 0x7ebd, 0x7ebc, 0x7ebb, 0x7eba, - 0x7eb9, 0x7eb8, 0x7eb8, 0x7eb7, 0x7eb6, 0x7eb5, 0x7eb4, 0x7eb3, - 0x7eb2, 0x7eb1, 0x7eb0, 0x7eaf, 0x7eaf, 0x7eae, 0x7ead, 0x7eac, - 0x7eab, 0x7eaa, 0x7ea9, 0x7ea8, 0x7ea7, 0x7ea6, 0x7ea6, 0x7ea5, - 0x7ea4, 0x7ea3, 0x7ea2, 0x7ea1, 0x7ea0, 0x7e9f, 0x7e9e, 0x7e9d, - 0x7e9c, 0x7e9b, 0x7e9b, 0x7e9a, 0x7e99, 0x7e98, 0x7e97, 0x7e96, - 0x7e95, 0x7e94, 0x7e93, 0x7e92, 0x7e91, 0x7e90, 0x7e8f, 0x7e8e, - 0x7e8d, 0x7e8d, 0x7e8c, 0x7e8b, 0x7e8a, 0x7e89, 0x7e88, 0x7e87, - 0x7e86, 0x7e85, 0x7e84, 0x7e83, 0x7e82, 0x7e81, 0x7e80, 0x7e7f, - 0x7e7e, 0x7e7d, 0x7e7c, 0x7e7b, 0x7e7a, 0x7e79, 0x7e78, 0x7e77, - 0x7e77, 0x7e76, 0x7e75, 0x7e74, 0x7e73, 0x7e72, 0x7e71, 0x7e70, - 0x7e6f, 0x7e6e, 0x7e6d, 0x7e6c, 0x7e6b, 0x7e6a, 0x7e69, 0x7e68, - 0x7e67, 0x7e66, 0x7e65, 0x7e64, 0x7e63, 0x7e62, 0x7e61, 0x7e60, - 0x7e5f, 0x7e5e, 0x7e5d, 0x7e5c, 0x7e5b, 0x7e5a, 0x7e59, 0x7e58, - 0x7e57, 0x7e56, 0x7e55, 0x7e54, 0x7e53, 0x7e52, 0x7e51, 0x7e50, - 0x7e4f, 0x7e4e, 0x7e4d, 0x7e4c, 0x7e4b, 0x7e4a, 0x7e49, 0x7e48, - 0x7e47, 0x7e46, 0x7e45, 0x7e43, 0x7e42, 0x7e41, 0x7e40, 0x7e3f, - 0x7e3e, 0x7e3d, 0x7e3c, 0x7e3b, 0x7e3a, 0x7e39, 0x7e38, 0x7e37, - 0x7e36, 0x7e35, 0x7e34, 0x7e33, 0x7e32, 0x7e31, 0x7e30, 0x7e2f, - 0x7e2e, 0x7e2d, 0x7e2b, 0x7e2a, 0x7e29, 0x7e28, 0x7e27, 0x7e26, - 0x7e25, 0x7e24, 0x7e23, 0x7e22, 0x7e21, 0x7e20, 0x7e1f, 0x7e1e, - 0x7e1d, 0x7e1b, 0x7e1a, 0x7e19, 0x7e18, 0x7e17, 0x7e16, 0x7e15, - 0x7e14, 0x7e13, 0x7e12, 0x7e11, 0x7e10, 0x7e0e, 0x7e0d, 0x7e0c, - 0x7e0b, 0x7e0a, 0x7e09, 0x7e08, 0x7e07, 0x7e06, 0x7e05, 0x7e04, - 0x7e02, 0x7e01, 0x7e00, 0x7dff, 0x7dfe, 0x7dfd, 0x7dfc, 0x7dfb, - 0x7dfa, 0x7df8, 0x7df7, 0x7df6, 0x7df5, 0x7df4, 0x7df3, 0x7df2, - 0x7df1, 0x7def, 0x7dee, 0x7ded, 0x7dec, 0x7deb, 0x7dea, 0x7de9, - 0x7de8, 0x7de6, 0x7de5, 0x7de4, 0x7de3, 0x7de2, 0x7de1, 0x7de0, - 0x7dde, 0x7ddd, 0x7ddc, 0x7ddb, 0x7dda, 0x7dd9, 0x7dd8, 0x7dd6, - 0x7dd5, 0x7dd4, 0x7dd3, 0x7dd2, 0x7dd1, 0x7dd0, 0x7dce, 0x7dcd, - 0x7dcc, 0x7dcb, 0x7dca, 0x7dc9, 0x7dc7, 0x7dc6, 0x7dc5, 0x7dc4, - 0x7dc3, 0x7dc2, 0x7dc0, 0x7dbf, 0x7dbe, 0x7dbd, 0x7dbc, 0x7dbb, - 0x7db9, 0x7db8, 0x7db7, 0x7db6, 0x7db5, 0x7db3, 0x7db2, 0x7db1, - 0x7db0, 0x7daf, 0x7dae, 0x7dac, 0x7dab, 0x7daa, 0x7da9, 0x7da8, - 0x7da6, 0x7da5, 0x7da4, 0x7da3, 0x7da2, 0x7da0, 0x7d9f, 0x7d9e, - 0x7d9d, 0x7d9c, 0x7d9a, 0x7d99, 0x7d98, 0x7d97, 0x7d95, 0x7d94, - 0x7d93, 0x7d92, 0x7d91, 0x7d8f, 0x7d8e, 0x7d8d, 0x7d8c, 0x7d8a, - 0x7d89, 0x7d88, 0x7d87, 0x7d86, 0x7d84, 0x7d83, 0x7d82, 0x7d81, - 0x7d7f, 0x7d7e, 0x7d7d, 0x7d7c, 0x7d7a, 0x7d79, 0x7d78, 0x7d77, - 0x7d75, 0x7d74, 0x7d73, 0x7d72, 0x7d70, 0x7d6f, 0x7d6e, 0x7d6d, - 0x7d6b, 0x7d6a, 0x7d69, 0x7d68, 0x7d66, 0x7d65, 0x7d64, 0x7d63, - 0x7d61, 0x7d60, 0x7d5f, 0x7d5e, 0x7d5c, 0x7d5b, 0x7d5a, 0x7d59, - 0x7d57, 0x7d56, 0x7d55, 0x7d53, 0x7d52, 0x7d51, 0x7d50, 0x7d4e, - 0x7d4d, 0x7d4c, 0x7d4a, 0x7d49, 0x7d48, 0x7d47, 0x7d45, 0x7d44, - 0x7d43, 0x7d41, 0x7d40, 0x7d3f, 0x7d3e, 0x7d3c, 0x7d3b, 0x7d3a, - 0x7d38, 0x7d37, 0x7d36, 0x7d34, 0x7d33, 0x7d32, 0x7d31, 0x7d2f, - 0x7d2e, 0x7d2d, 0x7d2b, 0x7d2a, 0x7d29, 0x7d27, 0x7d26, 0x7d25, - 0x7d23, 0x7d22, 0x7d21, 0x7d1f, 0x7d1e, 0x7d1d, 0x7d1b, 0x7d1a, - 0x7d19, 0x7d17, 0x7d16, 0x7d15, 0x7d13, 0x7d12, 0x7d11, 0x7d0f, - 0x7d0e, 0x7d0d, 0x7d0b, 0x7d0a, 0x7d09, 0x7d07, 0x7d06, 0x7d05, - 0x7d03, 0x7d02, 0x7d01, 0x7cff, 0x7cfe, 0x7cfd, 0x7cfb, 0x7cfa, - 0x7cf9, 0x7cf7, 0x7cf6, 0x7cf4, 0x7cf3, 0x7cf2, 0x7cf0, 0x7cef, - 0x7cee, 0x7cec, 0x7ceb, 0x7ce9, 0x7ce8, 0x7ce7, 0x7ce5, 0x7ce4, - 0x7ce3, 0x7ce1, 0x7ce0, 0x7cde, 0x7cdd, 0x7cdc, 0x7cda, 0x7cd9, - 0x7cd8, 0x7cd6, 0x7cd5, 0x7cd3, 0x7cd2, 0x7cd1, 0x7ccf, 0x7cce, - 0x7ccc, 0x7ccb, 0x7cca, 0x7cc8, 0x7cc7, 0x7cc5, 0x7cc4, 0x7cc3, - 0x7cc1, 0x7cc0, 0x7cbe, 0x7cbd, 0x7cbc, 0x7cba, 0x7cb9, 0x7cb7, - 0x7cb6, 0x7cb5, 0x7cb3, 0x7cb2, 0x7cb0, 0x7caf, 0x7cad, 0x7cac, - 0x7cab, 0x7ca9, 0x7ca8, 0x7ca6, 0x7ca5, 0x7ca3, 0x7ca2, 0x7ca1, - 0x7c9f, 0x7c9e, 0x7c9c, 0x7c9b, 0x7c99, 0x7c98, 0x7c97, 0x7c95, - 0x7c94, 0x7c92, 0x7c91, 0x7c8f, 0x7c8e, 0x7c8c, 0x7c8b, 0x7c8a, - 0x7c88, 0x7c87, 0x7c85, 0x7c84, 0x7c82, 0x7c81, 0x7c7f, 0x7c7e, - 0x7c7c, 0x7c7b, 0x7c79, 0x7c78, 0x7c77, 0x7c75, 0x7c74, 0x7c72, - 0x7c71, 0x7c6f, 0x7c6e, 0x7c6c, 0x7c6b, 0x7c69, 0x7c68, 0x7c66, - 0x7c65, 0x7c63, 0x7c62, 0x7c60, 0x7c5f, 0x7c5d, 0x7c5c, 0x7c5a, - 0x7c59, 0x7c58, 0x7c56, 0x7c55, 0x7c53, 0x7c52, 0x7c50, 0x7c4f, - 0x7c4d, 0x7c4c, 0x7c4a, 0x7c49, 0x7c47, 0x7c46, 0x7c44, 0x7c43, - 0x7c41, 0x7c3f, 0x7c3e, 0x7c3c, 0x7c3b, 0x7c39, 0x7c38, 0x7c36, - 0x7c35, 0x7c33, 0x7c32, 0x7c30, 0x7c2f, 0x7c2d, 0x7c2c, 0x7c2a, - 0x7c29, 0x7c27, 0x7c26, 0x7c24, 0x7c23, 0x7c21, 0x7c20, 0x7c1e, - 0x7c1c, 0x7c1b, 0x7c19, 0x7c18, 0x7c16, 0x7c15, 0x7c13, 0x7c12, - 0x7c10, 0x7c0f, 0x7c0d, 0x7c0b, 0x7c0a, 0x7c08, 0x7c07, 0x7c05, - 0x7c04, 0x7c02, 0x7c01, 0x7bff, 0x7bfd, 0x7bfc, 0x7bfa, 0x7bf9, - 0x7bf7, 0x7bf6, 0x7bf4, 0x7bf3, 0x7bf1, 0x7bef, 0x7bee, 0x7bec, - 0x7beb, 0x7be9, 0x7be8, 0x7be6, 0x7be4, 0x7be3, 0x7be1, 0x7be0, - 0x7bde, 0x7bdc, 0x7bdb, 0x7bd9, 0x7bd8, 0x7bd6, 0x7bd5, 0x7bd3, - 0x7bd1, 0x7bd0, 0x7bce, 0x7bcd, 0x7bcb, 0x7bc9, 0x7bc8, 0x7bc6, - 0x7bc5, 0x7bc3, 0x7bc1, 0x7bc0, 0x7bbe, 0x7bbd, 0x7bbb, 0x7bb9, - 0x7bb8, 0x7bb6, 0x7bb5, 0x7bb3, 0x7bb1, 0x7bb0, 0x7bae, 0x7bac, - 0x7bab, 0x7ba9, 0x7ba8, 0x7ba6, 0x7ba4, 0x7ba3, 0x7ba1, 0x7b9f, - 0x7b9e, 0x7b9c, 0x7b9b, 0x7b99, 0x7b97, 0x7b96, 0x7b94, 0x7b92, - 0x7b91, 0x7b8f, 0x7b8d, 0x7b8c, 0x7b8a, 0x7b89, 0x7b87, 0x7b85, - 0x7b84, 0x7b82, 0x7b80, 0x7b7f, 0x7b7d, 0x7b7b, 0x7b7a, 0x7b78, - 0x7b76, 0x7b75, 0x7b73, 0x7b71, 0x7b70, 0x7b6e, 0x7b6c, 0x7b6b, - 0x7b69, 0x7b67, 0x7b66, 0x7b64, 0x7b62, 0x7b61, 0x7b5f, 0x7b5d, - 0x7b5c, 0x7b5a, 0x7b58, 0x7b57, 0x7b55, 0x7b53, 0x7b52, 0x7b50, - 0x7b4e, 0x7b4d, 0x7b4b, 0x7b49, 0x7b47, 0x7b46, 0x7b44, 0x7b42, - 0x7b41, 0x7b3f, 0x7b3d, 0x7b3c, 0x7b3a, 0x7b38, 0x7b37, 0x7b35, - 0x7b33, 0x7b31, 0x7b30, 0x7b2e, 0x7b2c, 0x7b2b, 0x7b29, 0x7b27, - 0x7b25, 0x7b24, 0x7b22, 0x7b20, 0x7b1f, 0x7b1d, 0x7b1b, 0x7b19, - 0x7b18, 0x7b16, 0x7b14, 0x7b13, 0x7b11, 0x7b0f, 0x7b0d, 0x7b0c, - 0x7b0a, 0x7b08, 0x7b06, 0x7b05, 0x7b03, 0x7b01, 0x7aff, 0x7afe, - 0x7afc, 0x7afa, 0x7af8, 0x7af7, 0x7af5, 0x7af3, 0x7af2, 0x7af0, - 0x7aee, 0x7aec, 0x7aeb, 0x7ae9, 0x7ae7, 0x7ae5, 0x7ae3, 0x7ae2, - 0x7ae0, 0x7ade, 0x7adc, 0x7adb, 0x7ad9, 0x7ad7, 0x7ad5, 0x7ad4, - 0x7ad2, 0x7ad0, 0x7ace, 0x7acd, 0x7acb, 0x7ac9, 0x7ac7, 0x7ac5, - 0x7ac4, 0x7ac2, 0x7ac0, 0x7abe, 0x7abd, 0x7abb, 0x7ab9, 0x7ab7, - 0x7ab5, 0x7ab4, 0x7ab2, 0x7ab0, 0x7aae, 0x7aac, 0x7aab, 0x7aa9, - 0x7aa7, 0x7aa5, 0x7aa3, 0x7aa2, 0x7aa0, 0x7a9e, 0x7a9c, 0x7a9a, - 0x7a99, 0x7a97, 0x7a95, 0x7a93, 0x7a91, 0x7a90, 0x7a8e, 0x7a8c, - 0x7a8a, 0x7a88, 0x7a87, 0x7a85, 0x7a83, 0x7a81, 0x7a7f, 0x7a7d, - 0x7a7c, 0x7a7a, 0x7a78, 0x7a76, 0x7a74, 0x7a72, 0x7a71, 0x7a6f, - 0x7a6d, 0x7a6b, 0x7a69, 0x7a67, 0x7a66, 0x7a64, 0x7a62, 0x7a60, - 0x7a5e, 0x7a5c, 0x7a5b, 0x7a59, 0x7a57, 0x7a55, 0x7a53, 0x7a51, - 0x7a4f, 0x7a4e, 0x7a4c, 0x7a4a, 0x7a48, 0x7a46, 0x7a44, 0x7a42, - 0x7a41, 0x7a3f, 0x7a3d, 0x7a3b, 0x7a39, 0x7a37, 0x7a35, 0x7a34, - 0x7a32, 0x7a30, 0x7a2e, 0x7a2c, 0x7a2a, 0x7a28, 0x7a26, 0x7a25, - 0x7a23, 0x7a21, 0x7a1f, 0x7a1d, 0x7a1b, 0x7a19, 0x7a17, 0x7a16, - 0x7a14, 0x7a12, 0x7a10, 0x7a0e, 0x7a0c, 0x7a0a, 0x7a08, 0x7a06, - 0x7a04, 0x7a03, 0x7a01, 0x79ff, 0x79fd, 0x79fb, 0x79f9, 0x79f7, - 0x79f5, 0x79f3, 0x79f1, 0x79f0, 0x79ee, 0x79ec, 0x79ea, 0x79e8, - 0x79e6, 0x79e4, 0x79e2, 0x79e0, 0x79de, 0x79dc, 0x79da, 0x79d9, - 0x79d7, 0x79d5, 0x79d3, 0x79d1, 0x79cf, 0x79cd, 0x79cb, 0x79c9, - 0x79c7, 0x79c5, 0x79c3, 0x79c1, 0x79bf, 0x79bd, 0x79bc, 0x79ba, - 0x79b8, 0x79b6, 0x79b4, 0x79b2, 0x79b0, 0x79ae, 0x79ac, 0x79aa, - 0x79a8, 0x79a6, 0x79a4, 0x79a2, 0x79a0, 0x799e, 0x799c, 0x799a, - 0x7998, 0x7996, 0x7994, 0x7992, 0x7991, 0x798f, 0x798d, 0x798b, - 0x7989, 0x7987, 0x7985, 0x7983, 0x7981, 0x797f, 0x797d, 0x797b, - 0x7979, 0x7977, 0x7975, 0x7973, 0x7971, 0x796f, 0x796d, 0x796b, - 0x7969, 0x7967, 0x7965, 0x7963, 0x7961, 0x795f, 0x795d, 0x795b, - 0x7959, 0x7957, 0x7955, 0x7953, 0x7951, 0x794f, 0x794d, 0x794b, - 0x7949, 0x7947, 0x7945, 0x7943, 0x7941, 0x793f, 0x793d, 0x793b, - 0x7939, 0x7937, 0x7935, 0x7933, 0x7931, 0x792f, 0x792d, 0x792b, - 0x7929, 0x7927, 0x7925, 0x7923, 0x7921, 0x791f, 0x791d, 0x791a, - 0x7918, 0x7916, 0x7914, 0x7912, 0x7910, 0x790e, 0x790c, 0x790a, - 0x7908, 0x7906, 0x7904, 0x7902, 0x7900, 0x78fe, 0x78fc, 0x78fa, - 0x78f8, 0x78f6, 0x78f4, 0x78f2, 0x78f0, 0x78ed, 0x78eb, 0x78e9, - 0x78e7, 0x78e5, 0x78e3, 0x78e1, 0x78df, 0x78dd, 0x78db, 0x78d9, - 0x78d7, 0x78d5, 0x78d3, 0x78d1, 0x78ce, 0x78cc, 0x78ca, 0x78c8, - 0x78c6, 0x78c4, 0x78c2, 0x78c0, 0x78be, 0x78bc, 0x78ba, 0x78b8, - 0x78b5, 0x78b3, 0x78b1, 0x78af, 0x78ad, 0x78ab, 0x78a9, 0x78a7, - 0x78a5, 0x78a3, 0x78a0, 0x789e, 0x789c, 0x789a, 0x7898, 0x7896, - 0x7894, 0x7892, 0x7890, 0x788e, 0x788b, 0x7889, 0x7887, 0x7885, - 0x7883, 0x7881, 0x787f, 0x787d, 0x787a, 0x7878, 0x7876, 0x7874, - 0x7872, 0x7870, 0x786e, 0x786c, 0x7869, 0x7867, 0x7865, 0x7863, - 0x7861, 0x785f, 0x785d, 0x785b, 0x7858, 0x7856, 0x7854, 0x7852, - 0x7850, 0x784e, 0x784c, 0x7849, 0x7847, 0x7845, 0x7843, 0x7841, - 0x783f, 0x783c, 0x783a, 0x7838, 0x7836, 0x7834, 0x7832, 0x7830, - 0x782d, 0x782b, 0x7829, 0x7827, 0x7825, 0x7823, 0x7820, 0x781e, - 0x781c, 0x781a, 0x7818, 0x7816, 0x7813, 0x7811, 0x780f, 0x780d, - 0x780b, 0x7808, 0x7806, 0x7804, 0x7802, 0x7800, 0x77fe, 0x77fb, - 0x77f9, 0x77f7, 0x77f5, 0x77f3, 0x77f0, 0x77ee, 0x77ec, 0x77ea, - 0x77e8, 0x77e5, 0x77e3, 0x77e1, 0x77df, 0x77dd, 0x77da, 0x77d8, - 0x77d6, 0x77d4, 0x77d2, 0x77cf, 0x77cd, 0x77cb, 0x77c9, 0x77c6, - 0x77c4, 0x77c2, 0x77c0, 0x77be, 0x77bb, 0x77b9, 0x77b7, 0x77b5, - 0x77b2, 0x77b0, 0x77ae, 0x77ac, 0x77aa, 0x77a7, 0x77a5, 0x77a3, - 0x77a1, 0x779e, 0x779c, 0x779a, 0x7798, 0x7795, 0x7793, 0x7791, - 0x778f, 0x778c, 0x778a, 0x7788, 0x7786, 0x7783, 0x7781, 0x777f, - 0x777d, 0x777a, 0x7778, 0x7776, 0x7774, 0x7771, 0x776f, 0x776d, - 0x776b, 0x7768, 0x7766, 0x7764, 0x7762, 0x775f, 0x775d, 0x775b, - 0x7759, 0x7756, 0x7754, 0x7752, 0x774f, 0x774d, 0x774b, 0x7749, - 0x7746, 0x7744, 0x7742, 0x773f, 0x773d, 0x773b, 0x7739, 0x7736, - 0x7734, 0x7732, 0x772f, 0x772d, 0x772b, 0x7729, 0x7726, 0x7724, - 0x7722, 0x771f, 0x771d, 0x771b, 0x7719, 0x7716, 0x7714, 0x7712, - 0x770f, 0x770d, 0x770b, 0x7708, 0x7706, 0x7704, 0x7701, 0x76ff, - 0x76fd, 0x76fa, 0x76f8, 0x76f6, 0x76f4, 0x76f1, 0x76ef, 0x76ed, - 0x76ea, 0x76e8, 0x76e6, 0x76e3, 0x76e1, 0x76df, 0x76dc, 0x76da, - 0x76d8, 0x76d5, 0x76d3, 0x76d1, 0x76ce, 0x76cc, 0x76ca, 0x76c7, - 0x76c5, 0x76c3, 0x76c0, 0x76be, 0x76bc, 0x76b9, 0x76b7, 0x76b4, - 0x76b2, 0x76b0, 0x76ad, 0x76ab, 0x76a9, 0x76a6, 0x76a4, 0x76a2, - 0x769f, 0x769d, 0x769b, 0x7698, 0x7696, 0x7693, 0x7691, 0x768f, - 0x768c, 0x768a, 0x7688, 0x7685, 0x7683, 0x7681, 0x767e, 0x767c, - 0x7679, 0x7677, 0x7675, 0x7672, 0x7670, 0x766d, 0x766b, 0x7669, - 0x7666, 0x7664, 0x7662, 0x765f, 0x765d, 0x765a, 0x7658, 0x7656, - 0x7653, 0x7651, 0x764e, 0x764c, 0x764a, 0x7647, 0x7645, 0x7642, - 0x7640, 0x763e, 0x763b, 0x7639, 0x7636, 0x7634, 0x7632, 0x762f, - 0x762d, 0x762a, 0x7628, 0x7625, 0x7623, 0x7621, 0x761e, 0x761c, - 0x7619, 0x7617, 0x7615, 0x7612, 0x7610, 0x760d, 0x760b, 0x7608, - 0x7606, 0x7604, 0x7601, 0x75ff, 0x75fc, 0x75fa, 0x75f7, 0x75f5, - 0x75f2, 0x75f0, 0x75ee, 0x75eb, 0x75e9, 0x75e6, 0x75e4, 0x75e1, - 0x75df, 0x75dc, 0x75da, 0x75d8, 0x75d5, 0x75d3, 0x75d0, 0x75ce, - 0x75cb, 0x75c9, 0x75c6, 0x75c4, 0x75c1, 0x75bf, 0x75bc, 0x75ba, - 0x75b8, 0x75b5, 0x75b3, 0x75b0, 0x75ae, 0x75ab, 0x75a9, 0x75a6, - 0x75a4, 0x75a1, 0x759f, 0x759c, 0x759a, 0x7597, 0x7595, 0x7592, - 0x7590, 0x758d, 0x758b, 0x7588, 0x7586, 0x7584, 0x7581, 0x757f, - 0x757c, 0x757a, 0x7577, 0x7575, 0x7572, 0x7570, 0x756d, 0x756b, - 0x7568, 0x7566, 0x7563, 0x7561, 0x755e, 0x755c, 0x7559, 0x7556, - 0x7554, 0x7551, 0x754f, 0x754c, 0x754a, 0x7547, 0x7545, 0x7542, - 0x7540, 0x753d, 0x753b, 0x7538, 0x7536, 0x7533, 0x7531, 0x752e, - 0x752c, 0x7529, 0x7527, 0x7524, 0x7522, 0x751f, 0x751c, 0x751a, - 0x7517, 0x7515, 0x7512, 0x7510, 0x750d, 0x750b, 0x7508, 0x7506, - 0x7503, 0x7501, 0x74fe, 0x74fb, 0x74f9, 0x74f6, 0x74f4, 0x74f1, - 0x74ef, 0x74ec, 0x74ea, 0x74e7, 0x74e4, 0x74e2, 0x74df, 0x74dd, - 0x74da, 0x74d8, 0x74d5, 0x74d2, 0x74d0, 0x74cd, 0x74cb, 0x74c8, - 0x74c6, 0x74c3, 0x74c0, 0x74be, 0x74bb, 0x74b9, 0x74b6, 0x74b4, - 0x74b1, 0x74ae, 0x74ac, 0x74a9, 0x74a7, 0x74a4, 0x74a1, 0x749f, - 0x749c, 0x749a, 0x7497, 0x7495, 0x7492, 0x748f, 0x748d, 0x748a, - 0x7488, 0x7485, 0x7482, 0x7480, 0x747d, 0x747b, 0x7478, 0x7475, - 0x7473, 0x7470, 0x746d, 0x746b, 0x7468, 0x7466, 0x7463, 0x7460, - 0x745e, 0x745b, 0x7459, 0x7456, 0x7453, 0x7451, 0x744e, 0x744b, - 0x7449, 0x7446, 0x7444, 0x7441, 0x743e, 0x743c, 0x7439, 0x7436, - 0x7434, 0x7431, 0x742f, 0x742c, 0x7429, 0x7427, 0x7424, 0x7421, - 0x741f, 0x741c, 0x7419, 0x7417, 0x7414, 0x7411, 0x740f, 0x740c, - 0x740a, 0x7407, 0x7404, 0x7402, 0x73ff, 0x73fc, 0x73fa, 0x73f7, - 0x73f4, 0x73f2, 0x73ef, 0x73ec, 0x73ea, 0x73e7, 0x73e4, 0x73e2, - 0x73df, 0x73dc, 0x73da, 0x73d7, 0x73d4, 0x73d2, 0x73cf, 0x73cc, - 0x73ca, 0x73c7, 0x73c4, 0x73c1, 0x73bf, 0x73bc, 0x73b9, 0x73b7, - 0x73b4, 0x73b1, 0x73af, 0x73ac, 0x73a9, 0x73a7, 0x73a4, 0x73a1, - 0x739f, 0x739c, 0x7399, 0x7396, 0x7394, 0x7391, 0x738e, 0x738c, - 0x7389, 0x7386, 0x7384, 0x7381, 0x737e, 0x737b, 0x7379, 0x7376, - 0x7373, 0x7371, 0x736e, 0x736b, 0x7368, 0x7366, 0x7363, 0x7360, - 0x735e, 0x735b, 0x7358, 0x7355, 0x7353, 0x7350, 0x734d, 0x734a, - 0x7348, 0x7345, 0x7342, 0x7340, 0x733d, 0x733a, 0x7337, 0x7335, - 0x7332, 0x732f, 0x732c, 0x732a, 0x7327, 0x7324, 0x7321, 0x731f, - 0x731c, 0x7319, 0x7316, 0x7314, 0x7311, 0x730e, 0x730b, 0x7309, - 0x7306, 0x7303, 0x7300, 0x72fe, 0x72fb, 0x72f8, 0x72f5, 0x72f3, - 0x72f0, 0x72ed, 0x72ea, 0x72e8, 0x72e5, 0x72e2, 0x72df, 0x72dc, - 0x72da, 0x72d7, 0x72d4, 0x72d1, 0x72cf, 0x72cc, 0x72c9, 0x72c6, - 0x72c3, 0x72c1, 0x72be, 0x72bb, 0x72b8, 0x72b5, 0x72b3, 0x72b0, - 0x72ad, 0x72aa, 0x72a8, 0x72a5, 0x72a2, 0x729f, 0x729c, 0x729a, - 0x7297, 0x7294, 0x7291, 0x728e, 0x728c, 0x7289, 0x7286, 0x7283, - 0x7280, 0x727e, 0x727b, 0x7278, 0x7275, 0x7272, 0x726f, 0x726d, - 0x726a, 0x7267, 0x7264, 0x7261, 0x725f, 0x725c, 0x7259, 0x7256, - 0x7253, 0x7250, 0x724e, 0x724b, 0x7248, 0x7245, 0x7242, 0x723f, - 0x723d, 0x723a, 0x7237, 0x7234, 0x7231, 0x722e, 0x722c, 0x7229, - 0x7226, 0x7223, 0x7220, 0x721d, 0x721b, 0x7218, 0x7215, 0x7212, - 0x720f, 0x720c, 0x7209, 0x7207, 0x7204, 0x7201, 0x71fe, 0x71fb, - 0x71f8, 0x71f5, 0x71f3, 0x71f0, 0x71ed, 0x71ea, 0x71e7, 0x71e4, - 0x71e1, 0x71df, 0x71dc, 0x71d9, 0x71d6, 0x71d3, 0x71d0, 0x71cd, - 0x71ca, 0x71c8, 0x71c5, 0x71c2, 0x71bf, 0x71bc, 0x71b9, 0x71b6, - 0x71b3, 0x71b0, 0x71ae, 0x71ab, 0x71a8, 0x71a5, 0x71a2, 0x719f, - 0x719c, 0x7199, 0x7196, 0x7194, 0x7191, 0x718e, 0x718b, 0x7188, - 0x7185, 0x7182, 0x717f, 0x717c, 0x7179, 0x7177, 0x7174, 0x7171, - 0x716e, 0x716b, 0x7168, 0x7165, 0x7162, 0x715f, 0x715c, 0x7159, - 0x7156, 0x7154, 0x7151, 0x714e, 0x714b, 0x7148, 0x7145, 0x7142, - 0x713f, 0x713c, 0x7139, 0x7136, 0x7133, 0x7130, 0x712d, 0x712b, - 0x7128, 0x7125, 0x7122, 0x711f, 0x711c, 0x7119, 0x7116, 0x7113, - 0x7110, 0x710d, 0x710a, 0x7107, 0x7104, 0x7101, 0x70fe, 0x70fb, - 0x70f8, 0x70f6, 0x70f3, 0x70f0, 0x70ed, 0x70ea, 0x70e7, 0x70e4, - 0x70e1, 0x70de, 0x70db, 0x70d8, 0x70d5, 0x70d2, 0x70cf, 0x70cc, - 0x70c9, 0x70c6, 0x70c3, 0x70c0, 0x70bd, 0x70ba, 0x70b7, 0x70b4, - 0x70b1, 0x70ae, 0x70ab, 0x70a8, 0x70a5, 0x70a2, 0x709f, 0x709c, - 0x7099, 0x7096, 0x7093, 0x7090, 0x708d, 0x708a, 0x7087, 0x7084, - 0x7081, 0x707e, 0x707b, 0x7078, 0x7075, 0x7072, 0x706f, 0x706c, - 0x7069, 0x7066, 0x7063, 0x7060, 0x705d, 0x705a, 0x7057, 0x7054, - 0x7051, 0x704e, 0x704b, 0x7048, 0x7045, 0x7042, 0x703f, 0x703c, - 0x7039, 0x7036, 0x7033, 0x7030, 0x702d, 0x702a, 0x7027, 0x7024, - 0x7021, 0x701e, 0x701b, 0x7018, 0x7015, 0x7012, 0x700f, 0x700c, - 0x7009, 0x7006, 0x7003, 0x7000, 0x6ffd, 0x6ffa, 0x6ff7, 0x6ff3, - 0x6ff0, 0x6fed, 0x6fea, 0x6fe7, 0x6fe4, 0x6fe1, 0x6fde, 0x6fdb, - 0x6fd8, 0x6fd5, 0x6fd2, 0x6fcf, 0x6fcc, 0x6fc9, 0x6fc6, 0x6fc3, - 0x6fc0, 0x6fbc, 0x6fb9, 0x6fb6, 0x6fb3, 0x6fb0, 0x6fad, 0x6faa, - 0x6fa7, 0x6fa4, 0x6fa1, 0x6f9e, 0x6f9b, 0x6f98, 0x6f95, 0x6f91, - 0x6f8e, 0x6f8b, 0x6f88, 0x6f85, 0x6f82, 0x6f7f, 0x6f7c, 0x6f79, - 0x6f76, 0x6f73, 0x6f70, 0x6f6c, 0x6f69, 0x6f66, 0x6f63, 0x6f60, - 0x6f5d, 0x6f5a, 0x6f57, 0x6f54, 0x6f51, 0x6f4d, 0x6f4a, 0x6f47, - 0x6f44, 0x6f41, 0x6f3e, 0x6f3b, 0x6f38, 0x6f35, 0x6f31, 0x6f2e, - 0x6f2b, 0x6f28, 0x6f25, 0x6f22, 0x6f1f, 0x6f1c, 0x6f19, 0x6f15, - 0x6f12, 0x6f0f, 0x6f0c, 0x6f09, 0x6f06, 0x6f03, 0x6f00, 0x6efc, - 0x6ef9, 0x6ef6, 0x6ef3, 0x6ef0, 0x6eed, 0x6eea, 0x6ee7, 0x6ee3, - 0x6ee0, 0x6edd, 0x6eda, 0x6ed7, 0x6ed4, 0x6ed1, 0x6ecd, 0x6eca, - 0x6ec7, 0x6ec4, 0x6ec1, 0x6ebe, 0x6eba, 0x6eb7, 0x6eb4, 0x6eb1, - 0x6eae, 0x6eab, 0x6ea8, 0x6ea4, 0x6ea1, 0x6e9e, 0x6e9b, 0x6e98, - 0x6e95, 0x6e91, 0x6e8e, 0x6e8b, 0x6e88, 0x6e85, 0x6e82, 0x6e7e, - 0x6e7b, 0x6e78, 0x6e75, 0x6e72, 0x6e6f, 0x6e6b, 0x6e68, 0x6e65, - 0x6e62, 0x6e5f, 0x6e5b, 0x6e58, 0x6e55, 0x6e52, 0x6e4f, 0x6e4c, - 0x6e48, 0x6e45, 0x6e42, 0x6e3f, 0x6e3c, 0x6e38, 0x6e35, 0x6e32, - 0x6e2f, 0x6e2c, 0x6e28, 0x6e25, 0x6e22, 0x6e1f, 0x6e1c, 0x6e18, - 0x6e15, 0x6e12, 0x6e0f, 0x6e0c, 0x6e08, 0x6e05, 0x6e02, 0x6dff, - 0x6dfb, 0x6df8, 0x6df5, 0x6df2, 0x6def, 0x6deb, 0x6de8, 0x6de5, - 0x6de2, 0x6ddf, 0x6ddb, 0x6dd8, 0x6dd5, 0x6dd2, 0x6dce, 0x6dcb, - 0x6dc8, 0x6dc5, 0x6dc1, 0x6dbe, 0x6dbb, 0x6db8, 0x6db5, 0x6db1, - 0x6dae, 0x6dab, 0x6da8, 0x6da4, 0x6da1, 0x6d9e, 0x6d9b, 0x6d97, - 0x6d94, 0x6d91, 0x6d8e, 0x6d8a, 0x6d87, 0x6d84, 0x6d81, 0x6d7d, - 0x6d7a, 0x6d77, 0x6d74, 0x6d70, 0x6d6d, 0x6d6a, 0x6d67, 0x6d63, - 0x6d60, 0x6d5d, 0x6d59, 0x6d56, 0x6d53, 0x6d50, 0x6d4c, 0x6d49, - 0x6d46, 0x6d43, 0x6d3f, 0x6d3c, 0x6d39, 0x6d36, 0x6d32, 0x6d2f, - 0x6d2c, 0x6d28, 0x6d25, 0x6d22, 0x6d1f, 0x6d1b, 0x6d18, 0x6d15, - 0x6d11, 0x6d0e, 0x6d0b, 0x6d08, 0x6d04, 0x6d01, 0x6cfe, 0x6cfa, - 0x6cf7, 0x6cf4, 0x6cf0, 0x6ced, 0x6cea, 0x6ce7, 0x6ce3, 0x6ce0, - 0x6cdd, 0x6cd9, 0x6cd6, 0x6cd3, 0x6ccf, 0x6ccc, 0x6cc9, 0x6cc5, - 0x6cc2, 0x6cbf, 0x6cbc, 0x6cb8, 0x6cb5, 0x6cb2, 0x6cae, 0x6cab, - 0x6ca8, 0x6ca4, 0x6ca1, 0x6c9e, 0x6c9a, 0x6c97, 0x6c94, 0x6c90, - 0x6c8d, 0x6c8a, 0x6c86, 0x6c83, 0x6c80, 0x6c7c, 0x6c79, 0x6c76, - 0x6c72, 0x6c6f, 0x6c6c, 0x6c68, 0x6c65, 0x6c62, 0x6c5e, 0x6c5b, - 0x6c58, 0x6c54, 0x6c51, 0x6c4e, 0x6c4a, 0x6c47, 0x6c44, 0x6c40, - 0x6c3d, 0x6c39, 0x6c36, 0x6c33, 0x6c2f, 0x6c2c, 0x6c29, 0x6c25, - 0x6c22, 0x6c1f, 0x6c1b, 0x6c18, 0x6c15, 0x6c11, 0x6c0e, 0x6c0a, - 0x6c07, 0x6c04, 0x6c00, 0x6bfd, 0x6bfa, 0x6bf6, 0x6bf3, 0x6bef, - 0x6bec, 0x6be9, 0x6be5, 0x6be2, 0x6bdf, 0x6bdb, 0x6bd8, 0x6bd4, - 0x6bd1, 0x6bce, 0x6bca, 0x6bc7, 0x6bc3, 0x6bc0, 0x6bbd, 0x6bb9, - 0x6bb6, 0x6bb2, 0x6baf, 0x6bac, 0x6ba8, 0x6ba5, 0x6ba1, 0x6b9e, - 0x6b9b, 0x6b97, 0x6b94, 0x6b90, 0x6b8d, 0x6b8a, 0x6b86, 0x6b83, - 0x6b7f, 0x6b7c, 0x6b79, 0x6b75, 0x6b72, 0x6b6e, 0x6b6b, 0x6b68, - 0x6b64, 0x6b61, 0x6b5d, 0x6b5a, 0x6b56, 0x6b53, 0x6b50, 0x6b4c, - 0x6b49, 0x6b45, 0x6b42, 0x6b3e, 0x6b3b, 0x6b38, 0x6b34, 0x6b31, - 0x6b2d, 0x6b2a, 0x6b26, 0x6b23, 0x6b20, 0x6b1c, 0x6b19, 0x6b15, - 0x6b12, 0x6b0e, 0x6b0b, 0x6b07, 0x6b04, 0x6b01, 0x6afd, 0x6afa, - 0x6af6, 0x6af3, 0x6aef, 0x6aec, 0x6ae8, 0x6ae5, 0x6ae1, 0x6ade, - 0x6adb, 0x6ad7, 0x6ad4, 0x6ad0, 0x6acd, 0x6ac9, 0x6ac6, 0x6ac2, - 0x6abf, 0x6abb, 0x6ab8, 0x6ab4, 0x6ab1, 0x6aae, 0x6aaa, 0x6aa7, - 0x6aa3, 0x6aa0, 0x6a9c, 0x6a99, 0x6a95, 0x6a92, 0x6a8e, 0x6a8b, - 0x6a87, 0x6a84, 0x6a80, 0x6a7d, 0x6a79, 0x6a76, 0x6a72, 0x6a6f, - 0x6a6b, 0x6a68, 0x6a64, 0x6a61, 0x6a5d, 0x6a5a, 0x6a56, 0x6a53, - 0x6a4f, 0x6a4c, 0x6a48, 0x6a45, 0x6a41, 0x6a3e, 0x6a3a, 0x6a37, - 0x6a33, 0x6a30, 0x6a2c, 0x6a29, 0x6a25, 0x6a22, 0x6a1e, 0x6a1b, - 0x6a17, 0x6a14, 0x6a10, 0x6a0d, 0x6a09, 0x6a06, 0x6a02, 0x69ff, - 0x69fb, 0x69f8, 0x69f4, 0x69f1, 0x69ed, 0x69e9, 0x69e6, 0x69e2, - 0x69df, 0x69db, 0x69d8, 0x69d4, 0x69d1, 0x69cd, 0x69ca, 0x69c6, - 0x69c3, 0x69bf, 0x69bc, 0x69b8, 0x69b4, 0x69b1, 0x69ad, 0x69aa, - 0x69a6, 0x69a3, 0x699f, 0x699c, 0x6998, 0x6995, 0x6991, 0x698d, - 0x698a, 0x6986, 0x6983, 0x697f, 0x697c, 0x6978, 0x6975, 0x6971, - 0x696d, 0x696a, 0x6966, 0x6963, 0x695f, 0x695c, 0x6958, 0x6954, - 0x6951, 0x694d, 0x694a, 0x6946, 0x6943, 0x693f, 0x693b, 0x6938, - 0x6934, 0x6931, 0x692d, 0x692a, 0x6926, 0x6922, 0x691f, 0x691b, - 0x6918, 0x6914, 0x6910, 0x690d, 0x6909, 0x6906, 0x6902, 0x68fe, - 0x68fb, 0x68f7, 0x68f4, 0x68f0, 0x68ec, 0x68e9, 0x68e5, 0x68e2, - 0x68de, 0x68da, 0x68d7, 0x68d3, 0x68d0, 0x68cc, 0x68c8, 0x68c5, - 0x68c1, 0x68be, 0x68ba, 0x68b6, 0x68b3, 0x68af, 0x68ac, 0x68a8, - 0x68a4, 0x68a1, 0x689d, 0x6899, 0x6896, 0x6892, 0x688f, 0x688b, - 0x6887, 0x6884, 0x6880, 0x687c, 0x6879, 0x6875, 0x6872, 0x686e, - 0x686a, 0x6867, 0x6863, 0x685f, 0x685c, 0x6858, 0x6854, 0x6851, - 0x684d, 0x684a, 0x6846, 0x6842, 0x683f, 0x683b, 0x6837, 0x6834, - 0x6830, 0x682c, 0x6829, 0x6825, 0x6821, 0x681e, 0x681a, 0x6816, - 0x6813, 0x680f, 0x680b, 0x6808, 0x6804, 0x6800, 0x67fd, 0x67f9, - 0x67f5, 0x67f2, 0x67ee, 0x67ea, 0x67e7, 0x67e3, 0x67df, 0x67dc, - 0x67d8, 0x67d4, 0x67d1, 0x67cd, 0x67c9, 0x67c6, 0x67c2, 0x67be, - 0x67bb, 0x67b7, 0x67b3, 0x67b0, 0x67ac, 0x67a8, 0x67a5, 0x67a1, - 0x679d, 0x679a, 0x6796, 0x6792, 0x678e, 0x678b, 0x6787, 0x6783, - 0x6780, 0x677c, 0x6778, 0x6775, 0x6771, 0x676d, 0x6769, 0x6766, - 0x6762, 0x675e, 0x675b, 0x6757, 0x6753, 0x6750, 0x674c, 0x6748, - 0x6744, 0x6741, 0x673d, 0x6739, 0x6736, 0x6732, 0x672e, 0x672a, - 0x6727, 0x6723, 0x671f, 0x671c, 0x6718, 0x6714, 0x6710, 0x670d, - 0x6709, 0x6705, 0x6701, 0x66fe, 0x66fa, 0x66f6, 0x66f3, 0x66ef, - 0x66eb, 0x66e7, 0x66e4, 0x66e0, 0x66dc, 0x66d8, 0x66d5, 0x66d1, - 0x66cd, 0x66c9, 0x66c6, 0x66c2, 0x66be, 0x66ba, 0x66b7, 0x66b3, - 0x66af, 0x66ab, 0x66a8, 0x66a4, 0x66a0, 0x669c, 0x6699, 0x6695, - 0x6691, 0x668d, 0x668a, 0x6686, 0x6682, 0x667e, 0x667b, 0x6677, - 0x6673, 0x666f, 0x666b, 0x6668, 0x6664, 0x6660, 0x665c, 0x6659, - 0x6655, 0x6651, 0x664d, 0x664a, 0x6646, 0x6642, 0x663e, 0x663a, - 0x6637, 0x6633, 0x662f, 0x662b, 0x6627, 0x6624, 0x6620, 0x661c, - 0x6618, 0x6615, 0x6611, 0x660d, 0x6609, 0x6605, 0x6602, 0x65fe, - 0x65fa, 0x65f6, 0x65f2, 0x65ef, 0x65eb, 0x65e7, 0x65e3, 0x65df, - 0x65dc, 0x65d8, 0x65d4, 0x65d0, 0x65cc, 0x65c9, 0x65c5, 0x65c1, - 0x65bd, 0x65b9, 0x65b5, 0x65b2, 0x65ae, 0x65aa, 0x65a6, 0x65a2, - 0x659f, 0x659b, 0x6597, 0x6593, 0x658f, 0x658b, 0x6588, 0x6584, - 0x6580, 0x657c, 0x6578, 0x6574, 0x6571, 0x656d, 0x6569, 0x6565, - 0x6561, 0x655d, 0x655a, 0x6556, 0x6552, 0x654e, 0x654a, 0x6546, - 0x6543, 0x653f, 0x653b, 0x6537, 0x6533, 0x652f, 0x652c, 0x6528, - 0x6524, 0x6520, 0x651c, 0x6518, 0x6514, 0x6511, 0x650d, 0x6509, - 0x6505, 0x6501, 0x64fd, 0x64f9, 0x64f6, 0x64f2, 0x64ee, 0x64ea, - 0x64e6, 0x64e2, 0x64de, 0x64db, 0x64d7, 0x64d3, 0x64cf, 0x64cb, - 0x64c7, 0x64c3, 0x64bf, 0x64bc, 0x64b8, 0x64b4, 0x64b0, 0x64ac, - 0x64a8, 0x64a4, 0x64a0, 0x649c, 0x6499, 0x6495, 0x6491, 0x648d, - 0x6489, 0x6485, 0x6481, 0x647d, 0x6479, 0x6476, 0x6472, 0x646e, - 0x646a, 0x6466, 0x6462, 0x645e, 0x645a, 0x6456, 0x6453, 0x644f, - 0x644b, 0x6447, 0x6443, 0x643f, 0x643b, 0x6437, 0x6433, 0x642f, - 0x642b, 0x6428, 0x6424, 0x6420, 0x641c, 0x6418, 0x6414, 0x6410, - 0x640c, 0x6408, 0x6404, 0x6400, 0x63fc, 0x63f9, 0x63f5, 0x63f1, - 0x63ed, 0x63e9, 0x63e5, 0x63e1, 0x63dd, 0x63d9, 0x63d5, 0x63d1, - 0x63cd, 0x63c9, 0x63c5, 0x63c1, 0x63be, 0x63ba, 0x63b6, 0x63b2, - 0x63ae, 0x63aa, 0x63a6, 0x63a2, 0x639e, 0x639a, 0x6396, 0x6392, - 0x638e, 0x638a, 0x6386, 0x6382, 0x637e, 0x637a, 0x6377, 0x6373, - 0x636f, 0x636b, 0x6367, 0x6363, 0x635f, 0x635b, 0x6357, 0x6353, - 0x634f, 0x634b, 0x6347, 0x6343, 0x633f, 0x633b, 0x6337, 0x6333, - 0x632f, 0x632b, 0x6327, 0x6323, 0x631f, 0x631b, 0x6317, 0x6313, - 0x630f, 0x630b, 0x6307, 0x6303, 0x62ff, 0x62fb, 0x62f7, 0x62f3, - 0x62f0, 0x62ec, 0x62e8, 0x62e4, 0x62e0, 0x62dc, 0x62d8, 0x62d4, - 0x62d0, 0x62cc, 0x62c8, 0x62c4, 0x62c0, 0x62bc, 0x62b8, 0x62b4, - 0x62b0, 0x62ac, 0x62a8, 0x62a4, 0x62a0, 0x629c, 0x6298, 0x6294, - 0x6290, 0x628c, 0x6288, 0x6284, 0x6280, 0x627c, 0x6278, 0x6273, - 0x626f, 0x626b, 0x6267, 0x6263, 0x625f, 0x625b, 0x6257, 0x6253, - 0x624f, 0x624b, 0x6247, 0x6243, 0x623f, 0x623b, 0x6237, 0x6233, - 0x622f, 0x622b, 0x6227, 0x6223, 0x621f, 0x621b, 0x6217, 0x6213, - 0x620f, 0x620b, 0x6207, 0x6203, 0x61ff, 0x61fb, 0x61f7, 0x61f3, - 0x61ee, 0x61ea, 0x61e6, 0x61e2, 0x61de, 0x61da, 0x61d6, 0x61d2, - 0x61ce, 0x61ca, 0x61c6, 0x61c2, 0x61be, 0x61ba, 0x61b6, 0x61b2, - 0x61ae, 0x61aa, 0x61a6, 0x61a1, 0x619d, 0x6199, 0x6195, 0x6191, - 0x618d, 0x6189, 0x6185, 0x6181, 0x617d, 0x6179, 0x6175, 0x6171, - 0x616d, 0x6168, 0x6164, 0x6160, 0x615c, 0x6158, 0x6154, 0x6150, - 0x614c, 0x6148, 0x6144, 0x6140, 0x613c, 0x6137, 0x6133, 0x612f, - 0x612b, 0x6127, 0x6123, 0x611f, 0x611b, 0x6117, 0x6113, 0x610f, - 0x610a, 0x6106, 0x6102, 0x60fe, 0x60fa, 0x60f6, 0x60f2, 0x60ee, - 0x60ea, 0x60e6, 0x60e1, 0x60dd, 0x60d9, 0x60d5, 0x60d1, 0x60cd, - 0x60c9, 0x60c5, 0x60c1, 0x60bc, 0x60b8, 0x60b4, 0x60b0, 0x60ac, - 0x60a8, 0x60a4, 0x60a0, 0x609c, 0x6097, 0x6093, 0x608f, 0x608b, - 0x6087, 0x6083, 0x607f, 0x607b, 0x6076, 0x6072, 0x606e, 0x606a, - 0x6066, 0x6062, 0x605e, 0x6059, 0x6055, 0x6051, 0x604d, 0x6049, - 0x6045, 0x6041, 0x603c, 0x6038, 0x6034, 0x6030, 0x602c, 0x6028, - 0x6024, 0x601f, 0x601b, 0x6017, 0x6013, 0x600f, 0x600b, 0x6007, - 0x6002, 0x5ffe, 0x5ffa, 0x5ff6, 0x5ff2, 0x5fee, 0x5fe9, 0x5fe5, - 0x5fe1, 0x5fdd, 0x5fd9, 0x5fd5, 0x5fd0, 0x5fcc, 0x5fc8, 0x5fc4, - 0x5fc0, 0x5fbc, 0x5fb7, 0x5fb3, 0x5faf, 0x5fab, 0x5fa7, 0x5fa3, - 0x5f9e, 0x5f9a, 0x5f96, 0x5f92, 0x5f8e, 0x5f8a, 0x5f85, 0x5f81, - 0x5f7d, 0x5f79, 0x5f75, 0x5f70, 0x5f6c, 0x5f68, 0x5f64, 0x5f60, - 0x5f5b, 0x5f57, 0x5f53, 0x5f4f, 0x5f4b, 0x5f46, 0x5f42, 0x5f3e, - 0x5f3a, 0x5f36, 0x5f31, 0x5f2d, 0x5f29, 0x5f25, 0x5f21, 0x5f1c, - 0x5f18, 0x5f14, 0x5f10, 0x5f0c, 0x5f07, 0x5f03, 0x5eff, 0x5efb, - 0x5ef7, 0x5ef2, 0x5eee, 0x5eea, 0x5ee6, 0x5ee2, 0x5edd, 0x5ed9, - 0x5ed5, 0x5ed1, 0x5ecc, 0x5ec8, 0x5ec4, 0x5ec0, 0x5ebc, 0x5eb7, - 0x5eb3, 0x5eaf, 0x5eab, 0x5ea6, 0x5ea2, 0x5e9e, 0x5e9a, 0x5e95, - 0x5e91, 0x5e8d, 0x5e89, 0x5e85, 0x5e80, 0x5e7c, 0x5e78, 0x5e74, - 0x5e6f, 0x5e6b, 0x5e67, 0x5e63, 0x5e5e, 0x5e5a, 0x5e56, 0x5e52, - 0x5e4d, 0x5e49, 0x5e45, 0x5e41, 0x5e3c, 0x5e38, 0x5e34, 0x5e30, - 0x5e2b, 0x5e27, 0x5e23, 0x5e1f, 0x5e1a, 0x5e16, 0x5e12, 0x5e0e, - 0x5e09, 0x5e05, 0x5e01, 0x5dfd, 0x5df8, 0x5df4, 0x5df0, 0x5deb, - 0x5de7, 0x5de3, 0x5ddf, 0x5dda, 0x5dd6, 0x5dd2, 0x5dce, 0x5dc9, - 0x5dc5, 0x5dc1, 0x5dbc, 0x5db8, 0x5db4, 0x5db0, 0x5dab, 0x5da7, - 0x5da3, 0x5d9e, 0x5d9a, 0x5d96, 0x5d92, 0x5d8d, 0x5d89, 0x5d85, - 0x5d80, 0x5d7c, 0x5d78, 0x5d74, 0x5d6f, 0x5d6b, 0x5d67, 0x5d62, - 0x5d5e, 0x5d5a, 0x5d55, 0x5d51, 0x5d4d, 0x5d49, 0x5d44, 0x5d40, - 0x5d3c, 0x5d37, 0x5d33, 0x5d2f, 0x5d2a, 0x5d26, 0x5d22, 0x5d1e, - 0x5d19, 0x5d15, 0x5d11, 0x5d0c, 0x5d08, 0x5d04, 0x5cff, 0x5cfb, - 0x5cf7, 0x5cf2, 0x5cee, 0x5cea, 0x5ce5, 0x5ce1, 0x5cdd, 0x5cd8, - 0x5cd4, 0x5cd0, 0x5ccb, 0x5cc7, 0x5cc3, 0x5cbe, 0x5cba, 0x5cb6, - 0x5cb1, 0x5cad, 0x5ca9, 0x5ca4, 0x5ca0, 0x5c9c, 0x5c97, 0x5c93, - 0x5c8f, 0x5c8a, 0x5c86, 0x5c82, 0x5c7d, 0x5c79, 0x5c75, 0x5c70, - 0x5c6c, 0x5c68, 0x5c63, 0x5c5f, 0x5c5b, 0x5c56, 0x5c52, 0x5c4e, - 0x5c49, 0x5c45, 0x5c41, 0x5c3c, 0x5c38, 0x5c33, 0x5c2f, 0x5c2b, - 0x5c26, 0x5c22, 0x5c1e, 0x5c19, 0x5c15, 0x5c11, 0x5c0c, 0x5c08, - 0x5c03, 0x5bff, 0x5bfb, 0x5bf6, 0x5bf2, 0x5bee, 0x5be9, 0x5be5, - 0x5be0, 0x5bdc, 0x5bd8, 0x5bd3, 0x5bcf, 0x5bcb, 0x5bc6, 0x5bc2, - 0x5bbd, 0x5bb9, 0x5bb5, 0x5bb0, 0x5bac, 0x5ba8, 0x5ba3, 0x5b9f, - 0x5b9a, 0x5b96, 0x5b92, 0x5b8d, 0x5b89, 0x5b84, 0x5b80, 0x5b7c, - 0x5b77, 0x5b73, 0x5b6e, 0x5b6a, 0x5b66, 0x5b61, 0x5b5d, 0x5b58, - 0x5b54, 0x5b50, 0x5b4b, 0x5b47, 0x5b42, 0x5b3e, 0x5b3a, 0x5b35, - 0x5b31, 0x5b2c, 0x5b28, 0x5b24, 0x5b1f, 0x5b1b, 0x5b16, 0x5b12, - 0x5b0e, 0x5b09, 0x5b05, 0x5b00, 0x5afc, 0x5af7, 0x5af3, 0x5aef, - 0x5aea, 0x5ae6, 0x5ae1, 0x5add, 0x5ad8, 0x5ad4, 0x5ad0, 0x5acb, - 0x5ac7, 0x5ac2, 0x5abe, 0x5ab9, 0x5ab5, 0x5ab1, 0x5aac, 0x5aa8, - 0x5aa3, 0x5a9f, 0x5a9a, 0x5a96, 0x5a92, 0x5a8d, 0x5a89, 0x5a84, - 0x5a80, 0x5a7b, 0x5a77, 0x5a72, 0x5a6e, 0x5a6a, 0x5a65, 0x5a61, - 0x5a5c, 0x5a58, 0x5a53, 0x5a4f, 0x5a4a, 0x5a46, 0x5a41, 0x5a3d, - 0x5a39, 0x5a34, 0x5a30, 0x5a2b, 0x5a27, 0x5a22, 0x5a1e, 0x5a19, - 0x5a15, 0x5a10, 0x5a0c, 0x5a07, 0x5a03, 0x59ff, 0x59fa, 0x59f6, - 0x59f1, 0x59ed, 0x59e8, 0x59e4, 0x59df, 0x59db, 0x59d6, 0x59d2, - 0x59cd, 0x59c9, 0x59c4, 0x59c0, 0x59bb, 0x59b7, 0x59b2, 0x59ae, - 0x59a9, 0x59a5, 0x59a1, 0x599c, 0x5998, 0x5993, 0x598f, 0x598a, - 0x5986, 0x5981, 0x597d, 0x5978, 0x5974, 0x596f, 0x596b, 0x5966, - 0x5962, 0x595d, 0x5959, 0x5954, 0x5950, 0x594b, 0x5947, 0x5942, - 0x593e, 0x5939, 0x5935, 0x5930, 0x592c, 0x5927, 0x5923, 0x591e, - 0x591a, 0x5915, 0x5911, 0x590c, 0x5908, 0x5903, 0x58fe, 0x58fa, - 0x58f5, 0x58f1, 0x58ec, 0x58e8, 0x58e3, 0x58df, 0x58da, 0x58d6, - 0x58d1, 0x58cd, 0x58c8, 0x58c4, 0x58bf, 0x58bb, 0x58b6, 0x58b2, - 0x58ad, 0x58a9, 0x58a4, 0x589f, 0x589b, 0x5896, 0x5892, 0x588d, - 0x5889, 0x5884, 0x5880, 0x587b, 0x5877, 0x5872, 0x586e, 0x5869, - 0x5864, 0x5860, 0x585b, 0x5857, 0x5852, 0x584e, 0x5849, 0x5845, - 0x5840, 0x583c, 0x5837, 0x5832, 0x582e, 0x5829, 0x5825, 0x5820, - 0x581c, 0x5817, 0x5813, 0x580e, 0x5809, 0x5805, 0x5800, 0x57fc, - 0x57f7, 0x57f3, 0x57ee, 0x57e9, 0x57e5, 0x57e0, 0x57dc, 0x57d7, - 0x57d3, 0x57ce, 0x57c9, 0x57c5, 0x57c0, 0x57bc, 0x57b7, 0x57b3, - 0x57ae, 0x57a9, 0x57a5, 0x57a0, 0x579c, 0x5797, 0x5793, 0x578e, - 0x5789, 0x5785, 0x5780, 0x577c, 0x5777, 0x5772, 0x576e, 0x5769, - 0x5765, 0x5760, 0x575c, 0x5757, 0x5752, 0x574e, 0x5749, 0x5745, - 0x5740, 0x573b, 0x5737, 0x5732, 0x572e, 0x5729, 0x5724, 0x5720, - 0x571b, 0x5717, 0x5712, 0x570d, 0x5709, 0x5704, 0x56ff, 0x56fb, - 0x56f6, 0x56f2, 0x56ed, 0x56e8, 0x56e4, 0x56df, 0x56db, 0x56d6, - 0x56d1, 0x56cd, 0x56c8, 0x56c4, 0x56bf, 0x56ba, 0x56b6, 0x56b1, - 0x56ac, 0x56a8, 0x56a3, 0x569f, 0x569a, 0x5695, 0x5691, 0x568c, - 0x5687, 0x5683, 0x567e, 0x5679, 0x5675, 0x5670, 0x566c, 0x5667, - 0x5662, 0x565e, 0x5659, 0x5654, 0x5650, 0x564b, 0x5646, 0x5642, - 0x563d, 0x5639, 0x5634, 0x562f, 0x562b, 0x5626, 0x5621, 0x561d, - 0x5618, 0x5613, 0x560f, 0x560a, 0x5605, 0x5601, 0x55fc, 0x55f7, - 0x55f3, 0x55ee, 0x55ea, 0x55e5, 0x55e0, 0x55dc, 0x55d7, 0x55d2, - 0x55ce, 0x55c9, 0x55c4, 0x55c0, 0x55bb, 0x55b6, 0x55b2, 0x55ad, - 0x55a8, 0x55a4, 0x559f, 0x559a, 0x5596, 0x5591, 0x558c, 0x5588, - 0x5583, 0x557e, 0x5579, 0x5575, 0x5570, 0x556b, 0x5567, 0x5562, - 0x555d, 0x5559, 0x5554, 0x554f, 0x554b, 0x5546, 0x5541, 0x553d, - 0x5538, 0x5533, 0x552f, 0x552a, 0x5525, 0x5520, 0x551c, 0x5517, - 0x5512, 0x550e, 0x5509, 0x5504, 0x5500, 0x54fb, 0x54f6, 0x54f2, - 0x54ed, 0x54e8, 0x54e3, 0x54df, 0x54da, 0x54d5, 0x54d1, 0x54cc, - 0x54c7, 0x54c2, 0x54be, 0x54b9, 0x54b4, 0x54b0, 0x54ab, 0x54a6, - 0x54a2, 0x549d, 0x5498, 0x5493, 0x548f, 0x548a, 0x5485, 0x5480, - 0x547c, 0x5477, 0x5472, 0x546e, 0x5469, 0x5464, 0x545f, 0x545b, - 0x5456, 0x5451, 0x544d, 0x5448, 0x5443, 0x543e, 0x543a, 0x5435, - 0x5430, 0x542b, 0x5427, 0x5422, 0x541d, 0x5418, 0x5414, 0x540f, - 0x540a, 0x5406, 0x5401, 0x53fc, 0x53f7, 0x53f3, 0x53ee, 0x53e9, - 0x53e4, 0x53e0, 0x53db, 0x53d6, 0x53d1, 0x53cd, 0x53c8, 0x53c3, - 0x53be, 0x53ba, 0x53b5, 0x53b0, 0x53ab, 0x53a7, 0x53a2, 0x539d, - 0x5398, 0x5394, 0x538f, 0x538a, 0x5385, 0x5380, 0x537c, 0x5377, - 0x5372, 0x536d, 0x5369, 0x5364, 0x535f, 0x535a, 0x5356, 0x5351, - 0x534c, 0x5347, 0x5343, 0x533e, 0x5339, 0x5334, 0x532f, 0x532b, - 0x5326, 0x5321, 0x531c, 0x5318, 0x5313, 0x530e, 0x5309, 0x5304, - 0x5300, 0x52fb, 0x52f6, 0x52f1, 0x52ec, 0x52e8, 0x52e3, 0x52de, - 0x52d9, 0x52d5, 0x52d0, 0x52cb, 0x52c6, 0x52c1, 0x52bd, 0x52b8, - 0x52b3, 0x52ae, 0x52a9, 0x52a5, 0x52a0, 0x529b, 0x5296, 0x5291, - 0x528d, 0x5288, 0x5283, 0x527e, 0x5279, 0x5275, 0x5270, 0x526b, - 0x5266, 0x5261, 0x525d, 0x5258, 0x5253, 0x524e, 0x5249, 0x5244, - 0x5240, 0x523b, 0x5236, 0x5231, 0x522c, 0x5228, 0x5223, 0x521e, - 0x5219, 0x5214, 0x520f, 0x520b, 0x5206, 0x5201, 0x51fc, 0x51f7, - 0x51f3, 0x51ee, 0x51e9, 0x51e4, 0x51df, 0x51da, 0x51d6, 0x51d1, - 0x51cc, 0x51c7, 0x51c2, 0x51bd, 0x51b9, 0x51b4, 0x51af, 0x51aa, - 0x51a5, 0x51a0, 0x519c, 0x5197, 0x5192, 0x518d, 0x5188, 0x5183, - 0x517e, 0x517a, 0x5175, 0x5170, 0x516b, 0x5166, 0x5161, 0x515d, - 0x5158, 0x5153, 0x514e, 0x5149, 0x5144, 0x513f, 0x513b, 0x5136, - 0x5131, 0x512c, 0x5127, 0x5122, 0x511d, 0x5119, 0x5114, 0x510f, - 0x510a, 0x5105, 0x5100, 0x50fb, 0x50f7, 0x50f2, 0x50ed, 0x50e8, - 0x50e3, 0x50de, 0x50d9, 0x50d4, 0x50d0, 0x50cb, 0x50c6, 0x50c1, - 0x50bc, 0x50b7, 0x50b2, 0x50ad, 0x50a9, 0x50a4, 0x509f, 0x509a, - 0x5095, 0x5090, 0x508b, 0x5086, 0x5082, 0x507d, 0x5078, 0x5073, - 0x506e, 0x5069, 0x5064, 0x505f, 0x505a, 0x5056, 0x5051, 0x504c, - 0x5047, 0x5042, 0x503d, 0x5038, 0x5033, 0x502e, 0x5029, 0x5025, - 0x5020, 0x501b, 0x5016, 0x5011, 0x500c, 0x5007, 0x5002, 0x4ffd, - 0x4ff8, 0x4ff4, 0x4fef, 0x4fea, 0x4fe5, 0x4fe0, 0x4fdb, 0x4fd6, - 0x4fd1, 0x4fcc, 0x4fc7, 0x4fc2, 0x4fbe, 0x4fb9, 0x4fb4, 0x4faf, - 0x4faa, 0x4fa5, 0x4fa0, 0x4f9b, 0x4f96, 0x4f91, 0x4f8c, 0x4f87, - 0x4f82, 0x4f7e, 0x4f79, 0x4f74, 0x4f6f, 0x4f6a, 0x4f65, 0x4f60, - 0x4f5b, 0x4f56, 0x4f51, 0x4f4c, 0x4f47, 0x4f42, 0x4f3d, 0x4f39, - 0x4f34, 0x4f2f, 0x4f2a, 0x4f25, 0x4f20, 0x4f1b, 0x4f16, 0x4f11, - 0x4f0c, 0x4f07, 0x4f02, 0x4efd, 0x4ef8, 0x4ef3, 0x4eee, 0x4ee9, - 0x4ee5, 0x4ee0, 0x4edb, 0x4ed6, 0x4ed1, 0x4ecc, 0x4ec7, 0x4ec2, - 0x4ebd, 0x4eb8, 0x4eb3, 0x4eae, 0x4ea9, 0x4ea4, 0x4e9f, 0x4e9a, - 0x4e95, 0x4e90, 0x4e8b, 0x4e86, 0x4e81, 0x4e7c, 0x4e78, 0x4e73, - 0x4e6e, 0x4e69, 0x4e64, 0x4e5f, 0x4e5a, 0x4e55, 0x4e50, 0x4e4b, - 0x4e46, 0x4e41, 0x4e3c, 0x4e37, 0x4e32, 0x4e2d, 0x4e28, 0x4e23, - 0x4e1e, 0x4e19, 0x4e14, 0x4e0f, 0x4e0a, 0x4e05, 0x4e00, 0x4dfb, - 0x4df6, 0x4df1, 0x4dec, 0x4de7, 0x4de2, 0x4ddd, 0x4dd8, 0x4dd3, - 0x4dce, 0x4dc9, 0x4dc4, 0x4dbf, 0x4dba, 0x4db5, 0x4db0, 0x4dab, - 0x4da6, 0x4da1, 0x4d9c, 0x4d97, 0x4d92, 0x4d8d, 0x4d88, 0x4d83, - 0x4d7e, 0x4d79, 0x4d74, 0x4d6f, 0x4d6a, 0x4d65, 0x4d60, 0x4d5b, - 0x4d56, 0x4d51, 0x4d4c, 0x4d47, 0x4d42, 0x4d3d, 0x4d38, 0x4d33, - 0x4d2e, 0x4d29, 0x4d24, 0x4d1f, 0x4d1a, 0x4d15, 0x4d10, 0x4d0b, - 0x4d06, 0x4d01, 0x4cfc, 0x4cf7, 0x4cf2, 0x4ced, 0x4ce8, 0x4ce3, - 0x4cde, 0x4cd9, 0x4cd4, 0x4ccf, 0x4cca, 0x4cc5, 0x4cc0, 0x4cbb, - 0x4cb6, 0x4cb1, 0x4cac, 0x4ca7, 0x4ca2, 0x4c9d, 0x4c98, 0x4c93, - 0x4c8e, 0x4c88, 0x4c83, 0x4c7e, 0x4c79, 0x4c74, 0x4c6f, 0x4c6a, - 0x4c65, 0x4c60, 0x4c5b, 0x4c56, 0x4c51, 0x4c4c, 0x4c47, 0x4c42, - 0x4c3d, 0x4c38, 0x4c33, 0x4c2e, 0x4c29, 0x4c24, 0x4c1f, 0x4c1a, - 0x4c14, 0x4c0f, 0x4c0a, 0x4c05, 0x4c00, 0x4bfb, 0x4bf6, 0x4bf1, - 0x4bec, 0x4be7, 0x4be2, 0x4bdd, 0x4bd8, 0x4bd3, 0x4bce, 0x4bc9, - 0x4bc4, 0x4bbe, 0x4bb9, 0x4bb4, 0x4baf, 0x4baa, 0x4ba5, 0x4ba0, - 0x4b9b, 0x4b96, 0x4b91, 0x4b8c, 0x4b87, 0x4b82, 0x4b7d, 0x4b77, - 0x4b72, 0x4b6d, 0x4b68, 0x4b63, 0x4b5e, 0x4b59, 0x4b54, 0x4b4f, - 0x4b4a, 0x4b45, 0x4b40, 0x4b3b, 0x4b35, 0x4b30, 0x4b2b, 0x4b26, - 0x4b21, 0x4b1c, 0x4b17, 0x4b12, 0x4b0d, 0x4b08, 0x4b03, 0x4afd, - 0x4af8, 0x4af3, 0x4aee, 0x4ae9, 0x4ae4, 0x4adf, 0x4ada, 0x4ad5, - 0x4ad0, 0x4acb, 0x4ac5, 0x4ac0, 0x4abb, 0x4ab6, 0x4ab1, 0x4aac, - 0x4aa7, 0x4aa2, 0x4a9d, 0x4a97, 0x4a92, 0x4a8d, 0x4a88, 0x4a83, - 0x4a7e, 0x4a79, 0x4a74, 0x4a6f, 0x4a6a, 0x4a64, 0x4a5f, 0x4a5a, - 0x4a55, 0x4a50, 0x4a4b, 0x4a46, 0x4a41, 0x4a3b, 0x4a36, 0x4a31, - 0x4a2c, 0x4a27, 0x4a22, 0x4a1d, 0x4a18, 0x4a12, 0x4a0d, 0x4a08, - 0x4a03, 0x49fe, 0x49f9, 0x49f4, 0x49ef, 0x49e9, 0x49e4, 0x49df, - 0x49da, 0x49d5, 0x49d0, 0x49cb, 0x49c6, 0x49c0, 0x49bb, 0x49b6, - 0x49b1, 0x49ac, 0x49a7, 0x49a2, 0x499c, 0x4997, 0x4992, 0x498d, - 0x4988, 0x4983, 0x497e, 0x4978, 0x4973, 0x496e, 0x4969, 0x4964, - 0x495f, 0x495a, 0x4954, 0x494f, 0x494a, 0x4945, 0x4940, 0x493b, - 0x4936, 0x4930, 0x492b, 0x4926, 0x4921, 0x491c, 0x4917, 0x4911, - 0x490c, 0x4907, 0x4902, 0x48fd, 0x48f8, 0x48f2, 0x48ed, 0x48e8, - 0x48e3, 0x48de, 0x48d9, 0x48d3, 0x48ce, 0x48c9, 0x48c4, 0x48bf, - 0x48ba, 0x48b4, 0x48af, 0x48aa, 0x48a5, 0x48a0, 0x489b, 0x4895, - 0x4890, 0x488b, 0x4886, 0x4881, 0x487c, 0x4876, 0x4871, 0x486c, - 0x4867, 0x4862, 0x485c, 0x4857, 0x4852, 0x484d, 0x4848, 0x4843, - 0x483d, 0x4838, 0x4833, 0x482e, 0x4829, 0x4823, 0x481e, 0x4819, - 0x4814, 0x480f, 0x4809, 0x4804, 0x47ff, 0x47fa, 0x47f5, 0x47ef, - 0x47ea, 0x47e5, 0x47e0, 0x47db, 0x47d5, 0x47d0, 0x47cb, 0x47c6, - 0x47c1, 0x47bb, 0x47b6, 0x47b1, 0x47ac, 0x47a7, 0x47a1, 0x479c, - 0x4797, 0x4792, 0x478d, 0x4787, 0x4782, 0x477d, 0x4778, 0x4773, - 0x476d, 0x4768, 0x4763, 0x475e, 0x4758, 0x4753, 0x474e, 0x4749, - 0x4744, 0x473e, 0x4739, 0x4734, 0x472f, 0x4729, 0x4724, 0x471f, - 0x471a, 0x4715, 0x470f, 0x470a, 0x4705, 0x4700, 0x46fa, 0x46f5, - 0x46f0, 0x46eb, 0x46e6, 0x46e0, 0x46db, 0x46d6, 0x46d1, 0x46cb, - 0x46c6, 0x46c1, 0x46bc, 0x46b6, 0x46b1, 0x46ac, 0x46a7, 0x46a1, - 0x469c, 0x4697, 0x4692, 0x468d, 0x4687, 0x4682, 0x467d, 0x4678, - 0x4672, 0x466d, 0x4668, 0x4663, 0x465d, 0x4658, 0x4653, 0x464e, - 0x4648, 0x4643, 0x463e, 0x4639, 0x4633, 0x462e, 0x4629, 0x4624, - 0x461e, 0x4619, 0x4614, 0x460e, 0x4609, 0x4604, 0x45ff, 0x45f9, - 0x45f4, 0x45ef, 0x45ea, 0x45e4, 0x45df, 0x45da, 0x45d5, 0x45cf, - 0x45ca, 0x45c5, 0x45c0, 0x45ba, 0x45b5, 0x45b0, 0x45aa, 0x45a5, - 0x45a0, 0x459b, 0x4595, 0x4590, 0x458b, 0x4586, 0x4580, 0x457b, - 0x4576, 0x4570, 0x456b, 0x4566, 0x4561, 0x455b, 0x4556, 0x4551, - 0x454b, 0x4546, 0x4541, 0x453c, 0x4536, 0x4531, 0x452c, 0x4526, - 0x4521, 0x451c, 0x4517, 0x4511, 0x450c, 0x4507, 0x4501, 0x44fc, - 0x44f7, 0x44f2, 0x44ec, 0x44e7, 0x44e2, 0x44dc, 0x44d7, 0x44d2, - 0x44cd, 0x44c7, 0x44c2, 0x44bd, 0x44b7, 0x44b2, 0x44ad, 0x44a7, - 0x44a2, 0x449d, 0x4497, 0x4492, 0x448d, 0x4488, 0x4482, 0x447d, - 0x4478, 0x4472, 0x446d, 0x4468, 0x4462, 0x445d, 0x4458, 0x4452, - 0x444d, 0x4448, 0x4443, 0x443d, 0x4438, 0x4433, 0x442d, 0x4428, - 0x4423, 0x441d, 0x4418, 0x4413, 0x440d, 0x4408, 0x4403, 0x43fd, - 0x43f8, 0x43f3, 0x43ed, 0x43e8, 0x43e3, 0x43dd, 0x43d8, 0x43d3, - 0x43cd, 0x43c8, 0x43c3, 0x43bd, 0x43b8, 0x43b3, 0x43ad, 0x43a8, - 0x43a3, 0x439d, 0x4398, 0x4393, 0x438d, 0x4388, 0x4383, 0x437d, - 0x4378, 0x4373, 0x436d, 0x4368, 0x4363, 0x435d, 0x4358, 0x4353, - 0x434d, 0x4348, 0x4343, 0x433d, 0x4338, 0x4333, 0x432d, 0x4328, - 0x4323, 0x431d, 0x4318, 0x4313, 0x430d, 0x4308, 0x4302, 0x42fd, - 0x42f8, 0x42f2, 0x42ed, 0x42e8, 0x42e2, 0x42dd, 0x42d8, 0x42d2, - 0x42cd, 0x42c8, 0x42c2, 0x42bd, 0x42b7, 0x42b2, 0x42ad, 0x42a7, - 0x42a2, 0x429d, 0x4297, 0x4292, 0x428d, 0x4287, 0x4282, 0x427c, - 0x4277, 0x4272, 0x426c, 0x4267, 0x4262, 0x425c, 0x4257, 0x4251, - 0x424c, 0x4247, 0x4241, 0x423c, 0x4237, 0x4231, 0x422c, 0x4226, - 0x4221, 0x421c, 0x4216, 0x4211, 0x420c, 0x4206, 0x4201, 0x41fb, - 0x41f6, 0x41f1, 0x41eb, 0x41e6, 0x41e0, 0x41db, 0x41d6, 0x41d0, - 0x41cb, 0x41c6, 0x41c0, 0x41bb, 0x41b5, 0x41b0, 0x41ab, 0x41a5, - 0x41a0, 0x419a, 0x4195, 0x4190, 0x418a, 0x4185, 0x417f, 0x417a, - 0x4175, 0x416f, 0x416a, 0x4164, 0x415f, 0x415a, 0x4154, 0x414f, - 0x4149, 0x4144, 0x413f, 0x4139, 0x4134, 0x412e, 0x4129, 0x4124, - 0x411e, 0x4119, 0x4113, 0x410e, 0x4108, 0x4103, 0x40fe, 0x40f8, - 0x40f3, 0x40ed, 0x40e8, 0x40e3, 0x40dd, 0x40d8, 0x40d2, 0x40cd, - 0x40c8, 0x40c2, 0x40bd, 0x40b7, 0x40b2, 0x40ac, 0x40a7, 0x40a2, - 0x409c, 0x4097, 0x4091, 0x408c, 0x4086, 0x4081, 0x407c, 0x4076, - 0x4071, 0x406b, 0x4066, 0x4060, 0x405b, 0x4056, 0x4050, 0x404b, - 0x4045, 0x4040, 0x403a, 0x4035, 0x4030, 0x402a, 0x4025, 0x401f, - 0x401a, 0x4014, 0x400f, 0x4009, 0x4004, 0x3fff, 0x3ff9, 0x3ff4, - 0x3fee, 0x3fe9, 0x3fe3, 0x3fde, 0x3fd8, 0x3fd3, 0x3fce, 0x3fc8, - 0x3fc3, 0x3fbd, 0x3fb8, 0x3fb2, 0x3fad, 0x3fa7, 0x3fa2, 0x3f9d, - 0x3f97, 0x3f92, 0x3f8c, 0x3f87, 0x3f81, 0x3f7c, 0x3f76, 0x3f71, - 0x3f6b, 0x3f66, 0x3f61, 0x3f5b, 0x3f56, 0x3f50, 0x3f4b, 0x3f45, - 0x3f40, 0x3f3a, 0x3f35, 0x3f2f, 0x3f2a, 0x3f24, 0x3f1f, 0x3f1a, - 0x3f14, 0x3f0f, 0x3f09, 0x3f04, 0x3efe, 0x3ef9, 0x3ef3, 0x3eee, - 0x3ee8, 0x3ee3, 0x3edd, 0x3ed8, 0x3ed2, 0x3ecd, 0x3ec7, 0x3ec2, - 0x3ebd, 0x3eb7, 0x3eb2, 0x3eac, 0x3ea7, 0x3ea1, 0x3e9c, 0x3e96, - 0x3e91, 0x3e8b, 0x3e86, 0x3e80, 0x3e7b, 0x3e75, 0x3e70, 0x3e6a, - 0x3e65, 0x3e5f, 0x3e5a, 0x3e54, 0x3e4f, 0x3e49, 0x3e44, 0x3e3e, - 0x3e39, 0x3e33, 0x3e2e, 0x3e28, 0x3e23, 0x3e1d, 0x3e18, 0x3e12, - 0x3e0d, 0x3e07, 0x3e02, 0x3dfc, 0x3df7, 0x3df1, 0x3dec, 0x3de6, - 0x3de1, 0x3ddb, 0x3dd6, 0x3dd0, 0x3dcb, 0x3dc5, 0x3dc0, 0x3dba, - 0x3db5, 0x3daf, 0x3daa, 0x3da4, 0x3d9f, 0x3d99, 0x3d94, 0x3d8e, - 0x3d89, 0x3d83, 0x3d7e, 0x3d78, 0x3d73, 0x3d6d, 0x3d68, 0x3d62, - 0x3d5d, 0x3d57, 0x3d52, 0x3d4c, 0x3d47, 0x3d41, 0x3d3c, 0x3d36, - 0x3d31, 0x3d2b, 0x3d26, 0x3d20, 0x3d1b, 0x3d15, 0x3d10, 0x3d0a, - 0x3d04, 0x3cff, 0x3cf9, 0x3cf4, 0x3cee, 0x3ce9, 0x3ce3, 0x3cde, - 0x3cd8, 0x3cd3, 0x3ccd, 0x3cc8, 0x3cc2, 0x3cbd, 0x3cb7, 0x3cb2, - 0x3cac, 0x3ca7, 0x3ca1, 0x3c9b, 0x3c96, 0x3c90, 0x3c8b, 0x3c85, - 0x3c80, 0x3c7a, 0x3c75, 0x3c6f, 0x3c6a, 0x3c64, 0x3c5f, 0x3c59, - 0x3c53, 0x3c4e, 0x3c48, 0x3c43, 0x3c3d, 0x3c38, 0x3c32, 0x3c2d, - 0x3c27, 0x3c22, 0x3c1c, 0x3c16, 0x3c11, 0x3c0b, 0x3c06, 0x3c00, - 0x3bfb, 0x3bf5, 0x3bf0, 0x3bea, 0x3be5, 0x3bdf, 0x3bd9, 0x3bd4, - 0x3bce, 0x3bc9, 0x3bc3, 0x3bbe, 0x3bb8, 0x3bb3, 0x3bad, 0x3ba7, - 0x3ba2, 0x3b9c, 0x3b97, 0x3b91, 0x3b8c, 0x3b86, 0x3b80, 0x3b7b, - 0x3b75, 0x3b70, 0x3b6a, 0x3b65, 0x3b5f, 0x3b5a, 0x3b54, 0x3b4e, - 0x3b49, 0x3b43, 0x3b3e, 0x3b38, 0x3b33, 0x3b2d, 0x3b27, 0x3b22, - 0x3b1c, 0x3b17, 0x3b11, 0x3b0c, 0x3b06, 0x3b00, 0x3afb, 0x3af5, - 0x3af0, 0x3aea, 0x3ae4, 0x3adf, 0x3ad9, 0x3ad4, 0x3ace, 0x3ac9, - 0x3ac3, 0x3abd, 0x3ab8, 0x3ab2, 0x3aad, 0x3aa7, 0x3aa2, 0x3a9c, - 0x3a96, 0x3a91, 0x3a8b, 0x3a86, 0x3a80, 0x3a7a, 0x3a75, 0x3a6f, - 0x3a6a, 0x3a64, 0x3a5e, 0x3a59, 0x3a53, 0x3a4e, 0x3a48, 0x3a42, - 0x3a3d, 0x3a37, 0x3a32, 0x3a2c, 0x3a26, 0x3a21, 0x3a1b, 0x3a16, - 0x3a10, 0x3a0b, 0x3a05, 0x39ff, 0x39fa, 0x39f4, 0x39ee, 0x39e9, - 0x39e3, 0x39de, 0x39d8, 0x39d2, 0x39cd, 0x39c7, 0x39c2, 0x39bc, - 0x39b6, 0x39b1, 0x39ab, 0x39a6, 0x39a0, 0x399a, 0x3995, 0x398f, - 0x398a, 0x3984, 0x397e, 0x3979, 0x3973, 0x396d, 0x3968, 0x3962, - 0x395d, 0x3957, 0x3951, 0x394c, 0x3946, 0x3941, 0x393b, 0x3935, - 0x3930, 0x392a, 0x3924, 0x391f, 0x3919, 0x3914, 0x390e, 0x3908, - 0x3903, 0x38fd, 0x38f7, 0x38f2, 0x38ec, 0x38e7, 0x38e1, 0x38db, - 0x38d6, 0x38d0, 0x38ca, 0x38c5, 0x38bf, 0x38ba, 0x38b4, 0x38ae, - 0x38a9, 0x38a3, 0x389d, 0x3898, 0x3892, 0x388c, 0x3887, 0x3881, - 0x387c, 0x3876, 0x3870, 0x386b, 0x3865, 0x385f, 0x385a, 0x3854, - 0x384e, 0x3849, 0x3843, 0x383d, 0x3838, 0x3832, 0x382d, 0x3827, - 0x3821, 0x381c, 0x3816, 0x3810, 0x380b, 0x3805, 0x37ff, 0x37fa, - 0x37f4, 0x37ee, 0x37e9, 0x37e3, 0x37dd, 0x37d8, 0x37d2, 0x37cc, - 0x37c7, 0x37c1, 0x37bc, 0x37b6, 0x37b0, 0x37ab, 0x37a5, 0x379f, - 0x379a, 0x3794, 0x378e, 0x3789, 0x3783, 0x377d, 0x3778, 0x3772, - 0x376c, 0x3767, 0x3761, 0x375b, 0x3756, 0x3750, 0x374a, 0x3745, - 0x373f, 0x3739, 0x3734, 0x372e, 0x3728, 0x3723, 0x371d, 0x3717, - 0x3712, 0x370c, 0x3706, 0x3701, 0x36fb, 0x36f5, 0x36f0, 0x36ea, - 0x36e4, 0x36df, 0x36d9, 0x36d3, 0x36ce, 0x36c8, 0x36c2, 0x36bc, - 0x36b7, 0x36b1, 0x36ab, 0x36a6, 0x36a0, 0x369a, 0x3695, 0x368f, - 0x3689, 0x3684, 0x367e, 0x3678, 0x3673, 0x366d, 0x3667, 0x3662, - 0x365c, 0x3656, 0x3650, 0x364b, 0x3645, 0x363f, 0x363a, 0x3634, - 0x362e, 0x3629, 0x3623, 0x361d, 0x3618, 0x3612, 0x360c, 0x3606, - 0x3601, 0x35fb, 0x35f5, 0x35f0, 0x35ea, 0x35e4, 0x35df, 0x35d9, - 0x35d3, 0x35cd, 0x35c8, 0x35c2, 0x35bc, 0x35b7, 0x35b1, 0x35ab, - 0x35a6, 0x35a0, 0x359a, 0x3594, 0x358f, 0x3589, 0x3583, 0x357e, - 0x3578, 0x3572, 0x356c, 0x3567, 0x3561, 0x355b, 0x3556, 0x3550, - 0x354a, 0x3544, 0x353f, 0x3539, 0x3533, 0x352e, 0x3528, 0x3522, - 0x351c, 0x3517, 0x3511, 0x350b, 0x3506, 0x3500, 0x34fa, 0x34f4, - 0x34ef, 0x34e9, 0x34e3, 0x34de, 0x34d8, 0x34d2, 0x34cc, 0x34c7, - 0x34c1, 0x34bb, 0x34b6, 0x34b0, 0x34aa, 0x34a4, 0x349f, 0x3499, - 0x3493, 0x348d, 0x3488, 0x3482, 0x347c, 0x3476, 0x3471, 0x346b, - 0x3465, 0x3460, 0x345a, 0x3454, 0x344e, 0x3449, 0x3443, 0x343d, - 0x3437, 0x3432, 0x342c, 0x3426, 0x3420, 0x341b, 0x3415, 0x340f, - 0x340a, 0x3404, 0x33fe, 0x33f8, 0x33f3, 0x33ed, 0x33e7, 0x33e1, - 0x33dc, 0x33d6, 0x33d0, 0x33ca, 0x33c5, 0x33bf, 0x33b9, 0x33b3, - 0x33ae, 0x33a8, 0x33a2, 0x339c, 0x3397, 0x3391, 0x338b, 0x3385, - 0x3380, 0x337a, 0x3374, 0x336e, 0x3369, 0x3363, 0x335d, 0x3357, - 0x3352, 0x334c, 0x3346, 0x3340, 0x333b, 0x3335, 0x332f, 0x3329, - 0x3324, 0x331e, 0x3318, 0x3312, 0x330c, 0x3307, 0x3301, 0x32fb, - 0x32f5, 0x32f0, 0x32ea, 0x32e4, 0x32de, 0x32d9, 0x32d3, 0x32cd, - 0x32c7, 0x32c2, 0x32bc, 0x32b6, 0x32b0, 0x32aa, 0x32a5, 0x329f, - 0x3299, 0x3293, 0x328e, 0x3288, 0x3282, 0x327c, 0x3276, 0x3271, - 0x326b, 0x3265, 0x325f, 0x325a, 0x3254, 0x324e, 0x3248, 0x3243, - 0x323d, 0x3237, 0x3231, 0x322b, 0x3226, 0x3220, 0x321a, 0x3214, - 0x320e, 0x3209, 0x3203, 0x31fd, 0x31f7, 0x31f2, 0x31ec, 0x31e6, - 0x31e0, 0x31da, 0x31d5, 0x31cf, 0x31c9, 0x31c3, 0x31bd, 0x31b8, - 0x31b2, 0x31ac, 0x31a6, 0x31a1, 0x319b, 0x3195, 0x318f, 0x3189, - 0x3184, 0x317e, 0x3178, 0x3172, 0x316c, 0x3167, 0x3161, 0x315b, - 0x3155, 0x314f, 0x314a, 0x3144, 0x313e, 0x3138, 0x3132, 0x312d, - 0x3127, 0x3121, 0x311b, 0x3115, 0x3110, 0x310a, 0x3104, 0x30fe, - 0x30f8, 0x30f3, 0x30ed, 0x30e7, 0x30e1, 0x30db, 0x30d6, 0x30d0, - 0x30ca, 0x30c4, 0x30be, 0x30b8, 0x30b3, 0x30ad, 0x30a7, 0x30a1, - 0x309b, 0x3096, 0x3090, 0x308a, 0x3084, 0x307e, 0x3079, 0x3073, - 0x306d, 0x3067, 0x3061, 0x305b, 0x3056, 0x3050, 0x304a, 0x3044, - 0x303e, 0x3039, 0x3033, 0x302d, 0x3027, 0x3021, 0x301b, 0x3016, - 0x3010, 0x300a, 0x3004, 0x2ffe, 0x2ff8, 0x2ff3, 0x2fed, 0x2fe7, - 0x2fe1, 0x2fdb, 0x2fd6, 0x2fd0, 0x2fca, 0x2fc4, 0x2fbe, 0x2fb8, - 0x2fb3, 0x2fad, 0x2fa7, 0x2fa1, 0x2f9b, 0x2f95, 0x2f90, 0x2f8a, - 0x2f84, 0x2f7e, 0x2f78, 0x2f72, 0x2f6d, 0x2f67, 0x2f61, 0x2f5b, - 0x2f55, 0x2f4f, 0x2f4a, 0x2f44, 0x2f3e, 0x2f38, 0x2f32, 0x2f2c, - 0x2f27, 0x2f21, 0x2f1b, 0x2f15, 0x2f0f, 0x2f09, 0x2f03, 0x2efe, - 0x2ef8, 0x2ef2, 0x2eec, 0x2ee6, 0x2ee0, 0x2edb, 0x2ed5, 0x2ecf, - 0x2ec9, 0x2ec3, 0x2ebd, 0x2eb7, 0x2eb2, 0x2eac, 0x2ea6, 0x2ea0, - 0x2e9a, 0x2e94, 0x2e8e, 0x2e89, 0x2e83, 0x2e7d, 0x2e77, 0x2e71, - 0x2e6b, 0x2e65, 0x2e60, 0x2e5a, 0x2e54, 0x2e4e, 0x2e48, 0x2e42, - 0x2e3c, 0x2e37, 0x2e31, 0x2e2b, 0x2e25, 0x2e1f, 0x2e19, 0x2e13, - 0x2e0e, 0x2e08, 0x2e02, 0x2dfc, 0x2df6, 0x2df0, 0x2dea, 0x2de5, - 0x2ddf, 0x2dd9, 0x2dd3, 0x2dcd, 0x2dc7, 0x2dc1, 0x2dbb, 0x2db6, - 0x2db0, 0x2daa, 0x2da4, 0x2d9e, 0x2d98, 0x2d92, 0x2d8d, 0x2d87, - 0x2d81, 0x2d7b, 0x2d75, 0x2d6f, 0x2d69, 0x2d63, 0x2d5e, 0x2d58, - 0x2d52, 0x2d4c, 0x2d46, 0x2d40, 0x2d3a, 0x2d34, 0x2d2f, 0x2d29, - 0x2d23, 0x2d1d, 0x2d17, 0x2d11, 0x2d0b, 0x2d05, 0x2cff, 0x2cfa, - 0x2cf4, 0x2cee, 0x2ce8, 0x2ce2, 0x2cdc, 0x2cd6, 0x2cd0, 0x2ccb, - 0x2cc5, 0x2cbf, 0x2cb9, 0x2cb3, 0x2cad, 0x2ca7, 0x2ca1, 0x2c9b, - 0x2c96, 0x2c90, 0x2c8a, 0x2c84, 0x2c7e, 0x2c78, 0x2c72, 0x2c6c, - 0x2c66, 0x2c61, 0x2c5b, 0x2c55, 0x2c4f, 0x2c49, 0x2c43, 0x2c3d, - 0x2c37, 0x2c31, 0x2c2b, 0x2c26, 0x2c20, 0x2c1a, 0x2c14, 0x2c0e, - 0x2c08, 0x2c02, 0x2bfc, 0x2bf6, 0x2bf0, 0x2beb, 0x2be5, 0x2bdf, - 0x2bd9, 0x2bd3, 0x2bcd, 0x2bc7, 0x2bc1, 0x2bbb, 0x2bb5, 0x2bb0, - 0x2baa, 0x2ba4, 0x2b9e, 0x2b98, 0x2b92, 0x2b8c, 0x2b86, 0x2b80, - 0x2b7a, 0x2b74, 0x2b6f, 0x2b69, 0x2b63, 0x2b5d, 0x2b57, 0x2b51, - 0x2b4b, 0x2b45, 0x2b3f, 0x2b39, 0x2b33, 0x2b2d, 0x2b28, 0x2b22, - 0x2b1c, 0x2b16, 0x2b10, 0x2b0a, 0x2b04, 0x2afe, 0x2af8, 0x2af2, - 0x2aec, 0x2ae6, 0x2ae1, 0x2adb, 0x2ad5, 0x2acf, 0x2ac9, 0x2ac3, - 0x2abd, 0x2ab7, 0x2ab1, 0x2aab, 0x2aa5, 0x2a9f, 0x2a99, 0x2a94, - 0x2a8e, 0x2a88, 0x2a82, 0x2a7c, 0x2a76, 0x2a70, 0x2a6a, 0x2a64, - 0x2a5e, 0x2a58, 0x2a52, 0x2a4c, 0x2a47, 0x2a41, 0x2a3b, 0x2a35, - 0x2a2f, 0x2a29, 0x2a23, 0x2a1d, 0x2a17, 0x2a11, 0x2a0b, 0x2a05, - 0x29ff, 0x29f9, 0x29f3, 0x29ee, 0x29e8, 0x29e2, 0x29dc, 0x29d6, - 0x29d0, 0x29ca, 0x29c4, 0x29be, 0x29b8, 0x29b2, 0x29ac, 0x29a6, - 0x29a0, 0x299a, 0x2994, 0x298e, 0x2989, 0x2983, 0x297d, 0x2977, - 0x2971, 0x296b, 0x2965, 0x295f, 0x2959, 0x2953, 0x294d, 0x2947, - 0x2941, 0x293b, 0x2935, 0x292f, 0x2929, 0x2923, 0x291d, 0x2918, - 0x2912, 0x290c, 0x2906, 0x2900, 0x28fa, 0x28f4, 0x28ee, 0x28e8, - 0x28e2, 0x28dc, 0x28d6, 0x28d0, 0x28ca, 0x28c4, 0x28be, 0x28b8, - 0x28b2, 0x28ac, 0x28a6, 0x28a0, 0x289a, 0x2895, 0x288f, 0x2889, - 0x2883, 0x287d, 0x2877, 0x2871, 0x286b, 0x2865, 0x285f, 0x2859, - 0x2853, 0x284d, 0x2847, 0x2841, 0x283b, 0x2835, 0x282f, 0x2829, - 0x2823, 0x281d, 0x2817, 0x2811, 0x280b, 0x2805, 0x27ff, 0x27f9, - 0x27f3, 0x27ee, 0x27e8, 0x27e2, 0x27dc, 0x27d6, 0x27d0, 0x27ca, - 0x27c4, 0x27be, 0x27b8, 0x27b2, 0x27ac, 0x27a6, 0x27a0, 0x279a, - 0x2794, 0x278e, 0x2788, 0x2782, 0x277c, 0x2776, 0x2770, 0x276a, - 0x2764, 0x275e, 0x2758, 0x2752, 0x274c, 0x2746, 0x2740, 0x273a, - 0x2734, 0x272e, 0x2728, 0x2722, 0x271c, 0x2716, 0x2710, 0x270a, - 0x2704, 0x26fe, 0x26f8, 0x26f2, 0x26ec, 0x26e7, 0x26e1, 0x26db, - 0x26d5, 0x26cf, 0x26c9, 0x26c3, 0x26bd, 0x26b7, 0x26b1, 0x26ab, - 0x26a5, 0x269f, 0x2699, 0x2693, 0x268d, 0x2687, 0x2681, 0x267b, - 0x2675, 0x266f, 0x2669, 0x2663, 0x265d, 0x2657, 0x2651, 0x264b, - 0x2645, 0x263f, 0x2639, 0x2633, 0x262d, 0x2627, 0x2621, 0x261b, - 0x2615, 0x260f, 0x2609, 0x2603, 0x25fd, 0x25f7, 0x25f1, 0x25eb, - 0x25e5, 0x25df, 0x25d9, 0x25d3, 0x25cd, 0x25c7, 0x25c1, 0x25bb, - 0x25b5, 0x25af, 0x25a9, 0x25a3, 0x259d, 0x2597, 0x2591, 0x258b, - 0x2585, 0x257f, 0x2579, 0x2573, 0x256d, 0x2567, 0x2561, 0x255b, - 0x2555, 0x254f, 0x2549, 0x2543, 0x253d, 0x2537, 0x2531, 0x252b, - 0x2525, 0x251f, 0x2519, 0x2513, 0x250c, 0x2506, 0x2500, 0x24fa, - 0x24f4, 0x24ee, 0x24e8, 0x24e2, 0x24dc, 0x24d6, 0x24d0, 0x24ca, - 0x24c4, 0x24be, 0x24b8, 0x24b2, 0x24ac, 0x24a6, 0x24a0, 0x249a, - 0x2494, 0x248e, 0x2488, 0x2482, 0x247c, 0x2476, 0x2470, 0x246a, - 0x2464, 0x245e, 0x2458, 0x2452, 0x244c, 0x2446, 0x2440, 0x243a, - 0x2434, 0x242e, 0x2428, 0x2422, 0x241c, 0x2416, 0x2410, 0x240a, - 0x2404, 0x23fd, 0x23f7, 0x23f1, 0x23eb, 0x23e5, 0x23df, 0x23d9, - 0x23d3, 0x23cd, 0x23c7, 0x23c1, 0x23bb, 0x23b5, 0x23af, 0x23a9, - 0x23a3, 0x239d, 0x2397, 0x2391, 0x238b, 0x2385, 0x237f, 0x2379, - 0x2373, 0x236d, 0x2367, 0x2361, 0x235b, 0x2355, 0x234e, 0x2348, - 0x2342, 0x233c, 0x2336, 0x2330, 0x232a, 0x2324, 0x231e, 0x2318, - 0x2312, 0x230c, 0x2306, 0x2300, 0x22fa, 0x22f4, 0x22ee, 0x22e8, - 0x22e2, 0x22dc, 0x22d6, 0x22d0, 0x22ca, 0x22c4, 0x22bd, 0x22b7, - 0x22b1, 0x22ab, 0x22a5, 0x229f, 0x2299, 0x2293, 0x228d, 0x2287, - 0x2281, 0x227b, 0x2275, 0x226f, 0x2269, 0x2263, 0x225d, 0x2257, - 0x2251, 0x224a, 0x2244, 0x223e, 0x2238, 0x2232, 0x222c, 0x2226, - 0x2220, 0x221a, 0x2214, 0x220e, 0x2208, 0x2202, 0x21fc, 0x21f6, - 0x21f0, 0x21ea, 0x21e4, 0x21dd, 0x21d7, 0x21d1, 0x21cb, 0x21c5, - 0x21bf, 0x21b9, 0x21b3, 0x21ad, 0x21a7, 0x21a1, 0x219b, 0x2195, - 0x218f, 0x2189, 0x2183, 0x217c, 0x2176, 0x2170, 0x216a, 0x2164, - 0x215e, 0x2158, 0x2152, 0x214c, 0x2146, 0x2140, 0x213a, 0x2134, - 0x212e, 0x2128, 0x2121, 0x211b, 0x2115, 0x210f, 0x2109, 0x2103, - 0x20fd, 0x20f7, 0x20f1, 0x20eb, 0x20e5, 0x20df, 0x20d9, 0x20d3, - 0x20cc, 0x20c6, 0x20c0, 0x20ba, 0x20b4, 0x20ae, 0x20a8, 0x20a2, - 0x209c, 0x2096, 0x2090, 0x208a, 0x2084, 0x207e, 0x2077, 0x2071, - 0x206b, 0x2065, 0x205f, 0x2059, 0x2053, 0x204d, 0x2047, 0x2041, - 0x203b, 0x2035, 0x202e, 0x2028, 0x2022, 0x201c, 0x2016, 0x2010, - 0x200a, 0x2004, 0x1ffe, 0x1ff8, 0x1ff2, 0x1fec, 0x1fe5, 0x1fdf, - 0x1fd9, 0x1fd3, 0x1fcd, 0x1fc7, 0x1fc1, 0x1fbb, 0x1fb5, 0x1faf, - 0x1fa9, 0x1fa3, 0x1f9c, 0x1f96, 0x1f90, 0x1f8a, 0x1f84, 0x1f7e, - 0x1f78, 0x1f72, 0x1f6c, 0x1f66, 0x1f60, 0x1f59, 0x1f53, 0x1f4d, - 0x1f47, 0x1f41, 0x1f3b, 0x1f35, 0x1f2f, 0x1f29, 0x1f23, 0x1f1d, - 0x1f16, 0x1f10, 0x1f0a, 0x1f04, 0x1efe, 0x1ef8, 0x1ef2, 0x1eec, - 0x1ee6, 0x1ee0, 0x1ed9, 0x1ed3, 0x1ecd, 0x1ec7, 0x1ec1, 0x1ebb, - 0x1eb5, 0x1eaf, 0x1ea9, 0x1ea3, 0x1e9c, 0x1e96, 0x1e90, 0x1e8a, - 0x1e84, 0x1e7e, 0x1e78, 0x1e72, 0x1e6c, 0x1e66, 0x1e5f, 0x1e59, - 0x1e53, 0x1e4d, 0x1e47, 0x1e41, 0x1e3b, 0x1e35, 0x1e2f, 0x1e29, - 0x1e22, 0x1e1c, 0x1e16, 0x1e10, 0x1e0a, 0x1e04, 0x1dfe, 0x1df8, - 0x1df2, 0x1deb, 0x1de5, 0x1ddf, 0x1dd9, 0x1dd3, 0x1dcd, 0x1dc7, - 0x1dc1, 0x1dbb, 0x1db4, 0x1dae, 0x1da8, 0x1da2, 0x1d9c, 0x1d96, - 0x1d90, 0x1d8a, 0x1d84, 0x1d7d, 0x1d77, 0x1d71, 0x1d6b, 0x1d65, - 0x1d5f, 0x1d59, 0x1d53, 0x1d4c, 0x1d46, 0x1d40, 0x1d3a, 0x1d34, - 0x1d2e, 0x1d28, 0x1d22, 0x1d1c, 0x1d15, 0x1d0f, 0x1d09, 0x1d03, - 0x1cfd, 0x1cf7, 0x1cf1, 0x1ceb, 0x1ce4, 0x1cde, 0x1cd8, 0x1cd2, - 0x1ccc, 0x1cc6, 0x1cc0, 0x1cba, 0x1cb3, 0x1cad, 0x1ca7, 0x1ca1, - 0x1c9b, 0x1c95, 0x1c8f, 0x1c89, 0x1c83, 0x1c7c, 0x1c76, 0x1c70, - 0x1c6a, 0x1c64, 0x1c5e, 0x1c58, 0x1c51, 0x1c4b, 0x1c45, 0x1c3f, - 0x1c39, 0x1c33, 0x1c2d, 0x1c27, 0x1c20, 0x1c1a, 0x1c14, 0x1c0e, - 0x1c08, 0x1c02, 0x1bfc, 0x1bf6, 0x1bef, 0x1be9, 0x1be3, 0x1bdd, - 0x1bd7, 0x1bd1, 0x1bcb, 0x1bc4, 0x1bbe, 0x1bb8, 0x1bb2, 0x1bac, - 0x1ba6, 0x1ba0, 0x1b9a, 0x1b93, 0x1b8d, 0x1b87, 0x1b81, 0x1b7b, - 0x1b75, 0x1b6f, 0x1b68, 0x1b62, 0x1b5c, 0x1b56, 0x1b50, 0x1b4a, - 0x1b44, 0x1b3d, 0x1b37, 0x1b31, 0x1b2b, 0x1b25, 0x1b1f, 0x1b19, - 0x1b13, 0x1b0c, 0x1b06, 0x1b00, 0x1afa, 0x1af4, 0x1aee, 0x1ae8, - 0x1ae1, 0x1adb, 0x1ad5, 0x1acf, 0x1ac9, 0x1ac3, 0x1abd, 0x1ab6, - 0x1ab0, 0x1aaa, 0x1aa4, 0x1a9e, 0x1a98, 0x1a91, 0x1a8b, 0x1a85, - 0x1a7f, 0x1a79, 0x1a73, 0x1a6d, 0x1a66, 0x1a60, 0x1a5a, 0x1a54, - 0x1a4e, 0x1a48, 0x1a42, 0x1a3b, 0x1a35, 0x1a2f, 0x1a29, 0x1a23, - 0x1a1d, 0x1a17, 0x1a10, 0x1a0a, 0x1a04, 0x19fe, 0x19f8, 0x19f2, - 0x19eb, 0x19e5, 0x19df, 0x19d9, 0x19d3, 0x19cd, 0x19c7, 0x19c0, - 0x19ba, 0x19b4, 0x19ae, 0x19a8, 0x19a2, 0x199b, 0x1995, 0x198f, - 0x1989, 0x1983, 0x197d, 0x1977, 0x1970, 0x196a, 0x1964, 0x195e, - 0x1958, 0x1952, 0x194b, 0x1945, 0x193f, 0x1939, 0x1933, 0x192d, - 0x1926, 0x1920, 0x191a, 0x1914, 0x190e, 0x1908, 0x1901, 0x18fb, - 0x18f5, 0x18ef, 0x18e9, 0x18e3, 0x18dc, 0x18d6, 0x18d0, 0x18ca, - 0x18c4, 0x18be, 0x18b8, 0x18b1, 0x18ab, 0x18a5, 0x189f, 0x1899, - 0x1893, 0x188c, 0x1886, 0x1880, 0x187a, 0x1874, 0x186e, 0x1867, - 0x1861, 0x185b, 0x1855, 0x184f, 0x1848, 0x1842, 0x183c, 0x1836, - 0x1830, 0x182a, 0x1823, 0x181d, 0x1817, 0x1811, 0x180b, 0x1805, - 0x17fe, 0x17f8, 0x17f2, 0x17ec, 0x17e6, 0x17e0, 0x17d9, 0x17d3, - 0x17cd, 0x17c7, 0x17c1, 0x17bb, 0x17b4, 0x17ae, 0x17a8, 0x17a2, - 0x179c, 0x1795, 0x178f, 0x1789, 0x1783, 0x177d, 0x1777, 0x1770, - 0x176a, 0x1764, 0x175e, 0x1758, 0x1752, 0x174b, 0x1745, 0x173f, - 0x1739, 0x1733, 0x172c, 0x1726, 0x1720, 0x171a, 0x1714, 0x170e, - 0x1707, 0x1701, 0x16fb, 0x16f5, 0x16ef, 0x16e8, 0x16e2, 0x16dc, - 0x16d6, 0x16d0, 0x16ca, 0x16c3, 0x16bd, 0x16b7, 0x16b1, 0x16ab, - 0x16a4, 0x169e, 0x1698, 0x1692, 0x168c, 0x1686, 0x167f, 0x1679, - 0x1673, 0x166d, 0x1667, 0x1660, 0x165a, 0x1654, 0x164e, 0x1648, - 0x1642, 0x163b, 0x1635, 0x162f, 0x1629, 0x1623, 0x161c, 0x1616, - 0x1610, 0x160a, 0x1604, 0x15fd, 0x15f7, 0x15f1, 0x15eb, 0x15e5, - 0x15de, 0x15d8, 0x15d2, 0x15cc, 0x15c6, 0x15c0, 0x15b9, 0x15b3, - 0x15ad, 0x15a7, 0x15a1, 0x159a, 0x1594, 0x158e, 0x1588, 0x1582, - 0x157b, 0x1575, 0x156f, 0x1569, 0x1563, 0x155c, 0x1556, 0x1550, - 0x154a, 0x1544, 0x153d, 0x1537, 0x1531, 0x152b, 0x1525, 0x151e, - 0x1518, 0x1512, 0x150c, 0x1506, 0x14ff, 0x14f9, 0x14f3, 0x14ed, - 0x14e7, 0x14e0, 0x14da, 0x14d4, 0x14ce, 0x14c8, 0x14c1, 0x14bb, - 0x14b5, 0x14af, 0x14a9, 0x14a2, 0x149c, 0x1496, 0x1490, 0x148a, - 0x1483, 0x147d, 0x1477, 0x1471, 0x146b, 0x1464, 0x145e, 0x1458, - 0x1452, 0x144c, 0x1445, 0x143f, 0x1439, 0x1433, 0x142d, 0x1426, - 0x1420, 0x141a, 0x1414, 0x140e, 0x1407, 0x1401, 0x13fb, 0x13f5, - 0x13ef, 0x13e8, 0x13e2, 0x13dc, 0x13d6, 0x13d0, 0x13c9, 0x13c3, - 0x13bd, 0x13b7, 0x13b1, 0x13aa, 0x13a4, 0x139e, 0x1398, 0x1391, - 0x138b, 0x1385, 0x137f, 0x1379, 0x1372, 0x136c, 0x1366, 0x1360, - 0x135a, 0x1353, 0x134d, 0x1347, 0x1341, 0x133b, 0x1334, 0x132e, - 0x1328, 0x1322, 0x131b, 0x1315, 0x130f, 0x1309, 0x1303, 0x12fc, - 0x12f6, 0x12f0, 0x12ea, 0x12e4, 0x12dd, 0x12d7, 0x12d1, 0x12cb, - 0x12c4, 0x12be, 0x12b8, 0x12b2, 0x12ac, 0x12a5, 0x129f, 0x1299, - 0x1293, 0x128d, 0x1286, 0x1280, 0x127a, 0x1274, 0x126d, 0x1267, - 0x1261, 0x125b, 0x1255, 0x124e, 0x1248, 0x1242, 0x123c, 0x1235, - 0x122f, 0x1229, 0x1223, 0x121d, 0x1216, 0x1210, 0x120a, 0x1204, - 0x11fd, 0x11f7, 0x11f1, 0x11eb, 0x11e5, 0x11de, 0x11d8, 0x11d2, - 0x11cc, 0x11c5, 0x11bf, 0x11b9, 0x11b3, 0x11ad, 0x11a6, 0x11a0, - 0x119a, 0x1194, 0x118d, 0x1187, 0x1181, 0x117b, 0x1175, 0x116e, - 0x1168, 0x1162, 0x115c, 0x1155, 0x114f, 0x1149, 0x1143, 0x113d, - 0x1136, 0x1130, 0x112a, 0x1124, 0x111d, 0x1117, 0x1111, 0x110b, - 0x1105, 0x10fe, 0x10f8, 0x10f2, 0x10ec, 0x10e5, 0x10df, 0x10d9, - 0x10d3, 0x10cc, 0x10c6, 0x10c0, 0x10ba, 0x10b4, 0x10ad, 0x10a7, - 0x10a1, 0x109b, 0x1094, 0x108e, 0x1088, 0x1082, 0x107b, 0x1075, - 0x106f, 0x1069, 0x1063, 0x105c, 0x1056, 0x1050, 0x104a, 0x1043, - 0x103d, 0x1037, 0x1031, 0x102a, 0x1024, 0x101e, 0x1018, 0x1012, - 0x100b, 0x1005, 0xfff, 0xff9, 0xff2, 0xfec, 0xfe6, 0xfe0, - 0xfd9, 0xfd3, 0xfcd, 0xfc7, 0xfc0, 0xfba, 0xfb4, 0xfae, - 0xfa8, 0xfa1, 0xf9b, 0xf95, 0xf8f, 0xf88, 0xf82, 0xf7c, - 0xf76, 0xf6f, 0xf69, 0xf63, 0xf5d, 0xf56, 0xf50, 0xf4a, - 0xf44, 0xf3e, 0xf37, 0xf31, 0xf2b, 0xf25, 0xf1e, 0xf18, - 0xf12, 0xf0c, 0xf05, 0xeff, 0xef9, 0xef3, 0xeec, 0xee6, - 0xee0, 0xeda, 0xed3, 0xecd, 0xec7, 0xec1, 0xeba, 0xeb4, - 0xeae, 0xea8, 0xea1, 0xe9b, 0xe95, 0xe8f, 0xe89, 0xe82, - 0xe7c, 0xe76, 0xe70, 0xe69, 0xe63, 0xe5d, 0xe57, 0xe50, - 0xe4a, 0xe44, 0xe3e, 0xe37, 0xe31, 0xe2b, 0xe25, 0xe1e, - 0xe18, 0xe12, 0xe0c, 0xe05, 0xdff, 0xdf9, 0xdf3, 0xdec, - 0xde6, 0xde0, 0xdda, 0xdd3, 0xdcd, 0xdc7, 0xdc1, 0xdba, - 0xdb4, 0xdae, 0xda8, 0xda1, 0xd9b, 0xd95, 0xd8f, 0xd88, - 0xd82, 0xd7c, 0xd76, 0xd6f, 0xd69, 0xd63, 0xd5d, 0xd56, - 0xd50, 0xd4a, 0xd44, 0xd3d, 0xd37, 0xd31, 0xd2b, 0xd24, - 0xd1e, 0xd18, 0xd12, 0xd0b, 0xd05, 0xcff, 0xcf9, 0xcf2, - 0xcec, 0xce6, 0xce0, 0xcd9, 0xcd3, 0xccd, 0xcc7, 0xcc0, - 0xcba, 0xcb4, 0xcae, 0xca7, 0xca1, 0xc9b, 0xc95, 0xc8e, - 0xc88, 0xc82, 0xc7c, 0xc75, 0xc6f, 0xc69, 0xc63, 0xc5c, - 0xc56, 0xc50, 0xc4a, 0xc43, 0xc3d, 0xc37, 0xc31, 0xc2a, - 0xc24, 0xc1e, 0xc18, 0xc11, 0xc0b, 0xc05, 0xbff, 0xbf8, - 0xbf2, 0xbec, 0xbe6, 0xbdf, 0xbd9, 0xbd3, 0xbcd, 0xbc6, - 0xbc0, 0xbba, 0xbb4, 0xbad, 0xba7, 0xba1, 0xb9b, 0xb94, - 0xb8e, 0xb88, 0xb81, 0xb7b, 0xb75, 0xb6f, 0xb68, 0xb62, - 0xb5c, 0xb56, 0xb4f, 0xb49, 0xb43, 0xb3d, 0xb36, 0xb30, - 0xb2a, 0xb24, 0xb1d, 0xb17, 0xb11, 0xb0b, 0xb04, 0xafe, - 0xaf8, 0xaf2, 0xaeb, 0xae5, 0xadf, 0xad8, 0xad2, 0xacc, - 0xac6, 0xabf, 0xab9, 0xab3, 0xaad, 0xaa6, 0xaa0, 0xa9a, - 0xa94, 0xa8d, 0xa87, 0xa81, 0xa7b, 0xa74, 0xa6e, 0xa68, - 0xa62, 0xa5b, 0xa55, 0xa4f, 0xa48, 0xa42, 0xa3c, 0xa36, - 0xa2f, 0xa29, 0xa23, 0xa1d, 0xa16, 0xa10, 0xa0a, 0xa04, - 0x9fd, 0x9f7, 0x9f1, 0x9eb, 0x9e4, 0x9de, 0x9d8, 0x9d1, - 0x9cb, 0x9c5, 0x9bf, 0x9b8, 0x9b2, 0x9ac, 0x9a6, 0x99f, - 0x999, 0x993, 0x98d, 0x986, 0x980, 0x97a, 0x973, 0x96d, - 0x967, 0x961, 0x95a, 0x954, 0x94e, 0x948, 0x941, 0x93b, - 0x935, 0x92f, 0x928, 0x922, 0x91c, 0x915, 0x90f, 0x909, - 0x903, 0x8fc, 0x8f6, 0x8f0, 0x8ea, 0x8e3, 0x8dd, 0x8d7, - 0x8d1, 0x8ca, 0x8c4, 0x8be, 0x8b7, 0x8b1, 0x8ab, 0x8a5, - 0x89e, 0x898, 0x892, 0x88c, 0x885, 0x87f, 0x879, 0x872, - 0x86c, 0x866, 0x860, 0x859, 0x853, 0x84d, 0x847, 0x840, - 0x83a, 0x834, 0x82e, 0x827, 0x821, 0x81b, 0x814, 0x80e, - 0x808, 0x802, 0x7fb, 0x7f5, 0x7ef, 0x7e9, 0x7e2, 0x7dc, - 0x7d6, 0x7cf, 0x7c9, 0x7c3, 0x7bd, 0x7b6, 0x7b0, 0x7aa, - 0x7a4, 0x79d, 0x797, 0x791, 0x78a, 0x784, 0x77e, 0x778, - 0x771, 0x76b, 0x765, 0x75f, 0x758, 0x752, 0x74c, 0x745, - 0x73f, 0x739, 0x733, 0x72c, 0x726, 0x720, 0x71a, 0x713, - 0x70d, 0x707, 0x700, 0x6fa, 0x6f4, 0x6ee, 0x6e7, 0x6e1, - 0x6db, 0x6d5, 0x6ce, 0x6c8, 0x6c2, 0x6bb, 0x6b5, 0x6af, - 0x6a9, 0x6a2, 0x69c, 0x696, 0x690, 0x689, 0x683, 0x67d, - 0x676, 0x670, 0x66a, 0x664, 0x65d, 0x657, 0x651, 0x64a, - 0x644, 0x63e, 0x638, 0x631, 0x62b, 0x625, 0x61f, 0x618, - 0x612, 0x60c, 0x605, 0x5ff, 0x5f9, 0x5f3, 0x5ec, 0x5e6, - 0x5e0, 0x5da, 0x5d3, 0x5cd, 0x5c7, 0x5c0, 0x5ba, 0x5b4, - 0x5ae, 0x5a7, 0x5a1, 0x59b, 0x594, 0x58e, 0x588, 0x582, - 0x57b, 0x575, 0x56f, 0x569, 0x562, 0x55c, 0x556, 0x54f, - 0x549, 0x543, 0x53d, 0x536, 0x530, 0x52a, 0x523, 0x51d, - 0x517, 0x511, 0x50a, 0x504, 0x4fe, 0x4f8, 0x4f1, 0x4eb, - 0x4e5, 0x4de, 0x4d8, 0x4d2, 0x4cc, 0x4c5, 0x4bf, 0x4b9, - 0x4b2, 0x4ac, 0x4a6, 0x4a0, 0x499, 0x493, 0x48d, 0x487, - 0x480, 0x47a, 0x474, 0x46d, 0x467, 0x461, 0x45b, 0x454, - 0x44e, 0x448, 0x441, 0x43b, 0x435, 0x42f, 0x428, 0x422, - 0x41c, 0x415, 0x40f, 0x409, 0x403, 0x3fc, 0x3f6, 0x3f0, - 0x3ea, 0x3e3, 0x3dd, 0x3d7, 0x3d0, 0x3ca, 0x3c4, 0x3be, - 0x3b7, 0x3b1, 0x3ab, 0x3a4, 0x39e, 0x398, 0x392, 0x38b, - 0x385, 0x37f, 0x378, 0x372, 0x36c, 0x366, 0x35f, 0x359, - 0x353, 0x34c, 0x346, 0x340, 0x33a, 0x333, 0x32d, 0x327, - 0x321, 0x31a, 0x314, 0x30e, 0x307, 0x301, 0x2fb, 0x2f5, - 0x2ee, 0x2e8, 0x2e2, 0x2db, 0x2d5, 0x2cf, 0x2c9, 0x2c2, - 0x2bc, 0x2b6, 0x2af, 0x2a9, 0x2a3, 0x29d, 0x296, 0x290, - 0x28a, 0x283, 0x27d, 0x277, 0x271, 0x26a, 0x264, 0x25e, - 0x258, 0x251, 0x24b, 0x245, 0x23e, 0x238, 0x232, 0x22c, - 0x225, 0x21f, 0x219, 0x212, 0x20c, 0x206, 0x200, 0x1f9, - 0x1f3, 0x1ed, 0x1e6, 0x1e0, 0x1da, 0x1d4, 0x1cd, 0x1c7, - 0x1c1, 0x1ba, 0x1b4, 0x1ae, 0x1a8, 0x1a1, 0x19b, 0x195, - 0x18e, 0x188, 0x182, 0x17c, 0x175, 0x16f, 0x169, 0x162, - 0x15c, 0x156, 0x150, 0x149, 0x143, 0x13d, 0x137, 0x130, - 0x12a, 0x124, 0x11d, 0x117, 0x111, 0x10b, 0x104, 0xfe, - 0xf8, 0xf1, 0xeb, 0xe5, 0xdf, 0xd8, 0xd2, 0xcc, - 0xc5, 0xbf, 0xb9, 0xb3, 0xac, 0xa6, 0xa0, 0x99, - 0x93, 0x8d, 0x87, 0x80, 0x7a, 0x74, 0x6d, 0x67, - 0x61, 0x5b, 0x54, 0x4e, 0x48, 0x41, 0x3b, 0x35, - 0x2f, 0x28, 0x22, 0x1c, 0x15, 0xf, 0x9, 0x3, -}; - -/** - * @brief Initialization function for the Q15 DCT4/IDCT4. - * @param[in,out] *S points to an instance of Q15 DCT4/IDCT4 structure. - * @param[in] *S_RFFT points to an instance of Q15 RFFT/RIFFT structure. - * @param[in] *S_CFFT points to an instance of Q15 CFFT/CIFFT structure. - * @param[in] N length of the DCT4. - * @param[in] Nby2 half of the length of the DCT4. - * @param[in] normalize normalizing factor. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. - * \par Normalizing factor: - * The normalizing factor is sqrt(2/N), which depends on the size of transform N. - * Normalizing factors in 1.15 format are mentioned in the table below for different DCT sizes: - * \image html dct4NormalizingQ15Table.gif - */ - -arm_status arm_dct4_init_q15( - arm_dct4_instance_q15 * S, - arm_rfft_instance_q15 * S_RFFT, - arm_cfft_radix4_instance_q15 * S_CFFT, - uint16_t N, - uint16_t Nby2, - q15_t normalize) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initializing the pointer array with the weight table base addresses of different lengths */ - q15_t *twiddlePtr[4] = { (q15_t *) WeightsQ15_128, (q15_t *) WeightsQ15_512, - (q15_t *) WeightsQ15_2048, (q15_t *) WeightsQ15_8192 - }; - - /* Initializing the pointer array with the cos factor table base addresses of different lengths */ - q15_t *pCosFactor[4] = - { (q15_t *) cos_factorsQ15_128, (q15_t *) cos_factorsQ15_512, - (q15_t *) cos_factorsQ15_2048, (q15_t *) cos_factorsQ15_8192 - }; - - /* Initialize the DCT4 length */ - S->N = N; - - /* Initialize the half of DCT4 length */ - S->Nby2 = Nby2; - - /* Initialize the DCT4 Normalizing factor */ - S->normalize = normalize; - - /* Initialize Real FFT Instance */ - S->pRfft = S_RFFT; - - /* Initialize Complex FFT Instance */ - S->pCfft = S_CFFT; - - switch (N) - { - /* Initialize the table modifier values */ - case 8192u: - S->pTwiddle = twiddlePtr[3]; - S->pCosFactor = pCosFactor[3]; - break; - case 2048u: - S->pTwiddle = twiddlePtr[2]; - S->pCosFactor = pCosFactor[2]; - break; - case 512u: - S->pTwiddle = twiddlePtr[1]; - S->pCosFactor = pCosFactor[1]; - break; - case 128u: - S->pTwiddle = twiddlePtr[0]; - S->pCosFactor = pCosFactor[0]; - break; - default: - status = ARM_MATH_ARGUMENT_ERROR; - } - - /* Initialize the RFFT/RIFFT */ - arm_rfft_init_q15(S->pRfft, S->pCfft, S->N, 0u, 1u); - - /* return the status of DCT4 Init function */ - return (status); -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q31.c deleted file mode 100644 index 211cdadf38..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q31.c +++ /dev/null @@ -1,8356 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dct4_init_q31.c -* -* Description: Initialization function of DCT-4 & IDCT4 Q31 -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/* -* @brief Weights Table -*/ - -/** -* \par -* Weights tables are generated using the formula :
weights[n] = e^(-j*n*pi/(2*N))
-* \par -* C command to generate the table -*
    
-* for(i = 0; i< N; i++)    
-* {    
-*   weights[2*i]= cos(i*c);    
-*   weights[(2*i)+1]= -sin(i * c);    
-* } 
-* \par -* where N is the Number of weights to be calculated and c is pi/(2*N) -* \par -* Convert the output to q31 format by multiplying with 2^31 and saturated if required. -* \par -* In the tables below the real and imaginary values are placed alternatively, hence the -* array length is 2*N. -*/ - -static const q31_t WeightsQ31_128[256] = { - 0x7fffffff, 0x0, 0x7ffd885a, 0xfe6de2e0, 0x7ff62182, 0xfcdbd541, 0x7fe9cbc0, - 0xfb49e6a3, - 0x7fd8878e, 0xf9b82684, 0x7fc25596, 0xf826a462, 0x7fa736b4, 0xf6956fb7, - 0x7f872bf3, 0xf50497fb, - 0x7f62368f, 0xf3742ca2, 0x7f3857f6, 0xf1e43d1c, 0x7f0991c4, 0xf054d8d5, - 0x7ed5e5c6, 0xeec60f31, - 0x7e9d55fc, 0xed37ef91, 0x7e5fe493, 0xebaa894f, 0x7e1d93ea, 0xea1debbb, - 0x7dd6668f, 0xe8922622, - 0x7d8a5f40, 0xe70747c4, 0x7d3980ec, 0xe57d5fda, 0x7ce3ceb2, 0xe3f47d96, - 0x7c894bde, 0xe26cb01b, - 0x7c29fbee, 0xe0e60685, 0x7bc5e290, 0xdf608fe4, 0x7b5d039e, 0xdddc5b3b, - 0x7aef6323, 0xdc597781, - 0x7a7d055b, 0xdad7f3a2, 0x7a05eead, 0xd957de7a, 0x798a23b1, 0xd7d946d8, - 0x7909a92d, 0xd65c3b7b, - 0x78848414, 0xd4e0cb15, 0x77fab989, 0xd3670446, 0x776c4edb, 0xd1eef59e, - 0x76d94989, 0xd078ad9e, - 0x7641af3d, 0xcf043ab3, 0x75a585cf, 0xcd91ab39, 0x7504d345, 0xcc210d79, - 0x745f9dd1, 0xcab26fa9, - 0x73b5ebd1, 0xc945dfec, 0x7307c3d0, 0xc7db6c50, 0x72552c85, 0xc67322ce, - 0x719e2cd2, 0xc50d1149, - 0x70e2cbc6, 0xc3a94590, 0x7023109a, 0xc247cd5a, 0x6f5f02b2, 0xc0e8b648, - 0x6e96a99d, 0xbf8c0de3, - 0x6dca0d14, 0xbe31e19b, 0x6cf934fc, 0xbcda3ecb, 0x6c242960, 0xbb8532b0, - 0x6b4af279, 0xba32ca71, - 0x6a6d98a4, 0xb8e31319, 0x698c246c, 0xb796199b, 0x68a69e81, 0xb64beacd, - 0x67bd0fbd, 0xb5049368, - 0x66cf8120, 0xb3c0200c, 0x65ddfbd3, 0xb27e9d3c, 0x64e88926, 0xb140175b, - 0x63ef3290, 0xb0049ab3, - 0x62f201ac, 0xaecc336c, 0x61f1003f, 0xad96ed92, 0x60ec3830, 0xac64d510, - 0x5fe3b38d, 0xab35f5b5, - 0x5ed77c8a, 0xaa0a5b2e, 0x5dc79d7c, 0xa8e21106, 0x5cb420e0, 0xa7bd22ac, - 0x5b9d1154, 0xa69b9b68, - 0x5a82799a, 0xa57d8666, 0x59646498, 0xa462eeac, 0x5842dd54, 0xa34bdf20, - 0x571deefa, 0xa2386284, - 0x55f5a4d2, 0xa1288376, 0x54ca0a4b, 0xa01c4c73, 0x539b2af0, 0x9f13c7d0, - 0x5269126e, 0x9e0effc1, - 0x5133cc94, 0x9d0dfe54, 0x4ffb654d, 0x9c10cd70, 0x4ebfe8a5, 0x9b1776da, - 0x4d8162c4, 0x9a22042d, - 0x4c3fdff4, 0x99307ee0, 0x4afb6c98, 0x9842f043, 0x49b41533, 0x9759617f, - 0x4869e665, 0x9673db94, - 0x471cece7, 0x9592675c, 0x45cd358f, 0x94b50d87, 0x447acd50, 0x93dbd6a0, - 0x4325c135, 0x9306cb04, - 0x41ce1e65, 0x9235f2ec, 0x4073f21d, 0x91695663, 0x3f1749b8, 0x90a0fd4e, - 0x3db832a6, 0x8fdcef66, - 0x3c56ba70, 0x8f1d343a, 0x3af2eeb7, 0x8e61d32e, 0x398cdd32, 0x8daad37b, - 0x382493b0, 0x8cf83c30, - 0x36ba2014, 0x8c4a142f, 0x354d9057, 0x8ba0622f, 0x33def287, 0x8afb2cbb, - 0x326e54c7, 0x8a5a7a31, - 0x30fbc54d, 0x89be50c3, 0x2f875262, 0x8926b677, 0x2e110a62, 0x8893b125, - 0x2c98fbba, 0x88054677, - 0x2b1f34eb, 0x877b7bec, 0x29a3c485, 0x86f656d3, 0x2826b928, 0x8675dc4f, - 0x26a82186, 0x85fa1153, - 0x25280c5e, 0x8582faa5, 0x23a6887f, 0x85109cdd, 0x2223a4c5, 0x84a2fc62, - 0x209f701c, 0x843a1d70, - 0x1f19f97b, 0x83d60412, 0x1d934fe5, 0x8376b422, 0x1c0b826a, 0x831c314e, - 0x1a82a026, 0x82c67f14, - 0x18f8b83c, 0x8275a0c0, 0x176dd9de, 0x82299971, 0x15e21445, 0x81e26c16, - 0x145576b1, 0x81a01b6d, - 0x12c8106f, 0x8162aa04, 0x1139f0cf, 0x812a1a3a, 0xfab272b, 0x80f66e3c, - 0xe1bc2e4, 0x80c7a80a, - 0xc8bd35e, 0x809dc971, 0xafb6805, 0x8078d40d, 0x96a9049, 0x8058c94c, - 0x7d95b9e, 0x803daa6a, - 0x647d97c, 0x80277872, 0x4b6195d, 0x80163440, 0x3242abf, 0x8009de7e, - 0x1921d20, 0x800277a6, -}; - -static const q31_t WeightsQ31_512[1024] = { - 0x7fffffff, 0x0, 0x7fffd886, 0xff9b781d, 0x7fff6216, 0xff36f078, 0x7ffe9cb2, - 0xfed2694f, - 0x7ffd885a, 0xfe6de2e0, 0x7ffc250f, 0xfe095d69, 0x7ffa72d1, 0xfda4d929, - 0x7ff871a2, 0xfd40565c, - 0x7ff62182, 0xfcdbd541, 0x7ff38274, 0xfc775616, 0x7ff09478, 0xfc12d91a, - 0x7fed5791, 0xfbae5e89, - 0x7fe9cbc0, 0xfb49e6a3, 0x7fe5f108, 0xfae571a4, 0x7fe1c76b, 0xfa80ffcb, - 0x7fdd4eec, 0xfa1c9157, - 0x7fd8878e, 0xf9b82684, 0x7fd37153, 0xf953bf91, 0x7fce0c3e, 0xf8ef5cbb, - 0x7fc85854, 0xf88afe42, - 0x7fc25596, 0xf826a462, 0x7fbc040a, 0xf7c24f59, 0x7fb563b3, 0xf75dff66, - 0x7fae7495, 0xf6f9b4c6, - 0x7fa736b4, 0xf6956fb7, 0x7f9faa15, 0xf6313077, 0x7f97cebd, 0xf5ccf743, - 0x7f8fa4b0, 0xf568c45b, - 0x7f872bf3, 0xf50497fb, 0x7f7e648c, 0xf4a07261, 0x7f754e80, 0xf43c53cb, - 0x7f6be9d4, 0xf3d83c77, - 0x7f62368f, 0xf3742ca2, 0x7f5834b7, 0xf310248a, 0x7f4de451, 0xf2ac246e, - 0x7f434563, 0xf2482c8a, - 0x7f3857f6, 0xf1e43d1c, 0x7f2d1c0e, 0xf1805662, 0x7f2191b4, 0xf11c789a, - 0x7f15b8ee, 0xf0b8a401, - 0x7f0991c4, 0xf054d8d5, 0x7efd1c3c, 0xeff11753, 0x7ef05860, 0xef8d5fb8, - 0x7ee34636, 0xef29b243, - 0x7ed5e5c6, 0xeec60f31, 0x7ec8371a, 0xee6276bf, 0x7eba3a39, 0xedfee92b, - 0x7eabef2c, 0xed9b66b2, - 0x7e9d55fc, 0xed37ef91, 0x7e8e6eb2, 0xecd48407, 0x7e7f3957, 0xec71244f, - 0x7e6fb5f4, 0xec0dd0a8, - 0x7e5fe493, 0xebaa894f, 0x7e4fc53e, 0xeb474e81, 0x7e3f57ff, 0xeae4207a, - 0x7e2e9cdf, 0xea80ff7a, - 0x7e1d93ea, 0xea1debbb, 0x7e0c3d29, 0xe9bae57d, 0x7dfa98a8, 0xe957ecfb, - 0x7de8a670, 0xe8f50273, - 0x7dd6668f, 0xe8922622, 0x7dc3d90d, 0xe82f5844, 0x7db0fdf8, 0xe7cc9917, - 0x7d9dd55a, 0xe769e8d8, - 0x7d8a5f40, 0xe70747c4, 0x7d769bb5, 0xe6a4b616, 0x7d628ac6, 0xe642340d, - 0x7d4e2c7f, 0xe5dfc1e5, - 0x7d3980ec, 0xe57d5fda, 0x7d24881b, 0xe51b0e2a, 0x7d0f4218, 0xe4b8cd11, - 0x7cf9aef0, 0xe4569ccb, - 0x7ce3ceb2, 0xe3f47d96, 0x7ccda169, 0xe3926fad, 0x7cb72724, 0xe330734d, - 0x7ca05ff1, 0xe2ce88b3, - 0x7c894bde, 0xe26cb01b, 0x7c71eaf9, 0xe20ae9c1, 0x7c5a3d50, 0xe1a935e2, - 0x7c4242f2, 0xe14794ba, - 0x7c29fbee, 0xe0e60685, 0x7c116853, 0xe0848b7f, 0x7bf88830, 0xe02323e5, - 0x7bdf5b94, 0xdfc1cff3, - 0x7bc5e290, 0xdf608fe4, 0x7bac1d31, 0xdeff63f4, 0x7b920b89, 0xde9e4c60, - 0x7b77ada8, 0xde3d4964, - 0x7b5d039e, 0xdddc5b3b, 0x7b420d7a, 0xdd7b8220, 0x7b26cb4f, 0xdd1abe51, - 0x7b0b3d2c, 0xdcba1008, - 0x7aef6323, 0xdc597781, 0x7ad33d45, 0xdbf8f4f8, 0x7ab6cba4, 0xdb9888a8, - 0x7a9a0e50, 0xdb3832cd, - 0x7a7d055b, 0xdad7f3a2, 0x7a5fb0d8, 0xda77cb63, 0x7a4210d8, 0xda17ba4a, - 0x7a24256f, 0xd9b7c094, - 0x7a05eead, 0xd957de7a, 0x79e76ca7, 0xd8f81439, 0x79c89f6e, 0xd898620c, - 0x79a98715, 0xd838c82d, - 0x798a23b1, 0xd7d946d8, 0x796a7554, 0xd779de47, 0x794a7c12, 0xd71a8eb5, - 0x792a37fe, 0xd6bb585e, - 0x7909a92d, 0xd65c3b7b, 0x78e8cfb2, 0xd5fd3848, 0x78c7aba2, 0xd59e4eff, - 0x78a63d11, 0xd53f7fda, - 0x78848414, 0xd4e0cb15, 0x786280bf, 0xd48230e9, 0x78403329, 0xd423b191, - 0x781d9b65, 0xd3c54d47, - 0x77fab989, 0xd3670446, 0x77d78daa, 0xd308d6c7, 0x77b417df, 0xd2aac504, - 0x7790583e, 0xd24ccf39, - 0x776c4edb, 0xd1eef59e, 0x7747fbce, 0xd191386e, 0x77235f2d, 0xd13397e2, - 0x76fe790e, 0xd0d61434, - 0x76d94989, 0xd078ad9e, 0x76b3d0b4, 0xd01b6459, 0x768e0ea6, 0xcfbe389f, - 0x76680376, 0xcf612aaa, - 0x7641af3d, 0xcf043ab3, 0x761b1211, 0xcea768f2, 0x75f42c0b, 0xce4ab5a2, - 0x75ccfd42, 0xcdee20fc, - 0x75a585cf, 0xcd91ab39, 0x757dc5ca, 0xcd355491, 0x7555bd4c, 0xccd91d3d, - 0x752d6c6c, 0xcc7d0578, - 0x7504d345, 0xcc210d79, 0x74dbf1ef, 0xcbc53579, 0x74b2c884, 0xcb697db0, - 0x7489571c, 0xcb0de658, - 0x745f9dd1, 0xcab26fa9, 0x74359cbd, 0xca5719db, 0x740b53fb, 0xc9fbe527, - 0x73e0c3a3, 0xc9a0d1c5, - 0x73b5ebd1, 0xc945dfec, 0x738acc9e, 0xc8eb0fd6, 0x735f6626, 0xc89061ba, - 0x7333b883, 0xc835d5d0, - 0x7307c3d0, 0xc7db6c50, 0x72db8828, 0xc7812572, 0x72af05a7, 0xc727016d, - 0x72823c67, 0xc6cd0079, - 0x72552c85, 0xc67322ce, 0x7227d61c, 0xc61968a2, 0x71fa3949, 0xc5bfd22e, - 0x71cc5626, 0xc5665fa9, - 0x719e2cd2, 0xc50d1149, 0x716fbd68, 0xc4b3e746, 0x71410805, 0xc45ae1d7, - 0x71120cc5, 0xc4020133, - 0x70e2cbc6, 0xc3a94590, 0x70b34525, 0xc350af26, 0x708378ff, 0xc2f83e2a, - 0x70536771, 0xc29ff2d4, - 0x7023109a, 0xc247cd5a, 0x6ff27497, 0xc1efcdf3, 0x6fc19385, 0xc197f4d4, - 0x6f906d84, 0xc1404233, - 0x6f5f02b2, 0xc0e8b648, 0x6f2d532c, 0xc0915148, 0x6efb5f12, 0xc03a1368, - 0x6ec92683, 0xbfe2fcdf, - 0x6e96a99d, 0xbf8c0de3, 0x6e63e87f, 0xbf3546a8, 0x6e30e34a, 0xbedea765, - 0x6dfd9a1c, 0xbe88304f, - 0x6dca0d14, 0xbe31e19b, 0x6d963c54, 0xbddbbb7f, 0x6d6227fa, 0xbd85be30, - 0x6d2dd027, 0xbd2fe9e2, - 0x6cf934fc, 0xbcda3ecb, 0x6cc45698, 0xbc84bd1f, 0x6c8f351c, 0xbc2f6513, - 0x6c59d0a9, 0xbbda36dd, - 0x6c242960, 0xbb8532b0, 0x6bee3f62, 0xbb3058c0, 0x6bb812d1, 0xbadba943, - 0x6b81a3cd, 0xba87246d, - 0x6b4af279, 0xba32ca71, 0x6b13fef5, 0xb9de9b83, 0x6adcc964, 0xb98a97d8, - 0x6aa551e9, 0xb936bfa4, - 0x6a6d98a4, 0xb8e31319, 0x6a359db9, 0xb88f926d, 0x69fd614a, 0xb83c3dd1, - 0x69c4e37a, 0xb7e9157a, - 0x698c246c, 0xb796199b, 0x69532442, 0xb7434a67, 0x6919e320, 0xb6f0a812, - 0x68e06129, 0xb69e32cd, - 0x68a69e81, 0xb64beacd, 0x686c9b4b, 0xb5f9d043, 0x683257ab, 0xb5a7e362, - 0x67f7d3c5, 0xb556245e, - 0x67bd0fbd, 0xb5049368, 0x67820bb7, 0xb4b330b3, 0x6746c7d8, 0xb461fc70, - 0x670b4444, 0xb410f6d3, - 0x66cf8120, 0xb3c0200c, 0x66937e91, 0xb36f784f, 0x66573cbb, 0xb31effcc, - 0x661abbc5, 0xb2ceb6b5, - 0x65ddfbd3, 0xb27e9d3c, 0x65a0fd0b, 0xb22eb392, 0x6563bf92, 0xb1def9e9, - 0x6526438f, 0xb18f7071, - 0x64e88926, 0xb140175b, 0x64aa907f, 0xb0f0eeda, 0x646c59bf, 0xb0a1f71d, - 0x642de50d, 0xb0533055, - 0x63ef3290, 0xb0049ab3, 0x63b0426d, 0xafb63667, 0x637114cc, 0xaf6803a2, - 0x6331a9d4, 0xaf1a0293, - 0x62f201ac, 0xaecc336c, 0x62b21c7b, 0xae7e965b, 0x6271fa69, 0xae312b92, - 0x62319b9d, 0xade3f33e, - 0x61f1003f, 0xad96ed92, 0x61b02876, 0xad4a1aba, 0x616f146c, 0xacfd7ae8, - 0x612dc447, 0xacb10e4b, - 0x60ec3830, 0xac64d510, 0x60aa7050, 0xac18cf69, 0x60686ccf, 0xabccfd83, - 0x60262dd6, 0xab815f8d, - 0x5fe3b38d, 0xab35f5b5, 0x5fa0fe1f, 0xaaeac02c, 0x5f5e0db3, 0xaa9fbf1e, - 0x5f1ae274, 0xaa54f2ba, - 0x5ed77c8a, 0xaa0a5b2e, 0x5e93dc1f, 0xa9bff8a8, 0x5e50015d, 0xa975cb57, - 0x5e0bec6e, 0xa92bd367, - 0x5dc79d7c, 0xa8e21106, 0x5d8314b1, 0xa8988463, 0x5d3e5237, 0xa84f2daa, - 0x5cf95638, 0xa8060d08, - 0x5cb420e0, 0xa7bd22ac, 0x5c6eb258, 0xa7746ec0, 0x5c290acc, 0xa72bf174, - 0x5be32a67, 0xa6e3aaf2, - 0x5b9d1154, 0xa69b9b68, 0x5b56bfbd, 0xa653c303, 0x5b1035cf, 0xa60c21ee, - 0x5ac973b5, 0xa5c4b855, - 0x5a82799a, 0xa57d8666, 0x5a3b47ab, 0xa5368c4b, 0x59f3de12, 0xa4efca31, - 0x59ac3cfd, 0xa4a94043, - 0x59646498, 0xa462eeac, 0x591c550e, 0xa41cd599, 0x58d40e8c, 0xa3d6f534, - 0x588b9140, 0xa3914da8, - 0x5842dd54, 0xa34bdf20, 0x57f9f2f8, 0xa306a9c8, 0x57b0d256, 0xa2c1adc9, - 0x57677b9d, 0xa27ceb4f, - 0x571deefa, 0xa2386284, 0x56d42c99, 0xa1f41392, 0x568a34a9, 0xa1affea3, - 0x56400758, 0xa16c23e1, - 0x55f5a4d2, 0xa1288376, 0x55ab0d46, 0xa0e51d8c, 0x556040e2, 0xa0a1f24d, - 0x55153fd4, 0xa05f01e1, - 0x54ca0a4b, 0xa01c4c73, 0x547ea073, 0x9fd9d22a, 0x5433027d, 0x9f979331, - 0x53e73097, 0x9f558fb0, - 0x539b2af0, 0x9f13c7d0, 0x534ef1b5, 0x9ed23bb9, 0x53028518, 0x9e90eb94, - 0x52b5e546, 0x9e4fd78a, - 0x5269126e, 0x9e0effc1, 0x521c0cc2, 0x9dce6463, 0x51ced46e, 0x9d8e0597, - 0x518169a5, 0x9d4de385, - 0x5133cc94, 0x9d0dfe54, 0x50e5fd6d, 0x9cce562c, 0x5097fc5e, 0x9c8eeb34, - 0x5049c999, 0x9c4fbd93, - 0x4ffb654d, 0x9c10cd70, 0x4faccfab, 0x9bd21af3, 0x4f5e08e3, 0x9b93a641, - 0x4f0f1126, 0x9b556f81, - 0x4ebfe8a5, 0x9b1776da, 0x4e708f8f, 0x9ad9bc71, 0x4e210617, 0x9a9c406e, - 0x4dd14c6e, 0x9a5f02f5, - 0x4d8162c4, 0x9a22042d, 0x4d31494b, 0x99e5443b, 0x4ce10034, 0x99a8c345, - 0x4c9087b1, 0x996c816f, - 0x4c3fdff4, 0x99307ee0, 0x4bef092d, 0x98f4bbbc, 0x4b9e0390, 0x98b93828, - 0x4b4ccf4d, 0x987df449, - 0x4afb6c98, 0x9842f043, 0x4aa9dba2, 0x98082c3b, 0x4a581c9e, 0x97cda855, - 0x4a062fbd, 0x979364b5, - 0x49b41533, 0x9759617f, 0x4961cd33, 0x971f9ed7, 0x490f57ee, 0x96e61ce0, - 0x48bcb599, 0x96acdbbe, - 0x4869e665, 0x9673db94, 0x4816ea86, 0x963b1c86, 0x47c3c22f, 0x96029eb6, - 0x47706d93, 0x95ca6247, - 0x471cece7, 0x9592675c, 0x46c9405c, 0x955aae17, 0x46756828, 0x9523369c, - 0x4621647d, 0x94ec010b, - 0x45cd358f, 0x94b50d87, 0x4578db93, 0x947e5c33, 0x452456bd, 0x9447ed2f, - 0x44cfa740, 0x9411c09e, - 0x447acd50, 0x93dbd6a0, 0x4425c923, 0x93a62f57, 0x43d09aed, 0x9370cae4, - 0x437b42e1, 0x933ba968, - 0x4325c135, 0x9306cb04, 0x42d0161e, 0x92d22fd9, 0x427a41d0, 0x929dd806, - 0x42244481, 0x9269c3ac, - 0x41ce1e65, 0x9235f2ec, 0x4177cfb1, 0x920265e4, 0x4121589b, 0x91cf1cb6, - 0x40cab958, 0x919c1781, - 0x4073f21d, 0x91695663, 0x401d0321, 0x9136d97d, 0x3fc5ec98, 0x9104a0ee, - 0x3f6eaeb8, 0x90d2acd4, - 0x3f1749b8, 0x90a0fd4e, 0x3ebfbdcd, 0x906f927c, 0x3e680b2c, 0x903e6c7b, - 0x3e10320d, 0x900d8b69, - 0x3db832a6, 0x8fdcef66, 0x3d600d2c, 0x8fac988f, 0x3d07c1d6, 0x8f7c8701, - 0x3caf50da, 0x8f4cbadb, - 0x3c56ba70, 0x8f1d343a, 0x3bfdfecd, 0x8eedf33b, 0x3ba51e29, 0x8ebef7fb, - 0x3b4c18ba, 0x8e904298, - 0x3af2eeb7, 0x8e61d32e, 0x3a99a057, 0x8e33a9da, 0x3a402dd2, 0x8e05c6b7, - 0x39e6975e, 0x8dd829e4, - 0x398cdd32, 0x8daad37b, 0x3932ff87, 0x8d7dc399, 0x38d8fe93, 0x8d50fa59, - 0x387eda8e, 0x8d2477d8, - 0x382493b0, 0x8cf83c30, 0x37ca2a30, 0x8ccc477d, 0x376f9e46, 0x8ca099da, - 0x3714f02a, 0x8c753362, - 0x36ba2014, 0x8c4a142f, 0x365f2e3b, 0x8c1f3c5d, 0x36041ad9, 0x8bf4ac05, - 0x35a8e625, 0x8bca6343, - 0x354d9057, 0x8ba0622f, 0x34f219a8, 0x8b76a8e4, 0x34968250, 0x8b4d377c, - 0x343aca87, 0x8b240e11, - 0x33def287, 0x8afb2cbb, 0x3382fa88, 0x8ad29394, 0x3326e2c3, 0x8aaa42b4, - 0x32caab6f, 0x8a823a36, - 0x326e54c7, 0x8a5a7a31, 0x3211df04, 0x8a3302be, 0x31b54a5e, 0x8a0bd3f5, - 0x3158970e, 0x89e4edef, - 0x30fbc54d, 0x89be50c3, 0x309ed556, 0x8997fc8a, 0x3041c761, 0x8971f15a, - 0x2fe49ba7, 0x894c2f4c, - 0x2f875262, 0x8926b677, 0x2f29ebcc, 0x890186f2, 0x2ecc681e, 0x88dca0d3, - 0x2e6ec792, 0x88b80432, - 0x2e110a62, 0x8893b125, 0x2db330c7, 0x886fa7c2, 0x2d553afc, 0x884be821, - 0x2cf72939, 0x88287256, - 0x2c98fbba, 0x88054677, 0x2c3ab2b9, 0x87e2649b, 0x2bdc4e6f, 0x87bfccd7, - 0x2b7dcf17, 0x879d7f41, - 0x2b1f34eb, 0x877b7bec, 0x2ac08026, 0x8759c2ef, 0x2a61b101, 0x8738545e, - 0x2a02c7b8, 0x8717304e, - 0x29a3c485, 0x86f656d3, 0x2944a7a2, 0x86d5c802, 0x28e5714b, 0x86b583ee, - 0x288621b9, 0x86958aac, - 0x2826b928, 0x8675dc4f, 0x27c737d3, 0x865678eb, 0x27679df4, 0x86376092, - 0x2707ebc7, 0x86189359, - 0x26a82186, 0x85fa1153, 0x26483f6c, 0x85dbda91, 0x25e845b6, 0x85bdef28, - 0x2588349d, 0x85a04f28, - 0x25280c5e, 0x8582faa5, 0x24c7cd33, 0x8565f1b0, 0x24677758, 0x8549345c, - 0x24070b08, 0x852cc2bb, - 0x23a6887f, 0x85109cdd, 0x2345eff8, 0x84f4c2d4, 0x22e541af, 0x84d934b1, - 0x22847de0, 0x84bdf286, - 0x2223a4c5, 0x84a2fc62, 0x21c2b69c, 0x84885258, 0x2161b3a0, 0x846df477, - 0x21009c0c, 0x8453e2cf, - 0x209f701c, 0x843a1d70, 0x203e300d, 0x8420a46c, 0x1fdcdc1b, 0x840777d0, - 0x1f7b7481, 0x83ee97ad, - 0x1f19f97b, 0x83d60412, 0x1eb86b46, 0x83bdbd0e, 0x1e56ca1e, 0x83a5c2b0, - 0x1df5163f, 0x838e1507, - 0x1d934fe5, 0x8376b422, 0x1d31774d, 0x835fa00f, 0x1ccf8cb3, 0x8348d8dc, - 0x1c6d9053, 0x83325e97, - 0x1c0b826a, 0x831c314e, 0x1ba96335, 0x83065110, 0x1b4732ef, 0x82f0bde8, - 0x1ae4f1d6, 0x82db77e5, - 0x1a82a026, 0x82c67f14, 0x1a203e1b, 0x82b1d381, 0x19bdcbf3, 0x829d753a, - 0x195b49ea, 0x8289644b, - 0x18f8b83c, 0x8275a0c0, 0x18961728, 0x82622aa6, 0x183366e9, 0x824f0208, - 0x17d0a7bc, 0x823c26f3, - 0x176dd9de, 0x82299971, 0x170afd8d, 0x82175990, 0x16a81305, 0x82056758, - 0x16451a83, 0x81f3c2d7, - 0x15e21445, 0x81e26c16, 0x157f0086, 0x81d16321, 0x151bdf86, 0x81c0a801, - 0x14b8b17f, 0x81b03ac2, - 0x145576b1, 0x81a01b6d, 0x13f22f58, 0x81904a0c, 0x138edbb1, 0x8180c6a9, - 0x132b7bf9, 0x8171914e, - 0x12c8106f, 0x8162aa04, 0x1264994e, 0x815410d4, 0x120116d5, 0x8145c5c7, - 0x119d8941, 0x8137c8e6, - 0x1139f0cf, 0x812a1a3a, 0x10d64dbd, 0x811cb9ca, 0x1072a048, 0x810fa7a0, - 0x100ee8ad, 0x8102e3c4, - 0xfab272b, 0x80f66e3c, 0xf475bff, 0x80ea4712, 0xee38766, 0x80de6e4c, - 0xe7fa99e, 0x80d2e3f2, - 0xe1bc2e4, 0x80c7a80a, 0xdb7d376, 0x80bcba9d, 0xd53db92, 0x80b21baf, - 0xcefdb76, 0x80a7cb49, - 0xc8bd35e, 0x809dc971, 0xc27c389, 0x8094162c, 0xbc3ac35, 0x808ab180, - 0xb5f8d9f, 0x80819b74, - 0xafb6805, 0x8078d40d, 0xa973ba5, 0x80705b50, 0xa3308bd, 0x80683143, - 0x9cecf89, 0x806055eb, - 0x96a9049, 0x8058c94c, 0x9064b3a, 0x80518b6b, 0x8a2009a, 0x804a9c4d, - 0x83db0a7, 0x8043fbf6, - 0x7d95b9e, 0x803daa6a, 0x77501be, 0x8037a7ac, 0x710a345, 0x8031f3c2, - 0x6ac406f, 0x802c8ead, - 0x647d97c, 0x80277872, 0x5e36ea9, 0x8022b114, 0x57f0035, 0x801e3895, - 0x51a8e5c, 0x801a0ef8, - 0x4b6195d, 0x80163440, 0x451a177, 0x8012a86f, 0x3ed26e6, 0x800f6b88, - 0x388a9ea, 0x800c7d8c, - 0x3242abf, 0x8009de7e, 0x2bfa9a4, 0x80078e5e, 0x25b26d7, 0x80058d2f, - 0x1f6a297, 0x8003daf1, - 0x1921d20, 0x800277a6, 0x12d96b1, 0x8001634e, 0xc90f88, 0x80009dea, - 0x6487e3, 0x8000277a, -}; - -static const q31_t WeightsQ31_2048[4096] = { - 0x7fffffff, 0x0, 0x7ffffd88, 0xffe6de05, 0x7ffff621, 0xffcdbc0b, 0x7fffe9cb, - 0xffb49a12, - 0x7fffd886, 0xff9b781d, 0x7fffc251, 0xff82562c, 0x7fffa72c, 0xff69343f, - 0x7fff8719, 0xff501258, - 0x7fff6216, 0xff36f078, 0x7fff3824, 0xff1dcea0, 0x7fff0943, 0xff04acd0, - 0x7ffed572, 0xfeeb8b0a, - 0x7ffe9cb2, 0xfed2694f, 0x7ffe5f03, 0xfeb947a0, 0x7ffe1c65, 0xfea025fd, - 0x7ffdd4d7, 0xfe870467, - 0x7ffd885a, 0xfe6de2e0, 0x7ffd36ee, 0xfe54c169, 0x7ffce093, 0xfe3ba002, - 0x7ffc8549, 0xfe227eac, - 0x7ffc250f, 0xfe095d69, 0x7ffbbfe6, 0xfdf03c3a, 0x7ffb55ce, 0xfdd71b1e, - 0x7ffae6c7, 0xfdbdfa18, - 0x7ffa72d1, 0xfda4d929, 0x7ff9f9ec, 0xfd8bb850, 0x7ff97c18, 0xfd729790, - 0x7ff8f954, 0xfd5976e9, - 0x7ff871a2, 0xfd40565c, 0x7ff7e500, 0xfd2735ea, 0x7ff75370, 0xfd0e1594, - 0x7ff6bcf0, 0xfcf4f55c, - 0x7ff62182, 0xfcdbd541, 0x7ff58125, 0xfcc2b545, 0x7ff4dbd9, 0xfca9956a, - 0x7ff4319d, 0xfc9075af, - 0x7ff38274, 0xfc775616, 0x7ff2ce5b, 0xfc5e36a0, 0x7ff21553, 0xfc45174e, - 0x7ff1575d, 0xfc2bf821, - 0x7ff09478, 0xfc12d91a, 0x7fefcca4, 0xfbf9ba39, 0x7feeffe1, 0xfbe09b80, - 0x7fee2e30, 0xfbc77cf0, - 0x7fed5791, 0xfbae5e89, 0x7fec7c02, 0xfb95404d, 0x7feb9b85, 0xfb7c223d, - 0x7feab61a, 0xfb630459, - 0x7fe9cbc0, 0xfb49e6a3, 0x7fe8dc78, 0xfb30c91b, 0x7fe7e841, 0xfb17abc2, - 0x7fe6ef1c, 0xfafe8e9b, - 0x7fe5f108, 0xfae571a4, 0x7fe4ee06, 0xfacc54e0, 0x7fe3e616, 0xfab3384f, - 0x7fe2d938, 0xfa9a1bf3, - 0x7fe1c76b, 0xfa80ffcb, 0x7fe0b0b1, 0xfa67e3da, 0x7fdf9508, 0xfa4ec821, - 0x7fde7471, 0xfa35ac9f, - 0x7fdd4eec, 0xfa1c9157, 0x7fdc247a, 0xfa037648, 0x7fdaf519, 0xf9ea5b75, - 0x7fd9c0ca, 0xf9d140de, - 0x7fd8878e, 0xf9b82684, 0x7fd74964, 0xf99f0c68, 0x7fd6064c, 0xf985f28a, - 0x7fd4be46, 0xf96cd8ed, - 0x7fd37153, 0xf953bf91, 0x7fd21f72, 0xf93aa676, 0x7fd0c8a3, 0xf9218d9e, - 0x7fcf6ce8, 0xf908750a, - 0x7fce0c3e, 0xf8ef5cbb, 0x7fcca6a7, 0xf8d644b2, 0x7fcb3c23, 0xf8bd2cef, - 0x7fc9ccb2, 0xf8a41574, - 0x7fc85854, 0xf88afe42, 0x7fc6df08, 0xf871e759, 0x7fc560cf, 0xf858d0bb, - 0x7fc3dda9, 0xf83fba68, - 0x7fc25596, 0xf826a462, 0x7fc0c896, 0xf80d8ea9, 0x7fbf36aa, 0xf7f4793e, - 0x7fbd9fd0, 0xf7db6423, - 0x7fbc040a, 0xf7c24f59, 0x7fba6357, 0xf7a93ae0, 0x7fb8bdb8, 0xf79026b9, - 0x7fb7132b, 0xf77712e5, - 0x7fb563b3, 0xf75dff66, 0x7fb3af4e, 0xf744ec3b, 0x7fb1f5fc, 0xf72bd967, - 0x7fb037bf, 0xf712c6ea, - 0x7fae7495, 0xf6f9b4c6, 0x7facac7f, 0xf6e0a2fa, 0x7faadf7c, 0xf6c79188, - 0x7fa90d8e, 0xf6ae8071, - 0x7fa736b4, 0xf6956fb7, 0x7fa55aee, 0xf67c5f59, 0x7fa37a3c, 0xf6634f59, - 0x7fa1949e, 0xf64a3fb8, - 0x7f9faa15, 0xf6313077, 0x7f9dbaa0, 0xf6182196, 0x7f9bc640, 0xf5ff1318, - 0x7f99ccf4, 0xf5e604fc, - 0x7f97cebd, 0xf5ccf743, 0x7f95cb9a, 0xf5b3e9f0, 0x7f93c38c, 0xf59add02, - 0x7f91b694, 0xf581d07b, - 0x7f8fa4b0, 0xf568c45b, 0x7f8d8de1, 0xf54fb8a4, 0x7f8b7227, 0xf536ad56, - 0x7f895182, 0xf51da273, - 0x7f872bf3, 0xf50497fb, 0x7f850179, 0xf4eb8def, 0x7f82d214, 0xf4d28451, - 0x7f809dc5, 0xf4b97b21, - 0x7f7e648c, 0xf4a07261, 0x7f7c2668, 0xf4876a10, 0x7f79e35a, 0xf46e6231, - 0x7f779b62, 0xf4555ac5, - 0x7f754e80, 0xf43c53cb, 0x7f72fcb4, 0xf4234d45, 0x7f70a5fe, 0xf40a4735, - 0x7f6e4a5e, 0xf3f1419a, - 0x7f6be9d4, 0xf3d83c77, 0x7f698461, 0xf3bf37cb, 0x7f671a05, 0xf3a63398, - 0x7f64aabf, 0xf38d2fe0, - 0x7f62368f, 0xf3742ca2, 0x7f5fbd77, 0xf35b29e0, 0x7f5d3f75, 0xf342279b, - 0x7f5abc8a, 0xf32925d3, - 0x7f5834b7, 0xf310248a, 0x7f55a7fa, 0xf2f723c1, 0x7f531655, 0xf2de2379, - 0x7f507fc7, 0xf2c523b2, - 0x7f4de451, 0xf2ac246e, 0x7f4b43f2, 0xf29325ad, 0x7f489eaa, 0xf27a2771, - 0x7f45f47b, 0xf26129ba, - 0x7f434563, 0xf2482c8a, 0x7f409164, 0xf22f2fe1, 0x7f3dd87c, 0xf21633c0, - 0x7f3b1aad, 0xf1fd3829, - 0x7f3857f6, 0xf1e43d1c, 0x7f359057, 0xf1cb429a, 0x7f32c3d1, 0xf1b248a5, - 0x7f2ff263, 0xf1994f3d, - 0x7f2d1c0e, 0xf1805662, 0x7f2a40d2, 0xf1675e17, 0x7f2760af, 0xf14e665c, - 0x7f247ba5, 0xf1356f32, - 0x7f2191b4, 0xf11c789a, 0x7f1ea2dc, 0xf1038295, 0x7f1baf1e, 0xf0ea8d24, - 0x7f18b679, 0xf0d19848, - 0x7f15b8ee, 0xf0b8a401, 0x7f12b67c, 0xf09fb051, 0x7f0faf25, 0xf086bd39, - 0x7f0ca2e7, 0xf06dcaba, - 0x7f0991c4, 0xf054d8d5, 0x7f067bba, 0xf03be78a, 0x7f0360cb, 0xf022f6da, - 0x7f0040f6, 0xf00a06c8, - 0x7efd1c3c, 0xeff11753, 0x7ef9f29d, 0xefd8287c, 0x7ef6c418, 0xefbf3a45, - 0x7ef390ae, 0xefa64cae, - 0x7ef05860, 0xef8d5fb8, 0x7eed1b2c, 0xef747365, 0x7ee9d914, 0xef5b87b5, - 0x7ee69217, 0xef429caa, - 0x7ee34636, 0xef29b243, 0x7edff570, 0xef10c883, 0x7edc9fc6, 0xeef7df6a, - 0x7ed94538, 0xeedef6f9, - 0x7ed5e5c6, 0xeec60f31, 0x7ed28171, 0xeead2813, 0x7ecf1837, 0xee9441a0, - 0x7ecbaa1a, 0xee7b5bd9, - 0x7ec8371a, 0xee6276bf, 0x7ec4bf36, 0xee499253, 0x7ec14270, 0xee30ae96, - 0x7ebdc0c6, 0xee17cb88, - 0x7eba3a39, 0xedfee92b, 0x7eb6aeca, 0xede60780, 0x7eb31e78, 0xedcd2687, - 0x7eaf8943, 0xedb44642, - 0x7eabef2c, 0xed9b66b2, 0x7ea85033, 0xed8287d7, 0x7ea4ac58, 0xed69a9b3, - 0x7ea1039b, 0xed50cc46, - 0x7e9d55fc, 0xed37ef91, 0x7e99a37c, 0xed1f1396, 0x7e95ec1a, 0xed063856, - 0x7e922fd6, 0xeced5dd0, - 0x7e8e6eb2, 0xecd48407, 0x7e8aa8ac, 0xecbbaafb, 0x7e86ddc6, 0xeca2d2ad, - 0x7e830dff, 0xec89fb1e, - 0x7e7f3957, 0xec71244f, 0x7e7b5fce, 0xec584e41, 0x7e778166, 0xec3f78f6, - 0x7e739e1d, 0xec26a46d, - 0x7e6fb5f4, 0xec0dd0a8, 0x7e6bc8eb, 0xebf4fda8, 0x7e67d703, 0xebdc2b6e, - 0x7e63e03b, 0xebc359fb, - 0x7e5fe493, 0xebaa894f, 0x7e5be40c, 0xeb91b96c, 0x7e57dea7, 0xeb78ea52, - 0x7e53d462, 0xeb601c04, - 0x7e4fc53e, 0xeb474e81, 0x7e4bb13c, 0xeb2e81ca, 0x7e47985b, 0xeb15b5e1, - 0x7e437a9c, 0xeafceac6, - 0x7e3f57ff, 0xeae4207a, 0x7e3b3083, 0xeacb56ff, 0x7e37042a, 0xeab28e56, - 0x7e32d2f4, 0xea99c67e, - 0x7e2e9cdf, 0xea80ff7a, 0x7e2a61ed, 0xea683949, 0x7e26221f, 0xea4f73ee, - 0x7e21dd73, 0xea36af69, - 0x7e1d93ea, 0xea1debbb, 0x7e194584, 0xea0528e5, 0x7e14f242, 0xe9ec66e8, - 0x7e109a24, 0xe9d3a5c5, - 0x7e0c3d29, 0xe9bae57d, 0x7e07db52, 0xe9a22610, 0x7e0374a0, 0xe9896781, - 0x7dff0911, 0xe970a9ce, - 0x7dfa98a8, 0xe957ecfb, 0x7df62362, 0xe93f3107, 0x7df1a942, 0xe92675f4, - 0x7ded2a47, 0xe90dbbc2, - 0x7de8a670, 0xe8f50273, 0x7de41dc0, 0xe8dc4a07, 0x7ddf9034, 0xe8c39280, - 0x7ddafdce, 0xe8aadbde, - 0x7dd6668f, 0xe8922622, 0x7dd1ca75, 0xe879714d, 0x7dcd2981, 0xe860bd61, - 0x7dc883b4, 0xe8480a5d, - 0x7dc3d90d, 0xe82f5844, 0x7dbf298d, 0xe816a716, 0x7dba7534, 0xe7fdf6d4, - 0x7db5bc02, 0xe7e5477f, - 0x7db0fdf8, 0xe7cc9917, 0x7dac3b15, 0xe7b3eb9f, 0x7da77359, 0xe79b3f16, - 0x7da2a6c6, 0xe782937e, - 0x7d9dd55a, 0xe769e8d8, 0x7d98ff17, 0xe7513f25, 0x7d9423fc, 0xe7389665, - 0x7d8f4409, 0xe71fee99, - 0x7d8a5f40, 0xe70747c4, 0x7d85759f, 0xe6eea1e4, 0x7d808728, 0xe6d5fcfc, - 0x7d7b93da, 0xe6bd590d, - 0x7d769bb5, 0xe6a4b616, 0x7d719eba, 0xe68c141a, 0x7d6c9ce9, 0xe6737319, - 0x7d679642, 0xe65ad315, - 0x7d628ac6, 0xe642340d, 0x7d5d7a74, 0xe6299604, 0x7d58654d, 0xe610f8f9, - 0x7d534b50, 0xe5f85cef, - 0x7d4e2c7f, 0xe5dfc1e5, 0x7d4908d9, 0xe5c727dd, 0x7d43e05e, 0xe5ae8ed8, - 0x7d3eb30f, 0xe595f6d7, - 0x7d3980ec, 0xe57d5fda, 0x7d3449f5, 0xe564c9e3, 0x7d2f0e2b, 0xe54c34f3, - 0x7d29cd8c, 0xe533a10a, - 0x7d24881b, 0xe51b0e2a, 0x7d1f3dd6, 0xe5027c53, 0x7d19eebf, 0xe4e9eb87, - 0x7d149ad5, 0xe4d15bc6, - 0x7d0f4218, 0xe4b8cd11, 0x7d09e489, 0xe4a03f69, 0x7d048228, 0xe487b2d0, - 0x7cff1af5, 0xe46f2745, - 0x7cf9aef0, 0xe4569ccb, 0x7cf43e1a, 0xe43e1362, 0x7ceec873, 0xe4258b0a, - 0x7ce94dfb, 0xe40d03c6, - 0x7ce3ceb2, 0xe3f47d96, 0x7cde4a98, 0xe3dbf87a, 0x7cd8c1ae, 0xe3c37474, - 0x7cd333f3, 0xe3aaf184, - 0x7ccda169, 0xe3926fad, 0x7cc80a0f, 0xe379eeed, 0x7cc26de5, 0xe3616f48, - 0x7cbcccec, 0xe348f0bd, - 0x7cb72724, 0xe330734d, 0x7cb17c8d, 0xe317f6fa, 0x7cabcd28, 0xe2ff7bc3, - 0x7ca618f3, 0xe2e701ac, - 0x7ca05ff1, 0xe2ce88b3, 0x7c9aa221, 0xe2b610da, 0x7c94df83, 0xe29d9a23, - 0x7c8f1817, 0xe285248d, - 0x7c894bde, 0xe26cb01b, 0x7c837ad8, 0xe2543ccc, 0x7c7da505, 0xe23bcaa2, - 0x7c77ca65, 0xe223599e, - 0x7c71eaf9, 0xe20ae9c1, 0x7c6c06c0, 0xe1f27b0b, 0x7c661dbc, 0xe1da0d7e, - 0x7c602fec, 0xe1c1a11b, - 0x7c5a3d50, 0xe1a935e2, 0x7c5445e9, 0xe190cbd4, 0x7c4e49b7, 0xe17862f3, - 0x7c4848ba, 0xe15ffb3f, - 0x7c4242f2, 0xe14794ba, 0x7c3c3860, 0xe12f2f63, 0x7c362904, 0xe116cb3d, - 0x7c3014de, 0xe0fe6848, - 0x7c29fbee, 0xe0e60685, 0x7c23de35, 0xe0cda5f5, 0x7c1dbbb3, 0xe0b54698, - 0x7c179467, 0xe09ce871, - 0x7c116853, 0xe0848b7f, 0x7c0b3777, 0xe06c2fc4, 0x7c0501d2, 0xe053d541, - 0x7bfec765, 0xe03b7bf6, - 0x7bf88830, 0xe02323e5, 0x7bf24434, 0xe00acd0e, 0x7bebfb70, 0xdff27773, - 0x7be5ade6, 0xdfda2314, - 0x7bdf5b94, 0xdfc1cff3, 0x7bd9047c, 0xdfa97e0f, 0x7bd2a89e, 0xdf912d6b, - 0x7bcc47fa, 0xdf78de07, - 0x7bc5e290, 0xdf608fe4, 0x7bbf7860, 0xdf484302, 0x7bb9096b, 0xdf2ff764, - 0x7bb295b0, 0xdf17ad0a, - 0x7bac1d31, 0xdeff63f4, 0x7ba59fee, 0xdee71c24, 0x7b9f1de6, 0xdeced59b, - 0x7b989719, 0xdeb69059, - 0x7b920b89, 0xde9e4c60, 0x7b8b7b36, 0xde8609b1, 0x7b84e61f, 0xde6dc84b, - 0x7b7e4c45, 0xde558831, - 0x7b77ada8, 0xde3d4964, 0x7b710a49, 0xde250be3, 0x7b6a6227, 0xde0ccfb1, - 0x7b63b543, 0xddf494ce, - 0x7b5d039e, 0xdddc5b3b, 0x7b564d36, 0xddc422f8, 0x7b4f920e, 0xddabec08, - 0x7b48d225, 0xdd93b66a, - 0x7b420d7a, 0xdd7b8220, 0x7b3b4410, 0xdd634f2b, 0x7b3475e5, 0xdd4b1d8c, - 0x7b2da2fa, 0xdd32ed43, - 0x7b26cb4f, 0xdd1abe51, 0x7b1feee5, 0xdd0290b8, 0x7b190dbc, 0xdcea6478, - 0x7b1227d3, 0xdcd23993, - 0x7b0b3d2c, 0xdcba1008, 0x7b044dc7, 0xdca1e7da, 0x7afd59a4, 0xdc89c109, - 0x7af660c2, 0xdc719b96, - 0x7aef6323, 0xdc597781, 0x7ae860c7, 0xdc4154cd, 0x7ae159ae, 0xdc293379, - 0x7ada4dd8, 0xdc111388, - 0x7ad33d45, 0xdbf8f4f8, 0x7acc27f7, 0xdbe0d7cd, 0x7ac50dec, 0xdbc8bc06, - 0x7abdef25, 0xdbb0a1a4, - 0x7ab6cba4, 0xdb9888a8, 0x7aafa367, 0xdb807114, 0x7aa8766f, 0xdb685ae9, - 0x7aa144bc, 0xdb504626, - 0x7a9a0e50, 0xdb3832cd, 0x7a92d329, 0xdb2020e0, 0x7a8b9348, 0xdb08105e, - 0x7a844eae, 0xdaf00149, - 0x7a7d055b, 0xdad7f3a2, 0x7a75b74f, 0xdabfe76a, 0x7a6e648a, 0xdaa7dca1, - 0x7a670d0d, 0xda8fd349, - 0x7a5fb0d8, 0xda77cb63, 0x7a584feb, 0xda5fc4ef, 0x7a50ea47, 0xda47bfee, - 0x7a497feb, 0xda2fbc61, - 0x7a4210d8, 0xda17ba4a, 0x7a3a9d0f, 0xd9ffb9a9, 0x7a332490, 0xd9e7ba7f, - 0x7a2ba75a, 0xd9cfbccd, - 0x7a24256f, 0xd9b7c094, 0x7a1c9ece, 0xd99fc5d4, 0x7a151378, 0xd987cc90, - 0x7a0d836d, 0xd96fd4c7, - 0x7a05eead, 0xd957de7a, 0x79fe5539, 0xd93fe9ab, 0x79f6b711, 0xd927f65b, - 0x79ef1436, 0xd910048a, - 0x79e76ca7, 0xd8f81439, 0x79dfc064, 0xd8e0256a, 0x79d80f6f, 0xd8c8381d, - 0x79d059c8, 0xd8b04c52, - 0x79c89f6e, 0xd898620c, 0x79c0e062, 0xd880794b, 0x79b91ca4, 0xd868920f, - 0x79b15435, 0xd850ac5a, - 0x79a98715, 0xd838c82d, 0x79a1b545, 0xd820e589, 0x7999dec4, 0xd809046e, - 0x79920392, 0xd7f124dd, - 0x798a23b1, 0xd7d946d8, 0x79823f20, 0xd7c16a5f, 0x797a55e0, 0xd7a98f73, - 0x797267f2, 0xd791b616, - 0x796a7554, 0xd779de47, 0x79627e08, 0xd7620808, 0x795a820e, 0xd74a335b, - 0x79528167, 0xd732603f, - 0x794a7c12, 0xd71a8eb5, 0x79427210, 0xd702bec0, 0x793a6361, 0xd6eaf05f, - 0x79325006, 0xd6d32393, - 0x792a37fe, 0xd6bb585e, 0x79221b4b, 0xd6a38ec0, 0x7919f9ec, 0xd68bc6ba, - 0x7911d3e2, 0xd674004e, - 0x7909a92d, 0xd65c3b7b, 0x790179cd, 0xd6447844, 0x78f945c3, 0xd62cb6a8, - 0x78f10d0f, 0xd614f6a9, - 0x78e8cfb2, 0xd5fd3848, 0x78e08dab, 0xd5e57b85, 0x78d846fb, 0xd5cdc062, - 0x78cffba3, 0xd5b606e0, - 0x78c7aba2, 0xd59e4eff, 0x78bf56f9, 0xd58698c0, 0x78b6fda8, 0xd56ee424, - 0x78ae9fb0, 0xd557312d, - 0x78a63d11, 0xd53f7fda, 0x789dd5cb, 0xd527d02e, 0x789569df, 0xd5102228, - 0x788cf94c, 0xd4f875ca, - 0x78848414, 0xd4e0cb15, 0x787c0a36, 0xd4c92209, 0x78738bb3, 0xd4b17aa8, - 0x786b088c, 0xd499d4f2, - 0x786280bf, 0xd48230e9, 0x7859f44f, 0xd46a8e8d, 0x7851633b, 0xd452eddf, - 0x7848cd83, 0xd43b4ee0, - 0x78403329, 0xd423b191, 0x7837942b, 0xd40c15f3, 0x782ef08b, 0xd3f47c06, - 0x78264849, 0xd3dce3cd, - 0x781d9b65, 0xd3c54d47, 0x7814e9df, 0xd3adb876, 0x780c33b8, 0xd396255a, - 0x780378f1, 0xd37e93f4, - 0x77fab989, 0xd3670446, 0x77f1f581, 0xd34f764f, 0x77e92cd9, 0xd337ea12, - 0x77e05f91, 0xd3205f8f, - 0x77d78daa, 0xd308d6c7, 0x77ceb725, 0xd2f14fba, 0x77c5dc01, 0xd2d9ca6a, - 0x77bcfc3f, 0xd2c246d8, - 0x77b417df, 0xd2aac504, 0x77ab2ee2, 0xd29344f0, 0x77a24148, 0xd27bc69c, - 0x77994f11, 0xd2644a0a, - 0x7790583e, 0xd24ccf39, 0x77875cce, 0xd235562b, 0x777e5cc3, 0xd21ddee2, - 0x7775581d, 0xd206695d, - 0x776c4edb, 0xd1eef59e, 0x776340ff, 0xd1d783a6, 0x775a2e89, 0xd1c01375, - 0x77511778, 0xd1a8a50d, - 0x7747fbce, 0xd191386e, 0x773edb8b, 0xd179cd99, 0x7735b6af, 0xd1626490, - 0x772c8d3a, 0xd14afd52, - 0x77235f2d, 0xd13397e2, 0x771a2c88, 0xd11c343f, 0x7710f54c, 0xd104d26b, - 0x7707b979, 0xd0ed7267, - 0x76fe790e, 0xd0d61434, 0x76f5340e, 0xd0beb7d2, 0x76ebea77, 0xd0a75d42, - 0x76e29c4b, 0xd0900486, - 0x76d94989, 0xd078ad9e, 0x76cff232, 0xd061588b, 0x76c69647, 0xd04a054e, - 0x76bd35c7, 0xd032b3e7, - 0x76b3d0b4, 0xd01b6459, 0x76aa670d, 0xd00416a3, 0x76a0f8d2, 0xcfeccac7, - 0x76978605, 0xcfd580c6, - 0x768e0ea6, 0xcfbe389f, 0x768492b4, 0xcfa6f255, 0x767b1231, 0xcf8fade9, - 0x76718d1c, 0xcf786b5a, - 0x76680376, 0xcf612aaa, 0x765e7540, 0xcf49ebda, 0x7654e279, 0xcf32aeeb, - 0x764b4b23, 0xcf1b73de, - 0x7641af3d, 0xcf043ab3, 0x76380ec8, 0xceed036b, 0x762e69c4, 0xced5ce08, - 0x7624c031, 0xcebe9a8a, - 0x761b1211, 0xcea768f2, 0x76115f63, 0xce903942, 0x7607a828, 0xce790b79, - 0x75fdec60, 0xce61df99, - 0x75f42c0b, 0xce4ab5a2, 0x75ea672a, 0xce338d97, 0x75e09dbd, 0xce1c6777, - 0x75d6cfc5, 0xce054343, - 0x75ccfd42, 0xcdee20fc, 0x75c32634, 0xcdd700a4, 0x75b94a9c, 0xcdbfe23a, - 0x75af6a7b, 0xcda8c5c1, - 0x75a585cf, 0xcd91ab39, 0x759b9c9b, 0xcd7a92a2, 0x7591aedd, 0xcd637bfe, - 0x7587bc98, 0xcd4c674d, - 0x757dc5ca, 0xcd355491, 0x7573ca75, 0xcd1e43ca, 0x7569ca99, 0xcd0734f9, - 0x755fc635, 0xccf0281f, - 0x7555bd4c, 0xccd91d3d, 0x754bafdc, 0xccc21455, 0x75419de7, 0xccab0d65, - 0x7537876c, 0xcc940871, - 0x752d6c6c, 0xcc7d0578, 0x75234ce8, 0xcc66047b, 0x751928e0, 0xcc4f057c, - 0x750f0054, 0xcc38087b, - 0x7504d345, 0xcc210d79, 0x74faa1b3, 0xcc0a1477, 0x74f06b9e, 0xcbf31d75, - 0x74e63108, 0xcbdc2876, - 0x74dbf1ef, 0xcbc53579, 0x74d1ae55, 0xcbae447f, 0x74c7663a, 0xcb97558a, - 0x74bd199f, 0xcb80689a, - 0x74b2c884, 0xcb697db0, 0x74a872e8, 0xcb5294ce, 0x749e18cd, 0xcb3badf3, - 0x7493ba34, 0xcb24c921, - 0x7489571c, 0xcb0de658, 0x747eef85, 0xcaf7059a, 0x74748371, 0xcae026e8, - 0x746a12df, 0xcac94a42, - 0x745f9dd1, 0xcab26fa9, 0x74552446, 0xca9b971e, 0x744aa63f, 0xca84c0a3, - 0x744023bc, 0xca6dec37, - 0x74359cbd, 0xca5719db, 0x742b1144, 0xca404992, 0x74208150, 0xca297b5a, - 0x7415ece2, 0xca12af37, - 0x740b53fb, 0xc9fbe527, 0x7400b69a, 0xc9e51d2d, 0x73f614c0, 0xc9ce5748, - 0x73eb6e6e, 0xc9b7937a, - 0x73e0c3a3, 0xc9a0d1c5, 0x73d61461, 0xc98a1227, 0x73cb60a8, 0xc97354a4, - 0x73c0a878, 0xc95c993a, - 0x73b5ebd1, 0xc945dfec, 0x73ab2ab4, 0xc92f28ba, 0x73a06522, 0xc91873a5, - 0x73959b1b, 0xc901c0ae, - 0x738acc9e, 0xc8eb0fd6, 0x737ff9ae, 0xc8d4611d, 0x73752249, 0xc8bdb485, - 0x736a4671, 0xc8a70a0e, - 0x735f6626, 0xc89061ba, 0x73548168, 0xc879bb89, 0x73499838, 0xc863177b, - 0x733eaa96, 0xc84c7593, - 0x7333b883, 0xc835d5d0, 0x7328c1ff, 0xc81f3834, 0x731dc70a, 0xc8089cbf, - 0x7312c7a5, 0xc7f20373, - 0x7307c3d0, 0xc7db6c50, 0x72fcbb8c, 0xc7c4d757, 0x72f1aed9, 0xc7ae4489, - 0x72e69db7, 0xc797b3e7, - 0x72db8828, 0xc7812572, 0x72d06e2b, 0xc76a992a, 0x72c54fc1, 0xc7540f11, - 0x72ba2cea, 0xc73d8727, - 0x72af05a7, 0xc727016d, 0x72a3d9f7, 0xc7107de4, 0x7298a9dd, 0xc6f9fc8d, - 0x728d7557, 0xc6e37d69, - 0x72823c67, 0xc6cd0079, 0x7276ff0d, 0xc6b685bd, 0x726bbd48, 0xc6a00d37, - 0x7260771b, 0xc68996e7, - 0x72552c85, 0xc67322ce, 0x7249dd86, 0xc65cb0ed, 0x723e8a20, 0xc6464144, - 0x72333251, 0xc62fd3d6, - 0x7227d61c, 0xc61968a2, 0x721c7580, 0xc602ffaa, 0x7211107e, 0xc5ec98ee, - 0x7205a716, 0xc5d6346f, - 0x71fa3949, 0xc5bfd22e, 0x71eec716, 0xc5a9722c, 0x71e35080, 0xc593146a, - 0x71d7d585, 0xc57cb8e9, - 0x71cc5626, 0xc5665fa9, 0x71c0d265, 0xc55008ab, 0x71b54a41, 0xc539b3f1, - 0x71a9bdba, 0xc523617a, - 0x719e2cd2, 0xc50d1149, 0x71929789, 0xc4f6c35d, 0x7186fdde, 0xc4e077b8, - 0x717b5fd3, 0xc4ca2e5b, - 0x716fbd68, 0xc4b3e746, 0x7164169d, 0xc49da27a, 0x71586b74, 0xc4875ff9, - 0x714cbbeb, 0xc4711fc2, - 0x71410805, 0xc45ae1d7, 0x71354fc0, 0xc444a639, 0x7129931f, 0xc42e6ce8, - 0x711dd220, 0xc41835e6, - 0x71120cc5, 0xc4020133, 0x7106430e, 0xc3ebced0, 0x70fa74fc, 0xc3d59ebe, - 0x70eea28e, 0xc3bf70fd, - 0x70e2cbc6, 0xc3a94590, 0x70d6f0a4, 0xc3931c76, 0x70cb1128, 0xc37cf5b0, - 0x70bf2d53, 0xc366d140, - 0x70b34525, 0xc350af26, 0x70a7589f, 0xc33a8f62, 0x709b67c0, 0xc32471f7, - 0x708f728b, 0xc30e56e4, - 0x708378ff, 0xc2f83e2a, 0x70777b1c, 0xc2e227cb, 0x706b78e3, 0xc2cc13c7, - 0x705f7255, 0xc2b6021f, - 0x70536771, 0xc29ff2d4, 0x70475839, 0xc289e5e7, 0x703b44ad, 0xc273db58, - 0x702f2ccd, 0xc25dd329, - 0x7023109a, 0xc247cd5a, 0x7016f014, 0xc231c9ec, 0x700acb3c, 0xc21bc8e1, - 0x6ffea212, 0xc205ca38, - 0x6ff27497, 0xc1efcdf3, 0x6fe642ca, 0xc1d9d412, 0x6fda0cae, 0xc1c3dc97, - 0x6fcdd241, 0xc1ade781, - 0x6fc19385, 0xc197f4d4, 0x6fb5507a, 0xc182048d, 0x6fa90921, 0xc16c16b0, - 0x6f9cbd79, 0xc1562b3d, - 0x6f906d84, 0xc1404233, 0x6f841942, 0xc12a5b95, 0x6f77c0b3, 0xc1147764, - 0x6f6b63d8, 0xc0fe959f, - 0x6f5f02b2, 0xc0e8b648, 0x6f529d40, 0xc0d2d960, 0x6f463383, 0xc0bcfee7, - 0x6f39c57d, 0xc0a726df, - 0x6f2d532c, 0xc0915148, 0x6f20dc92, 0xc07b7e23, 0x6f1461b0, 0xc065ad70, - 0x6f07e285, 0xc04fdf32, - 0x6efb5f12, 0xc03a1368, 0x6eeed758, 0xc0244a14, 0x6ee24b57, 0xc00e8336, - 0x6ed5bb10, 0xbff8bece, - 0x6ec92683, 0xbfe2fcdf, 0x6ebc8db0, 0xbfcd3d69, 0x6eaff099, 0xbfb7806c, - 0x6ea34f3d, 0xbfa1c5ea, - 0x6e96a99d, 0xbf8c0de3, 0x6e89ffb9, 0xbf765858, 0x6e7d5193, 0xbf60a54a, - 0x6e709f2a, 0xbf4af4ba, - 0x6e63e87f, 0xbf3546a8, 0x6e572d93, 0xbf1f9b16, 0x6e4a6e66, 0xbf09f205, - 0x6e3daaf8, 0xbef44b74, - 0x6e30e34a, 0xbedea765, 0x6e24175c, 0xbec905d9, 0x6e174730, 0xbeb366d1, - 0x6e0a72c5, 0xbe9dca4e, - 0x6dfd9a1c, 0xbe88304f, 0x6df0bd35, 0xbe7298d7, 0x6de3dc11, 0xbe5d03e6, - 0x6dd6f6b1, 0xbe47717c, - 0x6dca0d14, 0xbe31e19b, 0x6dbd1f3c, 0xbe1c5444, 0x6db02d29, 0xbe06c977, - 0x6da336dc, 0xbdf14135, - 0x6d963c54, 0xbddbbb7f, 0x6d893d93, 0xbdc63856, 0x6d7c3a98, 0xbdb0b7bb, - 0x6d6f3365, 0xbd9b39ad, - 0x6d6227fa, 0xbd85be30, 0x6d551858, 0xbd704542, 0x6d48047e, 0xbd5acee5, - 0x6d3aec6e, 0xbd455b1a, - 0x6d2dd027, 0xbd2fe9e2, 0x6d20afac, 0xbd1a7b3d, 0x6d138afb, 0xbd050f2c, - 0x6d066215, 0xbcefa5b0, - 0x6cf934fc, 0xbcda3ecb, 0x6cec03af, 0xbcc4da7b, 0x6cdece2f, 0xbcaf78c4, - 0x6cd1947c, 0xbc9a19a5, - 0x6cc45698, 0xbc84bd1f, 0x6cb71482, 0xbc6f6333, 0x6ca9ce3b, 0xbc5a0be2, - 0x6c9c83c3, 0xbc44b72c, - 0x6c8f351c, 0xbc2f6513, 0x6c81e245, 0xbc1a1598, 0x6c748b3f, 0xbc04c8ba, - 0x6c67300b, 0xbbef7e7c, - 0x6c59d0a9, 0xbbda36dd, 0x6c4c6d1a, 0xbbc4f1df, 0x6c3f055d, 0xbbafaf82, - 0x6c319975, 0xbb9a6fc7, - 0x6c242960, 0xbb8532b0, 0x6c16b521, 0xbb6ff83c, 0x6c093cb6, 0xbb5ac06d, - 0x6bfbc021, 0xbb458b43, - 0x6bee3f62, 0xbb3058c0, 0x6be0ba7b, 0xbb1b28e4, 0x6bd3316a, 0xbb05fbb0, - 0x6bc5a431, 0xbaf0d125, - 0x6bb812d1, 0xbadba943, 0x6baa7d49, 0xbac6840c, 0x6b9ce39b, 0xbab16180, - 0x6b8f45c7, 0xba9c41a0, - 0x6b81a3cd, 0xba87246d, 0x6b73fdae, 0xba7209e7, 0x6b66536b, 0xba5cf210, - 0x6b58a503, 0xba47dce8, - 0x6b4af279, 0xba32ca71, 0x6b3d3bcb, 0xba1dbaaa, 0x6b2f80fb, 0xba08ad95, - 0x6b21c208, 0xb9f3a332, - 0x6b13fef5, 0xb9de9b83, 0x6b0637c1, 0xb9c99688, 0x6af86c6c, 0xb9b49442, - 0x6aea9cf8, 0xb99f94b2, - 0x6adcc964, 0xb98a97d8, 0x6acef1b2, 0xb9759db6, 0x6ac115e2, 0xb960a64c, - 0x6ab335f4, 0xb94bb19b, - 0x6aa551e9, 0xb936bfa4, 0x6a9769c1, 0xb921d067, 0x6a897d7d, 0xb90ce3e6, - 0x6a7b8d1e, 0xb8f7fa21, - 0x6a6d98a4, 0xb8e31319, 0x6a5fa010, 0xb8ce2ecf, 0x6a51a361, 0xb8b94d44, - 0x6a43a29a, 0xb8a46e78, - 0x6a359db9, 0xb88f926d, 0x6a2794c1, 0xb87ab922, 0x6a1987b0, 0xb865e299, - 0x6a0b7689, 0xb8510ed4, - 0x69fd614a, 0xb83c3dd1, 0x69ef47f6, 0xb8276f93, 0x69e12a8c, 0xb812a41a, - 0x69d3090e, 0xb7fddb67, - 0x69c4e37a, 0xb7e9157a, 0x69b6b9d3, 0xb7d45255, 0x69a88c19, 0xb7bf91f8, - 0x699a5a4c, 0xb7aad465, - 0x698c246c, 0xb796199b, 0x697dea7b, 0xb781619c, 0x696fac78, 0xb76cac69, - 0x69616a65, 0xb757fa01, - 0x69532442, 0xb7434a67, 0x6944da10, 0xb72e9d9b, 0x69368bce, 0xb719f39e, - 0x6928397e, 0xb7054c6f, - 0x6919e320, 0xb6f0a812, 0x690b88b5, 0xb6dc0685, 0x68fd2a3d, 0xb6c767ca, - 0x68eec7b9, 0xb6b2cbe2, - 0x68e06129, 0xb69e32cd, 0x68d1f68f, 0xb6899c8d, 0x68c387e9, 0xb6750921, - 0x68b5153a, 0xb660788c, - 0x68a69e81, 0xb64beacd, 0x689823bf, 0xb6375fe5, 0x6889a4f6, 0xb622d7d6, - 0x687b2224, 0xb60e529f, - 0x686c9b4b, 0xb5f9d043, 0x685e106c, 0xb5e550c1, 0x684f8186, 0xb5d0d41a, - 0x6840ee9b, 0xb5bc5a50, - 0x683257ab, 0xb5a7e362, 0x6823bcb7, 0xb5936f53, 0x68151dbe, 0xb57efe22, - 0x68067ac3, 0xb56a8fd0, - 0x67f7d3c5, 0xb556245e, 0x67e928c5, 0xb541bbcd, 0x67da79c3, 0xb52d561e, - 0x67cbc6c0, 0xb518f351, - 0x67bd0fbd, 0xb5049368, 0x67ae54ba, 0xb4f03663, 0x679f95b7, 0xb4dbdc42, - 0x6790d2b6, 0xb4c78507, - 0x67820bb7, 0xb4b330b3, 0x677340ba, 0xb49edf45, 0x676471c0, 0xb48a90c0, - 0x67559eca, 0xb4764523, - 0x6746c7d8, 0xb461fc70, 0x6737ecea, 0xb44db6a8, 0x67290e02, 0xb43973ca, - 0x671a2b20, 0xb42533d8, - 0x670b4444, 0xb410f6d3, 0x66fc596f, 0xb3fcbcbb, 0x66ed6aa1, 0xb3e88592, - 0x66de77dc, 0xb3d45157, - 0x66cf8120, 0xb3c0200c, 0x66c0866d, 0xb3abf1b2, 0x66b187c3, 0xb397c649, - 0x66a28524, 0xb3839dd3, - 0x66937e91, 0xb36f784f, 0x66847408, 0xb35b55bf, 0x6675658c, 0xb3473623, - 0x6666531d, 0xb333197c, - 0x66573cbb, 0xb31effcc, 0x66482267, 0xb30ae912, 0x66390422, 0xb2f6d550, - 0x6629e1ec, 0xb2e2c486, - 0x661abbc5, 0xb2ceb6b5, 0x660b91af, 0xb2baabde, 0x65fc63a9, 0xb2a6a402, - 0x65ed31b5, 0xb2929f21, - 0x65ddfbd3, 0xb27e9d3c, 0x65cec204, 0xb26a9e54, 0x65bf8447, 0xb256a26a, - 0x65b0429f, 0xb242a97e, - 0x65a0fd0b, 0xb22eb392, 0x6591b38c, 0xb21ac0a6, 0x65826622, 0xb206d0ba, - 0x657314cf, 0xb1f2e3d0, - 0x6563bf92, 0xb1def9e9, 0x6554666d, 0xb1cb1304, 0x6545095f, 0xb1b72f23, - 0x6535a86b, 0xb1a34e47, - 0x6526438f, 0xb18f7071, 0x6516dacd, 0xb17b95a0, 0x65076e25, 0xb167bdd7, - 0x64f7fd98, 0xb153e915, - 0x64e88926, 0xb140175b, 0x64d910d1, 0xb12c48ab, 0x64c99498, 0xb1187d05, - 0x64ba147d, 0xb104b46a, - 0x64aa907f, 0xb0f0eeda, 0x649b08a0, 0xb0dd2c56, 0x648b7ce0, 0xb0c96ce0, - 0x647bed3f, 0xb0b5b077, - 0x646c59bf, 0xb0a1f71d, 0x645cc260, 0xb08e40d2, 0x644d2722, 0xb07a8d97, - 0x643d8806, 0xb066dd6d, - 0x642de50d, 0xb0533055, 0x641e3e38, 0xb03f864f, 0x640e9386, 0xb02bdf5c, - 0x63fee4f8, 0xb0183b7d, - 0x63ef3290, 0xb0049ab3, 0x63df7c4d, 0xaff0fcfe, 0x63cfc231, 0xafdd625f, - 0x63c0043b, 0xafc9cad7, - 0x63b0426d, 0xafb63667, 0x63a07cc7, 0xafa2a50f, 0x6390b34a, 0xaf8f16d1, - 0x6380e5f6, 0xaf7b8bac, - 0x637114cc, 0xaf6803a2, 0x63613fcd, 0xaf547eb3, 0x635166f9, 0xaf40fce1, - 0x63418a50, 0xaf2d7e2b, - 0x6331a9d4, 0xaf1a0293, 0x6321c585, 0xaf068a1a, 0x6311dd64, 0xaef314c0, - 0x6301f171, 0xaedfa285, - 0x62f201ac, 0xaecc336c, 0x62e20e17, 0xaeb8c774, 0x62d216b3, 0xaea55e9e, - 0x62c21b7e, 0xae91f8eb, - 0x62b21c7b, 0xae7e965b, 0x62a219aa, 0xae6b36f0, 0x6292130c, 0xae57daab, - 0x628208a1, 0xae44818b, - 0x6271fa69, 0xae312b92, 0x6261e866, 0xae1dd8c0, 0x6251d298, 0xae0a8916, - 0x6241b8ff, 0xadf73c96, - 0x62319b9d, 0xade3f33e, 0x62217a72, 0xadd0ad12, 0x6211557e, 0xadbd6a10, - 0x62012cc2, 0xadaa2a3b, - 0x61f1003f, 0xad96ed92, 0x61e0cff5, 0xad83b416, 0x61d09be5, 0xad707dc8, - 0x61c06410, 0xad5d4aaa, - 0x61b02876, 0xad4a1aba, 0x619fe918, 0xad36edfc, 0x618fa5f7, 0xad23c46e, - 0x617f5f12, 0xad109e12, - 0x616f146c, 0xacfd7ae8, 0x615ec603, 0xacea5af2, 0x614e73da, 0xacd73e30, - 0x613e1df0, 0xacc424a3, - 0x612dc447, 0xacb10e4b, 0x611d66de, 0xac9dfb29, 0x610d05b7, 0xac8aeb3e, - 0x60fca0d2, 0xac77de8b, - 0x60ec3830, 0xac64d510, 0x60dbcbd1, 0xac51cecf, 0x60cb5bb7, 0xac3ecbc7, - 0x60bae7e1, 0xac2bcbfa, - 0x60aa7050, 0xac18cf69, 0x6099f505, 0xac05d613, 0x60897601, 0xabf2dffb, - 0x6078f344, 0xabdfed1f, - 0x60686ccf, 0xabccfd83, 0x6057e2a2, 0xabba1125, 0x604754bf, 0xaba72807, - 0x6036c325, 0xab944229, - 0x60262dd6, 0xab815f8d, 0x601594d1, 0xab6e8032, 0x6004f819, 0xab5ba41a, - 0x5ff457ad, 0xab48cb46, - 0x5fe3b38d, 0xab35f5b5, 0x5fd30bbc, 0xab23236a, 0x5fc26038, 0xab105464, - 0x5fb1b104, 0xaafd88a4, - 0x5fa0fe1f, 0xaaeac02c, 0x5f90478a, 0xaad7fafb, 0x5f7f8d46, 0xaac53912, - 0x5f6ecf53, 0xaab27a73, - 0x5f5e0db3, 0xaa9fbf1e, 0x5f4d4865, 0xaa8d0713, 0x5f3c7f6b, 0xaa7a5253, - 0x5f2bb2c5, 0xaa67a0e0, - 0x5f1ae274, 0xaa54f2ba, 0x5f0a0e77, 0xaa4247e1, 0x5ef936d1, 0xaa2fa056, - 0x5ee85b82, 0xaa1cfc1a, - 0x5ed77c8a, 0xaa0a5b2e, 0x5ec699e9, 0xa9f7bd92, 0x5eb5b3a2, 0xa9e52347, - 0x5ea4c9b3, 0xa9d28c4e, - 0x5e93dc1f, 0xa9bff8a8, 0x5e82eae5, 0xa9ad6855, 0x5e71f606, 0xa99adb56, - 0x5e60fd84, 0xa98851ac, - 0x5e50015d, 0xa975cb57, 0x5e3f0194, 0xa9634858, 0x5e2dfe29, 0xa950c8b0, - 0x5e1cf71c, 0xa93e4c5f, - 0x5e0bec6e, 0xa92bd367, 0x5dfade20, 0xa9195dc7, 0x5de9cc33, 0xa906eb82, - 0x5dd8b6a7, 0xa8f47c97, - 0x5dc79d7c, 0xa8e21106, 0x5db680b4, 0xa8cfa8d2, 0x5da5604f, 0xa8bd43fa, - 0x5d943c4e, 0xa8aae280, - 0x5d8314b1, 0xa8988463, 0x5d71e979, 0xa88629a5, 0x5d60baa7, 0xa873d246, - 0x5d4f883b, 0xa8617e48, - 0x5d3e5237, 0xa84f2daa, 0x5d2d189a, 0xa83ce06e, 0x5d1bdb65, 0xa82a9693, - 0x5d0a9a9a, 0xa818501c, - 0x5cf95638, 0xa8060d08, 0x5ce80e41, 0xa7f3cd59, 0x5cd6c2b5, 0xa7e1910f, - 0x5cc57394, 0xa7cf582a, - 0x5cb420e0, 0xa7bd22ac, 0x5ca2ca99, 0xa7aaf094, 0x5c9170bf, 0xa798c1e5, - 0x5c801354, 0xa786969e, - 0x5c6eb258, 0xa7746ec0, 0x5c5d4dcc, 0xa7624a4d, 0x5c4be5b0, 0xa7502943, - 0x5c3a7a05, 0xa73e0ba5, - 0x5c290acc, 0xa72bf174, 0x5c179806, 0xa719daae, 0x5c0621b2, 0xa707c757, - 0x5bf4a7d2, 0xa6f5b76d, - 0x5be32a67, 0xa6e3aaf2, 0x5bd1a971, 0xa6d1a1e7, 0x5bc024f0, 0xa6bf9c4b, - 0x5bae9ce7, 0xa6ad9a21, - 0x5b9d1154, 0xa69b9b68, 0x5b8b8239, 0xa689a022, 0x5b79ef96, 0xa677a84e, - 0x5b68596d, 0xa665b3ee, - 0x5b56bfbd, 0xa653c303, 0x5b452288, 0xa641d58c, 0x5b3381ce, 0xa62feb8b, - 0x5b21dd90, 0xa61e0501, - 0x5b1035cf, 0xa60c21ee, 0x5afe8a8b, 0xa5fa4252, 0x5aecdbc5, 0xa5e8662f, - 0x5adb297d, 0xa5d68d85, - 0x5ac973b5, 0xa5c4b855, 0x5ab7ba6c, 0xa5b2e6a0, 0x5aa5fda5, 0xa5a11866, - 0x5a943d5e, 0xa58f4da8, - 0x5a82799a, 0xa57d8666, 0x5a70b258, 0xa56bc2a2, 0x5a5ee79a, 0xa55a025b, - 0x5a4d1960, 0xa5484594, - 0x5a3b47ab, 0xa5368c4b, 0x5a29727b, 0xa524d683, 0x5a1799d1, 0xa513243b, - 0x5a05bdae, 0xa5017575, - 0x59f3de12, 0xa4efca31, 0x59e1faff, 0xa4de2270, 0x59d01475, 0xa4cc7e32, - 0x59be2a74, 0xa4badd78, - 0x59ac3cfd, 0xa4a94043, 0x599a4c12, 0xa497a693, 0x598857b2, 0xa486106a, - 0x59765fde, 0xa4747dc7, - 0x59646498, 0xa462eeac, 0x595265df, 0xa4516319, 0x594063b5, 0xa43fdb10, - 0x592e5e19, 0xa42e568f, - 0x591c550e, 0xa41cd599, 0x590a4893, 0xa40b582e, 0x58f838a9, 0xa3f9de4e, - 0x58e62552, 0xa3e867fa, - 0x58d40e8c, 0xa3d6f534, 0x58c1f45b, 0xa3c585fb, 0x58afd6bd, 0xa3b41a50, - 0x589db5b3, 0xa3a2b234, - 0x588b9140, 0xa3914da8, 0x58796962, 0xa37fecac, 0x58673e1b, 0xa36e8f41, - 0x58550f6c, 0xa35d3567, - 0x5842dd54, 0xa34bdf20, 0x5830a7d6, 0xa33a8c6c, 0x581e6ef1, 0xa3293d4b, - 0x580c32a7, 0xa317f1bf, - 0x57f9f2f8, 0xa306a9c8, 0x57e7afe4, 0xa2f56566, 0x57d5696d, 0xa2e4249b, - 0x57c31f92, 0xa2d2e766, - 0x57b0d256, 0xa2c1adc9, 0x579e81b8, 0xa2b077c5, 0x578c2dba, 0xa29f4559, - 0x5779d65b, 0xa28e1687, - 0x57677b9d, 0xa27ceb4f, 0x57551d80, 0xa26bc3b2, 0x5742bc06, 0xa25a9fb1, - 0x5730572e, 0xa2497f4c, - 0x571deefa, 0xa2386284, 0x570b8369, 0xa2274959, 0x56f9147e, 0xa21633cd, - 0x56e6a239, 0xa20521e0, - 0x56d42c99, 0xa1f41392, 0x56c1b3a1, 0xa1e308e4, 0x56af3750, 0xa1d201d7, - 0x569cb7a8, 0xa1c0fe6c, - 0x568a34a9, 0xa1affea3, 0x5677ae54, 0xa19f027c, 0x566524aa, 0xa18e09fa, - 0x565297ab, 0xa17d151b, - 0x56400758, 0xa16c23e1, 0x562d73b2, 0xa15b364d, 0x561adcb9, 0xa14a4c5e, - 0x5608426e, 0xa1396617, - 0x55f5a4d2, 0xa1288376, 0x55e303e6, 0xa117a47e, 0x55d05faa, 0xa106c92f, - 0x55bdb81f, 0xa0f5f189, - 0x55ab0d46, 0xa0e51d8c, 0x55985f20, 0xa0d44d3b, 0x5585adad, 0xa0c38095, - 0x5572f8ed, 0xa0b2b79b, - 0x556040e2, 0xa0a1f24d, 0x554d858d, 0xa09130ad, 0x553ac6ee, 0xa08072ba, - 0x55280505, 0xa06fb876, - 0x55153fd4, 0xa05f01e1, 0x5502775c, 0xa04e4efc, 0x54efab9c, 0xa03d9fc8, - 0x54dcdc96, 0xa02cf444, - 0x54ca0a4b, 0xa01c4c73, 0x54b734ba, 0xa00ba853, 0x54a45be6, 0x9ffb07e7, - 0x54917fce, 0x9fea6b2f, - 0x547ea073, 0x9fd9d22a, 0x546bbdd7, 0x9fc93cdb, 0x5458d7f9, 0x9fb8ab41, - 0x5445eedb, 0x9fa81d5e, - 0x5433027d, 0x9f979331, 0x542012e1, 0x9f870cbc, 0x540d2005, 0x9f7689ff, - 0x53fa29ed, 0x9f660afb, - 0x53e73097, 0x9f558fb0, 0x53d43406, 0x9f45181f, 0x53c13439, 0x9f34a449, - 0x53ae3131, 0x9f24342f, - 0x539b2af0, 0x9f13c7d0, 0x53882175, 0x9f035f2e, 0x537514c2, 0x9ef2fa49, - 0x536204d7, 0x9ee29922, - 0x534ef1b5, 0x9ed23bb9, 0x533bdb5d, 0x9ec1e210, 0x5328c1d0, 0x9eb18c26, - 0x5315a50e, 0x9ea139fd, - 0x53028518, 0x9e90eb94, 0x52ef61ee, 0x9e80a0ee, 0x52dc3b92, 0x9e705a09, - 0x52c91204, 0x9e6016e8, - 0x52b5e546, 0x9e4fd78a, 0x52a2b556, 0x9e3f9bf0, 0x528f8238, 0x9e2f641b, - 0x527c4bea, 0x9e1f300b, - 0x5269126e, 0x9e0effc1, 0x5255d5c5, 0x9dfed33e, 0x524295f0, 0x9deeaa82, - 0x522f52ee, 0x9dde858e, - 0x521c0cc2, 0x9dce6463, 0x5208c36a, 0x9dbe4701, 0x51f576ea, 0x9dae2d68, - 0x51e22740, 0x9d9e179a, - 0x51ced46e, 0x9d8e0597, 0x51bb7e75, 0x9d7df75f, 0x51a82555, 0x9d6decf4, - 0x5194c910, 0x9d5de656, - 0x518169a5, 0x9d4de385, 0x516e0715, 0x9d3de482, 0x515aa162, 0x9d2de94d, - 0x5147388c, 0x9d1df1e9, - 0x5133cc94, 0x9d0dfe54, 0x51205d7b, 0x9cfe0e8f, 0x510ceb40, 0x9cee229c, - 0x50f975e6, 0x9cde3a7b, - 0x50e5fd6d, 0x9cce562c, 0x50d281d5, 0x9cbe75b0, 0x50bf031f, 0x9cae9907, - 0x50ab814d, 0x9c9ec033, - 0x5097fc5e, 0x9c8eeb34, 0x50847454, 0x9c7f1a0a, 0x5070e92f, 0x9c6f4cb6, - 0x505d5af1, 0x9c5f8339, - 0x5049c999, 0x9c4fbd93, 0x50363529, 0x9c3ffbc5, 0x50229da1, 0x9c303dcf, - 0x500f0302, 0x9c2083b3, - 0x4ffb654d, 0x9c10cd70, 0x4fe7c483, 0x9c011b08, 0x4fd420a4, 0x9bf16c7a, - 0x4fc079b1, 0x9be1c1c8, - 0x4faccfab, 0x9bd21af3, 0x4f992293, 0x9bc277fa, 0x4f857269, 0x9bb2d8de, - 0x4f71bf2e, 0x9ba33da0, - 0x4f5e08e3, 0x9b93a641, 0x4f4a4f89, 0x9b8412c1, 0x4f369320, 0x9b748320, - 0x4f22d3aa, 0x9b64f760, - 0x4f0f1126, 0x9b556f81, 0x4efb4b96, 0x9b45eb83, 0x4ee782fb, 0x9b366b68, - 0x4ed3b755, 0x9b26ef2f, - 0x4ebfe8a5, 0x9b1776da, 0x4eac16eb, 0x9b080268, 0x4e984229, 0x9af891db, - 0x4e846a60, 0x9ae92533, - 0x4e708f8f, 0x9ad9bc71, 0x4e5cb1b9, 0x9aca5795, 0x4e48d0dd, 0x9abaf6a1, - 0x4e34ecfc, 0x9aab9993, - 0x4e210617, 0x9a9c406e, 0x4e0d1c30, 0x9a8ceb31, 0x4df92f46, 0x9a7d99de, - 0x4de53f5a, 0x9a6e4c74, - 0x4dd14c6e, 0x9a5f02f5, 0x4dbd5682, 0x9a4fbd61, 0x4da95d96, 0x9a407bb9, - 0x4d9561ac, 0x9a313dfc, - 0x4d8162c4, 0x9a22042d, 0x4d6d60df, 0x9a12ce4b, 0x4d595bfe, 0x9a039c57, - 0x4d455422, 0x99f46e51, - 0x4d31494b, 0x99e5443b, 0x4d1d3b7a, 0x99d61e14, 0x4d092ab0, 0x99c6fbde, - 0x4cf516ee, 0x99b7dd99, - 0x4ce10034, 0x99a8c345, 0x4ccce684, 0x9999ace3, 0x4cb8c9dd, 0x998a9a74, - 0x4ca4aa41, 0x997b8bf8, - 0x4c9087b1, 0x996c816f, 0x4c7c622d, 0x995d7adc, 0x4c6839b7, 0x994e783d, - 0x4c540e4e, 0x993f7993, - 0x4c3fdff4, 0x99307ee0, 0x4c2baea9, 0x99218824, 0x4c177a6e, 0x9912955f, - 0x4c034345, 0x9903a691, - 0x4bef092d, 0x98f4bbbc, 0x4bdacc28, 0x98e5d4e0, 0x4bc68c36, 0x98d6f1fe, - 0x4bb24958, 0x98c81316, - 0x4b9e0390, 0x98b93828, 0x4b89badd, 0x98aa6136, 0x4b756f40, 0x989b8e40, - 0x4b6120bb, 0x988cbf46, - 0x4b4ccf4d, 0x987df449, 0x4b387af9, 0x986f2d4a, 0x4b2423be, 0x98606a49, - 0x4b0fc99d, 0x9851ab46, - 0x4afb6c98, 0x9842f043, 0x4ae70caf, 0x98343940, 0x4ad2a9e2, 0x9825863d, - 0x4abe4433, 0x9816d73b, - 0x4aa9dba2, 0x98082c3b, 0x4a957030, 0x97f9853d, 0x4a8101de, 0x97eae242, - 0x4a6c90ad, 0x97dc4349, - 0x4a581c9e, 0x97cda855, 0x4a43a5b0, 0x97bf1165, 0x4a2f2be6, 0x97b07e7a, - 0x4a1aaf3f, 0x97a1ef94, - 0x4a062fbd, 0x979364b5, 0x49f1ad61, 0x9784dddc, 0x49dd282a, 0x97765b0a, - 0x49c8a01b, 0x9767dc41, - 0x49b41533, 0x9759617f, 0x499f8774, 0x974aeac6, 0x498af6df, 0x973c7817, - 0x49766373, 0x972e0971, - 0x4961cd33, 0x971f9ed7, 0x494d341e, 0x97113847, 0x49389836, 0x9702d5c3, - 0x4923f97b, 0x96f4774b, - 0x490f57ee, 0x96e61ce0, 0x48fab391, 0x96d7c682, 0x48e60c62, 0x96c97432, - 0x48d16265, 0x96bb25f0, - 0x48bcb599, 0x96acdbbe, 0x48a805ff, 0x969e959b, 0x48935397, 0x96905388, - 0x487e9e64, 0x96821585, - 0x4869e665, 0x9673db94, 0x48552b9b, 0x9665a5b4, 0x48406e08, 0x965773e7, - 0x482badab, 0x9649462d, - 0x4816ea86, 0x963b1c86, 0x48022499, 0x962cf6f2, 0x47ed5be6, 0x961ed574, - 0x47d8906d, 0x9610b80a, - 0x47c3c22f, 0x96029eb6, 0x47aef12c, 0x95f48977, 0x479a1d67, 0x95e67850, - 0x478546de, 0x95d86b3f, - 0x47706d93, 0x95ca6247, 0x475b9188, 0x95bc5d66, 0x4746b2bc, 0x95ae5c9f, - 0x4731d131, 0x95a05ff0, - 0x471cece7, 0x9592675c, 0x470805df, 0x958472e2, 0x46f31c1a, 0x95768283, - 0x46de2f99, 0x9568963f, - 0x46c9405c, 0x955aae17, 0x46b44e65, 0x954cca0c, 0x469f59b4, 0x953eea1e, - 0x468a624a, 0x95310e4e, - 0x46756828, 0x9523369c, 0x46606b4e, 0x95156308, 0x464b6bbe, 0x95079394, - 0x46366978, 0x94f9c83f, - 0x4621647d, 0x94ec010b, 0x460c5cce, 0x94de3df8, 0x45f7526b, 0x94d07f05, - 0x45e24556, 0x94c2c435, - 0x45cd358f, 0x94b50d87, 0x45b82318, 0x94a75afd, 0x45a30df0, 0x9499ac95, - 0x458df619, 0x948c0252, - 0x4578db93, 0x947e5c33, 0x4563be60, 0x9470ba39, 0x454e9e80, 0x94631c65, - 0x45397bf4, 0x945582b7, - 0x452456bd, 0x9447ed2f, 0x450f2edb, 0x943a5bcf, 0x44fa0450, 0x942cce96, - 0x44e4d71c, 0x941f4585, - 0x44cfa740, 0x9411c09e, 0x44ba74bd, 0x94043fdf, 0x44a53f93, 0x93f6c34a, - 0x449007c4, 0x93e94adf, - 0x447acd50, 0x93dbd6a0, 0x44659039, 0x93ce668b, 0x4450507e, 0x93c0faa3, - 0x443b0e21, 0x93b392e6, - 0x4425c923, 0x93a62f57, 0x44108184, 0x9398cff5, 0x43fb3746, 0x938b74c1, - 0x43e5ea68, 0x937e1dbb, - 0x43d09aed, 0x9370cae4, 0x43bb48d4, 0x93637c3d, 0x43a5f41e, 0x935631c5, - 0x43909ccd, 0x9348eb7e, - 0x437b42e1, 0x933ba968, 0x4365e65b, 0x932e6b84, 0x4350873c, 0x932131d1, - 0x433b2585, 0x9313fc51, - 0x4325c135, 0x9306cb04, 0x43105a50, 0x92f99deb, 0x42faf0d4, 0x92ec7505, - 0x42e584c3, 0x92df5054, - 0x42d0161e, 0x92d22fd9, 0x42baa4e6, 0x92c51392, 0x42a5311b, 0x92b7fb82, - 0x428fbabe, 0x92aae7a8, - 0x427a41d0, 0x929dd806, 0x4264c653, 0x9290cc9b, 0x424f4845, 0x9283c568, - 0x4239c7aa, 0x9276c26d, - 0x42244481, 0x9269c3ac, 0x420ebecb, 0x925cc924, 0x41f93689, 0x924fd2d7, - 0x41e3abbc, 0x9242e0c4, - 0x41ce1e65, 0x9235f2ec, 0x41b88e84, 0x9229094f, 0x41a2fc1a, 0x921c23ef, - 0x418d6729, 0x920f42cb, - 0x4177cfb1, 0x920265e4, 0x416235b2, 0x91f58d3b, 0x414c992f, 0x91e8b8d0, - 0x4136fa27, 0x91dbe8a4, - 0x4121589b, 0x91cf1cb6, 0x410bb48c, 0x91c25508, 0x40f60dfb, 0x91b5919a, - 0x40e064ea, 0x91a8d26d, - 0x40cab958, 0x919c1781, 0x40b50b46, 0x918f60d6, 0x409f5ab6, 0x9182ae6d, - 0x4089a7a8, 0x91760047, - 0x4073f21d, 0x91695663, 0x405e3a16, 0x915cb0c3, 0x40487f94, 0x91500f67, - 0x4032c297, 0x91437250, - 0x401d0321, 0x9136d97d, 0x40074132, 0x912a44f0, 0x3ff17cca, 0x911db4a9, - 0x3fdbb5ec, 0x911128a8, - 0x3fc5ec98, 0x9104a0ee, 0x3fb020ce, 0x90f81d7b, 0x3f9a5290, 0x90eb9e50, - 0x3f8481dd, 0x90df236e, - 0x3f6eaeb8, 0x90d2acd4, 0x3f58d921, 0x90c63a83, 0x3f430119, 0x90b9cc7d, - 0x3f2d26a0, 0x90ad62c0, - 0x3f1749b8, 0x90a0fd4e, 0x3f016a61, 0x90949c28, 0x3eeb889c, 0x90883f4d, - 0x3ed5a46b, 0x907be6be, - 0x3ebfbdcd, 0x906f927c, 0x3ea9d4c3, 0x90634287, 0x3e93e950, 0x9056f6df, - 0x3e7dfb73, 0x904aaf86, - 0x3e680b2c, 0x903e6c7b, 0x3e52187f, 0x90322dbf, 0x3e3c2369, 0x9025f352, - 0x3e262bee, 0x9019bd36, - 0x3e10320d, 0x900d8b69, 0x3dfa35c8, 0x90015dee, 0x3de4371f, 0x8ff534c4, - 0x3dce3614, 0x8fe90fec, - 0x3db832a6, 0x8fdcef66, 0x3da22cd7, 0x8fd0d333, 0x3d8c24a8, 0x8fc4bb53, - 0x3d761a19, 0x8fb8a7c7, - 0x3d600d2c, 0x8fac988f, 0x3d49fde1, 0x8fa08dab, 0x3d33ec39, 0x8f94871d, - 0x3d1dd835, 0x8f8884e4, - 0x3d07c1d6, 0x8f7c8701, 0x3cf1a91c, 0x8f708d75, 0x3cdb8e09, 0x8f649840, - 0x3cc5709e, 0x8f58a761, - 0x3caf50da, 0x8f4cbadb, 0x3c992ec0, 0x8f40d2ad, 0x3c830a50, 0x8f34eed8, - 0x3c6ce38a, 0x8f290f5c, - 0x3c56ba70, 0x8f1d343a, 0x3c408f03, 0x8f115d72, 0x3c2a6142, 0x8f058b04, - 0x3c143130, 0x8ef9bcf2, - 0x3bfdfecd, 0x8eedf33b, 0x3be7ca1a, 0x8ee22de0, 0x3bd19318, 0x8ed66ce1, - 0x3bbb59c7, 0x8ecab040, - 0x3ba51e29, 0x8ebef7fb, 0x3b8ee03e, 0x8eb34415, 0x3b78a007, 0x8ea7948c, - 0x3b625d86, 0x8e9be963, - 0x3b4c18ba, 0x8e904298, 0x3b35d1a5, 0x8e84a02d, 0x3b1f8848, 0x8e790222, - 0x3b093ca3, 0x8e6d6877, - 0x3af2eeb7, 0x8e61d32e, 0x3adc9e86, 0x8e564246, 0x3ac64c0f, 0x8e4ab5bf, - 0x3aaff755, 0x8e3f2d9b, - 0x3a99a057, 0x8e33a9da, 0x3a834717, 0x8e282a7b, 0x3a6ceb96, 0x8e1caf80, - 0x3a568dd4, 0x8e1138ea, - 0x3a402dd2, 0x8e05c6b7, 0x3a29cb91, 0x8dfa58ea, 0x3a136712, 0x8deeef82, - 0x39fd0056, 0x8de38a80, - 0x39e6975e, 0x8dd829e4, 0x39d02c2a, 0x8dcccdaf, 0x39b9bebc, 0x8dc175e0, - 0x39a34f13, 0x8db6227a, - 0x398cdd32, 0x8daad37b, 0x39766919, 0x8d9f88e5, 0x395ff2c9, 0x8d9442b8, - 0x39497a43, 0x8d8900f3, - 0x3932ff87, 0x8d7dc399, 0x391c8297, 0x8d728aa9, 0x39060373, 0x8d675623, - 0x38ef821c, 0x8d5c2609, - 0x38d8fe93, 0x8d50fa59, 0x38c278d9, 0x8d45d316, 0x38abf0ef, 0x8d3ab03f, - 0x389566d6, 0x8d2f91d5, - 0x387eda8e, 0x8d2477d8, 0x38684c19, 0x8d196249, 0x3851bb77, 0x8d0e5127, - 0x383b28a9, 0x8d034474, - 0x382493b0, 0x8cf83c30, 0x380dfc8d, 0x8ced385b, 0x37f76341, 0x8ce238f6, - 0x37e0c7cc, 0x8cd73e01, - 0x37ca2a30, 0x8ccc477d, 0x37b38a6d, 0x8cc1556a, 0x379ce885, 0x8cb667c8, - 0x37864477, 0x8cab7e98, - 0x376f9e46, 0x8ca099da, 0x3758f5f2, 0x8c95b98f, 0x37424b7b, 0x8c8addb7, - 0x372b9ee3, 0x8c800652, - 0x3714f02a, 0x8c753362, 0x36fe3f52, 0x8c6a64e5, 0x36e78c5b, 0x8c5f9ade, - 0x36d0d746, 0x8c54d54c, - 0x36ba2014, 0x8c4a142f, 0x36a366c6, 0x8c3f5788, 0x368cab5c, 0x8c349f58, - 0x3675edd9, 0x8c29eb9f, - 0x365f2e3b, 0x8c1f3c5d, 0x36486c86, 0x8c149192, 0x3631a8b8, 0x8c09eb40, - 0x361ae2d3, 0x8bff4966, - 0x36041ad9, 0x8bf4ac05, 0x35ed50c9, 0x8bea131e, 0x35d684a6, 0x8bdf7eb0, - 0x35bfb66e, 0x8bd4eebc, - 0x35a8e625, 0x8bca6343, 0x359213c9, 0x8bbfdc44, 0x357b3f5d, 0x8bb559c1, - 0x356468e2, 0x8baadbba, - 0x354d9057, 0x8ba0622f, 0x3536b5be, 0x8b95ed21, 0x351fd918, 0x8b8b7c8f, - 0x3508fa66, 0x8b81107b, - 0x34f219a8, 0x8b76a8e4, 0x34db36df, 0x8b6c45cc, 0x34c4520d, 0x8b61e733, - 0x34ad6b32, 0x8b578d18, - 0x34968250, 0x8b4d377c, 0x347f9766, 0x8b42e661, 0x3468aa76, 0x8b3899c6, - 0x3451bb81, 0x8b2e51ab, - 0x343aca87, 0x8b240e11, 0x3423d78a, 0x8b19cef8, 0x340ce28b, 0x8b0f9462, - 0x33f5eb89, 0x8b055e4d, - 0x33def287, 0x8afb2cbb, 0x33c7f785, 0x8af0ffac, 0x33b0fa84, 0x8ae6d720, - 0x3399fb85, 0x8adcb318, - 0x3382fa88, 0x8ad29394, 0x336bf78f, 0x8ac87894, 0x3354f29b, 0x8abe6219, - 0x333debab, 0x8ab45024, - 0x3326e2c3, 0x8aaa42b4, 0x330fd7e1, 0x8aa039cb, 0x32f8cb07, 0x8a963567, - 0x32e1bc36, 0x8a8c358b, - 0x32caab6f, 0x8a823a36, 0x32b398b3, 0x8a784368, 0x329c8402, 0x8a6e5123, - 0x32856d5e, 0x8a646365, - 0x326e54c7, 0x8a5a7a31, 0x32573a3f, 0x8a509585, 0x32401dc6, 0x8a46b564, - 0x3228ff5c, 0x8a3cd9cc, - 0x3211df04, 0x8a3302be, 0x31fabcbd, 0x8a29303b, 0x31e39889, 0x8a1f6243, - 0x31cc7269, 0x8a1598d6, - 0x31b54a5e, 0x8a0bd3f5, 0x319e2067, 0x8a0213a0, 0x3186f487, 0x89f857d8, - 0x316fc6be, 0x89eea09d, - 0x3158970e, 0x89e4edef, 0x31416576, 0x89db3fcf, 0x312a31f8, 0x89d1963c, - 0x3112fc95, 0x89c7f138, - 0x30fbc54d, 0x89be50c3, 0x30e48c22, 0x89b4b4dd, 0x30cd5115, 0x89ab1d87, - 0x30b61426, 0x89a18ac0, - 0x309ed556, 0x8997fc8a, 0x308794a6, 0x898e72e4, 0x30705217, 0x8984edcf, - 0x30590dab, 0x897b6d4c, - 0x3041c761, 0x8971f15a, 0x302a7f3a, 0x896879fb, 0x30133539, 0x895f072e, - 0x2ffbe95d, 0x895598f3, - 0x2fe49ba7, 0x894c2f4c, 0x2fcd4c19, 0x8942ca39, 0x2fb5fab2, 0x893969b9, - 0x2f9ea775, 0x89300dce, - 0x2f875262, 0x8926b677, 0x2f6ffb7a, 0x891d63b5, 0x2f58a2be, 0x89141589, - 0x2f41482e, 0x890acbf2, - 0x2f29ebcc, 0x890186f2, 0x2f128d99, 0x88f84687, 0x2efb2d95, 0x88ef0ab4, - 0x2ee3cbc1, 0x88e5d378, - 0x2ecc681e, 0x88dca0d3, 0x2eb502ae, 0x88d372c6, 0x2e9d9b70, 0x88ca4951, - 0x2e863267, 0x88c12475, - 0x2e6ec792, 0x88b80432, 0x2e575af3, 0x88aee888, 0x2e3fec8b, 0x88a5d177, - 0x2e287c5a, 0x889cbf01, - 0x2e110a62, 0x8893b125, 0x2df996a3, 0x888aa7e3, 0x2de2211e, 0x8881a33d, - 0x2dcaa9d5, 0x8878a332, - 0x2db330c7, 0x886fa7c2, 0x2d9bb5f6, 0x8866b0ef, 0x2d843964, 0x885dbeb8, - 0x2d6cbb10, 0x8854d11e, - 0x2d553afc, 0x884be821, 0x2d3db928, 0x884303c1, 0x2d263596, 0x883a23ff, - 0x2d0eb046, 0x883148db, - 0x2cf72939, 0x88287256, 0x2cdfa071, 0x881fa06f, 0x2cc815ee, 0x8816d327, - 0x2cb089b1, 0x880e0a7f, - 0x2c98fbba, 0x88054677, 0x2c816c0c, 0x87fc870f, 0x2c69daa6, 0x87f3cc48, - 0x2c52478a, 0x87eb1621, - 0x2c3ab2b9, 0x87e2649b, 0x2c231c33, 0x87d9b7b7, 0x2c0b83fa, 0x87d10f75, - 0x2bf3ea0d, 0x87c86bd5, - 0x2bdc4e6f, 0x87bfccd7, 0x2bc4b120, 0x87b7327d, 0x2bad1221, 0x87ae9cc5, - 0x2b957173, 0x87a60bb1, - 0x2b7dcf17, 0x879d7f41, 0x2b662b0e, 0x8794f774, 0x2b4e8558, 0x878c744d, - 0x2b36ddf7, 0x8783f5ca, - 0x2b1f34eb, 0x877b7bec, 0x2b078a36, 0x877306b4, 0x2aefddd8, 0x876a9621, - 0x2ad82fd2, 0x87622a35, - 0x2ac08026, 0x8759c2ef, 0x2aa8ced3, 0x87516050, 0x2a911bdc, 0x87490258, - 0x2a796740, 0x8740a907, - 0x2a61b101, 0x8738545e, 0x2a49f920, 0x8730045d, 0x2a323f9e, 0x8727b905, - 0x2a1a847b, 0x871f7255, - 0x2a02c7b8, 0x8717304e, 0x29eb0957, 0x870ef2f1, 0x29d34958, 0x8706ba3d, - 0x29bb87bc, 0x86fe8633, - 0x29a3c485, 0x86f656d3, 0x298bffb2, 0x86ee2c1e, 0x29743946, 0x86e60614, - 0x295c7140, 0x86dde4b5, - 0x2944a7a2, 0x86d5c802, 0x292cdc6d, 0x86cdaffa, 0x29150fa1, 0x86c59c9f, - 0x28fd4140, 0x86bd8df0, - 0x28e5714b, 0x86b583ee, 0x28cd9fc1, 0x86ad7e99, 0x28b5cca5, 0x86a57df2, - 0x289df7f8, 0x869d81f8, - 0x288621b9, 0x86958aac, 0x286e49ea, 0x868d980e, 0x2856708d, 0x8685aa20, - 0x283e95a1, 0x867dc0e0, - 0x2826b928, 0x8675dc4f, 0x280edb23, 0x866dfc6e, 0x27f6fb92, 0x8666213c, - 0x27df1a77, 0x865e4abb, - 0x27c737d3, 0x865678eb, 0x27af53a6, 0x864eabcb, 0x27976df1, 0x8646e35c, - 0x277f86b5, 0x863f1f9e, - 0x27679df4, 0x86376092, 0x274fb3ae, 0x862fa638, 0x2737c7e3, 0x8627f091, - 0x271fda96, 0x86203f9c, - 0x2707ebc7, 0x86189359, 0x26effb76, 0x8610ebca, 0x26d809a5, 0x860948ef, - 0x26c01655, 0x8601aac7, - 0x26a82186, 0x85fa1153, 0x26902b39, 0x85f27c93, 0x26783370, 0x85eaec88, - 0x26603a2c, 0x85e36132, - 0x26483f6c, 0x85dbda91, 0x26304333, 0x85d458a6, 0x26184581, 0x85ccdb70, - 0x26004657, 0x85c562f1, - 0x25e845b6, 0x85bdef28, 0x25d0439f, 0x85b68015, 0x25b84012, 0x85af15b9, - 0x25a03b11, 0x85a7b015, - 0x2588349d, 0x85a04f28, 0x25702cb7, 0x8598f2f3, 0x2558235f, 0x85919b76, - 0x25401896, 0x858a48b1, - 0x25280c5e, 0x8582faa5, 0x250ffeb7, 0x857bb152, 0x24f7efa2, 0x85746cb8, - 0x24dfdf20, 0x856d2cd7, - 0x24c7cd33, 0x8565f1b0, 0x24afb9da, 0x855ebb44, 0x2497a517, 0x85578991, - 0x247f8eec, 0x85505c99, - 0x24677758, 0x8549345c, 0x244f5e5c, 0x854210db, 0x243743fa, 0x853af214, - 0x241f2833, 0x8533d809, - 0x24070b08, 0x852cc2bb, 0x23eeec78, 0x8525b228, 0x23d6cc87, 0x851ea652, - 0x23beab33, 0x85179f39, - 0x23a6887f, 0x85109cdd, 0x238e646a, 0x85099f3e, 0x23763ef7, 0x8502a65c, - 0x235e1826, 0x84fbb239, - 0x2345eff8, 0x84f4c2d4, 0x232dc66d, 0x84edd82d, 0x23159b88, 0x84e6f244, - 0x22fd6f48, 0x84e0111b, - 0x22e541af, 0x84d934b1, 0x22cd12bd, 0x84d25d06, 0x22b4e274, 0x84cb8a1b, - 0x229cb0d5, 0x84c4bbf0, - 0x22847de0, 0x84bdf286, 0x226c4996, 0x84b72ddb, 0x225413f8, 0x84b06df2, - 0x223bdd08, 0x84a9b2ca, - 0x2223a4c5, 0x84a2fc62, 0x220b6b32, 0x849c4abd, 0x21f3304f, 0x84959dd9, - 0x21daf41d, 0x848ef5b7, - 0x21c2b69c, 0x84885258, 0x21aa77cf, 0x8481b3bb, 0x219237b5, 0x847b19e1, - 0x2179f64f, 0x847484ca, - 0x2161b3a0, 0x846df477, 0x21496fa7, 0x846768e7, 0x21312a65, 0x8460e21a, - 0x2118e3dc, 0x845a6012, - 0x21009c0c, 0x8453e2cf, 0x20e852f6, 0x844d6a50, 0x20d0089c, 0x8446f695, - 0x20b7bcfe, 0x844087a0, - 0x209f701c, 0x843a1d70, 0x208721f9, 0x8433b806, 0x206ed295, 0x842d5762, - 0x205681f1, 0x8426fb84, - 0x203e300d, 0x8420a46c, 0x2025dcec, 0x841a521a, 0x200d888d, 0x84140490, - 0x1ff532f2, 0x840dbbcc, - 0x1fdcdc1b, 0x840777d0, 0x1fc4840a, 0x8401389b, 0x1fac2abf, 0x83fafe2e, - 0x1f93d03c, 0x83f4c889, - 0x1f7b7481, 0x83ee97ad, 0x1f63178f, 0x83e86b99, 0x1f4ab968, 0x83e2444d, - 0x1f325a0b, 0x83dc21cb, - 0x1f19f97b, 0x83d60412, 0x1f0197b8, 0x83cfeb22, 0x1ee934c3, 0x83c9d6fc, - 0x1ed0d09d, 0x83c3c7a0, - 0x1eb86b46, 0x83bdbd0e, 0x1ea004c1, 0x83b7b746, 0x1e879d0d, 0x83b1b649, - 0x1e6f342c, 0x83abba17, - 0x1e56ca1e, 0x83a5c2b0, 0x1e3e5ee5, 0x839fd014, 0x1e25f282, 0x8399e244, - 0x1e0d84f5, 0x8393f940, - 0x1df5163f, 0x838e1507, 0x1ddca662, 0x8388359b, 0x1dc4355e, 0x83825afb, - 0x1dabc334, 0x837c8528, - 0x1d934fe5, 0x8376b422, 0x1d7adb73, 0x8370e7e9, 0x1d6265dd, 0x836b207d, - 0x1d49ef26, 0x83655ddf, - 0x1d31774d, 0x835fa00f, 0x1d18fe54, 0x8359e70d, 0x1d00843d, 0x835432d8, - 0x1ce80906, 0x834e8373, - 0x1ccf8cb3, 0x8348d8dc, 0x1cb70f43, 0x83433314, 0x1c9e90b8, 0x833d921b, - 0x1c861113, 0x8337f5f1, - 0x1c6d9053, 0x83325e97, 0x1c550e7c, 0x832ccc0d, 0x1c3c8b8c, 0x83273e52, - 0x1c240786, 0x8321b568, - 0x1c0b826a, 0x831c314e, 0x1bf2fc3a, 0x8316b205, 0x1bda74f6, 0x8311378d, - 0x1bc1ec9e, 0x830bc1e6, - 0x1ba96335, 0x83065110, 0x1b90d8bb, 0x8300e50b, 0x1b784d30, 0x82fb7dd8, - 0x1b5fc097, 0x82f61b77, - 0x1b4732ef, 0x82f0bde8, 0x1b2ea43a, 0x82eb652b, 0x1b161479, 0x82e61141, - 0x1afd83ad, 0x82e0c22a, - 0x1ae4f1d6, 0x82db77e5, 0x1acc5ef6, 0x82d63274, 0x1ab3cb0d, 0x82d0f1d5, - 0x1a9b361d, 0x82cbb60b, - 0x1a82a026, 0x82c67f14, 0x1a6a0929, 0x82c14cf1, 0x1a517128, 0x82bc1fa2, - 0x1a38d823, 0x82b6f727, - 0x1a203e1b, 0x82b1d381, 0x1a07a311, 0x82acb4b0, 0x19ef0707, 0x82a79ab3, - 0x19d669fc, 0x82a2858c, - 0x19bdcbf3, 0x829d753a, 0x19a52ceb, 0x829869be, 0x198c8ce7, 0x82936317, - 0x1973ebe6, 0x828e6146, - 0x195b49ea, 0x8289644b, 0x1942a6f3, 0x82846c26, 0x192a0304, 0x827f78d8, - 0x19115e1c, 0x827a8a61, - 0x18f8b83c, 0x8275a0c0, 0x18e01167, 0x8270bbf7, 0x18c7699b, 0x826bdc04, - 0x18aec0db, 0x826700e9, - 0x18961728, 0x82622aa6, 0x187d6c82, 0x825d593a, 0x1864c0ea, 0x82588ca7, - 0x184c1461, 0x8253c4eb, - 0x183366e9, 0x824f0208, 0x181ab881, 0x824a43fe, 0x1802092c, 0x82458acc, - 0x17e958ea, 0x8240d673, - 0x17d0a7bc, 0x823c26f3, 0x17b7f5a3, 0x82377c4c, 0x179f429f, 0x8232d67f, - 0x17868eb3, 0x822e358b, - 0x176dd9de, 0x82299971, 0x17552422, 0x82250232, 0x173c6d80, 0x82206fcc, - 0x1723b5f9, 0x821be240, - 0x170afd8d, 0x82175990, 0x16f2443e, 0x8212d5b9, 0x16d98a0c, 0x820e56be, - 0x16c0cef9, 0x8209dc9e, - 0x16a81305, 0x82056758, 0x168f5632, 0x8200f6ef, 0x1676987f, 0x81fc8b60, - 0x165dd9f0, 0x81f824ae, - 0x16451a83, 0x81f3c2d7, 0x162c5a3b, 0x81ef65dc, 0x16139918, 0x81eb0dbe, - 0x15fad71b, 0x81e6ba7c, - 0x15e21445, 0x81e26c16, 0x15c95097, 0x81de228d, 0x15b08c12, 0x81d9dde1, - 0x1597c6b7, 0x81d59e13, - 0x157f0086, 0x81d16321, 0x15663982, 0x81cd2d0c, 0x154d71aa, 0x81c8fbd6, - 0x1534a901, 0x81c4cf7d, - 0x151bdf86, 0x81c0a801, 0x1503153a, 0x81bc8564, 0x14ea4a1f, 0x81b867a5, - 0x14d17e36, 0x81b44ec4, - 0x14b8b17f, 0x81b03ac2, 0x149fe3fc, 0x81ac2b9e, 0x148715ae, 0x81a82159, - 0x146e4694, 0x81a41bf4, - 0x145576b1, 0x81a01b6d, 0x143ca605, 0x819c1fc5, 0x1423d492, 0x819828fd, - 0x140b0258, 0x81943715, - 0x13f22f58, 0x81904a0c, 0x13d95b93, 0x818c61e3, 0x13c0870a, 0x81887e9a, - 0x13a7b1bf, 0x8184a032, - 0x138edbb1, 0x8180c6a9, 0x137604e2, 0x817cf201, 0x135d2d53, 0x8179223a, - 0x13445505, 0x81755754, - 0x132b7bf9, 0x8171914e, 0x1312a230, 0x816dd02a, 0x12f9c7aa, 0x816a13e6, - 0x12e0ec6a, 0x81665c84, - 0x12c8106f, 0x8162aa04, 0x12af33ba, 0x815efc65, 0x1296564d, 0x815b53a8, - 0x127d7829, 0x8157afcd, - 0x1264994e, 0x815410d4, 0x124bb9be, 0x815076bd, 0x1232d979, 0x814ce188, - 0x1219f880, 0x81495136, - 0x120116d5, 0x8145c5c7, 0x11e83478, 0x81423f3a, 0x11cf516a, 0x813ebd90, - 0x11b66dad, 0x813b40ca, - 0x119d8941, 0x8137c8e6, 0x1184a427, 0x813455e6, 0x116bbe60, 0x8130e7c9, - 0x1152d7ed, 0x812d7e8f, - 0x1139f0cf, 0x812a1a3a, 0x11210907, 0x8126bac8, 0x11082096, 0x8123603a, - 0x10ef377d, 0x81200a90, - 0x10d64dbd, 0x811cb9ca, 0x10bd6356, 0x81196de9, 0x10a4784b, 0x811626ec, - 0x108b8c9b, 0x8112e4d4, - 0x1072a048, 0x810fa7a0, 0x1059b352, 0x810c6f52, 0x1040c5bb, 0x81093be8, - 0x1027d784, 0x81060d63, - 0x100ee8ad, 0x8102e3c4, 0xff5f938, 0x80ffbf0a, 0xfdd0926, 0x80fc9f35, - 0xfc41876, 0x80f98446, - 0xfab272b, 0x80f66e3c, 0xf923546, 0x80f35d19, 0xf7942c7, 0x80f050db, - 0xf604faf, 0x80ed4984, - 0xf475bff, 0x80ea4712, 0xf2e67b8, 0x80e74987, 0xf1572dc, 0x80e450e2, - 0xefc7d6b, 0x80e15d24, - 0xee38766, 0x80de6e4c, 0xeca90ce, 0x80db845b, 0xeb199a4, 0x80d89f51, - 0xe98a1e9, 0x80d5bf2e, - 0xe7fa99e, 0x80d2e3f2, 0xe66b0c3, 0x80d00d9d, 0xe4db75b, 0x80cd3c2f, - 0xe34bd66, 0x80ca6fa9, - 0xe1bc2e4, 0x80c7a80a, 0xe02c7d7, 0x80c4e553, 0xde9cc40, 0x80c22784, - 0xdd0d01f, 0x80bf6e9c, - 0xdb7d376, 0x80bcba9d, 0xd9ed646, 0x80ba0b85, 0xd85d88f, 0x80b76156, - 0xd6cda53, 0x80b4bc0e, - 0xd53db92, 0x80b21baf, 0xd3adc4e, 0x80af8039, 0xd21dc87, 0x80ace9ab, - 0xd08dc3f, 0x80aa5806, - 0xcefdb76, 0x80a7cb49, 0xcd6da2d, 0x80a54376, 0xcbdd865, 0x80a2c08b, - 0xca4d620, 0x80a04289, - 0xc8bd35e, 0x809dc971, 0xc72d020, 0x809b5541, 0xc59cc68, 0x8098e5fb, - 0xc40c835, 0x80967b9f, - 0xc27c389, 0x8094162c, 0xc0ebe66, 0x8091b5a2, 0xbf5b8cb, 0x808f5a02, - 0xbdcb2bb, 0x808d034c, - 0xbc3ac35, 0x808ab180, 0xbaaa53b, 0x8088649e, 0xb919dcf, 0x80861ca6, - 0xb7895f0, 0x8083d998, - 0xb5f8d9f, 0x80819b74, 0xb4684df, 0x807f623b, 0xb2d7baf, 0x807d2dec, - 0xb147211, 0x807afe87, - 0xafb6805, 0x8078d40d, 0xae25d8d, 0x8076ae7e, 0xac952aa, 0x80748dd9, - 0xab0475c, 0x8072721f, - 0xa973ba5, 0x80705b50, 0xa7e2f85, 0x806e496c, 0xa6522fe, 0x806c3c74, - 0xa4c1610, 0x806a3466, - 0xa3308bd, 0x80683143, 0xa19fb04, 0x8066330c, 0xa00ece8, 0x806439c0, - 0x9e7de6a, 0x80624560, - 0x9cecf89, 0x806055eb, 0x9b5c048, 0x805e6b62, 0x99cb0a7, 0x805c85c4, - 0x983a0a7, 0x805aa512, - 0x96a9049, 0x8058c94c, 0x9517f8f, 0x8056f272, 0x9386e78, 0x80552084, - 0x91f5d06, 0x80535381, - 0x9064b3a, 0x80518b6b, 0x8ed3916, 0x804fc841, 0x8d42699, 0x804e0a04, - 0x8bb13c5, 0x804c50b2, - 0x8a2009a, 0x804a9c4d, 0x888ed1b, 0x8048ecd5, 0x86fd947, 0x80474248, - 0x856c520, 0x80459ca9, - 0x83db0a7, 0x8043fbf6, 0x8249bdd, 0x80426030, 0x80b86c2, 0x8040c956, - 0x7f27157, 0x803f376a, - 0x7d95b9e, 0x803daa6a, 0x7c04598, 0x803c2257, 0x7a72f45, 0x803a9f31, - 0x78e18a7, 0x803920f8, - 0x77501be, 0x8037a7ac, 0x75bea8c, 0x8036334e, 0x742d311, 0x8034c3dd, - 0x729bb4e, 0x80335959, - 0x710a345, 0x8031f3c2, 0x6f78af6, 0x80309318, 0x6de7262, 0x802f375d, - 0x6c5598a, 0x802de08e, - 0x6ac406f, 0x802c8ead, 0x6932713, 0x802b41ba, 0x67a0d76, 0x8029f9b4, - 0x660f398, 0x8028b69c, - 0x647d97c, 0x80277872, 0x62ebf22, 0x80263f36, 0x615a48b, 0x80250ae7, - 0x5fc89b8, 0x8023db86, - 0x5e36ea9, 0x8022b114, 0x5ca5361, 0x80218b8f, 0x5b137df, 0x80206af8, - 0x5981c26, 0x801f4f4f, - 0x57f0035, 0x801e3895, 0x565e40d, 0x801d26c8, 0x54cc7b1, 0x801c19ea, - 0x533ab20, 0x801b11fa, - 0x51a8e5c, 0x801a0ef8, 0x5017165, 0x801910e4, 0x4e8543e, 0x801817bf, - 0x4cf36e5, 0x80172388, - 0x4b6195d, 0x80163440, 0x49cfba7, 0x801549e6, 0x483ddc3, 0x8014647b, - 0x46abfb3, 0x801383fe, - 0x451a177, 0x8012a86f, 0x4388310, 0x8011d1d0, 0x41f6480, 0x8011001f, - 0x40645c7, 0x8010335c, - 0x3ed26e6, 0x800f6b88, 0x3d407df, 0x800ea8a3, 0x3bae8b2, 0x800deaad, - 0x3a1c960, 0x800d31a5, - 0x388a9ea, 0x800c7d8c, 0x36f8a51, 0x800bce63, 0x3566a96, 0x800b2427, - 0x33d4abb, 0x800a7edb, - 0x3242abf, 0x8009de7e, 0x30b0aa4, 0x80094310, 0x2f1ea6c, 0x8008ac90, - 0x2d8ca16, 0x80081b00, - 0x2bfa9a4, 0x80078e5e, 0x2a68917, 0x800706ac, 0x28d6870, 0x800683e8, - 0x27447b0, 0x80060614, - 0x25b26d7, 0x80058d2f, 0x24205e8, 0x80051939, 0x228e4e2, 0x8004aa32, - 0x20fc3c6, 0x8004401a, - 0x1f6a297, 0x8003daf1, 0x1dd8154, 0x80037ab7, 0x1c45ffe, 0x80031f6d, - 0x1ab3e97, 0x8002c912, - 0x1921d20, 0x800277a6, 0x178fb99, 0x80022b29, 0x15fda03, 0x8001e39b, - 0x146b860, 0x8001a0fd, - 0x12d96b1, 0x8001634e, 0x11474f6, 0x80012a8e, 0xfb5330, 0x8000f6bd, - 0xe23160, 0x8000c7dc, - 0xc90f88, 0x80009dea, 0xafeda8, 0x800078e7, 0x96cbc1, 0x800058d4, 0x7da9d4, - 0x80003daf, - 0x6487e3, 0x8000277a, 0x4b65ee, 0x80001635, 0x3243f5, 0x800009df, 0x1921fb, - 0x80000278, -}; - -static const q31_t WeightsQ31_8192[16384] = { - 0x7fffffff, 0x0, 0x7fffffd9, 0xfff9b781, 0x7fffff62, 0xfff36f02, 0x7ffffe9d, - 0xffed2684, - 0x7ffffd88, 0xffe6de05, 0x7ffffc25, 0xffe09586, 0x7ffffa73, 0xffda4d08, - 0x7ffff872, 0xffd40489, - 0x7ffff621, 0xffcdbc0b, 0x7ffff382, 0xffc7738c, 0x7ffff094, 0xffc12b0e, - 0x7fffed57, 0xffbae290, - 0x7fffe9cb, 0xffb49a12, 0x7fffe5f0, 0xffae5195, 0x7fffe1c6, 0xffa80917, - 0x7fffdd4d, 0xffa1c09a, - 0x7fffd886, 0xff9b781d, 0x7fffd36f, 0xff952fa0, 0x7fffce09, 0xff8ee724, - 0x7fffc854, 0xff889ea7, - 0x7fffc251, 0xff82562c, 0x7fffbbfe, 0xff7c0db0, 0x7fffb55c, 0xff75c535, - 0x7fffae6c, 0xff6f7cba, - 0x7fffa72c, 0xff69343f, 0x7fff9f9e, 0xff62ebc5, 0x7fff97c1, 0xff5ca34b, - 0x7fff8f94, 0xff565ad1, - 0x7fff8719, 0xff501258, 0x7fff7e4f, 0xff49c9df, 0x7fff7536, 0xff438167, - 0x7fff6bcd, 0xff3d38ef, - 0x7fff6216, 0xff36f078, 0x7fff5810, 0xff30a801, 0x7fff4dbb, 0xff2a5f8b, - 0x7fff4317, 0xff241715, - 0x7fff3824, 0xff1dcea0, 0x7fff2ce2, 0xff17862b, 0x7fff2151, 0xff113db7, - 0x7fff1572, 0xff0af543, - 0x7fff0943, 0xff04acd0, 0x7ffefcc5, 0xfefe645e, 0x7ffeeff8, 0xfef81bec, - 0x7ffee2dd, 0xfef1d37b, - 0x7ffed572, 0xfeeb8b0a, 0x7ffec7b9, 0xfee5429a, 0x7ffeb9b0, 0xfedefa2b, - 0x7ffeab59, 0xfed8b1bd, - 0x7ffe9cb2, 0xfed2694f, 0x7ffe8dbd, 0xfecc20e2, 0x7ffe7e79, 0xfec5d876, - 0x7ffe6ee5, 0xfebf900a, - 0x7ffe5f03, 0xfeb947a0, 0x7ffe4ed2, 0xfeb2ff36, 0x7ffe3e52, 0xfeacb6cc, - 0x7ffe2d83, 0xfea66e64, - 0x7ffe1c65, 0xfea025fd, 0x7ffe0af8, 0xfe99dd96, 0x7ffdf93c, 0xfe939530, - 0x7ffde731, 0xfe8d4ccb, - 0x7ffdd4d7, 0xfe870467, 0x7ffdc22e, 0xfe80bc04, 0x7ffdaf37, 0xfe7a73a2, - 0x7ffd9bf0, 0xfe742b41, - 0x7ffd885a, 0xfe6de2e0, 0x7ffd7476, 0xfe679a81, 0x7ffd6042, 0xfe615223, - 0x7ffd4bc0, 0xfe5b09c5, - 0x7ffd36ee, 0xfe54c169, 0x7ffd21ce, 0xfe4e790d, 0x7ffd0c5f, 0xfe4830b3, - 0x7ffcf6a0, 0xfe41e85a, - 0x7ffce093, 0xfe3ba002, 0x7ffcca37, 0xfe3557ab, 0x7ffcb38c, 0xfe2f0f55, - 0x7ffc9c92, 0xfe28c700, - 0x7ffc8549, 0xfe227eac, 0x7ffc6db1, 0xfe1c365a, 0x7ffc55ca, 0xfe15ee09, - 0x7ffc3d94, 0xfe0fa5b8, - 0x7ffc250f, 0xfe095d69, 0x7ffc0c3b, 0xfe03151c, 0x7ffbf319, 0xfdfccccf, - 0x7ffbd9a7, 0xfdf68484, - 0x7ffbbfe6, 0xfdf03c3a, 0x7ffba5d7, 0xfde9f3f1, 0x7ffb8b78, 0xfde3aba9, - 0x7ffb70cb, 0xfddd6363, - 0x7ffb55ce, 0xfdd71b1e, 0x7ffb3a83, 0xfdd0d2db, 0x7ffb1ee9, 0xfdca8a99, - 0x7ffb0300, 0xfdc44258, - 0x7ffae6c7, 0xfdbdfa18, 0x7ffaca40, 0xfdb7b1da, 0x7ffaad6a, 0xfdb1699e, - 0x7ffa9045, 0xfdab2162, - 0x7ffa72d1, 0xfda4d929, 0x7ffa550e, 0xfd9e90f0, 0x7ffa36fc, 0xfd9848b9, - 0x7ffa189c, 0xfd920084, - 0x7ff9f9ec, 0xfd8bb850, 0x7ff9daed, 0xfd85701e, 0x7ff9bba0, 0xfd7f27ed, - 0x7ff99c03, 0xfd78dfbd, - 0x7ff97c18, 0xfd729790, 0x7ff95bdd, 0xfd6c4f64, 0x7ff93b54, 0xfd660739, - 0x7ff91a7b, 0xfd5fbf10, - 0x7ff8f954, 0xfd5976e9, 0x7ff8d7de, 0xfd532ec3, 0x7ff8b619, 0xfd4ce69f, - 0x7ff89405, 0xfd469e7c, - 0x7ff871a2, 0xfd40565c, 0x7ff84ef0, 0xfd3a0e3d, 0x7ff82bef, 0xfd33c61f, - 0x7ff8089f, 0xfd2d7e04, - 0x7ff7e500, 0xfd2735ea, 0x7ff7c113, 0xfd20edd2, 0x7ff79cd6, 0xfd1aa5bc, - 0x7ff7784a, 0xfd145da7, - 0x7ff75370, 0xfd0e1594, 0x7ff72e46, 0xfd07cd83, 0x7ff708ce, 0xfd018574, - 0x7ff6e307, 0xfcfb3d67, - 0x7ff6bcf0, 0xfcf4f55c, 0x7ff6968b, 0xfceead52, 0x7ff66fd7, 0xfce8654b, - 0x7ff648d4, 0xfce21d45, - 0x7ff62182, 0xfcdbd541, 0x7ff5f9e1, 0xfcd58d3f, 0x7ff5d1f1, 0xfccf453f, - 0x7ff5a9b2, 0xfcc8fd41, - 0x7ff58125, 0xfcc2b545, 0x7ff55848, 0xfcbc6d4c, 0x7ff52f1d, 0xfcb62554, - 0x7ff505a2, 0xfcafdd5e, - 0x7ff4dbd9, 0xfca9956a, 0x7ff4b1c0, 0xfca34d78, 0x7ff48759, 0xfc9d0588, - 0x7ff45ca3, 0xfc96bd9b, - 0x7ff4319d, 0xfc9075af, 0x7ff40649, 0xfc8a2dc6, 0x7ff3daa6, 0xfc83e5de, - 0x7ff3aeb4, 0xfc7d9df9, - 0x7ff38274, 0xfc775616, 0x7ff355e4, 0xfc710e36, 0x7ff32905, 0xfc6ac657, - 0x7ff2fbd7, 0xfc647e7b, - 0x7ff2ce5b, 0xfc5e36a0, 0x7ff2a08f, 0xfc57eec9, 0x7ff27275, 0xfc51a6f3, - 0x7ff2440b, 0xfc4b5f20, - 0x7ff21553, 0xfc45174e, 0x7ff1e64c, 0xfc3ecf80, 0x7ff1b6f6, 0xfc3887b3, - 0x7ff18751, 0xfc323fe9, - 0x7ff1575d, 0xfc2bf821, 0x7ff1271a, 0xfc25b05c, 0x7ff0f688, 0xfc1f6899, - 0x7ff0c5a7, 0xfc1920d8, - 0x7ff09478, 0xfc12d91a, 0x7ff062f9, 0xfc0c915e, 0x7ff0312c, 0xfc0649a5, - 0x7fefff0f, 0xfc0001ee, - 0x7fefcca4, 0xfbf9ba39, 0x7fef99ea, 0xfbf37287, 0x7fef66e1, 0xfbed2ad8, - 0x7fef3388, 0xfbe6e32b, - 0x7feeffe1, 0xfbe09b80, 0x7feecbec, 0xfbda53d8, 0x7fee97a7, 0xfbd40c33, - 0x7fee6313, 0xfbcdc490, - 0x7fee2e30, 0xfbc77cf0, 0x7fedf8ff, 0xfbc13552, 0x7fedc37e, 0xfbbaedb7, - 0x7fed8daf, 0xfbb4a61f, - 0x7fed5791, 0xfbae5e89, 0x7fed2123, 0xfba816f6, 0x7fecea67, 0xfba1cf66, - 0x7fecb35c, 0xfb9b87d8, - 0x7fec7c02, 0xfb95404d, 0x7fec4459, 0xfb8ef8c5, 0x7fec0c62, 0xfb88b13f, - 0x7febd41b, 0xfb8269bd, - 0x7feb9b85, 0xfb7c223d, 0x7feb62a1, 0xfb75dac0, 0x7feb296d, 0xfb6f9345, - 0x7feaefeb, 0xfb694bce, - 0x7feab61a, 0xfb630459, 0x7fea7bfa, 0xfb5cbce7, 0x7fea418b, 0xfb567578, - 0x7fea06cd, 0xfb502e0c, - 0x7fe9cbc0, 0xfb49e6a3, 0x7fe99064, 0xfb439f3c, 0x7fe954ba, 0xfb3d57d9, - 0x7fe918c0, 0xfb371078, - 0x7fe8dc78, 0xfb30c91b, 0x7fe89fe0, 0xfb2a81c0, 0x7fe862fa, 0xfb243a69, - 0x7fe825c5, 0xfb1df314, - 0x7fe7e841, 0xfb17abc2, 0x7fe7aa6e, 0xfb116474, 0x7fe76c4c, 0xfb0b1d28, - 0x7fe72ddb, 0xfb04d5e0, - 0x7fe6ef1c, 0xfafe8e9b, 0x7fe6b00d, 0xfaf84758, 0x7fe670b0, 0xfaf20019, - 0x7fe63103, 0xfaebb8dd, - 0x7fe5f108, 0xfae571a4, 0x7fe5b0be, 0xfadf2a6e, 0x7fe57025, 0xfad8e33c, - 0x7fe52f3d, 0xfad29c0c, - 0x7fe4ee06, 0xfacc54e0, 0x7fe4ac81, 0xfac60db7, 0x7fe46aac, 0xfabfc691, - 0x7fe42889, 0xfab97f6e, - 0x7fe3e616, 0xfab3384f, 0x7fe3a355, 0xfaacf133, 0x7fe36045, 0xfaa6aa1a, - 0x7fe31ce6, 0xfaa06305, - 0x7fe2d938, 0xfa9a1bf3, 0x7fe2953b, 0xfa93d4e4, 0x7fe250ef, 0xfa8d8dd8, - 0x7fe20c55, 0xfa8746d0, - 0x7fe1c76b, 0xfa80ffcb, 0x7fe18233, 0xfa7ab8ca, 0x7fe13cac, 0xfa7471cc, - 0x7fe0f6d6, 0xfa6e2ad1, - 0x7fe0b0b1, 0xfa67e3da, 0x7fe06a3d, 0xfa619ce7, 0x7fe0237a, 0xfa5b55f7, - 0x7fdfdc69, 0xfa550f0a, - 0x7fdf9508, 0xfa4ec821, 0x7fdf4d59, 0xfa48813b, 0x7fdf055a, 0xfa423a59, - 0x7fdebd0d, 0xfa3bf37a, - 0x7fde7471, 0xfa35ac9f, 0x7fde2b86, 0xfa2f65c8, 0x7fdde24d, 0xfa291ef4, - 0x7fdd98c4, 0xfa22d823, - 0x7fdd4eec, 0xfa1c9157, 0x7fdd04c6, 0xfa164a8e, 0x7fdcba51, 0xfa1003c8, - 0x7fdc6f8d, 0xfa09bd06, - 0x7fdc247a, 0xfa037648, 0x7fdbd918, 0xf9fd2f8e, 0x7fdb8d67, 0xf9f6e8d7, - 0x7fdb4167, 0xf9f0a224, - 0x7fdaf519, 0xf9ea5b75, 0x7fdaa87c, 0xf9e414ca, 0x7fda5b8f, 0xf9ddce22, - 0x7fda0e54, 0xf9d7877e, - 0x7fd9c0ca, 0xf9d140de, 0x7fd972f2, 0xf9cafa42, 0x7fd924ca, 0xf9c4b3a9, - 0x7fd8d653, 0xf9be6d15, - 0x7fd8878e, 0xf9b82684, 0x7fd8387a, 0xf9b1dff7, 0x7fd7e917, 0xf9ab996e, - 0x7fd79965, 0xf9a552e9, - 0x7fd74964, 0xf99f0c68, 0x7fd6f914, 0xf998c5ea, 0x7fd6a875, 0xf9927f71, - 0x7fd65788, 0xf98c38fc, - 0x7fd6064c, 0xf985f28a, 0x7fd5b4c1, 0xf97fac1d, 0x7fd562e7, 0xf97965b4, - 0x7fd510be, 0xf9731f4e, - 0x7fd4be46, 0xf96cd8ed, 0x7fd46b80, 0xf9669290, 0x7fd4186a, 0xf9604c37, - 0x7fd3c506, 0xf95a05e2, - 0x7fd37153, 0xf953bf91, 0x7fd31d51, 0xf94d7944, 0x7fd2c900, 0xf94732fb, - 0x7fd27460, 0xf940ecb7, - 0x7fd21f72, 0xf93aa676, 0x7fd1ca35, 0xf934603a, 0x7fd174a8, 0xf92e1a02, - 0x7fd11ecd, 0xf927d3ce, - 0x7fd0c8a3, 0xf9218d9e, 0x7fd0722b, 0xf91b4773, 0x7fd01b63, 0xf915014c, - 0x7fcfc44d, 0xf90ebb29, - 0x7fcf6ce8, 0xf908750a, 0x7fcf1533, 0xf9022ef0, 0x7fcebd31, 0xf8fbe8da, - 0x7fce64df, 0xf8f5a2c9, - 0x7fce0c3e, 0xf8ef5cbb, 0x7fcdb34f, 0xf8e916b2, 0x7fcd5a11, 0xf8e2d0ae, - 0x7fcd0083, 0xf8dc8aae, - 0x7fcca6a7, 0xf8d644b2, 0x7fcc4c7d, 0xf8cffebb, 0x7fcbf203, 0xf8c9b8c8, - 0x7fcb973b, 0xf8c372d9, - 0x7fcb3c23, 0xf8bd2cef, 0x7fcae0bd, 0xf8b6e70a, 0x7fca8508, 0xf8b0a129, - 0x7fca2905, 0xf8aa5b4c, - 0x7fc9ccb2, 0xf8a41574, 0x7fc97011, 0xf89dcfa1, 0x7fc91320, 0xf89789d2, - 0x7fc8b5e1, 0xf8914407, - 0x7fc85854, 0xf88afe42, 0x7fc7fa77, 0xf884b880, 0x7fc79c4b, 0xf87e72c4, - 0x7fc73dd1, 0xf8782d0c, - 0x7fc6df08, 0xf871e759, 0x7fc67ff0, 0xf86ba1aa, 0x7fc62089, 0xf8655c00, - 0x7fc5c0d3, 0xf85f165b, - 0x7fc560cf, 0xf858d0bb, 0x7fc5007c, 0xf8528b1f, 0x7fc49fda, 0xf84c4588, - 0x7fc43ee9, 0xf845fff5, - 0x7fc3dda9, 0xf83fba68, 0x7fc37c1b, 0xf83974df, 0x7fc31a3d, 0xf8332f5b, - 0x7fc2b811, 0xf82ce9dc, - 0x7fc25596, 0xf826a462, 0x7fc1f2cc, 0xf8205eec, 0x7fc18fb4, 0xf81a197b, - 0x7fc12c4d, 0xf813d410, - 0x7fc0c896, 0xf80d8ea9, 0x7fc06491, 0xf8074947, 0x7fc0003e, 0xf80103ea, - 0x7fbf9b9b, 0xf7fabe92, - 0x7fbf36aa, 0xf7f4793e, 0x7fbed16a, 0xf7ee33f0, 0x7fbe6bdb, 0xf7e7eea7, - 0x7fbe05fd, 0xf7e1a963, - 0x7fbd9fd0, 0xf7db6423, 0x7fbd3955, 0xf7d51ee9, 0x7fbcd28b, 0xf7ced9b4, - 0x7fbc6b72, 0xf7c89484, - 0x7fbc040a, 0xf7c24f59, 0x7fbb9c53, 0xf7bc0a33, 0x7fbb344e, 0xf7b5c512, - 0x7fbacbfa, 0xf7af7ff6, - 0x7fba6357, 0xf7a93ae0, 0x7fb9fa65, 0xf7a2f5ce, 0x7fb99125, 0xf79cb0c2, - 0x7fb92796, 0xf7966bbb, - 0x7fb8bdb8, 0xf79026b9, 0x7fb8538b, 0xf789e1bc, 0x7fb7e90f, 0xf7839cc4, - 0x7fb77e45, 0xf77d57d2, - 0x7fb7132b, 0xf77712e5, 0x7fb6a7c3, 0xf770cdfd, 0x7fb63c0d, 0xf76a891b, - 0x7fb5d007, 0xf764443d, - 0x7fb563b3, 0xf75dff66, 0x7fb4f710, 0xf757ba93, 0x7fb48a1e, 0xf75175c6, - 0x7fb41cdd, 0xf74b30fe, - 0x7fb3af4e, 0xf744ec3b, 0x7fb34170, 0xf73ea77e, 0x7fb2d343, 0xf73862c6, - 0x7fb264c7, 0xf7321e14, - 0x7fb1f5fc, 0xf72bd967, 0x7fb186e3, 0xf72594c0, 0x7fb1177b, 0xf71f501e, - 0x7fb0a7c4, 0xf7190b81, - 0x7fb037bf, 0xf712c6ea, 0x7fafc76a, 0xf70c8259, 0x7faf56c7, 0xf7063dcd, - 0x7faee5d5, 0xf6fff946, - 0x7fae7495, 0xf6f9b4c6, 0x7fae0305, 0xf6f3704a, 0x7fad9127, 0xf6ed2bd4, - 0x7fad1efa, 0xf6e6e764, - 0x7facac7f, 0xf6e0a2fa, 0x7fac39b4, 0xf6da5e95, 0x7fabc69b, 0xf6d41a36, - 0x7fab5333, 0xf6cdd5dc, - 0x7faadf7c, 0xf6c79188, 0x7faa6b77, 0xf6c14d3a, 0x7fa9f723, 0xf6bb08f1, - 0x7fa98280, 0xf6b4c4ae, - 0x7fa90d8e, 0xf6ae8071, 0x7fa8984e, 0xf6a83c3a, 0x7fa822bf, 0xf6a1f808, - 0x7fa7ace1, 0xf69bb3dd, - 0x7fa736b4, 0xf6956fb7, 0x7fa6c039, 0xf68f2b96, 0x7fa6496e, 0xf688e77c, - 0x7fa5d256, 0xf682a367, - 0x7fa55aee, 0xf67c5f59, 0x7fa4e338, 0xf6761b50, 0x7fa46b32, 0xf66fd74d, - 0x7fa3f2df, 0xf6699350, - 0x7fa37a3c, 0xf6634f59, 0x7fa3014b, 0xf65d0b68, 0x7fa2880b, 0xf656c77c, - 0x7fa20e7c, 0xf6508397, - 0x7fa1949e, 0xf64a3fb8, 0x7fa11a72, 0xf643fbdf, 0x7fa09ff7, 0xf63db80b, - 0x7fa0252e, 0xf637743e, - 0x7f9faa15, 0xf6313077, 0x7f9f2eae, 0xf62aecb5, 0x7f9eb2f8, 0xf624a8fa, - 0x7f9e36f4, 0xf61e6545, - 0x7f9dbaa0, 0xf6182196, 0x7f9d3dfe, 0xf611dded, 0x7f9cc10d, 0xf60b9a4b, - 0x7f9c43ce, 0xf60556ae, - 0x7f9bc640, 0xf5ff1318, 0x7f9b4863, 0xf5f8cf87, 0x7f9aca37, 0xf5f28bfd, - 0x7f9a4bbd, 0xf5ec4879, - 0x7f99ccf4, 0xf5e604fc, 0x7f994ddc, 0xf5dfc184, 0x7f98ce76, 0xf5d97e13, - 0x7f984ec1, 0xf5d33aa8, - 0x7f97cebd, 0xf5ccf743, 0x7f974e6a, 0xf5c6b3e5, 0x7f96cdc9, 0xf5c0708d, - 0x7f964cd9, 0xf5ba2d3b, - 0x7f95cb9a, 0xf5b3e9f0, 0x7f954a0d, 0xf5ada6ab, 0x7f94c831, 0xf5a7636c, - 0x7f944606, 0xf5a12034, - 0x7f93c38c, 0xf59add02, 0x7f9340c4, 0xf59499d6, 0x7f92bdad, 0xf58e56b1, - 0x7f923a48, 0xf5881393, - 0x7f91b694, 0xf581d07b, 0x7f913291, 0xf57b8d69, 0x7f90ae3f, 0xf5754a5e, - 0x7f90299f, 0xf56f0759, - 0x7f8fa4b0, 0xf568c45b, 0x7f8f1f72, 0xf5628163, 0x7f8e99e6, 0xf55c3e72, - 0x7f8e140a, 0xf555fb88, - 0x7f8d8de1, 0xf54fb8a4, 0x7f8d0768, 0xf54975c6, 0x7f8c80a1, 0xf54332ef, - 0x7f8bf98b, 0xf53cf01f, - 0x7f8b7227, 0xf536ad56, 0x7f8aea74, 0xf5306a93, 0x7f8a6272, 0xf52a27d7, - 0x7f89da21, 0xf523e521, - 0x7f895182, 0xf51da273, 0x7f88c894, 0xf5175fca, 0x7f883f58, 0xf5111d29, - 0x7f87b5cd, 0xf50ada8f, - 0x7f872bf3, 0xf50497fb, 0x7f86a1ca, 0xf4fe556e, 0x7f861753, 0xf4f812e7, - 0x7f858c8d, 0xf4f1d068, - 0x7f850179, 0xf4eb8def, 0x7f847616, 0xf4e54b7d, 0x7f83ea64, 0xf4df0912, - 0x7f835e64, 0xf4d8c6ae, - 0x7f82d214, 0xf4d28451, 0x7f824577, 0xf4cc41fb, 0x7f81b88a, 0xf4c5ffab, - 0x7f812b4f, 0xf4bfbd63, - 0x7f809dc5, 0xf4b97b21, 0x7f800fed, 0xf4b338e7, 0x7f7f81c6, 0xf4acf6b3, - 0x7f7ef350, 0xf4a6b486, - 0x7f7e648c, 0xf4a07261, 0x7f7dd579, 0xf49a3042, 0x7f7d4617, 0xf493ee2b, - 0x7f7cb667, 0xf48dac1a, - 0x7f7c2668, 0xf4876a10, 0x7f7b961b, 0xf481280e, 0x7f7b057e, 0xf47ae613, - 0x7f7a7494, 0xf474a41f, - 0x7f79e35a, 0xf46e6231, 0x7f7951d2, 0xf468204b, 0x7f78bffb, 0xf461de6d, - 0x7f782dd6, 0xf45b9c95, - 0x7f779b62, 0xf4555ac5, 0x7f77089f, 0xf44f18fb, 0x7f76758e, 0xf448d739, - 0x7f75e22e, 0xf442957e, - 0x7f754e80, 0xf43c53cb, 0x7f74ba83, 0xf436121e, 0x7f742637, 0xf42fd079, - 0x7f73919d, 0xf4298edc, - 0x7f72fcb4, 0xf4234d45, 0x7f72677c, 0xf41d0bb6, 0x7f71d1f6, 0xf416ca2e, - 0x7f713c21, 0xf41088ae, - 0x7f70a5fe, 0xf40a4735, 0x7f700f8c, 0xf40405c3, 0x7f6f78cb, 0xf3fdc459, - 0x7f6ee1bc, 0xf3f782f6, - 0x7f6e4a5e, 0xf3f1419a, 0x7f6db2b1, 0xf3eb0046, 0x7f6d1ab6, 0xf3e4bef9, - 0x7f6c826d, 0xf3de7db4, - 0x7f6be9d4, 0xf3d83c77, 0x7f6b50ed, 0xf3d1fb40, 0x7f6ab7b8, 0xf3cbba12, - 0x7f6a1e34, 0xf3c578eb, - 0x7f698461, 0xf3bf37cb, 0x7f68ea40, 0xf3b8f6b3, 0x7f684fd0, 0xf3b2b5a3, - 0x7f67b512, 0xf3ac749a, - 0x7f671a05, 0xf3a63398, 0x7f667ea9, 0xf39ff29f, 0x7f65e2ff, 0xf399b1ad, - 0x7f654706, 0xf39370c2, - 0x7f64aabf, 0xf38d2fe0, 0x7f640e29, 0xf386ef05, 0x7f637144, 0xf380ae31, - 0x7f62d411, 0xf37a6d66, - 0x7f62368f, 0xf3742ca2, 0x7f6198bf, 0xf36debe6, 0x7f60faa0, 0xf367ab31, - 0x7f605c33, 0xf3616a85, - 0x7f5fbd77, 0xf35b29e0, 0x7f5f1e6c, 0xf354e943, 0x7f5e7f13, 0xf34ea8ae, - 0x7f5ddf6b, 0xf3486820, - 0x7f5d3f75, 0xf342279b, 0x7f5c9f30, 0xf33be71d, 0x7f5bfe9d, 0xf335a6a7, - 0x7f5b5dbb, 0xf32f6639, - 0x7f5abc8a, 0xf32925d3, 0x7f5a1b0b, 0xf322e575, 0x7f59793e, 0xf31ca51f, - 0x7f58d721, 0xf31664d1, - 0x7f5834b7, 0xf310248a, 0x7f5791fd, 0xf309e44c, 0x7f56eef5, 0xf303a416, - 0x7f564b9f, 0xf2fd63e8, - 0x7f55a7fa, 0xf2f723c1, 0x7f550407, 0xf2f0e3a3, 0x7f545fc5, 0xf2eaa38d, - 0x7f53bb34, 0xf2e4637f, - 0x7f531655, 0xf2de2379, 0x7f527127, 0xf2d7e37b, 0x7f51cbab, 0xf2d1a385, - 0x7f5125e0, 0xf2cb6398, - 0x7f507fc7, 0xf2c523b2, 0x7f4fd95f, 0xf2bee3d5, 0x7f4f32a9, 0xf2b8a400, - 0x7f4e8ba4, 0xf2b26433, - 0x7f4de451, 0xf2ac246e, 0x7f4d3caf, 0xf2a5e4b1, 0x7f4c94be, 0xf29fa4fd, - 0x7f4bec7f, 0xf2996551, - 0x7f4b43f2, 0xf29325ad, 0x7f4a9b16, 0xf28ce612, 0x7f49f1eb, 0xf286a67e, - 0x7f494872, 0xf28066f4, - 0x7f489eaa, 0xf27a2771, 0x7f47f494, 0xf273e7f7, 0x7f474a30, 0xf26da885, - 0x7f469f7d, 0xf267691b, - 0x7f45f47b, 0xf26129ba, 0x7f45492b, 0xf25aea61, 0x7f449d8c, 0xf254ab11, - 0x7f43f19f, 0xf24e6bc9, - 0x7f434563, 0xf2482c8a, 0x7f4298d9, 0xf241ed53, 0x7f41ec01, 0xf23bae24, - 0x7f413ed9, 0xf2356efe, - 0x7f409164, 0xf22f2fe1, 0x7f3fe3a0, 0xf228f0cc, 0x7f3f358d, 0xf222b1c0, - 0x7f3e872c, 0xf21c72bc, - 0x7f3dd87c, 0xf21633c0, 0x7f3d297e, 0xf20ff4ce, 0x7f3c7a31, 0xf209b5e4, - 0x7f3bca96, 0xf2037702, - 0x7f3b1aad, 0xf1fd3829, 0x7f3a6a75, 0xf1f6f959, 0x7f39b9ee, 0xf1f0ba91, - 0x7f390919, 0xf1ea7bd2, - 0x7f3857f6, 0xf1e43d1c, 0x7f37a684, 0xf1ddfe6f, 0x7f36f4c3, 0xf1d7bfca, - 0x7f3642b4, 0xf1d1812e, - 0x7f359057, 0xf1cb429a, 0x7f34ddab, 0xf1c50410, 0x7f342ab1, 0xf1bec58e, - 0x7f337768, 0xf1b88715, - 0x7f32c3d1, 0xf1b248a5, 0x7f320feb, 0xf1ac0a3e, 0x7f315bb7, 0xf1a5cbdf, - 0x7f30a734, 0xf19f8d89, - 0x7f2ff263, 0xf1994f3d, 0x7f2f3d44, 0xf19310f9, 0x7f2e87d6, 0xf18cd2be, - 0x7f2dd219, 0xf186948c, - 0x7f2d1c0e, 0xf1805662, 0x7f2c65b5, 0xf17a1842, 0x7f2baf0d, 0xf173da2b, - 0x7f2af817, 0xf16d9c1d, - 0x7f2a40d2, 0xf1675e17, 0x7f29893f, 0xf161201b, 0x7f28d15d, 0xf15ae228, - 0x7f28192d, 0xf154a43d, - 0x7f2760af, 0xf14e665c, 0x7f26a7e2, 0xf1482884, 0x7f25eec7, 0xf141eab5, - 0x7f25355d, 0xf13bacef, - 0x7f247ba5, 0xf1356f32, 0x7f23c19e, 0xf12f317e, 0x7f230749, 0xf128f3d4, - 0x7f224ca6, 0xf122b632, - 0x7f2191b4, 0xf11c789a, 0x7f20d674, 0xf1163b0b, 0x7f201ae5, 0xf10ffd85, - 0x7f1f5f08, 0xf109c009, - 0x7f1ea2dc, 0xf1038295, 0x7f1de662, 0xf0fd452b, 0x7f1d299a, 0xf0f707ca, - 0x7f1c6c83, 0xf0f0ca72, - 0x7f1baf1e, 0xf0ea8d24, 0x7f1af16a, 0xf0e44fdf, 0x7f1a3368, 0xf0de12a3, - 0x7f197518, 0xf0d7d571, - 0x7f18b679, 0xf0d19848, 0x7f17f78c, 0xf0cb5b28, 0x7f173850, 0xf0c51e12, - 0x7f1678c6, 0xf0bee105, - 0x7f15b8ee, 0xf0b8a401, 0x7f14f8c7, 0xf0b26707, 0x7f143852, 0xf0ac2a16, - 0x7f13778e, 0xf0a5ed2f, - 0x7f12b67c, 0xf09fb051, 0x7f11f51c, 0xf099737d, 0x7f11336d, 0xf09336b2, - 0x7f107170, 0xf08cf9f1, - 0x7f0faf25, 0xf086bd39, 0x7f0eec8b, 0xf080808b, 0x7f0e29a3, 0xf07a43e7, - 0x7f0d666c, 0xf074074c, - 0x7f0ca2e7, 0xf06dcaba, 0x7f0bdf14, 0xf0678e32, 0x7f0b1af2, 0xf06151b4, - 0x7f0a5682, 0xf05b1540, - 0x7f0991c4, 0xf054d8d5, 0x7f08ccb7, 0xf04e9c73, 0x7f08075c, 0xf048601c, - 0x7f0741b2, 0xf04223ce, - 0x7f067bba, 0xf03be78a, 0x7f05b574, 0xf035ab4f, 0x7f04eedf, 0xf02f6f1f, - 0x7f0427fc, 0xf02932f8, - 0x7f0360cb, 0xf022f6da, 0x7f02994b, 0xf01cbac7, 0x7f01d17d, 0xf0167ebd, - 0x7f010961, 0xf01042be, - 0x7f0040f6, 0xf00a06c8, 0x7eff783d, 0xf003cadc, 0x7efeaf36, 0xeffd8ef9, - 0x7efde5e0, 0xeff75321, - 0x7efd1c3c, 0xeff11753, 0x7efc524a, 0xefeadb8e, 0x7efb8809, 0xefe49fd3, - 0x7efabd7a, 0xefde6423, - 0x7ef9f29d, 0xefd8287c, 0x7ef92771, 0xefd1ecdf, 0x7ef85bf7, 0xefcbb14c, - 0x7ef7902f, 0xefc575c3, - 0x7ef6c418, 0xefbf3a45, 0x7ef5f7b3, 0xefb8fed0, 0x7ef52b00, 0xefb2c365, - 0x7ef45dfe, 0xefac8804, - 0x7ef390ae, 0xefa64cae, 0x7ef2c310, 0xefa01161, 0x7ef1f524, 0xef99d61f, - 0x7ef126e9, 0xef939ae6, - 0x7ef05860, 0xef8d5fb8, 0x7eef8988, 0xef872494, 0x7eeeba62, 0xef80e97a, - 0x7eedeaee, 0xef7aae6b, - 0x7eed1b2c, 0xef747365, 0x7eec4b1b, 0xef6e386a, 0x7eeb7abc, 0xef67fd79, - 0x7eeaaa0f, 0xef61c292, - 0x7ee9d914, 0xef5b87b5, 0x7ee907ca, 0xef554ce3, 0x7ee83632, 0xef4f121b, - 0x7ee7644c, 0xef48d75d, - 0x7ee69217, 0xef429caa, 0x7ee5bf94, 0xef3c6201, 0x7ee4ecc3, 0xef362762, - 0x7ee419a3, 0xef2feccd, - 0x7ee34636, 0xef29b243, 0x7ee2727a, 0xef2377c4, 0x7ee19e6f, 0xef1d3d4e, - 0x7ee0ca17, 0xef1702e4, - 0x7edff570, 0xef10c883, 0x7edf207b, 0xef0a8e2d, 0x7ede4b38, 0xef0453e2, - 0x7edd75a6, 0xeefe19a1, - 0x7edc9fc6, 0xeef7df6a, 0x7edbc998, 0xeef1a53e, 0x7edaf31c, 0xeeeb6b1c, - 0x7eda1c51, 0xeee53105, - 0x7ed94538, 0xeedef6f9, 0x7ed86dd1, 0xeed8bcf7, 0x7ed7961c, 0xeed28300, - 0x7ed6be18, 0xeecc4913, - 0x7ed5e5c6, 0xeec60f31, 0x7ed50d26, 0xeebfd55a, 0x7ed43438, 0xeeb99b8d, - 0x7ed35afb, 0xeeb361cb, - 0x7ed28171, 0xeead2813, 0x7ed1a798, 0xeea6ee66, 0x7ed0cd70, 0xeea0b4c4, - 0x7ecff2fb, 0xee9a7b2d, - 0x7ecf1837, 0xee9441a0, 0x7ece3d25, 0xee8e081e, 0x7ecd61c5, 0xee87cea7, - 0x7ecc8617, 0xee81953b, - 0x7ecbaa1a, 0xee7b5bd9, 0x7ecacdd0, 0xee752283, 0x7ec9f137, 0xee6ee937, - 0x7ec9144f, 0xee68aff6, - 0x7ec8371a, 0xee6276bf, 0x7ec75996, 0xee5c3d94, 0x7ec67bc5, 0xee560473, - 0x7ec59da5, 0xee4fcb5e, - 0x7ec4bf36, 0xee499253, 0x7ec3e07a, 0xee435953, 0x7ec3016f, 0xee3d205e, - 0x7ec22217, 0xee36e775, - 0x7ec14270, 0xee30ae96, 0x7ec0627a, 0xee2a75c2, 0x7ebf8237, 0xee243cf9, - 0x7ebea1a6, 0xee1e043b, - 0x7ebdc0c6, 0xee17cb88, 0x7ebcdf98, 0xee1192e0, 0x7ebbfe1c, 0xee0b5a43, - 0x7ebb1c52, 0xee0521b2, - 0x7eba3a39, 0xedfee92b, 0x7eb957d2, 0xedf8b0b0, 0x7eb8751e, 0xedf2783f, - 0x7eb7921b, 0xedec3fda, - 0x7eb6aeca, 0xede60780, 0x7eb5cb2a, 0xeddfcf31, 0x7eb4e73d, 0xedd996ed, - 0x7eb40301, 0xedd35eb5, - 0x7eb31e78, 0xedcd2687, 0x7eb239a0, 0xedc6ee65, 0x7eb1547a, 0xedc0b64e, - 0x7eb06f05, 0xedba7e43, - 0x7eaf8943, 0xedb44642, 0x7eaea333, 0xedae0e4d, 0x7eadbcd4, 0xeda7d664, - 0x7eacd627, 0xeda19e85, - 0x7eabef2c, 0xed9b66b2, 0x7eab07e3, 0xed952eea, 0x7eaa204c, 0xed8ef72e, - 0x7ea93867, 0xed88bf7d, - 0x7ea85033, 0xed8287d7, 0x7ea767b2, 0xed7c503d, 0x7ea67ee2, 0xed7618ae, - 0x7ea595c4, 0xed6fe12b, - 0x7ea4ac58, 0xed69a9b3, 0x7ea3c29e, 0xed637246, 0x7ea2d896, 0xed5d3ae5, - 0x7ea1ee3f, 0xed570390, - 0x7ea1039b, 0xed50cc46, 0x7ea018a8, 0xed4a9507, 0x7e9f2d68, 0xed445dd5, - 0x7e9e41d9, 0xed3e26ad, - 0x7e9d55fc, 0xed37ef91, 0x7e9c69d1, 0xed31b881, 0x7e9b7d58, 0xed2b817d, - 0x7e9a9091, 0xed254a84, - 0x7e99a37c, 0xed1f1396, 0x7e98b618, 0xed18dcb5, 0x7e97c867, 0xed12a5df, - 0x7e96da67, 0xed0c6f14, - 0x7e95ec1a, 0xed063856, 0x7e94fd7e, 0xed0001a3, 0x7e940e94, 0xecf9cafb, - 0x7e931f5c, 0xecf39460, - 0x7e922fd6, 0xeced5dd0, 0x7e914002, 0xece7274c, 0x7e904fe0, 0xece0f0d4, - 0x7e8f5f70, 0xecdaba67, - 0x7e8e6eb2, 0xecd48407, 0x7e8d7da6, 0xecce4db2, 0x7e8c8c4b, 0xecc81769, - 0x7e8b9aa3, 0xecc1e12c, - 0x7e8aa8ac, 0xecbbaafb, 0x7e89b668, 0xecb574d5, 0x7e88c3d5, 0xecaf3ebc, - 0x7e87d0f5, 0xeca908ae, - 0x7e86ddc6, 0xeca2d2ad, 0x7e85ea49, 0xec9c9cb7, 0x7e84f67e, 0xec9666cd, - 0x7e840265, 0xec9030f0, - 0x7e830dff, 0xec89fb1e, 0x7e82194a, 0xec83c558, 0x7e812447, 0xec7d8f9e, - 0x7e802ef6, 0xec7759f1, - 0x7e7f3957, 0xec71244f, 0x7e7e436a, 0xec6aeeba, 0x7e7d4d2f, 0xec64b930, - 0x7e7c56a5, 0xec5e83b3, - 0x7e7b5fce, 0xec584e41, 0x7e7a68a9, 0xec5218dc, 0x7e797136, 0xec4be383, - 0x7e787975, 0xec45ae36, - 0x7e778166, 0xec3f78f6, 0x7e768908, 0xec3943c1, 0x7e75905d, 0xec330e99, - 0x7e749764, 0xec2cd97d, - 0x7e739e1d, 0xec26a46d, 0x7e72a488, 0xec206f69, 0x7e71aaa4, 0xec1a3a72, - 0x7e70b073, 0xec140587, - 0x7e6fb5f4, 0xec0dd0a8, 0x7e6ebb27, 0xec079bd6, 0x7e6dc00c, 0xec01670f, - 0x7e6cc4a2, 0xebfb3256, - 0x7e6bc8eb, 0xebf4fda8, 0x7e6acce6, 0xebeec907, 0x7e69d093, 0xebe89472, - 0x7e68d3f2, 0xebe25fea, - 0x7e67d703, 0xebdc2b6e, 0x7e66d9c6, 0xebd5f6fe, 0x7e65dc3b, 0xebcfc29b, - 0x7e64de62, 0xebc98e45, - 0x7e63e03b, 0xebc359fb, 0x7e62e1c6, 0xebbd25bd, 0x7e61e303, 0xebb6f18c, - 0x7e60e3f2, 0xebb0bd67, - 0x7e5fe493, 0xebaa894f, 0x7e5ee4e6, 0xeba45543, 0x7e5de4ec, 0xeb9e2144, - 0x7e5ce4a3, 0xeb97ed52, - 0x7e5be40c, 0xeb91b96c, 0x7e5ae328, 0xeb8b8593, 0x7e59e1f5, 0xeb8551c6, - 0x7e58e075, 0xeb7f1e06, - 0x7e57dea7, 0xeb78ea52, 0x7e56dc8a, 0xeb72b6ac, 0x7e55da20, 0xeb6c8312, - 0x7e54d768, 0xeb664f84, - 0x7e53d462, 0xeb601c04, 0x7e52d10e, 0xeb59e890, 0x7e51cd6c, 0xeb53b529, - 0x7e50c97c, 0xeb4d81ce, - 0x7e4fc53e, 0xeb474e81, 0x7e4ec0b2, 0xeb411b40, 0x7e4dbbd9, 0xeb3ae80c, - 0x7e4cb6b1, 0xeb34b4e4, - 0x7e4bb13c, 0xeb2e81ca, 0x7e4aab78, 0xeb284ebc, 0x7e49a567, 0xeb221bbb, - 0x7e489f08, 0xeb1be8c8, - 0x7e47985b, 0xeb15b5e1, 0x7e469160, 0xeb0f8307, 0x7e458a17, 0xeb095039, - 0x7e448281, 0xeb031d79, - 0x7e437a9c, 0xeafceac6, 0x7e427269, 0xeaf6b81f, 0x7e4169e9, 0xeaf08586, - 0x7e40611b, 0xeaea52fa, - 0x7e3f57ff, 0xeae4207a, 0x7e3e4e95, 0xeaddee08, 0x7e3d44dd, 0xead7bba3, - 0x7e3c3ad7, 0xead1894b, - 0x7e3b3083, 0xeacb56ff, 0x7e3a25e2, 0xeac524c1, 0x7e391af3, 0xeabef290, - 0x7e380fb5, 0xeab8c06c, - 0x7e37042a, 0xeab28e56, 0x7e35f851, 0xeaac5c4c, 0x7e34ec2b, 0xeaa62a4f, - 0x7e33dfb6, 0xea9ff860, - 0x7e32d2f4, 0xea99c67e, 0x7e31c5e3, 0xea9394a9, 0x7e30b885, 0xea8d62e1, - 0x7e2faad9, 0xea873127, - 0x7e2e9cdf, 0xea80ff7a, 0x7e2d8e97, 0xea7acdda, 0x7e2c8002, 0xea749c47, - 0x7e2b711f, 0xea6e6ac2, - 0x7e2a61ed, 0xea683949, 0x7e29526e, 0xea6207df, 0x7e2842a2, 0xea5bd681, - 0x7e273287, 0xea55a531, - 0x7e26221f, 0xea4f73ee, 0x7e251168, 0xea4942b9, 0x7e240064, 0xea431191, - 0x7e22ef12, 0xea3ce077, - 0x7e21dd73, 0xea36af69, 0x7e20cb85, 0xea307e6a, 0x7e1fb94a, 0xea2a4d78, - 0x7e1ea6c1, 0xea241c93, - 0x7e1d93ea, 0xea1debbb, 0x7e1c80c5, 0xea17baf2, 0x7e1b6d53, 0xea118a35, - 0x7e1a5992, 0xea0b5987, - 0x7e194584, 0xea0528e5, 0x7e183128, 0xe9fef852, 0x7e171c7f, 0xe9f8c7cc, - 0x7e160787, 0xe9f29753, - 0x7e14f242, 0xe9ec66e8, 0x7e13dcaf, 0xe9e6368b, 0x7e12c6ce, 0xe9e0063c, - 0x7e11b0a0, 0xe9d9d5fa, - 0x7e109a24, 0xe9d3a5c5, 0x7e0f835a, 0xe9cd759f, 0x7e0e6c42, 0xe9c74586, - 0x7e0d54dc, 0xe9c1157a, - 0x7e0c3d29, 0xe9bae57d, 0x7e0b2528, 0xe9b4b58d, 0x7e0a0cd9, 0xe9ae85ab, - 0x7e08f43d, 0xe9a855d7, - 0x7e07db52, 0xe9a22610, 0x7e06c21a, 0xe99bf658, 0x7e05a894, 0xe995c6ad, - 0x7e048ec1, 0xe98f9710, - 0x7e0374a0, 0xe9896781, 0x7e025a31, 0xe98337ff, 0x7e013f74, 0xe97d088c, - 0x7e00246a, 0xe976d926, - 0x7dff0911, 0xe970a9ce, 0x7dfded6c, 0xe96a7a85, 0x7dfcd178, 0xe9644b49, - 0x7dfbb537, 0xe95e1c1b, - 0x7dfa98a8, 0xe957ecfb, 0x7df97bcb, 0xe951bde9, 0x7df85ea0, 0xe94b8ee5, - 0x7df74128, 0xe9455fef, - 0x7df62362, 0xe93f3107, 0x7df5054f, 0xe939022d, 0x7df3e6ee, 0xe932d361, - 0x7df2c83f, 0xe92ca4a4, - 0x7df1a942, 0xe92675f4, 0x7df089f8, 0xe9204752, 0x7def6a60, 0xe91a18bf, - 0x7dee4a7a, 0xe913ea39, - 0x7ded2a47, 0xe90dbbc2, 0x7dec09c6, 0xe9078d59, 0x7deae8f7, 0xe9015efe, - 0x7de9c7da, 0xe8fb30b1, - 0x7de8a670, 0xe8f50273, 0x7de784b9, 0xe8eed443, 0x7de662b3, 0xe8e8a621, - 0x7de54060, 0xe8e2780d, - 0x7de41dc0, 0xe8dc4a07, 0x7de2fad1, 0xe8d61c10, 0x7de1d795, 0xe8cfee27, - 0x7de0b40b, 0xe8c9c04c, - 0x7ddf9034, 0xe8c39280, 0x7dde6c0f, 0xe8bd64c2, 0x7ddd479d, 0xe8b73712, - 0x7ddc22dc, 0xe8b10971, - 0x7ddafdce, 0xe8aadbde, 0x7dd9d873, 0xe8a4ae59, 0x7dd8b2ca, 0xe89e80e3, - 0x7dd78cd3, 0xe898537b, - 0x7dd6668f, 0xe8922622, 0x7dd53ffc, 0xe88bf8d7, 0x7dd4191d, 0xe885cb9a, - 0x7dd2f1f0, 0xe87f9e6c, - 0x7dd1ca75, 0xe879714d, 0x7dd0a2ac, 0xe873443c, 0x7dcf7a96, 0xe86d173a, - 0x7dce5232, 0xe866ea46, - 0x7dcd2981, 0xe860bd61, 0x7dcc0082, 0xe85a908a, 0x7dcad736, 0xe85463c2, - 0x7dc9ad9c, 0xe84e3708, - 0x7dc883b4, 0xe8480a5d, 0x7dc7597f, 0xe841ddc1, 0x7dc62efc, 0xe83bb133, - 0x7dc5042b, 0xe83584b4, - 0x7dc3d90d, 0xe82f5844, 0x7dc2ada2, 0xe8292be3, 0x7dc181e8, 0xe822ff90, - 0x7dc055e2, 0xe81cd34b, - 0x7dbf298d, 0xe816a716, 0x7dbdfceb, 0xe8107aef, 0x7dbccffc, 0xe80a4ed7, - 0x7dbba2bf, 0xe80422ce, - 0x7dba7534, 0xe7fdf6d4, 0x7db9475c, 0xe7f7cae8, 0x7db81936, 0xe7f19f0c, - 0x7db6eac3, 0xe7eb733e, - 0x7db5bc02, 0xe7e5477f, 0x7db48cf4, 0xe7df1bcf, 0x7db35d98, 0xe7d8f02d, - 0x7db22def, 0xe7d2c49b, - 0x7db0fdf8, 0xe7cc9917, 0x7dafcdb3, 0xe7c66da3, 0x7dae9d21, 0xe7c0423d, - 0x7dad6c42, 0xe7ba16e7, - 0x7dac3b15, 0xe7b3eb9f, 0x7dab099a, 0xe7adc066, 0x7da9d7d2, 0xe7a7953d, - 0x7da8a5bc, 0xe7a16a22, - 0x7da77359, 0xe79b3f16, 0x7da640a9, 0xe795141a, 0x7da50dab, 0xe78ee92c, - 0x7da3da5f, 0xe788be4e, - 0x7da2a6c6, 0xe782937e, 0x7da172df, 0xe77c68be, 0x7da03eab, 0xe7763e0d, - 0x7d9f0a29, 0xe770136b, - 0x7d9dd55a, 0xe769e8d8, 0x7d9ca03e, 0xe763be55, 0x7d9b6ad3, 0xe75d93e0, - 0x7d9a351c, 0xe757697b, - 0x7d98ff17, 0xe7513f25, 0x7d97c8c4, 0xe74b14de, 0x7d969224, 0xe744eaa6, - 0x7d955b37, 0xe73ec07e, - 0x7d9423fc, 0xe7389665, 0x7d92ec73, 0xe7326c5b, 0x7d91b49e, 0xe72c4260, - 0x7d907c7a, 0xe7261875, - 0x7d8f4409, 0xe71fee99, 0x7d8e0b4b, 0xe719c4cd, 0x7d8cd240, 0xe7139b10, - 0x7d8b98e6, 0xe70d7162, - 0x7d8a5f40, 0xe70747c4, 0x7d89254c, 0xe7011e35, 0x7d87eb0a, 0xe6faf4b5, - 0x7d86b07c, 0xe6f4cb45, - 0x7d85759f, 0xe6eea1e4, 0x7d843a76, 0xe6e87893, 0x7d82fefe, 0xe6e24f51, - 0x7d81c33a, 0xe6dc261f, - 0x7d808728, 0xe6d5fcfc, 0x7d7f4ac8, 0xe6cfd3e9, 0x7d7e0e1c, 0xe6c9aae5, - 0x7d7cd121, 0xe6c381f1, - 0x7d7b93da, 0xe6bd590d, 0x7d7a5645, 0xe6b73038, 0x7d791862, 0xe6b10772, - 0x7d77da32, 0xe6aadebc, - 0x7d769bb5, 0xe6a4b616, 0x7d755cea, 0xe69e8d80, 0x7d741dd2, 0xe69864f9, - 0x7d72de6d, 0xe6923c82, - 0x7d719eba, 0xe68c141a, 0x7d705eba, 0xe685ebc2, 0x7d6f1e6c, 0xe67fc37a, - 0x7d6dddd2, 0xe6799b42, - 0x7d6c9ce9, 0xe6737319, 0x7d6b5bb4, 0xe66d4b01, 0x7d6a1a31, 0xe66722f7, - 0x7d68d860, 0xe660fafe, - 0x7d679642, 0xe65ad315, 0x7d6653d7, 0xe654ab3b, 0x7d65111f, 0xe64e8371, - 0x7d63ce19, 0xe6485bb7, - 0x7d628ac6, 0xe642340d, 0x7d614725, 0xe63c0c73, 0x7d600338, 0xe635e4e9, - 0x7d5ebefc, 0xe62fbd6e, - 0x7d5d7a74, 0xe6299604, 0x7d5c359e, 0xe6236ea9, 0x7d5af07b, 0xe61d475e, - 0x7d59ab0a, 0xe6172024, - 0x7d58654d, 0xe610f8f9, 0x7d571f41, 0xe60ad1de, 0x7d55d8e9, 0xe604aad4, - 0x7d549243, 0xe5fe83d9, - 0x7d534b50, 0xe5f85cef, 0x7d520410, 0xe5f23614, 0x7d50bc82, 0xe5ec0f4a, - 0x7d4f74a7, 0xe5e5e88f, - 0x7d4e2c7f, 0xe5dfc1e5, 0x7d4ce409, 0xe5d99b4b, 0x7d4b9b46, 0xe5d374c1, - 0x7d4a5236, 0xe5cd4e47, - 0x7d4908d9, 0xe5c727dd, 0x7d47bf2e, 0xe5c10184, 0x7d467536, 0xe5badb3a, - 0x7d452af1, 0xe5b4b501, - 0x7d43e05e, 0xe5ae8ed8, 0x7d42957e, 0xe5a868bf, 0x7d414a51, 0xe5a242b7, - 0x7d3ffed7, 0xe59c1cbf, - 0x7d3eb30f, 0xe595f6d7, 0x7d3d66fa, 0xe58fd0ff, 0x7d3c1a98, 0xe589ab38, - 0x7d3acde9, 0xe5838581, - 0x7d3980ec, 0xe57d5fda, 0x7d3833a2, 0xe5773a44, 0x7d36e60b, 0xe57114be, - 0x7d359827, 0xe56aef49, - 0x7d3449f5, 0xe564c9e3, 0x7d32fb76, 0xe55ea48f, 0x7d31acaa, 0xe5587f4a, - 0x7d305d91, 0xe5525a17, - 0x7d2f0e2b, 0xe54c34f3, 0x7d2dbe77, 0xe5460fe0, 0x7d2c6e76, 0xe53feade, - 0x7d2b1e28, 0xe539c5ec, - 0x7d29cd8c, 0xe533a10a, 0x7d287ca4, 0xe52d7c39, 0x7d272b6e, 0xe5275779, - 0x7d25d9eb, 0xe52132c9, - 0x7d24881b, 0xe51b0e2a, 0x7d2335fe, 0xe514e99b, 0x7d21e393, 0xe50ec51d, - 0x7d2090db, 0xe508a0b0, - 0x7d1f3dd6, 0xe5027c53, 0x7d1dea84, 0xe4fc5807, 0x7d1c96e5, 0xe4f633cc, - 0x7d1b42f9, 0xe4f00fa1, - 0x7d19eebf, 0xe4e9eb87, 0x7d189a38, 0xe4e3c77d, 0x7d174564, 0xe4dda385, - 0x7d15f043, 0xe4d77f9d, - 0x7d149ad5, 0xe4d15bc6, 0x7d134519, 0xe4cb37ff, 0x7d11ef11, 0xe4c5144a, - 0x7d1098bb, 0xe4bef0a5, - 0x7d0f4218, 0xe4b8cd11, 0x7d0deb28, 0xe4b2a98e, 0x7d0c93eb, 0xe4ac861b, - 0x7d0b3c60, 0xe4a662ba, - 0x7d09e489, 0xe4a03f69, 0x7d088c64, 0xe49a1c29, 0x7d0733f3, 0xe493f8fb, - 0x7d05db34, 0xe48dd5dd, - 0x7d048228, 0xe487b2d0, 0x7d0328cf, 0xe4818fd4, 0x7d01cf29, 0xe47b6ce9, - 0x7d007535, 0xe4754a0e, - 0x7cff1af5, 0xe46f2745, 0x7cfdc068, 0xe469048d, 0x7cfc658d, 0xe462e1e6, - 0x7cfb0a65, 0xe45cbf50, - 0x7cf9aef0, 0xe4569ccb, 0x7cf8532f, 0xe4507a57, 0x7cf6f720, 0xe44a57f4, - 0x7cf59ac4, 0xe44435a2, - 0x7cf43e1a, 0xe43e1362, 0x7cf2e124, 0xe437f132, 0x7cf183e1, 0xe431cf14, - 0x7cf02651, 0xe42bad07, - 0x7ceec873, 0xe4258b0a, 0x7ced6a49, 0xe41f6920, 0x7cec0bd1, 0xe4194746, - 0x7ceaad0c, 0xe413257d, - 0x7ce94dfb, 0xe40d03c6, 0x7ce7ee9c, 0xe406e220, 0x7ce68ef0, 0xe400c08b, - 0x7ce52ef7, 0xe3fa9f08, - 0x7ce3ceb2, 0xe3f47d96, 0x7ce26e1f, 0xe3ee5c35, 0x7ce10d3f, 0xe3e83ae5, - 0x7cdfac12, 0xe3e219a7, - 0x7cde4a98, 0xe3dbf87a, 0x7cdce8d1, 0xe3d5d75e, 0x7cdb86bd, 0xe3cfb654, - 0x7cda245c, 0xe3c9955b, - 0x7cd8c1ae, 0xe3c37474, 0x7cd75eb3, 0xe3bd539e, 0x7cd5fb6a, 0xe3b732d9, - 0x7cd497d5, 0xe3b11226, - 0x7cd333f3, 0xe3aaf184, 0x7cd1cfc4, 0xe3a4d0f4, 0x7cd06b48, 0xe39eb075, - 0x7ccf067f, 0xe3989008, - 0x7ccda169, 0xe3926fad, 0x7ccc3c06, 0xe38c4f63, 0x7ccad656, 0xe3862f2a, - 0x7cc97059, 0xe3800f03, - 0x7cc80a0f, 0xe379eeed, 0x7cc6a378, 0xe373ceea, 0x7cc53c94, 0xe36daef7, - 0x7cc3d563, 0xe3678f17, - 0x7cc26de5, 0xe3616f48, 0x7cc1061a, 0xe35b4f8b, 0x7cbf9e03, 0xe3552fdf, - 0x7cbe359e, 0xe34f1045, - 0x7cbcccec, 0xe348f0bd, 0x7cbb63ee, 0xe342d146, 0x7cb9faa2, 0xe33cb1e1, - 0x7cb8910a, 0xe336928e, - 0x7cb72724, 0xe330734d, 0x7cb5bcf2, 0xe32a541d, 0x7cb45272, 0xe3243500, - 0x7cb2e7a6, 0xe31e15f4, - 0x7cb17c8d, 0xe317f6fa, 0x7cb01127, 0xe311d811, 0x7caea574, 0xe30bb93b, - 0x7cad3974, 0xe3059a76, - 0x7cabcd28, 0xe2ff7bc3, 0x7caa608e, 0xe2f95d23, 0x7ca8f3a7, 0xe2f33e94, - 0x7ca78674, 0xe2ed2017, - 0x7ca618f3, 0xe2e701ac, 0x7ca4ab26, 0xe2e0e352, 0x7ca33d0c, 0xe2dac50b, - 0x7ca1cea5, 0xe2d4a6d6, - 0x7ca05ff1, 0xe2ce88b3, 0x7c9ef0f0, 0xe2c86aa2, 0x7c9d81a3, 0xe2c24ca2, - 0x7c9c1208, 0xe2bc2eb5, - 0x7c9aa221, 0xe2b610da, 0x7c9931ec, 0xe2aff311, 0x7c97c16b, 0xe2a9d55a, - 0x7c96509d, 0xe2a3b7b5, - 0x7c94df83, 0xe29d9a23, 0x7c936e1b, 0xe2977ca2, 0x7c91fc66, 0xe2915f34, - 0x7c908a65, 0xe28b41d7, - 0x7c8f1817, 0xe285248d, 0x7c8da57c, 0xe27f0755, 0x7c8c3294, 0xe278ea30, - 0x7c8abf5f, 0xe272cd1c, - 0x7c894bde, 0xe26cb01b, 0x7c87d810, 0xe266932c, 0x7c8663f4, 0xe260764f, - 0x7c84ef8c, 0xe25a5984, - 0x7c837ad8, 0xe2543ccc, 0x7c8205d6, 0xe24e2026, 0x7c809088, 0xe2480393, - 0x7c7f1aed, 0xe241e711, - 0x7c7da505, 0xe23bcaa2, 0x7c7c2ed0, 0xe235ae46, 0x7c7ab84e, 0xe22f91fc, - 0x7c794180, 0xe22975c4, - 0x7c77ca65, 0xe223599e, 0x7c7652fd, 0xe21d3d8b, 0x7c74db48, 0xe217218b, - 0x7c736347, 0xe211059d, - 0x7c71eaf9, 0xe20ae9c1, 0x7c70725e, 0xe204cdf8, 0x7c6ef976, 0xe1feb241, - 0x7c6d8041, 0xe1f8969d, - 0x7c6c06c0, 0xe1f27b0b, 0x7c6a8cf2, 0xe1ec5f8c, 0x7c6912d7, 0xe1e64420, - 0x7c679870, 0xe1e028c6, - 0x7c661dbc, 0xe1da0d7e, 0x7c64a2bb, 0xe1d3f24a, 0x7c63276d, 0xe1cdd727, - 0x7c61abd3, 0xe1c7bc18, - 0x7c602fec, 0xe1c1a11b, 0x7c5eb3b8, 0xe1bb8631, 0x7c5d3737, 0xe1b56b59, - 0x7c5bba6a, 0xe1af5094, - 0x7c5a3d50, 0xe1a935e2, 0x7c58bfe9, 0xe1a31b42, 0x7c574236, 0xe19d00b6, - 0x7c55c436, 0xe196e63c, - 0x7c5445e9, 0xe190cbd4, 0x7c52c74f, 0xe18ab180, 0x7c514869, 0xe184973e, - 0x7c4fc936, 0xe17e7d0f, - 0x7c4e49b7, 0xe17862f3, 0x7c4cc9ea, 0xe17248ea, 0x7c4b49d2, 0xe16c2ef4, - 0x7c49c96c, 0xe1661510, - 0x7c4848ba, 0xe15ffb3f, 0x7c46c7bb, 0xe159e182, 0x7c45466f, 0xe153c7d7, - 0x7c43c4d7, 0xe14dae3f, - 0x7c4242f2, 0xe14794ba, 0x7c40c0c1, 0xe1417b48, 0x7c3f3e42, 0xe13b61e9, - 0x7c3dbb78, 0xe135489d, - 0x7c3c3860, 0xe12f2f63, 0x7c3ab4fc, 0xe129163d, 0x7c39314b, 0xe122fd2a, - 0x7c37ad4e, 0xe11ce42a, - 0x7c362904, 0xe116cb3d, 0x7c34a46d, 0xe110b263, 0x7c331f8a, 0xe10a999c, - 0x7c319a5a, 0xe10480e9, - 0x7c3014de, 0xe0fe6848, 0x7c2e8f15, 0xe0f84fbb, 0x7c2d08ff, 0xe0f23740, - 0x7c2b829d, 0xe0ec1ed9, - 0x7c29fbee, 0xe0e60685, 0x7c2874f3, 0xe0dfee44, 0x7c26edab, 0xe0d9d616, - 0x7c256616, 0xe0d3bdfc, - 0x7c23de35, 0xe0cda5f5, 0x7c225607, 0xe0c78e01, 0x7c20cd8d, 0xe0c17620, - 0x7c1f44c6, 0xe0bb5e53, - 0x7c1dbbb3, 0xe0b54698, 0x7c1c3253, 0xe0af2ef2, 0x7c1aa8a6, 0xe0a9175e, - 0x7c191ead, 0xe0a2ffde, - 0x7c179467, 0xe09ce871, 0x7c1609d5, 0xe096d117, 0x7c147ef6, 0xe090b9d1, - 0x7c12f3cb, 0xe08aa29f, - 0x7c116853, 0xe0848b7f, 0x7c0fdc8f, 0xe07e7473, 0x7c0e507e, 0xe0785d7b, - 0x7c0cc421, 0xe0724696, - 0x7c0b3777, 0xe06c2fc4, 0x7c09aa80, 0xe0661906, 0x7c081d3d, 0xe060025c, - 0x7c068fae, 0xe059ebc5, - 0x7c0501d2, 0xe053d541, 0x7c0373a9, 0xe04dbed1, 0x7c01e534, 0xe047a875, - 0x7c005673, 0xe041922c, - 0x7bfec765, 0xe03b7bf6, 0x7bfd380a, 0xe03565d5, 0x7bfba863, 0xe02f4fc6, - 0x7bfa1870, 0xe02939cc, - 0x7bf88830, 0xe02323e5, 0x7bf6f7a4, 0xe01d0e12, 0x7bf566cb, 0xe016f852, - 0x7bf3d5a6, 0xe010e2a7, - 0x7bf24434, 0xe00acd0e, 0x7bf0b276, 0xe004b78a, 0x7bef206b, 0xdffea219, - 0x7bed8e14, 0xdff88cbc, - 0x7bebfb70, 0xdff27773, 0x7bea6880, 0xdfec623e, 0x7be8d544, 0xdfe64d1c, - 0x7be741bb, 0xdfe0380e, - 0x7be5ade6, 0xdfda2314, 0x7be419c4, 0xdfd40e2e, 0x7be28556, 0xdfcdf95c, - 0x7be0f09b, 0xdfc7e49d, - 0x7bdf5b94, 0xdfc1cff3, 0x7bddc641, 0xdfbbbb5c, 0x7bdc30a1, 0xdfb5a6d9, - 0x7bda9ab5, 0xdfaf926a, - 0x7bd9047c, 0xdfa97e0f, 0x7bd76df7, 0xdfa369c8, 0x7bd5d726, 0xdf9d5595, - 0x7bd44008, 0xdf974176, - 0x7bd2a89e, 0xdf912d6b, 0x7bd110e8, 0xdf8b1974, 0x7bcf78e5, 0xdf850591, - 0x7bcde095, 0xdf7ef1c2, - 0x7bcc47fa, 0xdf78de07, 0x7bcaaf12, 0xdf72ca60, 0x7bc915dd, 0xdf6cb6cd, - 0x7bc77c5d, 0xdf66a34e, - 0x7bc5e290, 0xdf608fe4, 0x7bc44876, 0xdf5a7c8d, 0x7bc2ae10, 0xdf54694b, - 0x7bc1135e, 0xdf4e561c, - 0x7bbf7860, 0xdf484302, 0x7bbddd15, 0xdf422ffd, 0x7bbc417e, 0xdf3c1d0b, - 0x7bbaa59a, 0xdf360a2d, - 0x7bb9096b, 0xdf2ff764, 0x7bb76cef, 0xdf29e4af, 0x7bb5d026, 0xdf23d20e, - 0x7bb43311, 0xdf1dbf82, - 0x7bb295b0, 0xdf17ad0a, 0x7bb0f803, 0xdf119aa6, 0x7baf5a09, 0xdf0b8856, - 0x7badbbc3, 0xdf05761b, - 0x7bac1d31, 0xdeff63f4, 0x7baa7e53, 0xdef951e2, 0x7ba8df28, 0xdef33fe3, - 0x7ba73fb1, 0xdeed2dfa, - 0x7ba59fee, 0xdee71c24, 0x7ba3ffde, 0xdee10a63, 0x7ba25f82, 0xdedaf8b7, - 0x7ba0beda, 0xded4e71f, - 0x7b9f1de6, 0xdeced59b, 0x7b9d7ca5, 0xdec8c42c, 0x7b9bdb18, 0xdec2b2d1, - 0x7b9a393f, 0xdebca18b, - 0x7b989719, 0xdeb69059, 0x7b96f4a8, 0xdeb07f3c, 0x7b9551ea, 0xdeaa6e34, - 0x7b93aee0, 0xdea45d40, - 0x7b920b89, 0xde9e4c60, 0x7b9067e7, 0xde983b95, 0x7b8ec3f8, 0xde922adf, - 0x7b8d1fbd, 0xde8c1a3e, - 0x7b8b7b36, 0xde8609b1, 0x7b89d662, 0xde7ff938, 0x7b883143, 0xde79e8d5, - 0x7b868bd7, 0xde73d886, - 0x7b84e61f, 0xde6dc84b, 0x7b83401b, 0xde67b826, 0x7b8199ca, 0xde61a815, - 0x7b7ff32e, 0xde5b9819, - 0x7b7e4c45, 0xde558831, 0x7b7ca510, 0xde4f785f, 0x7b7afd8f, 0xde4968a1, - 0x7b7955c2, 0xde4358f8, - 0x7b77ada8, 0xde3d4964, 0x7b760542, 0xde3739e4, 0x7b745c91, 0xde312a7a, - 0x7b72b393, 0xde2b1b24, - 0x7b710a49, 0xde250be3, 0x7b6f60b2, 0xde1efcb7, 0x7b6db6d0, 0xde18eda0, - 0x7b6c0ca2, 0xde12de9e, - 0x7b6a6227, 0xde0ccfb1, 0x7b68b760, 0xde06c0d9, 0x7b670c4d, 0xde00b216, - 0x7b6560ee, 0xddfaa367, - 0x7b63b543, 0xddf494ce, 0x7b62094c, 0xddee8649, 0x7b605d09, 0xdde877da, - 0x7b5eb079, 0xdde26980, - 0x7b5d039e, 0xdddc5b3b, 0x7b5b5676, 0xddd64d0a, 0x7b59a902, 0xddd03eef, - 0x7b57fb42, 0xddca30e9, - 0x7b564d36, 0xddc422f8, 0x7b549ede, 0xddbe151d, 0x7b52f03a, 0xddb80756, - 0x7b51414a, 0xddb1f9a4, - 0x7b4f920e, 0xddabec08, 0x7b4de286, 0xdda5de81, 0x7b4c32b1, 0xdd9fd10f, - 0x7b4a8291, 0xdd99c3b2, - 0x7b48d225, 0xdd93b66a, 0x7b47216c, 0xdd8da938, 0x7b457068, 0xdd879c1b, - 0x7b43bf17, 0xdd818f13, - 0x7b420d7a, 0xdd7b8220, 0x7b405b92, 0xdd757543, 0x7b3ea95d, 0xdd6f687b, - 0x7b3cf6dc, 0xdd695bc9, - 0x7b3b4410, 0xdd634f2b, 0x7b3990f7, 0xdd5d42a3, 0x7b37dd92, 0xdd573631, - 0x7b3629e1, 0xdd5129d4, - 0x7b3475e5, 0xdd4b1d8c, 0x7b32c19c, 0xdd451159, 0x7b310d07, 0xdd3f053c, - 0x7b2f5826, 0xdd38f935, - 0x7b2da2fa, 0xdd32ed43, 0x7b2bed81, 0xdd2ce166, 0x7b2a37bc, 0xdd26d59f, - 0x7b2881ac, 0xdd20c9ed, - 0x7b26cb4f, 0xdd1abe51, 0x7b2514a6, 0xdd14b2ca, 0x7b235db2, 0xdd0ea759, - 0x7b21a671, 0xdd089bfe, - 0x7b1feee5, 0xdd0290b8, 0x7b1e370d, 0xdcfc8588, 0x7b1c7ee8, 0xdcf67a6d, - 0x7b1ac678, 0xdcf06f68, - 0x7b190dbc, 0xdcea6478, 0x7b1754b3, 0xdce4599e, 0x7b159b5f, 0xdcde4eda, - 0x7b13e1bf, 0xdcd8442b, - 0x7b1227d3, 0xdcd23993, 0x7b106d9b, 0xdccc2f0f, 0x7b0eb318, 0xdcc624a2, - 0x7b0cf848, 0xdcc01a4a, - 0x7b0b3d2c, 0xdcba1008, 0x7b0981c5, 0xdcb405dc, 0x7b07c612, 0xdcadfbc5, - 0x7b060a12, 0xdca7f1c5, - 0x7b044dc7, 0xdca1e7da, 0x7b029130, 0xdc9bde05, 0x7b00d44d, 0xdc95d446, - 0x7aff171e, 0xdc8fca9c, - 0x7afd59a4, 0xdc89c109, 0x7afb9bdd, 0xdc83b78b, 0x7af9ddcb, 0xdc7dae23, - 0x7af81f6c, 0xdc77a4d2, - 0x7af660c2, 0xdc719b96, 0x7af4a1cc, 0xdc6b9270, 0x7af2e28b, 0xdc658960, - 0x7af122fd, 0xdc5f8066, - 0x7aef6323, 0xdc597781, 0x7aeda2fe, 0xdc536eb3, 0x7aebe28d, 0xdc4d65fb, - 0x7aea21d0, 0xdc475d59, - 0x7ae860c7, 0xdc4154cd, 0x7ae69f73, 0xdc3b4c57, 0x7ae4ddd2, 0xdc3543f7, - 0x7ae31be6, 0xdc2f3bad, - 0x7ae159ae, 0xdc293379, 0x7adf972a, 0xdc232b5c, 0x7addd45b, 0xdc1d2354, - 0x7adc113f, 0xdc171b63, - 0x7ada4dd8, 0xdc111388, 0x7ad88a25, 0xdc0b0bc2, 0x7ad6c626, 0xdc050414, - 0x7ad501dc, 0xdbfefc7b, - 0x7ad33d45, 0xdbf8f4f8, 0x7ad17863, 0xdbf2ed8c, 0x7acfb336, 0xdbece636, - 0x7acdedbc, 0xdbe6def6, - 0x7acc27f7, 0xdbe0d7cd, 0x7aca61e6, 0xdbdad0b9, 0x7ac89b89, 0xdbd4c9bc, - 0x7ac6d4e0, 0xdbcec2d6, - 0x7ac50dec, 0xdbc8bc06, 0x7ac346ac, 0xdbc2b54c, 0x7ac17f20, 0xdbbcaea8, - 0x7abfb749, 0xdbb6a81b, - 0x7abdef25, 0xdbb0a1a4, 0x7abc26b7, 0xdbaa9b43, 0x7aba5dfc, 0xdba494f9, - 0x7ab894f6, 0xdb9e8ec6, - 0x7ab6cba4, 0xdb9888a8, 0x7ab50206, 0xdb9282a2, 0x7ab3381d, 0xdb8c7cb1, - 0x7ab16de7, 0xdb8676d8, - 0x7aafa367, 0xdb807114, 0x7aadd89a, 0xdb7a6b68, 0x7aac0d82, 0xdb7465d1, - 0x7aaa421e, 0xdb6e6052, - 0x7aa8766f, 0xdb685ae9, 0x7aa6aa74, 0xdb625596, 0x7aa4de2d, 0xdb5c505a, - 0x7aa3119a, 0xdb564b35, - 0x7aa144bc, 0xdb504626, 0x7a9f7793, 0xdb4a412e, 0x7a9daa1d, 0xdb443c4c, - 0x7a9bdc5c, 0xdb3e3781, - 0x7a9a0e50, 0xdb3832cd, 0x7a983ff7, 0xdb322e30, 0x7a967153, 0xdb2c29a9, - 0x7a94a264, 0xdb262539, - 0x7a92d329, 0xdb2020e0, 0x7a9103a2, 0xdb1a1c9d, 0x7a8f33d0, 0xdb141871, - 0x7a8d63b2, 0xdb0e145c, - 0x7a8b9348, 0xdb08105e, 0x7a89c293, 0xdb020c77, 0x7a87f192, 0xdafc08a6, - 0x7a862046, 0xdaf604ec, - 0x7a844eae, 0xdaf00149, 0x7a827ccb, 0xdae9fdbd, 0x7a80aa9c, 0xdae3fa48, - 0x7a7ed821, 0xdaddf6ea, - 0x7a7d055b, 0xdad7f3a2, 0x7a7b3249, 0xdad1f072, 0x7a795eec, 0xdacbed58, - 0x7a778b43, 0xdac5ea56, - 0x7a75b74f, 0xdabfe76a, 0x7a73e30f, 0xdab9e495, 0x7a720e84, 0xdab3e1d8, - 0x7a7039ad, 0xdaaddf31, - 0x7a6e648a, 0xdaa7dca1, 0x7a6c8f1c, 0xdaa1da29, 0x7a6ab963, 0xda9bd7c7, - 0x7a68e35e, 0xda95d57d, - 0x7a670d0d, 0xda8fd349, 0x7a653671, 0xda89d12d, 0x7a635f8a, 0xda83cf28, - 0x7a618857, 0xda7dcd3a, - 0x7a5fb0d8, 0xda77cb63, 0x7a5dd90e, 0xda71c9a3, 0x7a5c00f9, 0xda6bc7fa, - 0x7a5a2898, 0xda65c669, - 0x7a584feb, 0xda5fc4ef, 0x7a5676f3, 0xda59c38c, 0x7a549db0, 0xda53c240, - 0x7a52c421, 0xda4dc10b, - 0x7a50ea47, 0xda47bfee, 0x7a4f1021, 0xda41bee8, 0x7a4d35b0, 0xda3bbdf9, - 0x7a4b5af3, 0xda35bd22, - 0x7a497feb, 0xda2fbc61, 0x7a47a498, 0xda29bbb9, 0x7a45c8f9, 0xda23bb27, - 0x7a43ed0e, 0xda1dbaad, - 0x7a4210d8, 0xda17ba4a, 0x7a403457, 0xda11b9ff, 0x7a3e578b, 0xda0bb9cb, - 0x7a3c7a73, 0xda05b9ae, - 0x7a3a9d0f, 0xd9ffb9a9, 0x7a38bf60, 0xd9f9b9bb, 0x7a36e166, 0xd9f3b9e5, - 0x7a350321, 0xd9edba26, - 0x7a332490, 0xd9e7ba7f, 0x7a3145b3, 0xd9e1baef, 0x7a2f668c, 0xd9dbbb77, - 0x7a2d8719, 0xd9d5bc16, - 0x7a2ba75a, 0xd9cfbccd, 0x7a29c750, 0xd9c9bd9b, 0x7a27e6fb, 0xd9c3be81, - 0x7a26065b, 0xd9bdbf7e, - 0x7a24256f, 0xd9b7c094, 0x7a224437, 0xd9b1c1c0, 0x7a2062b5, 0xd9abc305, - 0x7a1e80e7, 0xd9a5c461, - 0x7a1c9ece, 0xd99fc5d4, 0x7a1abc69, 0xd999c75f, 0x7a18d9b9, 0xd993c902, - 0x7a16f6be, 0xd98dcabd, - 0x7a151378, 0xd987cc90, 0x7a132fe6, 0xd981ce7a, 0x7a114c09, 0xd97bd07c, - 0x7a0f67e0, 0xd975d295, - 0x7a0d836d, 0xd96fd4c7, 0x7a0b9eae, 0xd969d710, 0x7a09b9a4, 0xd963d971, - 0x7a07d44e, 0xd95ddbea, - 0x7a05eead, 0xd957de7a, 0x7a0408c1, 0xd951e123, 0x7a02228a, 0xd94be3e3, - 0x7a003c07, 0xd945e6bb, - 0x79fe5539, 0xd93fe9ab, 0x79fc6e20, 0xd939ecb3, 0x79fa86bc, 0xd933efd3, - 0x79f89f0c, 0xd92df30b, - 0x79f6b711, 0xd927f65b, 0x79f4cecb, 0xd921f9c3, 0x79f2e63a, 0xd91bfd43, - 0x79f0fd5d, 0xd91600da, - 0x79ef1436, 0xd910048a, 0x79ed2ac3, 0xd90a0852, 0x79eb4105, 0xd9040c32, - 0x79e956fb, 0xd8fe1029, - 0x79e76ca7, 0xd8f81439, 0x79e58207, 0xd8f21861, 0x79e3971c, 0xd8ec1ca1, - 0x79e1abe6, 0xd8e620fa, - 0x79dfc064, 0xd8e0256a, 0x79ddd498, 0xd8da29f2, 0x79dbe880, 0xd8d42e93, - 0x79d9fc1d, 0xd8ce334c, - 0x79d80f6f, 0xd8c8381d, 0x79d62276, 0xd8c23d06, 0x79d43532, 0xd8bc4207, - 0x79d247a2, 0xd8b64720, - 0x79d059c8, 0xd8b04c52, 0x79ce6ba2, 0xd8aa519c, 0x79cc7d31, 0xd8a456ff, - 0x79ca8e75, 0xd89e5c79, - 0x79c89f6e, 0xd898620c, 0x79c6b01b, 0xd89267b7, 0x79c4c07e, 0xd88c6d7b, - 0x79c2d095, 0xd8867356, - 0x79c0e062, 0xd880794b, 0x79beefe3, 0xd87a7f57, 0x79bcff19, 0xd874857c, - 0x79bb0e04, 0xd86e8bb9, - 0x79b91ca4, 0xd868920f, 0x79b72af9, 0xd862987d, 0x79b53903, 0xd85c9f04, - 0x79b346c2, 0xd856a5a3, - 0x79b15435, 0xd850ac5a, 0x79af615e, 0xd84ab32a, 0x79ad6e3c, 0xd844ba13, - 0x79ab7ace, 0xd83ec114, - 0x79a98715, 0xd838c82d, 0x79a79312, 0xd832cf5f, 0x79a59ec3, 0xd82cd6aa, - 0x79a3aa29, 0xd826de0d, - 0x79a1b545, 0xd820e589, 0x799fc015, 0xd81aed1d, 0x799dca9a, 0xd814f4ca, - 0x799bd4d4, 0xd80efc8f, - 0x7999dec4, 0xd809046e, 0x7997e868, 0xd8030c64, 0x7995f1c1, 0xd7fd1474, - 0x7993facf, 0xd7f71c9c, - 0x79920392, 0xd7f124dd, 0x79900c0a, 0xd7eb2d37, 0x798e1438, 0xd7e535a9, - 0x798c1c1a, 0xd7df3e34, - 0x798a23b1, 0xd7d946d8, 0x79882afd, 0xd7d34f94, 0x798631ff, 0xd7cd586a, - 0x798438b5, 0xd7c76158, - 0x79823f20, 0xd7c16a5f, 0x79804541, 0xd7bb737f, 0x797e4b16, 0xd7b57cb7, - 0x797c50a1, 0xd7af8609, - 0x797a55e0, 0xd7a98f73, 0x79785ad5, 0xd7a398f6, 0x79765f7f, 0xd79da293, - 0x797463de, 0xd797ac48, - 0x797267f2, 0xd791b616, 0x79706bbb, 0xd78bbffc, 0x796e6f39, 0xd785c9fc, - 0x796c726c, 0xd77fd415, - 0x796a7554, 0xd779de47, 0x796877f1, 0xd773e892, 0x79667a44, 0xd76df2f6, - 0x79647c4c, 0xd767fd72, - 0x79627e08, 0xd7620808, 0x79607f7a, 0xd75c12b7, 0x795e80a1, 0xd7561d7f, - 0x795c817d, 0xd7502860, - 0x795a820e, 0xd74a335b, 0x79588255, 0xd7443e6e, 0x79568250, 0xd73e499a, - 0x79548201, 0xd73854e0, - 0x79528167, 0xd732603f, 0x79508082, 0xd72c6bb6, 0x794e7f52, 0xd7267748, - 0x794c7dd7, 0xd72082f2, - 0x794a7c12, 0xd71a8eb5, 0x79487a01, 0xd7149a92, 0x794677a6, 0xd70ea688, - 0x79447500, 0xd708b297, - 0x79427210, 0xd702bec0, 0x79406ed4, 0xd6fccb01, 0x793e6b4e, 0xd6f6d75d, - 0x793c677d, 0xd6f0e3d1, - 0x793a6361, 0xd6eaf05f, 0x79385efa, 0xd6e4fd06, 0x79365a49, 0xd6df09c6, - 0x7934554d, 0xd6d916a0, - 0x79325006, 0xd6d32393, 0x79304a74, 0xd6cd30a0, 0x792e4497, 0xd6c73dc6, - 0x792c3e70, 0xd6c14b05, - 0x792a37fe, 0xd6bb585e, 0x79283141, 0xd6b565d0, 0x79262a3a, 0xd6af735c, - 0x792422e8, 0xd6a98101, - 0x79221b4b, 0xd6a38ec0, 0x79201363, 0xd69d9c98, 0x791e0b31, 0xd697aa8a, - 0x791c02b4, 0xd691b895, - 0x7919f9ec, 0xd68bc6ba, 0x7917f0d9, 0xd685d4f9, 0x7915e77c, 0xd67fe351, - 0x7913ddd4, 0xd679f1c2, - 0x7911d3e2, 0xd674004e, 0x790fc9a4, 0xd66e0ef2, 0x790dbf1d, 0xd6681db1, - 0x790bb44a, 0xd6622c89, - 0x7909a92d, 0xd65c3b7b, 0x79079dc5, 0xd6564a87, 0x79059212, 0xd65059ac, - 0x79038615, 0xd64a68eb, - 0x790179cd, 0xd6447844, 0x78ff6d3b, 0xd63e87b6, 0x78fd605d, 0xd6389742, - 0x78fb5336, 0xd632a6e8, - 0x78f945c3, 0xd62cb6a8, 0x78f73806, 0xd626c681, 0x78f529fe, 0xd620d675, - 0x78f31bac, 0xd61ae682, - 0x78f10d0f, 0xd614f6a9, 0x78eefe28, 0xd60f06ea, 0x78eceef6, 0xd6091745, - 0x78eadf79, 0xd60327b9, - 0x78e8cfb2, 0xd5fd3848, 0x78e6bfa0, 0xd5f748f0, 0x78e4af44, 0xd5f159b3, - 0x78e29e9d, 0xd5eb6a8f, - 0x78e08dab, 0xd5e57b85, 0x78de7c6f, 0xd5df8c96, 0x78dc6ae8, 0xd5d99dc0, - 0x78da5917, 0xd5d3af04, - 0x78d846fb, 0xd5cdc062, 0x78d63495, 0xd5c7d1db, 0x78d421e4, 0xd5c1e36d, - 0x78d20ee9, 0xd5bbf519, - 0x78cffba3, 0xd5b606e0, 0x78cde812, 0xd5b018c0, 0x78cbd437, 0xd5aa2abb, - 0x78c9c012, 0xd5a43cd0, - 0x78c7aba2, 0xd59e4eff, 0x78c596e7, 0xd5986148, 0x78c381e2, 0xd59273ab, - 0x78c16c93, 0xd58c8628, - 0x78bf56f9, 0xd58698c0, 0x78bd4114, 0xd580ab72, 0x78bb2ae5, 0xd57abe3d, - 0x78b9146c, 0xd574d124, - 0x78b6fda8, 0xd56ee424, 0x78b4e69a, 0xd568f73f, 0x78b2cf41, 0xd5630a74, - 0x78b0b79e, 0xd55d1dc3, - 0x78ae9fb0, 0xd557312d, 0x78ac8778, 0xd55144b0, 0x78aa6ef5, 0xd54b584f, - 0x78a85628, 0xd5456c07, - 0x78a63d11, 0xd53f7fda, 0x78a423af, 0xd53993c7, 0x78a20a03, 0xd533a7cf, - 0x789ff00c, 0xd52dbbf1, - 0x789dd5cb, 0xd527d02e, 0x789bbb3f, 0xd521e484, 0x7899a06a, 0xd51bf8f6, - 0x78978549, 0xd5160d82, - 0x789569df, 0xd5102228, 0x78934e2a, 0xd50a36e9, 0x7891322a, 0xd5044bc4, - 0x788f15e0, 0xd4fe60ba, - 0x788cf94c, 0xd4f875ca, 0x788adc6e, 0xd4f28af5, 0x7888bf45, 0xd4eca03a, - 0x7886a1d1, 0xd4e6b59a, - 0x78848414, 0xd4e0cb15, 0x7882660c, 0xd4dae0aa, 0x788047ba, 0xd4d4f65a, - 0x787e291d, 0xd4cf0c24, - 0x787c0a36, 0xd4c92209, 0x7879eb05, 0xd4c33809, 0x7877cb89, 0xd4bd4e23, - 0x7875abc3, 0xd4b76458, - 0x78738bb3, 0xd4b17aa8, 0x78716b59, 0xd4ab9112, 0x786f4ab4, 0xd4a5a798, - 0x786d29c5, 0xd49fbe37, - 0x786b088c, 0xd499d4f2, 0x7868e708, 0xd493ebc8, 0x7866c53a, 0xd48e02b8, - 0x7864a322, 0xd48819c3, - 0x786280bf, 0xd48230e9, 0x78605e13, 0xd47c4829, 0x785e3b1c, 0xd4765f85, - 0x785c17db, 0xd47076fb, - 0x7859f44f, 0xd46a8e8d, 0x7857d079, 0xd464a639, 0x7855ac5a, 0xd45ebe00, - 0x785387ef, 0xd458d5e2, - 0x7851633b, 0xd452eddf, 0x784f3e3c, 0xd44d05f6, 0x784d18f4, 0xd4471e29, - 0x784af361, 0xd4413677, - 0x7848cd83, 0xd43b4ee0, 0x7846a75c, 0xd4356763, 0x784480ea, 0xd42f8002, - 0x78425a2f, 0xd42998bc, - 0x78403329, 0xd423b191, 0x783e0bd9, 0xd41dca81, 0x783be43e, 0xd417e38c, - 0x7839bc5a, 0xd411fcb2, - 0x7837942b, 0xd40c15f3, 0x78356bb2, 0xd4062f4f, 0x783342ef, 0xd40048c6, - 0x783119e2, 0xd3fa6259, - 0x782ef08b, 0xd3f47c06, 0x782cc6ea, 0xd3ee95cf, 0x782a9cfe, 0xd3e8afb3, - 0x782872c8, 0xd3e2c9b2, - 0x78264849, 0xd3dce3cd, 0x78241d7f, 0xd3d6fe03, 0x7821f26b, 0xd3d11853, - 0x781fc70d, 0xd3cb32c0, - 0x781d9b65, 0xd3c54d47, 0x781b6f72, 0xd3bf67ea, 0x78194336, 0xd3b982a8, - 0x781716b0, 0xd3b39d81, - 0x7814e9df, 0xd3adb876, 0x7812bcc4, 0xd3a7d385, 0x78108f60, 0xd3a1eeb1, - 0x780e61b1, 0xd39c09f7, - 0x780c33b8, 0xd396255a, 0x780a0575, 0xd39040d7, 0x7807d6e9, 0xd38a5c70, - 0x7805a812, 0xd3847824, - 0x780378f1, 0xd37e93f4, 0x78014986, 0xd378afdf, 0x77ff19d1, 0xd372cbe6, - 0x77fce9d2, 0xd36ce808, - 0x77fab989, 0xd3670446, 0x77f888f6, 0xd361209f, 0x77f65819, 0xd35b3d13, - 0x77f426f2, 0xd35559a4, - 0x77f1f581, 0xd34f764f, 0x77efc3c5, 0xd3499317, 0x77ed91c0, 0xd343affa, - 0x77eb5f71, 0xd33dccf8, - 0x77e92cd9, 0xd337ea12, 0x77e6f9f6, 0xd3320748, 0x77e4c6c9, 0xd32c2499, - 0x77e29352, 0xd3264206, - 0x77e05f91, 0xd3205f8f, 0x77de2b86, 0xd31a7d33, 0x77dbf732, 0xd3149af3, - 0x77d9c293, 0xd30eb8cf, - 0x77d78daa, 0xd308d6c7, 0x77d55878, 0xd302f4da, 0x77d322fc, 0xd2fd1309, - 0x77d0ed35, 0xd2f73154, - 0x77ceb725, 0xd2f14fba, 0x77cc80cb, 0xd2eb6e3c, 0x77ca4a27, 0xd2e58cdb, - 0x77c81339, 0xd2dfab95, - 0x77c5dc01, 0xd2d9ca6a, 0x77c3a47f, 0xd2d3e95c, 0x77c16cb4, 0xd2ce0869, - 0x77bf349f, 0xd2c82793, - 0x77bcfc3f, 0xd2c246d8, 0x77bac396, 0xd2bc6639, 0x77b88aa3, 0xd2b685b6, - 0x77b65166, 0xd2b0a54f, - 0x77b417df, 0xd2aac504, 0x77b1de0f, 0xd2a4e4d5, 0x77afa3f5, 0xd29f04c2, - 0x77ad6990, 0xd29924cb, - 0x77ab2ee2, 0xd29344f0, 0x77a8f3ea, 0xd28d6531, 0x77a6b8a9, 0xd287858e, - 0x77a47d1d, 0xd281a607, - 0x77a24148, 0xd27bc69c, 0x77a00529, 0xd275e74d, 0x779dc8c0, 0xd270081b, - 0x779b8c0e, 0xd26a2904, - 0x77994f11, 0xd2644a0a, 0x779711cb, 0xd25e6b2b, 0x7794d43b, 0xd2588c69, - 0x77929661, 0xd252adc3, - 0x7790583e, 0xd24ccf39, 0x778e19d0, 0xd246f0cb, 0x778bdb19, 0xd241127a, - 0x77899c19, 0xd23b3444, - 0x77875cce, 0xd235562b, 0x77851d3a, 0xd22f782f, 0x7782dd5c, 0xd2299a4e, - 0x77809d35, 0xd223bc8a, - 0x777e5cc3, 0xd21ddee2, 0x777c1c08, 0xd2180156, 0x7779db03, 0xd21223e7, - 0x777799b5, 0xd20c4694, - 0x7775581d, 0xd206695d, 0x7773163b, 0xd2008c43, 0x7770d40f, 0xd1faaf45, - 0x776e919a, 0xd1f4d263, - 0x776c4edb, 0xd1eef59e, 0x776a0bd3, 0xd1e918f5, 0x7767c880, 0xd1e33c69, - 0x776584e5, 0xd1dd5ff9, - 0x776340ff, 0xd1d783a6, 0x7760fcd0, 0xd1d1a76f, 0x775eb857, 0xd1cbcb54, - 0x775c7395, 0xd1c5ef56, - 0x775a2e89, 0xd1c01375, 0x7757e933, 0xd1ba37b0, 0x7755a394, 0xd1b45c08, - 0x77535dab, 0xd1ae807c, - 0x77511778, 0xd1a8a50d, 0x774ed0fc, 0xd1a2c9ba, 0x774c8a36, 0xd19cee84, - 0x774a4327, 0xd197136b, - 0x7747fbce, 0xd191386e, 0x7745b42c, 0xd18b5d8e, 0x77436c40, 0xd18582ca, - 0x7741240a, 0xd17fa823, - 0x773edb8b, 0xd179cd99, 0x773c92c2, 0xd173f32c, 0x773a49b0, 0xd16e18db, - 0x77380054, 0xd1683ea7, - 0x7735b6af, 0xd1626490, 0x77336cc0, 0xd15c8a95, 0x77312287, 0xd156b0b7, - 0x772ed805, 0xd150d6f6, - 0x772c8d3a, 0xd14afd52, 0x772a4225, 0xd14523cb, 0x7727f6c6, 0xd13f4a60, - 0x7725ab1f, 0xd1397113, - 0x77235f2d, 0xd13397e2, 0x772112f2, 0xd12dbece, 0x771ec66e, 0xd127e5d7, - 0x771c79a0, 0xd1220cfc, - 0x771a2c88, 0xd11c343f, 0x7717df27, 0xd1165b9f, 0x7715917d, 0xd110831b, - 0x77134389, 0xd10aaab5, - 0x7710f54c, 0xd104d26b, 0x770ea6c5, 0xd0fefa3f, 0x770c57f5, 0xd0f9222f, - 0x770a08dc, 0xd0f34a3d, - 0x7707b979, 0xd0ed7267, 0x770569cc, 0xd0e79aaf, 0x770319d6, 0xd0e1c313, - 0x7700c997, 0xd0dbeb95, - 0x76fe790e, 0xd0d61434, 0x76fc283c, 0xd0d03cf0, 0x76f9d721, 0xd0ca65c9, - 0x76f785bc, 0xd0c48ebf, - 0x76f5340e, 0xd0beb7d2, 0x76f2e216, 0xd0b8e102, 0x76f08fd5, 0xd0b30a50, - 0x76ee3d4b, 0xd0ad33ba, - 0x76ebea77, 0xd0a75d42, 0x76e9975a, 0xd0a186e7, 0x76e743f4, 0xd09bb0aa, - 0x76e4f044, 0xd095da89, - 0x76e29c4b, 0xd0900486, 0x76e04808, 0xd08a2ea0, 0x76ddf37c, 0xd08458d7, - 0x76db9ea7, 0xd07e832c, - 0x76d94989, 0xd078ad9e, 0x76d6f421, 0xd072d82d, 0x76d49e70, 0xd06d02da, - 0x76d24876, 0xd0672da3, - 0x76cff232, 0xd061588b, 0x76cd9ba5, 0xd05b838f, 0x76cb44cf, 0xd055aeb1, - 0x76c8edb0, 0xd04fd9f1, - 0x76c69647, 0xd04a054e, 0x76c43e95, 0xd04430c8, 0x76c1e699, 0xd03e5c60, - 0x76bf8e55, 0xd0388815, - 0x76bd35c7, 0xd032b3e7, 0x76badcf0, 0xd02cdfd8, 0x76b883d0, 0xd0270be5, - 0x76b62a66, 0xd0213810, - 0x76b3d0b4, 0xd01b6459, 0x76b176b8, 0xd01590bf, 0x76af1c72, 0xd00fbd43, - 0x76acc1e4, 0xd009e9e4, - 0x76aa670d, 0xd00416a3, 0x76a80bec, 0xcffe4380, 0x76a5b082, 0xcff8707a, - 0x76a354cf, 0xcff29d92, - 0x76a0f8d2, 0xcfeccac7, 0x769e9c8d, 0xcfe6f81a, 0x769c3ffe, 0xcfe1258b, - 0x7699e326, 0xcfdb531a, - 0x76978605, 0xcfd580c6, 0x7695289b, 0xcfcfae8f, 0x7692cae8, 0xcfc9dc77, - 0x76906ceb, 0xcfc40a7c, - 0x768e0ea6, 0xcfbe389f, 0x768bb017, 0xcfb866e0, 0x7689513f, 0xcfb2953f, - 0x7686f21e, 0xcfacc3bb, - 0x768492b4, 0xcfa6f255, 0x76823301, 0xcfa1210d, 0x767fd304, 0xcf9b4fe3, - 0x767d72bf, 0xcf957ed7, - 0x767b1231, 0xcf8fade9, 0x7678b159, 0xcf89dd18, 0x76765038, 0xcf840c65, - 0x7673eecf, 0xcf7e3bd1, - 0x76718d1c, 0xcf786b5a, 0x766f2b20, 0xcf729b01, 0x766cc8db, 0xcf6ccac6, - 0x766a664d, 0xcf66faa9, - 0x76680376, 0xcf612aaa, 0x7665a056, 0xcf5b5ac9, 0x76633ced, 0xcf558b06, - 0x7660d93b, 0xcf4fbb61, - 0x765e7540, 0xcf49ebda, 0x765c10fc, 0xcf441c71, 0x7659ac6f, 0xcf3e4d26, - 0x76574798, 0xcf387dfa, - 0x7654e279, 0xcf32aeeb, 0x76527d11, 0xcf2cdffa, 0x76501760, 0xcf271128, - 0x764db166, 0xcf214274, - 0x764b4b23, 0xcf1b73de, 0x7648e497, 0xcf15a566, 0x76467dc2, 0xcf0fd70c, - 0x764416a4, 0xcf0a08d0, - 0x7641af3d, 0xcf043ab3, 0x763f478d, 0xcefe6cb3, 0x763cdf94, 0xcef89ed2, - 0x763a7752, 0xcef2d110, - 0x76380ec8, 0xceed036b, 0x7635a5f4, 0xcee735e5, 0x76333cd8, 0xcee1687d, - 0x7630d372, 0xcedb9b33, - 0x762e69c4, 0xced5ce08, 0x762bffcd, 0xced000fb, 0x7629958c, 0xceca340c, - 0x76272b03, 0xcec4673c, - 0x7624c031, 0xcebe9a8a, 0x76225517, 0xceb8cdf7, 0x761fe9b3, 0xceb30181, - 0x761d7e06, 0xcead352b, - 0x761b1211, 0xcea768f2, 0x7618a5d3, 0xcea19cd8, 0x7616394c, 0xce9bd0dd, - 0x7613cc7c, 0xce960500, - 0x76115f63, 0xce903942, 0x760ef201, 0xce8a6da2, 0x760c8457, 0xce84a220, - 0x760a1664, 0xce7ed6bd, - 0x7607a828, 0xce790b79, 0x760539a3, 0xce734053, 0x7602cad5, 0xce6d754c, - 0x76005bbf, 0xce67aa63, - 0x75fdec60, 0xce61df99, 0x75fb7cb8, 0xce5c14ed, 0x75f90cc7, 0xce564a60, - 0x75f69c8d, 0xce507ff2, - 0x75f42c0b, 0xce4ab5a2, 0x75f1bb40, 0xce44eb71, 0x75ef4a2c, 0xce3f215f, - 0x75ecd8cf, 0xce39576c, - 0x75ea672a, 0xce338d97, 0x75e7f53c, 0xce2dc3e1, 0x75e58305, 0xce27fa49, - 0x75e31086, 0xce2230d0, - 0x75e09dbd, 0xce1c6777, 0x75de2aac, 0xce169e3b, 0x75dbb753, 0xce10d51f, - 0x75d943b0, 0xce0b0c21, - 0x75d6cfc5, 0xce054343, 0x75d45b92, 0xcdff7a83, 0x75d1e715, 0xcdf9b1e2, - 0x75cf7250, 0xcdf3e95f, - 0x75ccfd42, 0xcdee20fc, 0x75ca87ec, 0xcde858b8, 0x75c8124d, 0xcde29092, - 0x75c59c65, 0xcddcc88b, - 0x75c32634, 0xcdd700a4, 0x75c0afbb, 0xcdd138db, 0x75be38fa, 0xcdcb7131, - 0x75bbc1ef, 0xcdc5a9a6, - 0x75b94a9c, 0xcdbfe23a, 0x75b6d301, 0xcdba1aee, 0x75b45b1d, 0xcdb453c0, - 0x75b1e2f0, 0xcdae8cb1, - 0x75af6a7b, 0xcda8c5c1, 0x75acf1bd, 0xcda2fef0, 0x75aa78b6, 0xcd9d383f, - 0x75a7ff67, 0xcd9771ac, - 0x75a585cf, 0xcd91ab39, 0x75a30bef, 0xcd8be4e4, 0x75a091c6, 0xcd861eaf, - 0x759e1755, 0xcd805899, - 0x759b9c9b, 0xcd7a92a2, 0x75992198, 0xcd74ccca, 0x7596a64d, 0xcd6f0711, - 0x75942ab9, 0xcd694178, - 0x7591aedd, 0xcd637bfe, 0x758f32b9, 0xcd5db6a3, 0x758cb64c, 0xcd57f167, - 0x758a3996, 0xcd522c4a, - 0x7587bc98, 0xcd4c674d, 0x75853f51, 0xcd46a26f, 0x7582c1c2, 0xcd40ddb0, - 0x758043ea, 0xcd3b1911, - 0x757dc5ca, 0xcd355491, 0x757b4762, 0xcd2f9030, 0x7578c8b0, 0xcd29cbee, - 0x757649b7, 0xcd2407cc, - 0x7573ca75, 0xcd1e43ca, 0x75714aea, 0xcd187fe6, 0x756ecb18, 0xcd12bc22, - 0x756c4afc, 0xcd0cf87e, - 0x7569ca99, 0xcd0734f9, 0x756749ec, 0xcd017193, 0x7564c8f8, 0xccfbae4d, - 0x756247bb, 0xccf5eb26, - 0x755fc635, 0xccf0281f, 0x755d4467, 0xccea6538, 0x755ac251, 0xcce4a26f, - 0x75583ff3, 0xccdedfc7, - 0x7555bd4c, 0xccd91d3d, 0x75533a5c, 0xccd35ad4, 0x7550b725, 0xcccd988a, - 0x754e33a4, 0xccc7d65f, - 0x754bafdc, 0xccc21455, 0x75492bcb, 0xccbc5269, 0x7546a772, 0xccb6909e, - 0x754422d0, 0xccb0cef2, - 0x75419de7, 0xccab0d65, 0x753f18b4, 0xcca54bf9, 0x753c933a, 0xcc9f8aac, - 0x753a0d77, 0xcc99c97e, - 0x7537876c, 0xcc940871, 0x75350118, 0xcc8e4783, 0x75327a7d, 0xcc8886b5, - 0x752ff399, 0xcc82c607, - 0x752d6c6c, 0xcc7d0578, 0x752ae4f8, 0xcc774509, 0x75285d3b, 0xcc7184ba, - 0x7525d536, 0xcc6bc48b, - 0x75234ce8, 0xcc66047b, 0x7520c453, 0xcc60448c, 0x751e3b75, 0xcc5a84bc, - 0x751bb24f, 0xcc54c50c, - 0x751928e0, 0xcc4f057c, 0x75169f2a, 0xcc49460c, 0x7514152b, 0xcc4386bc, - 0x75118ae4, 0xcc3dc78b, - 0x750f0054, 0xcc38087b, 0x750c757d, 0xcc32498a, 0x7509ea5d, 0xcc2c8aba, - 0x75075ef5, 0xcc26cc09, - 0x7504d345, 0xcc210d79, 0x7502474d, 0xcc1b4f08, 0x74ffbb0d, 0xcc1590b8, - 0x74fd2e84, 0xcc0fd287, - 0x74faa1b3, 0xcc0a1477, 0x74f8149a, 0xcc045686, 0x74f58739, 0xcbfe98b6, - 0x74f2f990, 0xcbf8db05, - 0x74f06b9e, 0xcbf31d75, 0x74eddd65, 0xcbed6005, 0x74eb4ee3, 0xcbe7a2b5, - 0x74e8c01a, 0xcbe1e585, - 0x74e63108, 0xcbdc2876, 0x74e3a1ae, 0xcbd66b86, 0x74e1120c, 0xcbd0aeb7, - 0x74de8221, 0xcbcaf208, - 0x74dbf1ef, 0xcbc53579, 0x74d96175, 0xcbbf790a, 0x74d6d0b2, 0xcbb9bcbb, - 0x74d43fa8, 0xcbb4008d, - 0x74d1ae55, 0xcbae447f, 0x74cf1cbb, 0xcba88891, 0x74cc8ad8, 0xcba2ccc4, - 0x74c9f8ad, 0xcb9d1117, - 0x74c7663a, 0xcb97558a, 0x74c4d380, 0xcb919a1d, 0x74c2407d, 0xcb8bded1, - 0x74bfad32, 0xcb8623a5, - 0x74bd199f, 0xcb80689a, 0x74ba85c4, 0xcb7aadaf, 0x74b7f1a1, 0xcb74f2e4, - 0x74b55d36, 0xcb6f383a, - 0x74b2c884, 0xcb697db0, 0x74b03389, 0xcb63c347, 0x74ad9e46, 0xcb5e08fe, - 0x74ab08bb, 0xcb584ed6, - 0x74a872e8, 0xcb5294ce, 0x74a5dccd, 0xcb4cdae6, 0x74a3466b, 0xcb47211f, - 0x74a0afc0, 0xcb416779, - 0x749e18cd, 0xcb3badf3, 0x749b8193, 0xcb35f48d, 0x7498ea11, 0xcb303b49, - 0x74965246, 0xcb2a8224, - 0x7493ba34, 0xcb24c921, 0x749121da, 0xcb1f103e, 0x748e8938, 0xcb19577b, - 0x748bf04d, 0xcb139ed9, - 0x7489571c, 0xcb0de658, 0x7486bda2, 0xcb082df8, 0x748423e0, 0xcb0275b8, - 0x748189d7, 0xcafcbd99, - 0x747eef85, 0xcaf7059a, 0x747c54ec, 0xcaf14dbd, 0x7479ba0b, 0xcaeb9600, - 0x74771ee2, 0xcae5de64, - 0x74748371, 0xcae026e8, 0x7471e7b8, 0xcada6f8d, 0x746f4bb8, 0xcad4b853, - 0x746caf70, 0xcacf013a, - 0x746a12df, 0xcac94a42, 0x74677608, 0xcac3936b, 0x7464d8e8, 0xcabddcb4, - 0x74623b80, 0xcab8261e, - 0x745f9dd1, 0xcab26fa9, 0x745cffda, 0xcaacb955, 0x745a619b, 0xcaa70322, - 0x7457c314, 0xcaa14d10, - 0x74552446, 0xca9b971e, 0x74528530, 0xca95e14e, 0x744fe5d2, 0xca902b9f, - 0x744d462c, 0xca8a7610, - 0x744aa63f, 0xca84c0a3, 0x7448060a, 0xca7f0b56, 0x7445658d, 0xca79562b, - 0x7442c4c8, 0xca73a120, - 0x744023bc, 0xca6dec37, 0x743d8268, 0xca68376e, 0x743ae0cc, 0xca6282c7, - 0x74383ee9, 0xca5cce40, - 0x74359cbd, 0xca5719db, 0x7432fa4b, 0xca516597, 0x74305790, 0xca4bb174, - 0x742db48e, 0xca45fd72, - 0x742b1144, 0xca404992, 0x74286db3, 0xca3a95d2, 0x7425c9da, 0xca34e234, - 0x742325b9, 0xca2f2eb6, - 0x74208150, 0xca297b5a, 0x741ddca0, 0xca23c820, 0x741b37a9, 0xca1e1506, - 0x74189269, 0xca18620e, - 0x7415ece2, 0xca12af37, 0x74134714, 0xca0cfc81, 0x7410a0fe, 0xca0749ec, - 0x740dfaa0, 0xca019779, - 0x740b53fb, 0xc9fbe527, 0x7408ad0e, 0xc9f632f6, 0x740605d9, 0xc9f080e7, - 0x74035e5d, 0xc9eacef9, - 0x7400b69a, 0xc9e51d2d, 0x73fe0e8f, 0xc9df6b81, 0x73fb663c, 0xc9d9b9f7, - 0x73f8bda2, 0xc9d4088f, - 0x73f614c0, 0xc9ce5748, 0x73f36b97, 0xc9c8a622, 0x73f0c226, 0xc9c2f51e, - 0x73ee186e, 0xc9bd443c, - 0x73eb6e6e, 0xc9b7937a, 0x73e8c426, 0xc9b1e2db, 0x73e61997, 0xc9ac325d, - 0x73e36ec1, 0xc9a68200, - 0x73e0c3a3, 0xc9a0d1c5, 0x73de183e, 0xc99b21ab, 0x73db6c91, 0xc99571b3, - 0x73d8c09d, 0xc98fc1dc, - 0x73d61461, 0xc98a1227, 0x73d367de, 0xc9846294, 0x73d0bb13, 0xc97eb322, - 0x73ce0e01, 0xc97903d2, - 0x73cb60a8, 0xc97354a4, 0x73c8b307, 0xc96da597, 0x73c6051f, 0xc967f6ac, - 0x73c356ef, 0xc96247e2, - 0x73c0a878, 0xc95c993a, 0x73bdf9b9, 0xc956eab4, 0x73bb4ab3, 0xc9513c50, - 0x73b89b66, 0xc94b8e0d, - 0x73b5ebd1, 0xc945dfec, 0x73b33bf5, 0xc94031ed, 0x73b08bd1, 0xc93a8410, - 0x73addb67, 0xc934d654, - 0x73ab2ab4, 0xc92f28ba, 0x73a879bb, 0xc9297b42, 0x73a5c87a, 0xc923cdec, - 0x73a316f2, 0xc91e20b8, - 0x73a06522, 0xc91873a5, 0x739db30b, 0xc912c6b5, 0x739b00ad, 0xc90d19e6, - 0x73984e07, 0xc9076d39, - 0x73959b1b, 0xc901c0ae, 0x7392e7e6, 0xc8fc1445, 0x7390346b, 0xc8f667fe, - 0x738d80a8, 0xc8f0bbd9, - 0x738acc9e, 0xc8eb0fd6, 0x7388184d, 0xc8e563f5, 0x738563b5, 0xc8dfb836, - 0x7382aed5, 0xc8da0c99, - 0x737ff9ae, 0xc8d4611d, 0x737d4440, 0xc8ceb5c4, 0x737a8e8a, 0xc8c90a8d, - 0x7377d88d, 0xc8c35f78, - 0x73752249, 0xc8bdb485, 0x73726bbe, 0xc8b809b4, 0x736fb4ec, 0xc8b25f06, - 0x736cfdd2, 0xc8acb479, - 0x736a4671, 0xc8a70a0e, 0x73678ec9, 0xc8a15fc6, 0x7364d6da, 0xc89bb5a0, - 0x73621ea4, 0xc8960b9c, - 0x735f6626, 0xc89061ba, 0x735cad61, 0xc88ab7fa, 0x7359f456, 0xc8850e5d, - 0x73573b03, 0xc87f64e2, - 0x73548168, 0xc879bb89, 0x7351c787, 0xc8741252, 0x734f0d5f, 0xc86e693d, - 0x734c52ef, 0xc868c04b, - 0x73499838, 0xc863177b, 0x7346dd3a, 0xc85d6ece, 0x734421f6, 0xc857c642, - 0x7341666a, 0xc8521dd9, - 0x733eaa96, 0xc84c7593, 0x733bee7c, 0xc846cd6e, 0x7339321b, 0xc841256d, - 0x73367572, 0xc83b7d8d, - 0x7333b883, 0xc835d5d0, 0x7330fb4d, 0xc8302e35, 0x732e3dcf, 0xc82a86bd, - 0x732b800a, 0xc824df67, - 0x7328c1ff, 0xc81f3834, 0x732603ac, 0xc8199123, 0x73234512, 0xc813ea35, - 0x73208632, 0xc80e4369, - 0x731dc70a, 0xc8089cbf, 0x731b079b, 0xc802f638, 0x731847e5, 0xc7fd4fd4, - 0x731587e8, 0xc7f7a992, - 0x7312c7a5, 0xc7f20373, 0x7310071a, 0xc7ec5d76, 0x730d4648, 0xc7e6b79c, - 0x730a8530, 0xc7e111e5, - 0x7307c3d0, 0xc7db6c50, 0x73050229, 0xc7d5c6de, 0x7302403c, 0xc7d0218e, - 0x72ff7e07, 0xc7ca7c61, - 0x72fcbb8c, 0xc7c4d757, 0x72f9f8c9, 0xc7bf3270, 0x72f735c0, 0xc7b98dab, - 0x72f47270, 0xc7b3e909, - 0x72f1aed9, 0xc7ae4489, 0x72eeeafb, 0xc7a8a02c, 0x72ec26d6, 0xc7a2fbf3, - 0x72e9626a, 0xc79d57db, - 0x72e69db7, 0xc797b3e7, 0x72e3d8be, 0xc7921015, 0x72e1137d, 0xc78c6c67, - 0x72de4df6, 0xc786c8db, - 0x72db8828, 0xc7812572, 0x72d8c213, 0xc77b822b, 0x72d5fbb7, 0xc775df08, - 0x72d33514, 0xc7703c08, - 0x72d06e2b, 0xc76a992a, 0x72cda6fb, 0xc764f66f, 0x72cadf83, 0xc75f53d7, - 0x72c817c6, 0xc759b163, - 0x72c54fc1, 0xc7540f11, 0x72c28775, 0xc74e6ce2, 0x72bfbee3, 0xc748cad6, - 0x72bcf60a, 0xc74328ed, - 0x72ba2cea, 0xc73d8727, 0x72b76383, 0xc737e584, 0x72b499d6, 0xc7324404, - 0x72b1cfe1, 0xc72ca2a7, - 0x72af05a7, 0xc727016d, 0x72ac3b25, 0xc7216056, 0x72a9705c, 0xc71bbf62, - 0x72a6a54d, 0xc7161e92, - 0x72a3d9f7, 0xc7107de4, 0x72a10e5b, 0xc70add5a, 0x729e4277, 0xc7053cf2, - 0x729b764d, 0xc6ff9cae, - 0x7298a9dd, 0xc6f9fc8d, 0x7295dd25, 0xc6f45c8f, 0x72931027, 0xc6eebcb5, - 0x729042e3, 0xc6e91cfd, - 0x728d7557, 0xc6e37d69, 0x728aa785, 0xc6ddddf8, 0x7287d96c, 0xc6d83eab, - 0x72850b0d, 0xc6d29f80, - 0x72823c67, 0xc6cd0079, 0x727f6d7a, 0xc6c76195, 0x727c9e47, 0xc6c1c2d4, - 0x7279cecd, 0xc6bc2437, - 0x7276ff0d, 0xc6b685bd, 0x72742f05, 0xc6b0e767, 0x72715eb8, 0xc6ab4933, - 0x726e8e23, 0xc6a5ab23, - 0x726bbd48, 0xc6a00d37, 0x7268ec27, 0xc69a6f6e, 0x72661abf, 0xc694d1c8, - 0x72634910, 0xc68f3446, - 0x7260771b, 0xc68996e7, 0x725da4df, 0xc683f9ab, 0x725ad25d, 0xc67e5c93, - 0x7257ff94, 0xc678bf9f, - 0x72552c85, 0xc67322ce, 0x7252592f, 0xc66d8620, 0x724f8593, 0xc667e996, - 0x724cb1b0, 0xc6624d30, - 0x7249dd86, 0xc65cb0ed, 0x72470916, 0xc65714cd, 0x72443460, 0xc65178d1, - 0x72415f63, 0xc64bdcf9, - 0x723e8a20, 0xc6464144, 0x723bb496, 0xc640a5b3, 0x7238dec5, 0xc63b0a46, - 0x723608af, 0xc6356efc, - 0x72333251, 0xc62fd3d6, 0x72305bae, 0xc62a38d4, 0x722d84c4, 0xc6249df5, - 0x722aad93, 0xc61f033a, - 0x7227d61c, 0xc61968a2, 0x7224fe5f, 0xc613ce2f, 0x7222265b, 0xc60e33df, - 0x721f4e11, 0xc60899b2, - 0x721c7580, 0xc602ffaa, 0x72199ca9, 0xc5fd65c5, 0x7216c38c, 0xc5f7cc04, - 0x7213ea28, 0xc5f23267, - 0x7211107e, 0xc5ec98ee, 0x720e368d, 0xc5e6ff98, 0x720b5c57, 0xc5e16667, - 0x720881d9, 0xc5dbcd59, - 0x7205a716, 0xc5d6346f, 0x7202cc0c, 0xc5d09ba9, 0x71fff0bc, 0xc5cb0307, - 0x71fd1525, 0xc5c56a89, - 0x71fa3949, 0xc5bfd22e, 0x71f75d25, 0xc5ba39f8, 0x71f480bc, 0xc5b4a1e5, - 0x71f1a40c, 0xc5af09f7, - 0x71eec716, 0xc5a9722c, 0x71ebe9da, 0xc5a3da86, 0x71e90c57, 0xc59e4303, - 0x71e62e8f, 0xc598aba5, - 0x71e35080, 0xc593146a, 0x71e0722a, 0xc58d7d54, 0x71dd938f, 0xc587e661, - 0x71dab4ad, 0xc5824f93, - 0x71d7d585, 0xc57cb8e9, 0x71d4f617, 0xc5772263, 0x71d21662, 0xc5718c00, - 0x71cf3667, 0xc56bf5c2, - 0x71cc5626, 0xc5665fa9, 0x71c9759f, 0xc560c9b3, 0x71c694d2, 0xc55b33e2, - 0x71c3b3bf, 0xc5559e34, - 0x71c0d265, 0xc55008ab, 0x71bdf0c5, 0xc54a7346, 0x71bb0edf, 0xc544de05, - 0x71b82cb3, 0xc53f48e9, - 0x71b54a41, 0xc539b3f1, 0x71b26788, 0xc5341f1d, 0x71af848a, 0xc52e8a6d, - 0x71aca145, 0xc528f5e1, - 0x71a9bdba, 0xc523617a, 0x71a6d9e9, 0xc51dcd37, 0x71a3f5d2, 0xc5183919, - 0x71a11175, 0xc512a51f, - 0x719e2cd2, 0xc50d1149, 0x719b47e9, 0xc5077d97, 0x719862b9, 0xc501ea0a, - 0x71957d44, 0xc4fc56a2, - 0x71929789, 0xc4f6c35d, 0x718fb187, 0xc4f1303d, 0x718ccb3f, 0xc4eb9d42, - 0x7189e4b2, 0xc4e60a6b, - 0x7186fdde, 0xc4e077b8, 0x718416c4, 0xc4dae52a, 0x71812f65, 0xc4d552c1, - 0x717e47bf, 0xc4cfc07c, - 0x717b5fd3, 0xc4ca2e5b, 0x717877a1, 0xc4c49c5f, 0x71758f29, 0xc4bf0a87, - 0x7172a66c, 0xc4b978d4, - 0x716fbd68, 0xc4b3e746, 0x716cd41e, 0xc4ae55dc, 0x7169ea8f, 0xc4a8c497, - 0x716700b9, 0xc4a33376, - 0x7164169d, 0xc49da27a, 0x71612c3c, 0xc49811a3, 0x715e4194, 0xc49280f0, - 0x715b56a7, 0xc48cf062, - 0x71586b74, 0xc4875ff9, 0x71557ffa, 0xc481cfb4, 0x7152943b, 0xc47c3f94, - 0x714fa836, 0xc476af98, - 0x714cbbeb, 0xc4711fc2, 0x7149cf5a, 0xc46b9010, 0x7146e284, 0xc4660083, - 0x7143f567, 0xc460711b, - 0x71410805, 0xc45ae1d7, 0x713e1a5c, 0xc45552b8, 0x713b2c6e, 0xc44fc3be, - 0x71383e3a, 0xc44a34e9, - 0x71354fc0, 0xc444a639, 0x71326101, 0xc43f17ad, 0x712f71fb, 0xc4398947, - 0x712c82b0, 0xc433fb05, - 0x7129931f, 0xc42e6ce8, 0x7126a348, 0xc428def0, 0x7123b32b, 0xc423511d, - 0x7120c2c8, 0xc41dc36f, - 0x711dd220, 0xc41835e6, 0x711ae132, 0xc412a882, 0x7117effe, 0xc40d1b42, - 0x7114fe84, 0xc4078e28, - 0x71120cc5, 0xc4020133, 0x710f1ac0, 0xc3fc7462, 0x710c2875, 0xc3f6e7b7, - 0x710935e4, 0xc3f15b31, - 0x7106430e, 0xc3ebced0, 0x71034ff2, 0xc3e64294, 0x71005c90, 0xc3e0b67d, - 0x70fd68e9, 0xc3db2a8b, - 0x70fa74fc, 0xc3d59ebe, 0x70f780c9, 0xc3d01316, 0x70f48c50, 0xc3ca8793, - 0x70f19792, 0xc3c4fc36, - 0x70eea28e, 0xc3bf70fd, 0x70ebad45, 0xc3b9e5ea, 0x70e8b7b5, 0xc3b45afc, - 0x70e5c1e1, 0xc3aed034, - 0x70e2cbc6, 0xc3a94590, 0x70dfd566, 0xc3a3bb12, 0x70dcdec0, 0xc39e30b8, - 0x70d9e7d5, 0xc398a685, - 0x70d6f0a4, 0xc3931c76, 0x70d3f92d, 0xc38d928d, 0x70d10171, 0xc38808c9, - 0x70ce096f, 0xc3827f2a, - 0x70cb1128, 0xc37cf5b0, 0x70c8189b, 0xc3776c5c, 0x70c51fc8, 0xc371e32d, - 0x70c226b0, 0xc36c5a24, - 0x70bf2d53, 0xc366d140, 0x70bc33b0, 0xc3614881, 0x70b939c7, 0xc35bbfe8, - 0x70b63f99, 0xc3563774, - 0x70b34525, 0xc350af26, 0x70b04a6b, 0xc34b26fc, 0x70ad4f6d, 0xc3459ef9, - 0x70aa5428, 0xc340171b, - 0x70a7589f, 0xc33a8f62, 0x70a45ccf, 0xc33507cf, 0x70a160ba, 0xc32f8061, - 0x709e6460, 0xc329f919, - 0x709b67c0, 0xc32471f7, 0x70986adb, 0xc31eeaf9, 0x70956db1, 0xc3196422, - 0x70927041, 0xc313dd70, - 0x708f728b, 0xc30e56e4, 0x708c7490, 0xc308d07d, 0x70897650, 0xc3034a3c, - 0x708677ca, 0xc2fdc420, - 0x708378ff, 0xc2f83e2a, 0x708079ee, 0xc2f2b85a, 0x707d7a98, 0xc2ed32af, - 0x707a7afd, 0xc2e7ad2a, - 0x70777b1c, 0xc2e227cb, 0x70747af6, 0xc2dca291, 0x70717a8a, 0xc2d71d7e, - 0x706e79d9, 0xc2d1988f, - 0x706b78e3, 0xc2cc13c7, 0x706877a7, 0xc2c68f24, 0x70657626, 0xc2c10aa7, - 0x70627460, 0xc2bb8650, - 0x705f7255, 0xc2b6021f, 0x705c7004, 0xc2b07e14, 0x70596d6d, 0xc2aafa2e, - 0x70566a92, 0xc2a5766e, - 0x70536771, 0xc29ff2d4, 0x7050640b, 0xc29a6f60, 0x704d6060, 0xc294ec12, - 0x704a5c6f, 0xc28f68e9, - 0x70475839, 0xc289e5e7, 0x704453be, 0xc284630a, 0x70414efd, 0xc27ee054, - 0x703e49f8, 0xc2795dc3, - 0x703b44ad, 0xc273db58, 0x70383f1d, 0xc26e5913, 0x70353947, 0xc268d6f5, - 0x7032332d, 0xc26354fc, - 0x702f2ccd, 0xc25dd329, 0x702c2628, 0xc258517c, 0x70291f3e, 0xc252cff5, - 0x7026180e, 0xc24d4e95, - 0x7023109a, 0xc247cd5a, 0x702008e0, 0xc2424c46, 0x701d00e1, 0xc23ccb57, - 0x7019f89d, 0xc2374a8f, - 0x7016f014, 0xc231c9ec, 0x7013e746, 0xc22c4970, 0x7010de32, 0xc226c91a, - 0x700dd4da, 0xc22148ea, - 0x700acb3c, 0xc21bc8e1, 0x7007c159, 0xc21648fd, 0x7004b731, 0xc210c940, - 0x7001acc4, 0xc20b49a9, - 0x6ffea212, 0xc205ca38, 0x6ffb971b, 0xc2004aed, 0x6ff88bde, 0xc1facbc9, - 0x6ff5805d, 0xc1f54cca, - 0x6ff27497, 0xc1efcdf3, 0x6fef688b, 0xc1ea4f41, 0x6fec5c3b, 0xc1e4d0b6, - 0x6fe94fa5, 0xc1df5251, - 0x6fe642ca, 0xc1d9d412, 0x6fe335ab, 0xc1d455f9, 0x6fe02846, 0xc1ced807, - 0x6fdd1a9c, 0xc1c95a3c, - 0x6fda0cae, 0xc1c3dc97, 0x6fd6fe7a, 0xc1be5f18, 0x6fd3f001, 0xc1b8e1bf, - 0x6fd0e144, 0xc1b3648d, - 0x6fcdd241, 0xc1ade781, 0x6fcac2fa, 0xc1a86a9c, 0x6fc7b36d, 0xc1a2edde, - 0x6fc4a39c, 0xc19d7145, - 0x6fc19385, 0xc197f4d4, 0x6fbe832a, 0xc1927888, 0x6fbb728a, 0xc18cfc63, - 0x6fb861a4, 0xc1878065, - 0x6fb5507a, 0xc182048d, 0x6fb23f0b, 0xc17c88dc, 0x6faf2d57, 0xc1770d52, - 0x6fac1b5f, 0xc17191ee, - 0x6fa90921, 0xc16c16b0, 0x6fa5f69e, 0xc1669b99, 0x6fa2e3d7, 0xc16120a9, - 0x6f9fd0cb, 0xc15ba5df, - 0x6f9cbd79, 0xc1562b3d, 0x6f99a9e3, 0xc150b0c0, 0x6f969608, 0xc14b366b, - 0x6f9381e9, 0xc145bc3c, - 0x6f906d84, 0xc1404233, 0x6f8d58db, 0xc13ac852, 0x6f8a43ed, 0xc1354e97, - 0x6f872eba, 0xc12fd503, - 0x6f841942, 0xc12a5b95, 0x6f810386, 0xc124e24f, 0x6f7ded84, 0xc11f692f, - 0x6f7ad73e, 0xc119f036, - 0x6f77c0b3, 0xc1147764, 0x6f74a9e4, 0xc10efeb8, 0x6f7192cf, 0xc1098634, - 0x6f6e7b76, 0xc1040dd6, - 0x6f6b63d8, 0xc0fe959f, 0x6f684bf6, 0xc0f91d8f, 0x6f6533ce, 0xc0f3a5a6, - 0x6f621b62, 0xc0ee2de3, - 0x6f5f02b2, 0xc0e8b648, 0x6f5be9bc, 0xc0e33ed4, 0x6f58d082, 0xc0ddc786, - 0x6f55b703, 0xc0d8505f, - 0x6f529d40, 0xc0d2d960, 0x6f4f8338, 0xc0cd6287, 0x6f4c68eb, 0xc0c7ebd6, - 0x6f494e5a, 0xc0c2754b, - 0x6f463383, 0xc0bcfee7, 0x6f431869, 0xc0b788ab, 0x6f3ffd09, 0xc0b21295, - 0x6f3ce165, 0xc0ac9ca6, - 0x6f39c57d, 0xc0a726df, 0x6f36a94f, 0xc0a1b13e, 0x6f338cde, 0xc09c3bc5, - 0x6f307027, 0xc096c673, - 0x6f2d532c, 0xc0915148, 0x6f2a35ed, 0xc08bdc44, 0x6f271868, 0xc0866767, - 0x6f23faa0, 0xc080f2b1, - 0x6f20dc92, 0xc07b7e23, 0x6f1dbe41, 0xc07609bb, 0x6f1a9faa, 0xc070957b, - 0x6f1780cf, 0xc06b2162, - 0x6f1461b0, 0xc065ad70, 0x6f11424c, 0xc06039a6, 0x6f0e22a3, 0xc05ac603, - 0x6f0b02b6, 0xc0555287, - 0x6f07e285, 0xc04fdf32, 0x6f04c20f, 0xc04a6c05, 0x6f01a155, 0xc044f8fe, - 0x6efe8056, 0xc03f8620, - 0x6efb5f12, 0xc03a1368, 0x6ef83d8a, 0xc034a0d8, 0x6ef51bbe, 0xc02f2e6f, - 0x6ef1f9ad, 0xc029bc2e, - 0x6eeed758, 0xc0244a14, 0x6eebb4bf, 0xc01ed821, 0x6ee891e1, 0xc0196656, - 0x6ee56ebe, 0xc013f4b2, - 0x6ee24b57, 0xc00e8336, 0x6edf27ac, 0xc00911e1, 0x6edc03bc, 0xc003a0b3, - 0x6ed8df88, 0xbffe2fad, - 0x6ed5bb10, 0xbff8bece, 0x6ed29653, 0xbff34e17, 0x6ecf7152, 0xbfeddd88, - 0x6ecc4c0d, 0xbfe86d20, - 0x6ec92683, 0xbfe2fcdf, 0x6ec600b5, 0xbfdd8cc6, 0x6ec2daa2, 0xbfd81cd5, - 0x6ebfb44b, 0xbfd2ad0b, - 0x6ebc8db0, 0xbfcd3d69, 0x6eb966d1, 0xbfc7cdee, 0x6eb63fad, 0xbfc25e9b, - 0x6eb31845, 0xbfbcef70, - 0x6eaff099, 0xbfb7806c, 0x6eacc8a8, 0xbfb21190, 0x6ea9a073, 0xbfaca2dc, - 0x6ea677fa, 0xbfa7344f, - 0x6ea34f3d, 0xbfa1c5ea, 0x6ea0263b, 0xbf9c57ac, 0x6e9cfcf5, 0xbf96e997, - 0x6e99d36b, 0xbf917ba9, - 0x6e96a99d, 0xbf8c0de3, 0x6e937f8a, 0xbf86a044, 0x6e905534, 0xbf8132ce, - 0x6e8d2a99, 0xbf7bc57f, - 0x6e89ffb9, 0xbf765858, 0x6e86d496, 0xbf70eb59, 0x6e83a92f, 0xbf6b7e81, - 0x6e807d83, 0xbf6611d2, - 0x6e7d5193, 0xbf60a54a, 0x6e7a255f, 0xbf5b38ea, 0x6e76f8e7, 0xbf55ccb2, - 0x6e73cc2b, 0xbf5060a2, - 0x6e709f2a, 0xbf4af4ba, 0x6e6d71e6, 0xbf4588fa, 0x6e6a445d, 0xbf401d61, - 0x6e671690, 0xbf3ab1f1, - 0x6e63e87f, 0xbf3546a8, 0x6e60ba2a, 0xbf2fdb88, 0x6e5d8b91, 0xbf2a708f, - 0x6e5a5cb4, 0xbf2505bf, - 0x6e572d93, 0xbf1f9b16, 0x6e53fe2e, 0xbf1a3096, 0x6e50ce84, 0xbf14c63d, - 0x6e4d9e97, 0xbf0f5c0d, - 0x6e4a6e66, 0xbf09f205, 0x6e473df0, 0xbf048824, 0x6e440d37, 0xbeff1e6c, - 0x6e40dc39, 0xbef9b4dc, - 0x6e3daaf8, 0xbef44b74, 0x6e3a7972, 0xbeeee234, 0x6e3747a9, 0xbee9791c, - 0x6e34159b, 0xbee4102d, - 0x6e30e34a, 0xbedea765, 0x6e2db0b4, 0xbed93ec6, 0x6e2a7ddb, 0xbed3d64f, - 0x6e274abe, 0xbece6e00, - 0x6e24175c, 0xbec905d9, 0x6e20e3b7, 0xbec39ddb, 0x6e1dafce, 0xbebe3605, - 0x6e1a7ba1, 0xbeb8ce57, - 0x6e174730, 0xbeb366d1, 0x6e14127b, 0xbeadff74, 0x6e10dd82, 0xbea8983f, - 0x6e0da845, 0xbea33132, - 0x6e0a72c5, 0xbe9dca4e, 0x6e073d00, 0xbe986391, 0x6e0406f8, 0xbe92fcfe, - 0x6e00d0ac, 0xbe8d9692, - 0x6dfd9a1c, 0xbe88304f, 0x6dfa6348, 0xbe82ca35, 0x6df72c30, 0xbe7d6442, - 0x6df3f4d4, 0xbe77fe78, - 0x6df0bd35, 0xbe7298d7, 0x6ded8552, 0xbe6d335e, 0x6dea4d2b, 0xbe67ce0d, - 0x6de714c0, 0xbe6268e5, - 0x6de3dc11, 0xbe5d03e6, 0x6de0a31f, 0xbe579f0f, 0x6ddd69e9, 0xbe523a60, - 0x6dda306f, 0xbe4cd5da, - 0x6dd6f6b1, 0xbe47717c, 0x6dd3bcaf, 0xbe420d47, 0x6dd0826a, 0xbe3ca93b, - 0x6dcd47e1, 0xbe374557, - 0x6dca0d14, 0xbe31e19b, 0x6dc6d204, 0xbe2c7e09, 0x6dc396b0, 0xbe271a9f, - 0x6dc05b18, 0xbe21b75d, - 0x6dbd1f3c, 0xbe1c5444, 0x6db9e31d, 0xbe16f154, 0x6db6a6ba, 0xbe118e8c, - 0x6db36a14, 0xbe0c2bed, - 0x6db02d29, 0xbe06c977, 0x6daceffb, 0xbe01672a, 0x6da9b28a, 0xbdfc0505, - 0x6da674d5, 0xbdf6a309, - 0x6da336dc, 0xbdf14135, 0x6d9ff89f, 0xbdebdf8b, 0x6d9cba1f, 0xbde67e09, - 0x6d997b5b, 0xbde11cb0, - 0x6d963c54, 0xbddbbb7f, 0x6d92fd09, 0xbdd65a78, 0x6d8fbd7a, 0xbdd0f999, - 0x6d8c7da8, 0xbdcb98e3, - 0x6d893d93, 0xbdc63856, 0x6d85fd39, 0xbdc0d7f2, 0x6d82bc9d, 0xbdbb77b7, - 0x6d7f7bbc, 0xbdb617a4, - 0x6d7c3a98, 0xbdb0b7bb, 0x6d78f931, 0xbdab57fa, 0x6d75b786, 0xbda5f862, - 0x6d727597, 0xbda098f3, - 0x6d6f3365, 0xbd9b39ad, 0x6d6bf0f0, 0xbd95da91, 0x6d68ae37, 0xbd907b9d, - 0x6d656b3a, 0xbd8b1cd2, - 0x6d6227fa, 0xbd85be30, 0x6d5ee477, 0xbd805fb7, 0x6d5ba0b0, 0xbd7b0167, - 0x6d585ca6, 0xbd75a340, - 0x6d551858, 0xbd704542, 0x6d51d3c6, 0xbd6ae76d, 0x6d4e8ef2, 0xbd6589c1, - 0x6d4b49da, 0xbd602c3f, - 0x6d48047e, 0xbd5acee5, 0x6d44bedf, 0xbd5571b5, 0x6d4178fd, 0xbd5014ad, - 0x6d3e32d7, 0xbd4ab7cf, - 0x6d3aec6e, 0xbd455b1a, 0x6d37a5c1, 0xbd3ffe8e, 0x6d345ed1, 0xbd3aa22c, - 0x6d31179e, 0xbd3545f2, - 0x6d2dd027, 0xbd2fe9e2, 0x6d2a886e, 0xbd2a8dfb, 0x6d274070, 0xbd25323d, - 0x6d23f830, 0xbd1fd6a8, - 0x6d20afac, 0xbd1a7b3d, 0x6d1d66e4, 0xbd151ffb, 0x6d1a1dda, 0xbd0fc4e2, - 0x6d16d48c, 0xbd0a69f2, - 0x6d138afb, 0xbd050f2c, 0x6d104126, 0xbcffb48f, 0x6d0cf70f, 0xbcfa5a1b, - 0x6d09acb4, 0xbcf4ffd1, - 0x6d066215, 0xbcefa5b0, 0x6d031734, 0xbcea4bb9, 0x6cffcc0f, 0xbce4f1eb, - 0x6cfc80a7, 0xbcdf9846, - 0x6cf934fc, 0xbcda3ecb, 0x6cf5e90d, 0xbcd4e579, 0x6cf29cdc, 0xbccf8c50, - 0x6cef5067, 0xbcca3351, - 0x6cec03af, 0xbcc4da7b, 0x6ce8b6b4, 0xbcbf81cf, 0x6ce56975, 0xbcba294d, - 0x6ce21bf4, 0xbcb4d0f4, - 0x6cdece2f, 0xbcaf78c4, 0x6cdb8027, 0xbcaa20be, 0x6cd831dc, 0xbca4c8e1, - 0x6cd4e34e, 0xbc9f712e, - 0x6cd1947c, 0xbc9a19a5, 0x6cce4568, 0xbc94c245, 0x6ccaf610, 0xbc8f6b0f, - 0x6cc7a676, 0xbc8a1402, - 0x6cc45698, 0xbc84bd1f, 0x6cc10677, 0xbc7f6665, 0x6cbdb613, 0xbc7a0fd6, - 0x6cba656c, 0xbc74b96f, - 0x6cb71482, 0xbc6f6333, 0x6cb3c355, 0xbc6a0d20, 0x6cb071e4, 0xbc64b737, - 0x6cad2031, 0xbc5f6177, - 0x6ca9ce3b, 0xbc5a0be2, 0x6ca67c01, 0xbc54b676, 0x6ca32985, 0xbc4f6134, - 0x6c9fd6c6, 0xbc4a0c1b, - 0x6c9c83c3, 0xbc44b72c, 0x6c99307e, 0xbc3f6267, 0x6c95dcf6, 0xbc3a0dcc, - 0x6c92892a, 0xbc34b95b, - 0x6c8f351c, 0xbc2f6513, 0x6c8be0cb, 0xbc2a10f6, 0x6c888c36, 0xbc24bd02, - 0x6c85375f, 0xbc1f6938, - 0x6c81e245, 0xbc1a1598, 0x6c7e8ce8, 0xbc14c221, 0x6c7b3748, 0xbc0f6ed5, - 0x6c77e165, 0xbc0a1bb3, - 0x6c748b3f, 0xbc04c8ba, 0x6c7134d7, 0xbbff75ec, 0x6c6dde2b, 0xbbfa2347, - 0x6c6a873d, 0xbbf4d0cc, - 0x6c67300b, 0xbbef7e7c, 0x6c63d897, 0xbbea2c55, 0x6c6080e0, 0xbbe4da58, - 0x6c5d28e6, 0xbbdf8885, - 0x6c59d0a9, 0xbbda36dd, 0x6c56782a, 0xbbd4e55e, 0x6c531f67, 0xbbcf940a, - 0x6c4fc662, 0xbbca42df, - 0x6c4c6d1a, 0xbbc4f1df, 0x6c49138f, 0xbbbfa108, 0x6c45b9c1, 0xbbba505c, - 0x6c425fb1, 0xbbb4ffda, - 0x6c3f055d, 0xbbafaf82, 0x6c3baac7, 0xbbaa5f54, 0x6c384fef, 0xbba50f50, - 0x6c34f4d3, 0xbb9fbf77, - 0x6c319975, 0xbb9a6fc7, 0x6c2e3dd4, 0xbb952042, 0x6c2ae1f0, 0xbb8fd0e7, - 0x6c2785ca, 0xbb8a81b6, - 0x6c242960, 0xbb8532b0, 0x6c20ccb4, 0xbb7fe3d3, 0x6c1d6fc6, 0xbb7a9521, - 0x6c1a1295, 0xbb754699, - 0x6c16b521, 0xbb6ff83c, 0x6c13576a, 0xbb6aaa09, 0x6c0ff971, 0xbb655c00, - 0x6c0c9b35, 0xbb600e21, - 0x6c093cb6, 0xbb5ac06d, 0x6c05ddf5, 0xbb5572e3, 0x6c027ef1, 0xbb502583, - 0x6bff1faa, 0xbb4ad84e, - 0x6bfbc021, 0xbb458b43, 0x6bf86055, 0xbb403e63, 0x6bf50047, 0xbb3af1ad, - 0x6bf19ff6, 0xbb35a521, - 0x6bee3f62, 0xbb3058c0, 0x6beade8c, 0xbb2b0c8a, 0x6be77d74, 0xbb25c07d, - 0x6be41c18, 0xbb20749c, - 0x6be0ba7b, 0xbb1b28e4, 0x6bdd589a, 0xbb15dd57, 0x6bd9f677, 0xbb1091f5, - 0x6bd69412, 0xbb0b46bd, - 0x6bd3316a, 0xbb05fbb0, 0x6bcfce80, 0xbb00b0ce, 0x6bcc6b53, 0xbafb6615, - 0x6bc907e3, 0xbaf61b88, - 0x6bc5a431, 0xbaf0d125, 0x6bc2403d, 0xbaeb86ed, 0x6bbedc06, 0xbae63cdf, - 0x6bbb778d, 0xbae0f2fc, - 0x6bb812d1, 0xbadba943, 0x6bb4add3, 0xbad65fb5, 0x6bb14892, 0xbad11652, - 0x6bade30f, 0xbacbcd1a, - 0x6baa7d49, 0xbac6840c, 0x6ba71741, 0xbac13b29, 0x6ba3b0f7, 0xbabbf270, - 0x6ba04a6a, 0xbab6a9e3, - 0x6b9ce39b, 0xbab16180, 0x6b997c8a, 0xbaac1948, 0x6b961536, 0xbaa6d13a, - 0x6b92ada0, 0xbaa18958, - 0x6b8f45c7, 0xba9c41a0, 0x6b8bddac, 0xba96fa13, 0x6b88754f, 0xba91b2b1, - 0x6b850caf, 0xba8c6b79, - 0x6b81a3cd, 0xba87246d, 0x6b7e3aa9, 0xba81dd8b, 0x6b7ad142, 0xba7c96d4, - 0x6b776799, 0xba775048, - 0x6b73fdae, 0xba7209e7, 0x6b709381, 0xba6cc3b1, 0x6b6d2911, 0xba677da6, - 0x6b69be5f, 0xba6237c5, - 0x6b66536b, 0xba5cf210, 0x6b62e834, 0xba57ac86, 0x6b5f7cbc, 0xba526726, - 0x6b5c1101, 0xba4d21f2, - 0x6b58a503, 0xba47dce8, 0x6b5538c4, 0xba42980a, 0x6b51cc42, 0xba3d5356, - 0x6b4e5f7f, 0xba380ece, - 0x6b4af279, 0xba32ca71, 0x6b478530, 0xba2d863e, 0x6b4417a6, 0xba284237, - 0x6b40a9d9, 0xba22fe5b, - 0x6b3d3bcb, 0xba1dbaaa, 0x6b39cd7a, 0xba187724, 0x6b365ee7, 0xba1333c9, - 0x6b32f012, 0xba0df099, - 0x6b2f80fb, 0xba08ad95, 0x6b2c11a1, 0xba036abb, 0x6b28a206, 0xb9fe280d, - 0x6b253228, 0xb9f8e58a, - 0x6b21c208, 0xb9f3a332, 0x6b1e51a7, 0xb9ee6106, 0x6b1ae103, 0xb9e91f04, - 0x6b17701d, 0xb9e3dd2e, - 0x6b13fef5, 0xb9de9b83, 0x6b108d8b, 0xb9d95a03, 0x6b0d1bdf, 0xb9d418af, - 0x6b09a9f1, 0xb9ced786, - 0x6b0637c1, 0xb9c99688, 0x6b02c54f, 0xb9c455b6, 0x6aff529a, 0xb9bf150e, - 0x6afbdfa4, 0xb9b9d493, - 0x6af86c6c, 0xb9b49442, 0x6af4f8f2, 0xb9af541d, 0x6af18536, 0xb9aa1423, - 0x6aee1138, 0xb9a4d455, - 0x6aea9cf8, 0xb99f94b2, 0x6ae72876, 0xb99a553a, 0x6ae3b3b2, 0xb99515ee, - 0x6ae03eac, 0xb98fd6cd, - 0x6adcc964, 0xb98a97d8, 0x6ad953db, 0xb985590e, 0x6ad5de0f, 0xb9801a70, - 0x6ad26802, 0xb97adbfd, - 0x6acef1b2, 0xb9759db6, 0x6acb7b21, 0xb9705f9a, 0x6ac8044e, 0xb96b21aa, - 0x6ac48d39, 0xb965e3e5, - 0x6ac115e2, 0xb960a64c, 0x6abd9e49, 0xb95b68de, 0x6aba266e, 0xb9562b9c, - 0x6ab6ae52, 0xb950ee86, - 0x6ab335f4, 0xb94bb19b, 0x6aafbd54, 0xb94674dc, 0x6aac4472, 0xb9413848, - 0x6aa8cb4e, 0xb93bfbe0, - 0x6aa551e9, 0xb936bfa4, 0x6aa1d841, 0xb9318393, 0x6a9e5e58, 0xb92c47ae, - 0x6a9ae42e, 0xb9270bf5, - 0x6a9769c1, 0xb921d067, 0x6a93ef13, 0xb91c9505, 0x6a907423, 0xb91759cf, - 0x6a8cf8f1, 0xb9121ec5, - 0x6a897d7d, 0xb90ce3e6, 0x6a8601c8, 0xb907a933, 0x6a8285d1, 0xb9026eac, - 0x6a7f0999, 0xb8fd3451, - 0x6a7b8d1e, 0xb8f7fa21, 0x6a781062, 0xb8f2c01d, 0x6a749365, 0xb8ed8646, - 0x6a711625, 0xb8e84c99, - 0x6a6d98a4, 0xb8e31319, 0x6a6a1ae2, 0xb8ddd9c5, 0x6a669cdd, 0xb8d8a09d, - 0x6a631e97, 0xb8d367a0, - 0x6a5fa010, 0xb8ce2ecf, 0x6a5c2147, 0xb8c8f62b, 0x6a58a23c, 0xb8c3bdb2, - 0x6a5522ef, 0xb8be8565, - 0x6a51a361, 0xb8b94d44, 0x6a4e2392, 0xb8b4154f, 0x6a4aa381, 0xb8aedd86, - 0x6a47232e, 0xb8a9a5e9, - 0x6a43a29a, 0xb8a46e78, 0x6a4021c4, 0xb89f3733, 0x6a3ca0ad, 0xb89a001a, - 0x6a391f54, 0xb894c92d, - 0x6a359db9, 0xb88f926d, 0x6a321bdd, 0xb88a5bd8, 0x6a2e99c0, 0xb885256f, - 0x6a2b1761, 0xb87fef33, - 0x6a2794c1, 0xb87ab922, 0x6a2411df, 0xb875833e, 0x6a208ebb, 0xb8704d85, - 0x6a1d0b57, 0xb86b17f9, - 0x6a1987b0, 0xb865e299, 0x6a1603c8, 0xb860ad66, 0x6a127f9f, 0xb85b785e, - 0x6a0efb35, 0xb8564383, - 0x6a0b7689, 0xb8510ed4, 0x6a07f19b, 0xb84bda51, 0x6a046c6c, 0xb846a5fa, - 0x6a00e6fc, 0xb84171cf, - 0x69fd614a, 0xb83c3dd1, 0x69f9db57, 0xb83709ff, 0x69f65523, 0xb831d659, - 0x69f2cead, 0xb82ca2e0, - 0x69ef47f6, 0xb8276f93, 0x69ebc0fe, 0xb8223c72, 0x69e839c4, 0xb81d097e, - 0x69e4b249, 0xb817d6b6, - 0x69e12a8c, 0xb812a41a, 0x69dda28f, 0xb80d71aa, 0x69da1a50, 0xb8083f67, - 0x69d691cf, 0xb8030d51, - 0x69d3090e, 0xb7fddb67, 0x69cf800b, 0xb7f8a9a9, 0x69cbf6c7, 0xb7f37818, - 0x69c86d41, 0xb7ee46b3, - 0x69c4e37a, 0xb7e9157a, 0x69c15973, 0xb7e3e46e, 0x69bdcf29, 0xb7deb38f, - 0x69ba449f, 0xb7d982dc, - 0x69b6b9d3, 0xb7d45255, 0x69b32ec7, 0xb7cf21fb, 0x69afa378, 0xb7c9f1ce, - 0x69ac17e9, 0xb7c4c1cd, - 0x69a88c19, 0xb7bf91f8, 0x69a50007, 0xb7ba6251, 0x69a173b5, 0xb7b532d6, - 0x699de721, 0xb7b00387, - 0x699a5a4c, 0xb7aad465, 0x6996cd35, 0xb7a5a570, 0x69933fde, 0xb7a076a7, - 0x698fb246, 0xb79b480b, - 0x698c246c, 0xb796199b, 0x69889651, 0xb790eb58, 0x698507f6, 0xb78bbd42, - 0x69817959, 0xb7868f59, - 0x697dea7b, 0xb781619c, 0x697a5b5c, 0xb77c340c, 0x6976cbfc, 0xb77706a9, - 0x69733c5b, 0xb771d972, - 0x696fac78, 0xb76cac69, 0x696c1c55, 0xb7677f8c, 0x69688bf1, 0xb76252db, - 0x6964fb4c, 0xb75d2658, - 0x69616a65, 0xb757fa01, 0x695dd93e, 0xb752cdd8, 0x695a47d6, 0xb74da1db, - 0x6956b62d, 0xb748760b, - 0x69532442, 0xb7434a67, 0x694f9217, 0xb73e1ef1, 0x694bffab, 0xb738f3a7, - 0x69486cfe, 0xb733c88b, - 0x6944da10, 0xb72e9d9b, 0x694146e1, 0xb72972d8, 0x693db371, 0xb7244842, - 0x693a1fc0, 0xb71f1dd9, - 0x69368bce, 0xb719f39e, 0x6932f79b, 0xb714c98e, 0x692f6328, 0xb70f9fac, - 0x692bce73, 0xb70a75f7, - 0x6928397e, 0xb7054c6f, 0x6924a448, 0xb7002314, 0x69210ed1, 0xb6faf9e6, - 0x691d7919, 0xb6f5d0e5, - 0x6919e320, 0xb6f0a812, 0x69164ce7, 0xb6eb7f6b, 0x6912b66c, 0xb6e656f1, - 0x690f1fb1, 0xb6e12ea4, - 0x690b88b5, 0xb6dc0685, 0x6907f178, 0xb6d6de92, 0x690459fb, 0xb6d1b6cd, - 0x6900c23c, 0xb6cc8f35, - 0x68fd2a3d, 0xb6c767ca, 0x68f991fd, 0xb6c2408c, 0x68f5f97d, 0xb6bd197c, - 0x68f260bb, 0xb6b7f298, - 0x68eec7b9, 0xb6b2cbe2, 0x68eb2e76, 0xb6ada559, 0x68e794f3, 0xb6a87efd, - 0x68e3fb2e, 0xb6a358ce, - 0x68e06129, 0xb69e32cd, 0x68dcc6e4, 0xb6990cf9, 0x68d92c5d, 0xb693e752, - 0x68d59196, 0xb68ec1d9, - 0x68d1f68f, 0xb6899c8d, 0x68ce5b46, 0xb684776e, 0x68cabfbd, 0xb67f527c, - 0x68c723f3, 0xb67a2db8, - 0x68c387e9, 0xb6750921, 0x68bfeb9e, 0xb66fe4b8, 0x68bc4f13, 0xb66ac07c, - 0x68b8b247, 0xb6659c6d, - 0x68b5153a, 0xb660788c, 0x68b177ed, 0xb65b54d8, 0x68adda5f, 0xb6563151, - 0x68aa3c90, 0xb6510df8, - 0x68a69e81, 0xb64beacd, 0x68a30031, 0xb646c7ce, 0x689f61a1, 0xb641a4fe, - 0x689bc2d1, 0xb63c825b, - 0x689823bf, 0xb6375fe5, 0x6894846e, 0xb6323d9d, 0x6890e4dc, 0xb62d1b82, - 0x688d4509, 0xb627f995, - 0x6889a4f6, 0xb622d7d6, 0x688604a2, 0xb61db644, 0x6882640e, 0xb61894df, - 0x687ec339, 0xb61373a9, - 0x687b2224, 0xb60e529f, 0x687780ce, 0xb60931c4, 0x6873df38, 0xb6041116, - 0x68703d62, 0xb5fef095, - 0x686c9b4b, 0xb5f9d043, 0x6868f8f4, 0xb5f4b01e, 0x6865565c, 0xb5ef9026, - 0x6861b384, 0xb5ea705d, - 0x685e106c, 0xb5e550c1, 0x685a6d13, 0xb5e03153, 0x6856c979, 0xb5db1212, - 0x685325a0, 0xb5d5f2ff, - 0x684f8186, 0xb5d0d41a, 0x684bdd2c, 0xb5cbb563, 0x68483891, 0xb5c696da, - 0x684493b6, 0xb5c1787e, - 0x6840ee9b, 0xb5bc5a50, 0x683d493f, 0xb5b73c50, 0x6839a3a4, 0xb5b21e7e, - 0x6835fdc7, 0xb5ad00d9, - 0x683257ab, 0xb5a7e362, 0x682eb14e, 0xb5a2c61a, 0x682b0ab1, 0xb59da8ff, - 0x682763d4, 0xb5988c12, - 0x6823bcb7, 0xb5936f53, 0x68201559, 0xb58e52c2, 0x681c6dbb, 0xb589365e, - 0x6818c5dd, 0xb5841a29, - 0x68151dbe, 0xb57efe22, 0x68117560, 0xb579e248, 0x680dccc1, 0xb574c69d, - 0x680a23e2, 0xb56fab1f, - 0x68067ac3, 0xb56a8fd0, 0x6802d164, 0xb56574ae, 0x67ff27c4, 0xb56059bb, - 0x67fb7de5, 0xb55b3ef5, - 0x67f7d3c5, 0xb556245e, 0x67f42965, 0xb55109f5, 0x67f07ec5, 0xb54befba, - 0x67ecd3e5, 0xb546d5ac, - 0x67e928c5, 0xb541bbcd, 0x67e57d64, 0xb53ca21c, 0x67e1d1c4, 0xb5378899, - 0x67de25e3, 0xb5326f45, - 0x67da79c3, 0xb52d561e, 0x67d6cd62, 0xb5283d26, 0x67d320c1, 0xb523245b, - 0x67cf73e1, 0xb51e0bbf, - 0x67cbc6c0, 0xb518f351, 0x67c8195f, 0xb513db12, 0x67c46bbe, 0xb50ec300, - 0x67c0bddd, 0xb509ab1d, - 0x67bd0fbd, 0xb5049368, 0x67b9615c, 0xb4ff7be1, 0x67b5b2bb, 0xb4fa6489, - 0x67b203da, 0xb4f54d5f, - 0x67ae54ba, 0xb4f03663, 0x67aaa559, 0xb4eb1f95, 0x67a6f5b8, 0xb4e608f6, - 0x67a345d8, 0xb4e0f285, - 0x679f95b7, 0xb4dbdc42, 0x679be557, 0xb4d6c62e, 0x679834b6, 0xb4d1b048, - 0x679483d6, 0xb4cc9a90, - 0x6790d2b6, 0xb4c78507, 0x678d2156, 0xb4c26fad, 0x67896fb6, 0xb4bd5a80, - 0x6785bdd6, 0xb4b84582, - 0x67820bb7, 0xb4b330b3, 0x677e5957, 0xb4ae1c12, 0x677aa6b8, 0xb4a9079f, - 0x6776f3d9, 0xb4a3f35b, - 0x677340ba, 0xb49edf45, 0x676f8d5b, 0xb499cb5e, 0x676bd9bd, 0xb494b7a6, - 0x676825de, 0xb48fa41c, - 0x676471c0, 0xb48a90c0, 0x6760bd62, 0xb4857d93, 0x675d08c4, 0xb4806a95, - 0x675953e7, 0xb47b57c5, - 0x67559eca, 0xb4764523, 0x6751e96d, 0xb47132b1, 0x674e33d0, 0xb46c206d, - 0x674a7df4, 0xb4670e57, - 0x6746c7d8, 0xb461fc70, 0x6743117c, 0xb45ceab8, 0x673f5ae0, 0xb457d92f, - 0x673ba405, 0xb452c7d4, - 0x6737ecea, 0xb44db6a8, 0x67343590, 0xb448a5aa, 0x67307df5, 0xb44394db, - 0x672cc61c, 0xb43e843b, - 0x67290e02, 0xb43973ca, 0x672555a9, 0xb4346387, 0x67219d10, 0xb42f5373, - 0x671de438, 0xb42a438e, - 0x671a2b20, 0xb42533d8, 0x671671c8, 0xb4202451, 0x6712b831, 0xb41b14f8, - 0x670efe5a, 0xb41605ce, - 0x670b4444, 0xb410f6d3, 0x670789ee, 0xb40be807, 0x6703cf58, 0xb406d969, - 0x67001483, 0xb401cafb, - 0x66fc596f, 0xb3fcbcbb, 0x66f89e1b, 0xb3f7aeaa, 0x66f4e287, 0xb3f2a0c9, - 0x66f126b4, 0xb3ed9316, - 0x66ed6aa1, 0xb3e88592, 0x66e9ae4f, 0xb3e3783d, 0x66e5f1be, 0xb3de6b17, - 0x66e234ed, 0xb3d95e1f, - 0x66de77dc, 0xb3d45157, 0x66daba8c, 0xb3cf44be, 0x66d6fcfd, 0xb3ca3854, - 0x66d33f2e, 0xb3c52c19, - 0x66cf8120, 0xb3c0200c, 0x66cbc2d2, 0xb3bb142f, 0x66c80445, 0xb3b60881, - 0x66c44579, 0xb3b0fd02, - 0x66c0866d, 0xb3abf1b2, 0x66bcc721, 0xb3a6e691, 0x66b90797, 0xb3a1dba0, - 0x66b547cd, 0xb39cd0dd, - 0x66b187c3, 0xb397c649, 0x66adc77b, 0xb392bbe5, 0x66aa06f3, 0xb38db1b0, - 0x66a6462b, 0xb388a7aa, - 0x66a28524, 0xb3839dd3, 0x669ec3de, 0xb37e942b, 0x669b0259, 0xb3798ab2, - 0x66974095, 0xb3748169, - 0x66937e91, 0xb36f784f, 0x668fbc4e, 0xb36a6f64, 0x668bf9cb, 0xb36566a8, - 0x66883709, 0xb3605e1c, - 0x66847408, 0xb35b55bf, 0x6680b0c8, 0xb3564d91, 0x667ced49, 0xb3514592, - 0x6679298a, 0xb34c3dc3, - 0x6675658c, 0xb3473623, 0x6671a14f, 0xb3422eb2, 0x666ddcd3, 0xb33d2771, - 0x666a1818, 0xb338205f, - 0x6666531d, 0xb333197c, 0x66628de4, 0xb32e12c9, 0x665ec86b, 0xb3290c45, - 0x665b02b3, 0xb32405f1, - 0x66573cbb, 0xb31effcc, 0x66537685, 0xb319f9d6, 0x664fb010, 0xb314f410, - 0x664be95b, 0xb30fee79, - 0x66482267, 0xb30ae912, 0x66445b35, 0xb305e3da, 0x664093c3, 0xb300ded2, - 0x663ccc12, 0xb2fbd9f9, - 0x66390422, 0xb2f6d550, 0x66353bf3, 0xb2f1d0d6, 0x66317385, 0xb2eccc8c, - 0x662daad8, 0xb2e7c871, - 0x6629e1ec, 0xb2e2c486, 0x662618c1, 0xb2ddc0ca, 0x66224f56, 0xb2d8bd3e, - 0x661e85ad, 0xb2d3b9e2, - 0x661abbc5, 0xb2ceb6b5, 0x6616f19e, 0xb2c9b3b8, 0x66132738, 0xb2c4b0ea, - 0x660f5c93, 0xb2bfae4c, - 0x660b91af, 0xb2baabde, 0x6607c68c, 0xb2b5a99f, 0x6603fb2a, 0xb2b0a790, - 0x66002f89, 0xb2aba5b1, - 0x65fc63a9, 0xb2a6a402, 0x65f8978b, 0xb2a1a282, 0x65f4cb2d, 0xb29ca132, - 0x65f0fe91, 0xb297a011, - 0x65ed31b5, 0xb2929f21, 0x65e9649b, 0xb28d9e60, 0x65e59742, 0xb2889dcf, - 0x65e1c9aa, 0xb2839d6d, - 0x65ddfbd3, 0xb27e9d3c, 0x65da2dbd, 0xb2799d3a, 0x65d65f69, 0xb2749d68, - 0x65d290d6, 0xb26f9dc6, - 0x65cec204, 0xb26a9e54, 0x65caf2f3, 0xb2659f12, 0x65c723a3, 0xb2609fff, - 0x65c35415, 0xb25ba11d, - 0x65bf8447, 0xb256a26a, 0x65bbb43b, 0xb251a3e7, 0x65b7e3f1, 0xb24ca594, - 0x65b41367, 0xb247a771, - 0x65b0429f, 0xb242a97e, 0x65ac7198, 0xb23dabbb, 0x65a8a052, 0xb238ae28, - 0x65a4cece, 0xb233b0c5, - 0x65a0fd0b, 0xb22eb392, 0x659d2b09, 0xb229b68f, 0x659958c9, 0xb224b9bc, - 0x6595864a, 0xb21fbd19, - 0x6591b38c, 0xb21ac0a6, 0x658de08f, 0xb215c463, 0x658a0d54, 0xb210c850, - 0x658639db, 0xb20bcc6d, - 0x65826622, 0xb206d0ba, 0x657e922b, 0xb201d537, 0x657abdf6, 0xb1fcd9e5, - 0x6576e982, 0xb1f7dec2, - 0x657314cf, 0xb1f2e3d0, 0x656f3fde, 0xb1ede90e, 0x656b6aae, 0xb1e8ee7c, - 0x6567953f, 0xb1e3f41a, - 0x6563bf92, 0xb1def9e9, 0x655fe9a7, 0xb1d9ffe7, 0x655c137d, 0xb1d50616, - 0x65583d14, 0xb1d00c75, - 0x6554666d, 0xb1cb1304, 0x65508f87, 0xb1c619c3, 0x654cb863, 0xb1c120b3, - 0x6548e101, 0xb1bc27d3, - 0x6545095f, 0xb1b72f23, 0x65413180, 0xb1b236a4, 0x653d5962, 0xb1ad3e55, - 0x65398105, 0xb1a84636, - 0x6535a86b, 0xb1a34e47, 0x6531cf91, 0xb19e5689, 0x652df679, 0xb1995efb, - 0x652a1d23, 0xb194679e, - 0x6526438f, 0xb18f7071, 0x652269bc, 0xb18a7974, 0x651e8faa, 0xb18582a8, - 0x651ab55b, 0xb1808c0c, - 0x6516dacd, 0xb17b95a0, 0x65130000, 0xb1769f65, 0x650f24f5, 0xb171a95b, - 0x650b49ac, 0xb16cb380, - 0x65076e25, 0xb167bdd7, 0x6503925f, 0xb162c85d, 0x64ffb65b, 0xb15dd315, - 0x64fbda18, 0xb158ddfd, - 0x64f7fd98, 0xb153e915, 0x64f420d9, 0xb14ef45e, 0x64f043dc, 0xb149ffd7, - 0x64ec66a0, 0xb1450b81, - 0x64e88926, 0xb140175b, 0x64e4ab6e, 0xb13b2367, 0x64e0cd78, 0xb1362fa2, - 0x64dcef44, 0xb1313c0e, - 0x64d910d1, 0xb12c48ab, 0x64d53220, 0xb1275579, 0x64d15331, 0xb1226277, - 0x64cd7404, 0xb11d6fa6, - 0x64c99498, 0xb1187d05, 0x64c5b4ef, 0xb1138a95, 0x64c1d507, 0xb10e9856, - 0x64bdf4e1, 0xb109a648, - 0x64ba147d, 0xb104b46a, 0x64b633da, 0xb0ffc2bd, 0x64b252fa, 0xb0fad140, - 0x64ae71dc, 0xb0f5dff5, - 0x64aa907f, 0xb0f0eeda, 0x64a6aee4, 0xb0ebfdf0, 0x64a2cd0c, 0xb0e70d37, - 0x649eeaf5, 0xb0e21cae, - 0x649b08a0, 0xb0dd2c56, 0x6497260d, 0xb0d83c2f, 0x6493433c, 0xb0d34c39, - 0x648f602d, 0xb0ce5c74, - 0x648b7ce0, 0xb0c96ce0, 0x64879955, 0xb0c47d7c, 0x6483b58c, 0xb0bf8e4a, - 0x647fd185, 0xb0ba9f48, - 0x647bed3f, 0xb0b5b077, 0x647808bc, 0xb0b0c1d7, 0x647423fb, 0xb0abd368, - 0x64703efc, 0xb0a6e52a, - 0x646c59bf, 0xb0a1f71d, 0x64687444, 0xb09d0941, 0x64648e8c, 0xb0981b96, - 0x6460a895, 0xb0932e1b, - 0x645cc260, 0xb08e40d2, 0x6458dbed, 0xb08953ba, 0x6454f53d, 0xb08466d3, - 0x64510e4e, 0xb07f7a1c, - 0x644d2722, 0xb07a8d97, 0x64493fb8, 0xb075a143, 0x64455810, 0xb070b520, - 0x6441702a, 0xb06bc92e, - 0x643d8806, 0xb066dd6d, 0x64399fa5, 0xb061f1de, 0x6435b706, 0xb05d067f, - 0x6431ce28, 0xb0581b51, - 0x642de50d, 0xb0533055, 0x6429fbb5, 0xb04e458a, 0x6426121e, 0xb0495af0, - 0x6422284a, 0xb0447087, - 0x641e3e38, 0xb03f864f, 0x641a53e8, 0xb03a9c49, 0x6416695a, 0xb035b273, - 0x64127e8f, 0xb030c8cf, - 0x640e9386, 0xb02bdf5c, 0x640aa83f, 0xb026f61b, 0x6406bcba, 0xb0220d0a, - 0x6402d0f8, 0xb01d242b, - 0x63fee4f8, 0xb0183b7d, 0x63faf8bb, 0xb0135301, 0x63f70c3f, 0xb00e6ab5, - 0x63f31f86, 0xb009829c, - 0x63ef3290, 0xb0049ab3, 0x63eb455c, 0xafffb2fc, 0x63e757ea, 0xaffacb76, - 0x63e36a3a, 0xaff5e421, - 0x63df7c4d, 0xaff0fcfe, 0x63db8e22, 0xafec160c, 0x63d79fba, 0xafe72f4c, - 0x63d3b114, 0xafe248bd, - 0x63cfc231, 0xafdd625f, 0x63cbd310, 0xafd87c33, 0x63c7e3b1, 0xafd39638, - 0x63c3f415, 0xafceb06f, - 0x63c0043b, 0xafc9cad7, 0x63bc1424, 0xafc4e571, 0x63b823cf, 0xafc0003c, - 0x63b4333d, 0xafbb1b39, - 0x63b0426d, 0xafb63667, 0x63ac5160, 0xafb151c7, 0x63a86015, 0xafac6d58, - 0x63a46e8d, 0xafa7891b, - 0x63a07cc7, 0xafa2a50f, 0x639c8ac4, 0xaf9dc135, 0x63989884, 0xaf98dd8d, - 0x6394a606, 0xaf93fa16, - 0x6390b34a, 0xaf8f16d1, 0x638cc051, 0xaf8a33bd, 0x6388cd1b, 0xaf8550db, - 0x6384d9a7, 0xaf806e2b, - 0x6380e5f6, 0xaf7b8bac, 0x637cf208, 0xaf76a95f, 0x6378fddc, 0xaf71c743, - 0x63750973, 0xaf6ce55a, - 0x637114cc, 0xaf6803a2, 0x636d1fe9, 0xaf63221c, 0x63692ac7, 0xaf5e40c7, - 0x63653569, 0xaf595fa4, - 0x63613fcd, 0xaf547eb3, 0x635d49f4, 0xaf4f9df4, 0x635953dd, 0xaf4abd66, - 0x63555d8a, 0xaf45dd0b, - 0x635166f9, 0xaf40fce1, 0x634d702b, 0xaf3c1ce9, 0x6349791f, 0xaf373d22, - 0x634581d6, 0xaf325d8e, - 0x63418a50, 0xaf2d7e2b, 0x633d928d, 0xaf289efa, 0x63399a8d, 0xaf23bffb, - 0x6335a24f, 0xaf1ee12e, - 0x6331a9d4, 0xaf1a0293, 0x632db11c, 0xaf15242a, 0x6329b827, 0xaf1045f3, - 0x6325bef5, 0xaf0b67ed, - 0x6321c585, 0xaf068a1a, 0x631dcbd9, 0xaf01ac78, 0x6319d1ef, 0xaefccf09, - 0x6315d7c8, 0xaef7f1cb, - 0x6311dd64, 0xaef314c0, 0x630de2c3, 0xaeee37e6, 0x6309e7e4, 0xaee95b3f, - 0x6305ecc9, 0xaee47ec9, - 0x6301f171, 0xaedfa285, 0x62fdf5db, 0xaedac674, 0x62f9fa09, 0xaed5ea95, - 0x62f5fdf9, 0xaed10ee7, - 0x62f201ac, 0xaecc336c, 0x62ee0523, 0xaec75823, 0x62ea085c, 0xaec27d0c, - 0x62e60b58, 0xaebda227, - 0x62e20e17, 0xaeb8c774, 0x62de109a, 0xaeb3ecf3, 0x62da12df, 0xaeaf12a4, - 0x62d614e7, 0xaeaa3888, - 0x62d216b3, 0xaea55e9e, 0x62ce1841, 0xaea084e6, 0x62ca1992, 0xae9bab60, - 0x62c61aa7, 0xae96d20c, - 0x62c21b7e, 0xae91f8eb, 0x62be1c19, 0xae8d1ffb, 0x62ba1c77, 0xae88473e, - 0x62b61c98, 0xae836eb4, - 0x62b21c7b, 0xae7e965b, 0x62ae1c23, 0xae79be35, 0x62aa1b8d, 0xae74e641, - 0x62a61aba, 0xae700e80, - 0x62a219aa, 0xae6b36f0, 0x629e185e, 0xae665f93, 0x629a16d5, 0xae618869, - 0x6296150f, 0xae5cb171, - 0x6292130c, 0xae57daab, 0x628e10cc, 0xae530417, 0x628a0e50, 0xae4e2db6, - 0x62860b97, 0xae495787, - 0x628208a1, 0xae44818b, 0x627e056e, 0xae3fabc1, 0x627a01fe, 0xae3ad629, - 0x6275fe52, 0xae3600c4, - 0x6271fa69, 0xae312b92, 0x626df643, 0xae2c5691, 0x6269f1e1, 0xae2781c4, - 0x6265ed42, 0xae22ad29, - 0x6261e866, 0xae1dd8c0, 0x625de34e, 0xae19048a, 0x6259ddf8, 0xae143086, - 0x6255d866, 0xae0f5cb5, - 0x6251d298, 0xae0a8916, 0x624dcc8d, 0xae05b5aa, 0x6249c645, 0xae00e271, - 0x6245bfc0, 0xadfc0f6a, - 0x6241b8ff, 0xadf73c96, 0x623db202, 0xadf269f4, 0x6239aac7, 0xaded9785, - 0x6235a351, 0xade8c548, - 0x62319b9d, 0xade3f33e, 0x622d93ad, 0xaddf2167, 0x62298b81, 0xadda4fc3, - 0x62258317, 0xadd57e51, - 0x62217a72, 0xadd0ad12, 0x621d7190, 0xadcbdc05, 0x62196871, 0xadc70b2c, - 0x62155f16, 0xadc23a85, - 0x6211557e, 0xadbd6a10, 0x620d4baa, 0xadb899cf, 0x62094199, 0xadb3c9c0, - 0x6205374c, 0xadaef9e4, - 0x62012cc2, 0xadaa2a3b, 0x61fd21fc, 0xada55ac4, 0x61f916f9, 0xada08b80, - 0x61f50bba, 0xad9bbc70, - 0x61f1003f, 0xad96ed92, 0x61ecf487, 0xad921ee6, 0x61e8e893, 0xad8d506e, - 0x61e4dc62, 0xad888229, - 0x61e0cff5, 0xad83b416, 0x61dcc34c, 0xad7ee636, 0x61d8b666, 0xad7a1889, - 0x61d4a944, 0xad754b0f, - 0x61d09be5, 0xad707dc8, 0x61cc8e4b, 0xad6bb0b4, 0x61c88074, 0xad66e3d3, - 0x61c47260, 0xad621725, - 0x61c06410, 0xad5d4aaa, 0x61bc5584, 0xad587e61, 0x61b846bc, 0xad53b24c, - 0x61b437b7, 0xad4ee66a, - 0x61b02876, 0xad4a1aba, 0x61ac18f9, 0xad454f3e, 0x61a80940, 0xad4083f5, - 0x61a3f94a, 0xad3bb8df, - 0x619fe918, 0xad36edfc, 0x619bd8aa, 0xad32234b, 0x6197c800, 0xad2d58ce, - 0x6193b719, 0xad288e85, - 0x618fa5f7, 0xad23c46e, 0x618b9498, 0xad1efa8a, 0x618782fd, 0xad1a30d9, - 0x61837126, 0xad15675c, - 0x617f5f12, 0xad109e12, 0x617b4cc3, 0xad0bd4fb, 0x61773a37, 0xad070c17, - 0x61732770, 0xad024366, - 0x616f146c, 0xacfd7ae8, 0x616b012c, 0xacf8b29e, 0x6166edb0, 0xacf3ea87, - 0x6162d9f8, 0xacef22a3, - 0x615ec603, 0xacea5af2, 0x615ab1d3, 0xace59375, 0x61569d67, 0xace0cc2b, - 0x615288be, 0xacdc0514, - 0x614e73da, 0xacd73e30, 0x614a5eba, 0xacd27780, 0x6146495d, 0xaccdb103, - 0x614233c5, 0xacc8eab9, - 0x613e1df0, 0xacc424a3, 0x613a07e0, 0xacbf5ec0, 0x6135f193, 0xacba9910, - 0x6131db0b, 0xacb5d394, - 0x612dc447, 0xacb10e4b, 0x6129ad46, 0xacac4935, 0x6125960a, 0xaca78453, - 0x61217e92, 0xaca2bfa4, - 0x611d66de, 0xac9dfb29, 0x61194eee, 0xac9936e1, 0x611536c2, 0xac9472cd, - 0x61111e5b, 0xac8faeec, - 0x610d05b7, 0xac8aeb3e, 0x6108ecd8, 0xac8627c4, 0x6104d3bc, 0xac81647e, - 0x6100ba65, 0xac7ca16b, - 0x60fca0d2, 0xac77de8b, 0x60f88703, 0xac731bdf, 0x60f46cf9, 0xac6e5967, - 0x60f052b2, 0xac699722, - 0x60ec3830, 0xac64d510, 0x60e81d72, 0xac601333, 0x60e40278, 0xac5b5189, - 0x60dfe743, 0xac569012, - 0x60dbcbd1, 0xac51cecf, 0x60d7b024, 0xac4d0dc0, 0x60d3943b, 0xac484ce4, - 0x60cf7817, 0xac438c3c, - 0x60cb5bb7, 0xac3ecbc7, 0x60c73f1b, 0xac3a0b87, 0x60c32243, 0xac354b7a, - 0x60bf0530, 0xac308ba0, - 0x60bae7e1, 0xac2bcbfa, 0x60b6ca56, 0xac270c88, 0x60b2ac8f, 0xac224d4a, - 0x60ae8e8d, 0xac1d8e40, - 0x60aa7050, 0xac18cf69, 0x60a651d7, 0xac1410c6, 0x60a23322, 0xac0f5256, - 0x609e1431, 0xac0a941b, - 0x6099f505, 0xac05d613, 0x6095d59d, 0xac01183f, 0x6091b5fa, 0xabfc5a9f, - 0x608d961b, 0xabf79d33, - 0x60897601, 0xabf2dffb, 0x608555ab, 0xabee22f6, 0x60813519, 0xabe96625, - 0x607d144c, 0xabe4a988, - 0x6078f344, 0xabdfed1f, 0x6074d200, 0xabdb30ea, 0x6070b080, 0xabd674e9, - 0x606c8ec5, 0xabd1b91c, - 0x60686ccf, 0xabccfd83, 0x60644a9d, 0xabc8421d, 0x6060282f, 0xabc386ec, - 0x605c0587, 0xabbecbee, - 0x6057e2a2, 0xabba1125, 0x6053bf82, 0xabb5568f, 0x604f9c27, 0xabb09c2e, - 0x604b7891, 0xababe200, - 0x604754bf, 0xaba72807, 0x604330b1, 0xaba26e41, 0x603f0c69, 0xab9db4b0, - 0x603ae7e5, 0xab98fb52, - 0x6036c325, 0xab944229, 0x60329e2a, 0xab8f8934, 0x602e78f4, 0xab8ad073, - 0x602a5383, 0xab8617e6, - 0x60262dd6, 0xab815f8d, 0x602207ee, 0xab7ca768, 0x601de1ca, 0xab77ef77, - 0x6019bb6b, 0xab7337bb, - 0x601594d1, 0xab6e8032, 0x60116dfc, 0xab69c8de, 0x600d46ec, 0xab6511be, - 0x60091fa0, 0xab605ad2, - 0x6004f819, 0xab5ba41a, 0x6000d057, 0xab56ed97, 0x5ffca859, 0xab523748, - 0x5ff88021, 0xab4d812d, - 0x5ff457ad, 0xab48cb46, 0x5ff02efe, 0xab441593, 0x5fec0613, 0xab3f6015, - 0x5fe7dcee, 0xab3aaacb, - 0x5fe3b38d, 0xab35f5b5, 0x5fdf89f2, 0xab3140d4, 0x5fdb601b, 0xab2c8c27, - 0x5fd73609, 0xab27d7ae, - 0x5fd30bbc, 0xab23236a, 0x5fcee133, 0xab1e6f5a, 0x5fcab670, 0xab19bb7e, - 0x5fc68b72, 0xab1507d7, - 0x5fc26038, 0xab105464, 0x5fbe34c4, 0xab0ba125, 0x5fba0914, 0xab06ee1b, - 0x5fb5dd29, 0xab023b46, - 0x5fb1b104, 0xaafd88a4, 0x5fad84a3, 0xaaf8d637, 0x5fa95807, 0xaaf423ff, - 0x5fa52b31, 0xaaef71fb, - 0x5fa0fe1f, 0xaaeac02c, 0x5f9cd0d2, 0xaae60e91, 0x5f98a34a, 0xaae15d2a, - 0x5f947588, 0xaadcabf8, - 0x5f90478a, 0xaad7fafb, 0x5f8c1951, 0xaad34a32, 0x5f87eade, 0xaace999d, - 0x5f83bc2f, 0xaac9e93e, - 0x5f7f8d46, 0xaac53912, 0x5f7b5e22, 0xaac0891c, 0x5f772ec2, 0xaabbd959, - 0x5f72ff28, 0xaab729cc, - 0x5f6ecf53, 0xaab27a73, 0x5f6a9f44, 0xaaadcb4f, 0x5f666ef9, 0xaaa91c5f, - 0x5f623e73, 0xaaa46da4, - 0x5f5e0db3, 0xaa9fbf1e, 0x5f59dcb8, 0xaa9b10cc, 0x5f55ab82, 0xaa9662af, - 0x5f517a11, 0xaa91b4c7, - 0x5f4d4865, 0xaa8d0713, 0x5f49167f, 0xaa885994, 0x5f44e45e, 0xaa83ac4a, - 0x5f40b202, 0xaa7eff34, - 0x5f3c7f6b, 0xaa7a5253, 0x5f384c9a, 0xaa75a5a8, 0x5f34198e, 0xaa70f930, - 0x5f2fe647, 0xaa6c4cee, - 0x5f2bb2c5, 0xaa67a0e0, 0x5f277f09, 0xaa62f507, 0x5f234b12, 0xaa5e4963, - 0x5f1f16e0, 0xaa599df4, - 0x5f1ae274, 0xaa54f2ba, 0x5f16adcc, 0xaa5047b4, 0x5f1278eb, 0xaa4b9ce3, - 0x5f0e43ce, 0xaa46f248, - 0x5f0a0e77, 0xaa4247e1, 0x5f05d8e6, 0xaa3d9daf, 0x5f01a31a, 0xaa38f3b1, - 0x5efd6d13, 0xaa3449e9, - 0x5ef936d1, 0xaa2fa056, 0x5ef50055, 0xaa2af6f7, 0x5ef0c99f, 0xaa264dce, - 0x5eec92ae, 0xaa21a4d9, - 0x5ee85b82, 0xaa1cfc1a, 0x5ee4241c, 0xaa18538f, 0x5edfec7b, 0xaa13ab3a, - 0x5edbb49f, 0xaa0f0319, - 0x5ed77c8a, 0xaa0a5b2e, 0x5ed34439, 0xaa05b377, 0x5ecf0baf, 0xaa010bf6, - 0x5ecad2e9, 0xa9fc64a9, - 0x5ec699e9, 0xa9f7bd92, 0x5ec260af, 0xa9f316b0, 0x5ebe273b, 0xa9ee7002, - 0x5eb9ed8b, 0xa9e9c98a, - 0x5eb5b3a2, 0xa9e52347, 0x5eb1797e, 0xa9e07d39, 0x5ead3f1f, 0xa9dbd761, - 0x5ea90487, 0xa9d731bd, - 0x5ea4c9b3, 0xa9d28c4e, 0x5ea08ea6, 0xa9cde715, 0x5e9c535e, 0xa9c94211, - 0x5e9817dc, 0xa9c49d42, - 0x5e93dc1f, 0xa9bff8a8, 0x5e8fa028, 0xa9bb5444, 0x5e8b63f7, 0xa9b6b014, - 0x5e87278b, 0xa9b20c1a, - 0x5e82eae5, 0xa9ad6855, 0x5e7eae05, 0xa9a8c4c5, 0x5e7a70ea, 0xa9a4216b, - 0x5e763395, 0xa99f7e46, - 0x5e71f606, 0xa99adb56, 0x5e6db83d, 0xa996389b, 0x5e697a39, 0xa9919616, - 0x5e653bfc, 0xa98cf3c6, - 0x5e60fd84, 0xa98851ac, 0x5e5cbed1, 0xa983afc6, 0x5e587fe5, 0xa97f0e16, - 0x5e5440be, 0xa97a6c9c, - 0x5e50015d, 0xa975cb57, 0x5e4bc1c2, 0xa9712a47, 0x5e4781ed, 0xa96c896c, - 0x5e4341de, 0xa967e8c7, - 0x5e3f0194, 0xa9634858, 0x5e3ac110, 0xa95ea81d, 0x5e368053, 0xa95a0819, - 0x5e323f5b, 0xa9556849, - 0x5e2dfe29, 0xa950c8b0, 0x5e29bcbd, 0xa94c294b, 0x5e257b17, 0xa9478a1c, - 0x5e213936, 0xa942eb23, - 0x5e1cf71c, 0xa93e4c5f, 0x5e18b4c8, 0xa939add1, 0x5e147239, 0xa9350f78, - 0x5e102f71, 0xa9307155, - 0x5e0bec6e, 0xa92bd367, 0x5e07a932, 0xa92735af, 0x5e0365bb, 0xa922982c, - 0x5dff220b, 0xa91dfadf, - 0x5dfade20, 0xa9195dc7, 0x5df699fc, 0xa914c0e6, 0x5df2559e, 0xa9102439, - 0x5dee1105, 0xa90b87c3, - 0x5de9cc33, 0xa906eb82, 0x5de58727, 0xa9024f76, 0x5de141e1, 0xa8fdb3a1, - 0x5ddcfc61, 0xa8f91801, - 0x5dd8b6a7, 0xa8f47c97, 0x5dd470b3, 0xa8efe162, 0x5dd02a85, 0xa8eb4663, - 0x5dcbe41d, 0xa8e6ab9a, - 0x5dc79d7c, 0xa8e21106, 0x5dc356a1, 0xa8dd76a9, 0x5dbf0f8c, 0xa8d8dc81, - 0x5dbac83d, 0xa8d4428f, - 0x5db680b4, 0xa8cfa8d2, 0x5db238f1, 0xa8cb0f4b, 0x5dadf0f5, 0xa8c675fb, - 0x5da9a8bf, 0xa8c1dce0, - 0x5da5604f, 0xa8bd43fa, 0x5da117a5, 0xa8b8ab4b, 0x5d9ccec2, 0xa8b412d1, - 0x5d9885a5, 0xa8af7a8e, - 0x5d943c4e, 0xa8aae280, 0x5d8ff2bd, 0xa8a64aa8, 0x5d8ba8f3, 0xa8a1b306, - 0x5d875eef, 0xa89d1b99, - 0x5d8314b1, 0xa8988463, 0x5d7eca39, 0xa893ed63, 0x5d7a7f88, 0xa88f5698, - 0x5d76349d, 0xa88ac004, - 0x5d71e979, 0xa88629a5, 0x5d6d9e1b, 0xa881937c, 0x5d695283, 0xa87cfd8a, - 0x5d6506b2, 0xa87867cd, - 0x5d60baa7, 0xa873d246, 0x5d5c6e62, 0xa86f3cf6, 0x5d5821e4, 0xa86aa7db, - 0x5d53d52d, 0xa86612f6, - 0x5d4f883b, 0xa8617e48, 0x5d4b3b10, 0xa85ce9cf, 0x5d46edac, 0xa858558d, - 0x5d42a00e, 0xa853c180, - 0x5d3e5237, 0xa84f2daa, 0x5d3a0426, 0xa84a9a0a, 0x5d35b5db, 0xa84606a0, - 0x5d316757, 0xa841736c, - 0x5d2d189a, 0xa83ce06e, 0x5d28c9a3, 0xa8384da6, 0x5d247a72, 0xa833bb14, - 0x5d202b09, 0xa82f28b9, - 0x5d1bdb65, 0xa82a9693, 0x5d178b89, 0xa82604a4, 0x5d133b72, 0xa82172eb, - 0x5d0eeb23, 0xa81ce169, - 0x5d0a9a9a, 0xa818501c, 0x5d0649d7, 0xa813bf06, 0x5d01f8dc, 0xa80f2e26, - 0x5cfda7a7, 0xa80a9d7c, - 0x5cf95638, 0xa8060d08, 0x5cf50490, 0xa8017ccb, 0x5cf0b2af, 0xa7fcecc4, - 0x5cec6095, 0xa7f85cf3, - 0x5ce80e41, 0xa7f3cd59, 0x5ce3bbb4, 0xa7ef3df5, 0x5cdf68ed, 0xa7eaaec7, - 0x5cdb15ed, 0xa7e61fd0, - 0x5cd6c2b5, 0xa7e1910f, 0x5cd26f42, 0xa7dd0284, 0x5cce1b97, 0xa7d8742f, - 0x5cc9c7b2, 0xa7d3e611, - 0x5cc57394, 0xa7cf582a, 0x5cc11f3d, 0xa7caca79, 0x5cbccaac, 0xa7c63cfe, - 0x5cb875e3, 0xa7c1afb9, - 0x5cb420e0, 0xa7bd22ac, 0x5cafcba4, 0xa7b895d4, 0x5cab762f, 0xa7b40933, - 0x5ca72080, 0xa7af7cc8, - 0x5ca2ca99, 0xa7aaf094, 0x5c9e7478, 0xa7a66497, 0x5c9a1e1e, 0xa7a1d8d0, - 0x5c95c78b, 0xa79d4d3f, - 0x5c9170bf, 0xa798c1e5, 0x5c8d19ba, 0xa79436c1, 0x5c88c27c, 0xa78fabd4, - 0x5c846b05, 0xa78b211e, - 0x5c801354, 0xa786969e, 0x5c7bbb6b, 0xa7820c55, 0x5c776348, 0xa77d8242, - 0x5c730aed, 0xa778f866, - 0x5c6eb258, 0xa7746ec0, 0x5c6a598b, 0xa76fe551, 0x5c660084, 0xa76b5c19, - 0x5c61a745, 0xa766d317, - 0x5c5d4dcc, 0xa7624a4d, 0x5c58f41a, 0xa75dc1b8, 0x5c549a30, 0xa759395b, - 0x5c50400d, 0xa754b134, - 0x5c4be5b0, 0xa7502943, 0x5c478b1b, 0xa74ba18a, 0x5c43304d, 0xa7471a07, - 0x5c3ed545, 0xa74292bb, - 0x5c3a7a05, 0xa73e0ba5, 0x5c361e8c, 0xa73984c7, 0x5c31c2db, 0xa734fe1f, - 0x5c2d66f0, 0xa73077ae, - 0x5c290acc, 0xa72bf174, 0x5c24ae70, 0xa7276b70, 0x5c2051db, 0xa722e5a3, - 0x5c1bf50d, 0xa71e600d, - 0x5c179806, 0xa719daae, 0x5c133ac6, 0xa7155586, 0x5c0edd4e, 0xa710d095, - 0x5c0a7f9c, 0xa70c4bda, - 0x5c0621b2, 0xa707c757, 0x5c01c38f, 0xa703430a, 0x5bfd6534, 0xa6febef4, - 0x5bf906a0, 0xa6fa3b15, - 0x5bf4a7d2, 0xa6f5b76d, 0x5bf048cd, 0xa6f133fc, 0x5bebe98e, 0xa6ecb0c2, - 0x5be78a17, 0xa6e82dbe, - 0x5be32a67, 0xa6e3aaf2, 0x5bdeca7f, 0xa6df285d, 0x5bda6a5d, 0xa6daa5fe, - 0x5bd60a03, 0xa6d623d7, - 0x5bd1a971, 0xa6d1a1e7, 0x5bcd48a6, 0xa6cd202d, 0x5bc8e7a2, 0xa6c89eab, - 0x5bc48666, 0xa6c41d60, - 0x5bc024f0, 0xa6bf9c4b, 0x5bbbc343, 0xa6bb1b6e, 0x5bb7615d, 0xa6b69ac8, - 0x5bb2ff3e, 0xa6b21a59, - 0x5bae9ce7, 0xa6ad9a21, 0x5baa3a57, 0xa6a91a20, 0x5ba5d78e, 0xa6a49a56, - 0x5ba1748d, 0xa6a01ac4, - 0x5b9d1154, 0xa69b9b68, 0x5b98ade2, 0xa6971c44, 0x5b944a37, 0xa6929d57, - 0x5b8fe654, 0xa68e1ea1, - 0x5b8b8239, 0xa689a022, 0x5b871de5, 0xa68521da, 0x5b82b958, 0xa680a3ca, - 0x5b7e5493, 0xa67c25f0, - 0x5b79ef96, 0xa677a84e, 0x5b758a60, 0xa6732ae3, 0x5b7124f2, 0xa66eadb0, - 0x5b6cbf4c, 0xa66a30b3, - 0x5b68596d, 0xa665b3ee, 0x5b63f355, 0xa6613760, 0x5b5f8d06, 0xa65cbb0a, - 0x5b5b267e, 0xa6583eeb, - 0x5b56bfbd, 0xa653c303, 0x5b5258c4, 0xa64f4752, 0x5b4df193, 0xa64acbd9, - 0x5b498a2a, 0xa6465097, - 0x5b452288, 0xa641d58c, 0x5b40baae, 0xa63d5ab9, 0x5b3c529c, 0xa638e01d, - 0x5b37ea51, 0xa63465b9, - 0x5b3381ce, 0xa62feb8b, 0x5b2f1913, 0xa62b7196, 0x5b2ab020, 0xa626f7d7, - 0x5b2646f4, 0xa6227e50, - 0x5b21dd90, 0xa61e0501, 0x5b1d73f4, 0xa6198be9, 0x5b190a20, 0xa6151308, - 0x5b14a014, 0xa6109a5f, - 0x5b1035cf, 0xa60c21ee, 0x5b0bcb52, 0xa607a9b4, 0x5b07609d, 0xa60331b1, - 0x5b02f5b0, 0xa5feb9e6, - 0x5afe8a8b, 0xa5fa4252, 0x5afa1f2e, 0xa5f5caf6, 0x5af5b398, 0xa5f153d2, - 0x5af147ca, 0xa5ecdce5, - 0x5aecdbc5, 0xa5e8662f, 0x5ae86f87, 0xa5e3efb1, 0x5ae40311, 0xa5df796b, - 0x5adf9663, 0xa5db035c, - 0x5adb297d, 0xa5d68d85, 0x5ad6bc5f, 0xa5d217e6, 0x5ad24f09, 0xa5cda27e, - 0x5acde17b, 0xa5c92d4e, - 0x5ac973b5, 0xa5c4b855, 0x5ac505b7, 0xa5c04395, 0x5ac09781, 0xa5bbcf0b, - 0x5abc2912, 0xa5b75aba, - 0x5ab7ba6c, 0xa5b2e6a0, 0x5ab34b8e, 0xa5ae72be, 0x5aaedc78, 0xa5a9ff14, - 0x5aaa6d2b, 0xa5a58ba1, - 0x5aa5fda5, 0xa5a11866, 0x5aa18de7, 0xa59ca563, 0x5a9d1df1, 0xa5983297, - 0x5a98adc4, 0xa593c004, - 0x5a943d5e, 0xa58f4da8, 0x5a8fccc1, 0xa58adb84, 0x5a8b5bec, 0xa5866997, - 0x5a86eadf, 0xa581f7e3, - 0x5a82799a, 0xa57d8666, 0x5a7e081d, 0xa5791521, 0x5a799669, 0xa574a414, - 0x5a75247c, 0xa570333f, - 0x5a70b258, 0xa56bc2a2, 0x5a6c3ffc, 0xa567523c, 0x5a67cd69, 0xa562e20f, - 0x5a635a9d, 0xa55e7219, - 0x5a5ee79a, 0xa55a025b, 0x5a5a745f, 0xa55592d5, 0x5a5600ec, 0xa5512388, - 0x5a518d42, 0xa54cb472, - 0x5a4d1960, 0xa5484594, 0x5a48a546, 0xa543d6ee, 0x5a4430f5, 0xa53f687f, - 0x5a3fbc6b, 0xa53afa49, - 0x5a3b47ab, 0xa5368c4b, 0x5a36d2b2, 0xa5321e85, 0x5a325d82, 0xa52db0f7, - 0x5a2de81a, 0xa52943a1, - 0x5a29727b, 0xa524d683, 0x5a24fca4, 0xa520699d, 0x5a208695, 0xa51bfcef, - 0x5a1c104f, 0xa5179079, - 0x5a1799d1, 0xa513243b, 0x5a13231b, 0xa50eb836, 0x5a0eac2e, 0xa50a4c68, - 0x5a0a350a, 0xa505e0d2, - 0x5a05bdae, 0xa5017575, 0x5a01461a, 0xa4fd0a50, 0x59fcce4f, 0xa4f89f63, - 0x59f8564c, 0xa4f434ae, - 0x59f3de12, 0xa4efca31, 0x59ef65a1, 0xa4eb5fec, 0x59eaecf8, 0xa4e6f5e0, - 0x59e67417, 0xa4e28c0c, - 0x59e1faff, 0xa4de2270, 0x59dd81b0, 0xa4d9b90c, 0x59d90829, 0xa4d54fe0, - 0x59d48e6a, 0xa4d0e6ed, - 0x59d01475, 0xa4cc7e32, 0x59cb9a47, 0xa4c815af, 0x59c71fe3, 0xa4c3ad64, - 0x59c2a547, 0xa4bf4552, - 0x59be2a74, 0xa4badd78, 0x59b9af69, 0xa4b675d6, 0x59b53427, 0xa4b20e6d, - 0x59b0b8ae, 0xa4ada73c, - 0x59ac3cfd, 0xa4a94043, 0x59a7c115, 0xa4a4d982, 0x59a344f6, 0xa4a072fa, - 0x599ec8a0, 0xa49c0cab, - 0x599a4c12, 0xa497a693, 0x5995cf4d, 0xa49340b4, 0x59915250, 0xa48edb0e, - 0x598cd51d, 0xa48a75a0, - 0x598857b2, 0xa486106a, 0x5983da10, 0xa481ab6d, 0x597f5c36, 0xa47d46a8, - 0x597ade26, 0xa478e21b, - 0x59765fde, 0xa4747dc7, 0x5971e15f, 0xa47019ac, 0x596d62a9, 0xa46bb5c9, - 0x5968e3bc, 0xa467521e, - 0x59646498, 0xa462eeac, 0x595fe53c, 0xa45e8b73, 0x595b65aa, 0xa45a2872, - 0x5956e5e0, 0xa455c5a9, - 0x595265df, 0xa4516319, 0x594de5a7, 0xa44d00c2, 0x59496538, 0xa4489ea3, - 0x5944e492, 0xa4443cbd, - 0x594063b5, 0xa43fdb10, 0x593be2a0, 0xa43b799a, 0x59376155, 0xa437185e, - 0x5932dfd3, 0xa432b75a, - 0x592e5e19, 0xa42e568f, 0x5929dc29, 0xa429f5fd, 0x59255a02, 0xa42595a3, - 0x5920d7a3, 0xa4213581, - 0x591c550e, 0xa41cd599, 0x5917d242, 0xa41875e9, 0x59134f3e, 0xa4141672, - 0x590ecc04, 0xa40fb733, - 0x590a4893, 0xa40b582e, 0x5905c4eb, 0xa406f960, 0x5901410c, 0xa4029acc, - 0x58fcbcf6, 0xa3fe3c71, - 0x58f838a9, 0xa3f9de4e, 0x58f3b426, 0xa3f58064, 0x58ef2f6b, 0xa3f122b2, - 0x58eaaa7a, 0xa3ecc53a, - 0x58e62552, 0xa3e867fa, 0x58e19ff3, 0xa3e40af3, 0x58dd1a5d, 0xa3dfae25, - 0x58d89490, 0xa3db5190, - 0x58d40e8c, 0xa3d6f534, 0x58cf8852, 0xa3d29910, 0x58cb01e1, 0xa3ce3d25, - 0x58c67b39, 0xa3c9e174, - 0x58c1f45b, 0xa3c585fb, 0x58bd6d45, 0xa3c12abb, 0x58b8e5f9, 0xa3bccfb3, - 0x58b45e76, 0xa3b874e5, - 0x58afd6bd, 0xa3b41a50, 0x58ab4ecc, 0xa3afbff3, 0x58a6c6a5, 0xa3ab65d0, - 0x58a23e48, 0xa3a70be6, - 0x589db5b3, 0xa3a2b234, 0x58992ce9, 0xa39e58bb, 0x5894a3e7, 0xa399ff7c, - 0x58901aaf, 0xa395a675, - 0x588b9140, 0xa3914da8, 0x5887079a, 0xa38cf513, 0x58827dbe, 0xa3889cb8, - 0x587df3ab, 0xa3844495, - 0x58796962, 0xa37fecac, 0x5874dee2, 0xa37b94fb, 0x5870542c, 0xa3773d84, - 0x586bc93f, 0xa372e646, - 0x58673e1b, 0xa36e8f41, 0x5862b2c1, 0xa36a3875, 0x585e2730, 0xa365e1e2, - 0x58599b69, 0xa3618b88, - 0x58550f6c, 0xa35d3567, 0x58508338, 0xa358df80, 0x584bf6cd, 0xa35489d1, - 0x58476a2c, 0xa350345c, - 0x5842dd54, 0xa34bdf20, 0x583e5047, 0xa3478a1d, 0x5839c302, 0xa3433554, - 0x58353587, 0xa33ee0c3, - 0x5830a7d6, 0xa33a8c6c, 0x582c19ef, 0xa336384e, 0x58278bd1, 0xa331e469, - 0x5822fd7c, 0xa32d90be, - 0x581e6ef1, 0xa3293d4b, 0x5819e030, 0xa324ea13, 0x58155139, 0xa3209713, - 0x5810c20b, 0xa31c444c, - 0x580c32a7, 0xa317f1bf, 0x5807a30d, 0xa3139f6b, 0x5803133c, 0xa30f4d51, - 0x57fe8335, 0xa30afb70, - 0x57f9f2f8, 0xa306a9c8, 0x57f56284, 0xa3025859, 0x57f0d1da, 0xa2fe0724, - 0x57ec40fa, 0xa2f9b629, - 0x57e7afe4, 0xa2f56566, 0x57e31e97, 0xa2f114dd, 0x57de8d15, 0xa2ecc48e, - 0x57d9fb5c, 0xa2e87477, - 0x57d5696d, 0xa2e4249b, 0x57d0d747, 0xa2dfd4f7, 0x57cc44ec, 0xa2db858e, - 0x57c7b25a, 0xa2d7365d, - 0x57c31f92, 0xa2d2e766, 0x57be8c94, 0xa2ce98a9, 0x57b9f960, 0xa2ca4a25, - 0x57b565f6, 0xa2c5fbda, - 0x57b0d256, 0xa2c1adc9, 0x57ac3e80, 0xa2bd5ff2, 0x57a7aa73, 0xa2b91254, - 0x57a31631, 0xa2b4c4f0, - 0x579e81b8, 0xa2b077c5, 0x5799ed0a, 0xa2ac2ad3, 0x57955825, 0xa2a7de1c, - 0x5790c30a, 0xa2a3919e, - 0x578c2dba, 0xa29f4559, 0x57879833, 0xa29af94e, 0x57830276, 0xa296ad7d, - 0x577e6c84, 0xa29261e5, - 0x5779d65b, 0xa28e1687, 0x57753ffc, 0xa289cb63, 0x5770a968, 0xa2858078, - 0x576c129d, 0xa28135c7, - 0x57677b9d, 0xa27ceb4f, 0x5762e467, 0xa278a111, 0x575e4cfa, 0xa274570d, - 0x5759b558, 0xa2700d43, - 0x57551d80, 0xa26bc3b2, 0x57508572, 0xa2677a5b, 0x574bed2f, 0xa263313e, - 0x574754b5, 0xa25ee85b, - 0x5742bc06, 0xa25a9fb1, 0x573e2320, 0xa2565741, 0x57398a05, 0xa2520f0b, - 0x5734f0b5, 0xa24dc70f, - 0x5730572e, 0xa2497f4c, 0x572bbd71, 0xa24537c3, 0x5727237f, 0xa240f074, - 0x57228957, 0xa23ca95f, - 0x571deefa, 0xa2386284, 0x57195466, 0xa2341be3, 0x5714b99d, 0xa22fd57b, - 0x57101e9e, 0xa22b8f4d, - 0x570b8369, 0xa2274959, 0x5706e7ff, 0xa223039f, 0x57024c5f, 0xa21ebe1f, - 0x56fdb08a, 0xa21a78d9, - 0x56f9147e, 0xa21633cd, 0x56f4783d, 0xa211eefb, 0x56efdbc7, 0xa20daa62, - 0x56eb3f1a, 0xa2096604, - 0x56e6a239, 0xa20521e0, 0x56e20521, 0xa200ddf5, 0x56dd67d4, 0xa1fc9a45, - 0x56d8ca51, 0xa1f856ce, - 0x56d42c99, 0xa1f41392, 0x56cf8eab, 0xa1efd08f, 0x56caf088, 0xa1eb8dc7, - 0x56c6522f, 0xa1e74b38, - 0x56c1b3a1, 0xa1e308e4, 0x56bd14dd, 0xa1dec6ca, 0x56b875e4, 0xa1da84e9, - 0x56b3d6b5, 0xa1d64343, - 0x56af3750, 0xa1d201d7, 0x56aa97b7, 0xa1cdc0a5, 0x56a5f7e7, 0xa1c97fad, - 0x56a157e3, 0xa1c53ef0, - 0x569cb7a8, 0xa1c0fe6c, 0x56981739, 0xa1bcbe22, 0x56937694, 0xa1b87e13, - 0x568ed5b9, 0xa1b43e3e, - 0x568a34a9, 0xa1affea3, 0x56859364, 0xa1abbf42, 0x5680f1ea, 0xa1a7801b, - 0x567c503a, 0xa1a3412f, - 0x5677ae54, 0xa19f027c, 0x56730c3a, 0xa19ac404, 0x566e69ea, 0xa19685c7, - 0x5669c765, 0xa19247c3, - 0x566524aa, 0xa18e09fa, 0x566081ba, 0xa189cc6b, 0x565bde95, 0xa1858f16, - 0x56573b3b, 0xa18151fb, - 0x565297ab, 0xa17d151b, 0x564df3e6, 0xa178d875, 0x56494fec, 0xa1749c09, - 0x5644abbc, 0xa1705fd8, - 0x56400758, 0xa16c23e1, 0x563b62be, 0xa167e824, 0x5636bdef, 0xa163aca2, - 0x563218eb, 0xa15f715a, - 0x562d73b2, 0xa15b364d, 0x5628ce43, 0xa156fb79, 0x5624289f, 0xa152c0e1, - 0x561f82c7, 0xa14e8682, - 0x561adcb9, 0xa14a4c5e, 0x56163676, 0xa1461275, 0x56118ffe, 0xa141d8c5, - 0x560ce950, 0xa13d9f51, - 0x5608426e, 0xa1396617, 0x56039b57, 0xa1352d17, 0x55fef40a, 0xa130f451, - 0x55fa4c89, 0xa12cbbc7, - 0x55f5a4d2, 0xa1288376, 0x55f0fce7, 0xa1244b61, 0x55ec54c6, 0xa1201385, - 0x55e7ac71, 0xa11bdbe4, - 0x55e303e6, 0xa117a47e, 0x55de5b27, 0xa1136d52, 0x55d9b232, 0xa10f3661, - 0x55d50909, 0xa10affab, - 0x55d05faa, 0xa106c92f, 0x55cbb617, 0xa10292ed, 0x55c70c4f, 0xa0fe5ce6, - 0x55c26251, 0xa0fa271a, - 0x55bdb81f, 0xa0f5f189, 0x55b90db8, 0xa0f1bc32, 0x55b4631d, 0xa0ed8715, - 0x55afb84c, 0xa0e95234, - 0x55ab0d46, 0xa0e51d8c, 0x55a6620c, 0xa0e0e920, 0x55a1b69d, 0xa0dcb4ee, - 0x559d0af9, 0xa0d880f7, - 0x55985f20, 0xa0d44d3b, 0x5593b312, 0xa0d019b9, 0x558f06d0, 0xa0cbe672, - 0x558a5a58, 0xa0c7b366, - 0x5585adad, 0xa0c38095, 0x558100cc, 0xa0bf4dfe, 0x557c53b6, 0xa0bb1ba2, - 0x5577a66c, 0xa0b6e981, - 0x5572f8ed, 0xa0b2b79b, 0x556e4b39, 0xa0ae85ef, 0x55699d51, 0xa0aa547e, - 0x5564ef34, 0xa0a62348, - 0x556040e2, 0xa0a1f24d, 0x555b925c, 0xa09dc18d, 0x5556e3a1, 0xa0999107, - 0x555234b1, 0xa09560bc, - 0x554d858d, 0xa09130ad, 0x5548d634, 0xa08d00d8, 0x554426a7, 0xa088d13e, - 0x553f76e4, 0xa084a1de, - 0x553ac6ee, 0xa08072ba, 0x553616c2, 0xa07c43d1, 0x55316663, 0xa0781522, - 0x552cb5ce, 0xa073e6af, - 0x55280505, 0xa06fb876, 0x55235408, 0xa06b8a78, 0x551ea2d6, 0xa0675cb6, - 0x5519f16f, 0xa0632f2e, - 0x55153fd4, 0xa05f01e1, 0x55108e05, 0xa05ad4cf, 0x550bdc01, 0xa056a7f9, - 0x550729c9, 0xa0527b5d, - 0x5502775c, 0xa04e4efc, 0x54fdc4ba, 0xa04a22d7, 0x54f911e5, 0xa045f6ec, - 0x54f45edb, 0xa041cb3c, - 0x54efab9c, 0xa03d9fc8, 0x54eaf829, 0xa039748e, 0x54e64482, 0xa0354990, - 0x54e190a6, 0xa0311ecd, - 0x54dcdc96, 0xa02cf444, 0x54d82852, 0xa028c9f7, 0x54d373d9, 0xa0249fe5, - 0x54cebf2c, 0xa020760e, - 0x54ca0a4b, 0xa01c4c73, 0x54c55535, 0xa0182312, 0x54c09feb, 0xa013f9ed, - 0x54bbea6d, 0xa00fd102, - 0x54b734ba, 0xa00ba853, 0x54b27ed3, 0xa0077fdf, 0x54adc8b8, 0xa00357a7, - 0x54a91269, 0x9fff2fa9, - 0x54a45be6, 0x9ffb07e7, 0x549fa52e, 0x9ff6e060, 0x549aee42, 0x9ff2b914, - 0x54963722, 0x9fee9204, - 0x54917fce, 0x9fea6b2f, 0x548cc845, 0x9fe64495, 0x54881089, 0x9fe21e36, - 0x54835898, 0x9fddf812, - 0x547ea073, 0x9fd9d22a, 0x5479e81a, 0x9fd5ac7d, 0x54752f8d, 0x9fd1870c, - 0x547076cc, 0x9fcd61d6, - 0x546bbdd7, 0x9fc93cdb, 0x546704ae, 0x9fc5181b, 0x54624b50, 0x9fc0f397, - 0x545d91bf, 0x9fbccf4f, - 0x5458d7f9, 0x9fb8ab41, 0x54541e00, 0x9fb4876f, 0x544f63d2, 0x9fb063d9, - 0x544aa971, 0x9fac407e, - 0x5445eedb, 0x9fa81d5e, 0x54413412, 0x9fa3fa79, 0x543c7914, 0x9f9fd7d1, - 0x5437bde3, 0x9f9bb563, - 0x5433027d, 0x9f979331, 0x542e46e4, 0x9f93713b, 0x54298b17, 0x9f8f4f80, - 0x5424cf16, 0x9f8b2e00, - 0x542012e1, 0x9f870cbc, 0x541b5678, 0x9f82ebb4, 0x541699db, 0x9f7ecae7, - 0x5411dd0a, 0x9f7aaa55, - 0x540d2005, 0x9f7689ff, 0x540862cd, 0x9f7269e5, 0x5403a561, 0x9f6e4a06, - 0x53fee7c1, 0x9f6a2a63, - 0x53fa29ed, 0x9f660afb, 0x53f56be5, 0x9f61ebcf, 0x53f0adaa, 0x9f5dccde, - 0x53ebef3a, 0x9f59ae29, - 0x53e73097, 0x9f558fb0, 0x53e271c0, 0x9f517173, 0x53ddb2b6, 0x9f4d5371, - 0x53d8f378, 0x9f4935aa, - 0x53d43406, 0x9f45181f, 0x53cf7460, 0x9f40fad0, 0x53cab486, 0x9f3cddbd, - 0x53c5f479, 0x9f38c0e5, - 0x53c13439, 0x9f34a449, 0x53bc73c4, 0x9f3087e9, 0x53b7b31c, 0x9f2c6bc5, - 0x53b2f240, 0x9f284fdc, - 0x53ae3131, 0x9f24342f, 0x53a96fee, 0x9f2018bd, 0x53a4ae77, 0x9f1bfd88, - 0x539feccd, 0x9f17e28e, - 0x539b2af0, 0x9f13c7d0, 0x539668de, 0x9f0fad4e, 0x5391a699, 0x9f0b9307, - 0x538ce421, 0x9f0778fd, - 0x53882175, 0x9f035f2e, 0x53835e95, 0x9eff459b, 0x537e9b82, 0x9efb2c44, - 0x5379d83c, 0x9ef71328, - 0x537514c2, 0x9ef2fa49, 0x53705114, 0x9eeee1a5, 0x536b8d33, 0x9eeac93e, - 0x5366c91f, 0x9ee6b112, - 0x536204d7, 0x9ee29922, 0x535d405c, 0x9ede816e, 0x53587bad, 0x9eda69f6, - 0x5353b6cb, 0x9ed652ba, - 0x534ef1b5, 0x9ed23bb9, 0x534a2c6c, 0x9ece24f5, 0x534566f0, 0x9eca0e6d, - 0x5340a140, 0x9ec5f820, - 0x533bdb5d, 0x9ec1e210, 0x53371547, 0x9ebdcc3b, 0x53324efd, 0x9eb9b6a3, - 0x532d8880, 0x9eb5a146, - 0x5328c1d0, 0x9eb18c26, 0x5323faec, 0x9ead7742, 0x531f33d5, 0x9ea96299, - 0x531a6c8b, 0x9ea54e2d, - 0x5315a50e, 0x9ea139fd, 0x5310dd5d, 0x9e9d2608, 0x530c1579, 0x9e991250, - 0x53074d62, 0x9e94fed4, - 0x53028518, 0x9e90eb94, 0x52fdbc9a, 0x9e8cd890, 0x52f8f3e9, 0x9e88c5c9, - 0x52f42b05, 0x9e84b33d, - 0x52ef61ee, 0x9e80a0ee, 0x52ea98a4, 0x9e7c8eda, 0x52e5cf27, 0x9e787d03, - 0x52e10576, 0x9e746b68, - 0x52dc3b92, 0x9e705a09, 0x52d7717b, 0x9e6c48e7, 0x52d2a732, 0x9e683800, - 0x52cddcb5, 0x9e642756, - 0x52c91204, 0x9e6016e8, 0x52c44721, 0x9e5c06b6, 0x52bf7c0b, 0x9e57f6c0, - 0x52bab0c2, 0x9e53e707, - 0x52b5e546, 0x9e4fd78a, 0x52b11996, 0x9e4bc849, 0x52ac4db4, 0x9e47b944, - 0x52a7819f, 0x9e43aa7c, - 0x52a2b556, 0x9e3f9bf0, 0x529de8db, 0x9e3b8da0, 0x52991c2d, 0x9e377f8c, - 0x52944f4c, 0x9e3371b5, - 0x528f8238, 0x9e2f641b, 0x528ab4f1, 0x9e2b56bc, 0x5285e777, 0x9e27499a, - 0x528119ca, 0x9e233cb4, - 0x527c4bea, 0x9e1f300b, 0x52777dd7, 0x9e1b239e, 0x5272af92, 0x9e17176d, - 0x526de11a, 0x9e130b79, - 0x5269126e, 0x9e0effc1, 0x52644390, 0x9e0af446, 0x525f7480, 0x9e06e907, - 0x525aa53c, 0x9e02de04, - 0x5255d5c5, 0x9dfed33e, 0x5251061c, 0x9dfac8b4, 0x524c3640, 0x9df6be67, - 0x52476631, 0x9df2b456, - 0x524295f0, 0x9deeaa82, 0x523dc57b, 0x9deaa0ea, 0x5238f4d4, 0x9de6978f, - 0x523423fb, 0x9de28e70, - 0x522f52ee, 0x9dde858e, 0x522a81af, 0x9dda7ce9, 0x5225b03d, 0x9dd6747f, - 0x5220de99, 0x9dd26c53, - 0x521c0cc2, 0x9dce6463, 0x52173ab8, 0x9dca5caf, 0x5212687b, 0x9dc65539, - 0x520d960c, 0x9dc24dfe, - 0x5208c36a, 0x9dbe4701, 0x5203f096, 0x9dba4040, 0x51ff1d8f, 0x9db639bb, - 0x51fa4a56, 0x9db23373, - 0x51f576ea, 0x9dae2d68, 0x51f0a34b, 0x9daa279a, 0x51ebcf7a, 0x9da62208, - 0x51e6fb76, 0x9da21cb2, - 0x51e22740, 0x9d9e179a, 0x51dd52d7, 0x9d9a12be, 0x51d87e3c, 0x9d960e1f, - 0x51d3a96f, 0x9d9209bd, - 0x51ced46e, 0x9d8e0597, 0x51c9ff3c, 0x9d8a01ae, 0x51c529d7, 0x9d85fe02, - 0x51c0543f, 0x9d81fa92, - 0x51bb7e75, 0x9d7df75f, 0x51b6a879, 0x9d79f469, 0x51b1d24a, 0x9d75f1b0, - 0x51acfbe9, 0x9d71ef34, - 0x51a82555, 0x9d6decf4, 0x51a34e8f, 0x9d69eaf1, 0x519e7797, 0x9d65e92b, - 0x5199a06d, 0x9d61e7a2, - 0x5194c910, 0x9d5de656, 0x518ff180, 0x9d59e546, 0x518b19bf, 0x9d55e473, - 0x518641cb, 0x9d51e3dd, - 0x518169a5, 0x9d4de385, 0x517c914c, 0x9d49e368, 0x5177b8c2, 0x9d45e389, - 0x5172e005, 0x9d41e3e7, - 0x516e0715, 0x9d3de482, 0x51692df4, 0x9d39e559, 0x516454a0, 0x9d35e66e, - 0x515f7b1a, 0x9d31e7bf, - 0x515aa162, 0x9d2de94d, 0x5155c778, 0x9d29eb19, 0x5150ed5c, 0x9d25ed21, - 0x514c130d, 0x9d21ef66, - 0x5147388c, 0x9d1df1e9, 0x51425dd9, 0x9d19f4a8, 0x513d82f4, 0x9d15f7a4, - 0x5138a7dd, 0x9d11fadd, - 0x5133cc94, 0x9d0dfe54, 0x512ef119, 0x9d0a0207, 0x512a156b, 0x9d0605f7, - 0x5125398c, 0x9d020a25, - 0x51205d7b, 0x9cfe0e8f, 0x511b8137, 0x9cfa1337, 0x5116a4c1, 0x9cf6181c, - 0x5111c81a, 0x9cf21d3d, - 0x510ceb40, 0x9cee229c, 0x51080e35, 0x9cea2838, 0x510330f7, 0x9ce62e11, - 0x50fe5388, 0x9ce23427, - 0x50f975e6, 0x9cde3a7b, 0x50f49813, 0x9cda410b, 0x50efba0d, 0x9cd647d9, - 0x50eadbd6, 0x9cd24ee4, - 0x50e5fd6d, 0x9cce562c, 0x50e11ed2, 0x9cca5db1, 0x50dc4005, 0x9cc66573, - 0x50d76106, 0x9cc26d73, - 0x50d281d5, 0x9cbe75b0, 0x50cda272, 0x9cba7e2a, 0x50c8c2de, 0x9cb686e1, - 0x50c3e317, 0x9cb28fd5, - 0x50bf031f, 0x9cae9907, 0x50ba22f5, 0x9caaa276, 0x50b5429a, 0x9ca6ac23, - 0x50b0620c, 0x9ca2b60c, - 0x50ab814d, 0x9c9ec033, 0x50a6a05c, 0x9c9aca97, 0x50a1bf39, 0x9c96d539, - 0x509cdde4, 0x9c92e017, - 0x5097fc5e, 0x9c8eeb34, 0x50931aa6, 0x9c8af68d, 0x508e38bd, 0x9c870224, - 0x508956a1, 0x9c830df8, - 0x50847454, 0x9c7f1a0a, 0x507f91d5, 0x9c7b2659, 0x507aaf25, 0x9c7732e5, - 0x5075cc43, 0x9c733faf, - 0x5070e92f, 0x9c6f4cb6, 0x506c05ea, 0x9c6b59fa, 0x50672273, 0x9c67677c, - 0x50623ecb, 0x9c63753c, - 0x505d5af1, 0x9c5f8339, 0x505876e5, 0x9c5b9173, 0x505392a8, 0x9c579feb, - 0x504eae39, 0x9c53aea0, - 0x5049c999, 0x9c4fbd93, 0x5044e4c7, 0x9c4bccc3, 0x503fffc4, 0x9c47dc31, - 0x503b1a8f, 0x9c43ebdc, - 0x50363529, 0x9c3ffbc5, 0x50314f91, 0x9c3c0beb, 0x502c69c8, 0x9c381c4f, - 0x502783cd, 0x9c342cf0, - 0x50229da1, 0x9c303dcf, 0x501db743, 0x9c2c4eec, 0x5018d0b4, 0x9c286046, - 0x5013e9f4, 0x9c2471de, - 0x500f0302, 0x9c2083b3, 0x500a1bdf, 0x9c1c95c6, 0x5005348a, 0x9c18a816, - 0x50004d04, 0x9c14baa4, - 0x4ffb654d, 0x9c10cd70, 0x4ff67d64, 0x9c0ce07a, 0x4ff1954b, 0x9c08f3c1, - 0x4fecacff, 0x9c050745, - 0x4fe7c483, 0x9c011b08, 0x4fe2dbd5, 0x9bfd2f08, 0x4fddf2f6, 0x9bf94346, - 0x4fd909e5, 0x9bf557c1, - 0x4fd420a4, 0x9bf16c7a, 0x4fcf3731, 0x9bed8171, 0x4fca4d8d, 0x9be996a6, - 0x4fc563b7, 0x9be5ac18, - 0x4fc079b1, 0x9be1c1c8, 0x4fbb8f79, 0x9bddd7b6, 0x4fb6a510, 0x9bd9ede2, - 0x4fb1ba76, 0x9bd6044b, - 0x4faccfab, 0x9bd21af3, 0x4fa7e4af, 0x9bce31d8, 0x4fa2f981, 0x9bca48fa, - 0x4f9e0e22, 0x9bc6605b, - 0x4f992293, 0x9bc277fa, 0x4f9436d2, 0x9bbe8fd6, 0x4f8f4ae0, 0x9bbaa7f0, - 0x4f8a5ebd, 0x9bb6c048, - 0x4f857269, 0x9bb2d8de, 0x4f8085e4, 0x9baef1b2, 0x4f7b992d, 0x9bab0ac3, - 0x4f76ac46, 0x9ba72413, - 0x4f71bf2e, 0x9ba33da0, 0x4f6cd1e5, 0x9b9f576b, 0x4f67e46a, 0x9b9b7174, - 0x4f62f6bf, 0x9b978bbc, - 0x4f5e08e3, 0x9b93a641, 0x4f591ad6, 0x9b8fc104, 0x4f542c98, 0x9b8bdc05, - 0x4f4f3e29, 0x9b87f744, - 0x4f4a4f89, 0x9b8412c1, 0x4f4560b8, 0x9b802e7b, 0x4f4071b6, 0x9b7c4a74, - 0x4f3b8284, 0x9b7866ab, - 0x4f369320, 0x9b748320, 0x4f31a38c, 0x9b709fd3, 0x4f2cb3c7, 0x9b6cbcc4, - 0x4f27c3d1, 0x9b68d9f3, - 0x4f22d3aa, 0x9b64f760, 0x4f1de352, 0x9b61150b, 0x4f18f2c9, 0x9b5d32f4, - 0x4f140210, 0x9b59511c, - 0x4f0f1126, 0x9b556f81, 0x4f0a200b, 0x9b518e24, 0x4f052ec0, 0x9b4dad06, - 0x4f003d43, 0x9b49cc26, - 0x4efb4b96, 0x9b45eb83, 0x4ef659b8, 0x9b420b1f, 0x4ef167aa, 0x9b3e2af9, - 0x4eec756b, 0x9b3a4b11, - 0x4ee782fb, 0x9b366b68, 0x4ee2905a, 0x9b328bfc, 0x4edd9d89, 0x9b2eaccf, - 0x4ed8aa87, 0x9b2acde0, - 0x4ed3b755, 0x9b26ef2f, 0x4ecec3f2, 0x9b2310bc, 0x4ec9d05e, 0x9b1f3288, - 0x4ec4dc99, 0x9b1b5492, - 0x4ebfe8a5, 0x9b1776da, 0x4ebaf47f, 0x9b139960, 0x4eb60029, 0x9b0fbc24, - 0x4eb10ba2, 0x9b0bdf27, - 0x4eac16eb, 0x9b080268, 0x4ea72203, 0x9b0425e8, 0x4ea22ceb, 0x9b0049a5, - 0x4e9d37a3, 0x9afc6da1, - 0x4e984229, 0x9af891db, 0x4e934c80, 0x9af4b654, 0x4e8e56a5, 0x9af0db0b, - 0x4e89609b, 0x9aed0000, - 0x4e846a60, 0x9ae92533, 0x4e7f73f4, 0x9ae54aa5, 0x4e7a7d58, 0x9ae17056, - 0x4e75868c, 0x9add9644, - 0x4e708f8f, 0x9ad9bc71, 0x4e6b9862, 0x9ad5e2dd, 0x4e66a105, 0x9ad20987, - 0x4e61a977, 0x9ace306f, - 0x4e5cb1b9, 0x9aca5795, 0x4e57b9ca, 0x9ac67efb, 0x4e52c1ab, 0x9ac2a69e, - 0x4e4dc95c, 0x9abece80, - 0x4e48d0dd, 0x9abaf6a1, 0x4e43d82d, 0x9ab71eff, 0x4e3edf4d, 0x9ab3479d, - 0x4e39e63d, 0x9aaf7079, - 0x4e34ecfc, 0x9aab9993, 0x4e2ff38b, 0x9aa7c2ec, 0x4e2af9ea, 0x9aa3ec83, - 0x4e260019, 0x9aa01659, - 0x4e210617, 0x9a9c406e, 0x4e1c0be6, 0x9a986ac1, 0x4e171184, 0x9a949552, - 0x4e1216f2, 0x9a90c022, - 0x4e0d1c30, 0x9a8ceb31, 0x4e08213e, 0x9a89167e, 0x4e03261b, 0x9a85420a, - 0x4dfe2ac9, 0x9a816dd5, - 0x4df92f46, 0x9a7d99de, 0x4df43393, 0x9a79c625, 0x4def37b0, 0x9a75f2ac, - 0x4dea3b9d, 0x9a721f71, - 0x4de53f5a, 0x9a6e4c74, 0x4de042e7, 0x9a6a79b6, 0x4ddb4644, 0x9a66a737, - 0x4dd64971, 0x9a62d4f7, - 0x4dd14c6e, 0x9a5f02f5, 0x4dcc4f3b, 0x9a5b3132, 0x4dc751d8, 0x9a575fae, - 0x4dc25445, 0x9a538e68, - 0x4dbd5682, 0x9a4fbd61, 0x4db8588f, 0x9a4bec99, 0x4db35a6c, 0x9a481c0f, - 0x4dae5c19, 0x9a444bc5, - 0x4da95d96, 0x9a407bb9, 0x4da45ee3, 0x9a3cabeb, 0x4d9f6001, 0x9a38dc5d, - 0x4d9a60ee, 0x9a350d0d, - 0x4d9561ac, 0x9a313dfc, 0x4d90623a, 0x9a2d6f2a, 0x4d8b6298, 0x9a29a097, - 0x4d8662c6, 0x9a25d243, - 0x4d8162c4, 0x9a22042d, 0x4d7c6293, 0x9a1e3656, 0x4d776231, 0x9a1a68be, - 0x4d7261a0, 0x9a169b65, - 0x4d6d60df, 0x9a12ce4b, 0x4d685fef, 0x9a0f016f, 0x4d635ece, 0x9a0b34d3, - 0x4d5e5d7e, 0x9a076875, - 0x4d595bfe, 0x9a039c57, 0x4d545a4f, 0x99ffd077, 0x4d4f5870, 0x99fc04d6, - 0x4d4a5661, 0x99f83974, - 0x4d455422, 0x99f46e51, 0x4d4051b4, 0x99f0a36d, 0x4d3b4f16, 0x99ecd8c8, - 0x4d364c48, 0x99e90e62, - 0x4d31494b, 0x99e5443b, 0x4d2c461e, 0x99e17a53, 0x4d2742c2, 0x99ddb0aa, - 0x4d223f36, 0x99d9e73f, - 0x4d1d3b7a, 0x99d61e14, 0x4d18378f, 0x99d25528, 0x4d133374, 0x99ce8c7b, - 0x4d0e2f2a, 0x99cac40d, - 0x4d092ab0, 0x99c6fbde, 0x4d042607, 0x99c333ee, 0x4cff212e, 0x99bf6c3d, - 0x4cfa1c26, 0x99bba4cb, - 0x4cf516ee, 0x99b7dd99, 0x4cf01187, 0x99b416a5, 0x4ceb0bf0, 0x99b04ff0, - 0x4ce6062a, 0x99ac897b, - 0x4ce10034, 0x99a8c345, 0x4cdbfa0f, 0x99a4fd4d, 0x4cd6f3bb, 0x99a13795, - 0x4cd1ed37, 0x999d721c, - 0x4ccce684, 0x9999ace3, 0x4cc7dfa1, 0x9995e7e8, 0x4cc2d88f, 0x9992232d, - 0x4cbdd14e, 0x998e5eb1, - 0x4cb8c9dd, 0x998a9a74, 0x4cb3c23d, 0x9986d676, 0x4caeba6e, 0x998312b7, - 0x4ca9b26f, 0x997f4f38, - 0x4ca4aa41, 0x997b8bf8, 0x4c9fa1e4, 0x9977c8f7, 0x4c9a9958, 0x99740635, - 0x4c95909c, 0x997043b2, - 0x4c9087b1, 0x996c816f, 0x4c8b7e97, 0x9968bf6b, 0x4c86754e, 0x9964fda7, - 0x4c816bd5, 0x99613c22, - 0x4c7c622d, 0x995d7adc, 0x4c775856, 0x9959b9d5, 0x4c724e50, 0x9955f90d, - 0x4c6d441b, 0x99523885, - 0x4c6839b7, 0x994e783d, 0x4c632f23, 0x994ab833, 0x4c5e2460, 0x9946f869, - 0x4c59196f, 0x994338df, - 0x4c540e4e, 0x993f7993, 0x4c4f02fe, 0x993bba87, 0x4c49f77f, 0x9937fbbb, - 0x4c44ebd1, 0x99343d2e, - 0x4c3fdff4, 0x99307ee0, 0x4c3ad3e7, 0x992cc0d2, 0x4c35c7ac, 0x99290303, - 0x4c30bb42, 0x99254574, - 0x4c2baea9, 0x99218824, 0x4c26a1e1, 0x991dcb13, 0x4c2194e9, 0x991a0e42, - 0x4c1c87c3, 0x991651b1, - 0x4c177a6e, 0x9912955f, 0x4c126cea, 0x990ed94c, 0x4c0d5f37, 0x990b1d79, - 0x4c085156, 0x990761e5, - 0x4c034345, 0x9903a691, 0x4bfe3505, 0x98ffeb7d, 0x4bf92697, 0x98fc30a8, - 0x4bf417f9, 0x98f87612, - 0x4bef092d, 0x98f4bbbc, 0x4be9fa32, 0x98f101a6, 0x4be4eb08, 0x98ed47cf, - 0x4bdfdbaf, 0x98e98e38, - 0x4bdacc28, 0x98e5d4e0, 0x4bd5bc72, 0x98e21bc8, 0x4bd0ac8d, 0x98de62f0, - 0x4bcb9c79, 0x98daaa57, - 0x4bc68c36, 0x98d6f1fe, 0x4bc17bc5, 0x98d339e4, 0x4bbc6b25, 0x98cf820b, - 0x4bb75a56, 0x98cbca70, - 0x4bb24958, 0x98c81316, 0x4bad382c, 0x98c45bfb, 0x4ba826d1, 0x98c0a520, - 0x4ba31548, 0x98bcee84, - 0x4b9e0390, 0x98b93828, 0x4b98f1a9, 0x98b5820c, 0x4b93df93, 0x98b1cc30, - 0x4b8ecd4f, 0x98ae1693, - 0x4b89badd, 0x98aa6136, 0x4b84a83b, 0x98a6ac19, 0x4b7f956b, 0x98a2f73c, - 0x4b7a826d, 0x989f429e, - 0x4b756f40, 0x989b8e40, 0x4b705be4, 0x9897da22, 0x4b6b485a, 0x98942643, - 0x4b6634a2, 0x989072a5, - 0x4b6120bb, 0x988cbf46, 0x4b5c0ca5, 0x98890c27, 0x4b56f861, 0x98855948, - 0x4b51e3ee, 0x9881a6a9, - 0x4b4ccf4d, 0x987df449, 0x4b47ba7e, 0x987a422a, 0x4b42a580, 0x9876904a, - 0x4b3d9053, 0x9872deaa, - 0x4b387af9, 0x986f2d4a, 0x4b336570, 0x986b7c2a, 0x4b2e4fb8, 0x9867cb4a, - 0x4b2939d2, 0x98641aa9, - 0x4b2423be, 0x98606a49, 0x4b1f0d7b, 0x985cba28, 0x4b19f70a, 0x98590a48, - 0x4b14e06b, 0x98555aa7, - 0x4b0fc99d, 0x9851ab46, 0x4b0ab2a1, 0x984dfc26, 0x4b059b77, 0x984a4d45, - 0x4b00841f, 0x98469ea4, - 0x4afb6c98, 0x9842f043, 0x4af654e3, 0x983f4223, 0x4af13d00, 0x983b9442, - 0x4aec24ee, 0x9837e6a1, - 0x4ae70caf, 0x98343940, 0x4ae1f441, 0x98308c1f, 0x4adcdba5, 0x982cdf3f, - 0x4ad7c2da, 0x9829329e, - 0x4ad2a9e2, 0x9825863d, 0x4acd90bb, 0x9821da1d, 0x4ac87767, 0x981e2e3c, - 0x4ac35de4, 0x981a829c, - 0x4abe4433, 0x9816d73b, 0x4ab92a54, 0x98132c1b, 0x4ab41046, 0x980f813b, - 0x4aaef60b, 0x980bd69b, - 0x4aa9dba2, 0x98082c3b, 0x4aa4c10b, 0x9804821b, 0x4a9fa645, 0x9800d83c, - 0x4a9a8b52, 0x97fd2e9c, - 0x4a957030, 0x97f9853d, 0x4a9054e1, 0x97f5dc1e, 0x4a8b3963, 0x97f2333f, - 0x4a861db8, 0x97ee8aa0, - 0x4a8101de, 0x97eae242, 0x4a7be5d7, 0x97e73a23, 0x4a76c9a2, 0x97e39245, - 0x4a71ad3e, 0x97dfeaa7, - 0x4a6c90ad, 0x97dc4349, 0x4a6773ee, 0x97d89c2c, 0x4a625701, 0x97d4f54f, - 0x4a5d39e6, 0x97d14eb2, - 0x4a581c9e, 0x97cda855, 0x4a52ff27, 0x97ca0239, 0x4a4de182, 0x97c65c5c, - 0x4a48c3b0, 0x97c2b6c1, - 0x4a43a5b0, 0x97bf1165, 0x4a3e8782, 0x97bb6c4a, 0x4a396926, 0x97b7c76f, - 0x4a344a9d, 0x97b422d4, - 0x4a2f2be6, 0x97b07e7a, 0x4a2a0d01, 0x97acda60, 0x4a24edee, 0x97a93687, - 0x4a1fcead, 0x97a592ed, - 0x4a1aaf3f, 0x97a1ef94, 0x4a158fa3, 0x979e4c7c, 0x4a106fda, 0x979aa9a4, - 0x4a0b4fe2, 0x9797070c, - 0x4a062fbd, 0x979364b5, 0x4a010f6b, 0x978fc29e, 0x49fbeeea, 0x978c20c8, - 0x49f6ce3c, 0x97887f32, - 0x49f1ad61, 0x9784dddc, 0x49ec8c57, 0x97813cc7, 0x49e76b21, 0x977d9bf2, - 0x49e249bc, 0x9779fb5e, - 0x49dd282a, 0x97765b0a, 0x49d8066b, 0x9772baf7, 0x49d2e47e, 0x976f1b24, - 0x49cdc263, 0x976b7b92, - 0x49c8a01b, 0x9767dc41, 0x49c37da5, 0x97643d2f, 0x49be5b02, 0x97609e5f, - 0x49b93832, 0x975cffcf, - 0x49b41533, 0x9759617f, 0x49aef208, 0x9755c370, 0x49a9ceaf, 0x975225a1, - 0x49a4ab28, 0x974e8813, - 0x499f8774, 0x974aeac6, 0x499a6393, 0x97474db9, 0x49953f84, 0x9743b0ed, - 0x49901b48, 0x97401462, - 0x498af6df, 0x973c7817, 0x4985d248, 0x9738dc0d, 0x4980ad84, 0x97354043, - 0x497b8892, 0x9731a4ba, - 0x49766373, 0x972e0971, 0x49713e27, 0x972a6e6a, 0x496c18ae, 0x9726d3a3, - 0x4966f307, 0x9723391c, - 0x4961cd33, 0x971f9ed7, 0x495ca732, 0x971c04d2, 0x49578103, 0x97186b0d, - 0x49525aa7, 0x9714d18a, - 0x494d341e, 0x97113847, 0x49480d68, 0x970d9f45, 0x4942e684, 0x970a0683, - 0x493dbf74, 0x97066e03, - 0x49389836, 0x9702d5c3, 0x493370cb, 0x96ff3dc4, 0x492e4933, 0x96fba605, - 0x4929216e, 0x96f80e88, - 0x4923f97b, 0x96f4774b, 0x491ed15c, 0x96f0e04f, 0x4919a90f, 0x96ed4994, - 0x49148095, 0x96e9b319, - 0x490f57ee, 0x96e61ce0, 0x490a2f1b, 0x96e286e7, 0x4905061a, 0x96def12f, - 0x48ffdcec, 0x96db5bb8, - 0x48fab391, 0x96d7c682, 0x48f58a09, 0x96d4318d, 0x48f06054, 0x96d09cd8, - 0x48eb3672, 0x96cd0865, - 0x48e60c62, 0x96c97432, 0x48e0e227, 0x96c5e040, 0x48dbb7be, 0x96c24c8f, - 0x48d68d28, 0x96beb91f, - 0x48d16265, 0x96bb25f0, 0x48cc3775, 0x96b79302, 0x48c70c59, 0x96b40055, - 0x48c1e10f, 0x96b06de9, - 0x48bcb599, 0x96acdbbe, 0x48b789f5, 0x96a949d3, 0x48b25e25, 0x96a5b82a, - 0x48ad3228, 0x96a226c2, - 0x48a805ff, 0x969e959b, 0x48a2d9a8, 0x969b04b4, 0x489dad25, 0x9697740f, - 0x48988074, 0x9693e3ab, - 0x48935397, 0x96905388, 0x488e268e, 0x968cc3a5, 0x4888f957, 0x96893404, - 0x4883cbf4, 0x9685a4a4, - 0x487e9e64, 0x96821585, 0x487970a7, 0x967e86a7, 0x487442be, 0x967af80a, - 0x486f14a8, 0x967769af, - 0x4869e665, 0x9673db94, 0x4864b7f5, 0x96704dba, 0x485f8959, 0x966cc022, - 0x485a5a90, 0x966932cb, - 0x48552b9b, 0x9665a5b4, 0x484ffc79, 0x966218df, 0x484acd2a, 0x965e8c4b, - 0x48459daf, 0x965afff9, - 0x48406e08, 0x965773e7, 0x483b3e33, 0x9653e817, 0x48360e32, 0x96505c88, - 0x4830de05, 0x964cd139, - 0x482badab, 0x9649462d, 0x48267d24, 0x9645bb61, 0x48214c71, 0x964230d7, - 0x481c1b92, 0x963ea68d, - 0x4816ea86, 0x963b1c86, 0x4811b94d, 0x963792bf, 0x480c87e8, 0x96340939, - 0x48075657, 0x96307ff5, - 0x48022499, 0x962cf6f2, 0x47fcf2af, 0x96296e31, 0x47f7c099, 0x9625e5b0, - 0x47f28e56, 0x96225d71, - 0x47ed5be6, 0x961ed574, 0x47e8294a, 0x961b4db7, 0x47e2f682, 0x9617c63c, - 0x47ddc38e, 0x96143f02, - 0x47d8906d, 0x9610b80a, 0x47d35d20, 0x960d3153, 0x47ce29a7, 0x9609aadd, - 0x47c8f601, 0x960624a9, - 0x47c3c22f, 0x96029eb6, 0x47be8e31, 0x95ff1904, 0x47b95a06, 0x95fb9394, - 0x47b425af, 0x95f80e65, - 0x47aef12c, 0x95f48977, 0x47a9bc7d, 0x95f104cb, 0x47a487a2, 0x95ed8061, - 0x479f529a, 0x95e9fc38, - 0x479a1d67, 0x95e67850, 0x4794e807, 0x95e2f4a9, 0x478fb27b, 0x95df7145, - 0x478a7cc2, 0x95dbee21, - 0x478546de, 0x95d86b3f, 0x478010cd, 0x95d4e89f, 0x477ada91, 0x95d16640, - 0x4775a428, 0x95cde423, - 0x47706d93, 0x95ca6247, 0x476b36d3, 0x95c6e0ac, 0x4765ffe6, 0x95c35f53, - 0x4760c8cd, 0x95bfde3c, - 0x475b9188, 0x95bc5d66, 0x47565a17, 0x95b8dcd2, 0x4751227a, 0x95b55c7f, - 0x474beab1, 0x95b1dc6e, - 0x4746b2bc, 0x95ae5c9f, 0x47417a9b, 0x95aadd11, 0x473c424e, 0x95a75dc4, - 0x473709d5, 0x95a3deb9, - 0x4731d131, 0x95a05ff0, 0x472c9860, 0x959ce169, 0x47275f63, 0x95996323, - 0x4722263b, 0x9595e51e, - 0x471cece7, 0x9592675c, 0x4717b367, 0x958ee9db, 0x471279ba, 0x958b6c9b, - 0x470d3fe3, 0x9587ef9e, - 0x470805df, 0x958472e2, 0x4702cbaf, 0x9580f667, 0x46fd9154, 0x957d7a2f, - 0x46f856cd, 0x9579fe38, - 0x46f31c1a, 0x95768283, 0x46ede13b, 0x9573070f, 0x46e8a631, 0x956f8bdd, - 0x46e36afb, 0x956c10ed, - 0x46de2f99, 0x9568963f, 0x46d8f40b, 0x95651bd2, 0x46d3b852, 0x9561a1a8, - 0x46ce7c6d, 0x955e27bf, - 0x46c9405c, 0x955aae17, 0x46c40420, 0x955734b2, 0x46bec7b8, 0x9553bb8e, - 0x46b98b24, 0x955042ac, - 0x46b44e65, 0x954cca0c, 0x46af117a, 0x954951ae, 0x46a9d464, 0x9545d992, - 0x46a49722, 0x954261b7, - 0x469f59b4, 0x953eea1e, 0x469a1c1b, 0x953b72c7, 0x4694de56, 0x9537fbb2, - 0x468fa066, 0x953484df, - 0x468a624a, 0x95310e4e, 0x46852403, 0x952d97fe, 0x467fe590, 0x952a21f1, - 0x467aa6f2, 0x9526ac25, - 0x46756828, 0x9523369c, 0x46702933, 0x951fc154, 0x466aea12, 0x951c4c4e, - 0x4665aac6, 0x9518d78a, - 0x46606b4e, 0x95156308, 0x465b2bab, 0x9511eec8, 0x4655ebdd, 0x950e7aca, - 0x4650abe3, 0x950b070e, - 0x464b6bbe, 0x95079394, 0x46462b6d, 0x9504205c, 0x4640eaf2, 0x9500ad66, - 0x463baa4a, 0x94fd3ab1, - 0x46366978, 0x94f9c83f, 0x4631287a, 0x94f6560f, 0x462be751, 0x94f2e421, - 0x4626a5fd, 0x94ef7275, - 0x4621647d, 0x94ec010b, 0x461c22d2, 0x94e88fe3, 0x4616e0fc, 0x94e51efd, - 0x46119efa, 0x94e1ae59, - 0x460c5cce, 0x94de3df8, 0x46071a76, 0x94dacdd8, 0x4601d7f3, 0x94d75dfa, - 0x45fc9545, 0x94d3ee5f, - 0x45f7526b, 0x94d07f05, 0x45f20f67, 0x94cd0fee, 0x45eccc37, 0x94c9a119, - 0x45e788dc, 0x94c63286, - 0x45e24556, 0x94c2c435, 0x45dd01a5, 0x94bf5627, 0x45d7bdc9, 0x94bbe85a, - 0x45d279c2, 0x94b87ad0, - 0x45cd358f, 0x94b50d87, 0x45c7f132, 0x94b1a081, 0x45c2acaa, 0x94ae33be, - 0x45bd67f6, 0x94aac73c, - 0x45b82318, 0x94a75afd, 0x45b2de0e, 0x94a3eeff, 0x45ad98da, 0x94a08344, - 0x45a8537a, 0x949d17cc, - 0x45a30df0, 0x9499ac95, 0x459dc83b, 0x949641a1, 0x4598825a, 0x9492d6ef, - 0x45933c4f, 0x948f6c7f, - 0x458df619, 0x948c0252, 0x4588afb8, 0x94889867, 0x4583692c, 0x94852ebe, - 0x457e2275, 0x9481c557, - 0x4578db93, 0x947e5c33, 0x45739487, 0x947af351, 0x456e4d4f, 0x94778ab1, - 0x456905ed, 0x94742254, - 0x4563be60, 0x9470ba39, 0x455e76a8, 0x946d5260, 0x45592ec6, 0x9469eaca, - 0x4553e6b8, 0x94668376, - 0x454e9e80, 0x94631c65, 0x4549561d, 0x945fb596, 0x45440d90, 0x945c4f09, - 0x453ec4d7, 0x9458e8bf, - 0x45397bf4, 0x945582b7, 0x453432e6, 0x94521cf1, 0x452ee9ae, 0x944eb76e, - 0x4529a04b, 0x944b522d, - 0x452456bd, 0x9447ed2f, 0x451f0d04, 0x94448873, 0x4519c321, 0x944123fa, - 0x45147913, 0x943dbfc3, - 0x450f2edb, 0x943a5bcf, 0x4509e478, 0x9436f81d, 0x450499eb, 0x943394ad, - 0x44ff4f32, 0x94303180, - 0x44fa0450, 0x942cce96, 0x44f4b943, 0x94296bee, 0x44ef6e0b, 0x94260989, - 0x44ea22a9, 0x9422a766, - 0x44e4d71c, 0x941f4585, 0x44df8b64, 0x941be3e8, 0x44da3f83, 0x9418828c, - 0x44d4f376, 0x94152174, - 0x44cfa740, 0x9411c09e, 0x44ca5adf, 0x940e600a, 0x44c50e53, 0x940affb9, - 0x44bfc19d, 0x94079fab, - 0x44ba74bd, 0x94043fdf, 0x44b527b2, 0x9400e056, 0x44afda7d, 0x93fd810f, - 0x44aa8d1d, 0x93fa220b, - 0x44a53f93, 0x93f6c34a, 0x449ff1df, 0x93f364cb, 0x449aa400, 0x93f0068f, - 0x449555f7, 0x93eca896, - 0x449007c4, 0x93e94adf, 0x448ab967, 0x93e5ed6b, 0x44856adf, 0x93e2903a, - 0x44801c2d, 0x93df334c, - 0x447acd50, 0x93dbd6a0, 0x44757e4a, 0x93d87a36, 0x44702f19, 0x93d51e10, - 0x446adfbe, 0x93d1c22c, - 0x44659039, 0x93ce668b, 0x44604089, 0x93cb0b2d, 0x445af0b0, 0x93c7b011, - 0x4455a0ac, 0x93c45539, - 0x4450507e, 0x93c0faa3, 0x444b0026, 0x93bda04f, 0x4445afa4, 0x93ba463f, - 0x44405ef8, 0x93b6ec71, - 0x443b0e21, 0x93b392e6, 0x4435bd21, 0x93b0399e, 0x44306bf6, 0x93ace099, - 0x442b1aa2, 0x93a987d6, - 0x4425c923, 0x93a62f57, 0x4420777b, 0x93a2d71a, 0x441b25a8, 0x939f7f20, - 0x4415d3ab, 0x939c2769, - 0x44108184, 0x9398cff5, 0x440b2f34, 0x939578c3, 0x4405dcb9, 0x939221d5, - 0x44008a14, 0x938ecb29, - 0x43fb3746, 0x938b74c1, 0x43f5e44d, 0x93881e9b, 0x43f0912b, 0x9384c8b8, - 0x43eb3ddf, 0x93817318, - 0x43e5ea68, 0x937e1dbb, 0x43e096c8, 0x937ac8a1, 0x43db42fe, 0x937773ca, - 0x43d5ef0a, 0x93741f35, - 0x43d09aed, 0x9370cae4, 0x43cb46a5, 0x936d76d6, 0x43c5f234, 0x936a230a, - 0x43c09d99, 0x9366cf82, - 0x43bb48d4, 0x93637c3d, 0x43b5f3e5, 0x9360293a, 0x43b09ecc, 0x935cd67b, - 0x43ab498a, 0x935983ff, - 0x43a5f41e, 0x935631c5, 0x43a09e89, 0x9352dfcf, 0x439b48c9, 0x934f8e1c, - 0x4395f2e0, 0x934c3cab, - 0x43909ccd, 0x9348eb7e, 0x438b4691, 0x93459a94, 0x4385f02a, 0x934249ed, - 0x4380999b, 0x933ef989, - 0x437b42e1, 0x933ba968, 0x4375ebfe, 0x9338598a, 0x437094f1, 0x933509f0, - 0x436b3dbb, 0x9331ba98, - 0x4365e65b, 0x932e6b84, 0x43608ed2, 0x932b1cb2, 0x435b371f, 0x9327ce24, - 0x4355df42, 0x93247fd9, - 0x4350873c, 0x932131d1, 0x434b2f0c, 0x931de40c, 0x4345d6b3, 0x931a968b, - 0x43407e31, 0x9317494c, - 0x433b2585, 0x9313fc51, 0x4335ccaf, 0x9310af99, 0x433073b0, 0x930d6324, - 0x432b1a87, 0x930a16f3, - 0x4325c135, 0x9306cb04, 0x432067ba, 0x93037f59, 0x431b0e15, 0x930033f1, - 0x4315b447, 0x92fce8cc, - 0x43105a50, 0x92f99deb, 0x430b002f, 0x92f6534c, 0x4305a5e5, 0x92f308f1, - 0x43004b71, 0x92efbeda, - 0x42faf0d4, 0x92ec7505, 0x42f5960e, 0x92e92b74, 0x42f03b1e, 0x92e5e226, - 0x42eae005, 0x92e2991c, - 0x42e584c3, 0x92df5054, 0x42e02958, 0x92dc07d0, 0x42dacdc3, 0x92d8bf90, - 0x42d57205, 0x92d57792, - 0x42d0161e, 0x92d22fd9, 0x42caba0e, 0x92cee862, 0x42c55dd4, 0x92cba12f, - 0x42c00172, 0x92c85a3f, - 0x42baa4e6, 0x92c51392, 0x42b54831, 0x92c1cd29, 0x42afeb53, 0x92be8703, - 0x42aa8e4b, 0x92bb4121, - 0x42a5311b, 0x92b7fb82, 0x429fd3c1, 0x92b4b626, 0x429a763f, 0x92b1710e, - 0x42951893, 0x92ae2c3a, - 0x428fbabe, 0x92aae7a8, 0x428a5cc0, 0x92a7a35a, 0x4284fe99, 0x92a45f50, - 0x427fa049, 0x92a11b89, - 0x427a41d0, 0x929dd806, 0x4274e32e, 0x929a94c6, 0x426f8463, 0x929751c9, - 0x426a256f, 0x92940f10, - 0x4264c653, 0x9290cc9b, 0x425f670d, 0x928d8a69, 0x425a079e, 0x928a487a, - 0x4254a806, 0x928706cf, - 0x424f4845, 0x9283c568, 0x4249e85c, 0x92808444, 0x42448849, 0x927d4363, - 0x423f280e, 0x927a02c7, - 0x4239c7aa, 0x9276c26d, 0x4234671d, 0x92738258, 0x422f0667, 0x92704286, - 0x4229a588, 0x926d02f7, - 0x42244481, 0x9269c3ac, 0x421ee350, 0x926684a5, 0x421981f7, 0x926345e1, - 0x42142075, 0x92600761, - 0x420ebecb, 0x925cc924, 0x42095cf7, 0x92598b2b, 0x4203fafb, 0x92564d76, - 0x41fe98d6, 0x92531005, - 0x41f93689, 0x924fd2d7, 0x41f3d413, 0x924c95ec, 0x41ee7174, 0x92495946, - 0x41e90eac, 0x92461ce3, - 0x41e3abbc, 0x9242e0c4, 0x41de48a3, 0x923fa4e8, 0x41d8e561, 0x923c6950, - 0x41d381f7, 0x92392dfc, - 0x41ce1e65, 0x9235f2ec, 0x41c8baa9, 0x9232b81f, 0x41c356c5, 0x922f7d96, - 0x41bdf2b9, 0x922c4351, - 0x41b88e84, 0x9229094f, 0x41b32a26, 0x9225cf91, 0x41adc5a0, 0x92229617, - 0x41a860f1, 0x921f5ce1, - 0x41a2fc1a, 0x921c23ef, 0x419d971b, 0x9218eb40, 0x419831f3, 0x9215b2d5, - 0x4192cca2, 0x92127aae, - 0x418d6729, 0x920f42cb, 0x41880188, 0x920c0b2c, 0x41829bbe, 0x9208d3d0, - 0x417d35cb, 0x92059cb8, - 0x4177cfb1, 0x920265e4, 0x4172696e, 0x91ff2f54, 0x416d0302, 0x91fbf908, - 0x41679c6f, 0x91f8c300, - 0x416235b2, 0x91f58d3b, 0x415ccece, 0x91f257bb, 0x415767c1, 0x91ef227e, - 0x4152008c, 0x91ebed85, - 0x414c992f, 0x91e8b8d0, 0x414731a9, 0x91e5845f, 0x4141c9fb, 0x91e25032, - 0x413c6225, 0x91df1c49, - 0x4136fa27, 0x91dbe8a4, 0x41319200, 0x91d8b542, 0x412c29b1, 0x91d58225, - 0x4126c13a, 0x91d24f4c, - 0x4121589b, 0x91cf1cb6, 0x411befd3, 0x91cbea65, 0x411686e4, 0x91c8b857, - 0x41111dcc, 0x91c5868e, - 0x410bb48c, 0x91c25508, 0x41064b24, 0x91bf23c7, 0x4100e194, 0x91bbf2c9, - 0x40fb77dc, 0x91b8c210, - 0x40f60dfb, 0x91b5919a, 0x40f0a3f3, 0x91b26169, 0x40eb39c3, 0x91af317c, - 0x40e5cf6a, 0x91ac01d2, - 0x40e064ea, 0x91a8d26d, 0x40dafa41, 0x91a5a34c, 0x40d58f71, 0x91a2746f, - 0x40d02478, 0x919f45d6, - 0x40cab958, 0x919c1781, 0x40c54e0f, 0x9198e970, 0x40bfe29f, 0x9195bba3, - 0x40ba7706, 0x91928e1a, - 0x40b50b46, 0x918f60d6, 0x40af9f5e, 0x918c33d5, 0x40aa334e, 0x91890719, - 0x40a4c716, 0x9185daa1, - 0x409f5ab6, 0x9182ae6d, 0x4099ee2e, 0x917f827d, 0x4094817f, 0x917c56d1, - 0x408f14a7, 0x91792b6a, - 0x4089a7a8, 0x91760047, 0x40843a81, 0x9172d567, 0x407ecd32, 0x916faacc, - 0x40795fbc, 0x916c8076, - 0x4073f21d, 0x91695663, 0x406e8457, 0x91662c95, 0x40691669, 0x9163030b, - 0x4063a854, 0x915fd9c5, - 0x405e3a16, 0x915cb0c3, 0x4058cbb1, 0x91598806, 0x40535d24, 0x91565f8d, - 0x404dee70, 0x91533758, - 0x40487f94, 0x91500f67, 0x40431090, 0x914ce7bb, 0x403da165, 0x9149c053, - 0x40383212, 0x9146992f, - 0x4032c297, 0x91437250, 0x402d52f5, 0x91404bb5, 0x4027e32b, 0x913d255e, - 0x4022733a, 0x9139ff4b, - 0x401d0321, 0x9136d97d, 0x401792e0, 0x9133b3f3, 0x40122278, 0x91308eae, - 0x400cb1e9, 0x912d69ad, - 0x40074132, 0x912a44f0, 0x4001d053, 0x91272078, 0x3ffc5f4d, 0x9123fc44, - 0x3ff6ee1f, 0x9120d854, - 0x3ff17cca, 0x911db4a9, 0x3fec0b4e, 0x911a9142, 0x3fe699aa, 0x91176e1f, - 0x3fe127df, 0x91144b41, - 0x3fdbb5ec, 0x911128a8, 0x3fd643d2, 0x910e0653, 0x3fd0d191, 0x910ae442, - 0x3fcb5f28, 0x9107c276, - 0x3fc5ec98, 0x9104a0ee, 0x3fc079e0, 0x91017faa, 0x3fbb0702, 0x90fe5eab, - 0x3fb593fb, 0x90fb3df1, - 0x3fb020ce, 0x90f81d7b, 0x3faaad79, 0x90f4fd4a, 0x3fa539fd, 0x90f1dd5d, - 0x3f9fc65a, 0x90eebdb4, - 0x3f9a5290, 0x90eb9e50, 0x3f94de9e, 0x90e87f31, 0x3f8f6a85, 0x90e56056, - 0x3f89f645, 0x90e241bf, - 0x3f8481dd, 0x90df236e, 0x3f7f0d4f, 0x90dc0560, 0x3f799899, 0x90d8e798, - 0x3f7423bc, 0x90d5ca13, - 0x3f6eaeb8, 0x90d2acd4, 0x3f69398d, 0x90cf8fd9, 0x3f63c43b, 0x90cc7322, - 0x3f5e4ec2, 0x90c956b1, - 0x3f58d921, 0x90c63a83, 0x3f53635a, 0x90c31e9b, 0x3f4ded6b, 0x90c002f7, - 0x3f487755, 0x90bce797, - 0x3f430119, 0x90b9cc7d, 0x3f3d8ab5, 0x90b6b1a6, 0x3f38142a, 0x90b39715, - 0x3f329d79, 0x90b07cc8, - 0x3f2d26a0, 0x90ad62c0, 0x3f27afa1, 0x90aa48fd, 0x3f22387a, 0x90a72f7e, - 0x3f1cc12c, 0x90a41644, - 0x3f1749b8, 0x90a0fd4e, 0x3f11d21d, 0x909de49e, 0x3f0c5a5a, 0x909acc32, - 0x3f06e271, 0x9097b40a, - 0x3f016a61, 0x90949c28, 0x3efbf22a, 0x9091848a, 0x3ef679cc, 0x908e6d31, - 0x3ef10148, 0x908b561c, - 0x3eeb889c, 0x90883f4d, 0x3ee60fca, 0x908528c2, 0x3ee096d1, 0x9082127c, - 0x3edb1db1, 0x907efc7a, - 0x3ed5a46b, 0x907be6be, 0x3ed02afd, 0x9078d146, 0x3ecab169, 0x9075bc13, - 0x3ec537ae, 0x9072a725, - 0x3ebfbdcd, 0x906f927c, 0x3eba43c4, 0x906c7e17, 0x3eb4c995, 0x906969f8, - 0x3eaf4f40, 0x9066561d, - 0x3ea9d4c3, 0x90634287, 0x3ea45a21, 0x90602f35, 0x3e9edf57, 0x905d1c29, - 0x3e996467, 0x905a0962, - 0x3e93e950, 0x9056f6df, 0x3e8e6e12, 0x9053e4a1, 0x3e88f2ae, 0x9050d2a9, - 0x3e837724, 0x904dc0f5, - 0x3e7dfb73, 0x904aaf86, 0x3e787f9b, 0x90479e5c, 0x3e73039d, 0x90448d76, - 0x3e6d8778, 0x90417cd6, - 0x3e680b2c, 0x903e6c7b, 0x3e628ebb, 0x903b5c64, 0x3e5d1222, 0x90384c93, - 0x3e579564, 0x90353d06, - 0x3e52187f, 0x90322dbf, 0x3e4c9b73, 0x902f1ebc, 0x3e471e41, 0x902c0fff, - 0x3e41a0e8, 0x90290186, - 0x3e3c2369, 0x9025f352, 0x3e36a5c4, 0x9022e564, 0x3e3127f9, 0x901fd7ba, - 0x3e2baa07, 0x901cca55, - 0x3e262bee, 0x9019bd36, 0x3e20adaf, 0x9016b05b, 0x3e1b2f4a, 0x9013a3c5, - 0x3e15b0bf, 0x90109775, - 0x3e10320d, 0x900d8b69, 0x3e0ab336, 0x900a7fa3, 0x3e053437, 0x90077422, - 0x3dffb513, 0x900468e5, - 0x3dfa35c8, 0x90015dee, 0x3df4b657, 0x8ffe533c, 0x3def36c0, 0x8ffb48cf, - 0x3de9b703, 0x8ff83ea7, - 0x3de4371f, 0x8ff534c4, 0x3ddeb716, 0x8ff22b26, 0x3dd936e6, 0x8fef21ce, - 0x3dd3b690, 0x8fec18ba, - 0x3dce3614, 0x8fe90fec, 0x3dc8b571, 0x8fe60763, 0x3dc334a9, 0x8fe2ff1f, - 0x3dbdb3ba, 0x8fdff720, - 0x3db832a6, 0x8fdcef66, 0x3db2b16b, 0x8fd9e7f2, 0x3dad300b, 0x8fd6e0c2, - 0x3da7ae84, 0x8fd3d9d8, - 0x3da22cd7, 0x8fd0d333, 0x3d9cab04, 0x8fcdccd3, 0x3d97290b, 0x8fcac6b9, - 0x3d91a6ed, 0x8fc7c0e3, - 0x3d8c24a8, 0x8fc4bb53, 0x3d86a23d, 0x8fc1b608, 0x3d811fac, 0x8fbeb103, - 0x3d7b9cf6, 0x8fbbac42, - 0x3d761a19, 0x8fb8a7c7, 0x3d709717, 0x8fb5a391, 0x3d6b13ee, 0x8fb29fa0, - 0x3d6590a0, 0x8faf9bf5, - 0x3d600d2c, 0x8fac988f, 0x3d5a8992, 0x8fa9956e, 0x3d5505d2, 0x8fa69293, - 0x3d4f81ec, 0x8fa38ffc, - 0x3d49fde1, 0x8fa08dab, 0x3d4479b0, 0x8f9d8ba0, 0x3d3ef559, 0x8f9a89da, - 0x3d3970dc, 0x8f978859, - 0x3d33ec39, 0x8f94871d, 0x3d2e6771, 0x8f918627, 0x3d28e282, 0x8f8e8576, - 0x3d235d6f, 0x8f8b850a, - 0x3d1dd835, 0x8f8884e4, 0x3d1852d6, 0x8f858503, 0x3d12cd51, 0x8f828568, - 0x3d0d47a6, 0x8f7f8612, - 0x3d07c1d6, 0x8f7c8701, 0x3d023be0, 0x8f798836, 0x3cfcb5c4, 0x8f7689b0, - 0x3cf72f83, 0x8f738b70, - 0x3cf1a91c, 0x8f708d75, 0x3cec2290, 0x8f6d8fbf, 0x3ce69bde, 0x8f6a924f, - 0x3ce11507, 0x8f679525, - 0x3cdb8e09, 0x8f649840, 0x3cd606e7, 0x8f619ba0, 0x3cd07f9f, 0x8f5e9f46, - 0x3ccaf831, 0x8f5ba331, - 0x3cc5709e, 0x8f58a761, 0x3cbfe8e5, 0x8f55abd8, 0x3cba6107, 0x8f52b093, - 0x3cb4d904, 0x8f4fb595, - 0x3caf50da, 0x8f4cbadb, 0x3ca9c88c, 0x8f49c067, 0x3ca44018, 0x8f46c639, - 0x3c9eb77f, 0x8f43cc50, - 0x3c992ec0, 0x8f40d2ad, 0x3c93a5dc, 0x8f3dd950, 0x3c8e1cd3, 0x8f3ae038, - 0x3c8893a4, 0x8f37e765, - 0x3c830a50, 0x8f34eed8, 0x3c7d80d6, 0x8f31f691, 0x3c77f737, 0x8f2efe8f, - 0x3c726d73, 0x8f2c06d3, - 0x3c6ce38a, 0x8f290f5c, 0x3c67597b, 0x8f26182b, 0x3c61cf48, 0x8f232140, - 0x3c5c44ee, 0x8f202a9a, - 0x3c56ba70, 0x8f1d343a, 0x3c512fcc, 0x8f1a3e1f, 0x3c4ba504, 0x8f17484b, - 0x3c461a16, 0x8f1452bb, - 0x3c408f03, 0x8f115d72, 0x3c3b03ca, 0x8f0e686e, 0x3c35786d, 0x8f0b73b0, - 0x3c2fecea, 0x8f087f37, - 0x3c2a6142, 0x8f058b04, 0x3c24d575, 0x8f029717, 0x3c1f4983, 0x8effa370, - 0x3c19bd6c, 0x8efcb00e, - 0x3c143130, 0x8ef9bcf2, 0x3c0ea4cf, 0x8ef6ca1c, 0x3c091849, 0x8ef3d78b, - 0x3c038b9e, 0x8ef0e540, - 0x3bfdfecd, 0x8eedf33b, 0x3bf871d8, 0x8eeb017c, 0x3bf2e4be, 0x8ee81002, - 0x3bed577e, 0x8ee51ece, - 0x3be7ca1a, 0x8ee22de0, 0x3be23c91, 0x8edf3d38, 0x3bdcaee3, 0x8edc4cd5, - 0x3bd72110, 0x8ed95cb8, - 0x3bd19318, 0x8ed66ce1, 0x3bcc04fb, 0x8ed37d50, 0x3bc676b9, 0x8ed08e05, - 0x3bc0e853, 0x8ecd9eff, - 0x3bbb59c7, 0x8ecab040, 0x3bb5cb17, 0x8ec7c1c6, 0x3bb03c42, 0x8ec4d392, - 0x3baaad48, 0x8ec1e5a4, - 0x3ba51e29, 0x8ebef7fb, 0x3b9f8ee5, 0x8ebc0a99, 0x3b99ff7d, 0x8eb91d7c, - 0x3b946ff0, 0x8eb630a6, - 0x3b8ee03e, 0x8eb34415, 0x3b895068, 0x8eb057ca, 0x3b83c06c, 0x8ead6bc5, - 0x3b7e304c, 0x8eaa8006, - 0x3b78a007, 0x8ea7948c, 0x3b730f9e, 0x8ea4a959, 0x3b6d7f10, 0x8ea1be6c, - 0x3b67ee5d, 0x8e9ed3c4, - 0x3b625d86, 0x8e9be963, 0x3b5ccc8a, 0x8e98ff47, 0x3b573b69, 0x8e961571, - 0x3b51aa24, 0x8e932be2, - 0x3b4c18ba, 0x8e904298, 0x3b46872c, 0x8e8d5994, 0x3b40f579, 0x8e8a70d7, - 0x3b3b63a1, 0x8e87885f, - 0x3b35d1a5, 0x8e84a02d, 0x3b303f84, 0x8e81b841, 0x3b2aad3f, 0x8e7ed09b, - 0x3b251ad6, 0x8e7be93c, - 0x3b1f8848, 0x8e790222, 0x3b19f595, 0x8e761b4e, 0x3b1462be, 0x8e7334c1, - 0x3b0ecfc3, 0x8e704e79, - 0x3b093ca3, 0x8e6d6877, 0x3b03a95e, 0x8e6a82bc, 0x3afe15f6, 0x8e679d47, - 0x3af88269, 0x8e64b817, - 0x3af2eeb7, 0x8e61d32e, 0x3aed5ae1, 0x8e5eee8b, 0x3ae7c6e7, 0x8e5c0a2e, - 0x3ae232c9, 0x8e592617, - 0x3adc9e86, 0x8e564246, 0x3ad70a1f, 0x8e535ebb, 0x3ad17593, 0x8e507b76, - 0x3acbe0e3, 0x8e4d9878, - 0x3ac64c0f, 0x8e4ab5bf, 0x3ac0b717, 0x8e47d34d, 0x3abb21fb, 0x8e44f121, - 0x3ab58cba, 0x8e420f3b, - 0x3aaff755, 0x8e3f2d9b, 0x3aaa61cc, 0x8e3c4c41, 0x3aa4cc1e, 0x8e396b2e, - 0x3a9f364d, 0x8e368a61, - 0x3a99a057, 0x8e33a9da, 0x3a940a3e, 0x8e30c999, 0x3a8e7400, 0x8e2de99e, - 0x3a88dd9d, 0x8e2b09e9, - 0x3a834717, 0x8e282a7b, 0x3a7db06d, 0x8e254b53, 0x3a78199f, 0x8e226c71, - 0x3a7282ac, 0x8e1f8dd6, - 0x3a6ceb96, 0x8e1caf80, 0x3a67545b, 0x8e19d171, 0x3a61bcfd, 0x8e16f3a9, - 0x3a5c257a, 0x8e141626, - 0x3a568dd4, 0x8e1138ea, 0x3a50f609, 0x8e0e5bf4, 0x3a4b5e1b, 0x8e0b7f44, - 0x3a45c608, 0x8e08a2db, - 0x3a402dd2, 0x8e05c6b7, 0x3a3a9577, 0x8e02eadb, 0x3a34fcf9, 0x8e000f44, - 0x3a2f6457, 0x8dfd33f4, - 0x3a29cb91, 0x8dfa58ea, 0x3a2432a7, 0x8df77e27, 0x3a1e9999, 0x8df4a3a9, - 0x3a190068, 0x8df1c973, - 0x3a136712, 0x8deeef82, 0x3a0dcd99, 0x8dec15d8, 0x3a0833fc, 0x8de93c74, - 0x3a029a3b, 0x8de66357, - 0x39fd0056, 0x8de38a80, 0x39f7664e, 0x8de0b1ef, 0x39f1cc21, 0x8dddd9a5, - 0x39ec31d1, 0x8ddb01a1, - 0x39e6975e, 0x8dd829e4, 0x39e0fcc6, 0x8dd5526d, 0x39db620b, 0x8dd27b3c, - 0x39d5c72c, 0x8dcfa452, - 0x39d02c2a, 0x8dcccdaf, 0x39ca9104, 0x8dc9f751, 0x39c4f5ba, 0x8dc7213b, - 0x39bf5a4d, 0x8dc44b6a, - 0x39b9bebc, 0x8dc175e0, 0x39b42307, 0x8dbea09d, 0x39ae872f, 0x8dbbcba0, - 0x39a8eb33, 0x8db8f6ea, - 0x39a34f13, 0x8db6227a, 0x399db2d0, 0x8db34e50, 0x3998166a, 0x8db07a6d, - 0x399279e0, 0x8dada6d1, - 0x398cdd32, 0x8daad37b, 0x39874061, 0x8da8006c, 0x3981a36d, 0x8da52da3, - 0x397c0655, 0x8da25b21, - 0x39766919, 0x8d9f88e5, 0x3970cbba, 0x8d9cb6f0, 0x396b2e38, 0x8d99e541, - 0x39659092, 0x8d9713d9, - 0x395ff2c9, 0x8d9442b8, 0x395a54dd, 0x8d9171dd, 0x3954b6cd, 0x8d8ea148, - 0x394f1899, 0x8d8bd0fb, - 0x39497a43, 0x8d8900f3, 0x3943dbc9, 0x8d863133, 0x393e3d2c, 0x8d8361b9, - 0x39389e6b, 0x8d809286, - 0x3932ff87, 0x8d7dc399, 0x392d6080, 0x8d7af4f3, 0x3927c155, 0x8d782694, - 0x39222208, 0x8d75587b, - 0x391c8297, 0x8d728aa9, 0x3916e303, 0x8d6fbd1d, 0x3911434b, 0x8d6cefd9, - 0x390ba371, 0x8d6a22db, - 0x39060373, 0x8d675623, 0x39006352, 0x8d6489b3, 0x38fac30e, 0x8d61bd89, - 0x38f522a6, 0x8d5ef1a5, - 0x38ef821c, 0x8d5c2609, 0x38e9e16e, 0x8d595ab3, 0x38e4409e, 0x8d568fa4, - 0x38de9faa, 0x8d53c4db, - 0x38d8fe93, 0x8d50fa59, 0x38d35d59, 0x8d4e301f, 0x38cdbbfc, 0x8d4b662a, - 0x38c81a7c, 0x8d489c7d, - 0x38c278d9, 0x8d45d316, 0x38bcd713, 0x8d4309f6, 0x38b7352a, 0x8d40411d, - 0x38b1931e, 0x8d3d788b, - 0x38abf0ef, 0x8d3ab03f, 0x38a64e9d, 0x8d37e83a, 0x38a0ac29, 0x8d35207d, - 0x389b0991, 0x8d325905, - 0x389566d6, 0x8d2f91d5, 0x388fc3f8, 0x8d2ccaec, 0x388a20f8, 0x8d2a0449, - 0x38847dd5, 0x8d273ded, - 0x387eda8e, 0x8d2477d8, 0x38793725, 0x8d21b20a, 0x38739399, 0x8d1eec83, - 0x386defeb, 0x8d1c2742, - 0x38684c19, 0x8d196249, 0x3862a825, 0x8d169d96, 0x385d040d, 0x8d13d92a, - 0x38575fd4, 0x8d111505, - 0x3851bb77, 0x8d0e5127, 0x384c16f7, 0x8d0b8d90, 0x38467255, 0x8d08ca40, - 0x3840cd90, 0x8d060737, - 0x383b28a9, 0x8d034474, 0x3835839f, 0x8d0081f9, 0x382fde72, 0x8cfdbfc4, - 0x382a3922, 0x8cfafdd7, - 0x382493b0, 0x8cf83c30, 0x381eee1b, 0x8cf57ad0, 0x38194864, 0x8cf2b9b8, - 0x3813a28a, 0x8ceff8e6, - 0x380dfc8d, 0x8ced385b, 0x3808566e, 0x8cea7818, 0x3802b02c, 0x8ce7b81b, - 0x37fd09c8, 0x8ce4f865, - 0x37f76341, 0x8ce238f6, 0x37f1bc97, 0x8cdf79ce, 0x37ec15cb, 0x8cdcbaee, - 0x37e66edd, 0x8cd9fc54, - 0x37e0c7cc, 0x8cd73e01, 0x37db2099, 0x8cd47ff6, 0x37d57943, 0x8cd1c231, - 0x37cfd1cb, 0x8ccf04b3, - 0x37ca2a30, 0x8ccc477d, 0x37c48273, 0x8cc98a8e, 0x37beda93, 0x8cc6cde5, - 0x37b93292, 0x8cc41184, - 0x37b38a6d, 0x8cc1556a, 0x37ade227, 0x8cbe9996, 0x37a839be, 0x8cbbde0a, - 0x37a29132, 0x8cb922c6, - 0x379ce885, 0x8cb667c8, 0x37973fb5, 0x8cb3ad11, 0x379196c3, 0x8cb0f2a1, - 0x378bedae, 0x8cae3879, - 0x37864477, 0x8cab7e98, 0x37809b1e, 0x8ca8c4fd, 0x377af1a3, 0x8ca60baa, - 0x37754806, 0x8ca3529f, - 0x376f9e46, 0x8ca099da, 0x3769f464, 0x8c9de15c, 0x37644a60, 0x8c9b2926, - 0x375ea03a, 0x8c987137, - 0x3758f5f2, 0x8c95b98f, 0x37534b87, 0x8c93022e, 0x374da0fa, 0x8c904b14, - 0x3747f64c, 0x8c8d9442, - 0x37424b7b, 0x8c8addb7, 0x373ca088, 0x8c882773, 0x3736f573, 0x8c857176, - 0x37314a3c, 0x8c82bbc0, - 0x372b9ee3, 0x8c800652, 0x3725f367, 0x8c7d512b, 0x372047ca, 0x8c7a9c4b, - 0x371a9c0b, 0x8c77e7b3, - 0x3714f02a, 0x8c753362, 0x370f4427, 0x8c727f58, 0x37099802, 0x8c6fcb95, - 0x3703ebbb, 0x8c6d181a, - 0x36fe3f52, 0x8c6a64e5, 0x36f892c7, 0x8c67b1f9, 0x36f2e61a, 0x8c64ff53, - 0x36ed394b, 0x8c624cf5, - 0x36e78c5b, 0x8c5f9ade, 0x36e1df48, 0x8c5ce90e, 0x36dc3214, 0x8c5a3786, - 0x36d684be, 0x8c578645, - 0x36d0d746, 0x8c54d54c, 0x36cb29ac, 0x8c522499, 0x36c57bf0, 0x8c4f742f, - 0x36bfce13, 0x8c4cc40b, - 0x36ba2014, 0x8c4a142f, 0x36b471f3, 0x8c47649a, 0x36aec3b0, 0x8c44b54d, - 0x36a9154c, 0x8c420647, - 0x36a366c6, 0x8c3f5788, 0x369db81e, 0x8c3ca911, 0x36980954, 0x8c39fae1, - 0x36925a69, 0x8c374cf9, - 0x368cab5c, 0x8c349f58, 0x3686fc2e, 0x8c31f1ff, 0x36814cde, 0x8c2f44ed, - 0x367b9d6c, 0x8c2c9822, - 0x3675edd9, 0x8c29eb9f, 0x36703e24, 0x8c273f63, 0x366a8e4d, 0x8c24936f, - 0x3664de55, 0x8c21e7c2, - 0x365f2e3b, 0x8c1f3c5d, 0x36597e00, 0x8c1c913f, 0x3653cda3, 0x8c19e669, - 0x364e1d25, 0x8c173bda, - 0x36486c86, 0x8c149192, 0x3642bbc4, 0x8c11e792, 0x363d0ae2, 0x8c0f3dda, - 0x363759de, 0x8c0c9469, - 0x3631a8b8, 0x8c09eb40, 0x362bf771, 0x8c07425e, 0x36264609, 0x8c0499c4, - 0x3620947f, 0x8c01f171, - 0x361ae2d3, 0x8bff4966, 0x36153107, 0x8bfca1a3, 0x360f7f19, 0x8bf9fa27, - 0x3609cd0a, 0x8bf752f2, - 0x36041ad9, 0x8bf4ac05, 0x35fe6887, 0x8bf20560, 0x35f8b614, 0x8bef5f02, - 0x35f3037f, 0x8becb8ec, - 0x35ed50c9, 0x8bea131e, 0x35e79df2, 0x8be76d97, 0x35e1eafa, 0x8be4c857, - 0x35dc37e0, 0x8be22360, - 0x35d684a6, 0x8bdf7eb0, 0x35d0d14a, 0x8bdcda47, 0x35cb1dcc, 0x8bda3626, - 0x35c56a2e, 0x8bd7924d, - 0x35bfb66e, 0x8bd4eebc, 0x35ba028e, 0x8bd24b72, 0x35b44e8c, 0x8bcfa870, - 0x35ae9a69, 0x8bcd05b5, - 0x35a8e625, 0x8bca6343, 0x35a331c0, 0x8bc7c117, 0x359d7d39, 0x8bc51f34, - 0x3597c892, 0x8bc27d98, - 0x359213c9, 0x8bbfdc44, 0x358c5ee0, 0x8bbd3b38, 0x3586a9d5, 0x8bba9a73, - 0x3580f4aa, 0x8bb7f9f6, - 0x357b3f5d, 0x8bb559c1, 0x357589f0, 0x8bb2b9d4, 0x356fd461, 0x8bb01a2e, - 0x356a1eb2, 0x8bad7ad0, - 0x356468e2, 0x8baadbba, 0x355eb2f0, 0x8ba83cec, 0x3558fcde, 0x8ba59e65, - 0x355346ab, 0x8ba30026, - 0x354d9057, 0x8ba0622f, 0x3547d9e2, 0x8b9dc480, 0x3542234c, 0x8b9b2718, - 0x353c6c95, 0x8b9889f8, - 0x3536b5be, 0x8b95ed21, 0x3530fec6, 0x8b935090, 0x352b47ad, 0x8b90b448, - 0x35259073, 0x8b8e1848, - 0x351fd918, 0x8b8b7c8f, 0x351a219c, 0x8b88e11e, 0x35146a00, 0x8b8645f5, - 0x350eb243, 0x8b83ab14, - 0x3508fa66, 0x8b81107b, 0x35034267, 0x8b7e7629, 0x34fd8a48, 0x8b7bdc20, - 0x34f7d208, 0x8b79425e, - 0x34f219a8, 0x8b76a8e4, 0x34ec6127, 0x8b740fb3, 0x34e6a885, 0x8b7176c8, - 0x34e0efc2, 0x8b6ede26, - 0x34db36df, 0x8b6c45cc, 0x34d57ddc, 0x8b69adba, 0x34cfc4b7, 0x8b6715ef, - 0x34ca0b73, 0x8b647e6d, - 0x34c4520d, 0x8b61e733, 0x34be9887, 0x8b5f5040, 0x34b8dee1, 0x8b5cb995, - 0x34b3251a, 0x8b5a2333, - 0x34ad6b32, 0x8b578d18, 0x34a7b12a, 0x8b54f745, 0x34a1f702, 0x8b5261ba, - 0x349c3cb9, 0x8b4fcc77, - 0x34968250, 0x8b4d377c, 0x3490c7c6, 0x8b4aa2ca, 0x348b0d1c, 0x8b480e5f, - 0x34855251, 0x8b457a3c, - 0x347f9766, 0x8b42e661, 0x3479dc5b, 0x8b4052ce, 0x3474212f, 0x8b3dbf83, - 0x346e65e3, 0x8b3b2c80, - 0x3468aa76, 0x8b3899c6, 0x3462eee9, 0x8b360753, 0x345d333c, 0x8b337528, - 0x3457776f, 0x8b30e345, - 0x3451bb81, 0x8b2e51ab, 0x344bff73, 0x8b2bc058, 0x34464345, 0x8b292f4e, - 0x344086f6, 0x8b269e8b, - 0x343aca87, 0x8b240e11, 0x34350df8, 0x8b217ddf, 0x342f5149, 0x8b1eedf4, - 0x3429947a, 0x8b1c5e52, - 0x3423d78a, 0x8b19cef8, 0x341e1a7b, 0x8b173fe6, 0x34185d4b, 0x8b14b11d, - 0x34129ffb, 0x8b12229b, - 0x340ce28b, 0x8b0f9462, 0x340724fb, 0x8b0d0670, 0x3401674a, 0x8b0a78c7, - 0x33fba97a, 0x8b07eb66, - 0x33f5eb89, 0x8b055e4d, 0x33f02d79, 0x8b02d17c, 0x33ea6f48, 0x8b0044f3, - 0x33e4b0f8, 0x8afdb8b3, - 0x33def287, 0x8afb2cbb, 0x33d933f7, 0x8af8a10b, 0x33d37546, 0x8af615a3, - 0x33cdb676, 0x8af38a83, - 0x33c7f785, 0x8af0ffac, 0x33c23875, 0x8aee751c, 0x33bc7944, 0x8aebead5, - 0x33b6b9f4, 0x8ae960d6, - 0x33b0fa84, 0x8ae6d720, 0x33ab3af4, 0x8ae44db1, 0x33a57b44, 0x8ae1c48b, - 0x339fbb74, 0x8adf3bad, - 0x3399fb85, 0x8adcb318, 0x33943b75, 0x8ada2aca, 0x338e7b46, 0x8ad7a2c5, - 0x3388baf7, 0x8ad51b08, - 0x3382fa88, 0x8ad29394, 0x337d39f9, 0x8ad00c67, 0x3377794b, 0x8acd8583, - 0x3371b87d, 0x8acafee8, - 0x336bf78f, 0x8ac87894, 0x33663682, 0x8ac5f289, 0x33607554, 0x8ac36cc6, - 0x335ab407, 0x8ac0e74c, - 0x3354f29b, 0x8abe6219, 0x334f310e, 0x8abbdd30, 0x33496f62, 0x8ab9588e, - 0x3343ad97, 0x8ab6d435, - 0x333debab, 0x8ab45024, 0x333829a1, 0x8ab1cc5c, 0x33326776, 0x8aaf48db, - 0x332ca52c, 0x8aacc5a4, - 0x3326e2c3, 0x8aaa42b4, 0x33212039, 0x8aa7c00d, 0x331b5d91, 0x8aa53daf, - 0x33159ac8, 0x8aa2bb99, - 0x330fd7e1, 0x8aa039cb, 0x330a14da, 0x8a9db845, 0x330451b3, 0x8a9b3708, - 0x32fe8e6d, 0x8a98b614, - 0x32f8cb07, 0x8a963567, 0x32f30782, 0x8a93b504, 0x32ed43de, 0x8a9134e8, - 0x32e7801a, 0x8a8eb516, - 0x32e1bc36, 0x8a8c358b, 0x32dbf834, 0x8a89b649, 0x32d63412, 0x8a873750, - 0x32d06fd0, 0x8a84b89e, - 0x32caab6f, 0x8a823a36, 0x32c4e6ef, 0x8a7fbc16, 0x32bf2250, 0x8a7d3e3e, - 0x32b95d91, 0x8a7ac0af, - 0x32b398b3, 0x8a784368, 0x32add3b6, 0x8a75c66a, 0x32a80e99, 0x8a7349b4, - 0x32a2495d, 0x8a70cd47, - 0x329c8402, 0x8a6e5123, 0x3296be88, 0x8a6bd547, 0x3290f8ef, 0x8a6959b3, - 0x328b3336, 0x8a66de68, - 0x32856d5e, 0x8a646365, 0x327fa767, 0x8a61e8ab, 0x3279e151, 0x8a5f6e3a, - 0x32741b1c, 0x8a5cf411, - 0x326e54c7, 0x8a5a7a31, 0x32688e54, 0x8a580099, 0x3262c7c1, 0x8a55874a, - 0x325d0110, 0x8a530e43, - 0x32573a3f, 0x8a509585, 0x3251734f, 0x8a4e1d10, 0x324bac40, 0x8a4ba4e3, - 0x3245e512, 0x8a492cff, - 0x32401dc6, 0x8a46b564, 0x323a565a, 0x8a443e11, 0x32348ecf, 0x8a41c706, - 0x322ec725, 0x8a3f5045, - 0x3228ff5c, 0x8a3cd9cc, 0x32233775, 0x8a3a639b, 0x321d6f6e, 0x8a37edb3, - 0x3217a748, 0x8a357814, - 0x3211df04, 0x8a3302be, 0x320c16a1, 0x8a308db0, 0x32064e1e, 0x8a2e18eb, - 0x3200857d, 0x8a2ba46e, - 0x31fabcbd, 0x8a29303b, 0x31f4f3df, 0x8a26bc50, 0x31ef2ae1, 0x8a2448ad, - 0x31e961c5, 0x8a21d554, - 0x31e39889, 0x8a1f6243, 0x31ddcf30, 0x8a1cef7a, 0x31d805b7, 0x8a1a7cfb, - 0x31d23c1f, 0x8a180ac4, - 0x31cc7269, 0x8a1598d6, 0x31c6a894, 0x8a132731, 0x31c0dea1, 0x8a10b5d4, - 0x31bb148f, 0x8a0e44c0, - 0x31b54a5e, 0x8a0bd3f5, 0x31af800e, 0x8a096373, 0x31a9b5a0, 0x8a06f339, - 0x31a3eb13, 0x8a048348, - 0x319e2067, 0x8a0213a0, 0x3198559d, 0x89ffa441, 0x31928ab4, 0x89fd352b, - 0x318cbfad, 0x89fac65d, - 0x3186f487, 0x89f857d8, 0x31812943, 0x89f5e99c, 0x317b5de0, 0x89f37ba9, - 0x3175925e, 0x89f10dff, - 0x316fc6be, 0x89eea09d, 0x3169fb00, 0x89ec3384, 0x31642f23, 0x89e9c6b4, - 0x315e6328, 0x89e75a2d, - 0x3158970e, 0x89e4edef, 0x3152cad5, 0x89e281fa, 0x314cfe7f, 0x89e0164d, - 0x31473209, 0x89ddaae9, - 0x31416576, 0x89db3fcf, 0x313b98c4, 0x89d8d4fd, 0x3135cbf4, 0x89d66a74, - 0x312fff05, 0x89d40033, - 0x312a31f8, 0x89d1963c, 0x312464cd, 0x89cf2c8e, 0x311e9783, 0x89ccc328, - 0x3118ca1b, 0x89ca5a0c, - 0x3112fc95, 0x89c7f138, 0x310d2ef0, 0x89c588ae, 0x3107612e, 0x89c3206c, - 0x3101934d, 0x89c0b873, - 0x30fbc54d, 0x89be50c3, 0x30f5f730, 0x89bbe95c, 0x30f028f4, 0x89b9823e, - 0x30ea5a9a, 0x89b71b69, - 0x30e48c22, 0x89b4b4dd, 0x30debd8c, 0x89b24e9a, 0x30d8eed8, 0x89afe8a0, - 0x30d32006, 0x89ad82ef, - 0x30cd5115, 0x89ab1d87, 0x30c78206, 0x89a8b868, 0x30c1b2da, 0x89a65391, - 0x30bbe38f, 0x89a3ef04, - 0x30b61426, 0x89a18ac0, 0x30b0449f, 0x899f26c5, 0x30aa74fa, 0x899cc313, - 0x30a4a537, 0x899a5faa, - 0x309ed556, 0x8997fc8a, 0x30990557, 0x899599b3, 0x3093353a, 0x89933725, - 0x308d64ff, 0x8990d4e0, - 0x308794a6, 0x898e72e4, 0x3081c42f, 0x898c1131, 0x307bf39b, 0x8989afc8, - 0x307622e8, 0x89874ea7, - 0x30705217, 0x8984edcf, 0x306a8129, 0x89828d41, 0x3064b01d, 0x89802cfc, - 0x305edef3, 0x897dccff, - 0x30590dab, 0x897b6d4c, 0x30533c45, 0x89790de2, 0x304d6ac1, 0x8976aec1, - 0x30479920, 0x89744fe9, - 0x3041c761, 0x8971f15a, 0x303bf584, 0x896f9315, 0x30362389, 0x896d3518, - 0x30305171, 0x896ad765, - 0x302a7f3a, 0x896879fb, 0x3024ace6, 0x89661cda, 0x301eda75, 0x8963c002, - 0x301907e6, 0x89616373, - 0x30133539, 0x895f072e, 0x300d626e, 0x895cab31, 0x30078f86, 0x895a4f7e, - 0x3001bc80, 0x8957f414, - 0x2ffbe95d, 0x895598f3, 0x2ff6161c, 0x89533e1c, 0x2ff042bd, 0x8950e38e, - 0x2fea6f41, 0x894e8948, - 0x2fe49ba7, 0x894c2f4c, 0x2fdec7f0, 0x8949d59a, 0x2fd8f41b, 0x89477c30, - 0x2fd32028, 0x89452310, - 0x2fcd4c19, 0x8942ca39, 0x2fc777eb, 0x894071ab, 0x2fc1a3a0, 0x893e1967, - 0x2fbbcf38, 0x893bc16b, - 0x2fb5fab2, 0x893969b9, 0x2fb0260f, 0x89371250, 0x2faa514f, 0x8934bb31, - 0x2fa47c71, 0x8932645b, - 0x2f9ea775, 0x89300dce, 0x2f98d25d, 0x892db78a, 0x2f92fd26, 0x892b6190, - 0x2f8d27d3, 0x89290bdf, - 0x2f875262, 0x8926b677, 0x2f817cd4, 0x89246159, 0x2f7ba729, 0x89220c84, - 0x2f75d160, 0x891fb7f8, - 0x2f6ffb7a, 0x891d63b5, 0x2f6a2577, 0x891b0fbc, 0x2f644f56, 0x8918bc0c, - 0x2f5e7919, 0x891668a6, - 0x2f58a2be, 0x89141589, 0x2f52cc46, 0x8911c2b5, 0x2f4cf5b0, 0x890f702b, - 0x2f471efe, 0x890d1dea, - 0x2f41482e, 0x890acbf2, 0x2f3b7141, 0x89087a44, 0x2f359a37, 0x890628df, - 0x2f2fc310, 0x8903d7c4, - 0x2f29ebcc, 0x890186f2, 0x2f24146b, 0x88ff3669, 0x2f1e3ced, 0x88fce62a, - 0x2f186551, 0x88fa9634, - 0x2f128d99, 0x88f84687, 0x2f0cb5c3, 0x88f5f724, 0x2f06ddd1, 0x88f3a80b, - 0x2f0105c1, 0x88f1593b, - 0x2efb2d95, 0x88ef0ab4, 0x2ef5554b, 0x88ecbc77, 0x2eef7ce5, 0x88ea6e83, - 0x2ee9a461, 0x88e820d9, - 0x2ee3cbc1, 0x88e5d378, 0x2eddf304, 0x88e38660, 0x2ed81a29, 0x88e13992, - 0x2ed24132, 0x88deed0e, - 0x2ecc681e, 0x88dca0d3, 0x2ec68eed, 0x88da54e1, 0x2ec0b5a0, 0x88d8093a, - 0x2ebadc35, 0x88d5bddb, - 0x2eb502ae, 0x88d372c6, 0x2eaf290a, 0x88d127fb, 0x2ea94f49, 0x88cedd79, - 0x2ea3756b, 0x88cc9340, - 0x2e9d9b70, 0x88ca4951, 0x2e97c159, 0x88c7ffac, 0x2e91e725, 0x88c5b650, - 0x2e8c0cd4, 0x88c36d3e, - 0x2e863267, 0x88c12475, 0x2e8057dd, 0x88bedbf6, 0x2e7a7d36, 0x88bc93c0, - 0x2e74a272, 0x88ba4bd4, - 0x2e6ec792, 0x88b80432, 0x2e68ec95, 0x88b5bcd9, 0x2e63117c, 0x88b375ca, - 0x2e5d3646, 0x88b12f04, - 0x2e575af3, 0x88aee888, 0x2e517f84, 0x88aca255, 0x2e4ba3f8, 0x88aa5c6c, - 0x2e45c850, 0x88a816cd, - 0x2e3fec8b, 0x88a5d177, 0x2e3a10aa, 0x88a38c6b, 0x2e3434ac, 0x88a147a9, - 0x2e2e5891, 0x889f0330, - 0x2e287c5a, 0x889cbf01, 0x2e22a007, 0x889a7b1b, 0x2e1cc397, 0x88983780, - 0x2e16e70b, 0x8895f42d, - 0x2e110a62, 0x8893b125, 0x2e0b2d9d, 0x88916e66, 0x2e0550bb, 0x888f2bf1, - 0x2dff73bd, 0x888ce9c5, - 0x2df996a3, 0x888aa7e3, 0x2df3b96c, 0x8888664b, 0x2deddc19, 0x888624fd, - 0x2de7feaa, 0x8883e3f8, - 0x2de2211e, 0x8881a33d, 0x2ddc4376, 0x887f62cb, 0x2dd665b2, 0x887d22a4, - 0x2dd087d1, 0x887ae2c6, - 0x2dcaa9d5, 0x8878a332, 0x2dc4cbbc, 0x887663e7, 0x2dbeed86, 0x887424e7, - 0x2db90f35, 0x8871e630, - 0x2db330c7, 0x886fa7c2, 0x2dad523d, 0x886d699f, 0x2da77397, 0x886b2bc5, - 0x2da194d5, 0x8868ee35, - 0x2d9bb5f6, 0x8866b0ef, 0x2d95d6fc, 0x886473f2, 0x2d8ff7e5, 0x88623740, - 0x2d8a18b3, 0x885ffad7, - 0x2d843964, 0x885dbeb8, 0x2d7e59f9, 0x885b82e3, 0x2d787a72, 0x88594757, - 0x2d729acf, 0x88570c16, - 0x2d6cbb10, 0x8854d11e, 0x2d66db35, 0x88529670, 0x2d60fb3e, 0x88505c0b, - 0x2d5b1b2b, 0x884e21f1, - 0x2d553afc, 0x884be821, 0x2d4f5ab1, 0x8849ae9a, 0x2d497a4a, 0x8847755d, - 0x2d4399c7, 0x88453c6a, - 0x2d3db928, 0x884303c1, 0x2d37d86d, 0x8840cb61, 0x2d31f797, 0x883e934c, - 0x2d2c16a4, 0x883c5b81, - 0x2d263596, 0x883a23ff, 0x2d20546b, 0x8837ecc7, 0x2d1a7325, 0x8835b5d9, - 0x2d1491c4, 0x88337f35, - 0x2d0eb046, 0x883148db, 0x2d08ceac, 0x882f12cb, 0x2d02ecf7, 0x882cdd04, - 0x2cfd0b26, 0x882aa788, - 0x2cf72939, 0x88287256, 0x2cf14731, 0x88263d6d, 0x2ceb650d, 0x882408ce, - 0x2ce582cd, 0x8821d47a, - 0x2cdfa071, 0x881fa06f, 0x2cd9bdfa, 0x881d6cae, 0x2cd3db67, 0x881b3937, - 0x2ccdf8b8, 0x8819060a, - 0x2cc815ee, 0x8816d327, 0x2cc23308, 0x8814a08f, 0x2cbc5006, 0x88126e40, - 0x2cb66ce9, 0x88103c3b, - 0x2cb089b1, 0x880e0a7f, 0x2caaa65c, 0x880bd90e, 0x2ca4c2ed, 0x8809a7e7, - 0x2c9edf61, 0x8807770a, - 0x2c98fbba, 0x88054677, 0x2c9317f8, 0x8803162e, 0x2c8d341a, 0x8800e62f, - 0x2c875021, 0x87feb67a, - 0x2c816c0c, 0x87fc870f, 0x2c7b87dc, 0x87fa57ee, 0x2c75a390, 0x87f82917, - 0x2c6fbf29, 0x87f5fa8b, - 0x2c69daa6, 0x87f3cc48, 0x2c63f609, 0x87f19e4f, 0x2c5e114f, 0x87ef70a0, - 0x2c582c7b, 0x87ed433c, - 0x2c52478a, 0x87eb1621, 0x2c4c627f, 0x87e8e950, 0x2c467d58, 0x87e6bcca, - 0x2c409816, 0x87e4908e, - 0x2c3ab2b9, 0x87e2649b, 0x2c34cd40, 0x87e038f3, 0x2c2ee7ad, 0x87de0d95, - 0x2c2901fd, 0x87dbe281, - 0x2c231c33, 0x87d9b7b7, 0x2c1d364e, 0x87d78d38, 0x2c17504d, 0x87d56302, - 0x2c116a31, 0x87d33916, - 0x2c0b83fa, 0x87d10f75, 0x2c059da7, 0x87cee61e, 0x2bffb73a, 0x87ccbd11, - 0x2bf9d0b1, 0x87ca944e, - 0x2bf3ea0d, 0x87c86bd5, 0x2bee034e, 0x87c643a6, 0x2be81c74, 0x87c41bc2, - 0x2be2357f, 0x87c1f427, - 0x2bdc4e6f, 0x87bfccd7, 0x2bd66744, 0x87bda5d1, 0x2bd07ffe, 0x87bb7f16, - 0x2bca989d, 0x87b958a4, - 0x2bc4b120, 0x87b7327d, 0x2bbec989, 0x87b50c9f, 0x2bb8e1d7, 0x87b2e70c, - 0x2bb2fa0a, 0x87b0c1c4, - 0x2bad1221, 0x87ae9cc5, 0x2ba72a1e, 0x87ac7811, 0x2ba14200, 0x87aa53a6, - 0x2b9b59c7, 0x87a82f87, - 0x2b957173, 0x87a60bb1, 0x2b8f8905, 0x87a3e825, 0x2b89a07b, 0x87a1c4e4, - 0x2b83b7d7, 0x879fa1ed, - 0x2b7dcf17, 0x879d7f41, 0x2b77e63d, 0x879b5cde, 0x2b71fd48, 0x87993ac6, - 0x2b6c1438, 0x879718f8, - 0x2b662b0e, 0x8794f774, 0x2b6041c9, 0x8792d63b, 0x2b5a5868, 0x8790b54c, - 0x2b546eee, 0x878e94a7, - 0x2b4e8558, 0x878c744d, 0x2b489ba8, 0x878a543d, 0x2b42b1dd, 0x87883477, - 0x2b3cc7f7, 0x878614fb, - 0x2b36ddf7, 0x8783f5ca, 0x2b30f3dc, 0x8781d6e3, 0x2b2b09a6, 0x877fb846, - 0x2b251f56, 0x877d99f4, - 0x2b1f34eb, 0x877b7bec, 0x2b194a66, 0x87795e2f, 0x2b135fc6, 0x877740bb, - 0x2b0d750b, 0x87752392, - 0x2b078a36, 0x877306b4, 0x2b019f46, 0x8770ea20, 0x2afbb43c, 0x876ecdd6, - 0x2af5c917, 0x876cb1d6, - 0x2aefddd8, 0x876a9621, 0x2ae9f27e, 0x87687ab7, 0x2ae4070a, 0x87665f96, - 0x2ade1b7c, 0x876444c1, - 0x2ad82fd2, 0x87622a35, 0x2ad2440f, 0x87600ff4, 0x2acc5831, 0x875df5fd, - 0x2ac66c39, 0x875bdc51, - 0x2ac08026, 0x8759c2ef, 0x2aba93f9, 0x8757a9d8, 0x2ab4a7b1, 0x8755910b, - 0x2aaebb50, 0x87537888, - 0x2aa8ced3, 0x87516050, 0x2aa2e23d, 0x874f4862, 0x2a9cf58c, 0x874d30bf, - 0x2a9708c1, 0x874b1966, - 0x2a911bdc, 0x87490258, 0x2a8b2edc, 0x8746eb94, 0x2a8541c3, 0x8744d51b, - 0x2a7f548e, 0x8742beec, - 0x2a796740, 0x8740a907, 0x2a7379d8, 0x873e936d, 0x2a6d8c55, 0x873c7e1e, - 0x2a679eb8, 0x873a6919, - 0x2a61b101, 0x8738545e, 0x2a5bc330, 0x87363fee, 0x2a55d545, 0x87342bc9, - 0x2a4fe740, 0x873217ee, - 0x2a49f920, 0x8730045d, 0x2a440ae7, 0x872df117, 0x2a3e1c93, 0x872bde1c, - 0x2a382e25, 0x8729cb6b, - 0x2a323f9e, 0x8727b905, 0x2a2c50fc, 0x8725a6e9, 0x2a266240, 0x87239518, - 0x2a20736a, 0x87218391, - 0x2a1a847b, 0x871f7255, 0x2a149571, 0x871d6163, 0x2a0ea64d, 0x871b50bc, - 0x2a08b710, 0x87194060, - 0x2a02c7b8, 0x8717304e, 0x29fcd847, 0x87152087, 0x29f6e8bb, 0x8713110a, - 0x29f0f916, 0x871101d8, - 0x29eb0957, 0x870ef2f1, 0x29e5197e, 0x870ce454, 0x29df298b, 0x870ad602, - 0x29d9397f, 0x8708c7fa, - 0x29d34958, 0x8706ba3d, 0x29cd5918, 0x8704acca, 0x29c768be, 0x87029fa3, - 0x29c1784a, 0x870092c5, - 0x29bb87bc, 0x86fe8633, 0x29b59715, 0x86fc79eb, 0x29afa654, 0x86fa6dee, - 0x29a9b579, 0x86f8623b, - 0x29a3c485, 0x86f656d3, 0x299dd377, 0x86f44bb6, 0x2997e24f, 0x86f240e3, - 0x2991f10e, 0x86f0365c, - 0x298bffb2, 0x86ee2c1e, 0x29860e3e, 0x86ec222c, 0x29801caf, 0x86ea1884, - 0x297a2b07, 0x86e80f27, - 0x29743946, 0x86e60614, 0x296e476b, 0x86e3fd4c, 0x29685576, 0x86e1f4cf, - 0x29626368, 0x86dfec9d, - 0x295c7140, 0x86dde4b5, 0x29567eff, 0x86dbdd18, 0x29508ca4, 0x86d9d5c6, - 0x294a9a30, 0x86d7cebf, - 0x2944a7a2, 0x86d5c802, 0x293eb4fb, 0x86d3c190, 0x2938c23a, 0x86d1bb69, - 0x2932cf60, 0x86cfb58c, - 0x292cdc6d, 0x86cdaffa, 0x2926e960, 0x86cbaab3, 0x2920f63a, 0x86c9a5b7, - 0x291b02fa, 0x86c7a106, - 0x29150fa1, 0x86c59c9f, 0x290f1c2f, 0x86c39883, 0x290928a3, 0x86c194b2, - 0x290334ff, 0x86bf912c, - 0x28fd4140, 0x86bd8df0, 0x28f74d69, 0x86bb8b00, 0x28f15978, 0x86b9885a, - 0x28eb656e, 0x86b785ff, - 0x28e5714b, 0x86b583ee, 0x28df7d0e, 0x86b38229, 0x28d988b8, 0x86b180ae, - 0x28d3944a, 0x86af7f7e, - 0x28cd9fc1, 0x86ad7e99, 0x28c7ab20, 0x86ab7dff, 0x28c1b666, 0x86a97db0, - 0x28bbc192, 0x86a77dab, - 0x28b5cca5, 0x86a57df2, 0x28afd7a0, 0x86a37e83, 0x28a9e281, 0x86a17f5f, - 0x28a3ed49, 0x869f8086, - 0x289df7f8, 0x869d81f8, 0x2898028e, 0x869b83b4, 0x28920d0a, 0x869985bc, - 0x288c176e, 0x8697880f, - 0x288621b9, 0x86958aac, 0x28802beb, 0x86938d94, 0x287a3604, 0x869190c7, - 0x28744004, 0x868f9445, - 0x286e49ea, 0x868d980e, 0x286853b8, 0x868b9c22, 0x28625d6d, 0x8689a081, - 0x285c670a, 0x8687a52b, - 0x2856708d, 0x8685aa20, 0x285079f7, 0x8683af5f, 0x284a8349, 0x8681b4ea, - 0x28448c81, 0x867fbabf, - 0x283e95a1, 0x867dc0e0, 0x28389ea8, 0x867bc74b, 0x2832a796, 0x8679ce01, - 0x282cb06c, 0x8677d503, - 0x2826b928, 0x8675dc4f, 0x2820c1cc, 0x8673e3e6, 0x281aca57, 0x8671ebc8, - 0x2814d2c9, 0x866ff3f6, - 0x280edb23, 0x866dfc6e, 0x2808e364, 0x866c0531, 0x2802eb8c, 0x866a0e3f, - 0x27fcf39c, 0x86681798, - 0x27f6fb92, 0x8666213c, 0x27f10371, 0x86642b2c, 0x27eb0b36, 0x86623566, - 0x27e512e3, 0x86603feb, - 0x27df1a77, 0x865e4abb, 0x27d921f3, 0x865c55d7, 0x27d32956, 0x865a613d, - 0x27cd30a1, 0x86586cee, - 0x27c737d3, 0x865678eb, 0x27c13eec, 0x86548532, 0x27bb45ed, 0x865291c4, - 0x27b54cd6, 0x86509ea2, - 0x27af53a6, 0x864eabcb, 0x27a95a5d, 0x864cb93e, 0x27a360fc, 0x864ac6fd, - 0x279d6783, 0x8648d507, - 0x27976df1, 0x8646e35c, 0x27917447, 0x8644f1fc, 0x278b7a84, 0x864300e7, - 0x278580a9, 0x8641101d, - 0x277f86b5, 0x863f1f9e, 0x27798caa, 0x863d2f6b, 0x27739285, 0x863b3f82, - 0x276d9849, 0x86394fe5, - 0x27679df4, 0x86376092, 0x2761a387, 0x8635718b, 0x275ba901, 0x863382cf, - 0x2755ae64, 0x8631945e, - 0x274fb3ae, 0x862fa638, 0x2749b8e0, 0x862db85e, 0x2743bdf9, 0x862bcace, - 0x273dc2fa, 0x8629dd8a, - 0x2737c7e3, 0x8627f091, 0x2731ccb4, 0x862603e3, 0x272bd16d, 0x86241780, - 0x2725d60e, 0x86222b68, - 0x271fda96, 0x86203f9c, 0x2719df06, 0x861e541a, 0x2713e35f, 0x861c68e4, - 0x270de79f, 0x861a7df9, - 0x2707ebc7, 0x86189359, 0x2701efd7, 0x8616a905, 0x26fbf3ce, 0x8614befb, - 0x26f5f7ae, 0x8612d53d, - 0x26effb76, 0x8610ebca, 0x26e9ff26, 0x860f02a3, 0x26e402bd, 0x860d19c6, - 0x26de063d, 0x860b3135, - 0x26d809a5, 0x860948ef, 0x26d20cf5, 0x860760f4, 0x26cc102d, 0x86057944, - 0x26c6134d, 0x860391e0, - 0x26c01655, 0x8601aac7, 0x26ba1945, 0x85ffc3f9, 0x26b41c1d, 0x85fddd76, - 0x26ae1edd, 0x85fbf73f, - 0x26a82186, 0x85fa1153, 0x26a22416, 0x85f82bb2, 0x269c268f, 0x85f6465c, - 0x269628f0, 0x85f46152, - 0x26902b39, 0x85f27c93, 0x268a2d6b, 0x85f09820, 0x26842f84, 0x85eeb3f7, - 0x267e3186, 0x85ecd01a, - 0x26783370, 0x85eaec88, 0x26723543, 0x85e90942, 0x266c36fe, 0x85e72647, - 0x266638a1, 0x85e54397, - 0x26603a2c, 0x85e36132, 0x265a3b9f, 0x85e17f19, 0x26543cfb, 0x85df9d4b, - 0x264e3e40, 0x85ddbbc9, - 0x26483f6c, 0x85dbda91, 0x26424082, 0x85d9f9a5, 0x263c417f, 0x85d81905, - 0x26364265, 0x85d638b0, - 0x26304333, 0x85d458a6, 0x262a43ea, 0x85d278e7, 0x26244489, 0x85d09974, - 0x261e4511, 0x85ceba4d, - 0x26184581, 0x85ccdb70, 0x261245da, 0x85cafcdf, 0x260c461b, 0x85c91e9a, - 0x26064645, 0x85c740a0, - 0x26004657, 0x85c562f1, 0x25fa4652, 0x85c3858d, 0x25f44635, 0x85c1a875, - 0x25ee4601, 0x85bfcba9, - 0x25e845b6, 0x85bdef28, 0x25e24553, 0x85bc12f2, 0x25dc44d9, 0x85ba3707, - 0x25d64447, 0x85b85b68, - 0x25d0439f, 0x85b68015, 0x25ca42de, 0x85b4a50d, 0x25c44207, 0x85b2ca50, - 0x25be4118, 0x85b0efdf, - 0x25b84012, 0x85af15b9, 0x25b23ef5, 0x85ad3bdf, 0x25ac3dc0, 0x85ab6250, - 0x25a63c74, 0x85a9890d, - 0x25a03b11, 0x85a7b015, 0x259a3997, 0x85a5d768, 0x25943806, 0x85a3ff07, - 0x258e365d, 0x85a226f2, - 0x2588349d, 0x85a04f28, 0x258232c6, 0x859e77a9, 0x257c30d8, 0x859ca076, - 0x25762ed3, 0x859ac98f, - 0x25702cb7, 0x8598f2f3, 0x256a2a83, 0x85971ca2, 0x25642839, 0x8595469d, - 0x255e25d7, 0x859370e4, - 0x2558235f, 0x85919b76, 0x255220cf, 0x858fc653, 0x254c1e28, 0x858df17c, - 0x25461b6b, 0x858c1cf1, - 0x25401896, 0x858a48b1, 0x253a15aa, 0x858874bd, 0x253412a8, 0x8586a114, - 0x252e0f8e, 0x8584cdb7, - 0x25280c5e, 0x8582faa5, 0x25220916, 0x858127df, 0x251c05b8, 0x857f5564, - 0x25160243, 0x857d8335, - 0x250ffeb7, 0x857bb152, 0x2509fb14, 0x8579dfba, 0x2503f75a, 0x85780e6e, - 0x24fdf389, 0x85763d6d, - 0x24f7efa2, 0x85746cb8, 0x24f1eba4, 0x85729c4e, 0x24ebe78f, 0x8570cc30, - 0x24e5e363, 0x856efc5e, - 0x24dfdf20, 0x856d2cd7, 0x24d9dac7, 0x856b5d9c, 0x24d3d657, 0x85698ead, - 0x24cdd1d0, 0x8567c009, - 0x24c7cd33, 0x8565f1b0, 0x24c1c87f, 0x856423a4, 0x24bbc3b4, 0x856255e3, - 0x24b5bed2, 0x8560886d, - 0x24afb9da, 0x855ebb44, 0x24a9b4cb, 0x855cee66, 0x24a3afa6, 0x855b21d3, - 0x249daa6a, 0x8559558c, - 0x2497a517, 0x85578991, 0x24919fae, 0x8555bde2, 0x248b9a2f, 0x8553f27e, - 0x24859498, 0x85522766, - 0x247f8eec, 0x85505c99, 0x24798928, 0x854e9219, 0x2473834f, 0x854cc7e3, - 0x246d7d5e, 0x854afdfa, - 0x24677758, 0x8549345c, 0x2461713a, 0x85476b0a, 0x245b6b07, 0x8545a204, - 0x245564bd, 0x8543d949, - 0x244f5e5c, 0x854210db, 0x244957e5, 0x854048b7, 0x24435158, 0x853e80e0, - 0x243d4ab4, 0x853cb954, - 0x243743fa, 0x853af214, 0x24313d2a, 0x85392b20, 0x242b3644, 0x85376477, - 0x24252f47, 0x85359e1a, - 0x241f2833, 0x8533d809, 0x2419210a, 0x85321244, 0x241319ca, 0x85304cca, - 0x240d1274, 0x852e879d, - 0x24070b08, 0x852cc2bb, 0x24010385, 0x852afe24, 0x23fafbec, 0x852939da, - 0x23f4f43e, 0x852775db, - 0x23eeec78, 0x8525b228, 0x23e8e49d, 0x8523eec1, 0x23e2dcac, 0x85222ba5, - 0x23dcd4a4, 0x852068d6, - 0x23d6cc87, 0x851ea652, 0x23d0c453, 0x851ce41a, 0x23cabc09, 0x851b222e, - 0x23c4b3a9, 0x8519608d, - 0x23beab33, 0x85179f39, 0x23b8a2a7, 0x8515de30, 0x23b29a05, 0x85141d73, - 0x23ac914d, 0x85125d02, - 0x23a6887f, 0x85109cdd, 0x23a07f9a, 0x850edd03, 0x239a76a0, 0x850d1d75, - 0x23946d90, 0x850b5e34, - 0x238e646a, 0x85099f3e, 0x23885b2e, 0x8507e094, 0x238251dd, 0x85062235, - 0x237c4875, 0x85046423, - 0x23763ef7, 0x8502a65c, 0x23703564, 0x8500e8e2, 0x236a2bba, 0x84ff2bb3, - 0x236421fb, 0x84fd6ed0, - 0x235e1826, 0x84fbb239, 0x23580e3b, 0x84f9f5ee, 0x2352043b, 0x84f839ee, - 0x234bfa24, 0x84f67e3b, - 0x2345eff8, 0x84f4c2d4, 0x233fe5b6, 0x84f307b8, 0x2339db5e, 0x84f14ce8, - 0x2333d0f1, 0x84ef9265, - 0x232dc66d, 0x84edd82d, 0x2327bbd5, 0x84ec1e41, 0x2321b126, 0x84ea64a1, - 0x231ba662, 0x84e8ab4d, - 0x23159b88, 0x84e6f244, 0x230f9098, 0x84e53988, 0x23098593, 0x84e38118, - 0x23037a78, 0x84e1c8f3, - 0x22fd6f48, 0x84e0111b, 0x22f76402, 0x84de598f, 0x22f158a7, 0x84dca24e, - 0x22eb4d36, 0x84daeb5a, - 0x22e541af, 0x84d934b1, 0x22df3613, 0x84d77e54, 0x22d92a61, 0x84d5c844, - 0x22d31e9a, 0x84d4127f, - 0x22cd12bd, 0x84d25d06, 0x22c706cb, 0x84d0a7da, 0x22c0fac4, 0x84cef2f9, - 0x22baeea7, 0x84cd3e64, - 0x22b4e274, 0x84cb8a1b, 0x22aed62c, 0x84c9d61f, 0x22a8c9cf, 0x84c8226e, - 0x22a2bd5d, 0x84c66f09, - 0x229cb0d5, 0x84c4bbf0, 0x2296a437, 0x84c30924, 0x22909785, 0x84c156a3, - 0x228a8abd, 0x84bfa46e, - 0x22847de0, 0x84bdf286, 0x227e70ed, 0x84bc40e9, 0x227863e5, 0x84ba8f98, - 0x227256c8, 0x84b8de94, - 0x226c4996, 0x84b72ddb, 0x22663c4e, 0x84b57d6f, 0x22602ef1, 0x84b3cd4f, - 0x225a217f, 0x84b21d7a, - 0x225413f8, 0x84b06df2, 0x224e065c, 0x84aebeb6, 0x2247f8aa, 0x84ad0fc6, - 0x2241eae3, 0x84ab6122, - 0x223bdd08, 0x84a9b2ca, 0x2235cf17, 0x84a804be, 0x222fc111, 0x84a656fe, - 0x2229b2f6, 0x84a4a98a, - 0x2223a4c5, 0x84a2fc62, 0x221d9680, 0x84a14f87, 0x22178826, 0x849fa2f7, - 0x221179b7, 0x849df6b4, - 0x220b6b32, 0x849c4abd, 0x22055c99, 0x849a9f12, 0x21ff4dea, 0x8498f3b3, - 0x21f93f27, 0x849748a0, - 0x21f3304f, 0x84959dd9, 0x21ed2162, 0x8493f35e, 0x21e71260, 0x84924930, - 0x21e10349, 0x84909f4e, - 0x21daf41d, 0x848ef5b7, 0x21d4e4dc, 0x848d4c6d, 0x21ced586, 0x848ba36f, - 0x21c8c61c, 0x8489fabe, - 0x21c2b69c, 0x84885258, 0x21bca708, 0x8486aa3e, 0x21b6975f, 0x84850271, - 0x21b087a1, 0x84835af0, - 0x21aa77cf, 0x8481b3bb, 0x21a467e7, 0x84800cd2, 0x219e57eb, 0x847e6636, - 0x219847da, 0x847cbfe5, - 0x219237b5, 0x847b19e1, 0x218c277a, 0x84797429, 0x2186172b, 0x8477cebd, - 0x218006c8, 0x8476299e, - 0x2179f64f, 0x847484ca, 0x2173e5c2, 0x8472e043, 0x216dd521, 0x84713c08, - 0x2167c46b, 0x846f9819, - 0x2161b3a0, 0x846df477, 0x215ba2c0, 0x846c5120, 0x215591cc, 0x846aae16, - 0x214f80c4, 0x84690b58, - 0x21496fa7, 0x846768e7, 0x21435e75, 0x8465c6c1, 0x213d4d2f, 0x846424e8, - 0x21373bd4, 0x8462835b, - 0x21312a65, 0x8460e21a, 0x212b18e1, 0x845f4126, 0x21250749, 0x845da07e, - 0x211ef59d, 0x845c0022, - 0x2118e3dc, 0x845a6012, 0x2112d206, 0x8458c04f, 0x210cc01d, 0x845720d8, - 0x2106ae1e, 0x845581ad, - 0x21009c0c, 0x8453e2cf, 0x20fa89e5, 0x8452443d, 0x20f477aa, 0x8450a5f7, - 0x20ee655a, 0x844f07fd, - 0x20e852f6, 0x844d6a50, 0x20e2407e, 0x844bccef, 0x20dc2df2, 0x844a2fda, - 0x20d61b51, 0x84489311, - 0x20d0089c, 0x8446f695, 0x20c9f5d3, 0x84455a66, 0x20c3e2f5, 0x8443be82, - 0x20bdd003, 0x844222eb, - 0x20b7bcfe, 0x844087a0, 0x20b1a9e4, 0x843eeca2, 0x20ab96b5, 0x843d51f0, - 0x20a58373, 0x843bb78a, - 0x209f701c, 0x843a1d70, 0x20995cb2, 0x843883a3, 0x20934933, 0x8436ea23, - 0x208d35a0, 0x843550ee, - 0x208721f9, 0x8433b806, 0x20810e3e, 0x84321f6b, 0x207afa6f, 0x8430871b, - 0x2074e68c, 0x842eef18, - 0x206ed295, 0x842d5762, 0x2068be8a, 0x842bbff8, 0x2062aa6b, 0x842a28da, - 0x205c9638, 0x84289209, - 0x205681f1, 0x8426fb84, 0x20506d96, 0x8425654b, 0x204a5927, 0x8423cf5f, - 0x204444a4, 0x842239bf, - 0x203e300d, 0x8420a46c, 0x20381b63, 0x841f0f65, 0x203206a4, 0x841d7aaa, - 0x202bf1d2, 0x841be63c, - 0x2025dcec, 0x841a521a, 0x201fc7f2, 0x8418be45, 0x2019b2e4, 0x84172abc, - 0x20139dc2, 0x84159780, - 0x200d888d, 0x84140490, 0x20077344, 0x841271ec, 0x20015de7, 0x8410df95, - 0x1ffb4876, 0x840f4d8a, - 0x1ff532f2, 0x840dbbcc, 0x1fef1d59, 0x840c2a5a, 0x1fe907ae, 0x840a9935, - 0x1fe2f1ee, 0x8409085c, - 0x1fdcdc1b, 0x840777d0, 0x1fd6c634, 0x8405e790, 0x1fd0b03a, 0x8404579d, - 0x1fca9a2b, 0x8402c7f6, - 0x1fc4840a, 0x8401389b, 0x1fbe6dd4, 0x83ffa98d, 0x1fb8578b, 0x83fe1acc, - 0x1fb2412f, 0x83fc8c57, - 0x1fac2abf, 0x83fafe2e, 0x1fa6143b, 0x83f97052, 0x1f9ffda4, 0x83f7e2c3, - 0x1f99e6fa, 0x83f65580, - 0x1f93d03c, 0x83f4c889, 0x1f8db96a, 0x83f33bdf, 0x1f87a285, 0x83f1af82, - 0x1f818b8d, 0x83f02371, - 0x1f7b7481, 0x83ee97ad, 0x1f755d61, 0x83ed0c35, 0x1f6f462f, 0x83eb810a, - 0x1f692ee9, 0x83e9f62b, - 0x1f63178f, 0x83e86b99, 0x1f5d0022, 0x83e6e153, 0x1f56e8a2, 0x83e5575a, - 0x1f50d10e, 0x83e3cdad, - 0x1f4ab968, 0x83e2444d, 0x1f44a1ad, 0x83e0bb3a, 0x1f3e89e0, 0x83df3273, - 0x1f3871ff, 0x83dda9f9, - 0x1f325a0b, 0x83dc21cb, 0x1f2c4204, 0x83da99ea, 0x1f2629ea, 0x83d91255, - 0x1f2011bc, 0x83d78b0d, - 0x1f19f97b, 0x83d60412, 0x1f13e127, 0x83d47d63, 0x1f0dc8c0, 0x83d2f701, - 0x1f07b045, 0x83d170eb, - 0x1f0197b8, 0x83cfeb22, 0x1efb7f17, 0x83ce65a6, 0x1ef56664, 0x83cce076, - 0x1eef4d9d, 0x83cb5b93, - 0x1ee934c3, 0x83c9d6fc, 0x1ee31bd6, 0x83c852b2, 0x1edd02d6, 0x83c6ceb5, - 0x1ed6e9c3, 0x83c54b04, - 0x1ed0d09d, 0x83c3c7a0, 0x1ecab763, 0x83c24488, 0x1ec49e17, 0x83c0c1be, - 0x1ebe84b8, 0x83bf3f3f, - 0x1eb86b46, 0x83bdbd0e, 0x1eb251c1, 0x83bc3b29, 0x1eac3829, 0x83bab991, - 0x1ea61e7e, 0x83b93845, - 0x1ea004c1, 0x83b7b746, 0x1e99eaf0, 0x83b63694, 0x1e93d10c, 0x83b4b62e, - 0x1e8db716, 0x83b33616, - 0x1e879d0d, 0x83b1b649, 0x1e8182f1, 0x83b036ca, 0x1e7b68c2, 0x83aeb797, - 0x1e754e80, 0x83ad38b1, - 0x1e6f342c, 0x83abba17, 0x1e6919c4, 0x83aa3bca, 0x1e62ff4a, 0x83a8bdca, - 0x1e5ce4be, 0x83a74017, - 0x1e56ca1e, 0x83a5c2b0, 0x1e50af6c, 0x83a44596, 0x1e4a94a7, 0x83a2c8c9, - 0x1e4479cf, 0x83a14c48, - 0x1e3e5ee5, 0x839fd014, 0x1e3843e8, 0x839e542d, 0x1e3228d9, 0x839cd893, - 0x1e2c0db6, 0x839b5d45, - 0x1e25f282, 0x8399e244, 0x1e1fd73a, 0x83986790, 0x1e19bbe0, 0x8396ed29, - 0x1e13a074, 0x8395730e, - 0x1e0d84f5, 0x8393f940, 0x1e076963, 0x83927fbf, 0x1e014dbf, 0x8391068a, - 0x1dfb3208, 0x838f8da2, - 0x1df5163f, 0x838e1507, 0x1deefa63, 0x838c9cb9, 0x1de8de75, 0x838b24b8, - 0x1de2c275, 0x8389ad03, - 0x1ddca662, 0x8388359b, 0x1dd68a3c, 0x8386be80, 0x1dd06e04, 0x838547b2, - 0x1dca51ba, 0x8383d130, - 0x1dc4355e, 0x83825afb, 0x1dbe18ef, 0x8380e513, 0x1db7fc6d, 0x837f6f78, - 0x1db1dfda, 0x837dfa2a, - 0x1dabc334, 0x837c8528, 0x1da5a67c, 0x837b1074, 0x1d9f89b1, 0x83799c0c, - 0x1d996cd4, 0x837827f0, - 0x1d934fe5, 0x8376b422, 0x1d8d32e4, 0x837540a1, 0x1d8715d0, 0x8373cd6c, - 0x1d80f8ab, 0x83725a84, - 0x1d7adb73, 0x8370e7e9, 0x1d74be29, 0x836f759b, 0x1d6ea0cc, 0x836e039a, - 0x1d68835e, 0x836c91e5, - 0x1d6265dd, 0x836b207d, 0x1d5c484b, 0x8369af63, 0x1d562aa6, 0x83683e95, - 0x1d500cef, 0x8366ce14, - 0x1d49ef26, 0x83655ddf, 0x1d43d14b, 0x8363edf8, 0x1d3db35e, 0x83627e5d, - 0x1d37955e, 0x83610f10, - 0x1d31774d, 0x835fa00f, 0x1d2b592a, 0x835e315b, 0x1d253af5, 0x835cc2f4, - 0x1d1f1cae, 0x835b54da, - 0x1d18fe54, 0x8359e70d, 0x1d12dfe9, 0x8358798c, 0x1d0cc16c, 0x83570c59, - 0x1d06a2dd, 0x83559f72, - 0x1d00843d, 0x835432d8, 0x1cfa658a, 0x8352c68c, 0x1cf446c5, 0x83515a8c, - 0x1cee27ef, 0x834feed9, - 0x1ce80906, 0x834e8373, 0x1ce1ea0c, 0x834d185a, 0x1cdbcb00, 0x834bad8e, - 0x1cd5abe3, 0x834a430e, - 0x1ccf8cb3, 0x8348d8dc, 0x1cc96d72, 0x83476ef6, 0x1cc34e1f, 0x8346055e, - 0x1cbd2eba, 0x83449c12, - 0x1cb70f43, 0x83433314, 0x1cb0efbb, 0x8341ca62, 0x1caad021, 0x834061fd, - 0x1ca4b075, 0x833ef9e6, - 0x1c9e90b8, 0x833d921b, 0x1c9870e9, 0x833c2a9d, 0x1c925109, 0x833ac36c, - 0x1c8c3116, 0x83395c88, - 0x1c861113, 0x8337f5f1, 0x1c7ff0fd, 0x83368fa7, 0x1c79d0d6, 0x833529aa, - 0x1c73b09d, 0x8333c3fa, - 0x1c6d9053, 0x83325e97, 0x1c676ff8, 0x8330f981, 0x1c614f8b, 0x832f94b8, - 0x1c5b2f0c, 0x832e303c, - 0x1c550e7c, 0x832ccc0d, 0x1c4eedda, 0x832b682b, 0x1c48cd27, 0x832a0496, - 0x1c42ac62, 0x8328a14d, - 0x1c3c8b8c, 0x83273e52, 0x1c366aa5, 0x8325dba4, 0x1c3049ac, 0x83247943, - 0x1c2a28a2, 0x8323172f, - 0x1c240786, 0x8321b568, 0x1c1de659, 0x832053ee, 0x1c17c51b, 0x831ef2c1, - 0x1c11a3cb, 0x831d91e1, - 0x1c0b826a, 0x831c314e, 0x1c0560f8, 0x831ad109, 0x1bff3f75, 0x83197110, - 0x1bf91de0, 0x83181164, - 0x1bf2fc3a, 0x8316b205, 0x1becda83, 0x831552f4, 0x1be6b8ba, 0x8313f42f, - 0x1be096e0, 0x831295b7, - 0x1bda74f6, 0x8311378d, 0x1bd452f9, 0x830fd9af, 0x1bce30ec, 0x830e7c1f, - 0x1bc80ece, 0x830d1edc, - 0x1bc1ec9e, 0x830bc1e6, 0x1bbbca5e, 0x830a653c, 0x1bb5a80c, 0x830908e0, - 0x1baf85a9, 0x8307acd1, - 0x1ba96335, 0x83065110, 0x1ba340b0, 0x8304f59b, 0x1b9d1e1a, 0x83039a73, - 0x1b96fb73, 0x83023f98, - 0x1b90d8bb, 0x8300e50b, 0x1b8ab5f2, 0x82ff8acb, 0x1b849317, 0x82fe30d7, - 0x1b7e702c, 0x82fcd731, - 0x1b784d30, 0x82fb7dd8, 0x1b722a23, 0x82fa24cc, 0x1b6c0705, 0x82f8cc0d, - 0x1b65e3d7, 0x82f7739c, - 0x1b5fc097, 0x82f61b77, 0x1b599d46, 0x82f4c3a0, 0x1b5379e5, 0x82f36c15, - 0x1b4d5672, 0x82f214d8, - 0x1b4732ef, 0x82f0bde8, 0x1b410f5b, 0x82ef6745, 0x1b3aebb6, 0x82ee10ef, - 0x1b34c801, 0x82ecbae7, - 0x1b2ea43a, 0x82eb652b, 0x1b288063, 0x82ea0fbd, 0x1b225c7b, 0x82e8ba9c, - 0x1b1c3883, 0x82e765c8, - 0x1b161479, 0x82e61141, 0x1b0ff05f, 0x82e4bd07, 0x1b09cc34, 0x82e3691b, - 0x1b03a7f9, 0x82e2157c, - 0x1afd83ad, 0x82e0c22a, 0x1af75f50, 0x82df6f25, 0x1af13ae3, 0x82de1c6d, - 0x1aeb1665, 0x82dcca02, - 0x1ae4f1d6, 0x82db77e5, 0x1adecd37, 0x82da2615, 0x1ad8a887, 0x82d8d492, - 0x1ad283c7, 0x82d7835c, - 0x1acc5ef6, 0x82d63274, 0x1ac63a14, 0x82d4e1d8, 0x1ac01522, 0x82d3918a, - 0x1ab9f020, 0x82d24189, - 0x1ab3cb0d, 0x82d0f1d5, 0x1aada5e9, 0x82cfa26f, 0x1aa780b6, 0x82ce5356, - 0x1aa15b71, 0x82cd048a, - 0x1a9b361d, 0x82cbb60b, 0x1a9510b7, 0x82ca67d9, 0x1a8eeb42, 0x82c919f5, - 0x1a88c5bc, 0x82c7cc5e, - 0x1a82a026, 0x82c67f14, 0x1a7c7a7f, 0x82c53217, 0x1a7654c8, 0x82c3e568, - 0x1a702f01, 0x82c29906, - 0x1a6a0929, 0x82c14cf1, 0x1a63e341, 0x82c00129, 0x1a5dbd49, 0x82beb5af, - 0x1a579741, 0x82bd6a82, - 0x1a517128, 0x82bc1fa2, 0x1a4b4aff, 0x82bad50f, 0x1a4524c6, 0x82b98aca, - 0x1a3efe7c, 0x82b840d2, - 0x1a38d823, 0x82b6f727, 0x1a32b1b9, 0x82b5adca, 0x1a2c8b3f, 0x82b464ba, - 0x1a2664b5, 0x82b31bf7, - 0x1a203e1b, 0x82b1d381, 0x1a1a1771, 0x82b08b59, 0x1a13f0b6, 0x82af437e, - 0x1a0dc9ec, 0x82adfbf0, - 0x1a07a311, 0x82acb4b0, 0x1a017c27, 0x82ab6dbd, 0x19fb552c, 0x82aa2717, - 0x19f52e22, 0x82a8e0bf, - 0x19ef0707, 0x82a79ab3, 0x19e8dfdc, 0x82a654f6, 0x19e2b8a2, 0x82a50f85, - 0x19dc9157, 0x82a3ca62, - 0x19d669fc, 0x82a2858c, 0x19d04292, 0x82a14104, 0x19ca1b17, 0x829ffcc8, - 0x19c3f38d, 0x829eb8db, - 0x19bdcbf3, 0x829d753a, 0x19b7a449, 0x829c31e7, 0x19b17c8f, 0x829aeee1, - 0x19ab54c5, 0x8299ac29, - 0x19a52ceb, 0x829869be, 0x199f0502, 0x829727a0, 0x1998dd09, 0x8295e5cf, - 0x1992b4ff, 0x8294a44c, - 0x198c8ce7, 0x82936317, 0x198664be, 0x8292222e, 0x19803c86, 0x8290e194, - 0x197a143e, 0x828fa146, - 0x1973ebe6, 0x828e6146, 0x196dc37e, 0x828d2193, 0x19679b07, 0x828be22e, - 0x19617280, 0x828aa316, - 0x195b49ea, 0x8289644b, 0x19552144, 0x828825ce, 0x194ef88e, 0x8286e79e, - 0x1948cfc8, 0x8285a9bb, - 0x1942a6f3, 0x82846c26, 0x193c7e0f, 0x82832edf, 0x1936551b, 0x8281f1e4, - 0x19302c17, 0x8280b538, - 0x192a0304, 0x827f78d8, 0x1923d9e1, 0x827e3cc6, 0x191db0af, 0x827d0102, - 0x1917876d, 0x827bc58a, - 0x19115e1c, 0x827a8a61, 0x190b34bb, 0x82794f84, 0x19050b4b, 0x827814f6, - 0x18fee1cb, 0x8276dab4, - 0x18f8b83c, 0x8275a0c0, 0x18f28e9e, 0x8274671a, 0x18ec64f0, 0x82732dc0, - 0x18e63b33, 0x8271f4b5, - 0x18e01167, 0x8270bbf7, 0x18d9e78b, 0x826f8386, 0x18d3bda0, 0x826e4b62, - 0x18cd93a5, 0x826d138d, - 0x18c7699b, 0x826bdc04, 0x18c13f82, 0x826aa4c9, 0x18bb155a, 0x82696ddc, - 0x18b4eb22, 0x8268373c, - 0x18aec0db, 0x826700e9, 0x18a89685, 0x8265cae4, 0x18a26c20, 0x8264952d, - 0x189c41ab, 0x82635fc2, - 0x18961728, 0x82622aa6, 0x188fec95, 0x8260f5d7, 0x1889c1f3, 0x825fc155, - 0x18839742, 0x825e8d21, - 0x187d6c82, 0x825d593a, 0x187741b2, 0x825c25a1, 0x187116d4, 0x825af255, - 0x186aebe6, 0x8259bf57, - 0x1864c0ea, 0x82588ca7, 0x185e95de, 0x82575a44, 0x18586ac3, 0x8256282e, - 0x18523f9a, 0x8254f666, - 0x184c1461, 0x8253c4eb, 0x1845e919, 0x825293be, 0x183fbdc3, 0x825162df, - 0x1839925d, 0x8250324d, - 0x183366e9, 0x824f0208, 0x182d3b65, 0x824dd211, 0x18270fd3, 0x824ca268, - 0x1820e431, 0x824b730c, - 0x181ab881, 0x824a43fe, 0x18148cc2, 0x8249153d, 0x180e60f4, 0x8247e6ca, - 0x18083518, 0x8246b8a4, - 0x1802092c, 0x82458acc, 0x17fbdd32, 0x82445d41, 0x17f5b129, 0x82433004, - 0x17ef8511, 0x82420315, - 0x17e958ea, 0x8240d673, 0x17e32cb5, 0x823faa1e, 0x17dd0070, 0x823e7e18, - 0x17d6d41d, 0x823d525e, - 0x17d0a7bc, 0x823c26f3, 0x17ca7b4c, 0x823afbd5, 0x17c44ecd, 0x8239d104, - 0x17be223f, 0x8238a681, - 0x17b7f5a3, 0x82377c4c, 0x17b1c8f8, 0x82365264, 0x17ab9c3e, 0x823528ca, - 0x17a56f76, 0x8233ff7e, - 0x179f429f, 0x8232d67f, 0x179915ba, 0x8231adce, 0x1792e8c6, 0x8230856a, - 0x178cbbc4, 0x822f5d54, - 0x17868eb3, 0x822e358b, 0x17806194, 0x822d0e10, 0x177a3466, 0x822be6e3, - 0x17740729, 0x822ac004, - 0x176dd9de, 0x82299971, 0x1767ac85, 0x8228732d, 0x17617f1d, 0x82274d36, - 0x175b51a7, 0x8226278d, - 0x17552422, 0x82250232, 0x174ef68f, 0x8223dd24, 0x1748c8ee, 0x8222b863, - 0x17429b3e, 0x822193f1, - 0x173c6d80, 0x82206fcc, 0x17363fb4, 0x821f4bf5, 0x173011d9, 0x821e286b, - 0x1729e3f0, 0x821d052f, - 0x1723b5f9, 0x821be240, 0x171d87f3, 0x821abfa0, 0x171759df, 0x82199d4d, - 0x17112bbd, 0x82187b47, - 0x170afd8d, 0x82175990, 0x1704cf4f, 0x82163826, 0x16fea102, 0x82151709, - 0x16f872a7, 0x8213f63a, - 0x16f2443e, 0x8212d5b9, 0x16ec15c7, 0x8211b586, 0x16e5e741, 0x821095a0, - 0x16dfb8ae, 0x820f7608, - 0x16d98a0c, 0x820e56be, 0x16d35b5c, 0x820d37c1, 0x16cd2c9f, 0x820c1912, - 0x16c6fdd3, 0x820afab1, - 0x16c0cef9, 0x8209dc9e, 0x16baa011, 0x8208bed8, 0x16b4711b, 0x8207a160, - 0x16ae4217, 0x82068435, - 0x16a81305, 0x82056758, 0x16a1e3e5, 0x82044ac9, 0x169bb4b7, 0x82032e88, - 0x1695857b, 0x82021294, - 0x168f5632, 0x8200f6ef, 0x168926da, 0x81ffdb96, 0x1682f774, 0x81fec08c, - 0x167cc801, 0x81fda5cf, - 0x1676987f, 0x81fc8b60, 0x167068f0, 0x81fb713f, 0x166a3953, 0x81fa576c, - 0x166409a8, 0x81f93de6, - 0x165dd9f0, 0x81f824ae, 0x1657aa29, 0x81f70bc3, 0x16517a55, 0x81f5f327, - 0x164b4a73, 0x81f4dad8, - 0x16451a83, 0x81f3c2d7, 0x163eea86, 0x81f2ab24, 0x1638ba7a, 0x81f193be, - 0x16328a61, 0x81f07ca6, - 0x162c5a3b, 0x81ef65dc, 0x16262a06, 0x81ee4f60, 0x161ff9c4, 0x81ed3932, - 0x1619c975, 0x81ec2351, - 0x16139918, 0x81eb0dbe, 0x160d68ad, 0x81e9f879, 0x16073834, 0x81e8e381, - 0x160107ae, 0x81e7ced8, - 0x15fad71b, 0x81e6ba7c, 0x15f4a679, 0x81e5a66e, 0x15ee75cb, 0x81e492ad, - 0x15e8450e, 0x81e37f3b, - 0x15e21445, 0x81e26c16, 0x15dbe36d, 0x81e1593f, 0x15d5b288, 0x81e046b6, - 0x15cf8196, 0x81df347b, - 0x15c95097, 0x81de228d, 0x15c31f89, 0x81dd10ee, 0x15bcee6f, 0x81dbff9c, - 0x15b6bd47, 0x81daee98, - 0x15b08c12, 0x81d9dde1, 0x15aa5acf, 0x81d8cd79, 0x15a4297f, 0x81d7bd5e, - 0x159df821, 0x81d6ad92, - 0x1597c6b7, 0x81d59e13, 0x1591953e, 0x81d48ee1, 0x158b63b9, 0x81d37ffe, - 0x15853226, 0x81d27169, - 0x157f0086, 0x81d16321, 0x1578ced9, 0x81d05527, 0x15729d1f, 0x81cf477b, - 0x156c6b57, 0x81ce3a1d, - 0x15663982, 0x81cd2d0c, 0x156007a0, 0x81cc204a, 0x1559d5b1, 0x81cb13d5, - 0x1553a3b4, 0x81ca07af, - 0x154d71aa, 0x81c8fbd6, 0x15473f94, 0x81c7f04b, 0x15410d70, 0x81c6e50d, - 0x153adb3f, 0x81c5da1e, - 0x1534a901, 0x81c4cf7d, 0x152e76b5, 0x81c3c529, 0x1528445d, 0x81c2bb23, - 0x152211f8, 0x81c1b16b, - 0x151bdf86, 0x81c0a801, 0x1515ad06, 0x81bf9ee5, 0x150f7a7a, 0x81be9617, - 0x150947e1, 0x81bd8d97, - 0x1503153a, 0x81bc8564, 0x14fce287, 0x81bb7d7f, 0x14f6afc7, 0x81ba75e9, - 0x14f07cf9, 0x81b96ea0, - 0x14ea4a1f, 0x81b867a5, 0x14e41738, 0x81b760f8, 0x14dde445, 0x81b65a99, - 0x14d7b144, 0x81b55488, - 0x14d17e36, 0x81b44ec4, 0x14cb4b1c, 0x81b3494f, 0x14c517f4, 0x81b24427, - 0x14bee4c0, 0x81b13f4e, - 0x14b8b17f, 0x81b03ac2, 0x14b27e32, 0x81af3684, 0x14ac4ad7, 0x81ae3294, - 0x14a61770, 0x81ad2ef2, - 0x149fe3fc, 0x81ac2b9e, 0x1499b07c, 0x81ab2898, 0x14937cee, 0x81aa25e0, - 0x148d4954, 0x81a92376, - 0x148715ae, 0x81a82159, 0x1480e1fa, 0x81a71f8b, 0x147aae3a, 0x81a61e0b, - 0x14747a6d, 0x81a51cd8, - 0x146e4694, 0x81a41bf4, 0x146812ae, 0x81a31b5d, 0x1461debc, 0x81a21b14, - 0x145baabd, 0x81a11b1a, - 0x145576b1, 0x81a01b6d, 0x144f4299, 0x819f1c0e, 0x14490e74, 0x819e1cfd, - 0x1442da43, 0x819d1e3a, - 0x143ca605, 0x819c1fc5, 0x143671bb, 0x819b219e, 0x14303d65, 0x819a23c5, - 0x142a0902, 0x8199263a, - 0x1423d492, 0x819828fd, 0x141da016, 0x81972c0e, 0x14176b8e, 0x81962f6d, - 0x141136f9, 0x8195331a, - 0x140b0258, 0x81943715, 0x1404cdaa, 0x81933b5e, 0x13fe98f1, 0x81923ff4, - 0x13f8642a, 0x819144d9, - 0x13f22f58, 0x81904a0c, 0x13ebfa79, 0x818f4f8d, 0x13e5c58e, 0x818e555c, - 0x13df9097, 0x818d5b78, - 0x13d95b93, 0x818c61e3, 0x13d32683, 0x818b689c, 0x13ccf167, 0x818a6fa3, - 0x13c6bc3f, 0x818976f8, - 0x13c0870a, 0x81887e9a, 0x13ba51ca, 0x8187868b, 0x13b41c7d, 0x81868eca, - 0x13ade724, 0x81859757, - 0x13a7b1bf, 0x8184a032, 0x13a17c4d, 0x8183a95b, 0x139b46d0, 0x8182b2d1, - 0x13951146, 0x8181bc96, - 0x138edbb1, 0x8180c6a9, 0x1388a60f, 0x817fd10a, 0x13827062, 0x817edbb9, - 0x137c3aa8, 0x817de6b6, - 0x137604e2, 0x817cf201, 0x136fcf10, 0x817bfd9b, 0x13699933, 0x817b0982, - 0x13636349, 0x817a15b7, - 0x135d2d53, 0x8179223a, 0x1356f752, 0x81782f0b, 0x1350c144, 0x81773c2b, - 0x134a8b2b, 0x81764998, - 0x13445505, 0x81755754, 0x133e1ed4, 0x8174655d, 0x1337e897, 0x817373b5, - 0x1331b24e, 0x8172825a, - 0x132b7bf9, 0x8171914e, 0x13254599, 0x8170a090, 0x131f0f2c, 0x816fb020, - 0x1318d8b4, 0x816ebffe, - 0x1312a230, 0x816dd02a, 0x130c6ba0, 0x816ce0a4, 0x13063505, 0x816bf16c, - 0x12fffe5d, 0x816b0282, - 0x12f9c7aa, 0x816a13e6, 0x12f390ec, 0x81692599, 0x12ed5a21, 0x81683799, - 0x12e7234b, 0x816749e8, - 0x12e0ec6a, 0x81665c84, 0x12dab57c, 0x81656f6f, 0x12d47e83, 0x816482a8, - 0x12ce477f, 0x8163962f, - 0x12c8106f, 0x8162aa04, 0x12c1d953, 0x8161be27, 0x12bba22b, 0x8160d298, - 0x12b56af9, 0x815fe758, - 0x12af33ba, 0x815efc65, 0x12a8fc70, 0x815e11c1, 0x12a2c51b, 0x815d276a, - 0x129c8dba, 0x815c3d62, - 0x1296564d, 0x815b53a8, 0x12901ed5, 0x815a6a3c, 0x1289e752, 0x8159811e, - 0x1283afc3, 0x8158984e, - 0x127d7829, 0x8157afcd, 0x12774083, 0x8156c799, 0x127108d2, 0x8155dfb4, - 0x126ad116, 0x8154f81d, - 0x1264994e, 0x815410d4, 0x125e617b, 0x815329d9, 0x1258299c, 0x8152432c, - 0x1251f1b3, 0x81515ccd, - 0x124bb9be, 0x815076bd, 0x124581bd, 0x814f90fb, 0x123f49b2, 0x814eab86, - 0x1239119b, 0x814dc660, - 0x1232d979, 0x814ce188, 0x122ca14b, 0x814bfcff, 0x12266913, 0x814b18c3, - 0x122030cf, 0x814a34d6, - 0x1219f880, 0x81495136, 0x1213c026, 0x81486de5, 0x120d87c1, 0x81478ae2, - 0x12074f50, 0x8146a82e, - 0x120116d5, 0x8145c5c7, 0x11fade4e, 0x8144e3ae, 0x11f4a5bd, 0x814401e4, - 0x11ee6d20, 0x81432068, - 0x11e83478, 0x81423f3a, 0x11e1fbc5, 0x81415e5a, 0x11dbc307, 0x81407dc9, - 0x11d58a3e, 0x813f9d86, - 0x11cf516a, 0x813ebd90, 0x11c9188b, 0x813ddde9, 0x11c2dfa2, 0x813cfe91, - 0x11bca6ad, 0x813c1f86, - 0x11b66dad, 0x813b40ca, 0x11b034a2, 0x813a625b, 0x11a9fb8d, 0x8139843b, - 0x11a3c26c, 0x8138a66a, - 0x119d8941, 0x8137c8e6, 0x1197500a, 0x8136ebb1, 0x119116c9, 0x81360ec9, - 0x118add7d, 0x81353230, - 0x1184a427, 0x813455e6, 0x117e6ac5, 0x813379e9, 0x11783159, 0x81329e3b, - 0x1171f7e2, 0x8131c2db, - 0x116bbe60, 0x8130e7c9, 0x116584d3, 0x81300d05, 0x115f4b3c, 0x812f3290, - 0x1159119a, 0x812e5868, - 0x1152d7ed, 0x812d7e8f, 0x114c9e35, 0x812ca505, 0x11466473, 0x812bcbc8, - 0x11402aa6, 0x812af2da, - 0x1139f0cf, 0x812a1a3a, 0x1133b6ed, 0x812941e8, 0x112d7d00, 0x812869e4, - 0x11274309, 0x8127922f, - 0x11210907, 0x8126bac8, 0x111acefb, 0x8125e3af, 0x111494e4, 0x81250ce4, - 0x110e5ac2, 0x81243668, - 0x11082096, 0x8123603a, 0x1101e65f, 0x81228a5a, 0x10fbac1e, 0x8121b4c8, - 0x10f571d3, 0x8120df85, - 0x10ef377d, 0x81200a90, 0x10e8fd1c, 0x811f35e9, 0x10e2c2b2, 0x811e6191, - 0x10dc883c, 0x811d8d86, - 0x10d64dbd, 0x811cb9ca, 0x10d01333, 0x811be65d, 0x10c9d89e, 0x811b133d, - 0x10c39dff, 0x811a406c, - 0x10bd6356, 0x81196de9, 0x10b728a3, 0x81189bb4, 0x10b0ede5, 0x8117c9ce, - 0x10aab31d, 0x8116f836, - 0x10a4784b, 0x811626ec, 0x109e3d6e, 0x811555f1, 0x10980287, 0x81148544, - 0x1091c796, 0x8113b4e5, - 0x108b8c9b, 0x8112e4d4, 0x10855195, 0x81121512, 0x107f1686, 0x8111459e, - 0x1078db6c, 0x81107678, - 0x1072a048, 0x810fa7a0, 0x106c651a, 0x810ed917, 0x106629e1, 0x810e0adc, - 0x105fee9f, 0x810d3cf0, - 0x1059b352, 0x810c6f52, 0x105377fc, 0x810ba202, 0x104d3c9b, 0x810ad500, - 0x10470130, 0x810a084d, - 0x1040c5bb, 0x81093be8, 0x103a8a3d, 0x81086fd1, 0x10344eb4, 0x8107a409, - 0x102e1321, 0x8106d88f, - 0x1027d784, 0x81060d63, 0x10219bdd, 0x81054286, 0x101b602d, 0x810477f7, - 0x10152472, 0x8103adb6, - 0x100ee8ad, 0x8102e3c4, 0x1008acdf, 0x81021a20, 0x10027107, 0x810150ca, - 0xffc3524, 0x810087c3, - 0xff5f938, 0x80ffbf0a, 0xfefbd42, 0x80fef69f, 0xfe98143, 0x80fe2e83, - 0xfe34539, 0x80fd66b5, - 0xfdd0926, 0x80fc9f35, 0xfd6cd08, 0x80fbd804, 0xfd090e1, 0x80fb1121, - 0xfca54b1, 0x80fa4a8c, - 0xfc41876, 0x80f98446, 0xfbddc32, 0x80f8be4e, 0xfb79fe4, 0x80f7f8a4, - 0xfb1638d, 0x80f73349, - 0xfab272b, 0x80f66e3c, 0xfa4eac0, 0x80f5a97e, 0xf9eae4c, 0x80f4e50e, - 0xf9871ce, 0x80f420ec, - 0xf923546, 0x80f35d19, 0xf8bf8b4, 0x80f29994, 0xf85bc19, 0x80f1d65d, - 0xf7f7f75, 0x80f11375, - 0xf7942c7, 0x80f050db, 0xf73060f, 0x80ef8e90, 0xf6cc94e, 0x80eecc93, - 0xf668c83, 0x80ee0ae4, - 0xf604faf, 0x80ed4984, 0xf5a12d1, 0x80ec8872, 0xf53d5ea, 0x80ebc7ae, - 0xf4d98f9, 0x80eb0739, - 0xf475bff, 0x80ea4712, 0xf411efb, 0x80e9873a, 0xf3ae1ee, 0x80e8c7b0, - 0xf34a4d8, 0x80e80874, - 0xf2e67b8, 0x80e74987, 0xf282a8f, 0x80e68ae8, 0xf21ed5d, 0x80e5cc98, - 0xf1bb021, 0x80e50e96, - 0xf1572dc, 0x80e450e2, 0xf0f358e, 0x80e3937d, 0xf08f836, 0x80e2d666, - 0xf02bad5, 0x80e2199e, - 0xefc7d6b, 0x80e15d24, 0xef63ff7, 0x80e0a0f8, 0xef0027b, 0x80dfe51b, - 0xee9c4f5, 0x80df298c, - 0xee38766, 0x80de6e4c, 0xedd49ce, 0x80ddb35a, 0xed70c2c, 0x80dcf8b7, - 0xed0ce82, 0x80dc3e62, - 0xeca90ce, 0x80db845b, 0xec45311, 0x80dacaa3, 0xebe154b, 0x80da1139, - 0xeb7d77c, 0x80d9581e, - 0xeb199a4, 0x80d89f51, 0xeab5bc3, 0x80d7e6d3, 0xea51dd8, 0x80d72ea3, - 0xe9edfe5, 0x80d676c1, - 0xe98a1e9, 0x80d5bf2e, 0xe9263e3, 0x80d507e9, 0xe8c25d5, 0x80d450f3, - 0xe85e7be, 0x80d39a4b, - 0xe7fa99e, 0x80d2e3f2, 0xe796b74, 0x80d22de7, 0xe732d42, 0x80d1782a, - 0xe6cef07, 0x80d0c2bc, - 0xe66b0c3, 0x80d00d9d, 0xe607277, 0x80cf58cc, 0xe5a3421, 0x80cea449, - 0xe53f5c2, 0x80cdf015, - 0xe4db75b, 0x80cd3c2f, 0xe4778eb, 0x80cc8898, 0xe413a72, 0x80cbd54f, - 0xe3afbf0, 0x80cb2255, - 0xe34bd66, 0x80ca6fa9, 0xe2e7ed2, 0x80c9bd4c, 0xe284036, 0x80c90b3d, - 0xe220191, 0x80c8597c, - 0xe1bc2e4, 0x80c7a80a, 0xe15842e, 0x80c6f6e7, 0xe0f456f, 0x80c64612, - 0xe0906a7, 0x80c5958b, - 0xe02c7d7, 0x80c4e553, 0xdfc88fe, 0x80c4356a, 0xdf64a1c, 0x80c385cf, - 0xdf00b32, 0x80c2d682, - 0xde9cc40, 0x80c22784, 0xde38d44, 0x80c178d4, 0xddd4e40, 0x80c0ca73, - 0xdd70f34, 0x80c01c60, - 0xdd0d01f, 0x80bf6e9c, 0xdca9102, 0x80bec127, 0xdc451dc, 0x80be13ff, - 0xdbe12ad, 0x80bd6727, - 0xdb7d376, 0x80bcba9d, 0xdb19437, 0x80bc0e61, 0xdab54ef, 0x80bb6274, - 0xda5159f, 0x80bab6d5, - 0xd9ed646, 0x80ba0b85, 0xd9896e5, 0x80b96083, 0xd92577b, 0x80b8b5d0, - 0xd8c1809, 0x80b80b6c, - 0xd85d88f, 0x80b76156, 0xd7f990c, 0x80b6b78e, 0xd795982, 0x80b60e15, - 0xd7319ee, 0x80b564ea, - 0xd6cda53, 0x80b4bc0e, 0xd669aaf, 0x80b41381, 0xd605b03, 0x80b36b42, - 0xd5a1b4f, 0x80b2c351, - 0xd53db92, 0x80b21baf, 0xd4d9bcd, 0x80b1745c, 0xd475c00, 0x80b0cd57, - 0xd411c2b, 0x80b026a1, - 0xd3adc4e, 0x80af8039, 0xd349c68, 0x80aeda20, 0xd2e5c7b, 0x80ae3455, - 0xd281c85, 0x80ad8ed9, - 0xd21dc87, 0x80ace9ab, 0xd1b9c81, 0x80ac44cc, 0xd155c73, 0x80aba03b, - 0xd0f1c5d, 0x80aafbf9, - 0xd08dc3f, 0x80aa5806, 0xd029c18, 0x80a9b461, 0xcfc5bea, 0x80a9110b, - 0xcf61bb4, 0x80a86e03, - 0xcefdb76, 0x80a7cb49, 0xce99b2f, 0x80a728df, 0xce35ae1, 0x80a686c2, - 0xcdd1a8b, 0x80a5e4f5, - 0xcd6da2d, 0x80a54376, 0xcd099c7, 0x80a4a245, 0xcca5959, 0x80a40163, - 0xcc418e3, 0x80a360d0, - 0xcbdd865, 0x80a2c08b, 0xcb797e0, 0x80a22095, 0xcb15752, 0x80a180ed, - 0xcab16bd, 0x80a0e194, - 0xca4d620, 0x80a04289, 0xc9e957b, 0x809fa3cd, 0xc9854cf, 0x809f0560, - 0xc92141a, 0x809e6741, - 0xc8bd35e, 0x809dc971, 0xc85929a, 0x809d2bef, 0xc7f51cf, 0x809c8ebc, - 0xc7910fb, 0x809bf1d7, - 0xc72d020, 0x809b5541, 0xc6c8f3e, 0x809ab8fa, 0xc664e53, 0x809a1d01, - 0xc600d61, 0x80998157, - 0xc59cc68, 0x8098e5fb, 0xc538b66, 0x80984aee, 0xc4d4a5d, 0x8097b030, - 0xc47094d, 0x809715c0, - 0xc40c835, 0x80967b9f, 0xc3a8715, 0x8095e1cc, 0xc3445ee, 0x80954848, - 0xc2e04c0, 0x8094af13, - 0xc27c389, 0x8094162c, 0xc21824c, 0x80937d93, 0xc1b4107, 0x8092e54a, - 0xc14ffba, 0x80924d4f, - 0xc0ebe66, 0x8091b5a2, 0xc087d0a, 0x80911e44, 0xc023ba7, 0x80908735, - 0xbfbfa3d, 0x808ff074, - 0xbf5b8cb, 0x808f5a02, 0xbef7752, 0x808ec3df, 0xbe935d2, 0x808e2e0a, - 0xbe2f44a, 0x808d9884, - 0xbdcb2bb, 0x808d034c, 0xbd67124, 0x808c6e63, 0xbd02f87, 0x808bd9c9, - 0xbc9ede2, 0x808b457d, - 0xbc3ac35, 0x808ab180, 0xbbd6a82, 0x808a1dd2, 0xbb728c7, 0x80898a72, - 0xbb0e705, 0x8088f761, - 0xbaaa53b, 0x8088649e, 0xba4636b, 0x8087d22a, 0xb9e2193, 0x80874005, - 0xb97dfb5, 0x8086ae2e, - 0xb919dcf, 0x80861ca6, 0xb8b5be1, 0x80858b6c, 0xb8519ed, 0x8084fa82, - 0xb7ed7f2, 0x808469e5, - 0xb7895f0, 0x8083d998, 0xb7253e6, 0x80834999, 0xb6c11d5, 0x8082b9e9, - 0xb65cfbe, 0x80822a87, - 0xb5f8d9f, 0x80819b74, 0xb594b7a, 0x80810cb0, 0xb53094d, 0x80807e3a, - 0xb4cc719, 0x807ff013, - 0xb4684df, 0x807f623b, 0xb40429d, 0x807ed4b1, 0xb3a0055, 0x807e4776, - 0xb33be05, 0x807dba89, - 0xb2d7baf, 0x807d2dec, 0xb273952, 0x807ca19c, 0xb20f6ee, 0x807c159c, - 0xb1ab483, 0x807b89ea, - 0xb147211, 0x807afe87, 0xb0e2f98, 0x807a7373, 0xb07ed19, 0x8079e8ad, - 0xb01aa92, 0x80795e36, - 0xafb6805, 0x8078d40d, 0xaf52571, 0x80784a33, 0xaeee2d7, 0x8077c0a8, - 0xae8a036, 0x8077376c, - 0xae25d8d, 0x8076ae7e, 0xadc1adf, 0x807625df, 0xad5d829, 0x80759d8e, - 0xacf956d, 0x8075158c, - 0xac952aa, 0x80748dd9, 0xac30fe1, 0x80740675, 0xabccd11, 0x80737f5f, - 0xab68a3a, 0x8072f898, - 0xab0475c, 0x8072721f, 0xaaa0478, 0x8071ebf6, 0xaa3c18e, 0x8071661a, - 0xa9d7e9d, 0x8070e08e, - 0xa973ba5, 0x80705b50, 0xa90f8a7, 0x806fd661, 0xa8ab5a2, 0x806f51c1, - 0xa847297, 0x806ecd6f, - 0xa7e2f85, 0x806e496c, 0xa77ec6d, 0x806dc5b8, 0xa71a94f, 0x806d4253, - 0xa6b662a, 0x806cbf3c, - 0xa6522fe, 0x806c3c74, 0xa5edfcc, 0x806bb9fa, 0xa589c94, 0x806b37cf, - 0xa525955, 0x806ab5f3, - 0xa4c1610, 0x806a3466, 0xa45d2c5, 0x8069b327, 0xa3f8f73, 0x80693237, - 0xa394c1b, 0x8068b196, - 0xa3308bd, 0x80683143, 0xa2cc558, 0x8067b13f, 0xa2681ed, 0x8067318a, - 0xa203e7c, 0x8066b224, - 0xa19fb04, 0x8066330c, 0xa13b787, 0x8065b443, 0xa0d7403, 0x806535c9, - 0xa073079, 0x8064b79d, - 0xa00ece8, 0x806439c0, 0x9faa952, 0x8063bc32, 0x9f465b5, 0x80633ef3, - 0x9ee2213, 0x8062c202, - 0x9e7de6a, 0x80624560, 0x9e19abb, 0x8061c90c, 0x9db5706, 0x80614d08, - 0x9d5134b, 0x8060d152, - 0x9cecf89, 0x806055eb, 0x9c88bc2, 0x805fdad2, 0x9c247f5, 0x805f6009, - 0x9bc0421, 0x805ee58e, - 0x9b5c048, 0x805e6b62, 0x9af7c69, 0x805df184, 0x9a93884, 0x805d77f5, - 0x9a2f498, 0x805cfeb5, - 0x99cb0a7, 0x805c85c4, 0x9966cb0, 0x805c0d21, 0x99028b3, 0x805b94ce, - 0x989e4b0, 0x805b1cc8, - 0x983a0a7, 0x805aa512, 0x97d5c99, 0x805a2daa, 0x9771884, 0x8059b692, - 0x970d46a, 0x80593fc7, - 0x96a9049, 0x8058c94c, 0x9644c23, 0x8058531f, 0x95e07f8, 0x8057dd41, - 0x957c3c6, 0x805767b2, - 0x9517f8f, 0x8056f272, 0x94b3b52, 0x80567d80, 0x944f70f, 0x805608dd, - 0x93eb2c6, 0x80559489, - 0x9386e78, 0x80552084, 0x9322a24, 0x8054accd, 0x92be5ca, 0x80543965, - 0x925a16b, 0x8053c64c, - 0x91f5d06, 0x80535381, 0x919189c, 0x8052e106, 0x912d42c, 0x80526ed9, - 0x90c8fb6, 0x8051fcfb, - 0x9064b3a, 0x80518b6b, 0x90006ba, 0x80511a2b, 0x8f9c233, 0x8050a939, - 0x8f37da7, 0x80503896, - 0x8ed3916, 0x804fc841, 0x8e6f47f, 0x804f583c, 0x8e0afe2, 0x804ee885, - 0x8da6b40, 0x804e791d, - 0x8d42699, 0x804e0a04, 0x8cde1ec, 0x804d9b39, 0x8c79d3a, 0x804d2cbd, - 0x8c15882, 0x804cbe90, - 0x8bb13c5, 0x804c50b2, 0x8b4cf02, 0x804be323, 0x8ae8a3a, 0x804b75e2, - 0x8a8456d, 0x804b08f0, - 0x8a2009a, 0x804a9c4d, 0x89bbbc3, 0x804a2ff9, 0x89576e5, 0x8049c3f3, - 0x88f3203, 0x8049583d, - 0x888ed1b, 0x8048ecd5, 0x882a82e, 0x804881bb, 0x87c633c, 0x804816f1, - 0x8761e44, 0x8047ac75, - 0x86fd947, 0x80474248, 0x8699445, 0x8046d86a, 0x8634f3e, 0x80466edb, - 0x85d0a32, 0x8046059b, - 0x856c520, 0x80459ca9, 0x850800a, 0x80453406, 0x84a3aee, 0x8044cbb2, - 0x843f5cd, 0x804463ad, - 0x83db0a7, 0x8043fbf6, 0x8376b7c, 0x8043948e, 0x831264c, 0x80432d75, - 0x82ae117, 0x8042c6ab, - 0x8249bdd, 0x80426030, 0x81e569d, 0x8041fa03, 0x8181159, 0x80419425, - 0x811cc10, 0x80412e96, - 0x80b86c2, 0x8040c956, 0x805416e, 0x80406465, 0x7fefc16, 0x803fffc2, - 0x7f8b6b9, 0x803f9b6f, - 0x7f27157, 0x803f376a, 0x7ec2bf0, 0x803ed3b3, 0x7e5e685, 0x803e704c, - 0x7dfa114, 0x803e0d34, - 0x7d95b9e, 0x803daa6a, 0x7d31624, 0x803d47ef, 0x7ccd0a5, 0x803ce5c3, - 0x7c68b21, 0x803c83e5, - 0x7c04598, 0x803c2257, 0x7ba000b, 0x803bc117, 0x7b3ba78, 0x803b6026, - 0x7ad74e1, 0x803aff84, - 0x7a72f45, 0x803a9f31, 0x7a0e9a5, 0x803a3f2d, 0x79aa400, 0x8039df77, - 0x7945e56, 0x80398010, - 0x78e18a7, 0x803920f8, 0x787d2f4, 0x8038c22f, 0x7818d3c, 0x803863b5, - 0x77b4780, 0x80380589, - 0x77501be, 0x8037a7ac, 0x76ebbf9, 0x80374a1f, 0x768762e, 0x8036ece0, - 0x762305f, 0x80368fef, - 0x75bea8c, 0x8036334e, 0x755a4b4, 0x8035d6fb, 0x74f5ed7, 0x80357af8, - 0x74918f6, 0x80351f43, - 0x742d311, 0x8034c3dd, 0x73c8d27, 0x803468c5, 0x7364738, 0x80340dfd, - 0x7300145, 0x8033b383, - 0x729bb4e, 0x80335959, 0x7237552, 0x8032ff7d, 0x71d2f52, 0x8032a5ef, - 0x716e94e, 0x80324cb1, - 0x710a345, 0x8031f3c2, 0x70a5d37, 0x80319b21, 0x7041726, 0x803142cf, - 0x6fdd110, 0x8030eacd, - 0x6f78af6, 0x80309318, 0x6f144d7, 0x80303bb3, 0x6eafeb4, 0x802fe49d, - 0x6e4b88d, 0x802f8dd5, - 0x6de7262, 0x802f375d, 0x6d82c32, 0x802ee133, 0x6d1e5fe, 0x802e8b58, - 0x6cb9fc6, 0x802e35cb, - 0x6c5598a, 0x802de08e, 0x6bf1349, 0x802d8ba0, 0x6b8cd05, 0x802d3700, - 0x6b286bc, 0x802ce2af, - 0x6ac406f, 0x802c8ead, 0x6a5fa1e, 0x802c3afa, 0x69fb3c9, 0x802be796, - 0x6996d70, 0x802b9480, - 0x6932713, 0x802b41ba, 0x68ce0b2, 0x802aef42, 0x6869a4c, 0x802a9d19, - 0x68053e3, 0x802a4b3f, - 0x67a0d76, 0x8029f9b4, 0x673c704, 0x8029a878, 0x66d808f, 0x8029578b, - 0x6673a16, 0x802906ec, - 0x660f398, 0x8028b69c, 0x65aad17, 0x8028669b, 0x6546692, 0x802816e9, - 0x64e2009, 0x8027c786, - 0x647d97c, 0x80277872, 0x64192eb, 0x802729ad, 0x63b4c57, 0x8026db36, - 0x63505be, 0x80268d0e, - 0x62ebf22, 0x80263f36, 0x6287882, 0x8025f1ac, 0x62231de, 0x8025a471, - 0x61beb36, 0x80255784, - 0x615a48b, 0x80250ae7, 0x60f5ddc, 0x8024be99, 0x6091729, 0x80247299, - 0x602d072, 0x802426e8, - 0x5fc89b8, 0x8023db86, 0x5f642fa, 0x80239073, 0x5effc38, 0x802345af, - 0x5e9b572, 0x8022fb3a, - 0x5e36ea9, 0x8022b114, 0x5dd27dd, 0x8022673c, 0x5d6e10c, 0x80221db3, - 0x5d09a38, 0x8021d47a, - 0x5ca5361, 0x80218b8f, 0x5c40c86, 0x802142f3, 0x5bdc5a7, 0x8020faa6, - 0x5b77ec5, 0x8020b2a7, - 0x5b137df, 0x80206af8, 0x5aaf0f6, 0x80202397, 0x5a4aa09, 0x801fdc86, - 0x59e6319, 0x801f95c3, - 0x5981c26, 0x801f4f4f, 0x591d52f, 0x801f092a, 0x58b8e34, 0x801ec354, - 0x5854736, 0x801e7dcd, - 0x57f0035, 0x801e3895, 0x578b930, 0x801df3ab, 0x5727228, 0x801daf11, - 0x56c2b1c, 0x801d6ac5, - 0x565e40d, 0x801d26c8, 0x55f9cfb, 0x801ce31a, 0x55955e6, 0x801c9fbb, - 0x5530ecd, 0x801c5cab, - 0x54cc7b1, 0x801c19ea, 0x5468092, 0x801bd777, 0x540396f, 0x801b9554, - 0x539f249, 0x801b537f, - 0x533ab20, 0x801b11fa, 0x52d63f4, 0x801ad0c3, 0x5271cc4, 0x801a8fdb, - 0x520d592, 0x801a4f42, - 0x51a8e5c, 0x801a0ef8, 0x5144723, 0x8019cefd, 0x50dffe7, 0x80198f50, - 0x507b8a8, 0x80194ff3, - 0x5017165, 0x801910e4, 0x4fb2a20, 0x8018d225, 0x4f4e2d8, 0x801893b4, - 0x4ee9b8c, 0x80185592, - 0x4e8543e, 0x801817bf, 0x4e20cec, 0x8017da3b, 0x4dbc597, 0x80179d06, - 0x4d57e40, 0x80176020, - 0x4cf36e5, 0x80172388, 0x4c8ef88, 0x8016e740, 0x4c2a827, 0x8016ab46, - 0x4bc60c4, 0x80166f9c, - 0x4b6195d, 0x80163440, 0x4afd1f4, 0x8015f933, 0x4a98a88, 0x8015be75, - 0x4a34319, 0x80158406, - 0x49cfba7, 0x801549e6, 0x496b432, 0x80151015, 0x4906cbb, 0x8014d693, - 0x48a2540, 0x80149d5f, - 0x483ddc3, 0x8014647b, 0x47d9643, 0x80142be5, 0x4774ec1, 0x8013f39e, - 0x471073b, 0x8013bba7, - 0x46abfb3, 0x801383fe, 0x4647828, 0x80134ca4, 0x45e309a, 0x80131599, - 0x457e90a, 0x8012dedd, - 0x451a177, 0x8012a86f, 0x44b59e1, 0x80127251, 0x4451249, 0x80123c82, - 0x43ecaae, 0x80120701, - 0x4388310, 0x8011d1d0, 0x4323b70, 0x80119ced, 0x42bf3cd, 0x80116859, - 0x425ac28, 0x80113414, - 0x41f6480, 0x8011001f, 0x4191cd5, 0x8010cc78, 0x412d528, 0x8010991f, - 0x40c8d79, 0x80106616, - 0x40645c7, 0x8010335c, 0x3fffe12, 0x801000f1, 0x3f9b65b, 0x800fced4, - 0x3f36ea2, 0x800f9d07, - 0x3ed26e6, 0x800f6b88, 0x3e6df28, 0x800f3a59, 0x3e09767, 0x800f0978, - 0x3da4fa4, 0x800ed8e6, - 0x3d407df, 0x800ea8a3, 0x3cdc017, 0x800e78af, 0x3c7784d, 0x800e490a, - 0x3c13080, 0x800e19b4, - 0x3bae8b2, 0x800deaad, 0x3b4a0e0, 0x800dbbf5, 0x3ae590d, 0x800d8d8b, - 0x3a81137, 0x800d5f71, - 0x3a1c960, 0x800d31a5, 0x39b8185, 0x800d0429, 0x39539a9, 0x800cd6fb, - 0x38ef1ca, 0x800caa1c, - 0x388a9ea, 0x800c7d8c, 0x3826207, 0x800c514c, 0x37c1a22, 0x800c255a, - 0x375d23a, 0x800bf9b7, - 0x36f8a51, 0x800bce63, 0x3694265, 0x800ba35d, 0x362fa78, 0x800b78a7, - 0x35cb288, 0x800b4e40, - 0x3566a96, 0x800b2427, 0x35022a2, 0x800afa5e, 0x349daac, 0x800ad0e3, - 0x34392b4, 0x800aa7b8, - 0x33d4abb, 0x800a7edb, 0x33702bf, 0x800a564e, 0x330bac1, 0x800a2e0f, - 0x32a72c1, 0x800a061f, - 0x3242abf, 0x8009de7e, 0x31de2bb, 0x8009b72c, 0x3179ab5, 0x80099029, - 0x31152ae, 0x80096975, - 0x30b0aa4, 0x80094310, 0x304c299, 0x80091cf9, 0x2fe7a8c, 0x8008f732, - 0x2f8327d, 0x8008d1ba, - 0x2f1ea6c, 0x8008ac90, 0x2eba259, 0x800887b6, 0x2e55a44, 0x8008632a, - 0x2df122e, 0x80083eed, - 0x2d8ca16, 0x80081b00, 0x2d281fc, 0x8007f761, 0x2cc39e1, 0x8007d411, - 0x2c5f1c3, 0x8007b110, - 0x2bfa9a4, 0x80078e5e, 0x2b96184, 0x80076bfb, 0x2b31961, 0x800749e7, - 0x2acd13d, 0x80072822, - 0x2a68917, 0x800706ac, 0x2a040f0, 0x8006e585, 0x299f8c7, 0x8006c4ac, - 0x293b09c, 0x8006a423, - 0x28d6870, 0x800683e8, 0x2872043, 0x800663fd, 0x280d813, 0x80064460, - 0x27a8fe2, 0x80062513, - 0x27447b0, 0x80060614, 0x26dff7c, 0x8005e764, 0x267b747, 0x8005c904, - 0x2616f10, 0x8005aaf2, - 0x25b26d7, 0x80058d2f, 0x254de9e, 0x80056fbb, 0x24e9662, 0x80055296, - 0x2484e26, 0x800535c0, - 0x24205e8, 0x80051939, 0x23bbda8, 0x8004fd00, 0x2357567, 0x8004e117, - 0x22f2d25, 0x8004c57d, - 0x228e4e2, 0x8004aa32, 0x2229c9d, 0x80048f35, 0x21c5457, 0x80047488, - 0x2160c0f, 0x80045a29, - 0x20fc3c6, 0x8004401a, 0x2097b7c, 0x80042659, 0x2033331, 0x80040ce7, - 0x1fceae4, 0x8003f3c5, - 0x1f6a297, 0x8003daf1, 0x1f05a48, 0x8003c26c, 0x1ea11f7, 0x8003aa36, - 0x1e3c9a6, 0x8003924f, - 0x1dd8154, 0x80037ab7, 0x1d73900, 0x8003636e, 0x1d0f0ab, 0x80034c74, - 0x1caa855, 0x800335c9, - 0x1c45ffe, 0x80031f6d, 0x1be17a6, 0x80030960, 0x1b7cf4d, 0x8002f3a1, - 0x1b186f3, 0x8002de32, - 0x1ab3e97, 0x8002c912, 0x1a4f63b, 0x8002b440, 0x19eaddd, 0x80029fbe, - 0x198657f, 0x80028b8a, - 0x1921d20, 0x800277a6, 0x18bd4bf, 0x80026410, 0x1858c5e, 0x800250c9, - 0x17f43fc, 0x80023dd2, - 0x178fb99, 0x80022b29, 0x172b335, 0x800218cf, 0x16c6ad0, 0x800206c4, - 0x166226a, 0x8001f508, - 0x15fda03, 0x8001e39b, 0x159919c, 0x8001d27d, 0x1534934, 0x8001c1ae, - 0x14d00ca, 0x8001b12e, - 0x146b860, 0x8001a0fd, 0x1406ff6, 0x8001911b, 0x13a278a, 0x80018187, - 0x133df1e, 0x80017243, - 0x12d96b1, 0x8001634e, 0x1274e43, 0x800154a7, 0x12105d5, 0x80014650, - 0x11abd66, 0x80013847, - 0x11474f6, 0x80012a8e, 0x10e2c85, 0x80011d23, 0x107e414, 0x80011008, - 0x1019ba2, 0x8001033b, - 0xfb5330, 0x8000f6bd, 0xf50abd, 0x8000ea8e, 0xeec249, 0x8000deaf, 0xe879d5, - 0x8000d31e, - 0xe23160, 0x8000c7dc, 0xdbe8eb, 0x8000bce9, 0xd5a075, 0x8000b245, 0xcf57ff, - 0x8000a7f0, - 0xc90f88, 0x80009dea, 0xc2c711, 0x80009433, 0xbc7e99, 0x80008aca, 0xb63621, - 0x800081b1, - 0xafeda8, 0x800078e7, 0xa9a52f, 0x8000706c, 0xa35cb5, 0x8000683f, 0x9d143b, - 0x80006062, - 0x96cbc1, 0x800058d4, 0x908346, 0x80005194, 0x8a3acb, 0x80004aa4, 0x83f250, - 0x80004402, - 0x7da9d4, 0x80003daf, 0x776159, 0x800037ac, 0x7118dc, 0x800031f7, 0x6ad060, - 0x80002c91, - 0x6487e3, 0x8000277a, 0x5e3f66, 0x800022b3, 0x57f6e9, 0x80001e3a, 0x51ae6b, - 0x80001a10, - 0x4b65ee, 0x80001635, 0x451d70, 0x800012a9, 0x3ed4f2, 0x80000f6c, 0x388c74, - 0x80000c7e, - 0x3243f5, 0x800009df, 0x2bfb77, 0x8000078e, 0x25b2f8, 0x8000058d, 0x1f6a7a, - 0x800003db, - 0x1921fb, 0x80000278, 0x12d97c, 0x80000163, 0xc90fe, 0x8000009e, 0x6487f, - 0x80000027, - -}; - -/** -* \par -* cosFactor tables are generated using the formula :
cos_factors[n] = 2 * cos((2n+1)*pi/(4*N))
-* \par -* C command to generate the table -*
    
-* for(i = 0; i< N; i++)    
-* {    
-*   cos_factors[i]= 2 * cos((2*i+1)*c/2);    
-* } 
-* \par -* where N is the number of factors to generate and c is pi/(2*N) -* \par -* Then converted to q31 format by multiplying with 2^31 and saturated if required. -*/ - - -static const q31_t cos_factorsQ31_128[128] = { - 0x7fff6216, 0x7ffa72d1, 0x7ff09478, 0x7fe1c76b, 0x7fce0c3e, 0x7fb563b3, - 0x7f97cebd, 0x7f754e80, - 0x7f4de451, 0x7f2191b4, 0x7ef05860, 0x7eba3a39, 0x7e7f3957, 0x7e3f57ff, - 0x7dfa98a8, 0x7db0fdf8, - 0x7d628ac6, 0x7d0f4218, 0x7cb72724, 0x7c5a3d50, 0x7bf88830, 0x7b920b89, - 0x7b26cb4f, 0x7ab6cba4, - 0x7a4210d8, 0x79c89f6e, 0x794a7c12, 0x78c7aba2, 0x78403329, 0x77b417df, - 0x77235f2d, 0x768e0ea6, - 0x75f42c0b, 0x7555bd4c, 0x74b2c884, 0x740b53fb, 0x735f6626, 0x72af05a7, - 0x71fa3949, 0x71410805, - 0x708378ff, 0x6fc19385, 0x6efb5f12, 0x6e30e34a, 0x6d6227fa, 0x6c8f351c, - 0x6bb812d1, 0x6adcc964, - 0x69fd614a, 0x6919e320, 0x683257ab, 0x6746c7d8, 0x66573cbb, 0x6563bf92, - 0x646c59bf, 0x637114cc, - 0x6271fa69, 0x616f146c, 0x60686ccf, 0x5f5e0db3, 0x5e50015d, 0x5d3e5237, - 0x5c290acc, 0x5b1035cf, - 0x59f3de12, 0x58d40e8c, 0x57b0d256, 0x568a34a9, 0x556040e2, 0x5433027d, - 0x53028518, 0x51ced46e, - 0x5097fc5e, 0x4f5e08e3, 0x4e210617, 0x4ce10034, 0x4b9e0390, 0x4a581c9e, - 0x490f57ee, 0x47c3c22f, - 0x46756828, 0x452456bd, 0x43d09aed, 0x427a41d0, 0x4121589b, 0x3fc5ec98, - 0x3e680b2c, 0x3d07c1d6, - 0x3ba51e29, 0x3a402dd2, 0x38d8fe93, 0x376f9e46, 0x36041ad9, 0x34968250, - 0x3326e2c3, 0x31b54a5e, - 0x3041c761, 0x2ecc681e, 0x2d553afc, 0x2bdc4e6f, 0x2a61b101, 0x28e5714b, - 0x27679df4, 0x25e845b6, - 0x24677758, 0x22e541af, 0x2161b3a0, 0x1fdcdc1b, 0x1e56ca1e, 0x1ccf8cb3, - 0x1b4732ef, 0x19bdcbf3, - 0x183366e9, 0x16a81305, 0x151bdf86, 0x138edbb1, 0x120116d5, 0x1072a048, - 0xee38766, 0xd53db92, - 0xbc3ac35, 0xa3308bd, 0x8a2009a, 0x710a345, 0x57f0035, 0x3ed26e6, 0x25b26d7, - 0xc90f88, -}; - -static const q31_t cos_factorsQ31_512[512] = { - 0x7ffff621, 0x7fffa72c, 0x7fff0943, 0x7ffe1c65, 0x7ffce093, 0x7ffb55ce, - 0x7ff97c18, 0x7ff75370, - 0x7ff4dbd9, 0x7ff21553, 0x7feeffe1, 0x7feb9b85, 0x7fe7e841, 0x7fe3e616, - 0x7fdf9508, 0x7fdaf519, - 0x7fd6064c, 0x7fd0c8a3, 0x7fcb3c23, 0x7fc560cf, 0x7fbf36aa, 0x7fb8bdb8, - 0x7fb1f5fc, 0x7faadf7c, - 0x7fa37a3c, 0x7f9bc640, 0x7f93c38c, 0x7f8b7227, 0x7f82d214, 0x7f79e35a, - 0x7f70a5fe, 0x7f671a05, - 0x7f5d3f75, 0x7f531655, 0x7f489eaa, 0x7f3dd87c, 0x7f32c3d1, 0x7f2760af, - 0x7f1baf1e, 0x7f0faf25, - 0x7f0360cb, 0x7ef6c418, 0x7ee9d914, 0x7edc9fc6, 0x7ecf1837, 0x7ec14270, - 0x7eb31e78, 0x7ea4ac58, - 0x7e95ec1a, 0x7e86ddc6, 0x7e778166, 0x7e67d703, 0x7e57dea7, 0x7e47985b, - 0x7e37042a, 0x7e26221f, - 0x7e14f242, 0x7e0374a0, 0x7df1a942, 0x7ddf9034, 0x7dcd2981, 0x7dba7534, - 0x7da77359, 0x7d9423fc, - 0x7d808728, 0x7d6c9ce9, 0x7d58654d, 0x7d43e05e, 0x7d2f0e2b, 0x7d19eebf, - 0x7d048228, 0x7ceec873, - 0x7cd8c1ae, 0x7cc26de5, 0x7cabcd28, 0x7c94df83, 0x7c7da505, 0x7c661dbc, - 0x7c4e49b7, 0x7c362904, - 0x7c1dbbb3, 0x7c0501d2, 0x7bebfb70, 0x7bd2a89e, 0x7bb9096b, 0x7b9f1de6, - 0x7b84e61f, 0x7b6a6227, - 0x7b4f920e, 0x7b3475e5, 0x7b190dbc, 0x7afd59a4, 0x7ae159ae, 0x7ac50dec, - 0x7aa8766f, 0x7a8b9348, - 0x7a6e648a, 0x7a50ea47, 0x7a332490, 0x7a151378, 0x79f6b711, 0x79d80f6f, - 0x79b91ca4, 0x7999dec4, - 0x797a55e0, 0x795a820e, 0x793a6361, 0x7919f9ec, 0x78f945c3, 0x78d846fb, - 0x78b6fda8, 0x789569df, - 0x78738bb3, 0x7851633b, 0x782ef08b, 0x780c33b8, 0x77e92cd9, 0x77c5dc01, - 0x77a24148, 0x777e5cc3, - 0x775a2e89, 0x7735b6af, 0x7710f54c, 0x76ebea77, 0x76c69647, 0x76a0f8d2, - 0x767b1231, 0x7654e279, - 0x762e69c4, 0x7607a828, 0x75e09dbd, 0x75b94a9c, 0x7591aedd, 0x7569ca99, - 0x75419de7, 0x751928e0, - 0x74f06b9e, 0x74c7663a, 0x749e18cd, 0x74748371, 0x744aa63f, 0x74208150, - 0x73f614c0, 0x73cb60a8, - 0x73a06522, 0x73752249, 0x73499838, 0x731dc70a, 0x72f1aed9, 0x72c54fc1, - 0x7298a9dd, 0x726bbd48, - 0x723e8a20, 0x7211107e, 0x71e35080, 0x71b54a41, 0x7186fdde, 0x71586b74, - 0x7129931f, 0x70fa74fc, - 0x70cb1128, 0x709b67c0, 0x706b78e3, 0x703b44ad, 0x700acb3c, 0x6fda0cae, - 0x6fa90921, 0x6f77c0b3, - 0x6f463383, 0x6f1461b0, 0x6ee24b57, 0x6eaff099, 0x6e7d5193, 0x6e4a6e66, - 0x6e174730, 0x6de3dc11, - 0x6db02d29, 0x6d7c3a98, 0x6d48047e, 0x6d138afb, 0x6cdece2f, 0x6ca9ce3b, - 0x6c748b3f, 0x6c3f055d, - 0x6c093cb6, 0x6bd3316a, 0x6b9ce39b, 0x6b66536b, 0x6b2f80fb, 0x6af86c6c, - 0x6ac115e2, 0x6a897d7d, - 0x6a51a361, 0x6a1987b0, 0x69e12a8c, 0x69a88c19, 0x696fac78, 0x69368bce, - 0x68fd2a3d, 0x68c387e9, - 0x6889a4f6, 0x684f8186, 0x68151dbe, 0x67da79c3, 0x679f95b7, 0x676471c0, - 0x67290e02, 0x66ed6aa1, - 0x66b187c3, 0x6675658c, 0x66390422, 0x65fc63a9, 0x65bf8447, 0x65826622, - 0x6545095f, 0x65076e25, - 0x64c99498, 0x648b7ce0, 0x644d2722, 0x640e9386, 0x63cfc231, 0x6390b34a, - 0x635166f9, 0x6311dd64, - 0x62d216b3, 0x6292130c, 0x6251d298, 0x6211557e, 0x61d09be5, 0x618fa5f7, - 0x614e73da, 0x610d05b7, - 0x60cb5bb7, 0x60897601, 0x604754bf, 0x6004f819, 0x5fc26038, 0x5f7f8d46, - 0x5f3c7f6b, 0x5ef936d1, - 0x5eb5b3a2, 0x5e71f606, 0x5e2dfe29, 0x5de9cc33, 0x5da5604f, 0x5d60baa7, - 0x5d1bdb65, 0x5cd6c2b5, - 0x5c9170bf, 0x5c4be5b0, 0x5c0621b2, 0x5bc024f0, 0x5b79ef96, 0x5b3381ce, - 0x5aecdbc5, 0x5aa5fda5, - 0x5a5ee79a, 0x5a1799d1, 0x59d01475, 0x598857b2, 0x594063b5, 0x58f838a9, - 0x58afd6bd, 0x58673e1b, - 0x581e6ef1, 0x57d5696d, 0x578c2dba, 0x5742bc06, 0x56f9147e, 0x56af3750, - 0x566524aa, 0x561adcb9, - 0x55d05faa, 0x5585adad, 0x553ac6ee, 0x54efab9c, 0x54a45be6, 0x5458d7f9, - 0x540d2005, 0x53c13439, - 0x537514c2, 0x5328c1d0, 0x52dc3b92, 0x528f8238, 0x524295f0, 0x51f576ea, - 0x51a82555, 0x515aa162, - 0x510ceb40, 0x50bf031f, 0x5070e92f, 0x50229da1, 0x4fd420a4, 0x4f857269, - 0x4f369320, 0x4ee782fb, - 0x4e984229, 0x4e48d0dd, 0x4df92f46, 0x4da95d96, 0x4d595bfe, 0x4d092ab0, - 0x4cb8c9dd, 0x4c6839b7, - 0x4c177a6e, 0x4bc68c36, 0x4b756f40, 0x4b2423be, 0x4ad2a9e2, 0x4a8101de, - 0x4a2f2be6, 0x49dd282a, - 0x498af6df, 0x49389836, 0x48e60c62, 0x48935397, 0x48406e08, 0x47ed5be6, - 0x479a1d67, 0x4746b2bc, - 0x46f31c1a, 0x469f59b4, 0x464b6bbe, 0x45f7526b, 0x45a30df0, 0x454e9e80, - 0x44fa0450, 0x44a53f93, - 0x4450507e, 0x43fb3746, 0x43a5f41e, 0x4350873c, 0x42faf0d4, 0x42a5311b, - 0x424f4845, 0x41f93689, - 0x41a2fc1a, 0x414c992f, 0x40f60dfb, 0x409f5ab6, 0x40487f94, 0x3ff17cca, - 0x3f9a5290, 0x3f430119, - 0x3eeb889c, 0x3e93e950, 0x3e3c2369, 0x3de4371f, 0x3d8c24a8, 0x3d33ec39, - 0x3cdb8e09, 0x3c830a50, - 0x3c2a6142, 0x3bd19318, 0x3b78a007, 0x3b1f8848, 0x3ac64c0f, 0x3a6ceb96, - 0x3a136712, 0x39b9bebc, - 0x395ff2c9, 0x39060373, 0x38abf0ef, 0x3851bb77, 0x37f76341, 0x379ce885, - 0x37424b7b, 0x36e78c5b, - 0x368cab5c, 0x3631a8b8, 0x35d684a6, 0x357b3f5d, 0x351fd918, 0x34c4520d, - 0x3468aa76, 0x340ce28b, - 0x33b0fa84, 0x3354f29b, 0x32f8cb07, 0x329c8402, 0x32401dc6, 0x31e39889, - 0x3186f487, 0x312a31f8, - 0x30cd5115, 0x30705217, 0x30133539, 0x2fb5fab2, 0x2f58a2be, 0x2efb2d95, - 0x2e9d9b70, 0x2e3fec8b, - 0x2de2211e, 0x2d843964, 0x2d263596, 0x2cc815ee, 0x2c69daa6, 0x2c0b83fa, - 0x2bad1221, 0x2b4e8558, - 0x2aefddd8, 0x2a911bdc, 0x2a323f9e, 0x29d34958, 0x29743946, 0x29150fa1, - 0x28b5cca5, 0x2856708d, - 0x27f6fb92, 0x27976df1, 0x2737c7e3, 0x26d809a5, 0x26783370, 0x26184581, - 0x25b84012, 0x2558235f, - 0x24f7efa2, 0x2497a517, 0x243743fa, 0x23d6cc87, 0x23763ef7, 0x23159b88, - 0x22b4e274, 0x225413f8, - 0x21f3304f, 0x219237b5, 0x21312a65, 0x20d0089c, 0x206ed295, 0x200d888d, - 0x1fac2abf, 0x1f4ab968, - 0x1ee934c3, 0x1e879d0d, 0x1e25f282, 0x1dc4355e, 0x1d6265dd, 0x1d00843d, - 0x1c9e90b8, 0x1c3c8b8c, - 0x1bda74f6, 0x1b784d30, 0x1b161479, 0x1ab3cb0d, 0x1a517128, 0x19ef0707, - 0x198c8ce7, 0x192a0304, - 0x18c7699b, 0x1864c0ea, 0x1802092c, 0x179f429f, 0x173c6d80, 0x16d98a0c, - 0x1676987f, 0x16139918, - 0x15b08c12, 0x154d71aa, 0x14ea4a1f, 0x148715ae, 0x1423d492, 0x13c0870a, - 0x135d2d53, 0x12f9c7aa, - 0x1296564d, 0x1232d979, 0x11cf516a, 0x116bbe60, 0x11082096, 0x10a4784b, - 0x1040c5bb, 0xfdd0926, - 0xf7942c7, 0xf1572dc, 0xeb199a4, 0xe4db75b, 0xde9cc40, 0xd85d88f, 0xd21dc87, - 0xcbdd865, - 0xc59cc68, 0xbf5b8cb, 0xb919dcf, 0xb2d7baf, 0xac952aa, 0xa6522fe, 0xa00ece8, - 0x99cb0a7, - 0x9386e78, 0x8d42699, 0x86fd947, 0x80b86c2, 0x7a72f45, 0x742d311, 0x6de7262, - 0x67a0d76, - 0x615a48b, 0x5b137df, 0x54cc7b1, 0x4e8543e, 0x483ddc3, 0x41f6480, 0x3bae8b2, - 0x3566a96, - 0x2f1ea6c, 0x28d6870, 0x228e4e2, 0x1c45ffe, 0x15fda03, 0xfb5330, 0x96cbc1, - 0x3243f5, -}; - -static const q31_t cos_factorsQ31_2048[2048] = { - 0x7fffff62, 0x7ffffa73, 0x7ffff094, 0x7fffe1c6, 0x7fffce09, 0x7fffb55c, - 0x7fff97c1, 0x7fff7536, - 0x7fff4dbb, 0x7fff2151, 0x7ffeeff8, 0x7ffeb9b0, 0x7ffe7e79, 0x7ffe3e52, - 0x7ffdf93c, 0x7ffdaf37, - 0x7ffd6042, 0x7ffd0c5f, 0x7ffcb38c, 0x7ffc55ca, 0x7ffbf319, 0x7ffb8b78, - 0x7ffb1ee9, 0x7ffaad6a, - 0x7ffa36fc, 0x7ff9bba0, 0x7ff93b54, 0x7ff8b619, 0x7ff82bef, 0x7ff79cd6, - 0x7ff708ce, 0x7ff66fd7, - 0x7ff5d1f1, 0x7ff52f1d, 0x7ff48759, 0x7ff3daa6, 0x7ff32905, 0x7ff27275, - 0x7ff1b6f6, 0x7ff0f688, - 0x7ff0312c, 0x7fef66e1, 0x7fee97a7, 0x7fedc37e, 0x7fecea67, 0x7fec0c62, - 0x7feb296d, 0x7fea418b, - 0x7fe954ba, 0x7fe862fa, 0x7fe76c4c, 0x7fe670b0, 0x7fe57025, 0x7fe46aac, - 0x7fe36045, 0x7fe250ef, - 0x7fe13cac, 0x7fe0237a, 0x7fdf055a, 0x7fdde24d, 0x7fdcba51, 0x7fdb8d67, - 0x7fda5b8f, 0x7fd924ca, - 0x7fd7e917, 0x7fd6a875, 0x7fd562e7, 0x7fd4186a, 0x7fd2c900, 0x7fd174a8, - 0x7fd01b63, 0x7fcebd31, - 0x7fcd5a11, 0x7fcbf203, 0x7fca8508, 0x7fc91320, 0x7fc79c4b, 0x7fc62089, - 0x7fc49fda, 0x7fc31a3d, - 0x7fc18fb4, 0x7fc0003e, 0x7fbe6bdb, 0x7fbcd28b, 0x7fbb344e, 0x7fb99125, - 0x7fb7e90f, 0x7fb63c0d, - 0x7fb48a1e, 0x7fb2d343, 0x7fb1177b, 0x7faf56c7, 0x7fad9127, 0x7fabc69b, - 0x7fa9f723, 0x7fa822bf, - 0x7fa6496e, 0x7fa46b32, 0x7fa2880b, 0x7fa09ff7, 0x7f9eb2f8, 0x7f9cc10d, - 0x7f9aca37, 0x7f98ce76, - 0x7f96cdc9, 0x7f94c831, 0x7f92bdad, 0x7f90ae3f, 0x7f8e99e6, 0x7f8c80a1, - 0x7f8a6272, 0x7f883f58, - 0x7f861753, 0x7f83ea64, 0x7f81b88a, 0x7f7f81c6, 0x7f7d4617, 0x7f7b057e, - 0x7f78bffb, 0x7f76758e, - 0x7f742637, 0x7f71d1f6, 0x7f6f78cb, 0x7f6d1ab6, 0x7f6ab7b8, 0x7f684fd0, - 0x7f65e2ff, 0x7f637144, - 0x7f60faa0, 0x7f5e7f13, 0x7f5bfe9d, 0x7f59793e, 0x7f56eef5, 0x7f545fc5, - 0x7f51cbab, 0x7f4f32a9, - 0x7f4c94be, 0x7f49f1eb, 0x7f474a30, 0x7f449d8c, 0x7f41ec01, 0x7f3f358d, - 0x7f3c7a31, 0x7f39b9ee, - 0x7f36f4c3, 0x7f342ab1, 0x7f315bb7, 0x7f2e87d6, 0x7f2baf0d, 0x7f28d15d, - 0x7f25eec7, 0x7f230749, - 0x7f201ae5, 0x7f1d299a, 0x7f1a3368, 0x7f173850, 0x7f143852, 0x7f11336d, - 0x7f0e29a3, 0x7f0b1af2, - 0x7f08075c, 0x7f04eedf, 0x7f01d17d, 0x7efeaf36, 0x7efb8809, 0x7ef85bf7, - 0x7ef52b00, 0x7ef1f524, - 0x7eeeba62, 0x7eeb7abc, 0x7ee83632, 0x7ee4ecc3, 0x7ee19e6f, 0x7ede4b38, - 0x7edaf31c, 0x7ed7961c, - 0x7ed43438, 0x7ed0cd70, 0x7ecd61c5, 0x7ec9f137, 0x7ec67bc5, 0x7ec3016f, - 0x7ebf8237, 0x7ebbfe1c, - 0x7eb8751e, 0x7eb4e73d, 0x7eb1547a, 0x7eadbcd4, 0x7eaa204c, 0x7ea67ee2, - 0x7ea2d896, 0x7e9f2d68, - 0x7e9b7d58, 0x7e97c867, 0x7e940e94, 0x7e904fe0, 0x7e8c8c4b, 0x7e88c3d5, - 0x7e84f67e, 0x7e812447, - 0x7e7d4d2f, 0x7e797136, 0x7e75905d, 0x7e71aaa4, 0x7e6dc00c, 0x7e69d093, - 0x7e65dc3b, 0x7e61e303, - 0x7e5de4ec, 0x7e59e1f5, 0x7e55da20, 0x7e51cd6c, 0x7e4dbbd9, 0x7e49a567, - 0x7e458a17, 0x7e4169e9, - 0x7e3d44dd, 0x7e391af3, 0x7e34ec2b, 0x7e30b885, 0x7e2c8002, 0x7e2842a2, - 0x7e240064, 0x7e1fb94a, - 0x7e1b6d53, 0x7e171c7f, 0x7e12c6ce, 0x7e0e6c42, 0x7e0a0cd9, 0x7e05a894, - 0x7e013f74, 0x7dfcd178, - 0x7df85ea0, 0x7df3e6ee, 0x7def6a60, 0x7deae8f7, 0x7de662b3, 0x7de1d795, - 0x7ddd479d, 0x7dd8b2ca, - 0x7dd4191d, 0x7dcf7a96, 0x7dcad736, 0x7dc62efc, 0x7dc181e8, 0x7dbccffc, - 0x7db81936, 0x7db35d98, - 0x7dae9d21, 0x7da9d7d2, 0x7da50dab, 0x7da03eab, 0x7d9b6ad3, 0x7d969224, - 0x7d91b49e, 0x7d8cd240, - 0x7d87eb0a, 0x7d82fefe, 0x7d7e0e1c, 0x7d791862, 0x7d741dd2, 0x7d6f1e6c, - 0x7d6a1a31, 0x7d65111f, - 0x7d600338, 0x7d5af07b, 0x7d55d8e9, 0x7d50bc82, 0x7d4b9b46, 0x7d467536, - 0x7d414a51, 0x7d3c1a98, - 0x7d36e60b, 0x7d31acaa, 0x7d2c6e76, 0x7d272b6e, 0x7d21e393, 0x7d1c96e5, - 0x7d174564, 0x7d11ef11, - 0x7d0c93eb, 0x7d0733f3, 0x7d01cf29, 0x7cfc658d, 0x7cf6f720, 0x7cf183e1, - 0x7cec0bd1, 0x7ce68ef0, - 0x7ce10d3f, 0x7cdb86bd, 0x7cd5fb6a, 0x7cd06b48, 0x7ccad656, 0x7cc53c94, - 0x7cbf9e03, 0x7cb9faa2, - 0x7cb45272, 0x7caea574, 0x7ca8f3a7, 0x7ca33d0c, 0x7c9d81a3, 0x7c97c16b, - 0x7c91fc66, 0x7c8c3294, - 0x7c8663f4, 0x7c809088, 0x7c7ab84e, 0x7c74db48, 0x7c6ef976, 0x7c6912d7, - 0x7c63276d, 0x7c5d3737, - 0x7c574236, 0x7c514869, 0x7c4b49d2, 0x7c45466f, 0x7c3f3e42, 0x7c39314b, - 0x7c331f8a, 0x7c2d08ff, - 0x7c26edab, 0x7c20cd8d, 0x7c1aa8a6, 0x7c147ef6, 0x7c0e507e, 0x7c081d3d, - 0x7c01e534, 0x7bfba863, - 0x7bf566cb, 0x7bef206b, 0x7be8d544, 0x7be28556, 0x7bdc30a1, 0x7bd5d726, - 0x7bcf78e5, 0x7bc915dd, - 0x7bc2ae10, 0x7bbc417e, 0x7bb5d026, 0x7baf5a09, 0x7ba8df28, 0x7ba25f82, - 0x7b9bdb18, 0x7b9551ea, - 0x7b8ec3f8, 0x7b883143, 0x7b8199ca, 0x7b7afd8f, 0x7b745c91, 0x7b6db6d0, - 0x7b670c4d, 0x7b605d09, - 0x7b59a902, 0x7b52f03a, 0x7b4c32b1, 0x7b457068, 0x7b3ea95d, 0x7b37dd92, - 0x7b310d07, 0x7b2a37bc, - 0x7b235db2, 0x7b1c7ee8, 0x7b159b5f, 0x7b0eb318, 0x7b07c612, 0x7b00d44d, - 0x7af9ddcb, 0x7af2e28b, - 0x7aebe28d, 0x7ae4ddd2, 0x7addd45b, 0x7ad6c626, 0x7acfb336, 0x7ac89b89, - 0x7ac17f20, 0x7aba5dfc, - 0x7ab3381d, 0x7aac0d82, 0x7aa4de2d, 0x7a9daa1d, 0x7a967153, 0x7a8f33d0, - 0x7a87f192, 0x7a80aa9c, - 0x7a795eec, 0x7a720e84, 0x7a6ab963, 0x7a635f8a, 0x7a5c00f9, 0x7a549db0, - 0x7a4d35b0, 0x7a45c8f9, - 0x7a3e578b, 0x7a36e166, 0x7a2f668c, 0x7a27e6fb, 0x7a2062b5, 0x7a18d9b9, - 0x7a114c09, 0x7a09b9a4, - 0x7a02228a, 0x79fa86bc, 0x79f2e63a, 0x79eb4105, 0x79e3971c, 0x79dbe880, - 0x79d43532, 0x79cc7d31, - 0x79c4c07e, 0x79bcff19, 0x79b53903, 0x79ad6e3c, 0x79a59ec3, 0x799dca9a, - 0x7995f1c1, 0x798e1438, - 0x798631ff, 0x797e4b16, 0x79765f7f, 0x796e6f39, 0x79667a44, 0x795e80a1, - 0x79568250, 0x794e7f52, - 0x794677a6, 0x793e6b4e, 0x79365a49, 0x792e4497, 0x79262a3a, 0x791e0b31, - 0x7915e77c, 0x790dbf1d, - 0x79059212, 0x78fd605d, 0x78f529fe, 0x78eceef6, 0x78e4af44, 0x78dc6ae8, - 0x78d421e4, 0x78cbd437, - 0x78c381e2, 0x78bb2ae5, 0x78b2cf41, 0x78aa6ef5, 0x78a20a03, 0x7899a06a, - 0x7891322a, 0x7888bf45, - 0x788047ba, 0x7877cb89, 0x786f4ab4, 0x7866c53a, 0x785e3b1c, 0x7855ac5a, - 0x784d18f4, 0x784480ea, - 0x783be43e, 0x783342ef, 0x782a9cfe, 0x7821f26b, 0x78194336, 0x78108f60, - 0x7807d6e9, 0x77ff19d1, - 0x77f65819, 0x77ed91c0, 0x77e4c6c9, 0x77dbf732, 0x77d322fc, 0x77ca4a27, - 0x77c16cb4, 0x77b88aa3, - 0x77afa3f5, 0x77a6b8a9, 0x779dc8c0, 0x7794d43b, 0x778bdb19, 0x7782dd5c, - 0x7779db03, 0x7770d40f, - 0x7767c880, 0x775eb857, 0x7755a394, 0x774c8a36, 0x77436c40, 0x773a49b0, - 0x77312287, 0x7727f6c6, - 0x771ec66e, 0x7715917d, 0x770c57f5, 0x770319d6, 0x76f9d721, 0x76f08fd5, - 0x76e743f4, 0x76ddf37c, - 0x76d49e70, 0x76cb44cf, 0x76c1e699, 0x76b883d0, 0x76af1c72, 0x76a5b082, - 0x769c3ffe, 0x7692cae8, - 0x7689513f, 0x767fd304, 0x76765038, 0x766cc8db, 0x76633ced, 0x7659ac6f, - 0x76501760, 0x76467dc2, - 0x763cdf94, 0x76333cd8, 0x7629958c, 0x761fe9b3, 0x7616394c, 0x760c8457, - 0x7602cad5, 0x75f90cc7, - 0x75ef4a2c, 0x75e58305, 0x75dbb753, 0x75d1e715, 0x75c8124d, 0x75be38fa, - 0x75b45b1d, 0x75aa78b6, - 0x75a091c6, 0x7596a64d, 0x758cb64c, 0x7582c1c2, 0x7578c8b0, 0x756ecb18, - 0x7564c8f8, 0x755ac251, - 0x7550b725, 0x7546a772, 0x753c933a, 0x75327a7d, 0x75285d3b, 0x751e3b75, - 0x7514152b, 0x7509ea5d, - 0x74ffbb0d, 0x74f58739, 0x74eb4ee3, 0x74e1120c, 0x74d6d0b2, 0x74cc8ad8, - 0x74c2407d, 0x74b7f1a1, - 0x74ad9e46, 0x74a3466b, 0x7498ea11, 0x748e8938, 0x748423e0, 0x7479ba0b, - 0x746f4bb8, 0x7464d8e8, - 0x745a619b, 0x744fe5d2, 0x7445658d, 0x743ae0cc, 0x74305790, 0x7425c9da, - 0x741b37a9, 0x7410a0fe, - 0x740605d9, 0x73fb663c, 0x73f0c226, 0x73e61997, 0x73db6c91, 0x73d0bb13, - 0x73c6051f, 0x73bb4ab3, - 0x73b08bd1, 0x73a5c87a, 0x739b00ad, 0x7390346b, 0x738563b5, 0x737a8e8a, - 0x736fb4ec, 0x7364d6da, - 0x7359f456, 0x734f0d5f, 0x734421f6, 0x7339321b, 0x732e3dcf, 0x73234512, - 0x731847e5, 0x730d4648, - 0x7302403c, 0x72f735c0, 0x72ec26d6, 0x72e1137d, 0x72d5fbb7, 0x72cadf83, - 0x72bfbee3, 0x72b499d6, - 0x72a9705c, 0x729e4277, 0x72931027, 0x7287d96c, 0x727c9e47, 0x72715eb8, - 0x72661abf, 0x725ad25d, - 0x724f8593, 0x72443460, 0x7238dec5, 0x722d84c4, 0x7222265b, 0x7216c38c, - 0x720b5c57, 0x71fff0bc, - 0x71f480bc, 0x71e90c57, 0x71dd938f, 0x71d21662, 0x71c694d2, 0x71bb0edf, - 0x71af848a, 0x71a3f5d2, - 0x719862b9, 0x718ccb3f, 0x71812f65, 0x71758f29, 0x7169ea8f, 0x715e4194, - 0x7152943b, 0x7146e284, - 0x713b2c6e, 0x712f71fb, 0x7123b32b, 0x7117effe, 0x710c2875, 0x71005c90, - 0x70f48c50, 0x70e8b7b5, - 0x70dcdec0, 0x70d10171, 0x70c51fc8, 0x70b939c7, 0x70ad4f6d, 0x70a160ba, - 0x70956db1, 0x70897650, - 0x707d7a98, 0x70717a8a, 0x70657626, 0x70596d6d, 0x704d6060, 0x70414efd, - 0x70353947, 0x70291f3e, - 0x701d00e1, 0x7010de32, 0x7004b731, 0x6ff88bde, 0x6fec5c3b, 0x6fe02846, - 0x6fd3f001, 0x6fc7b36d, - 0x6fbb728a, 0x6faf2d57, 0x6fa2e3d7, 0x6f969608, 0x6f8a43ed, 0x6f7ded84, - 0x6f7192cf, 0x6f6533ce, - 0x6f58d082, 0x6f4c68eb, 0x6f3ffd09, 0x6f338cde, 0x6f271868, 0x6f1a9faa, - 0x6f0e22a3, 0x6f01a155, - 0x6ef51bbe, 0x6ee891e1, 0x6edc03bc, 0x6ecf7152, 0x6ec2daa2, 0x6eb63fad, - 0x6ea9a073, 0x6e9cfcf5, - 0x6e905534, 0x6e83a92f, 0x6e76f8e7, 0x6e6a445d, 0x6e5d8b91, 0x6e50ce84, - 0x6e440d37, 0x6e3747a9, - 0x6e2a7ddb, 0x6e1dafce, 0x6e10dd82, 0x6e0406f8, 0x6df72c30, 0x6dea4d2b, - 0x6ddd69e9, 0x6dd0826a, - 0x6dc396b0, 0x6db6a6ba, 0x6da9b28a, 0x6d9cba1f, 0x6d8fbd7a, 0x6d82bc9d, - 0x6d75b786, 0x6d68ae37, - 0x6d5ba0b0, 0x6d4e8ef2, 0x6d4178fd, 0x6d345ed1, 0x6d274070, 0x6d1a1dda, - 0x6d0cf70f, 0x6cffcc0f, - 0x6cf29cdc, 0x6ce56975, 0x6cd831dc, 0x6ccaf610, 0x6cbdb613, 0x6cb071e4, - 0x6ca32985, 0x6c95dcf6, - 0x6c888c36, 0x6c7b3748, 0x6c6dde2b, 0x6c6080e0, 0x6c531f67, 0x6c45b9c1, - 0x6c384fef, 0x6c2ae1f0, - 0x6c1d6fc6, 0x6c0ff971, 0x6c027ef1, 0x6bf50047, 0x6be77d74, 0x6bd9f677, - 0x6bcc6b53, 0x6bbedc06, - 0x6bb14892, 0x6ba3b0f7, 0x6b961536, 0x6b88754f, 0x6b7ad142, 0x6b6d2911, - 0x6b5f7cbc, 0x6b51cc42, - 0x6b4417a6, 0x6b365ee7, 0x6b28a206, 0x6b1ae103, 0x6b0d1bdf, 0x6aff529a, - 0x6af18536, 0x6ae3b3b2, - 0x6ad5de0f, 0x6ac8044e, 0x6aba266e, 0x6aac4472, 0x6a9e5e58, 0x6a907423, - 0x6a8285d1, 0x6a749365, - 0x6a669cdd, 0x6a58a23c, 0x6a4aa381, 0x6a3ca0ad, 0x6a2e99c0, 0x6a208ebb, - 0x6a127f9f, 0x6a046c6c, - 0x69f65523, 0x69e839c4, 0x69da1a50, 0x69cbf6c7, 0x69bdcf29, 0x69afa378, - 0x69a173b5, 0x69933fde, - 0x698507f6, 0x6976cbfc, 0x69688bf1, 0x695a47d6, 0x694bffab, 0x693db371, - 0x692f6328, 0x69210ed1, - 0x6912b66c, 0x690459fb, 0x68f5f97d, 0x68e794f3, 0x68d92c5d, 0x68cabfbd, - 0x68bc4f13, 0x68adda5f, - 0x689f61a1, 0x6890e4dc, 0x6882640e, 0x6873df38, 0x6865565c, 0x6856c979, - 0x68483891, 0x6839a3a4, - 0x682b0ab1, 0x681c6dbb, 0x680dccc1, 0x67ff27c4, 0x67f07ec5, 0x67e1d1c4, - 0x67d320c1, 0x67c46bbe, - 0x67b5b2bb, 0x67a6f5b8, 0x679834b6, 0x67896fb6, 0x677aa6b8, 0x676bd9bd, - 0x675d08c4, 0x674e33d0, - 0x673f5ae0, 0x67307df5, 0x67219d10, 0x6712b831, 0x6703cf58, 0x66f4e287, - 0x66e5f1be, 0x66d6fcfd, - 0x66c80445, 0x66b90797, 0x66aa06f3, 0x669b0259, 0x668bf9cb, 0x667ced49, - 0x666ddcd3, 0x665ec86b, - 0x664fb010, 0x664093c3, 0x66317385, 0x66224f56, 0x66132738, 0x6603fb2a, - 0x65f4cb2d, 0x65e59742, - 0x65d65f69, 0x65c723a3, 0x65b7e3f1, 0x65a8a052, 0x659958c9, 0x658a0d54, - 0x657abdf6, 0x656b6aae, - 0x655c137d, 0x654cb863, 0x653d5962, 0x652df679, 0x651e8faa, 0x650f24f5, - 0x64ffb65b, 0x64f043dc, - 0x64e0cd78, 0x64d15331, 0x64c1d507, 0x64b252fa, 0x64a2cd0c, 0x6493433c, - 0x6483b58c, 0x647423fb, - 0x64648e8c, 0x6454f53d, 0x64455810, 0x6435b706, 0x6426121e, 0x6416695a, - 0x6406bcba, 0x63f70c3f, - 0x63e757ea, 0x63d79fba, 0x63c7e3b1, 0x63b823cf, 0x63a86015, 0x63989884, - 0x6388cd1b, 0x6378fddc, - 0x63692ac7, 0x635953dd, 0x6349791f, 0x63399a8d, 0x6329b827, 0x6319d1ef, - 0x6309e7e4, 0x62f9fa09, - 0x62ea085c, 0x62da12df, 0x62ca1992, 0x62ba1c77, 0x62aa1b8d, 0x629a16d5, - 0x628a0e50, 0x627a01fe, - 0x6269f1e1, 0x6259ddf8, 0x6249c645, 0x6239aac7, 0x62298b81, 0x62196871, - 0x62094199, 0x61f916f9, - 0x61e8e893, 0x61d8b666, 0x61c88074, 0x61b846bc, 0x61a80940, 0x6197c800, - 0x618782fd, 0x61773a37, - 0x6166edb0, 0x61569d67, 0x6146495d, 0x6135f193, 0x6125960a, 0x611536c2, - 0x6104d3bc, 0x60f46cf9, - 0x60e40278, 0x60d3943b, 0x60c32243, 0x60b2ac8f, 0x60a23322, 0x6091b5fa, - 0x60813519, 0x6070b080, - 0x6060282f, 0x604f9c27, 0x603f0c69, 0x602e78f4, 0x601de1ca, 0x600d46ec, - 0x5ffca859, 0x5fec0613, - 0x5fdb601b, 0x5fcab670, 0x5fba0914, 0x5fa95807, 0x5f98a34a, 0x5f87eade, - 0x5f772ec2, 0x5f666ef9, - 0x5f55ab82, 0x5f44e45e, 0x5f34198e, 0x5f234b12, 0x5f1278eb, 0x5f01a31a, - 0x5ef0c99f, 0x5edfec7b, - 0x5ecf0baf, 0x5ebe273b, 0x5ead3f1f, 0x5e9c535e, 0x5e8b63f7, 0x5e7a70ea, - 0x5e697a39, 0x5e587fe5, - 0x5e4781ed, 0x5e368053, 0x5e257b17, 0x5e147239, 0x5e0365bb, 0x5df2559e, - 0x5de141e1, 0x5dd02a85, - 0x5dbf0f8c, 0x5dadf0f5, 0x5d9ccec2, 0x5d8ba8f3, 0x5d7a7f88, 0x5d695283, - 0x5d5821e4, 0x5d46edac, - 0x5d35b5db, 0x5d247a72, 0x5d133b72, 0x5d01f8dc, 0x5cf0b2af, 0x5cdf68ed, - 0x5cce1b97, 0x5cbccaac, - 0x5cab762f, 0x5c9a1e1e, 0x5c88c27c, 0x5c776348, 0x5c660084, 0x5c549a30, - 0x5c43304d, 0x5c31c2db, - 0x5c2051db, 0x5c0edd4e, 0x5bfd6534, 0x5bebe98e, 0x5bda6a5d, 0x5bc8e7a2, - 0x5bb7615d, 0x5ba5d78e, - 0x5b944a37, 0x5b82b958, 0x5b7124f2, 0x5b5f8d06, 0x5b4df193, 0x5b3c529c, - 0x5b2ab020, 0x5b190a20, - 0x5b07609d, 0x5af5b398, 0x5ae40311, 0x5ad24f09, 0x5ac09781, 0x5aaedc78, - 0x5a9d1df1, 0x5a8b5bec, - 0x5a799669, 0x5a67cd69, 0x5a5600ec, 0x5a4430f5, 0x5a325d82, 0x5a208695, - 0x5a0eac2e, 0x59fcce4f, - 0x59eaecf8, 0x59d90829, 0x59c71fe3, 0x59b53427, 0x59a344f6, 0x59915250, - 0x597f5c36, 0x596d62a9, - 0x595b65aa, 0x59496538, 0x59376155, 0x59255a02, 0x59134f3e, 0x5901410c, - 0x58ef2f6b, 0x58dd1a5d, - 0x58cb01e1, 0x58b8e5f9, 0x58a6c6a5, 0x5894a3e7, 0x58827dbe, 0x5870542c, - 0x585e2730, 0x584bf6cd, - 0x5839c302, 0x58278bd1, 0x58155139, 0x5803133c, 0x57f0d1da, 0x57de8d15, - 0x57cc44ec, 0x57b9f960, - 0x57a7aa73, 0x57955825, 0x57830276, 0x5770a968, 0x575e4cfa, 0x574bed2f, - 0x57398a05, 0x5727237f, - 0x5714b99d, 0x57024c5f, 0x56efdbc7, 0x56dd67d4, 0x56caf088, 0x56b875e4, - 0x56a5f7e7, 0x56937694, - 0x5680f1ea, 0x566e69ea, 0x565bde95, 0x56494fec, 0x5636bdef, 0x5624289f, - 0x56118ffe, 0x55fef40a, - 0x55ec54c6, 0x55d9b232, 0x55c70c4f, 0x55b4631d, 0x55a1b69d, 0x558f06d0, - 0x557c53b6, 0x55699d51, - 0x5556e3a1, 0x554426a7, 0x55316663, 0x551ea2d6, 0x550bdc01, 0x54f911e5, - 0x54e64482, 0x54d373d9, - 0x54c09feb, 0x54adc8b8, 0x549aee42, 0x54881089, 0x54752f8d, 0x54624b50, - 0x544f63d2, 0x543c7914, - 0x54298b17, 0x541699db, 0x5403a561, 0x53f0adaa, 0x53ddb2b6, 0x53cab486, - 0x53b7b31c, 0x53a4ae77, - 0x5391a699, 0x537e9b82, 0x536b8d33, 0x53587bad, 0x534566f0, 0x53324efd, - 0x531f33d5, 0x530c1579, - 0x52f8f3e9, 0x52e5cf27, 0x52d2a732, 0x52bf7c0b, 0x52ac4db4, 0x52991c2d, - 0x5285e777, 0x5272af92, - 0x525f7480, 0x524c3640, 0x5238f4d4, 0x5225b03d, 0x5212687b, 0x51ff1d8f, - 0x51ebcf7a, 0x51d87e3c, - 0x51c529d7, 0x51b1d24a, 0x519e7797, 0x518b19bf, 0x5177b8c2, 0x516454a0, - 0x5150ed5c, 0x513d82f4, - 0x512a156b, 0x5116a4c1, 0x510330f7, 0x50efba0d, 0x50dc4005, 0x50c8c2de, - 0x50b5429a, 0x50a1bf39, - 0x508e38bd, 0x507aaf25, 0x50672273, 0x505392a8, 0x503fffc4, 0x502c69c8, - 0x5018d0b4, 0x5005348a, - 0x4ff1954b, 0x4fddf2f6, 0x4fca4d8d, 0x4fb6a510, 0x4fa2f981, 0x4f8f4ae0, - 0x4f7b992d, 0x4f67e46a, - 0x4f542c98, 0x4f4071b6, 0x4f2cb3c7, 0x4f18f2c9, 0x4f052ec0, 0x4ef167aa, - 0x4edd9d89, 0x4ec9d05e, - 0x4eb60029, 0x4ea22ceb, 0x4e8e56a5, 0x4e7a7d58, 0x4e66a105, 0x4e52c1ab, - 0x4e3edf4d, 0x4e2af9ea, - 0x4e171184, 0x4e03261b, 0x4def37b0, 0x4ddb4644, 0x4dc751d8, 0x4db35a6c, - 0x4d9f6001, 0x4d8b6298, - 0x4d776231, 0x4d635ece, 0x4d4f5870, 0x4d3b4f16, 0x4d2742c2, 0x4d133374, - 0x4cff212e, 0x4ceb0bf0, - 0x4cd6f3bb, 0x4cc2d88f, 0x4caeba6e, 0x4c9a9958, 0x4c86754e, 0x4c724e50, - 0x4c5e2460, 0x4c49f77f, - 0x4c35c7ac, 0x4c2194e9, 0x4c0d5f37, 0x4bf92697, 0x4be4eb08, 0x4bd0ac8d, - 0x4bbc6b25, 0x4ba826d1, - 0x4b93df93, 0x4b7f956b, 0x4b6b485a, 0x4b56f861, 0x4b42a580, 0x4b2e4fb8, - 0x4b19f70a, 0x4b059b77, - 0x4af13d00, 0x4adcdba5, 0x4ac87767, 0x4ab41046, 0x4a9fa645, 0x4a8b3963, - 0x4a76c9a2, 0x4a625701, - 0x4a4de182, 0x4a396926, 0x4a24edee, 0x4a106fda, 0x49fbeeea, 0x49e76b21, - 0x49d2e47e, 0x49be5b02, - 0x49a9ceaf, 0x49953f84, 0x4980ad84, 0x496c18ae, 0x49578103, 0x4942e684, - 0x492e4933, 0x4919a90f, - 0x4905061a, 0x48f06054, 0x48dbb7be, 0x48c70c59, 0x48b25e25, 0x489dad25, - 0x4888f957, 0x487442be, - 0x485f8959, 0x484acd2a, 0x48360e32, 0x48214c71, 0x480c87e8, 0x47f7c099, - 0x47e2f682, 0x47ce29a7, - 0x47b95a06, 0x47a487a2, 0x478fb27b, 0x477ada91, 0x4765ffe6, 0x4751227a, - 0x473c424e, 0x47275f63, - 0x471279ba, 0x46fd9154, 0x46e8a631, 0x46d3b852, 0x46bec7b8, 0x46a9d464, - 0x4694de56, 0x467fe590, - 0x466aea12, 0x4655ebdd, 0x4640eaf2, 0x462be751, 0x4616e0fc, 0x4601d7f3, - 0x45eccc37, 0x45d7bdc9, - 0x45c2acaa, 0x45ad98da, 0x4598825a, 0x4583692c, 0x456e4d4f, 0x45592ec6, - 0x45440d90, 0x452ee9ae, - 0x4519c321, 0x450499eb, 0x44ef6e0b, 0x44da3f83, 0x44c50e53, 0x44afda7d, - 0x449aa400, 0x44856adf, - 0x44702f19, 0x445af0b0, 0x4445afa4, 0x44306bf6, 0x441b25a8, 0x4405dcb9, - 0x43f0912b, 0x43db42fe, - 0x43c5f234, 0x43b09ecc, 0x439b48c9, 0x4385f02a, 0x437094f1, 0x435b371f, - 0x4345d6b3, 0x433073b0, - 0x431b0e15, 0x4305a5e5, 0x42f03b1e, 0x42dacdc3, 0x42c55dd4, 0x42afeb53, - 0x429a763f, 0x4284fe99, - 0x426f8463, 0x425a079e, 0x42448849, 0x422f0667, 0x421981f7, 0x4203fafb, - 0x41ee7174, 0x41d8e561, - 0x41c356c5, 0x41adc5a0, 0x419831f3, 0x41829bbe, 0x416d0302, 0x415767c1, - 0x4141c9fb, 0x412c29b1, - 0x411686e4, 0x4100e194, 0x40eb39c3, 0x40d58f71, 0x40bfe29f, 0x40aa334e, - 0x4094817f, 0x407ecd32, - 0x40691669, 0x40535d24, 0x403da165, 0x4027e32b, 0x40122278, 0x3ffc5f4d, - 0x3fe699aa, 0x3fd0d191, - 0x3fbb0702, 0x3fa539fd, 0x3f8f6a85, 0x3f799899, 0x3f63c43b, 0x3f4ded6b, - 0x3f38142a, 0x3f22387a, - 0x3f0c5a5a, 0x3ef679cc, 0x3ee096d1, 0x3ecab169, 0x3eb4c995, 0x3e9edf57, - 0x3e88f2ae, 0x3e73039d, - 0x3e5d1222, 0x3e471e41, 0x3e3127f9, 0x3e1b2f4a, 0x3e053437, 0x3def36c0, - 0x3dd936e6, 0x3dc334a9, - 0x3dad300b, 0x3d97290b, 0x3d811fac, 0x3d6b13ee, 0x3d5505d2, 0x3d3ef559, - 0x3d28e282, 0x3d12cd51, - 0x3cfcb5c4, 0x3ce69bde, 0x3cd07f9f, 0x3cba6107, 0x3ca44018, 0x3c8e1cd3, - 0x3c77f737, 0x3c61cf48, - 0x3c4ba504, 0x3c35786d, 0x3c1f4983, 0x3c091849, 0x3bf2e4be, 0x3bdcaee3, - 0x3bc676b9, 0x3bb03c42, - 0x3b99ff7d, 0x3b83c06c, 0x3b6d7f10, 0x3b573b69, 0x3b40f579, 0x3b2aad3f, - 0x3b1462be, 0x3afe15f6, - 0x3ae7c6e7, 0x3ad17593, 0x3abb21fb, 0x3aa4cc1e, 0x3a8e7400, 0x3a78199f, - 0x3a61bcfd, 0x3a4b5e1b, - 0x3a34fcf9, 0x3a1e9999, 0x3a0833fc, 0x39f1cc21, 0x39db620b, 0x39c4f5ba, - 0x39ae872f, 0x3998166a, - 0x3981a36d, 0x396b2e38, 0x3954b6cd, 0x393e3d2c, 0x3927c155, 0x3911434b, - 0x38fac30e, 0x38e4409e, - 0x38cdbbfc, 0x38b7352a, 0x38a0ac29, 0x388a20f8, 0x38739399, 0x385d040d, - 0x38467255, 0x382fde72, - 0x38194864, 0x3802b02c, 0x37ec15cb, 0x37d57943, 0x37beda93, 0x37a839be, - 0x379196c3, 0x377af1a3, - 0x37644a60, 0x374da0fa, 0x3736f573, 0x372047ca, 0x37099802, 0x36f2e61a, - 0x36dc3214, 0x36c57bf0, - 0x36aec3b0, 0x36980954, 0x36814cde, 0x366a8e4d, 0x3653cda3, 0x363d0ae2, - 0x36264609, 0x360f7f19, - 0x35f8b614, 0x35e1eafa, 0x35cb1dcc, 0x35b44e8c, 0x359d7d39, 0x3586a9d5, - 0x356fd461, 0x3558fcde, - 0x3542234c, 0x352b47ad, 0x35146a00, 0x34fd8a48, 0x34e6a885, 0x34cfc4b7, - 0x34b8dee1, 0x34a1f702, - 0x348b0d1c, 0x3474212f, 0x345d333c, 0x34464345, 0x342f5149, 0x34185d4b, - 0x3401674a, 0x33ea6f48, - 0x33d37546, 0x33bc7944, 0x33a57b44, 0x338e7b46, 0x3377794b, 0x33607554, - 0x33496f62, 0x33326776, - 0x331b5d91, 0x330451b3, 0x32ed43de, 0x32d63412, 0x32bf2250, 0x32a80e99, - 0x3290f8ef, 0x3279e151, - 0x3262c7c1, 0x324bac40, 0x32348ecf, 0x321d6f6e, 0x32064e1e, 0x31ef2ae1, - 0x31d805b7, 0x31c0dea1, - 0x31a9b5a0, 0x31928ab4, 0x317b5de0, 0x31642f23, 0x314cfe7f, 0x3135cbf4, - 0x311e9783, 0x3107612e, - 0x30f028f4, 0x30d8eed8, 0x30c1b2da, 0x30aa74fa, 0x3093353a, 0x307bf39b, - 0x3064b01d, 0x304d6ac1, - 0x30362389, 0x301eda75, 0x30078f86, 0x2ff042bd, 0x2fd8f41b, 0x2fc1a3a0, - 0x2faa514f, 0x2f92fd26, - 0x2f7ba729, 0x2f644f56, 0x2f4cf5b0, 0x2f359a37, 0x2f1e3ced, 0x2f06ddd1, - 0x2eef7ce5, 0x2ed81a29, - 0x2ec0b5a0, 0x2ea94f49, 0x2e91e725, 0x2e7a7d36, 0x2e63117c, 0x2e4ba3f8, - 0x2e3434ac, 0x2e1cc397, - 0x2e0550bb, 0x2deddc19, 0x2dd665b2, 0x2dbeed86, 0x2da77397, 0x2d8ff7e5, - 0x2d787a72, 0x2d60fb3e, - 0x2d497a4a, 0x2d31f797, 0x2d1a7325, 0x2d02ecf7, 0x2ceb650d, 0x2cd3db67, - 0x2cbc5006, 0x2ca4c2ed, - 0x2c8d341a, 0x2c75a390, 0x2c5e114f, 0x2c467d58, 0x2c2ee7ad, 0x2c17504d, - 0x2bffb73a, 0x2be81c74, - 0x2bd07ffe, 0x2bb8e1d7, 0x2ba14200, 0x2b89a07b, 0x2b71fd48, 0x2b5a5868, - 0x2b42b1dd, 0x2b2b09a6, - 0x2b135fc6, 0x2afbb43c, 0x2ae4070a, 0x2acc5831, 0x2ab4a7b1, 0x2a9cf58c, - 0x2a8541c3, 0x2a6d8c55, - 0x2a55d545, 0x2a3e1c93, 0x2a266240, 0x2a0ea64d, 0x29f6e8bb, 0x29df298b, - 0x29c768be, 0x29afa654, - 0x2997e24f, 0x29801caf, 0x29685576, 0x29508ca4, 0x2938c23a, 0x2920f63a, - 0x290928a3, 0x28f15978, - 0x28d988b8, 0x28c1b666, 0x28a9e281, 0x28920d0a, 0x287a3604, 0x28625d6d, - 0x284a8349, 0x2832a796, - 0x281aca57, 0x2802eb8c, 0x27eb0b36, 0x27d32956, 0x27bb45ed, 0x27a360fc, - 0x278b7a84, 0x27739285, - 0x275ba901, 0x2743bdf9, 0x272bd16d, 0x2713e35f, 0x26fbf3ce, 0x26e402bd, - 0x26cc102d, 0x26b41c1d, - 0x269c268f, 0x26842f84, 0x266c36fe, 0x26543cfb, 0x263c417f, 0x26244489, - 0x260c461b, 0x25f44635, - 0x25dc44d9, 0x25c44207, 0x25ac3dc0, 0x25943806, 0x257c30d8, 0x25642839, - 0x254c1e28, 0x253412a8, - 0x251c05b8, 0x2503f75a, 0x24ebe78f, 0x24d3d657, 0x24bbc3b4, 0x24a3afa6, - 0x248b9a2f, 0x2473834f, - 0x245b6b07, 0x24435158, 0x242b3644, 0x241319ca, 0x23fafbec, 0x23e2dcac, - 0x23cabc09, 0x23b29a05, - 0x239a76a0, 0x238251dd, 0x236a2bba, 0x2352043b, 0x2339db5e, 0x2321b126, - 0x23098593, 0x22f158a7, - 0x22d92a61, 0x22c0fac4, 0x22a8c9cf, 0x22909785, 0x227863e5, 0x22602ef1, - 0x2247f8aa, 0x222fc111, - 0x22178826, 0x21ff4dea, 0x21e71260, 0x21ced586, 0x21b6975f, 0x219e57eb, - 0x2186172b, 0x216dd521, - 0x215591cc, 0x213d4d2f, 0x21250749, 0x210cc01d, 0x20f477aa, 0x20dc2df2, - 0x20c3e2f5, 0x20ab96b5, - 0x20934933, 0x207afa6f, 0x2062aa6b, 0x204a5927, 0x203206a4, 0x2019b2e4, - 0x20015de7, 0x1fe907ae, - 0x1fd0b03a, 0x1fb8578b, 0x1f9ffda4, 0x1f87a285, 0x1f6f462f, 0x1f56e8a2, - 0x1f3e89e0, 0x1f2629ea, - 0x1f0dc8c0, 0x1ef56664, 0x1edd02d6, 0x1ec49e17, 0x1eac3829, 0x1e93d10c, - 0x1e7b68c2, 0x1e62ff4a, - 0x1e4a94a7, 0x1e3228d9, 0x1e19bbe0, 0x1e014dbf, 0x1de8de75, 0x1dd06e04, - 0x1db7fc6d, 0x1d9f89b1, - 0x1d8715d0, 0x1d6ea0cc, 0x1d562aa6, 0x1d3db35e, 0x1d253af5, 0x1d0cc16c, - 0x1cf446c5, 0x1cdbcb00, - 0x1cc34e1f, 0x1caad021, 0x1c925109, 0x1c79d0d6, 0x1c614f8b, 0x1c48cd27, - 0x1c3049ac, 0x1c17c51b, - 0x1bff3f75, 0x1be6b8ba, 0x1bce30ec, 0x1bb5a80c, 0x1b9d1e1a, 0x1b849317, - 0x1b6c0705, 0x1b5379e5, - 0x1b3aebb6, 0x1b225c7b, 0x1b09cc34, 0x1af13ae3, 0x1ad8a887, 0x1ac01522, - 0x1aa780b6, 0x1a8eeb42, - 0x1a7654c8, 0x1a5dbd49, 0x1a4524c6, 0x1a2c8b3f, 0x1a13f0b6, 0x19fb552c, - 0x19e2b8a2, 0x19ca1b17, - 0x19b17c8f, 0x1998dd09, 0x19803c86, 0x19679b07, 0x194ef88e, 0x1936551b, - 0x191db0af, 0x19050b4b, - 0x18ec64f0, 0x18d3bda0, 0x18bb155a, 0x18a26c20, 0x1889c1f3, 0x187116d4, - 0x18586ac3, 0x183fbdc3, - 0x18270fd3, 0x180e60f4, 0x17f5b129, 0x17dd0070, 0x17c44ecd, 0x17ab9c3e, - 0x1792e8c6, 0x177a3466, - 0x17617f1d, 0x1748c8ee, 0x173011d9, 0x171759df, 0x16fea102, 0x16e5e741, - 0x16cd2c9f, 0x16b4711b, - 0x169bb4b7, 0x1682f774, 0x166a3953, 0x16517a55, 0x1638ba7a, 0x161ff9c4, - 0x16073834, 0x15ee75cb, - 0x15d5b288, 0x15bcee6f, 0x15a4297f, 0x158b63b9, 0x15729d1f, 0x1559d5b1, - 0x15410d70, 0x1528445d, - 0x150f7a7a, 0x14f6afc7, 0x14dde445, 0x14c517f4, 0x14ac4ad7, 0x14937cee, - 0x147aae3a, 0x1461debc, - 0x14490e74, 0x14303d65, 0x14176b8e, 0x13fe98f1, 0x13e5c58e, 0x13ccf167, - 0x13b41c7d, 0x139b46d0, - 0x13827062, 0x13699933, 0x1350c144, 0x1337e897, 0x131f0f2c, 0x13063505, - 0x12ed5a21, 0x12d47e83, - 0x12bba22b, 0x12a2c51b, 0x1289e752, 0x127108d2, 0x1258299c, 0x123f49b2, - 0x12266913, 0x120d87c1, - 0x11f4a5bd, 0x11dbc307, 0x11c2dfa2, 0x11a9fb8d, 0x119116c9, 0x11783159, - 0x115f4b3c, 0x11466473, - 0x112d7d00, 0x111494e4, 0x10fbac1e, 0x10e2c2b2, 0x10c9d89e, 0x10b0ede5, - 0x10980287, 0x107f1686, - 0x106629e1, 0x104d3c9b, 0x10344eb4, 0x101b602d, 0x10027107, 0xfe98143, - 0xfd090e1, 0xfb79fe4, - 0xf9eae4c, 0xf85bc19, 0xf6cc94e, 0xf53d5ea, 0xf3ae1ee, 0xf21ed5d, 0xf08f836, - 0xef0027b, - 0xed70c2c, 0xebe154b, 0xea51dd8, 0xe8c25d5, 0xe732d42, 0xe5a3421, 0xe413a72, - 0xe284036, - 0xe0f456f, 0xdf64a1c, 0xddd4e40, 0xdc451dc, 0xdab54ef, 0xd92577b, 0xd795982, - 0xd605b03, - 0xd475c00, 0xd2e5c7b, 0xd155c73, 0xcfc5bea, 0xce35ae1, 0xcca5959, 0xcb15752, - 0xc9854cf, - 0xc7f51cf, 0xc664e53, 0xc4d4a5d, 0xc3445ee, 0xc1b4107, 0xc023ba7, 0xbe935d2, - 0xbd02f87, - 0xbb728c7, 0xb9e2193, 0xb8519ed, 0xb6c11d5, 0xb53094d, 0xb3a0055, 0xb20f6ee, - 0xb07ed19, - 0xaeee2d7, 0xad5d829, 0xabccd11, 0xaa3c18e, 0xa8ab5a2, 0xa71a94f, 0xa589c94, - 0xa3f8f73, - 0xa2681ed, 0xa0d7403, 0x9f465b5, 0x9db5706, 0x9c247f5, 0x9a93884, 0x99028b3, - 0x9771884, - 0x95e07f8, 0x944f70f, 0x92be5ca, 0x912d42c, 0x8f9c233, 0x8e0afe2, 0x8c79d3a, - 0x8ae8a3a, - 0x89576e5, 0x87c633c, 0x8634f3e, 0x84a3aee, 0x831264c, 0x8181159, 0x7fefc16, - 0x7e5e685, - 0x7ccd0a5, 0x7b3ba78, 0x79aa400, 0x7818d3c, 0x768762e, 0x74f5ed7, 0x7364738, - 0x71d2f52, - 0x7041726, 0x6eafeb4, 0x6d1e5fe, 0x6b8cd05, 0x69fb3c9, 0x6869a4c, 0x66d808f, - 0x6546692, - 0x63b4c57, 0x62231de, 0x6091729, 0x5effc38, 0x5d6e10c, 0x5bdc5a7, 0x5a4aa09, - 0x58b8e34, - 0x5727228, 0x55955e6, 0x540396f, 0x5271cc4, 0x50dffe7, 0x4f4e2d8, 0x4dbc597, - 0x4c2a827, - 0x4a98a88, 0x4906cbb, 0x4774ec1, 0x45e309a, 0x4451249, 0x42bf3cd, 0x412d528, - 0x3f9b65b, - 0x3e09767, 0x3c7784d, 0x3ae590d, 0x39539a9, 0x37c1a22, 0x362fa78, 0x349daac, - 0x330bac1, - 0x3179ab5, 0x2fe7a8c, 0x2e55a44, 0x2cc39e1, 0x2b31961, 0x299f8c7, 0x280d813, - 0x267b747, - 0x24e9662, 0x2357567, 0x21c5457, 0x2033331, 0x1ea11f7, 0x1d0f0ab, 0x1b7cf4d, - 0x19eaddd, - 0x1858c5e, 0x16c6ad0, 0x1534934, 0x13a278a, 0x12105d5, 0x107e414, 0xeec249, - 0xd5a075, - 0xbc7e99, 0xa35cb5, 0x8a3acb, 0x7118dc, 0x57f6e9, 0x3ed4f2, 0x25b2f8, - 0xc90fe, - -}; - -static const q31_t cos_factorsQ31_8192[8192] = { - 0x7ffffff6, 0x7fffffa7, 0x7fffff09, 0x7ffffe1c, 0x7ffffce1, 0x7ffffb56, - 0x7ffff97c, 0x7ffff753, - 0x7ffff4dc, 0x7ffff215, 0x7fffef00, 0x7fffeb9b, 0x7fffe7e8, 0x7fffe3e5, - 0x7fffdf94, 0x7fffdaf3, - 0x7fffd604, 0x7fffd0c6, 0x7fffcb39, 0x7fffc55c, 0x7fffbf31, 0x7fffb8b7, - 0x7fffb1ee, 0x7fffaad6, - 0x7fffa36f, 0x7fff9bb9, 0x7fff93b4, 0x7fff8b61, 0x7fff82be, 0x7fff79cc, - 0x7fff708b, 0x7fff66fc, - 0x7fff5d1d, 0x7fff52ef, 0x7fff4873, 0x7fff3da8, 0x7fff328d, 0x7fff2724, - 0x7fff1b6b, 0x7fff0f64, - 0x7fff030e, 0x7ffef669, 0x7ffee975, 0x7ffedc31, 0x7ffece9f, 0x7ffec0be, - 0x7ffeb28e, 0x7ffea40f, - 0x7ffe9542, 0x7ffe8625, 0x7ffe76b9, 0x7ffe66fe, 0x7ffe56f5, 0x7ffe469c, - 0x7ffe35f4, 0x7ffe24fe, - 0x7ffe13b8, 0x7ffe0224, 0x7ffdf040, 0x7ffdde0e, 0x7ffdcb8d, 0x7ffdb8bc, - 0x7ffda59d, 0x7ffd922f, - 0x7ffd7e72, 0x7ffd6a66, 0x7ffd560b, 0x7ffd4161, 0x7ffd2c68, 0x7ffd1720, - 0x7ffd0189, 0x7ffceba4, - 0x7ffcd56f, 0x7ffcbeeb, 0x7ffca819, 0x7ffc90f7, 0x7ffc7987, 0x7ffc61c7, - 0x7ffc49b9, 0x7ffc315b, - 0x7ffc18af, 0x7ffbffb4, 0x7ffbe66a, 0x7ffbccd0, 0x7ffbb2e8, 0x7ffb98b1, - 0x7ffb7e2b, 0x7ffb6356, - 0x7ffb4833, 0x7ffb2cc0, 0x7ffb10fe, 0x7ffaf4ed, 0x7ffad88e, 0x7ffabbdf, - 0x7ffa9ee2, 0x7ffa8195, - 0x7ffa63fa, 0x7ffa460f, 0x7ffa27d6, 0x7ffa094e, 0x7ff9ea76, 0x7ff9cb50, - 0x7ff9abdb, 0x7ff98c17, - 0x7ff96c04, 0x7ff94ba2, 0x7ff92af1, 0x7ff909f2, 0x7ff8e8a3, 0x7ff8c705, - 0x7ff8a519, 0x7ff882dd, - 0x7ff86053, 0x7ff83d79, 0x7ff81a51, 0x7ff7f6da, 0x7ff7d313, 0x7ff7aefe, - 0x7ff78a9a, 0x7ff765e7, - 0x7ff740e5, 0x7ff71b94, 0x7ff6f5f4, 0x7ff6d005, 0x7ff6a9c8, 0x7ff6833b, - 0x7ff65c5f, 0x7ff63535, - 0x7ff60dbb, 0x7ff5e5f3, 0x7ff5bddc, 0x7ff59576, 0x7ff56cc0, 0x7ff543bc, - 0x7ff51a69, 0x7ff4f0c7, - 0x7ff4c6d6, 0x7ff49c96, 0x7ff47208, 0x7ff4472a, 0x7ff41bfd, 0x7ff3f082, - 0x7ff3c4b7, 0x7ff3989e, - 0x7ff36c36, 0x7ff33f7e, 0x7ff31278, 0x7ff2e523, 0x7ff2b77f, 0x7ff2898c, - 0x7ff25b4a, 0x7ff22cb9, - 0x7ff1fdd9, 0x7ff1ceab, 0x7ff19f2d, 0x7ff16f61, 0x7ff13f45, 0x7ff10edb, - 0x7ff0de22, 0x7ff0ad19, - 0x7ff07bc2, 0x7ff04a1c, 0x7ff01827, 0x7fefe5e4, 0x7fefb351, 0x7fef806f, - 0x7fef4d3e, 0x7fef19bf, - 0x7feee5f0, 0x7feeb1d3, 0x7fee7d67, 0x7fee48ac, 0x7fee13a1, 0x7fedde48, - 0x7feda8a0, 0x7fed72aa, - 0x7fed3c64, 0x7fed05cf, 0x7fecceec, 0x7fec97b9, 0x7fec6038, 0x7fec2867, - 0x7febf048, 0x7febb7da, - 0x7feb7f1d, 0x7feb4611, 0x7feb0cb6, 0x7fead30c, 0x7fea9914, 0x7fea5ecc, - 0x7fea2436, 0x7fe9e950, - 0x7fe9ae1c, 0x7fe97299, 0x7fe936c7, 0x7fe8faa6, 0x7fe8be36, 0x7fe88177, - 0x7fe84469, 0x7fe8070d, - 0x7fe7c961, 0x7fe78b67, 0x7fe74d1e, 0x7fe70e85, 0x7fe6cf9e, 0x7fe69068, - 0x7fe650e3, 0x7fe61110, - 0x7fe5d0ed, 0x7fe5907b, 0x7fe54fbb, 0x7fe50eac, 0x7fe4cd4d, 0x7fe48ba0, - 0x7fe449a4, 0x7fe40759, - 0x7fe3c4bf, 0x7fe381d7, 0x7fe33e9f, 0x7fe2fb19, 0x7fe2b743, 0x7fe2731f, - 0x7fe22eac, 0x7fe1e9ea, - 0x7fe1a4d9, 0x7fe15f79, 0x7fe119cb, 0x7fe0d3cd, 0x7fe08d81, 0x7fe046e5, - 0x7fdffffb, 0x7fdfb8c2, - 0x7fdf713a, 0x7fdf2963, 0x7fdee13e, 0x7fde98c9, 0x7fde5006, 0x7fde06f3, - 0x7fddbd92, 0x7fdd73e2, - 0x7fdd29e3, 0x7fdcdf95, 0x7fdc94f9, 0x7fdc4a0d, 0x7fdbfed3, 0x7fdbb349, - 0x7fdb6771, 0x7fdb1b4a, - 0x7fdaced4, 0x7fda820f, 0x7fda34fc, 0x7fd9e799, 0x7fd999e8, 0x7fd94be8, - 0x7fd8fd98, 0x7fd8aefa, - 0x7fd8600e, 0x7fd810d2, 0x7fd7c147, 0x7fd7716e, 0x7fd72146, 0x7fd6d0cf, - 0x7fd68009, 0x7fd62ef4, - 0x7fd5dd90, 0x7fd58bdd, 0x7fd539dc, 0x7fd4e78c, 0x7fd494ed, 0x7fd441ff, - 0x7fd3eec2, 0x7fd39b36, - 0x7fd3475c, 0x7fd2f332, 0x7fd29eba, 0x7fd249f3, 0x7fd1f4dd, 0x7fd19f78, - 0x7fd149c5, 0x7fd0f3c2, - 0x7fd09d71, 0x7fd046d1, 0x7fcfefe2, 0x7fcf98a4, 0x7fcf4117, 0x7fcee93c, - 0x7fce9112, 0x7fce3898, - 0x7fcddfd0, 0x7fcd86b9, 0x7fcd2d54, 0x7fccd39f, 0x7fcc799c, 0x7fcc1f4a, - 0x7fcbc4a9, 0x7fcb69b9, - 0x7fcb0e7a, 0x7fcab2ed, 0x7fca5710, 0x7fc9fae5, 0x7fc99e6b, 0x7fc941a2, - 0x7fc8e48b, 0x7fc88724, - 0x7fc8296f, 0x7fc7cb6b, 0x7fc76d18, 0x7fc70e76, 0x7fc6af86, 0x7fc65046, - 0x7fc5f0b8, 0x7fc590db, - 0x7fc530af, 0x7fc4d035, 0x7fc46f6b, 0x7fc40e53, 0x7fc3acec, 0x7fc34b36, - 0x7fc2e931, 0x7fc286de, - 0x7fc2243b, 0x7fc1c14a, 0x7fc15e0a, 0x7fc0fa7b, 0x7fc0969e, 0x7fc03271, - 0x7fbfcdf6, 0x7fbf692c, - 0x7fbf0414, 0x7fbe9eac, 0x7fbe38f6, 0x7fbdd2f0, 0x7fbd6c9c, 0x7fbd05fa, - 0x7fbc9f08, 0x7fbc37c8, - 0x7fbbd039, 0x7fbb685b, 0x7fbb002e, 0x7fba97b2, 0x7fba2ee8, 0x7fb9c5cf, - 0x7fb95c67, 0x7fb8f2b0, - 0x7fb888ab, 0x7fb81e57, 0x7fb7b3b4, 0x7fb748c2, 0x7fb6dd81, 0x7fb671f2, - 0x7fb60614, 0x7fb599e7, - 0x7fb52d6b, 0x7fb4c0a1, 0x7fb45387, 0x7fb3e61f, 0x7fb37869, 0x7fb30a63, - 0x7fb29c0f, 0x7fb22d6c, - 0x7fb1be7a, 0x7fb14f39, 0x7fb0dfaa, 0x7fb06fcb, 0x7fafff9e, 0x7faf8f23, - 0x7faf1e58, 0x7faead3f, - 0x7fae3bd7, 0x7fadca20, 0x7fad581b, 0x7face5c6, 0x7fac7323, 0x7fac0031, - 0x7fab8cf1, 0x7fab1962, - 0x7faaa584, 0x7faa3157, 0x7fa9bcdb, 0x7fa94811, 0x7fa8d2f8, 0x7fa85d90, - 0x7fa7e7d9, 0x7fa771d4, - 0x7fa6fb80, 0x7fa684dd, 0x7fa60dec, 0x7fa596ac, 0x7fa51f1d, 0x7fa4a73f, - 0x7fa42f12, 0x7fa3b697, - 0x7fa33dcd, 0x7fa2c4b5, 0x7fa24b4d, 0x7fa1d197, 0x7fa15792, 0x7fa0dd3f, - 0x7fa0629c, 0x7f9fe7ab, - 0x7f9f6c6b, 0x7f9ef0dd, 0x7f9e7500, 0x7f9df8d4, 0x7f9d7c59, 0x7f9cff90, - 0x7f9c8278, 0x7f9c0511, - 0x7f9b875b, 0x7f9b0957, 0x7f9a8b04, 0x7f9a0c62, 0x7f998d72, 0x7f990e33, - 0x7f988ea5, 0x7f980ec8, - 0x7f978e9d, 0x7f970e23, 0x7f968d5b, 0x7f960c43, 0x7f958add, 0x7f950929, - 0x7f948725, 0x7f9404d3, - 0x7f938232, 0x7f92ff43, 0x7f927c04, 0x7f91f878, 0x7f91749c, 0x7f90f072, - 0x7f906bf9, 0x7f8fe731, - 0x7f8f621b, 0x7f8edcb6, 0x7f8e5702, 0x7f8dd0ff, 0x7f8d4aae, 0x7f8cc40f, - 0x7f8c3d20, 0x7f8bb5e3, - 0x7f8b2e57, 0x7f8aa67d, 0x7f8a1e54, 0x7f8995dc, 0x7f890d15, 0x7f888400, - 0x7f87fa9c, 0x7f8770ea, - 0x7f86e6e9, 0x7f865c99, 0x7f85d1fa, 0x7f85470d, 0x7f84bbd1, 0x7f843047, - 0x7f83a46e, 0x7f831846, - 0x7f828bcf, 0x7f81ff0a, 0x7f8171f6, 0x7f80e494, 0x7f8056e3, 0x7f7fc8e3, - 0x7f7f3a95, 0x7f7eabf8, - 0x7f7e1d0c, 0x7f7d8dd2, 0x7f7cfe49, 0x7f7c6e71, 0x7f7bde4b, 0x7f7b4dd6, - 0x7f7abd13, 0x7f7a2c01, - 0x7f799aa0, 0x7f7908f0, 0x7f7876f2, 0x7f77e4a6, 0x7f77520a, 0x7f76bf21, - 0x7f762be8, 0x7f759861, - 0x7f75048b, 0x7f747067, 0x7f73dbf4, 0x7f734732, 0x7f72b222, 0x7f721cc3, - 0x7f718715, 0x7f70f119, - 0x7f705ace, 0x7f6fc435, 0x7f6f2d4d, 0x7f6e9617, 0x7f6dfe91, 0x7f6d66be, - 0x7f6cce9b, 0x7f6c362a, - 0x7f6b9d6b, 0x7f6b045d, 0x7f6a6b00, 0x7f69d154, 0x7f69375a, 0x7f689d12, - 0x7f68027b, 0x7f676795, - 0x7f66cc61, 0x7f6630de, 0x7f65950c, 0x7f64f8ec, 0x7f645c7d, 0x7f63bfc0, - 0x7f6322b4, 0x7f62855a, - 0x7f61e7b1, 0x7f6149b9, 0x7f60ab73, 0x7f600cdf, 0x7f5f6dfb, 0x7f5ecec9, - 0x7f5e2f49, 0x7f5d8f7a, - 0x7f5cef5c, 0x7f5c4ef0, 0x7f5bae36, 0x7f5b0d2c, 0x7f5a6bd5, 0x7f59ca2e, - 0x7f592839, 0x7f5885f6, - 0x7f57e364, 0x7f574083, 0x7f569d54, 0x7f55f9d6, 0x7f55560a, 0x7f54b1ef, - 0x7f540d86, 0x7f5368ce, - 0x7f52c3c8, 0x7f521e73, 0x7f5178cf, 0x7f50d2dd, 0x7f502c9d, 0x7f4f860e, - 0x7f4edf30, 0x7f4e3804, - 0x7f4d9089, 0x7f4ce8c0, 0x7f4c40a8, 0x7f4b9842, 0x7f4aef8d, 0x7f4a468a, - 0x7f499d38, 0x7f48f398, - 0x7f4849a9, 0x7f479f6c, 0x7f46f4e0, 0x7f464a06, 0x7f459edd, 0x7f44f365, - 0x7f44479f, 0x7f439b8b, - 0x7f42ef28, 0x7f424277, 0x7f419577, 0x7f40e828, 0x7f403a8b, 0x7f3f8ca0, - 0x7f3ede66, 0x7f3e2fde, - 0x7f3d8107, 0x7f3cd1e2, 0x7f3c226e, 0x7f3b72ab, 0x7f3ac29b, 0x7f3a123b, - 0x7f39618e, 0x7f38b091, - 0x7f37ff47, 0x7f374dad, 0x7f369bc6, 0x7f35e990, 0x7f35370b, 0x7f348438, - 0x7f33d116, 0x7f331da6, - 0x7f3269e8, 0x7f31b5db, 0x7f31017f, 0x7f304cd6, 0x7f2f97dd, 0x7f2ee296, - 0x7f2e2d01, 0x7f2d771e, - 0x7f2cc0eb, 0x7f2c0a6b, 0x7f2b539c, 0x7f2a9c7e, 0x7f29e512, 0x7f292d58, - 0x7f28754f, 0x7f27bcf8, - 0x7f270452, 0x7f264b5e, 0x7f25921c, 0x7f24d88b, 0x7f241eab, 0x7f23647e, - 0x7f22aa01, 0x7f21ef37, - 0x7f21341e, 0x7f2078b6, 0x7f1fbd00, 0x7f1f00fc, 0x7f1e44a9, 0x7f1d8808, - 0x7f1ccb18, 0x7f1c0dda, - 0x7f1b504e, 0x7f1a9273, 0x7f19d44a, 0x7f1915d2, 0x7f18570c, 0x7f1797f8, - 0x7f16d895, 0x7f1618e4, - 0x7f1558e4, 0x7f149896, 0x7f13d7fa, 0x7f13170f, 0x7f1255d6, 0x7f11944f, - 0x7f10d279, 0x7f101054, - 0x7f0f4de2, 0x7f0e8b21, 0x7f0dc811, 0x7f0d04b3, 0x7f0c4107, 0x7f0b7d0d, - 0x7f0ab8c4, 0x7f09f42d, - 0x7f092f47, 0x7f086a13, 0x7f07a491, 0x7f06dec0, 0x7f0618a1, 0x7f055233, - 0x7f048b78, 0x7f03c46d, - 0x7f02fd15, 0x7f02356e, 0x7f016d79, 0x7f00a535, 0x7effdca4, 0x7eff13c3, - 0x7efe4a95, 0x7efd8118, - 0x7efcb74d, 0x7efbed33, 0x7efb22cb, 0x7efa5815, 0x7ef98d11, 0x7ef8c1be, - 0x7ef7f61d, 0x7ef72a2d, - 0x7ef65def, 0x7ef59163, 0x7ef4c489, 0x7ef3f760, 0x7ef329e9, 0x7ef25c24, - 0x7ef18e10, 0x7ef0bfae, - 0x7eeff0fe, 0x7eef21ff, 0x7eee52b2, 0x7eed8317, 0x7eecb32d, 0x7eebe2f6, - 0x7eeb1270, 0x7eea419b, - 0x7ee97079, 0x7ee89f08, 0x7ee7cd49, 0x7ee6fb3b, 0x7ee628df, 0x7ee55635, - 0x7ee4833d, 0x7ee3aff6, - 0x7ee2dc61, 0x7ee2087e, 0x7ee1344d, 0x7ee05fcd, 0x7edf8aff, 0x7edeb5e3, - 0x7edde079, 0x7edd0ac0, - 0x7edc34b9, 0x7edb5e64, 0x7eda87c0, 0x7ed9b0ce, 0x7ed8d98e, 0x7ed80200, - 0x7ed72a24, 0x7ed651f9, - 0x7ed57980, 0x7ed4a0b9, 0x7ed3c7a3, 0x7ed2ee40, 0x7ed2148e, 0x7ed13a8e, - 0x7ed0603f, 0x7ecf85a3, - 0x7eceaab8, 0x7ecdcf7f, 0x7eccf3f8, 0x7ecc1822, 0x7ecb3bff, 0x7eca5f8d, - 0x7ec982cd, 0x7ec8a5bf, - 0x7ec7c862, 0x7ec6eab7, 0x7ec60cbe, 0x7ec52e77, 0x7ec44fe2, 0x7ec370fe, - 0x7ec291cd, 0x7ec1b24d, - 0x7ec0d27f, 0x7ebff263, 0x7ebf11f8, 0x7ebe313f, 0x7ebd5039, 0x7ebc6ee4, - 0x7ebb8d40, 0x7ebaab4f, - 0x7eb9c910, 0x7eb8e682, 0x7eb803a6, 0x7eb7207c, 0x7eb63d04, 0x7eb5593d, - 0x7eb47529, 0x7eb390c6, - 0x7eb2ac15, 0x7eb1c716, 0x7eb0e1c9, 0x7eaffc2e, 0x7eaf1645, 0x7eae300d, - 0x7ead4987, 0x7eac62b3, - 0x7eab7b91, 0x7eaa9421, 0x7ea9ac63, 0x7ea8c457, 0x7ea7dbfc, 0x7ea6f353, - 0x7ea60a5d, 0x7ea52118, - 0x7ea43785, 0x7ea34da4, 0x7ea26374, 0x7ea178f7, 0x7ea08e2b, 0x7e9fa312, - 0x7e9eb7aa, 0x7e9dcbf4, - 0x7e9cdff0, 0x7e9bf39e, 0x7e9b06fe, 0x7e9a1a10, 0x7e992cd4, 0x7e983f49, - 0x7e975171, 0x7e96634a, - 0x7e9574d6, 0x7e948613, 0x7e939702, 0x7e92a7a3, 0x7e91b7f6, 0x7e90c7fb, - 0x7e8fd7b2, 0x7e8ee71b, - 0x7e8df636, 0x7e8d0502, 0x7e8c1381, 0x7e8b21b1, 0x7e8a2f94, 0x7e893d28, - 0x7e884a6f, 0x7e875767, - 0x7e866411, 0x7e85706d, 0x7e847c7c, 0x7e83883c, 0x7e8293ae, 0x7e819ed2, - 0x7e80a9a8, 0x7e7fb430, - 0x7e7ebe6a, 0x7e7dc856, 0x7e7cd1f4, 0x7e7bdb44, 0x7e7ae446, 0x7e79ecf9, - 0x7e78f55f, 0x7e77fd77, - 0x7e770541, 0x7e760cbd, 0x7e7513ea, 0x7e741aca, 0x7e73215c, 0x7e7227a0, - 0x7e712d96, 0x7e70333d, - 0x7e6f3897, 0x7e6e3da3, 0x7e6d4261, 0x7e6c46d1, 0x7e6b4af2, 0x7e6a4ec6, - 0x7e69524c, 0x7e685584, - 0x7e67586e, 0x7e665b0a, 0x7e655d58, 0x7e645f58, 0x7e63610a, 0x7e62626e, - 0x7e616384, 0x7e60644c, - 0x7e5f64c7, 0x7e5e64f3, 0x7e5d64d1, 0x7e5c6461, 0x7e5b63a4, 0x7e5a6298, - 0x7e59613f, 0x7e585f97, - 0x7e575da2, 0x7e565b5f, 0x7e5558ce, 0x7e5455ef, 0x7e5352c1, 0x7e524f46, - 0x7e514b7e, 0x7e504767, - 0x7e4f4302, 0x7e4e3e4f, 0x7e4d394f, 0x7e4c3400, 0x7e4b2e64, 0x7e4a287a, - 0x7e492241, 0x7e481bbb, - 0x7e4714e7, 0x7e460dc5, 0x7e450656, 0x7e43fe98, 0x7e42f68c, 0x7e41ee33, - 0x7e40e58c, 0x7e3fdc97, - 0x7e3ed353, 0x7e3dc9c3, 0x7e3cbfe4, 0x7e3bb5b7, 0x7e3aab3c, 0x7e39a074, - 0x7e38955e, 0x7e3789fa, - 0x7e367e48, 0x7e357248, 0x7e3465fa, 0x7e33595e, 0x7e324c75, 0x7e313f3e, - 0x7e3031b9, 0x7e2f23e6, - 0x7e2e15c5, 0x7e2d0756, 0x7e2bf89a, 0x7e2ae990, 0x7e29da38, 0x7e28ca92, - 0x7e27ba9e, 0x7e26aa5d, - 0x7e2599cd, 0x7e2488f0, 0x7e2377c5, 0x7e22664c, 0x7e215486, 0x7e204271, - 0x7e1f300f, 0x7e1e1d5f, - 0x7e1d0a61, 0x7e1bf716, 0x7e1ae37c, 0x7e19cf95, 0x7e18bb60, 0x7e17a6dd, - 0x7e16920d, 0x7e157cee, - 0x7e146782, 0x7e1351c9, 0x7e123bc1, 0x7e11256c, 0x7e100ec8, 0x7e0ef7d7, - 0x7e0de099, 0x7e0cc90c, - 0x7e0bb132, 0x7e0a990a, 0x7e098095, 0x7e0867d1, 0x7e074ec0, 0x7e063561, - 0x7e051bb4, 0x7e0401ba, - 0x7e02e772, 0x7e01ccdc, 0x7e00b1f9, 0x7dff96c7, 0x7dfe7b48, 0x7dfd5f7b, - 0x7dfc4361, 0x7dfb26f9, - 0x7dfa0a43, 0x7df8ed3f, 0x7df7cfee, 0x7df6b24f, 0x7df59462, 0x7df47628, - 0x7df357a0, 0x7df238ca, - 0x7df119a7, 0x7deffa35, 0x7deeda77, 0x7dedba6a, 0x7dec9a10, 0x7deb7968, - 0x7dea5872, 0x7de9372f, - 0x7de8159e, 0x7de6f3c0, 0x7de5d193, 0x7de4af1a, 0x7de38c52, 0x7de2693d, - 0x7de145da, 0x7de02229, - 0x7ddefe2b, 0x7dddd9e0, 0x7ddcb546, 0x7ddb905f, 0x7dda6b2a, 0x7dd945a8, - 0x7dd81fd8, 0x7dd6f9ba, - 0x7dd5d34f, 0x7dd4ac96, 0x7dd38590, 0x7dd25e3c, 0x7dd1369a, 0x7dd00eab, - 0x7dcee66e, 0x7dcdbde3, - 0x7dcc950b, 0x7dcb6be6, 0x7dca4272, 0x7dc918b1, 0x7dc7eea3, 0x7dc6c447, - 0x7dc5999d, 0x7dc46ea6, - 0x7dc34361, 0x7dc217cf, 0x7dc0ebef, 0x7dbfbfc1, 0x7dbe9346, 0x7dbd667d, - 0x7dbc3967, 0x7dbb0c03, - 0x7db9de52, 0x7db8b053, 0x7db78207, 0x7db6536d, 0x7db52485, 0x7db3f550, - 0x7db2c5cd, 0x7db195fd, - 0x7db065df, 0x7daf3574, 0x7dae04bb, 0x7dacd3b5, 0x7daba261, 0x7daa70c0, - 0x7da93ed1, 0x7da80c95, - 0x7da6da0b, 0x7da5a733, 0x7da4740e, 0x7da3409c, 0x7da20cdc, 0x7da0d8cf, - 0x7d9fa474, 0x7d9e6fcb, - 0x7d9d3ad6, 0x7d9c0592, 0x7d9ad001, 0x7d999a23, 0x7d9863f7, 0x7d972d7e, - 0x7d95f6b7, 0x7d94bfa3, - 0x7d938841, 0x7d925092, 0x7d911896, 0x7d8fe04c, 0x7d8ea7b4, 0x7d8d6ecf, - 0x7d8c359d, 0x7d8afc1d, - 0x7d89c250, 0x7d888835, 0x7d874dcd, 0x7d861317, 0x7d84d814, 0x7d839cc4, - 0x7d826126, 0x7d81253a, - 0x7d7fe902, 0x7d7eac7c, 0x7d7d6fa8, 0x7d7c3287, 0x7d7af519, 0x7d79b75d, - 0x7d787954, 0x7d773afd, - 0x7d75fc59, 0x7d74bd68, 0x7d737e29, 0x7d723e9d, 0x7d70fec4, 0x7d6fbe9d, - 0x7d6e7e29, 0x7d6d3d67, - 0x7d6bfc58, 0x7d6abafc, 0x7d697952, 0x7d68375b, 0x7d66f517, 0x7d65b285, - 0x7d646fa6, 0x7d632c79, - 0x7d61e8ff, 0x7d60a538, 0x7d5f6124, 0x7d5e1cc2, 0x7d5cd813, 0x7d5b9316, - 0x7d5a4dcc, 0x7d590835, - 0x7d57c251, 0x7d567c1f, 0x7d5535a0, 0x7d53eed3, 0x7d52a7ba, 0x7d516053, - 0x7d50189e, 0x7d4ed09d, - 0x7d4d884e, 0x7d4c3fb1, 0x7d4af6c8, 0x7d49ad91, 0x7d48640d, 0x7d471a3c, - 0x7d45d01d, 0x7d4485b1, - 0x7d433af8, 0x7d41eff1, 0x7d40a49e, 0x7d3f58fd, 0x7d3e0d0e, 0x7d3cc0d3, - 0x7d3b744a, 0x7d3a2774, - 0x7d38da51, 0x7d378ce0, 0x7d363f23, 0x7d34f118, 0x7d33a2bf, 0x7d32541a, - 0x7d310527, 0x7d2fb5e7, - 0x7d2e665a, 0x7d2d1680, 0x7d2bc659, 0x7d2a75e4, 0x7d292522, 0x7d27d413, - 0x7d2682b6, 0x7d25310d, - 0x7d23df16, 0x7d228cd2, 0x7d213a41, 0x7d1fe762, 0x7d1e9437, 0x7d1d40be, - 0x7d1becf8, 0x7d1a98e5, - 0x7d194485, 0x7d17efd8, 0x7d169add, 0x7d154595, 0x7d13f001, 0x7d129a1f, - 0x7d1143ef, 0x7d0fed73, - 0x7d0e96aa, 0x7d0d3f93, 0x7d0be82f, 0x7d0a907e, 0x7d093880, 0x7d07e035, - 0x7d06879d, 0x7d052eb8, - 0x7d03d585, 0x7d027c05, 0x7d012239, 0x7cffc81f, 0x7cfe6db8, 0x7cfd1304, - 0x7cfbb803, 0x7cfa5cb4, - 0x7cf90119, 0x7cf7a531, 0x7cf648fb, 0x7cf4ec79, 0x7cf38fa9, 0x7cf2328c, - 0x7cf0d522, 0x7cef776b, - 0x7cee1967, 0x7cecbb16, 0x7ceb5c78, 0x7ce9fd8d, 0x7ce89e55, 0x7ce73ed0, - 0x7ce5defd, 0x7ce47ede, - 0x7ce31e72, 0x7ce1bdb8, 0x7ce05cb2, 0x7cdefb5e, 0x7cdd99be, 0x7cdc37d0, - 0x7cdad596, 0x7cd9730e, - 0x7cd8103a, 0x7cd6ad18, 0x7cd549aa, 0x7cd3e5ee, 0x7cd281e5, 0x7cd11d90, - 0x7ccfb8ed, 0x7cce53fe, - 0x7ccceec1, 0x7ccb8937, 0x7cca2361, 0x7cc8bd3d, 0x7cc756cd, 0x7cc5f010, - 0x7cc48905, 0x7cc321ae, - 0x7cc1ba09, 0x7cc05218, 0x7cbee9da, 0x7cbd814f, 0x7cbc1877, 0x7cbaaf51, - 0x7cb945df, 0x7cb7dc20, - 0x7cb67215, 0x7cb507bc, 0x7cb39d16, 0x7cb23223, 0x7cb0c6e4, 0x7caf5b57, - 0x7cadef7e, 0x7cac8358, - 0x7cab16e4, 0x7ca9aa24, 0x7ca83d17, 0x7ca6cfbd, 0x7ca56216, 0x7ca3f423, - 0x7ca285e2, 0x7ca11755, - 0x7c9fa87a, 0x7c9e3953, 0x7c9cc9df, 0x7c9b5a1e, 0x7c99ea10, 0x7c9879b6, - 0x7c97090e, 0x7c95981a, - 0x7c9426d8, 0x7c92b54a, 0x7c91436f, 0x7c8fd148, 0x7c8e5ed3, 0x7c8cec12, - 0x7c8b7903, 0x7c8a05a8, - 0x7c889200, 0x7c871e0c, 0x7c85a9ca, 0x7c84353c, 0x7c82c060, 0x7c814b39, - 0x7c7fd5c4, 0x7c7e6002, - 0x7c7ce9f4, 0x7c7b7399, 0x7c79fcf1, 0x7c7885fc, 0x7c770eba, 0x7c75972c, - 0x7c741f51, 0x7c72a729, - 0x7c712eb5, 0x7c6fb5f3, 0x7c6e3ce5, 0x7c6cc38a, 0x7c6b49e3, 0x7c69cfee, - 0x7c6855ad, 0x7c66db1f, - 0x7c656045, 0x7c63e51e, 0x7c6269aa, 0x7c60ede9, 0x7c5f71db, 0x7c5df581, - 0x7c5c78da, 0x7c5afbe6, - 0x7c597ea6, 0x7c580119, 0x7c56833f, 0x7c550519, 0x7c5386a6, 0x7c5207e6, - 0x7c5088d9, 0x7c4f0980, - 0x7c4d89da, 0x7c4c09e8, 0x7c4a89a8, 0x7c49091c, 0x7c478844, 0x7c46071f, - 0x7c4485ad, 0x7c4303ee, - 0x7c4181e3, 0x7c3fff8b, 0x7c3e7ce7, 0x7c3cf9f5, 0x7c3b76b8, 0x7c39f32d, - 0x7c386f56, 0x7c36eb33, - 0x7c3566c2, 0x7c33e205, 0x7c325cfc, 0x7c30d7a6, 0x7c2f5203, 0x7c2dcc14, - 0x7c2c45d8, 0x7c2abf4f, - 0x7c29387a, 0x7c27b158, 0x7c2629ea, 0x7c24a22f, 0x7c231a28, 0x7c2191d4, - 0x7c200933, 0x7c1e8046, - 0x7c1cf70c, 0x7c1b6d86, 0x7c19e3b3, 0x7c185994, 0x7c16cf28, 0x7c15446f, - 0x7c13b96a, 0x7c122e19, - 0x7c10a27b, 0x7c0f1690, 0x7c0d8a59, 0x7c0bfdd5, 0x7c0a7105, 0x7c08e3e8, - 0x7c07567f, 0x7c05c8c9, - 0x7c043ac7, 0x7c02ac78, 0x7c011ddd, 0x7bff8ef5, 0x7bfdffc1, 0x7bfc7041, - 0x7bfae073, 0x7bf9505a, - 0x7bf7bff4, 0x7bf62f41, 0x7bf49e42, 0x7bf30cf6, 0x7bf17b5e, 0x7befe97a, - 0x7bee5749, 0x7becc4cc, - 0x7beb3202, 0x7be99eec, 0x7be80b89, 0x7be677da, 0x7be4e3df, 0x7be34f97, - 0x7be1bb02, 0x7be02621, - 0x7bde90f4, 0x7bdcfb7b, 0x7bdb65b5, 0x7bd9cfa2, 0x7bd83944, 0x7bd6a298, - 0x7bd50ba1, 0x7bd3745d, - 0x7bd1dccc, 0x7bd044f0, 0x7bceacc7, 0x7bcd1451, 0x7bcb7b8f, 0x7bc9e281, - 0x7bc84927, 0x7bc6af80, - 0x7bc5158c, 0x7bc37b4d, 0x7bc1e0c1, 0x7bc045e9, 0x7bbeaac4, 0x7bbd0f53, - 0x7bbb7396, 0x7bb9d78c, - 0x7bb83b36, 0x7bb69e94, 0x7bb501a5, 0x7bb3646a, 0x7bb1c6e3, 0x7bb02910, - 0x7bae8af0, 0x7bacec84, - 0x7bab4dcc, 0x7ba9aec7, 0x7ba80f76, 0x7ba66fd9, 0x7ba4cfef, 0x7ba32fba, - 0x7ba18f38, 0x7b9fee69, - 0x7b9e4d4f, 0x7b9cabe8, 0x7b9b0a35, 0x7b996836, 0x7b97c5ea, 0x7b962352, - 0x7b94806e, 0x7b92dd3e, - 0x7b9139c2, 0x7b8f95f9, 0x7b8df1e4, 0x7b8c4d83, 0x7b8aa8d6, 0x7b8903dc, - 0x7b875e96, 0x7b85b904, - 0x7b841326, 0x7b826cfc, 0x7b80c686, 0x7b7f1fc3, 0x7b7d78b4, 0x7b7bd159, - 0x7b7a29b2, 0x7b7881be, - 0x7b76d97f, 0x7b7530f3, 0x7b73881b, 0x7b71def7, 0x7b703587, 0x7b6e8bcb, - 0x7b6ce1c2, 0x7b6b376e, - 0x7b698ccd, 0x7b67e1e0, 0x7b6636a7, 0x7b648b22, 0x7b62df51, 0x7b613334, - 0x7b5f86ca, 0x7b5dda15, - 0x7b5c2d13, 0x7b5a7fc6, 0x7b58d22c, 0x7b572446, 0x7b557614, 0x7b53c796, - 0x7b5218cc, 0x7b5069b6, - 0x7b4eba53, 0x7b4d0aa5, 0x7b4b5aab, 0x7b49aa64, 0x7b47f9d2, 0x7b4648f3, - 0x7b4497c9, 0x7b42e652, - 0x7b413490, 0x7b3f8281, 0x7b3dd026, 0x7b3c1d80, 0x7b3a6a8d, 0x7b38b74e, - 0x7b3703c3, 0x7b354fed, - 0x7b339bca, 0x7b31e75b, 0x7b3032a0, 0x7b2e7d9a, 0x7b2cc847, 0x7b2b12a8, - 0x7b295cbe, 0x7b27a687, - 0x7b25f004, 0x7b243936, 0x7b22821b, 0x7b20cab5, 0x7b1f1302, 0x7b1d5b04, - 0x7b1ba2b9, 0x7b19ea23, - 0x7b183141, 0x7b167813, 0x7b14be99, 0x7b1304d3, 0x7b114ac1, 0x7b0f9063, - 0x7b0dd5b9, 0x7b0c1ac4, - 0x7b0a5f82, 0x7b08a3f5, 0x7b06e81b, 0x7b052bf6, 0x7b036f85, 0x7b01b2c8, - 0x7afff5bf, 0x7afe386a, - 0x7afc7aca, 0x7afabcdd, 0x7af8fea5, 0x7af74021, 0x7af58151, 0x7af3c235, - 0x7af202cd, 0x7af0431a, - 0x7aee831a, 0x7aecc2cf, 0x7aeb0238, 0x7ae94155, 0x7ae78026, 0x7ae5beac, - 0x7ae3fce6, 0x7ae23ad4, - 0x7ae07876, 0x7adeb5cc, 0x7adcf2d6, 0x7adb2f95, 0x7ad96c08, 0x7ad7a82f, - 0x7ad5e40a, 0x7ad41f9a, - 0x7ad25ade, 0x7ad095d6, 0x7aced082, 0x7acd0ae3, 0x7acb44f8, 0x7ac97ec1, - 0x7ac7b83e, 0x7ac5f170, - 0x7ac42a55, 0x7ac262ef, 0x7ac09b3e, 0x7abed341, 0x7abd0af7, 0x7abb4263, - 0x7ab97982, 0x7ab7b056, - 0x7ab5e6de, 0x7ab41d1b, 0x7ab2530b, 0x7ab088b0, 0x7aaebe0a, 0x7aacf318, - 0x7aab27da, 0x7aa95c50, - 0x7aa7907b, 0x7aa5c45a, 0x7aa3f7ed, 0x7aa22b35, 0x7aa05e31, 0x7a9e90e1, - 0x7a9cc346, 0x7a9af55f, - 0x7a99272d, 0x7a9758af, 0x7a9589e5, 0x7a93bad0, 0x7a91eb6f, 0x7a901bc2, - 0x7a8e4bca, 0x7a8c7b87, - 0x7a8aaaf7, 0x7a88da1c, 0x7a8708f6, 0x7a853784, 0x7a8365c6, 0x7a8193bd, - 0x7a7fc168, 0x7a7deec8, - 0x7a7c1bdc, 0x7a7a48a4, 0x7a787521, 0x7a76a153, 0x7a74cd38, 0x7a72f8d3, - 0x7a712422, 0x7a6f4f25, - 0x7a6d79dd, 0x7a6ba449, 0x7a69ce6a, 0x7a67f83f, 0x7a6621c9, 0x7a644b07, - 0x7a6273fa, 0x7a609ca1, - 0x7a5ec4fc, 0x7a5ced0d, 0x7a5b14d1, 0x7a593c4b, 0x7a576379, 0x7a558a5b, - 0x7a53b0f2, 0x7a51d73d, - 0x7a4ffd3d, 0x7a4e22f2, 0x7a4c485b, 0x7a4a6d78, 0x7a48924b, 0x7a46b6d1, - 0x7a44db0d, 0x7a42fefd, - 0x7a4122a1, 0x7a3f45fa, 0x7a3d6908, 0x7a3b8bca, 0x7a39ae41, 0x7a37d06d, - 0x7a35f24d, 0x7a3413e2, - 0x7a32352b, 0x7a305629, 0x7a2e76dc, 0x7a2c9743, 0x7a2ab75f, 0x7a28d72f, - 0x7a26f6b4, 0x7a2515ee, - 0x7a2334dd, 0x7a215380, 0x7a1f71d7, 0x7a1d8fe4, 0x7a1bada5, 0x7a19cb1b, - 0x7a17e845, 0x7a160524, - 0x7a1421b8, 0x7a123e01, 0x7a1059fe, 0x7a0e75b0, 0x7a0c9117, 0x7a0aac32, - 0x7a08c702, 0x7a06e187, - 0x7a04fbc1, 0x7a0315af, 0x7a012f52, 0x79ff48aa, 0x79fd61b6, 0x79fb7a77, - 0x79f992ed, 0x79f7ab18, - 0x79f5c2f8, 0x79f3da8c, 0x79f1f1d5, 0x79f008d3, 0x79ee1f86, 0x79ec35ed, - 0x79ea4c09, 0x79e861da, - 0x79e67760, 0x79e48c9b, 0x79e2a18a, 0x79e0b62e, 0x79deca87, 0x79dcde95, - 0x79daf258, 0x79d905d0, - 0x79d718fc, 0x79d52bdd, 0x79d33e73, 0x79d150be, 0x79cf62be, 0x79cd7473, - 0x79cb85dc, 0x79c996fb, - 0x79c7a7ce, 0x79c5b856, 0x79c3c893, 0x79c1d885, 0x79bfe82c, 0x79bdf788, - 0x79bc0698, 0x79ba155e, - 0x79b823d8, 0x79b63207, 0x79b43fec, 0x79b24d85, 0x79b05ad3, 0x79ae67d6, - 0x79ac748e, 0x79aa80fb, - 0x79a88d1d, 0x79a698f4, 0x79a4a480, 0x79a2afc1, 0x79a0bab6, 0x799ec561, - 0x799ccfc1, 0x799ad9d5, - 0x7998e39f, 0x7996ed1e, 0x7994f651, 0x7992ff3a, 0x799107d8, 0x798f102a, - 0x798d1832, 0x798b1fef, - 0x79892761, 0x79872e87, 0x79853563, 0x79833bf4, 0x7981423a, 0x797f4835, - 0x797d4de5, 0x797b534a, - 0x79795864, 0x79775d33, 0x797561b8, 0x797365f1, 0x797169df, 0x796f6d83, - 0x796d70dc, 0x796b73e9, - 0x796976ac, 0x79677924, 0x79657b51, 0x79637d33, 0x79617eca, 0x795f8017, - 0x795d8118, 0x795b81cf, - 0x7959823b, 0x7957825c, 0x79558232, 0x795381bd, 0x795180fe, 0x794f7ff3, - 0x794d7e9e, 0x794b7cfe, - 0x79497b13, 0x794778dd, 0x7945765d, 0x79437391, 0x7941707b, 0x793f6d1a, - 0x793d696f, 0x793b6578, - 0x79396137, 0x79375cab, 0x793557d4, 0x793352b2, 0x79314d46, 0x792f478f, - 0x792d418d, 0x792b3b40, - 0x792934a9, 0x79272dc7, 0x7925269a, 0x79231f22, 0x79211760, 0x791f0f53, - 0x791d06fb, 0x791afe59, - 0x7918f56c, 0x7916ec34, 0x7914e2b2, 0x7912d8e4, 0x7910cecc, 0x790ec46a, - 0x790cb9bd, 0x790aaec5, - 0x7908a382, 0x790697f5, 0x79048c1d, 0x79027ffa, 0x7900738d, 0x78fe66d5, - 0x78fc59d3, 0x78fa4c86, - 0x78f83eee, 0x78f6310c, 0x78f422df, 0x78f21467, 0x78f005a5, 0x78edf698, - 0x78ebe741, 0x78e9d79f, - 0x78e7c7b2, 0x78e5b77b, 0x78e3a6f9, 0x78e1962d, 0x78df8516, 0x78dd73b5, - 0x78db6209, 0x78d95012, - 0x78d73dd1, 0x78d52b46, 0x78d31870, 0x78d1054f, 0x78cef1e4, 0x78ccde2e, - 0x78caca2e, 0x78c8b5e3, - 0x78c6a14e, 0x78c48c6e, 0x78c27744, 0x78c061cf, 0x78be4c10, 0x78bc3606, - 0x78ba1fb2, 0x78b80913, - 0x78b5f22a, 0x78b3daf7, 0x78b1c379, 0x78afabb0, 0x78ad939d, 0x78ab7b40, - 0x78a96298, 0x78a749a6, - 0x78a53069, 0x78a316e2, 0x78a0fd11, 0x789ee2f5, 0x789cc88f, 0x789aadde, - 0x789892e3, 0x7896779d, - 0x78945c0d, 0x78924033, 0x7890240e, 0x788e07a0, 0x788beae6, 0x7889cde2, - 0x7887b094, 0x788592fc, - 0x78837519, 0x788156ec, 0x787f3875, 0x787d19b3, 0x787afaa7, 0x7878db50, - 0x7876bbb0, 0x78749bc5, - 0x78727b8f, 0x78705b10, 0x786e3a46, 0x786c1932, 0x7869f7d3, 0x7867d62a, - 0x7865b437, 0x786391fa, - 0x78616f72, 0x785f4ca1, 0x785d2984, 0x785b061e, 0x7858e26e, 0x7856be73, - 0x78549a2e, 0x7852759e, - 0x785050c5, 0x784e2ba1, 0x784c0633, 0x7849e07b, 0x7847ba79, 0x7845942c, - 0x78436d96, 0x784146b5, - 0x783f1f8a, 0x783cf815, 0x783ad055, 0x7838a84c, 0x78367ff8, 0x7834575a, - 0x78322e72, 0x78300540, - 0x782ddbc4, 0x782bb1fd, 0x782987ed, 0x78275d92, 0x782532ed, 0x782307fe, - 0x7820dcc5, 0x781eb142, - 0x781c8575, 0x781a595d, 0x78182cfc, 0x78160051, 0x7813d35b, 0x7811a61b, - 0x780f7892, 0x780d4abe, - 0x780b1ca0, 0x7808ee38, 0x7806bf86, 0x7804908a, 0x78026145, 0x780031b5, - 0x77fe01db, 0x77fbd1b6, - 0x77f9a148, 0x77f77090, 0x77f53f8e, 0x77f30e42, 0x77f0dcac, 0x77eeaacc, - 0x77ec78a2, 0x77ea462e, - 0x77e81370, 0x77e5e068, 0x77e3ad17, 0x77e1797b, 0x77df4595, 0x77dd1165, - 0x77dadcec, 0x77d8a828, - 0x77d6731a, 0x77d43dc3, 0x77d20822, 0x77cfd236, 0x77cd9c01, 0x77cb6582, - 0x77c92eb9, 0x77c6f7a6, - 0x77c4c04a, 0x77c288a3, 0x77c050b2, 0x77be1878, 0x77bbdff4, 0x77b9a726, - 0x77b76e0e, 0x77b534ac, - 0x77b2fb00, 0x77b0c10b, 0x77ae86cc, 0x77ac4c43, 0x77aa1170, 0x77a7d653, - 0x77a59aec, 0x77a35f3c, - 0x77a12342, 0x779ee6fe, 0x779caa70, 0x779a6d99, 0x77983077, 0x7795f30c, - 0x7793b557, 0x77917759, - 0x778f3910, 0x778cfa7e, 0x778abba2, 0x77887c7d, 0x77863d0d, 0x7783fd54, - 0x7781bd52, 0x777f7d05, - 0x777d3c6f, 0x777afb8f, 0x7778ba65, 0x777678f2, 0x77743735, 0x7771f52e, - 0x776fb2de, 0x776d7044, - 0x776b2d60, 0x7768ea33, 0x7766a6bc, 0x776462fb, 0x77621ef1, 0x775fda9d, - 0x775d95ff, 0x775b5118, - 0x77590be7, 0x7756c66c, 0x775480a8, 0x77523a9b, 0x774ff443, 0x774dada2, - 0x774b66b8, 0x77491f84, - 0x7746d806, 0x7744903f, 0x7742482e, 0x773fffd4, 0x773db730, 0x773b6e42, - 0x7739250b, 0x7736db8b, - 0x773491c0, 0x773247ad, 0x772ffd50, 0x772db2a9, 0x772b67b9, 0x77291c7f, - 0x7726d0fc, 0x7724852f, - 0x77223919, 0x771fecb9, 0x771da010, 0x771b531d, 0x771905e1, 0x7716b85b, - 0x77146a8c, 0x77121c74, - 0x770fce12, 0x770d7f66, 0x770b3072, 0x7708e133, 0x770691ab, 0x770441da, - 0x7701f1c0, 0x76ffa15c, - 0x76fd50ae, 0x76faffb8, 0x76f8ae78, 0x76f65cee, 0x76f40b1b, 0x76f1b8ff, - 0x76ef6699, 0x76ed13ea, - 0x76eac0f2, 0x76e86db0, 0x76e61a25, 0x76e3c650, 0x76e17233, 0x76df1dcb, - 0x76dcc91b, 0x76da7421, - 0x76d81ede, 0x76d5c952, 0x76d3737c, 0x76d11d5d, 0x76cec6f5, 0x76cc7043, - 0x76ca1948, 0x76c7c204, - 0x76c56a77, 0x76c312a0, 0x76c0ba80, 0x76be6217, 0x76bc0965, 0x76b9b069, - 0x76b75724, 0x76b4fd96, - 0x76b2a3bf, 0x76b0499e, 0x76adef34, 0x76ab9481, 0x76a93985, 0x76a6de40, - 0x76a482b1, 0x76a226da, - 0x769fcab9, 0x769d6e4f, 0x769b119b, 0x7698b49f, 0x76965759, 0x7693f9ca, - 0x76919bf3, 0x768f3dd2, - 0x768cdf67, 0x768a80b4, 0x768821b8, 0x7685c272, 0x768362e4, 0x7681030c, - 0x767ea2eb, 0x767c4281, - 0x7679e1ce, 0x767780d2, 0x76751f8d, 0x7672bdfe, 0x76705c27, 0x766dfa07, - 0x766b979d, 0x766934eb, - 0x7666d1ef, 0x76646eab, 0x76620b1d, 0x765fa747, 0x765d4327, 0x765adebe, - 0x76587a0d, 0x76561512, - 0x7653afce, 0x76514a42, 0x764ee46c, 0x764c7e4d, 0x764a17e6, 0x7647b135, - 0x76454a3c, 0x7642e2f9, - 0x76407b6e, 0x763e139a, 0x763bab7c, 0x76394316, 0x7636da67, 0x7634716f, - 0x7632082e, 0x762f9ea4, - 0x762d34d1, 0x762acab6, 0x76286051, 0x7625f5a3, 0x76238aad, 0x76211f6e, - 0x761eb3e6, 0x761c4815, - 0x7619dbfb, 0x76176f98, 0x761502ed, 0x761295f9, 0x761028bb, 0x760dbb35, - 0x760b4d67, 0x7608df4f, - 0x760670ee, 0x76040245, 0x76019353, 0x75ff2418, 0x75fcb495, 0x75fa44c8, - 0x75f7d4b3, 0x75f56455, - 0x75f2f3ae, 0x75f082bf, 0x75ee1187, 0x75eba006, 0x75e92e3c, 0x75e6bc2a, - 0x75e449ce, 0x75e1d72b, - 0x75df643e, 0x75dcf109, 0x75da7d8b, 0x75d809c4, 0x75d595b4, 0x75d3215c, - 0x75d0acbc, 0x75ce37d2, - 0x75cbc2a0, 0x75c94d25, 0x75c6d762, 0x75c46156, 0x75c1eb01, 0x75bf7464, - 0x75bcfd7e, 0x75ba864f, - 0x75b80ed8, 0x75b59718, 0x75b31f0f, 0x75b0a6be, 0x75ae2e25, 0x75abb542, - 0x75a93c18, 0x75a6c2a4, - 0x75a448e8, 0x75a1cee4, 0x759f5496, 0x759cda01, 0x759a5f22, 0x7597e3fc, - 0x7595688c, 0x7592ecd4, - 0x759070d4, 0x758df48b, 0x758b77fa, 0x7588fb20, 0x75867dfd, 0x75840093, - 0x758182df, 0x757f04e3, - 0x757c869f, 0x757a0812, 0x7577893d, 0x75750a1f, 0x75728ab9, 0x75700b0a, - 0x756d8b13, 0x756b0ad3, - 0x75688a4b, 0x7566097b, 0x75638862, 0x75610701, 0x755e8557, 0x755c0365, - 0x7559812b, 0x7556fea8, - 0x75547bdd, 0x7551f8c9, 0x754f756e, 0x754cf1c9, 0x754a6ddd, 0x7547e9a8, - 0x7545652a, 0x7542e065, - 0x75405b57, 0x753dd600, 0x753b5061, 0x7538ca7b, 0x7536444b, 0x7533bdd4, - 0x75313714, 0x752eb00c, - 0x752c28bb, 0x7529a122, 0x75271941, 0x75249118, 0x752208a7, 0x751f7fed, - 0x751cf6eb, 0x751a6da0, - 0x7517e40e, 0x75155a33, 0x7512d010, 0x751045a5, 0x750dbaf2, 0x750b2ff6, - 0x7508a4b2, 0x75061926, - 0x75038d52, 0x75010136, 0x74fe74d1, 0x74fbe825, 0x74f95b30, 0x74f6cdf3, - 0x74f4406d, 0x74f1b2a0, - 0x74ef248b, 0x74ec962d, 0x74ea0787, 0x74e7789a, 0x74e4e964, 0x74e259e6, - 0x74dfca20, 0x74dd3a11, - 0x74daa9bb, 0x74d8191d, 0x74d58836, 0x74d2f708, 0x74d06591, 0x74cdd3d2, - 0x74cb41cc, 0x74c8af7d, - 0x74c61ce6, 0x74c38a07, 0x74c0f6e0, 0x74be6372, 0x74bbcfbb, 0x74b93bbc, - 0x74b6a775, 0x74b412e6, - 0x74b17e0f, 0x74aee8f0, 0x74ac5389, 0x74a9bddb, 0x74a727e4, 0x74a491a5, - 0x74a1fb1e, 0x749f6450, - 0x749ccd39, 0x749a35db, 0x74979e34, 0x74950646, 0x74926e10, 0x748fd592, - 0x748d3ccb, 0x748aa3be, - 0x74880a68, 0x748570ca, 0x7482d6e4, 0x74803cb7, 0x747da242, 0x747b0784, - 0x74786c7f, 0x7475d132, - 0x7473359e, 0x747099c1, 0x746dfd9d, 0x746b6131, 0x7468c47c, 0x74662781, - 0x74638a3d, 0x7460ecb2, - 0x745e4ede, 0x745bb0c3, 0x74591261, 0x745673b6, 0x7453d4c4, 0x7451358a, - 0x744e9608, 0x744bf63e, - 0x7449562d, 0x7446b5d4, 0x74441533, 0x7441744b, 0x743ed31b, 0x743c31a3, - 0x74398fe3, 0x7436eddc, - 0x74344b8d, 0x7431a8f6, 0x742f0618, 0x742c62f2, 0x7429bf84, 0x74271bcf, - 0x742477d2, 0x7421d38e, - 0x741f2f01, 0x741c8a2d, 0x7419e512, 0x74173faf, 0x74149a04, 0x7411f412, - 0x740f4dd8, 0x740ca756, - 0x740a008d, 0x7407597d, 0x7404b224, 0x74020a85, 0x73ff629d, 0x73fcba6e, - 0x73fa11f8, 0x73f7693a, - 0x73f4c034, 0x73f216e7, 0x73ef6d53, 0x73ecc377, 0x73ea1953, 0x73e76ee8, - 0x73e4c435, 0x73e2193b, - 0x73df6df9, 0x73dcc270, 0x73da16a0, 0x73d76a88, 0x73d4be28, 0x73d21182, - 0x73cf6493, 0x73ccb75d, - 0x73ca09e0, 0x73c75c1c, 0x73c4ae10, 0x73c1ffbc, 0x73bf5121, 0x73bca23f, - 0x73b9f315, 0x73b743a4, - 0x73b493ec, 0x73b1e3ec, 0x73af33a5, 0x73ac8316, 0x73a9d240, 0x73a72123, - 0x73a46fbf, 0x73a1be13, - 0x739f0c20, 0x739c59e5, 0x7399a763, 0x7396f49a, 0x73944189, 0x73918e32, - 0x738eda93, 0x738c26ac, - 0x7389727f, 0x7386be0a, 0x7384094e, 0x7381544a, 0x737e9f00, 0x737be96e, - 0x73793395, 0x73767d74, - 0x7373c70d, 0x7371105e, 0x736e5968, 0x736ba22b, 0x7368eaa6, 0x736632db, - 0x73637ac8, 0x7360c26e, - 0x735e09cd, 0x735b50e4, 0x735897b5, 0x7355de3e, 0x73532481, 0x73506a7c, - 0x734db030, 0x734af59d, - 0x73483ac2, 0x73457fa1, 0x7342c438, 0x73400889, 0x733d4c92, 0x733a9054, - 0x7337d3d0, 0x73351704, - 0x733259f1, 0x732f9c97, 0x732cdef6, 0x732a210d, 0x732762de, 0x7324a468, - 0x7321e5ab, 0x731f26a7, - 0x731c675b, 0x7319a7c9, 0x7316e7f0, 0x731427cf, 0x73116768, 0x730ea6ba, - 0x730be5c5, 0x73092489, - 0x73066306, 0x7303a13b, 0x7300df2a, 0x72fe1cd2, 0x72fb5a34, 0x72f8974e, - 0x72f5d421, 0x72f310ad, - 0x72f04cf3, 0x72ed88f1, 0x72eac4a9, 0x72e8001a, 0x72e53b44, 0x72e27627, - 0x72dfb0c3, 0x72dceb18, - 0x72da2526, 0x72d75eee, 0x72d4986f, 0x72d1d1a9, 0x72cf0a9c, 0x72cc4348, - 0x72c97bad, 0x72c6b3cc, - 0x72c3eba4, 0x72c12335, 0x72be5a7f, 0x72bb9183, 0x72b8c83f, 0x72b5feb5, - 0x72b334e4, 0x72b06acd, - 0x72ada06f, 0x72aad5c9, 0x72a80ade, 0x72a53fab, 0x72a27432, 0x729fa872, - 0x729cdc6b, 0x729a101e, - 0x7297438a, 0x729476af, 0x7291a98e, 0x728edc26, 0x728c0e77, 0x72894082, - 0x72867245, 0x7283a3c3, - 0x7280d4f9, 0x727e05e9, 0x727b3693, 0x727866f6, 0x72759712, 0x7272c6e7, - 0x726ff676, 0x726d25bf, - 0x726a54c1, 0x7267837c, 0x7264b1f0, 0x7261e01e, 0x725f0e06, 0x725c3ba7, - 0x72596901, 0x72569615, - 0x7253c2e3, 0x7250ef6a, 0x724e1baa, 0x724b47a4, 0x72487357, 0x72459ec4, - 0x7242c9ea, 0x723ff4ca, - 0x723d1f63, 0x723a49b6, 0x723773c3, 0x72349d89, 0x7231c708, 0x722ef041, - 0x722c1934, 0x722941e0, - 0x72266a46, 0x72239266, 0x7220ba3f, 0x721de1d1, 0x721b091d, 0x72183023, - 0x721556e3, 0x72127d5c, - 0x720fa38e, 0x720cc97b, 0x7209ef21, 0x72071480, 0x7204399a, 0x72015e6d, - 0x71fe82f9, 0x71fba740, - 0x71f8cb40, 0x71f5eefa, 0x71f3126d, 0x71f0359a, 0x71ed5881, 0x71ea7b22, - 0x71e79d7c, 0x71e4bf90, - 0x71e1e15e, 0x71df02e5, 0x71dc2427, 0x71d94522, 0x71d665d6, 0x71d38645, - 0x71d0a66d, 0x71cdc650, - 0x71cae5ec, 0x71c80542, 0x71c52451, 0x71c2431b, 0x71bf619e, 0x71bc7fdb, - 0x71b99dd2, 0x71b6bb83, - 0x71b3d8ed, 0x71b0f612, 0x71ae12f0, 0x71ab2f89, 0x71a84bdb, 0x71a567e7, - 0x71a283ad, 0x719f9f2c, - 0x719cba66, 0x7199d55a, 0x7196f008, 0x71940a6f, 0x71912490, 0x718e3e6c, - 0x718b5801, 0x71887151, - 0x71858a5a, 0x7182a31d, 0x717fbb9a, 0x717cd3d2, 0x7179ebc3, 0x7177036e, - 0x71741ad3, 0x717131f3, - 0x716e48cc, 0x716b5f5f, 0x716875ad, 0x71658bb4, 0x7162a175, 0x715fb6f1, - 0x715ccc26, 0x7159e116, - 0x7156f5c0, 0x71540a24, 0x71511e42, 0x714e321a, 0x714b45ac, 0x714858f8, - 0x71456bfe, 0x71427ebf, - 0x713f9139, 0x713ca36e, 0x7139b55d, 0x7136c706, 0x7133d869, 0x7130e987, - 0x712dfa5e, 0x712b0af0, - 0x71281b3c, 0x71252b42, 0x71223b02, 0x711f4a7d, 0x711c59b2, 0x711968a1, - 0x7116774a, 0x711385ad, - 0x711093cb, 0x710da1a3, 0x710aaf35, 0x7107bc82, 0x7104c989, 0x7101d64a, - 0x70fee2c5, 0x70fbeefb, - 0x70f8faeb, 0x70f60695, 0x70f311fa, 0x70f01d19, 0x70ed27f2, 0x70ea3286, - 0x70e73cd4, 0x70e446dc, - 0x70e1509f, 0x70de5a1c, 0x70db6353, 0x70d86c45, 0x70d574f1, 0x70d27d58, - 0x70cf8579, 0x70cc8d54, - 0x70c994ea, 0x70c69c3a, 0x70c3a345, 0x70c0aa0a, 0x70bdb08a, 0x70bab6c4, - 0x70b7bcb8, 0x70b4c267, - 0x70b1c7d1, 0x70aeccf5, 0x70abd1d3, 0x70a8d66c, 0x70a5dac0, 0x70a2dece, - 0x709fe296, 0x709ce619, - 0x7099e957, 0x7096ec4f, 0x7093ef01, 0x7090f16e, 0x708df396, 0x708af579, - 0x7087f715, 0x7084f86d, - 0x7081f97f, 0x707efa4c, 0x707bfad3, 0x7078fb15, 0x7075fb11, 0x7072fac9, - 0x706ffa3a, 0x706cf967, - 0x7069f84e, 0x7066f6f0, 0x7063f54c, 0x7060f363, 0x705df135, 0x705aeec1, - 0x7057ec08, 0x7054e90a, - 0x7051e5c7, 0x704ee23e, 0x704bde70, 0x7048da5d, 0x7045d604, 0x7042d166, - 0x703fcc83, 0x703cc75b, - 0x7039c1ed, 0x7036bc3b, 0x7033b643, 0x7030b005, 0x702da983, 0x702aa2bb, - 0x70279baf, 0x7024945d, - 0x70218cc6, 0x701e84e9, 0x701b7cc8, 0x70187461, 0x70156bb5, 0x701262c4, - 0x700f598e, 0x700c5013, - 0x70094653, 0x70063c4e, 0x70033203, 0x70002774, 0x6ffd1c9f, 0x6ffa1185, - 0x6ff70626, 0x6ff3fa82, - 0x6ff0ee99, 0x6fede26b, 0x6fead5f8, 0x6fe7c940, 0x6fe4bc43, 0x6fe1af01, - 0x6fdea17a, 0x6fdb93ae, - 0x6fd8859d, 0x6fd57746, 0x6fd268ab, 0x6fcf59cb, 0x6fcc4aa6, 0x6fc93b3c, - 0x6fc62b8d, 0x6fc31b99, - 0x6fc00b60, 0x6fbcfae2, 0x6fb9ea20, 0x6fb6d918, 0x6fb3c7cb, 0x6fb0b63a, - 0x6fada464, 0x6faa9248, - 0x6fa77fe8, 0x6fa46d43, 0x6fa15a59, 0x6f9e472b, 0x6f9b33b7, 0x6f981fff, - 0x6f950c01, 0x6f91f7bf, - 0x6f8ee338, 0x6f8bce6c, 0x6f88b95c, 0x6f85a407, 0x6f828e6c, 0x6f7f788d, - 0x6f7c626a, 0x6f794c01, - 0x6f763554, 0x6f731e62, 0x6f70072b, 0x6f6cefb0, 0x6f69d7f0, 0x6f66bfeb, - 0x6f63a7a1, 0x6f608f13, - 0x6f5d7640, 0x6f5a5d28, 0x6f5743cb, 0x6f542a2a, 0x6f511044, 0x6f4df61a, - 0x6f4adbab, 0x6f47c0f7, - 0x6f44a5ff, 0x6f418ac2, 0x6f3e6f40, 0x6f3b537a, 0x6f38376f, 0x6f351b1f, - 0x6f31fe8b, 0x6f2ee1b2, - 0x6f2bc495, 0x6f28a733, 0x6f25898d, 0x6f226ba2, 0x6f1f4d72, 0x6f1c2efe, - 0x6f191045, 0x6f15f148, - 0x6f12d206, 0x6f0fb280, 0x6f0c92b6, 0x6f0972a6, 0x6f065253, 0x6f0331ba, - 0x6f0010de, 0x6efcefbd, - 0x6ef9ce57, 0x6ef6acad, 0x6ef38abe, 0x6ef0688b, 0x6eed4614, 0x6eea2358, - 0x6ee70058, 0x6ee3dd13, - 0x6ee0b98a, 0x6edd95bd, 0x6eda71ab, 0x6ed74d55, 0x6ed428ba, 0x6ed103db, - 0x6ecddeb8, 0x6ecab950, - 0x6ec793a4, 0x6ec46db4, 0x6ec1477f, 0x6ebe2106, 0x6ebafa49, 0x6eb7d347, - 0x6eb4ac02, 0x6eb18477, - 0x6eae5ca9, 0x6eab3496, 0x6ea80c3f, 0x6ea4e3a4, 0x6ea1bac4, 0x6e9e91a1, - 0x6e9b6839, 0x6e983e8d, - 0x6e95149c, 0x6e91ea67, 0x6e8ebfef, 0x6e8b9532, 0x6e886a30, 0x6e853eeb, - 0x6e821361, 0x6e7ee794, - 0x6e7bbb82, 0x6e788f2c, 0x6e756291, 0x6e7235b3, 0x6e6f0890, 0x6e6bdb2a, - 0x6e68ad7f, 0x6e657f90, - 0x6e62515d, 0x6e5f22e6, 0x6e5bf42b, 0x6e58c52c, 0x6e5595e9, 0x6e526662, - 0x6e4f3696, 0x6e4c0687, - 0x6e48d633, 0x6e45a59c, 0x6e4274c1, 0x6e3f43a1, 0x6e3c123e, 0x6e38e096, - 0x6e35aeab, 0x6e327c7b, - 0x6e2f4a08, 0x6e2c1750, 0x6e28e455, 0x6e25b115, 0x6e227d92, 0x6e1f49cb, - 0x6e1c15c0, 0x6e18e171, - 0x6e15acde, 0x6e127807, 0x6e0f42ec, 0x6e0c0d8e, 0x6e08d7eb, 0x6e05a205, - 0x6e026bda, 0x6dff356c, - 0x6dfbfeba, 0x6df8c7c4, 0x6df5908b, 0x6df2590d, 0x6def214c, 0x6debe947, - 0x6de8b0fe, 0x6de57871, - 0x6de23fa0, 0x6ddf068c, 0x6ddbcd34, 0x6dd89398, 0x6dd559b9, 0x6dd21f95, - 0x6dcee52e, 0x6dcbaa83, - 0x6dc86f95, 0x6dc53462, 0x6dc1f8ec, 0x6dbebd33, 0x6dbb8135, 0x6db844f4, - 0x6db5086f, 0x6db1cba7, - 0x6dae8e9b, 0x6dab514b, 0x6da813b8, 0x6da4d5e1, 0x6da197c6, 0x6d9e5968, - 0x6d9b1ac6, 0x6d97dbe0, - 0x6d949cb7, 0x6d915d4a, 0x6d8e1d9a, 0x6d8adda6, 0x6d879d6e, 0x6d845cf3, - 0x6d811c35, 0x6d7ddb33, - 0x6d7a99ed, 0x6d775864, 0x6d741697, 0x6d70d487, 0x6d6d9233, 0x6d6a4f9c, - 0x6d670cc1, 0x6d63c9a3, - 0x6d608641, 0x6d5d429c, 0x6d59feb3, 0x6d56ba87, 0x6d537617, 0x6d503164, - 0x6d4cec6e, 0x6d49a734, - 0x6d4661b7, 0x6d431bf6, 0x6d3fd5f2, 0x6d3c8fab, 0x6d394920, 0x6d360252, - 0x6d32bb40, 0x6d2f73eb, - 0x6d2c2c53, 0x6d28e477, 0x6d259c58, 0x6d2253f6, 0x6d1f0b50, 0x6d1bc267, - 0x6d18793b, 0x6d152fcc, - 0x6d11e619, 0x6d0e9c23, 0x6d0b51e9, 0x6d08076d, 0x6d04bcad, 0x6d0171aa, - 0x6cfe2663, 0x6cfadada, - 0x6cf78f0d, 0x6cf442fd, 0x6cf0f6aa, 0x6cedaa13, 0x6cea5d3a, 0x6ce7101d, - 0x6ce3c2bd, 0x6ce0751a, - 0x6cdd2733, 0x6cd9d90a, 0x6cd68a9d, 0x6cd33bed, 0x6ccfecfa, 0x6ccc9dc4, - 0x6cc94e4b, 0x6cc5fe8f, - 0x6cc2ae90, 0x6cbf5e4d, 0x6cbc0dc8, 0x6cb8bcff, 0x6cb56bf4, 0x6cb21aa5, - 0x6caec913, 0x6cab773e, - 0x6ca82527, 0x6ca4d2cc, 0x6ca1802e, 0x6c9e2d4d, 0x6c9ada29, 0x6c9786c2, - 0x6c943318, 0x6c90df2c, - 0x6c8d8afc, 0x6c8a3689, 0x6c86e1d3, 0x6c838cdb, 0x6c80379f, 0x6c7ce220, - 0x6c798c5f, 0x6c76365b, - 0x6c72e013, 0x6c6f8989, 0x6c6c32bc, 0x6c68dbac, 0x6c658459, 0x6c622cc4, - 0x6c5ed4eb, 0x6c5b7cd0, - 0x6c582472, 0x6c54cbd1, 0x6c5172ed, 0x6c4e19c6, 0x6c4ac05d, 0x6c4766b0, - 0x6c440cc1, 0x6c40b28f, - 0x6c3d581b, 0x6c39fd63, 0x6c36a269, 0x6c33472c, 0x6c2febad, 0x6c2c8fea, - 0x6c2933e5, 0x6c25d79d, - 0x6c227b13, 0x6c1f1e45, 0x6c1bc136, 0x6c1863e3, 0x6c15064e, 0x6c11a876, - 0x6c0e4a5b, 0x6c0aebfe, - 0x6c078d5e, 0x6c042e7b, 0x6c00cf56, 0x6bfd6fee, 0x6bfa1044, 0x6bf6b056, - 0x6bf35027, 0x6befefb5, - 0x6bec8f00, 0x6be92e08, 0x6be5ccce, 0x6be26b52, 0x6bdf0993, 0x6bdba791, - 0x6bd8454d, 0x6bd4e2c6, - 0x6bd17ffd, 0x6bce1cf1, 0x6bcab9a3, 0x6bc75613, 0x6bc3f23f, 0x6bc08e2a, - 0x6bbd29d2, 0x6bb9c537, - 0x6bb6605a, 0x6bb2fb3b, 0x6baf95d9, 0x6bac3034, 0x6ba8ca4e, 0x6ba56425, - 0x6ba1fdb9, 0x6b9e970b, - 0x6b9b301b, 0x6b97c8e8, 0x6b946173, 0x6b90f9bc, 0x6b8d91c2, 0x6b8a2986, - 0x6b86c107, 0x6b835846, - 0x6b7fef43, 0x6b7c85fe, 0x6b791c76, 0x6b75b2ac, 0x6b7248a0, 0x6b6ede51, - 0x6b6b73c0, 0x6b6808ed, - 0x6b649dd8, 0x6b613280, 0x6b5dc6e6, 0x6b5a5b0a, 0x6b56eeec, 0x6b53828b, - 0x6b5015e9, 0x6b4ca904, - 0x6b493bdd, 0x6b45ce73, 0x6b4260c8, 0x6b3ef2da, 0x6b3b84ab, 0x6b381639, - 0x6b34a785, 0x6b31388e, - 0x6b2dc956, 0x6b2a59dc, 0x6b26ea1f, 0x6b237a21, 0x6b2009e0, 0x6b1c995d, - 0x6b192898, 0x6b15b791, - 0x6b124648, 0x6b0ed4bd, 0x6b0b62f0, 0x6b07f0e1, 0x6b047e90, 0x6b010bfd, - 0x6afd9928, 0x6afa2610, - 0x6af6b2b7, 0x6af33f1c, 0x6aefcb3f, 0x6aec5720, 0x6ae8e2bf, 0x6ae56e1c, - 0x6ae1f937, 0x6ade8410, - 0x6adb0ea8, 0x6ad798fd, 0x6ad42311, 0x6ad0ace2, 0x6acd3672, 0x6ac9bfc0, - 0x6ac648cb, 0x6ac2d195, - 0x6abf5a1e, 0x6abbe264, 0x6ab86a68, 0x6ab4f22b, 0x6ab179ac, 0x6aae00eb, - 0x6aaa87e8, 0x6aa70ea4, - 0x6aa3951d, 0x6aa01b55, 0x6a9ca14b, 0x6a992700, 0x6a95ac72, 0x6a9231a3, - 0x6a8eb692, 0x6a8b3b3f, - 0x6a87bfab, 0x6a8443d5, 0x6a80c7bd, 0x6a7d4b64, 0x6a79cec8, 0x6a7651ec, - 0x6a72d4cd, 0x6a6f576d, - 0x6a6bd9cb, 0x6a685be8, 0x6a64ddc2, 0x6a615f5c, 0x6a5de0b3, 0x6a5a61c9, - 0x6a56e29e, 0x6a536331, - 0x6a4fe382, 0x6a4c6391, 0x6a48e360, 0x6a4562ec, 0x6a41e237, 0x6a3e6140, - 0x6a3ae008, 0x6a375e8f, - 0x6a33dcd4, 0x6a305ad7, 0x6a2cd899, 0x6a295619, 0x6a25d358, 0x6a225055, - 0x6a1ecd11, 0x6a1b498c, - 0x6a17c5c5, 0x6a1441bc, 0x6a10bd72, 0x6a0d38e7, 0x6a09b41a, 0x6a062f0c, - 0x6a02a9bc, 0x69ff242b, - 0x69fb9e59, 0x69f81845, 0x69f491f0, 0x69f10b5a, 0x69ed8482, 0x69e9fd69, - 0x69e6760f, 0x69e2ee73, - 0x69df6696, 0x69dbde77, 0x69d85618, 0x69d4cd77, 0x69d14494, 0x69cdbb71, - 0x69ca320c, 0x69c6a866, - 0x69c31e7f, 0x69bf9456, 0x69bc09ec, 0x69b87f41, 0x69b4f455, 0x69b16928, - 0x69adddb9, 0x69aa5209, - 0x69a6c618, 0x69a339e6, 0x699fad73, 0x699c20be, 0x699893c9, 0x69950692, - 0x6991791a, 0x698deb61, - 0x698a5d67, 0x6986cf2c, 0x698340af, 0x697fb1f2, 0x697c22f3, 0x697893b4, - 0x69750433, 0x69717472, - 0x696de46f, 0x696a542b, 0x6966c3a6, 0x696332e1, 0x695fa1da, 0x695c1092, - 0x69587f09, 0x6954ed40, - 0x69515b35, 0x694dc8e9, 0x694a365c, 0x6946a38f, 0x69431080, 0x693f7d31, - 0x693be9a0, 0x693855cf, - 0x6934c1bd, 0x69312d6a, 0x692d98d6, 0x692a0401, 0x69266eeb, 0x6922d995, - 0x691f43fd, 0x691bae25, - 0x6918180c, 0x691481b2, 0x6910eb17, 0x690d543b, 0x6909bd1f, 0x690625c2, - 0x69028e24, 0x68fef645, - 0x68fb5e25, 0x68f7c5c5, 0x68f42d24, 0x68f09442, 0x68ecfb20, 0x68e961bd, - 0x68e5c819, 0x68e22e34, - 0x68de940f, 0x68daf9a9, 0x68d75f02, 0x68d3c41b, 0x68d028f2, 0x68cc8d8a, - 0x68c8f1e0, 0x68c555f6, - 0x68c1b9cc, 0x68be1d61, 0x68ba80b5, 0x68b6e3c8, 0x68b3469b, 0x68afa92e, - 0x68ac0b7f, 0x68a86d91, - 0x68a4cf61, 0x68a130f1, 0x689d9241, 0x6899f350, 0x6896541f, 0x6892b4ad, - 0x688f14fa, 0x688b7507, - 0x6887d4d4, 0x68843460, 0x688093ab, 0x687cf2b6, 0x68795181, 0x6875b00b, - 0x68720e55, 0x686e6c5e, - 0x686aca27, 0x686727b0, 0x686384f8, 0x685fe200, 0x685c3ec7, 0x68589b4e, - 0x6854f795, 0x6851539b, - 0x684daf61, 0x684a0ae6, 0x6846662c, 0x6842c131, 0x683f1bf5, 0x683b7679, - 0x6837d0bd, 0x68342ac1, - 0x68308485, 0x682cde08, 0x6829374b, 0x6825904d, 0x6821e910, 0x681e4192, - 0x681a99d4, 0x6816f1d6, - 0x68134997, 0x680fa118, 0x680bf85a, 0x68084f5a, 0x6804a61b, 0x6800fc9c, - 0x67fd52dc, 0x67f9a8dd, - 0x67f5fe9d, 0x67f2541d, 0x67eea95d, 0x67eafe5d, 0x67e7531c, 0x67e3a79c, - 0x67dffbdc, 0x67dc4fdb, - 0x67d8a39a, 0x67d4f71a, 0x67d14a59, 0x67cd9d58, 0x67c9f017, 0x67c64297, - 0x67c294d6, 0x67bee6d5, - 0x67bb3894, 0x67b78a13, 0x67b3db53, 0x67b02c52, 0x67ac7d11, 0x67a8cd91, - 0x67a51dd0, 0x67a16dcf, - 0x679dbd8f, 0x679a0d0f, 0x67965c4e, 0x6792ab4e, 0x678efa0e, 0x678b488e, - 0x678796ce, 0x6783e4cf, - 0x6780328f, 0x677c8010, 0x6778cd50, 0x67751a51, 0x67716713, 0x676db394, - 0x6769ffd5, 0x67664bd7, - 0x67629799, 0x675ee31b, 0x675b2e5e, 0x67577960, 0x6753c423, 0x67500ea7, - 0x674c58ea, 0x6748a2ee, - 0x6744ecb2, 0x67413636, 0x673d7f7b, 0x6739c880, 0x67361145, 0x673259ca, - 0x672ea210, 0x672aea17, - 0x672731dd, 0x67237964, 0x671fc0ac, 0x671c07b4, 0x67184e7c, 0x67149504, - 0x6710db4d, 0x670d2157, - 0x67096721, 0x6705acab, 0x6701f1f6, 0x66fe3701, 0x66fa7bcd, 0x66f6c059, - 0x66f304a6, 0x66ef48b3, - 0x66eb8c80, 0x66e7d00f, 0x66e4135d, 0x66e0566c, 0x66dc993c, 0x66d8dbcd, - 0x66d51e1d, 0x66d1602f, - 0x66cda201, 0x66c9e393, 0x66c624e7, 0x66c265fa, 0x66bea6cf, 0x66bae764, - 0x66b727ba, 0x66b367d0, - 0x66afa7a7, 0x66abe73f, 0x66a82697, 0x66a465b0, 0x66a0a489, 0x669ce324, - 0x6699217f, 0x66955f9b, - 0x66919d77, 0x668ddb14, 0x668a1872, 0x66865591, 0x66829270, 0x667ecf11, - 0x667b0b72, 0x66774793, - 0x66738376, 0x666fbf19, 0x666bfa7d, 0x666835a2, 0x66647088, 0x6660ab2f, - 0x665ce596, 0x66591fbf, - 0x665559a8, 0x66519352, 0x664dccbd, 0x664a05e9, 0x66463ed6, 0x66427784, - 0x663eaff2, 0x663ae822, - 0x66372012, 0x663357c4, 0x662f8f36, 0x662bc66a, 0x6627fd5e, 0x66243413, - 0x66206a8a, 0x661ca0c1, - 0x6618d6b9, 0x66150c73, 0x661141ed, 0x660d7729, 0x6609ac25, 0x6605e0e3, - 0x66021561, 0x65fe49a1, - 0x65fa7da2, 0x65f6b164, 0x65f2e4e7, 0x65ef182b, 0x65eb4b30, 0x65e77df6, - 0x65e3b07e, 0x65dfe2c6, - 0x65dc14d0, 0x65d8469b, 0x65d47827, 0x65d0a975, 0x65ccda83, 0x65c90b53, - 0x65c53be4, 0x65c16c36, - 0x65bd9c49, 0x65b9cc1e, 0x65b5fbb4, 0x65b22b0b, 0x65ae5a23, 0x65aa88fd, - 0x65a6b798, 0x65a2e5f4, - 0x659f1412, 0x659b41f1, 0x65976f91, 0x65939cf3, 0x658fca15, 0x658bf6fa, - 0x6588239f, 0x65845006, - 0x65807c2f, 0x657ca818, 0x6578d3c4, 0x6574ff30, 0x65712a5e, 0x656d554d, - 0x65697ffe, 0x6565aa71, - 0x6561d4a4, 0x655dfe99, 0x655a2850, 0x655651c8, 0x65527b02, 0x654ea3fd, - 0x654accba, 0x6546f538, - 0x65431d77, 0x653f4579, 0x653b6d3b, 0x653794c0, 0x6533bc06, 0x652fe30d, - 0x652c09d6, 0x65283061, - 0x652456ad, 0x65207cbb, 0x651ca28a, 0x6518c81b, 0x6514ed6e, 0x65111283, - 0x650d3759, 0x65095bf0, - 0x6505804a, 0x6501a465, 0x64fdc841, 0x64f9ebe0, 0x64f60f40, 0x64f23262, - 0x64ee5546, 0x64ea77eb, - 0x64e69a52, 0x64e2bc7b, 0x64dede66, 0x64db0012, 0x64d72180, 0x64d342b0, - 0x64cf63a2, 0x64cb8456, - 0x64c7a4cb, 0x64c3c502, 0x64bfe4fc, 0x64bc04b6, 0x64b82433, 0x64b44372, - 0x64b06273, 0x64ac8135, - 0x64a89fba, 0x64a4be00, 0x64a0dc08, 0x649cf9d2, 0x6499175e, 0x649534ac, - 0x649151bc, 0x648d6e8e, - 0x64898b22, 0x6485a778, 0x6481c390, 0x647ddf6a, 0x6479fb06, 0x64761664, - 0x64723184, 0x646e4c66, - 0x646a670a, 0x64668170, 0x64629b98, 0x645eb582, 0x645acf2e, 0x6456e89d, - 0x645301cd, 0x644f1ac0, - 0x644b3375, 0x64474bec, 0x64436425, 0x643f7c20, 0x643b93dd, 0x6437ab5d, - 0x6433c29f, 0x642fd9a3, - 0x642bf069, 0x642806f1, 0x64241d3c, 0x64203348, 0x641c4917, 0x64185ea9, - 0x641473fc, 0x64108912, - 0x640c9dea, 0x6408b284, 0x6404c6e1, 0x6400db00, 0x63fceee1, 0x63f90285, - 0x63f515eb, 0x63f12913, - 0x63ed3bfd, 0x63e94eaa, 0x63e5611a, 0x63e1734b, 0x63dd853f, 0x63d996f6, - 0x63d5a86f, 0x63d1b9aa, - 0x63cdcaa8, 0x63c9db68, 0x63c5ebeb, 0x63c1fc30, 0x63be0c37, 0x63ba1c01, - 0x63b62b8e, 0x63b23add, - 0x63ae49ee, 0x63aa58c2, 0x63a66759, 0x63a275b2, 0x639e83cd, 0x639a91ac, - 0x63969f4c, 0x6392acaf, - 0x638eb9d5, 0x638ac6be, 0x6386d369, 0x6382dfd6, 0x637eec07, 0x637af7fa, - 0x637703af, 0x63730f27, - 0x636f1a62, 0x636b2560, 0x63673020, 0x63633aa3, 0x635f44e8, 0x635b4ef0, - 0x635758bb, 0x63536249, - 0x634f6b99, 0x634b74ad, 0x63477d82, 0x6343861b, 0x633f8e76, 0x633b9695, - 0x63379e76, 0x6333a619, - 0x632fad80, 0x632bb4a9, 0x6327bb96, 0x6323c245, 0x631fc8b7, 0x631bceeb, - 0x6317d4e3, 0x6313da9e, - 0x630fe01b, 0x630be55b, 0x6307ea5e, 0x6303ef25, 0x62fff3ae, 0x62fbf7fa, - 0x62f7fc08, 0x62f3ffda, - 0x62f0036f, 0x62ec06c7, 0x62e809e2, 0x62e40cbf, 0x62e00f60, 0x62dc11c4, - 0x62d813eb, 0x62d415d4, - 0x62d01781, 0x62cc18f1, 0x62c81a24, 0x62c41b1a, 0x62c01bd3, 0x62bc1c4f, - 0x62b81c8f, 0x62b41c91, - 0x62b01c57, 0x62ac1bdf, 0x62a81b2b, 0x62a41a3a, 0x62a0190c, 0x629c17a1, - 0x629815fa, 0x62941415, - 0x629011f4, 0x628c0f96, 0x62880cfb, 0x62840a23, 0x6280070f, 0x627c03be, - 0x62780030, 0x6273fc65, - 0x626ff85e, 0x626bf41a, 0x6267ef99, 0x6263eadc, 0x625fe5e1, 0x625be0ab, - 0x6257db37, 0x6253d587, - 0x624fcf9a, 0x624bc970, 0x6247c30a, 0x6243bc68, 0x623fb588, 0x623bae6c, - 0x6237a714, 0x62339f7e, - 0x622f97ad, 0x622b8f9e, 0x62278754, 0x62237ecc, 0x621f7608, 0x621b6d08, - 0x621763cb, 0x62135a51, - 0x620f509b, 0x620b46a9, 0x62073c7a, 0x6203320e, 0x61ff2766, 0x61fb1c82, - 0x61f71161, 0x61f30604, - 0x61eefa6b, 0x61eaee95, 0x61e6e282, 0x61e2d633, 0x61dec9a8, 0x61dabce0, - 0x61d6afdd, 0x61d2a29c, - 0x61ce9520, 0x61ca8767, 0x61c67971, 0x61c26b40, 0x61be5cd2, 0x61ba4e28, - 0x61b63f41, 0x61b2301e, - 0x61ae20bf, 0x61aa1124, 0x61a6014d, 0x61a1f139, 0x619de0e9, 0x6199d05d, - 0x6195bf94, 0x6191ae90, - 0x618d9d4f, 0x61898bd2, 0x61857a19, 0x61816824, 0x617d55f2, 0x61794385, - 0x617530db, 0x61711df5, - 0x616d0ad3, 0x6168f775, 0x6164e3db, 0x6160d005, 0x615cbbf3, 0x6158a7a4, - 0x6154931a, 0x61507e54, - 0x614c6951, 0x61485413, 0x61443e98, 0x614028e2, 0x613c12f0, 0x6137fcc1, - 0x6133e657, 0x612fcfb0, - 0x612bb8ce, 0x6127a1b0, 0x61238a56, 0x611f72c0, 0x611b5aee, 0x611742e0, - 0x61132a96, 0x610f1210, - 0x610af94f, 0x6106e051, 0x6102c718, 0x60feada3, 0x60fa93f2, 0x60f67a05, - 0x60f25fdd, 0x60ee4579, - 0x60ea2ad8, 0x60e60ffd, 0x60e1f4e5, 0x60ddd991, 0x60d9be02, 0x60d5a237, - 0x60d18631, 0x60cd69ee, - 0x60c94d70, 0x60c530b6, 0x60c113c1, 0x60bcf690, 0x60b8d923, 0x60b4bb7a, - 0x60b09d96, 0x60ac7f76, - 0x60a8611b, 0x60a44284, 0x60a023b1, 0x609c04a3, 0x6097e559, 0x6093c5d3, - 0x608fa612, 0x608b8616, - 0x608765dd, 0x6083456a, 0x607f24ba, 0x607b03d0, 0x6076e2a9, 0x6072c148, - 0x606e9faa, 0x606a7dd2, - 0x60665bbd, 0x6062396e, 0x605e16e2, 0x6059f41c, 0x6055d11a, 0x6051addc, - 0x604d8a63, 0x604966af, - 0x604542bf, 0x60411e94, 0x603cfa2e, 0x6038d58c, 0x6034b0af, 0x60308b97, - 0x602c6643, 0x602840b4, - 0x60241ae9, 0x601ff4e3, 0x601bcea2, 0x6017a826, 0x6013816e, 0x600f5a7b, - 0x600b334d, 0x60070be4, - 0x6002e43f, 0x5ffebc5f, 0x5ffa9444, 0x5ff66bee, 0x5ff2435d, 0x5fee1a90, - 0x5fe9f188, 0x5fe5c845, - 0x5fe19ec7, 0x5fdd750e, 0x5fd94b19, 0x5fd520ea, 0x5fd0f67f, 0x5fcccbd9, - 0x5fc8a0f8, 0x5fc475dc, - 0x5fc04a85, 0x5fbc1ef3, 0x5fb7f326, 0x5fb3c71e, 0x5faf9adb, 0x5fab6e5d, - 0x5fa741a3, 0x5fa314af, - 0x5f9ee780, 0x5f9aba16, 0x5f968c70, 0x5f925e90, 0x5f8e3075, 0x5f8a021f, - 0x5f85d38e, 0x5f81a4c2, - 0x5f7d75bb, 0x5f794679, 0x5f7516fd, 0x5f70e745, 0x5f6cb753, 0x5f688726, - 0x5f6456be, 0x5f60261b, - 0x5f5bf53d, 0x5f57c424, 0x5f5392d1, 0x5f4f6143, 0x5f4b2f7a, 0x5f46fd76, - 0x5f42cb37, 0x5f3e98be, - 0x5f3a660a, 0x5f36331b, 0x5f31fff1, 0x5f2dcc8d, 0x5f2998ee, 0x5f256515, - 0x5f213100, 0x5f1cfcb1, - 0x5f18c827, 0x5f149363, 0x5f105e64, 0x5f0c292a, 0x5f07f3b6, 0x5f03be07, - 0x5eff881d, 0x5efb51f9, - 0x5ef71b9b, 0x5ef2e501, 0x5eeeae2d, 0x5eea771f, 0x5ee63fd6, 0x5ee20853, - 0x5eddd094, 0x5ed9989c, - 0x5ed56069, 0x5ed127fb, 0x5eccef53, 0x5ec8b671, 0x5ec47d54, 0x5ec043fc, - 0x5ebc0a6a, 0x5eb7d09e, - 0x5eb39697, 0x5eaf5c56, 0x5eab21da, 0x5ea6e724, 0x5ea2ac34, 0x5e9e7109, - 0x5e9a35a4, 0x5e95fa05, - 0x5e91be2b, 0x5e8d8217, 0x5e8945c8, 0x5e85093f, 0x5e80cc7c, 0x5e7c8f7f, - 0x5e785247, 0x5e7414d5, - 0x5e6fd729, 0x5e6b9943, 0x5e675b22, 0x5e631cc7, 0x5e5ede32, 0x5e5a9f62, - 0x5e566059, 0x5e522115, - 0x5e4de197, 0x5e49a1df, 0x5e4561ed, 0x5e4121c0, 0x5e3ce15a, 0x5e38a0b9, - 0x5e345fde, 0x5e301ec9, - 0x5e2bdd7a, 0x5e279bf1, 0x5e235a2e, 0x5e1f1830, 0x5e1ad5f9, 0x5e169388, - 0x5e1250dc, 0x5e0e0df7, - 0x5e09cad7, 0x5e05877e, 0x5e0143ea, 0x5dfd001d, 0x5df8bc15, 0x5df477d4, - 0x5df03359, 0x5debeea3, - 0x5de7a9b4, 0x5de3648b, 0x5ddf1f28, 0x5ddad98b, 0x5dd693b4, 0x5dd24da3, - 0x5dce0759, 0x5dc9c0d4, - 0x5dc57a16, 0x5dc1331d, 0x5dbcebeb, 0x5db8a480, 0x5db45cda, 0x5db014fa, - 0x5dabcce1, 0x5da7848e, - 0x5da33c01, 0x5d9ef33b, 0x5d9aaa3a, 0x5d966100, 0x5d92178d, 0x5d8dcddf, - 0x5d8983f8, 0x5d8539d7, - 0x5d80ef7c, 0x5d7ca4e8, 0x5d785a1a, 0x5d740f12, 0x5d6fc3d1, 0x5d6b7856, - 0x5d672ca2, 0x5d62e0b4, - 0x5d5e948c, 0x5d5a482a, 0x5d55fb90, 0x5d51aebb, 0x5d4d61ad, 0x5d491465, - 0x5d44c6e4, 0x5d40792a, - 0x5d3c2b35, 0x5d37dd08, 0x5d338ea0, 0x5d2f4000, 0x5d2af125, 0x5d26a212, - 0x5d2252c5, 0x5d1e033e, - 0x5d19b37e, 0x5d156385, 0x5d111352, 0x5d0cc2e5, 0x5d087240, 0x5d042161, - 0x5cffd048, 0x5cfb7ef7, - 0x5cf72d6b, 0x5cf2dba7, 0x5cee89a9, 0x5cea3772, 0x5ce5e501, 0x5ce19258, - 0x5cdd3f75, 0x5cd8ec58, - 0x5cd49903, 0x5cd04574, 0x5ccbf1ab, 0x5cc79daa, 0x5cc3496f, 0x5cbef4fc, - 0x5cbaa04f, 0x5cb64b68, - 0x5cb1f649, 0x5cada0f0, 0x5ca94b5e, 0x5ca4f594, 0x5ca09f8f, 0x5c9c4952, - 0x5c97f2dc, 0x5c939c2c, - 0x5c8f4544, 0x5c8aee22, 0x5c8696c7, 0x5c823f34, 0x5c7de767, 0x5c798f61, - 0x5c753722, 0x5c70deaa, - 0x5c6c85f9, 0x5c682d0f, 0x5c63d3eb, 0x5c5f7a8f, 0x5c5b20fa, 0x5c56c72c, - 0x5c526d25, 0x5c4e12e5, - 0x5c49b86d, 0x5c455dbb, 0x5c4102d0, 0x5c3ca7ad, 0x5c384c50, 0x5c33f0bb, - 0x5c2f94ec, 0x5c2b38e5, - 0x5c26dca5, 0x5c22802c, 0x5c1e237b, 0x5c19c690, 0x5c15696d, 0x5c110c11, - 0x5c0cae7c, 0x5c0850ae, - 0x5c03f2a8, 0x5bff9469, 0x5bfb35f1, 0x5bf6d740, 0x5bf27857, 0x5bee1935, - 0x5be9b9da, 0x5be55a46, - 0x5be0fa7a, 0x5bdc9a75, 0x5bd83a37, 0x5bd3d9c1, 0x5bcf7912, 0x5bcb182b, - 0x5bc6b70b, 0x5bc255b2, - 0x5bbdf421, 0x5bb99257, 0x5bb53054, 0x5bb0ce19, 0x5bac6ba6, 0x5ba808f9, - 0x5ba3a615, 0x5b9f42f7, - 0x5b9adfa2, 0x5b967c13, 0x5b92184d, 0x5b8db44d, 0x5b895016, 0x5b84eba6, - 0x5b8086fd, 0x5b7c221c, - 0x5b77bd02, 0x5b7357b0, 0x5b6ef226, 0x5b6a8c63, 0x5b662668, 0x5b61c035, - 0x5b5d59c9, 0x5b58f324, - 0x5b548c48, 0x5b502533, 0x5b4bbde6, 0x5b475660, 0x5b42eea2, 0x5b3e86ac, - 0x5b3a1e7e, 0x5b35b617, - 0x5b314d78, 0x5b2ce4a1, 0x5b287b91, 0x5b241249, 0x5b1fa8c9, 0x5b1b3f11, - 0x5b16d521, 0x5b126af8, - 0x5b0e0098, 0x5b0995ff, 0x5b052b2e, 0x5b00c025, 0x5afc54e3, 0x5af7e96a, - 0x5af37db8, 0x5aef11cf, - 0x5aeaa5ad, 0x5ae63953, 0x5ae1ccc1, 0x5add5ff7, 0x5ad8f2f5, 0x5ad485bb, - 0x5ad01849, 0x5acbaa9f, - 0x5ac73cbd, 0x5ac2cea3, 0x5abe6050, 0x5ab9f1c6, 0x5ab58304, 0x5ab1140a, - 0x5aaca4d8, 0x5aa8356f, - 0x5aa3c5cd, 0x5a9f55f3, 0x5a9ae5e2, 0x5a967598, 0x5a920517, 0x5a8d945d, - 0x5a89236c, 0x5a84b243, - 0x5a8040e3, 0x5a7bcf4a, 0x5a775d7a, 0x5a72eb71, 0x5a6e7931, 0x5a6a06ba, - 0x5a65940a, 0x5a612123, - 0x5a5cae04, 0x5a583aad, 0x5a53c71e, 0x5a4f5358, 0x5a4adf5a, 0x5a466b24, - 0x5a41f6b7, 0x5a3d8212, - 0x5a390d35, 0x5a349821, 0x5a3022d5, 0x5a2bad51, 0x5a273796, 0x5a22c1a3, - 0x5a1e4b79, 0x5a19d517, - 0x5a155e7d, 0x5a10e7ac, 0x5a0c70a3, 0x5a07f963, 0x5a0381eb, 0x59ff0a3c, - 0x59fa9255, 0x59f61a36, - 0x59f1a1e0, 0x59ed2953, 0x59e8b08e, 0x59e43792, 0x59dfbe5e, 0x59db44f3, - 0x59d6cb50, 0x59d25176, - 0x59cdd765, 0x59c95d1c, 0x59c4e29c, 0x59c067e4, 0x59bbecf5, 0x59b771cf, - 0x59b2f671, 0x59ae7add, - 0x59a9ff10, 0x59a5830d, 0x59a106d2, 0x599c8a60, 0x59980db6, 0x599390d5, - 0x598f13bd, 0x598a966e, - 0x598618e8, 0x59819b2a, 0x597d1d35, 0x59789f09, 0x597420a6, 0x596fa20b, - 0x596b233a, 0x5966a431, - 0x596224f1, 0x595da57a, 0x595925cc, 0x5954a5e6, 0x595025ca, 0x594ba576, - 0x594724ec, 0x5942a42a, - 0x593e2331, 0x5939a202, 0x5935209b, 0x59309efd, 0x592c1d28, 0x59279b1c, - 0x592318d9, 0x591e9660, - 0x591a13af, 0x591590c7, 0x59110da8, 0x590c8a53, 0x590806c6, 0x59038302, - 0x58feff08, 0x58fa7ad7, - 0x58f5f66e, 0x58f171cf, 0x58ececf9, 0x58e867ed, 0x58e3e2a9, 0x58df5d2e, - 0x58dad77d, 0x58d65195, - 0x58d1cb76, 0x58cd4520, 0x58c8be94, 0x58c437d1, 0x58bfb0d7, 0x58bb29a6, - 0x58b6a23e, 0x58b21aa0, - 0x58ad92cb, 0x58a90ac0, 0x58a4827d, 0x589ffa04, 0x589b7155, 0x5896e86f, - 0x58925f52, 0x588dd5fe, - 0x58894c74, 0x5884c2b3, 0x588038bb, 0x587bae8d, 0x58772429, 0x5872998e, - 0x586e0ebc, 0x586983b4, - 0x5864f875, 0x58606d00, 0x585be154, 0x58575571, 0x5852c958, 0x584e3d09, - 0x5849b083, 0x584523c7, - 0x584096d4, 0x583c09ab, 0x58377c4c, 0x5832eeb6, 0x582e60e9, 0x5829d2e6, - 0x582544ad, 0x5820b63e, - 0x581c2798, 0x581798bb, 0x581309a9, 0x580e7a60, 0x5809eae1, 0x58055b2b, - 0x5800cb3f, 0x57fc3b1d, - 0x57f7aac5, 0x57f31a36, 0x57ee8971, 0x57e9f876, 0x57e56744, 0x57e0d5dd, - 0x57dc443f, 0x57d7b26b, - 0x57d32061, 0x57ce8e20, 0x57c9fbaa, 0x57c568fd, 0x57c0d61a, 0x57bc4301, - 0x57b7afb2, 0x57b31c2d, - 0x57ae8872, 0x57a9f480, 0x57a56059, 0x57a0cbfb, 0x579c3768, 0x5797a29e, - 0x57930d9e, 0x578e7869, - 0x5789e2fd, 0x57854d5b, 0x5780b784, 0x577c2176, 0x57778b32, 0x5772f4b9, - 0x576e5e09, 0x5769c724, - 0x57653009, 0x576098b7, 0x575c0130, 0x57576973, 0x5752d180, 0x574e3957, - 0x5749a0f9, 0x57450864, - 0x57406f9a, 0x573bd69a, 0x57373d64, 0x5732a3f8, 0x572e0a56, 0x5729707f, - 0x5724d672, 0x57203c2f, - 0x571ba1b7, 0x57170708, 0x57126c24, 0x570dd10a, 0x570935bb, 0x57049a36, - 0x56fffe7b, 0x56fb628b, - 0x56f6c664, 0x56f22a09, 0x56ed8d77, 0x56e8f0b0, 0x56e453b4, 0x56dfb681, - 0x56db1919, 0x56d67b7c, - 0x56d1dda9, 0x56cd3fa1, 0x56c8a162, 0x56c402ef, 0x56bf6446, 0x56bac567, - 0x56b62653, 0x56b18709, - 0x56ace78a, 0x56a847d6, 0x56a3a7ec, 0x569f07cc, 0x569a6777, 0x5695c6ed, - 0x5691262d, 0x568c8538, - 0x5687e40e, 0x568342ae, 0x567ea118, 0x5679ff4e, 0x56755d4e, 0x5670bb19, - 0x566c18ae, 0x5667760e, - 0x5662d339, 0x565e302e, 0x56598cee, 0x5654e979, 0x565045cf, 0x564ba1f0, - 0x5646fddb, 0x56425991, - 0x563db512, 0x5639105d, 0x56346b74, 0x562fc655, 0x562b2101, 0x56267b78, - 0x5621d5ba, 0x561d2fc6, - 0x5618899e, 0x5613e340, 0x560f3cae, 0x560a95e6, 0x5605eee9, 0x560147b7, - 0x55fca050, 0x55f7f8b4, - 0x55f350e3, 0x55eea8dd, 0x55ea00a2, 0x55e55832, 0x55e0af8d, 0x55dc06b3, - 0x55d75da4, 0x55d2b460, - 0x55ce0ae7, 0x55c96139, 0x55c4b757, 0x55c00d3f, 0x55bb62f3, 0x55b6b871, - 0x55b20dbb, 0x55ad62d0, - 0x55a8b7b0, 0x55a40c5b, 0x559f60d1, 0x559ab513, 0x55960920, 0x55915cf8, - 0x558cb09b, 0x55880409, - 0x55835743, 0x557eaa48, 0x5579fd18, 0x55754fb3, 0x5570a21a, 0x556bf44c, - 0x55674649, 0x55629812, - 0x555de9a6, 0x55593b05, 0x55548c30, 0x554fdd26, 0x554b2de7, 0x55467e74, - 0x5541cecc, 0x553d1ef0, - 0x55386edf, 0x5533be99, 0x552f0e1f, 0x552a5d70, 0x5525ac8d, 0x5520fb75, - 0x551c4a29, 0x551798a8, - 0x5512e6f3, 0x550e3509, 0x550982eb, 0x5504d099, 0x55001e12, 0x54fb6b56, - 0x54f6b866, 0x54f20542, - 0x54ed51e9, 0x54e89e5c, 0x54e3ea9a, 0x54df36a5, 0x54da827a, 0x54d5ce1c, - 0x54d11989, 0x54cc64c2, - 0x54c7afc6, 0x54c2fa96, 0x54be4532, 0x54b98f9a, 0x54b4d9cd, 0x54b023cc, - 0x54ab6d97, 0x54a6b72e, - 0x54a20090, 0x549d49bf, 0x549892b9, 0x5493db7f, 0x548f2410, 0x548a6c6e, - 0x5485b497, 0x5480fc8c, - 0x547c444d, 0x54778bda, 0x5472d333, 0x546e1a58, 0x54696149, 0x5464a805, - 0x545fee8e, 0x545b34e3, - 0x54567b03, 0x5451c0f0, 0x544d06a8, 0x54484c2d, 0x5443917d, 0x543ed699, - 0x543a1b82, 0x54356037, - 0x5430a4b7, 0x542be904, 0x54272d1d, 0x54227102, 0x541db4b3, 0x5418f830, - 0x54143b79, 0x540f7e8e, - 0x540ac170, 0x5406041d, 0x54014697, 0x53fc88dd, 0x53f7caef, 0x53f30cce, - 0x53ee4e78, 0x53e98fef, - 0x53e4d132, 0x53e01242, 0x53db531d, 0x53d693c5, 0x53d1d439, 0x53cd147a, - 0x53c85486, 0x53c3945f, - 0x53bed405, 0x53ba1377, 0x53b552b5, 0x53b091bf, 0x53abd096, 0x53a70f39, - 0x53a24da9, 0x539d8be5, - 0x5398c9ed, 0x539407c2, 0x538f4564, 0x538a82d1, 0x5385c00c, 0x5380fd12, - 0x537c39e6, 0x53777685, - 0x5372b2f2, 0x536def2a, 0x53692b30, 0x53646701, 0x535fa2a0, 0x535ade0b, - 0x53561942, 0x53515447, - 0x534c8f17, 0x5347c9b5, 0x5343041f, 0x533e3e55, 0x53397859, 0x5334b229, - 0x532febc5, 0x532b252f, - 0x53265e65, 0x53219767, 0x531cd037, 0x531808d3, 0x5313413c, 0x530e7972, - 0x5309b174, 0x5304e943, - 0x530020df, 0x52fb5848, 0x52f68f7e, 0x52f1c680, 0x52ecfd4f, 0x52e833ec, - 0x52e36a55, 0x52dea08a, - 0x52d9d68d, 0x52d50c5d, 0x52d041f9, 0x52cb7763, 0x52c6ac99, 0x52c1e19d, - 0x52bd166d, 0x52b84b0a, - 0x52b37f74, 0x52aeb3ac, 0x52a9e7b0, 0x52a51b81, 0x52a04f1f, 0x529b828a, - 0x5296b5c3, 0x5291e8c8, - 0x528d1b9b, 0x52884e3a, 0x528380a7, 0x527eb2e0, 0x5279e4e7, 0x527516bb, - 0x5270485c, 0x526b79ca, - 0x5266ab06, 0x5261dc0e, 0x525d0ce4, 0x52583d87, 0x52536df7, 0x524e9e34, - 0x5249ce3f, 0x5244fe17, - 0x52402dbc, 0x523b5d2e, 0x52368c6e, 0x5231bb7b, 0x522cea55, 0x522818fc, - 0x52234771, 0x521e75b3, - 0x5219a3c3, 0x5214d1a0, 0x520fff4a, 0x520b2cc2, 0x52065a07, 0x52018719, - 0x51fcb3f9, 0x51f7e0a6, - 0x51f30d21, 0x51ee3969, 0x51e9657e, 0x51e49162, 0x51dfbd12, 0x51dae890, - 0x51d613dc, 0x51d13ef5, - 0x51cc69db, 0x51c79490, 0x51c2bf11, 0x51bde960, 0x51b9137d, 0x51b43d68, - 0x51af6720, 0x51aa90a5, - 0x51a5b9f9, 0x51a0e31a, 0x519c0c08, 0x519734c4, 0x51925d4e, 0x518d85a6, - 0x5188adcb, 0x5183d5be, - 0x517efd7f, 0x517a250d, 0x51754c69, 0x51707393, 0x516b9a8b, 0x5166c150, - 0x5161e7e4, 0x515d0e45, - 0x51583473, 0x51535a70, 0x514e803b, 0x5149a5d3, 0x5144cb39, 0x513ff06d, - 0x513b156f, 0x51363a3f, - 0x51315edd, 0x512c8348, 0x5127a782, 0x5122cb8a, 0x511def5f, 0x51191302, - 0x51143674, 0x510f59b3, - 0x510a7cc1, 0x51059f9c, 0x5100c246, 0x50fbe4bd, 0x50f70703, 0x50f22916, - 0x50ed4af8, 0x50e86ca8, - 0x50e38e25, 0x50deaf71, 0x50d9d08b, 0x50d4f173, 0x50d0122a, 0x50cb32ae, - 0x50c65301, 0x50c17322, - 0x50bc9311, 0x50b7b2ce, 0x50b2d259, 0x50adf1b3, 0x50a910db, 0x50a42fd1, - 0x509f4e95, 0x509a6d28, - 0x50958b88, 0x5090a9b8, 0x508bc7b5, 0x5086e581, 0x5082031b, 0x507d2083, - 0x50783dba, 0x50735abf, - 0x506e7793, 0x50699435, 0x5064b0a5, 0x505fcce4, 0x505ae8f1, 0x505604cd, - 0x50512077, 0x504c3bef, - 0x50475736, 0x5042724c, 0x503d8d30, 0x5038a7e2, 0x5033c263, 0x502edcb2, - 0x5029f6d1, 0x502510bd, - 0x50202a78, 0x501b4402, 0x50165d5a, 0x50117681, 0x500c8f77, 0x5007a83b, - 0x5002c0cd, 0x4ffdd92f, - 0x4ff8f15f, 0x4ff4095e, 0x4fef212b, 0x4fea38c7, 0x4fe55032, 0x4fe0676c, - 0x4fdb7e74, 0x4fd6954b, - 0x4fd1abf0, 0x4fccc265, 0x4fc7d8a8, 0x4fc2eeba, 0x4fbe049b, 0x4fb91a4b, - 0x4fb42fc9, 0x4faf4517, - 0x4faa5a33, 0x4fa56f1e, 0x4fa083d8, 0x4f9b9861, 0x4f96acb8, 0x4f91c0df, - 0x4f8cd4d4, 0x4f87e899, - 0x4f82fc2c, 0x4f7e0f8f, 0x4f7922c0, 0x4f7435c0, 0x4f6f488f, 0x4f6a5b2e, - 0x4f656d9b, 0x4f607fd7, - 0x4f5b91e3, 0x4f56a3bd, 0x4f51b566, 0x4f4cc6df, 0x4f47d827, 0x4f42e93d, - 0x4f3dfa23, 0x4f390ad8, - 0x4f341b5c, 0x4f2f2baf, 0x4f2a3bd2, 0x4f254bc3, 0x4f205b84, 0x4f1b6b14, - 0x4f167a73, 0x4f1189a1, - 0x4f0c989f, 0x4f07a76b, 0x4f02b608, 0x4efdc473, 0x4ef8d2ad, 0x4ef3e0b7, - 0x4eeeee90, 0x4ee9fc39, - 0x4ee509b1, 0x4ee016f8, 0x4edb240e, 0x4ed630f4, 0x4ed13da9, 0x4ecc4a2e, - 0x4ec75682, 0x4ec262a5, - 0x4ebd6e98, 0x4eb87a5a, 0x4eb385ec, 0x4eae914d, 0x4ea99c7d, 0x4ea4a77d, - 0x4e9fb24d, 0x4e9abcec, - 0x4e95c75b, 0x4e90d199, 0x4e8bdba6, 0x4e86e583, 0x4e81ef30, 0x4e7cf8ac, - 0x4e7801f8, 0x4e730b14, - 0x4e6e13ff, 0x4e691cba, 0x4e642544, 0x4e5f2d9e, 0x4e5a35c7, 0x4e553dc1, - 0x4e50458a, 0x4e4b4d22, - 0x4e46548b, 0x4e415bc3, 0x4e3c62cb, 0x4e3769a2, 0x4e32704a, 0x4e2d76c1, - 0x4e287d08, 0x4e23831e, - 0x4e1e8905, 0x4e198ebb, 0x4e149441, 0x4e0f9997, 0x4e0a9ebd, 0x4e05a3b2, - 0x4e00a878, 0x4dfbad0d, - 0x4df6b173, 0x4df1b5a8, 0x4decb9ad, 0x4de7bd82, 0x4de2c127, 0x4dddc49c, - 0x4dd8c7e1, 0x4dd3caf6, - 0x4dcecdda, 0x4dc9d08f, 0x4dc4d314, 0x4dbfd569, 0x4dbad78e, 0x4db5d983, - 0x4db0db48, 0x4dabdcdd, - 0x4da6de43, 0x4da1df78, 0x4d9ce07d, 0x4d97e153, 0x4d92e1f9, 0x4d8de26f, - 0x4d88e2b5, 0x4d83e2cb, - 0x4d7ee2b1, 0x4d79e268, 0x4d74e1ef, 0x4d6fe146, 0x4d6ae06d, 0x4d65df64, - 0x4d60de2c, 0x4d5bdcc4, - 0x4d56db2d, 0x4d51d965, 0x4d4cd76e, 0x4d47d547, 0x4d42d2f1, 0x4d3dd06b, - 0x4d38cdb5, 0x4d33cad0, - 0x4d2ec7bb, 0x4d29c476, 0x4d24c102, 0x4d1fbd5e, 0x4d1ab98b, 0x4d15b588, - 0x4d10b155, 0x4d0bacf3, - 0x4d06a862, 0x4d01a3a0, 0x4cfc9eb0, 0x4cf79990, 0x4cf29440, 0x4ced8ec1, - 0x4ce88913, 0x4ce38335, - 0x4cde7d28, 0x4cd976eb, 0x4cd4707f, 0x4ccf69e3, 0x4cca6318, 0x4cc55c1e, - 0x4cc054f4, 0x4cbb4d9b, - 0x4cb64613, 0x4cb13e5b, 0x4cac3674, 0x4ca72e5e, 0x4ca22619, 0x4c9d1da4, - 0x4c981500, 0x4c930c2d, - 0x4c8e032a, 0x4c88f9f8, 0x4c83f097, 0x4c7ee707, 0x4c79dd48, 0x4c74d359, - 0x4c6fc93b, 0x4c6abeef, - 0x4c65b473, 0x4c60a9c8, 0x4c5b9eed, 0x4c5693e4, 0x4c5188ac, 0x4c4c7d44, - 0x4c4771ae, 0x4c4265e8, - 0x4c3d59f3, 0x4c384dd0, 0x4c33417d, 0x4c2e34fb, 0x4c29284b, 0x4c241b6b, - 0x4c1f0e5c, 0x4c1a011f, - 0x4c14f3b2, 0x4c0fe617, 0x4c0ad84c, 0x4c05ca53, 0x4c00bc2b, 0x4bfbadd4, - 0x4bf69f4e, 0x4bf19099, - 0x4bec81b5, 0x4be772a3, 0x4be26362, 0x4bdd53f2, 0x4bd84453, 0x4bd33485, - 0x4bce2488, 0x4bc9145d, - 0x4bc40403, 0x4bbef37b, 0x4bb9e2c3, 0x4bb4d1dd, 0x4bafc0c8, 0x4baaaf85, - 0x4ba59e12, 0x4ba08c72, - 0x4b9b7aa2, 0x4b9668a4, 0x4b915677, 0x4b8c441c, 0x4b873192, 0x4b821ed9, - 0x4b7d0bf2, 0x4b77f8dc, - 0x4b72e598, 0x4b6dd225, 0x4b68be84, 0x4b63aab4, 0x4b5e96b6, 0x4b598289, - 0x4b546e2d, 0x4b4f59a4, - 0x4b4a44eb, 0x4b453005, 0x4b401aef, 0x4b3b05ac, 0x4b35f03a, 0x4b30da9a, - 0x4b2bc4cb, 0x4b26aece, - 0x4b2198a2, 0x4b1c8248, 0x4b176bc0, 0x4b12550a, 0x4b0d3e25, 0x4b082712, - 0x4b030fd1, 0x4afdf861, - 0x4af8e0c3, 0x4af3c8f7, 0x4aeeb0fd, 0x4ae998d4, 0x4ae4807d, 0x4adf67f8, - 0x4ada4f45, 0x4ad53664, - 0x4ad01d54, 0x4acb0417, 0x4ac5eaab, 0x4ac0d111, 0x4abbb749, 0x4ab69d53, - 0x4ab1832f, 0x4aac68dc, - 0x4aa74e5c, 0x4aa233ae, 0x4a9d18d1, 0x4a97fdc7, 0x4a92e28e, 0x4a8dc728, - 0x4a88ab93, 0x4a838fd1, - 0x4a7e73e0, 0x4a7957c2, 0x4a743b76, 0x4a6f1efc, 0x4a6a0253, 0x4a64e57d, - 0x4a5fc879, 0x4a5aab48, - 0x4a558de8, 0x4a50705a, 0x4a4b529f, 0x4a4634b6, 0x4a41169f, 0x4a3bf85a, - 0x4a36d9e7, 0x4a31bb47, - 0x4a2c9c79, 0x4a277d7d, 0x4a225e53, 0x4a1d3efc, 0x4a181f77, 0x4a12ffc4, - 0x4a0ddfe4, 0x4a08bfd5, - 0x4a039f9a, 0x49fe7f30, 0x49f95e99, 0x49f43dd4, 0x49ef1ce2, 0x49e9fbc2, - 0x49e4da74, 0x49dfb8f9, - 0x49da9750, 0x49d5757a, 0x49d05376, 0x49cb3145, 0x49c60ee6, 0x49c0ec59, - 0x49bbc9a0, 0x49b6a6b8, - 0x49b183a3, 0x49ac6061, 0x49a73cf1, 0x49a21954, 0x499cf589, 0x4997d191, - 0x4992ad6c, 0x498d8919, - 0x49886499, 0x49833fec, 0x497e1b11, 0x4978f609, 0x4973d0d3, 0x496eab70, - 0x496985e0, 0x49646023, - 0x495f3a38, 0x495a1420, 0x4954eddb, 0x494fc768, 0x494aa0c9, 0x494579fc, - 0x49405302, 0x493b2bdb, - 0x49360486, 0x4930dd05, 0x492bb556, 0x49268d7a, 0x49216571, 0x491c3d3b, - 0x491714d8, 0x4911ec47, - 0x490cc38a, 0x49079aa0, 0x49027188, 0x48fd4844, 0x48f81ed2, 0x48f2f534, - 0x48edcb68, 0x48e8a170, - 0x48e3774a, 0x48de4cf8, 0x48d92278, 0x48d3f7cc, 0x48ceccf3, 0x48c9a1ed, - 0x48c476b9, 0x48bf4b59, - 0x48ba1fcd, 0x48b4f413, 0x48afc82c, 0x48aa9c19, 0x48a56fd9, 0x48a0436c, - 0x489b16d2, 0x4895ea0b, - 0x4890bd18, 0x488b8ff8, 0x488662ab, 0x48813531, 0x487c078b, 0x4876d9b8, - 0x4871abb8, 0x486c7d8c, - 0x48674f33, 0x486220ad, 0x485cf1fa, 0x4857c31b, 0x48529410, 0x484d64d7, - 0x48483572, 0x484305e1, - 0x483dd623, 0x4838a638, 0x48337621, 0x482e45dd, 0x4829156d, 0x4823e4d0, - 0x481eb407, 0x48198311, - 0x481451ef, 0x480f20a0, 0x4809ef25, 0x4804bd7e, 0x47ff8baa, 0x47fa59a9, - 0x47f5277d, 0x47eff523, - 0x47eac29e, 0x47e58fec, 0x47e05d0e, 0x47db2a03, 0x47d5f6cc, 0x47d0c369, - 0x47cb8fd9, 0x47c65c1d, - 0x47c12835, 0x47bbf421, 0x47b6bfe0, 0x47b18b74, 0x47ac56da, 0x47a72215, - 0x47a1ed24, 0x479cb806, - 0x479782bc, 0x47924d46, 0x478d17a4, 0x4787e1d6, 0x4782abdb, 0x477d75b5, - 0x47783f62, 0x477308e3, - 0x476dd239, 0x47689b62, 0x4763645f, 0x475e2d30, 0x4758f5d5, 0x4753be4e, - 0x474e869b, 0x47494ebc, - 0x474416b1, 0x473ede7a, 0x4739a617, 0x47346d89, 0x472f34ce, 0x4729fbe7, - 0x4724c2d5, 0x471f8996, - 0x471a502c, 0x47151696, 0x470fdcd4, 0x470aa2e6, 0x470568cd, 0x47002e87, - 0x46faf416, 0x46f5b979, - 0x46f07eb0, 0x46eb43bc, 0x46e6089b, 0x46e0cd4f, 0x46db91d8, 0x46d65634, - 0x46d11a65, 0x46cbde6a, - 0x46c6a244, 0x46c165f1, 0x46bc2974, 0x46b6ecca, 0x46b1aff5, 0x46ac72f4, - 0x46a735c8, 0x46a1f870, - 0x469cbaed, 0x46977d3e, 0x46923f63, 0x468d015d, 0x4687c32c, 0x468284cf, - 0x467d4646, 0x46780792, - 0x4672c8b3, 0x466d89a8, 0x46684a71, 0x46630b0f, 0x465dcb82, 0x46588bc9, - 0x46534be5, 0x464e0bd6, - 0x4648cb9b, 0x46438b35, 0x463e4aa3, 0x463909e7, 0x4633c8fe, 0x462e87eb, - 0x462946ac, 0x46240542, - 0x461ec3ad, 0x461981ec, 0x46144001, 0x460efde9, 0x4609bba7, 0x4604793a, - 0x45ff36a1, 0x45f9f3dd, - 0x45f4b0ee, 0x45ef6dd4, 0x45ea2a8f, 0x45e4e71f, 0x45dfa383, 0x45da5fbc, - 0x45d51bcb, 0x45cfd7ae, - 0x45ca9366, 0x45c54ef3, 0x45c00a55, 0x45bac58c, 0x45b58098, 0x45b03b79, - 0x45aaf630, 0x45a5b0bb, - 0x45a06b1b, 0x459b2550, 0x4595df5a, 0x45909939, 0x458b52ee, 0x45860c77, - 0x4580c5d6, 0x457b7f0a, - 0x45763813, 0x4570f0f1, 0x456ba9a4, 0x4566622c, 0x45611a8a, 0x455bd2bc, - 0x45568ac4, 0x455142a2, - 0x454bfa54, 0x4546b1dc, 0x45416939, 0x453c206b, 0x4536d773, 0x45318e4f, - 0x452c4502, 0x4526fb89, - 0x4521b1e6, 0x451c6818, 0x45171e20, 0x4511d3fd, 0x450c89af, 0x45073f37, - 0x4501f494, 0x44fca9c6, - 0x44f75ecf, 0x44f213ac, 0x44ecc85f, 0x44e77ce7, 0x44e23145, 0x44dce579, - 0x44d79982, 0x44d24d60, - 0x44cd0114, 0x44c7b49e, 0x44c267fd, 0x44bd1b32, 0x44b7ce3c, 0x44b2811c, - 0x44ad33d2, 0x44a7e65d, - 0x44a298be, 0x449d4af5, 0x4497fd01, 0x4492aee3, 0x448d609b, 0x44881228, - 0x4482c38b, 0x447d74c4, - 0x447825d2, 0x4472d6b7, 0x446d8771, 0x44683801, 0x4462e866, 0x445d98a2, - 0x445848b3, 0x4452f89b, - 0x444da858, 0x444857ea, 0x44430753, 0x443db692, 0x443865a7, 0x44331491, - 0x442dc351, 0x442871e8, - 0x44232054, 0x441dce96, 0x44187caf, 0x44132a9d, 0x440dd861, 0x440885fc, - 0x4403336c, 0x43fde0b2, - 0x43f88dcf, 0x43f33ac1, 0x43ede78a, 0x43e89429, 0x43e3409d, 0x43ddece8, - 0x43d8990a, 0x43d34501, - 0x43cdf0ce, 0x43c89c72, 0x43c347eb, 0x43bdf33b, 0x43b89e62, 0x43b3495e, - 0x43adf431, 0x43a89ed9, - 0x43a34959, 0x439df3ae, 0x43989dda, 0x439347dc, 0x438df1b4, 0x43889b63, - 0x438344e8, 0x437dee43, - 0x43789775, 0x4373407d, 0x436de95b, 0x43689210, 0x43633a9c, 0x435de2fd, - 0x43588b36, 0x43533344, - 0x434ddb29, 0x434882e5, 0x43432a77, 0x433dd1e0, 0x4338791f, 0x43332035, - 0x432dc721, 0x43286de4, - 0x4323147d, 0x431dbaed, 0x43186133, 0x43130751, 0x430dad44, 0x4308530f, - 0x4302f8b0, 0x42fd9e28, - 0x42f84376, 0x42f2e89b, 0x42ed8d97, 0x42e83269, 0x42e2d713, 0x42dd7b93, - 0x42d81fe9, 0x42d2c417, - 0x42cd681b, 0x42c80bf6, 0x42c2afa8, 0x42bd5331, 0x42b7f690, 0x42b299c7, - 0x42ad3cd4, 0x42a7dfb8, - 0x42a28273, 0x429d2505, 0x4297c76e, 0x429269ae, 0x428d0bc4, 0x4287adb2, - 0x42824f76, 0x427cf112, - 0x42779285, 0x427233ce, 0x426cd4ef, 0x426775e6, 0x426216b5, 0x425cb75a, - 0x425757d7, 0x4251f82b, - 0x424c9856, 0x42473858, 0x4241d831, 0x423c77e1, 0x42371769, 0x4231b6c7, - 0x422c55fd, 0x4226f50a, - 0x422193ee, 0x421c32a9, 0x4216d13c, 0x42116fa5, 0x420c0de6, 0x4206abfe, - 0x420149ee, 0x41fbe7b5, - 0x41f68553, 0x41f122c8, 0x41ebc015, 0x41e65d39, 0x41e0fa35, 0x41db9707, - 0x41d633b1, 0x41d0d033, - 0x41cb6c8c, 0x41c608bc, 0x41c0a4c4, 0x41bb40a3, 0x41b5dc5a, 0x41b077e8, - 0x41ab134e, 0x41a5ae8b, - 0x41a049a0, 0x419ae48c, 0x41957f4f, 0x419019eb, 0x418ab45d, 0x41854ea8, - 0x417fe8ca, 0x417a82c3, - 0x41751c94, 0x416fb63d, 0x416a4fbd, 0x4164e916, 0x415f8245, 0x415a1b4d, - 0x4154b42c, 0x414f4ce2, - 0x4149e571, 0x41447dd7, 0x413f1615, 0x4139ae2b, 0x41344618, 0x412edddd, - 0x4129757b, 0x41240cef, - 0x411ea43c, 0x41193b61, 0x4113d25d, 0x410e6931, 0x4108ffdd, 0x41039661, - 0x40fe2cbd, 0x40f8c2f1, - 0x40f358fc, 0x40edeee0, 0x40e8849b, 0x40e31a2f, 0x40ddaf9b, 0x40d844de, - 0x40d2d9f9, 0x40cd6eed, - 0x40c803b8, 0x40c2985c, 0x40bd2cd8, 0x40b7c12b, 0x40b25557, 0x40ace95b, - 0x40a77d37, 0x40a210eb, - 0x409ca477, 0x409737dc, 0x4091cb18, 0x408c5e2d, 0x4086f11a, 0x408183df, - 0x407c167c, 0x4076a8f1, - 0x40713b3f, 0x406bcd65, 0x40665f63, 0x4060f13a, 0x405b82e9, 0x40561470, - 0x4050a5cf, 0x404b3707, - 0x4045c817, 0x404058ff, 0x403ae9c0, 0x40357a59, 0x40300acb, 0x402a9b15, - 0x40252b37, 0x401fbb32, - 0x401a4b05, 0x4014dab1, 0x400f6a35, 0x4009f992, 0x400488c7, 0x3fff17d5, - 0x3ff9a6bb, 0x3ff4357a, - 0x3feec411, 0x3fe95281, 0x3fe3e0c9, 0x3fde6eeb, 0x3fd8fce4, 0x3fd38ab6, - 0x3fce1861, 0x3fc8a5e5, - 0x3fc33341, 0x3fbdc076, 0x3fb84d83, 0x3fb2da6a, 0x3fad6729, 0x3fa7f3c0, - 0x3fa28031, 0x3f9d0c7a, - 0x3f97989c, 0x3f922496, 0x3f8cb06a, 0x3f873c16, 0x3f81c79b, 0x3f7c52f9, - 0x3f76de30, 0x3f71693f, - 0x3f6bf428, 0x3f667ee9, 0x3f610983, 0x3f5b93f6, 0x3f561e42, 0x3f50a867, - 0x3f4b3265, 0x3f45bc3c, - 0x3f4045ec, 0x3f3acf75, 0x3f3558d7, 0x3f2fe211, 0x3f2a6b25, 0x3f24f412, - 0x3f1f7cd8, 0x3f1a0577, - 0x3f148def, 0x3f0f1640, 0x3f099e6b, 0x3f04266e, 0x3efeae4a, 0x3ef93600, - 0x3ef3bd8f, 0x3eee44f7, - 0x3ee8cc38, 0x3ee35352, 0x3eddda46, 0x3ed86113, 0x3ed2e7b9, 0x3ecd6e38, - 0x3ec7f491, 0x3ec27ac2, - 0x3ebd00cd, 0x3eb786b2, 0x3eb20c6f, 0x3eac9206, 0x3ea71777, 0x3ea19cc1, - 0x3e9c21e4, 0x3e96a6e0, - 0x3e912bb6, 0x3e8bb065, 0x3e8634ee, 0x3e80b950, 0x3e7b3d8c, 0x3e75c1a1, - 0x3e70458f, 0x3e6ac957, - 0x3e654cf8, 0x3e5fd073, 0x3e5a53c8, 0x3e54d6f6, 0x3e4f59fe, 0x3e49dcdf, - 0x3e445f99, 0x3e3ee22e, - 0x3e39649c, 0x3e33e6e3, 0x3e2e6904, 0x3e28eaff, 0x3e236cd4, 0x3e1dee82, - 0x3e18700a, 0x3e12f16b, - 0x3e0d72a6, 0x3e07f3bb, 0x3e0274aa, 0x3dfcf572, 0x3df77615, 0x3df1f691, - 0x3dec76e6, 0x3de6f716, - 0x3de1771f, 0x3ddbf703, 0x3dd676c0, 0x3dd0f656, 0x3dcb75c7, 0x3dc5f512, - 0x3dc07436, 0x3dbaf335, - 0x3db5720d, 0x3daff0c0, 0x3daa6f4c, 0x3da4edb2, 0x3d9f6bf2, 0x3d99ea0d, - 0x3d946801, 0x3d8ee5cf, - 0x3d896377, 0x3d83e0f9, 0x3d7e5e56, 0x3d78db8c, 0x3d73589d, 0x3d6dd587, - 0x3d68524c, 0x3d62ceeb, - 0x3d5d4b64, 0x3d57c7b7, 0x3d5243e4, 0x3d4cbfeb, 0x3d473bcd, 0x3d41b789, - 0x3d3c331f, 0x3d36ae8f, - 0x3d3129da, 0x3d2ba4fe, 0x3d261ffd, 0x3d209ad7, 0x3d1b158a, 0x3d159018, - 0x3d100a80, 0x3d0a84c3, - 0x3d04fee0, 0x3cff78d7, 0x3cf9f2a9, 0x3cf46c55, 0x3ceee5db, 0x3ce95f3c, - 0x3ce3d877, 0x3cde518d, - 0x3cd8ca7d, 0x3cd34347, 0x3ccdbbed, 0x3cc8346c, 0x3cc2acc6, 0x3cbd24fb, - 0x3cb79d0a, 0x3cb214f4, - 0x3cac8cb8, 0x3ca70457, 0x3ca17bd0, 0x3c9bf324, 0x3c966a53, 0x3c90e15c, - 0x3c8b5840, 0x3c85cefe, - 0x3c804598, 0x3c7abc0c, 0x3c75325a, 0x3c6fa883, 0x3c6a1e87, 0x3c649466, - 0x3c5f0a20, 0x3c597fb4, - 0x3c53f523, 0x3c4e6a6d, 0x3c48df91, 0x3c435491, 0x3c3dc96b, 0x3c383e20, - 0x3c32b2b0, 0x3c2d271b, - 0x3c279b61, 0x3c220f81, 0x3c1c837d, 0x3c16f753, 0x3c116b04, 0x3c0bde91, - 0x3c0651f8, 0x3c00c53a, - 0x3bfb3857, 0x3bf5ab50, 0x3bf01e23, 0x3bea90d1, 0x3be5035a, 0x3bdf75bf, - 0x3bd9e7fe, 0x3bd45a19, - 0x3bcecc0e, 0x3bc93ddf, 0x3bc3af8b, 0x3bbe2112, 0x3bb89274, 0x3bb303b1, - 0x3bad74c9, 0x3ba7e5bd, - 0x3ba2568c, 0x3b9cc736, 0x3b9737bb, 0x3b91a81c, 0x3b8c1857, 0x3b86886e, - 0x3b80f861, 0x3b7b682e, - 0x3b75d7d7, 0x3b70475c, 0x3b6ab6bb, 0x3b6525f6, 0x3b5f950c, 0x3b5a03fe, - 0x3b5472cb, 0x3b4ee173, - 0x3b494ff7, 0x3b43be57, 0x3b3e2c91, 0x3b389aa8, 0x3b330899, 0x3b2d7666, - 0x3b27e40f, 0x3b225193, - 0x3b1cbef3, 0x3b172c2e, 0x3b119945, 0x3b0c0637, 0x3b067305, 0x3b00dfaf, - 0x3afb4c34, 0x3af5b894, - 0x3af024d1, 0x3aea90e9, 0x3ae4fcdc, 0x3adf68ac, 0x3ad9d457, 0x3ad43fdd, - 0x3aceab40, 0x3ac9167e, - 0x3ac38198, 0x3abdec8d, 0x3ab8575f, 0x3ab2c20c, 0x3aad2c95, 0x3aa796fa, - 0x3aa2013a, 0x3a9c6b57, - 0x3a96d54f, 0x3a913f23, 0x3a8ba8d3, 0x3a86125f, 0x3a807bc7, 0x3a7ae50a, - 0x3a754e2a, 0x3a6fb726, - 0x3a6a1ffd, 0x3a6488b1, 0x3a5ef140, 0x3a5959ab, 0x3a53c1f3, 0x3a4e2a16, - 0x3a489216, 0x3a42f9f2, - 0x3a3d61a9, 0x3a37c93d, 0x3a3230ad, 0x3a2c97f9, 0x3a26ff21, 0x3a216625, - 0x3a1bcd05, 0x3a1633c1, - 0x3a109a5a, 0x3a0b00cf, 0x3a056720, 0x39ffcd4d, 0x39fa3356, 0x39f4993c, - 0x39eefefe, 0x39e9649c, - 0x39e3ca17, 0x39de2f6d, 0x39d894a0, 0x39d2f9b0, 0x39cd5e9b, 0x39c7c363, - 0x39c22808, 0x39bc8c89, - 0x39b6f0e6, 0x39b1551f, 0x39abb935, 0x39a61d28, 0x39a080f6, 0x399ae4a2, - 0x39954829, 0x398fab8e, - 0x398a0ece, 0x398471ec, 0x397ed4e5, 0x397937bc, 0x39739a6e, 0x396dfcfe, - 0x39685f6a, 0x3962c1b2, - 0x395d23d7, 0x395785d9, 0x3951e7b8, 0x394c4973, 0x3946ab0a, 0x39410c7f, - 0x393b6dd0, 0x3935cefd, - 0x39303008, 0x392a90ef, 0x3924f1b3, 0x391f5254, 0x3919b2d1, 0x3914132b, - 0x390e7362, 0x3908d376, - 0x39033367, 0x38fd9334, 0x38f7f2de, 0x38f25266, 0x38ecb1ca, 0x38e7110a, - 0x38e17028, 0x38dbcf23, - 0x38d62dfb, 0x38d08caf, 0x38caeb41, 0x38c549af, 0x38bfa7fb, 0x38ba0623, - 0x38b46429, 0x38aec20b, - 0x38a91fcb, 0x38a37d67, 0x389ddae1, 0x38983838, 0x3892956c, 0x388cf27d, - 0x38874f6b, 0x3881ac36, - 0x387c08de, 0x38766564, 0x3870c1c6, 0x386b1e06, 0x38657a23, 0x385fd61d, - 0x385a31f5, 0x38548daa, - 0x384ee93b, 0x384944ab, 0x38439ff7, 0x383dfb21, 0x38385628, 0x3832b10d, - 0x382d0bce, 0x3827666d, - 0x3821c0ea, 0x381c1b44, 0x3816757b, 0x3810cf90, 0x380b2982, 0x38058351, - 0x37ffdcfe, 0x37fa3688, - 0x37f48ff0, 0x37eee936, 0x37e94259, 0x37e39b59, 0x37ddf437, 0x37d84cf2, - 0x37d2a58b, 0x37ccfe02, - 0x37c75656, 0x37c1ae87, 0x37bc0697, 0x37b65e84, 0x37b0b64e, 0x37ab0df6, - 0x37a5657c, 0x379fbce0, - 0x379a1421, 0x37946b40, 0x378ec23d, 0x37891917, 0x37836fcf, 0x377dc665, - 0x37781cd9, 0x3772732a, - 0x376cc959, 0x37671f66, 0x37617551, 0x375bcb1a, 0x375620c1, 0x37507645, - 0x374acba7, 0x374520e7, - 0x373f7606, 0x3739cb02, 0x37341fdc, 0x372e7493, 0x3728c929, 0x37231d9d, - 0x371d71ef, 0x3717c61f, - 0x37121a2d, 0x370c6e19, 0x3706c1e2, 0x3701158a, 0x36fb6910, 0x36f5bc75, - 0x36f00fb7, 0x36ea62d7, - 0x36e4b5d6, 0x36df08b2, 0x36d95b6d, 0x36d3ae06, 0x36ce007d, 0x36c852d2, - 0x36c2a506, 0x36bcf718, - 0x36b74908, 0x36b19ad6, 0x36abec82, 0x36a63e0d, 0x36a08f76, 0x369ae0bd, - 0x369531e3, 0x368f82e7, - 0x3689d3c9, 0x3684248a, 0x367e7529, 0x3678c5a7, 0x36731602, 0x366d663d, - 0x3667b655, 0x3662064c, - 0x365c5622, 0x3656a5d6, 0x3650f569, 0x364b44da, 0x36459429, 0x363fe357, - 0x363a3264, 0x3634814f, - 0x362ed019, 0x36291ec1, 0x36236d48, 0x361dbbad, 0x361809f1, 0x36125814, - 0x360ca615, 0x3606f3f5, - 0x360141b4, 0x35fb8f52, 0x35f5dcce, 0x35f02a28, 0x35ea7762, 0x35e4c47a, - 0x35df1171, 0x35d95e47, - 0x35d3aafc, 0x35cdf78f, 0x35c84401, 0x35c29052, 0x35bcdc82, 0x35b72891, - 0x35b1747e, 0x35abc04b, - 0x35a60bf6, 0x35a05781, 0x359aa2ea, 0x3594ee32, 0x358f3959, 0x3589845f, - 0x3583cf44, 0x357e1a08, - 0x357864ab, 0x3572af2d, 0x356cf98e, 0x356743ce, 0x35618ded, 0x355bd7eb, - 0x355621c9, 0x35506b85, - 0x354ab520, 0x3544fe9b, 0x353f47f5, 0x3539912e, 0x3533da46, 0x352e233d, - 0x35286c14, 0x3522b4c9, - 0x351cfd5e, 0x351745d2, 0x35118e26, 0x350bd658, 0x35061e6a, 0x3500665c, - 0x34faae2c, 0x34f4f5dc, - 0x34ef3d6b, 0x34e984da, 0x34e3cc28, 0x34de1355, 0x34d85a62, 0x34d2a14e, - 0x34cce819, 0x34c72ec4, - 0x34c1754e, 0x34bbbbb8, 0x34b60202, 0x34b0482a, 0x34aa8e33, 0x34a4d41a, - 0x349f19e2, 0x34995f88, - 0x3493a50f, 0x348dea75, 0x34882fba, 0x348274e0, 0x347cb9e4, 0x3476fec9, - 0x3471438d, 0x346b8830, - 0x3465ccb4, 0x34601117, 0x345a5559, 0x3454997c, 0x344edd7e, 0x34492160, - 0x34436521, 0x343da8c3, - 0x3437ec44, 0x34322fa5, 0x342c72e6, 0x3426b606, 0x3420f907, 0x341b3be7, - 0x34157ea7, 0x340fc147, - 0x340a03c7, 0x34044626, 0x33fe8866, 0x33f8ca86, 0x33f30c85, 0x33ed4e65, - 0x33e79024, 0x33e1d1c4, - 0x33dc1343, 0x33d654a2, 0x33d095e2, 0x33cad701, 0x33c51801, 0x33bf58e1, - 0x33b999a0, 0x33b3da40, - 0x33ae1ac0, 0x33a85b20, 0x33a29b60, 0x339cdb81, 0x33971b81, 0x33915b62, - 0x338b9b22, 0x3385dac4, - 0x33801a45, 0x337a59a6, 0x337498e8, 0x336ed80a, 0x3369170c, 0x336355ef, - 0x335d94b2, 0x3357d355, - 0x335211d8, 0x334c503c, 0x33468e80, 0x3340cca5, 0x333b0aaa, 0x3335488f, - 0x332f8655, 0x3329c3fb, - 0x33240182, 0x331e3ee9, 0x33187c31, 0x3312b959, 0x330cf661, 0x3307334a, - 0x33017014, 0x32fbacbe, - 0x32f5e948, 0x32f025b4, 0x32ea61ff, 0x32e49e2c, 0x32deda39, 0x32d91626, - 0x32d351f5, 0x32cd8da4, - 0x32c7c933, 0x32c204a3, 0x32bc3ff4, 0x32b67b26, 0x32b0b638, 0x32aaf12b, - 0x32a52bff, 0x329f66b4, - 0x3299a149, 0x3293dbbf, 0x328e1616, 0x3288504e, 0x32828a67, 0x327cc460, - 0x3276fe3a, 0x327137f6, - 0x326b7192, 0x3265ab0f, 0x325fe46c, 0x325a1dab, 0x325456cb, 0x324e8fcc, - 0x3248c8ad, 0x32430170, - 0x323d3a14, 0x32377298, 0x3231aafe, 0x322be345, 0x32261b6c, 0x32205375, - 0x321a8b5f, 0x3214c32a, - 0x320efad6, 0x32093263, 0x320369d2, 0x31fda121, 0x31f7d852, 0x31f20f64, - 0x31ec4657, 0x31e67d2b, - 0x31e0b3e0, 0x31daea77, 0x31d520ef, 0x31cf5748, 0x31c98d83, 0x31c3c39e, - 0x31bdf99b, 0x31b82f7a, - 0x31b2653a, 0x31ac9adb, 0x31a6d05d, 0x31a105c1, 0x319b3b06, 0x3195702d, - 0x318fa535, 0x3189da1e, - 0x31840ee9, 0x317e4395, 0x31787823, 0x3172ac92, 0x316ce0e3, 0x31671515, - 0x31614929, 0x315b7d1e, - 0x3155b0f5, 0x314fe4ae, 0x314a1848, 0x31444bc3, 0x313e7f21, 0x3138b260, - 0x3132e580, 0x312d1882, - 0x31274b66, 0x31217e2c, 0x311bb0d3, 0x3115e35c, 0x311015c6, 0x310a4813, - 0x31047a41, 0x30feac51, - 0x30f8de42, 0x30f31016, 0x30ed41cb, 0x30e77362, 0x30e1a4db, 0x30dbd636, - 0x30d60772, 0x30d03891, - 0x30ca6991, 0x30c49a74, 0x30becb38, 0x30b8fbde, 0x30b32c66, 0x30ad5cd0, - 0x30a78d1c, 0x30a1bd4a, - 0x309bed5a, 0x30961d4c, 0x30904d20, 0x308a7cd6, 0x3084ac6e, 0x307edbe9, - 0x30790b45, 0x30733a83, - 0x306d69a4, 0x306798a7, 0x3061c78b, 0x305bf652, 0x305624fb, 0x30505387, - 0x304a81f4, 0x3044b044, - 0x303ede76, 0x30390c8a, 0x30333a80, 0x302d6859, 0x30279614, 0x3021c3b1, - 0x301bf131, 0x30161e93, - 0x30104bd7, 0x300a78fe, 0x3004a607, 0x2ffed2f2, 0x2ff8ffc0, 0x2ff32c70, - 0x2fed5902, 0x2fe78577, - 0x2fe1b1cf, 0x2fdbde09, 0x2fd60a25, 0x2fd03624, 0x2fca6206, 0x2fc48dc9, - 0x2fbeb970, 0x2fb8e4f9, - 0x2fb31064, 0x2fad3bb3, 0x2fa766e3, 0x2fa191f7, 0x2f9bbced, 0x2f95e7c5, - 0x2f901280, 0x2f8a3d1e, - 0x2f84679f, 0x2f7e9202, 0x2f78bc48, 0x2f72e671, 0x2f6d107c, 0x2f673a6a, - 0x2f61643b, 0x2f5b8def, - 0x2f55b785, 0x2f4fe0ff, 0x2f4a0a5b, 0x2f44339a, 0x2f3e5cbb, 0x2f3885c0, - 0x2f32aea8, 0x2f2cd772, - 0x2f27001f, 0x2f2128af, 0x2f1b5122, 0x2f157979, 0x2f0fa1b2, 0x2f09c9ce, - 0x2f03f1cd, 0x2efe19ae, - 0x2ef84173, 0x2ef2691b, 0x2eec90a7, 0x2ee6b815, 0x2ee0df66, 0x2edb069a, - 0x2ed52db1, 0x2ecf54ac, - 0x2ec97b89, 0x2ec3a24a, 0x2ebdc8ee, 0x2eb7ef75, 0x2eb215df, 0x2eac3c2d, - 0x2ea6625d, 0x2ea08871, - 0x2e9aae68, 0x2e94d443, 0x2e8efa00, 0x2e891fa1, 0x2e834525, 0x2e7d6a8d, - 0x2e778fd8, 0x2e71b506, - 0x2e6bda17, 0x2e65ff0c, 0x2e6023e5, 0x2e5a48a0, 0x2e546d3f, 0x2e4e91c2, - 0x2e48b628, 0x2e42da71, - 0x2e3cfe9e, 0x2e3722ae, 0x2e3146a2, 0x2e2b6a79, 0x2e258e34, 0x2e1fb1d3, - 0x2e19d554, 0x2e13f8ba, - 0x2e0e1c03, 0x2e083f30, 0x2e026240, 0x2dfc8534, 0x2df6a80b, 0x2df0cac6, - 0x2deaed65, 0x2de50fe8, - 0x2ddf324e, 0x2dd95498, 0x2dd376c5, 0x2dcd98d7, 0x2dc7bacc, 0x2dc1dca4, - 0x2dbbfe61, 0x2db62001, - 0x2db04186, 0x2daa62ee, 0x2da4843a, 0x2d9ea569, 0x2d98c67d, 0x2d92e774, - 0x2d8d084f, 0x2d87290f, - 0x2d8149b2, 0x2d7b6a39, 0x2d758aa4, 0x2d6faaf3, 0x2d69cb26, 0x2d63eb3d, - 0x2d5e0b38, 0x2d582b17, - 0x2d524ada, 0x2d4c6a81, 0x2d468a0c, 0x2d40a97b, 0x2d3ac8ce, 0x2d34e805, - 0x2d2f0721, 0x2d292620, - 0x2d234504, 0x2d1d63cc, 0x2d178278, 0x2d11a108, 0x2d0bbf7d, 0x2d05ddd5, - 0x2cfffc12, 0x2cfa1a33, - 0x2cf43839, 0x2cee5622, 0x2ce873f0, 0x2ce291a2, 0x2cdcaf39, 0x2cd6ccb4, - 0x2cd0ea13, 0x2ccb0756, - 0x2cc5247e, 0x2cbf418b, 0x2cb95e7b, 0x2cb37b51, 0x2cad980a, 0x2ca7b4a8, - 0x2ca1d12a, 0x2c9bed91, - 0x2c9609dd, 0x2c90260d, 0x2c8a4221, 0x2c845e1a, 0x2c7e79f7, 0x2c7895b9, - 0x2c72b160, 0x2c6ccceb, - 0x2c66e85b, 0x2c6103af, 0x2c5b1ee8, 0x2c553a06, 0x2c4f5508, 0x2c496fef, - 0x2c438abb, 0x2c3da56b, - 0x2c37c000, 0x2c31da7a, 0x2c2bf4d8, 0x2c260f1c, 0x2c202944, 0x2c1a4351, - 0x2c145d42, 0x2c0e7719, - 0x2c0890d4, 0x2c02aa74, 0x2bfcc3f9, 0x2bf6dd63, 0x2bf0f6b1, 0x2beb0fe5, - 0x2be528fd, 0x2bdf41fb, - 0x2bd95add, 0x2bd373a4, 0x2bcd8c51, 0x2bc7a4e2, 0x2bc1bd58, 0x2bbbd5b3, - 0x2bb5edf4, 0x2bb00619, - 0x2baa1e23, 0x2ba43613, 0x2b9e4de7, 0x2b9865a1, 0x2b927d3f, 0x2b8c94c3, - 0x2b86ac2c, 0x2b80c37a, - 0x2b7adaae, 0x2b74f1c6, 0x2b6f08c4, 0x2b691fa6, 0x2b63366f, 0x2b5d4d1c, - 0x2b5763ae, 0x2b517a26, - 0x2b4b9083, 0x2b45a6c6, 0x2b3fbced, 0x2b39d2fa, 0x2b33e8ed, 0x2b2dfec5, - 0x2b281482, 0x2b222a24, - 0x2b1c3fac, 0x2b165519, 0x2b106a6c, 0x2b0a7fa4, 0x2b0494c2, 0x2afea9c5, - 0x2af8bead, 0x2af2d37b, - 0x2aece82f, 0x2ae6fcc8, 0x2ae11146, 0x2adb25aa, 0x2ad539f4, 0x2acf4e23, - 0x2ac96238, 0x2ac37633, - 0x2abd8a13, 0x2ab79dd8, 0x2ab1b184, 0x2aabc515, 0x2aa5d88b, 0x2a9febe8, - 0x2a99ff2a, 0x2a941252, - 0x2a8e255f, 0x2a883853, 0x2a824b2c, 0x2a7c5deb, 0x2a76708f, 0x2a70831a, - 0x2a6a958a, 0x2a64a7e0, - 0x2a5eba1c, 0x2a58cc3e, 0x2a52de46, 0x2a4cf033, 0x2a470207, 0x2a4113c0, - 0x2a3b2560, 0x2a3536e5, - 0x2a2f4850, 0x2a2959a1, 0x2a236ad9, 0x2a1d7bf6, 0x2a178cf9, 0x2a119de2, - 0x2a0baeb2, 0x2a05bf67, - 0x29ffd003, 0x29f9e084, 0x29f3f0ec, 0x29ee013a, 0x29e8116e, 0x29e22188, - 0x29dc3188, 0x29d6416f, - 0x29d0513b, 0x29ca60ee, 0x29c47087, 0x29be8007, 0x29b88f6c, 0x29b29eb8, - 0x29acadea, 0x29a6bd02, - 0x29a0cc01, 0x299adae6, 0x2994e9b1, 0x298ef863, 0x298906fb, 0x2983157a, - 0x297d23df, 0x2977322a, - 0x2971405b, 0x296b4e74, 0x29655c72, 0x295f6a57, 0x29597823, 0x295385d5, - 0x294d936d, 0x2947a0ec, - 0x2941ae52, 0x293bbb9e, 0x2935c8d1, 0x292fd5ea, 0x2929e2ea, 0x2923efd0, - 0x291dfc9d, 0x29180951, - 0x291215eb, 0x290c226c, 0x29062ed4, 0x29003b23, 0x28fa4758, 0x28f45374, - 0x28ee5f76, 0x28e86b5f, - 0x28e27730, 0x28dc82e6, 0x28d68e84, 0x28d09a09, 0x28caa574, 0x28c4b0c6, - 0x28bebbff, 0x28b8c71f, - 0x28b2d226, 0x28acdd13, 0x28a6e7e8, 0x28a0f2a3, 0x289afd46, 0x289507cf, - 0x288f123f, 0x28891c97, - 0x288326d5, 0x287d30fa, 0x28773b07, 0x287144fa, 0x286b4ed5, 0x28655896, - 0x285f623f, 0x28596bce, - 0x28537545, 0x284d7ea3, 0x284787e8, 0x28419114, 0x283b9a28, 0x2835a322, - 0x282fac04, 0x2829b4cd, - 0x2823bd7d, 0x281dc615, 0x2817ce93, 0x2811d6f9, 0x280bdf46, 0x2805e77b, - 0x27ffef97, 0x27f9f79a, - 0x27f3ff85, 0x27ee0756, 0x27e80f10, 0x27e216b0, 0x27dc1e38, 0x27d625a8, - 0x27d02cff, 0x27ca343d, - 0x27c43b63, 0x27be4270, 0x27b84965, 0x27b25041, 0x27ac5705, 0x27a65db0, - 0x27a06443, 0x279a6abd, - 0x2794711f, 0x278e7768, 0x27887d99, 0x278283b2, 0x277c89b3, 0x27768f9b, - 0x2770956a, 0x276a9b21, - 0x2764a0c0, 0x275ea647, 0x2758abb6, 0x2752b10c, 0x274cb64a, 0x2746bb6f, - 0x2740c07d, 0x273ac572, - 0x2734ca4f, 0x272ecf14, 0x2728d3c0, 0x2722d855, 0x271cdcd1, 0x2716e136, - 0x2710e582, 0x270ae9b6, - 0x2704edd2, 0x26fef1d5, 0x26f8f5c1, 0x26f2f995, 0x26ecfd51, 0x26e700f5, - 0x26e10480, 0x26db07f4, - 0x26d50b50, 0x26cf0e94, 0x26c911c0, 0x26c314d4, 0x26bd17d0, 0x26b71ab4, - 0x26b11d80, 0x26ab2034, - 0x26a522d1, 0x269f2556, 0x269927c3, 0x26932a18, 0x268d2c55, 0x26872e7b, - 0x26813088, 0x267b327e, - 0x2675345d, 0x266f3623, 0x266937d2, 0x26633969, 0x265d3ae9, 0x26573c50, - 0x26513da1, 0x264b3ed9, - 0x26453ffa, 0x263f4103, 0x263941f5, 0x263342cf, 0x262d4392, 0x2627443d, - 0x262144d0, 0x261b454c, - 0x261545b0, 0x260f45fd, 0x26094633, 0x26034651, 0x25fd4657, 0x25f74646, - 0x25f1461e, 0x25eb45de, - 0x25e54587, 0x25df4519, 0x25d94493, 0x25d343f6, 0x25cd4341, 0x25c74276, - 0x25c14192, 0x25bb4098, - 0x25b53f86, 0x25af3e5d, 0x25a93d1d, 0x25a33bc6, 0x259d3a57, 0x259738d1, - 0x25913734, 0x258b3580, - 0x258533b5, 0x257f31d2, 0x25792fd8, 0x25732dc8, 0x256d2ba0, 0x25672961, - 0x2561270b, 0x255b249e, - 0x2555221a, 0x254f1f7e, 0x25491ccc, 0x25431a03, 0x253d1723, 0x2537142c, - 0x2531111e, 0x252b0df9, - 0x25250abd, 0x251f076a, 0x25190400, 0x25130080, 0x250cfce8, 0x2506f93a, - 0x2500f574, 0x24faf198, - 0x24f4eda6, 0x24eee99c, 0x24e8e57c, 0x24e2e144, 0x24dcdcf6, 0x24d6d892, - 0x24d0d416, 0x24cacf84, - 0x24c4cadb, 0x24bec61c, 0x24b8c146, 0x24b2bc59, 0x24acb756, 0x24a6b23b, - 0x24a0ad0b, 0x249aa7c4, - 0x2494a266, 0x248e9cf1, 0x24889766, 0x248291c5, 0x247c8c0d, 0x2476863e, - 0x24708059, 0x246a7a5e, - 0x2464744c, 0x245e6e23, 0x245867e4, 0x2452618f, 0x244c5b24, 0x244654a1, - 0x24404e09, 0x243a475a, - 0x24344095, 0x242e39ba, 0x242832c8, 0x24222bc0, 0x241c24a1, 0x24161d6d, - 0x24101622, 0x240a0ec1, - 0x24040749, 0x23fdffbc, 0x23f7f818, 0x23f1f05e, 0x23ebe88e, 0x23e5e0a7, - 0x23dfd8ab, 0x23d9d098, - 0x23d3c86f, 0x23cdc031, 0x23c7b7dc, 0x23c1af71, 0x23bba6f0, 0x23b59e59, - 0x23af95ac, 0x23a98ce8, - 0x23a3840f, 0x239d7b20, 0x2397721b, 0x23916900, 0x238b5fcf, 0x23855688, - 0x237f4d2b, 0x237943b9, - 0x23733a30, 0x236d3092, 0x236726dd, 0x23611d13, 0x235b1333, 0x2355093e, - 0x234eff32, 0x2348f511, - 0x2342eada, 0x233ce08d, 0x2336d62a, 0x2330cbb2, 0x232ac124, 0x2324b680, - 0x231eabc7, 0x2318a0f8, - 0x23129613, 0x230c8b19, 0x23068009, 0x230074e3, 0x22fa69a8, 0x22f45e57, - 0x22ee52f1, 0x22e84775, - 0x22e23be4, 0x22dc303d, 0x22d62480, 0x22d018ae, 0x22ca0cc7, 0x22c400ca, - 0x22bdf4b8, 0x22b7e890, - 0x22b1dc53, 0x22abd001, 0x22a5c399, 0x229fb71b, 0x2299aa89, 0x22939de1, - 0x228d9123, 0x22878451, - 0x22817769, 0x227b6a6c, 0x22755d59, 0x226f5032, 0x226942f5, 0x226335a2, - 0x225d283b, 0x22571abe, - 0x22510d2d, 0x224aff86, 0x2244f1c9, 0x223ee3f8, 0x2238d612, 0x2232c816, - 0x222cba06, 0x2226abe0, - 0x22209da5, 0x221a8f56, 0x221480f1, 0x220e7277, 0x220863e8, 0x22025544, - 0x21fc468b, 0x21f637be, - 0x21f028db, 0x21ea19e3, 0x21e40ad7, 0x21ddfbb5, 0x21d7ec7f, 0x21d1dd34, - 0x21cbcdd3, 0x21c5be5e, - 0x21bfaed5, 0x21b99f36, 0x21b38f83, 0x21ad7fba, 0x21a76fdd, 0x21a15fec, - 0x219b4fe5, 0x21953fca, - 0x218f2f9a, 0x21891f55, 0x21830efc, 0x217cfe8e, 0x2176ee0b, 0x2170dd74, - 0x216accc8, 0x2164bc08, - 0x215eab33, 0x21589a49, 0x2152894b, 0x214c7838, 0x21466710, 0x214055d4, - 0x213a4484, 0x2134331f, - 0x212e21a6, 0x21281018, 0x2121fe76, 0x211becbf, 0x2115daf4, 0x210fc914, - 0x2109b720, 0x2103a518, - 0x20fd92fb, 0x20f780ca, 0x20f16e84, 0x20eb5c2b, 0x20e549bd, 0x20df373a, - 0x20d924a4, 0x20d311f9, - 0x20ccff3a, 0x20c6ec66, 0x20c0d97f, 0x20bac683, 0x20b4b373, 0x20aea04f, - 0x20a88d17, 0x20a279ca, - 0x209c666a, 0x209652f5, 0x20903f6c, 0x208a2bcf, 0x2084181e, 0x207e0459, - 0x2077f080, 0x2071dc93, - 0x206bc892, 0x2065b47d, 0x205fa054, 0x20598c17, 0x205377c6, 0x204d6361, - 0x20474ee8, 0x20413a5b, - 0x203b25bb, 0x20351106, 0x202efc3e, 0x2028e761, 0x2022d271, 0x201cbd6d, - 0x2016a856, 0x2010932a, - 0x200a7deb, 0x20046898, 0x1ffe5331, 0x1ff83db6, 0x1ff22828, 0x1fec1286, - 0x1fe5fcd0, 0x1fdfe707, - 0x1fd9d12a, 0x1fd3bb39, 0x1fcda535, 0x1fc78f1d, 0x1fc178f1, 0x1fbb62b2, - 0x1fb54c60, 0x1faf35f9, - 0x1fa91f80, 0x1fa308f2, 0x1f9cf252, 0x1f96db9d, 0x1f90c4d5, 0x1f8aadfa, - 0x1f84970b, 0x1f7e8009, - 0x1f7868f4, 0x1f7251ca, 0x1f6c3a8e, 0x1f66233e, 0x1f600bdb, 0x1f59f465, - 0x1f53dcdb, 0x1f4dc53d, - 0x1f47ad8d, 0x1f4195c9, 0x1f3b7df2, 0x1f356608, 0x1f2f4e0a, 0x1f2935f9, - 0x1f231dd5, 0x1f1d059e, - 0x1f16ed54, 0x1f10d4f6, 0x1f0abc85, 0x1f04a401, 0x1efe8b6a, 0x1ef872c0, - 0x1ef25a03, 0x1eec4132, - 0x1ee6284f, 0x1ee00f58, 0x1ed9f64f, 0x1ed3dd32, 0x1ecdc402, 0x1ec7aac0, - 0x1ec1916a, 0x1ebb7802, - 0x1eb55e86, 0x1eaf44f8, 0x1ea92b56, 0x1ea311a2, 0x1e9cf7db, 0x1e96de01, - 0x1e90c414, 0x1e8aaa14, - 0x1e849001, 0x1e7e75dc, 0x1e785ba3, 0x1e724158, 0x1e6c26fa, 0x1e660c8a, - 0x1e5ff206, 0x1e59d770, - 0x1e53bcc7, 0x1e4da20c, 0x1e47873d, 0x1e416c5d, 0x1e3b5169, 0x1e353663, - 0x1e2f1b4a, 0x1e29001e, - 0x1e22e4e0, 0x1e1cc990, 0x1e16ae2c, 0x1e1092b6, 0x1e0a772e, 0x1e045b93, - 0x1dfe3fe6, 0x1df82426, - 0x1df20853, 0x1debec6f, 0x1de5d077, 0x1ddfb46e, 0x1dd99851, 0x1dd37c23, - 0x1dcd5fe2, 0x1dc7438e, - 0x1dc12729, 0x1dbb0ab0, 0x1db4ee26, 0x1daed189, 0x1da8b4da, 0x1da29819, - 0x1d9c7b45, 0x1d965e5f, - 0x1d904167, 0x1d8a245c, 0x1d840740, 0x1d7dea11, 0x1d77ccd0, 0x1d71af7d, - 0x1d6b9217, 0x1d6574a0, - 0x1d5f5716, 0x1d59397a, 0x1d531bcc, 0x1d4cfe0d, 0x1d46e03a, 0x1d40c256, - 0x1d3aa460, 0x1d348658, - 0x1d2e683e, 0x1d284a12, 0x1d222bd3, 0x1d1c0d83, 0x1d15ef21, 0x1d0fd0ad, - 0x1d09b227, 0x1d03938f, - 0x1cfd74e5, 0x1cf7562a, 0x1cf1375c, 0x1ceb187d, 0x1ce4f98c, 0x1cdeda89, - 0x1cd8bb74, 0x1cd29c4d, - 0x1ccc7d15, 0x1cc65dca, 0x1cc03e6e, 0x1cba1f01, 0x1cb3ff81, 0x1caddff0, - 0x1ca7c04d, 0x1ca1a099, - 0x1c9b80d3, 0x1c9560fb, 0x1c8f4112, 0x1c892117, 0x1c83010a, 0x1c7ce0ec, - 0x1c76c0bc, 0x1c70a07b, - 0x1c6a8028, 0x1c645fc3, 0x1c5e3f4d, 0x1c581ec6, 0x1c51fe2d, 0x1c4bdd83, - 0x1c45bcc7, 0x1c3f9bf9, - 0x1c397b1b, 0x1c335a2b, 0x1c2d3929, 0x1c271816, 0x1c20f6f2, 0x1c1ad5bc, - 0x1c14b475, 0x1c0e931d, - 0x1c0871b4, 0x1c025039, 0x1bfc2ead, 0x1bf60d0f, 0x1befeb60, 0x1be9c9a1, - 0x1be3a7cf, 0x1bdd85ed, - 0x1bd763fa, 0x1bd141f5, 0x1bcb1fdf, 0x1bc4fdb8, 0x1bbedb80, 0x1bb8b937, - 0x1bb296dc, 0x1bac7471, - 0x1ba651f5, 0x1ba02f67, 0x1b9a0cc8, 0x1b93ea19, 0x1b8dc758, 0x1b87a487, - 0x1b8181a4, 0x1b7b5eb0, - 0x1b753bac, 0x1b6f1897, 0x1b68f570, 0x1b62d239, 0x1b5caef1, 0x1b568b98, - 0x1b50682e, 0x1b4a44b3, - 0x1b442127, 0x1b3dfd8b, 0x1b37d9de, 0x1b31b620, 0x1b2b9251, 0x1b256e71, - 0x1b1f4a81, 0x1b192680, - 0x1b13026e, 0x1b0cde4c, 0x1b06ba19, 0x1b0095d5, 0x1afa7180, 0x1af44d1b, - 0x1aee28a6, 0x1ae8041f, - 0x1ae1df88, 0x1adbbae1, 0x1ad59629, 0x1acf7160, 0x1ac94c87, 0x1ac3279d, - 0x1abd02a3, 0x1ab6dd98, - 0x1ab0b87d, 0x1aaa9352, 0x1aa46e16, 0x1a9e48c9, 0x1a98236c, 0x1a91fdff, - 0x1a8bd881, 0x1a85b2f3, - 0x1a7f8d54, 0x1a7967a6, 0x1a7341e6, 0x1a6d1c17, 0x1a66f637, 0x1a60d047, - 0x1a5aaa47, 0x1a548436, - 0x1a4e5e15, 0x1a4837e4, 0x1a4211a3, 0x1a3beb52, 0x1a35c4f0, 0x1a2f9e7e, - 0x1a2977fc, 0x1a23516a, - 0x1a1d2ac8, 0x1a170416, 0x1a10dd53, 0x1a0ab681, 0x1a048f9e, 0x19fe68ac, - 0x19f841a9, 0x19f21a96, - 0x19ebf374, 0x19e5cc41, 0x19dfa4fe, 0x19d97dac, 0x19d35649, 0x19cd2ed7, - 0x19c70754, 0x19c0dfc2, - 0x19bab820, 0x19b4906e, 0x19ae68ac, 0x19a840da, 0x19a218f9, 0x199bf107, - 0x1995c906, 0x198fa0f5, - 0x198978d4, 0x198350a4, 0x197d2864, 0x19770014, 0x1970d7b4, 0x196aaf45, - 0x196486c6, 0x195e5e37, - 0x19583599, 0x19520ceb, 0x194be42d, 0x1945bb60, 0x193f9283, 0x19396997, - 0x1933409b, 0x192d178f, - 0x1926ee74, 0x1920c54a, 0x191a9c10, 0x191472c6, 0x190e496d, 0x19082005, - 0x1901f68d, 0x18fbcd06, - 0x18f5a36f, 0x18ef79c9, 0x18e95014, 0x18e3264f, 0x18dcfc7b, 0x18d6d297, - 0x18d0a8a4, 0x18ca7ea2, - 0x18c45491, 0x18be2a70, 0x18b80040, 0x18b1d601, 0x18ababb2, 0x18a58154, - 0x189f56e8, 0x18992c6b, - 0x189301e0, 0x188cd746, 0x1886ac9c, 0x188081e4, 0x187a571c, 0x18742c45, - 0x186e015f, 0x1867d66a, - 0x1861ab66, 0x185b8053, 0x18555530, 0x184f29ff, 0x1848febf, 0x1842d370, - 0x183ca812, 0x18367ca5, - 0x18305129, 0x182a259e, 0x1823fa04, 0x181dce5b, 0x1817a2a4, 0x181176dd, - 0x180b4b08, 0x18051f24, - 0x17fef331, 0x17f8c72f, 0x17f29b1e, 0x17ec6eff, 0x17e642d1, 0x17e01694, - 0x17d9ea49, 0x17d3bdee, - 0x17cd9186, 0x17c7650e, 0x17c13888, 0x17bb0bf3, 0x17b4df4f, 0x17aeb29d, - 0x17a885dc, 0x17a2590d, - 0x179c2c2f, 0x1795ff42, 0x178fd247, 0x1789a53d, 0x17837825, 0x177d4afe, - 0x17771dc9, 0x1770f086, - 0x176ac333, 0x176495d3, 0x175e6864, 0x17583ae7, 0x17520d5b, 0x174bdfc1, - 0x1745b218, 0x173f8461, - 0x1739569c, 0x173328c8, 0x172cfae6, 0x1726ccf6, 0x17209ef8, 0x171a70eb, - 0x171442d0, 0x170e14a7, - 0x1707e670, 0x1701b82a, 0x16fb89d6, 0x16f55b74, 0x16ef2d04, 0x16e8fe86, - 0x16e2cff9, 0x16dca15f, - 0x16d672b6, 0x16d043ff, 0x16ca153a, 0x16c3e667, 0x16bdb787, 0x16b78898, - 0x16b1599b, 0x16ab2a90, - 0x16a4fb77, 0x169ecc50, 0x16989d1b, 0x16926dd8, 0x168c3e87, 0x16860f29, - 0x167fdfbc, 0x1679b042, - 0x167380ba, 0x166d5123, 0x1667217f, 0x1660f1ce, 0x165ac20e, 0x16549241, - 0x164e6266, 0x1648327d, - 0x16420286, 0x163bd282, 0x1635a270, 0x162f7250, 0x16294222, 0x162311e7, - 0x161ce19e, 0x1616b148, - 0x161080e4, 0x160a5072, 0x16041ff3, 0x15fdef66, 0x15f7becc, 0x15f18e24, - 0x15eb5d6e, 0x15e52cab, - 0x15defbdb, 0x15d8cafd, 0x15d29a11, 0x15cc6918, 0x15c63812, 0x15c006fe, - 0x15b9d5dd, 0x15b3a4ae, - 0x15ad7372, 0x15a74228, 0x15a110d2, 0x159adf6e, 0x1594adfc, 0x158e7c7d, - 0x15884af1, 0x15821958, - 0x157be7b1, 0x1575b5fe, 0x156f843c, 0x1569526e, 0x15632093, 0x155ceeaa, - 0x1556bcb4, 0x15508ab1, - 0x154a58a1, 0x15442683, 0x153df459, 0x1537c221, 0x15318fdd, 0x152b5d8b, - 0x15252b2c, 0x151ef8c0, - 0x1518c648, 0x151293c2, 0x150c612f, 0x15062e8f, 0x14fffbe2, 0x14f9c928, - 0x14f39662, 0x14ed638e, - 0x14e730ae, 0x14e0fdc0, 0x14dacac6, 0x14d497bf, 0x14ce64ab, 0x14c8318a, - 0x14c1fe5c, 0x14bbcb22, - 0x14b597da, 0x14af6486, 0x14a93125, 0x14a2fdb8, 0x149cca3e, 0x149696b7, - 0x14906323, 0x148a2f82, - 0x1483fbd5, 0x147dc81c, 0x14779455, 0x14716082, 0x146b2ca3, 0x1464f8b7, - 0x145ec4be, 0x145890b9, - 0x14525ca7, 0x144c2888, 0x1445f45d, 0x143fc026, 0x14398be2, 0x14335792, - 0x142d2335, 0x1426eecb, - 0x1420ba56, 0x141a85d3, 0x14145145, 0x140e1caa, 0x1407e803, 0x1401b34f, - 0x13fb7e8f, 0x13f549c3, - 0x13ef14ea, 0x13e8e005, 0x13e2ab14, 0x13dc7616, 0x13d6410d, 0x13d00bf7, - 0x13c9d6d4, 0x13c3a1a6, - 0x13bd6c6b, 0x13b73725, 0x13b101d2, 0x13aacc73, 0x13a49707, 0x139e6190, - 0x13982c0d, 0x1391f67d, - 0x138bc0e1, 0x13858b3a, 0x137f5586, 0x13791fc6, 0x1372e9fb, 0x136cb423, - 0x13667e3f, 0x13604850, - 0x135a1254, 0x1353dc4c, 0x134da639, 0x1347701a, 0x134139ee, 0x133b03b7, - 0x1334cd74, 0x132e9725, - 0x132860ca, 0x13222a64, 0x131bf3f2, 0x1315bd73, 0x130f86ea, 0x13095054, - 0x130319b3, 0x12fce305, - 0x12f6ac4d, 0x12f07588, 0x12ea3eb8, 0x12e407dc, 0x12ddd0f4, 0x12d79a01, - 0x12d16303, 0x12cb2bf8, - 0x12c4f4e2, 0x12bebdc1, 0x12b88693, 0x12b24f5b, 0x12ac1817, 0x12a5e0c7, - 0x129fa96c, 0x12997205, - 0x12933a93, 0x128d0315, 0x1286cb8c, 0x128093f7, 0x127a5c57, 0x127424ac, - 0x126decf5, 0x1267b533, - 0x12617d66, 0x125b458d, 0x12550da9, 0x124ed5ba, 0x12489dbf, 0x124265b9, - 0x123c2da8, 0x1235f58b, - 0x122fbd63, 0x12298530, 0x12234cf2, 0x121d14a9, 0x1216dc54, 0x1210a3f5, - 0x120a6b8a, 0x12043314, - 0x11fdfa93, 0x11f7c207, 0x11f18970, 0x11eb50cd, 0x11e51820, 0x11dedf68, - 0x11d8a6a4, 0x11d26dd6, - 0x11cc34fc, 0x11c5fc18, 0x11bfc329, 0x11b98a2e, 0x11b35129, 0x11ad1819, - 0x11a6defe, 0x11a0a5d8, - 0x119a6ca7, 0x1194336b, 0x118dfa25, 0x1187c0d3, 0x11818777, 0x117b4e10, - 0x1175149e, 0x116edb22, - 0x1168a19b, 0x11626809, 0x115c2e6c, 0x1155f4c4, 0x114fbb12, 0x11498156, - 0x1143478e, 0x113d0dbc, - 0x1136d3df, 0x113099f8, 0x112a6006, 0x11242609, 0x111dec02, 0x1117b1f0, - 0x111177d4, 0x110b3dad, - 0x1105037c, 0x10fec940, 0x10f88efa, 0x10f254a9, 0x10ec1a4e, 0x10e5dfe8, - 0x10dfa578, 0x10d96afe, - 0x10d33079, 0x10ccf5ea, 0x10c6bb50, 0x10c080ac, 0x10ba45fe, 0x10b40b45, - 0x10add082, 0x10a795b5, - 0x10a15ade, 0x109b1ffc, 0x1094e510, 0x108eaa1a, 0x10886f19, 0x1082340f, - 0x107bf8fa, 0x1075bddb, - 0x106f82b2, 0x1069477f, 0x10630c41, 0x105cd0fa, 0x105695a8, 0x10505a4d, - 0x104a1ee7, 0x1043e377, - 0x103da7fd, 0x10376c79, 0x103130ec, 0x102af554, 0x1024b9b2, 0x101e7e06, - 0x10184251, 0x10120691, - 0x100bcac7, 0x10058ef4, 0xfff5317, 0xff91730, 0xff2db3e, 0xfec9f44, - 0xfe6633f, 0xfe02730, - 0xfd9eb18, 0xfd3aef6, 0xfcd72ca, 0xfc73695, 0xfc0fa55, 0xfbabe0c, 0xfb481ba, - 0xfae455d, - 0xfa808f7, 0xfa1cc87, 0xf9b900e, 0xf95538b, 0xf8f16fe, 0xf88da68, 0xf829dc8, - 0xf7c611f, - 0xf76246c, 0xf6fe7af, 0xf69aae9, 0xf636e1a, 0xf5d3141, 0xf56f45e, 0xf50b773, - 0xf4a7a7d, - 0xf443d7e, 0xf3e0076, 0xf37c365, 0xf318649, 0xf2b4925, 0xf250bf7, 0xf1ecec0, - 0xf189180, - 0xf125436, 0xf0c16e3, 0xf05d987, 0xeff9c21, 0xef95eb2, 0xef3213a, 0xeece3b9, - 0xee6a62f, - 0xee0689b, 0xeda2afe, 0xed3ed58, 0xecdafa9, 0xec771f1, 0xec1342f, 0xebaf665, - 0xeb4b891, - 0xeae7ab4, 0xea83ccf, 0xea1fee0, 0xe9bc0e8, 0xe9582e7, 0xe8f44dd, 0xe8906cb, - 0xe82c8af, - 0xe7c8a8a, 0xe764c5c, 0xe700e26, 0xe69cfe6, 0xe63919e, 0xe5d534d, 0xe5714f3, - 0xe50d690, - 0xe4a9824, 0xe4459af, 0xe3e1b32, 0xe37dcac, 0xe319e1d, 0xe2b5f85, 0xe2520e5, - 0xe1ee23c, - 0xe18a38a, 0xe1264cf, 0xe0c260c, 0xe05e740, 0xdffa86b, 0xdf9698e, 0xdf32aa8, - 0xdecebba, - 0xde6acc3, 0xde06dc3, 0xdda2ebb, 0xdd3efab, 0xdcdb091, 0xdc77170, 0xdc13245, - 0xdbaf313, - 0xdb4b3d7, 0xdae7494, 0xda83548, 0xda1f5f3, 0xd9bb696, 0xd957731, 0xd8f37c3, - 0xd88f84d, - 0xd82b8cf, 0xd7c7948, 0xd7639b9, 0xd6ffa22, 0xd69ba82, 0xd637ada, 0xd5d3b2a, - 0xd56fb71, - 0xd50bbb1, 0xd4a7be8, 0xd443c17, 0xd3dfc3e, 0xd37bc5c, 0xd317c73, 0xd2b3c81, - 0xd24fc87, - 0xd1ebc85, 0xd187c7b, 0xd123c69, 0xd0bfc4f, 0xd05bc2d, 0xcff7c02, 0xcf93bd0, - 0xcf2fb96, - 0xcecbb53, 0xce67b09, 0xce03ab7, 0xcd9fa5d, 0xcd3b9fb, 0xccd7991, 0xcc7391f, - 0xcc0f8a5, - 0xcbab824, 0xcb4779a, 0xcae3709, 0xca7f670, 0xca1b5cf, 0xc9b7526, 0xc953475, - 0xc8ef3bd, - 0xc88b2fd, 0xc827235, 0xc7c3166, 0xc75f08f, 0xc6fafb0, 0xc696ec9, 0xc632ddb, - 0xc5cece5, - 0xc56abe8, 0xc506ae3, 0xc4a29d6, 0xc43e8c2, 0xc3da7a6, 0xc376683, 0xc312558, - 0xc2ae425, - 0xc24a2eb, 0xc1e61aa, 0xc182061, 0xc11df11, 0xc0b9db9, 0xc055c5a, 0xbff1af3, - 0xbf8d985, - 0xbf29810, 0xbec5693, 0xbe6150f, 0xbdfd383, 0xbd991f0, 0xbd35056, 0xbcd0eb5, - 0xbc6cd0c, - 0xbc08b5c, 0xbba49a5, 0xbb407e7, 0xbadc621, 0xba78454, 0xba14280, 0xb9b00a5, - 0xb94bec2, - 0xb8e7cd9, 0xb883ae8, 0xb81f8f0, 0xb7bb6f2, 0xb7574ec, 0xb6f32df, 0xb68f0cb, - 0xb62aeaf, - 0xb5c6c8d, 0xb562a64, 0xb4fe834, 0xb49a5fd, 0xb4363bf, 0xb3d217a, 0xb36df2e, - 0xb309cdb, - 0xb2a5a81, 0xb241820, 0xb1dd5b9, 0xb17934b, 0xb1150d5, 0xb0b0e59, 0xb04cbd6, - 0xafe894d, - 0xaf846bc, 0xaf20425, 0xaebc187, 0xae57ee2, 0xadf3c37, 0xad8f985, 0xad2b6cc, - 0xacc740c, - 0xac63146, 0xabfee79, 0xab9aba6, 0xab368cc, 0xaad25eb, 0xaa6e304, 0xaa0a016, - 0xa9a5d22, - 0xa941a27, 0xa8dd725, 0xa87941d, 0xa81510f, 0xa7b0dfa, 0xa74cadf, 0xa6e87bd, - 0xa684495, - 0xa620166, 0xa5bbe31, 0xa557af5, 0xa4f37b3, 0xa48f46b, 0xa42b11d, 0xa3c6dc8, - 0xa362a6d, - 0xa2fe70b, 0xa29a3a3, 0xa236035, 0xa1d1cc1, 0xa16d946, 0xa1095c6, 0xa0a523f, - 0xa040eb1, - 0x9fdcb1e, 0x9f78784, 0x9f143e5, 0x9eb003f, 0x9e4bc93, 0x9de78e1, 0x9d83529, - 0x9d1f16b, - 0x9cbada7, 0x9c569dc, 0x9bf260c, 0x9b8e236, 0x9b29e59, 0x9ac5a77, 0x9a6168f, - 0x99fd2a0, - 0x9998eac, 0x9934ab2, 0x98d06b2, 0x986c2ac, 0x9807ea1, 0x97a3a8f, 0x973f678, - 0x96db25a, - 0x9676e37, 0x9612a0e, 0x95ae5e0, 0x954a1ab, 0x94e5d71, 0x9481931, 0x941d4eb, - 0x93b90a0, - 0x9354c4f, 0x92f07f8, 0x928c39b, 0x9227f39, 0x91c3ad2, 0x915f664, 0x90fb1f1, - 0x9096d79, - 0x90328fb, 0x8fce477, 0x8f69fee, 0x8f05b5f, 0x8ea16cb, 0x8e3d231, 0x8dd8d92, - 0x8d748ed, - 0x8d10443, 0x8cabf93, 0x8c47ade, 0x8be3624, 0x8b7f164, 0x8b1ac9f, 0x8ab67d4, - 0x8a52304, - 0x89ede2f, 0x8989955, 0x8925475, 0x88c0f90, 0x885caa5, 0x87f85b5, 0x87940c1, - 0x872fbc6, - 0x86cb6c7, 0x86671c2, 0x8602cb9, 0x859e7aa, 0x853a296, 0x84d5d7d, 0x847185e, - 0x840d33b, - 0x83a8e12, 0x83448e5, 0x82e03b2, 0x827be7a, 0x821793e, 0x81b33fc, 0x814eeb5, - 0x80ea969, - 0x8086419, 0x8021ec3, 0x7fbd968, 0x7f59409, 0x7ef4ea4, 0x7e9093b, 0x7e2c3cd, - 0x7dc7e5a, - 0x7d638e2, 0x7cff365, 0x7c9ade4, 0x7c3685d, 0x7bd22d2, 0x7b6dd42, 0x7b097ad, - 0x7aa5214, - 0x7a40c76, 0x79dc6d3, 0x797812b, 0x7913b7f, 0x78af5ce, 0x784b019, 0x77e6a5e, - 0x77824a0, - 0x771dedc, 0x76b9914, 0x7655347, 0x75f0d76, 0x758c7a1, 0x75281c6, 0x74c3be7, - 0x745f604, - 0x73fb01c, 0x7396a30, 0x733243f, 0x72cde4a, 0x7269851, 0x7205253, 0x71a0c50, - 0x713c64a, - 0x70d803f, 0x7073a2f, 0x700f41b, 0x6faae03, 0x6f467e7, 0x6ee21c6, 0x6e7dba1, - 0x6e19578, - 0x6db4f4a, 0x6d50919, 0x6cec2e3, 0x6c87ca9, 0x6c2366a, 0x6bbf028, 0x6b5a9e1, - 0x6af6396, - 0x6a91d47, 0x6a2d6f4, 0x69c909d, 0x6964a42, 0x69003e3, 0x689bd80, 0x6837718, - 0x67d30ad, - 0x676ea3d, 0x670a3ca, 0x66a5d53, 0x66416d8, 0x65dd058, 0x65789d5, 0x651434e, - 0x64afcc3, - 0x644b634, 0x63e6fa2, 0x638290b, 0x631e271, 0x62b9bd3, 0x6255531, 0x61f0e8b, - 0x618c7e1, - 0x6128134, 0x60c3a83, 0x605f3ce, 0x5ffad15, 0x5f96659, 0x5f31f99, 0x5ecd8d6, - 0x5e6920e, - 0x5e04b43, 0x5da0475, 0x5d3bda3, 0x5cd76cd, 0x5c72ff4, 0x5c0e917, 0x5baa237, - 0x5b45b53, - 0x5ae146b, 0x5a7cd80, 0x5a18692, 0x59b3fa0, 0x594f8aa, 0x58eb1b2, 0x5886ab5, - 0x58223b6, - 0x57bdcb3, 0x57595ac, 0x56f4ea2, 0x5690795, 0x562c085, 0x55c7971, 0x556325a, - 0x54feb3f, - 0x549a422, 0x5435d01, 0x53d15dd, 0x536ceb5, 0x530878a, 0x52a405d, 0x523f92c, - 0x51db1f7, - 0x5176ac0, 0x5112385, 0x50adc48, 0x5049507, 0x4fe4dc3, 0x4f8067c, 0x4f1bf32, - 0x4eb77e5, - 0x4e53095, 0x4dee942, 0x4d8a1ec, 0x4d25a93, 0x4cc1337, 0x4c5cbd8, 0x4bf8476, - 0x4b93d11, - 0x4b2f5a9, 0x4acae3e, 0x4a666d1, 0x4a01f60, 0x499d7ed, 0x4939077, 0x48d48fe, - 0x4870182, - 0x480ba04, 0x47a7282, 0x4742afe, 0x46de377, 0x4679bee, 0x4615461, 0x45b0cd2, - 0x454c541, - 0x44e7dac, 0x4483615, 0x441ee7c, 0x43ba6df, 0x4355f40, 0x42f179f, 0x428cffb, - 0x4228854, - 0x41c40ab, 0x415f8ff, 0x40fb151, 0x40969a0, 0x40321ed, 0x3fcda37, 0x3f6927f, - 0x3f04ac4, - 0x3ea0307, 0x3e3bb48, 0x3dd7386, 0x3d72bc2, 0x3d0e3fb, 0x3ca9c32, 0x3c45467, - 0x3be0c99, - 0x3b7c4c9, 0x3b17cf7, 0x3ab3523, 0x3a4ed4c, 0x39ea573, 0x3985d97, 0x39215ba, - 0x38bcdda, - 0x38585f8, 0x37f3e14, 0x378f62e, 0x372ae46, 0x36c665b, 0x3661e6f, 0x35fd680, - 0x3598e8f, - 0x353469c, 0x34cfea8, 0x346b6b1, 0x3406eb8, 0x33a26bd, 0x333dec0, 0x32d96c1, - 0x3274ec0, - 0x32106bd, 0x31abeb9, 0x31476b2, 0x30e2ea9, 0x307e69f, 0x3019e93, 0x2fb5684, - 0x2f50e74, - 0x2eec663, 0x2e87e4f, 0x2e2363a, 0x2dbee22, 0x2d5a609, 0x2cf5def, 0x2c915d2, - 0x2c2cdb4, - 0x2bc8594, 0x2b63d73, 0x2aff54f, 0x2a9ad2a, 0x2a36504, 0x29d1cdc, 0x296d4b2, - 0x2908c87, - 0x28a445a, 0x283fc2b, 0x27db3fb, 0x2776bc9, 0x2712396, 0x26adb62, 0x264932b, - 0x25e4af4, - 0x25802bb, 0x251ba80, 0x24b7244, 0x2452a07, 0x23ee1c8, 0x2389988, 0x2325147, - 0x22c0904, - 0x225c0bf, 0x21f787a, 0x2193033, 0x212e7eb, 0x20c9fa1, 0x2065757, 0x2000f0b, - 0x1f9c6be, - 0x1f37e6f, 0x1ed3620, 0x1e6edcf, 0x1e0a57d, 0x1da5d2a, 0x1d414d6, 0x1cdcc80, - 0x1c7842a, - 0x1c13bd2, 0x1baf37a, 0x1b4ab20, 0x1ae62c5, 0x1a81a69, 0x1a1d20c, 0x19b89ae, - 0x1954150, - 0x18ef8f0, 0x188b08f, 0x182682d, 0x17c1fcb, 0x175d767, 0x16f8f03, 0x169469d, - 0x162fe37, - 0x15cb5d0, 0x1566d68, 0x15024ff, 0x149dc96, 0x143942b, 0x13d4bc0, 0x1370354, - 0x130bae7, - 0x12a727a, 0x1242a0c, 0x11de19d, 0x117992e, 0x11150be, 0x10b084d, 0x104bfdb, - 0xfe7769, - 0xf82ef6, 0xf1e683, 0xeb9e0f, 0xe5559b, 0xdf0d26, 0xd8c4b0, 0xd27c3a, - 0xcc33c3, - 0xc5eb4c, 0xbfa2d5, 0xb95a5d, 0xb311e4, 0xacc96b, 0xa680f2, 0xa03878, - 0x99effe, - 0x93a784, 0x8d5f09, 0x87168e, 0x80ce12, 0x7a8597, 0x743d1a, 0x6df49e, - 0x67ac21, - 0x6163a5, 0x5b1b27, 0x54d2aa, 0x4e8a2c, 0x4841af, 0x41f931, 0x3bb0b3, - 0x356835, - 0x2f1fb6, 0x28d738, 0x228eb9, 0x1c463b, 0x15fdbc, 0xfb53d, 0x96cbe, 0x3243f, - -}; - -/** - * @brief Initialization function for the Q31 DCT4/IDCT4. - * @param[in,out] *S points to an instance of Q31 DCT4/IDCT4 structure. - * @param[in] *S_RFFT points to an instance of Q31 RFFT/RIFFT structure - * @param[in] *S_CFFT points to an instance of Q31 CFFT/CIFFT structure - * @param[in] N length of the DCT4. - * @param[in] Nby2 half of the length of the DCT4. - * @param[in] normalize normalizing factor. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. - * \par Normalizing factor: - * The normalizing factor is sqrt(2/N), which depends on the size of transform N. - * Normalizing factors in 1.31 format are mentioned in the table below for different DCT sizes: - * \image html dct4NormalizingQ31Table.gif - */ - -arm_status arm_dct4_init_q31( - arm_dct4_instance_q31 * S, - arm_rfft_instance_q31 * S_RFFT, - arm_cfft_radix4_instance_q31 * S_CFFT, - uint16_t N, - uint16_t Nby2, - q31_t normalize) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initializing the pointer array with the weight table base addresses of different lengths */ - q31_t *twiddlePtr[4] = { (q31_t *) WeightsQ31_128, (q31_t *) WeightsQ31_512, - (q31_t *) WeightsQ31_2048, (q31_t *) WeightsQ31_8192 - }; - - /* Initializing the pointer array with the cos factor table base addresses of different lengths */ - q31_t *pCosFactor[4] = - { (q31_t *) cos_factorsQ31_128, (q31_t *) cos_factorsQ31_512, - (q31_t *) cos_factorsQ31_2048, (q31_t *) cos_factorsQ31_8192 - }; - - /* Initialize the DCT4 length */ - S->N = N; - - /* Initialize the half of DCT4 length */ - S->Nby2 = Nby2; - - /* Initialize the DCT4 Normalizing factor */ - S->normalize = normalize; - - /* Initialize Real FFT Instance */ - S->pRfft = S_RFFT; - - /* Initialize Complex FFT Instance */ - S->pCfft = S_CFFT; - - switch (N) - { - /* Initialize the table modifier values */ - case 8192u: - S->pTwiddle = twiddlePtr[3]; - S->pCosFactor = pCosFactor[3]; - break; - case 2048u: - S->pTwiddle = twiddlePtr[2]; - S->pCosFactor = pCosFactor[2]; - break; - case 512u: - S->pTwiddle = twiddlePtr[1]; - S->pCosFactor = pCosFactor[1]; - break; - case 128u: - S->pTwiddle = twiddlePtr[0]; - S->pCosFactor = pCosFactor[0]; - break; - default: - status = ARM_MATH_ARGUMENT_ERROR; - } - - /* Initialize the RFFT/RIFFT Function */ - arm_rfft_init_q31(S->pRfft, S->pCfft, S->N, 0, 1); - - /* return the status of DCT4 Init function */ - return (status); -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q15.c deleted file mode 100644 index feaa2ae3c0..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q15.c +++ /dev/null @@ -1,386 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dct4_q15.c -* -* Description: Processing function of DCT4 & IDCT4 Q15. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Processing function for the Q15 DCT4/IDCT4. - * @param[in] *S points to an instance of the Q15 DCT4 structure. - * @param[in] *pState points to state buffer. - * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. - * @return none. - * - * \par Input an output formats: - * Internally inputs are downscaled in the RFFT process function to avoid overflows. - * Number of bits downscaled, depends on the size of the transform. - * The input and output formats for different DCT sizes and number of bits to upscale are mentioned in the table below: - * - * \image html dct4FormatsQ15Table.gif - */ - -void arm_dct4_q15( - const arm_dct4_instance_q15 * S, - q15_t * pState, - q15_t * pInlineBuffer) -{ - uint32_t i; /* Loop counter */ - q15_t *weights = S->pTwiddle; /* Pointer to the Weights table */ - q15_t *cosFact = S->pCosFactor; /* Pointer to the cos factors table */ - q15_t *pS1, *pS2, *pbuff; /* Temporary pointers for input buffer and pState buffer */ - q15_t in; /* Temporary variable */ - - - /* DCT4 computation involves DCT2 (which is calculated using RFFT) - * along with some pre-processing and post-processing. - * Computational procedure is explained as follows: - * (a) Pre-processing involves multiplying input with cos factor, - * r(n) = 2 * u(n) * cos(pi*(2*n+1)/(4*n)) - * where, - * r(n) -- output of preprocessing - * u(n) -- input to preprocessing(actual Source buffer) - * (b) Calculation of DCT2 using FFT is divided into three steps: - * Step1: Re-ordering of even and odd elements of input. - * Step2: Calculating FFT of the re-ordered input. - * Step3: Taking the real part of the product of FFT output and weights. - * (c) Post-processing - DCT4 can be obtained from DCT2 output using the following equation: - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * where, - * Y4 -- DCT4 output, Y2 -- DCT2 output - * (d) Multiplying the output with the normalizing factor sqrt(2/N). - */ - - /*-------- Pre-processing ------------*/ - /* Multiplying input with cos factor i.e. r(n) = 2 * x(n) * cos(pi*(2*n+1)/(4*n)) */ - arm_mult_q15(pInlineBuffer, cosFact, pInlineBuffer, S->N); - arm_shift_q15(pInlineBuffer, 1, pInlineBuffer, S->N); - - /* ---------------------------------------------------------------- - * Step1: Re-ordering of even and odd elements as - * pState[i] = pInlineBuffer[2*i] and - * pState[N-i-1] = pInlineBuffer[2*i+1] where i = 0 to N/2 - ---------------------------------------------------------------------*/ - - /* pS1 initialized to pState */ - pS1 = pState; - - /* pS2 initialized to pState+N-1, so that it points to the end of the state buffer */ - pS2 = pState + (S->N - 1u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Initializing the loop counter to N/2 >> 2 for loop unrolling by 4 */ - i = (uint32_t) S->Nby2 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = (uint32_t) S->N >> 2u; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. - * Compute 4 outputs at a time */ - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_q15(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_q15(pState, weights, pState, S->N); - - /* The output of complex multiplication is in 3.13 format. - * Hence changing the format of N (i.e. 2*N elements) complex numbers to 1.15 format by shifting left by 2 bits. */ - arm_shift_q15(pState, 2, pState, S->N * 2); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* Initializing the loop counter to N >> 2 for loop unrolling by 4 */ - i = ((uint32_t) S->N - 1u) >> 2u; - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ >> 1u; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - i = ((uint32_t) S->N - 1u) % 0x4u; - - while(i > 0u) - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = (uint32_t) S->N >> 2u; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. Compute 4 outputs at a time */ - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initializing the loop counter to N/2 */ - i = (uint32_t) S->Nby2; - - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter */ - i = (uint32_t) S->N; - - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_q15(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_q15(pState, weights, pState, S->N); - - /* The output of complex multiplication is in 3.13 format. - * Hence changing the format of N (i.e. 2*N elements) complex numbers to 1.15 format by shifting left by 2 bits. */ - arm_shift_q15(pState, 2, pState, S->N * 2); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* Initializing the loop counter */ - i = ((uint32_t) S->N - 1u); - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ >> 1u; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter */ - i = (uint32_t) S->N; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q31.c deleted file mode 100644 index 887cfb385d..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_dct4_q31.c +++ /dev/null @@ -1,387 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_dct4_q31.c -* -* Description: Processing function of DCT4 & IDCT4 Q31. -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Processing function for the Q31 DCT4/IDCT4. - * @param[in] *S points to an instance of the Q31 DCT4 structure. - * @param[in] *pState points to state buffer. - * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. - * @return none. - * \par Input an output formats: - * Input samples need to be downscaled by 1 bit to avoid saturations in the Q31 DCT process, - * as the conversion from DCT2 to DCT4 involves one subtraction. - * Internally inputs are downscaled in the RFFT process function to avoid overflows. - * Number of bits downscaled, depends on the size of the transform. - * The input and output formats for different DCT sizes and number of bits to upscale are mentioned in the table below: - * - * \image html dct4FormatsQ31Table.gif - */ - -void arm_dct4_q31( - const arm_dct4_instance_q31 * S, - q31_t * pState, - q31_t * pInlineBuffer) -{ - uint16_t i; /* Loop counter */ - q31_t *weights = S->pTwiddle; /* Pointer to the Weights table */ - q31_t *cosFact = S->pCosFactor; /* Pointer to the cos factors table */ - q31_t *pS1, *pS2, *pbuff; /* Temporary pointers for input buffer and pState buffer */ - q31_t in; /* Temporary variable */ - - - /* DCT4 computation involves DCT2 (which is calculated using RFFT) - * along with some pre-processing and post-processing. - * Computational procedure is explained as follows: - * (a) Pre-processing involves multiplying input with cos factor, - * r(n) = 2 * u(n) * cos(pi*(2*n+1)/(4*n)) - * where, - * r(n) -- output of preprocessing - * u(n) -- input to preprocessing(actual Source buffer) - * (b) Calculation of DCT2 using FFT is divided into three steps: - * Step1: Re-ordering of even and odd elements of input. - * Step2: Calculating FFT of the re-ordered input. - * Step3: Taking the real part of the product of FFT output and weights. - * (c) Post-processing - DCT4 can be obtained from DCT2 output using the following equation: - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * where, - * Y4 -- DCT4 output, Y2 -- DCT2 output - * (d) Multiplying the output with the normalizing factor sqrt(2/N). - */ - - /*-------- Pre-processing ------------*/ - /* Multiplying input with cos factor i.e. r(n) = 2 * x(n) * cos(pi*(2*n+1)/(4*n)) */ - arm_mult_q31(pInlineBuffer, cosFact, pInlineBuffer, S->N); - arm_shift_q31(pInlineBuffer, 1, pInlineBuffer, S->N); - - /* ---------------------------------------------------------------- - * Step1: Re-ordering of even and odd elements as - * pState[i] = pInlineBuffer[2*i] and - * pState[N-i-1] = pInlineBuffer[2*i+1] where i = 0 to N/2 - ---------------------------------------------------------------------*/ - - /* pS1 initialized to pState */ - pS1 = pState; - - /* pS2 initialized to pState+N-1, so that it points to the end of the state buffer */ - pS2 = pState + (S->N - 1u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Initializing the loop counter to N/2 >> 2 for loop unrolling by 4 */ - i = S->Nby2 >> 2u; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = S->N >> 2u; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. - * Compute 4 outputs at a time */ - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_q31(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_q31(pState, weights, pState, S->N); - - /* The output of complex multiplication is in 3.29 format. - * Hence changing the format of N (i.e. 2*N elements) complex numbers to 1.31 format by shifting left by 2 bits. */ - arm_shift_q31(pState, 2, pState, S->N * 2); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* Initializing the loop counter to N >> 2 for loop unrolling by 4 */ - i = (S->N - 1u) >> 2u; - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ >> 1u; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - i = (S->N - 1u) % 0x4u; - - while(i > 0u) - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = S->N >> 2u; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. Compute 4 outputs at a time */ - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initializing the loop counter to N/2 */ - i = S->Nby2; - - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter */ - i = S->N; - - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_q31(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_q31(pState, weights, pState, S->N); - - /* The output of complex multiplication is in 3.29 format. - * Hence changing the format of N (i.e. 2*N elements) complex numbers to 1.31 format by shifting left by 2 bits. */ - arm_shift_q31(pState, 2, pState, S->N * 2); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ >> 1u; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* Initializing the loop counter */ - i = (S->N - 1u); - - while(i > 0u) - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter */ - i = S->N; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - /* Decrement the loop counter */ - i--; - } while(i > 0u); - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_f32.c deleted file mode 100644 index 2043a4e0df..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_f32.c +++ /dev/null @@ -1,382 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rfft_f32.c -* -* Description: RFFT & RIFFT Floating point process function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @defgroup RFFT_RIFFT Real FFT Functions - * - * \par - * Complex FFT/IFFT typically assumes complex input and output. However many applications use real valued data in time domain. - * Real FFT/IFFT efficiently process real valued sequences with the advantage of requirement of low memory and with less complexity. - * - * \par - * This set of functions implements Real Fast Fourier Transforms(RFFT) and Real Inverse Fast Fourier Transform(RIFFT) - * for Q15, Q31, and floating-point data types. - * - * - * \par Algorithm: - * - * Real Fast Fourier Transform: - * \par - * Real FFT of N-point is calculated using CFFT of N/2-point and Split RFFT process as shown below figure. - * \par - * \image html RFFT.gif "Real Fast Fourier Transform" - * \par - * The RFFT functions operate on blocks of input and output data and each call to the function processes - * fftLenR samples through the transform. pSrc points to input array containing fftLenR values. - * pDst points to output array containing 2*fftLenR values. \n - * Input for real FFT is in the order of - *
{real[0], real[1], real[2], real[3], ..}
- * Output for real FFT is complex and are in the order of - *
{real(0), imag(0), real(1), imag(1), ...}
- * - * Real Inverse Fast Fourier Transform: - * \par - * Real IFFT of N-point is calculated using Split RIFFT process and CFFT of N/2-point as shown below figure. - * \par - * \image html RIFFT.gif "Real Inverse Fast Fourier Transform" - * \par - * The RIFFT functions operate on blocks of input and output data and each call to the function processes - * 2*fftLenR samples through the transform. pSrc points to input array containing 2*fftLenR values. - * pDst points to output array containing fftLenR values. \n - * Input for real IFFT is complex and are in the order of - *
{real(0), imag(0), real(1), imag(1), ...}
- * Output for real IFFT is real and in the order of - *
{real[0], real[1], real[2], real[3], ..}
- * - * \par Lengths supported by the transform: - * \par - * Real FFT/IFFT supports the lengths [128, 512, 2048], as it internally uses CFFT/CIFFT. - * - * \par Instance Structure - * A separate instance structure must be defined for each Instance but the twiddle factors can be reused. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Initializes twiddle factor tables. - * - Initializes CFFT data structure fields. - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Manually initialize the instance structure as follows: - *
    
- *arm_rfft_instance_f32 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};    
- *arm_rfft_instance_q31 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};    
- *arm_rfft_instance_q15 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};    
- * 
- * where fftLenReal length of RFFT/RIFFT; fftLenBy2 length of CFFT/CIFFT. - * ifftFlagR Flag for selection of RFFT or RIFFT(Set ifftFlagR to calculate RIFFT otherwise calculates RFFT); - * bitReverseFlagR Flag for selection of output order(Set bitReverseFlagR to output in normal order otherwise output in bit reversed order); - * twidCoefRModifier modifier for twiddle factor table which supports 128, 512, 2048 RFFT lengths with same table; - * pTwiddleARealpoints to A array of twiddle coefficients; pTwiddleBRealpoints to B array of twiddle coefficients; - * pCfft points to the CFFT Instance structure. The CFFT structure also needs to be initialized, refer to arm_cfft_radix4_f32() for details regarding - * static initialization of cfft structure. - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the RFFT/RIFFT function. - * Refer to the function specific documentation below for usage guidelines. - */ - -/*-------------------------------------------------------------------- - * Internal functions prototypes - *--------------------------------------------------------------------*/ - -void arm_split_rfft_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pATable, - float32_t * pBTable, - float32_t * pDst, - uint32_t modifier); -void arm_split_rifft_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pATable, - float32_t * pBTable, - float32_t * pDst, - uint32_t modifier); - -/** - * @addtogroup RFFT_RIFFT - * @{ - */ - -/** - * @brief Processing function for the floating-point RFFT/RIFFT. - * @param[in] *S points to an instance of the floating-point RFFT/RIFFT structure. - * @param[in] *pSrc points to the input buffer. - * @param[out] *pDst points to the output buffer. - * @return none. - */ - -void arm_rfft_f32( - const arm_rfft_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst) -{ - const arm_cfft_radix4_instance_f32 *S_CFFT = S->pCfft; - - - /* Calculation of Real IFFT of input */ - if(S->ifftFlagR == 1u) - { - /* Real IFFT core process */ - arm_split_rifft_f32(pSrc, S->fftLenBy2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - - - /* Complex radix-4 IFFT process */ - arm_radix4_butterfly_inverse_f32(pDst, S_CFFT->fftLen, - S_CFFT->pTwiddle, - S_CFFT->twidCoefModifier, - S_CFFT->onebyfftLen); - - /* Bit reversal process */ - if(S->bitReverseFlagR == 1u) - { - arm_bitreversal_f32(pDst, S_CFFT->fftLen, - S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); - } - } - else - { - - /* Calculation of RFFT of input */ - - /* Complex radix-4 FFT process */ - arm_radix4_butterfly_f32(pSrc, S_CFFT->fftLen, - S_CFFT->pTwiddle, S_CFFT->twidCoefModifier); - - /* Bit reversal process */ - if(S->bitReverseFlagR == 1u) - { - arm_bitreversal_f32(pSrc, S_CFFT->fftLen, - S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); - } - - - /* Real FFT core process */ - arm_split_rfft_f32(pSrc, S->fftLenBy2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - } - -} - -/** - * @} end of RFFT_RIFFT group - */ - -/** - * @brief Core Real FFT process - * @param[in] *pSrc points to the input buffer. - * @param[in] fftLen length of FFT. - * @param[in] *pATable points to the twiddle Coef A buffer. - * @param[in] *pBTable points to the twiddle Coef B buffer. - * @param[out] *pDst points to the output buffer. - * @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_split_rfft_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pATable, - float32_t * pBTable, - float32_t * pDst, - uint32_t modifier) -{ - uint32_t i; /* Loop Counter */ - float32_t outR, outI; /* Temporary variables for output */ - float32_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - float32_t CoefA1, CoefA2, CoefB1; /* Temporary variables for twiddle coefficients */ - float32_t *pDst1 = &pDst[2], *pDst2 = &pDst[(4u * fftLen) - 1u]; /* temp pointers for output buffer */ - float32_t *pSrc1 = &pSrc[2], *pSrc2 = &pSrc[(2u * fftLen) - 1u]; /* temp pointers for input buffer */ - - /* Init coefficient pointers */ - pCoefA = &pATable[modifier * 2u]; - pCoefB = &pBTable[modifier * 2u]; - - i = fftLen - 1u; - - while(i > 0u) - { - /* - outR = (pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] - + pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - /* outI = (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); */ - - /* read pATable[2 * i] */ - CoefA1 = *pCoefA++; - /* pATable[2 * i + 1] */ - CoefA2 = *pCoefA; - - /* pSrc[2 * i] * pATable[2 * i] */ - outR = *pSrc1 * CoefA1; - /* pSrc[2 * i] * CoefA2 */ - outI = *pSrc1++ * CoefA2; - - /* (pSrc[2 * i + 1] + pSrc[2 * fftLen - 2 * i + 1]) * CoefA2 */ - outR -= (*pSrc1 + *pSrc2) * CoefA2; - /* pSrc[2 * i + 1] * CoefA1 */ - outI += *pSrc1++ * CoefA1; - - CoefB1 = *pCoefB; - - /* pSrc[2 * fftLen - 2 * i + 1] * CoefB1 */ - outI -= *pSrc2-- * CoefB1; - /* pSrc[2 * fftLen - 2 * i] * CoefA2 */ - outI -= *pSrc2 * CoefA2; - - /* pSrc[2 * fftLen - 2 * i] * CoefB1 */ - outR += *pSrc2-- * CoefB1; - - /* write output */ - *pDst1++ = outR; - *pDst1++ = outI; - - /* write complex conjugate output */ - *pDst2-- = -outI; - *pDst2-- = outR; - - /* update coefficient pointer */ - pCoefB = pCoefB + (modifier * 2u); - pCoefA = pCoefA + ((modifier * 2u) - 1u); - - i--; - - } - - pDst[2u * fftLen] = pSrc[0] - pSrc[1]; - pDst[(2u * fftLen) + 1u] = 0.0f; - - pDst[0] = pSrc[0] + pSrc[1]; - pDst[1] = 0.0f; - -} - - -/** - * @brief Core Real IFFT process - * @param[in] *pSrc points to the input buffer. - * @param[in] fftLen length of FFT. - * @param[in] *pATable points to the twiddle Coef A buffer. - * @param[in] *pBTable points to the twiddle Coef B buffer. - * @param[out] *pDst points to the output buffer. - * @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_split_rifft_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pATable, - float32_t * pBTable, - float32_t * pDst, - uint32_t modifier) -{ - float32_t outR, outI; /* Temporary variables for output */ - float32_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - float32_t CoefA1, CoefA2, CoefB1; /* Temporary variables for twiddle coefficients */ - float32_t *pSrc1 = &pSrc[0], *pSrc2 = &pSrc[(2u * fftLen) + 1u]; - - pCoefA = &pATable[0]; - pCoefB = &pBTable[0]; - - while(fftLen > 0u) - { - /* - outR = (pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - - outI = (pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] - - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - - */ - - CoefA1 = *pCoefA++; - CoefA2 = *pCoefA; - - /* outR = (pSrc[2 * i] * CoefA1 */ - outR = *pSrc1 * CoefA1; - - /* - pSrc[2 * i] * CoefA2 */ - outI = -(*pSrc1++) * CoefA2; - - /* (pSrc[2 * i + 1] + pSrc[2 * fftLen - 2 * i + 1]) * CoefA2 */ - outR += (*pSrc1 + *pSrc2) * CoefA2; - - /* pSrc[2 * i + 1] * CoefA1 */ - outI += (*pSrc1++) * CoefA1; - - CoefB1 = *pCoefB; - - /* - pSrc[2 * fftLen - 2 * i + 1] * CoefB1 */ - outI -= *pSrc2-- * CoefB1; - - /* pSrc[2 * fftLen - 2 * i] * CoefB1 */ - outR += *pSrc2 * CoefB1; - - /* pSrc[2 * fftLen - 2 * i] * CoefA2 */ - outI += *pSrc2-- * CoefA2; - - /* write output */ - *pDst++ = outR; - *pDst++ = outI; - - /* update coefficient pointer */ - pCoefB = pCoefB + (modifier * 2u); - pCoefA = pCoefA + ((modifier * 2u) - 1u); - - /* Decrement loop count */ - fftLen--; - } - -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_f32.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_f32.c deleted file mode 100644 index 7a54df6e21..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_f32.c +++ /dev/null @@ -1,8369 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rfft_init_f32.c -* -* Description: RFFT & RIFFT Floating point initialisation function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup RFFT_RIFFT - * @{ - */ - -/** -* \par -* Generation of realCoefA array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)    
-*  {    
-*    pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i));    
-*    pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i));    
-*  } 
-*/ - - - -static const float32_t realCoefA[8192] = { - 0.500000000000000f, -0.500000000000000f, 0.499616503715515f, - -0.499999850988388f, - 0.499233007431030f, -0.499999403953552f, 0.498849511146545f, - -0.499998688697815f, - 0.498466014862061f, -0.499997645616531f, 0.498082518577576f, - -0.499996334314346f, - 0.497699022293091f, -0.499994695186615f, 0.497315555810928f, - -0.499992787837982f, - 0.496932059526443f, -0.499990582466125f, 0.496548563241959f, - -0.499988079071045f, - 0.496165096759796f, -0.499985307455063f, 0.495781600475311f, - -0.499982208013535f, - 0.495398133993149f, -0.499978810548782f, 0.495014637708664f, - -0.499975144863129f, - 0.494631171226501f, -0.499971181154251f, 0.494247704744339f, - -0.499966919422150f, - 0.493864238262177f, -0.499962359666824f, 0.493480771780014f, - -0.499957501888275f, - 0.493097305297852f, -0.499952346086502f, 0.492713838815689f, - -0.499946922063828f, - 0.492330402135849f, -0.499941170215607f, 0.491946935653687f, - -0.499935150146484f, - 0.491563498973846f, -0.499928832054138f, 0.491180062294006f, - -0.499922215938568f, - 0.490796625614166f, -0.499915301799774f, 0.490413218736649f, - -0.499908089637756f, - 0.490029782056808f, -0.499900579452515f, 0.489646375179291f, - -0.499892801046371f, - 0.489262968301773f, -0.499884694814682f, 0.488879561424255f, - -0.499876320362091f, - 0.488496154546738f, -0.499867647886276f, 0.488112777471542f, - -0.499858677387238f, - 0.487729400396347f, -0.499849408864975f, 0.487346023321152f, - -0.499839842319489f, - 0.486962646245956f, -0.499830007553101f, 0.486579269170761f, - -0.499819844961166f, - 0.486195921897888f, -0.499809414148331f, 0.485812574625015f, - -0.499798685312271f, - 0.485429257154465f, -0.499787658452988f, 0.485045909881592f, - -0.499776333570480f, - 0.484662592411041f, -0.499764710664749f, 0.484279274940491f, - -0.499752789735794f, - 0.483895987272263f, -0.499740600585938f, 0.483512699604034f, - -0.499728083610535f, - 0.483129411935806f, -0.499715298414230f, 0.482746154069901f, - -0.499702215194702f, - 0.482362866401672f, -0.499688833951950f, 0.481979638338089f, - -0.499675154685974f, - 0.481596380472183f, -0.499661177396774f, 0.481213152408600f, - -0.499646931886673f, - 0.480829954147339f, -0.499632388353348f, 0.480446726083755f, - -0.499617516994476f, - 0.480063527822495f, -0.499602377414703f, 0.479680359363556f, - -0.499586939811707f, - 0.479297190904617f, -0.499571204185486f, 0.478914022445679f, - -0.499555170536041f, - 0.478530883789063f, -0.499538868665695f, 0.478147745132446f, - -0.499522238969803f, - 0.477764606475830f, -0.499505341053009f, 0.477381497621536f, - -0.499488145112991f, - 0.476998418569565f, -0.499470651149750f, 0.476615339517593f, - -0.499452859163284f, - 0.476232260465622f, -0.499434769153595f, 0.475849211215973f, - -0.499416410923004f, - 0.475466161966324f, -0.499397724866867f, 0.475083142518997f, - -0.499378770589828f, - 0.474700123071671f, -0.499359518289566f, 0.474317133426666f, - -0.499339967966080f, - 0.473934143781662f, -0.499320119619370f, 0.473551183938980f, - -0.499299973249435f, - 0.473168224096298f, -0.499279528856277f, 0.472785294055939f, - -0.499258816242218f, - 0.472402364015579f, -0.499237775802612f, 0.472019463777542f, - -0.499216467142105f, - 0.471636593341827f, -0.499194860458374f, 0.471253722906113f, - -0.499172955751419f, - 0.470870882272720f, -0.499150782823563f, 0.470488041639328f, - -0.499128282070160f, - 0.470105201005936f, -0.499105513095856f, 0.469722419977188f, - -0.499082416296005f, - 0.469339638948441f, -0.499059051275253f, 0.468956857919693f, - -0.499035388231277f, - 0.468574106693268f, -0.499011427164078f, 0.468191385269165f, - -0.498987197875977f, - 0.467808693647385f, -0.498962640762329f, 0.467426002025604f, - -0.498937815427780f, - 0.467043310403824f, -0.498912662267685f, 0.466660678386688f, - -0.498887240886688f, - 0.466278046369553f, -0.498861521482468f, 0.465895414352417f, - -0.498835533857346f, - 0.465512841939926f, -0.498809218406677f, 0.465130269527435f, - -0.498782604932785f, - 0.464747726917267f, -0.498755723237991f, 0.464365184307098f, - -0.498728543519974f, - 0.463982671499252f, -0.498701065778732f, 0.463600188493729f, - -0.498673290014267f, - 0.463217705488205f, -0.498645216226578f, 0.462835282087326f, - -0.498616874217987f, - 0.462452858686447f, -0.498588204383850f, 0.462070435285568f, - -0.498559266328812f, - 0.461688071489334f, -0.498530030250549f, 0.461305707693100f, - -0.498500496149063f, - 0.460923373699188f, -0.498470664024353f, 0.460541069507599f, - -0.498440563678741f, - 0.460158795118332f, -0.498410135507584f, 0.459776520729065f, - -0.498379439115524f, - 0.459394276142120f, -0.498348444700241f, 0.459012061357498f, - -0.498317152261734f, - 0.458629876375198f, -0.498285561800003f, 0.458247691392899f, - -0.498253703117371f, - 0.457865566015244f, -0.498221516609192f, 0.457483440637589f, - -0.498189061880112f, - 0.457101345062256f, -0.498156309127808f, 0.456719279289246f, - -0.498123258352280f, - 0.456337243318558f, -0.498089909553528f, 0.455955207347870f, - -0.498056292533875f, - 0.455573230981827f, -0.498022347688675f, 0.455191254615784f, - -0.497988134622574f, - 0.454809308052063f, -0.497953623533249f, 0.454427421092987f, - -0.497918814420700f, - 0.454045534133911f, -0.497883707284927f, 0.453663676977158f, - -0.497848302125931f, - 0.453281819820404f, -0.497812628746033f, 0.452900022268295f, - -0.497776657342911f, - 0.452518254518509f, -0.497740387916565f, 0.452136516571045f, - -0.497703820466995f, - 0.451754778623581f, -0.497666954994202f, 0.451373100280762f, - -0.497629791498184f, - 0.450991421937943f, -0.497592359781265f, 0.450609803199768f, - -0.497554630041122f, - 0.450228184461594f, -0.497516602277756f, 0.449846625328064f, - -0.497478276491165f, - 0.449465066194534f, -0.497439652681351f, 0.449083566665649f, - -0.497400760650635f, - 0.448702067136765f, -0.497361570596695f, 0.448320597410202f, - -0.497322082519531f, - 0.447939187288284f, -0.497282296419144f, 0.447557777166367f, - -0.497242212295532f, - 0.447176426649094f, -0.497201830148697f, 0.446795076131821f, - -0.497161179780960f, - 0.446413785219193f, -0.497120231389999f, 0.446032524108887f, - -0.497078984975815f, - 0.445651292800903f, -0.497037440538406f, 0.445270061492920f, - -0.496995598077774f, - 0.444888889789581f, -0.496953487396240f, 0.444507747888565f, - -0.496911078691483f, - 0.444126635789871f, -0.496868371963501f, 0.443745553493500f, - -0.496825367212296f, - 0.443364530801773f, -0.496782064437866f, 0.442983508110046f, - -0.496738493442535f, - 0.442602545022964f, -0.496694594621658f, 0.442221581935883f, - -0.496650427579880f, - 0.441840678453445f, -0.496605962514877f, 0.441459804773331f, - -0.496561229228973f, - 0.441078960895538f, -0.496516168117523f, 0.440698176622391f, - -0.496470838785172f, - 0.440317392349243f, -0.496425211429596f, 0.439936667680740f, - -0.496379286050797f, - 0.439555943012238f, -0.496333062648773f, 0.439175277948380f, - -0.496286571025848f, - 0.438794672489166f, -0.496239781379700f, 0.438414067029953f, - -0.496192663908005f, - 0.438033521175385f, -0.496145308017731f, 0.437653005123138f, - -0.496097624301910f, - 0.437272518873215f, -0.496049642562866f, 0.436892062425613f, - -0.496001392602921f, - 0.436511665582657f, -0.495952844619751f, 0.436131268739700f, - -0.495903998613358f, - 0.435750931501389f, -0.495854884386063f, 0.435370653867722f, - -0.495805442333221f, - 0.434990376234055f, -0.495755732059479f, 0.434610158205032f, - -0.495705723762512f, - 0.434229999780655f, -0.495655417442322f, 0.433849841356277f, - -0.495604842901230f, - 0.433469742536545f, -0.495553970336914f, 0.433089673519135f, - -0.495502769947052f, - 0.432709634304047f, -0.495451331138611f, 0.432329654693604f, - -0.495399564504623f, - 0.431949704885483f, -0.495347499847412f, 0.431569814682007f, - -0.495295166969299f, - 0.431189924478531f, -0.495242536067963f, 0.430810123682022f, - -0.495189607143402f, - 0.430430322885513f, -0.495136409997940f, 0.430050581693649f, - -0.495082914829254f, - 0.429670870304108f, -0.495029091835022f, 0.429291218519211f, - -0.494975030422211f, - 0.428911596536636f, -0.494920641183853f, 0.428532034158707f, - -0.494865983724594f, - 0.428152471780777f, -0.494810998439789f, 0.427772998809814f, - -0.494755744934082f, - 0.427393525838852f, -0.494700223207474f, 0.427014142274857f, - -0.494644373655319f, - 0.426634758710861f, -0.494588255882263f, 0.426255434751511f, - -0.494531840085983f, - 0.425876170396805f, -0.494475126266479f, 0.425496935844421f, - -0.494418144226074f, - 0.425117731094360f, -0.494360834360123f, 0.424738585948944f, - -0.494303256273270f, - 0.424359470605850f, -0.494245409965515f, 0.423980414867401f, - -0.494187235832214f, - 0.423601418733597f, -0.494128793478012f, 0.423222452402115f, - -0.494070053100586f, - 0.422843515872955f, -0.494011014699936f, 0.422464638948441f, - -0.493951678276062f, - 0.422085791826248f, -0.493892073631287f, 0.421707004308701f, - -0.493832170963287f, - 0.421328276395798f, -0.493771970272064f, 0.420949578285217f, - -0.493711471557617f, - 0.420570939779282f, -0.493650704622269f, 0.420192331075668f, - -0.493589639663696f, - 0.419813781976700f, -0.493528276681900f, 0.419435262680054f, - -0.493466645479202f, - 0.419056802988052f, -0.493404686450958f, 0.418678402900696f, - -0.493342459201813f, - 0.418300032615662f, -0.493279963731766f, 0.417921721935272f, - -0.493217140436172f, - 0.417543441057205f, -0.493154048919678f, 0.417165219783783f, - -0.493090659379959f, - 0.416787058115005f, -0.493026971817017f, 0.416408926248550f, - -0.492963016033173f, - 0.416030853986740f, -0.492898762226105f, 0.415652841329575f, - -0.492834210395813f, - 0.415274858474731f, -0.492769360542297f, 0.414896935224533f, - -0.492704242467880f, - 0.414519041776657f, -0.492638826370239f, 0.414141237735748f, - -0.492573112249374f, - 0.413763463497162f, -0.492507129907608f, 0.413385748863220f, - -0.492440819740295f, - 0.413008064031601f, -0.492374241352081f, 0.412630438804626f, - -0.492307394742966f, - 0.412252873182297f, -0.492240220308304f, 0.411875367164612f, - -0.492172777652740f, - 0.411497890949249f, -0.492105036973953f, 0.411120474338531f, - -0.492037028074265f, - 0.410743117332459f, -0.491968721151352f, 0.410365819931030f, - -0.491900116205215f, - 0.409988552331924f, -0.491831213235855f, 0.409611344337463f, - -0.491762012243271f, - 0.409234195947647f, -0.491692543029785f, 0.408857107162476f, - -0.491622805595398f, - 0.408480048179626f, -0.491552740335464f, 0.408103078603745f, - -0.491482406854630f, - 0.407726138830185f, -0.491411775350571f, 0.407349258661270f, - -0.491340845823288f, - 0.406972438097000f, -0.491269648075104f, 0.406595647335052f, - -0.491198152303696f, - 0.406218945980072f, -0.491126358509064f, 0.405842274427414f, - -0.491054296493530f, - 0.405465662479401f, -0.490981936454773f, 0.405089110136032f, - -0.490909278392792f, - 0.404712617397308f, -0.490836352109909f, 0.404336184263229f, - -0.490763127803802f, - 0.403959810733795f, -0.490689605474472f, 0.403583467006683f, - -0.490615785121918f, - 0.403207212686539f, -0.490541696548462f, 0.402830988168716f, - -0.490467309951782f, - 0.402454853057861f, -0.490392625331879f, 0.402078747749329f, - -0.490317672491074f, - 0.401702702045441f, -0.490242421627045f, 0.401326715946198f, - -0.490166902542114f, - 0.400950789451599f, -0.490091055631638f, 0.400574922561646f, - -0.490014940500259f, - 0.400199115276337f, -0.489938557147980f, 0.399823367595673f, - -0.489861875772476f, - 0.399447679519653f, -0.489784896373749f, 0.399072051048279f, - -0.489707618951797f, - 0.398696482181549f, -0.489630073308945f, 0.398320972919464f, - -0.489552229642868f, - 0.397945523262024f, -0.489474087953568f, 0.397570133209229f, - -0.489395678043365f, - 0.397194802761078f, -0.489316970109940f, 0.396819531917572f, - -0.489237964153290f, - 0.396444320678711f, -0.489158689975739f, 0.396069169044495f, - -0.489079117774963f, - 0.395694077014923f, -0.488999247550964f, 0.395319044589996f, - -0.488919109106064f, - 0.394944071769714f, -0.488838672637939f, 0.394569188356400f, - -0.488757967948914f, - 0.394194334745407f, -0.488676935434341f, 0.393819570541382f, - -0.488595664501190f, - 0.393444836139679f, -0.488514065742493f, 0.393070191144943f, - -0.488432198762894f, - 0.392695605754852f, -0.488350033760071f, 0.392321079969406f, - -0.488267600536346f, - 0.391946613788605f, -0.488184869289398f, 0.391572207212448f, - -0.488101840019226f, - 0.391197860240936f, -0.488018542528152f, 0.390823602676392f, - -0.487934947013855f, - 0.390449374914169f, -0.487851053476334f, 0.390075236558914f, - -0.487766891717911f, - 0.389701157808304f, -0.487682431936264f, 0.389327138662338f, - -0.487597703933716f, - 0.388953179121017f, -0.487512677907944f, 0.388579308986664f, - -0.487427353858948f, - 0.388205498456955f, -0.487341761589050f, 0.387831717729568f, - -0.487255871295929f, - 0.387458056211472f, -0.487169682979584f, 0.387084424495697f, - -0.487083226442337f, - 0.386710882186890f, -0.486996471881866f, 0.386337369680405f, - -0.486909449100494f, - 0.385963946580887f, -0.486822128295898f, 0.385590612888336f, - -0.486734509468079f, - 0.385217308998108f, -0.486646622419357f, 0.384844094514847f, - -0.486558437347412f, - 0.384470939636230f, -0.486469984054565f, 0.384097874164581f, - -0.486381232738495f, - 0.383724838495255f, -0.486292183399200f, 0.383351892232895f, - -0.486202865839005f, - 0.382979035377502f, -0.486113250255585f, 0.382606208324432f, - -0.486023366451263f, - 0.382233470678329f, -0.485933154821396f, 0.381860792636871f, - -0.485842704772949f, - 0.381488204002380f, -0.485751956701279f, 0.381115674972534f, - -0.485660910606384f, - 0.380743205547333f, -0.485569566488266f, 0.380370795726776f, - -0.485477954149246f, - 0.379998475313187f, -0.485386073589325f, 0.379626244306564f, - -0.485293895006180f, - 0.379254043102264f, -0.485201418399811f, 0.378881961107254f, - -0.485108673572540f, - 0.378509908914566f, -0.485015630722046f, 0.378137946128845f, - -0.484922289848328f, - 0.377766042947769f, -0.484828680753708f, 0.377394229173660f, - -0.484734803438187f, - 0.377022475004196f, -0.484640628099442f, 0.376650810241699f, - -0.484546154737473f, - 0.376279205083847f, -0.484451413154602f, 0.375907659530640f, - -0.484356373548508f, - 0.375536203384399f, -0.484261035919189f, 0.375164806842804f, - -0.484165430068970f, - 0.374793499708176f, -0.484069555997849f, 0.374422252178192f, - -0.483973383903503f, - 0.374051094055176f, -0.483876913785934f, 0.373679995536804f, - -0.483780175447464f, - 0.373308986425400f, -0.483683139085770f, 0.372938036918640f, - -0.483585834503174f, - 0.372567176818848f, -0.483488231897354f, 0.372196376323700f, - -0.483390361070633f, - 0.371825665235519f, -0.483292192220688f, 0.371455013751984f, - -0.483193725347519f, - 0.371084451675415f, -0.483094990253448f, 0.370713949203491f, - -0.482995986938477f, - 0.370343536138535f, -0.482896685600281f, 0.369973212480545f, - -0.482797086238861f, - 0.369602948427200f, -0.482697218656540f, 0.369232743978500f, - -0.482597053050995f, - 0.368862658739090f, -0.482496619224548f, 0.368492603302002f, - -0.482395917177200f, - 0.368122667074203f, -0.482294887304306f, 0.367752790451050f, - -0.482193619012833f, - 0.367382973432541f, -0.482092022895813f, 0.367013275623322f, - -0.481990188360214f, - 0.366643607616425f, -0.481888025999069f, 0.366274058818817f, - -0.481785595417023f, - 0.365904569625854f, -0.481682896614075f, 0.365535169839859f, - -0.481579899787903f, - 0.365165829658508f, -0.481476634740829f, 0.364796578884125f, - -0.481373071670532f, - 0.364427417516708f, -0.481269240379334f, 0.364058345556259f, - -0.481165111064911f, - 0.363689333200455f, -0.481060713529587f, 0.363320380449295f, - -0.480956017971039f, - 0.362951546907425f, -0.480851024389267f, 0.362582772970200f, - -0.480745792388916f, - 0.362214088439941f, -0.480640232563019f, 0.361845493316650f, - -0.480534434318542f, - 0.361476957798004f, -0.480428308248520f, 0.361108511686325f, - -0.480321943759918f, - 0.360740154981613f, -0.480215251445770f, 0.360371887683868f, - -0.480108320713043f, - 0.360003679990768f, -0.480001062154770f, 0.359635561704636f, - -0.479893565177917f, - 0.359267532825470f, -0.479785770177841f, 0.358899593353271f, - -0.479677677154541f, - 0.358531713485718f, -0.479569315910339f, 0.358163923025131f, - -0.479460656642914f, - 0.357796221971512f, -0.479351729154587f, 0.357428610324860f, - -0.479242533445358f, - 0.357061088085175f, -0.479133039712906f, 0.356693625450134f, - -0.479023247957230f, - 0.356326282024384f, -0.478913217782974f, 0.355958998203278f, - -0.478802859783173f, - 0.355591803789139f, -0.478692263364792f, 0.355224698781967f, - -0.478581339120865f, - 0.354857653379440f, -0.478470176458359f, 0.354490727186203f, - -0.478358715772629f, - 0.354123860597610f, -0.478246957063675f, 0.353757113218308f, - -0.478134930133820f, - 0.353390425443649f, -0.478022634983063f, 0.353023827075958f, - -0.477910041809082f, - 0.352657318115234f, -0.477797180414200f, 0.352290898561478f, - -0.477684020996094f, - 0.351924568414688f, -0.477570593357086f, 0.351558297872543f, - -0.477456867694855f, - 0.351192146539688f, -0.477342873811722f, 0.350826084613800f, - -0.477228611707687f, - 0.350460082292557f, -0.477114051580429f, 0.350094199180603f, - -0.476999223232269f, - 0.349728375673294f, -0.476884096860886f, 0.349362671375275f, - -0.476768702268600f, - 0.348997026681900f, -0.476653009653091f, 0.348631471395493f, - -0.476537048816681f, - 0.348266035318375f, -0.476420819759369f, 0.347900658845901f, - -0.476304292678833f, - 0.347535371780396f, -0.476187497377396f, 0.347170203924179f, - -0.476070433855057f, - 0.346805095672607f, -0.475953072309494f, 0.346440106630325f, - -0.475835442543030f, - 0.346075177192688f, -0.475717514753342f, 0.345710366964340f, - -0.475599318742752f, - 0.345345616340637f, -0.475480824708939f, 0.344980984926224f, - -0.475362062454224f, - 0.344616413116455f, -0.475243031978607f, 0.344251960515976f, - -0.475123733282089f, - 0.343887597322464f, -0.475004136562347f, 0.343523323535919f, - -0.474884241819382f, - 0.343159139156342f, -0.474764078855515f, 0.342795044183731f, - -0.474643647670746f, - 0.342431038618088f, -0.474522948265076f, 0.342067122459412f, - -0.474401950836182f, - 0.341703325510025f, -0.474280685186386f, 0.341339588165283f, - -0.474159121513367f, - 0.340975970029831f, -0.474037289619446f, 0.340612411499023f, - -0.473915189504623f, - 0.340248972177505f, -0.473792791366577f, 0.339885622262955f, - -0.473670125007629f, - 0.339522391557693f, -0.473547190427780f, 0.339159220457077f, - -0.473423957824707f, - 0.338796168565750f, -0.473300457000732f, 0.338433176279068f, - -0.473176687955856f, - 0.338070303201675f, -0.473052620887756f, 0.337707549333572f, - -0.472928285598755f, - 0.337344855070114f, -0.472803652286530f, 0.336982280015945f, - -0.472678780555725f, - 0.336619764566422f, -0.472553610801697f, 0.336257368326187f, - -0.472428143024445f, - 0.335895091295242f, -0.472302407026291f, 0.335532873868942f, - -0.472176402807236f, - 0.335170775651932f, -0.472050130367279f, 0.334808766841888f, - -0.471923559904099f, - 0.334446847438812f, -0.471796721220016f, 0.334085017442703f, - -0.471669614315033f, - 0.333723306655884f, -0.471542209386826f, 0.333361685276031f, - -0.471414536237717f, - 0.333000183105469f, -0.471286594867706f, 0.332638740539551f, - -0.471158385276794f, - 0.332277417182922f, -0.471029877662659f, 0.331916213035584f, - -0.470901101827621f, - 0.331555068492889f, -0.470772027969360f, 0.331194043159485f, - -0.470642685890198f, - 0.330833107233047f, -0.470513075590134f, 0.330472290515900f, - -0.470383197069168f, - 0.330111563205719f, -0.470253020524979f, 0.329750925302505f, - -0.470122605562210f, - 0.329390406608582f, -0.469991862773895f, 0.329029977321625f, - -0.469860881567001f, - 0.328669637441635f, -0.469729602336884f, 0.328309416770935f, - -0.469598054885864f, - 0.327949285507202f, -0.469466239213943f, 0.327589273452759f, - -0.469334155321121f, - 0.327229350805283f, -0.469201773405075f, 0.326869517564774f, - -0.469069123268127f, - 0.326509803533554f, -0.468936175107956f, 0.326150178909302f, - -0.468802988529205f, - 0.325790673494339f, -0.468669503927231f, 0.325431257486343f, - -0.468535751104355f, - 0.325071930885315f, -0.468401730060577f, 0.324712723493576f, - -0.468267410993576f, - 0.324353635311127f, -0.468132823705673f, 0.323994606733322f, - -0.467997968196869f, - 0.323635727167130f, -0.467862844467163f, 0.323276937007904f, - -0.467727422714233f, - 0.322918236255646f, -0.467591762542725f, 0.322559654712677f, - -0.467455804347992f, - 0.322201162576675f, -0.467319577932358f, 0.321842789649963f, - -0.467183053493500f, - 0.321484506130219f, -0.467046260833740f, 0.321126341819763f, - -0.466909229755402f, - 0.320768296718597f, -0.466771900653839f, 0.320410341024399f, - -0.466634273529053f, - 0.320052474737167f, -0.466496407985687f, 0.319694727659225f, - -0.466358244419098f, - 0.319337099790573f, -0.466219812631607f, 0.318979561328888f, - -0.466081112623215f, - 0.318622142076492f, -0.465942144393921f, 0.318264812231064f, - -0.465802878141403f, - 0.317907601594925f, -0.465663343667984f, 0.317550510168076f, - -0.465523540973663f, - 0.317193508148193f, -0.465383470058441f, 0.316836595535278f, - -0.465243130922318f, - 0.316479831933975f, -0.465102523565292f, 0.316123157739639f, - -0.464961618185043f, - 0.315766572952271f, -0.464820444583893f, 0.315410137176514f, - -0.464679002761841f, - 0.315053790807724f, -0.464537292718887f, 0.314697533845901f, - -0.464395314455032f, - 0.314341396093369f, -0.464253038167953f, 0.313985377550125f, - -0.464110493659973f, - 0.313629478216171f, -0.463967710733414f, 0.313273668289185f, - -0.463824629783630f, - 0.312917977571487f, -0.463681250810623f, 0.312562376260757f, - -0.463537633419037f, - 0.312206923961639f, -0.463393747806549f, 0.311851561069489f, - -0.463249564170837f, - 0.311496287584305f, -0.463105112314224f, 0.311141163110733f, - -0.462960392236710f, - 0.310786128044128f, -0.462815403938293f, 0.310431212186813f, - -0.462670147418976f, - 0.310076385736465f, -0.462524622678757f, 0.309721708297729f, - -0.462378799915314f, - 0.309367120265961f, -0.462232738733292f, 0.309012651443481f, - -0.462086379528046f, - 0.308658272027969f, -0.461939752101898f, 0.308304041624069f, - -0.461792886257172f, - 0.307949900627136f, -0.461645722389221f, 0.307595878839493f, - -0.461498260498047f, - 0.307241976261139f, -0.461350560188293f, 0.306888192892075f, - -0.461202591657639f, - 0.306534498929977f, -0.461054325103760f, 0.306180924177170f, - -0.460905820131302f, - 0.305827468633652f, -0.460757017135620f, 0.305474132299423f, - -0.460607945919037f, - 0.305120915174484f, -0.460458606481552f, 0.304767817258835f, - -0.460309028625488f, - 0.304414808750153f, -0.460159152746201f, 0.304061919450760f, - -0.460008978843689f, - 0.303709149360657f, -0.459858566522598f, 0.303356528282166f, - -0.459707885980606f, - 0.303003966808319f, -0.459556937217712f, 0.302651554346085f, - -0.459405690431595f, - 0.302299261093140f, -0.459254205226898f, 0.301947087049484f, - -0.459102421998978f, - 0.301595002412796f, -0.458950400352478f, 0.301243066787720f, - -0.458798080682755f, - 0.300891220569611f, -0.458645492792130f, 0.300539493560791f, - -0.458492636680603f, - 0.300187885761261f, -0.458339542150497f, 0.299836426973343f, - -0.458186149597168f, - 0.299485057592392f, -0.458032488822937f, 0.299133807420731f, - -0.457878559827805f, - 0.298782676458359f, -0.457724362611771f, 0.298431664705276f, - -0.457569897174835f, - 0.298080772161484f, -0.457415163516998f, 0.297729998826981f, - -0.457260161638260f, - 0.297379344701767f, -0.457104891538620f, 0.297028809785843f, - -0.456949323415756f, - 0.296678394079208f, -0.456793516874313f, 0.296328097581863f, - -0.456637442111969f, - 0.295977920293808f, -0.456481099128723f, 0.295627862215042f, - -0.456324487924576f, - 0.295277923345566f, -0.456167578697205f, 0.294928103685379f, - -0.456010431051254f, - 0.294578403234482f, -0.455853015184402f, 0.294228851795197f, - -0.455695331096649f, - 0.293879389762878f, -0.455537378787994f, 0.293530046939850f, - -0.455379128456116f, - 0.293180853128433f, -0.455220639705658f, 0.292831748723984f, - -0.455061882734299f, - 0.292482793331146f, -0.454902857542038f, 0.292133957147598f, - -0.454743564128876f, - 0.291785210371017f, -0.454584002494812f, 0.291436612606049f, - -0.454424172639847f, - 0.291088134050369f, -0.454264044761658f, 0.290739774703979f, - -0.454103678464890f, - 0.290391564369202f, -0.453943043947220f, 0.290043443441391f, - -0.453782171010971f, - 0.289695471525192f, -0.453621000051498f, 0.289347589015961f, - -0.453459560871124f, - 0.288999855518341f, -0.453297853469849f, 0.288652241230011f, - -0.453135877847672f, - 0.288304775953293f, -0.452973634004593f, 0.287957400083542f, - -0.452811151742935f, - 0.287610173225403f, -0.452648371458054f, 0.287263035774231f, - -0.452485352754593f, - 0.286916047334671f, -0.452322036027908f, 0.286569178104401f, - -0.452158480882645f, - 0.286222457885742f, -0.451994657516479f, 0.285875827074051f, - -0.451830536127090f, - 0.285529345273972f, -0.451666176319122f, 0.285182982683182f, - -0.451501548290253f, - 0.284836769104004f, -0.451336652040482f, 0.284490644931793f, - -0.451171487569809f, - 0.284144669771194f, -0.451006084680557f, 0.283798813819885f, - -0.450840383768082f, - 0.283453077077866f, -0.450674414634705f, 0.283107489347458f, - -0.450508207082748f, - 0.282762020826340f, -0.450341701507568f, 0.282416671514511f, - -0.450174957513809f, - 0.282071471214294f, -0.450007945299149f, 0.281726360321045f, - -0.449840664863586f, - 0.281381398439407f, -0.449673116207123f, 0.281036585569382f, - -0.449505299329758f, - 0.280691891908646f, -0.449337244033813f, 0.280347317457199f, - -0.449168890714645f, - 0.280002862215042f, -0.449000298976898f, 0.279658555984497f, - -0.448831409215927f, - 0.279314368963242f, -0.448662281036377f, 0.278970301151276f, - -0.448492884635925f, - 0.278626382350922f, -0.448323249816895f, 0.278282582759857f, - -0.448153316974640f, - 0.277938932180405f, -0.447983115911484f, 0.277595400810242f, - -0.447812676429749f, - 0.277251988649368f, -0.447641968727112f, 0.276908725500107f, - -0.447470992803574f, - 0.276565581560135f, -0.447299748659134f, 0.276222556829453f, - -0.447128236293793f, - 0.275879681110382f, -0.446956485509872f, 0.275536954402924f, - -0.446784436702728f, - 0.275194346904755f, -0.446612149477005f, 0.274851858615875f, - -0.446439594030380f, - 0.274509519338608f, -0.446266770362854f, 0.274167299270630f, - -0.446093708276749f, - 0.273825198411942f, -0.445920348167419f, 0.273483246564865f, - -0.445746749639511f, - 0.273141443729401f, -0.445572882890701f, 0.272799760103226f, - -0.445398747920990f, - 0.272458195686340f, -0.445224374532700f, 0.272116780281067f, - -0.445049703121185f, - 0.271775513887405f, -0.444874793291092f, 0.271434366703033f, - -0.444699615240097f, - 0.271093338727951f, -0.444524168968201f, 0.270752459764481f, - -0.444348484277725f, - 0.270411729812622f, -0.444172531366348f, 0.270071119070053f, - -0.443996280431747f, - 0.269730657339096f, -0.443819820880890f, 0.269390314817429f, - -0.443643063306808f, - 0.269050091505051f, -0.443466067314148f, 0.268710047006607f, - -0.443288803100586f, - 0.268370121717453f, -0.443111270666122f, 0.268030315637589f, - -0.442933470010757f, - 0.267690658569336f, -0.442755430936813f, 0.267351150512695f, - -0.442577123641968f, - 0.267011761665344f, -0.442398548126221f, 0.266672492027283f, - -0.442219734191895f, - 0.266333401203156f, -0.442040622234344f, 0.265994429588318f, - -0.441861271858215f, - 0.265655577182770f, -0.441681683063507f, 0.265316903591156f, - -0.441501796245575f, - 0.264978319406509f, -0.441321671009064f, 0.264639914035797f, - -0.441141277551651f, - 0.264301627874374f, -0.440960645675659f, 0.263963490724564f, - -0.440779715776443f, - 0.263625472784042f, -0.440598547458649f, 0.263287603855133f, - -0.440417140722275f, - 0.262949883937836f, -0.440235435962677f, 0.262612313032150f, - -0.440053492784500f, - 0.262274861335754f, -0.439871311187744f, 0.261937558650970f, - -0.439688831567764f, - 0.261600375175476f, -0.439506113529205f, 0.261263370513916f, - -0.439323127269745f, - 0.260926485061646f, -0.439139902591705f, 0.260589718818665f, - -0.438956409692764f, - 0.260253131389618f, -0.438772648572922f, 0.259916663169861f, - -0.438588619232178f, - 0.259580343961716f, -0.438404351472855f, 0.259244143962860f, - -0.438219845294952f, - 0.258908122777939f, -0.438035041093826f, 0.258572220802307f, - -0.437849998474121f, - 0.258236467838287f, -0.437664687633514f, 0.257900834083557f, - -0.437479138374329f, - 0.257565379142761f, -0.437293320894241f, 0.257230043411255f, - -0.437107264995575f, - 0.256894856691360f, -0.436920911073685f, 0.256559818983078f, - -0.436734348535538f, - 0.256224930286407f, -0.436547487974167f, 0.255890160799026f, - -0.436360388994217f, - 0.255555540323257f, -0.436173021793365f, 0.255221068859100f, - -0.435985416173935f, - 0.254886746406555f, -0.435797542333603f, 0.254552572965622f, - -0.435609430074692f, - 0.254218548536301f, -0.435421019792557f, 0.253884643316269f, - -0.435232400894165f, - 0.253550916910172f, -0.435043483972549f, 0.253217309713364f, - -0.434854328632355f, - 0.252883851528168f, -0.434664934873581f, 0.252550542354584f, - -0.434475272893906f, - 0.252217382192612f, -0.434285342693329f, 0.251884341239929f, - -0.434095174074173f, - 0.251551479101181f, -0.433904737234116f, 0.251218736171722f, - -0.433714061975479f, - 0.250886172056198f, -0.433523118495941f, 0.250553727149963f, - -0.433331936597824f, - 0.250221431255341f, -0.433140486478806f, 0.249889299273491f, - -0.432948768138886f, - 0.249557301402092f, -0.432756811380386f, 0.249225467443466f, - -0.432564586400986f, - 0.248893767595291f, -0.432372123003006f, 0.248562216758728f, - -0.432179391384125f, - 0.248230814933777f, -0.431986421346664f, 0.247899547219276f, - -0.431793183088303f, - 0.247568443417549f, -0.431599706411362f, 0.247237488627434f, - -0.431405961513519f, - 0.246906682848930f, -0.431211978197098f, 0.246576011180878f, - -0.431017726659775f, - 0.246245503425598f, -0.430823236703873f, 0.245915144681931f, - -0.430628478527069f, - 0.245584934949875f, -0.430433481931686f, 0.245254859328270f, - -0.430238217115402f, - 0.244924947619438f, -0.430042684078217f, 0.244595184922218f, - -0.429846942424774f, - 0.244265571236610f, -0.429650902748108f, 0.243936106562614f, - -0.429454624652863f, - 0.243606805801392f, -0.429258108139038f, 0.243277639150620f, - -0.429061323404312f, - 0.242948621511459f, -0.428864300251007f, 0.242619767785072f, - -0.428667008876801f, - 0.242291063070297f, -0.428469479084015f, 0.241962507367134f, - -0.428271710872650f, - 0.241634100675583f, -0.428073674440384f, 0.241305842995644f, - -0.427875369787216f, - 0.240977749228477f, -0.427676826715469f, 0.240649804472923f, - -0.427478045225143f, - 0.240322008728981f, -0.427278995513916f, 0.239994361996651f, - -0.427079707384110f, - 0.239666879177094f, -0.426880151033401f, 0.239339530467987f, - -0.426680356264114f, - 0.239012360572815f, -0.426480293273926f, 0.238685324788094f, - -0.426279991865158f, - 0.238358452916145f, -0.426079452037811f, 0.238031730055809f, - -0.425878643989563f, - 0.237705156207085f, -0.425677597522736f, 0.237378746271133f, - -0.425476282835007f, - 0.237052485346794f, -0.425274729728699f, 0.236726388335228f, - -0.425072938203812f, - 0.236400425434113f, -0.424870878458023f, 0.236074641346931f, - -0.424668580293655f, - 0.235749006271362f, -0.424466013908386f, 0.235423520207405f, - -0.424263238906860f, - 0.235098183155060f, -0.424060165882111f, 0.234773010015488f, - -0.423856884241104f, - 0.234448000788689f, -0.423653304576874f, 0.234123140573502f, - -0.423449516296387f, - 0.233798429369926f, -0.423245459794998f, 0.233473882079124f, - -0.423041164875031f, - 0.233149498701096f, -0.422836631536484f, 0.232825264334679f, - -0.422631829977036f, - 0.232501193881035f, -0.422426789999008f, 0.232177272439003f, - -0.422221481800079f, - 0.231853514909744f, -0.422015935182571f, 0.231529906392097f, - -0.421810150146484f, - 0.231206461787224f, -0.421604126691818f, 0.230883181095123f, - -0.421397835016251f, - 0.230560049414635f, -0.421191304922104f, 0.230237081646919f, - -0.420984506607056f, - 0.229914262890816f, -0.420777499675751f, 0.229591608047485f, - -0.420570224523544f, - 0.229269117116928f, -0.420362681150436f, 0.228946775197983f, - -0.420154929161072f, - 0.228624612092972f, -0.419946908950806f, 0.228302597999573f, - -0.419738620519638f, - 0.227980732917786f, -0.419530123472214f, 0.227659046649933f, - -0.419321358203888f, - 0.227337509393692f, -0.419112354516983f, 0.227016136050224f, - -0.418903112411499f, - 0.226694911718369f, -0.418693602085114f, 0.226373866200447f, - -0.418483853340149f, - 0.226052969694138f, -0.418273866176605f, 0.225732237100601f, - -0.418063640594482f, - 0.225411668419838f, -0.417853146791458f, 0.225091263651848f, - -0.417642414569855f, - 0.224771007895470f, -0.417431443929672f, 0.224450930953026f, - -0.417220205068588f, - 0.224131003022194f, -0.417008757591248f, 0.223811239004135f, - -0.416797041893005f, - 0.223491653800011f, -0.416585087776184f, 0.223172217607498f, - -0.416372895240784f, - 0.222852945327759f, -0.416160434484482f, 0.222533836960793f, - -0.415947735309601f, - 0.222214877605438f, -0.415734797716141f, 0.221896097064018f, - -0.415521621704102f, - 0.221577480435371f, -0.415308207273483f, 0.221259027719498f, - -0.415094524621964f, - 0.220940738916397f, -0.414880603551865f, 0.220622614026070f, - -0.414666473865509f, - 0.220304638147354f, -0.414452046155930f, 0.219986841082573f, - -0.414237409830093f, - 0.219669207930565f, -0.414022535085678f, 0.219351738691330f, - -0.413807392120361f, - 0.219034433364868f, -0.413592010736465f, 0.218717306852341f, - -0.413376390933990f, - 0.218400329351425f, -0.413160532712936f, 0.218083515763283f, - -0.412944436073303f, - 0.217766880989075f, -0.412728071212769f, 0.217450410127640f, - -0.412511497735977f, - 0.217134088277817f, -0.412294656038284f, 0.216817945241928f, - -0.412077575922012f, - 0.216501981019974f, -0.411860257387161f, 0.216186165809631f, - -0.411642700433731f, - 0.215870529413223f, -0.411424905061722f, 0.215555042028427f, - -0.411206841468811f, - 0.215239733457565f, -0.410988569259644f, 0.214924603700638f, - -0.410770028829575f, - 0.214609622955322f, -0.410551249980927f, 0.214294821023941f, - -0.410332232713699f, - 0.213980183005333f, -0.410112977027893f, 0.213665723800659f, - -0.409893482923508f, - 0.213351413607597f, -0.409673750400543f, 0.213037282228470f, - -0.409453779459000f, - 0.212723329663277f, -0.409233570098877f, 0.212409526109695f, - -0.409013092517853f, - 0.212095901370049f, -0.408792406320572f, 0.211782455444336f, - -0.408571451902390f, - 0.211469158530235f, -0.408350288867950f, 0.211156040430069f, - -0.408128857612610f, - 0.210843101143837f, -0.407907217741013f, 0.210530325770378f, - -0.407685309648514f, - 0.210217714309692f, -0.407463163137436f, 0.209905281662941f, - -0.407240778207779f, - 0.209593027830124f, -0.407018154859543f, 0.209280923008919f, - -0.406795293092728f, - 0.208969011902809f, -0.406572192907333f, 0.208657249808311f, - -0.406348884105682f, - 0.208345666527748f, -0.406125307083130f, 0.208034262061119f, - -0.405901491641998f, - 0.207723021507263f, -0.405677437782288f, 0.207411959767342f, - -0.405453115701675f, - 0.207101076841354f, -0.405228585004807f, 0.206790357828140f, - -0.405003815889359f, - 0.206479802727699f, -0.404778808355331f, 0.206169426441193f, - -0.404553562402725f, - 0.205859228968620f, -0.404328078031540f, 0.205549195408821f, - -0.404102355241776f, - 0.205239340662956f, -0.403876423835754f, 0.204929664731026f, - -0.403650224208832f, - 0.204620152711868f, -0.403423786163330f, 0.204310819506645f, - -0.403197109699249f, - 0.204001650214195f, -0.402970194816589f, 0.203692659735680f, - -0.402743041515350f, - 0.203383848071098f, -0.402515679597855f, 0.203075215220451f, - -0.402288049459457f, - 0.202766746282578f, -0.402060180902481f, 0.202458456158638f, - -0.401832103729248f, - 0.202150344848633f, -0.401603758335114f, 0.201842412352562f, - -0.401375204324722f, - 0.201534643769264f, -0.401146411895752f, 0.201227053999901f, - -0.400917351245880f, - 0.200919643044472f, -0.400688081979752f, 0.200612410902977f, - -0.400458574295044f, - 0.200305357575417f, -0.400228828191757f, 0.199998468160629f, - -0.399998843669891f, - 0.199691757559776f, -0.399768620729446f, 0.199385225772858f, - -0.399538189172745f, - 0.199078872799873f, -0.399307489395142f, 0.198772698640823f, - -0.399076581001282f, - 0.198466703295708f, -0.398845434188843f, 0.198160871863365f, - -0.398614019155502f, - 0.197855234146118f, -0.398382395505905f, 0.197549775242805f, - -0.398150533437729f, - 0.197244480252266f, -0.397918462753296f, 0.196939364075661f, - -0.397686123847961f, - 0.196634441614151f, -0.397453576326370f, 0.196329683065414f, - -0.397220760583878f, - 0.196025103330612f, -0.396987736225128f, 0.195720717310905f, - -0.396754473447800f, - 0.195416495203972f, -0.396520972251892f, 0.195112451910973f, - -0.396287262439728f, - 0.194808602333069f, -0.396053284406662f, 0.194504916667938f, - -0.395819097757339f, - 0.194201424717903f, -0.395584672689438f, 0.193898096680641f, - -0.395350009202957f, - 0.193594962358475f, -0.395115107297897f, 0.193292006850243f, - -0.394879996776581f, - 0.192989215254784f, -0.394644618034363f, 0.192686617374420f, - -0.394409030675888f, - 0.192384198307991f, -0.394173204898834f, 0.192081972956657f, - -0.393937170505524f, - 0.191779911518097f, -0.393700867891312f, 0.191478043794632f, - -0.393464356660843f, - 0.191176339983940f, -0.393227607011795f, 0.190874829888344f, - -0.392990618944168f, - 0.190573498606682f, -0.392753422260284f, 0.190272361040115f, - -0.392515957355499f, - 0.189971387386322f, -0.392278283834457f, 0.189670607447624f, - -0.392040401697159f, - 0.189370006322861f, -0.391802251338959f, 0.189069598913193f, - -0.391563892364502f, - 0.188769355416298f, -0.391325294971466f, 0.188469305634499f, - -0.391086459159851f, - 0.188169434666634f, -0.390847414731979f, 0.187869757413864f, - -0.390608131885529f, - 0.187570258975029f, -0.390368610620499f, 0.187270939350128f, - -0.390128880739212f, - 0.186971798539162f, -0.389888882637024f, 0.186672851443291f, - -0.389648675918579f, - 0.186374098062515f, -0.389408260583878f, 0.186075508594513f, - -0.389167606830597f, - 0.185777112841606f, -0.388926714658737f, 0.185478910803795f, - -0.388685584068298f, - 0.185180887579918f, -0.388444244861603f, 0.184883043169975f, - -0.388202667236328f, - 0.184585392475128f, -0.387960851192474f, 0.184287920594215f, - -0.387718826532364f, - 0.183990627527237f, -0.387476563453674f, 0.183693528175354f, - -0.387234061956406f, - 0.183396622538567f, -0.386991351842880f, 0.183099895715714f, - -0.386748403310776f, - 0.182803362607956f, -0.386505216360092f, 0.182507008314133f, - -0.386261820793152f, - 0.182210832834244f, -0.386018186807632f, 0.181914865970612f, - -0.385774344205856f, - 0.181619063019753f, -0.385530263185501f, 0.181323468685150f, - -0.385285943746567f, - 0.181028053164482f, -0.385041415691376f, 0.180732816457748f, - -0.384796649217606f, - 0.180437773466110f, -0.384551674127579f, 0.180142924189568f, - -0.384306460618973f, - 0.179848253726959f, -0.384061008691788f, 0.179553776979446f, - -0.383815348148346f, - 0.179259493947029f, -0.383569449186325f, 0.178965389728546f, - -0.383323341608047f, - 0.178671479225159f, -0.383076995611191f, 0.178377762436867f, - -0.382830440998077f, - 0.178084224462509f, -0.382583618164063f, 0.177790880203247f, - -0.382336616516113f, - 0.177497729659081f, -0.382089376449585f, 0.177204772830009f, - -0.381841897964478f, - 0.176911994814873f, -0.381594210863113f, 0.176619410514832f, - -0.381346285343170f, - 0.176327019929886f, -0.381098151206970f, 0.176034808158875f, - -0.380849778652191f, - 0.175742805004120f, -0.380601197481155f, 0.175450980663300f, - -0.380352377891541f, - 0.175159350037575f, -0.380103349685669f, 0.174867913126946f, - -0.379854083061218f, - 0.174576655030251f, -0.379604607820511f, 0.174285605549812f, - -0.379354894161224f, - 0.173994734883308f, -0.379104942083359f, 0.173704057931900f, - -0.378854811191559f, - 0.173413574695587f, -0.378604412078857f, 0.173123285174370f, - -0.378353834152222f, - 0.172833189368248f, -0.378102988004684f, 0.172543287277222f, - -0.377851963043213f, - 0.172253578901291f, -0.377600699663162f, 0.171964049339294f, - -0.377349197864532f, - 0.171674728393555f, -0.377097487449646f, 0.171385586261749f, - -0.376845568418503f, - 0.171096652746201f, -0.376593410968781f, 0.170807912945747f, - -0.376341015100479f, - 0.170519351959229f, -0.376088410615921f, 0.170230999588966f, - -0.375835597515106f, - 0.169942826032639f, -0.375582575798035f, 0.169654861092567f, - -0.375329315662384f, - 0.169367074966431f, -0.375075817108154f, 0.169079497456551f, - -0.374822109937668f, - 0.168792113661766f, -0.374568194150925f, 0.168504923582077f, - -0.374314039945602f, - 0.168217927217484f, -0.374059677124023f, 0.167931124567986f, - -0.373805105686188f, - 0.167644515633583f, -0.373550295829773f, 0.167358100414276f, - -0.373295277357101f, - 0.167071878910065f, -0.373040050268173f, 0.166785866022110f, - -0.372784584760666f, - 0.166500031948090f, -0.372528880834579f, 0.166214406490326f, - -0.372272998094559f, - 0.165928974747658f, -0.372016876935959f, 0.165643751621246f, - -0.371760547161102f, - 0.165358707308769f, -0.371503978967667f, 0.165073871612549f, - -0.371247202157974f, - 0.164789214730263f, -0.370990216732025f, 0.164504766464233f, - -0.370732992887497f, - 0.164220526814461f, -0.370475560426712f, 0.163936465978622f, - -0.370217919349670f, - 0.163652613759041f, -0.369960039854050f, 0.163368955254555f, - -0.369701951742172f, - 0.163085505366325f, -0.369443655014038f, 0.162802234292030f, - -0.369185149669647f, - 0.162519171833992f, -0.368926405906677f, 0.162236317992210f, - -0.368667453527451f, - 0.161953642964363f, -0.368408292531967f, 0.161671176552773f, - -0.368148893117905f, - 0.161388918757439f, -0.367889285087585f, 0.161106839776039f, - -0.367629468441010f, - 0.160824984312058f, -0.367369443178177f, 0.160543307662010f, - -0.367109179496765f, - 0.160261839628220f, -0.366848707199097f, 0.159980565309525f, - -0.366588026285172f, - 0.159699499607086f, -0.366327136754990f, 0.159418627619743f, - -0.366066008806229f, - 0.159137964248657f, -0.365804702043533f, 0.158857494592667f, - -0.365543156862259f, - 0.158577233552933f, -0.365281373262405f, 0.158297166228294f, - -0.365019410848618f, - 0.158017292618752f, -0.364757210016251f, 0.157737627625465f, - -0.364494800567627f, - 0.157458171248436f, -0.364232182502747f, 0.157178908586502f, - -0.363969355821610f, - 0.156899839639664f, -0.363706320524216f, 0.156620979309082f, - -0.363443046808243f, - 0.156342327594757f, -0.363179564476013f, 0.156063869595528f, - -0.362915903329849f, - 0.155785620212555f, -0.362651973962784f, 0.155507579445839f, - -0.362387865781784f, - 0.155229732394218f, -0.362123548984528f, 0.154952079057693f, - -0.361858993768692f, - 0.154674649238586f, -0.361594229936600f, 0.154397398233414f, - -0.361329287290573f, - 0.154120370745659f, -0.361064106225967f, 0.153843536973000f, - -0.360798716545105f, - 0.153566911816597f, -0.360533088445663f, 0.153290495276451f, - -0.360267281532288f, - 0.153014272451401f, -0.360001266002655f, 0.152738258242607f, - -0.359735012054443f, - 0.152462437748909f, -0.359468549489975f, 0.152186840772629f, - -0.359201908111572f, - 0.151911437511444f, -0.358935028314590f, 0.151636242866516f, - -0.358667939901352f, - 0.151361241936684f, -0.358400642871857f, 0.151086464524269f, - -0.358133137226105f, - 0.150811880826950f, -0.357865422964096f, 0.150537505745888f, - -0.357597470283508f, - 0.150263324379921f, -0.357329338788986f, 0.149989366531372f, - -0.357060998678207f, - 0.149715602397919f, -0.356792420148849f, 0.149442046880722f, - -0.356523662805557f, - 0.149168699979782f, -0.356254696846008f, 0.148895561695099f, - -0.355985492467880f, - 0.148622632026672f, -0.355716109275818f, 0.148349896073341f, - -0.355446487665176f, - 0.148077383637428f, -0.355176687240601f, 0.147805064916611f, - -0.354906648397446f, - 0.147532954812050f, -0.354636400938034f, 0.147261068224907f, - -0.354365974664688f, - 0.146989375352860f, -0.354095309972763f, 0.146717891097069f, - -0.353824466466904f, - 0.146446615457535f, -0.353553384542465f, 0.146175548434258f, - -0.353282123804092f, - 0.145904675126076f, -0.353010624647141f, 0.145634025335312f, - -0.352738946676254f, - 0.145363584160805f, -0.352467030286789f, 0.145093351602554f, - -0.352194935083389f, - 0.144823327660561f, -0.351922631263733f, 0.144553512334824f, - -0.351650089025497f, - 0.144283905625343f, -0.351377367973328f, 0.144014507532120f, - -0.351104438304901f, - 0.143745318055153f, -0.350831300020218f, 0.143476337194443f, - -0.350557953119278f, - 0.143207564949989f, -0.350284397602081f, 0.142939001321793f, - -0.350010633468628f, - 0.142670661211014f, -0.349736660718918f, 0.142402514815331f, - -0.349462509155273f, - 0.142134591937065f, -0.349188119173050f, 0.141866862773895f, - -0.348913550376892f, - 0.141599357128143f, -0.348638743162155f, 0.141332060098648f, - -0.348363757133484f, - 0.141064971685410f, -0.348088562488556f, 0.140798106789589f, - -0.347813159227371f, - 0.140531435608864f, -0.347537547349930f, 0.140264987945557f, - -0.347261756658554f, - 0.139998748898506f, -0.346985727548599f, 0.139732718467712f, - -0.346709519624710f, - 0.139466896653175f, -0.346433073282242f, 0.139201298356056f, - -0.346156448125839f, - 0.138935908675194f, -0.345879614353180f, 0.138670727610588f, - -0.345602601766586f, - 0.138405755162239f, -0.345325350761414f, 0.138141006231308f, - -0.345047920942307f, - 0.137876465916634f, -0.344770282506943f, 0.137612134218216f, - -0.344492435455322f, - 0.137348011136055f, -0.344214379787445f, 0.137084111571312f, - -0.343936115503311f, - 0.136820420622826f, -0.343657672405243f, 0.136556953191757f, - -0.343379020690918f, - 0.136293679475784f, -0.343100160360336f, 0.136030644178391f, - -0.342821091413498f, - 0.135767802596092f, -0.342541843652725f, 0.135505184531212f, - -0.342262357473373f, - 0.135242775082588f, -0.341982692480087f, 0.134980589151382f, - -0.341702848672867f, - 0.134718611836433f, -0.341422766447067f, 0.134456858038902f, - -0.341142505407333f, - 0.134195312857628f, -0.340862035751343f, 0.133933976292610f, - -0.340581357479095f, - 0.133672863245010f, -0.340300500392914f, 0.133411958813667f, - -0.340019434690475f, - 0.133151277899742f, -0.339738160371780f, 0.132890805602074f, - -0.339456677436829f, - 0.132630556821823f, -0.339175015687943f, 0.132370531558990f, - -0.338893145322800f, - 0.132110700011253f, -0.338611096143723f, 0.131851106882095f, - -0.338328808546066f, - 0.131591722369194f, -0.338046342134476f, 0.131332546472549f, - -0.337763696908951f, - 0.131073594093323f, -0.337480813264847f, 0.130814850330353f, - -0.337197750806808f, - 0.130556344985962f, -0.336914509534836f, 0.130298033356667f, - -0.336631029844284f, - 0.130039945244789f, -0.336347371339798f, 0.129782080650330f, - -0.336063534021378f, - 0.129524439573288f, -0.335779488086700f, 0.129267007112503f, - -0.335495233535767f, - 0.129009798169136f, -0.335210770368576f, 0.128752797842026f, - -0.334926128387451f, - 0.128496021032333f, -0.334641307592392f, 0.128239467740059f, - -0.334356248378754f, - 0.127983123064041f, -0.334071010351181f, 0.127727001905441f, - -0.333785593509674f, - 0.127471104264259f, -0.333499968051910f, 0.127215430140495f, - -0.333214133977890f, - 0.126959964632988f, -0.332928121089935f, 0.126704722642899f, - -0.332641899585724f, - 0.126449704170227f, -0.332355499267578f, 0.126194894313812f, - -0.332068890333176f, - 0.125940307974815f, -0.331782072782516f, 0.125685945153236f, - -0.331495076417923f, - 0.125431805849075f, -0.331207901239395f, 0.125177875161171f, - -0.330920487642288f, - 0.124924175441265f, -0.330632925033569f, 0.124670691788197f, - -0.330345153808594f, - 0.124417431652546f, -0.330057173967361f, 0.124164395034313f, - -0.329769015312195f, - 0.123911574482918f, -0.329480648040771f, 0.123658977448940f, - -0.329192101955414f, - 0.123406603932381f, -0.328903347253799f, 0.123154446482658f, - -0.328614413738251f, - 0.122902512550354f, -0.328325271606445f, 0.122650802135468f, - -0.328035950660706f, - 0.122399315237999f, -0.327746421098709f, 0.122148044407368f, - -0.327456712722778f, - 0.121896997094154f, -0.327166795730591f, 0.121646173298359f, - -0.326876699924469f, - 0.121395580470562f, -0.326586425304413f, 0.121145196259022f, - -0.326295942068100f, - 0.120895043015480f, -0.326005280017853f, 0.120645113289356f, - -0.325714409351349f, - 0.120395407080650f, -0.325423330068588f, 0.120145916938782f, - -0.325132101774216f, - 0.119896657764912f, -0.324840664863586f, 0.119647622108459f, - -0.324549019336700f, - 0.119398809969425f, -0.324257194995880f, 0.119150213897228f, - -0.323965191841125f, - 0.118901848793030f, -0.323672980070114f, 0.118653707206249f, - -0.323380589485168f, - 0.118405789136887f, -0.323088020086288f, 0.118158094584942f, - -0.322795242071152f, - 0.117910631000996f, -0.322502255439758f, 0.117663383483887f, - -0.322209119796753f, - 0.117416366934776f, -0.321915775537491f, 0.117169573903084f, - -0.321622252464294f, - 0.116923004388809f, -0.321328520774841f, 0.116676658391953f, - -0.321034610271454f, - 0.116430543363094f, -0.320740520954132f, 0.116184651851654f, - -0.320446223020554f, - 0.115938983857632f, -0.320151746273041f, 0.115693546831608f, - -0.319857090711594f, - 0.115448333323002f, -0.319562226533890f, 0.115203343331814f, - -0.319267183542252f, - 0.114958584308624f, -0.318971961736679f, 0.114714048802853f, - -0.318676531314850f, - 0.114469736814499f, -0.318380922079086f, 0.114225655794144f, - -0.318085134029388f, - 0.113981798291206f, -0.317789167165756f, 0.113738171756268f, - -0.317492991685867f, - 0.113494776189327f, -0.317196637392044f, 0.113251596689224f, - -0.316900104284287f, - 0.113008655607700f, -0.316603392362595f, 0.112765938043594f, - -0.316306471824646f, - 0.112523443996906f, -0.316009372472763f, 0.112281180918217f, - -0.315712094306946f, - 0.112039148807526f, -0.315414607524872f, 0.111797347664833f, - -0.315116971731186f, - 0.111555770039558f, -0.314819127321243f, 0.111314415931702f, - -0.314521104097366f, - 0.111073300242424f, -0.314222872257233f, 0.110832408070564f, - -0.313924491405487f, - 0.110591746866703f, -0.313625901937485f, 0.110351309180260f, - -0.313327133655548f, - 0.110111102461815f, -0.313028186559677f, 0.109871134161949f, - -0.312729060649872f, - 0.109631389379501f, -0.312429755926132f, 0.109391868114471f, - -0.312130242586136f, - 0.109152585268021f, -0.311830550432205f, 0.108913525938988f, - -0.311530679464340f, - 0.108674705028534f, -0.311230629682541f, 0.108436107635498f, - -0.310930401086807f, - 0.108197741210461f, -0.310629993677139f, 0.107959605753422f, - -0.310329377651215f, - 0.107721701264381f, -0.310028612613678f, 0.107484027743340f, - -0.309727638959885f, - 0.107246585190296f, -0.309426486492157f, 0.107009373605251f, - -0.309125155210495f, - 0.106772392988205f, -0.308823645114899f, 0.106535643339157f, - -0.308521956205368f, - 0.106299124658108f, -0.308220088481903f, 0.106062836945057f, - -0.307918041944504f, - 0.105826787650585f, -0.307615786790848f, 0.105590961873531f, - -0.307313382625580f, - 0.105355374515057f, -0.307010769844055f, 0.105120018124580f, - -0.306708008050919f, - 0.104884892702103f, -0.306405037641525f, 0.104649998247623f, - -0.306101888418198f, - 0.104415334761143f, -0.305798590183258f, 0.104180909693241f, - -0.305495083332062f, - 0.103946708142757f, -0.305191397666931f, 0.103712752461433f, - -0.304887533187866f, - 0.103479020297527f, -0.304583519697189f, 0.103245526552200f, - -0.304279297590256f, - 0.103012263774872f, -0.303974896669388f, 0.102779231965542f, - -0.303670316934586f, - 0.102546438574791f, -0.303365558385849f, 0.102313876152039f, - -0.303060621023178f, - 0.102081544697285f, -0.302755534648895f, 0.101849451661110f, - -0.302450239658356f, - 0.101617597043514f, -0.302144765853882f, 0.101385973393917f, - -0.301839113235474f, - 0.101154580712318f, -0.301533311605453f, 0.100923426449299f, - -0.301227301359177f, - 0.100692503154278f, -0.300921112298965f, 0.100461818277836f, - -0.300614774227142f, - 0.100231364369392f, -0.300308227539063f, 0.100001148879528f, - -0.300001531839371f, - 0.099771171808243f, -0.299694657325745f, 0.099541425704956f, - -0.299387603998184f, - 0.099311910569668f, -0.299080342054367f, 0.099082641303539f, - -0.298772931098938f, - 0.098853603005409f, -0.298465341329575f, 0.098624803125858f, - -0.298157602548599f, - 0.098396234214306f, -0.297849655151367f, 0.098167903721333f, - -0.297541528940201f, - 0.097939811646938f, -0.297233253717422f, 0.097711957991123f, - -0.296924799680710f, - 0.097484335303307f, -0.296616137027740f, 0.097256951034069f, - -0.296307325363159f, - 0.097029805183411f, -0.295998334884644f, 0.096802897751331f, - -0.295689195394516f, - 0.096576221287251f, -0.295379847288132f, 0.096349790692329f, - -0.295070350170136f, - 0.096123591065407f, -0.294760644435883f, 0.095897629857063f, - -0.294450789690018f, - 0.095671907067299f, -0.294140785932541f, 0.095446422696114f, - -0.293830573558807f, - 0.095221176743507f, -0.293520182371140f, 0.094996169209480f, - -0.293209642171860f, - 0.094771400094032f, -0.292898923158646f, 0.094546869397163f, - -0.292588025331497f, - 0.094322577118874f, -0.292276978492737f, 0.094098523259163f, - -0.291965723037720f, - 0.093874707818031f, -0.291654318571091f, 0.093651130795479f, - -0.291342735290527f, - 0.093427792191505f, -0.291031002998352f, 0.093204692006111f, - -0.290719062089920f, - 0.092981837689877f, -0.290406972169876f, 0.092759214341640f, - -0.290094703435898f, - 0.092536836862564f, -0.289782285690308f, 0.092314697802067f, - -0.289469659328461f, - 0.092092797160149f, -0.289156883955002f, 0.091871134936810f, - -0.288843959569931f, - 0.091649711132050f, -0.288530826568604f, 0.091428533196449f, - -0.288217544555664f, - 0.091207593679428f, -0.287904083728790f, 0.090986892580986f, - -0.287590473890305f, - 0.090766437351704f, -0.287276685237885f, 0.090546220541000f, - -0.286962717771530f, - 0.090326242148876f, -0.286648571491241f, 0.090106502175331f, - -0.286334276199341f, - 0.089887008070946f, -0.286019802093506f, 0.089667752385139f, - -0.285705178976059f, - 0.089448742568493f, -0.285390377044678f, 0.089229971170425f, - -0.285075396299362f, - 0.089011445641518f, -0.284760266542435f, 0.088793158531189f, - -0.284444957971573f, - 0.088575109839439f, -0.284129470586777f, 0.088357307016850f, - -0.283813834190369f, - 0.088139742612839f, -0.283498018980026f, 0.087922424077988f, - -0.283182054758072f, - 0.087705351412296f, -0.282865911722183f, 0.087488517165184f, - -0.282549589872360f, - 0.087271921336651f, -0.282233119010925f, 0.087055571377277f, - -0.281916469335556f, - 0.086839467287064f, -0.281599670648575f, 0.086623609066010f, - -0.281282693147659f, - 0.086407989263535f, -0.280965566635132f, 0.086192607879639f, - -0.280648261308670f, - 0.085977479815483f, -0.280330777168274f, 0.085762590169907f, - -0.280013144016266f, - 0.085547938942909f, -0.279695361852646f, 0.085333541035652f, - -0.279377400875092f, - 0.085119381546974f, -0.279059261083603f, 0.084905467927456f, - -0.278740972280502f, - 0.084691800177097f, -0.278422504663467f, 0.084478378295898f, - -0.278103888034821f, - 0.084265194833279f, -0.277785122394562f, 0.084052257239819f, - -0.277466177940369f, - 0.083839565515518f, -0.277147054672241f, 0.083627119660378f, - -0.276827782392502f, - 0.083414919674397f, -0.276508361101151f, 0.083202958106995f, - -0.276188760995865f, - 0.082991249859333f, -0.275868982076645f, 0.082779780030251f, - -0.275549083948135f, - 0.082568563520908f, -0.275228977203369f, 0.082357585430145f, - -0.274908751249313f, - 0.082146860659122f, -0.274588316679001f, 0.081936374306679f, - -0.274267762899399f, - 0.081726133823395f, -0.273947030305862f, 0.081516146659851f, - -0.273626148700714f, - 0.081306397914886f, -0.273305088281631f, 0.081096902489662f, - -0.272983878850937f, - 0.080887645483017f, -0.272662490606308f, 0.080678641796112f, - -0.272340953350067f, - 0.080469883978367f, -0.272019267082214f, 0.080261372029781f, - -0.271697402000427f, - 0.080053105950356f, -0.271375387907028f, 0.079845085740089f, - -0.271053224802017f, - 0.079637311398983f, -0.270730882883072f, 0.079429790377617f, - -0.270408391952515f, - 0.079222507774830f, -0.270085722208023f, 0.079015478491783f, - -0.269762933254242f, - 0.078808702528477f, -0.269439965486526f, 0.078602164983749f, - -0.269116818904877f, - 0.078395880758762f, -0.268793523311615f, 0.078189842402935f, - -0.268470078706741f, - 0.077984049916267f, -0.268146485090256f, 0.077778510749340f, - -0.267822742462158f, - 0.077573217451572f, -0.267498821020126f, 0.077368170022964f, - -0.267174720764160f, - 0.077163375914097f, -0.266850501298904f, 0.076958827674389f, - -0.266526103019714f, - 0.076754532754421f, -0.266201555728912f, 0.076550483703613f, - -0.265876859426498f, - 0.076346680521965f, -0.265552014112473f, 0.076143130660057f, - -0.265226989984512f, - 0.075939826667309f, -0.264901816844940f, 0.075736775994301f, - -0.264576494693756f, - 0.075533971190453f, -0.264250993728638f, 0.075331419706345f, - -0.263925373554230f, - 0.075129114091396f, -0.263599574565887f, 0.074927061796188f, - -0.263273626565933f, - 0.074725262820721f, -0.262947499752045f, 0.074523709714413f, - -0.262621253728867f, - 0.074322402477264f, -0.262294828891754f, 0.074121348559856f, - -0.261968284845352f, - 0.073920547962189f, -0.261641561985016f, 0.073720000684261f, - -0.261314690113068f, - 0.073519699275494f, -0.260987639427185f, 0.073319651186466f, - -0.260660469532013f, - 0.073119848966599f, -0.260333120822906f, 0.072920300066471f, - -0.260005623102188f, - 0.072721004486084f, -0.259678006172180f, 0.072521962225437f, - -0.259350210428238f, - 0.072323165833950f, -0.259022265672684f, 0.072124622762203f, - -0.258694142103195f, - 0.071926333010197f, -0.258365899324417f, 0.071728296577930f, - -0.258037507534027f, - 0.071530513465405f, -0.257708936929703f, 0.071332976222038f, - -0.257380217313766f, - 0.071135692298412f, -0.257051378488541f, 0.070938661694527f, - -0.256722360849380f, - 0.070741884410381f, -0.256393194198608f, 0.070545360445976f, - -0.256063878536224f, - 0.070349089801311f, -0.255734413862228f, 0.070153072476387f, - -0.255404800176620f, - 0.069957308471203f, -0.255075037479401f, 0.069761790335178f, - -0.254745125770569f, - 0.069566532969475f, -0.254415065050125f, 0.069371521472931f, - -0.254084855318069f, - 0.069176770746708f, -0.253754496574402f, 0.068982265889645f, - -0.253423988819122f, - 0.068788021802902f, -0.253093332052231f, 0.068594031035900f, - -0.252762526273727f, - 0.068400286138058f, -0.252431541681290f, 0.068206802010536f, - -0.252100437879562f, - 0.068013571202755f, -0.251769185066223f, 0.067820593714714f, - -0.251437783241272f, - 0.067627869546413f, -0.251106232404709f, 0.067435398697853f, - -0.250774532556534f, - 0.067243188619614f, -0.250442683696747f, 0.067051224410534f, - -0.250110685825348f, - 0.066859520971775f, -0.249778553843498f, 0.066668070852757f, - -0.249446272850037f, - 0.066476874053478f, -0.249113827943802f, 0.066285938024521f, - -0.248781248927116f, - 0.066095255315304f, -0.248448520898819f, 0.065904818475246f, - -0.248115643858910f, - 0.065714649856091f, -0.247782632708550f, 0.065524727106094f, - -0.247449472546577f, - 0.065335065126419f, -0.247116148471832f, 0.065145656466484f, - -0.246782705187798f, - 0.064956501126289f, -0.246449097990990f, 0.064767606556416f, - -0.246115356683731f, - 0.064578965306282f, -0.245781451463699f, 0.064390584826469f, - -0.245447427034378f, - 0.064202457666397f, -0.245113238692284f, 0.064014583826065f, - -0.244778916239738f, - 0.063826970756054f, -0.244444444775581f, 0.063639611005783f, - -0.244109839200974f, - 0.063452512025833f, -0.243775084614754f, 0.063265666365623f, - -0.243440181016922f, - 0.063079081475735f, -0.243105143308640f, 0.062892749905586f, - -0.242769956588745f, - 0.062706671655178f, -0.242434620857239f, 0.062520854175091f, - -0.242099151015282f, - 0.062335297465324f, -0.241763532161713f, 0.062149997800589f, - -0.241427779197693f, - 0.061964951455593f, -0.241091892123222f, 0.061780165880919f, - -0.240755841135979f, - 0.061595637351274f, -0.240419670939446f, 0.061411365866661f, - -0.240083336830139f, - 0.061227355152369f, -0.239746883511543f, 0.061043601483107f, - -0.239410281181335f, - 0.060860104858875f, -0.239073529839516f, 0.060676865279675f, - -0.238736644387245f, - 0.060493886470795f, -0.238399609923363f, 0.060311164706945f, - -0.238062441349030f, - 0.060128703713417f, -0.237725138664246f, 0.059946499764919f, - -0.237387686967850f, - 0.059764556586742f, -0.237050101161003f, 0.059582870453596f, - -0.236712381243706f, - 0.059401445090771f, -0.236374512314796f, 0.059220276772976f, - -0.236036509275436f, - 0.059039369225502f, -0.235698372125626f, 0.058858718723059f, - -0.235360085964203f, - 0.058678328990936f, -0.235021665692329f, 0.058498200029135f, - -0.234683111310005f, - 0.058318331837654f, -0.234344407916069f, 0.058138720691204f, - -0.234005570411682f, - 0.057959370315075f, -0.233666598796844f, 0.057780280709267f, - -0.233327493071556f, - 0.057601451873779f, -0.232988253235817f, 0.057422880083323f, - -0.232648864388466f, - 0.057244572788477f, -0.232309341430664f, 0.057066522538662f, - -0.231969684362412f, - 0.056888736784458f, -0.231629893183708f, 0.056711208075285f, - -0.231289967894554f, - 0.056533940136433f, -0.230949893593788f, 0.056356932967901f, - -0.230609700083733f, - 0.056180190294981f, -0.230269357562065f, 0.056003704667091f, - -0.229928880929947f, - 0.055827483534813f, -0.229588270187378f, 0.055651523172855f, - -0.229247525334358f, - 0.055475823581219f, -0.228906646370888f, 0.055300384759903f, - -0.228565633296967f, - 0.055125206708908f, -0.228224486112595f, 0.054950293153524f, - -0.227883204817772f, - 0.054775636643171f, -0.227541789412498f, 0.054601248353720f, - -0.227200239896774f, - 0.054427117109299f, -0.226858556270599f, 0.054253250360489f, - -0.226516738533974f, - 0.054079644382000f, -0.226174786686897f, 0.053906302899122f, - -0.225832715630531f, - 0.053733222186565f, -0.225490495562553f, 0.053560405969620f, - -0.225148141384125f, - 0.053387850522995f, -0.224805667996407f, 0.053215555846691f, - -0.224463045597076f, - 0.053043525665998f, -0.224120303988457f, 0.052871759980917f, - -0.223777428269386f, - 0.052700258791447f, -0.223434418439865f, 0.052529018372297f, - -0.223091274499893f, - 0.052358038723469f, -0.222748011350632f, 0.052187327295542f, - -0.222404599189758f, - 0.052016876637936f, -0.222061067819595f, 0.051846686750650f, - -0.221717402338982f, - 0.051676765084267f, -0.221373617649078f, 0.051507104188204f, - -0.221029683947563f, - 0.051337707787752f, -0.220685631036758f, 0.051168579608202f, - -0.220341444015503f, - 0.050999708473682f, -0.219997137784958f, 0.050831105560064f, - -0.219652697443962f, - 0.050662767142057f, -0.219308122992516f, 0.050494693219662f, - -0.218963414430618f, - 0.050326880067587f, -0.218618586659431f, 0.050159335136414f, - -0.218273624777794f, - 0.049992054700851f, -0.217928543686867f, 0.049825038760900f, - -0.217583328485489f, - 0.049658283591270f, -0.217237979173660f, 0.049491796642542f, - -0.216892510652542f, - 0.049325577914715f, -0.216546908020973f, 0.049159619957209f, - -0.216201186180115f, - 0.048993926495314f, -0.215855330228806f, 0.048828501254320f, - -0.215509355068207f, - 0.048663340508938f, -0.215163245797157f, 0.048498444259167f, - -0.214817002415657f, - 0.048333816230297f, -0.214470639824867f, 0.048169452697039f, - -0.214124158024788f, - 0.048005353659391f, -0.213777542114258f, 0.047841522842646f, - -0.213430806994438f, - 0.047677956521511f, -0.213083937764168f, 0.047514654695988f, - -0.212736949324608f, - 0.047351621091366f, -0.212389841675758f, 0.047188851982355f, - -0.212042599916458f, - 0.047026351094246f, -0.211695238947868f, 0.046864114701748f, - -0.211347743868828f, - 0.046702146530151f, -0.211000129580498f, 0.046540446579456f, - -0.210652396082878f, - 0.046379011124372f, -0.210304543375969f, 0.046217843890190f, - -0.209956556558609f, - 0.046056941151619f, -0.209608450531960f, 0.045896306633949f, - -0.209260210394859f, - 0.045735940337181f, -0.208911851048470f, 0.045575842261314f, - -0.208563387393951f, - 0.045416008681059f, -0.208214774727821f, 0.045256443321705f, - -0.207866057753563f, - 0.045097146183252f, -0.207517206668854f, 0.044938117265701f, - -0.207168251276016f, - 0.044779352843761f, -0.206819161772728f, 0.044620860368013f, - -0.206469938158989f, - 0.044462632387877f, -0.206120610237122f, 0.044304672628641f, - -0.205771163105965f, - 0.044146984815598f, -0.205421581864357f, 0.043989561498165f, - -0.205071896314621f, - 0.043832406401634f, -0.204722076654434f, 0.043675523251295f, - -0.204372137784958f, - 0.043518904596567f, -0.204022079706192f, 0.043362557888031f, - -0.203671902418137f, - 0.043206475675106f, -0.203321605920792f, 0.043050665408373f, - -0.202971190214157f, - 0.042895123362541f, -0.202620655298233f, 0.042739849537611f, - -0.202270001173019f, - 0.042584843933582f, -0.201919227838516f, 0.042430106550455f, - -0.201568335294724f, - 0.042275641113520f, -0.201217323541641f, 0.042121443897486f, - -0.200866192579269f, - 0.041967518627644f, -0.200514942407608f, 0.041813857853413f, - -0.200163587927818f, - 0.041660469025373f, -0.199812099337578f, 0.041507352143526f, - -0.199460506439209f, - 0.041354499757290f, -0.199108779430389f, 0.041201923042536f, - -0.198756948113441f, - 0.041049610823393f, -0.198404997587204f, 0.040897574275732f, - -0.198052927851677f, - 0.040745802223682f, -0.197700738906860f, 0.040594302117825f, - -0.197348430752754f, - 0.040443073958158f, -0.196996018290520f, 0.040292114019394f, - -0.196643486618996f, - 0.040141426026821f, -0.196290835738182f, 0.039991009980440f, - -0.195938065648079f, - 0.039840862154961f, -0.195585191249847f, 0.039690986275673f, - -0.195232197642326f, - 0.039541378617287f, -0.194879084825516f, 0.039392042905092f, - -0.194525867700577f, - 0.039242979139090f, -0.194172516465187f, 0.039094187319279f, - -0.193819075822830f, - 0.038945667445660f, -0.193465501070023f, 0.038797415792942f, - -0.193111822009087f, - 0.038649436086416f, -0.192758023738861f, 0.038501728326082f, - -0.192404121160507f, - 0.038354292511940f, -0.192050099372864f, 0.038207128643990f, - -0.191695958375931f, - 0.038060232996941f, -0.191341713070869f, 0.037913613021374f, - -0.190987363457680f, - 0.037767261266708f, -0.190632879734039f, 0.037621185183525f, - -0.190278306603432f, - 0.037475381046534f, -0.189923599362373f, 0.037329845130444f, - -0.189568802714348f, - 0.037184584885836f, -0.189213871955872f, 0.037039596587420f, - -0.188858851790428f, - 0.036894880235195f, -0.188503712415695f, 0.036750435829163f, - -0.188148453831673f, - 0.036606263369322f, -0.187793090939522f, 0.036462362855673f, - -0.187437608838081f, - 0.036318738013506f, -0.187082037329674f, 0.036175385117531f, - -0.186726331710815f, - 0.036032304167747f, -0.186370536684990f, 0.035889495164156f, - -0.186014622449875f, - 0.035746958106756f, -0.185658603906631f, 0.035604696720839f, - -0.185302466154099f, - 0.035462711006403f, -0.184946224093437f, 0.035320993512869f, - -0.184589877724648f, - 0.035179551690817f, -0.184233412146568f, 0.035038381814957f, - -0.183876842260361f, - 0.034897487610579f, -0.183520168066025f, 0.034756865352392f, - -0.183163389563560f, - 0.034616518765688f, -0.182806491851807f, 0.034476444125175f, - -0.182449504733086f, - 0.034336645156145f, -0.182092398405075f, 0.034197118133307f, - -0.181735187768936f, - 0.034057866781950f, -0.181377857923508f, 0.033918887376785f, - -0.181020438671112f, - 0.033780183643103f, -0.180662900209427f, 0.033641755580902f, - -0.180305257439613f, - 0.033503599464893f, -0.179947525262833f, 0.033365719020367f, - -0.179589673876762f, - 0.033228114247322f, -0.179231703281403f, 0.033090781420469f, - -0.178873643279076f, - 0.032953724265099f, -0.178515478968620f, 0.032816942781210f, - -0.178157210350037f, - 0.032680433243513f, -0.177798837423325f, 0.032544203102589f, - -0.177440345287323f, - 0.032408244907856f, -0.177081763744354f, 0.032272562384605f, - -0.176723077893257f, - 0.032137155532837f, -0.176364272832870f, 0.032002024352551f, - -0.176005378365517f, - 0.031867165118456f, -0.175646379590034f, 0.031732585281134f, - -0.175287276506424f, - 0.031598277390003f, -0.174928069114685f, 0.031464248895645f, - -0.174568757414818f, - 0.031330492347479f, -0.174209341406822f, 0.031197015196085f, - -0.173849821090698f, - 0.031063811853528f, -0.173490211367607f, 0.030930884182453f, - -0.173130482435226f, - 0.030798232182860f, -0.172770664095879f, 0.030665857717395f, - -0.172410741448402f, - 0.030533758923411f, -0.172050714492798f, 0.030401935800910f, - -0.171690583229065f, - 0.030270388349891f, -0.171330362558365f, 0.030139118432999f, - -0.170970037579536f, - 0.030008124187589f, -0.170609608292580f, 0.029877405613661f, - -0.170249074697495f, - 0.029746964573860f, -0.169888436794281f, 0.029616801068187f, - -0.169527709484100f, - 0.029486913233995f, -0.169166877865791f, 0.029357301071286f, - -0.168805956840515f, - 0.029227968305349f, -0.168444931507111f, 0.029098909348249f, - -0.168083801865578f, - 0.028970129787922f, -0.167722567915916f, 0.028841627761722f, - -0.167361244559288f, - 0.028713401407003f, -0.166999831795692f, 0.028585452586412f, - -0.166638299822807f, - 0.028457781299949f, -0.166276678442955f, 0.028330387547612f, - -0.165914967656136f, - 0.028203271329403f, -0.165553152561188f, 0.028076432645321f, - -0.165191248059273f, - 0.027949871495366f, -0.164829224348068f, 0.027823587879539f, - -0.164467126131058f, - 0.027697581797838f, -0.164104923605919f, 0.027571853250265f, - -0.163742616772652f, - 0.027446404099464f, -0.163380220532417f, 0.027321230620146f, - -0.163017734885216f, - 0.027196336537600f, -0.162655144929886f, 0.027071721851826f, - -0.162292465567589f, - 0.026947384700179f, -0.161929681897163f, 0.026823325082660f, - -0.161566808819771f, - 0.026699542999268f, -0.161203846335411f, 0.026576040312648f, - -0.160840779542923f, - 0.026452817022800f, -0.160477623343468f, 0.026329871267080f, - -0.160114362835884f, - 0.026207204908133f, -0.159751012921333f, 0.026084816083312f, - -0.159387573599815f, - 0.025962706655264f, -0.159024044871330f, 0.025840876623988f, - -0.158660411834717f, - 0.025719324126840f, -0.158296689391136f, 0.025598052889109f, - -0.157932877540588f, - 0.025477059185505f, -0.157568961381912f, 0.025356344878674f, - -0.157204970717430f, - 0.025235909968615f, -0.156840875744820f, 0.025115754455328f, - -0.156476691365242f, - 0.024995878338814f, -0.156112402677536f, 0.024876279756427f, - -0.155748039484024f, - 0.024756962433457f, -0.155383571982384f, 0.024637924507260f, - -0.155019029974937f, - 0.024519165977836f, -0.154654383659363f, 0.024400688707829f, - -0.154289647936821f, - 0.024282488971949f, -0.153924822807312f, 0.024164570495486f, - -0.153559908270836f, - 0.024046931415796f, -0.153194904327393f, 0.023929571732879f, - -0.152829796075821f, - 0.023812493309379f, -0.152464613318443f, 0.023695694282651f, - -0.152099341154099f, - 0.023579176515341f, -0.151733979582787f, 0.023462938144803f, - -0.151368513703346f, - 0.023346979171038f, -0.151002973318100f, 0.023231301456690f, - -0.150637343525887f, - 0.023115905001760f, -0.150271624326706f, 0.023000787943602f, - -0.149905815720558f, - 0.022885952144861f, -0.149539917707443f, 0.022771397605538f, - -0.149173930287361f, - 0.022657122462988f, -0.148807853460312f, 0.022543128579855f, - -0.148441687226295f, - 0.022429415956140f, -0.148075446486473f, 0.022315984591842f, - -0.147709101438522f, - 0.022202832624316f, -0.147342681884766f, 0.022089963778853f, - -0.146976172924042f, - 0.021977374330163f, -0.146609574556351f, 0.021865066140890f, - -0.146242901682854f, - 0.021753041073680f, -0.145876124501228f, 0.021641295403242f, - -0.145509272813797f, - 0.021529832854867f, -0.145142331719399f, 0.021418649703264f, - -0.144775316119194f, - 0.021307749673724f, -0.144408211112022f, 0.021197130903602f, - -0.144041016697884f, - 0.021086793392897f, -0.143673732876778f, 0.020976737141609f, - -0.143306359648705f, - 0.020866964012384f, -0.142938911914825f, 0.020757472142577f, - -0.142571389675140f, - 0.020648263394833f, -0.142203763127327f, 0.020539334043860f, - -0.141836062073708f, - 0.020430689677596f, -0.141468286514282f, 0.020322324708104f, - -0.141100421547890f, - 0.020214242860675f, -0.140732467174530f, 0.020106444135308f, - -0.140364438295364f, - 0.019998926669359f, -0.139996320009232f, 0.019891692325473f, - -0.139628127217293f, - 0.019784741103649f, -0.139259845018387f, 0.019678071141243f, - -0.138891488313675f, - 0.019571684300900f, -0.138523042201996f, 0.019465578719974f, - -0.138154521584511f, - 0.019359756261110f, -0.137785911560059f, 0.019254218786955f, - -0.137417227029800f, - 0.019148962572217f, -0.137048453092575f, 0.019043987616897f, - -0.136679604649544f, - 0.018939297646284f, -0.136310681700706f, 0.018834890797734f, - -0.135941669344902f, - 0.018730765208602f, -0.135572582483292f, 0.018626924604177f, - -0.135203406214714f, - 0.018523367121816f, -0.134834155440331f, 0.018420090898871f, - -0.134464830160141f, - 0.018317099660635f, -0.134095430374146f, 0.018214391544461f, - -0.133725941181183f, - 0.018111966550350f, -0.133356377482414f, 0.018009826540947f, - -0.132986739277840f, - 0.017907967790961f, -0.132617011666298f, 0.017806394025683f, - -0.132247209548950f, - 0.017705103382468f, -0.131877332925797f, 0.017604095861316f, - -0.131507381796837f, - 0.017503373324871f, -0.131137356162071f, 0.017402933910489f, - -0.130767241120338f, - 0.017302779480815f, -0.130397051572800f, 0.017202908173203f, - -0.130026802420616f, - 0.017103319987655f, -0.129656463861465f, 0.017004016786814f, - -0.129286035895348f, - 0.016904998570681f, -0.128915548324585f, 0.016806263476610f, - -0.128544986248016f, - 0.016707813367248f, -0.128174334764481f, 0.016609646379948f, - -0.127803623676300f, - 0.016511764377356f, -0.127432823181152f, 0.016414167359471f, - -0.127061963081360f, - 0.016316853463650f, -0.126691013574600f, 0.016219824552536f, - -0.126320004463196f, - 0.016123080626130f, -0.125948905944824f, 0.016026621684432f, - -0.125577747821808f, - 0.015930447727442f, -0.125206500291824f, 0.015834558755159f, - -0.124835193157196f, - 0.015738952904940f, -0.124463804066181f, 0.015643632039428f, - -0.124092340469360f, - 0.015548598021269f, -0.123720809817314f, 0.015453847125173f, - -0.123349204659462f, - 0.015359382145107f, -0.122977524995804f, 0.015265202149749f, - -0.122605770826340f, - 0.015171307139099f, -0.122233949601650f, 0.015077698044479f, - -0.121862053871155f, - 0.014984373003244f, -0.121490091085434f, 0.014891333878040f, - -0.121118053793907f, - 0.014798580668867f, -0.120745941996574f, 0.014706112444401f, - -0.120373763144016f, - 0.014613929204643f, -0.120001509785652f, 0.014522032812238f, - -0.119629189372063f, - 0.014430420473218f, -0.119256794452667f, 0.014339094981551f, - -0.118884332478046f, - 0.014248054474592f, -0.118511803448200f, 0.014157299883664f, - -0.118139199912548f, - 0.014066831208766f, -0.117766529321671f, 0.013976648449898f, - -0.117393791675568f, - 0.013886751607060f, -0.117020979523659f, 0.013797140680254f, - -0.116648100316525f, - 0.013707815669477f, -0.116275154054165f, 0.013618776574731f, - -0.115902140736580f, - 0.013530024327338f, -0.115529052913189f, 0.013441557064652f, - -0.115155905485153f, - 0.013353376649320f, -0.114782683551311f, 0.013265483081341f, - -0.114409394562244f, - 0.013177875429392f, -0.114036038517952f, 0.013090553693473f, - -0.113662622869015f, - 0.013003518804908f, -0.113289132714272f, 0.012916770763695f, - -0.112915575504303f, - 0.012830308638513f, -0.112541958689690f, 0.012744133360684f, - -0.112168267369270f, - 0.012658244930208f, -0.111794516444206f, 0.012572642415762f, - -0.111420698463917f, - 0.012487327679992f, -0.111046813428402f, 0.012402298860252f, - -0.110672861337662f, - 0.012317557819188f, -0.110298842191696f, 0.012233102694154f, - -0.109924763441086f, - 0.012148935347795f, -0.109550617635250f, 0.012065053917468f, - -0.109176412224770f, - 0.011981460265815f, -0.108802139759064f, 0.011898153461516f, - -0.108427800238132f, - 0.011815134435892f, -0.108053401112556f, 0.011732402257621f, - -0.107678934931755f, - 0.011649956926703f, -0.107304409146309f, 0.011567799374461f, - -0.106929816305637f, - 0.011485928669572f, -0.106555156409740f, 0.011404345743358f, - -0.106180444359779f, - 0.011323049664497f, -0.105805665254593f, 0.011242041364312f, - -0.105430819094181f, - 0.011161320842803f, -0.105055920779705f, 0.011080888099968f, - -0.104680955410004f, - 0.011000742204487f, -0.104305922985077f, 0.010920885019004f, - -0.103930838406086f, - 0.010841314680874f, -0.103555686771870f, 0.010762032121420f, - -0.103180475533009f, - 0.010683037340641f, -0.102805204689503f, 0.010604331269860f, - -0.102429874241352f, - 0.010525912046432f, -0.102054484188557f, 0.010447781533003f, - -0.101679034531116f, - 0.010369938798249f, -0.101303517818451f, 0.010292383842170f, - -0.100927948951721f, - 0.010215117596090f, -0.100552320480347f, 0.010138138197362f, - -0.100176624953747f, - 0.010061448439956f, -0.099800877273083f, 0.009985045529902f, - -0.099425069987774f, - 0.009908932261169f, -0.099049203097820f, 0.009833106771111f, - -0.098673284053802f, - 0.009757569059730f, -0.098297297954559f, 0.009682320058346f, - -0.097921259701252f, - 0.009607359766960f, -0.097545161843300f, 0.009532688185573f, - -0.097169004380703f, - 0.009458304382861f, -0.096792794764042f, 0.009384209290147f, - -0.096416525542736f, - 0.009310402907431f, -0.096040196716785f, 0.009236886166036f, - -0.095663815736771f, - 0.009163657203317f, -0.095287375152111f, 0.009090716950595f, - -0.094910882413387f, - 0.009018065407872f, -0.094534330070019f, 0.008945702575147f, - -0.094157725572586f, - 0.008873629383743f, -0.093781061470509f, 0.008801844902337f, - -0.093404345214367f, - 0.008730349130929f, -0.093027576804161f, 0.008659142069519f, - -0.092650748789310f, - 0.008588224649429f, -0.092273868620396f, 0.008517595939338f, - -0.091896936297417f, - 0.008447255939245f, -0.091519944369793f, 0.008377205580473f, - -0.091142900288105f, - 0.008307444863021f, -0.090765804052353f, 0.008237972855568f, - -0.090388655662537f, - 0.008168790489435f, -0.090011447668076f, 0.008099896833301f, - -0.089634194970131f, - 0.008031292818487f, -0.089256882667542f, 0.007962978444993f, - -0.088879525661469f, - 0.007894953712821f, -0.088502109050751f, 0.007827218621969f, - -0.088124647736549f, - 0.007759772241116f, -0.087747126817703f, 0.007692615967244f, - -0.087369553744793f, - 0.007625748869032f, -0.086991935968399f, 0.007559171877801f, - -0.086614266037941f, - 0.007492884527892f, -0.086236543953419f, 0.007426886819303f, - -0.085858769714832f, - 0.007361178752035f, -0.085480943322182f, 0.007295760791749f, - -0.085103072226048f, - 0.007230632472783f, -0.084725148975849f, 0.007165793795139f, - -0.084347173571587f, - 0.007101245224476f, -0.083969146013260f, 0.007036986760795f, - -0.083591073751450f, - 0.006973018404096f, -0.083212949335575f, 0.006909339688718f, - -0.082834780216217f, - 0.006845951545984f, -0.082456558942795f, 0.006782853044569f, - -0.082078292965889f, - 0.006720044650137f, -0.081699974834919f, 0.006657526828349f, - -0.081321612000465f, - 0.006595299113542f, -0.080943197011948f, 0.006533361505717f, - -0.080564737319946f, - 0.006471714470536f, -0.080186225473881f, 0.006410357542336f, - -0.079807676374912f, - 0.006349290721118f, -0.079429075121880f, 0.006288514938205f, - -0.079050421714783f, - 0.006228029262275f, -0.078671731054783f, 0.006167833693326f, - -0.078292988240719f, - 0.006107929162681f, -0.077914200723171f, 0.006048315204680f, - -0.077535368502140f, - 0.005988991353661f, -0.077156484127045f, 0.005929958540946f, - -0.076777562499046f, - 0.005871216300875f, -0.076398596167564f, 0.005812764633447f, - -0.076019577682018f, - 0.005754603538662f, -0.075640521943569f, 0.005696733482182f, - -0.075261414051056f, - 0.005639153998345f, -0.074882268905640f, 0.005581865552813f, - -0.074503071606159f, - 0.005524867679924f, -0.074123837053776f, 0.005468160845339f, - -0.073744557797909f, - 0.005411745049059f, -0.073365233838558f, 0.005355620291084f, - -0.072985872626305f, - 0.005299786105752f, -0.072606459259987f, 0.005244242958724f, - -0.072227008640766f, - 0.005188991315663f, -0.071847513318062f, 0.005134030245245f, - -0.071467980742455f, - 0.005079360678792f, -0.071088403463364f, 0.005024982150644f, - -0.070708781480789f, - 0.004970894660801f, -0.070329122245312f, 0.004917098674923f, - -0.069949418306351f, - 0.004863593727350f, -0.069569669663906f, 0.004810380283743f, - -0.069189883768559f, - 0.004757457878441f, -0.068810060620308f, 0.004704826977104f, - -0.068430192768574f, - 0.004652487114072f, -0.068050287663937f, 0.004600439220667f, - -0.067670337855816f, - 0.004548682365566f, -0.067290350794792f, 0.004497217014432f, - -0.066910326480865f, - 0.004446043167263f, -0.066530264914036f, 0.004395160824060f, - -0.066150158643723f, - 0.004344569984823f, -0.065770015120506f, 0.004294271115214f, - -0.065389834344387f, - 0.004244263283908f, -0.065009608864784f, 0.004194547422230f, - -0.064629353582859f, - 0.004145123064518f, -0.064249053597450f, 0.004095990676433f, - -0.063868723809719f, - 0.004047149792314f, -0.063488349318504f, 0.003998600877821f, - -0.063107937574387f, - 0.003950343467295f, -0.062727488577366f, 0.003902378026396f, - -0.062347009778023f, - 0.003854704322293f, -0.061966486275196f, 0.003807322587818f, - -0.061585929244757f, - 0.003760232590139f, -0.061205338686705f, 0.003713434794918f, - -0.060824707150459f, - 0.003666928736493f, -0.060444042086601f, 0.003620714880526f, - -0.060063343495131f, - 0.003574792761356f, -0.059682607650757f, 0.003529162844643f, - -0.059301838278770f, - 0.003483824897557f, -0.058921031653881f, 0.003438779152930f, - -0.058540191501379f, - 0.003394025377929f, -0.058159314095974f, 0.003349563805386f, - -0.057778406888247f, - 0.003305394435301f, -0.057397462427616f, 0.003261517267674f, - -0.057016488164663f, - 0.003217932302505f, -0.056635476648808f, 0.003174639539793f, - -0.056254431605339f, - 0.003131638979539f, -0.055873356759548f, 0.003088930854574f, - -0.055492244660854f, - 0.003046514932066f, -0.055111102759838f, 0.003004391444847f, - -0.054729927331209f, - 0.002962560392916f, -0.054348722100258f, 0.002921021543443f, - -0.053967483341694f, - 0.002879775362089f, -0.053586211055517f, 0.002838821383193f, - -0.053204908967018f, - 0.002798160072416f, -0.052823577076197f, 0.002757790964097f, - -0.052442211657763f, - 0.002717714523897f, -0.052060816437006f, 0.002677930751815f, - -0.051679391413927f, - 0.002638439415023f, -0.051297932863235f, 0.002599240746349f, - -0.050916448235512f, - 0.002560334512964f, -0.050534930080175f, 0.002521721180528f, - -0.050153385847807f, - 0.002483400283381f, -0.049771808087826f, 0.002445372054353f, - -0.049390204250813f, - 0.002407636726275f, -0.049008570611477f, 0.002370193833485f, - -0.048626907169819f, - 0.002333043841645f, -0.048245213925838f, 0.002296186750755f, - -0.047863494604826f, - 0.002259622327983f, -0.047481749206781f, 0.002223350573331f, - -0.047099970281124f, - 0.002187371719629f, -0.046718169003725f, 0.002151685766876f, - -0.046336337924004f, - 0.002116292715073f, -0.045954477041960f, 0.002081192564219f, - -0.045572593808174f, - 0.002046385314316f, -0.045190680772066f, 0.002011870965362f, - -0.044808741658926f, - 0.001977649517357f, -0.044426776468754f, 0.001943721086718f, - -0.044044785201550f, - 0.001910085673444f, -0.043662767857313f, 0.001876743277535f, - -0.043280724436045f, - 0.001843693898991f, -0.042898654937744f, 0.001810937537812f, - -0.042516563087702f, - 0.001778474310413f, -0.042134445160627f, 0.001746304216795f, - -0.041752301156521f, - 0.001714427140541f, -0.041370131075382f, 0.001682843198068f, - -0.040987938642502f, - 0.001651552389376f, -0.040605723857880f, 0.001620554830879f, - -0.040223482996225f, - 0.001589850406162f, -0.039841219782829f, 0.001559439115226f, - -0.039458930492401f, - 0.001529321074486f, -0.039076622575521f, 0.001499496400356f, - -0.038694288581610f, - 0.001469964860007f, -0.038311932235956f, 0.001440726569854f, - -0.037929553538561f, - 0.001411781646311f, -0.037547148764133f, 0.001383129972965f, - -0.037164725363255f, - 0.001354771666229f, -0.036782283335924f, 0.001326706726104f, - -0.036399815231562f, - 0.001298935036175f, -0.036017324775457f, 0.001271456829272f, - -0.035634815692902f, - 0.001244271872565f, -0.035252287983894f, 0.001217380515300f, - -0.034869734197855f, - 0.001190782408230f, -0.034487165510654f, 0.001164477784187f, - -0.034104570746422f, - 0.001138466643170f, -0.033721961081028f, 0.001112748985179f, - -0.033339329063892f, - 0.001087324810214f, -0.032956674695015f, 0.001062194118276f, - -0.032574005424976f, - 0.001037356909364f, -0.032191313803196f, 0.001012813183479f, - -0.031808607280254f, - 0.000988563057035f, -0.031425878405571f, 0.000964606530033f, - -0.031043132767081f, - 0.000940943544265f, -0.030660368502140f, 0.000917574157938f, - -0.030277585610747f, - 0.000894498312846f, -0.029894785955548f, 0.000871716125403f, - -0.029511967673898f, - 0.000849227537401f, -0.029129132628441f, 0.000827032607049f, - -0.028746278956532f, - 0.000805131276138f, -0.028363410383463f, 0.000783523661084f, - -0.027980525046587f, - 0.000762209703680f, -0.027597622945905f, 0.000741189462133f, - -0.027214704081416f, - 0.000720462878235f, -0.026831768453121f, 0.000700030010194f, - -0.026448817923665f, - 0.000679890916217f, -0.026065852493048f, 0.000660045538098f, - -0.025682870298624f, - 0.000640493875835f, -0.025299875065684f, 0.000621235987637f, - -0.024916863068938f, - 0.000602271873504f, -0.024533838033676f, 0.000583601591643f, - -0.024150796234608f, - 0.000565225025639f, -0.023767741397023f, 0.000547142291907f, - -0.023384673520923f, - 0.000529353390448f, -0.023001590743661f, 0.000511858321261f, - -0.022618494927883f, - 0.000494657084346f, -0.022235386073589f, 0.000477749679703f, - -0.021852264180779f, - 0.000461136136437f, -0.021469129249454f, 0.000444816454547f, - -0.021085981279612f, - 0.000428790634032f, -0.020702820271254f, 0.000413058703998f, - -0.020319648087025f, - 0.000397620693548f, -0.019936462864280f, 0.000382476573577f, - -0.019553268328309f, - 0.000367626344087f, -0.019170060753822f, 0.000353070063284f, - -0.018786842003465f, - 0.000338807702065f, -0.018403612077236f, 0.000324839289533f, - -0.018020370975137f, - 0.000311164796585f, -0.017637118697166f, 0.000297784281429f, - -0.017253857105970f, - 0.000284697714960f, -0.016870586201549f, 0.000271905126283f, - -0.016487304121256f, - 0.000259406515397f, -0.016104012727737f, 0.000247201882303f, - -0.015720712020993f, - 0.000235291256104f, -0.015337402001023f, 0.000223674607696f, - -0.014954082667828f, - 0.000212351980736f, -0.014570754021406f, 0.000201323360670f, - -0.014187417924404f, - 0.000190588747500f, -0.013804072514176f, 0.000180148170330f, - -0.013420719653368f, - 0.000170001629158f, -0.013037359341979f, 0.000160149123985f, - -0.012653990648687f, - 0.000150590654812f, -0.012270614504814f, 0.000141326236189f, - -0.011887230910361f, - 0.000132355868118f, -0.011503840796649f, 0.000123679565149f, - -0.011120444163680f, - 0.000115297327284f, -0.010737040080130f, 0.000107209154521f, - -0.010353630408645f, - 0.000099415054137f, -0.009970214217901f, 0.000091915040684f, - -0.009586792439222f, - 0.000084709099610f, -0.009203365072608f, 0.000077797252743f, - -0.008819932118058f, - 0.000071179500083f, -0.008436493575573f, 0.000064855834353f, - -0.008053051307797f, - 0.000058826273744f, -0.007669602986425f, 0.000053090810979f, - -0.007286150939763f, - 0.000047649456974f, -0.006902694236487f, 0.000042502211727f, - -0.006519233807921f, - 0.000037649078877f, -0.006135769188404f, 0.000033090062061f, - -0.005752300843596f, - 0.000028825161280f, -0.005368829704821f, 0.000024854381991f, - -0.004985354840755f, - 0.000021177724193f, -0.004601877182722f, 0.000017795191525f, - -0.004218397196382f, - 0.000014706784896f, -0.003834914416075f, 0.000011912506125f, - -0.003451429307461f, - 0.000009412358850f, -0.003067942336202f, 0.000007206342616f, - -0.002684453502297f, - 0.000005294459243f, -0.002300963038579f, 0.000003676709639f, - -0.001917471294291f, - 0.000002353095169f, -0.001533978385851f, 0.000001323616516f, - -0.001150484546088f, - 0.000000588274133f, -0.000766990066040f, 0.000000147068562f, - -0.000383495149435f, - 0.000000000000000f, -0.000000000000023f, 0.000000147068562f, - 0.000383495149435f, - 0.000000588274133f, 0.000766990066040f, 0.000001323616516f, - 0.001150484546088f, - 0.000002353095169f, 0.001533978385851f, 0.000003676709639f, - 0.001917471294291f, - 0.000005294459243f, 0.002300963038579f, 0.000007206342616f, - 0.002684453502297f, - 0.000009412358850f, 0.003067942336202f, 0.000011912506125f, - 0.003451429307461f, - 0.000014706784896f, 0.003834914416075f, 0.000017795191525f, - 0.004218397196382f, - 0.000021177724193f, 0.004601877182722f, 0.000024854381991f, - 0.004985354840755f, - 0.000028825161280f, 0.005368829704821f, 0.000033090062061f, - 0.005752300843596f, - 0.000037649078877f, 0.006135769188404f, 0.000042502211727f, - 0.006519233807921f, - 0.000047649456974f, 0.006902694236487f, 0.000053090810979f, - 0.007286150939763f, - 0.000058826273744f, 0.007669602986425f, 0.000064855834353f, - 0.008053051307797f, - 0.000071179500083f, 0.008436493575573f, 0.000077797252743f, - 0.008819932118058f, - 0.000084709099610f, 0.009203365072608f, 0.000091915040684f, - 0.009586792439222f, - 0.000099415054137f, 0.009970214217901f, 0.000107209154521f, - 0.010353630408645f, - 0.000115297327284f, 0.010737040080130f, 0.000123679565149f, - 0.011120444163680f, - 0.000132355868118f, 0.011503840796649f, 0.000141326236189f, - 0.011887230910361f, - 0.000150590654812f, 0.012270614504814f, 0.000160149123985f, - 0.012653990648687f, - 0.000170001629158f, 0.013037359341979f, 0.000180148170330f, - 0.013420719653368f, - 0.000190588747500f, 0.013804072514176f, 0.000201323360670f, - 0.014187417924404f, - 0.000212351980736f, 0.014570754021406f, 0.000223674607696f, - 0.014954082667828f, - 0.000235291256104f, 0.015337402001023f, 0.000247201882303f, - 0.015720712020993f, - 0.000259406515397f, 0.016104012727737f, 0.000271905126283f, - 0.016487304121256f, - 0.000284697714960f, 0.016870586201549f, 0.000297784281429f, - 0.017253857105970f, - 0.000311164796585f, 0.017637118697166f, 0.000324839289533f, - 0.018020370975137f, - 0.000338807702065f, 0.018403612077236f, 0.000353070063284f, - 0.018786842003465f, - 0.000367626344087f, 0.019170060753822f, 0.000382476573577f, - 0.019553268328309f, - 0.000397620693548f, 0.019936462864280f, 0.000413058703998f, - 0.020319648087025f, - 0.000428790634032f, 0.020702820271254f, 0.000444816454547f, - 0.021085981279612f, - 0.000461136136437f, 0.021469129249454f, 0.000477749679703f, - 0.021852264180779f, - 0.000494657084346f, 0.022235386073589f, 0.000511858321261f, - 0.022618494927883f, - 0.000529353390448f, 0.023001590743661f, 0.000547142291907f, - 0.023384673520923f, - 0.000565225025639f, 0.023767741397023f, 0.000583601591643f, - 0.024150796234608f, - 0.000602271873504f, 0.024533838033676f, 0.000621235987637f, - 0.024916863068938f, - 0.000640493875835f, 0.025299875065684f, 0.000660045538098f, - 0.025682870298624f, - 0.000679890916217f, 0.026065852493048f, 0.000700030010194f, - 0.026448817923665f, - 0.000720462878235f, 0.026831768453121f, 0.000741189462133f, - 0.027214704081416f, - 0.000762209703680f, 0.027597622945905f, 0.000783523661084f, - 0.027980525046587f, - 0.000805131276138f, 0.028363410383463f, 0.000827032607049f, - 0.028746278956532f, - 0.000849227537401f, 0.029129132628441f, 0.000871716125403f, - 0.029511967673898f, - 0.000894498312846f, 0.029894785955548f, 0.000917574157938f, - 0.030277585610747f, - 0.000940943544265f, 0.030660368502140f, 0.000964606530033f, - 0.031043132767081f, - 0.000988563057035f, 0.031425878405571f, 0.001012813183479f, - 0.031808607280254f, - 0.001037356909364f, 0.032191313803196f, 0.001062194118276f, - 0.032574005424976f, - 0.001087324810214f, 0.032956674695015f, 0.001112748985179f, - 0.033339329063892f, - 0.001138466643170f, 0.033721961081028f, 0.001164477784187f, - 0.034104570746422f, - 0.001190782408230f, 0.034487165510654f, 0.001217380515300f, - 0.034869734197855f, - 0.001244271872565f, 0.035252287983894f, 0.001271456829272f, - 0.035634815692902f, - 0.001298935036175f, 0.036017324775457f, 0.001326706726104f, - 0.036399815231562f, - 0.001354771666229f, 0.036782283335924f, 0.001383129972965f, - 0.037164725363255f, - 0.001411781646311f, 0.037547148764133f, 0.001440726569854f, - 0.037929553538561f, - 0.001469964860007f, 0.038311932235956f, 0.001499496400356f, - 0.038694288581610f, - 0.001529321074486f, 0.039076622575521f, 0.001559439115226f, - 0.039458930492401f, - 0.001589850406162f, 0.039841219782829f, 0.001620554830879f, - 0.040223482996225f, - 0.001651552389376f, 0.040605723857880f, 0.001682843198068f, - 0.040987938642502f, - 0.001714427140541f, 0.041370131075382f, 0.001746304216795f, - 0.041752301156521f, - 0.001778474310413f, 0.042134445160627f, 0.001810937537812f, - 0.042516563087702f, - 0.001843693898991f, 0.042898654937744f, 0.001876743277535f, - 0.043280724436045f, - 0.001910085673444f, 0.043662767857313f, 0.001943721086718f, - 0.044044785201550f, - 0.001977649517357f, 0.044426776468754f, 0.002011870965362f, - 0.044808741658926f, - 0.002046385314316f, 0.045190680772066f, 0.002081192564219f, - 0.045572593808174f, - 0.002116292715073f, 0.045954477041960f, 0.002151685766876f, - 0.046336337924004f, - 0.002187371719629f, 0.046718169003725f, 0.002223350573331f, - 0.047099970281124f, - 0.002259622327983f, 0.047481749206781f, 0.002296186750755f, - 0.047863494604826f, - 0.002333043841645f, 0.048245213925838f, 0.002370193833485f, - 0.048626907169819f, - 0.002407636726275f, 0.049008570611477f, 0.002445372054353f, - 0.049390204250813f, - 0.002483400283381f, 0.049771808087826f, 0.002521721180528f, - 0.050153385847807f, - 0.002560334512964f, 0.050534930080175f, 0.002599240746349f, - 0.050916448235512f, - 0.002638439415023f, 0.051297932863235f, 0.002677930751815f, - 0.051679391413927f, - 0.002717714523897f, 0.052060816437006f, 0.002757790964097f, - 0.052442211657763f, - 0.002798160072416f, 0.052823577076197f, 0.002838821383193f, - 0.053204908967018f, - 0.002879775362089f, 0.053586211055517f, 0.002921021543443f, - 0.053967483341694f, - 0.002962560392916f, 0.054348722100258f, 0.003004391444847f, - 0.054729927331209f, - 0.003046514932066f, 0.055111102759838f, 0.003088930854574f, - 0.055492244660854f, - 0.003131638979539f, 0.055873356759548f, 0.003174639539793f, - 0.056254431605339f, - 0.003217932302505f, 0.056635476648808f, 0.003261517267674f, - 0.057016488164663f, - 0.003305394435301f, 0.057397462427616f, 0.003349563805386f, - 0.057778406888247f, - 0.003394025377929f, 0.058159314095974f, 0.003438779152930f, - 0.058540191501379f, - 0.003483824897557f, 0.058921031653881f, 0.003529162844643f, - 0.059301838278770f, - 0.003574792761356f, 0.059682607650757f, 0.003620714880526f, - 0.060063343495131f, - 0.003666928736493f, 0.060444042086601f, 0.003713434794918f, - 0.060824707150459f, - 0.003760232590139f, 0.061205338686705f, 0.003807322587818f, - 0.061585929244757f, - 0.003854704322293f, 0.061966486275196f, 0.003902378026396f, - 0.062347009778023f, - 0.003950343467295f, 0.062727488577366f, 0.003998600877821f, - 0.063107937574387f, - 0.004047149792314f, 0.063488349318504f, 0.004095990676433f, - 0.063868723809719f, - 0.004145123064518f, 0.064249053597450f, 0.004194547422230f, - 0.064629353582859f, - 0.004244263283908f, 0.065009608864784f, 0.004294271115214f, - 0.065389834344387f, - 0.004344569984823f, 0.065770015120506f, 0.004395160824060f, - 0.066150158643723f, - 0.004446043167263f, 0.066530264914036f, 0.004497217014432f, - 0.066910326480865f, - 0.004548682365566f, 0.067290350794792f, 0.004600439220667f, - 0.067670337855816f, - 0.004652487114072f, 0.068050287663937f, 0.004704826977104f, - 0.068430192768574f, - 0.004757457878441f, 0.068810060620308f, 0.004810380283743f, - 0.069189883768559f, - 0.004863593727350f, 0.069569669663906f, 0.004917098674923f, - 0.069949418306351f, - 0.004970894660801f, 0.070329122245312f, 0.005024982150644f, - 0.070708781480789f, - 0.005079360678792f, 0.071088403463364f, 0.005134030245245f, - 0.071467980742455f, - 0.005188991315663f, 0.071847513318062f, 0.005244242958724f, - 0.072227008640766f, - 0.005299786105752f, 0.072606459259987f, 0.005355620291084f, - 0.072985872626305f, - 0.005411745049059f, 0.073365233838558f, 0.005468160845339f, - 0.073744557797909f, - 0.005524867679924f, 0.074123837053776f, 0.005581865552813f, - 0.074503071606159f, - 0.005639153998345f, 0.074882268905640f, 0.005696733482182f, - 0.075261414051056f, - 0.005754603538662f, 0.075640521943569f, 0.005812764633447f, - 0.076019577682018f, - 0.005871216300875f, 0.076398596167564f, 0.005929958540946f, - 0.076777562499046f, - 0.005988991353661f, 0.077156484127045f, 0.006048315204680f, - 0.077535368502140f, - 0.006107929162681f, 0.077914200723171f, 0.006167833693326f, - 0.078292988240719f, - 0.006228029262275f, 0.078671731054783f, 0.006288514938205f, - 0.079050421714783f, - 0.006349290721118f, 0.079429075121880f, 0.006410357542336f, - 0.079807676374912f, - 0.006471714470536f, 0.080186225473881f, 0.006533361505717f, - 0.080564737319946f, - 0.006595299113542f, 0.080943197011948f, 0.006657526828349f, - 0.081321612000465f, - 0.006720044650137f, 0.081699974834919f, 0.006782853044569f, - 0.082078292965889f, - 0.006845951545984f, 0.082456558942795f, 0.006909339688718f, - 0.082834780216217f, - 0.006973018404096f, 0.083212949335575f, 0.007036986760795f, - 0.083591073751450f, - 0.007101245224476f, 0.083969146013260f, 0.007165793795139f, - 0.084347173571587f, - 0.007230632472783f, 0.084725148975849f, 0.007295760791749f, - 0.085103072226048f, - 0.007361178752035f, 0.085480943322182f, 0.007426886819303f, - 0.085858769714832f, - 0.007492884527892f, 0.086236543953419f, 0.007559171877801f, - 0.086614266037941f, - 0.007625748869032f, 0.086991935968399f, 0.007692615967244f, - 0.087369553744793f, - 0.007759772241116f, 0.087747126817703f, 0.007827218621969f, - 0.088124647736549f, - 0.007894953712821f, 0.088502109050751f, 0.007962978444993f, - 0.088879525661469f, - 0.008031292818487f, 0.089256882667542f, 0.008099896833301f, - 0.089634194970131f, - 0.008168790489435f, 0.090011447668076f, 0.008237972855568f, - 0.090388655662537f, - 0.008307444863021f, 0.090765804052353f, 0.008377205580473f, - 0.091142900288105f, - 0.008447255939245f, 0.091519944369793f, 0.008517595939338f, - 0.091896936297417f, - 0.008588224649429f, 0.092273868620396f, 0.008659142069519f, - 0.092650748789310f, - 0.008730349130929f, 0.093027576804161f, 0.008801844902337f, - 0.093404345214367f, - 0.008873629383743f, 0.093781061470509f, 0.008945702575147f, - 0.094157725572586f, - 0.009018065407872f, 0.094534330070019f, 0.009090716950595f, - 0.094910882413387f, - 0.009163657203317f, 0.095287375152111f, 0.009236886166036f, - 0.095663815736771f, - 0.009310402907431f, 0.096040196716785f, 0.009384209290147f, - 0.096416525542736f, - 0.009458304382861f, 0.096792794764042f, 0.009532688185573f, - 0.097169004380703f, - 0.009607359766960f, 0.097545161843300f, 0.009682320058346f, - 0.097921259701252f, - 0.009757569059730f, 0.098297297954559f, 0.009833106771111f, - 0.098673284053802f, - 0.009908932261169f, 0.099049203097820f, 0.009985045529902f, - 0.099425069987774f, - 0.010061448439956f, 0.099800877273083f, 0.010138138197362f, - 0.100176624953747f, - 0.010215117596090f, 0.100552320480347f, 0.010292383842170f, - 0.100927948951721f, - 0.010369938798249f, 0.101303517818451f, 0.010447781533003f, - 0.101679034531116f, - 0.010525912046432f, 0.102054484188557f, 0.010604331269860f, - 0.102429874241352f, - 0.010683037340641f, 0.102805204689503f, 0.010762032121420f, - 0.103180475533009f, - 0.010841314680874f, 0.103555686771870f, 0.010920885019004f, - 0.103930838406086f, - 0.011000742204487f, 0.104305922985077f, 0.011080888099968f, - 0.104680955410004f, - 0.011161320842803f, 0.105055920779705f, 0.011242041364312f, - 0.105430819094181f, - 0.011323049664497f, 0.105805665254593f, 0.011404345743358f, - 0.106180444359779f, - 0.011485928669572f, 0.106555156409740f, 0.011567799374461f, - 0.106929816305637f, - 0.011649956926703f, 0.107304409146309f, 0.011732402257621f, - 0.107678934931755f, - 0.011815134435892f, 0.108053401112556f, 0.011898153461516f, - 0.108427800238132f, - 0.011981460265815f, 0.108802139759064f, 0.012065053917468f, - 0.109176412224770f, - 0.012148935347795f, 0.109550617635250f, 0.012233102694154f, - 0.109924763441086f, - 0.012317557819188f, 0.110298842191696f, 0.012402298860252f, - 0.110672861337662f, - 0.012487327679992f, 0.111046813428402f, 0.012572642415762f, - 0.111420698463917f, - 0.012658244930208f, 0.111794516444206f, 0.012744133360684f, - 0.112168267369270f, - 0.012830308638513f, 0.112541958689690f, 0.012916770763695f, - 0.112915575504303f, - 0.013003518804908f, 0.113289132714272f, 0.013090553693473f, - 0.113662622869015f, - 0.013177875429392f, 0.114036038517952f, 0.013265483081341f, - 0.114409394562244f, - 0.013353376649320f, 0.114782683551311f, 0.013441557064652f, - 0.115155905485153f, - 0.013530024327338f, 0.115529052913189f, 0.013618776574731f, - 0.115902140736580f, - 0.013707815669477f, 0.116275154054165f, 0.013797140680254f, - 0.116648100316525f, - 0.013886751607060f, 0.117020979523659f, 0.013976648449898f, - 0.117393791675568f, - 0.014066831208766f, 0.117766529321671f, 0.014157299883664f, - 0.118139199912548f, - 0.014248054474592f, 0.118511803448200f, 0.014339094981551f, - 0.118884332478046f, - 0.014430420473218f, 0.119256794452667f, 0.014522032812238f, - 0.119629189372063f, - 0.014613929204643f, 0.120001509785652f, 0.014706112444401f, - 0.120373763144016f, - 0.014798580668867f, 0.120745941996574f, 0.014891333878040f, - 0.121118053793907f, - 0.014984373003244f, 0.121490091085434f, 0.015077698044479f, - 0.121862053871155f, - 0.015171307139099f, 0.122233949601650f, 0.015265202149749f, - 0.122605770826340f, - 0.015359382145107f, 0.122977524995804f, 0.015453847125173f, - 0.123349204659462f, - 0.015548598021269f, 0.123720809817314f, 0.015643632039428f, - 0.124092340469360f, - 0.015738952904940f, 0.124463804066181f, 0.015834558755159f, - 0.124835193157196f, - 0.015930447727442f, 0.125206500291824f, 0.016026621684432f, - 0.125577747821808f, - 0.016123080626130f, 0.125948905944824f, 0.016219824552536f, - 0.126320004463196f, - 0.016316853463650f, 0.126691013574600f, 0.016414167359471f, - 0.127061963081360f, - 0.016511764377356f, 0.127432823181152f, 0.016609646379948f, - 0.127803623676300f, - 0.016707813367248f, 0.128174334764481f, 0.016806263476610f, - 0.128544986248016f, - 0.016904998570681f, 0.128915548324585f, 0.017004016786814f, - 0.129286035895348f, - 0.017103319987655f, 0.129656463861465f, 0.017202908173203f, - 0.130026802420616f, - 0.017302779480815f, 0.130397051572800f, 0.017402933910489f, - 0.130767241120338f, - 0.017503373324871f, 0.131137356162071f, 0.017604095861316f, - 0.131507381796837f, - 0.017705103382468f, 0.131877332925797f, 0.017806394025683f, - 0.132247209548950f, - 0.017907967790961f, 0.132617011666298f, 0.018009826540947f, - 0.132986739277840f, - 0.018111966550350f, 0.133356377482414f, 0.018214391544461f, - 0.133725941181183f, - 0.018317099660635f, 0.134095430374146f, 0.018420090898871f, - 0.134464830160141f, - 0.018523367121816f, 0.134834155440331f, 0.018626924604177f, - 0.135203406214714f, - 0.018730765208602f, 0.135572582483292f, 0.018834890797734f, - 0.135941669344902f, - 0.018939297646284f, 0.136310681700706f, 0.019043987616897f, - 0.136679604649544f, - 0.019148962572217f, 0.137048453092575f, 0.019254218786955f, - 0.137417227029800f, - 0.019359756261110f, 0.137785911560059f, 0.019465578719974f, - 0.138154521584511f, - 0.019571684300900f, 0.138523042201996f, 0.019678071141243f, - 0.138891488313675f, - 0.019784741103649f, 0.139259845018387f, 0.019891692325473f, - 0.139628127217293f, - 0.019998926669359f, 0.139996320009232f, 0.020106444135308f, - 0.140364438295364f, - 0.020214242860675f, 0.140732467174530f, 0.020322324708104f, - 0.141100421547890f, - 0.020430689677596f, 0.141468286514282f, 0.020539334043860f, - 0.141836062073708f, - 0.020648263394833f, 0.142203763127327f, 0.020757472142577f, - 0.142571389675140f, - 0.020866964012384f, 0.142938911914825f, 0.020976737141609f, - 0.143306359648705f, - 0.021086793392897f, 0.143673732876778f, 0.021197130903602f, - 0.144041016697884f, - 0.021307749673724f, 0.144408211112022f, 0.021418649703264f, - 0.144775316119194f, - 0.021529832854867f, 0.145142331719399f, 0.021641295403242f, - 0.145509272813797f, - 0.021753041073680f, 0.145876124501228f, 0.021865066140890f, - 0.146242901682854f, - 0.021977374330163f, 0.146609574556351f, 0.022089963778853f, - 0.146976172924042f, - 0.022202832624316f, 0.147342681884766f, 0.022315984591842f, - 0.147709101438522f, - 0.022429415956140f, 0.148075446486473f, 0.022543128579855f, - 0.148441687226295f, - 0.022657122462988f, 0.148807853460312f, 0.022771397605538f, - 0.149173930287361f, - 0.022885952144861f, 0.149539917707443f, 0.023000787943602f, - 0.149905815720558f, - 0.023115905001760f, 0.150271624326706f, 0.023231301456690f, - 0.150637343525887f, - 0.023346979171038f, 0.151002973318100f, 0.023462938144803f, - 0.151368513703346f, - 0.023579176515341f, 0.151733979582787f, 0.023695694282651f, - 0.152099341154099f, - 0.023812493309379f, 0.152464613318443f, 0.023929571732879f, - 0.152829796075821f, - 0.024046931415796f, 0.153194904327393f, 0.024164570495486f, - 0.153559908270836f, - 0.024282488971949f, 0.153924822807312f, 0.024400688707829f, - 0.154289647936821f, - 0.024519165977836f, 0.154654383659363f, 0.024637924507260f, - 0.155019029974937f, - 0.024756962433457f, 0.155383571982384f, 0.024876279756427f, - 0.155748039484024f, - 0.024995878338814f, 0.156112402677536f, 0.025115754455328f, - 0.156476691365242f, - 0.025235909968615f, 0.156840875744820f, 0.025356344878674f, - 0.157204970717430f, - 0.025477059185505f, 0.157568961381912f, 0.025598052889109f, - 0.157932877540588f, - 0.025719324126840f, 0.158296689391136f, 0.025840876623988f, - 0.158660411834717f, - 0.025962706655264f, 0.159024044871330f, 0.026084816083312f, - 0.159387573599815f, - 0.026207204908133f, 0.159751012921333f, 0.026329871267080f, - 0.160114362835884f, - 0.026452817022800f, 0.160477623343468f, 0.026576040312648f, - 0.160840779542923f, - 0.026699542999268f, 0.161203846335411f, 0.026823325082660f, - 0.161566808819771f, - 0.026947384700179f, 0.161929681897163f, 0.027071721851826f, - 0.162292465567589f, - 0.027196336537600f, 0.162655144929886f, 0.027321230620146f, - 0.163017734885216f, - 0.027446404099464f, 0.163380220532417f, 0.027571853250265f, - 0.163742616772652f, - 0.027697581797838f, 0.164104923605919f, 0.027823587879539f, - 0.164467126131058f, - 0.027949871495366f, 0.164829224348068f, 0.028076432645321f, - 0.165191248059273f, - 0.028203271329403f, 0.165553152561188f, 0.028330387547612f, - 0.165914967656136f, - 0.028457781299949f, 0.166276678442955f, 0.028585452586412f, - 0.166638299822807f, - 0.028713401407003f, 0.166999831795692f, 0.028841627761722f, - 0.167361244559288f, - 0.028970129787922f, 0.167722567915916f, 0.029098909348249f, - 0.168083801865578f, - 0.029227968305349f, 0.168444931507111f, 0.029357301071286f, - 0.168805956840515f, - 0.029486913233995f, 0.169166877865791f, 0.029616801068187f, - 0.169527709484100f, - 0.029746964573860f, 0.169888436794281f, 0.029877405613661f, - 0.170249074697495f, - 0.030008124187589f, 0.170609608292580f, 0.030139118432999f, - 0.170970037579536f, - 0.030270388349891f, 0.171330362558365f, 0.030401935800910f, - 0.171690583229065f, - 0.030533758923411f, 0.172050714492798f, 0.030665857717395f, - 0.172410741448402f, - 0.030798232182860f, 0.172770664095879f, 0.030930884182453f, - 0.173130482435226f, - 0.031063811853528f, 0.173490211367607f, 0.031197015196085f, - 0.173849821090698f, - 0.031330492347479f, 0.174209341406822f, 0.031464248895645f, - 0.174568757414818f, - 0.031598277390003f, 0.174928069114685f, 0.031732585281134f, - 0.175287276506424f, - 0.031867165118456f, 0.175646379590034f, 0.032002024352551f, - 0.176005378365517f, - 0.032137155532837f, 0.176364272832870f, 0.032272562384605f, - 0.176723077893257f, - 0.032408244907856f, 0.177081763744354f, 0.032544203102589f, - 0.177440345287323f, - 0.032680433243513f, 0.177798837423325f, 0.032816942781210f, - 0.178157210350037f, - 0.032953724265099f, 0.178515478968620f, 0.033090781420469f, - 0.178873643279076f, - 0.033228114247322f, 0.179231703281403f, 0.033365719020367f, - 0.179589673876762f, - 0.033503599464893f, 0.179947525262833f, 0.033641755580902f, - 0.180305257439613f, - 0.033780183643103f, 0.180662900209427f, 0.033918887376785f, - 0.181020438671112f, - 0.034057866781950f, 0.181377857923508f, 0.034197118133307f, - 0.181735187768936f, - 0.034336645156145f, 0.182092398405075f, 0.034476444125175f, - 0.182449504733086f, - 0.034616518765688f, 0.182806491851807f, 0.034756865352392f, - 0.183163389563560f, - 0.034897487610579f, 0.183520168066025f, 0.035038381814957f, - 0.183876842260361f, - 0.035179551690817f, 0.184233412146568f, 0.035320993512869f, - 0.184589877724648f, - 0.035462711006403f, 0.184946224093437f, 0.035604696720839f, - 0.185302466154099f, - 0.035746958106756f, 0.185658603906631f, 0.035889495164156f, - 0.186014622449875f, - 0.036032304167747f, 0.186370536684990f, 0.036175385117531f, - 0.186726331710815f, - 0.036318738013506f, 0.187082037329674f, 0.036462362855673f, - 0.187437608838081f, - 0.036606263369322f, 0.187793090939522f, 0.036750435829163f, - 0.188148453831673f, - 0.036894880235195f, 0.188503712415695f, 0.037039596587420f, - 0.188858851790428f, - 0.037184584885836f, 0.189213871955872f, 0.037329845130444f, - 0.189568802714348f, - 0.037475381046534f, 0.189923599362373f, 0.037621185183525f, - 0.190278306603432f, - 0.037767261266708f, 0.190632879734039f, 0.037913613021374f, - 0.190987363457680f, - 0.038060232996941f, 0.191341713070869f, 0.038207128643990f, - 0.191695958375931f, - 0.038354292511940f, 0.192050099372864f, 0.038501728326082f, - 0.192404121160507f, - 0.038649436086416f, 0.192758023738861f, 0.038797415792942f, - 0.193111822009087f, - 0.038945667445660f, 0.193465501070023f, 0.039094187319279f, - 0.193819075822830f, - 0.039242979139090f, 0.194172516465187f, 0.039392042905092f, - 0.194525867700577f, - 0.039541378617287f, 0.194879084825516f, 0.039690986275673f, - 0.195232197642326f, - 0.039840862154961f, 0.195585191249847f, 0.039991009980440f, - 0.195938065648079f, - 0.040141426026821f, 0.196290835738182f, 0.040292114019394f, - 0.196643486618996f, - 0.040443073958158f, 0.196996018290520f, 0.040594302117825f, - 0.197348430752754f, - 0.040745802223682f, 0.197700738906860f, 0.040897574275732f, - 0.198052927851677f, - 0.041049610823393f, 0.198404997587204f, 0.041201923042536f, - 0.198756948113441f, - 0.041354499757290f, 0.199108779430389f, 0.041507352143526f, - 0.199460506439209f, - 0.041660469025373f, 0.199812099337578f, 0.041813857853413f, - 0.200163587927818f, - 0.041967518627644f, 0.200514942407608f, 0.042121443897486f, - 0.200866192579269f, - 0.042275641113520f, 0.201217323541641f, 0.042430106550455f, - 0.201568335294724f, - 0.042584843933582f, 0.201919227838516f, 0.042739849537611f, - 0.202270001173019f, - 0.042895123362541f, 0.202620655298233f, 0.043050665408373f, - 0.202971190214157f, - 0.043206475675106f, 0.203321605920792f, 0.043362557888031f, - 0.203671902418137f, - 0.043518904596567f, 0.204022079706192f, 0.043675523251295f, - 0.204372137784958f, - 0.043832406401634f, 0.204722076654434f, 0.043989561498165f, - 0.205071896314621f, - 0.044146984815598f, 0.205421581864357f, 0.044304672628641f, - 0.205771163105965f, - 0.044462632387877f, 0.206120610237122f, 0.044620860368013f, - 0.206469938158989f, - 0.044779352843761f, 0.206819161772728f, 0.044938117265701f, - 0.207168251276016f, - 0.045097146183252f, 0.207517206668854f, 0.045256443321705f, - 0.207866057753563f, - 0.045416008681059f, 0.208214774727821f, 0.045575842261314f, - 0.208563387393951f, - 0.045735940337181f, 0.208911851048470f, 0.045896306633949f, - 0.209260210394859f, - 0.046056941151619f, 0.209608450531960f, 0.046217843890190f, - 0.209956556558609f, - 0.046379011124372f, 0.210304543375969f, 0.046540446579456f, - 0.210652396082878f, - 0.046702146530151f, 0.211000129580498f, 0.046864114701748f, - 0.211347743868828f, - 0.047026351094246f, 0.211695238947868f, 0.047188851982355f, - 0.212042599916458f, - 0.047351621091366f, 0.212389841675758f, 0.047514654695988f, - 0.212736949324608f, - 0.047677956521511f, 0.213083937764168f, 0.047841522842646f, - 0.213430806994438f, - 0.048005353659391f, 0.213777542114258f, 0.048169452697039f, - 0.214124158024788f, - 0.048333816230297f, 0.214470639824867f, 0.048498444259167f, - 0.214817002415657f, - 0.048663340508938f, 0.215163245797157f, 0.048828501254320f, - 0.215509355068207f, - 0.048993926495314f, 0.215855330228806f, 0.049159619957209f, - 0.216201186180115f, - 0.049325577914715f, 0.216546908020973f, 0.049491796642542f, - 0.216892510652542f, - 0.049658283591270f, 0.217237979173660f, 0.049825038760900f, - 0.217583328485489f, - 0.049992054700851f, 0.217928543686867f, 0.050159335136414f, - 0.218273624777794f, - 0.050326880067587f, 0.218618586659431f, 0.050494693219662f, - 0.218963414430618f, - 0.050662767142057f, 0.219308122992516f, 0.050831105560064f, - 0.219652697443962f, - 0.050999708473682f, 0.219997137784958f, 0.051168579608202f, - 0.220341444015503f, - 0.051337707787752f, 0.220685631036758f, 0.051507104188204f, - 0.221029683947563f, - 0.051676765084267f, 0.221373617649078f, 0.051846686750650f, - 0.221717402338982f, - 0.052016876637936f, 0.222061067819595f, 0.052187327295542f, - 0.222404599189758f, - 0.052358038723469f, 0.222748011350632f, 0.052529018372297f, - 0.223091274499893f, - 0.052700258791447f, 0.223434418439865f, 0.052871759980917f, - 0.223777428269386f, - 0.053043525665998f, 0.224120303988457f, 0.053215555846691f, - 0.224463045597076f, - 0.053387850522995f, 0.224805667996407f, 0.053560405969620f, - 0.225148141384125f, - 0.053733222186565f, 0.225490495562553f, 0.053906302899122f, - 0.225832715630531f, - 0.054079644382000f, 0.226174786686897f, 0.054253250360489f, - 0.226516738533974f, - 0.054427117109299f, 0.226858556270599f, 0.054601248353720f, - 0.227200239896774f, - 0.054775636643171f, 0.227541789412498f, 0.054950293153524f, - 0.227883204817772f, - 0.055125206708908f, 0.228224486112595f, 0.055300384759903f, - 0.228565633296967f, - 0.055475823581219f, 0.228906646370888f, 0.055651523172855f, - 0.229247525334358f, - 0.055827483534813f, 0.229588270187378f, 0.056003704667091f, - 0.229928880929947f, - 0.056180190294981f, 0.230269357562065f, 0.056356932967901f, - 0.230609700083733f, - 0.056533940136433f, 0.230949893593788f, 0.056711208075285f, - 0.231289967894554f, - 0.056888736784458f, 0.231629893183708f, 0.057066522538662f, - 0.231969684362412f, - 0.057244572788477f, 0.232309341430664f, 0.057422880083323f, - 0.232648864388466f, - 0.057601451873779f, 0.232988253235817f, 0.057780280709267f, - 0.233327493071556f, - 0.057959370315075f, 0.233666598796844f, 0.058138720691204f, - 0.234005570411682f, - 0.058318331837654f, 0.234344407916069f, 0.058498200029135f, - 0.234683111310005f, - 0.058678328990936f, 0.235021665692329f, 0.058858718723059f, - 0.235360085964203f, - 0.059039369225502f, 0.235698372125626f, 0.059220276772976f, - 0.236036509275436f, - 0.059401445090771f, 0.236374512314796f, 0.059582870453596f, - 0.236712381243706f, - 0.059764556586742f, 0.237050101161003f, 0.059946499764919f, - 0.237387686967850f, - 0.060128703713417f, 0.237725138664246f, 0.060311164706945f, - 0.238062441349030f, - 0.060493886470795f, 0.238399609923363f, 0.060676865279675f, - 0.238736644387245f, - 0.060860104858875f, 0.239073529839516f, 0.061043601483107f, - 0.239410281181335f, - 0.061227355152369f, 0.239746883511543f, 0.061411365866661f, - 0.240083336830139f, - 0.061595637351274f, 0.240419670939446f, 0.061780165880919f, - 0.240755841135979f, - 0.061964951455593f, 0.241091892123222f, 0.062149997800589f, - 0.241427779197693f, - 0.062335297465324f, 0.241763532161713f, 0.062520854175091f, - 0.242099151015282f, - 0.062706671655178f, 0.242434620857239f, 0.062892749905586f, - 0.242769956588745f, - 0.063079081475735f, 0.243105143308640f, 0.063265666365623f, - 0.243440181016922f, - 0.063452512025833f, 0.243775084614754f, 0.063639611005783f, - 0.244109839200974f, - 0.063826970756054f, 0.244444444775581f, 0.064014583826065f, - 0.244778916239738f, - 0.064202457666397f, 0.245113238692284f, 0.064390584826469f, - 0.245447427034378f, - 0.064578965306282f, 0.245781451463699f, 0.064767606556416f, - 0.246115356683731f, - 0.064956501126289f, 0.246449097990990f, 0.065145656466484f, - 0.246782705187798f, - 0.065335065126419f, 0.247116148471832f, 0.065524727106094f, - 0.247449472546577f, - 0.065714649856091f, 0.247782632708550f, 0.065904818475246f, - 0.248115643858910f, - 0.066095255315304f, 0.248448520898819f, 0.066285938024521f, - 0.248781248927116f, - 0.066476874053478f, 0.249113827943802f, 0.066668070852757f, - 0.249446272850037f, - 0.066859520971775f, 0.249778553843498f, 0.067051224410534f, - 0.250110685825348f, - 0.067243188619614f, 0.250442683696747f, 0.067435398697853f, - 0.250774532556534f, - 0.067627869546413f, 0.251106232404709f, 0.067820593714714f, - 0.251437783241272f, - 0.068013571202755f, 0.251769185066223f, 0.068206802010536f, - 0.252100437879562f, - 0.068400286138058f, 0.252431541681290f, 0.068594031035900f, - 0.252762526273727f, - 0.068788021802902f, 0.253093332052231f, 0.068982265889645f, - 0.253423988819122f, - 0.069176770746708f, 0.253754496574402f, 0.069371521472931f, - 0.254084855318069f, - 0.069566532969475f, 0.254415065050125f, 0.069761790335178f, - 0.254745125770569f, - 0.069957308471203f, 0.255075037479401f, 0.070153072476387f, - 0.255404800176620f, - 0.070349089801311f, 0.255734413862228f, 0.070545360445976f, - 0.256063878536224f, - 0.070741884410381f, 0.256393194198608f, 0.070938661694527f, - 0.256722360849380f, - 0.071135692298412f, 0.257051378488541f, 0.071332976222038f, - 0.257380217313766f, - 0.071530513465405f, 0.257708936929703f, 0.071728296577930f, - 0.258037507534027f, - 0.071926333010197f, 0.258365899324417f, 0.072124622762203f, - 0.258694142103195f, - 0.072323165833950f, 0.259022265672684f, 0.072521962225437f, - 0.259350210428238f, - 0.072721004486084f, 0.259678006172180f, 0.072920300066471f, - 0.260005623102188f, - 0.073119848966599f, 0.260333120822906f, 0.073319651186466f, - 0.260660469532013f, - 0.073519699275494f, 0.260987639427185f, 0.073720000684261f, - 0.261314690113068f, - 0.073920547962189f, 0.261641561985016f, 0.074121348559856f, - 0.261968284845352f, - 0.074322402477264f, 0.262294828891754f, 0.074523709714413f, - 0.262621253728867f, - 0.074725262820721f, 0.262947499752045f, 0.074927061796188f, - 0.263273626565933f, - 0.075129114091396f, 0.263599574565887f, 0.075331419706345f, - 0.263925373554230f, - 0.075533971190453f, 0.264250993728638f, 0.075736775994301f, - 0.264576494693756f, - 0.075939826667309f, 0.264901816844940f, 0.076143130660057f, - 0.265226989984512f, - 0.076346680521965f, 0.265552014112473f, 0.076550483703613f, - 0.265876859426498f, - 0.076754532754421f, 0.266201555728912f, 0.076958827674389f, - 0.266526103019714f, - 0.077163375914097f, 0.266850501298904f, 0.077368170022964f, - 0.267174720764160f, - 0.077573217451572f, 0.267498821020126f, 0.077778510749340f, - 0.267822742462158f, - 0.077984049916267f, 0.268146485090256f, 0.078189842402935f, - 0.268470078706741f, - 0.078395880758762f, 0.268793523311615f, 0.078602164983749f, - 0.269116818904877f, - 0.078808702528477f, 0.269439965486526f, 0.079015478491783f, - 0.269762933254242f, - 0.079222507774830f, 0.270085722208023f, 0.079429790377617f, - 0.270408391952515f, - 0.079637311398983f, 0.270730882883072f, 0.079845085740089f, - 0.271053224802017f, - 0.080053105950356f, 0.271375387907028f, 0.080261372029781f, - 0.271697402000427f, - 0.080469883978367f, 0.272019267082214f, 0.080678641796112f, - 0.272340953350067f, - 0.080887645483017f, 0.272662490606308f, 0.081096902489662f, - 0.272983878850937f, - 0.081306397914886f, 0.273305088281631f, 0.081516146659851f, - 0.273626148700714f, - 0.081726133823395f, 0.273947030305862f, 0.081936374306679f, - 0.274267762899399f, - 0.082146860659122f, 0.274588316679001f, 0.082357585430145f, - 0.274908751249313f, - 0.082568563520908f, 0.275228977203369f, 0.082779780030251f, - 0.275549083948135f, - 0.082991249859333f, 0.275868982076645f, 0.083202958106995f, - 0.276188760995865f, - 0.083414919674397f, 0.276508361101151f, 0.083627119660378f, - 0.276827782392502f, - 0.083839565515518f, 0.277147054672241f, 0.084052257239819f, - 0.277466177940369f, - 0.084265194833279f, 0.277785122394562f, 0.084478378295898f, - 0.278103888034821f, - 0.084691800177097f, 0.278422504663467f, 0.084905467927456f, - 0.278740972280502f, - 0.085119381546974f, 0.279059261083603f, 0.085333541035652f, - 0.279377400875092f, - 0.085547938942909f, 0.279695361852646f, 0.085762590169907f, - 0.280013144016266f, - 0.085977479815483f, 0.280330777168274f, 0.086192607879639f, - 0.280648261308670f, - 0.086407989263535f, 0.280965566635132f, 0.086623609066010f, - 0.281282693147659f, - 0.086839467287064f, 0.281599670648575f, 0.087055571377277f, - 0.281916469335556f, - 0.087271921336651f, 0.282233119010925f, 0.087488517165184f, - 0.282549589872360f, - 0.087705351412296f, 0.282865911722183f, 0.087922424077988f, - 0.283182054758072f, - 0.088139742612839f, 0.283498018980026f, 0.088357307016850f, - 0.283813834190369f, - 0.088575109839439f, 0.284129470586777f, 0.088793158531189f, - 0.284444957971573f, - 0.089011445641518f, 0.284760266542435f, 0.089229971170425f, - 0.285075396299362f, - 0.089448742568493f, 0.285390377044678f, 0.089667752385139f, - 0.285705178976059f, - 0.089887008070946f, 0.286019802093506f, 0.090106502175331f, - 0.286334276199341f, - 0.090326242148876f, 0.286648571491241f, 0.090546220541000f, - 0.286962717771530f, - 0.090766437351704f, 0.287276685237885f, 0.090986892580986f, - 0.287590473890305f, - 0.091207593679428f, 0.287904083728790f, 0.091428533196449f, - 0.288217544555664f, - 0.091649711132050f, 0.288530826568604f, 0.091871134936810f, - 0.288843959569931f, - 0.092092797160149f, 0.289156883955002f, 0.092314697802067f, - 0.289469659328461f, - 0.092536836862564f, 0.289782285690308f, 0.092759214341640f, - 0.290094703435898f, - 0.092981837689877f, 0.290406972169876f, 0.093204692006111f, - 0.290719062089920f, - 0.093427792191505f, 0.291031002998352f, 0.093651130795479f, - 0.291342735290527f, - 0.093874707818031f, 0.291654318571091f, 0.094098523259163f, - 0.291965723037720f, - 0.094322577118874f, 0.292276978492737f, 0.094546869397163f, - 0.292588025331497f, - 0.094771400094032f, 0.292898923158646f, 0.094996169209480f, - 0.293209642171860f, - 0.095221176743507f, 0.293520182371140f, 0.095446422696114f, - 0.293830573558807f, - 0.095671907067299f, 0.294140785932541f, 0.095897629857063f, - 0.294450789690018f, - 0.096123591065407f, 0.294760644435883f, 0.096349790692329f, - 0.295070350170136f, - 0.096576221287251f, 0.295379847288132f, 0.096802897751331f, - 0.295689195394516f, - 0.097029805183411f, 0.295998334884644f, 0.097256951034069f, - 0.296307325363159f, - 0.097484335303307f, 0.296616137027740f, 0.097711957991123f, - 0.296924799680710f, - 0.097939811646938f, 0.297233253717422f, 0.098167903721333f, - 0.297541528940201f, - 0.098396234214306f, 0.297849655151367f, 0.098624803125858f, - 0.298157602548599f, - 0.098853603005409f, 0.298465341329575f, 0.099082641303539f, - 0.298772931098938f, - 0.099311910569668f, 0.299080342054367f, 0.099541425704956f, - 0.299387603998184f, - 0.099771171808243f, 0.299694657325745f, 0.100001148879528f, - 0.300001531839371f, - 0.100231364369392f, 0.300308227539063f, 0.100461818277836f, - 0.300614774227142f, - 0.100692503154278f, 0.300921112298965f, 0.100923426449299f, - 0.301227301359177f, - 0.101154580712318f, 0.301533311605453f, 0.101385973393917f, - 0.301839113235474f, - 0.101617597043514f, 0.302144765853882f, 0.101849451661110f, - 0.302450239658356f, - 0.102081544697285f, 0.302755534648895f, 0.102313876152039f, - 0.303060621023178f, - 0.102546438574791f, 0.303365558385849f, 0.102779231965542f, - 0.303670316934586f, - 0.103012263774872f, 0.303974896669388f, 0.103245526552200f, - 0.304279297590256f, - 0.103479020297527f, 0.304583519697189f, 0.103712752461433f, - 0.304887533187866f, - 0.103946708142757f, 0.305191397666931f, 0.104180909693241f, - 0.305495083332062f, - 0.104415334761143f, 0.305798590183258f, 0.104649998247623f, - 0.306101888418198f, - 0.104884892702103f, 0.306405037641525f, 0.105120018124580f, - 0.306708008050919f, - 0.105355374515057f, 0.307010769844055f, 0.105590961873531f, - 0.307313382625580f, - 0.105826787650585f, 0.307615786790848f, 0.106062836945057f, - 0.307918041944504f, - 0.106299124658108f, 0.308220088481903f, 0.106535643339157f, - 0.308521956205368f, - 0.106772392988205f, 0.308823645114899f, 0.107009373605251f, - 0.309125155210495f, - 0.107246585190296f, 0.309426486492157f, 0.107484027743340f, - 0.309727638959885f, - 0.107721701264381f, 0.310028612613678f, 0.107959605753422f, - 0.310329377651215f, - 0.108197741210461f, 0.310629993677139f, 0.108436107635498f, - 0.310930401086807f, - 0.108674705028534f, 0.311230629682541f, 0.108913525938988f, - 0.311530679464340f, - 0.109152585268021f, 0.311830550432205f, 0.109391868114471f, - 0.312130242586136f, - 0.109631389379501f, 0.312429755926132f, 0.109871134161949f, - 0.312729060649872f, - 0.110111102461815f, 0.313028186559677f, 0.110351309180260f, - 0.313327133655548f, - 0.110591746866703f, 0.313625901937485f, 0.110832408070564f, - 0.313924491405487f, - 0.111073300242424f, 0.314222872257233f, 0.111314415931702f, - 0.314521104097366f, - 0.111555770039558f, 0.314819127321243f, 0.111797347664833f, - 0.315116971731186f, - 0.112039148807526f, 0.315414607524872f, 0.112281180918217f, - 0.315712094306946f, - 0.112523443996906f, 0.316009372472763f, 0.112765938043594f, - 0.316306471824646f, - 0.113008655607700f, 0.316603392362595f, 0.113251596689224f, - 0.316900104284287f, - 0.113494776189327f, 0.317196637392044f, 0.113738171756268f, - 0.317492991685867f, - 0.113981798291206f, 0.317789167165756f, 0.114225655794144f, - 0.318085134029388f, - 0.114469736814499f, 0.318380922079086f, 0.114714048802853f, - 0.318676531314850f, - 0.114958584308624f, 0.318971961736679f, 0.115203343331814f, - 0.319267183542252f, - 0.115448333323002f, 0.319562226533890f, 0.115693546831608f, - 0.319857090711594f, - 0.115938983857632f, 0.320151746273041f, 0.116184651851654f, - 0.320446223020554f, - 0.116430543363094f, 0.320740520954132f, 0.116676658391953f, - 0.321034610271454f, - 0.116923004388809f, 0.321328520774841f, 0.117169573903084f, - 0.321622252464294f, - 0.117416366934776f, 0.321915775537491f, 0.117663383483887f, - 0.322209119796753f, - 0.117910631000996f, 0.322502255439758f, 0.118158094584942f, - 0.322795242071152f, - 0.118405789136887f, 0.323088020086288f, 0.118653707206249f, - 0.323380589485168f, - 0.118901848793030f, 0.323672980070114f, 0.119150213897228f, - 0.323965191841125f, - 0.119398809969425f, 0.324257194995880f, 0.119647622108459f, - 0.324549019336700f, - 0.119896657764912f, 0.324840664863586f, 0.120145916938782f, - 0.325132101774216f, - 0.120395407080650f, 0.325423330068588f, 0.120645113289356f, - 0.325714409351349f, - 0.120895043015480f, 0.326005280017853f, 0.121145196259022f, - 0.326295942068100f, - 0.121395580470562f, 0.326586425304413f, 0.121646173298359f, - 0.326876699924469f, - 0.121896997094154f, 0.327166795730591f, 0.122148044407368f, - 0.327456712722778f, - 0.122399315237999f, 0.327746421098709f, 0.122650802135468f, - 0.328035950660706f, - 0.122902512550354f, 0.328325271606445f, 0.123154446482658f, - 0.328614413738251f, - 0.123406603932381f, 0.328903347253799f, 0.123658977448940f, - 0.329192101955414f, - 0.123911574482918f, 0.329480648040771f, 0.124164395034313f, - 0.329769015312195f, - 0.124417431652546f, 0.330057173967361f, 0.124670691788197f, - 0.330345153808594f, - 0.124924175441265f, 0.330632925033569f, 0.125177875161171f, - 0.330920487642288f, - 0.125431805849075f, 0.331207901239395f, 0.125685945153236f, - 0.331495076417923f, - 0.125940307974815f, 0.331782072782516f, 0.126194894313812f, - 0.332068890333176f, - 0.126449704170227f, 0.332355499267578f, 0.126704722642899f, - 0.332641899585724f, - 0.126959964632988f, 0.332928121089935f, 0.127215430140495f, - 0.333214133977890f, - 0.127471104264259f, 0.333499968051910f, 0.127727001905441f, - 0.333785593509674f, - 0.127983123064041f, 0.334071010351181f, 0.128239467740059f, - 0.334356248378754f, - 0.128496021032333f, 0.334641307592392f, 0.128752797842026f, - 0.334926128387451f, - 0.129009798169136f, 0.335210770368576f, 0.129267007112503f, - 0.335495233535767f, - 0.129524439573288f, 0.335779488086700f, 0.129782080650330f, - 0.336063534021378f, - 0.130039945244789f, 0.336347371339798f, 0.130298033356667f, - 0.336631029844284f, - 0.130556344985962f, 0.336914509534836f, 0.130814850330353f, - 0.337197750806808f, - 0.131073594093323f, 0.337480813264847f, 0.131332546472549f, - 0.337763696908951f, - 0.131591722369194f, 0.338046342134476f, 0.131851106882095f, - 0.338328808546066f, - 0.132110700011253f, 0.338611096143723f, 0.132370531558990f, - 0.338893145322800f, - 0.132630556821823f, 0.339175015687943f, 0.132890805602074f, - 0.339456677436829f, - 0.133151277899742f, 0.339738160371780f, 0.133411958813667f, - 0.340019434690475f, - 0.133672863245010f, 0.340300500392914f, 0.133933976292610f, - 0.340581357479095f, - 0.134195312857628f, 0.340862035751343f, 0.134456858038902f, - 0.341142505407333f, - 0.134718611836433f, 0.341422766447067f, 0.134980589151382f, - 0.341702848672867f, - 0.135242775082588f, 0.341982692480087f, 0.135505184531212f, - 0.342262357473373f, - 0.135767802596092f, 0.342541843652725f, 0.136030644178391f, - 0.342821091413498f, - 0.136293679475784f, 0.343100160360336f, 0.136556953191757f, - 0.343379020690918f, - 0.136820420622826f, 0.343657672405243f, 0.137084111571312f, - 0.343936115503311f, - 0.137348011136055f, 0.344214379787445f, 0.137612134218216f, - 0.344492435455322f, - 0.137876465916634f, 0.344770282506943f, 0.138141006231308f, - 0.345047920942307f, - 0.138405755162239f, 0.345325350761414f, 0.138670727610588f, - 0.345602601766586f, - 0.138935908675194f, 0.345879614353180f, 0.139201298356056f, - 0.346156448125839f, - 0.139466896653175f, 0.346433073282242f, 0.139732718467712f, - 0.346709519624710f, - 0.139998748898506f, 0.346985727548599f, 0.140264987945557f, - 0.347261756658554f, - 0.140531435608864f, 0.347537547349930f, 0.140798106789589f, - 0.347813159227371f, - 0.141064971685410f, 0.348088562488556f, 0.141332060098648f, - 0.348363757133484f, - 0.141599357128143f, 0.348638743162155f, 0.141866862773895f, - 0.348913550376892f, - 0.142134591937065f, 0.349188119173050f, 0.142402514815331f, - 0.349462509155273f, - 0.142670661211014f, 0.349736660718918f, 0.142939001321793f, - 0.350010633468628f, - 0.143207564949989f, 0.350284397602081f, 0.143476337194443f, - 0.350557953119278f, - 0.143745318055153f, 0.350831300020218f, 0.144014507532120f, - 0.351104438304901f, - 0.144283905625343f, 0.351377367973328f, 0.144553512334824f, - 0.351650089025497f, - 0.144823327660561f, 0.351922631263733f, 0.145093351602554f, - 0.352194935083389f, - 0.145363584160805f, 0.352467030286789f, 0.145634025335312f, - 0.352738946676254f, - 0.145904675126076f, 0.353010624647141f, 0.146175548434258f, - 0.353282123804092f, - 0.146446615457535f, 0.353553384542465f, 0.146717891097069f, - 0.353824466466904f, - 0.146989375352860f, 0.354095309972763f, 0.147261068224907f, - 0.354365974664688f, - 0.147532954812050f, 0.354636400938034f, 0.147805064916611f, - 0.354906648397446f, - 0.148077383637428f, 0.355176687240601f, 0.148349896073341f, - 0.355446487665176f, - 0.148622632026672f, 0.355716109275818f, 0.148895561695099f, - 0.355985492467880f, - 0.149168699979782f, 0.356254696846008f, 0.149442046880722f, - 0.356523662805557f, - 0.149715602397919f, 0.356792420148849f, 0.149989366531372f, - 0.357060998678207f, - 0.150263324379921f, 0.357329338788986f, 0.150537505745888f, - 0.357597470283508f, - 0.150811880826950f, 0.357865422964096f, 0.151086464524269f, - 0.358133137226105f, - 0.151361241936684f, 0.358400642871857f, 0.151636242866516f, - 0.358667939901352f, - 0.151911437511444f, 0.358935028314590f, 0.152186840772629f, - 0.359201908111572f, - 0.152462437748909f, 0.359468549489975f, 0.152738258242607f, - 0.359735012054443f, - 0.153014272451401f, 0.360001266002655f, 0.153290495276451f, - 0.360267281532288f, - 0.153566911816597f, 0.360533088445663f, 0.153843536973000f, - 0.360798716545105f, - 0.154120370745659f, 0.361064106225967f, 0.154397398233414f, - 0.361329287290573f, - 0.154674649238586f, 0.361594229936600f, 0.154952079057693f, - 0.361858993768692f, - 0.155229732394218f, 0.362123548984528f, 0.155507579445839f, - 0.362387865781784f, - 0.155785620212555f, 0.362651973962784f, 0.156063869595528f, - 0.362915903329849f, - 0.156342327594757f, 0.363179564476013f, 0.156620979309082f, - 0.363443046808243f, - 0.156899839639664f, 0.363706320524216f, 0.157178908586502f, - 0.363969355821610f, - 0.157458171248436f, 0.364232182502747f, 0.157737627625465f, - 0.364494800567627f, - 0.158017292618752f, 0.364757210016251f, 0.158297166228294f, - 0.365019410848618f, - 0.158577233552933f, 0.365281373262405f, 0.158857494592667f, - 0.365543156862259f, - 0.159137964248657f, 0.365804702043533f, 0.159418627619743f, - 0.366066008806229f, - 0.159699499607086f, 0.366327136754990f, 0.159980565309525f, - 0.366588026285172f, - 0.160261839628220f, 0.366848707199097f, 0.160543307662010f, - 0.367109179496765f, - 0.160824984312058f, 0.367369443178177f, 0.161106839776039f, - 0.367629468441010f, - 0.161388918757439f, 0.367889285087585f, 0.161671176552773f, - 0.368148893117905f, - 0.161953642964363f, 0.368408292531967f, 0.162236317992210f, - 0.368667453527451f, - 0.162519171833992f, 0.368926405906677f, 0.162802234292030f, - 0.369185149669647f, - 0.163085505366325f, 0.369443655014038f, 0.163368955254555f, - 0.369701951742172f, - 0.163652613759041f, 0.369960039854050f, 0.163936465978622f, - 0.370217919349670f, - 0.164220526814461f, 0.370475560426712f, 0.164504766464233f, - 0.370732992887497f, - 0.164789214730263f, 0.370990216732025f, 0.165073871612549f, - 0.371247202157974f, - 0.165358707308769f, 0.371503978967667f, 0.165643751621246f, - 0.371760547161102f, - 0.165928974747658f, 0.372016876935959f, 0.166214406490326f, - 0.372272998094559f, - 0.166500031948090f, 0.372528880834579f, 0.166785866022110f, - 0.372784584760666f, - 0.167071878910065f, 0.373040050268173f, 0.167358100414276f, - 0.373295277357101f, - 0.167644515633583f, 0.373550295829773f, 0.167931124567986f, - 0.373805105686188f, - 0.168217927217484f, 0.374059677124023f, 0.168504923582077f, - 0.374314039945602f, - 0.168792113661766f, 0.374568194150925f, 0.169079497456551f, - 0.374822109937668f, - 0.169367074966431f, 0.375075817108154f, 0.169654861092567f, - 0.375329315662384f, - 0.169942826032639f, 0.375582575798035f, 0.170230999588966f, - 0.375835597515106f, - 0.170519351959229f, 0.376088410615921f, 0.170807912945747f, - 0.376341015100479f, - 0.171096652746201f, 0.376593410968781f, 0.171385586261749f, - 0.376845568418503f, - 0.171674728393555f, 0.377097487449646f, 0.171964049339294f, - 0.377349197864532f, - 0.172253578901291f, 0.377600699663162f, 0.172543287277222f, - 0.377851963043213f, - 0.172833189368248f, 0.378102988004684f, 0.173123285174370f, - 0.378353834152222f, - 0.173413574695587f, 0.378604412078857f, 0.173704057931900f, - 0.378854811191559f, - 0.173994734883308f, 0.379104942083359f, 0.174285605549812f, - 0.379354894161224f, - 0.174576655030251f, 0.379604607820511f, 0.174867913126946f, - 0.379854083061218f, - 0.175159350037575f, 0.380103349685669f, 0.175450980663300f, - 0.380352377891541f, - 0.175742805004120f, 0.380601197481155f, 0.176034808158875f, - 0.380849778652191f, - 0.176327019929886f, 0.381098151206970f, 0.176619410514832f, - 0.381346285343170f, - 0.176911994814873f, 0.381594210863113f, 0.177204772830009f, - 0.381841897964478f, - 0.177497729659081f, 0.382089376449585f, 0.177790880203247f, - 0.382336616516113f, - 0.178084224462509f, 0.382583618164063f, 0.178377762436867f, - 0.382830440998077f, - 0.178671479225159f, 0.383076995611191f, 0.178965389728546f, - 0.383323341608047f, - 0.179259493947029f, 0.383569449186325f, 0.179553776979446f, - 0.383815348148346f, - 0.179848253726959f, 0.384061008691788f, 0.180142924189568f, - 0.384306460618973f, - 0.180437773466110f, 0.384551674127579f, 0.180732816457748f, - 0.384796649217606f, - 0.181028053164482f, 0.385041415691376f, 0.181323468685150f, - 0.385285943746567f, - 0.181619063019753f, 0.385530263185501f, 0.181914865970612f, - 0.385774344205856f, - 0.182210832834244f, 0.386018186807632f, 0.182507008314133f, - 0.386261820793152f, - 0.182803362607956f, 0.386505216360092f, 0.183099895715714f, - 0.386748403310776f, - 0.183396622538567f, 0.386991351842880f, 0.183693528175354f, - 0.387234061956406f, - 0.183990627527237f, 0.387476563453674f, 0.184287920594215f, - 0.387718826532364f, - 0.184585392475128f, 0.387960851192474f, 0.184883043169975f, - 0.388202667236328f, - 0.185180887579918f, 0.388444244861603f, 0.185478910803795f, - 0.388685584068298f, - 0.185777112841606f, 0.388926714658737f, 0.186075508594513f, - 0.389167606830597f, - 0.186374098062515f, 0.389408260583878f, 0.186672851443291f, - 0.389648675918579f, - 0.186971798539162f, 0.389888882637024f, 0.187270939350128f, - 0.390128880739212f, - 0.187570258975029f, 0.390368610620499f, 0.187869757413864f, - 0.390608131885529f, - 0.188169434666634f, 0.390847414731979f, 0.188469305634499f, - 0.391086459159851f, - 0.188769355416298f, 0.391325294971466f, 0.189069598913193f, - 0.391563892364502f, - 0.189370006322861f, 0.391802251338959f, 0.189670607447624f, - 0.392040401697159f, - 0.189971387386322f, 0.392278283834457f, 0.190272361040115f, - 0.392515957355499f, - 0.190573498606682f, 0.392753422260284f, 0.190874829888344f, - 0.392990618944168f, - 0.191176339983940f, 0.393227607011795f, 0.191478043794632f, - 0.393464356660843f, - 0.191779911518097f, 0.393700867891312f, 0.192081972956657f, - 0.393937170505524f, - 0.192384198307991f, 0.394173204898834f, 0.192686617374420f, - 0.394409030675888f, - 0.192989215254784f, 0.394644618034363f, 0.193292006850243f, - 0.394879996776581f, - 0.193594962358475f, 0.395115107297897f, 0.193898096680641f, - 0.395350009202957f, - 0.194201424717903f, 0.395584672689438f, 0.194504916667938f, - 0.395819097757339f, - 0.194808602333069f, 0.396053284406662f, 0.195112451910973f, - 0.396287262439728f, - 0.195416495203972f, 0.396520972251892f, 0.195720717310905f, - 0.396754473447800f, - 0.196025103330612f, 0.396987736225128f, 0.196329683065414f, - 0.397220760583878f, - 0.196634441614151f, 0.397453576326370f, 0.196939364075661f, - 0.397686123847961f, - 0.197244480252266f, 0.397918462753296f, 0.197549775242805f, - 0.398150533437729f, - 0.197855234146118f, 0.398382395505905f, 0.198160871863365f, - 0.398614019155502f, - 0.198466703295708f, 0.398845434188843f, 0.198772698640823f, - 0.399076581001282f, - 0.199078872799873f, 0.399307489395142f, 0.199385225772858f, - 0.399538189172745f, - 0.199691757559776f, 0.399768620729446f, 0.199998468160629f, - 0.399998843669891f, - 0.200305357575417f, 0.400228828191757f, 0.200612410902977f, - 0.400458574295044f, - 0.200919643044472f, 0.400688081979752f, 0.201227053999901f, - 0.400917351245880f, - 0.201534643769264f, 0.401146411895752f, 0.201842412352562f, - 0.401375204324722f, - 0.202150344848633f, 0.401603758335114f, 0.202458456158638f, - 0.401832103729248f, - 0.202766746282578f, 0.402060180902481f, 0.203075215220451f, - 0.402288049459457f, - 0.203383848071098f, 0.402515679597855f, 0.203692659735680f, - 0.402743041515350f, - 0.204001650214195f, 0.402970194816589f, 0.204310819506645f, - 0.403197109699249f, - 0.204620152711868f, 0.403423786163330f, 0.204929664731026f, - 0.403650224208832f, - 0.205239340662956f, 0.403876423835754f, 0.205549195408821f, - 0.404102355241776f, - 0.205859228968620f, 0.404328078031540f, 0.206169426441193f, - 0.404553562402725f, - 0.206479802727699f, 0.404778808355331f, 0.206790357828140f, - 0.405003815889359f, - 0.207101076841354f, 0.405228585004807f, 0.207411959767342f, - 0.405453115701675f, - 0.207723021507263f, 0.405677437782288f, 0.208034262061119f, - 0.405901491641998f, - 0.208345666527748f, 0.406125307083130f, 0.208657249808311f, - 0.406348884105682f, - 0.208969011902809f, 0.406572192907333f, 0.209280923008919f, - 0.406795293092728f, - 0.209593027830124f, 0.407018154859543f, 0.209905281662941f, - 0.407240778207779f, - 0.210217714309692f, 0.407463163137436f, 0.210530325770378f, - 0.407685309648514f, - 0.210843101143837f, 0.407907217741013f, 0.211156040430069f, - 0.408128857612610f, - 0.211469158530235f, 0.408350288867950f, 0.211782455444336f, - 0.408571451902390f, - 0.212095901370049f, 0.408792406320572f, 0.212409526109695f, - 0.409013092517853f, - 0.212723329663277f, 0.409233570098877f, 0.213037282228470f, - 0.409453779459000f, - 0.213351413607597f, 0.409673750400543f, 0.213665723800659f, - 0.409893482923508f, - 0.213980183005333f, 0.410112977027893f, 0.214294821023941f, - 0.410332232713699f, - 0.214609622955322f, 0.410551249980927f, 0.214924603700638f, - 0.410770028829575f, - 0.215239733457565f, 0.410988569259644f, 0.215555042028427f, - 0.411206841468811f, - 0.215870529413223f, 0.411424905061722f, 0.216186165809631f, - 0.411642700433731f, - 0.216501981019974f, 0.411860257387161f, 0.216817945241928f, - 0.412077575922012f, - 0.217134088277817f, 0.412294656038284f, 0.217450410127640f, - 0.412511497735977f, - 0.217766880989075f, 0.412728071212769f, 0.218083515763283f, - 0.412944436073303f, - 0.218400329351425f, 0.413160532712936f, 0.218717306852341f, - 0.413376390933990f, - 0.219034433364868f, 0.413592010736465f, 0.219351738691330f, - 0.413807392120361f, - 0.219669207930565f, 0.414022535085678f, 0.219986841082573f, - 0.414237409830093f, - 0.220304638147354f, 0.414452046155930f, 0.220622614026070f, - 0.414666473865509f, - 0.220940738916397f, 0.414880603551865f, 0.221259027719498f, - 0.415094524621964f, - 0.221577480435371f, 0.415308207273483f, 0.221896097064018f, - 0.415521621704102f, - 0.222214877605438f, 0.415734797716141f, 0.222533836960793f, - 0.415947735309601f, - 0.222852945327759f, 0.416160434484482f, 0.223172217607498f, - 0.416372895240784f, - 0.223491653800011f, 0.416585087776184f, 0.223811239004135f, - 0.416797041893005f, - 0.224131003022194f, 0.417008757591248f, 0.224450930953026f, - 0.417220205068588f, - 0.224771007895470f, 0.417431443929672f, 0.225091263651848f, - 0.417642414569855f, - 0.225411668419838f, 0.417853146791458f, 0.225732237100601f, - 0.418063640594482f, - 0.226052969694138f, 0.418273866176605f, 0.226373866200447f, - 0.418483853340149f, - 0.226694911718369f, 0.418693602085114f, 0.227016136050224f, - 0.418903112411499f, - 0.227337509393692f, 0.419112354516983f, 0.227659046649933f, - 0.419321358203888f, - 0.227980732917786f, 0.419530123472214f, 0.228302597999573f, - 0.419738620519638f, - 0.228624612092972f, 0.419946908950806f, 0.228946775197983f, - 0.420154929161072f, - 0.229269117116928f, 0.420362681150436f, 0.229591608047485f, - 0.420570224523544f, - 0.229914262890816f, 0.420777499675751f, 0.230237081646919f, - 0.420984506607056f, - 0.230560049414635f, 0.421191304922104f, 0.230883181095123f, - 0.421397835016251f, - 0.231206461787224f, 0.421604126691818f, 0.231529906392097f, - 0.421810150146484f, - 0.231853514909744f, 0.422015935182571f, 0.232177272439003f, - 0.422221481800079f, - 0.232501193881035f, 0.422426789999008f, 0.232825264334679f, - 0.422631829977036f, - 0.233149498701096f, 0.422836631536484f, 0.233473882079124f, - 0.423041164875031f, - 0.233798429369926f, 0.423245459794998f, 0.234123140573502f, - 0.423449516296387f, - 0.234448000788689f, 0.423653304576874f, 0.234773010015488f, - 0.423856884241104f, - 0.235098183155060f, 0.424060165882111f, 0.235423520207405f, - 0.424263238906860f, - 0.235749006271362f, 0.424466013908386f, 0.236074641346931f, - 0.424668580293655f, - 0.236400425434113f, 0.424870878458023f, 0.236726388335228f, - 0.425072938203812f, - 0.237052485346794f, 0.425274729728699f, 0.237378746271133f, - 0.425476282835007f, - 0.237705156207085f, 0.425677597522736f, 0.238031730055809f, - 0.425878643989563f, - 0.238358452916145f, 0.426079452037811f, 0.238685324788094f, - 0.426279991865158f, - 0.239012360572815f, 0.426480293273926f, 0.239339530467987f, - 0.426680356264114f, - 0.239666879177094f, 0.426880151033401f, 0.239994361996651f, - 0.427079707384110f, - 0.240322008728981f, 0.427278995513916f, 0.240649804472923f, - 0.427478045225143f, - 0.240977749228477f, 0.427676826715469f, 0.241305842995644f, - 0.427875369787216f, - 0.241634100675583f, 0.428073674440384f, 0.241962507367134f, - 0.428271710872650f, - 0.242291063070297f, 0.428469479084015f, 0.242619767785072f, - 0.428667008876801f, - 0.242948621511459f, 0.428864300251007f, 0.243277639150620f, - 0.429061323404312f, - 0.243606805801392f, 0.429258108139038f, 0.243936106562614f, - 0.429454624652863f, - 0.244265571236610f, 0.429650902748108f, 0.244595184922218f, - 0.429846942424774f, - 0.244924947619438f, 0.430042684078217f, 0.245254859328270f, - 0.430238217115402f, - 0.245584934949875f, 0.430433481931686f, 0.245915144681931f, - 0.430628478527069f, - 0.246245503425598f, 0.430823236703873f, 0.246576011180878f, - 0.431017726659775f, - 0.246906682848930f, 0.431211978197098f, 0.247237488627434f, - 0.431405961513519f, - 0.247568443417549f, 0.431599706411362f, 0.247899547219276f, - 0.431793183088303f, - 0.248230814933777f, 0.431986421346664f, 0.248562216758728f, - 0.432179391384125f, - 0.248893767595291f, 0.432372123003006f, 0.249225467443466f, - 0.432564586400986f, - 0.249557301402092f, 0.432756811380386f, 0.249889299273491f, - 0.432948768138886f, - 0.250221431255341f, 0.433140486478806f, 0.250553727149963f, - 0.433331936597824f, - 0.250886172056198f, 0.433523118495941f, 0.251218736171722f, - 0.433714061975479f, - 0.251551479101181f, 0.433904737234116f, 0.251884341239929f, - 0.434095174074173f, - 0.252217382192612f, 0.434285342693329f, 0.252550542354584f, - 0.434475272893906f, - 0.252883851528168f, 0.434664934873581f, 0.253217309713364f, - 0.434854328632355f, - 0.253550916910172f, 0.435043483972549f, 0.253884643316269f, - 0.435232400894165f, - 0.254218548536301f, 0.435421019792557f, 0.254552572965622f, - 0.435609430074692f, - 0.254886746406555f, 0.435797542333603f, 0.255221068859100f, - 0.435985416173935f, - 0.255555540323257f, 0.436173021793365f, 0.255890160799026f, - 0.436360388994217f, - 0.256224930286407f, 0.436547487974167f, 0.256559818983078f, - 0.436734348535538f, - 0.256894856691360f, 0.436920911073685f, 0.257230043411255f, - 0.437107264995575f, - 0.257565379142761f, 0.437293320894241f, 0.257900834083557f, - 0.437479138374329f, - 0.258236467838287f, 0.437664687633514f, 0.258572220802307f, - 0.437849998474121f, - 0.258908122777939f, 0.438035041093826f, 0.259244143962860f, - 0.438219845294952f, - 0.259580343961716f, 0.438404351472855f, 0.259916663169861f, - 0.438588619232178f, - 0.260253131389618f, 0.438772648572922f, 0.260589718818665f, - 0.438956409692764f, - 0.260926485061646f, 0.439139902591705f, 0.261263370513916f, - 0.439323127269745f, - 0.261600375175476f, 0.439506113529205f, 0.261937558650970f, - 0.439688831567764f, - 0.262274861335754f, 0.439871311187744f, 0.262612313032150f, - 0.440053492784500f, - 0.262949883937836f, 0.440235435962677f, 0.263287603855133f, - 0.440417140722275f, - 0.263625472784042f, 0.440598547458649f, 0.263963490724564f, - 0.440779715776443f, - 0.264301627874374f, 0.440960645675659f, 0.264639914035797f, - 0.441141277551651f, - 0.264978319406509f, 0.441321671009064f, 0.265316903591156f, - 0.441501796245575f, - 0.265655577182770f, 0.441681683063507f, 0.265994429588318f, - 0.441861271858215f, - 0.266333401203156f, 0.442040622234344f, 0.266672492027283f, - 0.442219734191895f, - 0.267011761665344f, 0.442398548126221f, 0.267351150512695f, - 0.442577123641968f, - 0.267690658569336f, 0.442755430936813f, 0.268030315637589f, - 0.442933470010757f, - 0.268370121717453f, 0.443111270666122f, 0.268710047006607f, - 0.443288803100586f, - 0.269050091505051f, 0.443466067314148f, 0.269390314817429f, - 0.443643063306808f, - 0.269730657339096f, 0.443819820880890f, 0.270071119070053f, - 0.443996280431747f, - 0.270411729812622f, 0.444172531366348f, 0.270752459764481f, - 0.444348484277725f, - 0.271093338727951f, 0.444524168968201f, 0.271434366703033f, - 0.444699615240097f, - 0.271775513887405f, 0.444874793291092f, 0.272116780281067f, - 0.445049703121185f, - 0.272458195686340f, 0.445224374532700f, 0.272799760103226f, - 0.445398747920990f, - 0.273141443729401f, 0.445572882890701f, 0.273483246564865f, - 0.445746749639511f, - 0.273825198411942f, 0.445920348167419f, 0.274167299270630f, - 0.446093708276749f, - 0.274509519338608f, 0.446266770362854f, 0.274851858615875f, - 0.446439594030380f, - 0.275194346904755f, 0.446612149477005f, 0.275536954402924f, - 0.446784436702728f, - 0.275879681110382f, 0.446956485509872f, 0.276222556829453f, - 0.447128236293793f, - 0.276565581560135f, 0.447299748659134f, 0.276908725500107f, - 0.447470992803574f, - 0.277251988649368f, 0.447641968727112f, 0.277595400810242f, - 0.447812676429749f, - 0.277938932180405f, 0.447983115911484f, 0.278282582759857f, - 0.448153316974640f, - 0.278626382350922f, 0.448323249816895f, 0.278970301151276f, - 0.448492884635925f, - 0.279314368963242f, 0.448662281036377f, 0.279658555984497f, - 0.448831409215927f, - 0.280002862215042f, 0.449000298976898f, 0.280347317457199f, - 0.449168890714645f, - 0.280691891908646f, 0.449337244033813f, 0.281036585569382f, - 0.449505299329758f, - 0.281381398439407f, 0.449673116207123f, 0.281726360321045f, - 0.449840664863586f, - 0.282071471214294f, 0.450007945299149f, 0.282416671514511f, - 0.450174957513809f, - 0.282762020826340f, 0.450341701507568f, 0.283107489347458f, - 0.450508207082748f, - 0.283453077077866f, 0.450674414634705f, 0.283798813819885f, - 0.450840383768082f, - 0.284144669771194f, 0.451006084680557f, 0.284490644931793f, - 0.451171487569809f, - 0.284836769104004f, 0.451336652040482f, 0.285182982683182f, - 0.451501548290253f, - 0.285529345273972f, 0.451666176319122f, 0.285875827074051f, - 0.451830536127090f, - 0.286222457885742f, 0.451994657516479f, 0.286569178104401f, - 0.452158480882645f, - 0.286916047334671f, 0.452322036027908f, 0.287263035774231f, - 0.452485352754593f, - 0.287610173225403f, 0.452648371458054f, 0.287957400083542f, - 0.452811151742935f, - 0.288304775953293f, 0.452973634004593f, 0.288652241230011f, - 0.453135877847672f, - 0.288999855518341f, 0.453297853469849f, 0.289347589015961f, - 0.453459560871124f, - 0.289695471525192f, 0.453621000051498f, 0.290043443441391f, - 0.453782171010971f, - 0.290391564369202f, 0.453943043947220f, 0.290739774703979f, - 0.454103678464890f, - 0.291088134050369f, 0.454264044761658f, 0.291436612606049f, - 0.454424172639847f, - 0.291785210371017f, 0.454584002494812f, 0.292133957147598f, - 0.454743564128876f, - 0.292482793331146f, 0.454902857542038f, 0.292831748723984f, - 0.455061882734299f, - 0.293180853128433f, 0.455220639705658f, 0.293530046939850f, - 0.455379128456116f, - 0.293879389762878f, 0.455537378787994f, 0.294228851795197f, - 0.455695331096649f, - 0.294578403234482f, 0.455853015184402f, 0.294928103685379f, - 0.456010431051254f, - 0.295277923345566f, 0.456167578697205f, 0.295627862215042f, - 0.456324487924576f, - 0.295977920293808f, 0.456481099128723f, 0.296328097581863f, - 0.456637442111969f, - 0.296678394079208f, 0.456793516874313f, 0.297028809785843f, - 0.456949323415756f, - 0.297379344701767f, 0.457104891538620f, 0.297729998826981f, - 0.457260161638260f, - 0.298080772161484f, 0.457415163516998f, 0.298431664705276f, - 0.457569897174835f, - 0.298782676458359f, 0.457724362611771f, 0.299133807420731f, - 0.457878559827805f, - 0.299485057592392f, 0.458032488822937f, 0.299836426973343f, - 0.458186149597168f, - 0.300187885761261f, 0.458339542150497f, 0.300539493560791f, - 0.458492636680603f, - 0.300891220569611f, 0.458645492792130f, 0.301243066787720f, - 0.458798080682755f, - 0.301595002412796f, 0.458950400352478f, 0.301947087049484f, - 0.459102421998978f, - 0.302299261093140f, 0.459254205226898f, 0.302651554346085f, - 0.459405690431595f, - 0.303003966808319f, 0.459556937217712f, 0.303356528282166f, - 0.459707885980606f, - 0.303709149360657f, 0.459858566522598f, 0.304061919450760f, - 0.460008978843689f, - 0.304414808750153f, 0.460159152746201f, 0.304767817258835f, - 0.460309028625488f, - 0.305120915174484f, 0.460458606481552f, 0.305474132299423f, - 0.460607945919037f, - 0.305827468633652f, 0.460757017135620f, 0.306180924177170f, - 0.460905820131302f, - 0.306534498929977f, 0.461054325103760f, 0.306888192892075f, - 0.461202591657639f, - 0.307241976261139f, 0.461350560188293f, 0.307595878839493f, - 0.461498260498047f, - 0.307949900627136f, 0.461645722389221f, 0.308304041624069f, - 0.461792886257172f, - 0.308658272027969f, 0.461939752101898f, 0.309012651443481f, - 0.462086379528046f, - 0.309367120265961f, 0.462232738733292f, 0.309721708297729f, - 0.462378799915314f, - 0.310076385736465f, 0.462524622678757f, 0.310431212186813f, - 0.462670147418976f, - 0.310786128044128f, 0.462815403938293f, 0.311141163110733f, - 0.462960392236710f, - 0.311496287584305f, 0.463105112314224f, 0.311851561069489f, - 0.463249564170837f, - 0.312206923961639f, 0.463393747806549f, 0.312562376260757f, - 0.463537633419037f, - 0.312917977571487f, 0.463681250810623f, 0.313273668289185f, - 0.463824629783630f, - 0.313629478216171f, 0.463967710733414f, 0.313985377550125f, - 0.464110493659973f, - 0.314341396093369f, 0.464253038167953f, 0.314697533845901f, - 0.464395314455032f, - 0.315053790807724f, 0.464537292718887f, 0.315410137176514f, - 0.464679002761841f, - 0.315766572952271f, 0.464820444583893f, 0.316123157739639f, - 0.464961618185043f, - 0.316479831933975f, 0.465102523565292f, 0.316836595535278f, - 0.465243130922318f, - 0.317193508148193f, 0.465383470058441f, 0.317550510168076f, - 0.465523540973663f, - 0.317907601594925f, 0.465663343667984f, 0.318264812231064f, - 0.465802878141403f, - 0.318622142076492f, 0.465942144393921f, 0.318979561328888f, - 0.466081112623215f, - 0.319337099790573f, 0.466219812631607f, 0.319694727659225f, - 0.466358244419098f, - 0.320052474737167f, 0.466496407985687f, 0.320410341024399f, - 0.466634273529053f, - 0.320768296718597f, 0.466771900653839f, 0.321126341819763f, - 0.466909229755402f, - 0.321484506130219f, 0.467046260833740f, 0.321842789649963f, - 0.467183053493500f, - 0.322201162576675f, 0.467319577932358f, 0.322559654712677f, - 0.467455804347992f, - 0.322918236255646f, 0.467591762542725f, 0.323276937007904f, - 0.467727422714233f, - 0.323635727167130f, 0.467862844467163f, 0.323994606733322f, - 0.467997968196869f, - 0.324353635311127f, 0.468132823705673f, 0.324712723493576f, - 0.468267410993576f, - 0.325071930885315f, 0.468401730060577f, 0.325431257486343f, - 0.468535751104355f, - 0.325790673494339f, 0.468669503927231f, 0.326150178909302f, - 0.468802988529205f, - 0.326509803533554f, 0.468936175107956f, 0.326869517564774f, - 0.469069123268127f, - 0.327229350805283f, 0.469201773405075f, 0.327589273452759f, - 0.469334155321121f, - 0.327949285507202f, 0.469466239213943f, 0.328309416770935f, - 0.469598054885864f, - 0.328669637441635f, 0.469729602336884f, 0.329029977321625f, - 0.469860881567001f, - 0.329390406608582f, 0.469991862773895f, 0.329750925302505f, - 0.470122605562210f, - 0.330111563205719f, 0.470253020524979f, 0.330472290515900f, - 0.470383197069168f, - 0.330833107233047f, 0.470513075590134f, 0.331194043159485f, - 0.470642685890198f, - 0.331555068492889f, 0.470772027969360f, 0.331916213035584f, - 0.470901101827621f, - 0.332277417182922f, 0.471029877662659f, 0.332638740539551f, - 0.471158385276794f, - 0.333000183105469f, 0.471286594867706f, 0.333361685276031f, - 0.471414536237717f, - 0.333723306655884f, 0.471542209386826f, 0.334085017442703f, - 0.471669614315033f, - 0.334446847438812f, 0.471796721220016f, 0.334808766841888f, - 0.471923559904099f, - 0.335170775651932f, 0.472050130367279f, 0.335532873868942f, - 0.472176402807236f, - 0.335895091295242f, 0.472302407026291f, 0.336257368326187f, - 0.472428143024445f, - 0.336619764566422f, 0.472553610801697f, 0.336982280015945f, - 0.472678780555725f, - 0.337344855070114f, 0.472803652286530f, 0.337707549333572f, - 0.472928285598755f, - 0.338070303201675f, 0.473052620887756f, 0.338433176279068f, - 0.473176687955856f, - 0.338796168565750f, 0.473300457000732f, 0.339159220457077f, - 0.473423957824707f, - 0.339522391557693f, 0.473547190427780f, 0.339885622262955f, - 0.473670125007629f, - 0.340248972177505f, 0.473792791366577f, 0.340612411499023f, - 0.473915189504623f, - 0.340975970029831f, 0.474037289619446f, 0.341339588165283f, - 0.474159121513367f, - 0.341703325510025f, 0.474280685186386f, 0.342067122459412f, - 0.474401950836182f, - 0.342431038618088f, 0.474522948265076f, 0.342795044183731f, - 0.474643647670746f, - 0.343159139156342f, 0.474764078855515f, 0.343523323535919f, - 0.474884241819382f, - 0.343887597322464f, 0.475004136562347f, 0.344251960515976f, - 0.475123733282089f, - 0.344616413116455f, 0.475243031978607f, 0.344980984926224f, - 0.475362062454224f, - 0.345345616340637f, 0.475480824708939f, 0.345710366964340f, - 0.475599318742752f, - 0.346075177192688f, 0.475717514753342f, 0.346440106630325f, - 0.475835442543030f, - 0.346805095672607f, 0.475953072309494f, 0.347170203924179f, - 0.476070433855057f, - 0.347535371780396f, 0.476187497377396f, 0.347900658845901f, - 0.476304292678833f, - 0.348266035318375f, 0.476420819759369f, 0.348631471395493f, - 0.476537048816681f, - 0.348997026681900f, 0.476653009653091f, 0.349362671375275f, - 0.476768702268600f, - 0.349728375673294f, 0.476884096860886f, 0.350094199180603f, - 0.476999223232269f, - 0.350460082292557f, 0.477114051580429f, 0.350826084613800f, - 0.477228611707687f, - 0.351192146539688f, 0.477342873811722f, 0.351558297872543f, - 0.477456867694855f, - 0.351924568414688f, 0.477570593357086f, 0.352290898561478f, - 0.477684020996094f, - 0.352657318115234f, 0.477797180414200f, 0.353023827075958f, - 0.477910041809082f, - 0.353390425443649f, 0.478022634983063f, 0.353757113218308f, - 0.478134930133820f, - 0.354123860597610f, 0.478246957063675f, 0.354490727186203f, - 0.478358715772629f, - 0.354857653379440f, 0.478470176458359f, 0.355224698781967f, - 0.478581339120865f, - 0.355591803789139f, 0.478692263364792f, 0.355958998203278f, - 0.478802859783173f, - 0.356326282024384f, 0.478913217782974f, 0.356693625450134f, - 0.479023247957230f, - 0.357061088085175f, 0.479133039712906f, 0.357428610324860f, - 0.479242533445358f, - 0.357796221971512f, 0.479351729154587f, 0.358163923025131f, - 0.479460656642914f, - 0.358531713485718f, 0.479569315910339f, 0.358899593353271f, - 0.479677677154541f, - 0.359267532825470f, 0.479785770177841f, 0.359635561704636f, - 0.479893565177917f, - 0.360003679990768f, 0.480001062154770f, 0.360371887683868f, - 0.480108320713043f, - 0.360740154981613f, 0.480215251445770f, 0.361108511686325f, - 0.480321943759918f, - 0.361476957798004f, 0.480428308248520f, 0.361845493316650f, - 0.480534434318542f, - 0.362214088439941f, 0.480640232563019f, 0.362582772970200f, - 0.480745792388916f, - 0.362951546907425f, 0.480851024389267f, 0.363320380449295f, - 0.480956017971039f, - 0.363689333200455f, 0.481060713529587f, 0.364058345556259f, - 0.481165111064911f, - 0.364427417516708f, 0.481269240379334f, 0.364796578884125f, - 0.481373071670532f, - 0.365165829658508f, 0.481476634740829f, 0.365535169839859f, - 0.481579899787903f, - 0.365904569625854f, 0.481682896614075f, 0.366274058818817f, - 0.481785595417023f, - 0.366643607616425f, 0.481888025999069f, 0.367013275623322f, - 0.481990188360214f, - 0.367382973432541f, 0.482092022895813f, 0.367752790451050f, - 0.482193619012833f, - 0.368122667074203f, 0.482294887304306f, 0.368492603302002f, - 0.482395917177200f, - 0.368862658739090f, 0.482496619224548f, 0.369232743978500f, - 0.482597053050995f, - 0.369602948427200f, 0.482697218656540f, 0.369973212480545f, - 0.482797086238861f, - 0.370343536138535f, 0.482896685600281f, 0.370713949203491f, - 0.482995986938477f, - 0.371084451675415f, 0.483094990253448f, 0.371455013751984f, - 0.483193725347519f, - 0.371825665235519f, 0.483292192220688f, 0.372196376323700f, - 0.483390361070633f, - 0.372567176818848f, 0.483488231897354f, 0.372938036918640f, - 0.483585834503174f, - 0.373308986425400f, 0.483683139085770f, 0.373679995536804f, - 0.483780175447464f, - 0.374051094055176f, 0.483876913785934f, 0.374422252178192f, - 0.483973383903503f, - 0.374793499708176f, 0.484069555997849f, 0.375164806842804f, - 0.484165430068970f, - 0.375536203384399f, 0.484261035919189f, 0.375907659530640f, - 0.484356373548508f, - 0.376279205083847f, 0.484451413154602f, 0.376650810241699f, - 0.484546154737473f, - 0.377022475004196f, 0.484640628099442f, 0.377394229173660f, - 0.484734803438187f, - 0.377766042947769f, 0.484828680753708f, 0.378137946128845f, - 0.484922289848328f, - 0.378509908914566f, 0.485015630722046f, 0.378881961107254f, - 0.485108673572540f, - 0.379254043102264f, 0.485201418399811f, 0.379626244306564f, - 0.485293895006180f, - 0.379998475313187f, 0.485386073589325f, 0.380370795726776f, - 0.485477954149246f, - 0.380743205547333f, 0.485569566488266f, 0.381115674972534f, - 0.485660910606384f, - 0.381488204002380f, 0.485751956701279f, 0.381860792636871f, - 0.485842704772949f, - 0.382233470678329f, 0.485933154821396f, 0.382606208324432f, - 0.486023366451263f, - 0.382979035377502f, 0.486113250255585f, 0.383351892232895f, - 0.486202865839005f, - 0.383724838495255f, 0.486292183399200f, 0.384097874164581f, - 0.486381232738495f, - 0.384470939636230f, 0.486469984054565f, 0.384844094514847f, - 0.486558437347412f, - 0.385217308998108f, 0.486646622419357f, 0.385590612888336f, - 0.486734509468079f, - 0.385963946580887f, 0.486822128295898f, 0.386337369680405f, - 0.486909449100494f, - 0.386710882186890f, 0.486996471881866f, 0.387084424495697f, - 0.487083226442337f, - 0.387458056211472f, 0.487169682979584f, 0.387831717729568f, - 0.487255871295929f, - 0.388205498456955f, 0.487341761589050f, 0.388579308986664f, - 0.487427353858948f, - 0.388953179121017f, 0.487512677907944f, 0.389327138662338f, - 0.487597703933716f, - 0.389701157808304f, 0.487682431936264f, 0.390075236558914f, - 0.487766891717911f, - 0.390449374914169f, 0.487851053476334f, 0.390823602676392f, - 0.487934947013855f, - 0.391197860240936f, 0.488018542528152f, 0.391572207212448f, - 0.488101840019226f, - 0.391946613788605f, 0.488184869289398f, 0.392321079969406f, - 0.488267600536346f, - 0.392695605754852f, 0.488350033760071f, 0.393070191144943f, - 0.488432198762894f, - 0.393444836139679f, 0.488514065742493f, 0.393819570541382f, - 0.488595664501190f, - 0.394194334745407f, 0.488676935434341f, 0.394569188356400f, - 0.488757967948914f, - 0.394944071769714f, 0.488838672637939f, 0.395319044589996f, - 0.488919109106064f, - 0.395694077014923f, 0.488999247550964f, 0.396069169044495f, - 0.489079117774963f, - 0.396444320678711f, 0.489158689975739f, 0.396819531917572f, - 0.489237964153290f, - 0.397194802761078f, 0.489316970109940f, 0.397570133209229f, - 0.489395678043365f, - 0.397945523262024f, 0.489474087953568f, 0.398320972919464f, - 0.489552229642868f, - 0.398696482181549f, 0.489630073308945f, 0.399072051048279f, - 0.489707618951797f, - 0.399447679519653f, 0.489784896373749f, 0.399823367595673f, - 0.489861875772476f, - 0.400199115276337f, 0.489938557147980f, 0.400574922561646f, - 0.490014940500259f, - 0.400950789451599f, 0.490091055631638f, 0.401326715946198f, - 0.490166902542114f, - 0.401702702045441f, 0.490242421627045f, 0.402078747749329f, - 0.490317672491074f, - 0.402454853057861f, 0.490392625331879f, 0.402830988168716f, - 0.490467309951782f, - 0.403207212686539f, 0.490541696548462f, 0.403583467006683f, - 0.490615785121918f, - 0.403959810733795f, 0.490689605474472f, 0.404336184263229f, - 0.490763127803802f, - 0.404712617397308f, 0.490836352109909f, 0.405089110136032f, - 0.490909278392792f, - 0.405465662479401f, 0.490981936454773f, 0.405842274427414f, - 0.491054296493530f, - 0.406218945980072f, 0.491126358509064f, 0.406595647335052f, - 0.491198152303696f, - 0.406972438097000f, 0.491269648075104f, 0.407349258661270f, - 0.491340845823288f, - 0.407726138830185f, 0.491411775350571f, 0.408103078603745f, - 0.491482406854630f, - 0.408480048179626f, 0.491552740335464f, 0.408857107162476f, - 0.491622805595398f, - 0.409234195947647f, 0.491692543029785f, 0.409611344337463f, - 0.491762012243271f, - 0.409988552331924f, 0.491831213235855f, 0.410365819931030f, - 0.491900116205215f, - 0.410743117332459f, 0.491968721151352f, 0.411120474338531f, - 0.492037028074265f, - 0.411497890949249f, 0.492105036973953f, 0.411875367164612f, - 0.492172777652740f, - 0.412252873182297f, 0.492240220308304f, 0.412630438804626f, - 0.492307394742966f, - 0.413008064031601f, 0.492374241352081f, 0.413385748863220f, - 0.492440819740295f, - 0.413763463497162f, 0.492507129907608f, 0.414141237735748f, - 0.492573112249374f, - 0.414519041776657f, 0.492638826370239f, 0.414896935224533f, - 0.492704242467880f, - 0.415274858474731f, 0.492769360542297f, 0.415652841329575f, - 0.492834210395813f, - 0.416030853986740f, 0.492898762226105f, 0.416408926248550f, - 0.492963016033173f, - 0.416787058115005f, 0.493026971817017f, 0.417165219783783f, - 0.493090659379959f, - 0.417543441057205f, 0.493154048919678f, 0.417921721935272f, - 0.493217140436172f, - 0.418300032615662f, 0.493279963731766f, 0.418678402900696f, - 0.493342459201813f, - 0.419056802988052f, 0.493404686450958f, 0.419435262680054f, - 0.493466645479202f, - 0.419813781976700f, 0.493528276681900f, 0.420192331075668f, - 0.493589639663696f, - 0.420570939779282f, 0.493650704622269f, 0.420949578285217f, - 0.493711471557617f, - 0.421328276395798f, 0.493771970272064f, 0.421707004308701f, - 0.493832170963287f, - 0.422085791826248f, 0.493892073631287f, 0.422464638948441f, - 0.493951678276062f, - 0.422843515872955f, 0.494011014699936f, 0.423222452402115f, - 0.494070053100586f, - 0.423601418733597f, 0.494128793478012f, 0.423980414867401f, - 0.494187235832214f, - 0.424359470605850f, 0.494245409965515f, 0.424738585948944f, - 0.494303256273270f, - 0.425117731094360f, 0.494360834360123f, 0.425496935844421f, - 0.494418144226074f, - 0.425876170396805f, 0.494475126266479f, 0.426255434751511f, - 0.494531840085983f, - 0.426634758710861f, 0.494588255882263f, 0.427014142274857f, - 0.494644373655319f, - 0.427393525838852f, 0.494700223207474f, 0.427772998809814f, - 0.494755744934082f, - 0.428152471780777f, 0.494810998439789f, 0.428532034158707f, - 0.494865983724594f, - 0.428911596536636f, 0.494920641183853f, 0.429291218519211f, - 0.494975030422211f, - 0.429670870304108f, 0.495029091835022f, 0.430050581693649f, - 0.495082914829254f, - 0.430430322885513f, 0.495136409997940f, 0.430810123682022f, - 0.495189607143402f, - 0.431189924478531f, 0.495242536067963f, 0.431569814682007f, - 0.495295166969299f, - 0.431949704885483f, 0.495347499847412f, 0.432329654693604f, - 0.495399564504623f, - 0.432709634304047f, 0.495451331138611f, 0.433089673519135f, - 0.495502769947052f, - 0.433469742536545f, 0.495553970336914f, 0.433849841356277f, - 0.495604842901230f, - 0.434229999780655f, 0.495655417442322f, 0.434610158205032f, - 0.495705723762512f, - 0.434990376234055f, 0.495755732059479f, 0.435370653867722f, - 0.495805442333221f, - 0.435750931501389f, 0.495854884386063f, 0.436131268739700f, - 0.495903998613358f, - 0.436511665582657f, 0.495952844619751f, 0.436892062425613f, - 0.496001392602921f, - 0.437272518873215f, 0.496049642562866f, 0.437653005123138f, - 0.496097624301910f, - 0.438033521175385f, 0.496145308017731f, 0.438414067029953f, - 0.496192663908005f, - 0.438794672489166f, 0.496239781379700f, 0.439175277948380f, - 0.496286571025848f, - 0.439555943012238f, 0.496333062648773f, 0.439936667680740f, - 0.496379286050797f, - 0.440317392349243f, 0.496425211429596f, 0.440698176622391f, - 0.496470838785172f, - 0.441078960895538f, 0.496516168117523f, 0.441459804773331f, - 0.496561229228973f, - 0.441840678453445f, 0.496605962514877f, 0.442221581935883f, - 0.496650427579880f, - 0.442602545022964f, 0.496694594621658f, 0.442983508110046f, - 0.496738493442535f, - 0.443364530801773f, 0.496782064437866f, 0.443745553493500f, - 0.496825367212296f, - 0.444126635789871f, 0.496868371963501f, 0.444507747888565f, - 0.496911078691483f, - 0.444888889789581f, 0.496953487396240f, 0.445270061492920f, - 0.496995598077774f, - 0.445651292800903f, 0.497037440538406f, 0.446032524108887f, - 0.497078984975815f, - 0.446413785219193f, 0.497120231389999f, 0.446795076131821f, - 0.497161179780960f, - 0.447176426649094f, 0.497201830148697f, 0.447557777166367f, - 0.497242212295532f, - 0.447939187288284f, 0.497282296419144f, 0.448320597410202f, - 0.497322082519531f, - 0.448702067136765f, 0.497361570596695f, 0.449083566665649f, - 0.497400760650635f, - 0.449465066194534f, 0.497439652681351f, 0.449846625328064f, - 0.497478276491165f, - 0.450228184461594f, 0.497516602277756f, 0.450609803199768f, - 0.497554630041122f, - 0.450991421937943f, 0.497592359781265f, 0.451373100280762f, - 0.497629791498184f, - 0.451754778623581f, 0.497666954994202f, 0.452136516571045f, - 0.497703820466995f, - 0.452518254518509f, 0.497740387916565f, 0.452900022268295f, - 0.497776657342911f, - 0.453281819820404f, 0.497812628746033f, 0.453663676977158f, - 0.497848302125931f, - 0.454045534133911f, 0.497883707284927f, 0.454427421092987f, - 0.497918814420700f, - 0.454809308052063f, 0.497953623533249f, 0.455191254615784f, - 0.497988134622574f, - 0.455573230981827f, 0.498022347688675f, 0.455955207347870f, - 0.498056292533875f, - 0.456337243318558f, 0.498089909553528f, 0.456719279289246f, - 0.498123258352280f, - 0.457101345062256f, 0.498156309127808f, 0.457483440637589f, - 0.498189061880112f, - 0.457865566015244f, 0.498221516609192f, 0.458247691392899f, - 0.498253703117371f, - 0.458629876375198f, 0.498285561800003f, 0.459012061357498f, - 0.498317152261734f, - 0.459394276142120f, 0.498348444700241f, 0.459776520729065f, - 0.498379439115524f, - 0.460158795118332f, 0.498410135507584f, 0.460541069507599f, - 0.498440563678741f, - 0.460923373699188f, 0.498470664024353f, 0.461305707693100f, - 0.498500496149063f, - 0.461688071489334f, 0.498530030250549f, 0.462070435285568f, - 0.498559266328812f, - 0.462452858686447f, 0.498588204383850f, 0.462835282087326f, - 0.498616874217987f, - 0.463217705488205f, 0.498645216226578f, 0.463600188493729f, - 0.498673290014267f, - 0.463982671499252f, 0.498701065778732f, 0.464365184307098f, - 0.498728543519974f, - 0.464747726917267f, 0.498755723237991f, 0.465130269527435f, - 0.498782604932785f, - 0.465512841939926f, 0.498809218406677f, 0.465895414352417f, - 0.498835533857346f, - 0.466278046369553f, 0.498861521482468f, 0.466660678386688f, - 0.498887240886688f, - 0.467043310403824f, 0.498912662267685f, 0.467426002025604f, - 0.498937815427780f, - 0.467808693647385f, 0.498962640762329f, 0.468191385269165f, - 0.498987197875977f, - 0.468574106693268f, 0.499011427164078f, 0.468956857919693f, - 0.499035388231277f, - 0.469339638948441f, 0.499059051275253f, 0.469722419977188f, - 0.499082416296005f, - 0.470105201005936f, 0.499105513095856f, 0.470488041639328f, - 0.499128282070160f, - 0.470870882272720f, 0.499150782823563f, 0.471253722906113f, - 0.499172955751419f, - 0.471636593341827f, 0.499194860458374f, 0.472019463777542f, - 0.499216467142105f, - 0.472402364015579f, 0.499237775802612f, 0.472785294055939f, - 0.499258816242218f, - 0.473168224096298f, 0.499279528856277f, 0.473551183938980f, - 0.499299973249435f, - 0.473934143781662f, 0.499320119619370f, 0.474317133426666f, - 0.499339967966080f, - 0.474700123071671f, 0.499359518289566f, 0.475083142518997f, - 0.499378770589828f, - 0.475466161966324f, 0.499397724866867f, 0.475849211215973f, - 0.499416410923004f, - 0.476232260465622f, 0.499434769153595f, 0.476615339517593f, - 0.499452859163284f, - 0.476998418569565f, 0.499470651149750f, 0.477381497621536f, - 0.499488145112991f, - 0.477764606475830f, 0.499505341053009f, 0.478147745132446f, - 0.499522238969803f, - 0.478530883789063f, 0.499538868665695f, 0.478914022445679f, - 0.499555170536041f, - 0.479297190904617f, 0.499571204185486f, 0.479680359363556f, - 0.499586939811707f, - 0.480063527822495f, 0.499602377414703f, 0.480446726083755f, - 0.499617516994476f, - 0.480829954147339f, 0.499632388353348f, 0.481213152408600f, - 0.499646931886673f, - 0.481596380472183f, 0.499661177396774f, 0.481979638338089f, - 0.499675154685974f, - 0.482362866401672f, 0.499688833951950f, 0.482746154069901f, - 0.499702215194702f, - 0.483129411935806f, 0.499715298414230f, 0.483512699604034f, - 0.499728083610535f, - 0.483895987272263f, 0.499740600585938f, 0.484279274940491f, - 0.499752789735794f, - 0.484662592411041f, 0.499764710664749f, 0.485045909881592f, - 0.499776333570480f, - 0.485429257154465f, 0.499787658452988f, 0.485812574625015f, - 0.499798685312271f, - 0.486195921897888f, 0.499809414148331f, 0.486579269170761f, - 0.499819844961166f, - 0.486962646245956f, 0.499830007553101f, 0.487346023321152f, - 0.499839842319489f, - 0.487729400396347f, 0.499849408864975f, 0.488112777471542f, - 0.499858677387238f, - 0.488496154546738f, 0.499867647886276f, 0.488879561424255f, - 0.499876320362091f, - 0.489262968301773f, 0.499884694814682f, 0.489646375179291f, - 0.499892801046371f, - 0.490029782056808f, 0.499900579452515f, 0.490413218736649f, - 0.499908089637756f, - 0.490796625614166f, 0.499915301799774f, 0.491180062294006f, - 0.499922215938568f, - 0.491563498973846f, 0.499928832054138f, 0.491946935653687f, - 0.499935150146484f, - 0.492330402135849f, 0.499941170215607f, 0.492713838815689f, - 0.499946922063828f, - 0.493097305297852f, 0.499952346086502f, 0.493480771780014f, - 0.499957501888275f, - 0.493864238262177f, 0.499962359666824f, 0.494247704744339f, - 0.499966919422150f, - 0.494631171226501f, 0.499971181154251f, 0.495014637708664f, - 0.499975144863129f, - 0.495398133993149f, 0.499978810548782f, 0.495781600475311f, - 0.499982208013535f, - 0.496165096759796f, 0.499985307455063f, 0.496548563241959f, - 0.499988079071045f, - 0.496932059526443f, 0.499990582466125f, 0.497315555810928f, - 0.499992787837982f, - 0.497699022293091f, 0.499994695186615f, 0.498082518577576f, - 0.499996334314346f, - 0.498466014862061f, 0.499997645616531f, 0.498849511146545f, - 0.499998688697815f, - 0.499233007431030f, 0.499999403953552f, 0.499616503715515f, - 0.499999850988388f, -}; - - -/** -* \par -* Generation of realCoefB array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)    
-* {    
-*    pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i));    
-*    pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i));    
-*  } 
-* -*/ -static const float32_t realCoefB[8192] = { - 0.500000000000000f, 0.500000000000000f, 0.500383496284485f, - 0.499999850988388f, - 0.500766992568970f, 0.499999403953552f, 0.501150488853455f, - 0.499998688697815f, - 0.501533985137939f, 0.499997645616531f, 0.501917481422424f, - 0.499996334314346f, - 0.502300977706909f, 0.499994695186615f, 0.502684473991394f, - 0.499992787837982f, - 0.503067970275879f, 0.499990582466125f, 0.503451406955719f, - 0.499988079071045f, - 0.503834903240204f, 0.499985307455063f, 0.504218399524689f, - 0.499982208013535f, - 0.504601895809174f, 0.499978810548782f, 0.504985332489014f, - 0.499975144863129f, - 0.505368828773499f, 0.499971181154251f, 0.505752325057983f, - 0.499966919422150f, - 0.506135761737823f, 0.499962359666824f, 0.506519258022308f, - 0.499957501888275f, - 0.506902694702148f, 0.499952346086502f, 0.507286131381989f, - 0.499946922063828f, - 0.507669627666473f, 0.499941170215607f, 0.508053064346313f, - 0.499935150146484f, - 0.508436501026154f, 0.499928832054138f, 0.508819937705994f, - 0.499922215938568f, - 0.509203374385834f, 0.499915301799774f, 0.509586811065674f, - 0.499908089637756f, - 0.509970188140869f, 0.499900579452515f, 0.510353624820709f, - 0.499892801046371f, - 0.510737061500549f, 0.499884694814682f, 0.511120438575745f, - 0.499876320362091f, - 0.511503815650940f, 0.499867647886276f, 0.511887252330780f, - 0.499858677387238f, - 0.512270629405975f, 0.499849408864975f, 0.512654006481171f, - 0.499839842319489f, - 0.513037383556366f, 0.499830007553101f, 0.513420701026917f, - 0.499819844961166f, - 0.513804078102112f, 0.499809414148331f, 0.514187395572662f, - 0.499798685312271f, - 0.514570772647858f, 0.499787658452988f, 0.514954090118408f, - 0.499776333570480f, - 0.515337407588959f, 0.499764710664749f, 0.515720725059509f, - 0.499752789735794f, - 0.516103982925415f, 0.499740600585938f, 0.516487300395966f, - 0.499728083610535f, - 0.516870558261871f, 0.499715298414230f, 0.517253875732422f, - 0.499702215194702f, - 0.517637133598328f, 0.499688833951950f, 0.518020391464233f, - 0.499675154685974f, - 0.518403589725494f, 0.499661177396774f, 0.518786847591400f, - 0.499646931886673f, - 0.519170045852661f, 0.499632388353348f, 0.519553244113922f, - 0.499617516994476f, - 0.519936442375183f, 0.499602377414703f, 0.520319640636444f, - 0.499586939811707f, - 0.520702838897705f, 0.499571204185486f, 0.521085977554321f, - 0.499555170536041f, - 0.521469116210938f, 0.499538868665695f, 0.521852254867554f, - 0.499522238969803f, - 0.522235393524170f, 0.499505341053009f, 0.522618472576141f, - 0.499488145112991f, - 0.523001611232758f, 0.499470651149750f, 0.523384690284729f, - 0.499452859163284f, - 0.523767769336700f, 0.499434769153595f, 0.524150788784027f, - 0.499416410923004f, - 0.524533808231354f, 0.499397724866867f, 0.524916887283325f, - 0.499378770589828f, - 0.525299847126007f, 0.499359518289566f, 0.525682866573334f, - 0.499339967966080f, - 0.526065826416016f, 0.499320119619370f, 0.526448845863342f, - 0.499299973249435f, - 0.526831746101379f, 0.499279528856277f, 0.527214705944061f, - 0.499258816242218f, - 0.527597606182098f, 0.499237775802612f, 0.527980506420136f, - 0.499216467142105f, - 0.528363406658173f, 0.499194860458374f, 0.528746306896210f, - 0.499172955751419f, - 0.529129147529602f, 0.499150782823563f, 0.529511988162994f, - 0.499128282070160f, - 0.529894769191742f, 0.499105513095856f, 0.530277609825134f, - 0.499082416296005f, - 0.530660390853882f, 0.499059051275253f, 0.531043112277985f, - 0.499035388231277f, - 0.531425893306732f, 0.499011427164078f, 0.531808614730835f, - 0.498987197875977f, - 0.532191336154938f, 0.498962640762329f, 0.532573997974396f, - 0.498937815427780f, - 0.532956659793854f, 0.498912662267685f, 0.533339321613312f, - 0.498887240886688f, - 0.533721983432770f, 0.498861521482468f, 0.534104585647583f, - 0.498835533857346f, - 0.534487187862396f, 0.498809218406677f, 0.534869730472565f, - 0.498782604932785f, - 0.535252273082733f, 0.498755723237991f, 0.535634815692902f, - 0.498728543519974f, - 0.536017298698425f, 0.498701065778732f, 0.536399841308594f, - 0.498673290014267f, - 0.536782264709473f, 0.498645216226578f, 0.537164747714996f, - 0.498616874217987f, - 0.537547171115875f, 0.498588204383850f, 0.537929534912109f, - 0.498559266328812f, - 0.538311958312988f, 0.498530030250549f, 0.538694262504578f, - 0.498500496149063f, - 0.539076626300812f, 0.498470664024353f, 0.539458930492401f, - 0.498440563678741f, - 0.539841234683990f, 0.498410135507584f, 0.540223479270935f, - 0.498379439115524f, - 0.540605723857880f, 0.498348444700241f, 0.540987968444824f, - 0.498317152261734f, - 0.541370153427124f, 0.498285561800003f, 0.541752278804779f, - 0.498253703117371f, - 0.542134463787079f, 0.498221516609192f, 0.542516589164734f, - 0.498189061880112f, - 0.542898654937744f, 0.498156309127808f, 0.543280720710754f, - 0.498123258352280f, - 0.543662786483765f, 0.498089909553528f, 0.544044792652130f, - 0.498056292533875f, - 0.544426798820496f, 0.498022347688675f, 0.544808745384216f, - 0.497988134622574f, - 0.545190691947937f, 0.497953623533249f, 0.545572578907013f, - 0.497918814420700f, - 0.545954465866089f, 0.497883707284927f, 0.546336352825165f, - 0.497848302125931f, - 0.546718180179596f, 0.497812628746033f, 0.547099947929382f, - 0.497776657342911f, - 0.547481775283813f, 0.497740387916565f, 0.547863483428955f, - 0.497703820466995f, - 0.548245191574097f, 0.497666954994202f, 0.548626899719238f, - 0.497629791498184f, - 0.549008548259735f, 0.497592359781265f, 0.549390196800232f, - 0.497554630041122f, - 0.549771785736084f, 0.497516602277756f, 0.550153374671936f, - 0.497478276491165f, - 0.550534904003143f, 0.497439652681351f, 0.550916433334351f, - 0.497400760650635f, - 0.551297962665558f, 0.497361570596695f, 0.551679372787476f, - 0.497322082519531f, - 0.552060842514038f, 0.497282296419144f, 0.552442193031311f, - 0.497242212295532f, - 0.552823603153229f, 0.497201830148697f, 0.553204894065857f, - 0.497161179780960f, - 0.553586184978485f, 0.497120231389999f, 0.553967475891113f, - 0.497078984975815f, - 0.554348707199097f, 0.497037440538406f, 0.554729938507080f, - 0.496995598077774f, - 0.555111110210419f, 0.496953487396240f, 0.555492222309113f, - 0.496911078691483f, - 0.555873334407806f, 0.496868371963501f, 0.556254446506500f, - 0.496825367212296f, - 0.556635499000549f, 0.496782064437866f, 0.557016491889954f, - 0.496738493442535f, - 0.557397484779358f, 0.496694594621658f, 0.557778418064117f, - 0.496650427579880f, - 0.558159291744232f, 0.496605962514877f, 0.558540165424347f, - 0.496561229228973f, - 0.558921039104462f, 0.496516168117523f, 0.559301853179932f, - 0.496470838785172f, - 0.559682607650757f, 0.496425211429596f, 0.560063362121582f, - 0.496379286050797f, - 0.560444056987762f, 0.496333062648773f, 0.560824692249298f, - 0.496286571025848f, - 0.561205327510834f, 0.496239781379700f, 0.561585903167725f, - 0.496192663908005f, - 0.561966478824615f, 0.496145308017731f, 0.562346994876862f, - 0.496097624301910f, - 0.562727510929108f, 0.496049642562866f, 0.563107967376709f, - 0.496001392602921f, - 0.563488364219666f, 0.495952844619751f, 0.563868701457977f, - 0.495903998613358f, - 0.564249038696289f, 0.495854884386063f, 0.564629375934601f, - 0.495805442333221f, - 0.565009593963623f, 0.495755732059479f, 0.565389811992645f, - 0.495705723762512f, - 0.565770030021667f, 0.495655417442322f, 0.566150128841400f, - 0.495604842901230f, - 0.566530287265778f, 0.495553970336914f, 0.566910326480865f, - 0.495502769947052f, - 0.567290365695953f, 0.495451331138611f, 0.567670345306396f, - 0.495399564504623f, - 0.568050265312195f, 0.495347499847412f, 0.568430185317993f, - 0.495295166969299f, - 0.568810045719147f, 0.495242536067963f, 0.569189906120300f, - 0.495189607143402f, - 0.569569647312164f, 0.495136409997940f, 0.569949388504028f, - 0.495082914829254f, - 0.570329129695892f, 0.495029091835022f, 0.570708811283112f, - 0.494975030422211f, - 0.571088373661041f, 0.494920641183853f, 0.571467995643616f, - 0.494865983724594f, - 0.571847498416901f, 0.494810998439789f, 0.572227001190186f, - 0.494755744934082f, - 0.572606444358826f, 0.494700223207474f, 0.572985887527466f, - 0.494644373655319f, - 0.573365211486816f, 0.494588255882263f, 0.573744535446167f, - 0.494531840085983f, - 0.574123859405518f, 0.494475126266479f, 0.574503064155579f, - 0.494418144226074f, - 0.574882268905640f, 0.494360834360123f, 0.575261414051056f, - 0.494303256273270f, - 0.575640499591827f, 0.494245409965515f, 0.576019585132599f, - 0.494187235832214f, - 0.576398611068726f, 0.494128793478012f, 0.576777577400208f, - 0.494070053100586f, - 0.577156484127045f, 0.494011014699936f, 0.577535390853882f, - 0.493951678276062f, - 0.577914178371429f, 0.493892073631287f, 0.578292965888977f, - 0.493832170963287f, - 0.578671753406525f, 0.493771970272064f, 0.579050421714783f, - 0.493711471557617f, - 0.579429090023041f, 0.493650704622269f, 0.579807698726654f, - 0.493589639663696f, - 0.580186247825623f, 0.493528276681900f, 0.580564737319946f, - 0.493466645479202f, - 0.580943167209625f, 0.493404686450958f, 0.581321597099304f, - 0.493342459201813f, - 0.581699967384338f, 0.493279963731766f, 0.582078278064728f, - 0.493217140436172f, - 0.582456588745117f, 0.493154048919678f, 0.582834780216217f, - 0.493090659379959f, - 0.583212971687317f, 0.493026971817017f, 0.583591103553772f, - 0.492963016033173f, - 0.583969175815582f, 0.492898762226105f, 0.584347188472748f, - 0.492834210395813f, - 0.584725141525269f, 0.492769360542297f, 0.585103094577789f, - 0.492704242467880f, - 0.585480928421021f, 0.492638826370239f, 0.585858762264252f, - 0.492573112249374f, - 0.586236536502838f, 0.492507129907608f, 0.586614251136780f, - 0.492440819740295f, - 0.586991965770721f, 0.492374241352081f, 0.587369561195374f, - 0.492307394742966f, - 0.587747097015381f, 0.492240220308304f, 0.588124632835388f, - 0.492172777652740f, - 0.588502109050751f, 0.492105036973953f, 0.588879525661469f, - 0.492037028074265f, - 0.589256882667542f, 0.491968721151352f, 0.589634180068970f, - 0.491900116205215f, - 0.590011477470398f, 0.491831213235855f, 0.590388655662537f, - 0.491762012243271f, - 0.590765833854675f, 0.491692543029785f, 0.591142892837524f, - 0.491622805595398f, - 0.591519951820374f, 0.491552740335464f, 0.591896951198578f, - 0.491482406854630f, - 0.592273890972137f, 0.491411775350571f, 0.592650771141052f, - 0.491340845823288f, - 0.593027591705322f, 0.491269648075104f, 0.593404352664948f, - 0.491198152303696f, - 0.593781054019928f, 0.491126358509064f, 0.594157755374908f, - 0.491054296493530f, - 0.594534337520599f, 0.490981936454773f, 0.594910860061646f, - 0.490909278392792f, - 0.595287382602692f, 0.490836352109909f, 0.595663845539093f, - 0.490763127803802f, - 0.596040189266205f, 0.490689605474472f, 0.596416532993317f, - 0.490615785121918f, - 0.596792817115784f, 0.490541696548462f, 0.597168982028961f, - 0.490467309951782f, - 0.597545146942139f, 0.490392625331879f, 0.597921252250671f, - 0.490317672491074f, - 0.598297297954559f, 0.490242421627045f, 0.598673284053802f, - 0.490166902542114f, - 0.599049210548401f, 0.490091055631638f, 0.599425077438354f, - 0.490014940500259f, - 0.599800884723663f, 0.489938557147980f, 0.600176632404327f, - 0.489861875772476f, - 0.600552320480347f, 0.489784896373749f, 0.600927948951721f, - 0.489707618951797f, - 0.601303517818451f, 0.489630073308945f, 0.601679027080536f, - 0.489552229642868f, - 0.602054476737976f, 0.489474087953568f, 0.602429866790771f, - 0.489395678043365f, - 0.602805197238922f, 0.489316970109940f, 0.603180468082428f, - 0.489237964153290f, - 0.603555679321289f, 0.489158689975739f, 0.603930830955505f, - 0.489079117774963f, - 0.604305922985077f, 0.488999247550964f, 0.604680955410004f, - 0.488919109106064f, - 0.605055928230286f, 0.488838672637939f, 0.605430841445923f, - 0.488757967948914f, - 0.605805635452271f, 0.488676935434341f, 0.606180429458618f, - 0.488595664501190f, - 0.606555163860321f, 0.488514065742493f, 0.606929838657379f, - 0.488432198762894f, - 0.607304394245148f, 0.488350033760071f, 0.607678949832916f, - 0.488267600536346f, - 0.608053386211395f, 0.488184869289398f, 0.608427822589874f, - 0.488101840019226f, - 0.608802139759064f, 0.488018542528152f, 0.609176397323608f, - 0.487934947013855f, - 0.609550595283508f, 0.487851053476334f, 0.609924793243408f, - 0.487766891717911f, - 0.610298871994019f, 0.487682431936264f, 0.610672831535339f, - 0.487597703933716f, - 0.611046791076660f, 0.487512677907944f, 0.611420691013336f, - 0.487427353858948f, - 0.611794531345367f, 0.487341761589050f, 0.612168252468109f, - 0.487255871295929f, - 0.612541973590851f, 0.487169682979584f, 0.612915575504303f, - 0.487083226442337f, - 0.613289117813110f, 0.486996471881866f, 0.613662600517273f, - 0.486909449100494f, - 0.614036023616791f, 0.486822128295898f, 0.614409387111664f, - 0.486734509468079f, - 0.614782691001892f, 0.486646622419357f, 0.615155875682831f, - 0.486558437347412f, - 0.615529060363770f, 0.486469984054565f, 0.615902125835419f, - 0.486381232738495f, - 0.616275131702423f, 0.486292183399200f, 0.616648077964783f, - 0.486202865839005f, - 0.617020964622498f, 0.486113250255585f, 0.617393791675568f, - 0.486023366451263f, - 0.617766559123993f, 0.485933154821396f, 0.618139207363129f, - 0.485842704772949f, - 0.618511795997620f, 0.485751956701279f, 0.618884325027466f, - 0.485660910606384f, - 0.619256794452667f, 0.485569566488266f, 0.619629204273224f, - 0.485477954149246f, - 0.620001494884491f, 0.485386073589325f, 0.620373785495758f, - 0.485293895006180f, - 0.620745956897736f, 0.485201418399811f, 0.621118068695068f, - 0.485108673572540f, - 0.621490061283112f, 0.485015630722046f, 0.621862053871155f, - 0.484922289848328f, - 0.622233927249908f, 0.484828680753708f, 0.622605800628662f, - 0.484734803438187f, - 0.622977554798126f, 0.484640628099442f, 0.623349189758301f, - 0.484546154737473f, - 0.623720824718475f, 0.484451413154602f, 0.624092340469360f, - 0.484356373548508f, - 0.624463796615601f, 0.484261035919189f, 0.624835193157196f, - 0.484165430068970f, - 0.625206530094147f, 0.484069555997849f, 0.625577747821808f, - 0.483973383903503f, - 0.625948905944824f, 0.483876913785934f, 0.626320004463196f, - 0.483780175447464f, - 0.626691043376923f, 0.483683139085770f, 0.627061963081360f, - 0.483585834503174f, - 0.627432823181152f, 0.483488231897354f, 0.627803623676300f, - 0.483390361070633f, - 0.628174364566803f, 0.483292192220688f, 0.628544986248016f, - 0.483193725347519f, - 0.628915548324585f, 0.483094990253448f, 0.629286050796509f, - 0.482995986938477f, - 0.629656434059143f, 0.482896685600281f, 0.630026817321777f, - 0.482797086238861f, - 0.630397081375122f, 0.482697218656540f, 0.630767226219177f, - 0.482597053050995f, - 0.631137371063232f, 0.482496619224548f, 0.631507396697998f, - 0.482395917177200f, - 0.631877362728119f, 0.482294887304306f, 0.632247209548950f, - 0.482193619012833f, - 0.632616996765137f, 0.482092022895813f, 0.632986724376678f, - 0.481990188360214f, - 0.633356392383575f, 0.481888025999069f, 0.633725941181183f, - 0.481785595417023f, - 0.634095430374146f, 0.481682896614075f, 0.634464859962463f, - 0.481579899787903f, - 0.634834170341492f, 0.481476634740829f, 0.635203421115875f, - 0.481373071670532f, - 0.635572552680969f, 0.481269240379334f, 0.635941684246063f, - 0.481165111064911f, - 0.636310696601868f, 0.481060713529587f, 0.636679589748383f, - 0.480956017971039f, - 0.637048482894897f, 0.480851024389267f, 0.637417197227478f, - 0.480745792388916f, - 0.637785911560059f, 0.480640232563019f, 0.638154506683350f, - 0.480534434318542f, - 0.638523042201996f, 0.480428308248520f, 0.638891458511353f, - 0.480321943759918f, - 0.639259815216064f, 0.480215251445770f, 0.639628112316132f, - 0.480108320713043f, - 0.639996349811554f, 0.480001062154770f, 0.640364408493042f, - 0.479893565177917f, - 0.640732467174530f, 0.479785770177841f, 0.641100406646729f, - 0.479677677154541f, - 0.641468286514282f, 0.479569315910339f, 0.641836047172546f, - 0.479460656642914f, - 0.642203748226166f, 0.479351729154587f, 0.642571389675140f, - 0.479242533445358f, - 0.642938911914825f, 0.479133039712906f, 0.643306374549866f, - 0.479023247957230f, - 0.643673717975616f, 0.478913217782974f, 0.644041001796722f, - 0.478802859783173f, - 0.644408226013184f, 0.478692263364792f, 0.644775331020355f, - 0.478581339120865f, - 0.645142316818237f, 0.478470176458359f, 0.645509302616119f, - 0.478358715772629f, - 0.645876109600067f, 0.478246957063675f, 0.646242916584015f, - 0.478134930133820f, - 0.646609604358673f, 0.478022634983063f, 0.646976172924042f, - 0.477910041809082f, - 0.647342681884766f, 0.477797180414200f, 0.647709131240845f, - 0.477684020996094f, - 0.648075461387634f, 0.477570593357086f, 0.648441672325134f, - 0.477456867694855f, - 0.648807883262634f, 0.477342873811722f, 0.649173915386200f, - 0.477228611707687f, - 0.649539887905121f, 0.477114051580429f, 0.649905800819397f, - 0.476999223232269f, - 0.650271594524384f, 0.476884096860886f, 0.650637328624725f, - 0.476768702268600f, - 0.651003003120422f, 0.476653009653091f, 0.651368498802185f, - 0.476537048816681f, - 0.651733994483948f, 0.476420819759369f, 0.652099311351776f, - 0.476304292678833f, - 0.652464628219604f, 0.476187497377396f, 0.652829825878143f, - 0.476070433855057f, - 0.653194904327393f, 0.475953072309494f, 0.653559923171997f, - 0.475835442543030f, - 0.653924822807312f, 0.475717514753342f, 0.654289662837982f, - 0.475599318742752f, - 0.654654383659363f, 0.475480824708939f, 0.655019044876099f, - 0.475362062454224f, - 0.655383586883545f, 0.475243031978607f, 0.655748009681702f, - 0.475123733282089f, - 0.656112432479858f, 0.475004136562347f, 0.656476676464081f, - 0.474884241819382f, - 0.656840860843658f, 0.474764078855515f, 0.657204985618591f, - 0.474643647670746f, - 0.657568991184235f, 0.474522948265076f, 0.657932877540588f, - 0.474401950836182f, - 0.658296704292297f, 0.474280685186386f, 0.658660411834717f, - 0.474159121513367f, - 0.659024059772491f, 0.474037289619446f, 0.659387588500977f, - 0.473915189504623f, - 0.659750998020172f, 0.473792791366577f, 0.660114347934723f, - 0.473670125007629f, - 0.660477638244629f, 0.473547190427780f, 0.660840749740601f, - 0.473423957824707f, - 0.661203861236572f, 0.473300457000732f, 0.661566793918610f, - 0.473176687955856f, - 0.661929666996002f, 0.473052620887756f, 0.662292480468750f, - 0.472928285598755f, - 0.662655174732208f, 0.472803652286530f, 0.663017749786377f, - 0.472678780555725f, - 0.663380205631256f, 0.472553610801697f, 0.663742601871490f, - 0.472428143024445f, - 0.664104938507080f, 0.472302407026291f, 0.664467096328735f, - 0.472176402807236f, - 0.664829254150391f, 0.472050130367279f, 0.665191233158112f, - 0.471923559904099f, - 0.665553152561188f, 0.471796721220016f, 0.665914952754974f, - 0.471669614315033f, - 0.666276693344116f, 0.471542209386826f, 0.666638314723969f, - 0.471414536237717f, - 0.666999816894531f, 0.471286594867706f, 0.667361259460449f, - 0.471158385276794f, - 0.667722582817078f, 0.471029877662659f, 0.668083786964417f, - 0.470901101827621f, - 0.668444931507111f, 0.470772027969360f, 0.668805956840515f, - 0.470642685890198f, - 0.669166862964630f, 0.470513075590134f, 0.669527709484100f, - 0.470383197069168f, - 0.669888436794281f, 0.470253020524979f, 0.670249044895172f, - 0.470122605562210f, - 0.670609593391418f, 0.469991862773895f, 0.670970022678375f, - 0.469860881567001f, - 0.671330332756042f, 0.469729602336884f, 0.671690583229065f, - 0.469598054885864f, - 0.672050714492798f, 0.469466239213943f, 0.672410726547241f, - 0.469334155321121f, - 0.672770678997040f, 0.469201773405075f, 0.673130512237549f, - 0.469069123268127f, - 0.673490226268768f, 0.468936175107956f, 0.673849821090698f, - 0.468802988529205f, - 0.674209356307983f, 0.468669503927231f, 0.674568772315979f, - 0.468535751104355f, - 0.674928069114685f, 0.468401730060577f, 0.675287246704102f, - 0.468267410993576f, - 0.675646364688873f, 0.468132823705673f, 0.676005363464355f, - 0.467997968196869f, - 0.676364302635193f, 0.467862844467163f, 0.676723062992096f, - 0.467727422714233f, - 0.677081763744354f, 0.467591762542725f, 0.677440345287323f, - 0.467455804347992f, - 0.677798807621002f, 0.467319577932358f, 0.678157210350037f, - 0.467183053493500f, - 0.678515493869781f, 0.467046260833740f, 0.678873658180237f, - 0.466909229755402f, - 0.679231703281403f, 0.466771900653839f, 0.679589688777924f, - 0.466634273529053f, - 0.679947495460510f, 0.466496407985687f, 0.680305242538452f, - 0.466358244419098f, - 0.680662930011749f, 0.466219812631607f, 0.681020438671112f, - 0.466081112623215f, - 0.681377887725830f, 0.465942144393921f, 0.681735157966614f, - 0.465802878141403f, - 0.682092368602753f, 0.465663343667984f, 0.682449519634247f, - 0.465523540973663f, - 0.682806491851807f, 0.465383470058441f, 0.683163404464722f, - 0.465243130922318f, - 0.683520197868347f, 0.465102523565292f, 0.683876872062683f, - 0.464961618185043f, - 0.684233427047729f, 0.464820444583893f, 0.684589862823486f, - 0.464679002761841f, - 0.684946238994598f, 0.464537292718887f, 0.685302436351776f, - 0.464395314455032f, - 0.685658574104309f, 0.464253038167953f, 0.686014592647552f, - 0.464110493659973f, - 0.686370551586151f, 0.463967710733414f, 0.686726331710815f, - 0.463824629783630f, - 0.687082052230835f, 0.463681250810623f, 0.687437593936920f, - 0.463537633419037f, - 0.687793076038361f, 0.463393747806549f, 0.688148438930511f, - 0.463249564170837f, - 0.688503682613373f, 0.463105112314224f, 0.688858866691589f, - 0.462960392236710f, - 0.689213871955872f, 0.462815403938293f, 0.689568817615509f, - 0.462670147418976f, - 0.689923584461212f, 0.462524622678757f, 0.690278291702271f, - 0.462378799915314f, - 0.690632879734039f, 0.462232738733292f, 0.690987348556519f, - 0.462086379528046f, - 0.691341698169708f, 0.461939752101898f, 0.691695988178253f, - 0.461792886257172f, - 0.692050099372864f, 0.461645722389221f, 0.692404091358185f, - 0.461498260498047f, - 0.692758023738861f, 0.461350560188293f, 0.693111836910248f, - 0.461202591657639f, - 0.693465530872345f, 0.461054325103760f, 0.693819046020508f, - 0.460905820131302f, - 0.694172501564026f, 0.460757017135620f, 0.694525837898254f, - 0.460607945919037f, - 0.694879114627838f, 0.460458606481552f, 0.695232212543488f, - 0.460309028625488f, - 0.695585191249847f, 0.460159152746201f, 0.695938050746918f, - 0.460008978843689f, - 0.696290850639343f, 0.459858566522598f, 0.696643471717834f, - 0.459707885980606f, - 0.696996033191681f, 0.459556937217712f, 0.697348415851593f, - 0.459405690431595f, - 0.697700738906860f, 0.459254205226898f, 0.698052942752838f, - 0.459102421998978f, - 0.698404967784882f, 0.458950400352478f, 0.698756933212280f, - 0.458798080682755f, - 0.699108779430389f, 0.458645492792130f, 0.699460506439209f, - 0.458492636680603f, - 0.699812114238739f, 0.458339542150497f, 0.700163602828979f, - 0.458186149597168f, - 0.700514972209930f, 0.458032488822937f, 0.700866222381592f, - 0.457878559827805f, - 0.701217353343964f, 0.457724362611771f, 0.701568365097046f, - 0.457569897174835f, - 0.701919257640839f, 0.457415163516998f, 0.702270030975342f, - 0.457260161638260f, - 0.702620685100555f, 0.457104891538620f, 0.702971220016479f, - 0.456949323415756f, - 0.703321635723114f, 0.456793516874313f, 0.703671932220459f, - 0.456637442111969f, - 0.704022109508514f, 0.456481099128723f, 0.704372167587280f, - 0.456324487924576f, - 0.704722046852112f, 0.456167578697205f, 0.705071866512299f, - 0.456010431051254f, - 0.705421566963196f, 0.455853015184402f, 0.705771148204803f, - 0.455695331096649f, - 0.706120610237122f, 0.455537378787994f, 0.706469953060150f, - 0.455379128456116f, - 0.706819176673889f, 0.455220639705658f, 0.707168221473694f, - 0.455061882734299f, - 0.707517206668854f, 0.454902857542038f, 0.707866072654724f, - 0.454743564128876f, - 0.708214759826660f, 0.454584002494812f, 0.708563387393951f, - 0.454424172639847f, - 0.708911836147308f, 0.454264044761658f, 0.709260225296021f, - 0.454103678464890f, - 0.709608435630798f, 0.453943043947220f, 0.709956526756287f, - 0.453782171010971f, - 0.710304558277130f, 0.453621000051498f, 0.710652410984039f, - 0.453459560871124f, - 0.711000144481659f, 0.453297853469849f, 0.711347758769989f, - 0.453135877847672f, - 0.711695253849030f, 0.452973634004593f, 0.712042629718781f, - 0.452811151742935f, - 0.712389826774597f, 0.452648371458054f, 0.712736964225769f, - 0.452485352754593f, - 0.713083922863007f, 0.452322036027908f, 0.713430821895599f, - 0.452158480882645f, - 0.713777542114258f, 0.451994657516479f, 0.714124143123627f, - 0.451830536127090f, - 0.714470624923706f, 0.451666176319122f, 0.714816987514496f, - 0.451501548290253f, - 0.715163230895996f, 0.451336652040482f, 0.715509355068207f, - 0.451171487569809f, - 0.715855300426483f, 0.451006084680557f, 0.716201186180115f, - 0.450840383768082f, - 0.716546893119812f, 0.450674414634705f, 0.716892480850220f, - 0.450508207082748f, - 0.717238008975983f, 0.450341701507568f, 0.717583298683167f, - 0.450174957513809f, - 0.717928528785706f, 0.450007945299149f, 0.718273639678955f, - 0.449840664863586f, - 0.718618571758270f, 0.449673116207123f, 0.718963444232941f, - 0.449505299329758f, - 0.719308137893677f, 0.449337244033813f, 0.719652712345123f, - 0.449168890714645f, - 0.719997107982636f, 0.449000298976898f, 0.720341444015503f, - 0.448831409215927f, - 0.720685660839081f, 0.448662281036377f, 0.721029698848724f, - 0.448492884635925f, - 0.721373617649078f, 0.448323249816895f, 0.721717417240143f, - 0.448153316974640f, - 0.722061097621918f, 0.447983115911484f, 0.722404599189758f, - 0.447812676429749f, - 0.722747981548309f, 0.447641968727112f, 0.723091304302216f, - 0.447470992803574f, - 0.723434448242188f, 0.447299748659134f, 0.723777413368225f, - 0.447128236293793f, - 0.724120318889618f, 0.446956485509872f, 0.724463045597076f, - 0.446784436702728f, - 0.724805653095245f, 0.446612149477005f, 0.725148141384125f, - 0.446439594030380f, - 0.725490510463715f, 0.446266770362854f, 0.725832700729370f, - 0.446093708276749f, - 0.726174771785736f, 0.445920348167419f, 0.726516723632813f, - 0.445746749639511f, - 0.726858556270599f, 0.445572882890701f, 0.727200269699097f, - 0.445398747920990f, - 0.727541804313660f, 0.445224374532700f, 0.727883219718933f, - 0.445049703121185f, - 0.728224515914917f, 0.444874793291092f, 0.728565633296967f, - 0.444699615240097f, - 0.728906631469727f, 0.444524168968201f, 0.729247510433197f, - 0.444348484277725f, - 0.729588270187378f, 0.444172531366348f, 0.729928910732269f, - 0.443996280431747f, - 0.730269372463226f, 0.443819820880890f, 0.730609714984894f, - 0.443643063306808f, - 0.730949878692627f, 0.443466067314148f, 0.731289982795715f, - 0.443288803100586f, - 0.731629908084869f, 0.443111270666122f, 0.731969714164734f, - 0.442933470010757f, - 0.732309341430664f, 0.442755430936813f, 0.732648849487305f, - 0.442577123641968f, - 0.732988238334656f, 0.442398548126221f, 0.733327507972717f, - 0.442219734191895f, - 0.733666598796844f, 0.442040622234344f, 0.734005570411682f, - 0.441861271858215f, - 0.734344422817230f, 0.441681683063507f, 0.734683096408844f, - 0.441501796245575f, - 0.735021650791168f, 0.441321671009064f, 0.735360085964203f, - 0.441141277551651f, - 0.735698342323303f, 0.440960645675659f, 0.736036539077759f, - 0.440779715776443f, - 0.736374497413635f, 0.440598547458649f, 0.736712396144867f, - 0.440417140722275f, - 0.737050116062164f, 0.440235435962677f, 0.737387716770172f, - 0.440053492784500f, - 0.737725138664246f, 0.439871311187744f, 0.738062441349030f, - 0.439688831567764f, - 0.738399624824524f, 0.439506113529205f, 0.738736629486084f, - 0.439323127269745f, - 0.739073514938354f, 0.439139902591705f, 0.739410281181335f, - 0.438956409692764f, - 0.739746868610382f, 0.438772648572922f, 0.740083336830139f, - 0.438588619232178f, - 0.740419685840607f, 0.438404351472855f, 0.740755856037140f, - 0.438219845294952f, - 0.741091907024384f, 0.438035041093826f, 0.741427779197693f, - 0.437849998474121f, - 0.741763532161713f, 0.437664687633514f, 0.742099165916443f, - 0.437479138374329f, - 0.742434620857239f, 0.437293320894241f, 0.742769956588745f, - 0.437107264995575f, - 0.743105113506317f, 0.436920911073685f, 0.743440151214600f, - 0.436734348535538f, - 0.743775069713593f, 0.436547487974167f, 0.744109809398651f, - 0.436360388994217f, - 0.744444429874420f, 0.436173021793365f, 0.744778931140900f, - 0.435985416173935f, - 0.745113253593445f, 0.435797542333603f, 0.745447397232056f, - 0.435609430074692f, - 0.745781481266022f, 0.435421019792557f, 0.746115326881409f, - 0.435232400894165f, - 0.746449112892151f, 0.435043483972549f, 0.746782720088959f, - 0.434854328632355f, - 0.747116148471832f, 0.434664934873581f, 0.747449457645416f, - 0.434475272893906f, - 0.747782647609711f, 0.434285342693329f, 0.748115658760071f, - 0.434095174074173f, - 0.748448550701141f, 0.433904737234116f, 0.748781263828278f, - 0.433714061975479f, - 0.749113857746124f, 0.433523118495941f, 0.749446272850037f, - 0.433331936597824f, - 0.749778568744659f, 0.433140486478806f, 0.750110685825348f, - 0.432948768138886f, - 0.750442683696747f, 0.432756811380386f, 0.750774562358856f, - 0.432564586400986f, - 0.751106262207031f, 0.432372123003006f, 0.751437783241272f, - 0.432179391384125f, - 0.751769185066223f, 0.431986421346664f, 0.752100467681885f, - 0.431793183088303f, - 0.752431571483612f, 0.431599706411362f, 0.752762496471405f, - 0.431405961513519f, - 0.753093302249908f, 0.431211978197098f, 0.753423988819122f, - 0.431017726659775f, - 0.753754496574402f, 0.430823236703873f, 0.754084885120392f, - 0.430628478527069f, - 0.754415094852448f, 0.430433481931686f, 0.754745125770569f, - 0.430238217115402f, - 0.755075037479401f, 0.430042684078217f, 0.755404829978943f, - 0.429846942424774f, - 0.755734443664551f, 0.429650902748108f, 0.756063878536224f, - 0.429454624652863f, - 0.756393194198608f, 0.429258108139038f, 0.756722390651703f, - 0.429061323404312f, - 0.757051348686218f, 0.428864300251007f, 0.757380247116089f, - 0.428667008876801f, - 0.757708966732025f, 0.428469479084015f, 0.758037507534027f, - 0.428271710872650f, - 0.758365929126740f, 0.428073674440384f, 0.758694171905518f, - 0.427875369787216f, - 0.759022235870361f, 0.427676826715469f, 0.759350180625916f, - 0.427478045225143f, - 0.759678006172180f, 0.427278995513916f, 0.760005652904511f, - 0.427079707384110f, - 0.760333120822906f, 0.426880151033401f, 0.760660469532013f, - 0.426680356264114f, - 0.760987639427185f, 0.426480293273926f, 0.761314690113068f, - 0.426279991865158f, - 0.761641561985016f, 0.426079452037811f, 0.761968255043030f, - 0.425878643989563f, - 0.762294828891754f, 0.425677597522736f, 0.762621283531189f, - 0.425476282835007f, - 0.762947499752045f, 0.425274729728699f, 0.763273596763611f, - 0.425072938203812f, - 0.763599574565887f, 0.424870878458023f, 0.763925373554230f, - 0.424668580293655f, - 0.764250993728638f, 0.424466013908386f, 0.764576494693756f, - 0.424263238906860f, - 0.764901816844940f, 0.424060165882111f, 0.765226960182190f, - 0.423856884241104f, - 0.765551984310150f, 0.423653304576874f, 0.765876889228821f, - 0.423449516296387f, - 0.766201555728912f, 0.423245459794998f, 0.766526103019714f, - 0.423041164875031f, - 0.766850471496582f, 0.422836631536484f, 0.767174720764160f, - 0.422631829977036f, - 0.767498791217804f, 0.422426789999008f, 0.767822742462158f, - 0.422221481800079f, - 0.768146514892578f, 0.422015935182571f, 0.768470108509064f, - 0.421810150146484f, - 0.768793523311615f, 0.421604126691818f, 0.769116818904877f, - 0.421397835016251f, - 0.769439935684204f, 0.421191304922104f, 0.769762933254242f, - 0.420984506607056f, - 0.770085752010345f, 0.420777499675751f, 0.770408391952515f, - 0.420570224523544f, - 0.770730912685394f, 0.420362681150436f, 0.771053194999695f, - 0.420154929161072f, - 0.771375417709351f, 0.419946908950806f, 0.771697402000427f, - 0.419738620519638f, - 0.772019267082214f, 0.419530123472214f, 0.772340953350067f, - 0.419321358203888f, - 0.772662520408630f, 0.419112354516983f, 0.772983849048615f, - 0.418903112411499f, - 0.773305058479309f, 0.418693602085114f, 0.773626148700714f, - 0.418483853340149f, - 0.773947000503540f, 0.418273866176605f, 0.774267733097076f, - 0.418063640594482f, - 0.774588346481323f, 0.417853146791458f, 0.774908721446991f, - 0.417642414569855f, - 0.775228977203369f, 0.417431443929672f, 0.775549054145813f, - 0.417220205068588f, - 0.775869011878967f, 0.417008757591248f, 0.776188731193542f, - 0.416797041893005f, - 0.776508331298828f, 0.416585087776184f, 0.776827812194824f, - 0.416372895240784f, - 0.777147054672241f, 0.416160434484482f, 0.777466177940369f, - 0.415947735309601f, - 0.777785122394562f, 0.415734797716141f, 0.778103888034821f, - 0.415521621704102f, - 0.778422534465790f, 0.415308207273483f, 0.778741002082825f, - 0.415094524621964f, - 0.779059290885925f, 0.414880603551865f, 0.779377400875092f, - 0.414666473865509f, - 0.779695332050323f, 0.414452046155930f, 0.780013144016266f, - 0.414237409830093f, - 0.780330777168274f, 0.414022535085678f, 0.780648231506348f, - 0.413807392120361f, - 0.780965566635132f, 0.413592010736465f, 0.781282722949982f, - 0.413376390933990f, - 0.781599700450897f, 0.413160532712936f, 0.781916499137878f, - 0.412944436073303f, - 0.782233119010925f, 0.412728071212769f, 0.782549619674683f, - 0.412511497735977f, - 0.782865881919861f, 0.412294656038284f, 0.783182024955750f, - 0.412077575922012f, - 0.783498048782349f, 0.411860257387161f, 0.783813834190369f, - 0.411642700433731f, - 0.784129500389099f, 0.411424905061722f, 0.784444928169250f, - 0.411206841468811f, - 0.784760236740112f, 0.410988569259644f, 0.785075426101685f, - 0.410770028829575f, - 0.785390377044678f, 0.410551249980927f, 0.785705149173737f, - 0.410332232713699f, - 0.786019802093506f, 0.410112977027893f, 0.786334276199341f, - 0.409893482923508f, - 0.786648571491241f, 0.409673750400543f, 0.786962687969208f, - 0.409453779459000f, - 0.787276685237885f, 0.409233570098877f, 0.787590444087982f, - 0.409013092517853f, - 0.787904083728790f, 0.408792406320572f, 0.788217544555664f, - 0.408571451902390f, - 0.788530826568604f, 0.408350288867950f, 0.788843929767609f, - 0.408128857612610f, - 0.789156913757324f, 0.407907217741013f, 0.789469659328461f, - 0.407685309648514f, - 0.789782285690308f, 0.407463163137436f, 0.790094733238220f, - 0.407240778207779f, - 0.790407001972198f, 0.407018154859543f, 0.790719091892242f, - 0.406795293092728f, - 0.791031002998352f, 0.406572192907333f, 0.791342735290527f, - 0.406348884105682f, - 0.791654348373413f, 0.406125307083130f, 0.791965723037720f, - 0.405901491641998f, - 0.792276978492737f, 0.405677437782288f, 0.792588055133820f, - 0.405453115701675f, - 0.792898952960968f, 0.405228585004807f, 0.793209671974182f, - 0.405003815889359f, - 0.793520212173462f, 0.404778808355331f, 0.793830573558807f, - 0.404553562402725f, - 0.794140756130219f, 0.404328078031540f, 0.794450819492340f, - 0.404102355241776f, - 0.794760644435883f, 0.403876423835754f, 0.795070350170136f, - 0.403650224208832f, - 0.795379877090454f, 0.403423786163330f, 0.795689165592194f, - 0.403197109699249f, - 0.795998334884644f, 0.402970194816589f, 0.796307325363159f, - 0.402743041515350f, - 0.796616137027740f, 0.402515679597855f, 0.796924769878387f, - 0.402288049459457f, - 0.797233223915100f, 0.402060180902481f, 0.797541558742523f, - 0.401832103729248f, - 0.797849655151367f, 0.401603758335114f, 0.798157572746277f, - 0.401375204324722f, - 0.798465371131897f, 0.401146411895752f, 0.798772931098938f, - 0.400917351245880f, - 0.799080371856689f, 0.400688081979752f, 0.799387574195862f, - 0.400458574295044f, - 0.799694657325745f, 0.400228828191757f, 0.800001561641693f, - 0.399998843669891f, - 0.800308227539063f, 0.399768620729446f, 0.800614774227142f, - 0.399538189172745f, - 0.800921142101288f, 0.399307489395142f, 0.801227271556854f, - 0.399076581001282f, - 0.801533281803131f, 0.398845434188843f, 0.801839113235474f, - 0.398614019155502f, - 0.802144765853882f, 0.398382395505905f, 0.802450239658356f, - 0.398150533437729f, - 0.802755534648895f, 0.397918462753296f, 0.803060650825500f, - 0.397686123847961f, - 0.803365588188171f, 0.397453576326370f, 0.803670346736908f, - 0.397220760583878f, - 0.803974866867065f, 0.396987736225128f, 0.804279267787933f, - 0.396754473447800f, - 0.804583489894867f, 0.396520972251892f, 0.804887533187866f, - 0.396287262439728f, - 0.805191397666931f, 0.396053284406662f, 0.805495083332062f, - 0.395819097757339f, - 0.805798590183258f, 0.395584672689438f, 0.806101918220520f, - 0.395350009202957f, - 0.806405067443848f, 0.395115107297897f, 0.806707978248596f, - 0.394879996776581f, - 0.807010769844055f, 0.394644618034363f, 0.807313382625580f, - 0.394409030675888f, - 0.807615816593170f, 0.394173204898834f, 0.807918012142181f, - 0.393937170505524f, - 0.808220088481903f, 0.393700867891312f, 0.808521986007690f, - 0.393464356660843f, - 0.808823645114899f, 0.393227607011795f, 0.809125185012817f, - 0.392990618944168f, - 0.809426486492157f, 0.392753422260284f, 0.809727668762207f, - 0.392515957355499f, - 0.810028612613678f, 0.392278283834457f, 0.810329377651215f, - 0.392040401697159f, - 0.810629963874817f, 0.391802251338959f, 0.810930430889130f, - 0.391563892364502f, - 0.811230659484863f, 0.391325294971466f, 0.811530709266663f, - 0.391086459159851f, - 0.811830580234528f, 0.390847414731979f, 0.812130272388458f, - 0.390608131885529f, - 0.812429726123810f, 0.390368610620499f, 0.812729060649872f, - 0.390128880739212f, - 0.813028216362000f, 0.389888882637024f, 0.813327133655548f, - 0.389648675918579f, - 0.813625931739807f, 0.389408260583878f, 0.813924491405487f, - 0.389167606830597f, - 0.814222872257233f, 0.388926714658737f, 0.814521074295044f, - 0.388685584068298f, - 0.814819097518921f, 0.388444244861603f, 0.815116941928864f, - 0.388202667236328f, - 0.815414607524872f, 0.387960851192474f, 0.815712094306946f, - 0.387718826532364f, - 0.816009342670441f, 0.387476563453674f, 0.816306471824646f, - 0.387234061956406f, - 0.816603362560272f, 0.386991351842880f, 0.816900074481964f, - 0.386748403310776f, - 0.817196667194366f, 0.386505216360092f, 0.817493021488190f, - 0.386261820793152f, - 0.817789137363434f, 0.386018186807632f, 0.818085134029388f, - 0.385774344205856f, - 0.818380951881409f, 0.385530263185501f, 0.818676531314850f, - 0.385285943746567f, - 0.818971931934357f, 0.385041415691376f, 0.819267153739929f, - 0.384796649217606f, - 0.819562196731567f, 0.384551674127579f, 0.819857060909271f, - 0.384306460618973f, - 0.820151746273041f, 0.384061008691788f, 0.820446193218231f, - 0.383815348148346f, - 0.820740520954132f, 0.383569449186325f, 0.821034610271454f, - 0.383323341608047f, - 0.821328520774841f, 0.383076995611191f, 0.821622252464294f, - 0.382830440998077f, - 0.821915745735168f, 0.382583618164063f, 0.822209119796753f, - 0.382336616516113f, - 0.822502255439758f, 0.382089376449585f, 0.822795212268829f, - 0.381841897964478f, - 0.823087990283966f, 0.381594210863113f, 0.823380589485168f, - 0.381346285343170f, - 0.823673009872437f, 0.381098151206970f, 0.823965191841125f, - 0.380849778652191f, - 0.824257194995880f, 0.380601197481155f, 0.824549019336700f, - 0.380352377891541f, - 0.824840664863586f, 0.380103349685669f, 0.825132071971893f, - 0.379854083061218f, - 0.825423359870911f, 0.379604607820511f, 0.825714409351349f, - 0.379354894161224f, - 0.826005280017853f, 0.379104942083359f, 0.826295912265778f, - 0.378854811191559f, - 0.826586425304413f, 0.378604412078857f, 0.826876699924469f, - 0.378353834152222f, - 0.827166795730591f, 0.378102988004684f, 0.827456712722778f, - 0.377851963043213f, - 0.827746450901031f, 0.377600699663162f, 0.828035950660706f, - 0.377349197864532f, - 0.828325271606445f, 0.377097487449646f, 0.828614413738251f, - 0.376845568418503f, - 0.828903317451477f, 0.376593410968781f, 0.829192101955414f, - 0.376341015100479f, - 0.829480648040771f, 0.376088410615921f, 0.829769015312195f, - 0.375835597515106f, - 0.830057144165039f, 0.375582575798035f, 0.830345153808594f, - 0.375329315662384f, - 0.830632925033569f, 0.375075817108154f, 0.830920517444611f, - 0.374822109937668f, - 0.831207871437073f, 0.374568194150925f, 0.831495106220245f, - 0.374314039945602f, - 0.831782102584839f, 0.374059677124023f, 0.832068860530853f, - 0.373805105686188f, - 0.832355499267578f, 0.373550295829773f, 0.832641899585724f, - 0.373295277357101f, - 0.832928121089935f, 0.373040050268173f, 0.833214163780212f, - 0.372784584760666f, - 0.833499968051910f, 0.372528880834579f, 0.833785593509674f, - 0.372272998094559f, - 0.834071040153503f, 0.372016876935959f, 0.834356248378754f, - 0.371760547161102f, - 0.834641277790070f, 0.371503978967667f, 0.834926128387451f, - 0.371247202157974f, - 0.835210800170898f, 0.370990216732025f, 0.835495233535767f, - 0.370732992887497f, - 0.835779488086700f, 0.370475560426712f, 0.836063504219055f, - 0.370217919349670f, - 0.836347401142120f, 0.369960039854050f, 0.836631059646606f, - 0.369701951742172f, - 0.836914479732513f, 0.369443655014038f, 0.837197780609131f, - 0.369185149669647f, - 0.837480843067169f, 0.368926405906677f, 0.837763667106628f, - 0.368667453527451f, - 0.838046371936798f, 0.368408292531967f, 0.838328838348389f, - 0.368148893117905f, - 0.838611066341400f, 0.367889285087585f, 0.838893175125122f, - 0.367629468441010f, - 0.839175045490265f, 0.367369443178177f, 0.839456677436829f, - 0.367109179496765f, - 0.839738130569458f, 0.366848707199097f, 0.840019404888153f, - 0.366588026285172f, - 0.840300500392914f, 0.366327136754990f, 0.840581357479095f, - 0.366066008806229f, - 0.840862035751343f, 0.365804702043533f, 0.841142535209656f, - 0.365543156862259f, - 0.841422796249390f, 0.365281373262405f, 0.841702818870544f, - 0.365019410848618f, - 0.841982722282410f, 0.364757210016251f, 0.842262387275696f, - 0.364494800567627f, - 0.842541813850403f, 0.364232182502747f, 0.842821121215820f, - 0.363969355821610f, - 0.843100130558014f, 0.363706320524216f, 0.843379020690918f, - 0.363443046808243f, - 0.843657672405243f, 0.363179564476013f, 0.843936145305634f, - 0.362915903329849f, - 0.844214379787445f, 0.362651973962784f, 0.844492435455322f, - 0.362387865781784f, - 0.844770252704620f, 0.362123548984528f, 0.845047891139984f, - 0.361858993768692f, - 0.845325350761414f, 0.361594229936600f, 0.845602571964264f, - 0.361329287290573f, - 0.845879614353180f, 0.361064106225967f, 0.846156477928162f, - 0.360798716545105f, - 0.846433103084564f, 0.360533088445663f, 0.846709489822388f, - 0.360267281532288f, - 0.846985757350922f, 0.360001266002655f, 0.847261726856232f, - 0.359735012054443f, - 0.847537577152252f, 0.359468549489975f, 0.847813189029694f, - 0.359201908111572f, - 0.848088562488556f, 0.358935028314590f, 0.848363757133484f, - 0.358667939901352f, - 0.848638772964478f, 0.358400642871857f, 0.848913550376892f, - 0.358133137226105f, - 0.849188148975372f, 0.357865422964096f, 0.849462509155273f, - 0.357597470283508f, - 0.849736690521240f, 0.357329338788986f, 0.850010633468628f, - 0.357060998678207f, - 0.850284397602081f, 0.356792420148849f, 0.850557923316956f, - 0.356523662805557f, - 0.850831270217896f, 0.356254696846008f, 0.851104438304901f, - 0.355985492467880f, - 0.851377367973328f, 0.355716109275818f, 0.851650118827820f, - 0.355446487665176f, - 0.851922631263733f, 0.355176687240601f, 0.852194905281067f, - 0.354906648397446f, - 0.852467060089111f, 0.354636400938034f, 0.852738916873932f, - 0.354365974664688f, - 0.853010654449463f, 0.354095309972763f, 0.853282094001770f, - 0.353824466466904f, - 0.853553414344788f, 0.353553384542465f, 0.853824436664581f, - 0.353282123804092f, - 0.854095339775085f, 0.353010624647141f, 0.854365944862366f, - 0.352738946676254f, - 0.854636430740356f, 0.352467030286789f, 0.854906618595123f, - 0.352194935083389f, - 0.855176687240601f, 0.351922631263733f, 0.855446517467499f, - 0.351650089025497f, - 0.855716109275818f, 0.351377367973328f, 0.855985522270203f, - 0.351104438304901f, - 0.856254696846008f, 0.350831300020218f, 0.856523692607880f, - 0.350557953119278f, - 0.856792449951172f, 0.350284397602081f, 0.857060968875885f, - 0.350010633468628f, - 0.857329368591309f, 0.349736660718918f, 0.857597470283508f, - 0.349462509155273f, - 0.857865393161774f, 0.349188119173050f, 0.858133137226105f, - 0.348913550376892f, - 0.858400642871857f, 0.348638743162155f, 0.858667910099030f, - 0.348363757133484f, - 0.858934998512268f, 0.348088562488556f, 0.859201908111572f, - 0.347813159227371f, - 0.859468579292297f, 0.347537547349930f, 0.859735012054443f, - 0.347261756658554f, - 0.860001266002655f, 0.346985727548599f, 0.860267281532288f, - 0.346709519624710f, - 0.860533118247986f, 0.346433073282242f, 0.860798716545105f, - 0.346156448125839f, - 0.861064076423645f, 0.345879614353180f, 0.861329257488251f, - 0.345602601766586f, - 0.861594259738922f, 0.345325350761414f, 0.861859023571014f, - 0.345047920942307f, - 0.862123548984528f, 0.344770282506943f, 0.862387895584106f, - 0.344492435455322f, - 0.862652003765106f, 0.344214379787445f, 0.862915873527527f, - 0.343936115503311f, - 0.863179564476013f, 0.343657672405243f, 0.863443076610565f, - 0.343379020690918f, - 0.863706290721893f, 0.343100160360336f, 0.863969385623932f, - 0.342821091413498f, - 0.864232182502747f, 0.342541843652725f, 0.864494800567627f, - 0.342262357473373f, - 0.864757239818573f, 0.341982692480087f, 0.865019381046295f, - 0.341702848672867f, - 0.865281403064728f, 0.341422766447067f, 0.865543127059937f, - 0.341142505407333f, - 0.865804672241211f, 0.340862035751343f, 0.866066038608551f, - 0.340581357479095f, - 0.866327106952667f, 0.340300500392914f, 0.866588056087494f, - 0.340019434690475f, - 0.866848707199097f, 0.339738160371780f, 0.867109179496765f, - 0.339456677436829f, - 0.867369413375854f, 0.339175015687943f, 0.867629468441010f, - 0.338893145322800f, - 0.867889285087585f, 0.338611096143723f, 0.868148922920227f, - 0.338328808546066f, - 0.868408262729645f, 0.338046342134476f, 0.868667483329773f, - 0.337763696908951f, - 0.868926405906677f, 0.337480813264847f, 0.869185149669647f, - 0.337197750806808f, - 0.869443655014038f, 0.336914509534836f, 0.869701981544495f, - 0.336631029844284f, - 0.869960069656372f, 0.336347371339798f, 0.870217919349670f, - 0.336063534021378f, - 0.870475590229034f, 0.335779488086700f, 0.870733022689819f, - 0.335495233535767f, - 0.870990216732025f, 0.335210770368576f, 0.871247172355652f, - 0.334926128387451f, - 0.871503949165344f, 0.334641307592392f, 0.871760547161102f, - 0.334356248378754f, - 0.872016847133636f, 0.334071010351181f, 0.872272968292236f, - 0.333785593509674f, - 0.872528910636902f, 0.333499968051910f, 0.872784554958344f, - 0.333214133977890f, - 0.873040020465851f, 0.332928121089935f, 0.873295307159424f, - 0.332641899585724f, - 0.873550295829773f, 0.332355499267578f, 0.873805105686188f, - 0.332068890333176f, - 0.874059677124023f, 0.331782072782516f, 0.874314069747925f, - 0.331495076417923f, - 0.874568223953247f, 0.331207901239395f, 0.874822139739990f, - 0.330920487642288f, - 0.875075817108154f, 0.330632925033569f, 0.875329315662384f, - 0.330345153808594f, - 0.875582575798035f, 0.330057173967361f, 0.875835597515106f, - 0.329769015312195f, - 0.876088440418243f, 0.329480648040771f, 0.876341044902802f, - 0.329192101955414f, - 0.876593410968781f, 0.328903347253799f, 0.876845538616180f, - 0.328614413738251f, - 0.877097487449646f, 0.328325271606445f, 0.877349197864532f, - 0.328035950660706f, - 0.877600669860840f, 0.327746421098709f, 0.877851963043213f, - 0.327456712722778f, - 0.878103017807007f, 0.327166795730591f, 0.878353834152222f, - 0.326876699924469f, - 0.878604412078857f, 0.326586425304413f, 0.878854811191559f, - 0.326295942068100f, - 0.879104971885681f, 0.326005280017853f, 0.879354894161224f, - 0.325714409351349f, - 0.879604578018188f, 0.325423330068588f, 0.879854083061218f, - 0.325132101774216f, - 0.880103349685669f, 0.324840664863586f, 0.880352377891541f, - 0.324549019336700f, - 0.880601167678833f, 0.324257194995880f, 0.880849778652191f, - 0.323965191841125f, - 0.881098151206970f, 0.323672980070114f, 0.881346285343170f, - 0.323380589485168f, - 0.881594181060791f, 0.323088020086288f, 0.881841897964478f, - 0.322795242071152f, - 0.882089376449585f, 0.322502255439758f, 0.882336616516113f, - 0.322209119796753f, - 0.882583618164063f, 0.321915775537491f, 0.882830440998077f, - 0.321622252464294f, - 0.883076965808868f, 0.321328520774841f, 0.883323311805725f, - 0.321034610271454f, - 0.883569478988647f, 0.320740520954132f, 0.883815348148346f, - 0.320446223020554f, - 0.884061038494110f, 0.320151746273041f, 0.884306430816650f, - 0.319857090711594f, - 0.884551644325256f, 0.319562226533890f, 0.884796679019928f, - 0.319267183542252f, - 0.885041415691376f, 0.318971961736679f, 0.885285973548889f, - 0.318676531314850f, - 0.885530233383179f, 0.318380922079086f, 0.885774314403534f, - 0.318085134029388f, - 0.886018216609955f, 0.317789167165756f, 0.886261820793152f, - 0.317492991685867f, - 0.886505246162415f, 0.317196637392044f, 0.886748373508453f, - 0.316900104284287f, - 0.886991322040558f, 0.316603392362595f, 0.887234091758728f, - 0.316306471824646f, - 0.887476563453674f, 0.316009372472763f, 0.887718796730042f, - 0.315712094306946f, - 0.887960851192474f, 0.315414607524872f, 0.888202667236328f, - 0.315116971731186f, - 0.888444244861603f, 0.314819127321243f, 0.888685584068298f, - 0.314521104097366f, - 0.888926684856415f, 0.314222872257233f, 0.889167606830597f, - 0.313924491405487f, - 0.889408230781555f, 0.313625901937485f, 0.889648675918579f, - 0.313327133655548f, - 0.889888882637024f, 0.313028186559677f, 0.890128850936890f, - 0.312729060649872f, - 0.890368640422821f, 0.312429755926132f, 0.890608131885529f, - 0.312130242586136f, - 0.890847444534302f, 0.311830550432205f, 0.891086459159851f, - 0.311530679464340f, - 0.891325294971466f, 0.311230629682541f, 0.891563892364502f, - 0.310930401086807f, - 0.891802251338959f, 0.310629993677139f, 0.892040371894836f, - 0.310329377651215f, - 0.892278313636780f, 0.310028612613678f, 0.892515957355499f, - 0.309727638959885f, - 0.892753422260284f, 0.309426486492157f, 0.892990648746490f, - 0.309125155210495f, - 0.893227577209473f, 0.308823645114899f, 0.893464326858521f, - 0.308521956205368f, - 0.893700897693634f, 0.308220088481903f, 0.893937170505524f, - 0.307918041944504f, - 0.894173204898834f, 0.307615786790848f, 0.894409060478210f, - 0.307313382625580f, - 0.894644618034363f, 0.307010769844055f, 0.894879996776581f, - 0.306708008050919f, - 0.895115137100220f, 0.306405037641525f, 0.895349979400635f, - 0.306101888418198f, - 0.895584642887115f, 0.305798590183258f, 0.895819067955017f, - 0.305495083332062f, - 0.896053314208984f, 0.305191397666931f, 0.896287262439728f, - 0.304887533187866f, - 0.896520972251892f, 0.304583519697189f, 0.896754503250122f, - 0.304279297590256f, - 0.896987736225128f, 0.303974896669388f, 0.897220790386200f, - 0.303670316934586f, - 0.897453546524048f, 0.303365558385849f, 0.897686123847961f, - 0.303060621023178f, - 0.897918462753296f, 0.302755534648895f, 0.898150563240051f, - 0.302450239658356f, - 0.898382425308228f, 0.302144765853882f, 0.898614048957825f, - 0.301839113235474f, - 0.898845434188843f, 0.301533311605453f, 0.899076581001282f, - 0.301227301359177f, - 0.899307489395142f, 0.300921112298965f, 0.899538159370422f, - 0.300614774227142f, - 0.899768650531769f, 0.300308227539063f, 0.899998843669891f, - 0.300001531839371f, - 0.900228857994080f, 0.299694657325745f, 0.900458574295044f, - 0.299387603998184f, - 0.900688111782074f, 0.299080342054367f, 0.900917351245880f, - 0.298772931098938f, - 0.901146411895752f, 0.298465341329575f, 0.901375174522400f, - 0.298157602548599f, - 0.901603758335114f, 0.297849655151367f, 0.901832103729248f, - 0.297541528940201f, - 0.902060210704803f, 0.297233253717422f, 0.902288019657135f, - 0.296924799680710f, - 0.902515649795532f, 0.296616137027740f, 0.902743041515350f, - 0.296307325363159f, - 0.902970194816589f, 0.295998334884644f, 0.903197109699249f, - 0.295689195394516f, - 0.903423786163330f, 0.295379847288132f, 0.903650224208832f, - 0.295070350170136f, - 0.903876423835754f, 0.294760644435883f, 0.904102385044098f, - 0.294450789690018f, - 0.904328107833862f, 0.294140785932541f, 0.904553592205048f, - 0.293830573558807f, - 0.904778838157654f, 0.293520182371140f, 0.905003845691681f, - 0.293209642171860f, - 0.905228614807129f, 0.292898923158646f, 0.905453145503998f, - 0.292588025331497f, - 0.905677437782288f, 0.292276978492737f, 0.905901491641998f, - 0.291965723037720f, - 0.906125307083130f, 0.291654318571091f, 0.906348884105682f, - 0.291342735290527f, - 0.906572222709656f, 0.291031002998352f, 0.906795322895050f, - 0.290719062089920f, - 0.907018184661865f, 0.290406972169876f, 0.907240808010101f, - 0.290094703435898f, - 0.907463192939758f, 0.289782285690308f, 0.907685279846191f, - 0.289469659328461f, - 0.907907187938690f, 0.289156883955002f, 0.908128857612610f, - 0.288843959569931f, - 0.908350288867950f, 0.288530826568604f, 0.908571481704712f, - 0.288217544555664f, - 0.908792436122894f, 0.287904083728790f, 0.909013092517853f, - 0.287590473890305f, - 0.909233570098877f, 0.287276685237885f, 0.909453809261322f, - 0.286962717771530f, - 0.909673750400543f, 0.286648571491241f, 0.909893512725830f, - 0.286334276199341f, - 0.910112977027893f, 0.286019802093506f, 0.910332262516022f, - 0.285705178976059f, - 0.910551249980927f, 0.285390377044678f, 0.910769999027252f, - 0.285075396299362f, - 0.910988569259644f, 0.284760266542435f, 0.911206841468811f, - 0.284444957971573f, - 0.911424875259399f, 0.284129470586777f, 0.911642670631409f, - 0.283813834190369f, - 0.911860227584839f, 0.283498018980026f, 0.912077546119690f, - 0.283182054758072f, - 0.912294626235962f, 0.282865911722183f, 0.912511467933655f, - 0.282549589872360f, - 0.912728071212769f, 0.282233119010925f, 0.912944436073303f, - 0.281916469335556f, - 0.913160502910614f, 0.281599670648575f, 0.913376390933990f, - 0.281282693147659f, - 0.913592040538788f, 0.280965566635132f, 0.913807392120361f, - 0.280648261308670f, - 0.914022505283356f, 0.280330777168274f, 0.914237439632416f, - 0.280013144016266f, - 0.914452075958252f, 0.279695361852646f, 0.914666473865509f, - 0.279377400875092f, - 0.914880633354187f, 0.279059261083603f, 0.915094554424286f, - 0.278740972280502f, - 0.915308177471161f, 0.278422504663467f, 0.915521621704102f, - 0.278103888034821f, - 0.915734827518463f, 0.277785122394562f, 0.915947735309601f, - 0.277466177940369f, - 0.916160404682159f, 0.277147054672241f, 0.916372895240784f, - 0.276827782392502f, - 0.916585087776184f, 0.276508361101151f, 0.916797041893005f, - 0.276188760995865f, - 0.917008757591248f, 0.275868982076645f, 0.917220234870911f, - 0.275549083948135f, - 0.917431414127350f, 0.275228977203369f, 0.917642414569855f, - 0.274908751249313f, - 0.917853116989136f, 0.274588316679001f, 0.918063640594482f, - 0.274267762899399f, - 0.918273866176605f, 0.273947030305862f, 0.918483853340149f, - 0.273626148700714f, - 0.918693602085114f, 0.273305088281631f, 0.918903112411499f, - 0.272983878850937f, - 0.919112324714661f, 0.272662490606308f, 0.919321358203888f, - 0.272340953350067f, - 0.919530093669891f, 0.272019267082214f, 0.919738650321960f, - 0.271697402000427f, - 0.919946908950806f, 0.271375387907028f, 0.920154929161072f, - 0.271053224802017f, - 0.920362710952759f, 0.270730882883072f, 0.920570194721222f, - 0.270408391952515f, - 0.920777499675751f, 0.270085722208023f, 0.920984506607056f, - 0.269762933254242f, - 0.921191275119781f, 0.269439965486526f, 0.921397805213928f, - 0.269116818904877f, - 0.921604096889496f, 0.268793523311615f, 0.921810150146484f, - 0.268470078706741f, - 0.922015964984894f, 0.268146485090256f, 0.922221481800079f, - 0.267822742462158f, - 0.922426760196686f, 0.267498821020126f, 0.922631800174713f, - 0.267174720764160f, - 0.922836601734161f, 0.266850501298904f, 0.923041164875031f, - 0.266526103019714f, - 0.923245489597321f, 0.266201555728912f, 0.923449516296387f, - 0.265876859426498f, - 0.923653304576874f, 0.265552014112473f, 0.923856854438782f, - 0.265226989984512f, - 0.924060165882111f, 0.264901816844940f, 0.924263238906860f, - 0.264576494693756f, - 0.924466013908386f, 0.264250993728638f, 0.924668610095978f, - 0.263925373554230f, - 0.924870908260345f, 0.263599574565887f, 0.925072908401489f, - 0.263273626565933f, - 0.925274729728699f, 0.262947499752045f, 0.925476312637329f, - 0.262621253728867f, - 0.925677597522736f, 0.262294828891754f, 0.925878643989563f, - 0.261968284845352f, - 0.926079452037811f, 0.261641561985016f, 0.926280021667480f, - 0.261314690113068f, - 0.926480293273926f, 0.260987639427185f, 0.926680326461792f, - 0.260660469532013f, - 0.926880121231079f, 0.260333120822906f, 0.927079677581787f, - 0.260005623102188f, - 0.927278995513916f, 0.259678006172180f, 0.927478015422821f, - 0.259350210428238f, - 0.927676856517792f, 0.259022265672684f, 0.927875399589539f, - 0.258694142103195f, - 0.928073644638062f, 0.258365899324417f, 0.928271710872650f, - 0.258037507534027f, - 0.928469479084015f, 0.257708936929703f, 0.928667008876801f, - 0.257380217313766f, - 0.928864300251007f, 0.257051378488541f, 0.929061353206635f, - 0.256722360849380f, - 0.929258108139038f, 0.256393194198608f, 0.929454624652863f, - 0.256063878536224f, - 0.929650902748108f, 0.255734413862228f, 0.929846942424774f, - 0.255404800176620f, - 0.930042684078217f, 0.255075037479401f, 0.930238187313080f, - 0.254745125770569f, - 0.930433452129364f, 0.254415065050125f, 0.930628478527069f, - 0.254084855318069f, - 0.930823206901550f, 0.253754496574402f, 0.931017756462097f, - 0.253423988819122f, - 0.931211948394775f, 0.253093332052231f, 0.931405961513519f, - 0.252762526273727f, - 0.931599736213684f, 0.252431541681290f, 0.931793212890625f, - 0.252100437879562f, - 0.931986451148987f, 0.251769185066223f, 0.932179391384125f, - 0.251437783241272f, - 0.932372152805328f, 0.251106232404709f, 0.932564616203308f, - 0.250774532556534f, - 0.932756841182709f, 0.250442683696747f, 0.932948768138886f, - 0.250110685825348f, - 0.933140456676483f, 0.249778553843498f, 0.933331906795502f, - 0.249446272850037f, - 0.933523118495941f, 0.249113827943802f, 0.933714091777802f, - 0.248781248927116f, - 0.933904767036438f, 0.248448520898819f, 0.934095203876495f, - 0.248115643858910f, - 0.934285342693329f, 0.247782632708550f, 0.934475243091583f, - 0.247449472546577f, - 0.934664964675903f, 0.247116148471832f, 0.934854328632355f, - 0.246782705187798f, - 0.935043513774872f, 0.246449097990990f, 0.935232400894165f, - 0.246115356683731f, - 0.935421049594879f, 0.245781451463699f, 0.935609400272369f, - 0.245447427034378f, - 0.935797572135925f, 0.245113238692284f, 0.935985386371613f, - 0.244778916239738f, - 0.936173021793365f, 0.244444444775581f, 0.936360359191895f, - 0.244109839200974f, - 0.936547517776489f, 0.243775084614754f, 0.936734318733215f, - 0.243440181016922f, - 0.936920940876007f, 0.243105143308640f, 0.937107264995575f, - 0.242769956588745f, - 0.937293350696564f, 0.242434620857239f, 0.937479138374329f, - 0.242099151015282f, - 0.937664687633514f, 0.241763532161713f, 0.937849998474121f, - 0.241427779197693f, - 0.938035070896149f, 0.241091892123222f, 0.938219845294952f, - 0.240755841135979f, - 0.938404381275177f, 0.240419670939446f, 0.938588619232178f, - 0.240083336830139f, - 0.938772618770599f, 0.239746883511543f, 0.938956379890442f, - 0.239410281181335f, - 0.939139902591705f, 0.239073529839516f, 0.939323127269745f, - 0.238736644387245f, - 0.939506113529205f, 0.238399609923363f, 0.939688861370087f, - 0.238062441349030f, - 0.939871311187744f, 0.237725138664246f, 0.940053522586823f, - 0.237387686967850f, - 0.940235435962677f, 0.237050101161003f, 0.940417110919952f, - 0.236712381243706f, - 0.940598547458649f, 0.236374512314796f, 0.940779745578766f, - 0.236036509275436f, - 0.940960645675659f, 0.235698372125626f, 0.941141307353973f, - 0.235360085964203f, - 0.941321671009064f, 0.235021665692329f, 0.941501796245575f, - 0.234683111310005f, - 0.941681683063507f, 0.234344407916069f, 0.941861271858215f, - 0.234005570411682f, - 0.942040622234344f, 0.233666598796844f, 0.942219734191895f, - 0.233327493071556f, - 0.942398548126221f, 0.232988253235817f, 0.942577123641968f, - 0.232648864388466f, - 0.942755401134491f, 0.232309341430664f, 0.942933499813080f, - 0.231969684362412f, - 0.943111240863800f, 0.231629893183708f, 0.943288803100586f, - 0.231289967894554f, - 0.943466067314148f, 0.230949893593788f, 0.943643093109131f, - 0.230609700083733f, - 0.943819820880890f, 0.230269357562065f, 0.943996310234070f, - 0.229928880929947f, - 0.944172501564026f, 0.229588270187378f, 0.944348454475403f, - 0.229247525334358f, - 0.944524168968201f, 0.228906646370888f, 0.944699645042419f, - 0.228565633296967f, - 0.944874763488770f, 0.228224486112595f, 0.945049703121185f, - 0.227883204817772f, - 0.945224344730377f, 0.227541789412498f, 0.945398747920990f, - 0.227200239896774f, - 0.945572853088379f, 0.226858556270599f, 0.945746779441834f, - 0.226516738533974f, - 0.945920348167419f, 0.226174786686897f, 0.946093678474426f, - 0.225832715630531f, - 0.946266770362854f, 0.225490495562553f, 0.946439623832703f, - 0.225148141384125f, - 0.946612179279327f, 0.224805667996407f, 0.946784436702728f, - 0.224463045597076f, - 0.946956455707550f, 0.224120303988457f, 0.947128236293793f, - 0.223777428269386f, - 0.947299718856812f, 0.223434418439865f, 0.947470963001251f, - 0.223091274499893f, - 0.947641968727112f, 0.222748011350632f, 0.947812676429749f, - 0.222404599189758f, - 0.947983145713806f, 0.222061067819595f, 0.948153316974640f, - 0.221717402338982f, - 0.948323249816895f, 0.221373617649078f, 0.948492884635925f, - 0.221029683947563f, - 0.948662281036377f, 0.220685631036758f, 0.948831439018250f, - 0.220341444015503f, - 0.949000298976898f, 0.219997137784958f, 0.949168920516968f, - 0.219652697443962f, - 0.949337244033813f, 0.219308122992516f, 0.949505329132080f, - 0.218963414430618f, - 0.949673116207123f, 0.218618586659431f, 0.949840664863586f, - 0.218273624777794f, - 0.950007975101471f, 0.217928543686867f, 0.950174987316132f, - 0.217583328485489f, - 0.950341701507568f, 0.217237979173660f, 0.950508177280426f, - 0.216892510652542f, - 0.950674414634705f, 0.216546908020973f, 0.950840353965759f, - 0.216201186180115f, - 0.951006054878235f, 0.215855330228806f, 0.951171517372131f, - 0.215509355068207f, - 0.951336681842804f, 0.215163245797157f, 0.951501548290253f, - 0.214817002415657f, - 0.951666176319122f, 0.214470639824867f, 0.951830565929413f, - 0.214124158024788f, - 0.951994657516479f, 0.213777542114258f, 0.952158451080322f, - 0.213430806994438f, - 0.952322065830231f, 0.213083937764168f, 0.952485322952271f, - 0.212736949324608f, - 0.952648401260376f, 0.212389841675758f, 0.952811121940613f, - 0.212042599916458f, - 0.952973663806915f, 0.211695238947868f, 0.953135907649994f, - 0.211347743868828f, - 0.953297853469849f, 0.211000129580498f, 0.953459560871124f, - 0.210652396082878f, - 0.953620970249176f, 0.210304543375969f, 0.953782141208649f, - 0.209956556558609f, - 0.953943073749542f, 0.209608450531960f, 0.954103708267212f, - 0.209260210394859f, - 0.954264044761658f, 0.208911851048470f, 0.954424142837524f, - 0.208563387393951f, - 0.954584002494812f, 0.208214774727821f, 0.954743564128876f, - 0.207866057753563f, - 0.954902827739716f, 0.207517206668854f, 0.955061912536621f, - 0.207168251276016f, - 0.955220639705658f, 0.206819161772728f, 0.955379128456116f, - 0.206469938158989f, - 0.955537378787994f, 0.206120610237122f, 0.955695331096649f, - 0.205771163105965f, - 0.955853044986725f, 0.205421581864357f, 0.956010460853577f, - 0.205071896314621f, - 0.956167578697205f, 0.204722076654434f, 0.956324458122253f, - 0.204372137784958f, - 0.956481099128723f, 0.204022079706192f, 0.956637442111969f, - 0.203671902418137f, - 0.956793546676636f, 0.203321605920792f, 0.956949353218079f, - 0.202971190214157f, - 0.957104861736298f, 0.202620655298233f, 0.957260131835938f, - 0.202270001173019f, - 0.957415163516998f, 0.201919227838516f, 0.957569897174835f, - 0.201568335294724f, - 0.957724332809448f, 0.201217323541641f, 0.957878530025482f, - 0.200866192579269f, - 0.958032488822937f, 0.200514942407608f, 0.958186149597168f, - 0.200163587927818f, - 0.958339512348175f, 0.199812099337578f, 0.958492636680603f, - 0.199460506439209f, - 0.958645522594452f, 0.199108779430389f, 0.958798050880432f, - 0.198756948113441f, - 0.958950400352478f, 0.198404997587204f, 0.959102451801300f, - 0.198052927851677f, - 0.959254205226898f, 0.197700738906860f, 0.959405720233917f, - 0.197348430752754f, - 0.959556937217712f, 0.196996018290520f, 0.959707856178284f, - 0.196643486618996f, - 0.959858596324921f, 0.196290835738182f, 0.960008978843689f, - 0.195938065648079f, - 0.960159122943878f, 0.195585191249847f, 0.960309028625488f, - 0.195232197642326f, - 0.960458636283875f, 0.194879084825516f, 0.960607945919037f, - 0.194525867700577f, - 0.960757017135620f, 0.194172516465187f, 0.960905790328979f, - 0.193819075822830f, - 0.961054325103760f, 0.193465501070023f, 0.961202561855316f, - 0.193111822009087f, - 0.961350560188293f, 0.192758023738861f, 0.961498260498047f, - 0.192404121160507f, - 0.961645722389221f, 0.192050099372864f, 0.961792886257172f, - 0.191695958375931f, - 0.961939752101898f, 0.191341713070869f, 0.962086379528046f, - 0.190987363457680f, - 0.962232708930969f, 0.190632879734039f, 0.962378799915314f, - 0.190278306603432f, - 0.962524592876434f, 0.189923599362373f, 0.962670147418976f, - 0.189568802714348f, - 0.962815403938293f, 0.189213871955872f, 0.962960422039032f, - 0.188858851790428f, - 0.963105142116547f, 0.188503712415695f, 0.963249564170837f, - 0.188148453831673f, - 0.963393747806549f, 0.187793090939522f, 0.963537633419037f, - 0.187437608838081f, - 0.963681280612946f, 0.187082037329674f, 0.963824629783630f, - 0.186726331710815f, - 0.963967680931091f, 0.186370536684990f, 0.964110493659973f, - 0.186014622449875f, - 0.964253067970276f, 0.185658603906631f, 0.964395284652710f, - 0.185302466154099f, - 0.964537262916565f, 0.184946224093437f, 0.964679002761841f, - 0.184589877724648f, - 0.964820444583893f, 0.184233412146568f, 0.964961588382721f, - 0.183876842260361f, - 0.965102493762970f, 0.183520168066025f, 0.965243160724640f, - 0.183163389563560f, - 0.965383470058441f, 0.182806491851807f, 0.965523540973663f, - 0.182449504733086f, - 0.965663373470306f, 0.182092398405075f, 0.965802907943726f, - 0.181735187768936f, - 0.965942144393921f, 0.181377857923508f, 0.966081082820892f, - 0.181020438671112f, - 0.966219842433929f, 0.180662900209427f, 0.966358244419098f, - 0.180305257439613f, - 0.966496407985687f, 0.179947525262833f, 0.966634273529053f, - 0.179589673876762f, - 0.966771900653839f, 0.179231703281403f, 0.966909229755402f, - 0.178873643279076f, - 0.967046260833740f, 0.178515478968620f, 0.967183053493500f, - 0.178157210350037f, - 0.967319548130035f, 0.177798837423325f, 0.967455804347992f, - 0.177440345287323f, - 0.967591762542725f, 0.177081763744354f, 0.967727422714233f, - 0.176723077893257f, - 0.967862844467163f, 0.176364272832870f, 0.967997968196869f, - 0.176005378365517f, - 0.968132853507996f, 0.175646379590034f, 0.968267440795898f, - 0.175287276506424f, - 0.968401730060577f, 0.174928069114685f, 0.968535780906677f, - 0.174568757414818f, - 0.968669533729553f, 0.174209341406822f, 0.968802988529205f, - 0.173849821090698f, - 0.968936204910278f, 0.173490211367607f, 0.969069123268127f, - 0.173130482435226f, - 0.969201743602753f, 0.172770664095879f, 0.969334125518799f, - 0.172410741448402f, - 0.969466269016266f, 0.172050714492798f, 0.969598054885864f, - 0.171690583229065f, - 0.969729602336884f, 0.171330362558365f, 0.969860911369324f, - 0.170970037579536f, - 0.969991862773895f, 0.170609608292580f, 0.970122575759888f, - 0.170249074697495f, - 0.970253050327301f, 0.169888436794281f, 0.970383226871490f, - 0.169527709484100f, - 0.970513105392456f, 0.169166877865791f, 0.970642685890198f, - 0.168805956840515f, - 0.970772027969360f, 0.168444931507111f, 0.970901072025299f, - 0.168083801865578f, - 0.971029877662659f, 0.167722567915916f, 0.971158385276794f, - 0.167361244559288f, - 0.971286594867706f, 0.166999831795692f, 0.971414566040039f, - 0.166638299822807f, - 0.971542239189148f, 0.166276678442955f, 0.971669614315033f, - 0.165914967656136f, - 0.971796751022339f, 0.165553152561188f, 0.971923589706421f, - 0.165191248059273f, - 0.972050130367279f, 0.164829224348068f, 0.972176432609558f, - 0.164467126131058f, - 0.972302436828613f, 0.164104923605919f, 0.972428143024445f, - 0.163742616772652f, - 0.972553610801697f, 0.163380220532417f, 0.972678780555725f, - 0.163017734885216f, - 0.972803652286530f, 0.162655144929886f, 0.972928285598755f, - 0.162292465567589f, - 0.973052620887756f, 0.161929681897163f, 0.973176658153534f, - 0.161566808819771f, - 0.973300457000732f, 0.161203846335411f, 0.973423957824707f, - 0.160840779542923f, - 0.973547160625458f, 0.160477623343468f, 0.973670125007629f, - 0.160114362835884f, - 0.973792791366577f, 0.159751012921333f, 0.973915159702301f, - 0.159387573599815f, - 0.974037289619446f, 0.159024044871330f, 0.974159121513367f, - 0.158660411834717f, - 0.974280655384064f, 0.158296689391136f, 0.974401950836182f, - 0.157932877540588f, - 0.974522948265076f, 0.157568961381912f, 0.974643647670746f, - 0.157204970717430f, - 0.974764108657837f, 0.156840875744820f, 0.974884271621704f, - 0.156476691365242f, - 0.975004136562347f, 0.156112402677536f, 0.975123703479767f, - 0.155748039484024f, - 0.975243031978607f, 0.155383571982384f, 0.975362062454224f, - 0.155019029974937f, - 0.975480854511261f, 0.154654383659363f, 0.975599288940430f, - 0.154289647936821f, - 0.975717484951019f, 0.153924822807312f, 0.975835442543030f, - 0.153559908270836f, - 0.975953042507172f, 0.153194904327393f, 0.976070404052734f, - 0.152829796075821f, - 0.976187527179718f, 0.152464613318443f, 0.976304292678833f, - 0.152099341154099f, - 0.976420819759369f, 0.151733979582787f, 0.976537048816681f, - 0.151368513703346f, - 0.976653039455414f, 0.151002973318100f, 0.976768672466278f, - 0.150637343525887f, - 0.976884067058563f, 0.150271624326706f, 0.976999223232269f, - 0.149905815720558f, - 0.977114021778107f, 0.149539917707443f, 0.977228581905365f, - 0.149173930287361f, - 0.977342903614044f, 0.148807853460312f, 0.977456867694855f, - 0.148441687226295f, - 0.977570593357086f, 0.148075446486473f, 0.977684020996094f, - 0.147709101438522f, - 0.977797150611877f, 0.147342681884766f, 0.977910041809082f, - 0.146976172924042f, - 0.978022634983063f, 0.146609574556351f, 0.978134930133820f, - 0.146242901682854f, - 0.978246986865997f, 0.145876124501228f, 0.978358685970306f, - 0.145509272813797f, - 0.978470146656036f, 0.145142331719399f, 0.978581368923187f, - 0.144775316119194f, - 0.978692233562469f, 0.144408211112022f, 0.978802859783173f, - 0.144041016697884f, - 0.978913187980652f, 0.143673732876778f, 0.979023277759552f, - 0.143306359648705f, - 0.979133009910584f, 0.142938911914825f, 0.979242503643036f, - 0.142571389675140f, - 0.979351758956909f, 0.142203763127327f, 0.979460656642914f, - 0.141836062073708f, - 0.979569315910339f, 0.141468286514282f, 0.979677677154541f, - 0.141100421547890f, - 0.979785740375519f, 0.140732467174530f, 0.979893565177917f, - 0.140364438295364f, - 0.980001091957092f, 0.139996320009232f, 0.980108320713043f, - 0.139628127217293f, - 0.980215251445770f, 0.139259845018387f, 0.980321943759918f, - 0.138891488313675f, - 0.980428338050842f, 0.138523042201996f, 0.980534434318542f, - 0.138154521584511f, - 0.980640232563019f, 0.137785911560059f, 0.980745792388916f, - 0.137417227029800f, - 0.980851054191589f, 0.137048453092575f, 0.980956017971039f, - 0.136679604649544f, - 0.981060683727264f, 0.136310681700706f, 0.981165111064911f, - 0.135941669344902f, - 0.981269240379334f, 0.135572582483292f, 0.981373071670532f, - 0.135203406214714f, - 0.981476604938507f, 0.134834155440331f, 0.981579899787903f, - 0.134464830160141f, - 0.981682896614075f, 0.134095430374146f, 0.981785595417023f, - 0.133725941181183f, - 0.981888055801392f, 0.133356377482414f, 0.981990158557892f, - 0.132986739277840f, - 0.982092022895813f, 0.132617011666298f, 0.982193589210510f, - 0.132247209548950f, - 0.982294917106628f, 0.131877332925797f, 0.982395887374878f, - 0.131507381796837f, - 0.982496619224548f, 0.131137356162071f, 0.982597053050995f, - 0.130767241120338f, - 0.982697248458862f, 0.130397051572800f, 0.982797086238861f, - 0.130026802420616f, - 0.982896685600281f, 0.129656463861465f, 0.982995986938477f, - 0.129286035895348f, - 0.983094990253448f, 0.128915548324585f, 0.983193755149841f, - 0.128544986248016f, - 0.983292162418365f, 0.128174334764481f, 0.983390331268311f, - 0.127803623676300f, - 0.983488261699677f, 0.127432823181152f, 0.983585834503174f, - 0.127061963081360f, - 0.983683168888092f, 0.126691013574600f, 0.983780145645142f, - 0.126320004463196f, - 0.983876943588257f, 0.125948905944824f, 0.983973383903503f, - 0.125577747821808f, - 0.984069526195526f, 0.125206500291824f, 0.984165430068970f, - 0.124835193157196f, - 0.984261035919189f, 0.124463804066181f, 0.984356343746185f, - 0.124092340469360f, - 0.984451413154602f, 0.123720809817314f, 0.984546124935150f, - 0.123349204659462f, - 0.984640598297119f, 0.122977524995804f, 0.984734773635864f, - 0.122605770826340f, - 0.984828710556030f, 0.122233949601650f, 0.984922289848328f, - 0.121862053871155f, - 0.985015630722046f, 0.121490091085434f, 0.985108673572540f, - 0.121118053793907f, - 0.985201418399811f, 0.120745941996574f, 0.985293865203857f, - 0.120373763144016f, - 0.985386073589325f, 0.120001509785652f, 0.985477983951569f, - 0.119629189372063f, - 0.985569596290588f, 0.119256794452667f, 0.985660910606384f, - 0.118884332478046f, - 0.985751926898956f, 0.118511803448200f, 0.985842704772949f, - 0.118139199912548f, - 0.985933184623718f, 0.117766529321671f, 0.986023366451263f, - 0.117393791675568f, - 0.986113250255585f, 0.117020979523659f, 0.986202836036682f, - 0.116648100316525f, - 0.986292183399200f, 0.116275154054165f, 0.986381232738495f, - 0.115902140736580f, - 0.986469984054565f, 0.115529052913189f, 0.986558437347412f, - 0.115155905485153f, - 0.986646652221680f, 0.114782683551311f, 0.986734509468079f, - 0.114409394562244f, - 0.986822128295898f, 0.114036038517952f, 0.986909449100494f, - 0.113662622869015f, - 0.986996471881866f, 0.113289132714272f, 0.987083256244659f, - 0.112915575504303f, - 0.987169682979584f, 0.112541958689690f, 0.987255871295929f, - 0.112168267369270f, - 0.987341761589050f, 0.111794516444206f, 0.987427353858948f, - 0.111420698463917f, - 0.987512648105621f, 0.111046813428402f, 0.987597703933716f, - 0.110672861337662f, - 0.987682461738586f, 0.110298842191696f, 0.987766921520233f, - 0.109924763441086f, - 0.987851083278656f, 0.109550617635250f, 0.987934947013855f, - 0.109176412224770f, - 0.988018512725830f, 0.108802139759064f, 0.988101840019226f, - 0.108427800238132f, - 0.988184869289398f, 0.108053401112556f, 0.988267600536346f, - 0.107678934931755f, - 0.988350033760071f, 0.107304409146309f, 0.988432228565216f, - 0.106929816305637f, - 0.988514065742493f, 0.106555156409740f, 0.988595664501190f, - 0.106180444359779f, - 0.988676965236664f, 0.105805665254593f, 0.988757967948914f, - 0.105430819094181f, - 0.988838672637939f, 0.105055920779705f, 0.988919138908386f, - 0.104680955410004f, - 0.988999247550964f, 0.104305922985077f, 0.989079117774963f, - 0.103930838406086f, - 0.989158689975739f, 0.103555686771870f, 0.989237964153290f, - 0.103180475533009f, - 0.989316940307617f, 0.102805204689503f, 0.989395678043365f, - 0.102429874241352f, - 0.989474058151245f, 0.102054484188557f, 0.989552199840546f, - 0.101679034531116f, - 0.989630043506622f, 0.101303517818451f, 0.989707589149475f, - 0.100927948951721f, - 0.989784896373749f, 0.100552320480347f, 0.989861845970154f, - 0.100176624953747f, - 0.989938557147980f, 0.099800877273083f, 0.990014970302582f, - 0.099425069987774f, - 0.990091085433960f, 0.099049203097820f, 0.990166902542114f, - 0.098673284053802f, - 0.990242421627045f, 0.098297297954559f, 0.990317702293396f, - 0.097921259701252f, - 0.990392625331879f, 0.097545161843300f, 0.990467309951782f, - 0.097169004380703f, - 0.990541696548462f, 0.096792794764042f, 0.990615785121918f, - 0.096416525542736f, - 0.990689575672150f, 0.096040196716785f, 0.990763127803802f, - 0.095663815736771f, - 0.990836322307587f, 0.095287375152111f, 0.990909278392792f, - 0.094910882413387f, - 0.990981936454773f, 0.094534330070019f, 0.991054296493530f, - 0.094157725572586f, - 0.991126358509064f, 0.093781061470509f, 0.991198182106018f, - 0.093404345214367f, - 0.991269648075104f, 0.093027576804161f, 0.991340875625610f, - 0.092650748789310f, - 0.991411805152893f, 0.092273868620396f, 0.991482377052307f, - 0.091896936297417f, - 0.991552770137787f, 0.091519944369793f, 0.991622805595398f, - 0.091142900288105f, - 0.991692543029785f, 0.090765804052353f, 0.991762042045593f, - 0.090388655662537f, - 0.991831183433533f, 0.090011447668076f, 0.991900086402893f, - 0.089634194970131f, - 0.991968691349030f, 0.089256882667542f, 0.992036998271942f, - 0.088879525661469f, - 0.992105066776276f, 0.088502109050751f, 0.992172777652740f, - 0.088124647736549f, - 0.992240250110626f, 0.087747126817703f, 0.992307364940643f, - 0.087369553744793f, - 0.992374241352081f, 0.086991935968399f, 0.992440819740295f, - 0.086614266037941f, - 0.992507100105286f, 0.086236543953419f, 0.992573142051697f, - 0.085858769714832f, - 0.992638826370239f, 0.085480943322182f, 0.992704212665558f, - 0.085103072226048f, - 0.992769360542297f, 0.084725148975849f, 0.992834210395813f, - 0.084347173571587f, - 0.992898762226105f, 0.083969146013260f, 0.992963016033173f, - 0.083591073751450f, - 0.993026971817017f, 0.083212949335575f, 0.993090689182281f, - 0.082834780216217f, - 0.993154048919678f, 0.082456558942795f, 0.993217170238495f, - 0.082078292965889f, - 0.993279933929443f, 0.081699974834919f, 0.993342459201813f, - 0.081321612000465f, - 0.993404686450958f, 0.080943197011948f, 0.993466615676880f, - 0.080564737319946f, - 0.993528306484222f, 0.080186225473881f, 0.993589639663696f, - 0.079807676374912f, - 0.993650734424591f, 0.079429075121880f, 0.993711471557617f, - 0.079050421714783f, - 0.993771970272064f, 0.078671731054783f, 0.993832170963287f, - 0.078292988240719f, - 0.993892073631287f, 0.077914200723171f, 0.993951678276062f, - 0.077535368502140f, - 0.994010984897614f, 0.077156484127045f, 0.994070053100586f, - 0.076777562499046f, - 0.994128763675690f, 0.076398596167564f, 0.994187235832214f, - 0.076019577682018f, - 0.994245409965515f, 0.075640521943569f, 0.994303286075592f, - 0.075261414051056f, - 0.994360864162445f, 0.074882268905640f, 0.994418144226074f, - 0.074503071606159f, - 0.994475126266479f, 0.074123837053776f, 0.994531810283661f, - 0.073744557797909f, - 0.994588255882263f, 0.073365233838558f, 0.994644403457642f, - 0.072985872626305f, - 0.994700193405151f, 0.072606459259987f, 0.994755744934082f, - 0.072227008640766f, - 0.994810998439789f, 0.071847513318062f, 0.994865953922272f, - 0.071467980742455f, - 0.994920611381531f, 0.071088403463364f, 0.994975030422211f, - 0.070708781480789f, - 0.995029091835022f, 0.070329122245312f, 0.995082914829254f, - 0.069949418306351f, - 0.995136380195618f, 0.069569669663906f, 0.995189607143402f, - 0.069189883768559f, - 0.995242536067963f, 0.068810060620308f, 0.995295166969299f, - 0.068430192768574f, - 0.995347499847412f, 0.068050287663937f, 0.995399534702301f, - 0.067670337855816f, - 0.995451331138611f, 0.067290350794792f, 0.995502769947052f, - 0.066910326480865f, - 0.995553970336914f, 0.066530264914036f, 0.995604813098907f, - 0.066150158643723f, - 0.995655417442322f, 0.065770015120506f, 0.995705723762512f, - 0.065389834344387f, - 0.995755732059479f, 0.065009608864784f, 0.995805442333221f, - 0.064629353582859f, - 0.995854854583740f, 0.064249053597450f, 0.995904028415680f, - 0.063868723809719f, - 0.995952844619751f, 0.063488349318504f, 0.996001422405243f, - 0.063107937574387f, - 0.996049642562866f, 0.062727488577366f, 0.996097624301910f, - 0.062347009778023f, - 0.996145308017731f, 0.061966486275196f, 0.996192693710327f, - 0.061585929244757f, - 0.996239781379700f, 0.061205338686705f, 0.996286571025848f, - 0.060824707150459f, - 0.996333062648773f, 0.060444042086601f, 0.996379256248474f, - 0.060063343495131f, - 0.996425211429596f, 0.059682607650757f, 0.996470808982849f, - 0.059301838278770f, - 0.996516168117523f, 0.058921031653881f, 0.996561229228973f, - 0.058540191501379f, - 0.996605992317200f, 0.058159314095974f, 0.996650457382202f, - 0.057778406888247f, - 0.996694624423981f, 0.057397462427616f, 0.996738493442535f, - 0.057016488164663f, - 0.996782064437866f, 0.056635476648808f, 0.996825337409973f, - 0.056254431605339f, - 0.996868371963501f, 0.055873356759548f, 0.996911048889160f, - 0.055492244660854f, - 0.996953487396240f, 0.055111102759838f, 0.996995627880096f, - 0.054729927331209f, - 0.997037410736084f, 0.054348722100258f, 0.997078955173492f, - 0.053967483341694f, - 0.997120201587677f, 0.053586211055517f, 0.997161149978638f, - 0.053204908967018f, - 0.997201859951019f, 0.052823577076197f, 0.997242212295532f, - 0.052442211657763f, - 0.997282266616821f, 0.052060816437006f, 0.997322082519531f, - 0.051679391413927f, - 0.997361540794373f, 0.051297932863235f, 0.997400760650635f, - 0.050916448235512f, - 0.997439682483673f, 0.050534930080175f, 0.997478306293488f, - 0.050153385847807f, - 0.997516572475433f, 0.049771808087826f, 0.997554600238800f, - 0.049390204250813f, - 0.997592389583588f, 0.049008570611477f, 0.997629821300507f, - 0.048626907169819f, - 0.997666954994202f, 0.048245213925838f, 0.997703790664673f, - 0.047863494604826f, - 0.997740387916565f, 0.047481749206781f, 0.997776627540588f, - 0.047099970281124f, - 0.997812628746033f, 0.046718169003725f, 0.997848331928253f, - 0.046336337924004f, - 0.997883677482605f, 0.045954477041960f, 0.997918784618378f, - 0.045572593808174f, - 0.997953593730927f, 0.045190680772066f, 0.997988104820251f, - 0.044808741658926f, - 0.998022377490997f, 0.044426776468754f, 0.998056292533875f, - 0.044044785201550f, - 0.998089909553528f, 0.043662767857313f, 0.998123228549957f, - 0.043280724436045f, - 0.998156309127808f, 0.042898654937744f, 0.998189091682434f, - 0.042516563087702f, - 0.998221516609192f, 0.042134445160627f, 0.998253703117371f, - 0.041752301156521f, - 0.998285591602325f, 0.041370131075382f, 0.998317182064056f, - 0.040987938642502f, - 0.998348474502563f, 0.040605723857880f, 0.998379468917847f, - 0.040223482996225f, - 0.998410165309906f, 0.039841219782829f, 0.998440563678741f, - 0.039458930492401f, - 0.998470664024353f, 0.039076622575521f, 0.998500525951386f, - 0.038694288581610f, - 0.998530030250549f, 0.038311932235956f, 0.998559296131134f, - 0.037929553538561f, - 0.998588204383850f, 0.037547148764133f, 0.998616874217987f, - 0.037164725363255f, - 0.998645246028900f, 0.036782283335924f, 0.998673319816589f, - 0.036399815231562f, - 0.998701035976410f, 0.036017324775457f, 0.998728513717651f, - 0.035634815692902f, - 0.998755753040314f, 0.035252287983894f, 0.998782634735107f, - 0.034869734197855f, - 0.998809218406677f, 0.034487165510654f, 0.998835504055023f, - 0.034104570746422f, - 0.998861551284790f, 0.033721961081028f, 0.998887240886688f, - 0.033339329063892f, - 0.998912692070007f, 0.032956674695015f, 0.998937785625458f, - 0.032574005424976f, - 0.998962640762329f, 0.032191313803196f, 0.998987197875977f, - 0.031808607280254f, - 0.999011456966400f, 0.031425878405571f, 0.999035418033600f, - 0.031043132767081f, - 0.999059081077576f, 0.030660368502140f, 0.999082446098328f, - 0.030277585610747f, - 0.999105513095856f, 0.029894785955548f, 0.999128282070160f, - 0.029511967673898f, - 0.999150753021240f, 0.029129132628441f, 0.999172985553741f, - 0.028746278956532f, - 0.999194860458374f, 0.028363410383463f, 0.999216496944427f, - 0.027980525046587f, - 0.999237775802612f, 0.027597622945905f, 0.999258816242218f, - 0.027214704081416f, - 0.999279558658600f, 0.026831768453121f, 0.999299943447113f, - 0.026448817923665f, - 0.999320089817047f, 0.026065852493048f, 0.999339938163757f, - 0.025682870298624f, - 0.999359488487244f, 0.025299875065684f, 0.999378740787506f, - 0.024916863068938f, - 0.999397754669189f, 0.024533838033676f, 0.999416410923004f, - 0.024150796234608f, - 0.999434769153595f, 0.023767741397023f, 0.999452829360962f, - 0.023384673520923f, - 0.999470651149750f, 0.023001590743661f, 0.999488115310669f, - 0.022618494927883f, - 0.999505341053009f, 0.022235386073589f, 0.999522268772125f, - 0.021852264180779f, - 0.999538838863373f, 0.021469129249454f, 0.999555170536041f, - 0.021085981279612f, - 0.999571204185486f, 0.020702820271254f, 0.999586939811707f, - 0.020319648087025f, - 0.999602377414703f, 0.019936462864280f, 0.999617516994476f, - 0.019553268328309f, - 0.999632358551025f, 0.019170060753822f, 0.999646902084351f, - 0.018786842003465f, - 0.999661207199097f, 0.018403612077236f, 0.999675154685974f, - 0.018020370975137f, - 0.999688863754272f, 0.017637118697166f, 0.999702215194702f, - 0.017253857105970f, - 0.999715328216553f, 0.016870586201549f, 0.999728083610535f, - 0.016487304121256f, - 0.999740600585938f, 0.016104012727737f, 0.999752819538116f, - 0.015720712020993f, - 0.999764680862427f, 0.015337402001023f, 0.999776303768158f, - 0.014954082667828f, - 0.999787628650665f, 0.014570754021406f, 0.999798655509949f, - 0.014187417924404f, - 0.999809384346008f, 0.013804072514176f, 0.999819874763489f, - 0.013420719653368f, - 0.999830007553101f, 0.013037359341979f, 0.999839842319489f, - 0.012653990648687f, - 0.999849438667297f, 0.012270614504814f, 0.999858677387238f, - 0.011887230910361f, - 0.999867618083954f, 0.011503840796649f, 0.999876320362091f, - 0.011120444163680f, - 0.999884724617004f, 0.010737040080130f, 0.999892771244049f, - 0.010353630408645f, - 0.999900579452515f, 0.009970214217901f, 0.999908089637756f, - 0.009586792439222f, - 0.999915301799774f, 0.009203365072608f, 0.999922215938568f, - 0.008819932118058f, - 0.999928832054138f, 0.008436493575573f, 0.999935150146484f, - 0.008053051307797f, - 0.999941170215607f, 0.007669602986425f, 0.999946892261505f, - 0.007286150939763f, - 0.999952375888824f, 0.006902694236487f, 0.999957501888275f, - 0.006519233807921f, - 0.999962329864502f, 0.006135769188404f, 0.999966919422150f, - 0.005752300843596f, - 0.999971151351929f, 0.005368829704821f, 0.999975144863129f, - 0.004985354840755f, - 0.999978840351105f, 0.004601877182722f, 0.999982178211212f, - 0.004218397196382f, - 0.999985277652740f, 0.003834914416075f, 0.999988079071045f, - 0.003451429307461f, - 0.999990582466125f, 0.003067942336202f, 0.999992787837982f, - 0.002684453502297f, - 0.999994695186615f, 0.002300963038579f, 0.999996304512024f, - 0.001917471294291f, - 0.999997675418854f, 0.001533978385851f, 0.999998688697815f, - 0.001150484546088f, - 0.999999403953552f, 0.000766990066040f, 0.999999880790710f, - 0.000383495149435f, - 1.000000000000000f, 0.000000000000023f, 0.999999880790710f, - -0.000383495149435f, - 0.999999403953552f, -0.000766990066040f, 0.999998688697815f, - -0.001150484546088f, - 0.999997675418854f, -0.001533978385851f, 0.999996304512024f, - -0.001917471294291f, - 0.999994695186615f, -0.002300963038579f, 0.999992787837982f, - -0.002684453502297f, - 0.999990582466125f, -0.003067942336202f, 0.999988079071045f, - -0.003451429307461f, - 0.999985277652740f, -0.003834914416075f, 0.999982178211212f, - -0.004218397196382f, - 0.999978840351105f, -0.004601877182722f, 0.999975144863129f, - -0.004985354840755f, - 0.999971151351929f, -0.005368829704821f, 0.999966919422150f, - -0.005752300843596f, - 0.999962329864502f, -0.006135769188404f, 0.999957501888275f, - -0.006519233807921f, - 0.999952375888824f, -0.006902694236487f, 0.999946892261505f, - -0.007286150939763f, - 0.999941170215607f, -0.007669602986425f, 0.999935150146484f, - -0.008053051307797f, - 0.999928832054138f, -0.008436493575573f, 0.999922215938568f, - -0.008819932118058f, - 0.999915301799774f, -0.009203365072608f, 0.999908089637756f, - -0.009586792439222f, - 0.999900579452515f, -0.009970214217901f, 0.999892771244049f, - -0.010353630408645f, - 0.999884724617004f, -0.010737040080130f, 0.999876320362091f, - -0.011120444163680f, - 0.999867618083954f, -0.011503840796649f, 0.999858677387238f, - -0.011887230910361f, - 0.999849438667297f, -0.012270614504814f, 0.999839842319489f, - -0.012653990648687f, - 0.999830007553101f, -0.013037359341979f, 0.999819874763489f, - -0.013420719653368f, - 0.999809384346008f, -0.013804072514176f, 0.999798655509949f, - -0.014187417924404f, - 0.999787628650665f, -0.014570754021406f, 0.999776303768158f, - -0.014954082667828f, - 0.999764680862427f, -0.015337402001023f, 0.999752819538116f, - -0.015720712020993f, - 0.999740600585938f, -0.016104012727737f, 0.999728083610535f, - -0.016487304121256f, - 0.999715328216553f, -0.016870586201549f, 0.999702215194702f, - -0.017253857105970f, - 0.999688863754272f, -0.017637118697166f, 0.999675154685974f, - -0.018020370975137f, - 0.999661207199097f, -0.018403612077236f, 0.999646902084351f, - -0.018786842003465f, - 0.999632358551025f, -0.019170060753822f, 0.999617516994476f, - -0.019553268328309f, - 0.999602377414703f, -0.019936462864280f, 0.999586939811707f, - -0.020319648087025f, - 0.999571204185486f, -0.020702820271254f, 0.999555170536041f, - -0.021085981279612f, - 0.999538838863373f, -0.021469129249454f, 0.999522268772125f, - -0.021852264180779f, - 0.999505341053009f, -0.022235386073589f, 0.999488115310669f, - -0.022618494927883f, - 0.999470651149750f, -0.023001590743661f, 0.999452829360962f, - -0.023384673520923f, - 0.999434769153595f, -0.023767741397023f, 0.999416410923004f, - -0.024150796234608f, - 0.999397754669189f, -0.024533838033676f, 0.999378740787506f, - -0.024916863068938f, - 0.999359488487244f, -0.025299875065684f, 0.999339938163757f, - -0.025682870298624f, - 0.999320089817047f, -0.026065852493048f, 0.999299943447113f, - -0.026448817923665f, - 0.999279558658600f, -0.026831768453121f, 0.999258816242218f, - -0.027214704081416f, - 0.999237775802612f, -0.027597622945905f, 0.999216496944427f, - -0.027980525046587f, - 0.999194860458374f, -0.028363410383463f, 0.999172985553741f, - -0.028746278956532f, - 0.999150753021240f, -0.029129132628441f, 0.999128282070160f, - -0.029511967673898f, - 0.999105513095856f, -0.029894785955548f, 0.999082446098328f, - -0.030277585610747f, - 0.999059081077576f, -0.030660368502140f, 0.999035418033600f, - -0.031043132767081f, - 0.999011456966400f, -0.031425878405571f, 0.998987197875977f, - -0.031808607280254f, - 0.998962640762329f, -0.032191313803196f, 0.998937785625458f, - -0.032574005424976f, - 0.998912692070007f, -0.032956674695015f, 0.998887240886688f, - -0.033339329063892f, - 0.998861551284790f, -0.033721961081028f, 0.998835504055023f, - -0.034104570746422f, - 0.998809218406677f, -0.034487165510654f, 0.998782634735107f, - -0.034869734197855f, - 0.998755753040314f, -0.035252287983894f, 0.998728513717651f, - -0.035634815692902f, - 0.998701035976410f, -0.036017324775457f, 0.998673319816589f, - -0.036399815231562f, - 0.998645246028900f, -0.036782283335924f, 0.998616874217987f, - -0.037164725363255f, - 0.998588204383850f, -0.037547148764133f, 0.998559296131134f, - -0.037929553538561f, - 0.998530030250549f, -0.038311932235956f, 0.998500525951386f, - -0.038694288581610f, - 0.998470664024353f, -0.039076622575521f, 0.998440563678741f, - -0.039458930492401f, - 0.998410165309906f, -0.039841219782829f, 0.998379468917847f, - -0.040223482996225f, - 0.998348474502563f, -0.040605723857880f, 0.998317182064056f, - -0.040987938642502f, - 0.998285591602325f, -0.041370131075382f, 0.998253703117371f, - -0.041752301156521f, - 0.998221516609192f, -0.042134445160627f, 0.998189091682434f, - -0.042516563087702f, - 0.998156309127808f, -0.042898654937744f, 0.998123228549957f, - -0.043280724436045f, - 0.998089909553528f, -0.043662767857313f, 0.998056292533875f, - -0.044044785201550f, - 0.998022377490997f, -0.044426776468754f, 0.997988104820251f, - -0.044808741658926f, - 0.997953593730927f, -0.045190680772066f, 0.997918784618378f, - -0.045572593808174f, - 0.997883677482605f, -0.045954477041960f, 0.997848331928253f, - -0.046336337924004f, - 0.997812628746033f, -0.046718169003725f, 0.997776627540588f, - -0.047099970281124f, - 0.997740387916565f, -0.047481749206781f, 0.997703790664673f, - -0.047863494604826f, - 0.997666954994202f, -0.048245213925838f, 0.997629821300507f, - -0.048626907169819f, - 0.997592389583588f, -0.049008570611477f, 0.997554600238800f, - -0.049390204250813f, - 0.997516572475433f, -0.049771808087826f, 0.997478306293488f, - -0.050153385847807f, - 0.997439682483673f, -0.050534930080175f, 0.997400760650635f, - -0.050916448235512f, - 0.997361540794373f, -0.051297932863235f, 0.997322082519531f, - -0.051679391413927f, - 0.997282266616821f, -0.052060816437006f, 0.997242212295532f, - -0.052442211657763f, - 0.997201859951019f, -0.052823577076197f, 0.997161149978638f, - -0.053204908967018f, - 0.997120201587677f, -0.053586211055517f, 0.997078955173492f, - -0.053967483341694f, - 0.997037410736084f, -0.054348722100258f, 0.996995627880096f, - -0.054729927331209f, - 0.996953487396240f, -0.055111102759838f, 0.996911048889160f, - -0.055492244660854f, - 0.996868371963501f, -0.055873356759548f, 0.996825337409973f, - -0.056254431605339f, - 0.996782064437866f, -0.056635476648808f, 0.996738493442535f, - -0.057016488164663f, - 0.996694624423981f, -0.057397462427616f, 0.996650457382202f, - -0.057778406888247f, - 0.996605992317200f, -0.058159314095974f, 0.996561229228973f, - -0.058540191501379f, - 0.996516168117523f, -0.058921031653881f, 0.996470808982849f, - -0.059301838278770f, - 0.996425211429596f, -0.059682607650757f, 0.996379256248474f, - -0.060063343495131f, - 0.996333062648773f, -0.060444042086601f, 0.996286571025848f, - -0.060824707150459f, - 0.996239781379700f, -0.061205338686705f, 0.996192693710327f, - -0.061585929244757f, - 0.996145308017731f, -0.061966486275196f, 0.996097624301910f, - -0.062347009778023f, - 0.996049642562866f, -0.062727488577366f, 0.996001422405243f, - -0.063107937574387f, - 0.995952844619751f, -0.063488349318504f, 0.995904028415680f, - -0.063868723809719f, - 0.995854854583740f, -0.064249053597450f, 0.995805442333221f, - -0.064629353582859f, - 0.995755732059479f, -0.065009608864784f, 0.995705723762512f, - -0.065389834344387f, - 0.995655417442322f, -0.065770015120506f, 0.995604813098907f, - -0.066150158643723f, - 0.995553970336914f, -0.066530264914036f, 0.995502769947052f, - -0.066910326480865f, - 0.995451331138611f, -0.067290350794792f, 0.995399534702301f, - -0.067670337855816f, - 0.995347499847412f, -0.068050287663937f, 0.995295166969299f, - -0.068430192768574f, - 0.995242536067963f, -0.068810060620308f, 0.995189607143402f, - -0.069189883768559f, - 0.995136380195618f, -0.069569669663906f, 0.995082914829254f, - -0.069949418306351f, - 0.995029091835022f, -0.070329122245312f, 0.994975030422211f, - -0.070708781480789f, - 0.994920611381531f, -0.071088403463364f, 0.994865953922272f, - -0.071467980742455f, - 0.994810998439789f, -0.071847513318062f, 0.994755744934082f, - -0.072227008640766f, - 0.994700193405151f, -0.072606459259987f, 0.994644403457642f, - -0.072985872626305f, - 0.994588255882263f, -0.073365233838558f, 0.994531810283661f, - -0.073744557797909f, - 0.994475126266479f, -0.074123837053776f, 0.994418144226074f, - -0.074503071606159f, - 0.994360864162445f, -0.074882268905640f, 0.994303286075592f, - -0.075261414051056f, - 0.994245409965515f, -0.075640521943569f, 0.994187235832214f, - -0.076019577682018f, - 0.994128763675690f, -0.076398596167564f, 0.994070053100586f, - -0.076777562499046f, - 0.994010984897614f, -0.077156484127045f, 0.993951678276062f, - -0.077535368502140f, - 0.993892073631287f, -0.077914200723171f, 0.993832170963287f, - -0.078292988240719f, - 0.993771970272064f, -0.078671731054783f, 0.993711471557617f, - -0.079050421714783f, - 0.993650734424591f, -0.079429075121880f, 0.993589639663696f, - -0.079807676374912f, - 0.993528306484222f, -0.080186225473881f, 0.993466615676880f, - -0.080564737319946f, - 0.993404686450958f, -0.080943197011948f, 0.993342459201813f, - -0.081321612000465f, - 0.993279933929443f, -0.081699974834919f, 0.993217170238495f, - -0.082078292965889f, - 0.993154048919678f, -0.082456558942795f, 0.993090689182281f, - -0.082834780216217f, - 0.993026971817017f, -0.083212949335575f, 0.992963016033173f, - -0.083591073751450f, - 0.992898762226105f, -0.083969146013260f, 0.992834210395813f, - -0.084347173571587f, - 0.992769360542297f, -0.084725148975849f, 0.992704212665558f, - -0.085103072226048f, - 0.992638826370239f, -0.085480943322182f, 0.992573142051697f, - -0.085858769714832f, - 0.992507100105286f, -0.086236543953419f, 0.992440819740295f, - -0.086614266037941f, - 0.992374241352081f, -0.086991935968399f, 0.992307364940643f, - -0.087369553744793f, - 0.992240250110626f, -0.087747126817703f, 0.992172777652740f, - -0.088124647736549f, - 0.992105066776276f, -0.088502109050751f, 0.992036998271942f, - -0.088879525661469f, - 0.991968691349030f, -0.089256882667542f, 0.991900086402893f, - -0.089634194970131f, - 0.991831183433533f, -0.090011447668076f, 0.991762042045593f, - -0.090388655662537f, - 0.991692543029785f, -0.090765804052353f, 0.991622805595398f, - -0.091142900288105f, - 0.991552770137787f, -0.091519944369793f, 0.991482377052307f, - -0.091896936297417f, - 0.991411805152893f, -0.092273868620396f, 0.991340875625610f, - -0.092650748789310f, - 0.991269648075104f, -0.093027576804161f, 0.991198182106018f, - -0.093404345214367f, - 0.991126358509064f, -0.093781061470509f, 0.991054296493530f, - -0.094157725572586f, - 0.990981936454773f, -0.094534330070019f, 0.990909278392792f, - -0.094910882413387f, - 0.990836322307587f, -0.095287375152111f, 0.990763127803802f, - -0.095663815736771f, - 0.990689575672150f, -0.096040196716785f, 0.990615785121918f, - -0.096416525542736f, - 0.990541696548462f, -0.096792794764042f, 0.990467309951782f, - -0.097169004380703f, - 0.990392625331879f, -0.097545161843300f, 0.990317702293396f, - -0.097921259701252f, - 0.990242421627045f, -0.098297297954559f, 0.990166902542114f, - -0.098673284053802f, - 0.990091085433960f, -0.099049203097820f, 0.990014970302582f, - -0.099425069987774f, - 0.989938557147980f, -0.099800877273083f, 0.989861845970154f, - -0.100176624953747f, - 0.989784896373749f, -0.100552320480347f, 0.989707589149475f, - -0.100927948951721f, - 0.989630043506622f, -0.101303517818451f, 0.989552199840546f, - -0.101679034531116f, - 0.989474058151245f, -0.102054484188557f, 0.989395678043365f, - -0.102429874241352f, - 0.989316940307617f, -0.102805204689503f, 0.989237964153290f, - -0.103180475533009f, - 0.989158689975739f, -0.103555686771870f, 0.989079117774963f, - -0.103930838406086f, - 0.988999247550964f, -0.104305922985077f, 0.988919138908386f, - -0.104680955410004f, - 0.988838672637939f, -0.105055920779705f, 0.988757967948914f, - -0.105430819094181f, - 0.988676965236664f, -0.105805665254593f, 0.988595664501190f, - -0.106180444359779f, - 0.988514065742493f, -0.106555156409740f, 0.988432228565216f, - -0.106929816305637f, - 0.988350033760071f, -0.107304409146309f, 0.988267600536346f, - -0.107678934931755f, - 0.988184869289398f, -0.108053401112556f, 0.988101840019226f, - -0.108427800238132f, - 0.988018512725830f, -0.108802139759064f, 0.987934947013855f, - -0.109176412224770f, - 0.987851083278656f, -0.109550617635250f, 0.987766921520233f, - -0.109924763441086f, - 0.987682461738586f, -0.110298842191696f, 0.987597703933716f, - -0.110672861337662f, - 0.987512648105621f, -0.111046813428402f, 0.987427353858948f, - -0.111420698463917f, - 0.987341761589050f, -0.111794516444206f, 0.987255871295929f, - -0.112168267369270f, - 0.987169682979584f, -0.112541958689690f, 0.987083256244659f, - -0.112915575504303f, - 0.986996471881866f, -0.113289132714272f, 0.986909449100494f, - -0.113662622869015f, - 0.986822128295898f, -0.114036038517952f, 0.986734509468079f, - -0.114409394562244f, - 0.986646652221680f, -0.114782683551311f, 0.986558437347412f, - -0.115155905485153f, - 0.986469984054565f, -0.115529052913189f, 0.986381232738495f, - -0.115902140736580f, - 0.986292183399200f, -0.116275154054165f, 0.986202836036682f, - -0.116648100316525f, - 0.986113250255585f, -0.117020979523659f, 0.986023366451263f, - -0.117393791675568f, - 0.985933184623718f, -0.117766529321671f, 0.985842704772949f, - -0.118139199912548f, - 0.985751926898956f, -0.118511803448200f, 0.985660910606384f, - -0.118884332478046f, - 0.985569596290588f, -0.119256794452667f, 0.985477983951569f, - -0.119629189372063f, - 0.985386073589325f, -0.120001509785652f, 0.985293865203857f, - -0.120373763144016f, - 0.985201418399811f, -0.120745941996574f, 0.985108673572540f, - -0.121118053793907f, - 0.985015630722046f, -0.121490091085434f, 0.984922289848328f, - -0.121862053871155f, - 0.984828710556030f, -0.122233949601650f, 0.984734773635864f, - -0.122605770826340f, - 0.984640598297119f, -0.122977524995804f, 0.984546124935150f, - -0.123349204659462f, - 0.984451413154602f, -0.123720809817314f, 0.984356343746185f, - -0.124092340469360f, - 0.984261035919189f, -0.124463804066181f, 0.984165430068970f, - -0.124835193157196f, - 0.984069526195526f, -0.125206500291824f, 0.983973383903503f, - -0.125577747821808f, - 0.983876943588257f, -0.125948905944824f, 0.983780145645142f, - -0.126320004463196f, - 0.983683168888092f, -0.126691013574600f, 0.983585834503174f, - -0.127061963081360f, - 0.983488261699677f, -0.127432823181152f, 0.983390331268311f, - -0.127803623676300f, - 0.983292162418365f, -0.128174334764481f, 0.983193755149841f, - -0.128544986248016f, - 0.983094990253448f, -0.128915548324585f, 0.982995986938477f, - -0.129286035895348f, - 0.982896685600281f, -0.129656463861465f, 0.982797086238861f, - -0.130026802420616f, - 0.982697248458862f, -0.130397051572800f, 0.982597053050995f, - -0.130767241120338f, - 0.982496619224548f, -0.131137356162071f, 0.982395887374878f, - -0.131507381796837f, - 0.982294917106628f, -0.131877332925797f, 0.982193589210510f, - -0.132247209548950f, - 0.982092022895813f, -0.132617011666298f, 0.981990158557892f, - -0.132986739277840f, - 0.981888055801392f, -0.133356377482414f, 0.981785595417023f, - -0.133725941181183f, - 0.981682896614075f, -0.134095430374146f, 0.981579899787903f, - -0.134464830160141f, - 0.981476604938507f, -0.134834155440331f, 0.981373071670532f, - -0.135203406214714f, - 0.981269240379334f, -0.135572582483292f, 0.981165111064911f, - -0.135941669344902f, - 0.981060683727264f, -0.136310681700706f, 0.980956017971039f, - -0.136679604649544f, - 0.980851054191589f, -0.137048453092575f, 0.980745792388916f, - -0.137417227029800f, - 0.980640232563019f, -0.137785911560059f, 0.980534434318542f, - -0.138154521584511f, - 0.980428338050842f, -0.138523042201996f, 0.980321943759918f, - -0.138891488313675f, - 0.980215251445770f, -0.139259845018387f, 0.980108320713043f, - -0.139628127217293f, - 0.980001091957092f, -0.139996320009232f, 0.979893565177917f, - -0.140364438295364f, - 0.979785740375519f, -0.140732467174530f, 0.979677677154541f, - -0.141100421547890f, - 0.979569315910339f, -0.141468286514282f, 0.979460656642914f, - -0.141836062073708f, - 0.979351758956909f, -0.142203763127327f, 0.979242503643036f, - -0.142571389675140f, - 0.979133009910584f, -0.142938911914825f, 0.979023277759552f, - -0.143306359648705f, - 0.978913187980652f, -0.143673732876778f, 0.978802859783173f, - -0.144041016697884f, - 0.978692233562469f, -0.144408211112022f, 0.978581368923187f, - -0.144775316119194f, - 0.978470146656036f, -0.145142331719399f, 0.978358685970306f, - -0.145509272813797f, - 0.978246986865997f, -0.145876124501228f, 0.978134930133820f, - -0.146242901682854f, - 0.978022634983063f, -0.146609574556351f, 0.977910041809082f, - -0.146976172924042f, - 0.977797150611877f, -0.147342681884766f, 0.977684020996094f, - -0.147709101438522f, - 0.977570593357086f, -0.148075446486473f, 0.977456867694855f, - -0.148441687226295f, - 0.977342903614044f, -0.148807853460312f, 0.977228581905365f, - -0.149173930287361f, - 0.977114021778107f, -0.149539917707443f, 0.976999223232269f, - -0.149905815720558f, - 0.976884067058563f, -0.150271624326706f, 0.976768672466278f, - -0.150637343525887f, - 0.976653039455414f, -0.151002973318100f, 0.976537048816681f, - -0.151368513703346f, - 0.976420819759369f, -0.151733979582787f, 0.976304292678833f, - -0.152099341154099f, - 0.976187527179718f, -0.152464613318443f, 0.976070404052734f, - -0.152829796075821f, - 0.975953042507172f, -0.153194904327393f, 0.975835442543030f, - -0.153559908270836f, - 0.975717484951019f, -0.153924822807312f, 0.975599288940430f, - -0.154289647936821f, - 0.975480854511261f, -0.154654383659363f, 0.975362062454224f, - -0.155019029974937f, - 0.975243031978607f, -0.155383571982384f, 0.975123703479767f, - -0.155748039484024f, - 0.975004136562347f, -0.156112402677536f, 0.974884271621704f, - -0.156476691365242f, - 0.974764108657837f, -0.156840875744820f, 0.974643647670746f, - -0.157204970717430f, - 0.974522948265076f, -0.157568961381912f, 0.974401950836182f, - -0.157932877540588f, - 0.974280655384064f, -0.158296689391136f, 0.974159121513367f, - -0.158660411834717f, - 0.974037289619446f, -0.159024044871330f, 0.973915159702301f, - -0.159387573599815f, - 0.973792791366577f, -0.159751012921333f, 0.973670125007629f, - -0.160114362835884f, - 0.973547160625458f, -0.160477623343468f, 0.973423957824707f, - -0.160840779542923f, - 0.973300457000732f, -0.161203846335411f, 0.973176658153534f, - -0.161566808819771f, - 0.973052620887756f, -0.161929681897163f, 0.972928285598755f, - -0.162292465567589f, - 0.972803652286530f, -0.162655144929886f, 0.972678780555725f, - -0.163017734885216f, - 0.972553610801697f, -0.163380220532417f, 0.972428143024445f, - -0.163742616772652f, - 0.972302436828613f, -0.164104923605919f, 0.972176432609558f, - -0.164467126131058f, - 0.972050130367279f, -0.164829224348068f, 0.971923589706421f, - -0.165191248059273f, - 0.971796751022339f, -0.165553152561188f, 0.971669614315033f, - -0.165914967656136f, - 0.971542239189148f, -0.166276678442955f, 0.971414566040039f, - -0.166638299822807f, - 0.971286594867706f, -0.166999831795692f, 0.971158385276794f, - -0.167361244559288f, - 0.971029877662659f, -0.167722567915916f, 0.970901072025299f, - -0.168083801865578f, - 0.970772027969360f, -0.168444931507111f, 0.970642685890198f, - -0.168805956840515f, - 0.970513105392456f, -0.169166877865791f, 0.970383226871490f, - -0.169527709484100f, - 0.970253050327301f, -0.169888436794281f, 0.970122575759888f, - -0.170249074697495f, - 0.969991862773895f, -0.170609608292580f, 0.969860911369324f, - -0.170970037579536f, - 0.969729602336884f, -0.171330362558365f, 0.969598054885864f, - -0.171690583229065f, - 0.969466269016266f, -0.172050714492798f, 0.969334125518799f, - -0.172410741448402f, - 0.969201743602753f, -0.172770664095879f, 0.969069123268127f, - -0.173130482435226f, - 0.968936204910278f, -0.173490211367607f, 0.968802988529205f, - -0.173849821090698f, - 0.968669533729553f, -0.174209341406822f, 0.968535780906677f, - -0.174568757414818f, - 0.968401730060577f, -0.174928069114685f, 0.968267440795898f, - -0.175287276506424f, - 0.968132853507996f, -0.175646379590034f, 0.967997968196869f, - -0.176005378365517f, - 0.967862844467163f, -0.176364272832870f, 0.967727422714233f, - -0.176723077893257f, - 0.967591762542725f, -0.177081763744354f, 0.967455804347992f, - -0.177440345287323f, - 0.967319548130035f, -0.177798837423325f, 0.967183053493500f, - -0.178157210350037f, - 0.967046260833740f, -0.178515478968620f, 0.966909229755402f, - -0.178873643279076f, - 0.966771900653839f, -0.179231703281403f, 0.966634273529053f, - -0.179589673876762f, - 0.966496407985687f, -0.179947525262833f, 0.966358244419098f, - -0.180305257439613f, - 0.966219842433929f, -0.180662900209427f, 0.966081082820892f, - -0.181020438671112f, - 0.965942144393921f, -0.181377857923508f, 0.965802907943726f, - -0.181735187768936f, - 0.965663373470306f, -0.182092398405075f, 0.965523540973663f, - -0.182449504733086f, - 0.965383470058441f, -0.182806491851807f, 0.965243160724640f, - -0.183163389563560f, - 0.965102493762970f, -0.183520168066025f, 0.964961588382721f, - -0.183876842260361f, - 0.964820444583893f, -0.184233412146568f, 0.964679002761841f, - -0.184589877724648f, - 0.964537262916565f, -0.184946224093437f, 0.964395284652710f, - -0.185302466154099f, - 0.964253067970276f, -0.185658603906631f, 0.964110493659973f, - -0.186014622449875f, - 0.963967680931091f, -0.186370536684990f, 0.963824629783630f, - -0.186726331710815f, - 0.963681280612946f, -0.187082037329674f, 0.963537633419037f, - -0.187437608838081f, - 0.963393747806549f, -0.187793090939522f, 0.963249564170837f, - -0.188148453831673f, - 0.963105142116547f, -0.188503712415695f, 0.962960422039032f, - -0.188858851790428f, - 0.962815403938293f, -0.189213871955872f, 0.962670147418976f, - -0.189568802714348f, - 0.962524592876434f, -0.189923599362373f, 0.962378799915314f, - -0.190278306603432f, - 0.962232708930969f, -0.190632879734039f, 0.962086379528046f, - -0.190987363457680f, - 0.961939752101898f, -0.191341713070869f, 0.961792886257172f, - -0.191695958375931f, - 0.961645722389221f, -0.192050099372864f, 0.961498260498047f, - -0.192404121160507f, - 0.961350560188293f, -0.192758023738861f, 0.961202561855316f, - -0.193111822009087f, - 0.961054325103760f, -0.193465501070023f, 0.960905790328979f, - -0.193819075822830f, - 0.960757017135620f, -0.194172516465187f, 0.960607945919037f, - -0.194525867700577f, - 0.960458636283875f, -0.194879084825516f, 0.960309028625488f, - -0.195232197642326f, - 0.960159122943878f, -0.195585191249847f, 0.960008978843689f, - -0.195938065648079f, - 0.959858596324921f, -0.196290835738182f, 0.959707856178284f, - -0.196643486618996f, - 0.959556937217712f, -0.196996018290520f, 0.959405720233917f, - -0.197348430752754f, - 0.959254205226898f, -0.197700738906860f, 0.959102451801300f, - -0.198052927851677f, - 0.958950400352478f, -0.198404997587204f, 0.958798050880432f, - -0.198756948113441f, - 0.958645522594452f, -0.199108779430389f, 0.958492636680603f, - -0.199460506439209f, - 0.958339512348175f, -0.199812099337578f, 0.958186149597168f, - -0.200163587927818f, - 0.958032488822937f, -0.200514942407608f, 0.957878530025482f, - -0.200866192579269f, - 0.957724332809448f, -0.201217323541641f, 0.957569897174835f, - -0.201568335294724f, - 0.957415163516998f, -0.201919227838516f, 0.957260131835938f, - -0.202270001173019f, - 0.957104861736298f, -0.202620655298233f, 0.956949353218079f, - -0.202971190214157f, - 0.956793546676636f, -0.203321605920792f, 0.956637442111969f, - -0.203671902418137f, - 0.956481099128723f, -0.204022079706192f, 0.956324458122253f, - -0.204372137784958f, - 0.956167578697205f, -0.204722076654434f, 0.956010460853577f, - -0.205071896314621f, - 0.955853044986725f, -0.205421581864357f, 0.955695331096649f, - -0.205771163105965f, - 0.955537378787994f, -0.206120610237122f, 0.955379128456116f, - -0.206469938158989f, - 0.955220639705658f, -0.206819161772728f, 0.955061912536621f, - -0.207168251276016f, - 0.954902827739716f, -0.207517206668854f, 0.954743564128876f, - -0.207866057753563f, - 0.954584002494812f, -0.208214774727821f, 0.954424142837524f, - -0.208563387393951f, - 0.954264044761658f, -0.208911851048470f, 0.954103708267212f, - -0.209260210394859f, - 0.953943073749542f, -0.209608450531960f, 0.953782141208649f, - -0.209956556558609f, - 0.953620970249176f, -0.210304543375969f, 0.953459560871124f, - -0.210652396082878f, - 0.953297853469849f, -0.211000129580498f, 0.953135907649994f, - -0.211347743868828f, - 0.952973663806915f, -0.211695238947868f, 0.952811121940613f, - -0.212042599916458f, - 0.952648401260376f, -0.212389841675758f, 0.952485322952271f, - -0.212736949324608f, - 0.952322065830231f, -0.213083937764168f, 0.952158451080322f, - -0.213430806994438f, - 0.951994657516479f, -0.213777542114258f, 0.951830565929413f, - -0.214124158024788f, - 0.951666176319122f, -0.214470639824867f, 0.951501548290253f, - -0.214817002415657f, - 0.951336681842804f, -0.215163245797157f, 0.951171517372131f, - -0.215509355068207f, - 0.951006054878235f, -0.215855330228806f, 0.950840353965759f, - -0.216201186180115f, - 0.950674414634705f, -0.216546908020973f, 0.950508177280426f, - -0.216892510652542f, - 0.950341701507568f, -0.217237979173660f, 0.950174987316132f, - -0.217583328485489f, - 0.950007975101471f, -0.217928543686867f, 0.949840664863586f, - -0.218273624777794f, - 0.949673116207123f, -0.218618586659431f, 0.949505329132080f, - -0.218963414430618f, - 0.949337244033813f, -0.219308122992516f, 0.949168920516968f, - -0.219652697443962f, - 0.949000298976898f, -0.219997137784958f, 0.948831439018250f, - -0.220341444015503f, - 0.948662281036377f, -0.220685631036758f, 0.948492884635925f, - -0.221029683947563f, - 0.948323249816895f, -0.221373617649078f, 0.948153316974640f, - -0.221717402338982f, - 0.947983145713806f, -0.222061067819595f, 0.947812676429749f, - -0.222404599189758f, - 0.947641968727112f, -0.222748011350632f, 0.947470963001251f, - -0.223091274499893f, - 0.947299718856812f, -0.223434418439865f, 0.947128236293793f, - -0.223777428269386f, - 0.946956455707550f, -0.224120303988457f, 0.946784436702728f, - -0.224463045597076f, - 0.946612179279327f, -0.224805667996407f, 0.946439623832703f, - -0.225148141384125f, - 0.946266770362854f, -0.225490495562553f, 0.946093678474426f, - -0.225832715630531f, - 0.945920348167419f, -0.226174786686897f, 0.945746779441834f, - -0.226516738533974f, - 0.945572853088379f, -0.226858556270599f, 0.945398747920990f, - -0.227200239896774f, - 0.945224344730377f, -0.227541789412498f, 0.945049703121185f, - -0.227883204817772f, - 0.944874763488770f, -0.228224486112595f, 0.944699645042419f, - -0.228565633296967f, - 0.944524168968201f, -0.228906646370888f, 0.944348454475403f, - -0.229247525334358f, - 0.944172501564026f, -0.229588270187378f, 0.943996310234070f, - -0.229928880929947f, - 0.943819820880890f, -0.230269357562065f, 0.943643093109131f, - -0.230609700083733f, - 0.943466067314148f, -0.230949893593788f, 0.943288803100586f, - -0.231289967894554f, - 0.943111240863800f, -0.231629893183708f, 0.942933499813080f, - -0.231969684362412f, - 0.942755401134491f, -0.232309341430664f, 0.942577123641968f, - -0.232648864388466f, - 0.942398548126221f, -0.232988253235817f, 0.942219734191895f, - -0.233327493071556f, - 0.942040622234344f, -0.233666598796844f, 0.941861271858215f, - -0.234005570411682f, - 0.941681683063507f, -0.234344407916069f, 0.941501796245575f, - -0.234683111310005f, - 0.941321671009064f, -0.235021665692329f, 0.941141307353973f, - -0.235360085964203f, - 0.940960645675659f, -0.235698372125626f, 0.940779745578766f, - -0.236036509275436f, - 0.940598547458649f, -0.236374512314796f, 0.940417110919952f, - -0.236712381243706f, - 0.940235435962677f, -0.237050101161003f, 0.940053522586823f, - -0.237387686967850f, - 0.939871311187744f, -0.237725138664246f, 0.939688861370087f, - -0.238062441349030f, - 0.939506113529205f, -0.238399609923363f, 0.939323127269745f, - -0.238736644387245f, - 0.939139902591705f, -0.239073529839516f, 0.938956379890442f, - -0.239410281181335f, - 0.938772618770599f, -0.239746883511543f, 0.938588619232178f, - -0.240083336830139f, - 0.938404381275177f, -0.240419670939446f, 0.938219845294952f, - -0.240755841135979f, - 0.938035070896149f, -0.241091892123222f, 0.937849998474121f, - -0.241427779197693f, - 0.937664687633514f, -0.241763532161713f, 0.937479138374329f, - -0.242099151015282f, - 0.937293350696564f, -0.242434620857239f, 0.937107264995575f, - -0.242769956588745f, - 0.936920940876007f, -0.243105143308640f, 0.936734318733215f, - -0.243440181016922f, - 0.936547517776489f, -0.243775084614754f, 0.936360359191895f, - -0.244109839200974f, - 0.936173021793365f, -0.244444444775581f, 0.935985386371613f, - -0.244778916239738f, - 0.935797572135925f, -0.245113238692284f, 0.935609400272369f, - -0.245447427034378f, - 0.935421049594879f, -0.245781451463699f, 0.935232400894165f, - -0.246115356683731f, - 0.935043513774872f, -0.246449097990990f, 0.934854328632355f, - -0.246782705187798f, - 0.934664964675903f, -0.247116148471832f, 0.934475243091583f, - -0.247449472546577f, - 0.934285342693329f, -0.247782632708550f, 0.934095203876495f, - -0.248115643858910f, - 0.933904767036438f, -0.248448520898819f, 0.933714091777802f, - -0.248781248927116f, - 0.933523118495941f, -0.249113827943802f, 0.933331906795502f, - -0.249446272850037f, - 0.933140456676483f, -0.249778553843498f, 0.932948768138886f, - -0.250110685825348f, - 0.932756841182709f, -0.250442683696747f, 0.932564616203308f, - -0.250774532556534f, - 0.932372152805328f, -0.251106232404709f, 0.932179391384125f, - -0.251437783241272f, - 0.931986451148987f, -0.251769185066223f, 0.931793212890625f, - -0.252100437879562f, - 0.931599736213684f, -0.252431541681290f, 0.931405961513519f, - -0.252762526273727f, - 0.931211948394775f, -0.253093332052231f, 0.931017756462097f, - -0.253423988819122f, - 0.930823206901550f, -0.253754496574402f, 0.930628478527069f, - -0.254084855318069f, - 0.930433452129364f, -0.254415065050125f, 0.930238187313080f, - -0.254745125770569f, - 0.930042684078217f, -0.255075037479401f, 0.929846942424774f, - -0.255404800176620f, - 0.929650902748108f, -0.255734413862228f, 0.929454624652863f, - -0.256063878536224f, - 0.929258108139038f, -0.256393194198608f, 0.929061353206635f, - -0.256722360849380f, - 0.928864300251007f, -0.257051378488541f, 0.928667008876801f, - -0.257380217313766f, - 0.928469479084015f, -0.257708936929703f, 0.928271710872650f, - -0.258037507534027f, - 0.928073644638062f, -0.258365899324417f, 0.927875399589539f, - -0.258694142103195f, - 0.927676856517792f, -0.259022265672684f, 0.927478015422821f, - -0.259350210428238f, - 0.927278995513916f, -0.259678006172180f, 0.927079677581787f, - -0.260005623102188f, - 0.926880121231079f, -0.260333120822906f, 0.926680326461792f, - -0.260660469532013f, - 0.926480293273926f, -0.260987639427185f, 0.926280021667480f, - -0.261314690113068f, - 0.926079452037811f, -0.261641561985016f, 0.925878643989563f, - -0.261968284845352f, - 0.925677597522736f, -0.262294828891754f, 0.925476312637329f, - -0.262621253728867f, - 0.925274729728699f, -0.262947499752045f, 0.925072908401489f, - -0.263273626565933f, - 0.924870908260345f, -0.263599574565887f, 0.924668610095978f, - -0.263925373554230f, - 0.924466013908386f, -0.264250993728638f, 0.924263238906860f, - -0.264576494693756f, - 0.924060165882111f, -0.264901816844940f, 0.923856854438782f, - -0.265226989984512f, - 0.923653304576874f, -0.265552014112473f, 0.923449516296387f, - -0.265876859426498f, - 0.923245489597321f, -0.266201555728912f, 0.923041164875031f, - -0.266526103019714f, - 0.922836601734161f, -0.266850501298904f, 0.922631800174713f, - -0.267174720764160f, - 0.922426760196686f, -0.267498821020126f, 0.922221481800079f, - -0.267822742462158f, - 0.922015964984894f, -0.268146485090256f, 0.921810150146484f, - -0.268470078706741f, - 0.921604096889496f, -0.268793523311615f, 0.921397805213928f, - -0.269116818904877f, - 0.921191275119781f, -0.269439965486526f, 0.920984506607056f, - -0.269762933254242f, - 0.920777499675751f, -0.270085722208023f, 0.920570194721222f, - -0.270408391952515f, - 0.920362710952759f, -0.270730882883072f, 0.920154929161072f, - -0.271053224802017f, - 0.919946908950806f, -0.271375387907028f, 0.919738650321960f, - -0.271697402000427f, - 0.919530093669891f, -0.272019267082214f, 0.919321358203888f, - -0.272340953350067f, - 0.919112324714661f, -0.272662490606308f, 0.918903112411499f, - -0.272983878850937f, - 0.918693602085114f, -0.273305088281631f, 0.918483853340149f, - -0.273626148700714f, - 0.918273866176605f, -0.273947030305862f, 0.918063640594482f, - -0.274267762899399f, - 0.917853116989136f, -0.274588316679001f, 0.917642414569855f, - -0.274908751249313f, - 0.917431414127350f, -0.275228977203369f, 0.917220234870911f, - -0.275549083948135f, - 0.917008757591248f, -0.275868982076645f, 0.916797041893005f, - -0.276188760995865f, - 0.916585087776184f, -0.276508361101151f, 0.916372895240784f, - -0.276827782392502f, - 0.916160404682159f, -0.277147054672241f, 0.915947735309601f, - -0.277466177940369f, - 0.915734827518463f, -0.277785122394562f, 0.915521621704102f, - -0.278103888034821f, - 0.915308177471161f, -0.278422504663467f, 0.915094554424286f, - -0.278740972280502f, - 0.914880633354187f, -0.279059261083603f, 0.914666473865509f, - -0.279377400875092f, - 0.914452075958252f, -0.279695361852646f, 0.914237439632416f, - -0.280013144016266f, - 0.914022505283356f, -0.280330777168274f, 0.913807392120361f, - -0.280648261308670f, - 0.913592040538788f, -0.280965566635132f, 0.913376390933990f, - -0.281282693147659f, - 0.913160502910614f, -0.281599670648575f, 0.912944436073303f, - -0.281916469335556f, - 0.912728071212769f, -0.282233119010925f, 0.912511467933655f, - -0.282549589872360f, - 0.912294626235962f, -0.282865911722183f, 0.912077546119690f, - -0.283182054758072f, - 0.911860227584839f, -0.283498018980026f, 0.911642670631409f, - -0.283813834190369f, - 0.911424875259399f, -0.284129470586777f, 0.911206841468811f, - -0.284444957971573f, - 0.910988569259644f, -0.284760266542435f, 0.910769999027252f, - -0.285075396299362f, - 0.910551249980927f, -0.285390377044678f, 0.910332262516022f, - -0.285705178976059f, - 0.910112977027893f, -0.286019802093506f, 0.909893512725830f, - -0.286334276199341f, - 0.909673750400543f, -0.286648571491241f, 0.909453809261322f, - -0.286962717771530f, - 0.909233570098877f, -0.287276685237885f, 0.909013092517853f, - -0.287590473890305f, - 0.908792436122894f, -0.287904083728790f, 0.908571481704712f, - -0.288217544555664f, - 0.908350288867950f, -0.288530826568604f, 0.908128857612610f, - -0.288843959569931f, - 0.907907187938690f, -0.289156883955002f, 0.907685279846191f, - -0.289469659328461f, - 0.907463192939758f, -0.289782285690308f, 0.907240808010101f, - -0.290094703435898f, - 0.907018184661865f, -0.290406972169876f, 0.906795322895050f, - -0.290719062089920f, - 0.906572222709656f, -0.291031002998352f, 0.906348884105682f, - -0.291342735290527f, - 0.906125307083130f, -0.291654318571091f, 0.905901491641998f, - -0.291965723037720f, - 0.905677437782288f, -0.292276978492737f, 0.905453145503998f, - -0.292588025331497f, - 0.905228614807129f, -0.292898923158646f, 0.905003845691681f, - -0.293209642171860f, - 0.904778838157654f, -0.293520182371140f, 0.904553592205048f, - -0.293830573558807f, - 0.904328107833862f, -0.294140785932541f, 0.904102385044098f, - -0.294450789690018f, - 0.903876423835754f, -0.294760644435883f, 0.903650224208832f, - -0.295070350170136f, - 0.903423786163330f, -0.295379847288132f, 0.903197109699249f, - -0.295689195394516f, - 0.902970194816589f, -0.295998334884644f, 0.902743041515350f, - -0.296307325363159f, - 0.902515649795532f, -0.296616137027740f, 0.902288019657135f, - -0.296924799680710f, - 0.902060210704803f, -0.297233253717422f, 0.901832103729248f, - -0.297541528940201f, - 0.901603758335114f, -0.297849655151367f, 0.901375174522400f, - -0.298157602548599f, - 0.901146411895752f, -0.298465341329575f, 0.900917351245880f, - -0.298772931098938f, - 0.900688111782074f, -0.299080342054367f, 0.900458574295044f, - -0.299387603998184f, - 0.900228857994080f, -0.299694657325745f, 0.899998843669891f, - -0.300001531839371f, - 0.899768650531769f, -0.300308227539063f, 0.899538159370422f, - -0.300614774227142f, - 0.899307489395142f, -0.300921112298965f, 0.899076581001282f, - -0.301227301359177f, - 0.898845434188843f, -0.301533311605453f, 0.898614048957825f, - -0.301839113235474f, - 0.898382425308228f, -0.302144765853882f, 0.898150563240051f, - -0.302450239658356f, - 0.897918462753296f, -0.302755534648895f, 0.897686123847961f, - -0.303060621023178f, - 0.897453546524048f, -0.303365558385849f, 0.897220790386200f, - -0.303670316934586f, - 0.896987736225128f, -0.303974896669388f, 0.896754503250122f, - -0.304279297590256f, - 0.896520972251892f, -0.304583519697189f, 0.896287262439728f, - -0.304887533187866f, - 0.896053314208984f, -0.305191397666931f, 0.895819067955017f, - -0.305495083332062f, - 0.895584642887115f, -0.305798590183258f, 0.895349979400635f, - -0.306101888418198f, - 0.895115137100220f, -0.306405037641525f, 0.894879996776581f, - -0.306708008050919f, - 0.894644618034363f, -0.307010769844055f, 0.894409060478210f, - -0.307313382625580f, - 0.894173204898834f, -0.307615786790848f, 0.893937170505524f, - -0.307918041944504f, - 0.893700897693634f, -0.308220088481903f, 0.893464326858521f, - -0.308521956205368f, - 0.893227577209473f, -0.308823645114899f, 0.892990648746490f, - -0.309125155210495f, - 0.892753422260284f, -0.309426486492157f, 0.892515957355499f, - -0.309727638959885f, - 0.892278313636780f, -0.310028612613678f, 0.892040371894836f, - -0.310329377651215f, - 0.891802251338959f, -0.310629993677139f, 0.891563892364502f, - -0.310930401086807f, - 0.891325294971466f, -0.311230629682541f, 0.891086459159851f, - -0.311530679464340f, - 0.890847444534302f, -0.311830550432205f, 0.890608131885529f, - -0.312130242586136f, - 0.890368640422821f, -0.312429755926132f, 0.890128850936890f, - -0.312729060649872f, - 0.889888882637024f, -0.313028186559677f, 0.889648675918579f, - -0.313327133655548f, - 0.889408230781555f, -0.313625901937485f, 0.889167606830597f, - -0.313924491405487f, - 0.888926684856415f, -0.314222872257233f, 0.888685584068298f, - -0.314521104097366f, - 0.888444244861603f, -0.314819127321243f, 0.888202667236328f, - -0.315116971731186f, - 0.887960851192474f, -0.315414607524872f, 0.887718796730042f, - -0.315712094306946f, - 0.887476563453674f, -0.316009372472763f, 0.887234091758728f, - -0.316306471824646f, - 0.886991322040558f, -0.316603392362595f, 0.886748373508453f, - -0.316900104284287f, - 0.886505246162415f, -0.317196637392044f, 0.886261820793152f, - -0.317492991685867f, - 0.886018216609955f, -0.317789167165756f, 0.885774314403534f, - -0.318085134029388f, - 0.885530233383179f, -0.318380922079086f, 0.885285973548889f, - -0.318676531314850f, - 0.885041415691376f, -0.318971961736679f, 0.884796679019928f, - -0.319267183542252f, - 0.884551644325256f, -0.319562226533890f, 0.884306430816650f, - -0.319857090711594f, - 0.884061038494110f, -0.320151746273041f, 0.883815348148346f, - -0.320446223020554f, - 0.883569478988647f, -0.320740520954132f, 0.883323311805725f, - -0.321034610271454f, - 0.883076965808868f, -0.321328520774841f, 0.882830440998077f, - -0.321622252464294f, - 0.882583618164063f, -0.321915775537491f, 0.882336616516113f, - -0.322209119796753f, - 0.882089376449585f, -0.322502255439758f, 0.881841897964478f, - -0.322795242071152f, - 0.881594181060791f, -0.323088020086288f, 0.881346285343170f, - -0.323380589485168f, - 0.881098151206970f, -0.323672980070114f, 0.880849778652191f, - -0.323965191841125f, - 0.880601167678833f, -0.324257194995880f, 0.880352377891541f, - -0.324549019336700f, - 0.880103349685669f, -0.324840664863586f, 0.879854083061218f, - -0.325132101774216f, - 0.879604578018188f, -0.325423330068588f, 0.879354894161224f, - -0.325714409351349f, - 0.879104971885681f, -0.326005280017853f, 0.878854811191559f, - -0.326295942068100f, - 0.878604412078857f, -0.326586425304413f, 0.878353834152222f, - -0.326876699924469f, - 0.878103017807007f, -0.327166795730591f, 0.877851963043213f, - -0.327456712722778f, - 0.877600669860840f, -0.327746421098709f, 0.877349197864532f, - -0.328035950660706f, - 0.877097487449646f, -0.328325271606445f, 0.876845538616180f, - -0.328614413738251f, - 0.876593410968781f, -0.328903347253799f, 0.876341044902802f, - -0.329192101955414f, - 0.876088440418243f, -0.329480648040771f, 0.875835597515106f, - -0.329769015312195f, - 0.875582575798035f, -0.330057173967361f, 0.875329315662384f, - -0.330345153808594f, - 0.875075817108154f, -0.330632925033569f, 0.874822139739990f, - -0.330920487642288f, - 0.874568223953247f, -0.331207901239395f, 0.874314069747925f, - -0.331495076417923f, - 0.874059677124023f, -0.331782072782516f, 0.873805105686188f, - -0.332068890333176f, - 0.873550295829773f, -0.332355499267578f, 0.873295307159424f, - -0.332641899585724f, - 0.873040020465851f, -0.332928121089935f, 0.872784554958344f, - -0.333214133977890f, - 0.872528910636902f, -0.333499968051910f, 0.872272968292236f, - -0.333785593509674f, - 0.872016847133636f, -0.334071010351181f, 0.871760547161102f, - -0.334356248378754f, - 0.871503949165344f, -0.334641307592392f, 0.871247172355652f, - -0.334926128387451f, - 0.870990216732025f, -0.335210770368576f, 0.870733022689819f, - -0.335495233535767f, - 0.870475590229034f, -0.335779488086700f, 0.870217919349670f, - -0.336063534021378f, - 0.869960069656372f, -0.336347371339798f, 0.869701981544495f, - -0.336631029844284f, - 0.869443655014038f, -0.336914509534836f, 0.869185149669647f, - -0.337197750806808f, - 0.868926405906677f, -0.337480813264847f, 0.868667483329773f, - -0.337763696908951f, - 0.868408262729645f, -0.338046342134476f, 0.868148922920227f, - -0.338328808546066f, - 0.867889285087585f, -0.338611096143723f, 0.867629468441010f, - -0.338893145322800f, - 0.867369413375854f, -0.339175015687943f, 0.867109179496765f, - -0.339456677436829f, - 0.866848707199097f, -0.339738160371780f, 0.866588056087494f, - -0.340019434690475f, - 0.866327106952667f, -0.340300500392914f, 0.866066038608551f, - -0.340581357479095f, - 0.865804672241211f, -0.340862035751343f, 0.865543127059937f, - -0.341142505407333f, - 0.865281403064728f, -0.341422766447067f, 0.865019381046295f, - -0.341702848672867f, - 0.864757239818573f, -0.341982692480087f, 0.864494800567627f, - -0.342262357473373f, - 0.864232182502747f, -0.342541843652725f, 0.863969385623932f, - -0.342821091413498f, - 0.863706290721893f, -0.343100160360336f, 0.863443076610565f, - -0.343379020690918f, - 0.863179564476013f, -0.343657672405243f, 0.862915873527527f, - -0.343936115503311f, - 0.862652003765106f, -0.344214379787445f, 0.862387895584106f, - -0.344492435455322f, - 0.862123548984528f, -0.344770282506943f, 0.861859023571014f, - -0.345047920942307f, - 0.861594259738922f, -0.345325350761414f, 0.861329257488251f, - -0.345602601766586f, - 0.861064076423645f, -0.345879614353180f, 0.860798716545105f, - -0.346156448125839f, - 0.860533118247986f, -0.346433073282242f, 0.860267281532288f, - -0.346709519624710f, - 0.860001266002655f, -0.346985727548599f, 0.859735012054443f, - -0.347261756658554f, - 0.859468579292297f, -0.347537547349930f, 0.859201908111572f, - -0.347813159227371f, - 0.858934998512268f, -0.348088562488556f, 0.858667910099030f, - -0.348363757133484f, - 0.858400642871857f, -0.348638743162155f, 0.858133137226105f, - -0.348913550376892f, - 0.857865393161774f, -0.349188119173050f, 0.857597470283508f, - -0.349462509155273f, - 0.857329368591309f, -0.349736660718918f, 0.857060968875885f, - -0.350010633468628f, - 0.856792449951172f, -0.350284397602081f, 0.856523692607880f, - -0.350557953119278f, - 0.856254696846008f, -0.350831300020218f, 0.855985522270203f, - -0.351104438304901f, - 0.855716109275818f, -0.351377367973328f, 0.855446517467499f, - -0.351650089025497f, - 0.855176687240601f, -0.351922631263733f, 0.854906618595123f, - -0.352194935083389f, - 0.854636430740356f, -0.352467030286789f, 0.854365944862366f, - -0.352738946676254f, - 0.854095339775085f, -0.353010624647141f, 0.853824436664581f, - -0.353282123804092f, - 0.853553414344788f, -0.353553384542465f, 0.853282094001770f, - -0.353824466466904f, - 0.853010654449463f, -0.354095309972763f, 0.852738916873932f, - -0.354365974664688f, - 0.852467060089111f, -0.354636400938034f, 0.852194905281067f, - -0.354906648397446f, - 0.851922631263733f, -0.355176687240601f, 0.851650118827820f, - -0.355446487665176f, - 0.851377367973328f, -0.355716109275818f, 0.851104438304901f, - -0.355985492467880f, - 0.850831270217896f, -0.356254696846008f, 0.850557923316956f, - -0.356523662805557f, - 0.850284397602081f, -0.356792420148849f, 0.850010633468628f, - -0.357060998678207f, - 0.849736690521240f, -0.357329338788986f, 0.849462509155273f, - -0.357597470283508f, - 0.849188148975372f, -0.357865422964096f, 0.848913550376892f, - -0.358133137226105f, - 0.848638772964478f, -0.358400642871857f, 0.848363757133484f, - -0.358667939901352f, - 0.848088562488556f, -0.358935028314590f, 0.847813189029694f, - -0.359201908111572f, - 0.847537577152252f, -0.359468549489975f, 0.847261726856232f, - -0.359735012054443f, - 0.846985757350922f, -0.360001266002655f, 0.846709489822388f, - -0.360267281532288f, - 0.846433103084564f, -0.360533088445663f, 0.846156477928162f, - -0.360798716545105f, - 0.845879614353180f, -0.361064106225967f, 0.845602571964264f, - -0.361329287290573f, - 0.845325350761414f, -0.361594229936600f, 0.845047891139984f, - -0.361858993768692f, - 0.844770252704620f, -0.362123548984528f, 0.844492435455322f, - -0.362387865781784f, - 0.844214379787445f, -0.362651973962784f, 0.843936145305634f, - -0.362915903329849f, - 0.843657672405243f, -0.363179564476013f, 0.843379020690918f, - -0.363443046808243f, - 0.843100130558014f, -0.363706320524216f, 0.842821121215820f, - -0.363969355821610f, - 0.842541813850403f, -0.364232182502747f, 0.842262387275696f, - -0.364494800567627f, - 0.841982722282410f, -0.364757210016251f, 0.841702818870544f, - -0.365019410848618f, - 0.841422796249390f, -0.365281373262405f, 0.841142535209656f, - -0.365543156862259f, - 0.840862035751343f, -0.365804702043533f, 0.840581357479095f, - -0.366066008806229f, - 0.840300500392914f, -0.366327136754990f, 0.840019404888153f, - -0.366588026285172f, - 0.839738130569458f, -0.366848707199097f, 0.839456677436829f, - -0.367109179496765f, - 0.839175045490265f, -0.367369443178177f, 0.838893175125122f, - -0.367629468441010f, - 0.838611066341400f, -0.367889285087585f, 0.838328838348389f, - -0.368148893117905f, - 0.838046371936798f, -0.368408292531967f, 0.837763667106628f, - -0.368667453527451f, - 0.837480843067169f, -0.368926405906677f, 0.837197780609131f, - -0.369185149669647f, - 0.836914479732513f, -0.369443655014038f, 0.836631059646606f, - -0.369701951742172f, - 0.836347401142120f, -0.369960039854050f, 0.836063504219055f, - -0.370217919349670f, - 0.835779488086700f, -0.370475560426712f, 0.835495233535767f, - -0.370732992887497f, - 0.835210800170898f, -0.370990216732025f, 0.834926128387451f, - -0.371247202157974f, - 0.834641277790070f, -0.371503978967667f, 0.834356248378754f, - -0.371760547161102f, - 0.834071040153503f, -0.372016876935959f, 0.833785593509674f, - -0.372272998094559f, - 0.833499968051910f, -0.372528880834579f, 0.833214163780212f, - -0.372784584760666f, - 0.832928121089935f, -0.373040050268173f, 0.832641899585724f, - -0.373295277357101f, - 0.832355499267578f, -0.373550295829773f, 0.832068860530853f, - -0.373805105686188f, - 0.831782102584839f, -0.374059677124023f, 0.831495106220245f, - -0.374314039945602f, - 0.831207871437073f, -0.374568194150925f, 0.830920517444611f, - -0.374822109937668f, - 0.830632925033569f, -0.375075817108154f, 0.830345153808594f, - -0.375329315662384f, - 0.830057144165039f, -0.375582575798035f, 0.829769015312195f, - -0.375835597515106f, - 0.829480648040771f, -0.376088410615921f, 0.829192101955414f, - -0.376341015100479f, - 0.828903317451477f, -0.376593410968781f, 0.828614413738251f, - -0.376845568418503f, - 0.828325271606445f, -0.377097487449646f, 0.828035950660706f, - -0.377349197864532f, - 0.827746450901031f, -0.377600699663162f, 0.827456712722778f, - -0.377851963043213f, - 0.827166795730591f, -0.378102988004684f, 0.826876699924469f, - -0.378353834152222f, - 0.826586425304413f, -0.378604412078857f, 0.826295912265778f, - -0.378854811191559f, - 0.826005280017853f, -0.379104942083359f, 0.825714409351349f, - -0.379354894161224f, - 0.825423359870911f, -0.379604607820511f, 0.825132071971893f, - -0.379854083061218f, - 0.824840664863586f, -0.380103349685669f, 0.824549019336700f, - -0.380352377891541f, - 0.824257194995880f, -0.380601197481155f, 0.823965191841125f, - -0.380849778652191f, - 0.823673009872437f, -0.381098151206970f, 0.823380589485168f, - -0.381346285343170f, - 0.823087990283966f, -0.381594210863113f, 0.822795212268829f, - -0.381841897964478f, - 0.822502255439758f, -0.382089376449585f, 0.822209119796753f, - -0.382336616516113f, - 0.821915745735168f, -0.382583618164063f, 0.821622252464294f, - -0.382830440998077f, - 0.821328520774841f, -0.383076995611191f, 0.821034610271454f, - -0.383323341608047f, - 0.820740520954132f, -0.383569449186325f, 0.820446193218231f, - -0.383815348148346f, - 0.820151746273041f, -0.384061008691788f, 0.819857060909271f, - -0.384306460618973f, - 0.819562196731567f, -0.384551674127579f, 0.819267153739929f, - -0.384796649217606f, - 0.818971931934357f, -0.385041415691376f, 0.818676531314850f, - -0.385285943746567f, - 0.818380951881409f, -0.385530263185501f, 0.818085134029388f, - -0.385774344205856f, - 0.817789137363434f, -0.386018186807632f, 0.817493021488190f, - -0.386261820793152f, - 0.817196667194366f, -0.386505216360092f, 0.816900074481964f, - -0.386748403310776f, - 0.816603362560272f, -0.386991351842880f, 0.816306471824646f, - -0.387234061956406f, - 0.816009342670441f, -0.387476563453674f, 0.815712094306946f, - -0.387718826532364f, - 0.815414607524872f, -0.387960851192474f, 0.815116941928864f, - -0.388202667236328f, - 0.814819097518921f, -0.388444244861603f, 0.814521074295044f, - -0.388685584068298f, - 0.814222872257233f, -0.388926714658737f, 0.813924491405487f, - -0.389167606830597f, - 0.813625931739807f, -0.389408260583878f, 0.813327133655548f, - -0.389648675918579f, - 0.813028216362000f, -0.389888882637024f, 0.812729060649872f, - -0.390128880739212f, - 0.812429726123810f, -0.390368610620499f, 0.812130272388458f, - -0.390608131885529f, - 0.811830580234528f, -0.390847414731979f, 0.811530709266663f, - -0.391086459159851f, - 0.811230659484863f, -0.391325294971466f, 0.810930430889130f, - -0.391563892364502f, - 0.810629963874817f, -0.391802251338959f, 0.810329377651215f, - -0.392040401697159f, - 0.810028612613678f, -0.392278283834457f, 0.809727668762207f, - -0.392515957355499f, - 0.809426486492157f, -0.392753422260284f, 0.809125185012817f, - -0.392990618944168f, - 0.808823645114899f, -0.393227607011795f, 0.808521986007690f, - -0.393464356660843f, - 0.808220088481903f, -0.393700867891312f, 0.807918012142181f, - -0.393937170505524f, - 0.807615816593170f, -0.394173204898834f, 0.807313382625580f, - -0.394409030675888f, - 0.807010769844055f, -0.394644618034363f, 0.806707978248596f, - -0.394879996776581f, - 0.806405067443848f, -0.395115107297897f, 0.806101918220520f, - -0.395350009202957f, - 0.805798590183258f, -0.395584672689438f, 0.805495083332062f, - -0.395819097757339f, - 0.805191397666931f, -0.396053284406662f, 0.804887533187866f, - -0.396287262439728f, - 0.804583489894867f, -0.396520972251892f, 0.804279267787933f, - -0.396754473447800f, - 0.803974866867065f, -0.396987736225128f, 0.803670346736908f, - -0.397220760583878f, - 0.803365588188171f, -0.397453576326370f, 0.803060650825500f, - -0.397686123847961f, - 0.802755534648895f, -0.397918462753296f, 0.802450239658356f, - -0.398150533437729f, - 0.802144765853882f, -0.398382395505905f, 0.801839113235474f, - -0.398614019155502f, - 0.801533281803131f, -0.398845434188843f, 0.801227271556854f, - -0.399076581001282f, - 0.800921142101288f, -0.399307489395142f, 0.800614774227142f, - -0.399538189172745f, - 0.800308227539063f, -0.399768620729446f, 0.800001561641693f, - -0.399998843669891f, - 0.799694657325745f, -0.400228828191757f, 0.799387574195862f, - -0.400458574295044f, - 0.799080371856689f, -0.400688081979752f, 0.798772931098938f, - -0.400917351245880f, - 0.798465371131897f, -0.401146411895752f, 0.798157572746277f, - -0.401375204324722f, - 0.797849655151367f, -0.401603758335114f, 0.797541558742523f, - -0.401832103729248f, - 0.797233223915100f, -0.402060180902481f, 0.796924769878387f, - -0.402288049459457f, - 0.796616137027740f, -0.402515679597855f, 0.796307325363159f, - -0.402743041515350f, - 0.795998334884644f, -0.402970194816589f, 0.795689165592194f, - -0.403197109699249f, - 0.795379877090454f, -0.403423786163330f, 0.795070350170136f, - -0.403650224208832f, - 0.794760644435883f, -0.403876423835754f, 0.794450819492340f, - -0.404102355241776f, - 0.794140756130219f, -0.404328078031540f, 0.793830573558807f, - -0.404553562402725f, - 0.793520212173462f, -0.404778808355331f, 0.793209671974182f, - -0.405003815889359f, - 0.792898952960968f, -0.405228585004807f, 0.792588055133820f, - -0.405453115701675f, - 0.792276978492737f, -0.405677437782288f, 0.791965723037720f, - -0.405901491641998f, - 0.791654348373413f, -0.406125307083130f, 0.791342735290527f, - -0.406348884105682f, - 0.791031002998352f, -0.406572192907333f, 0.790719091892242f, - -0.406795293092728f, - 0.790407001972198f, -0.407018154859543f, 0.790094733238220f, - -0.407240778207779f, - 0.789782285690308f, -0.407463163137436f, 0.789469659328461f, - -0.407685309648514f, - 0.789156913757324f, -0.407907217741013f, 0.788843929767609f, - -0.408128857612610f, - 0.788530826568604f, -0.408350288867950f, 0.788217544555664f, - -0.408571451902390f, - 0.787904083728790f, -0.408792406320572f, 0.787590444087982f, - -0.409013092517853f, - 0.787276685237885f, -0.409233570098877f, 0.786962687969208f, - -0.409453779459000f, - 0.786648571491241f, -0.409673750400543f, 0.786334276199341f, - -0.409893482923508f, - 0.786019802093506f, -0.410112977027893f, 0.785705149173737f, - -0.410332232713699f, - 0.785390377044678f, -0.410551249980927f, 0.785075426101685f, - -0.410770028829575f, - 0.784760236740112f, -0.410988569259644f, 0.784444928169250f, - -0.411206841468811f, - 0.784129500389099f, -0.411424905061722f, 0.783813834190369f, - -0.411642700433731f, - 0.783498048782349f, -0.411860257387161f, 0.783182024955750f, - -0.412077575922012f, - 0.782865881919861f, -0.412294656038284f, 0.782549619674683f, - -0.412511497735977f, - 0.782233119010925f, -0.412728071212769f, 0.781916499137878f, - -0.412944436073303f, - 0.781599700450897f, -0.413160532712936f, 0.781282722949982f, - -0.413376390933990f, - 0.780965566635132f, -0.413592010736465f, 0.780648231506348f, - -0.413807392120361f, - 0.780330777168274f, -0.414022535085678f, 0.780013144016266f, - -0.414237409830093f, - 0.779695332050323f, -0.414452046155930f, 0.779377400875092f, - -0.414666473865509f, - 0.779059290885925f, -0.414880603551865f, 0.778741002082825f, - -0.415094524621964f, - 0.778422534465790f, -0.415308207273483f, 0.778103888034821f, - -0.415521621704102f, - 0.777785122394562f, -0.415734797716141f, 0.777466177940369f, - -0.415947735309601f, - 0.777147054672241f, -0.416160434484482f, 0.776827812194824f, - -0.416372895240784f, - 0.776508331298828f, -0.416585087776184f, 0.776188731193542f, - -0.416797041893005f, - 0.775869011878967f, -0.417008757591248f, 0.775549054145813f, - -0.417220205068588f, - 0.775228977203369f, -0.417431443929672f, 0.774908721446991f, - -0.417642414569855f, - 0.774588346481323f, -0.417853146791458f, 0.774267733097076f, - -0.418063640594482f, - 0.773947000503540f, -0.418273866176605f, 0.773626148700714f, - -0.418483853340149f, - 0.773305058479309f, -0.418693602085114f, 0.772983849048615f, - -0.418903112411499f, - 0.772662520408630f, -0.419112354516983f, 0.772340953350067f, - -0.419321358203888f, - 0.772019267082214f, -0.419530123472214f, 0.771697402000427f, - -0.419738620519638f, - 0.771375417709351f, -0.419946908950806f, 0.771053194999695f, - -0.420154929161072f, - 0.770730912685394f, -0.420362681150436f, 0.770408391952515f, - -0.420570224523544f, - 0.770085752010345f, -0.420777499675751f, 0.769762933254242f, - -0.420984506607056f, - 0.769439935684204f, -0.421191304922104f, 0.769116818904877f, - -0.421397835016251f, - 0.768793523311615f, -0.421604126691818f, 0.768470108509064f, - -0.421810150146484f, - 0.768146514892578f, -0.422015935182571f, 0.767822742462158f, - -0.422221481800079f, - 0.767498791217804f, -0.422426789999008f, 0.767174720764160f, - -0.422631829977036f, - 0.766850471496582f, -0.422836631536484f, 0.766526103019714f, - -0.423041164875031f, - 0.766201555728912f, -0.423245459794998f, 0.765876889228821f, - -0.423449516296387f, - 0.765551984310150f, -0.423653304576874f, 0.765226960182190f, - -0.423856884241104f, - 0.764901816844940f, -0.424060165882111f, 0.764576494693756f, - -0.424263238906860f, - 0.764250993728638f, -0.424466013908386f, 0.763925373554230f, - -0.424668580293655f, - 0.763599574565887f, -0.424870878458023f, 0.763273596763611f, - -0.425072938203812f, - 0.762947499752045f, -0.425274729728699f, 0.762621283531189f, - -0.425476282835007f, - 0.762294828891754f, -0.425677597522736f, 0.761968255043030f, - -0.425878643989563f, - 0.761641561985016f, -0.426079452037811f, 0.761314690113068f, - -0.426279991865158f, - 0.760987639427185f, -0.426480293273926f, 0.760660469532013f, - -0.426680356264114f, - 0.760333120822906f, -0.426880151033401f, 0.760005652904511f, - -0.427079707384110f, - 0.759678006172180f, -0.427278995513916f, 0.759350180625916f, - -0.427478045225143f, - 0.759022235870361f, -0.427676826715469f, 0.758694171905518f, - -0.427875369787216f, - 0.758365929126740f, -0.428073674440384f, 0.758037507534027f, - -0.428271710872650f, - 0.757708966732025f, -0.428469479084015f, 0.757380247116089f, - -0.428667008876801f, - 0.757051348686218f, -0.428864300251007f, 0.756722390651703f, - -0.429061323404312f, - 0.756393194198608f, -0.429258108139038f, 0.756063878536224f, - -0.429454624652863f, - 0.755734443664551f, -0.429650902748108f, 0.755404829978943f, - -0.429846942424774f, - 0.755075037479401f, -0.430042684078217f, 0.754745125770569f, - -0.430238217115402f, - 0.754415094852448f, -0.430433481931686f, 0.754084885120392f, - -0.430628478527069f, - 0.753754496574402f, -0.430823236703873f, 0.753423988819122f, - -0.431017726659775f, - 0.753093302249908f, -0.431211978197098f, 0.752762496471405f, - -0.431405961513519f, - 0.752431571483612f, -0.431599706411362f, 0.752100467681885f, - -0.431793183088303f, - 0.751769185066223f, -0.431986421346664f, 0.751437783241272f, - -0.432179391384125f, - 0.751106262207031f, -0.432372123003006f, 0.750774562358856f, - -0.432564586400986f, - 0.750442683696747f, -0.432756811380386f, 0.750110685825348f, - -0.432948768138886f, - 0.749778568744659f, -0.433140486478806f, 0.749446272850037f, - -0.433331936597824f, - 0.749113857746124f, -0.433523118495941f, 0.748781263828278f, - -0.433714061975479f, - 0.748448550701141f, -0.433904737234116f, 0.748115658760071f, - -0.434095174074173f, - 0.747782647609711f, -0.434285342693329f, 0.747449457645416f, - -0.434475272893906f, - 0.747116148471832f, -0.434664934873581f, 0.746782720088959f, - -0.434854328632355f, - 0.746449112892151f, -0.435043483972549f, 0.746115326881409f, - -0.435232400894165f, - 0.745781481266022f, -0.435421019792557f, 0.745447397232056f, - -0.435609430074692f, - 0.745113253593445f, -0.435797542333603f, 0.744778931140900f, - -0.435985416173935f, - 0.744444429874420f, -0.436173021793365f, 0.744109809398651f, - -0.436360388994217f, - 0.743775069713593f, -0.436547487974167f, 0.743440151214600f, - -0.436734348535538f, - 0.743105113506317f, -0.436920911073685f, 0.742769956588745f, - -0.437107264995575f, - 0.742434620857239f, -0.437293320894241f, 0.742099165916443f, - -0.437479138374329f, - 0.741763532161713f, -0.437664687633514f, 0.741427779197693f, - -0.437849998474121f, - 0.741091907024384f, -0.438035041093826f, 0.740755856037140f, - -0.438219845294952f, - 0.740419685840607f, -0.438404351472855f, 0.740083336830139f, - -0.438588619232178f, - 0.739746868610382f, -0.438772648572922f, 0.739410281181335f, - -0.438956409692764f, - 0.739073514938354f, -0.439139902591705f, 0.738736629486084f, - -0.439323127269745f, - 0.738399624824524f, -0.439506113529205f, 0.738062441349030f, - -0.439688831567764f, - 0.737725138664246f, -0.439871311187744f, 0.737387716770172f, - -0.440053492784500f, - 0.737050116062164f, -0.440235435962677f, 0.736712396144867f, - -0.440417140722275f, - 0.736374497413635f, -0.440598547458649f, 0.736036539077759f, - -0.440779715776443f, - 0.735698342323303f, -0.440960645675659f, 0.735360085964203f, - -0.441141277551651f, - 0.735021650791168f, -0.441321671009064f, 0.734683096408844f, - -0.441501796245575f, - 0.734344422817230f, -0.441681683063507f, 0.734005570411682f, - -0.441861271858215f, - 0.733666598796844f, -0.442040622234344f, 0.733327507972717f, - -0.442219734191895f, - 0.732988238334656f, -0.442398548126221f, 0.732648849487305f, - -0.442577123641968f, - 0.732309341430664f, -0.442755430936813f, 0.731969714164734f, - -0.442933470010757f, - 0.731629908084869f, -0.443111270666122f, 0.731289982795715f, - -0.443288803100586f, - 0.730949878692627f, -0.443466067314148f, 0.730609714984894f, - -0.443643063306808f, - 0.730269372463226f, -0.443819820880890f, 0.729928910732269f, - -0.443996280431747f, - 0.729588270187378f, -0.444172531366348f, 0.729247510433197f, - -0.444348484277725f, - 0.728906631469727f, -0.444524168968201f, 0.728565633296967f, - -0.444699615240097f, - 0.728224515914917f, -0.444874793291092f, 0.727883219718933f, - -0.445049703121185f, - 0.727541804313660f, -0.445224374532700f, 0.727200269699097f, - -0.445398747920990f, - 0.726858556270599f, -0.445572882890701f, 0.726516723632813f, - -0.445746749639511f, - 0.726174771785736f, -0.445920348167419f, 0.725832700729370f, - -0.446093708276749f, - 0.725490510463715f, -0.446266770362854f, 0.725148141384125f, - -0.446439594030380f, - 0.724805653095245f, -0.446612149477005f, 0.724463045597076f, - -0.446784436702728f, - 0.724120318889618f, -0.446956485509872f, 0.723777413368225f, - -0.447128236293793f, - 0.723434448242188f, -0.447299748659134f, 0.723091304302216f, - -0.447470992803574f, - 0.722747981548309f, -0.447641968727112f, 0.722404599189758f, - -0.447812676429749f, - 0.722061097621918f, -0.447983115911484f, 0.721717417240143f, - -0.448153316974640f, - 0.721373617649078f, -0.448323249816895f, 0.721029698848724f, - -0.448492884635925f, - 0.720685660839081f, -0.448662281036377f, 0.720341444015503f, - -0.448831409215927f, - 0.719997107982636f, -0.449000298976898f, 0.719652712345123f, - -0.449168890714645f, - 0.719308137893677f, -0.449337244033813f, 0.718963444232941f, - -0.449505299329758f, - 0.718618571758270f, -0.449673116207123f, 0.718273639678955f, - -0.449840664863586f, - 0.717928528785706f, -0.450007945299149f, 0.717583298683167f, - -0.450174957513809f, - 0.717238008975983f, -0.450341701507568f, 0.716892480850220f, - -0.450508207082748f, - 0.716546893119812f, -0.450674414634705f, 0.716201186180115f, - -0.450840383768082f, - 0.715855300426483f, -0.451006084680557f, 0.715509355068207f, - -0.451171487569809f, - 0.715163230895996f, -0.451336652040482f, 0.714816987514496f, - -0.451501548290253f, - 0.714470624923706f, -0.451666176319122f, 0.714124143123627f, - -0.451830536127090f, - 0.713777542114258f, -0.451994657516479f, 0.713430821895599f, - -0.452158480882645f, - 0.713083922863007f, -0.452322036027908f, 0.712736964225769f, - -0.452485352754593f, - 0.712389826774597f, -0.452648371458054f, 0.712042629718781f, - -0.452811151742935f, - 0.711695253849030f, -0.452973634004593f, 0.711347758769989f, - -0.453135877847672f, - 0.711000144481659f, -0.453297853469849f, 0.710652410984039f, - -0.453459560871124f, - 0.710304558277130f, -0.453621000051498f, 0.709956526756287f, - -0.453782171010971f, - 0.709608435630798f, -0.453943043947220f, 0.709260225296021f, - -0.454103678464890f, - 0.708911836147308f, -0.454264044761658f, 0.708563387393951f, - -0.454424172639847f, - 0.708214759826660f, -0.454584002494812f, 0.707866072654724f, - -0.454743564128876f, - 0.707517206668854f, -0.454902857542038f, 0.707168221473694f, - -0.455061882734299f, - 0.706819176673889f, -0.455220639705658f, 0.706469953060150f, - -0.455379128456116f, - 0.706120610237122f, -0.455537378787994f, 0.705771148204803f, - -0.455695331096649f, - 0.705421566963196f, -0.455853015184402f, 0.705071866512299f, - -0.456010431051254f, - 0.704722046852112f, -0.456167578697205f, 0.704372167587280f, - -0.456324487924576f, - 0.704022109508514f, -0.456481099128723f, 0.703671932220459f, - -0.456637442111969f, - 0.703321635723114f, -0.456793516874313f, 0.702971220016479f, - -0.456949323415756f, - 0.702620685100555f, -0.457104891538620f, 0.702270030975342f, - -0.457260161638260f, - 0.701919257640839f, -0.457415163516998f, 0.701568365097046f, - -0.457569897174835f, - 0.701217353343964f, -0.457724362611771f, 0.700866222381592f, - -0.457878559827805f, - 0.700514972209930f, -0.458032488822937f, 0.700163602828979f, - -0.458186149597168f, - 0.699812114238739f, -0.458339542150497f, 0.699460506439209f, - -0.458492636680603f, - 0.699108779430389f, -0.458645492792130f, 0.698756933212280f, - -0.458798080682755f, - 0.698404967784882f, -0.458950400352478f, 0.698052942752838f, - -0.459102421998978f, - 0.697700738906860f, -0.459254205226898f, 0.697348415851593f, - -0.459405690431595f, - 0.696996033191681f, -0.459556937217712f, 0.696643471717834f, - -0.459707885980606f, - 0.696290850639343f, -0.459858566522598f, 0.695938050746918f, - -0.460008978843689f, - 0.695585191249847f, -0.460159152746201f, 0.695232212543488f, - -0.460309028625488f, - 0.694879114627838f, -0.460458606481552f, 0.694525837898254f, - -0.460607945919037f, - 0.694172501564026f, -0.460757017135620f, 0.693819046020508f, - -0.460905820131302f, - 0.693465530872345f, -0.461054325103760f, 0.693111836910248f, - -0.461202591657639f, - 0.692758023738861f, -0.461350560188293f, 0.692404091358185f, - -0.461498260498047f, - 0.692050099372864f, -0.461645722389221f, 0.691695988178253f, - -0.461792886257172f, - 0.691341698169708f, -0.461939752101898f, 0.690987348556519f, - -0.462086379528046f, - 0.690632879734039f, -0.462232738733292f, 0.690278291702271f, - -0.462378799915314f, - 0.689923584461212f, -0.462524622678757f, 0.689568817615509f, - -0.462670147418976f, - 0.689213871955872f, -0.462815403938293f, 0.688858866691589f, - -0.462960392236710f, - 0.688503682613373f, -0.463105112314224f, 0.688148438930511f, - -0.463249564170837f, - 0.687793076038361f, -0.463393747806549f, 0.687437593936920f, - -0.463537633419037f, - 0.687082052230835f, -0.463681250810623f, 0.686726331710815f, - -0.463824629783630f, - 0.686370551586151f, -0.463967710733414f, 0.686014592647552f, - -0.464110493659973f, - 0.685658574104309f, -0.464253038167953f, 0.685302436351776f, - -0.464395314455032f, - 0.684946238994598f, -0.464537292718887f, 0.684589862823486f, - -0.464679002761841f, - 0.684233427047729f, -0.464820444583893f, 0.683876872062683f, - -0.464961618185043f, - 0.683520197868347f, -0.465102523565292f, 0.683163404464722f, - -0.465243130922318f, - 0.682806491851807f, -0.465383470058441f, 0.682449519634247f, - -0.465523540973663f, - 0.682092368602753f, -0.465663343667984f, 0.681735157966614f, - -0.465802878141403f, - 0.681377887725830f, -0.465942144393921f, 0.681020438671112f, - -0.466081112623215f, - 0.680662930011749f, -0.466219812631607f, 0.680305242538452f, - -0.466358244419098f, - 0.679947495460510f, -0.466496407985687f, 0.679589688777924f, - -0.466634273529053f, - 0.679231703281403f, -0.466771900653839f, 0.678873658180237f, - -0.466909229755402f, - 0.678515493869781f, -0.467046260833740f, 0.678157210350037f, - -0.467183053493500f, - 0.677798807621002f, -0.467319577932358f, 0.677440345287323f, - -0.467455804347992f, - 0.677081763744354f, -0.467591762542725f, 0.676723062992096f, - -0.467727422714233f, - 0.676364302635193f, -0.467862844467163f, 0.676005363464355f, - -0.467997968196869f, - 0.675646364688873f, -0.468132823705673f, 0.675287246704102f, - -0.468267410993576f, - 0.674928069114685f, -0.468401730060577f, 0.674568772315979f, - -0.468535751104355f, - 0.674209356307983f, -0.468669503927231f, 0.673849821090698f, - -0.468802988529205f, - 0.673490226268768f, -0.468936175107956f, 0.673130512237549f, - -0.469069123268127f, - 0.672770678997040f, -0.469201773405075f, 0.672410726547241f, - -0.469334155321121f, - 0.672050714492798f, -0.469466239213943f, 0.671690583229065f, - -0.469598054885864f, - 0.671330332756042f, -0.469729602336884f, 0.670970022678375f, - -0.469860881567001f, - 0.670609593391418f, -0.469991862773895f, 0.670249044895172f, - -0.470122605562210f, - 0.669888436794281f, -0.470253020524979f, 0.669527709484100f, - -0.470383197069168f, - 0.669166862964630f, -0.470513075590134f, 0.668805956840515f, - -0.470642685890198f, - 0.668444931507111f, -0.470772027969360f, 0.668083786964417f, - -0.470901101827621f, - 0.667722582817078f, -0.471029877662659f, 0.667361259460449f, - -0.471158385276794f, - 0.666999816894531f, -0.471286594867706f, 0.666638314723969f, - -0.471414536237717f, - 0.666276693344116f, -0.471542209386826f, 0.665914952754974f, - -0.471669614315033f, - 0.665553152561188f, -0.471796721220016f, 0.665191233158112f, - -0.471923559904099f, - 0.664829254150391f, -0.472050130367279f, 0.664467096328735f, - -0.472176402807236f, - 0.664104938507080f, -0.472302407026291f, 0.663742601871490f, - -0.472428143024445f, - 0.663380205631256f, -0.472553610801697f, 0.663017749786377f, - -0.472678780555725f, - 0.662655174732208f, -0.472803652286530f, 0.662292480468750f, - -0.472928285598755f, - 0.661929666996002f, -0.473052620887756f, 0.661566793918610f, - -0.473176687955856f, - 0.661203861236572f, -0.473300457000732f, 0.660840749740601f, - -0.473423957824707f, - 0.660477638244629f, -0.473547190427780f, 0.660114347934723f, - -0.473670125007629f, - 0.659750998020172f, -0.473792791366577f, 0.659387588500977f, - -0.473915189504623f, - 0.659024059772491f, -0.474037289619446f, 0.658660411834717f, - -0.474159121513367f, - 0.658296704292297f, -0.474280685186386f, 0.657932877540588f, - -0.474401950836182f, - 0.657568991184235f, -0.474522948265076f, 0.657204985618591f, - -0.474643647670746f, - 0.656840860843658f, -0.474764078855515f, 0.656476676464081f, - -0.474884241819382f, - 0.656112432479858f, -0.475004136562347f, 0.655748009681702f, - -0.475123733282089f, - 0.655383586883545f, -0.475243031978607f, 0.655019044876099f, - -0.475362062454224f, - 0.654654383659363f, -0.475480824708939f, 0.654289662837982f, - -0.475599318742752f, - 0.653924822807312f, -0.475717514753342f, 0.653559923171997f, - -0.475835442543030f, - 0.653194904327393f, -0.475953072309494f, 0.652829825878143f, - -0.476070433855057f, - 0.652464628219604f, -0.476187497377396f, 0.652099311351776f, - -0.476304292678833f, - 0.651733994483948f, -0.476420819759369f, 0.651368498802185f, - -0.476537048816681f, - 0.651003003120422f, -0.476653009653091f, 0.650637328624725f, - -0.476768702268600f, - 0.650271594524384f, -0.476884096860886f, 0.649905800819397f, - -0.476999223232269f, - 0.649539887905121f, -0.477114051580429f, 0.649173915386200f, - -0.477228611707687f, - 0.648807883262634f, -0.477342873811722f, 0.648441672325134f, - -0.477456867694855f, - 0.648075461387634f, -0.477570593357086f, 0.647709131240845f, - -0.477684020996094f, - 0.647342681884766f, -0.477797180414200f, 0.646976172924042f, - -0.477910041809082f, - 0.646609604358673f, -0.478022634983063f, 0.646242916584015f, - -0.478134930133820f, - 0.645876109600067f, -0.478246957063675f, 0.645509302616119f, - -0.478358715772629f, - 0.645142316818237f, -0.478470176458359f, 0.644775331020355f, - -0.478581339120865f, - 0.644408226013184f, -0.478692263364792f, 0.644041001796722f, - -0.478802859783173f, - 0.643673717975616f, -0.478913217782974f, 0.643306374549866f, - -0.479023247957230f, - 0.642938911914825f, -0.479133039712906f, 0.642571389675140f, - -0.479242533445358f, - 0.642203748226166f, -0.479351729154587f, 0.641836047172546f, - -0.479460656642914f, - 0.641468286514282f, -0.479569315910339f, 0.641100406646729f, - -0.479677677154541f, - 0.640732467174530f, -0.479785770177841f, 0.640364408493042f, - -0.479893565177917f, - 0.639996349811554f, -0.480001062154770f, 0.639628112316132f, - -0.480108320713043f, - 0.639259815216064f, -0.480215251445770f, 0.638891458511353f, - -0.480321943759918f, - 0.638523042201996f, -0.480428308248520f, 0.638154506683350f, - -0.480534434318542f, - 0.637785911560059f, -0.480640232563019f, 0.637417197227478f, - -0.480745792388916f, - 0.637048482894897f, -0.480851024389267f, 0.636679589748383f, - -0.480956017971039f, - 0.636310696601868f, -0.481060713529587f, 0.635941684246063f, - -0.481165111064911f, - 0.635572552680969f, -0.481269240379334f, 0.635203421115875f, - -0.481373071670532f, - 0.634834170341492f, -0.481476634740829f, 0.634464859962463f, - -0.481579899787903f, - 0.634095430374146f, -0.481682896614075f, 0.633725941181183f, - -0.481785595417023f, - 0.633356392383575f, -0.481888025999069f, 0.632986724376678f, - -0.481990188360214f, - 0.632616996765137f, -0.482092022895813f, 0.632247209548950f, - -0.482193619012833f, - 0.631877362728119f, -0.482294887304306f, 0.631507396697998f, - -0.482395917177200f, - 0.631137371063232f, -0.482496619224548f, 0.630767226219177f, - -0.482597053050995f, - 0.630397081375122f, -0.482697218656540f, 0.630026817321777f, - -0.482797086238861f, - 0.629656434059143f, -0.482896685600281f, 0.629286050796509f, - -0.482995986938477f, - 0.628915548324585f, -0.483094990253448f, 0.628544986248016f, - -0.483193725347519f, - 0.628174364566803f, -0.483292192220688f, 0.627803623676300f, - -0.483390361070633f, - 0.627432823181152f, -0.483488231897354f, 0.627061963081360f, - -0.483585834503174f, - 0.626691043376923f, -0.483683139085770f, 0.626320004463196f, - -0.483780175447464f, - 0.625948905944824f, -0.483876913785934f, 0.625577747821808f, - -0.483973383903503f, - 0.625206530094147f, -0.484069555997849f, 0.624835193157196f, - -0.484165430068970f, - 0.624463796615601f, -0.484261035919189f, 0.624092340469360f, - -0.484356373548508f, - 0.623720824718475f, -0.484451413154602f, 0.623349189758301f, - -0.484546154737473f, - 0.622977554798126f, -0.484640628099442f, 0.622605800628662f, - -0.484734803438187f, - 0.622233927249908f, -0.484828680753708f, 0.621862053871155f, - -0.484922289848328f, - 0.621490061283112f, -0.485015630722046f, 0.621118068695068f, - -0.485108673572540f, - 0.620745956897736f, -0.485201418399811f, 0.620373785495758f, - -0.485293895006180f, - 0.620001494884491f, -0.485386073589325f, 0.619629204273224f, - -0.485477954149246f, - 0.619256794452667f, -0.485569566488266f, 0.618884325027466f, - -0.485660910606384f, - 0.618511795997620f, -0.485751956701279f, 0.618139207363129f, - -0.485842704772949f, - 0.617766559123993f, -0.485933154821396f, 0.617393791675568f, - -0.486023366451263f, - 0.617020964622498f, -0.486113250255585f, 0.616648077964783f, - -0.486202865839005f, - 0.616275131702423f, -0.486292183399200f, 0.615902125835419f, - -0.486381232738495f, - 0.615529060363770f, -0.486469984054565f, 0.615155875682831f, - -0.486558437347412f, - 0.614782691001892f, -0.486646622419357f, 0.614409387111664f, - -0.486734509468079f, - 0.614036023616791f, -0.486822128295898f, 0.613662600517273f, - -0.486909449100494f, - 0.613289117813110f, -0.486996471881866f, 0.612915575504303f, - -0.487083226442337f, - 0.612541973590851f, -0.487169682979584f, 0.612168252468109f, - -0.487255871295929f, - 0.611794531345367f, -0.487341761589050f, 0.611420691013336f, - -0.487427353858948f, - 0.611046791076660f, -0.487512677907944f, 0.610672831535339f, - -0.487597703933716f, - 0.610298871994019f, -0.487682431936264f, 0.609924793243408f, - -0.487766891717911f, - 0.609550595283508f, -0.487851053476334f, 0.609176397323608f, - -0.487934947013855f, - 0.608802139759064f, -0.488018542528152f, 0.608427822589874f, - -0.488101840019226f, - 0.608053386211395f, -0.488184869289398f, 0.607678949832916f, - -0.488267600536346f, - 0.607304394245148f, -0.488350033760071f, 0.606929838657379f, - -0.488432198762894f, - 0.606555163860321f, -0.488514065742493f, 0.606180429458618f, - -0.488595664501190f, - 0.605805635452271f, -0.488676935434341f, 0.605430841445923f, - -0.488757967948914f, - 0.605055928230286f, -0.488838672637939f, 0.604680955410004f, - -0.488919109106064f, - 0.604305922985077f, -0.488999247550964f, 0.603930830955505f, - -0.489079117774963f, - 0.603555679321289f, -0.489158689975739f, 0.603180468082428f, - -0.489237964153290f, - 0.602805197238922f, -0.489316970109940f, 0.602429866790771f, - -0.489395678043365f, - 0.602054476737976f, -0.489474087953568f, 0.601679027080536f, - -0.489552229642868f, - 0.601303517818451f, -0.489630073308945f, 0.600927948951721f, - -0.489707618951797f, - 0.600552320480347f, -0.489784896373749f, 0.600176632404327f, - -0.489861875772476f, - 0.599800884723663f, -0.489938557147980f, 0.599425077438354f, - -0.490014940500259f, - 0.599049210548401f, -0.490091055631638f, 0.598673284053802f, - -0.490166902542114f, - 0.598297297954559f, -0.490242421627045f, 0.597921252250671f, - -0.490317672491074f, - 0.597545146942139f, -0.490392625331879f, 0.597168982028961f, - -0.490467309951782f, - 0.596792817115784f, -0.490541696548462f, 0.596416532993317f, - -0.490615785121918f, - 0.596040189266205f, -0.490689605474472f, 0.595663845539093f, - -0.490763127803802f, - 0.595287382602692f, -0.490836352109909f, 0.594910860061646f, - -0.490909278392792f, - 0.594534337520599f, -0.490981936454773f, 0.594157755374908f, - -0.491054296493530f, - 0.593781054019928f, -0.491126358509064f, 0.593404352664948f, - -0.491198152303696f, - 0.593027591705322f, -0.491269648075104f, 0.592650771141052f, - -0.491340845823288f, - 0.592273890972137f, -0.491411775350571f, 0.591896951198578f, - -0.491482406854630f, - 0.591519951820374f, -0.491552740335464f, 0.591142892837524f, - -0.491622805595398f, - 0.590765833854675f, -0.491692543029785f, 0.590388655662537f, - -0.491762012243271f, - 0.590011477470398f, -0.491831213235855f, 0.589634180068970f, - -0.491900116205215f, - 0.589256882667542f, -0.491968721151352f, 0.588879525661469f, - -0.492037028074265f, - 0.588502109050751f, -0.492105036973953f, 0.588124632835388f, - -0.492172777652740f, - 0.587747097015381f, -0.492240220308304f, 0.587369561195374f, - -0.492307394742966f, - 0.586991965770721f, -0.492374241352081f, 0.586614251136780f, - -0.492440819740295f, - 0.586236536502838f, -0.492507129907608f, 0.585858762264252f, - -0.492573112249374f, - 0.585480928421021f, -0.492638826370239f, 0.585103094577789f, - -0.492704242467880f, - 0.584725141525269f, -0.492769360542297f, 0.584347188472748f, - -0.492834210395813f, - 0.583969175815582f, -0.492898762226105f, 0.583591103553772f, - -0.492963016033173f, - 0.583212971687317f, -0.493026971817017f, 0.582834780216217f, - -0.493090659379959f, - 0.582456588745117f, -0.493154048919678f, 0.582078278064728f, - -0.493217140436172f, - 0.581699967384338f, -0.493279963731766f, 0.581321597099304f, - -0.493342459201813f, - 0.580943167209625f, -0.493404686450958f, 0.580564737319946f, - -0.493466645479202f, - 0.580186247825623f, -0.493528276681900f, 0.579807698726654f, - -0.493589639663696f, - 0.579429090023041f, -0.493650704622269f, 0.579050421714783f, - -0.493711471557617f, - 0.578671753406525f, -0.493771970272064f, 0.578292965888977f, - -0.493832170963287f, - 0.577914178371429f, -0.493892073631287f, 0.577535390853882f, - -0.493951678276062f, - 0.577156484127045f, -0.494011014699936f, 0.576777577400208f, - -0.494070053100586f, - 0.576398611068726f, -0.494128793478012f, 0.576019585132599f, - -0.494187235832214f, - 0.575640499591827f, -0.494245409965515f, 0.575261414051056f, - -0.494303256273270f, - 0.574882268905640f, -0.494360834360123f, 0.574503064155579f, - -0.494418144226074f, - 0.574123859405518f, -0.494475126266479f, 0.573744535446167f, - -0.494531840085983f, - 0.573365211486816f, -0.494588255882263f, 0.572985887527466f, - -0.494644373655319f, - 0.572606444358826f, -0.494700223207474f, 0.572227001190186f, - -0.494755744934082f, - 0.571847498416901f, -0.494810998439789f, 0.571467995643616f, - -0.494865983724594f, - 0.571088373661041f, -0.494920641183853f, 0.570708811283112f, - -0.494975030422211f, - 0.570329129695892f, -0.495029091835022f, 0.569949388504028f, - -0.495082914829254f, - 0.569569647312164f, -0.495136409997940f, 0.569189906120300f, - -0.495189607143402f, - 0.568810045719147f, -0.495242536067963f, 0.568430185317993f, - -0.495295166969299f, - 0.568050265312195f, -0.495347499847412f, 0.567670345306396f, - -0.495399564504623f, - 0.567290365695953f, -0.495451331138611f, 0.566910326480865f, - -0.495502769947052f, - 0.566530287265778f, -0.495553970336914f, 0.566150128841400f, - -0.495604842901230f, - 0.565770030021667f, -0.495655417442322f, 0.565389811992645f, - -0.495705723762512f, - 0.565009593963623f, -0.495755732059479f, 0.564629375934601f, - -0.495805442333221f, - 0.564249038696289f, -0.495854884386063f, 0.563868701457977f, - -0.495903998613358f, - 0.563488364219666f, -0.495952844619751f, 0.563107967376709f, - -0.496001392602921f, - 0.562727510929108f, -0.496049642562866f, 0.562346994876862f, - -0.496097624301910f, - 0.561966478824615f, -0.496145308017731f, 0.561585903167725f, - -0.496192663908005f, - 0.561205327510834f, -0.496239781379700f, 0.560824692249298f, - -0.496286571025848f, - 0.560444056987762f, -0.496333062648773f, 0.560063362121582f, - -0.496379286050797f, - 0.559682607650757f, -0.496425211429596f, 0.559301853179932f, - -0.496470838785172f, - 0.558921039104462f, -0.496516168117523f, 0.558540165424347f, - -0.496561229228973f, - 0.558159291744232f, -0.496605962514877f, 0.557778418064117f, - -0.496650427579880f, - 0.557397484779358f, -0.496694594621658f, 0.557016491889954f, - -0.496738493442535f, - 0.556635499000549f, -0.496782064437866f, 0.556254446506500f, - -0.496825367212296f, - 0.555873334407806f, -0.496868371963501f, 0.555492222309113f, - -0.496911078691483f, - 0.555111110210419f, -0.496953487396240f, 0.554729938507080f, - -0.496995598077774f, - 0.554348707199097f, -0.497037440538406f, 0.553967475891113f, - -0.497078984975815f, - 0.553586184978485f, -0.497120231389999f, 0.553204894065857f, - -0.497161179780960f, - 0.552823603153229f, -0.497201830148697f, 0.552442193031311f, - -0.497242212295532f, - 0.552060842514038f, -0.497282296419144f, 0.551679372787476f, - -0.497322082519531f, - 0.551297962665558f, -0.497361570596695f, 0.550916433334351f, - -0.497400760650635f, - 0.550534904003143f, -0.497439652681351f, 0.550153374671936f, - -0.497478276491165f, - 0.549771785736084f, -0.497516602277756f, 0.549390196800232f, - -0.497554630041122f, - 0.549008548259735f, -0.497592359781265f, 0.548626899719238f, - -0.497629791498184f, - 0.548245191574097f, -0.497666954994202f, 0.547863483428955f, - -0.497703820466995f, - 0.547481775283813f, -0.497740387916565f, 0.547099947929382f, - -0.497776657342911f, - 0.546718180179596f, -0.497812628746033f, 0.546336352825165f, - -0.497848302125931f, - 0.545954465866089f, -0.497883707284927f, 0.545572578907013f, - -0.497918814420700f, - 0.545190691947937f, -0.497953623533249f, 0.544808745384216f, - -0.497988134622574f, - 0.544426798820496f, -0.498022347688675f, 0.544044792652130f, - -0.498056292533875f, - 0.543662786483765f, -0.498089909553528f, 0.543280720710754f, - -0.498123258352280f, - 0.542898654937744f, -0.498156309127808f, 0.542516589164734f, - -0.498189061880112f, - 0.542134463787079f, -0.498221516609192f, 0.541752278804779f, - -0.498253703117371f, - 0.541370153427124f, -0.498285561800003f, 0.540987968444824f, - -0.498317152261734f, - 0.540605723857880f, -0.498348444700241f, 0.540223479270935f, - -0.498379439115524f, - 0.539841234683990f, -0.498410135507584f, 0.539458930492401f, - -0.498440563678741f, - 0.539076626300812f, -0.498470664024353f, 0.538694262504578f, - -0.498500496149063f, - 0.538311958312988f, -0.498530030250549f, 0.537929534912109f, - -0.498559266328812f, - 0.537547171115875f, -0.498588204383850f, 0.537164747714996f, - -0.498616874217987f, - 0.536782264709473f, -0.498645216226578f, 0.536399841308594f, - -0.498673290014267f, - 0.536017298698425f, -0.498701065778732f, 0.535634815692902f, - -0.498728543519974f, - 0.535252273082733f, -0.498755723237991f, 0.534869730472565f, - -0.498782604932785f, - 0.534487187862396f, -0.498809218406677f, 0.534104585647583f, - -0.498835533857346f, - 0.533721983432770f, -0.498861521482468f, 0.533339321613312f, - -0.498887240886688f, - 0.532956659793854f, -0.498912662267685f, 0.532573997974396f, - -0.498937815427780f, - 0.532191336154938f, -0.498962640762329f, 0.531808614730835f, - -0.498987197875977f, - 0.531425893306732f, -0.499011427164078f, 0.531043112277985f, - -0.499035388231277f, - 0.530660390853882f, -0.499059051275253f, 0.530277609825134f, - -0.499082416296005f, - 0.529894769191742f, -0.499105513095856f, 0.529511988162994f, - -0.499128282070160f, - 0.529129147529602f, -0.499150782823563f, 0.528746306896210f, - -0.499172955751419f, - 0.528363406658173f, -0.499194860458374f, 0.527980506420136f, - -0.499216467142105f, - 0.527597606182098f, -0.499237775802612f, 0.527214705944061f, - -0.499258816242218f, - 0.526831746101379f, -0.499279528856277f, 0.526448845863342f, - -0.499299973249435f, - 0.526065826416016f, -0.499320119619370f, 0.525682866573334f, - -0.499339967966080f, - 0.525299847126007f, -0.499359518289566f, 0.524916887283325f, - -0.499378770589828f, - 0.524533808231354f, -0.499397724866867f, 0.524150788784027f, - -0.499416410923004f, - 0.523767769336700f, -0.499434769153595f, 0.523384690284729f, - -0.499452859163284f, - 0.523001611232758f, -0.499470651149750f, 0.522618472576141f, - -0.499488145112991f, - 0.522235393524170f, -0.499505341053009f, 0.521852254867554f, - -0.499522238969803f, - 0.521469116210938f, -0.499538868665695f, 0.521085977554321f, - -0.499555170536041f, - 0.520702838897705f, -0.499571204185486f, 0.520319640636444f, - -0.499586939811707f, - 0.519936442375183f, -0.499602377414703f, 0.519553244113922f, - -0.499617516994476f, - 0.519170045852661f, -0.499632388353348f, 0.518786847591400f, - -0.499646931886673f, - 0.518403589725494f, -0.499661177396774f, 0.518020391464233f, - -0.499675154685974f, - 0.517637133598328f, -0.499688833951950f, 0.517253875732422f, - -0.499702215194702f, - 0.516870558261871f, -0.499715298414230f, 0.516487300395966f, - -0.499728083610535f, - 0.516103982925415f, -0.499740600585938f, 0.515720725059509f, - -0.499752789735794f, - 0.515337407588959f, -0.499764710664749f, 0.514954090118408f, - -0.499776333570480f, - 0.514570772647858f, -0.499787658452988f, 0.514187395572662f, - -0.499798685312271f, - 0.513804078102112f, -0.499809414148331f, 0.513420701026917f, - -0.499819844961166f, - 0.513037383556366f, -0.499830007553101f, 0.512654006481171f, - -0.499839842319489f, - 0.512270629405975f, -0.499849408864975f, 0.511887252330780f, - -0.499858677387238f, - 0.511503815650940f, -0.499867647886276f, 0.511120438575745f, - -0.499876320362091f, - 0.510737061500549f, -0.499884694814682f, 0.510353624820709f, - -0.499892801046371f, - 0.509970188140869f, -0.499900579452515f, 0.509586811065674f, - -0.499908089637756f, - 0.509203374385834f, -0.499915301799774f, 0.508819937705994f, - -0.499922215938568f, - 0.508436501026154f, -0.499928832054138f, 0.508053064346313f, - -0.499935150146484f, - 0.507669627666473f, -0.499941170215607f, 0.507286131381989f, - -0.499946922063828f, - 0.506902694702148f, -0.499952346086502f, 0.506519258022308f, - -0.499957501888275f, - 0.506135761737823f, -0.499962359666824f, 0.505752325057983f, - -0.499966919422150f, - 0.505368828773499f, -0.499971181154251f, 0.504985332489014f, - -0.499975144863129f, - 0.504601895809174f, -0.499978810548782f, 0.504218399524689f, - -0.499982208013535f, - 0.503834903240204f, -0.499985307455063f, 0.503451406955719f, - -0.499988079071045f, - 0.503067970275879f, -0.499990582466125f, 0.502684473991394f, - -0.499992787837982f, - 0.502300977706909f, -0.499994695186615f, 0.501917481422424f, - -0.499996334314346f, - 0.501533985137939f, -0.499997645616531f, 0.501150488853455f, - -0.499998688697815f, - 0.500766992568970f, -0.499999403953552f, 0.500383496284485f, - -0.499999850988388f, -}; - - - -/** -* @brief Initialization function for the floating-point RFFT/RIFFT. -* @param[in,out] *S points to an instance of the floating-point RFFT/RIFFT structure. -* @param[in,out] *S_CFFT points to an instance of the floating-point CFFT/CIFFT structure. -* @param[in] fftLenReal length of the FFT. -* @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. -* -* \par Description: -* \par -* The parameter fftLenReal Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 128, 512, 2048. -* \par -* The parameter ifftFlagR controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* This function also initializes Twiddle factor table. -*/ - -arm_status arm_rfft_init_f32( - arm_rfft_instance_f32 * S, - arm_cfft_radix4_instance_f32 * S_CFFT, - uint32_t fftLenReal, - uint32_t ifftFlagR, - uint32_t bitReverseFlag) -{ - - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialize the Real FFT length */ - S->fftLenReal = (uint16_t) fftLenReal; - - /* Initialize the Complex FFT length */ - S->fftLenBy2 = (uint16_t) fftLenReal / 2u; - - /* Initialize the Twiddle coefficientA pointer */ - S->pTwiddleAReal = (float32_t *) realCoefA; - - /* Initialize the Twiddle coefficientB pointer */ - S->pTwiddleBReal = (float32_t *) realCoefB; - - /* Initialize the Flag for selection of RFFT or RIFFT */ - S->ifftFlagR = (uint8_t) ifftFlagR; - - /* Initialize the Flag for calculation Bit reversal or not */ - S->bitReverseFlagR = (uint8_t) bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLenReal) - { - /* Init table modifier value */ - case 8192u: - S->twidCoefRModifier = 1u; - break; - case 2048u: - S->twidCoefRModifier = 4u; - break; - case 512u: - S->twidCoefRModifier = 16u; - break; - case 128u: - S->twidCoefRModifier = 64u; - break; - default: - /* Reporting argument error if rfftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - /* Init Complex FFT Instance */ - S->pCfft = S_CFFT; - - if(S->ifftFlagR) - { - /* Initializes the CIFFT Module for fftLenreal/2 length */ - arm_cfft_radix4_init_f32(S->pCfft, S->fftLenBy2, 1u, 0u); - } - else - { - /* Initializes the CFFT Module for fftLenreal/2 length */ - arm_cfft_radix4_init_f32(S->pCfft, S->fftLenBy2, 0u, 0u); - } - - /* return the status of RFFT Init function */ - return (status); - -} - - /** - * @} end of RFFT_RIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q15.c deleted file mode 100644 index 50b9d994d0..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q15.c +++ /dev/null @@ -1,2229 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rfft_init_q15.c -* -* Description: RFFT & RIFFT Q15 initialisation function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup RFFT_RIFFT - * @{ - */ - - - -/** -* \par -* Generation floating point real_CoefA array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)    
-*  {    
-*    pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i));    
-*    pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i));    
-*  } 
-* \par -* Convert to fixed point Q15 format -* round(pATable[i] * pow(2, 15)) -*/ - - -static const q15_t ALIGN4 realCoefAQ15[8192] = { - 0x4000, 0xc000, 0x3ff3, 0xc000, 0x3fe7, 0xc000, 0x3fda, 0xc000, - 0x3fce, 0xc000, 0x3fc1, 0xc000, 0x3fb5, 0xc000, 0x3fa8, 0xc000, - 0x3f9b, 0xc000, 0x3f8f, 0xc000, 0x3f82, 0xc000, 0x3f76, 0xc001, - 0x3f69, 0xc001, 0x3f5d, 0xc001, 0x3f50, 0xc001, 0x3f44, 0xc001, - 0x3f37, 0xc001, 0x3f2a, 0xc001, 0x3f1e, 0xc002, 0x3f11, 0xc002, - 0x3f05, 0xc002, 0x3ef8, 0xc002, 0x3eec, 0xc002, 0x3edf, 0xc003, - 0x3ed2, 0xc003, 0x3ec6, 0xc003, 0x3eb9, 0xc003, 0x3ead, 0xc004, - 0x3ea0, 0xc004, 0x3e94, 0xc004, 0x3e87, 0xc004, 0x3e7a, 0xc005, - 0x3e6e, 0xc005, 0x3e61, 0xc005, 0x3e55, 0xc006, 0x3e48, 0xc006, - 0x3e3c, 0xc006, 0x3e2f, 0xc007, 0x3e23, 0xc007, 0x3e16, 0xc007, - 0x3e09, 0xc008, 0x3dfd, 0xc008, 0x3df0, 0xc009, 0x3de4, 0xc009, - 0x3dd7, 0xc009, 0x3dcb, 0xc00a, 0x3dbe, 0xc00a, 0x3db2, 0xc00b, - 0x3da5, 0xc00b, 0x3d98, 0xc00c, 0x3d8c, 0xc00c, 0x3d7f, 0xc00d, - 0x3d73, 0xc00d, 0x3d66, 0xc00e, 0x3d5a, 0xc00e, 0x3d4d, 0xc00f, - 0x3d40, 0xc00f, 0x3d34, 0xc010, 0x3d27, 0xc010, 0x3d1b, 0xc011, - 0x3d0e, 0xc011, 0x3d02, 0xc012, 0x3cf5, 0xc013, 0x3ce9, 0xc013, - 0x3cdc, 0xc014, 0x3cd0, 0xc014, 0x3cc3, 0xc015, 0x3cb6, 0xc016, - 0x3caa, 0xc016, 0x3c9d, 0xc017, 0x3c91, 0xc018, 0x3c84, 0xc018, - 0x3c78, 0xc019, 0x3c6b, 0xc01a, 0x3c5f, 0xc01a, 0x3c52, 0xc01b, - 0x3c45, 0xc01c, 0x3c39, 0xc01d, 0x3c2c, 0xc01d, 0x3c20, 0xc01e, - 0x3c13, 0xc01f, 0x3c07, 0xc020, 0x3bfa, 0xc020, 0x3bee, 0xc021, - 0x3be1, 0xc022, 0x3bd5, 0xc023, 0x3bc8, 0xc024, 0x3bbc, 0xc024, - 0x3baf, 0xc025, 0x3ba2, 0xc026, 0x3b96, 0xc027, 0x3b89, 0xc028, - 0x3b7d, 0xc029, 0x3b70, 0xc02a, 0x3b64, 0xc02b, 0x3b57, 0xc02b, - 0x3b4b, 0xc02c, 0x3b3e, 0xc02d, 0x3b32, 0xc02e, 0x3b25, 0xc02f, - 0x3b19, 0xc030, 0x3b0c, 0xc031, 0x3b00, 0xc032, 0x3af3, 0xc033, - 0x3ae6, 0xc034, 0x3ada, 0xc035, 0x3acd, 0xc036, 0x3ac1, 0xc037, - 0x3ab4, 0xc038, 0x3aa8, 0xc039, 0x3a9b, 0xc03a, 0x3a8f, 0xc03b, - 0x3a82, 0xc03c, 0x3a76, 0xc03d, 0x3a69, 0xc03f, 0x3a5d, 0xc040, - 0x3a50, 0xc041, 0x3a44, 0xc042, 0x3a37, 0xc043, 0x3a2b, 0xc044, - 0x3a1e, 0xc045, 0x3a12, 0xc047, 0x3a05, 0xc048, 0x39f9, 0xc049, - 0x39ec, 0xc04a, 0x39e0, 0xc04b, 0x39d3, 0xc04c, 0x39c7, 0xc04e, - 0x39ba, 0xc04f, 0x39ae, 0xc050, 0x39a1, 0xc051, 0x3995, 0xc053, - 0x3988, 0xc054, 0x397c, 0xc055, 0x396f, 0xc056, 0x3963, 0xc058, - 0x3956, 0xc059, 0x394a, 0xc05a, 0x393d, 0xc05c, 0x3931, 0xc05d, - 0x3924, 0xc05e, 0x3918, 0xc060, 0x390b, 0xc061, 0x38ff, 0xc062, - 0x38f2, 0xc064, 0x38e6, 0xc065, 0x38d9, 0xc067, 0x38cd, 0xc068, - 0x38c0, 0xc069, 0x38b4, 0xc06b, 0x38a7, 0xc06c, 0x389b, 0xc06e, - 0x388e, 0xc06f, 0x3882, 0xc071, 0x3875, 0xc072, 0x3869, 0xc074, - 0x385c, 0xc075, 0x3850, 0xc077, 0x3843, 0xc078, 0x3837, 0xc07a, - 0x382a, 0xc07b, 0x381e, 0xc07d, 0x3811, 0xc07e, 0x3805, 0xc080, - 0x37f9, 0xc081, 0x37ec, 0xc083, 0x37e0, 0xc085, 0x37d3, 0xc086, - 0x37c7, 0xc088, 0x37ba, 0xc089, 0x37ae, 0xc08b, 0x37a1, 0xc08d, - 0x3795, 0xc08e, 0x3788, 0xc090, 0x377c, 0xc092, 0x376f, 0xc093, - 0x3763, 0xc095, 0x3757, 0xc097, 0x374a, 0xc098, 0x373e, 0xc09a, - 0x3731, 0xc09c, 0x3725, 0xc09e, 0x3718, 0xc09f, 0x370c, 0xc0a1, - 0x36ff, 0xc0a3, 0x36f3, 0xc0a5, 0x36e7, 0xc0a6, 0x36da, 0xc0a8, - 0x36ce, 0xc0aa, 0x36c1, 0xc0ac, 0x36b5, 0xc0ae, 0x36a8, 0xc0af, - 0x369c, 0xc0b1, 0x3690, 0xc0b3, 0x3683, 0xc0b5, 0x3677, 0xc0b7, - 0x366a, 0xc0b9, 0x365e, 0xc0bb, 0x3651, 0xc0bd, 0x3645, 0xc0be, - 0x3639, 0xc0c0, 0x362c, 0xc0c2, 0x3620, 0xc0c4, 0x3613, 0xc0c6, - 0x3607, 0xc0c8, 0x35fa, 0xc0ca, 0x35ee, 0xc0cc, 0x35e2, 0xc0ce, - 0x35d5, 0xc0d0, 0x35c9, 0xc0d2, 0x35bc, 0xc0d4, 0x35b0, 0xc0d6, - 0x35a4, 0xc0d8, 0x3597, 0xc0da, 0x358b, 0xc0dc, 0x357e, 0xc0de, - 0x3572, 0xc0e0, 0x3566, 0xc0e2, 0x3559, 0xc0e4, 0x354d, 0xc0e7, - 0x3540, 0xc0e9, 0x3534, 0xc0eb, 0x3528, 0xc0ed, 0x351b, 0xc0ef, - 0x350f, 0xc0f1, 0x3503, 0xc0f3, 0x34f6, 0xc0f6, 0x34ea, 0xc0f8, - 0x34dd, 0xc0fa, 0x34d1, 0xc0fc, 0x34c5, 0xc0fe, 0x34b8, 0xc100, - 0x34ac, 0xc103, 0x34a0, 0xc105, 0x3493, 0xc107, 0x3487, 0xc109, - 0x347b, 0xc10c, 0x346e, 0xc10e, 0x3462, 0xc110, 0x3455, 0xc113, - 0x3449, 0xc115, 0x343d, 0xc117, 0x3430, 0xc119, 0x3424, 0xc11c, - 0x3418, 0xc11e, 0x340b, 0xc120, 0x33ff, 0xc123, 0x33f3, 0xc125, - 0x33e6, 0xc128, 0x33da, 0xc12a, 0x33ce, 0xc12c, 0x33c1, 0xc12f, - 0x33b5, 0xc131, 0x33a9, 0xc134, 0x339c, 0xc136, 0x3390, 0xc138, - 0x3384, 0xc13b, 0x3377, 0xc13d, 0x336b, 0xc140, 0x335f, 0xc142, - 0x3352, 0xc145, 0x3346, 0xc147, 0x333a, 0xc14a, 0x332d, 0xc14c, - 0x3321, 0xc14f, 0x3315, 0xc151, 0x3308, 0xc154, 0x32fc, 0xc156, - 0x32f0, 0xc159, 0x32e4, 0xc15b, 0x32d7, 0xc15e, 0x32cb, 0xc161, - 0x32bf, 0xc163, 0x32b2, 0xc166, 0x32a6, 0xc168, 0x329a, 0xc16b, - 0x328e, 0xc16e, 0x3281, 0xc170, 0x3275, 0xc173, 0x3269, 0xc176, - 0x325c, 0xc178, 0x3250, 0xc17b, 0x3244, 0xc17e, 0x3238, 0xc180, - 0x322b, 0xc183, 0x321f, 0xc186, 0x3213, 0xc189, 0x3207, 0xc18b, - 0x31fa, 0xc18e, 0x31ee, 0xc191, 0x31e2, 0xc194, 0x31d5, 0xc196, - 0x31c9, 0xc199, 0x31bd, 0xc19c, 0x31b1, 0xc19f, 0x31a4, 0xc1a2, - 0x3198, 0xc1a4, 0x318c, 0xc1a7, 0x3180, 0xc1aa, 0x3174, 0xc1ad, - 0x3167, 0xc1b0, 0x315b, 0xc1b3, 0x314f, 0xc1b6, 0x3143, 0xc1b8, - 0x3136, 0xc1bb, 0x312a, 0xc1be, 0x311e, 0xc1c1, 0x3112, 0xc1c4, - 0x3105, 0xc1c7, 0x30f9, 0xc1ca, 0x30ed, 0xc1cd, 0x30e1, 0xc1d0, - 0x30d5, 0xc1d3, 0x30c8, 0xc1d6, 0x30bc, 0xc1d9, 0x30b0, 0xc1dc, - 0x30a4, 0xc1df, 0x3098, 0xc1e2, 0x308b, 0xc1e5, 0x307f, 0xc1e8, - 0x3073, 0xc1eb, 0x3067, 0xc1ee, 0x305b, 0xc1f1, 0x304e, 0xc1f4, - 0x3042, 0xc1f7, 0x3036, 0xc1fa, 0x302a, 0xc1fd, 0x301e, 0xc201, - 0x3012, 0xc204, 0x3005, 0xc207, 0x2ff9, 0xc20a, 0x2fed, 0xc20d, - 0x2fe1, 0xc210, 0x2fd5, 0xc213, 0x2fc9, 0xc217, 0x2fbc, 0xc21a, - 0x2fb0, 0xc21d, 0x2fa4, 0xc220, 0x2f98, 0xc223, 0x2f8c, 0xc227, - 0x2f80, 0xc22a, 0x2f74, 0xc22d, 0x2f67, 0xc230, 0x2f5b, 0xc234, - 0x2f4f, 0xc237, 0x2f43, 0xc23a, 0x2f37, 0xc23e, 0x2f2b, 0xc241, - 0x2f1f, 0xc244, 0x2f13, 0xc247, 0x2f06, 0xc24b, 0x2efa, 0xc24e, - 0x2eee, 0xc251, 0x2ee2, 0xc255, 0x2ed6, 0xc258, 0x2eca, 0xc25c, - 0x2ebe, 0xc25f, 0x2eb2, 0xc262, 0x2ea6, 0xc266, 0x2e99, 0xc269, - 0x2e8d, 0xc26d, 0x2e81, 0xc270, 0x2e75, 0xc273, 0x2e69, 0xc277, - 0x2e5d, 0xc27a, 0x2e51, 0xc27e, 0x2e45, 0xc281, 0x2e39, 0xc285, - 0x2e2d, 0xc288, 0x2e21, 0xc28c, 0x2e15, 0xc28f, 0x2e09, 0xc293, - 0x2dfc, 0xc296, 0x2df0, 0xc29a, 0x2de4, 0xc29d, 0x2dd8, 0xc2a1, - 0x2dcc, 0xc2a5, 0x2dc0, 0xc2a8, 0x2db4, 0xc2ac, 0x2da8, 0xc2af, - 0x2d9c, 0xc2b3, 0x2d90, 0xc2b7, 0x2d84, 0xc2ba, 0x2d78, 0xc2be, - 0x2d6c, 0xc2c1, 0x2d60, 0xc2c5, 0x2d54, 0xc2c9, 0x2d48, 0xc2cc, - 0x2d3c, 0xc2d0, 0x2d30, 0xc2d4, 0x2d24, 0xc2d8, 0x2d18, 0xc2db, - 0x2d0c, 0xc2df, 0x2d00, 0xc2e3, 0x2cf4, 0xc2e6, 0x2ce8, 0xc2ea, - 0x2cdc, 0xc2ee, 0x2cd0, 0xc2f2, 0x2cc4, 0xc2f5, 0x2cb8, 0xc2f9, - 0x2cac, 0xc2fd, 0x2ca0, 0xc301, 0x2c94, 0xc305, 0x2c88, 0xc308, - 0x2c7c, 0xc30c, 0x2c70, 0xc310, 0x2c64, 0xc314, 0x2c58, 0xc318, - 0x2c4c, 0xc31c, 0x2c40, 0xc320, 0x2c34, 0xc323, 0x2c28, 0xc327, - 0x2c1c, 0xc32b, 0x2c10, 0xc32f, 0x2c05, 0xc333, 0x2bf9, 0xc337, - 0x2bed, 0xc33b, 0x2be1, 0xc33f, 0x2bd5, 0xc343, 0x2bc9, 0xc347, - 0x2bbd, 0xc34b, 0x2bb1, 0xc34f, 0x2ba5, 0xc353, 0x2b99, 0xc357, - 0x2b8d, 0xc35b, 0x2b81, 0xc35f, 0x2b75, 0xc363, 0x2b6a, 0xc367, - 0x2b5e, 0xc36b, 0x2b52, 0xc36f, 0x2b46, 0xc373, 0x2b3a, 0xc377, - 0x2b2e, 0xc37b, 0x2b22, 0xc37f, 0x2b16, 0xc383, 0x2b0a, 0xc387, - 0x2aff, 0xc38c, 0x2af3, 0xc390, 0x2ae7, 0xc394, 0x2adb, 0xc398, - 0x2acf, 0xc39c, 0x2ac3, 0xc3a0, 0x2ab7, 0xc3a5, 0x2aac, 0xc3a9, - 0x2aa0, 0xc3ad, 0x2a94, 0xc3b1, 0x2a88, 0xc3b5, 0x2a7c, 0xc3ba, - 0x2a70, 0xc3be, 0x2a65, 0xc3c2, 0x2a59, 0xc3c6, 0x2a4d, 0xc3ca, - 0x2a41, 0xc3cf, 0x2a35, 0xc3d3, 0x2a29, 0xc3d7, 0x2a1e, 0xc3dc, - 0x2a12, 0xc3e0, 0x2a06, 0xc3e4, 0x29fa, 0xc3e9, 0x29ee, 0xc3ed, - 0x29e3, 0xc3f1, 0x29d7, 0xc3f6, 0x29cb, 0xc3fa, 0x29bf, 0xc3fe, - 0x29b4, 0xc403, 0x29a8, 0xc407, 0x299c, 0xc40b, 0x2990, 0xc410, - 0x2984, 0xc414, 0x2979, 0xc419, 0x296d, 0xc41d, 0x2961, 0xc422, - 0x2955, 0xc426, 0x294a, 0xc42a, 0x293e, 0xc42f, 0x2932, 0xc433, - 0x2926, 0xc438, 0x291b, 0xc43c, 0x290f, 0xc441, 0x2903, 0xc445, - 0x28f7, 0xc44a, 0x28ec, 0xc44e, 0x28e0, 0xc453, 0x28d4, 0xc457, - 0x28c9, 0xc45c, 0x28bd, 0xc461, 0x28b1, 0xc465, 0x28a5, 0xc46a, - 0x289a, 0xc46e, 0x288e, 0xc473, 0x2882, 0xc478, 0x2877, 0xc47c, - 0x286b, 0xc481, 0x285f, 0xc485, 0x2854, 0xc48a, 0x2848, 0xc48f, - 0x283c, 0xc493, 0x2831, 0xc498, 0x2825, 0xc49d, 0x2819, 0xc4a1, - 0x280e, 0xc4a6, 0x2802, 0xc4ab, 0x27f6, 0xc4b0, 0x27eb, 0xc4b4, - 0x27df, 0xc4b9, 0x27d3, 0xc4be, 0x27c8, 0xc4c2, 0x27bc, 0xc4c7, - 0x27b1, 0xc4cc, 0x27a5, 0xc4d1, 0x2799, 0xc4d6, 0x278e, 0xc4da, - 0x2782, 0xc4df, 0x2777, 0xc4e4, 0x276b, 0xc4e9, 0x275f, 0xc4ee, - 0x2754, 0xc4f2, 0x2748, 0xc4f7, 0x273d, 0xc4fc, 0x2731, 0xc501, - 0x2725, 0xc506, 0x271a, 0xc50b, 0x270e, 0xc510, 0x2703, 0xc515, - 0x26f7, 0xc51a, 0x26ec, 0xc51e, 0x26e0, 0xc523, 0x26d4, 0xc528, - 0x26c9, 0xc52d, 0x26bd, 0xc532, 0x26b2, 0xc537, 0x26a6, 0xc53c, - 0x269b, 0xc541, 0x268f, 0xc546, 0x2684, 0xc54b, 0x2678, 0xc550, - 0x266d, 0xc555, 0x2661, 0xc55a, 0x2656, 0xc55f, 0x264a, 0xc564, - 0x263f, 0xc569, 0x2633, 0xc56e, 0x2628, 0xc573, 0x261c, 0xc578, - 0x2611, 0xc57e, 0x2605, 0xc583, 0x25fa, 0xc588, 0x25ee, 0xc58d, - 0x25e3, 0xc592, 0x25d7, 0xc597, 0x25cc, 0xc59c, 0x25c0, 0xc5a1, - 0x25b5, 0xc5a7, 0x25a9, 0xc5ac, 0x259e, 0xc5b1, 0x2592, 0xc5b6, - 0x2587, 0xc5bb, 0x257c, 0xc5c1, 0x2570, 0xc5c6, 0x2565, 0xc5cb, - 0x2559, 0xc5d0, 0x254e, 0xc5d5, 0x2542, 0xc5db, 0x2537, 0xc5e0, - 0x252c, 0xc5e5, 0x2520, 0xc5ea, 0x2515, 0xc5f0, 0x2509, 0xc5f5, - 0x24fe, 0xc5fa, 0x24f3, 0xc600, 0x24e7, 0xc605, 0x24dc, 0xc60a, - 0x24d0, 0xc610, 0x24c5, 0xc615, 0x24ba, 0xc61a, 0x24ae, 0xc620, - 0x24a3, 0xc625, 0x2498, 0xc62a, 0x248c, 0xc630, 0x2481, 0xc635, - 0x2476, 0xc63b, 0x246a, 0xc640, 0x245f, 0xc645, 0x2454, 0xc64b, - 0x2448, 0xc650, 0x243d, 0xc656, 0x2432, 0xc65b, 0x2426, 0xc661, - 0x241b, 0xc666, 0x2410, 0xc66c, 0x2404, 0xc671, 0x23f9, 0xc677, - 0x23ee, 0xc67c, 0x23e2, 0xc682, 0x23d7, 0xc687, 0x23cc, 0xc68d, - 0x23c1, 0xc692, 0x23b5, 0xc698, 0x23aa, 0xc69d, 0x239f, 0xc6a3, - 0x2394, 0xc6a8, 0x2388, 0xc6ae, 0x237d, 0xc6b4, 0x2372, 0xc6b9, - 0x2367, 0xc6bf, 0x235b, 0xc6c5, 0x2350, 0xc6ca, 0x2345, 0xc6d0, - 0x233a, 0xc6d5, 0x232e, 0xc6db, 0x2323, 0xc6e1, 0x2318, 0xc6e6, - 0x230d, 0xc6ec, 0x2301, 0xc6f2, 0x22f6, 0xc6f7, 0x22eb, 0xc6fd, - 0x22e0, 0xc703, 0x22d5, 0xc709, 0x22ca, 0xc70e, 0x22be, 0xc714, - 0x22b3, 0xc71a, 0x22a8, 0xc720, 0x229d, 0xc725, 0x2292, 0xc72b, - 0x2287, 0xc731, 0x227b, 0xc737, 0x2270, 0xc73d, 0x2265, 0xc742, - 0x225a, 0xc748, 0x224f, 0xc74e, 0x2244, 0xc754, 0x2239, 0xc75a, - 0x222d, 0xc75f, 0x2222, 0xc765, 0x2217, 0xc76b, 0x220c, 0xc771, - 0x2201, 0xc777, 0x21f6, 0xc77d, 0x21eb, 0xc783, 0x21e0, 0xc789, - 0x21d5, 0xc78f, 0x21ca, 0xc795, 0x21be, 0xc79a, 0x21b3, 0xc7a0, - 0x21a8, 0xc7a6, 0x219d, 0xc7ac, 0x2192, 0xc7b2, 0x2187, 0xc7b8, - 0x217c, 0xc7be, 0x2171, 0xc7c4, 0x2166, 0xc7ca, 0x215b, 0xc7d0, - 0x2150, 0xc7d6, 0x2145, 0xc7dc, 0x213a, 0xc7e2, 0x212f, 0xc7e8, - 0x2124, 0xc7ee, 0x2119, 0xc7f5, 0x210e, 0xc7fb, 0x2103, 0xc801, - 0x20f8, 0xc807, 0x20ed, 0xc80d, 0x20e2, 0xc813, 0x20d7, 0xc819, - 0x20cc, 0xc81f, 0x20c1, 0xc825, 0x20b6, 0xc82b, 0x20ab, 0xc832, - 0x20a0, 0xc838, 0x2095, 0xc83e, 0x208a, 0xc844, 0x207f, 0xc84a, - 0x2074, 0xc850, 0x2069, 0xc857, 0x205e, 0xc85d, 0x2054, 0xc863, - 0x2049, 0xc869, 0x203e, 0xc870, 0x2033, 0xc876, 0x2028, 0xc87c, - 0x201d, 0xc882, 0x2012, 0xc889, 0x2007, 0xc88f, 0x1ffc, 0xc895, - 0x1ff1, 0xc89b, 0x1fe7, 0xc8a2, 0x1fdc, 0xc8a8, 0x1fd1, 0xc8ae, - 0x1fc6, 0xc8b5, 0x1fbb, 0xc8bb, 0x1fb0, 0xc8c1, 0x1fa5, 0xc8c8, - 0x1f9b, 0xc8ce, 0x1f90, 0xc8d4, 0x1f85, 0xc8db, 0x1f7a, 0xc8e1, - 0x1f6f, 0xc8e8, 0x1f65, 0xc8ee, 0x1f5a, 0xc8f4, 0x1f4f, 0xc8fb, - 0x1f44, 0xc901, 0x1f39, 0xc908, 0x1f2f, 0xc90e, 0x1f24, 0xc915, - 0x1f19, 0xc91b, 0x1f0e, 0xc921, 0x1f03, 0xc928, 0x1ef9, 0xc92e, - 0x1eee, 0xc935, 0x1ee3, 0xc93b, 0x1ed8, 0xc942, 0x1ece, 0xc948, - 0x1ec3, 0xc94f, 0x1eb8, 0xc955, 0x1ead, 0xc95c, 0x1ea3, 0xc963, - 0x1e98, 0xc969, 0x1e8d, 0xc970, 0x1e83, 0xc976, 0x1e78, 0xc97d, - 0x1e6d, 0xc983, 0x1e62, 0xc98a, 0x1e58, 0xc991, 0x1e4d, 0xc997, - 0x1e42, 0xc99e, 0x1e38, 0xc9a4, 0x1e2d, 0xc9ab, 0x1e22, 0xc9b2, - 0x1e18, 0xc9b8, 0x1e0d, 0xc9bf, 0x1e02, 0xc9c6, 0x1df8, 0xc9cc, - 0x1ded, 0xc9d3, 0x1de2, 0xc9da, 0x1dd8, 0xc9e0, 0x1dcd, 0xc9e7, - 0x1dc3, 0xc9ee, 0x1db8, 0xc9f5, 0x1dad, 0xc9fb, 0x1da3, 0xca02, - 0x1d98, 0xca09, 0x1d8e, 0xca10, 0x1d83, 0xca16, 0x1d78, 0xca1d, - 0x1d6e, 0xca24, 0x1d63, 0xca2b, 0x1d59, 0xca32, 0x1d4e, 0xca38, - 0x1d44, 0xca3f, 0x1d39, 0xca46, 0x1d2e, 0xca4d, 0x1d24, 0xca54, - 0x1d19, 0xca5b, 0x1d0f, 0xca61, 0x1d04, 0xca68, 0x1cfa, 0xca6f, - 0x1cef, 0xca76, 0x1ce5, 0xca7d, 0x1cda, 0xca84, 0x1cd0, 0xca8b, - 0x1cc5, 0xca92, 0x1cbb, 0xca99, 0x1cb0, 0xca9f, 0x1ca6, 0xcaa6, - 0x1c9b, 0xcaad, 0x1c91, 0xcab4, 0x1c86, 0xcabb, 0x1c7c, 0xcac2, - 0x1c72, 0xcac9, 0x1c67, 0xcad0, 0x1c5d, 0xcad7, 0x1c52, 0xcade, - 0x1c48, 0xcae5, 0x1c3d, 0xcaec, 0x1c33, 0xcaf3, 0x1c29, 0xcafa, - 0x1c1e, 0xcb01, 0x1c14, 0xcb08, 0x1c09, 0xcb0f, 0x1bff, 0xcb16, - 0x1bf5, 0xcb1e, 0x1bea, 0xcb25, 0x1be0, 0xcb2c, 0x1bd5, 0xcb33, - 0x1bcb, 0xcb3a, 0x1bc1, 0xcb41, 0x1bb6, 0xcb48, 0x1bac, 0xcb4f, - 0x1ba2, 0xcb56, 0x1b97, 0xcb5e, 0x1b8d, 0xcb65, 0x1b83, 0xcb6c, - 0x1b78, 0xcb73, 0x1b6e, 0xcb7a, 0x1b64, 0xcb81, 0x1b59, 0xcb89, - 0x1b4f, 0xcb90, 0x1b45, 0xcb97, 0x1b3b, 0xcb9e, 0x1b30, 0xcba5, - 0x1b26, 0xcbad, 0x1b1c, 0xcbb4, 0x1b11, 0xcbbb, 0x1b07, 0xcbc2, - 0x1afd, 0xcbca, 0x1af3, 0xcbd1, 0x1ae8, 0xcbd8, 0x1ade, 0xcbe0, - 0x1ad4, 0xcbe7, 0x1aca, 0xcbee, 0x1abf, 0xcbf5, 0x1ab5, 0xcbfd, - 0x1aab, 0xcc04, 0x1aa1, 0xcc0b, 0x1a97, 0xcc13, 0x1a8c, 0xcc1a, - 0x1a82, 0xcc21, 0x1a78, 0xcc29, 0x1a6e, 0xcc30, 0x1a64, 0xcc38, - 0x1a5a, 0xcc3f, 0x1a4f, 0xcc46, 0x1a45, 0xcc4e, 0x1a3b, 0xcc55, - 0x1a31, 0xcc5d, 0x1a27, 0xcc64, 0x1a1d, 0xcc6b, 0x1a13, 0xcc73, - 0x1a08, 0xcc7a, 0x19fe, 0xcc82, 0x19f4, 0xcc89, 0x19ea, 0xcc91, - 0x19e0, 0xcc98, 0x19d6, 0xcca0, 0x19cc, 0xcca7, 0x19c2, 0xccaf, - 0x19b8, 0xccb6, 0x19ae, 0xccbe, 0x19a4, 0xccc5, 0x199a, 0xcccd, - 0x198f, 0xccd4, 0x1985, 0xccdc, 0x197b, 0xcce3, 0x1971, 0xcceb, - 0x1967, 0xccf3, 0x195d, 0xccfa, 0x1953, 0xcd02, 0x1949, 0xcd09, - 0x193f, 0xcd11, 0x1935, 0xcd19, 0x192b, 0xcd20, 0x1921, 0xcd28, - 0x1917, 0xcd30, 0x190d, 0xcd37, 0x1903, 0xcd3f, 0x18f9, 0xcd46, - 0x18ef, 0xcd4e, 0x18e6, 0xcd56, 0x18dc, 0xcd5d, 0x18d2, 0xcd65, - 0x18c8, 0xcd6d, 0x18be, 0xcd75, 0x18b4, 0xcd7c, 0x18aa, 0xcd84, - 0x18a0, 0xcd8c, 0x1896, 0xcd93, 0x188c, 0xcd9b, 0x1882, 0xcda3, - 0x1878, 0xcdab, 0x186f, 0xcdb2, 0x1865, 0xcdba, 0x185b, 0xcdc2, - 0x1851, 0xcdca, 0x1847, 0xcdd2, 0x183d, 0xcdd9, 0x1833, 0xcde1, - 0x182a, 0xcde9, 0x1820, 0xcdf1, 0x1816, 0xcdf9, 0x180c, 0xce01, - 0x1802, 0xce08, 0x17f8, 0xce10, 0x17ef, 0xce18, 0x17e5, 0xce20, - 0x17db, 0xce28, 0x17d1, 0xce30, 0x17c8, 0xce38, 0x17be, 0xce40, - 0x17b4, 0xce47, 0x17aa, 0xce4f, 0x17a0, 0xce57, 0x1797, 0xce5f, - 0x178d, 0xce67, 0x1783, 0xce6f, 0x177a, 0xce77, 0x1770, 0xce7f, - 0x1766, 0xce87, 0x175c, 0xce8f, 0x1753, 0xce97, 0x1749, 0xce9f, - 0x173f, 0xcea7, 0x1736, 0xceaf, 0x172c, 0xceb7, 0x1722, 0xcebf, - 0x1719, 0xcec7, 0x170f, 0xcecf, 0x1705, 0xced7, 0x16fc, 0xcedf, - 0x16f2, 0xcee7, 0x16e8, 0xceef, 0x16df, 0xcef7, 0x16d5, 0xceff, - 0x16cb, 0xcf07, 0x16c2, 0xcf10, 0x16b8, 0xcf18, 0x16af, 0xcf20, - 0x16a5, 0xcf28, 0x169b, 0xcf30, 0x1692, 0xcf38, 0x1688, 0xcf40, - 0x167f, 0xcf48, 0x1675, 0xcf51, 0x166c, 0xcf59, 0x1662, 0xcf61, - 0x1659, 0xcf69, 0x164f, 0xcf71, 0x1645, 0xcf79, 0x163c, 0xcf82, - 0x1632, 0xcf8a, 0x1629, 0xcf92, 0x161f, 0xcf9a, 0x1616, 0xcfa3, - 0x160c, 0xcfab, 0x1603, 0xcfb3, 0x15f9, 0xcfbb, 0x15f0, 0xcfc4, - 0x15e6, 0xcfcc, 0x15dd, 0xcfd4, 0x15d4, 0xcfdc, 0x15ca, 0xcfe5, - 0x15c1, 0xcfed, 0x15b7, 0xcff5, 0x15ae, 0xcffe, 0x15a4, 0xd006, - 0x159b, 0xd00e, 0x1592, 0xd016, 0x1588, 0xd01f, 0x157f, 0xd027, - 0x1575, 0xd030, 0x156c, 0xd038, 0x1563, 0xd040, 0x1559, 0xd049, - 0x1550, 0xd051, 0x1547, 0xd059, 0x153d, 0xd062, 0x1534, 0xd06a, - 0x152a, 0xd073, 0x1521, 0xd07b, 0x1518, 0xd083, 0x150e, 0xd08c, - 0x1505, 0xd094, 0x14fc, 0xd09d, 0x14f3, 0xd0a5, 0x14e9, 0xd0ae, - 0x14e0, 0xd0b6, 0x14d7, 0xd0bf, 0x14cd, 0xd0c7, 0x14c4, 0xd0d0, - 0x14bb, 0xd0d8, 0x14b2, 0xd0e0, 0x14a8, 0xd0e9, 0x149f, 0xd0f2, - 0x1496, 0xd0fa, 0x148d, 0xd103, 0x1483, 0xd10b, 0x147a, 0xd114, - 0x1471, 0xd11c, 0x1468, 0xd125, 0x145f, 0xd12d, 0x1455, 0xd136, - 0x144c, 0xd13e, 0x1443, 0xd147, 0x143a, 0xd150, 0x1431, 0xd158, - 0x1428, 0xd161, 0x141e, 0xd169, 0x1415, 0xd172, 0x140c, 0xd17b, - 0x1403, 0xd183, 0x13fa, 0xd18c, 0x13f1, 0xd195, 0x13e8, 0xd19d, - 0x13df, 0xd1a6, 0x13d5, 0xd1af, 0x13cc, 0xd1b7, 0x13c3, 0xd1c0, - 0x13ba, 0xd1c9, 0x13b1, 0xd1d1, 0x13a8, 0xd1da, 0x139f, 0xd1e3, - 0x1396, 0xd1eb, 0x138d, 0xd1f4, 0x1384, 0xd1fd, 0x137b, 0xd206, - 0x1372, 0xd20e, 0x1369, 0xd217, 0x1360, 0xd220, 0x1357, 0xd229, - 0x134e, 0xd231, 0x1345, 0xd23a, 0x133c, 0xd243, 0x1333, 0xd24c, - 0x132a, 0xd255, 0x1321, 0xd25d, 0x1318, 0xd266, 0x130f, 0xd26f, - 0x1306, 0xd278, 0x12fd, 0xd281, 0x12f4, 0xd28a, 0x12eb, 0xd292, - 0x12e2, 0xd29b, 0x12d9, 0xd2a4, 0x12d1, 0xd2ad, 0x12c8, 0xd2b6, - 0x12bf, 0xd2bf, 0x12b6, 0xd2c8, 0x12ad, 0xd2d1, 0x12a4, 0xd2d9, - 0x129b, 0xd2e2, 0x1292, 0xd2eb, 0x128a, 0xd2f4, 0x1281, 0xd2fd, - 0x1278, 0xd306, 0x126f, 0xd30f, 0x1266, 0xd318, 0x125d, 0xd321, - 0x1255, 0xd32a, 0x124c, 0xd333, 0x1243, 0xd33c, 0x123a, 0xd345, - 0x1231, 0xd34e, 0x1229, 0xd357, 0x1220, 0xd360, 0x1217, 0xd369, - 0x120e, 0xd372, 0x1206, 0xd37b, 0x11fd, 0xd384, 0x11f4, 0xd38d, - 0x11eb, 0xd396, 0x11e3, 0xd39f, 0x11da, 0xd3a8, 0x11d1, 0xd3b1, - 0x11c9, 0xd3ba, 0x11c0, 0xd3c3, 0x11b7, 0xd3cc, 0x11af, 0xd3d5, - 0x11a6, 0xd3df, 0x119d, 0xd3e8, 0x1195, 0xd3f1, 0x118c, 0xd3fa, - 0x1183, 0xd403, 0x117b, 0xd40c, 0x1172, 0xd415, 0x1169, 0xd41e, - 0x1161, 0xd428, 0x1158, 0xd431, 0x1150, 0xd43a, 0x1147, 0xd443, - 0x113e, 0xd44c, 0x1136, 0xd455, 0x112d, 0xd45f, 0x1125, 0xd468, - 0x111c, 0xd471, 0x1114, 0xd47a, 0x110b, 0xd483, 0x1103, 0xd48d, - 0x10fa, 0xd496, 0x10f2, 0xd49f, 0x10e9, 0xd4a8, 0x10e0, 0xd4b2, - 0x10d8, 0xd4bb, 0x10d0, 0xd4c4, 0x10c7, 0xd4cd, 0x10bf, 0xd4d7, - 0x10b6, 0xd4e0, 0x10ae, 0xd4e9, 0x10a5, 0xd4f3, 0x109d, 0xd4fc, - 0x1094, 0xd505, 0x108c, 0xd50e, 0x1083, 0xd518, 0x107b, 0xd521, - 0x1073, 0xd52a, 0x106a, 0xd534, 0x1062, 0xd53d, 0x1059, 0xd547, - 0x1051, 0xd550, 0x1049, 0xd559, 0x1040, 0xd563, 0x1038, 0xd56c, - 0x1030, 0xd575, 0x1027, 0xd57f, 0x101f, 0xd588, 0x1016, 0xd592, - 0x100e, 0xd59b, 0x1006, 0xd5a4, 0xffe, 0xd5ae, 0xff5, 0xd5b7, - 0xfed, 0xd5c1, 0xfe5, 0xd5ca, 0xfdc, 0xd5d4, 0xfd4, 0xd5dd, - 0xfcc, 0xd5e6, 0xfc4, 0xd5f0, 0xfbb, 0xd5f9, 0xfb3, 0xd603, - 0xfab, 0xd60c, 0xfa3, 0xd616, 0xf9a, 0xd61f, 0xf92, 0xd629, - 0xf8a, 0xd632, 0xf82, 0xd63c, 0xf79, 0xd645, 0xf71, 0xd64f, - 0xf69, 0xd659, 0xf61, 0xd662, 0xf59, 0xd66c, 0xf51, 0xd675, - 0xf48, 0xd67f, 0xf40, 0xd688, 0xf38, 0xd692, 0xf30, 0xd69b, - 0xf28, 0xd6a5, 0xf20, 0xd6af, 0xf18, 0xd6b8, 0xf10, 0xd6c2, - 0xf07, 0xd6cb, 0xeff, 0xd6d5, 0xef7, 0xd6df, 0xeef, 0xd6e8, - 0xee7, 0xd6f2, 0xedf, 0xd6fc, 0xed7, 0xd705, 0xecf, 0xd70f, - 0xec7, 0xd719, 0xebf, 0xd722, 0xeb7, 0xd72c, 0xeaf, 0xd736, - 0xea7, 0xd73f, 0xe9f, 0xd749, 0xe97, 0xd753, 0xe8f, 0xd75c, - 0xe87, 0xd766, 0xe7f, 0xd770, 0xe77, 0xd77a, 0xe6f, 0xd783, - 0xe67, 0xd78d, 0xe5f, 0xd797, 0xe57, 0xd7a0, 0xe4f, 0xd7aa, - 0xe47, 0xd7b4, 0xe40, 0xd7be, 0xe38, 0xd7c8, 0xe30, 0xd7d1, - 0xe28, 0xd7db, 0xe20, 0xd7e5, 0xe18, 0xd7ef, 0xe10, 0xd7f8, - 0xe08, 0xd802, 0xe01, 0xd80c, 0xdf9, 0xd816, 0xdf1, 0xd820, - 0xde9, 0xd82a, 0xde1, 0xd833, 0xdd9, 0xd83d, 0xdd2, 0xd847, - 0xdca, 0xd851, 0xdc2, 0xd85b, 0xdba, 0xd865, 0xdb2, 0xd86f, - 0xdab, 0xd878, 0xda3, 0xd882, 0xd9b, 0xd88c, 0xd93, 0xd896, - 0xd8c, 0xd8a0, 0xd84, 0xd8aa, 0xd7c, 0xd8b4, 0xd75, 0xd8be, - 0xd6d, 0xd8c8, 0xd65, 0xd8d2, 0xd5d, 0xd8dc, 0xd56, 0xd8e6, - 0xd4e, 0xd8ef, 0xd46, 0xd8f9, 0xd3f, 0xd903, 0xd37, 0xd90d, - 0xd30, 0xd917, 0xd28, 0xd921, 0xd20, 0xd92b, 0xd19, 0xd935, - 0xd11, 0xd93f, 0xd09, 0xd949, 0xd02, 0xd953, 0xcfa, 0xd95d, - 0xcf3, 0xd967, 0xceb, 0xd971, 0xce3, 0xd97b, 0xcdc, 0xd985, - 0xcd4, 0xd98f, 0xccd, 0xd99a, 0xcc5, 0xd9a4, 0xcbe, 0xd9ae, - 0xcb6, 0xd9b8, 0xcaf, 0xd9c2, 0xca7, 0xd9cc, 0xca0, 0xd9d6, - 0xc98, 0xd9e0, 0xc91, 0xd9ea, 0xc89, 0xd9f4, 0xc82, 0xd9fe, - 0xc7a, 0xda08, 0xc73, 0xda13, 0xc6b, 0xda1d, 0xc64, 0xda27, - 0xc5d, 0xda31, 0xc55, 0xda3b, 0xc4e, 0xda45, 0xc46, 0xda4f, - 0xc3f, 0xda5a, 0xc38, 0xda64, 0xc30, 0xda6e, 0xc29, 0xda78, - 0xc21, 0xda82, 0xc1a, 0xda8c, 0xc13, 0xda97, 0xc0b, 0xdaa1, - 0xc04, 0xdaab, 0xbfd, 0xdab5, 0xbf5, 0xdabf, 0xbee, 0xdaca, - 0xbe7, 0xdad4, 0xbe0, 0xdade, 0xbd8, 0xdae8, 0xbd1, 0xdaf3, - 0xbca, 0xdafd, 0xbc2, 0xdb07, 0xbbb, 0xdb11, 0xbb4, 0xdb1c, - 0xbad, 0xdb26, 0xba5, 0xdb30, 0xb9e, 0xdb3b, 0xb97, 0xdb45, - 0xb90, 0xdb4f, 0xb89, 0xdb59, 0xb81, 0xdb64, 0xb7a, 0xdb6e, - 0xb73, 0xdb78, 0xb6c, 0xdb83, 0xb65, 0xdb8d, 0xb5e, 0xdb97, - 0xb56, 0xdba2, 0xb4f, 0xdbac, 0xb48, 0xdbb6, 0xb41, 0xdbc1, - 0xb3a, 0xdbcb, 0xb33, 0xdbd5, 0xb2c, 0xdbe0, 0xb25, 0xdbea, - 0xb1e, 0xdbf5, 0xb16, 0xdbff, 0xb0f, 0xdc09, 0xb08, 0xdc14, - 0xb01, 0xdc1e, 0xafa, 0xdc29, 0xaf3, 0xdc33, 0xaec, 0xdc3d, - 0xae5, 0xdc48, 0xade, 0xdc52, 0xad7, 0xdc5d, 0xad0, 0xdc67, - 0xac9, 0xdc72, 0xac2, 0xdc7c, 0xabb, 0xdc86, 0xab4, 0xdc91, - 0xaad, 0xdc9b, 0xaa6, 0xdca6, 0xa9f, 0xdcb0, 0xa99, 0xdcbb, - 0xa92, 0xdcc5, 0xa8b, 0xdcd0, 0xa84, 0xdcda, 0xa7d, 0xdce5, - 0xa76, 0xdcef, 0xa6f, 0xdcfa, 0xa68, 0xdd04, 0xa61, 0xdd0f, - 0xa5b, 0xdd19, 0xa54, 0xdd24, 0xa4d, 0xdd2e, 0xa46, 0xdd39, - 0xa3f, 0xdd44, 0xa38, 0xdd4e, 0xa32, 0xdd59, 0xa2b, 0xdd63, - 0xa24, 0xdd6e, 0xa1d, 0xdd78, 0xa16, 0xdd83, 0xa10, 0xdd8e, - 0xa09, 0xdd98, 0xa02, 0xdda3, 0x9fb, 0xddad, 0x9f5, 0xddb8, - 0x9ee, 0xddc3, 0x9e7, 0xddcd, 0x9e0, 0xddd8, 0x9da, 0xdde2, - 0x9d3, 0xdded, 0x9cc, 0xddf8, 0x9c6, 0xde02, 0x9bf, 0xde0d, - 0x9b8, 0xde18, 0x9b2, 0xde22, 0x9ab, 0xde2d, 0x9a4, 0xde38, - 0x99e, 0xde42, 0x997, 0xde4d, 0x991, 0xde58, 0x98a, 0xde62, - 0x983, 0xde6d, 0x97d, 0xde78, 0x976, 0xde83, 0x970, 0xde8d, - 0x969, 0xde98, 0x963, 0xdea3, 0x95c, 0xdead, 0x955, 0xdeb8, - 0x94f, 0xdec3, 0x948, 0xdece, 0x942, 0xded8, 0x93b, 0xdee3, - 0x935, 0xdeee, 0x92e, 0xdef9, 0x928, 0xdf03, 0x921, 0xdf0e, - 0x91b, 0xdf19, 0x915, 0xdf24, 0x90e, 0xdf2f, 0x908, 0xdf39, - 0x901, 0xdf44, 0x8fb, 0xdf4f, 0x8f4, 0xdf5a, 0x8ee, 0xdf65, - 0x8e8, 0xdf6f, 0x8e1, 0xdf7a, 0x8db, 0xdf85, 0x8d4, 0xdf90, - 0x8ce, 0xdf9b, 0x8c8, 0xdfa5, 0x8c1, 0xdfb0, 0x8bb, 0xdfbb, - 0x8b5, 0xdfc6, 0x8ae, 0xdfd1, 0x8a8, 0xdfdc, 0x8a2, 0xdfe7, - 0x89b, 0xdff1, 0x895, 0xdffc, 0x88f, 0xe007, 0x889, 0xe012, - 0x882, 0xe01d, 0x87c, 0xe028, 0x876, 0xe033, 0x870, 0xe03e, - 0x869, 0xe049, 0x863, 0xe054, 0x85d, 0xe05e, 0x857, 0xe069, - 0x850, 0xe074, 0x84a, 0xe07f, 0x844, 0xe08a, 0x83e, 0xe095, - 0x838, 0xe0a0, 0x832, 0xe0ab, 0x82b, 0xe0b6, 0x825, 0xe0c1, - 0x81f, 0xe0cc, 0x819, 0xe0d7, 0x813, 0xe0e2, 0x80d, 0xe0ed, - 0x807, 0xe0f8, 0x801, 0xe103, 0x7fb, 0xe10e, 0x7f5, 0xe119, - 0x7ee, 0xe124, 0x7e8, 0xe12f, 0x7e2, 0xe13a, 0x7dc, 0xe145, - 0x7d6, 0xe150, 0x7d0, 0xe15b, 0x7ca, 0xe166, 0x7c4, 0xe171, - 0x7be, 0xe17c, 0x7b8, 0xe187, 0x7b2, 0xe192, 0x7ac, 0xe19d, - 0x7a6, 0xe1a8, 0x7a0, 0xe1b3, 0x79a, 0xe1be, 0x795, 0xe1ca, - 0x78f, 0xe1d5, 0x789, 0xe1e0, 0x783, 0xe1eb, 0x77d, 0xe1f6, - 0x777, 0xe201, 0x771, 0xe20c, 0x76b, 0xe217, 0x765, 0xe222, - 0x75f, 0xe22d, 0x75a, 0xe239, 0x754, 0xe244, 0x74e, 0xe24f, - 0x748, 0xe25a, 0x742, 0xe265, 0x73d, 0xe270, 0x737, 0xe27b, - 0x731, 0xe287, 0x72b, 0xe292, 0x725, 0xe29d, 0x720, 0xe2a8, - 0x71a, 0xe2b3, 0x714, 0xe2be, 0x70e, 0xe2ca, 0x709, 0xe2d5, - 0x703, 0xe2e0, 0x6fd, 0xe2eb, 0x6f7, 0xe2f6, 0x6f2, 0xe301, - 0x6ec, 0xe30d, 0x6e6, 0xe318, 0x6e1, 0xe323, 0x6db, 0xe32e, - 0x6d5, 0xe33a, 0x6d0, 0xe345, 0x6ca, 0xe350, 0x6c5, 0xe35b, - 0x6bf, 0xe367, 0x6b9, 0xe372, 0x6b4, 0xe37d, 0x6ae, 0xe388, - 0x6a8, 0xe394, 0x6a3, 0xe39f, 0x69d, 0xe3aa, 0x698, 0xe3b5, - 0x692, 0xe3c1, 0x68d, 0xe3cc, 0x687, 0xe3d7, 0x682, 0xe3e2, - 0x67c, 0xe3ee, 0x677, 0xe3f9, 0x671, 0xe404, 0x66c, 0xe410, - 0x666, 0xe41b, 0x661, 0xe426, 0x65b, 0xe432, 0x656, 0xe43d, - 0x650, 0xe448, 0x64b, 0xe454, 0x645, 0xe45f, 0x640, 0xe46a, - 0x63b, 0xe476, 0x635, 0xe481, 0x630, 0xe48c, 0x62a, 0xe498, - 0x625, 0xe4a3, 0x620, 0xe4ae, 0x61a, 0xe4ba, 0x615, 0xe4c5, - 0x610, 0xe4d0, 0x60a, 0xe4dc, 0x605, 0xe4e7, 0x600, 0xe4f3, - 0x5fa, 0xe4fe, 0x5f5, 0xe509, 0x5f0, 0xe515, 0x5ea, 0xe520, - 0x5e5, 0xe52c, 0x5e0, 0xe537, 0x5db, 0xe542, 0x5d5, 0xe54e, - 0x5d0, 0xe559, 0x5cb, 0xe565, 0x5c6, 0xe570, 0x5c1, 0xe57c, - 0x5bb, 0xe587, 0x5b6, 0xe592, 0x5b1, 0xe59e, 0x5ac, 0xe5a9, - 0x5a7, 0xe5b5, 0x5a1, 0xe5c0, 0x59c, 0xe5cc, 0x597, 0xe5d7, - 0x592, 0xe5e3, 0x58d, 0xe5ee, 0x588, 0xe5fa, 0x583, 0xe605, - 0x57e, 0xe611, 0x578, 0xe61c, 0x573, 0xe628, 0x56e, 0xe633, - 0x569, 0xe63f, 0x564, 0xe64a, 0x55f, 0xe656, 0x55a, 0xe661, - 0x555, 0xe66d, 0x550, 0xe678, 0x54b, 0xe684, 0x546, 0xe68f, - 0x541, 0xe69b, 0x53c, 0xe6a6, 0x537, 0xe6b2, 0x532, 0xe6bd, - 0x52d, 0xe6c9, 0x528, 0xe6d4, 0x523, 0xe6e0, 0x51e, 0xe6ec, - 0x51a, 0xe6f7, 0x515, 0xe703, 0x510, 0xe70e, 0x50b, 0xe71a, - 0x506, 0xe725, 0x501, 0xe731, 0x4fc, 0xe73d, 0x4f7, 0xe748, - 0x4f2, 0xe754, 0x4ee, 0xe75f, 0x4e9, 0xe76b, 0x4e4, 0xe777, - 0x4df, 0xe782, 0x4da, 0xe78e, 0x4d6, 0xe799, 0x4d1, 0xe7a5, - 0x4cc, 0xe7b1, 0x4c7, 0xe7bc, 0x4c2, 0xe7c8, 0x4be, 0xe7d3, - 0x4b9, 0xe7df, 0x4b4, 0xe7eb, 0x4b0, 0xe7f6, 0x4ab, 0xe802, - 0x4a6, 0xe80e, 0x4a1, 0xe819, 0x49d, 0xe825, 0x498, 0xe831, - 0x493, 0xe83c, 0x48f, 0xe848, 0x48a, 0xe854, 0x485, 0xe85f, - 0x481, 0xe86b, 0x47c, 0xe877, 0x478, 0xe882, 0x473, 0xe88e, - 0x46e, 0xe89a, 0x46a, 0xe8a5, 0x465, 0xe8b1, 0x461, 0xe8bd, - 0x45c, 0xe8c9, 0x457, 0xe8d4, 0x453, 0xe8e0, 0x44e, 0xe8ec, - 0x44a, 0xe8f7, 0x445, 0xe903, 0x441, 0xe90f, 0x43c, 0xe91b, - 0x438, 0xe926, 0x433, 0xe932, 0x42f, 0xe93e, 0x42a, 0xe94a, - 0x426, 0xe955, 0x422, 0xe961, 0x41d, 0xe96d, 0x419, 0xe979, - 0x414, 0xe984, 0x410, 0xe990, 0x40b, 0xe99c, 0x407, 0xe9a8, - 0x403, 0xe9b4, 0x3fe, 0xe9bf, 0x3fa, 0xe9cb, 0x3f6, 0xe9d7, - 0x3f1, 0xe9e3, 0x3ed, 0xe9ee, 0x3e9, 0xe9fa, 0x3e4, 0xea06, - 0x3e0, 0xea12, 0x3dc, 0xea1e, 0x3d7, 0xea29, 0x3d3, 0xea35, - 0x3cf, 0xea41, 0x3ca, 0xea4d, 0x3c6, 0xea59, 0x3c2, 0xea65, - 0x3be, 0xea70, 0x3ba, 0xea7c, 0x3b5, 0xea88, 0x3b1, 0xea94, - 0x3ad, 0xeaa0, 0x3a9, 0xeaac, 0x3a5, 0xeab7, 0x3a0, 0xeac3, - 0x39c, 0xeacf, 0x398, 0xeadb, 0x394, 0xeae7, 0x390, 0xeaf3, - 0x38c, 0xeaff, 0x387, 0xeb0a, 0x383, 0xeb16, 0x37f, 0xeb22, - 0x37b, 0xeb2e, 0x377, 0xeb3a, 0x373, 0xeb46, 0x36f, 0xeb52, - 0x36b, 0xeb5e, 0x367, 0xeb6a, 0x363, 0xeb75, 0x35f, 0xeb81, - 0x35b, 0xeb8d, 0x357, 0xeb99, 0x353, 0xeba5, 0x34f, 0xebb1, - 0x34b, 0xebbd, 0x347, 0xebc9, 0x343, 0xebd5, 0x33f, 0xebe1, - 0x33b, 0xebed, 0x337, 0xebf9, 0x333, 0xec05, 0x32f, 0xec10, - 0x32b, 0xec1c, 0x327, 0xec28, 0x323, 0xec34, 0x320, 0xec40, - 0x31c, 0xec4c, 0x318, 0xec58, 0x314, 0xec64, 0x310, 0xec70, - 0x30c, 0xec7c, 0x308, 0xec88, 0x305, 0xec94, 0x301, 0xeca0, - 0x2fd, 0xecac, 0x2f9, 0xecb8, 0x2f5, 0xecc4, 0x2f2, 0xecd0, - 0x2ee, 0xecdc, 0x2ea, 0xece8, 0x2e6, 0xecf4, 0x2e3, 0xed00, - 0x2df, 0xed0c, 0x2db, 0xed18, 0x2d8, 0xed24, 0x2d4, 0xed30, - 0x2d0, 0xed3c, 0x2cc, 0xed48, 0x2c9, 0xed54, 0x2c5, 0xed60, - 0x2c1, 0xed6c, 0x2be, 0xed78, 0x2ba, 0xed84, 0x2b7, 0xed90, - 0x2b3, 0xed9c, 0x2af, 0xeda8, 0x2ac, 0xedb4, 0x2a8, 0xedc0, - 0x2a5, 0xedcc, 0x2a1, 0xedd8, 0x29d, 0xede4, 0x29a, 0xedf0, - 0x296, 0xedfc, 0x293, 0xee09, 0x28f, 0xee15, 0x28c, 0xee21, - 0x288, 0xee2d, 0x285, 0xee39, 0x281, 0xee45, 0x27e, 0xee51, - 0x27a, 0xee5d, 0x277, 0xee69, 0x273, 0xee75, 0x270, 0xee81, - 0x26d, 0xee8d, 0x269, 0xee99, 0x266, 0xeea6, 0x262, 0xeeb2, - 0x25f, 0xeebe, 0x25c, 0xeeca, 0x258, 0xeed6, 0x255, 0xeee2, - 0x251, 0xeeee, 0x24e, 0xeefa, 0x24b, 0xef06, 0x247, 0xef13, - 0x244, 0xef1f, 0x241, 0xef2b, 0x23e, 0xef37, 0x23a, 0xef43, - 0x237, 0xef4f, 0x234, 0xef5b, 0x230, 0xef67, 0x22d, 0xef74, - 0x22a, 0xef80, 0x227, 0xef8c, 0x223, 0xef98, 0x220, 0xefa4, - 0x21d, 0xefb0, 0x21a, 0xefbc, 0x217, 0xefc9, 0x213, 0xefd5, - 0x210, 0xefe1, 0x20d, 0xefed, 0x20a, 0xeff9, 0x207, 0xf005, - 0x204, 0xf012, 0x201, 0xf01e, 0x1fd, 0xf02a, 0x1fa, 0xf036, - 0x1f7, 0xf042, 0x1f4, 0xf04e, 0x1f1, 0xf05b, 0x1ee, 0xf067, - 0x1eb, 0xf073, 0x1e8, 0xf07f, 0x1e5, 0xf08b, 0x1e2, 0xf098, - 0x1df, 0xf0a4, 0x1dc, 0xf0b0, 0x1d9, 0xf0bc, 0x1d6, 0xf0c8, - 0x1d3, 0xf0d5, 0x1d0, 0xf0e1, 0x1cd, 0xf0ed, 0x1ca, 0xf0f9, - 0x1c7, 0xf105, 0x1c4, 0xf112, 0x1c1, 0xf11e, 0x1be, 0xf12a, - 0x1bb, 0xf136, 0x1b8, 0xf143, 0x1b6, 0xf14f, 0x1b3, 0xf15b, - 0x1b0, 0xf167, 0x1ad, 0xf174, 0x1aa, 0xf180, 0x1a7, 0xf18c, - 0x1a4, 0xf198, 0x1a2, 0xf1a4, 0x19f, 0xf1b1, 0x19c, 0xf1bd, - 0x199, 0xf1c9, 0x196, 0xf1d5, 0x194, 0xf1e2, 0x191, 0xf1ee, - 0x18e, 0xf1fa, 0x18b, 0xf207, 0x189, 0xf213, 0x186, 0xf21f, - 0x183, 0xf22b, 0x180, 0xf238, 0x17e, 0xf244, 0x17b, 0xf250, - 0x178, 0xf25c, 0x176, 0xf269, 0x173, 0xf275, 0x170, 0xf281, - 0x16e, 0xf28e, 0x16b, 0xf29a, 0x168, 0xf2a6, 0x166, 0xf2b2, - 0x163, 0xf2bf, 0x161, 0xf2cb, 0x15e, 0xf2d7, 0x15b, 0xf2e4, - 0x159, 0xf2f0, 0x156, 0xf2fc, 0x154, 0xf308, 0x151, 0xf315, - 0x14f, 0xf321, 0x14c, 0xf32d, 0x14a, 0xf33a, 0x147, 0xf346, - 0x145, 0xf352, 0x142, 0xf35f, 0x140, 0xf36b, 0x13d, 0xf377, - 0x13b, 0xf384, 0x138, 0xf390, 0x136, 0xf39c, 0x134, 0xf3a9, - 0x131, 0xf3b5, 0x12f, 0xf3c1, 0x12c, 0xf3ce, 0x12a, 0xf3da, - 0x128, 0xf3e6, 0x125, 0xf3f3, 0x123, 0xf3ff, 0x120, 0xf40b, - 0x11e, 0xf418, 0x11c, 0xf424, 0x119, 0xf430, 0x117, 0xf43d, - 0x115, 0xf449, 0x113, 0xf455, 0x110, 0xf462, 0x10e, 0xf46e, - 0x10c, 0xf47b, 0x109, 0xf487, 0x107, 0xf493, 0x105, 0xf4a0, - 0x103, 0xf4ac, 0x100, 0xf4b8, 0xfe, 0xf4c5, 0xfc, 0xf4d1, - 0xfa, 0xf4dd, 0xf8, 0xf4ea, 0xf6, 0xf4f6, 0xf3, 0xf503, - 0xf1, 0xf50f, 0xef, 0xf51b, 0xed, 0xf528, 0xeb, 0xf534, - 0xe9, 0xf540, 0xe7, 0xf54d, 0xe4, 0xf559, 0xe2, 0xf566, - 0xe0, 0xf572, 0xde, 0xf57e, 0xdc, 0xf58b, 0xda, 0xf597, - 0xd8, 0xf5a4, 0xd6, 0xf5b0, 0xd4, 0xf5bc, 0xd2, 0xf5c9, - 0xd0, 0xf5d5, 0xce, 0xf5e2, 0xcc, 0xf5ee, 0xca, 0xf5fa, - 0xc8, 0xf607, 0xc6, 0xf613, 0xc4, 0xf620, 0xc2, 0xf62c, - 0xc0, 0xf639, 0xbe, 0xf645, 0xbd, 0xf651, 0xbb, 0xf65e, - 0xb9, 0xf66a, 0xb7, 0xf677, 0xb5, 0xf683, 0xb3, 0xf690, - 0xb1, 0xf69c, 0xaf, 0xf6a8, 0xae, 0xf6b5, 0xac, 0xf6c1, - 0xaa, 0xf6ce, 0xa8, 0xf6da, 0xa6, 0xf6e7, 0xa5, 0xf6f3, - 0xa3, 0xf6ff, 0xa1, 0xf70c, 0x9f, 0xf718, 0x9e, 0xf725, - 0x9c, 0xf731, 0x9a, 0xf73e, 0x98, 0xf74a, 0x97, 0xf757, - 0x95, 0xf763, 0x93, 0xf76f, 0x92, 0xf77c, 0x90, 0xf788, - 0x8e, 0xf795, 0x8d, 0xf7a1, 0x8b, 0xf7ae, 0x89, 0xf7ba, - 0x88, 0xf7c7, 0x86, 0xf7d3, 0x85, 0xf7e0, 0x83, 0xf7ec, - 0x81, 0xf7f9, 0x80, 0xf805, 0x7e, 0xf811, 0x7d, 0xf81e, - 0x7b, 0xf82a, 0x7a, 0xf837, 0x78, 0xf843, 0x77, 0xf850, - 0x75, 0xf85c, 0x74, 0xf869, 0x72, 0xf875, 0x71, 0xf882, - 0x6f, 0xf88e, 0x6e, 0xf89b, 0x6c, 0xf8a7, 0x6b, 0xf8b4, - 0x69, 0xf8c0, 0x68, 0xf8cd, 0x67, 0xf8d9, 0x65, 0xf8e6, - 0x64, 0xf8f2, 0x62, 0xf8ff, 0x61, 0xf90b, 0x60, 0xf918, - 0x5e, 0xf924, 0x5d, 0xf931, 0x5c, 0xf93d, 0x5a, 0xf94a, - 0x59, 0xf956, 0x58, 0xf963, 0x56, 0xf96f, 0x55, 0xf97c, - 0x54, 0xf988, 0x53, 0xf995, 0x51, 0xf9a1, 0x50, 0xf9ae, - 0x4f, 0xf9ba, 0x4e, 0xf9c7, 0x4c, 0xf9d3, 0x4b, 0xf9e0, - 0x4a, 0xf9ec, 0x49, 0xf9f9, 0x48, 0xfa05, 0x47, 0xfa12, - 0x45, 0xfa1e, 0x44, 0xfa2b, 0x43, 0xfa37, 0x42, 0xfa44, - 0x41, 0xfa50, 0x40, 0xfa5d, 0x3f, 0xfa69, 0x3d, 0xfa76, - 0x3c, 0xfa82, 0x3b, 0xfa8f, 0x3a, 0xfa9b, 0x39, 0xfaa8, - 0x38, 0xfab4, 0x37, 0xfac1, 0x36, 0xfacd, 0x35, 0xfada, - 0x34, 0xfae6, 0x33, 0xfaf3, 0x32, 0xfb00, 0x31, 0xfb0c, - 0x30, 0xfb19, 0x2f, 0xfb25, 0x2e, 0xfb32, 0x2d, 0xfb3e, - 0x2c, 0xfb4b, 0x2b, 0xfb57, 0x2b, 0xfb64, 0x2a, 0xfb70, - 0x29, 0xfb7d, 0x28, 0xfb89, 0x27, 0xfb96, 0x26, 0xfba2, - 0x25, 0xfbaf, 0x24, 0xfbbc, 0x24, 0xfbc8, 0x23, 0xfbd5, - 0x22, 0xfbe1, 0x21, 0xfbee, 0x20, 0xfbfa, 0x20, 0xfc07, - 0x1f, 0xfc13, 0x1e, 0xfc20, 0x1d, 0xfc2c, 0x1d, 0xfc39, - 0x1c, 0xfc45, 0x1b, 0xfc52, 0x1a, 0xfc5f, 0x1a, 0xfc6b, - 0x19, 0xfc78, 0x18, 0xfc84, 0x18, 0xfc91, 0x17, 0xfc9d, - 0x16, 0xfcaa, 0x16, 0xfcb6, 0x15, 0xfcc3, 0x14, 0xfcd0, - 0x14, 0xfcdc, 0x13, 0xfce9, 0x13, 0xfcf5, 0x12, 0xfd02, - 0x11, 0xfd0e, 0x11, 0xfd1b, 0x10, 0xfd27, 0x10, 0xfd34, - 0xf, 0xfd40, 0xf, 0xfd4d, 0xe, 0xfd5a, 0xe, 0xfd66, - 0xd, 0xfd73, 0xd, 0xfd7f, 0xc, 0xfd8c, 0xc, 0xfd98, - 0xb, 0xfda5, 0xb, 0xfdb2, 0xa, 0xfdbe, 0xa, 0xfdcb, - 0x9, 0xfdd7, 0x9, 0xfde4, 0x9, 0xfdf0, 0x8, 0xfdfd, - 0x8, 0xfe09, 0x7, 0xfe16, 0x7, 0xfe23, 0x7, 0xfe2f, - 0x6, 0xfe3c, 0x6, 0xfe48, 0x6, 0xfe55, 0x5, 0xfe61, - 0x5, 0xfe6e, 0x5, 0xfe7a, 0x4, 0xfe87, 0x4, 0xfe94, - 0x4, 0xfea0, 0x4, 0xfead, 0x3, 0xfeb9, 0x3, 0xfec6, - 0x3, 0xfed2, 0x3, 0xfedf, 0x2, 0xfeec, 0x2, 0xfef8, - 0x2, 0xff05, 0x2, 0xff11, 0x2, 0xff1e, 0x1, 0xff2a, - 0x1, 0xff37, 0x1, 0xff44, 0x1, 0xff50, 0x1, 0xff5d, - 0x1, 0xff69, 0x1, 0xff76, 0x0, 0xff82, 0x0, 0xff8f, - 0x0, 0xff9b, 0x0, 0xffa8, 0x0, 0xffb5, 0x0, 0xffc1, - 0x0, 0xffce, 0x0, 0xffda, 0x0, 0xffe7, 0x0, 0xfff3, - 0x0, 0x0, 0x0, 0xd, 0x0, 0x19, 0x0, 0x26, - 0x0, 0x32, 0x0, 0x3f, 0x0, 0x4b, 0x0, 0x58, - 0x0, 0x65, 0x0, 0x71, 0x0, 0x7e, 0x1, 0x8a, - 0x1, 0x97, 0x1, 0xa3, 0x1, 0xb0, 0x1, 0xbc, - 0x1, 0xc9, 0x1, 0xd6, 0x2, 0xe2, 0x2, 0xef, - 0x2, 0xfb, 0x2, 0x108, 0x2, 0x114, 0x3, 0x121, - 0x3, 0x12e, 0x3, 0x13a, 0x3, 0x147, 0x4, 0x153, - 0x4, 0x160, 0x4, 0x16c, 0x4, 0x179, 0x5, 0x186, - 0x5, 0x192, 0x5, 0x19f, 0x6, 0x1ab, 0x6, 0x1b8, - 0x6, 0x1c4, 0x7, 0x1d1, 0x7, 0x1dd, 0x7, 0x1ea, - 0x8, 0x1f7, 0x8, 0x203, 0x9, 0x210, 0x9, 0x21c, - 0x9, 0x229, 0xa, 0x235, 0xa, 0x242, 0xb, 0x24e, - 0xb, 0x25b, 0xc, 0x268, 0xc, 0x274, 0xd, 0x281, - 0xd, 0x28d, 0xe, 0x29a, 0xe, 0x2a6, 0xf, 0x2b3, - 0xf, 0x2c0, 0x10, 0x2cc, 0x10, 0x2d9, 0x11, 0x2e5, - 0x11, 0x2f2, 0x12, 0x2fe, 0x13, 0x30b, 0x13, 0x317, - 0x14, 0x324, 0x14, 0x330, 0x15, 0x33d, 0x16, 0x34a, - 0x16, 0x356, 0x17, 0x363, 0x18, 0x36f, 0x18, 0x37c, - 0x19, 0x388, 0x1a, 0x395, 0x1a, 0x3a1, 0x1b, 0x3ae, - 0x1c, 0x3bb, 0x1d, 0x3c7, 0x1d, 0x3d4, 0x1e, 0x3e0, - 0x1f, 0x3ed, 0x20, 0x3f9, 0x20, 0x406, 0x21, 0x412, - 0x22, 0x41f, 0x23, 0x42b, 0x24, 0x438, 0x24, 0x444, - 0x25, 0x451, 0x26, 0x45e, 0x27, 0x46a, 0x28, 0x477, - 0x29, 0x483, 0x2a, 0x490, 0x2b, 0x49c, 0x2b, 0x4a9, - 0x2c, 0x4b5, 0x2d, 0x4c2, 0x2e, 0x4ce, 0x2f, 0x4db, - 0x30, 0x4e7, 0x31, 0x4f4, 0x32, 0x500, 0x33, 0x50d, - 0x34, 0x51a, 0x35, 0x526, 0x36, 0x533, 0x37, 0x53f, - 0x38, 0x54c, 0x39, 0x558, 0x3a, 0x565, 0x3b, 0x571, - 0x3c, 0x57e, 0x3d, 0x58a, 0x3f, 0x597, 0x40, 0x5a3, - 0x41, 0x5b0, 0x42, 0x5bc, 0x43, 0x5c9, 0x44, 0x5d5, - 0x45, 0x5e2, 0x47, 0x5ee, 0x48, 0x5fb, 0x49, 0x607, - 0x4a, 0x614, 0x4b, 0x620, 0x4c, 0x62d, 0x4e, 0x639, - 0x4f, 0x646, 0x50, 0x652, 0x51, 0x65f, 0x53, 0x66b, - 0x54, 0x678, 0x55, 0x684, 0x56, 0x691, 0x58, 0x69d, - 0x59, 0x6aa, 0x5a, 0x6b6, 0x5c, 0x6c3, 0x5d, 0x6cf, - 0x5e, 0x6dc, 0x60, 0x6e8, 0x61, 0x6f5, 0x62, 0x701, - 0x64, 0x70e, 0x65, 0x71a, 0x67, 0x727, 0x68, 0x733, - 0x69, 0x740, 0x6b, 0x74c, 0x6c, 0x759, 0x6e, 0x765, - 0x6f, 0x772, 0x71, 0x77e, 0x72, 0x78b, 0x74, 0x797, - 0x75, 0x7a4, 0x77, 0x7b0, 0x78, 0x7bd, 0x7a, 0x7c9, - 0x7b, 0x7d6, 0x7d, 0x7e2, 0x7e, 0x7ef, 0x80, 0x7fb, - 0x81, 0x807, 0x83, 0x814, 0x85, 0x820, 0x86, 0x82d, - 0x88, 0x839, 0x89, 0x846, 0x8b, 0x852, 0x8d, 0x85f, - 0x8e, 0x86b, 0x90, 0x878, 0x92, 0x884, 0x93, 0x891, - 0x95, 0x89d, 0x97, 0x8a9, 0x98, 0x8b6, 0x9a, 0x8c2, - 0x9c, 0x8cf, 0x9e, 0x8db, 0x9f, 0x8e8, 0xa1, 0x8f4, - 0xa3, 0x901, 0xa5, 0x90d, 0xa6, 0x919, 0xa8, 0x926, - 0xaa, 0x932, 0xac, 0x93f, 0xae, 0x94b, 0xaf, 0x958, - 0xb1, 0x964, 0xb3, 0x970, 0xb5, 0x97d, 0xb7, 0x989, - 0xb9, 0x996, 0xbb, 0x9a2, 0xbd, 0x9af, 0xbe, 0x9bb, - 0xc0, 0x9c7, 0xc2, 0x9d4, 0xc4, 0x9e0, 0xc6, 0x9ed, - 0xc8, 0x9f9, 0xca, 0xa06, 0xcc, 0xa12, 0xce, 0xa1e, - 0xd0, 0xa2b, 0xd2, 0xa37, 0xd4, 0xa44, 0xd6, 0xa50, - 0xd8, 0xa5c, 0xda, 0xa69, 0xdc, 0xa75, 0xde, 0xa82, - 0xe0, 0xa8e, 0xe2, 0xa9a, 0xe4, 0xaa7, 0xe7, 0xab3, - 0xe9, 0xac0, 0xeb, 0xacc, 0xed, 0xad8, 0xef, 0xae5, - 0xf1, 0xaf1, 0xf3, 0xafd, 0xf6, 0xb0a, 0xf8, 0xb16, - 0xfa, 0xb23, 0xfc, 0xb2f, 0xfe, 0xb3b, 0x100, 0xb48, - 0x103, 0xb54, 0x105, 0xb60, 0x107, 0xb6d, 0x109, 0xb79, - 0x10c, 0xb85, 0x10e, 0xb92, 0x110, 0xb9e, 0x113, 0xbab, - 0x115, 0xbb7, 0x117, 0xbc3, 0x119, 0xbd0, 0x11c, 0xbdc, - 0x11e, 0xbe8, 0x120, 0xbf5, 0x123, 0xc01, 0x125, 0xc0d, - 0x128, 0xc1a, 0x12a, 0xc26, 0x12c, 0xc32, 0x12f, 0xc3f, - 0x131, 0xc4b, 0x134, 0xc57, 0x136, 0xc64, 0x138, 0xc70, - 0x13b, 0xc7c, 0x13d, 0xc89, 0x140, 0xc95, 0x142, 0xca1, - 0x145, 0xcae, 0x147, 0xcba, 0x14a, 0xcc6, 0x14c, 0xcd3, - 0x14f, 0xcdf, 0x151, 0xceb, 0x154, 0xcf8, 0x156, 0xd04, - 0x159, 0xd10, 0x15b, 0xd1c, 0x15e, 0xd29, 0x161, 0xd35, - 0x163, 0xd41, 0x166, 0xd4e, 0x168, 0xd5a, 0x16b, 0xd66, - 0x16e, 0xd72, 0x170, 0xd7f, 0x173, 0xd8b, 0x176, 0xd97, - 0x178, 0xda4, 0x17b, 0xdb0, 0x17e, 0xdbc, 0x180, 0xdc8, - 0x183, 0xdd5, 0x186, 0xde1, 0x189, 0xded, 0x18b, 0xdf9, - 0x18e, 0xe06, 0x191, 0xe12, 0x194, 0xe1e, 0x196, 0xe2b, - 0x199, 0xe37, 0x19c, 0xe43, 0x19f, 0xe4f, 0x1a2, 0xe5c, - 0x1a4, 0xe68, 0x1a7, 0xe74, 0x1aa, 0xe80, 0x1ad, 0xe8c, - 0x1b0, 0xe99, 0x1b3, 0xea5, 0x1b6, 0xeb1, 0x1b8, 0xebd, - 0x1bb, 0xeca, 0x1be, 0xed6, 0x1c1, 0xee2, 0x1c4, 0xeee, - 0x1c7, 0xefb, 0x1ca, 0xf07, 0x1cd, 0xf13, 0x1d0, 0xf1f, - 0x1d3, 0xf2b, 0x1d6, 0xf38, 0x1d9, 0xf44, 0x1dc, 0xf50, - 0x1df, 0xf5c, 0x1e2, 0xf68, 0x1e5, 0xf75, 0x1e8, 0xf81, - 0x1eb, 0xf8d, 0x1ee, 0xf99, 0x1f1, 0xfa5, 0x1f4, 0xfb2, - 0x1f7, 0xfbe, 0x1fa, 0xfca, 0x1fd, 0xfd6, 0x201, 0xfe2, - 0x204, 0xfee, 0x207, 0xffb, 0x20a, 0x1007, 0x20d, 0x1013, - 0x210, 0x101f, 0x213, 0x102b, 0x217, 0x1037, 0x21a, 0x1044, - 0x21d, 0x1050, 0x220, 0x105c, 0x223, 0x1068, 0x227, 0x1074, - 0x22a, 0x1080, 0x22d, 0x108c, 0x230, 0x1099, 0x234, 0x10a5, - 0x237, 0x10b1, 0x23a, 0x10bd, 0x23e, 0x10c9, 0x241, 0x10d5, - 0x244, 0x10e1, 0x247, 0x10ed, 0x24b, 0x10fa, 0x24e, 0x1106, - 0x251, 0x1112, 0x255, 0x111e, 0x258, 0x112a, 0x25c, 0x1136, - 0x25f, 0x1142, 0x262, 0x114e, 0x266, 0x115a, 0x269, 0x1167, - 0x26d, 0x1173, 0x270, 0x117f, 0x273, 0x118b, 0x277, 0x1197, - 0x27a, 0x11a3, 0x27e, 0x11af, 0x281, 0x11bb, 0x285, 0x11c7, - 0x288, 0x11d3, 0x28c, 0x11df, 0x28f, 0x11eb, 0x293, 0x11f7, - 0x296, 0x1204, 0x29a, 0x1210, 0x29d, 0x121c, 0x2a1, 0x1228, - 0x2a5, 0x1234, 0x2a8, 0x1240, 0x2ac, 0x124c, 0x2af, 0x1258, - 0x2b3, 0x1264, 0x2b7, 0x1270, 0x2ba, 0x127c, 0x2be, 0x1288, - 0x2c1, 0x1294, 0x2c5, 0x12a0, 0x2c9, 0x12ac, 0x2cc, 0x12b8, - 0x2d0, 0x12c4, 0x2d4, 0x12d0, 0x2d8, 0x12dc, 0x2db, 0x12e8, - 0x2df, 0x12f4, 0x2e3, 0x1300, 0x2e6, 0x130c, 0x2ea, 0x1318, - 0x2ee, 0x1324, 0x2f2, 0x1330, 0x2f5, 0x133c, 0x2f9, 0x1348, - 0x2fd, 0x1354, 0x301, 0x1360, 0x305, 0x136c, 0x308, 0x1378, - 0x30c, 0x1384, 0x310, 0x1390, 0x314, 0x139c, 0x318, 0x13a8, - 0x31c, 0x13b4, 0x320, 0x13c0, 0x323, 0x13cc, 0x327, 0x13d8, - 0x32b, 0x13e4, 0x32f, 0x13f0, 0x333, 0x13fb, 0x337, 0x1407, - 0x33b, 0x1413, 0x33f, 0x141f, 0x343, 0x142b, 0x347, 0x1437, - 0x34b, 0x1443, 0x34f, 0x144f, 0x353, 0x145b, 0x357, 0x1467, - 0x35b, 0x1473, 0x35f, 0x147f, 0x363, 0x148b, 0x367, 0x1496, - 0x36b, 0x14a2, 0x36f, 0x14ae, 0x373, 0x14ba, 0x377, 0x14c6, - 0x37b, 0x14d2, 0x37f, 0x14de, 0x383, 0x14ea, 0x387, 0x14f6, - 0x38c, 0x1501, 0x390, 0x150d, 0x394, 0x1519, 0x398, 0x1525, - 0x39c, 0x1531, 0x3a0, 0x153d, 0x3a5, 0x1549, 0x3a9, 0x1554, - 0x3ad, 0x1560, 0x3b1, 0x156c, 0x3b5, 0x1578, 0x3ba, 0x1584, - 0x3be, 0x1590, 0x3c2, 0x159b, 0x3c6, 0x15a7, 0x3ca, 0x15b3, - 0x3cf, 0x15bf, 0x3d3, 0x15cb, 0x3d7, 0x15d7, 0x3dc, 0x15e2, - 0x3e0, 0x15ee, 0x3e4, 0x15fa, 0x3e9, 0x1606, 0x3ed, 0x1612, - 0x3f1, 0x161d, 0x3f6, 0x1629, 0x3fa, 0x1635, 0x3fe, 0x1641, - 0x403, 0x164c, 0x407, 0x1658, 0x40b, 0x1664, 0x410, 0x1670, - 0x414, 0x167c, 0x419, 0x1687, 0x41d, 0x1693, 0x422, 0x169f, - 0x426, 0x16ab, 0x42a, 0x16b6, 0x42f, 0x16c2, 0x433, 0x16ce, - 0x438, 0x16da, 0x43c, 0x16e5, 0x441, 0x16f1, 0x445, 0x16fd, - 0x44a, 0x1709, 0x44e, 0x1714, 0x453, 0x1720, 0x457, 0x172c, - 0x45c, 0x1737, 0x461, 0x1743, 0x465, 0x174f, 0x46a, 0x175b, - 0x46e, 0x1766, 0x473, 0x1772, 0x478, 0x177e, 0x47c, 0x1789, - 0x481, 0x1795, 0x485, 0x17a1, 0x48a, 0x17ac, 0x48f, 0x17b8, - 0x493, 0x17c4, 0x498, 0x17cf, 0x49d, 0x17db, 0x4a1, 0x17e7, - 0x4a6, 0x17f2, 0x4ab, 0x17fe, 0x4b0, 0x180a, 0x4b4, 0x1815, - 0x4b9, 0x1821, 0x4be, 0x182d, 0x4c2, 0x1838, 0x4c7, 0x1844, - 0x4cc, 0x184f, 0x4d1, 0x185b, 0x4d6, 0x1867, 0x4da, 0x1872, - 0x4df, 0x187e, 0x4e4, 0x1889, 0x4e9, 0x1895, 0x4ee, 0x18a1, - 0x4f2, 0x18ac, 0x4f7, 0x18b8, 0x4fc, 0x18c3, 0x501, 0x18cf, - 0x506, 0x18db, 0x50b, 0x18e6, 0x510, 0x18f2, 0x515, 0x18fd, - 0x51a, 0x1909, 0x51e, 0x1914, 0x523, 0x1920, 0x528, 0x192c, - 0x52d, 0x1937, 0x532, 0x1943, 0x537, 0x194e, 0x53c, 0x195a, - 0x541, 0x1965, 0x546, 0x1971, 0x54b, 0x197c, 0x550, 0x1988, - 0x555, 0x1993, 0x55a, 0x199f, 0x55f, 0x19aa, 0x564, 0x19b6, - 0x569, 0x19c1, 0x56e, 0x19cd, 0x573, 0x19d8, 0x578, 0x19e4, - 0x57e, 0x19ef, 0x583, 0x19fb, 0x588, 0x1a06, 0x58d, 0x1a12, - 0x592, 0x1a1d, 0x597, 0x1a29, 0x59c, 0x1a34, 0x5a1, 0x1a40, - 0x5a7, 0x1a4b, 0x5ac, 0x1a57, 0x5b1, 0x1a62, 0x5b6, 0x1a6e, - 0x5bb, 0x1a79, 0x5c1, 0x1a84, 0x5c6, 0x1a90, 0x5cb, 0x1a9b, - 0x5d0, 0x1aa7, 0x5d5, 0x1ab2, 0x5db, 0x1abe, 0x5e0, 0x1ac9, - 0x5e5, 0x1ad4, 0x5ea, 0x1ae0, 0x5f0, 0x1aeb, 0x5f5, 0x1af7, - 0x5fa, 0x1b02, 0x600, 0x1b0d, 0x605, 0x1b19, 0x60a, 0x1b24, - 0x610, 0x1b30, 0x615, 0x1b3b, 0x61a, 0x1b46, 0x620, 0x1b52, - 0x625, 0x1b5d, 0x62a, 0x1b68, 0x630, 0x1b74, 0x635, 0x1b7f, - 0x63b, 0x1b8a, 0x640, 0x1b96, 0x645, 0x1ba1, 0x64b, 0x1bac, - 0x650, 0x1bb8, 0x656, 0x1bc3, 0x65b, 0x1bce, 0x661, 0x1bda, - 0x666, 0x1be5, 0x66c, 0x1bf0, 0x671, 0x1bfc, 0x677, 0x1c07, - 0x67c, 0x1c12, 0x682, 0x1c1e, 0x687, 0x1c29, 0x68d, 0x1c34, - 0x692, 0x1c3f, 0x698, 0x1c4b, 0x69d, 0x1c56, 0x6a3, 0x1c61, - 0x6a8, 0x1c6c, 0x6ae, 0x1c78, 0x6b4, 0x1c83, 0x6b9, 0x1c8e, - 0x6bf, 0x1c99, 0x6c5, 0x1ca5, 0x6ca, 0x1cb0, 0x6d0, 0x1cbb, - 0x6d5, 0x1cc6, 0x6db, 0x1cd2, 0x6e1, 0x1cdd, 0x6e6, 0x1ce8, - 0x6ec, 0x1cf3, 0x6f2, 0x1cff, 0x6f7, 0x1d0a, 0x6fd, 0x1d15, - 0x703, 0x1d20, 0x709, 0x1d2b, 0x70e, 0x1d36, 0x714, 0x1d42, - 0x71a, 0x1d4d, 0x720, 0x1d58, 0x725, 0x1d63, 0x72b, 0x1d6e, - 0x731, 0x1d79, 0x737, 0x1d85, 0x73d, 0x1d90, 0x742, 0x1d9b, - 0x748, 0x1da6, 0x74e, 0x1db1, 0x754, 0x1dbc, 0x75a, 0x1dc7, - 0x75f, 0x1dd3, 0x765, 0x1dde, 0x76b, 0x1de9, 0x771, 0x1df4, - 0x777, 0x1dff, 0x77d, 0x1e0a, 0x783, 0x1e15, 0x789, 0x1e20, - 0x78f, 0x1e2b, 0x795, 0x1e36, 0x79a, 0x1e42, 0x7a0, 0x1e4d, - 0x7a6, 0x1e58, 0x7ac, 0x1e63, 0x7b2, 0x1e6e, 0x7b8, 0x1e79, - 0x7be, 0x1e84, 0x7c4, 0x1e8f, 0x7ca, 0x1e9a, 0x7d0, 0x1ea5, - 0x7d6, 0x1eb0, 0x7dc, 0x1ebb, 0x7e2, 0x1ec6, 0x7e8, 0x1ed1, - 0x7ee, 0x1edc, 0x7f5, 0x1ee7, 0x7fb, 0x1ef2, 0x801, 0x1efd, - 0x807, 0x1f08, 0x80d, 0x1f13, 0x813, 0x1f1e, 0x819, 0x1f29, - 0x81f, 0x1f34, 0x825, 0x1f3f, 0x82b, 0x1f4a, 0x832, 0x1f55, - 0x838, 0x1f60, 0x83e, 0x1f6b, 0x844, 0x1f76, 0x84a, 0x1f81, - 0x850, 0x1f8c, 0x857, 0x1f97, 0x85d, 0x1fa2, 0x863, 0x1fac, - 0x869, 0x1fb7, 0x870, 0x1fc2, 0x876, 0x1fcd, 0x87c, 0x1fd8, - 0x882, 0x1fe3, 0x889, 0x1fee, 0x88f, 0x1ff9, 0x895, 0x2004, - 0x89b, 0x200f, 0x8a2, 0x2019, 0x8a8, 0x2024, 0x8ae, 0x202f, - 0x8b5, 0x203a, 0x8bb, 0x2045, 0x8c1, 0x2050, 0x8c8, 0x205b, - 0x8ce, 0x2065, 0x8d4, 0x2070, 0x8db, 0x207b, 0x8e1, 0x2086, - 0x8e8, 0x2091, 0x8ee, 0x209b, 0x8f4, 0x20a6, 0x8fb, 0x20b1, - 0x901, 0x20bc, 0x908, 0x20c7, 0x90e, 0x20d1, 0x915, 0x20dc, - 0x91b, 0x20e7, 0x921, 0x20f2, 0x928, 0x20fd, 0x92e, 0x2107, - 0x935, 0x2112, 0x93b, 0x211d, 0x942, 0x2128, 0x948, 0x2132, - 0x94f, 0x213d, 0x955, 0x2148, 0x95c, 0x2153, 0x963, 0x215d, - 0x969, 0x2168, 0x970, 0x2173, 0x976, 0x217d, 0x97d, 0x2188, - 0x983, 0x2193, 0x98a, 0x219e, 0x991, 0x21a8, 0x997, 0x21b3, - 0x99e, 0x21be, 0x9a4, 0x21c8, 0x9ab, 0x21d3, 0x9b2, 0x21de, - 0x9b8, 0x21e8, 0x9bf, 0x21f3, 0x9c6, 0x21fe, 0x9cc, 0x2208, - 0x9d3, 0x2213, 0x9da, 0x221e, 0x9e0, 0x2228, 0x9e7, 0x2233, - 0x9ee, 0x223d, 0x9f5, 0x2248, 0x9fb, 0x2253, 0xa02, 0x225d, - 0xa09, 0x2268, 0xa10, 0x2272, 0xa16, 0x227d, 0xa1d, 0x2288, - 0xa24, 0x2292, 0xa2b, 0x229d, 0xa32, 0x22a7, 0xa38, 0x22b2, - 0xa3f, 0x22bc, 0xa46, 0x22c7, 0xa4d, 0x22d2, 0xa54, 0x22dc, - 0xa5b, 0x22e7, 0xa61, 0x22f1, 0xa68, 0x22fc, 0xa6f, 0x2306, - 0xa76, 0x2311, 0xa7d, 0x231b, 0xa84, 0x2326, 0xa8b, 0x2330, - 0xa92, 0x233b, 0xa99, 0x2345, 0xa9f, 0x2350, 0xaa6, 0x235a, - 0xaad, 0x2365, 0xab4, 0x236f, 0xabb, 0x237a, 0xac2, 0x2384, - 0xac9, 0x238e, 0xad0, 0x2399, 0xad7, 0x23a3, 0xade, 0x23ae, - 0xae5, 0x23b8, 0xaec, 0x23c3, 0xaf3, 0x23cd, 0xafa, 0x23d7, - 0xb01, 0x23e2, 0xb08, 0x23ec, 0xb0f, 0x23f7, 0xb16, 0x2401, - 0xb1e, 0x240b, 0xb25, 0x2416, 0xb2c, 0x2420, 0xb33, 0x242b, - 0xb3a, 0x2435, 0xb41, 0x243f, 0xb48, 0x244a, 0xb4f, 0x2454, - 0xb56, 0x245e, 0xb5e, 0x2469, 0xb65, 0x2473, 0xb6c, 0x247d, - 0xb73, 0x2488, 0xb7a, 0x2492, 0xb81, 0x249c, 0xb89, 0x24a7, - 0xb90, 0x24b1, 0xb97, 0x24bb, 0xb9e, 0x24c5, 0xba5, 0x24d0, - 0xbad, 0x24da, 0xbb4, 0x24e4, 0xbbb, 0x24ef, 0xbc2, 0x24f9, - 0xbca, 0x2503, 0xbd1, 0x250d, 0xbd8, 0x2518, 0xbe0, 0x2522, - 0xbe7, 0x252c, 0xbee, 0x2536, 0xbf5, 0x2541, 0xbfd, 0x254b, - 0xc04, 0x2555, 0xc0b, 0x255f, 0xc13, 0x2569, 0xc1a, 0x2574, - 0xc21, 0x257e, 0xc29, 0x2588, 0xc30, 0x2592, 0xc38, 0x259c, - 0xc3f, 0x25a6, 0xc46, 0x25b1, 0xc4e, 0x25bb, 0xc55, 0x25c5, - 0xc5d, 0x25cf, 0xc64, 0x25d9, 0xc6b, 0x25e3, 0xc73, 0x25ed, - 0xc7a, 0x25f8, 0xc82, 0x2602, 0xc89, 0x260c, 0xc91, 0x2616, - 0xc98, 0x2620, 0xca0, 0x262a, 0xca7, 0x2634, 0xcaf, 0x263e, - 0xcb6, 0x2648, 0xcbe, 0x2652, 0xcc5, 0x265c, 0xccd, 0x2666, - 0xcd4, 0x2671, 0xcdc, 0x267b, 0xce3, 0x2685, 0xceb, 0x268f, - 0xcf3, 0x2699, 0xcfa, 0x26a3, 0xd02, 0x26ad, 0xd09, 0x26b7, - 0xd11, 0x26c1, 0xd19, 0x26cb, 0xd20, 0x26d5, 0xd28, 0x26df, - 0xd30, 0x26e9, 0xd37, 0x26f3, 0xd3f, 0x26fd, 0xd46, 0x2707, - 0xd4e, 0x2711, 0xd56, 0x271a, 0xd5d, 0x2724, 0xd65, 0x272e, - 0xd6d, 0x2738, 0xd75, 0x2742, 0xd7c, 0x274c, 0xd84, 0x2756, - 0xd8c, 0x2760, 0xd93, 0x276a, 0xd9b, 0x2774, 0xda3, 0x277e, - 0xdab, 0x2788, 0xdb2, 0x2791, 0xdba, 0x279b, 0xdc2, 0x27a5, - 0xdca, 0x27af, 0xdd2, 0x27b9, 0xdd9, 0x27c3, 0xde1, 0x27cd, - 0xde9, 0x27d6, 0xdf1, 0x27e0, 0xdf9, 0x27ea, 0xe01, 0x27f4, - 0xe08, 0x27fe, 0xe10, 0x2808, 0xe18, 0x2811, 0xe20, 0x281b, - 0xe28, 0x2825, 0xe30, 0x282f, 0xe38, 0x2838, 0xe40, 0x2842, - 0xe47, 0x284c, 0xe4f, 0x2856, 0xe57, 0x2860, 0xe5f, 0x2869, - 0xe67, 0x2873, 0xe6f, 0x287d, 0xe77, 0x2886, 0xe7f, 0x2890, - 0xe87, 0x289a, 0xe8f, 0x28a4, 0xe97, 0x28ad, 0xe9f, 0x28b7, - 0xea7, 0x28c1, 0xeaf, 0x28ca, 0xeb7, 0x28d4, 0xebf, 0x28de, - 0xec7, 0x28e7, 0xecf, 0x28f1, 0xed7, 0x28fb, 0xedf, 0x2904, - 0xee7, 0x290e, 0xeef, 0x2918, 0xef7, 0x2921, 0xeff, 0x292b, - 0xf07, 0x2935, 0xf10, 0x293e, 0xf18, 0x2948, 0xf20, 0x2951, - 0xf28, 0x295b, 0xf30, 0x2965, 0xf38, 0x296e, 0xf40, 0x2978, - 0xf48, 0x2981, 0xf51, 0x298b, 0xf59, 0x2994, 0xf61, 0x299e, - 0xf69, 0x29a7, 0xf71, 0x29b1, 0xf79, 0x29bb, 0xf82, 0x29c4, - 0xf8a, 0x29ce, 0xf92, 0x29d7, 0xf9a, 0x29e1, 0xfa3, 0x29ea, - 0xfab, 0x29f4, 0xfb3, 0x29fd, 0xfbb, 0x2a07, 0xfc4, 0x2a10, - 0xfcc, 0x2a1a, 0xfd4, 0x2a23, 0xfdc, 0x2a2c, 0xfe5, 0x2a36, - 0xfed, 0x2a3f, 0xff5, 0x2a49, 0xffe, 0x2a52, 0x1006, 0x2a5c, - 0x100e, 0x2a65, 0x1016, 0x2a6e, 0x101f, 0x2a78, 0x1027, 0x2a81, - 0x1030, 0x2a8b, 0x1038, 0x2a94, 0x1040, 0x2a9d, 0x1049, 0x2aa7, - 0x1051, 0x2ab0, 0x1059, 0x2ab9, 0x1062, 0x2ac3, 0x106a, 0x2acc, - 0x1073, 0x2ad6, 0x107b, 0x2adf, 0x1083, 0x2ae8, 0x108c, 0x2af2, - 0x1094, 0x2afb, 0x109d, 0x2b04, 0x10a5, 0x2b0d, 0x10ae, 0x2b17, - 0x10b6, 0x2b20, 0x10bf, 0x2b29, 0x10c7, 0x2b33, 0x10d0, 0x2b3c, - 0x10d8, 0x2b45, 0x10e0, 0x2b4e, 0x10e9, 0x2b58, 0x10f2, 0x2b61, - 0x10fa, 0x2b6a, 0x1103, 0x2b73, 0x110b, 0x2b7d, 0x1114, 0x2b86, - 0x111c, 0x2b8f, 0x1125, 0x2b98, 0x112d, 0x2ba1, 0x1136, 0x2bab, - 0x113e, 0x2bb4, 0x1147, 0x2bbd, 0x1150, 0x2bc6, 0x1158, 0x2bcf, - 0x1161, 0x2bd8, 0x1169, 0x2be2, 0x1172, 0x2beb, 0x117b, 0x2bf4, - 0x1183, 0x2bfd, 0x118c, 0x2c06, 0x1195, 0x2c0f, 0x119d, 0x2c18, - 0x11a6, 0x2c21, 0x11af, 0x2c2b, 0x11b7, 0x2c34, 0x11c0, 0x2c3d, - 0x11c9, 0x2c46, 0x11d1, 0x2c4f, 0x11da, 0x2c58, 0x11e3, 0x2c61, - 0x11eb, 0x2c6a, 0x11f4, 0x2c73, 0x11fd, 0x2c7c, 0x1206, 0x2c85, - 0x120e, 0x2c8e, 0x1217, 0x2c97, 0x1220, 0x2ca0, 0x1229, 0x2ca9, - 0x1231, 0x2cb2, 0x123a, 0x2cbb, 0x1243, 0x2cc4, 0x124c, 0x2ccd, - 0x1255, 0x2cd6, 0x125d, 0x2cdf, 0x1266, 0x2ce8, 0x126f, 0x2cf1, - 0x1278, 0x2cfa, 0x1281, 0x2d03, 0x128a, 0x2d0c, 0x1292, 0x2d15, - 0x129b, 0x2d1e, 0x12a4, 0x2d27, 0x12ad, 0x2d2f, 0x12b6, 0x2d38, - 0x12bf, 0x2d41, 0x12c8, 0x2d4a, 0x12d1, 0x2d53, 0x12d9, 0x2d5c, - 0x12e2, 0x2d65, 0x12eb, 0x2d6e, 0x12f4, 0x2d76, 0x12fd, 0x2d7f, - 0x1306, 0x2d88, 0x130f, 0x2d91, 0x1318, 0x2d9a, 0x1321, 0x2da3, - 0x132a, 0x2dab, 0x1333, 0x2db4, 0x133c, 0x2dbd, 0x1345, 0x2dc6, - 0x134e, 0x2dcf, 0x1357, 0x2dd7, 0x1360, 0x2de0, 0x1369, 0x2de9, - 0x1372, 0x2df2, 0x137b, 0x2dfa, 0x1384, 0x2e03, 0x138d, 0x2e0c, - 0x1396, 0x2e15, 0x139f, 0x2e1d, 0x13a8, 0x2e26, 0x13b1, 0x2e2f, - 0x13ba, 0x2e37, 0x13c3, 0x2e40, 0x13cc, 0x2e49, 0x13d5, 0x2e51, - 0x13df, 0x2e5a, 0x13e8, 0x2e63, 0x13f1, 0x2e6b, 0x13fa, 0x2e74, - 0x1403, 0x2e7d, 0x140c, 0x2e85, 0x1415, 0x2e8e, 0x141e, 0x2e97, - 0x1428, 0x2e9f, 0x1431, 0x2ea8, 0x143a, 0x2eb0, 0x1443, 0x2eb9, - 0x144c, 0x2ec2, 0x1455, 0x2eca, 0x145f, 0x2ed3, 0x1468, 0x2edb, - 0x1471, 0x2ee4, 0x147a, 0x2eec, 0x1483, 0x2ef5, 0x148d, 0x2efd, - 0x1496, 0x2f06, 0x149f, 0x2f0e, 0x14a8, 0x2f17, 0x14b2, 0x2f20, - 0x14bb, 0x2f28, 0x14c4, 0x2f30, 0x14cd, 0x2f39, 0x14d7, 0x2f41, - 0x14e0, 0x2f4a, 0x14e9, 0x2f52, 0x14f3, 0x2f5b, 0x14fc, 0x2f63, - 0x1505, 0x2f6c, 0x150e, 0x2f74, 0x1518, 0x2f7d, 0x1521, 0x2f85, - 0x152a, 0x2f8d, 0x1534, 0x2f96, 0x153d, 0x2f9e, 0x1547, 0x2fa7, - 0x1550, 0x2faf, 0x1559, 0x2fb7, 0x1563, 0x2fc0, 0x156c, 0x2fc8, - 0x1575, 0x2fd0, 0x157f, 0x2fd9, 0x1588, 0x2fe1, 0x1592, 0x2fea, - 0x159b, 0x2ff2, 0x15a4, 0x2ffa, 0x15ae, 0x3002, 0x15b7, 0x300b, - 0x15c1, 0x3013, 0x15ca, 0x301b, 0x15d4, 0x3024, 0x15dd, 0x302c, - 0x15e6, 0x3034, 0x15f0, 0x303c, 0x15f9, 0x3045, 0x1603, 0x304d, - 0x160c, 0x3055, 0x1616, 0x305d, 0x161f, 0x3066, 0x1629, 0x306e, - 0x1632, 0x3076, 0x163c, 0x307e, 0x1645, 0x3087, 0x164f, 0x308f, - 0x1659, 0x3097, 0x1662, 0x309f, 0x166c, 0x30a7, 0x1675, 0x30af, - 0x167f, 0x30b8, 0x1688, 0x30c0, 0x1692, 0x30c8, 0x169b, 0x30d0, - 0x16a5, 0x30d8, 0x16af, 0x30e0, 0x16b8, 0x30e8, 0x16c2, 0x30f0, - 0x16cb, 0x30f9, 0x16d5, 0x3101, 0x16df, 0x3109, 0x16e8, 0x3111, - 0x16f2, 0x3119, 0x16fc, 0x3121, 0x1705, 0x3129, 0x170f, 0x3131, - 0x1719, 0x3139, 0x1722, 0x3141, 0x172c, 0x3149, 0x1736, 0x3151, - 0x173f, 0x3159, 0x1749, 0x3161, 0x1753, 0x3169, 0x175c, 0x3171, - 0x1766, 0x3179, 0x1770, 0x3181, 0x177a, 0x3189, 0x1783, 0x3191, - 0x178d, 0x3199, 0x1797, 0x31a1, 0x17a0, 0x31a9, 0x17aa, 0x31b1, - 0x17b4, 0x31b9, 0x17be, 0x31c0, 0x17c8, 0x31c8, 0x17d1, 0x31d0, - 0x17db, 0x31d8, 0x17e5, 0x31e0, 0x17ef, 0x31e8, 0x17f8, 0x31f0, - 0x1802, 0x31f8, 0x180c, 0x31ff, 0x1816, 0x3207, 0x1820, 0x320f, - 0x182a, 0x3217, 0x1833, 0x321f, 0x183d, 0x3227, 0x1847, 0x322e, - 0x1851, 0x3236, 0x185b, 0x323e, 0x1865, 0x3246, 0x186f, 0x324e, - 0x1878, 0x3255, 0x1882, 0x325d, 0x188c, 0x3265, 0x1896, 0x326d, - 0x18a0, 0x3274, 0x18aa, 0x327c, 0x18b4, 0x3284, 0x18be, 0x328b, - 0x18c8, 0x3293, 0x18d2, 0x329b, 0x18dc, 0x32a3, 0x18e6, 0x32aa, - 0x18ef, 0x32b2, 0x18f9, 0x32ba, 0x1903, 0x32c1, 0x190d, 0x32c9, - 0x1917, 0x32d0, 0x1921, 0x32d8, 0x192b, 0x32e0, 0x1935, 0x32e7, - 0x193f, 0x32ef, 0x1949, 0x32f7, 0x1953, 0x32fe, 0x195d, 0x3306, - 0x1967, 0x330d, 0x1971, 0x3315, 0x197b, 0x331d, 0x1985, 0x3324, - 0x198f, 0x332c, 0x199a, 0x3333, 0x19a4, 0x333b, 0x19ae, 0x3342, - 0x19b8, 0x334a, 0x19c2, 0x3351, 0x19cc, 0x3359, 0x19d6, 0x3360, - 0x19e0, 0x3368, 0x19ea, 0x336f, 0x19f4, 0x3377, 0x19fe, 0x337e, - 0x1a08, 0x3386, 0x1a13, 0x338d, 0x1a1d, 0x3395, 0x1a27, 0x339c, - 0x1a31, 0x33a3, 0x1a3b, 0x33ab, 0x1a45, 0x33b2, 0x1a4f, 0x33ba, - 0x1a5a, 0x33c1, 0x1a64, 0x33c8, 0x1a6e, 0x33d0, 0x1a78, 0x33d7, - 0x1a82, 0x33df, 0x1a8c, 0x33e6, 0x1a97, 0x33ed, 0x1aa1, 0x33f5, - 0x1aab, 0x33fc, 0x1ab5, 0x3403, 0x1abf, 0x340b, 0x1aca, 0x3412, - 0x1ad4, 0x3419, 0x1ade, 0x3420, 0x1ae8, 0x3428, 0x1af3, 0x342f, - 0x1afd, 0x3436, 0x1b07, 0x343e, 0x1b11, 0x3445, 0x1b1c, 0x344c, - 0x1b26, 0x3453, 0x1b30, 0x345b, 0x1b3b, 0x3462, 0x1b45, 0x3469, - 0x1b4f, 0x3470, 0x1b59, 0x3477, 0x1b64, 0x347f, 0x1b6e, 0x3486, - 0x1b78, 0x348d, 0x1b83, 0x3494, 0x1b8d, 0x349b, 0x1b97, 0x34a2, - 0x1ba2, 0x34aa, 0x1bac, 0x34b1, 0x1bb6, 0x34b8, 0x1bc1, 0x34bf, - 0x1bcb, 0x34c6, 0x1bd5, 0x34cd, 0x1be0, 0x34d4, 0x1bea, 0x34db, - 0x1bf5, 0x34e2, 0x1bff, 0x34ea, 0x1c09, 0x34f1, 0x1c14, 0x34f8, - 0x1c1e, 0x34ff, 0x1c29, 0x3506, 0x1c33, 0x350d, 0x1c3d, 0x3514, - 0x1c48, 0x351b, 0x1c52, 0x3522, 0x1c5d, 0x3529, 0x1c67, 0x3530, - 0x1c72, 0x3537, 0x1c7c, 0x353e, 0x1c86, 0x3545, 0x1c91, 0x354c, - 0x1c9b, 0x3553, 0x1ca6, 0x355a, 0x1cb0, 0x3561, 0x1cbb, 0x3567, - 0x1cc5, 0x356e, 0x1cd0, 0x3575, 0x1cda, 0x357c, 0x1ce5, 0x3583, - 0x1cef, 0x358a, 0x1cfa, 0x3591, 0x1d04, 0x3598, 0x1d0f, 0x359f, - 0x1d19, 0x35a5, 0x1d24, 0x35ac, 0x1d2e, 0x35b3, 0x1d39, 0x35ba, - 0x1d44, 0x35c1, 0x1d4e, 0x35c8, 0x1d59, 0x35ce, 0x1d63, 0x35d5, - 0x1d6e, 0x35dc, 0x1d78, 0x35e3, 0x1d83, 0x35ea, 0x1d8e, 0x35f0, - 0x1d98, 0x35f7, 0x1da3, 0x35fe, 0x1dad, 0x3605, 0x1db8, 0x360b, - 0x1dc3, 0x3612, 0x1dcd, 0x3619, 0x1dd8, 0x3620, 0x1de2, 0x3626, - 0x1ded, 0x362d, 0x1df8, 0x3634, 0x1e02, 0x363a, 0x1e0d, 0x3641, - 0x1e18, 0x3648, 0x1e22, 0x364e, 0x1e2d, 0x3655, 0x1e38, 0x365c, - 0x1e42, 0x3662, 0x1e4d, 0x3669, 0x1e58, 0x366f, 0x1e62, 0x3676, - 0x1e6d, 0x367d, 0x1e78, 0x3683, 0x1e83, 0x368a, 0x1e8d, 0x3690, - 0x1e98, 0x3697, 0x1ea3, 0x369d, 0x1ead, 0x36a4, 0x1eb8, 0x36ab, - 0x1ec3, 0x36b1, 0x1ece, 0x36b8, 0x1ed8, 0x36be, 0x1ee3, 0x36c5, - 0x1eee, 0x36cb, 0x1ef9, 0x36d2, 0x1f03, 0x36d8, 0x1f0e, 0x36df, - 0x1f19, 0x36e5, 0x1f24, 0x36eb, 0x1f2f, 0x36f2, 0x1f39, 0x36f8, - 0x1f44, 0x36ff, 0x1f4f, 0x3705, 0x1f5a, 0x370c, 0x1f65, 0x3712, - 0x1f6f, 0x3718, 0x1f7a, 0x371f, 0x1f85, 0x3725, 0x1f90, 0x372c, - 0x1f9b, 0x3732, 0x1fa5, 0x3738, 0x1fb0, 0x373f, 0x1fbb, 0x3745, - 0x1fc6, 0x374b, 0x1fd1, 0x3752, 0x1fdc, 0x3758, 0x1fe7, 0x375e, - 0x1ff1, 0x3765, 0x1ffc, 0x376b, 0x2007, 0x3771, 0x2012, 0x3777, - 0x201d, 0x377e, 0x2028, 0x3784, 0x2033, 0x378a, 0x203e, 0x3790, - 0x2049, 0x3797, 0x2054, 0x379d, 0x205e, 0x37a3, 0x2069, 0x37a9, - 0x2074, 0x37b0, 0x207f, 0x37b6, 0x208a, 0x37bc, 0x2095, 0x37c2, - 0x20a0, 0x37c8, 0x20ab, 0x37ce, 0x20b6, 0x37d5, 0x20c1, 0x37db, - 0x20cc, 0x37e1, 0x20d7, 0x37e7, 0x20e2, 0x37ed, 0x20ed, 0x37f3, - 0x20f8, 0x37f9, 0x2103, 0x37ff, 0x210e, 0x3805, 0x2119, 0x380b, - 0x2124, 0x3812, 0x212f, 0x3818, 0x213a, 0x381e, 0x2145, 0x3824, - 0x2150, 0x382a, 0x215b, 0x3830, 0x2166, 0x3836, 0x2171, 0x383c, - 0x217c, 0x3842, 0x2187, 0x3848, 0x2192, 0x384e, 0x219d, 0x3854, - 0x21a8, 0x385a, 0x21b3, 0x3860, 0x21be, 0x3866, 0x21ca, 0x386b, - 0x21d5, 0x3871, 0x21e0, 0x3877, 0x21eb, 0x387d, 0x21f6, 0x3883, - 0x2201, 0x3889, 0x220c, 0x388f, 0x2217, 0x3895, 0x2222, 0x389b, - 0x222d, 0x38a1, 0x2239, 0x38a6, 0x2244, 0x38ac, 0x224f, 0x38b2, - 0x225a, 0x38b8, 0x2265, 0x38be, 0x2270, 0x38c3, 0x227b, 0x38c9, - 0x2287, 0x38cf, 0x2292, 0x38d5, 0x229d, 0x38db, 0x22a8, 0x38e0, - 0x22b3, 0x38e6, 0x22be, 0x38ec, 0x22ca, 0x38f2, 0x22d5, 0x38f7, - 0x22e0, 0x38fd, 0x22eb, 0x3903, 0x22f6, 0x3909, 0x2301, 0x390e, - 0x230d, 0x3914, 0x2318, 0x391a, 0x2323, 0x391f, 0x232e, 0x3925, - 0x233a, 0x392b, 0x2345, 0x3930, 0x2350, 0x3936, 0x235b, 0x393b, - 0x2367, 0x3941, 0x2372, 0x3947, 0x237d, 0x394c, 0x2388, 0x3952, - 0x2394, 0x3958, 0x239f, 0x395d, 0x23aa, 0x3963, 0x23b5, 0x3968, - 0x23c1, 0x396e, 0x23cc, 0x3973, 0x23d7, 0x3979, 0x23e2, 0x397e, - 0x23ee, 0x3984, 0x23f9, 0x3989, 0x2404, 0x398f, 0x2410, 0x3994, - 0x241b, 0x399a, 0x2426, 0x399f, 0x2432, 0x39a5, 0x243d, 0x39aa, - 0x2448, 0x39b0, 0x2454, 0x39b5, 0x245f, 0x39bb, 0x246a, 0x39c0, - 0x2476, 0x39c5, 0x2481, 0x39cb, 0x248c, 0x39d0, 0x2498, 0x39d6, - 0x24a3, 0x39db, 0x24ae, 0x39e0, 0x24ba, 0x39e6, 0x24c5, 0x39eb, - 0x24d0, 0x39f0, 0x24dc, 0x39f6, 0x24e7, 0x39fb, 0x24f3, 0x3a00, - 0x24fe, 0x3a06, 0x2509, 0x3a0b, 0x2515, 0x3a10, 0x2520, 0x3a16, - 0x252c, 0x3a1b, 0x2537, 0x3a20, 0x2542, 0x3a25, 0x254e, 0x3a2b, - 0x2559, 0x3a30, 0x2565, 0x3a35, 0x2570, 0x3a3a, 0x257c, 0x3a3f, - 0x2587, 0x3a45, 0x2592, 0x3a4a, 0x259e, 0x3a4f, 0x25a9, 0x3a54, - 0x25b5, 0x3a59, 0x25c0, 0x3a5f, 0x25cc, 0x3a64, 0x25d7, 0x3a69, - 0x25e3, 0x3a6e, 0x25ee, 0x3a73, 0x25fa, 0x3a78, 0x2605, 0x3a7d, - 0x2611, 0x3a82, 0x261c, 0x3a88, 0x2628, 0x3a8d, 0x2633, 0x3a92, - 0x263f, 0x3a97, 0x264a, 0x3a9c, 0x2656, 0x3aa1, 0x2661, 0x3aa6, - 0x266d, 0x3aab, 0x2678, 0x3ab0, 0x2684, 0x3ab5, 0x268f, 0x3aba, - 0x269b, 0x3abf, 0x26a6, 0x3ac4, 0x26b2, 0x3ac9, 0x26bd, 0x3ace, - 0x26c9, 0x3ad3, 0x26d4, 0x3ad8, 0x26e0, 0x3add, 0x26ec, 0x3ae2, - 0x26f7, 0x3ae6, 0x2703, 0x3aeb, 0x270e, 0x3af0, 0x271a, 0x3af5, - 0x2725, 0x3afa, 0x2731, 0x3aff, 0x273d, 0x3b04, 0x2748, 0x3b09, - 0x2754, 0x3b0e, 0x275f, 0x3b12, 0x276b, 0x3b17, 0x2777, 0x3b1c, - 0x2782, 0x3b21, 0x278e, 0x3b26, 0x2799, 0x3b2a, 0x27a5, 0x3b2f, - 0x27b1, 0x3b34, 0x27bc, 0x3b39, 0x27c8, 0x3b3e, 0x27d3, 0x3b42, - 0x27df, 0x3b47, 0x27eb, 0x3b4c, 0x27f6, 0x3b50, 0x2802, 0x3b55, - 0x280e, 0x3b5a, 0x2819, 0x3b5f, 0x2825, 0x3b63, 0x2831, 0x3b68, - 0x283c, 0x3b6d, 0x2848, 0x3b71, 0x2854, 0x3b76, 0x285f, 0x3b7b, - 0x286b, 0x3b7f, 0x2877, 0x3b84, 0x2882, 0x3b88, 0x288e, 0x3b8d, - 0x289a, 0x3b92, 0x28a5, 0x3b96, 0x28b1, 0x3b9b, 0x28bd, 0x3b9f, - 0x28c9, 0x3ba4, 0x28d4, 0x3ba9, 0x28e0, 0x3bad, 0x28ec, 0x3bb2, - 0x28f7, 0x3bb6, 0x2903, 0x3bbb, 0x290f, 0x3bbf, 0x291b, 0x3bc4, - 0x2926, 0x3bc8, 0x2932, 0x3bcd, 0x293e, 0x3bd1, 0x294a, 0x3bd6, - 0x2955, 0x3bda, 0x2961, 0x3bde, 0x296d, 0x3be3, 0x2979, 0x3be7, - 0x2984, 0x3bec, 0x2990, 0x3bf0, 0x299c, 0x3bf5, 0x29a8, 0x3bf9, - 0x29b4, 0x3bfd, 0x29bf, 0x3c02, 0x29cb, 0x3c06, 0x29d7, 0x3c0a, - 0x29e3, 0x3c0f, 0x29ee, 0x3c13, 0x29fa, 0x3c17, 0x2a06, 0x3c1c, - 0x2a12, 0x3c20, 0x2a1e, 0x3c24, 0x2a29, 0x3c29, 0x2a35, 0x3c2d, - 0x2a41, 0x3c31, 0x2a4d, 0x3c36, 0x2a59, 0x3c3a, 0x2a65, 0x3c3e, - 0x2a70, 0x3c42, 0x2a7c, 0x3c46, 0x2a88, 0x3c4b, 0x2a94, 0x3c4f, - 0x2aa0, 0x3c53, 0x2aac, 0x3c57, 0x2ab7, 0x3c5b, 0x2ac3, 0x3c60, - 0x2acf, 0x3c64, 0x2adb, 0x3c68, 0x2ae7, 0x3c6c, 0x2af3, 0x3c70, - 0x2aff, 0x3c74, 0x2b0a, 0x3c79, 0x2b16, 0x3c7d, 0x2b22, 0x3c81, - 0x2b2e, 0x3c85, 0x2b3a, 0x3c89, 0x2b46, 0x3c8d, 0x2b52, 0x3c91, - 0x2b5e, 0x3c95, 0x2b6a, 0x3c99, 0x2b75, 0x3c9d, 0x2b81, 0x3ca1, - 0x2b8d, 0x3ca5, 0x2b99, 0x3ca9, 0x2ba5, 0x3cad, 0x2bb1, 0x3cb1, - 0x2bbd, 0x3cb5, 0x2bc9, 0x3cb9, 0x2bd5, 0x3cbd, 0x2be1, 0x3cc1, - 0x2bed, 0x3cc5, 0x2bf9, 0x3cc9, 0x2c05, 0x3ccd, 0x2c10, 0x3cd1, - 0x2c1c, 0x3cd5, 0x2c28, 0x3cd9, 0x2c34, 0x3cdd, 0x2c40, 0x3ce0, - 0x2c4c, 0x3ce4, 0x2c58, 0x3ce8, 0x2c64, 0x3cec, 0x2c70, 0x3cf0, - 0x2c7c, 0x3cf4, 0x2c88, 0x3cf8, 0x2c94, 0x3cfb, 0x2ca0, 0x3cff, - 0x2cac, 0x3d03, 0x2cb8, 0x3d07, 0x2cc4, 0x3d0b, 0x2cd0, 0x3d0e, - 0x2cdc, 0x3d12, 0x2ce8, 0x3d16, 0x2cf4, 0x3d1a, 0x2d00, 0x3d1d, - 0x2d0c, 0x3d21, 0x2d18, 0x3d25, 0x2d24, 0x3d28, 0x2d30, 0x3d2c, - 0x2d3c, 0x3d30, 0x2d48, 0x3d34, 0x2d54, 0x3d37, 0x2d60, 0x3d3b, - 0x2d6c, 0x3d3f, 0x2d78, 0x3d42, 0x2d84, 0x3d46, 0x2d90, 0x3d49, - 0x2d9c, 0x3d4d, 0x2da8, 0x3d51, 0x2db4, 0x3d54, 0x2dc0, 0x3d58, - 0x2dcc, 0x3d5b, 0x2dd8, 0x3d5f, 0x2de4, 0x3d63, 0x2df0, 0x3d66, - 0x2dfc, 0x3d6a, 0x2e09, 0x3d6d, 0x2e15, 0x3d71, 0x2e21, 0x3d74, - 0x2e2d, 0x3d78, 0x2e39, 0x3d7b, 0x2e45, 0x3d7f, 0x2e51, 0x3d82, - 0x2e5d, 0x3d86, 0x2e69, 0x3d89, 0x2e75, 0x3d8d, 0x2e81, 0x3d90, - 0x2e8d, 0x3d93, 0x2e99, 0x3d97, 0x2ea6, 0x3d9a, 0x2eb2, 0x3d9e, - 0x2ebe, 0x3da1, 0x2eca, 0x3da4, 0x2ed6, 0x3da8, 0x2ee2, 0x3dab, - 0x2eee, 0x3daf, 0x2efa, 0x3db2, 0x2f06, 0x3db5, 0x2f13, 0x3db9, - 0x2f1f, 0x3dbc, 0x2f2b, 0x3dbf, 0x2f37, 0x3dc2, 0x2f43, 0x3dc6, - 0x2f4f, 0x3dc9, 0x2f5b, 0x3dcc, 0x2f67, 0x3dd0, 0x2f74, 0x3dd3, - 0x2f80, 0x3dd6, 0x2f8c, 0x3dd9, 0x2f98, 0x3ddd, 0x2fa4, 0x3de0, - 0x2fb0, 0x3de3, 0x2fbc, 0x3de6, 0x2fc9, 0x3de9, 0x2fd5, 0x3ded, - 0x2fe1, 0x3df0, 0x2fed, 0x3df3, 0x2ff9, 0x3df6, 0x3005, 0x3df9, - 0x3012, 0x3dfc, 0x301e, 0x3dff, 0x302a, 0x3e03, 0x3036, 0x3e06, - 0x3042, 0x3e09, 0x304e, 0x3e0c, 0x305b, 0x3e0f, 0x3067, 0x3e12, - 0x3073, 0x3e15, 0x307f, 0x3e18, 0x308b, 0x3e1b, 0x3098, 0x3e1e, - 0x30a4, 0x3e21, 0x30b0, 0x3e24, 0x30bc, 0x3e27, 0x30c8, 0x3e2a, - 0x30d5, 0x3e2d, 0x30e1, 0x3e30, 0x30ed, 0x3e33, 0x30f9, 0x3e36, - 0x3105, 0x3e39, 0x3112, 0x3e3c, 0x311e, 0x3e3f, 0x312a, 0x3e42, - 0x3136, 0x3e45, 0x3143, 0x3e48, 0x314f, 0x3e4a, 0x315b, 0x3e4d, - 0x3167, 0x3e50, 0x3174, 0x3e53, 0x3180, 0x3e56, 0x318c, 0x3e59, - 0x3198, 0x3e5c, 0x31a4, 0x3e5e, 0x31b1, 0x3e61, 0x31bd, 0x3e64, - 0x31c9, 0x3e67, 0x31d5, 0x3e6a, 0x31e2, 0x3e6c, 0x31ee, 0x3e6f, - 0x31fa, 0x3e72, 0x3207, 0x3e75, 0x3213, 0x3e77, 0x321f, 0x3e7a, - 0x322b, 0x3e7d, 0x3238, 0x3e80, 0x3244, 0x3e82, 0x3250, 0x3e85, - 0x325c, 0x3e88, 0x3269, 0x3e8a, 0x3275, 0x3e8d, 0x3281, 0x3e90, - 0x328e, 0x3e92, 0x329a, 0x3e95, 0x32a6, 0x3e98, 0x32b2, 0x3e9a, - 0x32bf, 0x3e9d, 0x32cb, 0x3e9f, 0x32d7, 0x3ea2, 0x32e4, 0x3ea5, - 0x32f0, 0x3ea7, 0x32fc, 0x3eaa, 0x3308, 0x3eac, 0x3315, 0x3eaf, - 0x3321, 0x3eb1, 0x332d, 0x3eb4, 0x333a, 0x3eb6, 0x3346, 0x3eb9, - 0x3352, 0x3ebb, 0x335f, 0x3ebe, 0x336b, 0x3ec0, 0x3377, 0x3ec3, - 0x3384, 0x3ec5, 0x3390, 0x3ec8, 0x339c, 0x3eca, 0x33a9, 0x3ecc, - 0x33b5, 0x3ecf, 0x33c1, 0x3ed1, 0x33ce, 0x3ed4, 0x33da, 0x3ed6, - 0x33e6, 0x3ed8, 0x33f3, 0x3edb, 0x33ff, 0x3edd, 0x340b, 0x3ee0, - 0x3418, 0x3ee2, 0x3424, 0x3ee4, 0x3430, 0x3ee7, 0x343d, 0x3ee9, - 0x3449, 0x3eeb, 0x3455, 0x3eed, 0x3462, 0x3ef0, 0x346e, 0x3ef2, - 0x347b, 0x3ef4, 0x3487, 0x3ef7, 0x3493, 0x3ef9, 0x34a0, 0x3efb, - 0x34ac, 0x3efd, 0x34b8, 0x3f00, 0x34c5, 0x3f02, 0x34d1, 0x3f04, - 0x34dd, 0x3f06, 0x34ea, 0x3f08, 0x34f6, 0x3f0a, 0x3503, 0x3f0d, - 0x350f, 0x3f0f, 0x351b, 0x3f11, 0x3528, 0x3f13, 0x3534, 0x3f15, - 0x3540, 0x3f17, 0x354d, 0x3f19, 0x3559, 0x3f1c, 0x3566, 0x3f1e, - 0x3572, 0x3f20, 0x357e, 0x3f22, 0x358b, 0x3f24, 0x3597, 0x3f26, - 0x35a4, 0x3f28, 0x35b0, 0x3f2a, 0x35bc, 0x3f2c, 0x35c9, 0x3f2e, - 0x35d5, 0x3f30, 0x35e2, 0x3f32, 0x35ee, 0x3f34, 0x35fa, 0x3f36, - 0x3607, 0x3f38, 0x3613, 0x3f3a, 0x3620, 0x3f3c, 0x362c, 0x3f3e, - 0x3639, 0x3f40, 0x3645, 0x3f42, 0x3651, 0x3f43, 0x365e, 0x3f45, - 0x366a, 0x3f47, 0x3677, 0x3f49, 0x3683, 0x3f4b, 0x3690, 0x3f4d, - 0x369c, 0x3f4f, 0x36a8, 0x3f51, 0x36b5, 0x3f52, 0x36c1, 0x3f54, - 0x36ce, 0x3f56, 0x36da, 0x3f58, 0x36e7, 0x3f5a, 0x36f3, 0x3f5b, - 0x36ff, 0x3f5d, 0x370c, 0x3f5f, 0x3718, 0x3f61, 0x3725, 0x3f62, - 0x3731, 0x3f64, 0x373e, 0x3f66, 0x374a, 0x3f68, 0x3757, 0x3f69, - 0x3763, 0x3f6b, 0x376f, 0x3f6d, 0x377c, 0x3f6e, 0x3788, 0x3f70, - 0x3795, 0x3f72, 0x37a1, 0x3f73, 0x37ae, 0x3f75, 0x37ba, 0x3f77, - 0x37c7, 0x3f78, 0x37d3, 0x3f7a, 0x37e0, 0x3f7b, 0x37ec, 0x3f7d, - 0x37f9, 0x3f7f, 0x3805, 0x3f80, 0x3811, 0x3f82, 0x381e, 0x3f83, - 0x382a, 0x3f85, 0x3837, 0x3f86, 0x3843, 0x3f88, 0x3850, 0x3f89, - 0x385c, 0x3f8b, 0x3869, 0x3f8c, 0x3875, 0x3f8e, 0x3882, 0x3f8f, - 0x388e, 0x3f91, 0x389b, 0x3f92, 0x38a7, 0x3f94, 0x38b4, 0x3f95, - 0x38c0, 0x3f97, 0x38cd, 0x3f98, 0x38d9, 0x3f99, 0x38e6, 0x3f9b, - 0x38f2, 0x3f9c, 0x38ff, 0x3f9e, 0x390b, 0x3f9f, 0x3918, 0x3fa0, - 0x3924, 0x3fa2, 0x3931, 0x3fa3, 0x393d, 0x3fa4, 0x394a, 0x3fa6, - 0x3956, 0x3fa7, 0x3963, 0x3fa8, 0x396f, 0x3faa, 0x397c, 0x3fab, - 0x3988, 0x3fac, 0x3995, 0x3fad, 0x39a1, 0x3faf, 0x39ae, 0x3fb0, - 0x39ba, 0x3fb1, 0x39c7, 0x3fb2, 0x39d3, 0x3fb4, 0x39e0, 0x3fb5, - 0x39ec, 0x3fb6, 0x39f9, 0x3fb7, 0x3a05, 0x3fb8, 0x3a12, 0x3fb9, - 0x3a1e, 0x3fbb, 0x3a2b, 0x3fbc, 0x3a37, 0x3fbd, 0x3a44, 0x3fbe, - 0x3a50, 0x3fbf, 0x3a5d, 0x3fc0, 0x3a69, 0x3fc1, 0x3a76, 0x3fc3, - 0x3a82, 0x3fc4, 0x3a8f, 0x3fc5, 0x3a9b, 0x3fc6, 0x3aa8, 0x3fc7, - 0x3ab4, 0x3fc8, 0x3ac1, 0x3fc9, 0x3acd, 0x3fca, 0x3ada, 0x3fcb, - 0x3ae6, 0x3fcc, 0x3af3, 0x3fcd, 0x3b00, 0x3fce, 0x3b0c, 0x3fcf, - 0x3b19, 0x3fd0, 0x3b25, 0x3fd1, 0x3b32, 0x3fd2, 0x3b3e, 0x3fd3, - 0x3b4b, 0x3fd4, 0x3b57, 0x3fd5, 0x3b64, 0x3fd5, 0x3b70, 0x3fd6, - 0x3b7d, 0x3fd7, 0x3b89, 0x3fd8, 0x3b96, 0x3fd9, 0x3ba2, 0x3fda, - 0x3baf, 0x3fdb, 0x3bbc, 0x3fdc, 0x3bc8, 0x3fdc, 0x3bd5, 0x3fdd, - 0x3be1, 0x3fde, 0x3bee, 0x3fdf, 0x3bfa, 0x3fe0, 0x3c07, 0x3fe0, - 0x3c13, 0x3fe1, 0x3c20, 0x3fe2, 0x3c2c, 0x3fe3, 0x3c39, 0x3fe3, - 0x3c45, 0x3fe4, 0x3c52, 0x3fe5, 0x3c5f, 0x3fe6, 0x3c6b, 0x3fe6, - 0x3c78, 0x3fe7, 0x3c84, 0x3fe8, 0x3c91, 0x3fe8, 0x3c9d, 0x3fe9, - 0x3caa, 0x3fea, 0x3cb6, 0x3fea, 0x3cc3, 0x3feb, 0x3cd0, 0x3fec, - 0x3cdc, 0x3fec, 0x3ce9, 0x3fed, 0x3cf5, 0x3fed, 0x3d02, 0x3fee, - 0x3d0e, 0x3fef, 0x3d1b, 0x3fef, 0x3d27, 0x3ff0, 0x3d34, 0x3ff0, - 0x3d40, 0x3ff1, 0x3d4d, 0x3ff1, 0x3d5a, 0x3ff2, 0x3d66, 0x3ff2, - 0x3d73, 0x3ff3, 0x3d7f, 0x3ff3, 0x3d8c, 0x3ff4, 0x3d98, 0x3ff4, - 0x3da5, 0x3ff5, 0x3db2, 0x3ff5, 0x3dbe, 0x3ff6, 0x3dcb, 0x3ff6, - 0x3dd7, 0x3ff7, 0x3de4, 0x3ff7, 0x3df0, 0x3ff7, 0x3dfd, 0x3ff8, - 0x3e09, 0x3ff8, 0x3e16, 0x3ff9, 0x3e23, 0x3ff9, 0x3e2f, 0x3ff9, - 0x3e3c, 0x3ffa, 0x3e48, 0x3ffa, 0x3e55, 0x3ffa, 0x3e61, 0x3ffb, - 0x3e6e, 0x3ffb, 0x3e7a, 0x3ffb, 0x3e87, 0x3ffc, 0x3e94, 0x3ffc, - 0x3ea0, 0x3ffc, 0x3ead, 0x3ffc, 0x3eb9, 0x3ffd, 0x3ec6, 0x3ffd, - 0x3ed2, 0x3ffd, 0x3edf, 0x3ffd, 0x3eec, 0x3ffe, 0x3ef8, 0x3ffe, - 0x3f05, 0x3ffe, 0x3f11, 0x3ffe, 0x3f1e, 0x3ffe, 0x3f2a, 0x3fff, - 0x3f37, 0x3fff, 0x3f44, 0x3fff, 0x3f50, 0x3fff, 0x3f5d, 0x3fff, - 0x3f69, 0x3fff, 0x3f76, 0x3fff, 0x3f82, 0x4000, 0x3f8f, 0x4000, - 0x3f9b, 0x4000, 0x3fa8, 0x4000, 0x3fb5, 0x4000, 0x3fc1, 0x4000, - 0x3fce, 0x4000, 0x3fda, 0x4000, 0x3fe7, 0x4000, 0x3ff3, 0x4000, -}; - -/** -* \par -* Generation of real_CoefB array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)    
-*  {    
-*    pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i));    
-*    pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i));    
-*  } 
-* \par -* Convert to fixed point Q15 format -* round(pBTable[i] * pow(2, 15)) -* -*/ - -static const q15_t ALIGN4 realCoefBQ15[8192] = { - 0x4000, 0x4000, 0x400d, 0x4000, 0x4019, 0x4000, 0x4026, 0x4000, - 0x4032, 0x4000, 0x403f, 0x4000, 0x404b, 0x4000, 0x4058, 0x4000, - 0x4065, 0x4000, 0x4071, 0x4000, 0x407e, 0x4000, 0x408a, 0x3fff, - 0x4097, 0x3fff, 0x40a3, 0x3fff, 0x40b0, 0x3fff, 0x40bc, 0x3fff, - 0x40c9, 0x3fff, 0x40d6, 0x3fff, 0x40e2, 0x3ffe, 0x40ef, 0x3ffe, - 0x40fb, 0x3ffe, 0x4108, 0x3ffe, 0x4114, 0x3ffe, 0x4121, 0x3ffd, - 0x412e, 0x3ffd, 0x413a, 0x3ffd, 0x4147, 0x3ffd, 0x4153, 0x3ffc, - 0x4160, 0x3ffc, 0x416c, 0x3ffc, 0x4179, 0x3ffc, 0x4186, 0x3ffb, - 0x4192, 0x3ffb, 0x419f, 0x3ffb, 0x41ab, 0x3ffa, 0x41b8, 0x3ffa, - 0x41c4, 0x3ffa, 0x41d1, 0x3ff9, 0x41dd, 0x3ff9, 0x41ea, 0x3ff9, - 0x41f7, 0x3ff8, 0x4203, 0x3ff8, 0x4210, 0x3ff7, 0x421c, 0x3ff7, - 0x4229, 0x3ff7, 0x4235, 0x3ff6, 0x4242, 0x3ff6, 0x424e, 0x3ff5, - 0x425b, 0x3ff5, 0x4268, 0x3ff4, 0x4274, 0x3ff4, 0x4281, 0x3ff3, - 0x428d, 0x3ff3, 0x429a, 0x3ff2, 0x42a6, 0x3ff2, 0x42b3, 0x3ff1, - 0x42c0, 0x3ff1, 0x42cc, 0x3ff0, 0x42d9, 0x3ff0, 0x42e5, 0x3fef, - 0x42f2, 0x3fef, 0x42fe, 0x3fee, 0x430b, 0x3fed, 0x4317, 0x3fed, - 0x4324, 0x3fec, 0x4330, 0x3fec, 0x433d, 0x3feb, 0x434a, 0x3fea, - 0x4356, 0x3fea, 0x4363, 0x3fe9, 0x436f, 0x3fe8, 0x437c, 0x3fe8, - 0x4388, 0x3fe7, 0x4395, 0x3fe6, 0x43a1, 0x3fe6, 0x43ae, 0x3fe5, - 0x43bb, 0x3fe4, 0x43c7, 0x3fe3, 0x43d4, 0x3fe3, 0x43e0, 0x3fe2, - 0x43ed, 0x3fe1, 0x43f9, 0x3fe0, 0x4406, 0x3fe0, 0x4412, 0x3fdf, - 0x441f, 0x3fde, 0x442b, 0x3fdd, 0x4438, 0x3fdc, 0x4444, 0x3fdc, - 0x4451, 0x3fdb, 0x445e, 0x3fda, 0x446a, 0x3fd9, 0x4477, 0x3fd8, - 0x4483, 0x3fd7, 0x4490, 0x3fd6, 0x449c, 0x3fd5, 0x44a9, 0x3fd5, - 0x44b5, 0x3fd4, 0x44c2, 0x3fd3, 0x44ce, 0x3fd2, 0x44db, 0x3fd1, - 0x44e7, 0x3fd0, 0x44f4, 0x3fcf, 0x4500, 0x3fce, 0x450d, 0x3fcd, - 0x451a, 0x3fcc, 0x4526, 0x3fcb, 0x4533, 0x3fca, 0x453f, 0x3fc9, - 0x454c, 0x3fc8, 0x4558, 0x3fc7, 0x4565, 0x3fc6, 0x4571, 0x3fc5, - 0x457e, 0x3fc4, 0x458a, 0x3fc3, 0x4597, 0x3fc1, 0x45a3, 0x3fc0, - 0x45b0, 0x3fbf, 0x45bc, 0x3fbe, 0x45c9, 0x3fbd, 0x45d5, 0x3fbc, - 0x45e2, 0x3fbb, 0x45ee, 0x3fb9, 0x45fb, 0x3fb8, 0x4607, 0x3fb7, - 0x4614, 0x3fb6, 0x4620, 0x3fb5, 0x462d, 0x3fb4, 0x4639, 0x3fb2, - 0x4646, 0x3fb1, 0x4652, 0x3fb0, 0x465f, 0x3faf, 0x466b, 0x3fad, - 0x4678, 0x3fac, 0x4684, 0x3fab, 0x4691, 0x3faa, 0x469d, 0x3fa8, - 0x46aa, 0x3fa7, 0x46b6, 0x3fa6, 0x46c3, 0x3fa4, 0x46cf, 0x3fa3, - 0x46dc, 0x3fa2, 0x46e8, 0x3fa0, 0x46f5, 0x3f9f, 0x4701, 0x3f9e, - 0x470e, 0x3f9c, 0x471a, 0x3f9b, 0x4727, 0x3f99, 0x4733, 0x3f98, - 0x4740, 0x3f97, 0x474c, 0x3f95, 0x4759, 0x3f94, 0x4765, 0x3f92, - 0x4772, 0x3f91, 0x477e, 0x3f8f, 0x478b, 0x3f8e, 0x4797, 0x3f8c, - 0x47a4, 0x3f8b, 0x47b0, 0x3f89, 0x47bd, 0x3f88, 0x47c9, 0x3f86, - 0x47d6, 0x3f85, 0x47e2, 0x3f83, 0x47ef, 0x3f82, 0x47fb, 0x3f80, - 0x4807, 0x3f7f, 0x4814, 0x3f7d, 0x4820, 0x3f7b, 0x482d, 0x3f7a, - 0x4839, 0x3f78, 0x4846, 0x3f77, 0x4852, 0x3f75, 0x485f, 0x3f73, - 0x486b, 0x3f72, 0x4878, 0x3f70, 0x4884, 0x3f6e, 0x4891, 0x3f6d, - 0x489d, 0x3f6b, 0x48a9, 0x3f69, 0x48b6, 0x3f68, 0x48c2, 0x3f66, - 0x48cf, 0x3f64, 0x48db, 0x3f62, 0x48e8, 0x3f61, 0x48f4, 0x3f5f, - 0x4901, 0x3f5d, 0x490d, 0x3f5b, 0x4919, 0x3f5a, 0x4926, 0x3f58, - 0x4932, 0x3f56, 0x493f, 0x3f54, 0x494b, 0x3f52, 0x4958, 0x3f51, - 0x4964, 0x3f4f, 0x4970, 0x3f4d, 0x497d, 0x3f4b, 0x4989, 0x3f49, - 0x4996, 0x3f47, 0x49a2, 0x3f45, 0x49af, 0x3f43, 0x49bb, 0x3f42, - 0x49c7, 0x3f40, 0x49d4, 0x3f3e, 0x49e0, 0x3f3c, 0x49ed, 0x3f3a, - 0x49f9, 0x3f38, 0x4a06, 0x3f36, 0x4a12, 0x3f34, 0x4a1e, 0x3f32, - 0x4a2b, 0x3f30, 0x4a37, 0x3f2e, 0x4a44, 0x3f2c, 0x4a50, 0x3f2a, - 0x4a5c, 0x3f28, 0x4a69, 0x3f26, 0x4a75, 0x3f24, 0x4a82, 0x3f22, - 0x4a8e, 0x3f20, 0x4a9a, 0x3f1e, 0x4aa7, 0x3f1c, 0x4ab3, 0x3f19, - 0x4ac0, 0x3f17, 0x4acc, 0x3f15, 0x4ad8, 0x3f13, 0x4ae5, 0x3f11, - 0x4af1, 0x3f0f, 0x4afd, 0x3f0d, 0x4b0a, 0x3f0a, 0x4b16, 0x3f08, - 0x4b23, 0x3f06, 0x4b2f, 0x3f04, 0x4b3b, 0x3f02, 0x4b48, 0x3f00, - 0x4b54, 0x3efd, 0x4b60, 0x3efb, 0x4b6d, 0x3ef9, 0x4b79, 0x3ef7, - 0x4b85, 0x3ef4, 0x4b92, 0x3ef2, 0x4b9e, 0x3ef0, 0x4bab, 0x3eed, - 0x4bb7, 0x3eeb, 0x4bc3, 0x3ee9, 0x4bd0, 0x3ee7, 0x4bdc, 0x3ee4, - 0x4be8, 0x3ee2, 0x4bf5, 0x3ee0, 0x4c01, 0x3edd, 0x4c0d, 0x3edb, - 0x4c1a, 0x3ed8, 0x4c26, 0x3ed6, 0x4c32, 0x3ed4, 0x4c3f, 0x3ed1, - 0x4c4b, 0x3ecf, 0x4c57, 0x3ecc, 0x4c64, 0x3eca, 0x4c70, 0x3ec8, - 0x4c7c, 0x3ec5, 0x4c89, 0x3ec3, 0x4c95, 0x3ec0, 0x4ca1, 0x3ebe, - 0x4cae, 0x3ebb, 0x4cba, 0x3eb9, 0x4cc6, 0x3eb6, 0x4cd3, 0x3eb4, - 0x4cdf, 0x3eb1, 0x4ceb, 0x3eaf, 0x4cf8, 0x3eac, 0x4d04, 0x3eaa, - 0x4d10, 0x3ea7, 0x4d1c, 0x3ea5, 0x4d29, 0x3ea2, 0x4d35, 0x3e9f, - 0x4d41, 0x3e9d, 0x4d4e, 0x3e9a, 0x4d5a, 0x3e98, 0x4d66, 0x3e95, - 0x4d72, 0x3e92, 0x4d7f, 0x3e90, 0x4d8b, 0x3e8d, 0x4d97, 0x3e8a, - 0x4da4, 0x3e88, 0x4db0, 0x3e85, 0x4dbc, 0x3e82, 0x4dc8, 0x3e80, - 0x4dd5, 0x3e7d, 0x4de1, 0x3e7a, 0x4ded, 0x3e77, 0x4df9, 0x3e75, - 0x4e06, 0x3e72, 0x4e12, 0x3e6f, 0x4e1e, 0x3e6c, 0x4e2b, 0x3e6a, - 0x4e37, 0x3e67, 0x4e43, 0x3e64, 0x4e4f, 0x3e61, 0x4e5c, 0x3e5e, - 0x4e68, 0x3e5c, 0x4e74, 0x3e59, 0x4e80, 0x3e56, 0x4e8c, 0x3e53, - 0x4e99, 0x3e50, 0x4ea5, 0x3e4d, 0x4eb1, 0x3e4a, 0x4ebd, 0x3e48, - 0x4eca, 0x3e45, 0x4ed6, 0x3e42, 0x4ee2, 0x3e3f, 0x4eee, 0x3e3c, - 0x4efb, 0x3e39, 0x4f07, 0x3e36, 0x4f13, 0x3e33, 0x4f1f, 0x3e30, - 0x4f2b, 0x3e2d, 0x4f38, 0x3e2a, 0x4f44, 0x3e27, 0x4f50, 0x3e24, - 0x4f5c, 0x3e21, 0x4f68, 0x3e1e, 0x4f75, 0x3e1b, 0x4f81, 0x3e18, - 0x4f8d, 0x3e15, 0x4f99, 0x3e12, 0x4fa5, 0x3e0f, 0x4fb2, 0x3e0c, - 0x4fbe, 0x3e09, 0x4fca, 0x3e06, 0x4fd6, 0x3e03, 0x4fe2, 0x3dff, - 0x4fee, 0x3dfc, 0x4ffb, 0x3df9, 0x5007, 0x3df6, 0x5013, 0x3df3, - 0x501f, 0x3df0, 0x502b, 0x3ded, 0x5037, 0x3de9, 0x5044, 0x3de6, - 0x5050, 0x3de3, 0x505c, 0x3de0, 0x5068, 0x3ddd, 0x5074, 0x3dd9, - 0x5080, 0x3dd6, 0x508c, 0x3dd3, 0x5099, 0x3dd0, 0x50a5, 0x3dcc, - 0x50b1, 0x3dc9, 0x50bd, 0x3dc6, 0x50c9, 0x3dc2, 0x50d5, 0x3dbf, - 0x50e1, 0x3dbc, 0x50ed, 0x3db9, 0x50fa, 0x3db5, 0x5106, 0x3db2, - 0x5112, 0x3daf, 0x511e, 0x3dab, 0x512a, 0x3da8, 0x5136, 0x3da4, - 0x5142, 0x3da1, 0x514e, 0x3d9e, 0x515a, 0x3d9a, 0x5167, 0x3d97, - 0x5173, 0x3d93, 0x517f, 0x3d90, 0x518b, 0x3d8d, 0x5197, 0x3d89, - 0x51a3, 0x3d86, 0x51af, 0x3d82, 0x51bb, 0x3d7f, 0x51c7, 0x3d7b, - 0x51d3, 0x3d78, 0x51df, 0x3d74, 0x51eb, 0x3d71, 0x51f7, 0x3d6d, - 0x5204, 0x3d6a, 0x5210, 0x3d66, 0x521c, 0x3d63, 0x5228, 0x3d5f, - 0x5234, 0x3d5b, 0x5240, 0x3d58, 0x524c, 0x3d54, 0x5258, 0x3d51, - 0x5264, 0x3d4d, 0x5270, 0x3d49, 0x527c, 0x3d46, 0x5288, 0x3d42, - 0x5294, 0x3d3f, 0x52a0, 0x3d3b, 0x52ac, 0x3d37, 0x52b8, 0x3d34, - 0x52c4, 0x3d30, 0x52d0, 0x3d2c, 0x52dc, 0x3d28, 0x52e8, 0x3d25, - 0x52f4, 0x3d21, 0x5300, 0x3d1d, 0x530c, 0x3d1a, 0x5318, 0x3d16, - 0x5324, 0x3d12, 0x5330, 0x3d0e, 0x533c, 0x3d0b, 0x5348, 0x3d07, - 0x5354, 0x3d03, 0x5360, 0x3cff, 0x536c, 0x3cfb, 0x5378, 0x3cf8, - 0x5384, 0x3cf4, 0x5390, 0x3cf0, 0x539c, 0x3cec, 0x53a8, 0x3ce8, - 0x53b4, 0x3ce4, 0x53c0, 0x3ce0, 0x53cc, 0x3cdd, 0x53d8, 0x3cd9, - 0x53e4, 0x3cd5, 0x53f0, 0x3cd1, 0x53fb, 0x3ccd, 0x5407, 0x3cc9, - 0x5413, 0x3cc5, 0x541f, 0x3cc1, 0x542b, 0x3cbd, 0x5437, 0x3cb9, - 0x5443, 0x3cb5, 0x544f, 0x3cb1, 0x545b, 0x3cad, 0x5467, 0x3ca9, - 0x5473, 0x3ca5, 0x547f, 0x3ca1, 0x548b, 0x3c9d, 0x5496, 0x3c99, - 0x54a2, 0x3c95, 0x54ae, 0x3c91, 0x54ba, 0x3c8d, 0x54c6, 0x3c89, - 0x54d2, 0x3c85, 0x54de, 0x3c81, 0x54ea, 0x3c7d, 0x54f6, 0x3c79, - 0x5501, 0x3c74, 0x550d, 0x3c70, 0x5519, 0x3c6c, 0x5525, 0x3c68, - 0x5531, 0x3c64, 0x553d, 0x3c60, 0x5549, 0x3c5b, 0x5554, 0x3c57, - 0x5560, 0x3c53, 0x556c, 0x3c4f, 0x5578, 0x3c4b, 0x5584, 0x3c46, - 0x5590, 0x3c42, 0x559b, 0x3c3e, 0x55a7, 0x3c3a, 0x55b3, 0x3c36, - 0x55bf, 0x3c31, 0x55cb, 0x3c2d, 0x55d7, 0x3c29, 0x55e2, 0x3c24, - 0x55ee, 0x3c20, 0x55fa, 0x3c1c, 0x5606, 0x3c17, 0x5612, 0x3c13, - 0x561d, 0x3c0f, 0x5629, 0x3c0a, 0x5635, 0x3c06, 0x5641, 0x3c02, - 0x564c, 0x3bfd, 0x5658, 0x3bf9, 0x5664, 0x3bf5, 0x5670, 0x3bf0, - 0x567c, 0x3bec, 0x5687, 0x3be7, 0x5693, 0x3be3, 0x569f, 0x3bde, - 0x56ab, 0x3bda, 0x56b6, 0x3bd6, 0x56c2, 0x3bd1, 0x56ce, 0x3bcd, - 0x56da, 0x3bc8, 0x56e5, 0x3bc4, 0x56f1, 0x3bbf, 0x56fd, 0x3bbb, - 0x5709, 0x3bb6, 0x5714, 0x3bb2, 0x5720, 0x3bad, 0x572c, 0x3ba9, - 0x5737, 0x3ba4, 0x5743, 0x3b9f, 0x574f, 0x3b9b, 0x575b, 0x3b96, - 0x5766, 0x3b92, 0x5772, 0x3b8d, 0x577e, 0x3b88, 0x5789, 0x3b84, - 0x5795, 0x3b7f, 0x57a1, 0x3b7b, 0x57ac, 0x3b76, 0x57b8, 0x3b71, - 0x57c4, 0x3b6d, 0x57cf, 0x3b68, 0x57db, 0x3b63, 0x57e7, 0x3b5f, - 0x57f2, 0x3b5a, 0x57fe, 0x3b55, 0x580a, 0x3b50, 0x5815, 0x3b4c, - 0x5821, 0x3b47, 0x582d, 0x3b42, 0x5838, 0x3b3e, 0x5844, 0x3b39, - 0x584f, 0x3b34, 0x585b, 0x3b2f, 0x5867, 0x3b2a, 0x5872, 0x3b26, - 0x587e, 0x3b21, 0x5889, 0x3b1c, 0x5895, 0x3b17, 0x58a1, 0x3b12, - 0x58ac, 0x3b0e, 0x58b8, 0x3b09, 0x58c3, 0x3b04, 0x58cf, 0x3aff, - 0x58db, 0x3afa, 0x58e6, 0x3af5, 0x58f2, 0x3af0, 0x58fd, 0x3aeb, - 0x5909, 0x3ae6, 0x5914, 0x3ae2, 0x5920, 0x3add, 0x592c, 0x3ad8, - 0x5937, 0x3ad3, 0x5943, 0x3ace, 0x594e, 0x3ac9, 0x595a, 0x3ac4, - 0x5965, 0x3abf, 0x5971, 0x3aba, 0x597c, 0x3ab5, 0x5988, 0x3ab0, - 0x5993, 0x3aab, 0x599f, 0x3aa6, 0x59aa, 0x3aa1, 0x59b6, 0x3a9c, - 0x59c1, 0x3a97, 0x59cd, 0x3a92, 0x59d8, 0x3a8d, 0x59e4, 0x3a88, - 0x59ef, 0x3a82, 0x59fb, 0x3a7d, 0x5a06, 0x3a78, 0x5a12, 0x3a73, - 0x5a1d, 0x3a6e, 0x5a29, 0x3a69, 0x5a34, 0x3a64, 0x5a40, 0x3a5f, - 0x5a4b, 0x3a59, 0x5a57, 0x3a54, 0x5a62, 0x3a4f, 0x5a6e, 0x3a4a, - 0x5a79, 0x3a45, 0x5a84, 0x3a3f, 0x5a90, 0x3a3a, 0x5a9b, 0x3a35, - 0x5aa7, 0x3a30, 0x5ab2, 0x3a2b, 0x5abe, 0x3a25, 0x5ac9, 0x3a20, - 0x5ad4, 0x3a1b, 0x5ae0, 0x3a16, 0x5aeb, 0x3a10, 0x5af7, 0x3a0b, - 0x5b02, 0x3a06, 0x5b0d, 0x3a00, 0x5b19, 0x39fb, 0x5b24, 0x39f6, - 0x5b30, 0x39f0, 0x5b3b, 0x39eb, 0x5b46, 0x39e6, 0x5b52, 0x39e0, - 0x5b5d, 0x39db, 0x5b68, 0x39d6, 0x5b74, 0x39d0, 0x5b7f, 0x39cb, - 0x5b8a, 0x39c5, 0x5b96, 0x39c0, 0x5ba1, 0x39bb, 0x5bac, 0x39b5, - 0x5bb8, 0x39b0, 0x5bc3, 0x39aa, 0x5bce, 0x39a5, 0x5bda, 0x399f, - 0x5be5, 0x399a, 0x5bf0, 0x3994, 0x5bfc, 0x398f, 0x5c07, 0x3989, - 0x5c12, 0x3984, 0x5c1e, 0x397e, 0x5c29, 0x3979, 0x5c34, 0x3973, - 0x5c3f, 0x396e, 0x5c4b, 0x3968, 0x5c56, 0x3963, 0x5c61, 0x395d, - 0x5c6c, 0x3958, 0x5c78, 0x3952, 0x5c83, 0x394c, 0x5c8e, 0x3947, - 0x5c99, 0x3941, 0x5ca5, 0x393b, 0x5cb0, 0x3936, 0x5cbb, 0x3930, - 0x5cc6, 0x392b, 0x5cd2, 0x3925, 0x5cdd, 0x391f, 0x5ce8, 0x391a, - 0x5cf3, 0x3914, 0x5cff, 0x390e, 0x5d0a, 0x3909, 0x5d15, 0x3903, - 0x5d20, 0x38fd, 0x5d2b, 0x38f7, 0x5d36, 0x38f2, 0x5d42, 0x38ec, - 0x5d4d, 0x38e6, 0x5d58, 0x38e0, 0x5d63, 0x38db, 0x5d6e, 0x38d5, - 0x5d79, 0x38cf, 0x5d85, 0x38c9, 0x5d90, 0x38c3, 0x5d9b, 0x38be, - 0x5da6, 0x38b8, 0x5db1, 0x38b2, 0x5dbc, 0x38ac, 0x5dc7, 0x38a6, - 0x5dd3, 0x38a1, 0x5dde, 0x389b, 0x5de9, 0x3895, 0x5df4, 0x388f, - 0x5dff, 0x3889, 0x5e0a, 0x3883, 0x5e15, 0x387d, 0x5e20, 0x3877, - 0x5e2b, 0x3871, 0x5e36, 0x386b, 0x5e42, 0x3866, 0x5e4d, 0x3860, - 0x5e58, 0x385a, 0x5e63, 0x3854, 0x5e6e, 0x384e, 0x5e79, 0x3848, - 0x5e84, 0x3842, 0x5e8f, 0x383c, 0x5e9a, 0x3836, 0x5ea5, 0x3830, - 0x5eb0, 0x382a, 0x5ebb, 0x3824, 0x5ec6, 0x381e, 0x5ed1, 0x3818, - 0x5edc, 0x3812, 0x5ee7, 0x380b, 0x5ef2, 0x3805, 0x5efd, 0x37ff, - 0x5f08, 0x37f9, 0x5f13, 0x37f3, 0x5f1e, 0x37ed, 0x5f29, 0x37e7, - 0x5f34, 0x37e1, 0x5f3f, 0x37db, 0x5f4a, 0x37d5, 0x5f55, 0x37ce, - 0x5f60, 0x37c8, 0x5f6b, 0x37c2, 0x5f76, 0x37bc, 0x5f81, 0x37b6, - 0x5f8c, 0x37b0, 0x5f97, 0x37a9, 0x5fa2, 0x37a3, 0x5fac, 0x379d, - 0x5fb7, 0x3797, 0x5fc2, 0x3790, 0x5fcd, 0x378a, 0x5fd8, 0x3784, - 0x5fe3, 0x377e, 0x5fee, 0x3777, 0x5ff9, 0x3771, 0x6004, 0x376b, - 0x600f, 0x3765, 0x6019, 0x375e, 0x6024, 0x3758, 0x602f, 0x3752, - 0x603a, 0x374b, 0x6045, 0x3745, 0x6050, 0x373f, 0x605b, 0x3738, - 0x6065, 0x3732, 0x6070, 0x372c, 0x607b, 0x3725, 0x6086, 0x371f, - 0x6091, 0x3718, 0x609b, 0x3712, 0x60a6, 0x370c, 0x60b1, 0x3705, - 0x60bc, 0x36ff, 0x60c7, 0x36f8, 0x60d1, 0x36f2, 0x60dc, 0x36eb, - 0x60e7, 0x36e5, 0x60f2, 0x36df, 0x60fd, 0x36d8, 0x6107, 0x36d2, - 0x6112, 0x36cb, 0x611d, 0x36c5, 0x6128, 0x36be, 0x6132, 0x36b8, - 0x613d, 0x36b1, 0x6148, 0x36ab, 0x6153, 0x36a4, 0x615d, 0x369d, - 0x6168, 0x3697, 0x6173, 0x3690, 0x617d, 0x368a, 0x6188, 0x3683, - 0x6193, 0x367d, 0x619e, 0x3676, 0x61a8, 0x366f, 0x61b3, 0x3669, - 0x61be, 0x3662, 0x61c8, 0x365c, 0x61d3, 0x3655, 0x61de, 0x364e, - 0x61e8, 0x3648, 0x61f3, 0x3641, 0x61fe, 0x363a, 0x6208, 0x3634, - 0x6213, 0x362d, 0x621e, 0x3626, 0x6228, 0x3620, 0x6233, 0x3619, - 0x623d, 0x3612, 0x6248, 0x360b, 0x6253, 0x3605, 0x625d, 0x35fe, - 0x6268, 0x35f7, 0x6272, 0x35f0, 0x627d, 0x35ea, 0x6288, 0x35e3, - 0x6292, 0x35dc, 0x629d, 0x35d5, 0x62a7, 0x35ce, 0x62b2, 0x35c8, - 0x62bc, 0x35c1, 0x62c7, 0x35ba, 0x62d2, 0x35b3, 0x62dc, 0x35ac, - 0x62e7, 0x35a5, 0x62f1, 0x359f, 0x62fc, 0x3598, 0x6306, 0x3591, - 0x6311, 0x358a, 0x631b, 0x3583, 0x6326, 0x357c, 0x6330, 0x3575, - 0x633b, 0x356e, 0x6345, 0x3567, 0x6350, 0x3561, 0x635a, 0x355a, - 0x6365, 0x3553, 0x636f, 0x354c, 0x637a, 0x3545, 0x6384, 0x353e, - 0x638e, 0x3537, 0x6399, 0x3530, 0x63a3, 0x3529, 0x63ae, 0x3522, - 0x63b8, 0x351b, 0x63c3, 0x3514, 0x63cd, 0x350d, 0x63d7, 0x3506, - 0x63e2, 0x34ff, 0x63ec, 0x34f8, 0x63f7, 0x34f1, 0x6401, 0x34ea, - 0x640b, 0x34e2, 0x6416, 0x34db, 0x6420, 0x34d4, 0x642b, 0x34cd, - 0x6435, 0x34c6, 0x643f, 0x34bf, 0x644a, 0x34b8, 0x6454, 0x34b1, - 0x645e, 0x34aa, 0x6469, 0x34a2, 0x6473, 0x349b, 0x647d, 0x3494, - 0x6488, 0x348d, 0x6492, 0x3486, 0x649c, 0x347f, 0x64a7, 0x3477, - 0x64b1, 0x3470, 0x64bb, 0x3469, 0x64c5, 0x3462, 0x64d0, 0x345b, - 0x64da, 0x3453, 0x64e4, 0x344c, 0x64ef, 0x3445, 0x64f9, 0x343e, - 0x6503, 0x3436, 0x650d, 0x342f, 0x6518, 0x3428, 0x6522, 0x3420, - 0x652c, 0x3419, 0x6536, 0x3412, 0x6541, 0x340b, 0x654b, 0x3403, - 0x6555, 0x33fc, 0x655f, 0x33f5, 0x6569, 0x33ed, 0x6574, 0x33e6, - 0x657e, 0x33df, 0x6588, 0x33d7, 0x6592, 0x33d0, 0x659c, 0x33c8, - 0x65a6, 0x33c1, 0x65b1, 0x33ba, 0x65bb, 0x33b2, 0x65c5, 0x33ab, - 0x65cf, 0x33a3, 0x65d9, 0x339c, 0x65e3, 0x3395, 0x65ed, 0x338d, - 0x65f8, 0x3386, 0x6602, 0x337e, 0x660c, 0x3377, 0x6616, 0x336f, - 0x6620, 0x3368, 0x662a, 0x3360, 0x6634, 0x3359, 0x663e, 0x3351, - 0x6648, 0x334a, 0x6652, 0x3342, 0x665c, 0x333b, 0x6666, 0x3333, - 0x6671, 0x332c, 0x667b, 0x3324, 0x6685, 0x331d, 0x668f, 0x3315, - 0x6699, 0x330d, 0x66a3, 0x3306, 0x66ad, 0x32fe, 0x66b7, 0x32f7, - 0x66c1, 0x32ef, 0x66cb, 0x32e7, 0x66d5, 0x32e0, 0x66df, 0x32d8, - 0x66e9, 0x32d0, 0x66f3, 0x32c9, 0x66fd, 0x32c1, 0x6707, 0x32ba, - 0x6711, 0x32b2, 0x671a, 0x32aa, 0x6724, 0x32a3, 0x672e, 0x329b, - 0x6738, 0x3293, 0x6742, 0x328b, 0x674c, 0x3284, 0x6756, 0x327c, - 0x6760, 0x3274, 0x676a, 0x326d, 0x6774, 0x3265, 0x677e, 0x325d, - 0x6788, 0x3255, 0x6791, 0x324e, 0x679b, 0x3246, 0x67a5, 0x323e, - 0x67af, 0x3236, 0x67b9, 0x322e, 0x67c3, 0x3227, 0x67cd, 0x321f, - 0x67d6, 0x3217, 0x67e0, 0x320f, 0x67ea, 0x3207, 0x67f4, 0x31ff, - 0x67fe, 0x31f8, 0x6808, 0x31f0, 0x6811, 0x31e8, 0x681b, 0x31e0, - 0x6825, 0x31d8, 0x682f, 0x31d0, 0x6838, 0x31c8, 0x6842, 0x31c0, - 0x684c, 0x31b9, 0x6856, 0x31b1, 0x6860, 0x31a9, 0x6869, 0x31a1, - 0x6873, 0x3199, 0x687d, 0x3191, 0x6886, 0x3189, 0x6890, 0x3181, - 0x689a, 0x3179, 0x68a4, 0x3171, 0x68ad, 0x3169, 0x68b7, 0x3161, - 0x68c1, 0x3159, 0x68ca, 0x3151, 0x68d4, 0x3149, 0x68de, 0x3141, - 0x68e7, 0x3139, 0x68f1, 0x3131, 0x68fb, 0x3129, 0x6904, 0x3121, - 0x690e, 0x3119, 0x6918, 0x3111, 0x6921, 0x3109, 0x692b, 0x3101, - 0x6935, 0x30f9, 0x693e, 0x30f0, 0x6948, 0x30e8, 0x6951, 0x30e0, - 0x695b, 0x30d8, 0x6965, 0x30d0, 0x696e, 0x30c8, 0x6978, 0x30c0, - 0x6981, 0x30b8, 0x698b, 0x30af, 0x6994, 0x30a7, 0x699e, 0x309f, - 0x69a7, 0x3097, 0x69b1, 0x308f, 0x69bb, 0x3087, 0x69c4, 0x307e, - 0x69ce, 0x3076, 0x69d7, 0x306e, 0x69e1, 0x3066, 0x69ea, 0x305d, - 0x69f4, 0x3055, 0x69fd, 0x304d, 0x6a07, 0x3045, 0x6a10, 0x303c, - 0x6a1a, 0x3034, 0x6a23, 0x302c, 0x6a2c, 0x3024, 0x6a36, 0x301b, - 0x6a3f, 0x3013, 0x6a49, 0x300b, 0x6a52, 0x3002, 0x6a5c, 0x2ffa, - 0x6a65, 0x2ff2, 0x6a6e, 0x2fea, 0x6a78, 0x2fe1, 0x6a81, 0x2fd9, - 0x6a8b, 0x2fd0, 0x6a94, 0x2fc8, 0x6a9d, 0x2fc0, 0x6aa7, 0x2fb7, - 0x6ab0, 0x2faf, 0x6ab9, 0x2fa7, 0x6ac3, 0x2f9e, 0x6acc, 0x2f96, - 0x6ad6, 0x2f8d, 0x6adf, 0x2f85, 0x6ae8, 0x2f7d, 0x6af2, 0x2f74, - 0x6afb, 0x2f6c, 0x6b04, 0x2f63, 0x6b0d, 0x2f5b, 0x6b17, 0x2f52, - 0x6b20, 0x2f4a, 0x6b29, 0x2f41, 0x6b33, 0x2f39, 0x6b3c, 0x2f30, - 0x6b45, 0x2f28, 0x6b4e, 0x2f20, 0x6b58, 0x2f17, 0x6b61, 0x2f0e, - 0x6b6a, 0x2f06, 0x6b73, 0x2efd, 0x6b7d, 0x2ef5, 0x6b86, 0x2eec, - 0x6b8f, 0x2ee4, 0x6b98, 0x2edb, 0x6ba1, 0x2ed3, 0x6bab, 0x2eca, - 0x6bb4, 0x2ec2, 0x6bbd, 0x2eb9, 0x6bc6, 0x2eb0, 0x6bcf, 0x2ea8, - 0x6bd8, 0x2e9f, 0x6be2, 0x2e97, 0x6beb, 0x2e8e, 0x6bf4, 0x2e85, - 0x6bfd, 0x2e7d, 0x6c06, 0x2e74, 0x6c0f, 0x2e6b, 0x6c18, 0x2e63, - 0x6c21, 0x2e5a, 0x6c2b, 0x2e51, 0x6c34, 0x2e49, 0x6c3d, 0x2e40, - 0x6c46, 0x2e37, 0x6c4f, 0x2e2f, 0x6c58, 0x2e26, 0x6c61, 0x2e1d, - 0x6c6a, 0x2e15, 0x6c73, 0x2e0c, 0x6c7c, 0x2e03, 0x6c85, 0x2dfa, - 0x6c8e, 0x2df2, 0x6c97, 0x2de9, 0x6ca0, 0x2de0, 0x6ca9, 0x2dd7, - 0x6cb2, 0x2dcf, 0x6cbb, 0x2dc6, 0x6cc4, 0x2dbd, 0x6ccd, 0x2db4, - 0x6cd6, 0x2dab, 0x6cdf, 0x2da3, 0x6ce8, 0x2d9a, 0x6cf1, 0x2d91, - 0x6cfa, 0x2d88, 0x6d03, 0x2d7f, 0x6d0c, 0x2d76, 0x6d15, 0x2d6e, - 0x6d1e, 0x2d65, 0x6d27, 0x2d5c, 0x6d2f, 0x2d53, 0x6d38, 0x2d4a, - 0x6d41, 0x2d41, 0x6d4a, 0x2d38, 0x6d53, 0x2d2f, 0x6d5c, 0x2d27, - 0x6d65, 0x2d1e, 0x6d6e, 0x2d15, 0x6d76, 0x2d0c, 0x6d7f, 0x2d03, - 0x6d88, 0x2cfa, 0x6d91, 0x2cf1, 0x6d9a, 0x2ce8, 0x6da3, 0x2cdf, - 0x6dab, 0x2cd6, 0x6db4, 0x2ccd, 0x6dbd, 0x2cc4, 0x6dc6, 0x2cbb, - 0x6dcf, 0x2cb2, 0x6dd7, 0x2ca9, 0x6de0, 0x2ca0, 0x6de9, 0x2c97, - 0x6df2, 0x2c8e, 0x6dfa, 0x2c85, 0x6e03, 0x2c7c, 0x6e0c, 0x2c73, - 0x6e15, 0x2c6a, 0x6e1d, 0x2c61, 0x6e26, 0x2c58, 0x6e2f, 0x2c4f, - 0x6e37, 0x2c46, 0x6e40, 0x2c3d, 0x6e49, 0x2c34, 0x6e51, 0x2c2b, - 0x6e5a, 0x2c21, 0x6e63, 0x2c18, 0x6e6b, 0x2c0f, 0x6e74, 0x2c06, - 0x6e7d, 0x2bfd, 0x6e85, 0x2bf4, 0x6e8e, 0x2beb, 0x6e97, 0x2be2, - 0x6e9f, 0x2bd8, 0x6ea8, 0x2bcf, 0x6eb0, 0x2bc6, 0x6eb9, 0x2bbd, - 0x6ec2, 0x2bb4, 0x6eca, 0x2bab, 0x6ed3, 0x2ba1, 0x6edb, 0x2b98, - 0x6ee4, 0x2b8f, 0x6eec, 0x2b86, 0x6ef5, 0x2b7d, 0x6efd, 0x2b73, - 0x6f06, 0x2b6a, 0x6f0e, 0x2b61, 0x6f17, 0x2b58, 0x6f20, 0x2b4e, - 0x6f28, 0x2b45, 0x6f30, 0x2b3c, 0x6f39, 0x2b33, 0x6f41, 0x2b29, - 0x6f4a, 0x2b20, 0x6f52, 0x2b17, 0x6f5b, 0x2b0d, 0x6f63, 0x2b04, - 0x6f6c, 0x2afb, 0x6f74, 0x2af2, 0x6f7d, 0x2ae8, 0x6f85, 0x2adf, - 0x6f8d, 0x2ad6, 0x6f96, 0x2acc, 0x6f9e, 0x2ac3, 0x6fa7, 0x2ab9, - 0x6faf, 0x2ab0, 0x6fb7, 0x2aa7, 0x6fc0, 0x2a9d, 0x6fc8, 0x2a94, - 0x6fd0, 0x2a8b, 0x6fd9, 0x2a81, 0x6fe1, 0x2a78, 0x6fea, 0x2a6e, - 0x6ff2, 0x2a65, 0x6ffa, 0x2a5c, 0x7002, 0x2a52, 0x700b, 0x2a49, - 0x7013, 0x2a3f, 0x701b, 0x2a36, 0x7024, 0x2a2c, 0x702c, 0x2a23, - 0x7034, 0x2a1a, 0x703c, 0x2a10, 0x7045, 0x2a07, 0x704d, 0x29fd, - 0x7055, 0x29f4, 0x705d, 0x29ea, 0x7066, 0x29e1, 0x706e, 0x29d7, - 0x7076, 0x29ce, 0x707e, 0x29c4, 0x7087, 0x29bb, 0x708f, 0x29b1, - 0x7097, 0x29a7, 0x709f, 0x299e, 0x70a7, 0x2994, 0x70af, 0x298b, - 0x70b8, 0x2981, 0x70c0, 0x2978, 0x70c8, 0x296e, 0x70d0, 0x2965, - 0x70d8, 0x295b, 0x70e0, 0x2951, 0x70e8, 0x2948, 0x70f0, 0x293e, - 0x70f9, 0x2935, 0x7101, 0x292b, 0x7109, 0x2921, 0x7111, 0x2918, - 0x7119, 0x290e, 0x7121, 0x2904, 0x7129, 0x28fb, 0x7131, 0x28f1, - 0x7139, 0x28e7, 0x7141, 0x28de, 0x7149, 0x28d4, 0x7151, 0x28ca, - 0x7159, 0x28c1, 0x7161, 0x28b7, 0x7169, 0x28ad, 0x7171, 0x28a4, - 0x7179, 0x289a, 0x7181, 0x2890, 0x7189, 0x2886, 0x7191, 0x287d, - 0x7199, 0x2873, 0x71a1, 0x2869, 0x71a9, 0x2860, 0x71b1, 0x2856, - 0x71b9, 0x284c, 0x71c0, 0x2842, 0x71c8, 0x2838, 0x71d0, 0x282f, - 0x71d8, 0x2825, 0x71e0, 0x281b, 0x71e8, 0x2811, 0x71f0, 0x2808, - 0x71f8, 0x27fe, 0x71ff, 0x27f4, 0x7207, 0x27ea, 0x720f, 0x27e0, - 0x7217, 0x27d6, 0x721f, 0x27cd, 0x7227, 0x27c3, 0x722e, 0x27b9, - 0x7236, 0x27af, 0x723e, 0x27a5, 0x7246, 0x279b, 0x724e, 0x2791, - 0x7255, 0x2788, 0x725d, 0x277e, 0x7265, 0x2774, 0x726d, 0x276a, - 0x7274, 0x2760, 0x727c, 0x2756, 0x7284, 0x274c, 0x728b, 0x2742, - 0x7293, 0x2738, 0x729b, 0x272e, 0x72a3, 0x2724, 0x72aa, 0x271a, - 0x72b2, 0x2711, 0x72ba, 0x2707, 0x72c1, 0x26fd, 0x72c9, 0x26f3, - 0x72d0, 0x26e9, 0x72d8, 0x26df, 0x72e0, 0x26d5, 0x72e7, 0x26cb, - 0x72ef, 0x26c1, 0x72f7, 0x26b7, 0x72fe, 0x26ad, 0x7306, 0x26a3, - 0x730d, 0x2699, 0x7315, 0x268f, 0x731d, 0x2685, 0x7324, 0x267b, - 0x732c, 0x2671, 0x7333, 0x2666, 0x733b, 0x265c, 0x7342, 0x2652, - 0x734a, 0x2648, 0x7351, 0x263e, 0x7359, 0x2634, 0x7360, 0x262a, - 0x7368, 0x2620, 0x736f, 0x2616, 0x7377, 0x260c, 0x737e, 0x2602, - 0x7386, 0x25f8, 0x738d, 0x25ed, 0x7395, 0x25e3, 0x739c, 0x25d9, - 0x73a3, 0x25cf, 0x73ab, 0x25c5, 0x73b2, 0x25bb, 0x73ba, 0x25b1, - 0x73c1, 0x25a6, 0x73c8, 0x259c, 0x73d0, 0x2592, 0x73d7, 0x2588, - 0x73df, 0x257e, 0x73e6, 0x2574, 0x73ed, 0x2569, 0x73f5, 0x255f, - 0x73fc, 0x2555, 0x7403, 0x254b, 0x740b, 0x2541, 0x7412, 0x2536, - 0x7419, 0x252c, 0x7420, 0x2522, 0x7428, 0x2518, 0x742f, 0x250d, - 0x7436, 0x2503, 0x743e, 0x24f9, 0x7445, 0x24ef, 0x744c, 0x24e4, - 0x7453, 0x24da, 0x745b, 0x24d0, 0x7462, 0x24c5, 0x7469, 0x24bb, - 0x7470, 0x24b1, 0x7477, 0x24a7, 0x747f, 0x249c, 0x7486, 0x2492, - 0x748d, 0x2488, 0x7494, 0x247d, 0x749b, 0x2473, 0x74a2, 0x2469, - 0x74aa, 0x245e, 0x74b1, 0x2454, 0x74b8, 0x244a, 0x74bf, 0x243f, - 0x74c6, 0x2435, 0x74cd, 0x242b, 0x74d4, 0x2420, 0x74db, 0x2416, - 0x74e2, 0x240b, 0x74ea, 0x2401, 0x74f1, 0x23f7, 0x74f8, 0x23ec, - 0x74ff, 0x23e2, 0x7506, 0x23d7, 0x750d, 0x23cd, 0x7514, 0x23c3, - 0x751b, 0x23b8, 0x7522, 0x23ae, 0x7529, 0x23a3, 0x7530, 0x2399, - 0x7537, 0x238e, 0x753e, 0x2384, 0x7545, 0x237a, 0x754c, 0x236f, - 0x7553, 0x2365, 0x755a, 0x235a, 0x7561, 0x2350, 0x7567, 0x2345, - 0x756e, 0x233b, 0x7575, 0x2330, 0x757c, 0x2326, 0x7583, 0x231b, - 0x758a, 0x2311, 0x7591, 0x2306, 0x7598, 0x22fc, 0x759f, 0x22f1, - 0x75a5, 0x22e7, 0x75ac, 0x22dc, 0x75b3, 0x22d2, 0x75ba, 0x22c7, - 0x75c1, 0x22bc, 0x75c8, 0x22b2, 0x75ce, 0x22a7, 0x75d5, 0x229d, - 0x75dc, 0x2292, 0x75e3, 0x2288, 0x75ea, 0x227d, 0x75f0, 0x2272, - 0x75f7, 0x2268, 0x75fe, 0x225d, 0x7605, 0x2253, 0x760b, 0x2248, - 0x7612, 0x223d, 0x7619, 0x2233, 0x7620, 0x2228, 0x7626, 0x221e, - 0x762d, 0x2213, 0x7634, 0x2208, 0x763a, 0x21fe, 0x7641, 0x21f3, - 0x7648, 0x21e8, 0x764e, 0x21de, 0x7655, 0x21d3, 0x765c, 0x21c8, - 0x7662, 0x21be, 0x7669, 0x21b3, 0x766f, 0x21a8, 0x7676, 0x219e, - 0x767d, 0x2193, 0x7683, 0x2188, 0x768a, 0x217d, 0x7690, 0x2173, - 0x7697, 0x2168, 0x769d, 0x215d, 0x76a4, 0x2153, 0x76ab, 0x2148, - 0x76b1, 0x213d, 0x76b8, 0x2132, 0x76be, 0x2128, 0x76c5, 0x211d, - 0x76cb, 0x2112, 0x76d2, 0x2107, 0x76d8, 0x20fd, 0x76df, 0x20f2, - 0x76e5, 0x20e7, 0x76eb, 0x20dc, 0x76f2, 0x20d1, 0x76f8, 0x20c7, - 0x76ff, 0x20bc, 0x7705, 0x20b1, 0x770c, 0x20a6, 0x7712, 0x209b, - 0x7718, 0x2091, 0x771f, 0x2086, 0x7725, 0x207b, 0x772c, 0x2070, - 0x7732, 0x2065, 0x7738, 0x205b, 0x773f, 0x2050, 0x7745, 0x2045, - 0x774b, 0x203a, 0x7752, 0x202f, 0x7758, 0x2024, 0x775e, 0x2019, - 0x7765, 0x200f, 0x776b, 0x2004, 0x7771, 0x1ff9, 0x7777, 0x1fee, - 0x777e, 0x1fe3, 0x7784, 0x1fd8, 0x778a, 0x1fcd, 0x7790, 0x1fc2, - 0x7797, 0x1fb7, 0x779d, 0x1fac, 0x77a3, 0x1fa2, 0x77a9, 0x1f97, - 0x77b0, 0x1f8c, 0x77b6, 0x1f81, 0x77bc, 0x1f76, 0x77c2, 0x1f6b, - 0x77c8, 0x1f60, 0x77ce, 0x1f55, 0x77d5, 0x1f4a, 0x77db, 0x1f3f, - 0x77e1, 0x1f34, 0x77e7, 0x1f29, 0x77ed, 0x1f1e, 0x77f3, 0x1f13, - 0x77f9, 0x1f08, 0x77ff, 0x1efd, 0x7805, 0x1ef2, 0x780b, 0x1ee7, - 0x7812, 0x1edc, 0x7818, 0x1ed1, 0x781e, 0x1ec6, 0x7824, 0x1ebb, - 0x782a, 0x1eb0, 0x7830, 0x1ea5, 0x7836, 0x1e9a, 0x783c, 0x1e8f, - 0x7842, 0x1e84, 0x7848, 0x1e79, 0x784e, 0x1e6e, 0x7854, 0x1e63, - 0x785a, 0x1e58, 0x7860, 0x1e4d, 0x7866, 0x1e42, 0x786b, 0x1e36, - 0x7871, 0x1e2b, 0x7877, 0x1e20, 0x787d, 0x1e15, 0x7883, 0x1e0a, - 0x7889, 0x1dff, 0x788f, 0x1df4, 0x7895, 0x1de9, 0x789b, 0x1dde, - 0x78a1, 0x1dd3, 0x78a6, 0x1dc7, 0x78ac, 0x1dbc, 0x78b2, 0x1db1, - 0x78b8, 0x1da6, 0x78be, 0x1d9b, 0x78c3, 0x1d90, 0x78c9, 0x1d85, - 0x78cf, 0x1d79, 0x78d5, 0x1d6e, 0x78db, 0x1d63, 0x78e0, 0x1d58, - 0x78e6, 0x1d4d, 0x78ec, 0x1d42, 0x78f2, 0x1d36, 0x78f7, 0x1d2b, - 0x78fd, 0x1d20, 0x7903, 0x1d15, 0x7909, 0x1d0a, 0x790e, 0x1cff, - 0x7914, 0x1cf3, 0x791a, 0x1ce8, 0x791f, 0x1cdd, 0x7925, 0x1cd2, - 0x792b, 0x1cc6, 0x7930, 0x1cbb, 0x7936, 0x1cb0, 0x793b, 0x1ca5, - 0x7941, 0x1c99, 0x7947, 0x1c8e, 0x794c, 0x1c83, 0x7952, 0x1c78, - 0x7958, 0x1c6c, 0x795d, 0x1c61, 0x7963, 0x1c56, 0x7968, 0x1c4b, - 0x796e, 0x1c3f, 0x7973, 0x1c34, 0x7979, 0x1c29, 0x797e, 0x1c1e, - 0x7984, 0x1c12, 0x7989, 0x1c07, 0x798f, 0x1bfc, 0x7994, 0x1bf0, - 0x799a, 0x1be5, 0x799f, 0x1bda, 0x79a5, 0x1bce, 0x79aa, 0x1bc3, - 0x79b0, 0x1bb8, 0x79b5, 0x1bac, 0x79bb, 0x1ba1, 0x79c0, 0x1b96, - 0x79c5, 0x1b8a, 0x79cb, 0x1b7f, 0x79d0, 0x1b74, 0x79d6, 0x1b68, - 0x79db, 0x1b5d, 0x79e0, 0x1b52, 0x79e6, 0x1b46, 0x79eb, 0x1b3b, - 0x79f0, 0x1b30, 0x79f6, 0x1b24, 0x79fb, 0x1b19, 0x7a00, 0x1b0d, - 0x7a06, 0x1b02, 0x7a0b, 0x1af7, 0x7a10, 0x1aeb, 0x7a16, 0x1ae0, - 0x7a1b, 0x1ad4, 0x7a20, 0x1ac9, 0x7a25, 0x1abe, 0x7a2b, 0x1ab2, - 0x7a30, 0x1aa7, 0x7a35, 0x1a9b, 0x7a3a, 0x1a90, 0x7a3f, 0x1a84, - 0x7a45, 0x1a79, 0x7a4a, 0x1a6e, 0x7a4f, 0x1a62, 0x7a54, 0x1a57, - 0x7a59, 0x1a4b, 0x7a5f, 0x1a40, 0x7a64, 0x1a34, 0x7a69, 0x1a29, - 0x7a6e, 0x1a1d, 0x7a73, 0x1a12, 0x7a78, 0x1a06, 0x7a7d, 0x19fb, - 0x7a82, 0x19ef, 0x7a88, 0x19e4, 0x7a8d, 0x19d8, 0x7a92, 0x19cd, - 0x7a97, 0x19c1, 0x7a9c, 0x19b6, 0x7aa1, 0x19aa, 0x7aa6, 0x199f, - 0x7aab, 0x1993, 0x7ab0, 0x1988, 0x7ab5, 0x197c, 0x7aba, 0x1971, - 0x7abf, 0x1965, 0x7ac4, 0x195a, 0x7ac9, 0x194e, 0x7ace, 0x1943, - 0x7ad3, 0x1937, 0x7ad8, 0x192c, 0x7add, 0x1920, 0x7ae2, 0x1914, - 0x7ae6, 0x1909, 0x7aeb, 0x18fd, 0x7af0, 0x18f2, 0x7af5, 0x18e6, - 0x7afa, 0x18db, 0x7aff, 0x18cf, 0x7b04, 0x18c3, 0x7b09, 0x18b8, - 0x7b0e, 0x18ac, 0x7b12, 0x18a1, 0x7b17, 0x1895, 0x7b1c, 0x1889, - 0x7b21, 0x187e, 0x7b26, 0x1872, 0x7b2a, 0x1867, 0x7b2f, 0x185b, - 0x7b34, 0x184f, 0x7b39, 0x1844, 0x7b3e, 0x1838, 0x7b42, 0x182d, - 0x7b47, 0x1821, 0x7b4c, 0x1815, 0x7b50, 0x180a, 0x7b55, 0x17fe, - 0x7b5a, 0x17f2, 0x7b5f, 0x17e7, 0x7b63, 0x17db, 0x7b68, 0x17cf, - 0x7b6d, 0x17c4, 0x7b71, 0x17b8, 0x7b76, 0x17ac, 0x7b7b, 0x17a1, - 0x7b7f, 0x1795, 0x7b84, 0x1789, 0x7b88, 0x177e, 0x7b8d, 0x1772, - 0x7b92, 0x1766, 0x7b96, 0x175b, 0x7b9b, 0x174f, 0x7b9f, 0x1743, - 0x7ba4, 0x1737, 0x7ba9, 0x172c, 0x7bad, 0x1720, 0x7bb2, 0x1714, - 0x7bb6, 0x1709, 0x7bbb, 0x16fd, 0x7bbf, 0x16f1, 0x7bc4, 0x16e5, - 0x7bc8, 0x16da, 0x7bcd, 0x16ce, 0x7bd1, 0x16c2, 0x7bd6, 0x16b6, - 0x7bda, 0x16ab, 0x7bde, 0x169f, 0x7be3, 0x1693, 0x7be7, 0x1687, - 0x7bec, 0x167c, 0x7bf0, 0x1670, 0x7bf5, 0x1664, 0x7bf9, 0x1658, - 0x7bfd, 0x164c, 0x7c02, 0x1641, 0x7c06, 0x1635, 0x7c0a, 0x1629, - 0x7c0f, 0x161d, 0x7c13, 0x1612, 0x7c17, 0x1606, 0x7c1c, 0x15fa, - 0x7c20, 0x15ee, 0x7c24, 0x15e2, 0x7c29, 0x15d7, 0x7c2d, 0x15cb, - 0x7c31, 0x15bf, 0x7c36, 0x15b3, 0x7c3a, 0x15a7, 0x7c3e, 0x159b, - 0x7c42, 0x1590, 0x7c46, 0x1584, 0x7c4b, 0x1578, 0x7c4f, 0x156c, - 0x7c53, 0x1560, 0x7c57, 0x1554, 0x7c5b, 0x1549, 0x7c60, 0x153d, - 0x7c64, 0x1531, 0x7c68, 0x1525, 0x7c6c, 0x1519, 0x7c70, 0x150d, - 0x7c74, 0x1501, 0x7c79, 0x14f6, 0x7c7d, 0x14ea, 0x7c81, 0x14de, - 0x7c85, 0x14d2, 0x7c89, 0x14c6, 0x7c8d, 0x14ba, 0x7c91, 0x14ae, - 0x7c95, 0x14a2, 0x7c99, 0x1496, 0x7c9d, 0x148b, 0x7ca1, 0x147f, - 0x7ca5, 0x1473, 0x7ca9, 0x1467, 0x7cad, 0x145b, 0x7cb1, 0x144f, - 0x7cb5, 0x1443, 0x7cb9, 0x1437, 0x7cbd, 0x142b, 0x7cc1, 0x141f, - 0x7cc5, 0x1413, 0x7cc9, 0x1407, 0x7ccd, 0x13fb, 0x7cd1, 0x13f0, - 0x7cd5, 0x13e4, 0x7cd9, 0x13d8, 0x7cdd, 0x13cc, 0x7ce0, 0x13c0, - 0x7ce4, 0x13b4, 0x7ce8, 0x13a8, 0x7cec, 0x139c, 0x7cf0, 0x1390, - 0x7cf4, 0x1384, 0x7cf8, 0x1378, 0x7cfb, 0x136c, 0x7cff, 0x1360, - 0x7d03, 0x1354, 0x7d07, 0x1348, 0x7d0b, 0x133c, 0x7d0e, 0x1330, - 0x7d12, 0x1324, 0x7d16, 0x1318, 0x7d1a, 0x130c, 0x7d1d, 0x1300, - 0x7d21, 0x12f4, 0x7d25, 0x12e8, 0x7d28, 0x12dc, 0x7d2c, 0x12d0, - 0x7d30, 0x12c4, 0x7d34, 0x12b8, 0x7d37, 0x12ac, 0x7d3b, 0x12a0, - 0x7d3f, 0x1294, 0x7d42, 0x1288, 0x7d46, 0x127c, 0x7d49, 0x1270, - 0x7d4d, 0x1264, 0x7d51, 0x1258, 0x7d54, 0x124c, 0x7d58, 0x1240, - 0x7d5b, 0x1234, 0x7d5f, 0x1228, 0x7d63, 0x121c, 0x7d66, 0x1210, - 0x7d6a, 0x1204, 0x7d6d, 0x11f7, 0x7d71, 0x11eb, 0x7d74, 0x11df, - 0x7d78, 0x11d3, 0x7d7b, 0x11c7, 0x7d7f, 0x11bb, 0x7d82, 0x11af, - 0x7d86, 0x11a3, 0x7d89, 0x1197, 0x7d8d, 0x118b, 0x7d90, 0x117f, - 0x7d93, 0x1173, 0x7d97, 0x1167, 0x7d9a, 0x115a, 0x7d9e, 0x114e, - 0x7da1, 0x1142, 0x7da4, 0x1136, 0x7da8, 0x112a, 0x7dab, 0x111e, - 0x7daf, 0x1112, 0x7db2, 0x1106, 0x7db5, 0x10fa, 0x7db9, 0x10ed, - 0x7dbc, 0x10e1, 0x7dbf, 0x10d5, 0x7dc2, 0x10c9, 0x7dc6, 0x10bd, - 0x7dc9, 0x10b1, 0x7dcc, 0x10a5, 0x7dd0, 0x1099, 0x7dd3, 0x108c, - 0x7dd6, 0x1080, 0x7dd9, 0x1074, 0x7ddd, 0x1068, 0x7de0, 0x105c, - 0x7de3, 0x1050, 0x7de6, 0x1044, 0x7de9, 0x1037, 0x7ded, 0x102b, - 0x7df0, 0x101f, 0x7df3, 0x1013, 0x7df6, 0x1007, 0x7df9, 0xffb, - 0x7dfc, 0xfee, 0x7dff, 0xfe2, 0x7e03, 0xfd6, 0x7e06, 0xfca, - 0x7e09, 0xfbe, 0x7e0c, 0xfb2, 0x7e0f, 0xfa5, 0x7e12, 0xf99, - 0x7e15, 0xf8d, 0x7e18, 0xf81, 0x7e1b, 0xf75, 0x7e1e, 0xf68, - 0x7e21, 0xf5c, 0x7e24, 0xf50, 0x7e27, 0xf44, 0x7e2a, 0xf38, - 0x7e2d, 0xf2b, 0x7e30, 0xf1f, 0x7e33, 0xf13, 0x7e36, 0xf07, - 0x7e39, 0xefb, 0x7e3c, 0xeee, 0x7e3f, 0xee2, 0x7e42, 0xed6, - 0x7e45, 0xeca, 0x7e48, 0xebd, 0x7e4a, 0xeb1, 0x7e4d, 0xea5, - 0x7e50, 0xe99, 0x7e53, 0xe8c, 0x7e56, 0xe80, 0x7e59, 0xe74, - 0x7e5c, 0xe68, 0x7e5e, 0xe5c, 0x7e61, 0xe4f, 0x7e64, 0xe43, - 0x7e67, 0xe37, 0x7e6a, 0xe2b, 0x7e6c, 0xe1e, 0x7e6f, 0xe12, - 0x7e72, 0xe06, 0x7e75, 0xdf9, 0x7e77, 0xded, 0x7e7a, 0xde1, - 0x7e7d, 0xdd5, 0x7e80, 0xdc8, 0x7e82, 0xdbc, 0x7e85, 0xdb0, - 0x7e88, 0xda4, 0x7e8a, 0xd97, 0x7e8d, 0xd8b, 0x7e90, 0xd7f, - 0x7e92, 0xd72, 0x7e95, 0xd66, 0x7e98, 0xd5a, 0x7e9a, 0xd4e, - 0x7e9d, 0xd41, 0x7e9f, 0xd35, 0x7ea2, 0xd29, 0x7ea5, 0xd1c, - 0x7ea7, 0xd10, 0x7eaa, 0xd04, 0x7eac, 0xcf8, 0x7eaf, 0xceb, - 0x7eb1, 0xcdf, 0x7eb4, 0xcd3, 0x7eb6, 0xcc6, 0x7eb9, 0xcba, - 0x7ebb, 0xcae, 0x7ebe, 0xca1, 0x7ec0, 0xc95, 0x7ec3, 0xc89, - 0x7ec5, 0xc7c, 0x7ec8, 0xc70, 0x7eca, 0xc64, 0x7ecc, 0xc57, - 0x7ecf, 0xc4b, 0x7ed1, 0xc3f, 0x7ed4, 0xc32, 0x7ed6, 0xc26, - 0x7ed8, 0xc1a, 0x7edb, 0xc0d, 0x7edd, 0xc01, 0x7ee0, 0xbf5, - 0x7ee2, 0xbe8, 0x7ee4, 0xbdc, 0x7ee7, 0xbd0, 0x7ee9, 0xbc3, - 0x7eeb, 0xbb7, 0x7eed, 0xbab, 0x7ef0, 0xb9e, 0x7ef2, 0xb92, - 0x7ef4, 0xb85, 0x7ef7, 0xb79, 0x7ef9, 0xb6d, 0x7efb, 0xb60, - 0x7efd, 0xb54, 0x7f00, 0xb48, 0x7f02, 0xb3b, 0x7f04, 0xb2f, - 0x7f06, 0xb23, 0x7f08, 0xb16, 0x7f0a, 0xb0a, 0x7f0d, 0xafd, - 0x7f0f, 0xaf1, 0x7f11, 0xae5, 0x7f13, 0xad8, 0x7f15, 0xacc, - 0x7f17, 0xac0, 0x7f19, 0xab3, 0x7f1c, 0xaa7, 0x7f1e, 0xa9a, - 0x7f20, 0xa8e, 0x7f22, 0xa82, 0x7f24, 0xa75, 0x7f26, 0xa69, - 0x7f28, 0xa5c, 0x7f2a, 0xa50, 0x7f2c, 0xa44, 0x7f2e, 0xa37, - 0x7f30, 0xa2b, 0x7f32, 0xa1e, 0x7f34, 0xa12, 0x7f36, 0xa06, - 0x7f38, 0x9f9, 0x7f3a, 0x9ed, 0x7f3c, 0x9e0, 0x7f3e, 0x9d4, - 0x7f40, 0x9c7, 0x7f42, 0x9bb, 0x7f43, 0x9af, 0x7f45, 0x9a2, - 0x7f47, 0x996, 0x7f49, 0x989, 0x7f4b, 0x97d, 0x7f4d, 0x970, - 0x7f4f, 0x964, 0x7f51, 0x958, 0x7f52, 0x94b, 0x7f54, 0x93f, - 0x7f56, 0x932, 0x7f58, 0x926, 0x7f5a, 0x919, 0x7f5b, 0x90d, - 0x7f5d, 0x901, 0x7f5f, 0x8f4, 0x7f61, 0x8e8, 0x7f62, 0x8db, - 0x7f64, 0x8cf, 0x7f66, 0x8c2, 0x7f68, 0x8b6, 0x7f69, 0x8a9, - 0x7f6b, 0x89d, 0x7f6d, 0x891, 0x7f6e, 0x884, 0x7f70, 0x878, - 0x7f72, 0x86b, 0x7f73, 0x85f, 0x7f75, 0x852, 0x7f77, 0x846, - 0x7f78, 0x839, 0x7f7a, 0x82d, 0x7f7b, 0x820, 0x7f7d, 0x814, - 0x7f7f, 0x807, 0x7f80, 0x7fb, 0x7f82, 0x7ef, 0x7f83, 0x7e2, - 0x7f85, 0x7d6, 0x7f86, 0x7c9, 0x7f88, 0x7bd, 0x7f89, 0x7b0, - 0x7f8b, 0x7a4, 0x7f8c, 0x797, 0x7f8e, 0x78b, 0x7f8f, 0x77e, - 0x7f91, 0x772, 0x7f92, 0x765, 0x7f94, 0x759, 0x7f95, 0x74c, - 0x7f97, 0x740, 0x7f98, 0x733, 0x7f99, 0x727, 0x7f9b, 0x71a, - 0x7f9c, 0x70e, 0x7f9e, 0x701, 0x7f9f, 0x6f5, 0x7fa0, 0x6e8, - 0x7fa2, 0x6dc, 0x7fa3, 0x6cf, 0x7fa4, 0x6c3, 0x7fa6, 0x6b6, - 0x7fa7, 0x6aa, 0x7fa8, 0x69d, 0x7faa, 0x691, 0x7fab, 0x684, - 0x7fac, 0x678, 0x7fad, 0x66b, 0x7faf, 0x65f, 0x7fb0, 0x652, - 0x7fb1, 0x646, 0x7fb2, 0x639, 0x7fb4, 0x62d, 0x7fb5, 0x620, - 0x7fb6, 0x614, 0x7fb7, 0x607, 0x7fb8, 0x5fb, 0x7fb9, 0x5ee, - 0x7fbb, 0x5e2, 0x7fbc, 0x5d5, 0x7fbd, 0x5c9, 0x7fbe, 0x5bc, - 0x7fbf, 0x5b0, 0x7fc0, 0x5a3, 0x7fc1, 0x597, 0x7fc3, 0x58a, - 0x7fc4, 0x57e, 0x7fc5, 0x571, 0x7fc6, 0x565, 0x7fc7, 0x558, - 0x7fc8, 0x54c, 0x7fc9, 0x53f, 0x7fca, 0x533, 0x7fcb, 0x526, - 0x7fcc, 0x51a, 0x7fcd, 0x50d, 0x7fce, 0x500, 0x7fcf, 0x4f4, - 0x7fd0, 0x4e7, 0x7fd1, 0x4db, 0x7fd2, 0x4ce, 0x7fd3, 0x4c2, - 0x7fd4, 0x4b5, 0x7fd5, 0x4a9, 0x7fd5, 0x49c, 0x7fd6, 0x490, - 0x7fd7, 0x483, 0x7fd8, 0x477, 0x7fd9, 0x46a, 0x7fda, 0x45e, - 0x7fdb, 0x451, 0x7fdc, 0x444, 0x7fdc, 0x438, 0x7fdd, 0x42b, - 0x7fde, 0x41f, 0x7fdf, 0x412, 0x7fe0, 0x406, 0x7fe0, 0x3f9, - 0x7fe1, 0x3ed, 0x7fe2, 0x3e0, 0x7fe3, 0x3d4, 0x7fe3, 0x3c7, - 0x7fe4, 0x3bb, 0x7fe5, 0x3ae, 0x7fe6, 0x3a1, 0x7fe6, 0x395, - 0x7fe7, 0x388, 0x7fe8, 0x37c, 0x7fe8, 0x36f, 0x7fe9, 0x363, - 0x7fea, 0x356, 0x7fea, 0x34a, 0x7feb, 0x33d, 0x7fec, 0x330, - 0x7fec, 0x324, 0x7fed, 0x317, 0x7fed, 0x30b, 0x7fee, 0x2fe, - 0x7fef, 0x2f2, 0x7fef, 0x2e5, 0x7ff0, 0x2d9, 0x7ff0, 0x2cc, - 0x7ff1, 0x2c0, 0x7ff1, 0x2b3, 0x7ff2, 0x2a6, 0x7ff2, 0x29a, - 0x7ff3, 0x28d, 0x7ff3, 0x281, 0x7ff4, 0x274, 0x7ff4, 0x268, - 0x7ff5, 0x25b, 0x7ff5, 0x24e, 0x7ff6, 0x242, 0x7ff6, 0x235, - 0x7ff7, 0x229, 0x7ff7, 0x21c, 0x7ff7, 0x210, 0x7ff8, 0x203, - 0x7ff8, 0x1f7, 0x7ff9, 0x1ea, 0x7ff9, 0x1dd, 0x7ff9, 0x1d1, - 0x7ffa, 0x1c4, 0x7ffa, 0x1b8, 0x7ffa, 0x1ab, 0x7ffb, 0x19f, - 0x7ffb, 0x192, 0x7ffb, 0x186, 0x7ffc, 0x179, 0x7ffc, 0x16c, - 0x7ffc, 0x160, 0x7ffc, 0x153, 0x7ffd, 0x147, 0x7ffd, 0x13a, - 0x7ffd, 0x12e, 0x7ffd, 0x121, 0x7ffe, 0x114, 0x7ffe, 0x108, - 0x7ffe, 0xfb, 0x7ffe, 0xef, 0x7ffe, 0xe2, 0x7fff, 0xd6, - 0x7fff, 0xc9, 0x7fff, 0xbc, 0x7fff, 0xb0, 0x7fff, 0xa3, - 0x7fff, 0x97, 0x7fff, 0x8a, 0x7fff, 0x7e, 0x7fff, 0x71, - 0x7fff, 0x65, 0x7fff, 0x58, 0x7fff, 0x4b, 0x7fff, 0x3f, - 0x7fff, 0x32, 0x7fff, 0x26, 0x7fff, 0x19, 0x7fff, 0xd, - 0x7fff, 0x0, 0x7fff, 0xfff3, 0x7fff, 0xffe7, 0x7fff, 0xffda, - 0x7fff, 0xffce, 0x7fff, 0xffc1, 0x7fff, 0xffb5, 0x7fff, 0xffa8, - 0x7fff, 0xff9b, 0x7fff, 0xff8f, 0x7fff, 0xff82, 0x7fff, 0xff76, - 0x7fff, 0xff69, 0x7fff, 0xff5d, 0x7fff, 0xff50, 0x7fff, 0xff44, - 0x7fff, 0xff37, 0x7fff, 0xff2a, 0x7ffe, 0xff1e, 0x7ffe, 0xff11, - 0x7ffe, 0xff05, 0x7ffe, 0xfef8, 0x7ffe, 0xfeec, 0x7ffd, 0xfedf, - 0x7ffd, 0xfed2, 0x7ffd, 0xfec6, 0x7ffd, 0xfeb9, 0x7ffc, 0xfead, - 0x7ffc, 0xfea0, 0x7ffc, 0xfe94, 0x7ffc, 0xfe87, 0x7ffb, 0xfe7a, - 0x7ffb, 0xfe6e, 0x7ffb, 0xfe61, 0x7ffa, 0xfe55, 0x7ffa, 0xfe48, - 0x7ffa, 0xfe3c, 0x7ff9, 0xfe2f, 0x7ff9, 0xfe23, 0x7ff9, 0xfe16, - 0x7ff8, 0xfe09, 0x7ff8, 0xfdfd, 0x7ff7, 0xfdf0, 0x7ff7, 0xfde4, - 0x7ff7, 0xfdd7, 0x7ff6, 0xfdcb, 0x7ff6, 0xfdbe, 0x7ff5, 0xfdb2, - 0x7ff5, 0xfda5, 0x7ff4, 0xfd98, 0x7ff4, 0xfd8c, 0x7ff3, 0xfd7f, - 0x7ff3, 0xfd73, 0x7ff2, 0xfd66, 0x7ff2, 0xfd5a, 0x7ff1, 0xfd4d, - 0x7ff1, 0xfd40, 0x7ff0, 0xfd34, 0x7ff0, 0xfd27, 0x7fef, 0xfd1b, - 0x7fef, 0xfd0e, 0x7fee, 0xfd02, 0x7fed, 0xfcf5, 0x7fed, 0xfce9, - 0x7fec, 0xfcdc, 0x7fec, 0xfcd0, 0x7feb, 0xfcc3, 0x7fea, 0xfcb6, - 0x7fea, 0xfcaa, 0x7fe9, 0xfc9d, 0x7fe8, 0xfc91, 0x7fe8, 0xfc84, - 0x7fe7, 0xfc78, 0x7fe6, 0xfc6b, 0x7fe6, 0xfc5f, 0x7fe5, 0xfc52, - 0x7fe4, 0xfc45, 0x7fe3, 0xfc39, 0x7fe3, 0xfc2c, 0x7fe2, 0xfc20, - 0x7fe1, 0xfc13, 0x7fe0, 0xfc07, 0x7fe0, 0xfbfa, 0x7fdf, 0xfbee, - 0x7fde, 0xfbe1, 0x7fdd, 0xfbd5, 0x7fdc, 0xfbc8, 0x7fdc, 0xfbbc, - 0x7fdb, 0xfbaf, 0x7fda, 0xfba2, 0x7fd9, 0xfb96, 0x7fd8, 0xfb89, - 0x7fd7, 0xfb7d, 0x7fd6, 0xfb70, 0x7fd5, 0xfb64, 0x7fd5, 0xfb57, - 0x7fd4, 0xfb4b, 0x7fd3, 0xfb3e, 0x7fd2, 0xfb32, 0x7fd1, 0xfb25, - 0x7fd0, 0xfb19, 0x7fcf, 0xfb0c, 0x7fce, 0xfb00, 0x7fcd, 0xfaf3, - 0x7fcc, 0xfae6, 0x7fcb, 0xfada, 0x7fca, 0xfacd, 0x7fc9, 0xfac1, - 0x7fc8, 0xfab4, 0x7fc7, 0xfaa8, 0x7fc6, 0xfa9b, 0x7fc5, 0xfa8f, - 0x7fc4, 0xfa82, 0x7fc3, 0xfa76, 0x7fc1, 0xfa69, 0x7fc0, 0xfa5d, - 0x7fbf, 0xfa50, 0x7fbe, 0xfa44, 0x7fbd, 0xfa37, 0x7fbc, 0xfa2b, - 0x7fbb, 0xfa1e, 0x7fb9, 0xfa12, 0x7fb8, 0xfa05, 0x7fb7, 0xf9f9, - 0x7fb6, 0xf9ec, 0x7fb5, 0xf9e0, 0x7fb4, 0xf9d3, 0x7fb2, 0xf9c7, - 0x7fb1, 0xf9ba, 0x7fb0, 0xf9ae, 0x7faf, 0xf9a1, 0x7fad, 0xf995, - 0x7fac, 0xf988, 0x7fab, 0xf97c, 0x7faa, 0xf96f, 0x7fa8, 0xf963, - 0x7fa7, 0xf956, 0x7fa6, 0xf94a, 0x7fa4, 0xf93d, 0x7fa3, 0xf931, - 0x7fa2, 0xf924, 0x7fa0, 0xf918, 0x7f9f, 0xf90b, 0x7f9e, 0xf8ff, - 0x7f9c, 0xf8f2, 0x7f9b, 0xf8e6, 0x7f99, 0xf8d9, 0x7f98, 0xf8cd, - 0x7f97, 0xf8c0, 0x7f95, 0xf8b4, 0x7f94, 0xf8a7, 0x7f92, 0xf89b, - 0x7f91, 0xf88e, 0x7f8f, 0xf882, 0x7f8e, 0xf875, 0x7f8c, 0xf869, - 0x7f8b, 0xf85c, 0x7f89, 0xf850, 0x7f88, 0xf843, 0x7f86, 0xf837, - 0x7f85, 0xf82a, 0x7f83, 0xf81e, 0x7f82, 0xf811, 0x7f80, 0xf805, - 0x7f7f, 0xf7f9, 0x7f7d, 0xf7ec, 0x7f7b, 0xf7e0, 0x7f7a, 0xf7d3, - 0x7f78, 0xf7c7, 0x7f77, 0xf7ba, 0x7f75, 0xf7ae, 0x7f73, 0xf7a1, - 0x7f72, 0xf795, 0x7f70, 0xf788, 0x7f6e, 0xf77c, 0x7f6d, 0xf76f, - 0x7f6b, 0xf763, 0x7f69, 0xf757, 0x7f68, 0xf74a, 0x7f66, 0xf73e, - 0x7f64, 0xf731, 0x7f62, 0xf725, 0x7f61, 0xf718, 0x7f5f, 0xf70c, - 0x7f5d, 0xf6ff, 0x7f5b, 0xf6f3, 0x7f5a, 0xf6e7, 0x7f58, 0xf6da, - 0x7f56, 0xf6ce, 0x7f54, 0xf6c1, 0x7f52, 0xf6b5, 0x7f51, 0xf6a8, - 0x7f4f, 0xf69c, 0x7f4d, 0xf690, 0x7f4b, 0xf683, 0x7f49, 0xf677, - 0x7f47, 0xf66a, 0x7f45, 0xf65e, 0x7f43, 0xf651, 0x7f42, 0xf645, - 0x7f40, 0xf639, 0x7f3e, 0xf62c, 0x7f3c, 0xf620, 0x7f3a, 0xf613, - 0x7f38, 0xf607, 0x7f36, 0xf5fa, 0x7f34, 0xf5ee, 0x7f32, 0xf5e2, - 0x7f30, 0xf5d5, 0x7f2e, 0xf5c9, 0x7f2c, 0xf5bc, 0x7f2a, 0xf5b0, - 0x7f28, 0xf5a4, 0x7f26, 0xf597, 0x7f24, 0xf58b, 0x7f22, 0xf57e, - 0x7f20, 0xf572, 0x7f1e, 0xf566, 0x7f1c, 0xf559, 0x7f19, 0xf54d, - 0x7f17, 0xf540, 0x7f15, 0xf534, 0x7f13, 0xf528, 0x7f11, 0xf51b, - 0x7f0f, 0xf50f, 0x7f0d, 0xf503, 0x7f0a, 0xf4f6, 0x7f08, 0xf4ea, - 0x7f06, 0xf4dd, 0x7f04, 0xf4d1, 0x7f02, 0xf4c5, 0x7f00, 0xf4b8, - 0x7efd, 0xf4ac, 0x7efb, 0xf4a0, 0x7ef9, 0xf493, 0x7ef7, 0xf487, - 0x7ef4, 0xf47b, 0x7ef2, 0xf46e, 0x7ef0, 0xf462, 0x7eed, 0xf455, - 0x7eeb, 0xf449, 0x7ee9, 0xf43d, 0x7ee7, 0xf430, 0x7ee4, 0xf424, - 0x7ee2, 0xf418, 0x7ee0, 0xf40b, 0x7edd, 0xf3ff, 0x7edb, 0xf3f3, - 0x7ed8, 0xf3e6, 0x7ed6, 0xf3da, 0x7ed4, 0xf3ce, 0x7ed1, 0xf3c1, - 0x7ecf, 0xf3b5, 0x7ecc, 0xf3a9, 0x7eca, 0xf39c, 0x7ec8, 0xf390, - 0x7ec5, 0xf384, 0x7ec3, 0xf377, 0x7ec0, 0xf36b, 0x7ebe, 0xf35f, - 0x7ebb, 0xf352, 0x7eb9, 0xf346, 0x7eb6, 0xf33a, 0x7eb4, 0xf32d, - 0x7eb1, 0xf321, 0x7eaf, 0xf315, 0x7eac, 0xf308, 0x7eaa, 0xf2fc, - 0x7ea7, 0xf2f0, 0x7ea5, 0xf2e4, 0x7ea2, 0xf2d7, 0x7e9f, 0xf2cb, - 0x7e9d, 0xf2bf, 0x7e9a, 0xf2b2, 0x7e98, 0xf2a6, 0x7e95, 0xf29a, - 0x7e92, 0xf28e, 0x7e90, 0xf281, 0x7e8d, 0xf275, 0x7e8a, 0xf269, - 0x7e88, 0xf25c, 0x7e85, 0xf250, 0x7e82, 0xf244, 0x7e80, 0xf238, - 0x7e7d, 0xf22b, 0x7e7a, 0xf21f, 0x7e77, 0xf213, 0x7e75, 0xf207, - 0x7e72, 0xf1fa, 0x7e6f, 0xf1ee, 0x7e6c, 0xf1e2, 0x7e6a, 0xf1d5, - 0x7e67, 0xf1c9, 0x7e64, 0xf1bd, 0x7e61, 0xf1b1, 0x7e5e, 0xf1a4, - 0x7e5c, 0xf198, 0x7e59, 0xf18c, 0x7e56, 0xf180, 0x7e53, 0xf174, - 0x7e50, 0xf167, 0x7e4d, 0xf15b, 0x7e4a, 0xf14f, 0x7e48, 0xf143, - 0x7e45, 0xf136, 0x7e42, 0xf12a, 0x7e3f, 0xf11e, 0x7e3c, 0xf112, - 0x7e39, 0xf105, 0x7e36, 0xf0f9, 0x7e33, 0xf0ed, 0x7e30, 0xf0e1, - 0x7e2d, 0xf0d5, 0x7e2a, 0xf0c8, 0x7e27, 0xf0bc, 0x7e24, 0xf0b0, - 0x7e21, 0xf0a4, 0x7e1e, 0xf098, 0x7e1b, 0xf08b, 0x7e18, 0xf07f, - 0x7e15, 0xf073, 0x7e12, 0xf067, 0x7e0f, 0xf05b, 0x7e0c, 0xf04e, - 0x7e09, 0xf042, 0x7e06, 0xf036, 0x7e03, 0xf02a, 0x7dff, 0xf01e, - 0x7dfc, 0xf012, 0x7df9, 0xf005, 0x7df6, 0xeff9, 0x7df3, 0xefed, - 0x7df0, 0xefe1, 0x7ded, 0xefd5, 0x7de9, 0xefc9, 0x7de6, 0xefbc, - 0x7de3, 0xefb0, 0x7de0, 0xefa4, 0x7ddd, 0xef98, 0x7dd9, 0xef8c, - 0x7dd6, 0xef80, 0x7dd3, 0xef74, 0x7dd0, 0xef67, 0x7dcc, 0xef5b, - 0x7dc9, 0xef4f, 0x7dc6, 0xef43, 0x7dc2, 0xef37, 0x7dbf, 0xef2b, - 0x7dbc, 0xef1f, 0x7db9, 0xef13, 0x7db5, 0xef06, 0x7db2, 0xeefa, - 0x7daf, 0xeeee, 0x7dab, 0xeee2, 0x7da8, 0xeed6, 0x7da4, 0xeeca, - 0x7da1, 0xeebe, 0x7d9e, 0xeeb2, 0x7d9a, 0xeea6, 0x7d97, 0xee99, - 0x7d93, 0xee8d, 0x7d90, 0xee81, 0x7d8d, 0xee75, 0x7d89, 0xee69, - 0x7d86, 0xee5d, 0x7d82, 0xee51, 0x7d7f, 0xee45, 0x7d7b, 0xee39, - 0x7d78, 0xee2d, 0x7d74, 0xee21, 0x7d71, 0xee15, 0x7d6d, 0xee09, - 0x7d6a, 0xedfc, 0x7d66, 0xedf0, 0x7d63, 0xede4, 0x7d5f, 0xedd8, - 0x7d5b, 0xedcc, 0x7d58, 0xedc0, 0x7d54, 0xedb4, 0x7d51, 0xeda8, - 0x7d4d, 0xed9c, 0x7d49, 0xed90, 0x7d46, 0xed84, 0x7d42, 0xed78, - 0x7d3f, 0xed6c, 0x7d3b, 0xed60, 0x7d37, 0xed54, 0x7d34, 0xed48, - 0x7d30, 0xed3c, 0x7d2c, 0xed30, 0x7d28, 0xed24, 0x7d25, 0xed18, - 0x7d21, 0xed0c, 0x7d1d, 0xed00, 0x7d1a, 0xecf4, 0x7d16, 0xece8, - 0x7d12, 0xecdc, 0x7d0e, 0xecd0, 0x7d0b, 0xecc4, 0x7d07, 0xecb8, - 0x7d03, 0xecac, 0x7cff, 0xeca0, 0x7cfb, 0xec94, 0x7cf8, 0xec88, - 0x7cf4, 0xec7c, 0x7cf0, 0xec70, 0x7cec, 0xec64, 0x7ce8, 0xec58, - 0x7ce4, 0xec4c, 0x7ce0, 0xec40, 0x7cdd, 0xec34, 0x7cd9, 0xec28, - 0x7cd5, 0xec1c, 0x7cd1, 0xec10, 0x7ccd, 0xec05, 0x7cc9, 0xebf9, - 0x7cc5, 0xebed, 0x7cc1, 0xebe1, 0x7cbd, 0xebd5, 0x7cb9, 0xebc9, - 0x7cb5, 0xebbd, 0x7cb1, 0xebb1, 0x7cad, 0xeba5, 0x7ca9, 0xeb99, - 0x7ca5, 0xeb8d, 0x7ca1, 0xeb81, 0x7c9d, 0xeb75, 0x7c99, 0xeb6a, - 0x7c95, 0xeb5e, 0x7c91, 0xeb52, 0x7c8d, 0xeb46, 0x7c89, 0xeb3a, - 0x7c85, 0xeb2e, 0x7c81, 0xeb22, 0x7c7d, 0xeb16, 0x7c79, 0xeb0a, - 0x7c74, 0xeaff, 0x7c70, 0xeaf3, 0x7c6c, 0xeae7, 0x7c68, 0xeadb, - 0x7c64, 0xeacf, 0x7c60, 0xeac3, 0x7c5b, 0xeab7, 0x7c57, 0xeaac, - 0x7c53, 0xeaa0, 0x7c4f, 0xea94, 0x7c4b, 0xea88, 0x7c46, 0xea7c, - 0x7c42, 0xea70, 0x7c3e, 0xea65, 0x7c3a, 0xea59, 0x7c36, 0xea4d, - 0x7c31, 0xea41, 0x7c2d, 0xea35, 0x7c29, 0xea29, 0x7c24, 0xea1e, - 0x7c20, 0xea12, 0x7c1c, 0xea06, 0x7c17, 0xe9fa, 0x7c13, 0xe9ee, - 0x7c0f, 0xe9e3, 0x7c0a, 0xe9d7, 0x7c06, 0xe9cb, 0x7c02, 0xe9bf, - 0x7bfd, 0xe9b4, 0x7bf9, 0xe9a8, 0x7bf5, 0xe99c, 0x7bf0, 0xe990, - 0x7bec, 0xe984, 0x7be7, 0xe979, 0x7be3, 0xe96d, 0x7bde, 0xe961, - 0x7bda, 0xe955, 0x7bd6, 0xe94a, 0x7bd1, 0xe93e, 0x7bcd, 0xe932, - 0x7bc8, 0xe926, 0x7bc4, 0xe91b, 0x7bbf, 0xe90f, 0x7bbb, 0xe903, - 0x7bb6, 0xe8f7, 0x7bb2, 0xe8ec, 0x7bad, 0xe8e0, 0x7ba9, 0xe8d4, - 0x7ba4, 0xe8c9, 0x7b9f, 0xe8bd, 0x7b9b, 0xe8b1, 0x7b96, 0xe8a5, - 0x7b92, 0xe89a, 0x7b8d, 0xe88e, 0x7b88, 0xe882, 0x7b84, 0xe877, - 0x7b7f, 0xe86b, 0x7b7b, 0xe85f, 0x7b76, 0xe854, 0x7b71, 0xe848, - 0x7b6d, 0xe83c, 0x7b68, 0xe831, 0x7b63, 0xe825, 0x7b5f, 0xe819, - 0x7b5a, 0xe80e, 0x7b55, 0xe802, 0x7b50, 0xe7f6, 0x7b4c, 0xe7eb, - 0x7b47, 0xe7df, 0x7b42, 0xe7d3, 0x7b3e, 0xe7c8, 0x7b39, 0xe7bc, - 0x7b34, 0xe7b1, 0x7b2f, 0xe7a5, 0x7b2a, 0xe799, 0x7b26, 0xe78e, - 0x7b21, 0xe782, 0x7b1c, 0xe777, 0x7b17, 0xe76b, 0x7b12, 0xe75f, - 0x7b0e, 0xe754, 0x7b09, 0xe748, 0x7b04, 0xe73d, 0x7aff, 0xe731, - 0x7afa, 0xe725, 0x7af5, 0xe71a, 0x7af0, 0xe70e, 0x7aeb, 0xe703, - 0x7ae6, 0xe6f7, 0x7ae2, 0xe6ec, 0x7add, 0xe6e0, 0x7ad8, 0xe6d4, - 0x7ad3, 0xe6c9, 0x7ace, 0xe6bd, 0x7ac9, 0xe6b2, 0x7ac4, 0xe6a6, - 0x7abf, 0xe69b, 0x7aba, 0xe68f, 0x7ab5, 0xe684, 0x7ab0, 0xe678, - 0x7aab, 0xe66d, 0x7aa6, 0xe661, 0x7aa1, 0xe656, 0x7a9c, 0xe64a, - 0x7a97, 0xe63f, 0x7a92, 0xe633, 0x7a8d, 0xe628, 0x7a88, 0xe61c, - 0x7a82, 0xe611, 0x7a7d, 0xe605, 0x7a78, 0xe5fa, 0x7a73, 0xe5ee, - 0x7a6e, 0xe5e3, 0x7a69, 0xe5d7, 0x7a64, 0xe5cc, 0x7a5f, 0xe5c0, - 0x7a59, 0xe5b5, 0x7a54, 0xe5a9, 0x7a4f, 0xe59e, 0x7a4a, 0xe592, - 0x7a45, 0xe587, 0x7a3f, 0xe57c, 0x7a3a, 0xe570, 0x7a35, 0xe565, - 0x7a30, 0xe559, 0x7a2b, 0xe54e, 0x7a25, 0xe542, 0x7a20, 0xe537, - 0x7a1b, 0xe52c, 0x7a16, 0xe520, 0x7a10, 0xe515, 0x7a0b, 0xe509, - 0x7a06, 0xe4fe, 0x7a00, 0xe4f3, 0x79fb, 0xe4e7, 0x79f6, 0xe4dc, - 0x79f0, 0xe4d0, 0x79eb, 0xe4c5, 0x79e6, 0xe4ba, 0x79e0, 0xe4ae, - 0x79db, 0xe4a3, 0x79d6, 0xe498, 0x79d0, 0xe48c, 0x79cb, 0xe481, - 0x79c5, 0xe476, 0x79c0, 0xe46a, 0x79bb, 0xe45f, 0x79b5, 0xe454, - 0x79b0, 0xe448, 0x79aa, 0xe43d, 0x79a5, 0xe432, 0x799f, 0xe426, - 0x799a, 0xe41b, 0x7994, 0xe410, 0x798f, 0xe404, 0x7989, 0xe3f9, - 0x7984, 0xe3ee, 0x797e, 0xe3e2, 0x7979, 0xe3d7, 0x7973, 0xe3cc, - 0x796e, 0xe3c1, 0x7968, 0xe3b5, 0x7963, 0xe3aa, 0x795d, 0xe39f, - 0x7958, 0xe394, 0x7952, 0xe388, 0x794c, 0xe37d, 0x7947, 0xe372, - 0x7941, 0xe367, 0x793b, 0xe35b, 0x7936, 0xe350, 0x7930, 0xe345, - 0x792b, 0xe33a, 0x7925, 0xe32e, 0x791f, 0xe323, 0x791a, 0xe318, - 0x7914, 0xe30d, 0x790e, 0xe301, 0x7909, 0xe2f6, 0x7903, 0xe2eb, - 0x78fd, 0xe2e0, 0x78f7, 0xe2d5, 0x78f2, 0xe2ca, 0x78ec, 0xe2be, - 0x78e6, 0xe2b3, 0x78e0, 0xe2a8, 0x78db, 0xe29d, 0x78d5, 0xe292, - 0x78cf, 0xe287, 0x78c9, 0xe27b, 0x78c3, 0xe270, 0x78be, 0xe265, - 0x78b8, 0xe25a, 0x78b2, 0xe24f, 0x78ac, 0xe244, 0x78a6, 0xe239, - 0x78a1, 0xe22d, 0x789b, 0xe222, 0x7895, 0xe217, 0x788f, 0xe20c, - 0x7889, 0xe201, 0x7883, 0xe1f6, 0x787d, 0xe1eb, 0x7877, 0xe1e0, - 0x7871, 0xe1d5, 0x786b, 0xe1ca, 0x7866, 0xe1be, 0x7860, 0xe1b3, - 0x785a, 0xe1a8, 0x7854, 0xe19d, 0x784e, 0xe192, 0x7848, 0xe187, - 0x7842, 0xe17c, 0x783c, 0xe171, 0x7836, 0xe166, 0x7830, 0xe15b, - 0x782a, 0xe150, 0x7824, 0xe145, 0x781e, 0xe13a, 0x7818, 0xe12f, - 0x7812, 0xe124, 0x780b, 0xe119, 0x7805, 0xe10e, 0x77ff, 0xe103, - 0x77f9, 0xe0f8, 0x77f3, 0xe0ed, 0x77ed, 0xe0e2, 0x77e7, 0xe0d7, - 0x77e1, 0xe0cc, 0x77db, 0xe0c1, 0x77d5, 0xe0b6, 0x77ce, 0xe0ab, - 0x77c8, 0xe0a0, 0x77c2, 0xe095, 0x77bc, 0xe08a, 0x77b6, 0xe07f, - 0x77b0, 0xe074, 0x77a9, 0xe069, 0x77a3, 0xe05e, 0x779d, 0xe054, - 0x7797, 0xe049, 0x7790, 0xe03e, 0x778a, 0xe033, 0x7784, 0xe028, - 0x777e, 0xe01d, 0x7777, 0xe012, 0x7771, 0xe007, 0x776b, 0xdffc, - 0x7765, 0xdff1, 0x775e, 0xdfe7, 0x7758, 0xdfdc, 0x7752, 0xdfd1, - 0x774b, 0xdfc6, 0x7745, 0xdfbb, 0x773f, 0xdfb0, 0x7738, 0xdfa5, - 0x7732, 0xdf9b, 0x772c, 0xdf90, 0x7725, 0xdf85, 0x771f, 0xdf7a, - 0x7718, 0xdf6f, 0x7712, 0xdf65, 0x770c, 0xdf5a, 0x7705, 0xdf4f, - 0x76ff, 0xdf44, 0x76f8, 0xdf39, 0x76f2, 0xdf2f, 0x76eb, 0xdf24, - 0x76e5, 0xdf19, 0x76df, 0xdf0e, 0x76d8, 0xdf03, 0x76d2, 0xdef9, - 0x76cb, 0xdeee, 0x76c5, 0xdee3, 0x76be, 0xded8, 0x76b8, 0xdece, - 0x76b1, 0xdec3, 0x76ab, 0xdeb8, 0x76a4, 0xdead, 0x769d, 0xdea3, - 0x7697, 0xde98, 0x7690, 0xde8d, 0x768a, 0xde83, 0x7683, 0xde78, - 0x767d, 0xde6d, 0x7676, 0xde62, 0x766f, 0xde58, 0x7669, 0xde4d, - 0x7662, 0xde42, 0x765c, 0xde38, 0x7655, 0xde2d, 0x764e, 0xde22, - 0x7648, 0xde18, 0x7641, 0xde0d, 0x763a, 0xde02, 0x7634, 0xddf8, - 0x762d, 0xdded, 0x7626, 0xdde2, 0x7620, 0xddd8, 0x7619, 0xddcd, - 0x7612, 0xddc3, 0x760b, 0xddb8, 0x7605, 0xddad, 0x75fe, 0xdda3, - 0x75f7, 0xdd98, 0x75f0, 0xdd8e, 0x75ea, 0xdd83, 0x75e3, 0xdd78, - 0x75dc, 0xdd6e, 0x75d5, 0xdd63, 0x75ce, 0xdd59, 0x75c8, 0xdd4e, - 0x75c1, 0xdd44, 0x75ba, 0xdd39, 0x75b3, 0xdd2e, 0x75ac, 0xdd24, - 0x75a5, 0xdd19, 0x759f, 0xdd0f, 0x7598, 0xdd04, 0x7591, 0xdcfa, - 0x758a, 0xdcef, 0x7583, 0xdce5, 0x757c, 0xdcda, 0x7575, 0xdcd0, - 0x756e, 0xdcc5, 0x7567, 0xdcbb, 0x7561, 0xdcb0, 0x755a, 0xdca6, - 0x7553, 0xdc9b, 0x754c, 0xdc91, 0x7545, 0xdc86, 0x753e, 0xdc7c, - 0x7537, 0xdc72, 0x7530, 0xdc67, 0x7529, 0xdc5d, 0x7522, 0xdc52, - 0x751b, 0xdc48, 0x7514, 0xdc3d, 0x750d, 0xdc33, 0x7506, 0xdc29, - 0x74ff, 0xdc1e, 0x74f8, 0xdc14, 0x74f1, 0xdc09, 0x74ea, 0xdbff, - 0x74e2, 0xdbf5, 0x74db, 0xdbea, 0x74d4, 0xdbe0, 0x74cd, 0xdbd5, - 0x74c6, 0xdbcb, 0x74bf, 0xdbc1, 0x74b8, 0xdbb6, 0x74b1, 0xdbac, - 0x74aa, 0xdba2, 0x74a2, 0xdb97, 0x749b, 0xdb8d, 0x7494, 0xdb83, - 0x748d, 0xdb78, 0x7486, 0xdb6e, 0x747f, 0xdb64, 0x7477, 0xdb59, - 0x7470, 0xdb4f, 0x7469, 0xdb45, 0x7462, 0xdb3b, 0x745b, 0xdb30, - 0x7453, 0xdb26, 0x744c, 0xdb1c, 0x7445, 0xdb11, 0x743e, 0xdb07, - 0x7436, 0xdafd, 0x742f, 0xdaf3, 0x7428, 0xdae8, 0x7420, 0xdade, - 0x7419, 0xdad4, 0x7412, 0xdaca, 0x740b, 0xdabf, 0x7403, 0xdab5, - 0x73fc, 0xdaab, 0x73f5, 0xdaa1, 0x73ed, 0xda97, 0x73e6, 0xda8c, - 0x73df, 0xda82, 0x73d7, 0xda78, 0x73d0, 0xda6e, 0x73c8, 0xda64, - 0x73c1, 0xda5a, 0x73ba, 0xda4f, 0x73b2, 0xda45, 0x73ab, 0xda3b, - 0x73a3, 0xda31, 0x739c, 0xda27, 0x7395, 0xda1d, 0x738d, 0xda13, - 0x7386, 0xda08, 0x737e, 0xd9fe, 0x7377, 0xd9f4, 0x736f, 0xd9ea, - 0x7368, 0xd9e0, 0x7360, 0xd9d6, 0x7359, 0xd9cc, 0x7351, 0xd9c2, - 0x734a, 0xd9b8, 0x7342, 0xd9ae, 0x733b, 0xd9a4, 0x7333, 0xd99a, - 0x732c, 0xd98f, 0x7324, 0xd985, 0x731d, 0xd97b, 0x7315, 0xd971, - 0x730d, 0xd967, 0x7306, 0xd95d, 0x72fe, 0xd953, 0x72f7, 0xd949, - 0x72ef, 0xd93f, 0x72e7, 0xd935, 0x72e0, 0xd92b, 0x72d8, 0xd921, - 0x72d0, 0xd917, 0x72c9, 0xd90d, 0x72c1, 0xd903, 0x72ba, 0xd8f9, - 0x72b2, 0xd8ef, 0x72aa, 0xd8e6, 0x72a3, 0xd8dc, 0x729b, 0xd8d2, - 0x7293, 0xd8c8, 0x728b, 0xd8be, 0x7284, 0xd8b4, 0x727c, 0xd8aa, - 0x7274, 0xd8a0, 0x726d, 0xd896, 0x7265, 0xd88c, 0x725d, 0xd882, - 0x7255, 0xd878, 0x724e, 0xd86f, 0x7246, 0xd865, 0x723e, 0xd85b, - 0x7236, 0xd851, 0x722e, 0xd847, 0x7227, 0xd83d, 0x721f, 0xd833, - 0x7217, 0xd82a, 0x720f, 0xd820, 0x7207, 0xd816, 0x71ff, 0xd80c, - 0x71f8, 0xd802, 0x71f0, 0xd7f8, 0x71e8, 0xd7ef, 0x71e0, 0xd7e5, - 0x71d8, 0xd7db, 0x71d0, 0xd7d1, 0x71c8, 0xd7c8, 0x71c0, 0xd7be, - 0x71b9, 0xd7b4, 0x71b1, 0xd7aa, 0x71a9, 0xd7a0, 0x71a1, 0xd797, - 0x7199, 0xd78d, 0x7191, 0xd783, 0x7189, 0xd77a, 0x7181, 0xd770, - 0x7179, 0xd766, 0x7171, 0xd75c, 0x7169, 0xd753, 0x7161, 0xd749, - 0x7159, 0xd73f, 0x7151, 0xd736, 0x7149, 0xd72c, 0x7141, 0xd722, - 0x7139, 0xd719, 0x7131, 0xd70f, 0x7129, 0xd705, 0x7121, 0xd6fc, - 0x7119, 0xd6f2, 0x7111, 0xd6e8, 0x7109, 0xd6df, 0x7101, 0xd6d5, - 0x70f9, 0xd6cb, 0x70f0, 0xd6c2, 0x70e8, 0xd6b8, 0x70e0, 0xd6af, - 0x70d8, 0xd6a5, 0x70d0, 0xd69b, 0x70c8, 0xd692, 0x70c0, 0xd688, - 0x70b8, 0xd67f, 0x70af, 0xd675, 0x70a7, 0xd66c, 0x709f, 0xd662, - 0x7097, 0xd659, 0x708f, 0xd64f, 0x7087, 0xd645, 0x707e, 0xd63c, - 0x7076, 0xd632, 0x706e, 0xd629, 0x7066, 0xd61f, 0x705d, 0xd616, - 0x7055, 0xd60c, 0x704d, 0xd603, 0x7045, 0xd5f9, 0x703c, 0xd5f0, - 0x7034, 0xd5e6, 0x702c, 0xd5dd, 0x7024, 0xd5d4, 0x701b, 0xd5ca, - 0x7013, 0xd5c1, 0x700b, 0xd5b7, 0x7002, 0xd5ae, 0x6ffa, 0xd5a4, - 0x6ff2, 0xd59b, 0x6fea, 0xd592, 0x6fe1, 0xd588, 0x6fd9, 0xd57f, - 0x6fd0, 0xd575, 0x6fc8, 0xd56c, 0x6fc0, 0xd563, 0x6fb7, 0xd559, - 0x6faf, 0xd550, 0x6fa7, 0xd547, 0x6f9e, 0xd53d, 0x6f96, 0xd534, - 0x6f8d, 0xd52a, 0x6f85, 0xd521, 0x6f7d, 0xd518, 0x6f74, 0xd50e, - 0x6f6c, 0xd505, 0x6f63, 0xd4fc, 0x6f5b, 0xd4f3, 0x6f52, 0xd4e9, - 0x6f4a, 0xd4e0, 0x6f41, 0xd4d7, 0x6f39, 0xd4cd, 0x6f30, 0xd4c4, - 0x6f28, 0xd4bb, 0x6f20, 0xd4b2, 0x6f17, 0xd4a8, 0x6f0e, 0xd49f, - 0x6f06, 0xd496, 0x6efd, 0xd48d, 0x6ef5, 0xd483, 0x6eec, 0xd47a, - 0x6ee4, 0xd471, 0x6edb, 0xd468, 0x6ed3, 0xd45f, 0x6eca, 0xd455, - 0x6ec2, 0xd44c, 0x6eb9, 0xd443, 0x6eb0, 0xd43a, 0x6ea8, 0xd431, - 0x6e9f, 0xd428, 0x6e97, 0xd41e, 0x6e8e, 0xd415, 0x6e85, 0xd40c, - 0x6e7d, 0xd403, 0x6e74, 0xd3fa, 0x6e6b, 0xd3f1, 0x6e63, 0xd3e8, - 0x6e5a, 0xd3df, 0x6e51, 0xd3d5, 0x6e49, 0xd3cc, 0x6e40, 0xd3c3, - 0x6e37, 0xd3ba, 0x6e2f, 0xd3b1, 0x6e26, 0xd3a8, 0x6e1d, 0xd39f, - 0x6e15, 0xd396, 0x6e0c, 0xd38d, 0x6e03, 0xd384, 0x6dfa, 0xd37b, - 0x6df2, 0xd372, 0x6de9, 0xd369, 0x6de0, 0xd360, 0x6dd7, 0xd357, - 0x6dcf, 0xd34e, 0x6dc6, 0xd345, 0x6dbd, 0xd33c, 0x6db4, 0xd333, - 0x6dab, 0xd32a, 0x6da3, 0xd321, 0x6d9a, 0xd318, 0x6d91, 0xd30f, - 0x6d88, 0xd306, 0x6d7f, 0xd2fd, 0x6d76, 0xd2f4, 0x6d6e, 0xd2eb, - 0x6d65, 0xd2e2, 0x6d5c, 0xd2d9, 0x6d53, 0xd2d1, 0x6d4a, 0xd2c8, - 0x6d41, 0xd2bf, 0x6d38, 0xd2b6, 0x6d2f, 0xd2ad, 0x6d27, 0xd2a4, - 0x6d1e, 0xd29b, 0x6d15, 0xd292, 0x6d0c, 0xd28a, 0x6d03, 0xd281, - 0x6cfa, 0xd278, 0x6cf1, 0xd26f, 0x6ce8, 0xd266, 0x6cdf, 0xd25d, - 0x6cd6, 0xd255, 0x6ccd, 0xd24c, 0x6cc4, 0xd243, 0x6cbb, 0xd23a, - 0x6cb2, 0xd231, 0x6ca9, 0xd229, 0x6ca0, 0xd220, 0x6c97, 0xd217, - 0x6c8e, 0xd20e, 0x6c85, 0xd206, 0x6c7c, 0xd1fd, 0x6c73, 0xd1f4, - 0x6c6a, 0xd1eb, 0x6c61, 0xd1e3, 0x6c58, 0xd1da, 0x6c4f, 0xd1d1, - 0x6c46, 0xd1c9, 0x6c3d, 0xd1c0, 0x6c34, 0xd1b7, 0x6c2b, 0xd1af, - 0x6c21, 0xd1a6, 0x6c18, 0xd19d, 0x6c0f, 0xd195, 0x6c06, 0xd18c, - 0x6bfd, 0xd183, 0x6bf4, 0xd17b, 0x6beb, 0xd172, 0x6be2, 0xd169, - 0x6bd8, 0xd161, 0x6bcf, 0xd158, 0x6bc6, 0xd150, 0x6bbd, 0xd147, - 0x6bb4, 0xd13e, 0x6bab, 0xd136, 0x6ba1, 0xd12d, 0x6b98, 0xd125, - 0x6b8f, 0xd11c, 0x6b86, 0xd114, 0x6b7d, 0xd10b, 0x6b73, 0xd103, - 0x6b6a, 0xd0fa, 0x6b61, 0xd0f2, 0x6b58, 0xd0e9, 0x6b4e, 0xd0e0, - 0x6b45, 0xd0d8, 0x6b3c, 0xd0d0, 0x6b33, 0xd0c7, 0x6b29, 0xd0bf, - 0x6b20, 0xd0b6, 0x6b17, 0xd0ae, 0x6b0d, 0xd0a5, 0x6b04, 0xd09d, - 0x6afb, 0xd094, 0x6af2, 0xd08c, 0x6ae8, 0xd083, 0x6adf, 0xd07b, - 0x6ad6, 0xd073, 0x6acc, 0xd06a, 0x6ac3, 0xd062, 0x6ab9, 0xd059, - 0x6ab0, 0xd051, 0x6aa7, 0xd049, 0x6a9d, 0xd040, 0x6a94, 0xd038, - 0x6a8b, 0xd030, 0x6a81, 0xd027, 0x6a78, 0xd01f, 0x6a6e, 0xd016, - 0x6a65, 0xd00e, 0x6a5c, 0xd006, 0x6a52, 0xcffe, 0x6a49, 0xcff5, - 0x6a3f, 0xcfed, 0x6a36, 0xcfe5, 0x6a2c, 0xcfdc, 0x6a23, 0xcfd4, - 0x6a1a, 0xcfcc, 0x6a10, 0xcfc4, 0x6a07, 0xcfbb, 0x69fd, 0xcfb3, - 0x69f4, 0xcfab, 0x69ea, 0xcfa3, 0x69e1, 0xcf9a, 0x69d7, 0xcf92, - 0x69ce, 0xcf8a, 0x69c4, 0xcf82, 0x69bb, 0xcf79, 0x69b1, 0xcf71, - 0x69a7, 0xcf69, 0x699e, 0xcf61, 0x6994, 0xcf59, 0x698b, 0xcf51, - 0x6981, 0xcf48, 0x6978, 0xcf40, 0x696e, 0xcf38, 0x6965, 0xcf30, - 0x695b, 0xcf28, 0x6951, 0xcf20, 0x6948, 0xcf18, 0x693e, 0xcf10, - 0x6935, 0xcf07, 0x692b, 0xceff, 0x6921, 0xcef7, 0x6918, 0xceef, - 0x690e, 0xcee7, 0x6904, 0xcedf, 0x68fb, 0xced7, 0x68f1, 0xcecf, - 0x68e7, 0xcec7, 0x68de, 0xcebf, 0x68d4, 0xceb7, 0x68ca, 0xceaf, - 0x68c1, 0xcea7, 0x68b7, 0xce9f, 0x68ad, 0xce97, 0x68a4, 0xce8f, - 0x689a, 0xce87, 0x6890, 0xce7f, 0x6886, 0xce77, 0x687d, 0xce6f, - 0x6873, 0xce67, 0x6869, 0xce5f, 0x6860, 0xce57, 0x6856, 0xce4f, - 0x684c, 0xce47, 0x6842, 0xce40, 0x6838, 0xce38, 0x682f, 0xce30, - 0x6825, 0xce28, 0x681b, 0xce20, 0x6811, 0xce18, 0x6808, 0xce10, - 0x67fe, 0xce08, 0x67f4, 0xce01, 0x67ea, 0xcdf9, 0x67e0, 0xcdf1, - 0x67d6, 0xcde9, 0x67cd, 0xcde1, 0x67c3, 0xcdd9, 0x67b9, 0xcdd2, - 0x67af, 0xcdca, 0x67a5, 0xcdc2, 0x679b, 0xcdba, 0x6791, 0xcdb2, - 0x6788, 0xcdab, 0x677e, 0xcda3, 0x6774, 0xcd9b, 0x676a, 0xcd93, - 0x6760, 0xcd8c, 0x6756, 0xcd84, 0x674c, 0xcd7c, 0x6742, 0xcd75, - 0x6738, 0xcd6d, 0x672e, 0xcd65, 0x6724, 0xcd5d, 0x671a, 0xcd56, - 0x6711, 0xcd4e, 0x6707, 0xcd46, 0x66fd, 0xcd3f, 0x66f3, 0xcd37, - 0x66e9, 0xcd30, 0x66df, 0xcd28, 0x66d5, 0xcd20, 0x66cb, 0xcd19, - 0x66c1, 0xcd11, 0x66b7, 0xcd09, 0x66ad, 0xcd02, 0x66a3, 0xccfa, - 0x6699, 0xccf3, 0x668f, 0xcceb, 0x6685, 0xcce3, 0x667b, 0xccdc, - 0x6671, 0xccd4, 0x6666, 0xcccd, 0x665c, 0xccc5, 0x6652, 0xccbe, - 0x6648, 0xccb6, 0x663e, 0xccaf, 0x6634, 0xcca7, 0x662a, 0xcca0, - 0x6620, 0xcc98, 0x6616, 0xcc91, 0x660c, 0xcc89, 0x6602, 0xcc82, - 0x65f8, 0xcc7a, 0x65ed, 0xcc73, 0x65e3, 0xcc6b, 0x65d9, 0xcc64, - 0x65cf, 0xcc5d, 0x65c5, 0xcc55, 0x65bb, 0xcc4e, 0x65b1, 0xcc46, - 0x65a6, 0xcc3f, 0x659c, 0xcc38, 0x6592, 0xcc30, 0x6588, 0xcc29, - 0x657e, 0xcc21, 0x6574, 0xcc1a, 0x6569, 0xcc13, 0x655f, 0xcc0b, - 0x6555, 0xcc04, 0x654b, 0xcbfd, 0x6541, 0xcbf5, 0x6536, 0xcbee, - 0x652c, 0xcbe7, 0x6522, 0xcbe0, 0x6518, 0xcbd8, 0x650d, 0xcbd1, - 0x6503, 0xcbca, 0x64f9, 0xcbc2, 0x64ef, 0xcbbb, 0x64e4, 0xcbb4, - 0x64da, 0xcbad, 0x64d0, 0xcba5, 0x64c5, 0xcb9e, 0x64bb, 0xcb97, - 0x64b1, 0xcb90, 0x64a7, 0xcb89, 0x649c, 0xcb81, 0x6492, 0xcb7a, - 0x6488, 0xcb73, 0x647d, 0xcb6c, 0x6473, 0xcb65, 0x6469, 0xcb5e, - 0x645e, 0xcb56, 0x6454, 0xcb4f, 0x644a, 0xcb48, 0x643f, 0xcb41, - 0x6435, 0xcb3a, 0x642b, 0xcb33, 0x6420, 0xcb2c, 0x6416, 0xcb25, - 0x640b, 0xcb1e, 0x6401, 0xcb16, 0x63f7, 0xcb0f, 0x63ec, 0xcb08, - 0x63e2, 0xcb01, 0x63d7, 0xcafa, 0x63cd, 0xcaf3, 0x63c3, 0xcaec, - 0x63b8, 0xcae5, 0x63ae, 0xcade, 0x63a3, 0xcad7, 0x6399, 0xcad0, - 0x638e, 0xcac9, 0x6384, 0xcac2, 0x637a, 0xcabb, 0x636f, 0xcab4, - 0x6365, 0xcaad, 0x635a, 0xcaa6, 0x6350, 0xca9f, 0x6345, 0xca99, - 0x633b, 0xca92, 0x6330, 0xca8b, 0x6326, 0xca84, 0x631b, 0xca7d, - 0x6311, 0xca76, 0x6306, 0xca6f, 0x62fc, 0xca68, 0x62f1, 0xca61, - 0x62e7, 0xca5b, 0x62dc, 0xca54, 0x62d2, 0xca4d, 0x62c7, 0xca46, - 0x62bc, 0xca3f, 0x62b2, 0xca38, 0x62a7, 0xca32, 0x629d, 0xca2b, - 0x6292, 0xca24, 0x6288, 0xca1d, 0x627d, 0xca16, 0x6272, 0xca10, - 0x6268, 0xca09, 0x625d, 0xca02, 0x6253, 0xc9fb, 0x6248, 0xc9f5, - 0x623d, 0xc9ee, 0x6233, 0xc9e7, 0x6228, 0xc9e0, 0x621e, 0xc9da, - 0x6213, 0xc9d3, 0x6208, 0xc9cc, 0x61fe, 0xc9c6, 0x61f3, 0xc9bf, - 0x61e8, 0xc9b8, 0x61de, 0xc9b2, 0x61d3, 0xc9ab, 0x61c8, 0xc9a4, - 0x61be, 0xc99e, 0x61b3, 0xc997, 0x61a8, 0xc991, 0x619e, 0xc98a, - 0x6193, 0xc983, 0x6188, 0xc97d, 0x617d, 0xc976, 0x6173, 0xc970, - 0x6168, 0xc969, 0x615d, 0xc963, 0x6153, 0xc95c, 0x6148, 0xc955, - 0x613d, 0xc94f, 0x6132, 0xc948, 0x6128, 0xc942, 0x611d, 0xc93b, - 0x6112, 0xc935, 0x6107, 0xc92e, 0x60fd, 0xc928, 0x60f2, 0xc921, - 0x60e7, 0xc91b, 0x60dc, 0xc915, 0x60d1, 0xc90e, 0x60c7, 0xc908, - 0x60bc, 0xc901, 0x60b1, 0xc8fb, 0x60a6, 0xc8f4, 0x609b, 0xc8ee, - 0x6091, 0xc8e8, 0x6086, 0xc8e1, 0x607b, 0xc8db, 0x6070, 0xc8d4, - 0x6065, 0xc8ce, 0x605b, 0xc8c8, 0x6050, 0xc8c1, 0x6045, 0xc8bb, - 0x603a, 0xc8b5, 0x602f, 0xc8ae, 0x6024, 0xc8a8, 0x6019, 0xc8a2, - 0x600f, 0xc89b, 0x6004, 0xc895, 0x5ff9, 0xc88f, 0x5fee, 0xc889, - 0x5fe3, 0xc882, 0x5fd8, 0xc87c, 0x5fcd, 0xc876, 0x5fc2, 0xc870, - 0x5fb7, 0xc869, 0x5fac, 0xc863, 0x5fa2, 0xc85d, 0x5f97, 0xc857, - 0x5f8c, 0xc850, 0x5f81, 0xc84a, 0x5f76, 0xc844, 0x5f6b, 0xc83e, - 0x5f60, 0xc838, 0x5f55, 0xc832, 0x5f4a, 0xc82b, 0x5f3f, 0xc825, - 0x5f34, 0xc81f, 0x5f29, 0xc819, 0x5f1e, 0xc813, 0x5f13, 0xc80d, - 0x5f08, 0xc807, 0x5efd, 0xc801, 0x5ef2, 0xc7fb, 0x5ee7, 0xc7f5, - 0x5edc, 0xc7ee, 0x5ed1, 0xc7e8, 0x5ec6, 0xc7e2, 0x5ebb, 0xc7dc, - 0x5eb0, 0xc7d6, 0x5ea5, 0xc7d0, 0x5e9a, 0xc7ca, 0x5e8f, 0xc7c4, - 0x5e84, 0xc7be, 0x5e79, 0xc7b8, 0x5e6e, 0xc7b2, 0x5e63, 0xc7ac, - 0x5e58, 0xc7a6, 0x5e4d, 0xc7a0, 0x5e42, 0xc79a, 0x5e36, 0xc795, - 0x5e2b, 0xc78f, 0x5e20, 0xc789, 0x5e15, 0xc783, 0x5e0a, 0xc77d, - 0x5dff, 0xc777, 0x5df4, 0xc771, 0x5de9, 0xc76b, 0x5dde, 0xc765, - 0x5dd3, 0xc75f, 0x5dc7, 0xc75a, 0x5dbc, 0xc754, 0x5db1, 0xc74e, - 0x5da6, 0xc748, 0x5d9b, 0xc742, 0x5d90, 0xc73d, 0x5d85, 0xc737, - 0x5d79, 0xc731, 0x5d6e, 0xc72b, 0x5d63, 0xc725, 0x5d58, 0xc720, - 0x5d4d, 0xc71a, 0x5d42, 0xc714, 0x5d36, 0xc70e, 0x5d2b, 0xc709, - 0x5d20, 0xc703, 0x5d15, 0xc6fd, 0x5d0a, 0xc6f7, 0x5cff, 0xc6f2, - 0x5cf3, 0xc6ec, 0x5ce8, 0xc6e6, 0x5cdd, 0xc6e1, 0x5cd2, 0xc6db, - 0x5cc6, 0xc6d5, 0x5cbb, 0xc6d0, 0x5cb0, 0xc6ca, 0x5ca5, 0xc6c5, - 0x5c99, 0xc6bf, 0x5c8e, 0xc6b9, 0x5c83, 0xc6b4, 0x5c78, 0xc6ae, - 0x5c6c, 0xc6a8, 0x5c61, 0xc6a3, 0x5c56, 0xc69d, 0x5c4b, 0xc698, - 0x5c3f, 0xc692, 0x5c34, 0xc68d, 0x5c29, 0xc687, 0x5c1e, 0xc682, - 0x5c12, 0xc67c, 0x5c07, 0xc677, 0x5bfc, 0xc671, 0x5bf0, 0xc66c, - 0x5be5, 0xc666, 0x5bda, 0xc661, 0x5bce, 0xc65b, 0x5bc3, 0xc656, - 0x5bb8, 0xc650, 0x5bac, 0xc64b, 0x5ba1, 0xc645, 0x5b96, 0xc640, - 0x5b8a, 0xc63b, 0x5b7f, 0xc635, 0x5b74, 0xc630, 0x5b68, 0xc62a, - 0x5b5d, 0xc625, 0x5b52, 0xc620, 0x5b46, 0xc61a, 0x5b3b, 0xc615, - 0x5b30, 0xc610, 0x5b24, 0xc60a, 0x5b19, 0xc605, 0x5b0d, 0xc600, - 0x5b02, 0xc5fa, 0x5af7, 0xc5f5, 0x5aeb, 0xc5f0, 0x5ae0, 0xc5ea, - 0x5ad4, 0xc5e5, 0x5ac9, 0xc5e0, 0x5abe, 0xc5db, 0x5ab2, 0xc5d5, - 0x5aa7, 0xc5d0, 0x5a9b, 0xc5cb, 0x5a90, 0xc5c6, 0x5a84, 0xc5c1, - 0x5a79, 0xc5bb, 0x5a6e, 0xc5b6, 0x5a62, 0xc5b1, 0x5a57, 0xc5ac, - 0x5a4b, 0xc5a7, 0x5a40, 0xc5a1, 0x5a34, 0xc59c, 0x5a29, 0xc597, - 0x5a1d, 0xc592, 0x5a12, 0xc58d, 0x5a06, 0xc588, 0x59fb, 0xc583, - 0x59ef, 0xc57e, 0x59e4, 0xc578, 0x59d8, 0xc573, 0x59cd, 0xc56e, - 0x59c1, 0xc569, 0x59b6, 0xc564, 0x59aa, 0xc55f, 0x599f, 0xc55a, - 0x5993, 0xc555, 0x5988, 0xc550, 0x597c, 0xc54b, 0x5971, 0xc546, - 0x5965, 0xc541, 0x595a, 0xc53c, 0x594e, 0xc537, 0x5943, 0xc532, - 0x5937, 0xc52d, 0x592c, 0xc528, 0x5920, 0xc523, 0x5914, 0xc51e, - 0x5909, 0xc51a, 0x58fd, 0xc515, 0x58f2, 0xc510, 0x58e6, 0xc50b, - 0x58db, 0xc506, 0x58cf, 0xc501, 0x58c3, 0xc4fc, 0x58b8, 0xc4f7, - 0x58ac, 0xc4f2, 0x58a1, 0xc4ee, 0x5895, 0xc4e9, 0x5889, 0xc4e4, - 0x587e, 0xc4df, 0x5872, 0xc4da, 0x5867, 0xc4d6, 0x585b, 0xc4d1, - 0x584f, 0xc4cc, 0x5844, 0xc4c7, 0x5838, 0xc4c2, 0x582d, 0xc4be, - 0x5821, 0xc4b9, 0x5815, 0xc4b4, 0x580a, 0xc4b0, 0x57fe, 0xc4ab, - 0x57f2, 0xc4a6, 0x57e7, 0xc4a1, 0x57db, 0xc49d, 0x57cf, 0xc498, - 0x57c4, 0xc493, 0x57b8, 0xc48f, 0x57ac, 0xc48a, 0x57a1, 0xc485, - 0x5795, 0xc481, 0x5789, 0xc47c, 0x577e, 0xc478, 0x5772, 0xc473, - 0x5766, 0xc46e, 0x575b, 0xc46a, 0x574f, 0xc465, 0x5743, 0xc461, - 0x5737, 0xc45c, 0x572c, 0xc457, 0x5720, 0xc453, 0x5714, 0xc44e, - 0x5709, 0xc44a, 0x56fd, 0xc445, 0x56f1, 0xc441, 0x56e5, 0xc43c, - 0x56da, 0xc438, 0x56ce, 0xc433, 0x56c2, 0xc42f, 0x56b6, 0xc42a, - 0x56ab, 0xc426, 0x569f, 0xc422, 0x5693, 0xc41d, 0x5687, 0xc419, - 0x567c, 0xc414, 0x5670, 0xc410, 0x5664, 0xc40b, 0x5658, 0xc407, - 0x564c, 0xc403, 0x5641, 0xc3fe, 0x5635, 0xc3fa, 0x5629, 0xc3f6, - 0x561d, 0xc3f1, 0x5612, 0xc3ed, 0x5606, 0xc3e9, 0x55fa, 0xc3e4, - 0x55ee, 0xc3e0, 0x55e2, 0xc3dc, 0x55d7, 0xc3d7, 0x55cb, 0xc3d3, - 0x55bf, 0xc3cf, 0x55b3, 0xc3ca, 0x55a7, 0xc3c6, 0x559b, 0xc3c2, - 0x5590, 0xc3be, 0x5584, 0xc3ba, 0x5578, 0xc3b5, 0x556c, 0xc3b1, - 0x5560, 0xc3ad, 0x5554, 0xc3a9, 0x5549, 0xc3a5, 0x553d, 0xc3a0, - 0x5531, 0xc39c, 0x5525, 0xc398, 0x5519, 0xc394, 0x550d, 0xc390, - 0x5501, 0xc38c, 0x54f6, 0xc387, 0x54ea, 0xc383, 0x54de, 0xc37f, - 0x54d2, 0xc37b, 0x54c6, 0xc377, 0x54ba, 0xc373, 0x54ae, 0xc36f, - 0x54a2, 0xc36b, 0x5496, 0xc367, 0x548b, 0xc363, 0x547f, 0xc35f, - 0x5473, 0xc35b, 0x5467, 0xc357, 0x545b, 0xc353, 0x544f, 0xc34f, - 0x5443, 0xc34b, 0x5437, 0xc347, 0x542b, 0xc343, 0x541f, 0xc33f, - 0x5413, 0xc33b, 0x5407, 0xc337, 0x53fb, 0xc333, 0x53f0, 0xc32f, - 0x53e4, 0xc32b, 0x53d8, 0xc327, 0x53cc, 0xc323, 0x53c0, 0xc320, - 0x53b4, 0xc31c, 0x53a8, 0xc318, 0x539c, 0xc314, 0x5390, 0xc310, - 0x5384, 0xc30c, 0x5378, 0xc308, 0x536c, 0xc305, 0x5360, 0xc301, - 0x5354, 0xc2fd, 0x5348, 0xc2f9, 0x533c, 0xc2f5, 0x5330, 0xc2f2, - 0x5324, 0xc2ee, 0x5318, 0xc2ea, 0x530c, 0xc2e6, 0x5300, 0xc2e3, - 0x52f4, 0xc2df, 0x52e8, 0xc2db, 0x52dc, 0xc2d8, 0x52d0, 0xc2d4, - 0x52c4, 0xc2d0, 0x52b8, 0xc2cc, 0x52ac, 0xc2c9, 0x52a0, 0xc2c5, - 0x5294, 0xc2c1, 0x5288, 0xc2be, 0x527c, 0xc2ba, 0x5270, 0xc2b7, - 0x5264, 0xc2b3, 0x5258, 0xc2af, 0x524c, 0xc2ac, 0x5240, 0xc2a8, - 0x5234, 0xc2a5, 0x5228, 0xc2a1, 0x521c, 0xc29d, 0x5210, 0xc29a, - 0x5204, 0xc296, 0x51f7, 0xc293, 0x51eb, 0xc28f, 0x51df, 0xc28c, - 0x51d3, 0xc288, 0x51c7, 0xc285, 0x51bb, 0xc281, 0x51af, 0xc27e, - 0x51a3, 0xc27a, 0x5197, 0xc277, 0x518b, 0xc273, 0x517f, 0xc270, - 0x5173, 0xc26d, 0x5167, 0xc269, 0x515a, 0xc266, 0x514e, 0xc262, - 0x5142, 0xc25f, 0x5136, 0xc25c, 0x512a, 0xc258, 0x511e, 0xc255, - 0x5112, 0xc251, 0x5106, 0xc24e, 0x50fa, 0xc24b, 0x50ed, 0xc247, - 0x50e1, 0xc244, 0x50d5, 0xc241, 0x50c9, 0xc23e, 0x50bd, 0xc23a, - 0x50b1, 0xc237, 0x50a5, 0xc234, 0x5099, 0xc230, 0x508c, 0xc22d, - 0x5080, 0xc22a, 0x5074, 0xc227, 0x5068, 0xc223, 0x505c, 0xc220, - 0x5050, 0xc21d, 0x5044, 0xc21a, 0x5037, 0xc217, 0x502b, 0xc213, - 0x501f, 0xc210, 0x5013, 0xc20d, 0x5007, 0xc20a, 0x4ffb, 0xc207, - 0x4fee, 0xc204, 0x4fe2, 0xc201, 0x4fd6, 0xc1fd, 0x4fca, 0xc1fa, - 0x4fbe, 0xc1f7, 0x4fb2, 0xc1f4, 0x4fa5, 0xc1f1, 0x4f99, 0xc1ee, - 0x4f8d, 0xc1eb, 0x4f81, 0xc1e8, 0x4f75, 0xc1e5, 0x4f68, 0xc1e2, - 0x4f5c, 0xc1df, 0x4f50, 0xc1dc, 0x4f44, 0xc1d9, 0x4f38, 0xc1d6, - 0x4f2b, 0xc1d3, 0x4f1f, 0xc1d0, 0x4f13, 0xc1cd, 0x4f07, 0xc1ca, - 0x4efb, 0xc1c7, 0x4eee, 0xc1c4, 0x4ee2, 0xc1c1, 0x4ed6, 0xc1be, - 0x4eca, 0xc1bb, 0x4ebd, 0xc1b8, 0x4eb1, 0xc1b6, 0x4ea5, 0xc1b3, - 0x4e99, 0xc1b0, 0x4e8c, 0xc1ad, 0x4e80, 0xc1aa, 0x4e74, 0xc1a7, - 0x4e68, 0xc1a4, 0x4e5c, 0xc1a2, 0x4e4f, 0xc19f, 0x4e43, 0xc19c, - 0x4e37, 0xc199, 0x4e2b, 0xc196, 0x4e1e, 0xc194, 0x4e12, 0xc191, - 0x4e06, 0xc18e, 0x4df9, 0xc18b, 0x4ded, 0xc189, 0x4de1, 0xc186, - 0x4dd5, 0xc183, 0x4dc8, 0xc180, 0x4dbc, 0xc17e, 0x4db0, 0xc17b, - 0x4da4, 0xc178, 0x4d97, 0xc176, 0x4d8b, 0xc173, 0x4d7f, 0xc170, - 0x4d72, 0xc16e, 0x4d66, 0xc16b, 0x4d5a, 0xc168, 0x4d4e, 0xc166, - 0x4d41, 0xc163, 0x4d35, 0xc161, 0x4d29, 0xc15e, 0x4d1c, 0xc15b, - 0x4d10, 0xc159, 0x4d04, 0xc156, 0x4cf8, 0xc154, 0x4ceb, 0xc151, - 0x4cdf, 0xc14f, 0x4cd3, 0xc14c, 0x4cc6, 0xc14a, 0x4cba, 0xc147, - 0x4cae, 0xc145, 0x4ca1, 0xc142, 0x4c95, 0xc140, 0x4c89, 0xc13d, - 0x4c7c, 0xc13b, 0x4c70, 0xc138, 0x4c64, 0xc136, 0x4c57, 0xc134, - 0x4c4b, 0xc131, 0x4c3f, 0xc12f, 0x4c32, 0xc12c, 0x4c26, 0xc12a, - 0x4c1a, 0xc128, 0x4c0d, 0xc125, 0x4c01, 0xc123, 0x4bf5, 0xc120, - 0x4be8, 0xc11e, 0x4bdc, 0xc11c, 0x4bd0, 0xc119, 0x4bc3, 0xc117, - 0x4bb7, 0xc115, 0x4bab, 0xc113, 0x4b9e, 0xc110, 0x4b92, 0xc10e, - 0x4b85, 0xc10c, 0x4b79, 0xc109, 0x4b6d, 0xc107, 0x4b60, 0xc105, - 0x4b54, 0xc103, 0x4b48, 0xc100, 0x4b3b, 0xc0fe, 0x4b2f, 0xc0fc, - 0x4b23, 0xc0fa, 0x4b16, 0xc0f8, 0x4b0a, 0xc0f6, 0x4afd, 0xc0f3, - 0x4af1, 0xc0f1, 0x4ae5, 0xc0ef, 0x4ad8, 0xc0ed, 0x4acc, 0xc0eb, - 0x4ac0, 0xc0e9, 0x4ab3, 0xc0e7, 0x4aa7, 0xc0e4, 0x4a9a, 0xc0e2, - 0x4a8e, 0xc0e0, 0x4a82, 0xc0de, 0x4a75, 0xc0dc, 0x4a69, 0xc0da, - 0x4a5c, 0xc0d8, 0x4a50, 0xc0d6, 0x4a44, 0xc0d4, 0x4a37, 0xc0d2, - 0x4a2b, 0xc0d0, 0x4a1e, 0xc0ce, 0x4a12, 0xc0cc, 0x4a06, 0xc0ca, - 0x49f9, 0xc0c8, 0x49ed, 0xc0c6, 0x49e0, 0xc0c4, 0x49d4, 0xc0c2, - 0x49c7, 0xc0c0, 0x49bb, 0xc0be, 0x49af, 0xc0bd, 0x49a2, 0xc0bb, - 0x4996, 0xc0b9, 0x4989, 0xc0b7, 0x497d, 0xc0b5, 0x4970, 0xc0b3, - 0x4964, 0xc0b1, 0x4958, 0xc0af, 0x494b, 0xc0ae, 0x493f, 0xc0ac, - 0x4932, 0xc0aa, 0x4926, 0xc0a8, 0x4919, 0xc0a6, 0x490d, 0xc0a5, - 0x4901, 0xc0a3, 0x48f4, 0xc0a1, 0x48e8, 0xc09f, 0x48db, 0xc09e, - 0x48cf, 0xc09c, 0x48c2, 0xc09a, 0x48b6, 0xc098, 0x48a9, 0xc097, - 0x489d, 0xc095, 0x4891, 0xc093, 0x4884, 0xc092, 0x4878, 0xc090, - 0x486b, 0xc08e, 0x485f, 0xc08d, 0x4852, 0xc08b, 0x4846, 0xc089, - 0x4839, 0xc088, 0x482d, 0xc086, 0x4820, 0xc085, 0x4814, 0xc083, - 0x4807, 0xc081, 0x47fb, 0xc080, 0x47ef, 0xc07e, 0x47e2, 0xc07d, - 0x47d6, 0xc07b, 0x47c9, 0xc07a, 0x47bd, 0xc078, 0x47b0, 0xc077, - 0x47a4, 0xc075, 0x4797, 0xc074, 0x478b, 0xc072, 0x477e, 0xc071, - 0x4772, 0xc06f, 0x4765, 0xc06e, 0x4759, 0xc06c, 0x474c, 0xc06b, - 0x4740, 0xc069, 0x4733, 0xc068, 0x4727, 0xc067, 0x471a, 0xc065, - 0x470e, 0xc064, 0x4701, 0xc062, 0x46f5, 0xc061, 0x46e8, 0xc060, - 0x46dc, 0xc05e, 0x46cf, 0xc05d, 0x46c3, 0xc05c, 0x46b6, 0xc05a, - 0x46aa, 0xc059, 0x469d, 0xc058, 0x4691, 0xc056, 0x4684, 0xc055, - 0x4678, 0xc054, 0x466b, 0xc053, 0x465f, 0xc051, 0x4652, 0xc050, - 0x4646, 0xc04f, 0x4639, 0xc04e, 0x462d, 0xc04c, 0x4620, 0xc04b, - 0x4614, 0xc04a, 0x4607, 0xc049, 0x45fb, 0xc048, 0x45ee, 0xc047, - 0x45e2, 0xc045, 0x45d5, 0xc044, 0x45c9, 0xc043, 0x45bc, 0xc042, - 0x45b0, 0xc041, 0x45a3, 0xc040, 0x4597, 0xc03f, 0x458a, 0xc03d, - 0x457e, 0xc03c, 0x4571, 0xc03b, 0x4565, 0xc03a, 0x4558, 0xc039, - 0x454c, 0xc038, 0x453f, 0xc037, 0x4533, 0xc036, 0x4526, 0xc035, - 0x451a, 0xc034, 0x450d, 0xc033, 0x4500, 0xc032, 0x44f4, 0xc031, - 0x44e7, 0xc030, 0x44db, 0xc02f, 0x44ce, 0xc02e, 0x44c2, 0xc02d, - 0x44b5, 0xc02c, 0x44a9, 0xc02b, 0x449c, 0xc02b, 0x4490, 0xc02a, - 0x4483, 0xc029, 0x4477, 0xc028, 0x446a, 0xc027, 0x445e, 0xc026, - 0x4451, 0xc025, 0x4444, 0xc024, 0x4438, 0xc024, 0x442b, 0xc023, - 0x441f, 0xc022, 0x4412, 0xc021, 0x4406, 0xc020, 0x43f9, 0xc020, - 0x43ed, 0xc01f, 0x43e0, 0xc01e, 0x43d4, 0xc01d, 0x43c7, 0xc01d, - 0x43bb, 0xc01c, 0x43ae, 0xc01b, 0x43a1, 0xc01a, 0x4395, 0xc01a, - 0x4388, 0xc019, 0x437c, 0xc018, 0x436f, 0xc018, 0x4363, 0xc017, - 0x4356, 0xc016, 0x434a, 0xc016, 0x433d, 0xc015, 0x4330, 0xc014, - 0x4324, 0xc014, 0x4317, 0xc013, 0x430b, 0xc013, 0x42fe, 0xc012, - 0x42f2, 0xc011, 0x42e5, 0xc011, 0x42d9, 0xc010, 0x42cc, 0xc010, - 0x42c0, 0xc00f, 0x42b3, 0xc00f, 0x42a6, 0xc00e, 0x429a, 0xc00e, - 0x428d, 0xc00d, 0x4281, 0xc00d, 0x4274, 0xc00c, 0x4268, 0xc00c, - 0x425b, 0xc00b, 0x424e, 0xc00b, 0x4242, 0xc00a, 0x4235, 0xc00a, - 0x4229, 0xc009, 0x421c, 0xc009, 0x4210, 0xc009, 0x4203, 0xc008, - 0x41f7, 0xc008, 0x41ea, 0xc007, 0x41dd, 0xc007, 0x41d1, 0xc007, - 0x41c4, 0xc006, 0x41b8, 0xc006, 0x41ab, 0xc006, 0x419f, 0xc005, - 0x4192, 0xc005, 0x4186, 0xc005, 0x4179, 0xc004, 0x416c, 0xc004, - 0x4160, 0xc004, 0x4153, 0xc004, 0x4147, 0xc003, 0x413a, 0xc003, - 0x412e, 0xc003, 0x4121, 0xc003, 0x4114, 0xc002, 0x4108, 0xc002, - 0x40fb, 0xc002, 0x40ef, 0xc002, 0x40e2, 0xc002, 0x40d6, 0xc001, - 0x40c9, 0xc001, 0x40bc, 0xc001, 0x40b0, 0xc001, 0x40a3, 0xc001, - 0x4097, 0xc001, 0x408a, 0xc001, 0x407e, 0xc000, 0x4071, 0xc000, - 0x4065, 0xc000, 0x4058, 0xc000, 0x404b, 0xc000, 0x403f, 0xc000, - 0x4032, 0xc000, 0x4026, 0xc000, 0x4019, 0xc000, 0x400d, 0xc000, -}; - -/** -* @brief Initialization function for the Q15 RFFT/RIFFT. -* @param[in, out] *S points to an instance of the Q15 RFFT/RIFFT structure. -* @param[in] *S_CFFT points to an instance of the Q15 CFFT/CIFFT structure. -* @param[in] fftLenReal length of the FFT. -* @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. -* -* \par Description: -* \par -* The parameter fftLenReal Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 128, 512, 2048. -* \par -* The parameter ifftFlagR controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* This function also initializes Twiddle factor table. -*/ - -arm_status arm_rfft_init_q15( - arm_rfft_instance_q15 * S, - arm_cfft_radix4_instance_q15 * S_CFFT, - uint32_t fftLenReal, - uint32_t ifftFlagR, - uint32_t bitReverseFlag) -{ - - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialize the Real FFT length */ - S->fftLenReal = (uint16_t) fftLenReal; - - /* Initialize the Complex FFT length */ - S->fftLenBy2 = (uint16_t) fftLenReal / 2u; - - /* Initialize the Twiddle coefficientA pointer */ - S->pTwiddleAReal = (q15_t *) realCoefAQ15; - - /* Initialize the Twiddle coefficientB pointer */ - S->pTwiddleBReal = (q15_t *) realCoefBQ15; - - /* Initialize the Flag for selection of RFFT or RIFFT */ - S->ifftFlagR = (uint8_t) ifftFlagR; - - /* Initialize the Flag for calculation Bit reversal or not */ - S->bitReverseFlagR = (uint8_t) bitReverseFlag; - - /* Initialization of coef modifier depending on the FFT length */ - switch (S->fftLenReal) - { - case 8192: - S->twidCoefRModifier = 1u; - break; - case 2048u: - S->twidCoefRModifier = 4u; - break; - case 512u: - S->twidCoefRModifier = 16u; - break; - case 128u: - S->twidCoefRModifier = 64u; - break; - default: - /* Reporting argument error if rfftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - /* Init Complex FFT Instance */ - S->pCfft = S_CFFT; - - if(S->ifftFlagR) - { - /* Initializes the CIFFT Module for fftLenreal/2 length */ - arm_cfft_radix4_init_q15(S->pCfft, S->fftLenBy2, 1u, 1u); - } - else - { - /* Initializes the CFFT Module for fftLenreal/2 length */ - arm_cfft_radix4_init_q15(S->pCfft, S->fftLenBy2, 0u, 1u); - } - - /* return the status of RFFT Init function */ - return (status); - -} - - /** - * @} end of RFFT_RIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c deleted file mode 100644 index 400fe586c3..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c +++ /dev/null @@ -1,4274 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rfft_init_q31.c -* -* Description: RFFT & RIFFT Q31 initialisation function -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup RFFT_RIFFT - * @{ - */ - -/** -* \par -* Generation floating point realCoefAQ31 array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)    
-* {    
-*    pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i));    
-*    pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i));    
-* }
-* \par -* Convert to fixed point Q31 format -* round(pATable[i] * pow(2, 31)) -*/ - - -static const q31_t realCoefAQ31[8192] = { - 0x40000000, 0xc0000000, 0x3ff36f02, 0xc000013c, - 0x3fe6de05, 0xc00004ef, 0x3fda4d09, 0xc0000b1a, - 0x3fcdbc0f, 0xc00013bd, 0x3fc12b16, 0xc0001ed8, - 0x3fb49a1f, 0xc0002c6a, 0x3fa8092c, 0xc0003c74, - 0x3f9b783c, 0xc0004ef5, 0x3f8ee750, 0xc00063ee, - 0x3f825668, 0xc0007b5f, 0x3f75c585, 0xc0009547, - 0x3f6934a8, 0xc000b1a7, 0x3f5ca3d0, 0xc000d07e, - 0x3f5012fe, 0xc000f1ce, 0x3f438234, 0xc0011594, - 0x3f36f170, 0xc0013bd3, 0x3f2a60b4, 0xc0016489, - 0x3f1dd001, 0xc0018fb6, 0x3f113f56, 0xc001bd5c, - 0x3f04aeb5, 0xc001ed78, 0x3ef81e1d, 0xc002200d, - 0x3eeb8d8f, 0xc0025519, 0x3edefd0c, 0xc0028c9c, - 0x3ed26c94, 0xc002c697, 0x3ec5dc28, 0xc003030a, - 0x3eb94bc8, 0xc00341f4, 0x3eacbb74, 0xc0038356, - 0x3ea02b2e, 0xc003c72f, 0x3e939af5, 0xc0040d80, - 0x3e870aca, 0xc0045648, 0x3e7a7aae, 0xc004a188, - 0x3e6deaa1, 0xc004ef3f, 0x3e615aa3, 0xc0053f6e, - 0x3e54cab5, 0xc0059214, 0x3e483ad8, 0xc005e731, - 0x3e3bab0b, 0xc0063ec6, 0x3e2f1b50, 0xc00698d3, - 0x3e228ba7, 0xc006f556, 0x3e15fc11, 0xc0075452, - 0x3e096c8d, 0xc007b5c4, 0x3dfcdd1d, 0xc00819ae, - 0x3df04dc0, 0xc008800f, 0x3de3be78, 0xc008e8e8, - 0x3dd72f45, 0xc0095438, 0x3dcaa027, 0xc009c1ff, - 0x3dbe111e, 0xc00a323d, 0x3db1822c, 0xc00aa4f3, - 0x3da4f351, 0xc00b1a20, 0x3d98648d, 0xc00b91c4, - 0x3d8bd5e1, 0xc00c0be0, 0x3d7f474d, 0xc00c8872, - 0x3d72b8d2, 0xc00d077c, 0x3d662a70, 0xc00d88fd, - 0x3d599c28, 0xc00e0cf5, 0x3d4d0df9, 0xc00e9364, - 0x3d407fe6, 0xc00f1c4a, 0x3d33f1ed, 0xc00fa7a8, - 0x3d276410, 0xc010357c, 0x3d1ad650, 0xc010c5c7, - 0x3d0e48ab, 0xc011588a, 0x3d01bb24, 0xc011edc3, - 0x3cf52dbb, 0xc0128574, 0x3ce8a06f, 0xc0131f9b, - 0x3cdc1342, 0xc013bc39, 0x3ccf8634, 0xc0145b4e, - 0x3cc2f945, 0xc014fcda, 0x3cb66c77, 0xc015a0dd, - 0x3ca9dfc8, 0xc0164757, 0x3c9d533b, 0xc016f047, - 0x3c90c6cf, 0xc0179bae, 0x3c843a85, 0xc018498c, - 0x3c77ae5e, 0xc018f9e1, 0x3c6b2259, 0xc019acac, - 0x3c5e9678, 0xc01a61ee, 0x3c520aba, 0xc01b19a7, - 0x3c457f21, 0xc01bd3d6, 0x3c38f3ac, 0xc01c907c, - 0x3c2c685d, 0xc01d4f99, 0x3c1fdd34, 0xc01e112b, - 0x3c135231, 0xc01ed535, 0x3c06c754, 0xc01f9bb5, - 0x3bfa3c9f, 0xc02064ab, 0x3bedb212, 0xc0213018, - 0x3be127ac, 0xc021fdfb, 0x3bd49d70, 0xc022ce54, - 0x3bc8135c, 0xc023a124, 0x3bbb8973, 0xc024766a, - 0x3baeffb3, 0xc0254e27, 0x3ba2761e, 0xc0262859, - 0x3b95ecb4, 0xc0270502, 0x3b896375, 0xc027e421, - 0x3b7cda63, 0xc028c5b6, 0x3b70517d, 0xc029a9c1, - 0x3b63c8c4, 0xc02a9042, 0x3b574039, 0xc02b7939, - 0x3b4ab7db, 0xc02c64a6, 0x3b3e2fac, 0xc02d5289, - 0x3b31a7ac, 0xc02e42e2, 0x3b251fdc, 0xc02f35b1, - 0x3b18983b, 0xc0302af5, 0x3b0c10cb, 0xc03122b0, - 0x3aff898c, 0xc0321ce0, 0x3af3027e, 0xc0331986, - 0x3ae67ba2, 0xc03418a2, 0x3ad9f4f8, 0xc0351a33, - 0x3acd6e81, 0xc0361e3a, 0x3ac0e83d, 0xc03724b6, - 0x3ab4622d, 0xc0382da8, 0x3aa7dc52, 0xc0393910, - 0x3a9b56ab, 0xc03a46ed, 0x3a8ed139, 0xc03b573f, - 0x3a824bfd, 0xc03c6a07, 0x3a75c6f8, 0xc03d7f44, - 0x3a694229, 0xc03e96f6, 0x3a5cbd91, 0xc03fb11d, - 0x3a503930, 0xc040cdba, 0x3a43b508, 0xc041eccc, - 0x3a373119, 0xc0430e53, 0x3a2aad62, 0xc044324f, - 0x3a1e29e5, 0xc04558c0, 0x3a11a6a3, 0xc04681a6, - 0x3a05239a, 0xc047ad01, 0x39f8a0cd, 0xc048dad1, - 0x39ec1e3b, 0xc04a0b16, 0x39df9be6, 0xc04b3dcf, - 0x39d319cc, 0xc04c72fe, 0x39c697f0, 0xc04daaa1, - 0x39ba1651, 0xc04ee4b8, 0x39ad94f0, 0xc0502145, - 0x39a113cd, 0xc0516045, 0x399492ea, 0xc052a1bb, - 0x39881245, 0xc053e5a5, 0x397b91e1, 0xc0552c03, - 0x396f11bc, 0xc05674d6, 0x396291d9, 0xc057c01d, - 0x39561237, 0xc0590dd8, 0x394992d7, 0xc05a5e07, - 0x393d13b8, 0xc05bb0ab, 0x393094dd, 0xc05d05c3, - 0x39241645, 0xc05e5d4e, 0x391797f0, 0xc05fb74e, - 0x390b19e0, 0xc06113c2, 0x38fe9c15, 0xc06272aa, - 0x38f21e8e, 0xc063d405, 0x38e5a14d, 0xc06537d4, - 0x38d92452, 0xc0669e18, 0x38cca79e, 0xc06806ce, - 0x38c02b31, 0xc06971f9, 0x38b3af0c, 0xc06adf97, - 0x38a7332e, 0xc06c4fa8, 0x389ab799, 0xc06dc22e, - 0x388e3c4d, 0xc06f3726, 0x3881c14b, 0xc070ae92, - 0x38754692, 0xc0722871, 0x3868cc24, 0xc073a4c3, - 0x385c5201, 0xc0752389, 0x384fd829, 0xc076a4c2, - 0x38435e9d, 0xc078286e, 0x3836e55d, 0xc079ae8c, - 0x382a6c6a, 0xc07b371e, 0x381df3c5, 0xc07cc223, - 0x38117b6d, 0xc07e4f9b, 0x38050364, 0xc07fdf85, - 0x37f88ba9, 0xc08171e2, 0x37ec143e, 0xc08306b2, - 0x37df9d22, 0xc0849df4, 0x37d32657, 0xc08637a9, - 0x37c6afdc, 0xc087d3d0, 0x37ba39b3, 0xc089726a, - 0x37adc3db, 0xc08b1376, 0x37a14e55, 0xc08cb6f5, - 0x3794d922, 0xc08e5ce5, 0x37886442, 0xc0900548, - 0x377befb5, 0xc091b01d, 0x376f7b7d, 0xc0935d64, - 0x37630799, 0xc0950d1d, 0x3756940a, 0xc096bf48, - 0x374a20d0, 0xc09873e4, 0x373daded, 0xc09a2af3, - 0x37313b60, 0xc09be473, 0x3724c92a, 0xc09da065, - 0x3718574b, 0xc09f5ec8, 0x370be5c4, 0xc0a11f9d, - 0x36ff7496, 0xc0a2e2e3, 0x36f303c0, 0xc0a4a89b, - 0x36e69344, 0xc0a670c4, 0x36da2321, 0xc0a83b5e, - 0x36cdb359, 0xc0aa086a, 0x36c143ec, 0xc0abd7e6, - 0x36b4d4d9, 0xc0ada9d4, 0x36a86623, 0xc0af7e33, - 0x369bf7c9, 0xc0b15502, 0x368f89cb, 0xc0b32e42, - 0x36831c2b, 0xc0b509f3, 0x3676aee8, 0xc0b6e815, - 0x366a4203, 0xc0b8c8a7, 0x365dd57d, 0xc0baabaa, - 0x36516956, 0xc0bc911d, 0x3644fd8f, 0xc0be7901, - 0x36389228, 0xc0c06355, 0x362c2721, 0xc0c25019, - 0x361fbc7b, 0xc0c43f4d, 0x36135237, 0xc0c630f2, - 0x3606e854, 0xc0c82506, 0x35fa7ed4, 0xc0ca1b8a, - 0x35ee15b7, 0xc0cc147f, 0x35e1acfd, 0xc0ce0fe3, - 0x35d544a7, 0xc0d00db6, 0x35c8dcb6, 0xc0d20dfa, - 0x35bc7529, 0xc0d410ad, 0x35b00e02, 0xc0d615cf, - 0x35a3a740, 0xc0d81d61, 0x359740e5, 0xc0da2762, - 0x358adaf0, 0xc0dc33d2, 0x357e7563, 0xc0de42b2, - 0x3572103d, 0xc0e05401, 0x3565ab80, 0xc0e267be, - 0x3559472b, 0xc0e47deb, 0x354ce33f, 0xc0e69686, - 0x35407fbd, 0xc0e8b190, 0x35341ca5, 0xc0eacf09, - 0x3527b9f7, 0xc0eceef1, 0x351b57b5, 0xc0ef1147, - 0x350ef5de, 0xc0f1360b, 0x35029473, 0xc0f35d3e, - 0x34f63374, 0xc0f586df, 0x34e9d2e3, 0xc0f7b2ee, - 0x34dd72be, 0xc0f9e16b, 0x34d11308, 0xc0fc1257, - 0x34c4b3c0, 0xc0fe45b0, 0x34b854e7, 0xc1007b77, - 0x34abf67e, 0xc102b3ac, 0x349f9884, 0xc104ee4f, - 0x34933afa, 0xc1072b5f, 0x3486dde1, 0xc1096add, - 0x347a8139, 0xc10bacc8, 0x346e2504, 0xc10df120, - 0x3461c940, 0xc11037e6, 0x34556def, 0xc1128119, - 0x34491311, 0xc114ccb9, 0x343cb8a7, 0xc1171ac6, - 0x34305eb0, 0xc1196b3f, 0x3424052f, 0xc11bbe26, - 0x3417ac22, 0xc11e1379, 0x340b538b, 0xc1206b39, - 0x33fefb6a, 0xc122c566, 0x33f2a3bf, 0xc12521ff, - 0x33e64c8c, 0xc1278104, 0x33d9f5cf, 0xc129e276, - 0x33cd9f8b, 0xc12c4653, 0x33c149bf, 0xc12eac9d, - 0x33b4f46c, 0xc1311553, 0x33a89f92, 0xc1338075, - 0x339c4b32, 0xc135ee02, 0x338ff74d, 0xc1385dfb, - 0x3383a3e2, 0xc13ad060, 0x337750f2, 0xc13d4530, - 0x336afe7e, 0xc13fbc6c, 0x335eac86, 0xc1423613, - 0x33525b0b, 0xc144b225, 0x33460a0d, 0xc14730a3, - 0x3339b98d, 0xc149b18b, 0x332d698a, 0xc14c34df, - 0x33211a07, 0xc14eba9d, 0x3314cb02, 0xc15142c6, - 0x33087c7d, 0xc153cd5a, 0x32fc2e77, 0xc1565a58, - 0x32efe0f2, 0xc158e9c1, 0x32e393ef, 0xc15b7b94, - 0x32d7476c, 0xc15e0fd1, 0x32cafb6b, 0xc160a678, - 0x32beafed, 0xc1633f8a, 0x32b264f2, 0xc165db05, - 0x32a61a7a, 0xc16878eb, 0x3299d085, 0xc16b193a, - 0x328d8715, 0xc16dbbf3, 0x32813e2a, 0xc1706115, - 0x3274f5c3, 0xc17308a1, 0x3268ade3, 0xc175b296, - 0x325c6688, 0xc1785ef4, 0x32501fb5, 0xc17b0dbb, - 0x3243d968, 0xc17dbeec, 0x323793a3, 0xc1807285, - 0x322b4e66, 0xc1832888, 0x321f09b1, 0xc185e0f3, - 0x3212c585, 0xc1889bc6, 0x320681e3, 0xc18b5903, - 0x31fa3ecb, 0xc18e18a7, 0x31edfc3d, 0xc190dab4, - 0x31e1ba3a, 0xc1939f29, 0x31d578c2, 0xc1966606, - 0x31c937d6, 0xc1992f4c, 0x31bcf777, 0xc19bfaf9, - 0x31b0b7a4, 0xc19ec90d, 0x31a4785e, 0xc1a1998a, - 0x319839a6, 0xc1a46c6e, 0x318bfb7d, 0xc1a741b9, - 0x317fbde2, 0xc1aa196c, 0x317380d6, 0xc1acf386, - 0x31674459, 0xc1afd007, 0x315b086d, 0xc1b2aef0, - 0x314ecd11, 0xc1b5903f, 0x31429247, 0xc1b873f5, - 0x3136580d, 0xc1bb5a11, 0x312a1e66, 0xc1be4294, - 0x311de551, 0xc1c12d7e, 0x3111accf, 0xc1c41ace, - 0x310574e0, 0xc1c70a84, 0x30f93d86, 0xc1c9fca0, - 0x30ed06bf, 0xc1ccf122, 0x30e0d08d, 0xc1cfe80a, - 0x30d49af1, 0xc1d2e158, 0x30c865ea, 0xc1d5dd0c, - 0x30bc317a, 0xc1d8db25, 0x30affda0, 0xc1dbdba3, - 0x30a3ca5d, 0xc1dede87, 0x309797b2, 0xc1e1e3d0, - 0x308b659f, 0xc1e4eb7e, 0x307f3424, 0xc1e7f591, - 0x30730342, 0xc1eb0209, 0x3066d2fa, 0xc1ee10e5, - 0x305aa34c, 0xc1f12227, 0x304e7438, 0xc1f435cc, - 0x304245c0, 0xc1f74bd6, 0x303617e2, 0xc1fa6445, - 0x3029eaa1, 0xc1fd7f17, 0x301dbdfb, 0xc2009c4e, - 0x301191f3, 0xc203bbe8, 0x30056687, 0xc206dde6, - 0x2ff93bba, 0xc20a0248, 0x2fed118a, 0xc20d290d, - 0x2fe0e7f9, 0xc2105236, 0x2fd4bf08, 0xc2137dc2, - 0x2fc896b5, 0xc216abb1, 0x2fbc6f03, 0xc219dc03, - 0x2fb047f2, 0xc21d0eb8, 0x2fa42181, 0xc22043d0, - 0x2f97fbb2, 0xc2237b4b, 0x2f8bd685, 0xc226b528, - 0x2f7fb1fa, 0xc229f167, 0x2f738e12, 0xc22d3009, - 0x2f676ace, 0xc230710d, 0x2f5b482d, 0xc233b473, - 0x2f4f2630, 0xc236fa3b, 0x2f4304d8, 0xc23a4265, - 0x2f36e426, 0xc23d8cf1, 0x2f2ac419, 0xc240d9de, - 0x2f1ea4b2, 0xc244292c, 0x2f1285f2, 0xc2477adc, - 0x2f0667d9, 0xc24aceed, 0x2efa4a67, 0xc24e255e, - 0x2eee2d9d, 0xc2517e31, 0x2ee2117c, 0xc254d965, - 0x2ed5f604, 0xc25836f9, 0x2ec9db35, 0xc25b96ee, - 0x2ebdc110, 0xc25ef943, 0x2eb1a796, 0xc2625df8, - 0x2ea58ec6, 0xc265c50e, 0x2e9976a1, 0xc2692e83, - 0x2e8d5f29, 0xc26c9a58, 0x2e81485c, 0xc270088e, - 0x2e75323c, 0xc2737922, 0x2e691cc9, 0xc276ec16, - 0x2e5d0804, 0xc27a616a, 0x2e50f3ed, 0xc27dd91c, - 0x2e44e084, 0xc281532e, 0x2e38cdcb, 0xc284cf9f, - 0x2e2cbbc1, 0xc2884e6e, 0x2e20aa67, 0xc28bcf9c, - 0x2e1499bd, 0xc28f5329, 0x2e0889c4, 0xc292d914, - 0x2dfc7a7c, 0xc296615d, 0x2df06be6, 0xc299ec05, - 0x2de45e03, 0xc29d790a, 0x2dd850d2, 0xc2a1086d, - 0x2dcc4454, 0xc2a49a2e, 0x2dc0388a, 0xc2a82e4d, - 0x2db42d74, 0xc2abc4c9, 0x2da82313, 0xc2af5da2, - 0x2d9c1967, 0xc2b2f8d8, 0x2d901070, 0xc2b6966c, - 0x2d84082f, 0xc2ba365c, 0x2d7800a5, 0xc2bdd8a9, - 0x2d6bf9d1, 0xc2c17d52, 0x2d5ff3b5, 0xc2c52459, - 0x2d53ee51, 0xc2c8cdbb, 0x2d47e9a5, 0xc2cc7979, - 0x2d3be5b1, 0xc2d02794, 0x2d2fe277, 0xc2d3d80a, - 0x2d23dff7, 0xc2d78add, 0x2d17de31, 0xc2db400a, - 0x2d0bdd25, 0xc2def794, 0x2cffdcd4, 0xc2e2b178, - 0x2cf3dd3f, 0xc2e66db8, 0x2ce7de66, 0xc2ea2c53, - 0x2cdbe04a, 0xc2eded49, 0x2ccfe2ea, 0xc2f1b099, - 0x2cc3e648, 0xc2f57644, 0x2cb7ea63, 0xc2f93e4a, - 0x2cabef3d, 0xc2fd08a9, 0x2c9ff4d6, 0xc300d563, - 0x2c93fb2e, 0xc304a477, 0x2c880245, 0xc30875e5, - 0x2c7c0a1d, 0xc30c49ad, 0x2c7012b5, 0xc3101fce, - 0x2c641c0e, 0xc313f848, 0x2c582629, 0xc317d31c, - 0x2c4c3106, 0xc31bb049, 0x2c403ca5, 0xc31f8fcf, - 0x2c344908, 0xc32371ae, 0x2c28562d, 0xc32755e5, - 0x2c1c6417, 0xc32b3c75, 0x2c1072c4, 0xc32f255e, - 0x2c048237, 0xc333109e, 0x2bf8926f, 0xc336fe37, - 0x2beca36c, 0xc33aee27, 0x2be0b52f, 0xc33ee070, - 0x2bd4c7ba, 0xc342d510, 0x2bc8db0b, 0xc346cc07, - 0x2bbcef23, 0xc34ac556, 0x2bb10404, 0xc34ec0fc, - 0x2ba519ad, 0xc352bef9, 0x2b99301f, 0xc356bf4d, - 0x2b8d475b, 0xc35ac1f7, 0x2b815f60, 0xc35ec6f8, - 0x2b75782f, 0xc362ce50, 0x2b6991ca, 0xc366d7fd, - 0x2b5dac2f, 0xc36ae401, 0x2b51c760, 0xc36ef25b, - 0x2b45e35d, 0xc373030a, 0x2b3a0027, 0xc377160f, - 0x2b2e1dbe, 0xc37b2b6a, 0x2b223c22, 0xc37f4319, - 0x2b165b54, 0xc3835d1e, 0x2b0a7b54, 0xc3877978, - 0x2afe9c24, 0xc38b9827, 0x2af2bdc3, 0xc38fb92a, - 0x2ae6e031, 0xc393dc82, 0x2adb0370, 0xc398022f, - 0x2acf277f, 0xc39c2a2f, 0x2ac34c60, 0xc3a05484, - 0x2ab77212, 0xc3a4812c, 0x2aab9896, 0xc3a8b028, - 0x2a9fbfed, 0xc3ace178, 0x2a93e817, 0xc3b1151b, - 0x2a881114, 0xc3b54b11, 0x2a7c3ae5, 0xc3b9835a, - 0x2a70658a, 0xc3bdbdf6, 0x2a649105, 0xc3c1fae5, - 0x2a58bd54, 0xc3c63a26, 0x2a4cea79, 0xc3ca7bba, - 0x2a411874, 0xc3cebfa0, 0x2a354746, 0xc3d305d8, - 0x2a2976ef, 0xc3d74e62, 0x2a1da770, 0xc3db993e, - 0x2a11d8c8, 0xc3dfe66c, 0x2a060af9, 0xc3e435ea, - 0x29fa3e03, 0xc3e887bb, 0x29ee71e6, 0xc3ecdbdc, - 0x29e2a6a3, 0xc3f1324e, 0x29d6dc3b, 0xc3f58b10, - 0x29cb12ad, 0xc3f9e624, 0x29bf49fa, 0xc3fe4388, - 0x29b38223, 0xc402a33c, 0x29a7bb28, 0xc4070540, - 0x299bf509, 0xc40b6994, 0x29902fc7, 0xc40fd037, - 0x29846b63, 0xc414392b, 0x2978a7dd, 0xc418a46d, - 0x296ce535, 0xc41d11ff, 0x2961236c, 0xc42181e0, - 0x29556282, 0xc425f410, 0x2949a278, 0xc42a688f, - 0x293de34e, 0xc42edf5c, 0x29322505, 0xc4335877, - 0x2926679c, 0xc437d3e1, 0x291aab16, 0xc43c5199, - 0x290eef71, 0xc440d19e, 0x290334af, 0xc44553f2, - 0x28f77acf, 0xc449d892, 0x28ebc1d3, 0xc44e5f80, - 0x28e009ba, 0xc452e8bc, 0x28d45286, 0xc4577444, - 0x28c89c37, 0xc45c0219, 0x28bce6cd, 0xc460923b, - 0x28b13248, 0xc46524a9, 0x28a57ea9, 0xc469b963, - 0x2899cbf1, 0xc46e5069, 0x288e1a20, 0xc472e9bc, - 0x28826936, 0xc477855a, 0x2876b934, 0xc47c2344, - 0x286b0a1a, 0xc480c379, 0x285f5be9, 0xc48565f9, - 0x2853aea1, 0xc48a0ac4, 0x28480243, 0xc48eb1db, - 0x283c56cf, 0xc4935b3c, 0x2830ac45, 0xc49806e7, - 0x282502a7, 0xc49cb4dd, 0x281959f4, 0xc4a1651c, - 0x280db22d, 0xc4a617a6, 0x28020b52, 0xc4aacc7a, - 0x27f66564, 0xc4af8397, 0x27eac063, 0xc4b43cfd, - 0x27df1c50, 0xc4b8f8ad, 0x27d3792b, 0xc4bdb6a6, - 0x27c7d6f4, 0xc4c276e8, 0x27bc35ad, 0xc4c73972, - 0x27b09555, 0xc4cbfe45, 0x27a4f5ed, 0xc4d0c560, - 0x27995776, 0xc4d58ec3, 0x278db9ef, 0xc4da5a6f, - 0x27821d59, 0xc4df2862, 0x277681b6, 0xc4e3f89c, - 0x276ae704, 0xc4e8cb1e, 0x275f4d45, 0xc4ed9fe7, - 0x2753b479, 0xc4f276f7, 0x27481ca1, 0xc4f7504e, - 0x273c85bc, 0xc4fc2bec, 0x2730efcc, 0xc50109d0, - 0x27255ad1, 0xc505e9fb, 0x2719c6cb, 0xc50acc6b, - 0x270e33bb, 0xc50fb121, 0x2702a1a1, 0xc514981d, - 0x26f7107e, 0xc519815f, 0x26eb8052, 0xc51e6ce6, - 0x26dff11d, 0xc5235ab2, 0x26d462e1, 0xc5284ac3, - 0x26c8d59c, 0xc52d3d18, 0x26bd4951, 0xc53231b3, - 0x26b1bdff, 0xc5372891, 0x26a633a6, 0xc53c21b4, - 0x269aaa48, 0xc5411d1b, 0x268f21e5, 0xc5461ac6, - 0x26839a7c, 0xc54b1ab4, 0x26781410, 0xc5501ce5, - 0x266c8e9f, 0xc555215a, 0x26610a2a, 0xc55a2812, - 0x265586b3, 0xc55f310d, 0x264a0438, 0xc5643c4a, - 0x263e82bc, 0xc56949ca, 0x2633023e, 0xc56e598c, - 0x262782be, 0xc5736b90, 0x261c043d, 0xc5787fd6, - 0x261086bc, 0xc57d965d, 0x26050a3b, 0xc582af26, - 0x25f98ebb, 0xc587ca31, 0x25ee143b, 0xc58ce77c, - 0x25e29abc, 0xc5920708, 0x25d72240, 0xc59728d5, - 0x25cbaac5, 0xc59c4ce3, 0x25c0344d, 0xc5a17330, - 0x25b4bed8, 0xc5a69bbe, 0x25a94a67, 0xc5abc68c, - 0x259dd6f9, 0xc5b0f399, 0x25926490, 0xc5b622e6, - 0x2586f32c, 0xc5bb5472, 0x257b82cd, 0xc5c0883d, - 0x25701374, 0xc5c5be47, 0x2564a521, 0xc5caf690, - 0x255937d5, 0xc5d03118, 0x254dcb8f, 0xc5d56ddd, - 0x25426051, 0xc5daace1, 0x2536f61b, 0xc5dfee22, - 0x252b8cee, 0xc5e531a1, 0x252024c9, 0xc5ea775e, - 0x2514bdad, 0xc5efbf58, 0x2509579b, 0xc5f5098f, - 0x24fdf294, 0xc5fa5603, 0x24f28e96, 0xc5ffa4b3, - 0x24e72ba4, 0xc604f5a0, 0x24dbc9bd, 0xc60a48c9, - 0x24d068e2, 0xc60f9e2e, 0x24c50914, 0xc614f5cf, - 0x24b9aa52, 0xc61a4fac, 0x24ae4c9d, 0xc61fabc4, - 0x24a2eff6, 0xc6250a18, 0x2497945d, 0xc62a6aa6, - 0x248c39d3, 0xc62fcd6f, 0x2480e057, 0xc6353273, - 0x247587eb, 0xc63a99b1, 0x246a308f, 0xc6400329, - 0x245eda43, 0xc6456edb, 0x24538507, 0xc64adcc7, - 0x244830dd, 0xc6504ced, 0x243cddc4, 0xc655bf4c, - 0x24318bbe, 0xc65b33e4, 0x24263ac9, 0xc660aab5, - 0x241aeae8, 0xc66623be, 0x240f9c1a, 0xc66b9f01, - 0x24044e60, 0xc6711c7b, 0x23f901ba, 0xc6769c2e, - 0x23edb628, 0xc67c1e18, 0x23e26bac, 0xc681a23a, - 0x23d72245, 0xc6872894, 0x23cbd9f4, 0xc68cb124, - 0x23c092b9, 0xc6923bec, 0x23b54c95, 0xc697c8eb, - 0x23aa0788, 0xc69d5820, 0x239ec393, 0xc6a2e98b, - 0x239380b6, 0xc6a87d2d, 0x23883ef2, 0xc6ae1304, - 0x237cfe47, 0xc6b3ab12, 0x2371beb5, 0xc6b94554, - 0x2366803c, 0xc6bee1cd, 0x235b42df, 0xc6c4807a, - 0x2350069b, 0xc6ca215c, 0x2344cb73, 0xc6cfc472, - 0x23399167, 0xc6d569be, 0x232e5876, 0xc6db113d, - 0x232320a2, 0xc6e0baf0, 0x2317e9eb, 0xc6e666d7, - 0x230cb451, 0xc6ec14f2, 0x23017fd5, 0xc6f1c540, - 0x22f64c77, 0xc6f777c1, 0x22eb1a37, 0xc6fd2c75, - 0x22dfe917, 0xc702e35c, 0x22d4b916, 0xc7089c75, - 0x22c98a35, 0xc70e57c0, 0x22be5c74, 0xc714153e, - 0x22b32fd4, 0xc719d4ed, 0x22a80456, 0xc71f96ce, - 0x229cd9f8, 0xc7255ae0, 0x2291b0bd, 0xc72b2123, - 0x228688a4, 0xc730e997, 0x227b61af, 0xc736b43c, - 0x22703bdc, 0xc73c8111, 0x2265172e, 0xc7425016, - 0x2259f3a3, 0xc748214c, 0x224ed13d, 0xc74df4b1, - 0x2243affc, 0xc753ca46, 0x22388fe1, 0xc759a20a, - 0x222d70eb, 0xc75f7bfe, 0x2222531c, 0xc7655820, - 0x22173674, 0xc76b3671, 0x220c1af3, 0xc77116f0, - 0x22010099, 0xc776f99d, 0x21f5e768, 0xc77cde79, - 0x21eacf5f, 0xc782c582, 0x21dfb87f, 0xc788aeb9, - 0x21d4a2c8, 0xc78e9a1d, 0x21c98e3b, 0xc79487ae, - 0x21be7ad8, 0xc79a776c, 0x21b368a0, 0xc7a06957, - 0x21a85793, 0xc7a65d6e, 0x219d47b1, 0xc7ac53b1, - 0x219238fb, 0xc7b24c20, 0x21872b72, 0xc7b846ba, - 0x217c1f15, 0xc7be4381, 0x217113e5, 0xc7c44272, - 0x216609e3, 0xc7ca438f, 0x215b0110, 0xc7d046d6, - 0x214ff96a, 0xc7d64c47, 0x2144f2f3, 0xc7dc53e3, - 0x2139edac, 0xc7e25daa, 0x212ee995, 0xc7e8699a, - 0x2123e6ad, 0xc7ee77b3, 0x2118e4f6, 0xc7f487f6, - 0x210de470, 0xc7fa9a62, 0x2102e51c, 0xc800aef7, - 0x20f7e6f9, 0xc806c5b5, 0x20ecea09, 0xc80cde9b, - 0x20e1ee4b, 0xc812f9a9, 0x20d6f3c1, 0xc81916df, - 0x20cbfa6a, 0xc81f363d, 0x20c10247, 0xc82557c3, - 0x20b60b58, 0xc82b7b70, 0x20ab159e, 0xc831a143, - 0x20a0211a, 0xc837c93e, 0x20952dcb, 0xc83df35f, - 0x208a3bb2, 0xc8441fa6, 0x207f4acf, 0xc84a4e14, - 0x20745b24, 0xc8507ea7, 0x20696cb0, 0xc856b160, - 0x205e7f74, 0xc85ce63e, 0x2053936f, 0xc8631d42, - 0x2048a8a4, 0xc869566a, 0x203dbf11, 0xc86f91b7, - 0x2032d6b8, 0xc875cf28, 0x2027ef99, 0xc87c0ebd, - 0x201d09b4, 0xc8825077, 0x2012250a, 0xc8889454, - 0x2007419b, 0xc88eda54, 0x1ffc5f67, 0xc8952278, - 0x1ff17e70, 0xc89b6cbf, 0x1fe69eb4, 0xc8a1b928, - 0x1fdbc036, 0xc8a807b4, 0x1fd0e2f5, 0xc8ae5862, - 0x1fc606f1, 0xc8b4ab32, 0x1fbb2c2c, 0xc8bb0023, - 0x1fb052a5, 0xc8c15736, 0x1fa57a5d, 0xc8c7b06b, - 0x1f9aa354, 0xc8ce0bc0, 0x1f8fcd8b, 0xc8d46936, - 0x1f84f902, 0xc8dac8cd, 0x1f7a25ba, 0xc8e12a84, - 0x1f6f53b3, 0xc8e78e5b, 0x1f6482ed, 0xc8edf452, - 0x1f59b369, 0xc8f45c68, 0x1f4ee527, 0xc8fac69e, - 0x1f441828, 0xc90132f2, 0x1f394c6b, 0xc907a166, - 0x1f2e81f3, 0xc90e11f7, 0x1f23b8be, 0xc91484a8, - 0x1f18f0ce, 0xc91af976, 0x1f0e2a22, 0xc9217062, - 0x1f0364bc, 0xc927e96b, 0x1ef8a09b, 0xc92e6492, - 0x1eedddc0, 0xc934e1d6, 0x1ee31c2b, 0xc93b6137, - 0x1ed85bdd, 0xc941e2b4, 0x1ecd9cd7, 0xc948664d, - 0x1ec2df18, 0xc94eec03, 0x1eb822a1, 0xc95573d4, - 0x1ead6773, 0xc95bfdc1, 0x1ea2ad8d, 0xc96289c9, - 0x1e97f4f1, 0xc96917ec, 0x1e8d3d9e, 0xc96fa82a, - 0x1e828796, 0xc9763a83, 0x1e77d2d8, 0xc97ccef5, - 0x1e6d1f65, 0xc9836582, 0x1e626d3e, 0xc989fe29, - 0x1e57bc62, 0xc99098e9, 0x1e4d0cd2, 0xc99735c2, - 0x1e425e8f, 0xc99dd4b4, 0x1e37b199, 0xc9a475bf, - 0x1e2d05f1, 0xc9ab18e3, 0x1e225b96, 0xc9b1be1e, - 0x1e17b28a, 0xc9b86572, 0x1e0d0acc, 0xc9bf0edd, - 0x1e02645d, 0xc9c5ba60, 0x1df7bf3e, 0xc9cc67fa, - 0x1ded1b6e, 0xc9d317ab, 0x1de278ef, 0xc9d9c973, - 0x1dd7d7c1, 0xc9e07d51, 0x1dcd37e4, 0xc9e73346, - 0x1dc29958, 0xc9edeb50, 0x1db7fc1e, 0xc9f4a570, - 0x1dad6036, 0xc9fb61a5, 0x1da2c5a2, 0xca021fef, - 0x1d982c60, 0xca08e04f, 0x1d8d9472, 0xca0fa2c3, - 0x1d82fdd8, 0xca16674b, 0x1d786892, 0xca1d2de7, - 0x1d6dd4a2, 0xca23f698, 0x1d634206, 0xca2ac15b, - 0x1d58b0c0, 0xca318e32, 0x1d4e20d0, 0xca385d1d, - 0x1d439236, 0xca3f2e19, 0x1d3904f4, 0xca460129, - 0x1d2e7908, 0xca4cd64b, 0x1d23ee74, 0xca53ad7e, - 0x1d196538, 0xca5a86c4, 0x1d0edd55, 0xca61621b, - 0x1d0456ca, 0xca683f83, 0x1cf9d199, 0xca6f1efc, - 0x1cef4dc2, 0xca760086, 0x1ce4cb44, 0xca7ce420, - 0x1cda4a21, 0xca83c9ca, 0x1ccfca59, 0xca8ab184, - 0x1cc54bec, 0xca919b4e, 0x1cbacedb, 0xca988727, - 0x1cb05326, 0xca9f750f, 0x1ca5d8cd, 0xcaa66506, - 0x1c9b5fd2, 0xcaad570c, 0x1c90e834, 0xcab44b1f, - 0x1c8671f3, 0xcabb4141, 0x1c7bfd11, 0xcac23971, - 0x1c71898d, 0xcac933ae, 0x1c671768, 0xcad02ff8, - 0x1c5ca6a2, 0xcad72e4f, 0x1c52373c, 0xcade2eb3, - 0x1c47c936, 0xcae53123, 0x1c3d5c91, 0xcaec35a0, - 0x1c32f14d, 0xcaf33c28, 0x1c28876a, 0xcafa44bc, - 0x1c1e1ee9, 0xcb014f5b, 0x1c13b7c9, 0xcb085c05, - 0x1c09520d, 0xcb0f6aba, 0x1bfeedb3, 0xcb167b79, - 0x1bf48abd, 0xcb1d8e43, 0x1bea292b, 0xcb24a316, - 0x1bdfc8fc, 0xcb2bb9f4, 0x1bd56a32, 0xcb32d2da, - 0x1bcb0cce, 0xcb39edca, 0x1bc0b0ce, 0xcb410ac3, - 0x1bb65634, 0xcb4829c4, 0x1babfd01, 0xcb4f4acd, - 0x1ba1a534, 0xcb566ddf, 0x1b974ece, 0xcb5d92f8, - 0x1b8cf9cf, 0xcb64ba19, 0x1b82a638, 0xcb6be341, - 0x1b785409, 0xcb730e70, 0x1b6e0342, 0xcb7a3ba5, - 0x1b63b3e5, 0xcb816ae1, 0x1b5965f1, 0xcb889c23, - 0x1b4f1967, 0xcb8fcf6b, 0x1b44ce46, 0xcb9704b9, - 0x1b3a8491, 0xcb9e3c0b, 0x1b303c46, 0xcba57563, - 0x1b25f566, 0xcbacb0bf, 0x1b1baff2, 0xcbb3ee20, - 0x1b116beb, 0xcbbb2d85, 0x1b072950, 0xcbc26eee, - 0x1afce821, 0xcbc9b25a, 0x1af2a860, 0xcbd0f7ca, - 0x1ae86a0d, 0xcbd83f3d, 0x1ade2d28, 0xcbdf88b3, - 0x1ad3f1b1, 0xcbe6d42b, 0x1ac9b7a9, 0xcbee21a5, - 0x1abf7f11, 0xcbf57121, 0x1ab547e8, 0xcbfcc29f, - 0x1aab122f, 0xcc04161e, 0x1aa0dde7, 0xcc0b6b9e, - 0x1a96ab0f, 0xcc12c31f, 0x1a8c79a9, 0xcc1a1ca0, - 0x1a8249b4, 0xcc217822, 0x1a781b31, 0xcc28d5a3, - 0x1a6dee21, 0xcc303524, 0x1a63c284, 0xcc3796a5, - 0x1a599859, 0xcc3efa25, 0x1a4f6fa3, 0xcc465fa3, - 0x1a454860, 0xcc4dc720, 0x1a3b2292, 0xcc55309b, - 0x1a30fe38, 0xcc5c9c14, 0x1a26db54, 0xcc64098b, - 0x1a1cb9e5, 0xcc6b78ff, 0x1a1299ec, 0xcc72ea70, - 0x1a087b69, 0xcc7a5dde, 0x19fe5e5e, 0xcc81d349, - 0x19f442c9, 0xcc894aaf, 0x19ea28ac, 0xcc90c412, - 0x19e01006, 0xcc983f70, 0x19d5f8d9, 0xcc9fbcca, - 0x19cbe325, 0xcca73c1e, 0x19c1cee9, 0xccaebd6e, - 0x19b7bc27, 0xccb640b8, 0x19adaadf, 0xccbdc5fc, - 0x19a39b11, 0xccc54d3a, 0x19998cbe, 0xccccd671, - 0x198f7fe6, 0xccd461a2, 0x19857489, 0xccdbeecc, - 0x197b6aa8, 0xcce37def, 0x19716243, 0xcceb0f0a, - 0x19675b5a, 0xccf2a21d, 0x195d55ef, 0xccfa3729, - 0x19535201, 0xcd01ce2b, 0x19494f90, 0xcd096725, - 0x193f4e9e, 0xcd110216, 0x19354f2a, 0xcd189efe, - 0x192b5135, 0xcd203ddc, 0x192154bf, 0xcd27deb0, - 0x191759c9, 0xcd2f817b, 0x190d6053, 0xcd37263a, - 0x1903685d, 0xcd3eccef, 0x18f971e8, 0xcd467599, - 0x18ef7cf4, 0xcd4e2037, 0x18e58982, 0xcd55ccca, - 0x18db9792, 0xcd5d7b50, 0x18d1a724, 0xcd652bcb, - 0x18c7b838, 0xcd6cde39, 0x18bdcad0, 0xcd74929a, - 0x18b3deeb, 0xcd7c48ee, 0x18a9f48a, 0xcd840134, - 0x18a00bae, 0xcd8bbb6d, 0x18962456, 0xcd937798, - 0x188c3e83, 0xcd9b35b4, 0x18825a35, 0xcda2f5c2, - 0x1878776d, 0xcdaab7c0, 0x186e962b, 0xcdb27bb0, - 0x1864b670, 0xcdba4190, 0x185ad83c, 0xcdc20960, - 0x1850fb8e, 0xcdc9d320, 0x18472069, 0xcdd19ed0, - 0x183d46cc, 0xcdd96c6f, 0x18336eb7, 0xcde13bfd, - 0x1829982b, 0xcde90d79, 0x181fc328, 0xcdf0e0e4, - 0x1815efae, 0xcdf8b63d, 0x180c1dbf, 0xce008d84, - 0x18024d59, 0xce0866b8, 0x17f87e7f, 0xce1041d9, - 0x17eeb130, 0xce181ee8, 0x17e4e56c, 0xce1ffde2, - 0x17db1b34, 0xce27dec9, 0x17d15288, 0xce2fc19c, - 0x17c78b68, 0xce37a65b, 0x17bdc5d6, 0xce3f8d05, - 0x17b401d1, 0xce47759a, 0x17aa3f5a, 0xce4f6019, - 0x17a07e70, 0xce574c84, 0x1796bf16, 0xce5f3ad8, - 0x178d014a, 0xce672b16, 0x1783450d, 0xce6f1d3d, - 0x17798a60, 0xce77114e, 0x176fd143, 0xce7f0748, - 0x176619b6, 0xce86ff2a, 0x175c63ba, 0xce8ef8f4, - 0x1752af4f, 0xce96f4a7, 0x1748fc75, 0xce9ef241, - 0x173f4b2e, 0xcea6f1c2, 0x17359b78, 0xceaef32b, - 0x172bed55, 0xceb6f67a, 0x172240c5, 0xcebefbb0, - 0x171895c9, 0xcec702cb, 0x170eec60, 0xcecf0bcd, - 0x1705448b, 0xced716b4, 0x16fb9e4b, 0xcedf2380, - 0x16f1f99f, 0xcee73231, 0x16e85689, 0xceef42c7, - 0x16deb508, 0xcef75541, 0x16d5151d, 0xceff699f, - 0x16cb76c9, 0xcf077fe1, 0x16c1da0b, 0xcf0f9805, - 0x16b83ee4, 0xcf17b20d, 0x16aea555, 0xcf1fcdf8, - 0x16a50d5d, 0xcf27ebc5, 0x169b76fe, 0xcf300b74, - 0x1691e237, 0xcf382d05, 0x16884f09, 0xcf405077, - 0x167ebd74, 0xcf4875ca, 0x16752d79, 0xcf509cfe, - 0x166b9f18, 0xcf58c613, 0x16621251, 0xcf60f108, - 0x16588725, 0xcf691ddd, 0x164efd94, 0xcf714c91, - 0x1645759f, 0xcf797d24, 0x163bef46, 0xcf81af97, - 0x16326a88, 0xcf89e3e8, 0x1628e767, 0xcf921a17, - 0x161f65e4, 0xcf9a5225, 0x1615e5fd, 0xcfa28c10, - 0x160c67b4, 0xcfaac7d8, 0x1602eb0a, 0xcfb3057d, - 0x15f96ffd, 0xcfbb4500, 0x15eff690, 0xcfc3865e, - 0x15e67ec1, 0xcfcbc999, 0x15dd0892, 0xcfd40eaf, - 0x15d39403, 0xcfdc55a1, 0x15ca2115, 0xcfe49e6d, - 0x15c0afc6, 0xcfece915, 0x15b74019, 0xcff53597, - 0x15add20d, 0xcffd83f4, 0x15a465a3, 0xd005d42a, - 0x159afadb, 0xd00e2639, 0x159191b5, 0xd0167a22, - 0x15882a32, 0xd01ecfe4, 0x157ec452, 0xd027277e, - 0x15756016, 0xd02f80f1, 0x156bfd7d, 0xd037dc3b, - 0x15629c89, 0xd040395d, 0x15593d3a, 0xd0489856, - 0x154fdf8f, 0xd050f926, 0x15468389, 0xd0595bcd, - 0x153d292a, 0xd061c04a, 0x1533d070, 0xd06a269d, - 0x152a795d, 0xd0728ec6, 0x152123f0, 0xd07af8c4, - 0x1517d02b, 0xd0836497, 0x150e7e0d, 0xd08bd23f, - 0x15052d97, 0xd09441bb, 0x14fbdec9, 0xd09cb30b, - 0x14f291a4, 0xd0a5262f, 0x14e94627, 0xd0ad9b26, - 0x14dffc54, 0xd0b611f1, 0x14d6b42b, 0xd0be8a8d, - 0x14cd6dab, 0xd0c704fd, 0x14c428d6, 0xd0cf813e, - 0x14bae5ab, 0xd0d7ff51, 0x14b1a42c, 0xd0e07f36, - 0x14a86458, 0xd0e900ec, 0x149f2630, 0xd0f18472, - 0x1495e9b3, 0xd0fa09c9, 0x148caee4, 0xd10290f0, - 0x148375c1, 0xd10b19e7, 0x147a3e4b, 0xd113a4ad, - 0x14710883, 0xd11c3142, 0x1467d469, 0xd124bfa6, - 0x145ea1fd, 0xd12d4fd9, 0x14557140, 0xd135e1d9, - 0x144c4232, 0xd13e75a8, 0x144314d3, 0xd1470b44, - 0x1439e923, 0xd14fa2ad, 0x1430bf24, 0xd1583be2, - 0x142796d5, 0xd160d6e5, 0x141e7037, 0xd16973b3, - 0x14154b4a, 0xd172124d, 0x140c280e, 0xd17ab2b3, - 0x14030684, 0xd18354e4, 0x13f9e6ad, 0xd18bf8e0, - 0x13f0c887, 0xd1949ea6, 0x13e7ac15, 0xd19d4636, - 0x13de9156, 0xd1a5ef90, 0x13d5784a, 0xd1ae9ab4, - 0x13cc60f2, 0xd1b747a0, 0x13c34b4f, 0xd1bff656, - 0x13ba3760, 0xd1c8a6d4, 0x13b12526, 0xd1d1591a, - 0x13a814a2, 0xd1da0d28, 0x139f05d3, 0xd1e2c2fd, - 0x1395f8ba, 0xd1eb7a9a, 0x138ced57, 0xd1f433fd, - 0x1383e3ab, 0xd1fcef27, 0x137adbb6, 0xd205ac17, - 0x1371d579, 0xd20e6acc, 0x1368d0f3, 0xd2172b48, - 0x135fce26, 0xd21fed88, 0x1356cd11, 0xd228b18d, - 0x134dcdb4, 0xd2317756, 0x1344d011, 0xd23a3ee4, - 0x133bd427, 0xd2430835, 0x1332d9f7, 0xd24bd34a, - 0x1329e181, 0xd254a021, 0x1320eac6, 0xd25d6ebc, - 0x1317f5c6, 0xd2663f19, 0x130f0280, 0xd26f1138, - 0x130610f7, 0xd277e518, 0x12fd2129, 0xd280babb, - 0x12f43318, 0xd289921e, 0x12eb46c3, 0xd2926b41, - 0x12e25c2b, 0xd29b4626, 0x12d97350, 0xd2a422ca, - 0x12d08c33, 0xd2ad012e, 0x12c7a6d4, 0xd2b5e151, - 0x12bec333, 0xd2bec333, 0x12b5e151, 0xd2c7a6d4, - 0x12ad012e, 0xd2d08c33, 0x12a422ca, 0xd2d97350, - 0x129b4626, 0xd2e25c2b, 0x12926b41, 0xd2eb46c3, - 0x1289921e, 0xd2f43318, 0x1280babb, 0xd2fd2129, - 0x1277e518, 0xd30610f7, 0x126f1138, 0xd30f0280, - 0x12663f19, 0xd317f5c6, 0x125d6ebc, 0xd320eac6, - 0x1254a021, 0xd329e181, 0x124bd34a, 0xd332d9f7, - 0x12430835, 0xd33bd427, 0x123a3ee4, 0xd344d011, - 0x12317756, 0xd34dcdb4, 0x1228b18d, 0xd356cd11, - 0x121fed88, 0xd35fce26, 0x12172b48, 0xd368d0f3, - 0x120e6acc, 0xd371d579, 0x1205ac17, 0xd37adbb6, - 0x11fcef27, 0xd383e3ab, 0x11f433fd, 0xd38ced57, - 0x11eb7a9a, 0xd395f8ba, 0x11e2c2fd, 0xd39f05d3, - 0x11da0d28, 0xd3a814a2, 0x11d1591a, 0xd3b12526, - 0x11c8a6d4, 0xd3ba3760, 0x11bff656, 0xd3c34b4f, - 0x11b747a0, 0xd3cc60f2, 0x11ae9ab4, 0xd3d5784a, - 0x11a5ef90, 0xd3de9156, 0x119d4636, 0xd3e7ac15, - 0x11949ea6, 0xd3f0c887, 0x118bf8e0, 0xd3f9e6ad, - 0x118354e4, 0xd4030684, 0x117ab2b3, 0xd40c280e, - 0x1172124d, 0xd4154b4a, 0x116973b3, 0xd41e7037, - 0x1160d6e5, 0xd42796d5, 0x11583be2, 0xd430bf24, - 0x114fa2ad, 0xd439e923, 0x11470b44, 0xd44314d3, - 0x113e75a8, 0xd44c4232, 0x1135e1d9, 0xd4557140, - 0x112d4fd9, 0xd45ea1fd, 0x1124bfa6, 0xd467d469, - 0x111c3142, 0xd4710883, 0x1113a4ad, 0xd47a3e4b, - 0x110b19e7, 0xd48375c1, 0x110290f0, 0xd48caee4, - 0x10fa09c9, 0xd495e9b3, 0x10f18472, 0xd49f2630, - 0x10e900ec, 0xd4a86458, 0x10e07f36, 0xd4b1a42c, - 0x10d7ff51, 0xd4bae5ab, 0x10cf813e, 0xd4c428d6, - 0x10c704fd, 0xd4cd6dab, 0x10be8a8d, 0xd4d6b42b, - 0x10b611f1, 0xd4dffc54, 0x10ad9b26, 0xd4e94627, - 0x10a5262f, 0xd4f291a4, 0x109cb30b, 0xd4fbdec9, - 0x109441bb, 0xd5052d97, 0x108bd23f, 0xd50e7e0d, - 0x10836497, 0xd517d02b, 0x107af8c4, 0xd52123f0, - 0x10728ec6, 0xd52a795d, 0x106a269d, 0xd533d070, - 0x1061c04a, 0xd53d292a, 0x10595bcd, 0xd5468389, - 0x1050f926, 0xd54fdf8f, 0x10489856, 0xd5593d3a, - 0x1040395d, 0xd5629c89, 0x1037dc3b, 0xd56bfd7d, - 0x102f80f1, 0xd5756016, 0x1027277e, 0xd57ec452, - 0x101ecfe4, 0xd5882a32, 0x10167a22, 0xd59191b5, - 0x100e2639, 0xd59afadb, 0x1005d42a, 0xd5a465a3, - 0xffd83f4, 0xd5add20d, 0xff53597, 0xd5b74019, - 0xfece915, 0xd5c0afc6, 0xfe49e6d, 0xd5ca2115, - 0xfdc55a1, 0xd5d39403, 0xfd40eaf, 0xd5dd0892, - 0xfcbc999, 0xd5e67ec1, 0xfc3865e, 0xd5eff690, - 0xfbb4500, 0xd5f96ffd, 0xfb3057d, 0xd602eb0a, - 0xfaac7d8, 0xd60c67b4, 0xfa28c10, 0xd615e5fd, - 0xf9a5225, 0xd61f65e4, 0xf921a17, 0xd628e767, - 0xf89e3e8, 0xd6326a88, 0xf81af97, 0xd63bef46, - 0xf797d24, 0xd645759f, 0xf714c91, 0xd64efd94, - 0xf691ddd, 0xd6588725, 0xf60f108, 0xd6621251, - 0xf58c613, 0xd66b9f18, 0xf509cfe, 0xd6752d79, - 0xf4875ca, 0xd67ebd74, 0xf405077, 0xd6884f09, - 0xf382d05, 0xd691e237, 0xf300b74, 0xd69b76fe, - 0xf27ebc5, 0xd6a50d5d, 0xf1fcdf8, 0xd6aea555, - 0xf17b20d, 0xd6b83ee4, 0xf0f9805, 0xd6c1da0b, - 0xf077fe1, 0xd6cb76c9, 0xeff699f, 0xd6d5151d, - 0xef75541, 0xd6deb508, 0xeef42c7, 0xd6e85689, - 0xee73231, 0xd6f1f99f, 0xedf2380, 0xd6fb9e4b, - 0xed716b4, 0xd705448b, 0xecf0bcd, 0xd70eec60, - 0xec702cb, 0xd71895c9, 0xebefbb0, 0xd72240c5, - 0xeb6f67a, 0xd72bed55, 0xeaef32b, 0xd7359b78, - 0xea6f1c2, 0xd73f4b2e, 0xe9ef241, 0xd748fc75, - 0xe96f4a7, 0xd752af4f, 0xe8ef8f4, 0xd75c63ba, - 0xe86ff2a, 0xd76619b6, 0xe7f0748, 0xd76fd143, - 0xe77114e, 0xd7798a60, 0xe6f1d3d, 0xd783450d, - 0xe672b16, 0xd78d014a, 0xe5f3ad8, 0xd796bf16, - 0xe574c84, 0xd7a07e70, 0xe4f6019, 0xd7aa3f5a, - 0xe47759a, 0xd7b401d1, 0xe3f8d05, 0xd7bdc5d6, - 0xe37a65b, 0xd7c78b68, 0xe2fc19c, 0xd7d15288, - 0xe27dec9, 0xd7db1b34, 0xe1ffde2, 0xd7e4e56c, - 0xe181ee8, 0xd7eeb130, 0xe1041d9, 0xd7f87e7f, - 0xe0866b8, 0xd8024d59, 0xe008d84, 0xd80c1dbf, - 0xdf8b63d, 0xd815efae, 0xdf0e0e4, 0xd81fc328, - 0xde90d79, 0xd829982b, 0xde13bfd, 0xd8336eb7, - 0xdd96c6f, 0xd83d46cc, 0xdd19ed0, 0xd8472069, - 0xdc9d320, 0xd850fb8e, 0xdc20960, 0xd85ad83c, - 0xdba4190, 0xd864b670, 0xdb27bb0, 0xd86e962b, - 0xdaab7c0, 0xd878776d, 0xda2f5c2, 0xd8825a35, - 0xd9b35b4, 0xd88c3e83, 0xd937798, 0xd8962456, - 0xd8bbb6d, 0xd8a00bae, 0xd840134, 0xd8a9f48a, - 0xd7c48ee, 0xd8b3deeb, 0xd74929a, 0xd8bdcad0, - 0xd6cde39, 0xd8c7b838, 0xd652bcb, 0xd8d1a724, - 0xd5d7b50, 0xd8db9792, 0xd55ccca, 0xd8e58982, - 0xd4e2037, 0xd8ef7cf4, 0xd467599, 0xd8f971e8, - 0xd3eccef, 0xd903685d, 0xd37263a, 0xd90d6053, - 0xd2f817b, 0xd91759c9, 0xd27deb0, 0xd92154bf, - 0xd203ddc, 0xd92b5135, 0xd189efe, 0xd9354f2a, - 0xd110216, 0xd93f4e9e, 0xd096725, 0xd9494f90, - 0xd01ce2b, 0xd9535201, 0xcfa3729, 0xd95d55ef, - 0xcf2a21d, 0xd9675b5a, 0xceb0f0a, 0xd9716243, - 0xce37def, 0xd97b6aa8, 0xcdbeecc, 0xd9857489, - 0xcd461a2, 0xd98f7fe6, 0xcccd671, 0xd9998cbe, - 0xcc54d3a, 0xd9a39b11, 0xcbdc5fc, 0xd9adaadf, - 0xcb640b8, 0xd9b7bc27, 0xcaebd6e, 0xd9c1cee9, - 0xca73c1e, 0xd9cbe325, 0xc9fbcca, 0xd9d5f8d9, - 0xc983f70, 0xd9e01006, 0xc90c412, 0xd9ea28ac, - 0xc894aaf, 0xd9f442c9, 0xc81d349, 0xd9fe5e5e, - 0xc7a5dde, 0xda087b69, 0xc72ea70, 0xda1299ec, - 0xc6b78ff, 0xda1cb9e5, 0xc64098b, 0xda26db54, - 0xc5c9c14, 0xda30fe38, 0xc55309b, 0xda3b2292, - 0xc4dc720, 0xda454860, 0xc465fa3, 0xda4f6fa3, - 0xc3efa25, 0xda599859, 0xc3796a5, 0xda63c284, - 0xc303524, 0xda6dee21, 0xc28d5a3, 0xda781b31, - 0xc217822, 0xda8249b4, 0xc1a1ca0, 0xda8c79a9, - 0xc12c31f, 0xda96ab0f, 0xc0b6b9e, 0xdaa0dde7, - 0xc04161e, 0xdaab122f, 0xbfcc29f, 0xdab547e8, - 0xbf57121, 0xdabf7f11, 0xbee21a5, 0xdac9b7a9, - 0xbe6d42b, 0xdad3f1b1, 0xbdf88b3, 0xdade2d28, - 0xbd83f3d, 0xdae86a0d, 0xbd0f7ca, 0xdaf2a860, - 0xbc9b25a, 0xdafce821, 0xbc26eee, 0xdb072950, - 0xbbb2d85, 0xdb116beb, 0xbb3ee20, 0xdb1baff2, - 0xbacb0bf, 0xdb25f566, 0xba57563, 0xdb303c46, - 0xb9e3c0b, 0xdb3a8491, 0xb9704b9, 0xdb44ce46, - 0xb8fcf6b, 0xdb4f1967, 0xb889c23, 0xdb5965f1, - 0xb816ae1, 0xdb63b3e5, 0xb7a3ba5, 0xdb6e0342, - 0xb730e70, 0xdb785409, 0xb6be341, 0xdb82a638, - 0xb64ba19, 0xdb8cf9cf, 0xb5d92f8, 0xdb974ece, - 0xb566ddf, 0xdba1a534, 0xb4f4acd, 0xdbabfd01, - 0xb4829c4, 0xdbb65634, 0xb410ac3, 0xdbc0b0ce, - 0xb39edca, 0xdbcb0cce, 0xb32d2da, 0xdbd56a32, - 0xb2bb9f4, 0xdbdfc8fc, 0xb24a316, 0xdbea292b, - 0xb1d8e43, 0xdbf48abd, 0xb167b79, 0xdbfeedb3, - 0xb0f6aba, 0xdc09520d, 0xb085c05, 0xdc13b7c9, - 0xb014f5b, 0xdc1e1ee9, 0xafa44bc, 0xdc28876a, - 0xaf33c28, 0xdc32f14d, 0xaec35a0, 0xdc3d5c91, - 0xae53123, 0xdc47c936, 0xade2eb3, 0xdc52373c, - 0xad72e4f, 0xdc5ca6a2, 0xad02ff8, 0xdc671768, - 0xac933ae, 0xdc71898d, 0xac23971, 0xdc7bfd11, - 0xabb4141, 0xdc8671f3, 0xab44b1f, 0xdc90e834, - 0xaad570c, 0xdc9b5fd2, 0xaa66506, 0xdca5d8cd, - 0xa9f750f, 0xdcb05326, 0xa988727, 0xdcbacedb, - 0xa919b4e, 0xdcc54bec, 0xa8ab184, 0xdccfca59, - 0xa83c9ca, 0xdcda4a21, 0xa7ce420, 0xdce4cb44, - 0xa760086, 0xdcef4dc2, 0xa6f1efc, 0xdcf9d199, - 0xa683f83, 0xdd0456ca, 0xa61621b, 0xdd0edd55, - 0xa5a86c4, 0xdd196538, 0xa53ad7e, 0xdd23ee74, - 0xa4cd64b, 0xdd2e7908, 0xa460129, 0xdd3904f4, - 0xa3f2e19, 0xdd439236, 0xa385d1d, 0xdd4e20d0, - 0xa318e32, 0xdd58b0c0, 0xa2ac15b, 0xdd634206, - 0xa23f698, 0xdd6dd4a2, 0xa1d2de7, 0xdd786892, - 0xa16674b, 0xdd82fdd8, 0xa0fa2c3, 0xdd8d9472, - 0xa08e04f, 0xdd982c60, 0xa021fef, 0xdda2c5a2, - 0x9fb61a5, 0xddad6036, 0x9f4a570, 0xddb7fc1e, - 0x9edeb50, 0xddc29958, 0x9e73346, 0xddcd37e4, - 0x9e07d51, 0xddd7d7c1, 0x9d9c973, 0xdde278ef, - 0x9d317ab, 0xdded1b6e, 0x9cc67fa, 0xddf7bf3e, - 0x9c5ba60, 0xde02645d, 0x9bf0edd, 0xde0d0acc, - 0x9b86572, 0xde17b28a, 0x9b1be1e, 0xde225b96, - 0x9ab18e3, 0xde2d05f1, 0x9a475bf, 0xde37b199, - 0x99dd4b4, 0xde425e8f, 0x99735c2, 0xde4d0cd2, - 0x99098e9, 0xde57bc62, 0x989fe29, 0xde626d3e, - 0x9836582, 0xde6d1f65, 0x97ccef5, 0xde77d2d8, - 0x9763a83, 0xde828796, 0x96fa82a, 0xde8d3d9e, - 0x96917ec, 0xde97f4f1, 0x96289c9, 0xdea2ad8d, - 0x95bfdc1, 0xdead6773, 0x95573d4, 0xdeb822a1, - 0x94eec03, 0xdec2df18, 0x948664d, 0xdecd9cd7, - 0x941e2b4, 0xded85bdd, 0x93b6137, 0xdee31c2b, - 0x934e1d6, 0xdeedddc0, 0x92e6492, 0xdef8a09b, - 0x927e96b, 0xdf0364bc, 0x9217062, 0xdf0e2a22, - 0x91af976, 0xdf18f0ce, 0x91484a8, 0xdf23b8be, - 0x90e11f7, 0xdf2e81f3, 0x907a166, 0xdf394c6b, - 0x90132f2, 0xdf441828, 0x8fac69e, 0xdf4ee527, - 0x8f45c68, 0xdf59b369, 0x8edf452, 0xdf6482ed, - 0x8e78e5b, 0xdf6f53b3, 0x8e12a84, 0xdf7a25ba, - 0x8dac8cd, 0xdf84f902, 0x8d46936, 0xdf8fcd8b, - 0x8ce0bc0, 0xdf9aa354, 0x8c7b06b, 0xdfa57a5d, - 0x8c15736, 0xdfb052a5, 0x8bb0023, 0xdfbb2c2c, - 0x8b4ab32, 0xdfc606f1, 0x8ae5862, 0xdfd0e2f5, - 0x8a807b4, 0xdfdbc036, 0x8a1b928, 0xdfe69eb4, - 0x89b6cbf, 0xdff17e70, 0x8952278, 0xdffc5f67, - 0x88eda54, 0xe007419b, 0x8889454, 0xe012250a, - 0x8825077, 0xe01d09b4, 0x87c0ebd, 0xe027ef99, - 0x875cf28, 0xe032d6b8, 0x86f91b7, 0xe03dbf11, - 0x869566a, 0xe048a8a4, 0x8631d42, 0xe053936f, - 0x85ce63e, 0xe05e7f74, 0x856b160, 0xe0696cb0, - 0x8507ea7, 0xe0745b24, 0x84a4e14, 0xe07f4acf, - 0x8441fa6, 0xe08a3bb2, 0x83df35f, 0xe0952dcb, - 0x837c93e, 0xe0a0211a, 0x831a143, 0xe0ab159e, - 0x82b7b70, 0xe0b60b58, 0x82557c3, 0xe0c10247, - 0x81f363d, 0xe0cbfa6a, 0x81916df, 0xe0d6f3c1, - 0x812f9a9, 0xe0e1ee4b, 0x80cde9b, 0xe0ecea09, - 0x806c5b5, 0xe0f7e6f9, 0x800aef7, 0xe102e51c, - 0x7fa9a62, 0xe10de470, 0x7f487f6, 0xe118e4f6, - 0x7ee77b3, 0xe123e6ad, 0x7e8699a, 0xe12ee995, - 0x7e25daa, 0xe139edac, 0x7dc53e3, 0xe144f2f3, - 0x7d64c47, 0xe14ff96a, 0x7d046d6, 0xe15b0110, - 0x7ca438f, 0xe16609e3, 0x7c44272, 0xe17113e5, - 0x7be4381, 0xe17c1f15, 0x7b846ba, 0xe1872b72, - 0x7b24c20, 0xe19238fb, 0x7ac53b1, 0xe19d47b1, - 0x7a65d6e, 0xe1a85793, 0x7a06957, 0xe1b368a0, - 0x79a776c, 0xe1be7ad8, 0x79487ae, 0xe1c98e3b, - 0x78e9a1d, 0xe1d4a2c8, 0x788aeb9, 0xe1dfb87f, - 0x782c582, 0xe1eacf5f, 0x77cde79, 0xe1f5e768, - 0x776f99d, 0xe2010099, 0x77116f0, 0xe20c1af3, - 0x76b3671, 0xe2173674, 0x7655820, 0xe222531c, - 0x75f7bfe, 0xe22d70eb, 0x759a20a, 0xe2388fe1, - 0x753ca46, 0xe243affc, 0x74df4b1, 0xe24ed13d, - 0x748214c, 0xe259f3a3, 0x7425016, 0xe265172e, - 0x73c8111, 0xe2703bdc, 0x736b43c, 0xe27b61af, - 0x730e997, 0xe28688a4, 0x72b2123, 0xe291b0bd, - 0x7255ae0, 0xe29cd9f8, 0x71f96ce, 0xe2a80456, - 0x719d4ed, 0xe2b32fd4, 0x714153e, 0xe2be5c74, - 0x70e57c0, 0xe2c98a35, 0x7089c75, 0xe2d4b916, - 0x702e35c, 0xe2dfe917, 0x6fd2c75, 0xe2eb1a37, - 0x6f777c1, 0xe2f64c77, 0x6f1c540, 0xe3017fd5, - 0x6ec14f2, 0xe30cb451, 0x6e666d7, 0xe317e9eb, - 0x6e0baf0, 0xe32320a2, 0x6db113d, 0xe32e5876, - 0x6d569be, 0xe3399167, 0x6cfc472, 0xe344cb73, - 0x6ca215c, 0xe350069b, 0x6c4807a, 0xe35b42df, - 0x6bee1cd, 0xe366803c, 0x6b94554, 0xe371beb5, - 0x6b3ab12, 0xe37cfe47, 0x6ae1304, 0xe3883ef2, - 0x6a87d2d, 0xe39380b6, 0x6a2e98b, 0xe39ec393, - 0x69d5820, 0xe3aa0788, 0x697c8eb, 0xe3b54c95, - 0x6923bec, 0xe3c092b9, 0x68cb124, 0xe3cbd9f4, - 0x6872894, 0xe3d72245, 0x681a23a, 0xe3e26bac, - 0x67c1e18, 0xe3edb628, 0x6769c2e, 0xe3f901ba, - 0x6711c7b, 0xe4044e60, 0x66b9f01, 0xe40f9c1a, - 0x66623be, 0xe41aeae8, 0x660aab5, 0xe4263ac9, - 0x65b33e4, 0xe4318bbe, 0x655bf4c, 0xe43cddc4, - 0x6504ced, 0xe44830dd, 0x64adcc7, 0xe4538507, - 0x6456edb, 0xe45eda43, 0x6400329, 0xe46a308f, - 0x63a99b1, 0xe47587eb, 0x6353273, 0xe480e057, - 0x62fcd6f, 0xe48c39d3, 0x62a6aa6, 0xe497945d, - 0x6250a18, 0xe4a2eff6, 0x61fabc4, 0xe4ae4c9d, - 0x61a4fac, 0xe4b9aa52, 0x614f5cf, 0xe4c50914, - 0x60f9e2e, 0xe4d068e2, 0x60a48c9, 0xe4dbc9bd, - 0x604f5a0, 0xe4e72ba4, 0x5ffa4b3, 0xe4f28e96, - 0x5fa5603, 0xe4fdf294, 0x5f5098f, 0xe509579b, - 0x5efbf58, 0xe514bdad, 0x5ea775e, 0xe52024c9, - 0x5e531a1, 0xe52b8cee, 0x5dfee22, 0xe536f61b, - 0x5daace1, 0xe5426051, 0x5d56ddd, 0xe54dcb8f, - 0x5d03118, 0xe55937d5, 0x5caf690, 0xe564a521, - 0x5c5be47, 0xe5701374, 0x5c0883d, 0xe57b82cd, - 0x5bb5472, 0xe586f32c, 0x5b622e6, 0xe5926490, - 0x5b0f399, 0xe59dd6f9, 0x5abc68c, 0xe5a94a67, - 0x5a69bbe, 0xe5b4bed8, 0x5a17330, 0xe5c0344d, - 0x59c4ce3, 0xe5cbaac5, 0x59728d5, 0xe5d72240, - 0x5920708, 0xe5e29abc, 0x58ce77c, 0xe5ee143b, - 0x587ca31, 0xe5f98ebb, 0x582af26, 0xe6050a3b, - 0x57d965d, 0xe61086bc, 0x5787fd6, 0xe61c043d, - 0x5736b90, 0xe62782be, 0x56e598c, 0xe633023e, - 0x56949ca, 0xe63e82bc, 0x5643c4a, 0xe64a0438, - 0x55f310d, 0xe65586b3, 0x55a2812, 0xe6610a2a, - 0x555215a, 0xe66c8e9f, 0x5501ce5, 0xe6781410, - 0x54b1ab4, 0xe6839a7c, 0x5461ac6, 0xe68f21e5, - 0x5411d1b, 0xe69aaa48, 0x53c21b4, 0xe6a633a6, - 0x5372891, 0xe6b1bdff, 0x53231b3, 0xe6bd4951, - 0x52d3d18, 0xe6c8d59c, 0x5284ac3, 0xe6d462e1, - 0x5235ab2, 0xe6dff11d, 0x51e6ce6, 0xe6eb8052, - 0x519815f, 0xe6f7107e, 0x514981d, 0xe702a1a1, - 0x50fb121, 0xe70e33bb, 0x50acc6b, 0xe719c6cb, - 0x505e9fb, 0xe7255ad1, 0x50109d0, 0xe730efcc, - 0x4fc2bec, 0xe73c85bc, 0x4f7504e, 0xe7481ca1, - 0x4f276f7, 0xe753b479, 0x4ed9fe7, 0xe75f4d45, - 0x4e8cb1e, 0xe76ae704, 0x4e3f89c, 0xe77681b6, - 0x4df2862, 0xe7821d59, 0x4da5a6f, 0xe78db9ef, - 0x4d58ec3, 0xe7995776, 0x4d0c560, 0xe7a4f5ed, - 0x4cbfe45, 0xe7b09555, 0x4c73972, 0xe7bc35ad, - 0x4c276e8, 0xe7c7d6f4, 0x4bdb6a6, 0xe7d3792b, - 0x4b8f8ad, 0xe7df1c50, 0x4b43cfd, 0xe7eac063, - 0x4af8397, 0xe7f66564, 0x4aacc7a, 0xe8020b52, - 0x4a617a6, 0xe80db22d, 0x4a1651c, 0xe81959f4, - 0x49cb4dd, 0xe82502a7, 0x49806e7, 0xe830ac45, - 0x4935b3c, 0xe83c56cf, 0x48eb1db, 0xe8480243, - 0x48a0ac4, 0xe853aea1, 0x48565f9, 0xe85f5be9, - 0x480c379, 0xe86b0a1a, 0x47c2344, 0xe876b934, - 0x477855a, 0xe8826936, 0x472e9bc, 0xe88e1a20, - 0x46e5069, 0xe899cbf1, 0x469b963, 0xe8a57ea9, - 0x46524a9, 0xe8b13248, 0x460923b, 0xe8bce6cd, - 0x45c0219, 0xe8c89c37, 0x4577444, 0xe8d45286, - 0x452e8bc, 0xe8e009ba, 0x44e5f80, 0xe8ebc1d3, - 0x449d892, 0xe8f77acf, 0x44553f2, 0xe90334af, - 0x440d19e, 0xe90eef71, 0x43c5199, 0xe91aab16, - 0x437d3e1, 0xe926679c, 0x4335877, 0xe9322505, - 0x42edf5c, 0xe93de34e, 0x42a688f, 0xe949a278, - 0x425f410, 0xe9556282, 0x42181e0, 0xe961236c, - 0x41d11ff, 0xe96ce535, 0x418a46d, 0xe978a7dd, - 0x414392b, 0xe9846b63, 0x40fd037, 0xe9902fc7, - 0x40b6994, 0xe99bf509, 0x4070540, 0xe9a7bb28, - 0x402a33c, 0xe9b38223, 0x3fe4388, 0xe9bf49fa, - 0x3f9e624, 0xe9cb12ad, 0x3f58b10, 0xe9d6dc3b, - 0x3f1324e, 0xe9e2a6a3, 0x3ecdbdc, 0xe9ee71e6, - 0x3e887bb, 0xe9fa3e03, 0x3e435ea, 0xea060af9, - 0x3dfe66c, 0xea11d8c8, 0x3db993e, 0xea1da770, - 0x3d74e62, 0xea2976ef, 0x3d305d8, 0xea354746, - 0x3cebfa0, 0xea411874, 0x3ca7bba, 0xea4cea79, - 0x3c63a26, 0xea58bd54, 0x3c1fae5, 0xea649105, - 0x3bdbdf6, 0xea70658a, 0x3b9835a, 0xea7c3ae5, - 0x3b54b11, 0xea881114, 0x3b1151b, 0xea93e817, - 0x3ace178, 0xea9fbfed, 0x3a8b028, 0xeaab9896, - 0x3a4812c, 0xeab77212, 0x3a05484, 0xeac34c60, - 0x39c2a2f, 0xeacf277f, 0x398022f, 0xeadb0370, - 0x393dc82, 0xeae6e031, 0x38fb92a, 0xeaf2bdc3, - 0x38b9827, 0xeafe9c24, 0x3877978, 0xeb0a7b54, - 0x3835d1e, 0xeb165b54, 0x37f4319, 0xeb223c22, - 0x37b2b6a, 0xeb2e1dbe, 0x377160f, 0xeb3a0027, - 0x373030a, 0xeb45e35d, 0x36ef25b, 0xeb51c760, - 0x36ae401, 0xeb5dac2f, 0x366d7fd, 0xeb6991ca, - 0x362ce50, 0xeb75782f, 0x35ec6f8, 0xeb815f60, - 0x35ac1f7, 0xeb8d475b, 0x356bf4d, 0xeb99301f, - 0x352bef9, 0xeba519ad, 0x34ec0fc, 0xebb10404, - 0x34ac556, 0xebbcef23, 0x346cc07, 0xebc8db0b, - 0x342d510, 0xebd4c7ba, 0x33ee070, 0xebe0b52f, - 0x33aee27, 0xebeca36c, 0x336fe37, 0xebf8926f, - 0x333109e, 0xec048237, 0x32f255e, 0xec1072c4, - 0x32b3c75, 0xec1c6417, 0x32755e5, 0xec28562d, - 0x32371ae, 0xec344908, 0x31f8fcf, 0xec403ca5, - 0x31bb049, 0xec4c3106, 0x317d31c, 0xec582629, - 0x313f848, 0xec641c0e, 0x3101fce, 0xec7012b5, - 0x30c49ad, 0xec7c0a1d, 0x30875e5, 0xec880245, - 0x304a477, 0xec93fb2e, 0x300d563, 0xec9ff4d6, - 0x2fd08a9, 0xecabef3d, 0x2f93e4a, 0xecb7ea63, - 0x2f57644, 0xecc3e648, 0x2f1b099, 0xeccfe2ea, - 0x2eded49, 0xecdbe04a, 0x2ea2c53, 0xece7de66, - 0x2e66db8, 0xecf3dd3f, 0x2e2b178, 0xecffdcd4, - 0x2def794, 0xed0bdd25, 0x2db400a, 0xed17de31, - 0x2d78add, 0xed23dff7, 0x2d3d80a, 0xed2fe277, - 0x2d02794, 0xed3be5b1, 0x2cc7979, 0xed47e9a5, - 0x2c8cdbb, 0xed53ee51, 0x2c52459, 0xed5ff3b5, - 0x2c17d52, 0xed6bf9d1, 0x2bdd8a9, 0xed7800a5, - 0x2ba365c, 0xed84082f, 0x2b6966c, 0xed901070, - 0x2b2f8d8, 0xed9c1967, 0x2af5da2, 0xeda82313, - 0x2abc4c9, 0xedb42d74, 0x2a82e4d, 0xedc0388a, - 0x2a49a2e, 0xedcc4454, 0x2a1086d, 0xedd850d2, - 0x29d790a, 0xede45e03, 0x299ec05, 0xedf06be6, - 0x296615d, 0xedfc7a7c, 0x292d914, 0xee0889c4, - 0x28f5329, 0xee1499bd, 0x28bcf9c, 0xee20aa67, - 0x2884e6e, 0xee2cbbc1, 0x284cf9f, 0xee38cdcb, - 0x281532e, 0xee44e084, 0x27dd91c, 0xee50f3ed, - 0x27a616a, 0xee5d0804, 0x276ec16, 0xee691cc9, - 0x2737922, 0xee75323c, 0x270088e, 0xee81485c, - 0x26c9a58, 0xee8d5f29, 0x2692e83, 0xee9976a1, - 0x265c50e, 0xeea58ec6, 0x2625df8, 0xeeb1a796, - 0x25ef943, 0xeebdc110, 0x25b96ee, 0xeec9db35, - 0x25836f9, 0xeed5f604, 0x254d965, 0xeee2117c, - 0x2517e31, 0xeeee2d9d, 0x24e255e, 0xeefa4a67, - 0x24aceed, 0xef0667d9, 0x2477adc, 0xef1285f2, - 0x244292c, 0xef1ea4b2, 0x240d9de, 0xef2ac419, - 0x23d8cf1, 0xef36e426, 0x23a4265, 0xef4304d8, - 0x236fa3b, 0xef4f2630, 0x233b473, 0xef5b482d, - 0x230710d, 0xef676ace, 0x22d3009, 0xef738e12, - 0x229f167, 0xef7fb1fa, 0x226b528, 0xef8bd685, - 0x2237b4b, 0xef97fbb2, 0x22043d0, 0xefa42181, - 0x21d0eb8, 0xefb047f2, 0x219dc03, 0xefbc6f03, - 0x216abb1, 0xefc896b5, 0x2137dc2, 0xefd4bf08, - 0x2105236, 0xefe0e7f9, 0x20d290d, 0xefed118a, - 0x20a0248, 0xeff93bba, 0x206dde6, 0xf0056687, - 0x203bbe8, 0xf01191f3, 0x2009c4e, 0xf01dbdfb, - 0x1fd7f17, 0xf029eaa1, 0x1fa6445, 0xf03617e2, - 0x1f74bd6, 0xf04245c0, 0x1f435cc, 0xf04e7438, - 0x1f12227, 0xf05aa34c, 0x1ee10e5, 0xf066d2fa, - 0x1eb0209, 0xf0730342, 0x1e7f591, 0xf07f3424, - 0x1e4eb7e, 0xf08b659f, 0x1e1e3d0, 0xf09797b2, - 0x1dede87, 0xf0a3ca5d, 0x1dbdba3, 0xf0affda0, - 0x1d8db25, 0xf0bc317a, 0x1d5dd0c, 0xf0c865ea, - 0x1d2e158, 0xf0d49af1, 0x1cfe80a, 0xf0e0d08d, - 0x1ccf122, 0xf0ed06bf, 0x1c9fca0, 0xf0f93d86, - 0x1c70a84, 0xf10574e0, 0x1c41ace, 0xf111accf, - 0x1c12d7e, 0xf11de551, 0x1be4294, 0xf12a1e66, - 0x1bb5a11, 0xf136580d, 0x1b873f5, 0xf1429247, - 0x1b5903f, 0xf14ecd11, 0x1b2aef0, 0xf15b086d, - 0x1afd007, 0xf1674459, 0x1acf386, 0xf17380d6, - 0x1aa196c, 0xf17fbde2, 0x1a741b9, 0xf18bfb7d, - 0x1a46c6e, 0xf19839a6, 0x1a1998a, 0xf1a4785e, - 0x19ec90d, 0xf1b0b7a4, 0x19bfaf9, 0xf1bcf777, - 0x1992f4c, 0xf1c937d6, 0x1966606, 0xf1d578c2, - 0x1939f29, 0xf1e1ba3a, 0x190dab4, 0xf1edfc3d, - 0x18e18a7, 0xf1fa3ecb, 0x18b5903, 0xf20681e3, - 0x1889bc6, 0xf212c585, 0x185e0f3, 0xf21f09b1, - 0x1832888, 0xf22b4e66, 0x1807285, 0xf23793a3, - 0x17dbeec, 0xf243d968, 0x17b0dbb, 0xf2501fb5, - 0x1785ef4, 0xf25c6688, 0x175b296, 0xf268ade3, - 0x17308a1, 0xf274f5c3, 0x1706115, 0xf2813e2a, - 0x16dbbf3, 0xf28d8715, 0x16b193a, 0xf299d085, - 0x16878eb, 0xf2a61a7a, 0x165db05, 0xf2b264f2, - 0x1633f8a, 0xf2beafed, 0x160a678, 0xf2cafb6b, - 0x15e0fd1, 0xf2d7476c, 0x15b7b94, 0xf2e393ef, - 0x158e9c1, 0xf2efe0f2, 0x1565a58, 0xf2fc2e77, - 0x153cd5a, 0xf3087c7d, 0x15142c6, 0xf314cb02, - 0x14eba9d, 0xf3211a07, 0x14c34df, 0xf32d698a, - 0x149b18b, 0xf339b98d, 0x14730a3, 0xf3460a0d, - 0x144b225, 0xf3525b0b, 0x1423613, 0xf35eac86, - 0x13fbc6c, 0xf36afe7e, 0x13d4530, 0xf37750f2, - 0x13ad060, 0xf383a3e2, 0x1385dfb, 0xf38ff74d, - 0x135ee02, 0xf39c4b32, 0x1338075, 0xf3a89f92, - 0x1311553, 0xf3b4f46c, 0x12eac9d, 0xf3c149bf, - 0x12c4653, 0xf3cd9f8b, 0x129e276, 0xf3d9f5cf, - 0x1278104, 0xf3e64c8c, 0x12521ff, 0xf3f2a3bf, - 0x122c566, 0xf3fefb6a, 0x1206b39, 0xf40b538b, - 0x11e1379, 0xf417ac22, 0x11bbe26, 0xf424052f, - 0x1196b3f, 0xf4305eb0, 0x1171ac6, 0xf43cb8a7, - 0x114ccb9, 0xf4491311, 0x1128119, 0xf4556def, - 0x11037e6, 0xf461c940, 0x10df120, 0xf46e2504, - 0x10bacc8, 0xf47a8139, 0x1096add, 0xf486dde1, - 0x1072b5f, 0xf4933afa, 0x104ee4f, 0xf49f9884, - 0x102b3ac, 0xf4abf67e, 0x1007b77, 0xf4b854e7, - 0xfe45b0, 0xf4c4b3c0, 0xfc1257, 0xf4d11308, - 0xf9e16b, 0xf4dd72be, 0xf7b2ee, 0xf4e9d2e3, - 0xf586df, 0xf4f63374, 0xf35d3e, 0xf5029473, - 0xf1360b, 0xf50ef5de, 0xef1147, 0xf51b57b5, - 0xeceef1, 0xf527b9f7, 0xeacf09, 0xf5341ca5, - 0xe8b190, 0xf5407fbd, 0xe69686, 0xf54ce33f, - 0xe47deb, 0xf559472b, 0xe267be, 0xf565ab80, - 0xe05401, 0xf572103d, 0xde42b2, 0xf57e7563, - 0xdc33d2, 0xf58adaf0, 0xda2762, 0xf59740e5, - 0xd81d61, 0xf5a3a740, 0xd615cf, 0xf5b00e02, - 0xd410ad, 0xf5bc7529, 0xd20dfa, 0xf5c8dcb6, - 0xd00db6, 0xf5d544a7, 0xce0fe3, 0xf5e1acfd, - 0xcc147f, 0xf5ee15b7, 0xca1b8a, 0xf5fa7ed4, - 0xc82506, 0xf606e854, 0xc630f2, 0xf6135237, - 0xc43f4d, 0xf61fbc7b, 0xc25019, 0xf62c2721, - 0xc06355, 0xf6389228, 0xbe7901, 0xf644fd8f, - 0xbc911d, 0xf6516956, 0xbaabaa, 0xf65dd57d, - 0xb8c8a7, 0xf66a4203, 0xb6e815, 0xf676aee8, - 0xb509f3, 0xf6831c2b, 0xb32e42, 0xf68f89cb, - 0xb15502, 0xf69bf7c9, 0xaf7e33, 0xf6a86623, - 0xada9d4, 0xf6b4d4d9, 0xabd7e6, 0xf6c143ec, - 0xaa086a, 0xf6cdb359, 0xa83b5e, 0xf6da2321, - 0xa670c4, 0xf6e69344, 0xa4a89b, 0xf6f303c0, - 0xa2e2e3, 0xf6ff7496, 0xa11f9d, 0xf70be5c4, - 0x9f5ec8, 0xf718574b, 0x9da065, 0xf724c92a, - 0x9be473, 0xf7313b60, 0x9a2af3, 0xf73daded, - 0x9873e4, 0xf74a20d0, 0x96bf48, 0xf756940a, - 0x950d1d, 0xf7630799, 0x935d64, 0xf76f7b7d, - 0x91b01d, 0xf77befb5, 0x900548, 0xf7886442, - 0x8e5ce5, 0xf794d922, 0x8cb6f5, 0xf7a14e55, - 0x8b1376, 0xf7adc3db, 0x89726a, 0xf7ba39b3, - 0x87d3d0, 0xf7c6afdc, 0x8637a9, 0xf7d32657, - 0x849df4, 0xf7df9d22, 0x8306b2, 0xf7ec143e, - 0x8171e2, 0xf7f88ba9, 0x7fdf85, 0xf8050364, - 0x7e4f9b, 0xf8117b6d, 0x7cc223, 0xf81df3c5, - 0x7b371e, 0xf82a6c6a, 0x79ae8c, 0xf836e55d, - 0x78286e, 0xf8435e9d, 0x76a4c2, 0xf84fd829, - 0x752389, 0xf85c5201, 0x73a4c3, 0xf868cc24, - 0x722871, 0xf8754692, 0x70ae92, 0xf881c14b, - 0x6f3726, 0xf88e3c4d, 0x6dc22e, 0xf89ab799, - 0x6c4fa8, 0xf8a7332e, 0x6adf97, 0xf8b3af0c, - 0x6971f9, 0xf8c02b31, 0x6806ce, 0xf8cca79e, - 0x669e18, 0xf8d92452, 0x6537d4, 0xf8e5a14d, - 0x63d405, 0xf8f21e8e, 0x6272aa, 0xf8fe9c15, - 0x6113c2, 0xf90b19e0, 0x5fb74e, 0xf91797f0, - 0x5e5d4e, 0xf9241645, 0x5d05c3, 0xf93094dd, - 0x5bb0ab, 0xf93d13b8, 0x5a5e07, 0xf94992d7, - 0x590dd8, 0xf9561237, 0x57c01d, 0xf96291d9, - 0x5674d6, 0xf96f11bc, 0x552c03, 0xf97b91e1, - 0x53e5a5, 0xf9881245, 0x52a1bb, 0xf99492ea, - 0x516045, 0xf9a113cd, 0x502145, 0xf9ad94f0, - 0x4ee4b8, 0xf9ba1651, 0x4daaa1, 0xf9c697f0, - 0x4c72fe, 0xf9d319cc, 0x4b3dcf, 0xf9df9be6, - 0x4a0b16, 0xf9ec1e3b, 0x48dad1, 0xf9f8a0cd, - 0x47ad01, 0xfa05239a, 0x4681a6, 0xfa11a6a3, - 0x4558c0, 0xfa1e29e5, 0x44324f, 0xfa2aad62, - 0x430e53, 0xfa373119, 0x41eccc, 0xfa43b508, - 0x40cdba, 0xfa503930, 0x3fb11d, 0xfa5cbd91, - 0x3e96f6, 0xfa694229, 0x3d7f44, 0xfa75c6f8, - 0x3c6a07, 0xfa824bfd, 0x3b573f, 0xfa8ed139, - 0x3a46ed, 0xfa9b56ab, 0x393910, 0xfaa7dc52, - 0x382da8, 0xfab4622d, 0x3724b6, 0xfac0e83d, - 0x361e3a, 0xfacd6e81, 0x351a33, 0xfad9f4f8, - 0x3418a2, 0xfae67ba2, 0x331986, 0xfaf3027e, - 0x321ce0, 0xfaff898c, 0x3122b0, 0xfb0c10cb, - 0x302af5, 0xfb18983b, 0x2f35b1, 0xfb251fdc, - 0x2e42e2, 0xfb31a7ac, 0x2d5289, 0xfb3e2fac, - 0x2c64a6, 0xfb4ab7db, 0x2b7939, 0xfb574039, - 0x2a9042, 0xfb63c8c4, 0x29a9c1, 0xfb70517d, - 0x28c5b6, 0xfb7cda63, 0x27e421, 0xfb896375, - 0x270502, 0xfb95ecb4, 0x262859, 0xfba2761e, - 0x254e27, 0xfbaeffb3, 0x24766a, 0xfbbb8973, - 0x23a124, 0xfbc8135c, 0x22ce54, 0xfbd49d70, - 0x21fdfb, 0xfbe127ac, 0x213018, 0xfbedb212, - 0x2064ab, 0xfbfa3c9f, 0x1f9bb5, 0xfc06c754, - 0x1ed535, 0xfc135231, 0x1e112b, 0xfc1fdd34, - 0x1d4f99, 0xfc2c685d, 0x1c907c, 0xfc38f3ac, - 0x1bd3d6, 0xfc457f21, 0x1b19a7, 0xfc520aba, - 0x1a61ee, 0xfc5e9678, 0x19acac, 0xfc6b2259, - 0x18f9e1, 0xfc77ae5e, 0x18498c, 0xfc843a85, - 0x179bae, 0xfc90c6cf, 0x16f047, 0xfc9d533b, - 0x164757, 0xfca9dfc8, 0x15a0dd, 0xfcb66c77, - 0x14fcda, 0xfcc2f945, 0x145b4e, 0xfccf8634, - 0x13bc39, 0xfcdc1342, 0x131f9b, 0xfce8a06f, - 0x128574, 0xfcf52dbb, 0x11edc3, 0xfd01bb24, - 0x11588a, 0xfd0e48ab, 0x10c5c7, 0xfd1ad650, - 0x10357c, 0xfd276410, 0xfa7a8, 0xfd33f1ed, - 0xf1c4a, 0xfd407fe6, 0xe9364, 0xfd4d0df9, - 0xe0cf5, 0xfd599c28, 0xd88fd, 0xfd662a70, - 0xd077c, 0xfd72b8d2, 0xc8872, 0xfd7f474d, - 0xc0be0, 0xfd8bd5e1, 0xb91c4, 0xfd98648d, - 0xb1a20, 0xfda4f351, 0xaa4f3, 0xfdb1822c, - 0xa323d, 0xfdbe111e, 0x9c1ff, 0xfdcaa027, - 0x95438, 0xfdd72f45, 0x8e8e8, 0xfde3be78, - 0x8800f, 0xfdf04dc0, 0x819ae, 0xfdfcdd1d, - 0x7b5c4, 0xfe096c8d, 0x75452, 0xfe15fc11, - 0x6f556, 0xfe228ba7, 0x698d3, 0xfe2f1b50, - 0x63ec6, 0xfe3bab0b, 0x5e731, 0xfe483ad8, - 0x59214, 0xfe54cab5, 0x53f6e, 0xfe615aa3, - 0x4ef3f, 0xfe6deaa1, 0x4a188, 0xfe7a7aae, - 0x45648, 0xfe870aca, 0x40d80, 0xfe939af5, - 0x3c72f, 0xfea02b2e, 0x38356, 0xfeacbb74, - 0x341f4, 0xfeb94bc8, 0x3030a, 0xfec5dc28, - 0x2c697, 0xfed26c94, 0x28c9c, 0xfedefd0c, - 0x25519, 0xfeeb8d8f, 0x2200d, 0xfef81e1d, - 0x1ed78, 0xff04aeb5, 0x1bd5c, 0xff113f56, - 0x18fb6, 0xff1dd001, 0x16489, 0xff2a60b4, - 0x13bd3, 0xff36f170, 0x11594, 0xff438234, - 0xf1ce, 0xff5012fe, 0xd07e, 0xff5ca3d0, - 0xb1a7, 0xff6934a8, 0x9547, 0xff75c585, - 0x7b5f, 0xff825668, 0x63ee, 0xff8ee750, - 0x4ef5, 0xff9b783c, 0x3c74, 0xffa8092c, - 0x2c6a, 0xffb49a1f, 0x1ed8, 0xffc12b16, - 0x13bd, 0xffcdbc0f, 0xb1a, 0xffda4d09, - 0x4ef, 0xffe6de05, 0x13c, 0xfff36f02, - 0x0, 0x0, 0x13c, 0xc90fe, - 0x4ef, 0x1921fb, 0xb1a, 0x25b2f7, - 0x13bd, 0x3243f1, 0x1ed8, 0x3ed4ea, - 0x2c6a, 0x4b65e1, 0x3c74, 0x57f6d4, - 0x4ef5, 0x6487c4, 0x63ee, 0x7118b0, - 0x7b5f, 0x7da998, 0x9547, 0x8a3a7b, - 0xb1a7, 0x96cb58, 0xd07e, 0xa35c30, - 0xf1ce, 0xafed02, 0x11594, 0xbc7dcc, - 0x13bd3, 0xc90e90, 0x16489, 0xd59f4c, - 0x18fb6, 0xe22fff, 0x1bd5c, 0xeec0aa, - 0x1ed78, 0xfb514b, 0x2200d, 0x107e1e3, - 0x25519, 0x1147271, 0x28c9c, 0x12102f4, - 0x2c697, 0x12d936c, 0x3030a, 0x13a23d8, - 0x341f4, 0x146b438, 0x38356, 0x153448c, - 0x3c72f, 0x15fd4d2, 0x40d80, 0x16c650b, - 0x45648, 0x178f536, 0x4a188, 0x1858552, - 0x4ef3f, 0x192155f, 0x53f6e, 0x19ea55d, - 0x59214, 0x1ab354b, 0x5e731, 0x1b7c528, - 0x63ec6, 0x1c454f5, 0x698d3, 0x1d0e4b0, - 0x6f556, 0x1dd7459, 0x75452, 0x1ea03ef, - 0x7b5c4, 0x1f69373, 0x819ae, 0x20322e3, - 0x8800f, 0x20fb240, 0x8e8e8, 0x21c4188, - 0x95438, 0x228d0bb, 0x9c1ff, 0x2355fd9, - 0xa323d, 0x241eee2, 0xaa4f3, 0x24e7dd4, - 0xb1a20, 0x25b0caf, 0xb91c4, 0x2679b73, - 0xc0be0, 0x2742a1f, 0xc8872, 0x280b8b3, - 0xd077c, 0x28d472e, 0xd88fd, 0x299d590, - 0xe0cf5, 0x2a663d8, 0xe9364, 0x2b2f207, - 0xf1c4a, 0x2bf801a, 0xfa7a8, 0x2cc0e13, - 0x10357c, 0x2d89bf0, 0x10c5c7, 0x2e529b0, - 0x11588a, 0x2f1b755, 0x11edc3, 0x2fe44dc, - 0x128574, 0x30ad245, 0x131f9b, 0x3175f91, - 0x13bc39, 0x323ecbe, 0x145b4e, 0x33079cc, - 0x14fcda, 0x33d06bb, 0x15a0dd, 0x3499389, - 0x164757, 0x3562038, 0x16f047, 0x362acc5, - 0x179bae, 0x36f3931, 0x18498c, 0x37bc57b, - 0x18f9e1, 0x38851a2, 0x19acac, 0x394dda7, - 0x1a61ee, 0x3a16988, 0x1b19a7, 0x3adf546, - 0x1bd3d6, 0x3ba80df, 0x1c907c, 0x3c70c54, - 0x1d4f99, 0x3d397a3, 0x1e112b, 0x3e022cc, - 0x1ed535, 0x3ecadcf, 0x1f9bb5, 0x3f938ac, - 0x2064ab, 0x405c361, 0x213018, 0x4124dee, - 0x21fdfb, 0x41ed854, 0x22ce54, 0x42b6290, - 0x23a124, 0x437eca4, 0x24766a, 0x444768d, - 0x254e27, 0x451004d, 0x262859, 0x45d89e2, - 0x270502, 0x46a134c, 0x27e421, 0x4769c8b, - 0x28c5b6, 0x483259d, 0x29a9c1, 0x48fae83, - 0x2a9042, 0x49c373c, 0x2b7939, 0x4a8bfc7, - 0x2c64a6, 0x4b54825, 0x2d5289, 0x4c1d054, - 0x2e42e2, 0x4ce5854, 0x2f35b1, 0x4dae024, - 0x302af5, 0x4e767c5, 0x3122b0, 0x4f3ef35, - 0x321ce0, 0x5007674, 0x331986, 0x50cfd82, - 0x3418a2, 0x519845e, 0x351a33, 0x5260b08, - 0x361e3a, 0x532917f, 0x3724b6, 0x53f17c3, - 0x382da8, 0x54b9dd3, 0x393910, 0x55823ae, - 0x3a46ed, 0x564a955, 0x3b573f, 0x5712ec7, - 0x3c6a07, 0x57db403, 0x3d7f44, 0x58a3908, - 0x3e96f6, 0x596bdd7, 0x3fb11d, 0x5a3426f, - 0x40cdba, 0x5afc6d0, 0x41eccc, 0x5bc4af8, - 0x430e53, 0x5c8cee7, 0x44324f, 0x5d5529e, - 0x4558c0, 0x5e1d61b, 0x4681a6, 0x5ee595d, - 0x47ad01, 0x5fadc66, 0x48dad1, 0x6075f33, - 0x4a0b16, 0x613e1c5, 0x4b3dcf, 0x620641a, - 0x4c72fe, 0x62ce634, 0x4daaa1, 0x6396810, - 0x4ee4b8, 0x645e9af, 0x502145, 0x6526b10, - 0x516045, 0x65eec33, 0x52a1bb, 0x66b6d16, - 0x53e5a5, 0x677edbb, 0x552c03, 0x6846e1f, - 0x5674d6, 0x690ee44, 0x57c01d, 0x69d6e27, - 0x590dd8, 0x6a9edc9, 0x5a5e07, 0x6b66d29, - 0x5bb0ab, 0x6c2ec48, 0x5d05c3, 0x6cf6b23, - 0x5e5d4e, 0x6dbe9bb, 0x5fb74e, 0x6e86810, - 0x6113c2, 0x6f4e620, 0x6272aa, 0x70163eb, - 0x63d405, 0x70de172, 0x6537d4, 0x71a5eb3, - 0x669e18, 0x726dbae, 0x6806ce, 0x7335862, - 0x6971f9, 0x73fd4cf, 0x6adf97, 0x74c50f4, - 0x6c4fa8, 0x758ccd2, 0x6dc22e, 0x7654867, - 0x6f3726, 0x771c3b3, 0x70ae92, 0x77e3eb5, - 0x722871, 0x78ab96e, 0x73a4c3, 0x79733dc, - 0x752389, 0x7a3adff, 0x76a4c2, 0x7b027d7, - 0x78286e, 0x7bca163, 0x79ae8c, 0x7c91aa3, - 0x7b371e, 0x7d59396, 0x7cc223, 0x7e20c3b, - 0x7e4f9b, 0x7ee8493, 0x7fdf85, 0x7fafc9c, - 0x8171e2, 0x8077457, 0x8306b2, 0x813ebc2, - 0x849df4, 0x82062de, 0x8637a9, 0x82cd9a9, - 0x87d3d0, 0x8395024, 0x89726a, 0x845c64d, - 0x8b1376, 0x8523c25, 0x8cb6f5, 0x85eb1ab, - 0x8e5ce5, 0x86b26de, 0x900548, 0x8779bbe, - 0x91b01d, 0x884104b, 0x935d64, 0x8908483, - 0x950d1d, 0x89cf867, 0x96bf48, 0x8a96bf6, - 0x9873e4, 0x8b5df30, 0x9a2af3, 0x8c25213, - 0x9be473, 0x8cec4a0, 0x9da065, 0x8db36d6, - 0x9f5ec8, 0x8e7a8b5, 0xa11f9d, 0x8f41a3c, - 0xa2e2e3, 0x9008b6a, 0xa4a89b, 0x90cfc40, - 0xa670c4, 0x9196cbc, 0xa83b5e, 0x925dcdf, - 0xaa086a, 0x9324ca7, 0xabd7e6, 0x93ebc14, - 0xada9d4, 0x94b2b27, 0xaf7e33, 0x95799dd, - 0xb15502, 0x9640837, 0xb32e42, 0x9707635, - 0xb509f3, 0x97ce3d5, 0xb6e815, 0x9895118, - 0xb8c8a7, 0x995bdfd, 0xbaabaa, 0x9a22a83, - 0xbc911d, 0x9ae96aa, 0xbe7901, 0x9bb0271, - 0xc06355, 0x9c76dd8, 0xc25019, 0x9d3d8df, - 0xc43f4d, 0x9e04385, 0xc630f2, 0x9ecadc9, - 0xc82506, 0x9f917ac, 0xca1b8a, 0xa05812c, - 0xcc147f, 0xa11ea49, 0xce0fe3, 0xa1e5303, - 0xd00db6, 0xa2abb59, 0xd20dfa, 0xa37234a, - 0xd410ad, 0xa438ad7, 0xd615cf, 0xa4ff1fe, - 0xd81d61, 0xa5c58c0, 0xda2762, 0xa68bf1b, - 0xdc33d2, 0xa752510, 0xde42b2, 0xa818a9d, - 0xe05401, 0xa8defc3, 0xe267be, 0xa9a5480, - 0xe47deb, 0xaa6b8d5, 0xe69686, 0xab31cc1, - 0xe8b190, 0xabf8043, 0xeacf09, 0xacbe35b, - 0xeceef1, 0xad84609, 0xef1147, 0xae4a84b, - 0xf1360b, 0xaf10a22, 0xf35d3e, 0xafd6b8d, - 0xf586df, 0xb09cc8c, 0xf7b2ee, 0xb162d1d, - 0xf9e16b, 0xb228d42, 0xfc1257, 0xb2eecf8, - 0xfe45b0, 0xb3b4c40, 0x1007b77, 0xb47ab19, - 0x102b3ac, 0xb540982, 0x104ee4f, 0xb60677c, - 0x1072b5f, 0xb6cc506, 0x1096add, 0xb79221f, - 0x10bacc8, 0xb857ec7, 0x10df120, 0xb91dafc, - 0x11037e6, 0xb9e36c0, 0x1128119, 0xbaa9211, - 0x114ccb9, 0xbb6ecef, 0x1171ac6, 0xbc34759, - 0x1196b3f, 0xbcfa150, 0x11bbe26, 0xbdbfad1, - 0x11e1379, 0xbe853de, 0x1206b39, 0xbf4ac75, - 0x122c566, 0xc010496, 0x12521ff, 0xc0d5c41, - 0x1278104, 0xc19b374, 0x129e276, 0xc260a31, - 0x12c4653, 0xc326075, 0x12eac9d, 0xc3eb641, - 0x1311553, 0xc4b0b94, 0x1338075, 0xc57606e, - 0x135ee02, 0xc63b4ce, 0x1385dfb, 0xc7008b3, - 0x13ad060, 0xc7c5c1e, 0x13d4530, 0xc88af0e, - 0x13fbc6c, 0xc950182, 0x1423613, 0xca1537a, - 0x144b225, 0xcada4f5, 0x14730a3, 0xcb9f5f3, - 0x149b18b, 0xcc64673, 0x14c34df, 0xcd29676, - 0x14eba9d, 0xcdee5f9, 0x15142c6, 0xceb34fe, - 0x153cd5a, 0xcf78383, 0x1565a58, 0xd03d189, - 0x158e9c1, 0xd101f0e, 0x15b7b94, 0xd1c6c11, - 0x15e0fd1, 0xd28b894, 0x160a678, 0xd350495, - 0x1633f8a, 0xd415013, 0x165db05, 0xd4d9b0e, - 0x16878eb, 0xd59e586, 0x16b193a, 0xd662f7b, - 0x16dbbf3, 0xd7278eb, 0x1706115, 0xd7ec1d6, - 0x17308a1, 0xd8b0a3d, 0x175b296, 0xd97521d, - 0x1785ef4, 0xda39978, 0x17b0dbb, 0xdafe04b, - 0x17dbeec, 0xdbc2698, 0x1807285, 0xdc86c5d, - 0x1832888, 0xdd4b19a, 0x185e0f3, 0xde0f64f, - 0x1889bc6, 0xded3a7b, 0x18b5903, 0xdf97e1d, - 0x18e18a7, 0xe05c135, 0x190dab4, 0xe1203c3, - 0x1939f29, 0xe1e45c6, 0x1966606, 0xe2a873e, - 0x1992f4c, 0xe36c82a, 0x19bfaf9, 0xe430889, - 0x19ec90d, 0xe4f485c, 0x1a1998a, 0xe5b87a2, - 0x1a46c6e, 0xe67c65a, 0x1a741b9, 0xe740483, - 0x1aa196c, 0xe80421e, 0x1acf386, 0xe8c7f2a, - 0x1afd007, 0xe98bba7, 0x1b2aef0, 0xea4f793, - 0x1b5903f, 0xeb132ef, 0x1b873f5, 0xebd6db9, - 0x1bb5a11, 0xec9a7f3, 0x1be4294, 0xed5e19a, - 0x1c12d7e, 0xee21aaf, 0x1c41ace, 0xeee5331, - 0x1c70a84, 0xefa8b20, 0x1c9fca0, 0xf06c27a, - 0x1ccf122, 0xf12f941, 0x1cfe80a, 0xf1f2f73, - 0x1d2e158, 0xf2b650f, 0x1d5dd0c, 0xf379a16, - 0x1d8db25, 0xf43ce86, 0x1dbdba3, 0xf500260, - 0x1dede87, 0xf5c35a3, 0x1e1e3d0, 0xf68684e, - 0x1e4eb7e, 0xf749a61, 0x1e7f591, 0xf80cbdc, - 0x1eb0209, 0xf8cfcbe, 0x1ee10e5, 0xf992d06, - 0x1f12227, 0xfa55cb4, 0x1f435cc, 0xfb18bc8, - 0x1f74bd6, 0xfbdba40, 0x1fa6445, 0xfc9e81e, - 0x1fd7f17, 0xfd6155f, 0x2009c4e, 0xfe24205, - 0x203bbe8, 0xfee6e0d, 0x206dde6, 0xffa9979, - 0x20a0248, 0x1006c446, 0x20d290d, 0x1012ee76, - 0x2105236, 0x101f1807, 0x2137dc2, 0x102b40f8, - 0x216abb1, 0x1037694b, 0x219dc03, 0x104390fd, - 0x21d0eb8, 0x104fb80e, 0x22043d0, 0x105bde7f, - 0x2237b4b, 0x1068044e, 0x226b528, 0x1074297b, - 0x229f167, 0x10804e06, 0x22d3009, 0x108c71ee, - 0x230710d, 0x10989532, 0x233b473, 0x10a4b7d3, - 0x236fa3b, 0x10b0d9d0, 0x23a4265, 0x10bcfb28, - 0x23d8cf1, 0x10c91bda, 0x240d9de, 0x10d53be7, - 0x244292c, 0x10e15b4e, 0x2477adc, 0x10ed7a0e, - 0x24aceed, 0x10f99827, 0x24e255e, 0x1105b599, - 0x2517e31, 0x1111d263, 0x254d965, 0x111dee84, - 0x25836f9, 0x112a09fc, 0x25b96ee, 0x113624cb, - 0x25ef943, 0x11423ef0, 0x2625df8, 0x114e586a, - 0x265c50e, 0x115a713a, 0x2692e83, 0x1166895f, - 0x26c9a58, 0x1172a0d7, 0x270088e, 0x117eb7a4, - 0x2737922, 0x118acdc4, 0x276ec16, 0x1196e337, - 0x27a616a, 0x11a2f7fc, 0x27dd91c, 0x11af0c13, - 0x281532e, 0x11bb1f7c, 0x284cf9f, 0x11c73235, - 0x2884e6e, 0x11d3443f, 0x28bcf9c, 0x11df5599, - 0x28f5329, 0x11eb6643, 0x292d914, 0x11f7763c, - 0x296615d, 0x12038584, 0x299ec05, 0x120f941a, - 0x29d790a, 0x121ba1fd, 0x2a1086d, 0x1227af2e, - 0x2a49a2e, 0x1233bbac, 0x2a82e4d, 0x123fc776, - 0x2abc4c9, 0x124bd28c, 0x2af5da2, 0x1257dced, - 0x2b2f8d8, 0x1263e699, 0x2b6966c, 0x126fef90, - 0x2ba365c, 0x127bf7d1, 0x2bdd8a9, 0x1287ff5b, - 0x2c17d52, 0x1294062f, 0x2c52459, 0x12a00c4b, - 0x2c8cdbb, 0x12ac11af, 0x2cc7979, 0x12b8165b, - 0x2d02794, 0x12c41a4f, 0x2d3d80a, 0x12d01d89, - 0x2d78add, 0x12dc2009, 0x2db400a, 0x12e821cf, - 0x2def794, 0x12f422db, 0x2e2b178, 0x1300232c, - 0x2e66db8, 0x130c22c1, 0x2ea2c53, 0x1318219a, - 0x2eded49, 0x13241fb6, 0x2f1b099, 0x13301d16, - 0x2f57644, 0x133c19b8, 0x2f93e4a, 0x1348159d, - 0x2fd08a9, 0x135410c3, 0x300d563, 0x13600b2a, - 0x304a477, 0x136c04d2, 0x30875e5, 0x1377fdbb, - 0x30c49ad, 0x1383f5e3, 0x3101fce, 0x138fed4b, - 0x313f848, 0x139be3f2, 0x317d31c, 0x13a7d9d7, - 0x31bb049, 0x13b3cefa, 0x31f8fcf, 0x13bfc35b, - 0x32371ae, 0x13cbb6f8, 0x32755e5, 0x13d7a9d3, - 0x32b3c75, 0x13e39be9, 0x32f255e, 0x13ef8d3c, - 0x333109e, 0x13fb7dc9, 0x336fe37, 0x14076d91, - 0x33aee27, 0x14135c94, 0x33ee070, 0x141f4ad1, - 0x342d510, 0x142b3846, 0x346cc07, 0x143724f5, - 0x34ac556, 0x144310dd, 0x34ec0fc, 0x144efbfc, - 0x352bef9, 0x145ae653, 0x356bf4d, 0x1466cfe1, - 0x35ac1f7, 0x1472b8a5, 0x35ec6f8, 0x147ea0a0, - 0x362ce50, 0x148a87d1, 0x366d7fd, 0x14966e36, - 0x36ae401, 0x14a253d1, 0x36ef25b, 0x14ae38a0, - 0x373030a, 0x14ba1ca3, 0x377160f, 0x14c5ffd9, - 0x37b2b6a, 0x14d1e242, 0x37f4319, 0x14ddc3de, - 0x3835d1e, 0x14e9a4ac, 0x3877978, 0x14f584ac, - 0x38b9827, 0x150163dc, 0x38fb92a, 0x150d423d, - 0x393dc82, 0x15191fcf, 0x398022f, 0x1524fc90, - 0x39c2a2f, 0x1530d881, 0x3a05484, 0x153cb3a0, - 0x3a4812c, 0x15488dee, 0x3a8b028, 0x1554676a, - 0x3ace178, 0x15604013, 0x3b1151b, 0x156c17e9, - 0x3b54b11, 0x1577eeec, 0x3b9835a, 0x1583c51b, - 0x3bdbdf6, 0x158f9a76, 0x3c1fae5, 0x159b6efb, - 0x3c63a26, 0x15a742ac, 0x3ca7bba, 0x15b31587, - 0x3cebfa0, 0x15bee78c, 0x3d305d8, 0x15cab8ba, - 0x3d74e62, 0x15d68911, 0x3db993e, 0x15e25890, - 0x3dfe66c, 0x15ee2738, 0x3e435ea, 0x15f9f507, - 0x3e887bb, 0x1605c1fd, 0x3ecdbdc, 0x16118e1a, - 0x3f1324e, 0x161d595d, 0x3f58b10, 0x162923c5, - 0x3f9e624, 0x1634ed53, 0x3fe4388, 0x1640b606, - 0x402a33c, 0x164c7ddd, 0x4070540, 0x165844d8, - 0x40b6994, 0x16640af7, 0x40fd037, 0x166fd039, - 0x414392b, 0x167b949d, 0x418a46d, 0x16875823, - 0x41d11ff, 0x16931acb, 0x42181e0, 0x169edc94, - 0x425f410, 0x16aa9d7e, 0x42a688f, 0x16b65d88, - 0x42edf5c, 0x16c21cb2, 0x4335877, 0x16cddafb, - 0x437d3e1, 0x16d99864, 0x43c5199, 0x16e554ea, - 0x440d19e, 0x16f1108f, 0x44553f2, 0x16fccb51, - 0x449d892, 0x17088531, 0x44e5f80, 0x17143e2d, - 0x452e8bc, 0x171ff646, 0x4577444, 0x172bad7a, - 0x45c0219, 0x173763c9, 0x460923b, 0x17431933, - 0x46524a9, 0x174ecdb8, 0x469b963, 0x175a8157, - 0x46e5069, 0x1766340f, 0x472e9bc, 0x1771e5e0, - 0x477855a, 0x177d96ca, 0x47c2344, 0x178946cc, - 0x480c379, 0x1794f5e6, 0x48565f9, 0x17a0a417, - 0x48a0ac4, 0x17ac515f, 0x48eb1db, 0x17b7fdbd, - 0x4935b3c, 0x17c3a931, 0x49806e7, 0x17cf53bb, - 0x49cb4dd, 0x17dafd59, 0x4a1651c, 0x17e6a60c, - 0x4a617a6, 0x17f24dd3, 0x4aacc7a, 0x17fdf4ae, - 0x4af8397, 0x18099a9c, 0x4b43cfd, 0x18153f9d, - 0x4b8f8ad, 0x1820e3b0, 0x4bdb6a6, 0x182c86d5, - 0x4c276e8, 0x1838290c, 0x4c73972, 0x1843ca53, - 0x4cbfe45, 0x184f6aab, 0x4d0c560, 0x185b0a13, - 0x4d58ec3, 0x1866a88a, 0x4da5a6f, 0x18724611, - 0x4df2862, 0x187de2a7, 0x4e3f89c, 0x18897e4a, - 0x4e8cb1e, 0x189518fc, 0x4ed9fe7, 0x18a0b2bb, - 0x4f276f7, 0x18ac4b87, 0x4f7504e, 0x18b7e35f, - 0x4fc2bec, 0x18c37a44, 0x50109d0, 0x18cf1034, - 0x505e9fb, 0x18daa52f, 0x50acc6b, 0x18e63935, - 0x50fb121, 0x18f1cc45, 0x514981d, 0x18fd5e5f, - 0x519815f, 0x1908ef82, 0x51e6ce6, 0x19147fae, - 0x5235ab2, 0x19200ee3, 0x5284ac3, 0x192b9d1f, - 0x52d3d18, 0x19372a64, 0x53231b3, 0x1942b6af, - 0x5372891, 0x194e4201, 0x53c21b4, 0x1959cc5a, - 0x5411d1b, 0x196555b8, 0x5461ac6, 0x1970de1b, - 0x54b1ab4, 0x197c6584, 0x5501ce5, 0x1987ebf0, - 0x555215a, 0x19937161, 0x55a2812, 0x199ef5d6, - 0x55f310d, 0x19aa794d, 0x5643c4a, 0x19b5fbc8, - 0x56949ca, 0x19c17d44, 0x56e598c, 0x19ccfdc2, - 0x5736b90, 0x19d87d42, 0x5787fd6, 0x19e3fbc3, - 0x57d965d, 0x19ef7944, 0x582af26, 0x19faf5c5, - 0x587ca31, 0x1a067145, 0x58ce77c, 0x1a11ebc5, - 0x5920708, 0x1a1d6544, 0x59728d5, 0x1a28ddc0, - 0x59c4ce3, 0x1a34553b, 0x5a17330, 0x1a3fcbb3, - 0x5a69bbe, 0x1a4b4128, 0x5abc68c, 0x1a56b599, - 0x5b0f399, 0x1a622907, 0x5b622e6, 0x1a6d9b70, - 0x5bb5472, 0x1a790cd4, 0x5c0883d, 0x1a847d33, - 0x5c5be47, 0x1a8fec8c, 0x5caf690, 0x1a9b5adf, - 0x5d03118, 0x1aa6c82b, 0x5d56ddd, 0x1ab23471, - 0x5daace1, 0x1abd9faf, 0x5dfee22, 0x1ac909e5, - 0x5e531a1, 0x1ad47312, 0x5ea775e, 0x1adfdb37, - 0x5efbf58, 0x1aeb4253, 0x5f5098f, 0x1af6a865, - 0x5fa5603, 0x1b020d6c, 0x5ffa4b3, 0x1b0d716a, - 0x604f5a0, 0x1b18d45c, 0x60a48c9, 0x1b243643, - 0x60f9e2e, 0x1b2f971e, 0x614f5cf, 0x1b3af6ec, - 0x61a4fac, 0x1b4655ae, 0x61fabc4, 0x1b51b363, - 0x6250a18, 0x1b5d100a, 0x62a6aa6, 0x1b686ba3, - 0x62fcd6f, 0x1b73c62d, 0x6353273, 0x1b7f1fa9, - 0x63a99b1, 0x1b8a7815, 0x6400329, 0x1b95cf71, - 0x6456edb, 0x1ba125bd, 0x64adcc7, 0x1bac7af9, - 0x6504ced, 0x1bb7cf23, 0x655bf4c, 0x1bc3223c, - 0x65b33e4, 0x1bce7442, 0x660aab5, 0x1bd9c537, - 0x66623be, 0x1be51518, 0x66b9f01, 0x1bf063e6, - 0x6711c7b, 0x1bfbb1a0, 0x6769c2e, 0x1c06fe46, - 0x67c1e18, 0x1c1249d8, 0x681a23a, 0x1c1d9454, - 0x6872894, 0x1c28ddbb, 0x68cb124, 0x1c34260c, - 0x6923bec, 0x1c3f6d47, 0x697c8eb, 0x1c4ab36b, - 0x69d5820, 0x1c55f878, 0x6a2e98b, 0x1c613c6d, - 0x6a87d2d, 0x1c6c7f4a, 0x6ae1304, 0x1c77c10e, - 0x6b3ab12, 0x1c8301b9, 0x6b94554, 0x1c8e414b, - 0x6bee1cd, 0x1c997fc4, 0x6c4807a, 0x1ca4bd21, - 0x6ca215c, 0x1caff965, 0x6cfc472, 0x1cbb348d, - 0x6d569be, 0x1cc66e99, 0x6db113d, 0x1cd1a78a, - 0x6e0baf0, 0x1cdcdf5e, 0x6e666d7, 0x1ce81615, - 0x6ec14f2, 0x1cf34baf, 0x6f1c540, 0x1cfe802b, - 0x6f777c1, 0x1d09b389, 0x6fd2c75, 0x1d14e5c9, - 0x702e35c, 0x1d2016e9, 0x7089c75, 0x1d2b46ea, - 0x70e57c0, 0x1d3675cb, 0x714153e, 0x1d41a38c, - 0x719d4ed, 0x1d4cd02c, 0x71f96ce, 0x1d57fbaa, - 0x7255ae0, 0x1d632608, 0x72b2123, 0x1d6e4f43, - 0x730e997, 0x1d79775c, 0x736b43c, 0x1d849e51, - 0x73c8111, 0x1d8fc424, 0x7425016, 0x1d9ae8d2, - 0x748214c, 0x1da60c5d, 0x74df4b1, 0x1db12ec3, - 0x753ca46, 0x1dbc5004, 0x759a20a, 0x1dc7701f, - 0x75f7bfe, 0x1dd28f15, 0x7655820, 0x1dddace4, - 0x76b3671, 0x1de8c98c, 0x77116f0, 0x1df3e50d, - 0x776f99d, 0x1dfeff67, 0x77cde79, 0x1e0a1898, - 0x782c582, 0x1e1530a1, 0x788aeb9, 0x1e204781, - 0x78e9a1d, 0x1e2b5d38, 0x79487ae, 0x1e3671c5, - 0x79a776c, 0x1e418528, 0x7a06957, 0x1e4c9760, - 0x7a65d6e, 0x1e57a86d, 0x7ac53b1, 0x1e62b84f, - 0x7b24c20, 0x1e6dc705, 0x7b846ba, 0x1e78d48e, - 0x7be4381, 0x1e83e0eb, 0x7c44272, 0x1e8eec1b, - 0x7ca438f, 0x1e99f61d, 0x7d046d6, 0x1ea4fef0, - 0x7d64c47, 0x1eb00696, 0x7dc53e3, 0x1ebb0d0d, - 0x7e25daa, 0x1ec61254, 0x7e8699a, 0x1ed1166b, - 0x7ee77b3, 0x1edc1953, 0x7f487f6, 0x1ee71b0a, - 0x7fa9a62, 0x1ef21b90, 0x800aef7, 0x1efd1ae4, - 0x806c5b5, 0x1f081907, 0x80cde9b, 0x1f1315f7, - 0x812f9a9, 0x1f1e11b5, 0x81916df, 0x1f290c3f, - 0x81f363d, 0x1f340596, 0x82557c3, 0x1f3efdb9, - 0x82b7b70, 0x1f49f4a8, 0x831a143, 0x1f54ea62, - 0x837c93e, 0x1f5fdee6, 0x83df35f, 0x1f6ad235, - 0x8441fa6, 0x1f75c44e, 0x84a4e14, 0x1f80b531, - 0x8507ea7, 0x1f8ba4dc, 0x856b160, 0x1f969350, - 0x85ce63e, 0x1fa1808c, 0x8631d42, 0x1fac6c91, - 0x869566a, 0x1fb7575c, 0x86f91b7, 0x1fc240ef, - 0x875cf28, 0x1fcd2948, 0x87c0ebd, 0x1fd81067, - 0x8825077, 0x1fe2f64c, 0x8889454, 0x1feddaf6, - 0x88eda54, 0x1ff8be65, 0x8952278, 0x2003a099, - 0x89b6cbf, 0x200e8190, 0x8a1b928, 0x2019614c, - 0x8a807b4, 0x20243fca, 0x8ae5862, 0x202f1d0b, - 0x8b4ab32, 0x2039f90f, 0x8bb0023, 0x2044d3d4, - 0x8c15736, 0x204fad5b, 0x8c7b06b, 0x205a85a3, - 0x8ce0bc0, 0x20655cac, 0x8d46936, 0x20703275, - 0x8dac8cd, 0x207b06fe, 0x8e12a84, 0x2085da46, - 0x8e78e5b, 0x2090ac4d, 0x8edf452, 0x209b7d13, - 0x8f45c68, 0x20a64c97, 0x8fac69e, 0x20b11ad9, - 0x90132f2, 0x20bbe7d8, 0x907a166, 0x20c6b395, - 0x90e11f7, 0x20d17e0d, 0x91484a8, 0x20dc4742, - 0x91af976, 0x20e70f32, 0x9217062, 0x20f1d5de, - 0x927e96b, 0x20fc9b44, 0x92e6492, 0x21075f65, - 0x934e1d6, 0x21122240, 0x93b6137, 0x211ce3d5, - 0x941e2b4, 0x2127a423, 0x948664d, 0x21326329, - 0x94eec03, 0x213d20e8, 0x95573d4, 0x2147dd5f, - 0x95bfdc1, 0x2152988d, 0x96289c9, 0x215d5273, - 0x96917ec, 0x21680b0f, 0x96fa82a, 0x2172c262, - 0x9763a83, 0x217d786a, 0x97ccef5, 0x21882d28, - 0x9836582, 0x2192e09b, 0x989fe29, 0x219d92c2, - 0x99098e9, 0x21a8439e, 0x99735c2, 0x21b2f32e, - 0x99dd4b4, 0x21bda171, 0x9a475bf, 0x21c84e67, - 0x9ab18e3, 0x21d2fa0f, 0x9b1be1e, 0x21dda46a, - 0x9b86572, 0x21e84d76, 0x9bf0edd, 0x21f2f534, - 0x9c5ba60, 0x21fd9ba3, 0x9cc67fa, 0x220840c2, - 0x9d317ab, 0x2212e492, 0x9d9c973, 0x221d8711, - 0x9e07d51, 0x2228283f, 0x9e73346, 0x2232c81c, - 0x9edeb50, 0x223d66a8, 0x9f4a570, 0x224803e2, - 0x9fb61a5, 0x22529fca, 0xa021fef, 0x225d3a5e, - 0xa08e04f, 0x2267d3a0, 0xa0fa2c3, 0x22726b8e, - 0xa16674b, 0x227d0228, 0xa1d2de7, 0x2287976e, - 0xa23f698, 0x22922b5e, 0xa2ac15b, 0x229cbdfa, - 0xa318e32, 0x22a74f40, 0xa385d1d, 0x22b1df30, - 0xa3f2e19, 0x22bc6dca, 0xa460129, 0x22c6fb0c, - 0xa4cd64b, 0x22d186f8, 0xa53ad7e, 0x22dc118c, - 0xa5a86c4, 0x22e69ac8, 0xa61621b, 0x22f122ab, - 0xa683f83, 0x22fba936, 0xa6f1efc, 0x23062e67, - 0xa760086, 0x2310b23e, 0xa7ce420, 0x231b34bc, - 0xa83c9ca, 0x2325b5df, 0xa8ab184, 0x233035a7, - 0xa919b4e, 0x233ab414, 0xa988727, 0x23453125, - 0xa9f750f, 0x234facda, 0xaa66506, 0x235a2733, - 0xaad570c, 0x2364a02e, 0xab44b1f, 0x236f17cc, - 0xabb4141, 0x23798e0d, 0xac23971, 0x238402ef, - 0xac933ae, 0x238e7673, 0xad02ff8, 0x2398e898, - 0xad72e4f, 0x23a3595e, 0xade2eb3, 0x23adc8c4, - 0xae53123, 0x23b836ca, 0xaec35a0, 0x23c2a36f, - 0xaf33c28, 0x23cd0eb3, 0xafa44bc, 0x23d77896, - 0xb014f5b, 0x23e1e117, 0xb085c05, 0x23ec4837, - 0xb0f6aba, 0x23f6adf3, 0xb167b79, 0x2401124d, - 0xb1d8e43, 0x240b7543, 0xb24a316, 0x2415d6d5, - 0xb2bb9f4, 0x24203704, 0xb32d2da, 0x242a95ce, - 0xb39edca, 0x2434f332, 0xb410ac3, 0x243f4f32, - 0xb4829c4, 0x2449a9cc, 0xb4f4acd, 0x245402ff, - 0xb566ddf, 0x245e5acc, 0xb5d92f8, 0x2468b132, - 0xb64ba19, 0x24730631, 0xb6be341, 0x247d59c8, - 0xb730e70, 0x2487abf7, 0xb7a3ba5, 0x2491fcbe, - 0xb816ae1, 0x249c4c1b, 0xb889c23, 0x24a69a0f, - 0xb8fcf6b, 0x24b0e699, 0xb9704b9, 0x24bb31ba, - 0xb9e3c0b, 0x24c57b6f, 0xba57563, 0x24cfc3ba, - 0xbacb0bf, 0x24da0a9a, 0xbb3ee20, 0x24e4500e, - 0xbbb2d85, 0x24ee9415, 0xbc26eee, 0x24f8d6b0, - 0xbc9b25a, 0x250317df, 0xbd0f7ca, 0x250d57a0, - 0xbd83f3d, 0x251795f3, 0xbdf88b3, 0x2521d2d8, - 0xbe6d42b, 0x252c0e4f, 0xbee21a5, 0x25364857, - 0xbf57121, 0x254080ef, 0xbfcc29f, 0x254ab818, - 0xc04161e, 0x2554edd1, 0xc0b6b9e, 0x255f2219, - 0xc12c31f, 0x256954f1, 0xc1a1ca0, 0x25738657, - 0xc217822, 0x257db64c, 0xc28d5a3, 0x2587e4cf, - 0xc303524, 0x259211df, 0xc3796a5, 0x259c3d7c, - 0xc3efa25, 0x25a667a7, 0xc465fa3, 0x25b0905d, - 0xc4dc720, 0x25bab7a0, 0xc55309b, 0x25c4dd6e, - 0xc5c9c14, 0x25cf01c8, 0xc64098b, 0x25d924ac, - 0xc6b78ff, 0x25e3461b, 0xc72ea70, 0x25ed6614, - 0xc7a5dde, 0x25f78497, 0xc81d349, 0x2601a1a2, - 0xc894aaf, 0x260bbd37, 0xc90c412, 0x2615d754, - 0xc983f70, 0x261feffa, 0xc9fbcca, 0x262a0727, - 0xca73c1e, 0x26341cdb, 0xcaebd6e, 0x263e3117, - 0xcb640b8, 0x264843d9, 0xcbdc5fc, 0x26525521, - 0xcc54d3a, 0x265c64ef, 0xcccd671, 0x26667342, - 0xcd461a2, 0x2670801a, 0xcdbeecc, 0x267a8b77, - 0xce37def, 0x26849558, 0xceb0f0a, 0x268e9dbd, - 0xcf2a21d, 0x2698a4a6, 0xcfa3729, 0x26a2aa11, - 0xd01ce2b, 0x26acadff, 0xd096725, 0x26b6b070, - 0xd110216, 0x26c0b162, 0xd189efe, 0x26cab0d6, - 0xd203ddc, 0x26d4aecb, 0xd27deb0, 0x26deab41, - 0xd2f817b, 0x26e8a637, 0xd37263a, 0x26f29fad, - 0xd3eccef, 0x26fc97a3, 0xd467599, 0x27068e18, - 0xd4e2037, 0x2710830c, 0xd55ccca, 0x271a767e, - 0xd5d7b50, 0x2724686e, 0xd652bcb, 0x272e58dc, - 0xd6cde39, 0x273847c8, 0xd74929a, 0x27423530, - 0xd7c48ee, 0x274c2115, 0xd840134, 0x27560b76, - 0xd8bbb6d, 0x275ff452, 0xd937798, 0x2769dbaa, - 0xd9b35b4, 0x2773c17d, 0xda2f5c2, 0x277da5cb, - 0xdaab7c0, 0x27878893, 0xdb27bb0, 0x279169d5, - 0xdba4190, 0x279b4990, 0xdc20960, 0x27a527c4, - 0xdc9d320, 0x27af0472, 0xdd19ed0, 0x27b8df97, - 0xdd96c6f, 0x27c2b934, 0xde13bfd, 0x27cc9149, - 0xde90d79, 0x27d667d5, 0xdf0e0e4, 0x27e03cd8, - 0xdf8b63d, 0x27ea1052, 0xe008d84, 0x27f3e241, - 0xe0866b8, 0x27fdb2a7, 0xe1041d9, 0x28078181, - 0xe181ee8, 0x28114ed0, 0xe1ffde2, 0x281b1a94, - 0xe27dec9, 0x2824e4cc, 0xe2fc19c, 0x282ead78, - 0xe37a65b, 0x28387498, 0xe3f8d05, 0x28423a2a, - 0xe47759a, 0x284bfe2f, 0xe4f6019, 0x2855c0a6, - 0xe574c84, 0x285f8190, 0xe5f3ad8, 0x286940ea, - 0xe672b16, 0x2872feb6, 0xe6f1d3d, 0x287cbaf3, - 0xe77114e, 0x288675a0, 0xe7f0748, 0x28902ebd, - 0xe86ff2a, 0x2899e64a, 0xe8ef8f4, 0x28a39c46, - 0xe96f4a7, 0x28ad50b1, 0xe9ef241, 0x28b7038b, - 0xea6f1c2, 0x28c0b4d2, 0xeaef32b, 0x28ca6488, - 0xeb6f67a, 0x28d412ab, 0xebefbb0, 0x28ddbf3b, - 0xec702cb, 0x28e76a37, 0xecf0bcd, 0x28f113a0, - 0xed716b4, 0x28fabb75, 0xedf2380, 0x290461b5, - 0xee73231, 0x290e0661, 0xeef42c7, 0x2917a977, - 0xef75541, 0x29214af8, 0xeff699f, 0x292aeae3, - 0xf077fe1, 0x29348937, 0xf0f9805, 0x293e25f5, - 0xf17b20d, 0x2947c11c, 0xf1fcdf8, 0x29515aab, - 0xf27ebc5, 0x295af2a3, 0xf300b74, 0x29648902, - 0xf382d05, 0x296e1dc9, 0xf405077, 0x2977b0f7, - 0xf4875ca, 0x2981428c, 0xf509cfe, 0x298ad287, - 0xf58c613, 0x299460e8, 0xf60f108, 0x299dedaf, - 0xf691ddd, 0x29a778db, 0xf714c91, 0x29b1026c, - 0xf797d24, 0x29ba8a61, 0xf81af97, 0x29c410ba, - 0xf89e3e8, 0x29cd9578, 0xf921a17, 0x29d71899, - 0xf9a5225, 0x29e09a1c, 0xfa28c10, 0x29ea1a03, - 0xfaac7d8, 0x29f3984c, 0xfb3057d, 0x29fd14f6, - 0xfbb4500, 0x2a069003, 0xfc3865e, 0x2a100970, - 0xfcbc999, 0x2a19813f, 0xfd40eaf, 0x2a22f76e, - 0xfdc55a1, 0x2a2c6bfd, 0xfe49e6d, 0x2a35deeb, - 0xfece915, 0x2a3f503a, 0xff53597, 0x2a48bfe7, - 0xffd83f4, 0x2a522df3, 0x1005d42a, 0x2a5b9a5d, - 0x100e2639, 0x2a650525, 0x10167a22, 0x2a6e6e4b, - 0x101ecfe4, 0x2a77d5ce, 0x1027277e, 0x2a813bae, - 0x102f80f1, 0x2a8a9fea, 0x1037dc3b, 0x2a940283, - 0x1040395d, 0x2a9d6377, 0x10489856, 0x2aa6c2c6, - 0x1050f926, 0x2ab02071, 0x10595bcd, 0x2ab97c77, - 0x1061c04a, 0x2ac2d6d6, 0x106a269d, 0x2acc2f90, - 0x10728ec6, 0x2ad586a3, 0x107af8c4, 0x2adedc10, - 0x10836497, 0x2ae82fd5, 0x108bd23f, 0x2af181f3, - 0x109441bb, 0x2afad269, 0x109cb30b, 0x2b042137, - 0x10a5262f, 0x2b0d6e5c, 0x10ad9b26, 0x2b16b9d9, - 0x10b611f1, 0x2b2003ac, 0x10be8a8d, 0x2b294bd5, - 0x10c704fd, 0x2b329255, 0x10cf813e, 0x2b3bd72a, - 0x10d7ff51, 0x2b451a55, 0x10e07f36, 0x2b4e5bd4, - 0x10e900ec, 0x2b579ba8, 0x10f18472, 0x2b60d9d0, - 0x10fa09c9, 0x2b6a164d, 0x110290f0, 0x2b73511c, - 0x110b19e7, 0x2b7c8a3f, 0x1113a4ad, 0x2b85c1b5, - 0x111c3142, 0x2b8ef77d, 0x1124bfa6, 0x2b982b97, - 0x112d4fd9, 0x2ba15e03, 0x1135e1d9, 0x2baa8ec0, - 0x113e75a8, 0x2bb3bdce, 0x11470b44, 0x2bbceb2d, - 0x114fa2ad, 0x2bc616dd, 0x11583be2, 0x2bcf40dc, - 0x1160d6e5, 0x2bd8692b, 0x116973b3, 0x2be18fc9, - 0x1172124d, 0x2beab4b6, 0x117ab2b3, 0x2bf3d7f2, - 0x118354e4, 0x2bfcf97c, 0x118bf8e0, 0x2c061953, - 0x11949ea6, 0x2c0f3779, 0x119d4636, 0x2c1853eb, - 0x11a5ef90, 0x2c216eaa, 0x11ae9ab4, 0x2c2a87b6, - 0x11b747a0, 0x2c339f0e, 0x11bff656, 0x2c3cb4b1, - 0x11c8a6d4, 0x2c45c8a0, 0x11d1591a, 0x2c4edada, - 0x11da0d28, 0x2c57eb5e, 0x11e2c2fd, 0x2c60fa2d, - 0x11eb7a9a, 0x2c6a0746, 0x11f433fd, 0x2c7312a9, - 0x11fcef27, 0x2c7c1c55, 0x1205ac17, 0x2c85244a, - 0x120e6acc, 0x2c8e2a87, 0x12172b48, 0x2c972f0d, - 0x121fed88, 0x2ca031da, 0x1228b18d, 0x2ca932ef, - 0x12317756, 0x2cb2324c, 0x123a3ee4, 0x2cbb2fef, - 0x12430835, 0x2cc42bd9, 0x124bd34a, 0x2ccd2609, - 0x1254a021, 0x2cd61e7f, 0x125d6ebc, 0x2cdf153a, - 0x12663f19, 0x2ce80a3a, 0x126f1138, 0x2cf0fd80, - 0x1277e518, 0x2cf9ef09, 0x1280babb, 0x2d02ded7, - 0x1289921e, 0x2d0bcce8, 0x12926b41, 0x2d14b93d, - 0x129b4626, 0x2d1da3d5, 0x12a422ca, 0x2d268cb0, - 0x12ad012e, 0x2d2f73cd, 0x12b5e151, 0x2d38592c, - 0x12bec333, 0x2d413ccd, 0x12c7a6d4, 0x2d4a1eaf, - 0x12d08c33, 0x2d52fed2, 0x12d97350, 0x2d5bdd36, - 0x12e25c2b, 0x2d64b9da, 0x12eb46c3, 0x2d6d94bf, - 0x12f43318, 0x2d766de2, 0x12fd2129, 0x2d7f4545, - 0x130610f7, 0x2d881ae8, 0x130f0280, 0x2d90eec8, - 0x1317f5c6, 0x2d99c0e7, 0x1320eac6, 0x2da29144, - 0x1329e181, 0x2dab5fdf, 0x1332d9f7, 0x2db42cb6, - 0x133bd427, 0x2dbcf7cb, 0x1344d011, 0x2dc5c11c, - 0x134dcdb4, 0x2dce88aa, 0x1356cd11, 0x2dd74e73, - 0x135fce26, 0x2de01278, 0x1368d0f3, 0x2de8d4b8, - 0x1371d579, 0x2df19534, 0x137adbb6, 0x2dfa53e9, - 0x1383e3ab, 0x2e0310d9, 0x138ced57, 0x2e0bcc03, - 0x1395f8ba, 0x2e148566, 0x139f05d3, 0x2e1d3d03, - 0x13a814a2, 0x2e25f2d8, 0x13b12526, 0x2e2ea6e6, - 0x13ba3760, 0x2e37592c, 0x13c34b4f, 0x2e4009aa, - 0x13cc60f2, 0x2e48b860, 0x13d5784a, 0x2e51654c, - 0x13de9156, 0x2e5a1070, 0x13e7ac15, 0x2e62b9ca, - 0x13f0c887, 0x2e6b615a, 0x13f9e6ad, 0x2e740720, - 0x14030684, 0x2e7cab1c, 0x140c280e, 0x2e854d4d, - 0x14154b4a, 0x2e8dedb3, 0x141e7037, 0x2e968c4d, - 0x142796d5, 0x2e9f291b, 0x1430bf24, 0x2ea7c41e, - 0x1439e923, 0x2eb05d53, 0x144314d3, 0x2eb8f4bc, - 0x144c4232, 0x2ec18a58, 0x14557140, 0x2eca1e27, - 0x145ea1fd, 0x2ed2b027, 0x1467d469, 0x2edb405a, - 0x14710883, 0x2ee3cebe, 0x147a3e4b, 0x2eec5b53, - 0x148375c1, 0x2ef4e619, 0x148caee4, 0x2efd6f10, - 0x1495e9b3, 0x2f05f637, 0x149f2630, 0x2f0e7b8e, - 0x14a86458, 0x2f16ff14, 0x14b1a42c, 0x2f1f80ca, - 0x14bae5ab, 0x2f2800af, 0x14c428d6, 0x2f307ec2, - 0x14cd6dab, 0x2f38fb03, 0x14d6b42b, 0x2f417573, - 0x14dffc54, 0x2f49ee0f, 0x14e94627, 0x2f5264da, - 0x14f291a4, 0x2f5ad9d1, 0x14fbdec9, 0x2f634cf5, - 0x15052d97, 0x2f6bbe45, 0x150e7e0d, 0x2f742dc1, - 0x1517d02b, 0x2f7c9b69, 0x152123f0, 0x2f85073c, - 0x152a795d, 0x2f8d713a, 0x1533d070, 0x2f95d963, - 0x153d292a, 0x2f9e3fb6, 0x15468389, 0x2fa6a433, - 0x154fdf8f, 0x2faf06da, 0x15593d3a, 0x2fb767aa, - 0x15629c89, 0x2fbfc6a3, 0x156bfd7d, 0x2fc823c5, - 0x15756016, 0x2fd07f0f, 0x157ec452, 0x2fd8d882, - 0x15882a32, 0x2fe1301c, 0x159191b5, 0x2fe985de, - 0x159afadb, 0x2ff1d9c7, 0x15a465a3, 0x2ffa2bd6, - 0x15add20d, 0x30027c0c, 0x15b74019, 0x300aca69, - 0x15c0afc6, 0x301316eb, 0x15ca2115, 0x301b6193, - 0x15d39403, 0x3023aa5f, 0x15dd0892, 0x302bf151, - 0x15e67ec1, 0x30343667, 0x15eff690, 0x303c79a2, - 0x15f96ffd, 0x3044bb00, 0x1602eb0a, 0x304cfa83, - 0x160c67b4, 0x30553828, 0x1615e5fd, 0x305d73f0, - 0x161f65e4, 0x3065addb, 0x1628e767, 0x306de5e9, - 0x16326a88, 0x30761c18, 0x163bef46, 0x307e5069, - 0x1645759f, 0x308682dc, 0x164efd94, 0x308eb36f, - 0x16588725, 0x3096e223, 0x16621251, 0x309f0ef8, - 0x166b9f18, 0x30a739ed, 0x16752d79, 0x30af6302, - 0x167ebd74, 0x30b78a36, 0x16884f09, 0x30bfaf89, - 0x1691e237, 0x30c7d2fb, 0x169b76fe, 0x30cff48c, - 0x16a50d5d, 0x30d8143b, 0x16aea555, 0x30e03208, - 0x16b83ee4, 0x30e84df3, 0x16c1da0b, 0x30f067fb, - 0x16cb76c9, 0x30f8801f, 0x16d5151d, 0x31009661, - 0x16deb508, 0x3108aabf, 0x16e85689, 0x3110bd39, - 0x16f1f99f, 0x3118cdcf, 0x16fb9e4b, 0x3120dc80, - 0x1705448b, 0x3128e94c, 0x170eec60, 0x3130f433, - 0x171895c9, 0x3138fd35, 0x172240c5, 0x31410450, - 0x172bed55, 0x31490986, 0x17359b78, 0x31510cd5, - 0x173f4b2e, 0x31590e3e, 0x1748fc75, 0x31610dbf, - 0x1752af4f, 0x31690b59, 0x175c63ba, 0x3171070c, - 0x176619b6, 0x317900d6, 0x176fd143, 0x3180f8b8, - 0x17798a60, 0x3188eeb2, 0x1783450d, 0x3190e2c3, - 0x178d014a, 0x3198d4ea, 0x1796bf16, 0x31a0c528, - 0x17a07e70, 0x31a8b37c, 0x17aa3f5a, 0x31b09fe7, - 0x17b401d1, 0x31b88a66, 0x17bdc5d6, 0x31c072fb, - 0x17c78b68, 0x31c859a5, 0x17d15288, 0x31d03e64, - 0x17db1b34, 0x31d82137, 0x17e4e56c, 0x31e0021e, - 0x17eeb130, 0x31e7e118, 0x17f87e7f, 0x31efbe27, - 0x18024d59, 0x31f79948, 0x180c1dbf, 0x31ff727c, - 0x1815efae, 0x320749c3, 0x181fc328, 0x320f1f1c, - 0x1829982b, 0x3216f287, 0x18336eb7, 0x321ec403, - 0x183d46cc, 0x32269391, 0x18472069, 0x322e6130, - 0x1850fb8e, 0x32362ce0, 0x185ad83c, 0x323df6a0, - 0x1864b670, 0x3245be70, 0x186e962b, 0x324d8450, - 0x1878776d, 0x32554840, 0x18825a35, 0x325d0a3e, - 0x188c3e83, 0x3264ca4c, 0x18962456, 0x326c8868, - 0x18a00bae, 0x32744493, 0x18a9f48a, 0x327bfecc, - 0x18b3deeb, 0x3283b712, 0x18bdcad0, 0x328b6d66, - 0x18c7b838, 0x329321c7, 0x18d1a724, 0x329ad435, - 0x18db9792, 0x32a284b0, 0x18e58982, 0x32aa3336, - 0x18ef7cf4, 0x32b1dfc9, 0x18f971e8, 0x32b98a67, - 0x1903685d, 0x32c13311, 0x190d6053, 0x32c8d9c6, - 0x191759c9, 0x32d07e85, 0x192154bf, 0x32d82150, - 0x192b5135, 0x32dfc224, 0x19354f2a, 0x32e76102, - 0x193f4e9e, 0x32eefdea, 0x19494f90, 0x32f698db, - 0x19535201, 0x32fe31d5, 0x195d55ef, 0x3305c8d7, - 0x19675b5a, 0x330d5de3, 0x19716243, 0x3314f0f6, - 0x197b6aa8, 0x331c8211, 0x19857489, 0x33241134, - 0x198f7fe6, 0x332b9e5e, 0x19998cbe, 0x3333298f, - 0x19a39b11, 0x333ab2c6, 0x19adaadf, 0x33423a04, - 0x19b7bc27, 0x3349bf48, 0x19c1cee9, 0x33514292, - 0x19cbe325, 0x3358c3e2, 0x19d5f8d9, 0x33604336, - 0x19e01006, 0x3367c090, 0x19ea28ac, 0x336f3bee, - 0x19f442c9, 0x3376b551, 0x19fe5e5e, 0x337e2cb7, - 0x1a087b69, 0x3385a222, 0x1a1299ec, 0x338d1590, - 0x1a1cb9e5, 0x33948701, 0x1a26db54, 0x339bf675, - 0x1a30fe38, 0x33a363ec, 0x1a3b2292, 0x33aacf65, - 0x1a454860, 0x33b238e0, 0x1a4f6fa3, 0x33b9a05d, - 0x1a599859, 0x33c105db, 0x1a63c284, 0x33c8695b, - 0x1a6dee21, 0x33cfcadc, 0x1a781b31, 0x33d72a5d, - 0x1a8249b4, 0x33de87de, 0x1a8c79a9, 0x33e5e360, - 0x1a96ab0f, 0x33ed3ce1, 0x1aa0dde7, 0x33f49462, - 0x1aab122f, 0x33fbe9e2, 0x1ab547e8, 0x34033d61, - 0x1abf7f11, 0x340a8edf, 0x1ac9b7a9, 0x3411de5b, - 0x1ad3f1b1, 0x34192bd5, 0x1ade2d28, 0x3420774d, - 0x1ae86a0d, 0x3427c0c3, 0x1af2a860, 0x342f0836, - 0x1afce821, 0x34364da6, 0x1b072950, 0x343d9112, - 0x1b116beb, 0x3444d27b, 0x1b1baff2, 0x344c11e0, - 0x1b25f566, 0x34534f41, 0x1b303c46, 0x345a8a9d, - 0x1b3a8491, 0x3461c3f5, 0x1b44ce46, 0x3468fb47, - 0x1b4f1967, 0x34703095, 0x1b5965f1, 0x347763dd, - 0x1b63b3e5, 0x347e951f, 0x1b6e0342, 0x3485c45b, - 0x1b785409, 0x348cf190, 0x1b82a638, 0x34941cbf, - 0x1b8cf9cf, 0x349b45e7, 0x1b974ece, 0x34a26d08, - 0x1ba1a534, 0x34a99221, 0x1babfd01, 0x34b0b533, - 0x1bb65634, 0x34b7d63c, 0x1bc0b0ce, 0x34bef53d, - 0x1bcb0cce, 0x34c61236, 0x1bd56a32, 0x34cd2d26, - 0x1bdfc8fc, 0x34d4460c, 0x1bea292b, 0x34db5cea, - 0x1bf48abd, 0x34e271bd, 0x1bfeedb3, 0x34e98487, - 0x1c09520d, 0x34f09546, 0x1c13b7c9, 0x34f7a3fb, - 0x1c1e1ee9, 0x34feb0a5, 0x1c28876a, 0x3505bb44, - 0x1c32f14d, 0x350cc3d8, 0x1c3d5c91, 0x3513ca60, - 0x1c47c936, 0x351acedd, 0x1c52373c, 0x3521d14d, - 0x1c5ca6a2, 0x3528d1b1, 0x1c671768, 0x352fd008, - 0x1c71898d, 0x3536cc52, 0x1c7bfd11, 0x353dc68f, - 0x1c8671f3, 0x3544bebf, 0x1c90e834, 0x354bb4e1, - 0x1c9b5fd2, 0x3552a8f4, 0x1ca5d8cd, 0x35599afa, - 0x1cb05326, 0x35608af1, 0x1cbacedb, 0x356778d9, - 0x1cc54bec, 0x356e64b2, 0x1ccfca59, 0x35754e7c, - 0x1cda4a21, 0x357c3636, 0x1ce4cb44, 0x35831be0, - 0x1cef4dc2, 0x3589ff7a, 0x1cf9d199, 0x3590e104, - 0x1d0456ca, 0x3597c07d, 0x1d0edd55, 0x359e9de5, - 0x1d196538, 0x35a5793c, 0x1d23ee74, 0x35ac5282, - 0x1d2e7908, 0x35b329b5, 0x1d3904f4, 0x35b9fed7, - 0x1d439236, 0x35c0d1e7, 0x1d4e20d0, 0x35c7a2e3, - 0x1d58b0c0, 0x35ce71ce, 0x1d634206, 0x35d53ea5, - 0x1d6dd4a2, 0x35dc0968, 0x1d786892, 0x35e2d219, - 0x1d82fdd8, 0x35e998b5, 0x1d8d9472, 0x35f05d3d, - 0x1d982c60, 0x35f71fb1, 0x1da2c5a2, 0x35fde011, - 0x1dad6036, 0x36049e5b, 0x1db7fc1e, 0x360b5a90, - 0x1dc29958, 0x361214b0, 0x1dcd37e4, 0x3618ccba, - 0x1dd7d7c1, 0x361f82af, 0x1de278ef, 0x3626368d, - 0x1ded1b6e, 0x362ce855, 0x1df7bf3e, 0x36339806, - 0x1e02645d, 0x363a45a0, 0x1e0d0acc, 0x3640f123, - 0x1e17b28a, 0x36479a8e, 0x1e225b96, 0x364e41e2, - 0x1e2d05f1, 0x3654e71d, 0x1e37b199, 0x365b8a41, - 0x1e425e8f, 0x36622b4c, 0x1e4d0cd2, 0x3668ca3e, - 0x1e57bc62, 0x366f6717, 0x1e626d3e, 0x367601d7, - 0x1e6d1f65, 0x367c9a7e, 0x1e77d2d8, 0x3683310b, - 0x1e828796, 0x3689c57d, 0x1e8d3d9e, 0x369057d6, - 0x1e97f4f1, 0x3696e814, 0x1ea2ad8d, 0x369d7637, - 0x1ead6773, 0x36a4023f, 0x1eb822a1, 0x36aa8c2c, - 0x1ec2df18, 0x36b113fd, 0x1ecd9cd7, 0x36b799b3, - 0x1ed85bdd, 0x36be1d4c, 0x1ee31c2b, 0x36c49ec9, - 0x1eedddc0, 0x36cb1e2a, 0x1ef8a09b, 0x36d19b6e, - 0x1f0364bc, 0x36d81695, 0x1f0e2a22, 0x36de8f9e, - 0x1f18f0ce, 0x36e5068a, 0x1f23b8be, 0x36eb7b58, - 0x1f2e81f3, 0x36f1ee09, 0x1f394c6b, 0x36f85e9a, - 0x1f441828, 0x36fecd0e, 0x1f4ee527, 0x37053962, - 0x1f59b369, 0x370ba398, 0x1f6482ed, 0x37120bae, - 0x1f6f53b3, 0x371871a5, 0x1f7a25ba, 0x371ed57c, - 0x1f84f902, 0x37253733, 0x1f8fcd8b, 0x372b96ca, - 0x1f9aa354, 0x3731f440, 0x1fa57a5d, 0x37384f95, - 0x1fb052a5, 0x373ea8ca, 0x1fbb2c2c, 0x3744ffdd, - 0x1fc606f1, 0x374b54ce, 0x1fd0e2f5, 0x3751a79e, - 0x1fdbc036, 0x3757f84c, 0x1fe69eb4, 0x375e46d8, - 0x1ff17e70, 0x37649341, 0x1ffc5f67, 0x376add88, - 0x2007419b, 0x377125ac, 0x2012250a, 0x37776bac, - 0x201d09b4, 0x377daf89, 0x2027ef99, 0x3783f143, - 0x2032d6b8, 0x378a30d8, 0x203dbf11, 0x37906e49, - 0x2048a8a4, 0x3796a996, 0x2053936f, 0x379ce2be, - 0x205e7f74, 0x37a319c2, 0x20696cb0, 0x37a94ea0, - 0x20745b24, 0x37af8159, 0x207f4acf, 0x37b5b1ec, - 0x208a3bb2, 0x37bbe05a, 0x20952dcb, 0x37c20ca1, - 0x20a0211a, 0x37c836c2, 0x20ab159e, 0x37ce5ebd, - 0x20b60b58, 0x37d48490, 0x20c10247, 0x37daa83d, - 0x20cbfa6a, 0x37e0c9c3, 0x20d6f3c1, 0x37e6e921, - 0x20e1ee4b, 0x37ed0657, 0x20ecea09, 0x37f32165, - 0x20f7e6f9, 0x37f93a4b, 0x2102e51c, 0x37ff5109, - 0x210de470, 0x3805659e, 0x2118e4f6, 0x380b780a, - 0x2123e6ad, 0x3811884d, 0x212ee995, 0x38179666, - 0x2139edac, 0x381da256, 0x2144f2f3, 0x3823ac1d, - 0x214ff96a, 0x3829b3b9, 0x215b0110, 0x382fb92a, - 0x216609e3, 0x3835bc71, 0x217113e5, 0x383bbd8e, - 0x217c1f15, 0x3841bc7f, 0x21872b72, 0x3847b946, - 0x219238fb, 0x384db3e0, 0x219d47b1, 0x3853ac4f, - 0x21a85793, 0x3859a292, 0x21b368a0, 0x385f96a9, - 0x21be7ad8, 0x38658894, 0x21c98e3b, 0x386b7852, - 0x21d4a2c8, 0x387165e3, 0x21dfb87f, 0x38775147, - 0x21eacf5f, 0x387d3a7e, 0x21f5e768, 0x38832187, - 0x22010099, 0x38890663, 0x220c1af3, 0x388ee910, - 0x22173674, 0x3894c98f, 0x2222531c, 0x389aa7e0, - 0x222d70eb, 0x38a08402, 0x22388fe1, 0x38a65df6, - 0x2243affc, 0x38ac35ba, 0x224ed13d, 0x38b20b4f, - 0x2259f3a3, 0x38b7deb4, 0x2265172e, 0x38bdafea, - 0x22703bdc, 0x38c37eef, 0x227b61af, 0x38c94bc4, - 0x228688a4, 0x38cf1669, 0x2291b0bd, 0x38d4dedd, - 0x229cd9f8, 0x38daa520, 0x22a80456, 0x38e06932, - 0x22b32fd4, 0x38e62b13, 0x22be5c74, 0x38ebeac2, - 0x22c98a35, 0x38f1a840, 0x22d4b916, 0x38f7638b, - 0x22dfe917, 0x38fd1ca4, 0x22eb1a37, 0x3902d38b, - 0x22f64c77, 0x3908883f, 0x23017fd5, 0x390e3ac0, - 0x230cb451, 0x3913eb0e, 0x2317e9eb, 0x39199929, - 0x232320a2, 0x391f4510, 0x232e5876, 0x3924eec3, - 0x23399167, 0x392a9642, 0x2344cb73, 0x39303b8e, - 0x2350069b, 0x3935dea4, 0x235b42df, 0x393b7f86, - 0x2366803c, 0x39411e33, 0x2371beb5, 0x3946baac, - 0x237cfe47, 0x394c54ee, 0x23883ef2, 0x3951ecfc, - 0x239380b6, 0x395782d3, 0x239ec393, 0x395d1675, - 0x23aa0788, 0x3962a7e0, 0x23b54c95, 0x39683715, - 0x23c092b9, 0x396dc414, 0x23cbd9f4, 0x39734edc, - 0x23d72245, 0x3978d76c, 0x23e26bac, 0x397e5dc6, - 0x23edb628, 0x3983e1e8, 0x23f901ba, 0x398963d2, - 0x24044e60, 0x398ee385, 0x240f9c1a, 0x399460ff, - 0x241aeae8, 0x3999dc42, 0x24263ac9, 0x399f554b, - 0x24318bbe, 0x39a4cc1c, 0x243cddc4, 0x39aa40b4, - 0x244830dd, 0x39afb313, 0x24538507, 0x39b52339, - 0x245eda43, 0x39ba9125, 0x246a308f, 0x39bffcd7, - 0x247587eb, 0x39c5664f, 0x2480e057, 0x39cacd8d, - 0x248c39d3, 0x39d03291, 0x2497945d, 0x39d5955a, - 0x24a2eff6, 0x39daf5e8, 0x24ae4c9d, 0x39e0543c, - 0x24b9aa52, 0x39e5b054, 0x24c50914, 0x39eb0a31, - 0x24d068e2, 0x39f061d2, 0x24dbc9bd, 0x39f5b737, - 0x24e72ba4, 0x39fb0a60, 0x24f28e96, 0x3a005b4d, - 0x24fdf294, 0x3a05a9fd, 0x2509579b, 0x3a0af671, - 0x2514bdad, 0x3a1040a8, 0x252024c9, 0x3a1588a2, - 0x252b8cee, 0x3a1ace5f, 0x2536f61b, 0x3a2011de, - 0x25426051, 0x3a25531f, 0x254dcb8f, 0x3a2a9223, - 0x255937d5, 0x3a2fcee8, 0x2564a521, 0x3a350970, - 0x25701374, 0x3a3a41b9, 0x257b82cd, 0x3a3f77c3, - 0x2586f32c, 0x3a44ab8e, 0x25926490, 0x3a49dd1a, - 0x259dd6f9, 0x3a4f0c67, 0x25a94a67, 0x3a543974, - 0x25b4bed8, 0x3a596442, 0x25c0344d, 0x3a5e8cd0, - 0x25cbaac5, 0x3a63b31d, 0x25d72240, 0x3a68d72b, - 0x25e29abc, 0x3a6df8f8, 0x25ee143b, 0x3a731884, - 0x25f98ebb, 0x3a7835cf, 0x26050a3b, 0x3a7d50da, - 0x261086bc, 0x3a8269a3, 0x261c043d, 0x3a87802a, - 0x262782be, 0x3a8c9470, 0x2633023e, 0x3a91a674, - 0x263e82bc, 0x3a96b636, 0x264a0438, 0x3a9bc3b6, - 0x265586b3, 0x3aa0cef3, 0x26610a2a, 0x3aa5d7ee, - 0x266c8e9f, 0x3aaadea6, 0x26781410, 0x3aafe31b, - 0x26839a7c, 0x3ab4e54c, 0x268f21e5, 0x3ab9e53a, - 0x269aaa48, 0x3abee2e5, 0x26a633a6, 0x3ac3de4c, - 0x26b1bdff, 0x3ac8d76f, 0x26bd4951, 0x3acdce4d, - 0x26c8d59c, 0x3ad2c2e8, 0x26d462e1, 0x3ad7b53d, - 0x26dff11d, 0x3adca54e, 0x26eb8052, 0x3ae1931a, - 0x26f7107e, 0x3ae67ea1, 0x2702a1a1, 0x3aeb67e3, - 0x270e33bb, 0x3af04edf, 0x2719c6cb, 0x3af53395, - 0x27255ad1, 0x3afa1605, 0x2730efcc, 0x3afef630, - 0x273c85bc, 0x3b03d414, 0x27481ca1, 0x3b08afb2, - 0x2753b479, 0x3b0d8909, 0x275f4d45, 0x3b126019, - 0x276ae704, 0x3b1734e2, 0x277681b6, 0x3b1c0764, - 0x27821d59, 0x3b20d79e, 0x278db9ef, 0x3b25a591, - 0x27995776, 0x3b2a713d, 0x27a4f5ed, 0x3b2f3aa0, - 0x27b09555, 0x3b3401bb, 0x27bc35ad, 0x3b38c68e, - 0x27c7d6f4, 0x3b3d8918, 0x27d3792b, 0x3b42495a, - 0x27df1c50, 0x3b470753, 0x27eac063, 0x3b4bc303, - 0x27f66564, 0x3b507c69, 0x28020b52, 0x3b553386, - 0x280db22d, 0x3b59e85a, 0x281959f4, 0x3b5e9ae4, - 0x282502a7, 0x3b634b23, 0x2830ac45, 0x3b67f919, - 0x283c56cf, 0x3b6ca4c4, 0x28480243, 0x3b714e25, - 0x2853aea1, 0x3b75f53c, 0x285f5be9, 0x3b7a9a07, - 0x286b0a1a, 0x3b7f3c87, 0x2876b934, 0x3b83dcbc, - 0x28826936, 0x3b887aa6, 0x288e1a20, 0x3b8d1644, - 0x2899cbf1, 0x3b91af97, 0x28a57ea9, 0x3b96469d, - 0x28b13248, 0x3b9adb57, 0x28bce6cd, 0x3b9f6dc5, - 0x28c89c37, 0x3ba3fde7, 0x28d45286, 0x3ba88bbc, - 0x28e009ba, 0x3bad1744, 0x28ebc1d3, 0x3bb1a080, - 0x28f77acf, 0x3bb6276e, 0x290334af, 0x3bbaac0e, - 0x290eef71, 0x3bbf2e62, 0x291aab16, 0x3bc3ae67, - 0x2926679c, 0x3bc82c1f, 0x29322505, 0x3bcca789, - 0x293de34e, 0x3bd120a4, 0x2949a278, 0x3bd59771, - 0x29556282, 0x3bda0bf0, 0x2961236c, 0x3bde7e20, - 0x296ce535, 0x3be2ee01, 0x2978a7dd, 0x3be75b93, - 0x29846b63, 0x3bebc6d5, 0x29902fc7, 0x3bf02fc9, - 0x299bf509, 0x3bf4966c, 0x29a7bb28, 0x3bf8fac0, - 0x29b38223, 0x3bfd5cc4, 0x29bf49fa, 0x3c01bc78, - 0x29cb12ad, 0x3c0619dc, 0x29d6dc3b, 0x3c0a74f0, - 0x29e2a6a3, 0x3c0ecdb2, 0x29ee71e6, 0x3c132424, - 0x29fa3e03, 0x3c177845, 0x2a060af9, 0x3c1bca16, - 0x2a11d8c8, 0x3c201994, 0x2a1da770, 0x3c2466c2, - 0x2a2976ef, 0x3c28b19e, 0x2a354746, 0x3c2cfa28, - 0x2a411874, 0x3c314060, 0x2a4cea79, 0x3c358446, - 0x2a58bd54, 0x3c39c5da, 0x2a649105, 0x3c3e051b, - 0x2a70658a, 0x3c42420a, 0x2a7c3ae5, 0x3c467ca6, - 0x2a881114, 0x3c4ab4ef, 0x2a93e817, 0x3c4eeae5, - 0x2a9fbfed, 0x3c531e88, 0x2aab9896, 0x3c574fd8, - 0x2ab77212, 0x3c5b7ed4, 0x2ac34c60, 0x3c5fab7c, - 0x2acf277f, 0x3c63d5d1, 0x2adb0370, 0x3c67fdd1, - 0x2ae6e031, 0x3c6c237e, 0x2af2bdc3, 0x3c7046d6, - 0x2afe9c24, 0x3c7467d9, 0x2b0a7b54, 0x3c788688, - 0x2b165b54, 0x3c7ca2e2, 0x2b223c22, 0x3c80bce7, - 0x2b2e1dbe, 0x3c84d496, 0x2b3a0027, 0x3c88e9f1, - 0x2b45e35d, 0x3c8cfcf6, 0x2b51c760, 0x3c910da5, - 0x2b5dac2f, 0x3c951bff, 0x2b6991ca, 0x3c992803, - 0x2b75782f, 0x3c9d31b0, 0x2b815f60, 0x3ca13908, - 0x2b8d475b, 0x3ca53e09, 0x2b99301f, 0x3ca940b3, - 0x2ba519ad, 0x3cad4107, 0x2bb10404, 0x3cb13f04, - 0x2bbcef23, 0x3cb53aaa, 0x2bc8db0b, 0x3cb933f9, - 0x2bd4c7ba, 0x3cbd2af0, 0x2be0b52f, 0x3cc11f90, - 0x2beca36c, 0x3cc511d9, 0x2bf8926f, 0x3cc901c9, - 0x2c048237, 0x3cccef62, 0x2c1072c4, 0x3cd0daa2, - 0x2c1c6417, 0x3cd4c38b, 0x2c28562d, 0x3cd8aa1b, - 0x2c344908, 0x3cdc8e52, 0x2c403ca5, 0x3ce07031, - 0x2c4c3106, 0x3ce44fb7, 0x2c582629, 0x3ce82ce4, - 0x2c641c0e, 0x3cec07b8, 0x2c7012b5, 0x3cefe032, - 0x2c7c0a1d, 0x3cf3b653, 0x2c880245, 0x3cf78a1b, - 0x2c93fb2e, 0x3cfb5b89, 0x2c9ff4d6, 0x3cff2a9d, - 0x2cabef3d, 0x3d02f757, 0x2cb7ea63, 0x3d06c1b6, - 0x2cc3e648, 0x3d0a89bc, 0x2ccfe2ea, 0x3d0e4f67, - 0x2cdbe04a, 0x3d1212b7, 0x2ce7de66, 0x3d15d3ad, - 0x2cf3dd3f, 0x3d199248, 0x2cffdcd4, 0x3d1d4e88, - 0x2d0bdd25, 0x3d21086c, 0x2d17de31, 0x3d24bff6, - 0x2d23dff7, 0x3d287523, 0x2d2fe277, 0x3d2c27f6, - 0x2d3be5b1, 0x3d2fd86c, 0x2d47e9a5, 0x3d338687, - 0x2d53ee51, 0x3d373245, 0x2d5ff3b5, 0x3d3adba7, - 0x2d6bf9d1, 0x3d3e82ae, 0x2d7800a5, 0x3d422757, - 0x2d84082f, 0x3d45c9a4, 0x2d901070, 0x3d496994, - 0x2d9c1967, 0x3d4d0728, 0x2da82313, 0x3d50a25e, - 0x2db42d74, 0x3d543b37, 0x2dc0388a, 0x3d57d1b3, - 0x2dcc4454, 0x3d5b65d2, 0x2dd850d2, 0x3d5ef793, - 0x2de45e03, 0x3d6286f6, 0x2df06be6, 0x3d6613fb, - 0x2dfc7a7c, 0x3d699ea3, 0x2e0889c4, 0x3d6d26ec, - 0x2e1499bd, 0x3d70acd7, 0x2e20aa67, 0x3d743064, - 0x2e2cbbc1, 0x3d77b192, 0x2e38cdcb, 0x3d7b3061, - 0x2e44e084, 0x3d7eacd2, 0x2e50f3ed, 0x3d8226e4, - 0x2e5d0804, 0x3d859e96, 0x2e691cc9, 0x3d8913ea, - 0x2e75323c, 0x3d8c86de, 0x2e81485c, 0x3d8ff772, - 0x2e8d5f29, 0x3d9365a8, 0x2e9976a1, 0x3d96d17d, - 0x2ea58ec6, 0x3d9a3af2, 0x2eb1a796, 0x3d9da208, - 0x2ebdc110, 0x3da106bd, 0x2ec9db35, 0x3da46912, - 0x2ed5f604, 0x3da7c907, 0x2ee2117c, 0x3dab269b, - 0x2eee2d9d, 0x3dae81cf, 0x2efa4a67, 0x3db1daa2, - 0x2f0667d9, 0x3db53113, 0x2f1285f2, 0x3db88524, - 0x2f1ea4b2, 0x3dbbd6d4, 0x2f2ac419, 0x3dbf2622, - 0x2f36e426, 0x3dc2730f, 0x2f4304d8, 0x3dc5bd9b, - 0x2f4f2630, 0x3dc905c5, 0x2f5b482d, 0x3dcc4b8d, - 0x2f676ace, 0x3dcf8ef3, 0x2f738e12, 0x3dd2cff7, - 0x2f7fb1fa, 0x3dd60e99, 0x2f8bd685, 0x3dd94ad8, - 0x2f97fbb2, 0x3ddc84b5, 0x2fa42181, 0x3ddfbc30, - 0x2fb047f2, 0x3de2f148, 0x2fbc6f03, 0x3de623fd, - 0x2fc896b5, 0x3de9544f, 0x2fd4bf08, 0x3dec823e, - 0x2fe0e7f9, 0x3defadca, 0x2fed118a, 0x3df2d6f3, - 0x2ff93bba, 0x3df5fdb8, 0x30056687, 0x3df9221a, - 0x301191f3, 0x3dfc4418, 0x301dbdfb, 0x3dff63b2, - 0x3029eaa1, 0x3e0280e9, 0x303617e2, 0x3e059bbb, - 0x304245c0, 0x3e08b42a, 0x304e7438, 0x3e0bca34, - 0x305aa34c, 0x3e0eddd9, 0x3066d2fa, 0x3e11ef1b, - 0x30730342, 0x3e14fdf7, 0x307f3424, 0x3e180a6f, - 0x308b659f, 0x3e1b1482, 0x309797b2, 0x3e1e1c30, - 0x30a3ca5d, 0x3e212179, 0x30affda0, 0x3e24245d, - 0x30bc317a, 0x3e2724db, 0x30c865ea, 0x3e2a22f4, - 0x30d49af1, 0x3e2d1ea8, 0x30e0d08d, 0x3e3017f6, - 0x30ed06bf, 0x3e330ede, 0x30f93d86, 0x3e360360, - 0x310574e0, 0x3e38f57c, 0x3111accf, 0x3e3be532, - 0x311de551, 0x3e3ed282, 0x312a1e66, 0x3e41bd6c, - 0x3136580d, 0x3e44a5ef, 0x31429247, 0x3e478c0b, - 0x314ecd11, 0x3e4a6fc1, 0x315b086d, 0x3e4d5110, - 0x31674459, 0x3e502ff9, 0x317380d6, 0x3e530c7a, - 0x317fbde2, 0x3e55e694, 0x318bfb7d, 0x3e58be47, - 0x319839a6, 0x3e5b9392, 0x31a4785e, 0x3e5e6676, - 0x31b0b7a4, 0x3e6136f3, 0x31bcf777, 0x3e640507, - 0x31c937d6, 0x3e66d0b4, 0x31d578c2, 0x3e6999fa, - 0x31e1ba3a, 0x3e6c60d7, 0x31edfc3d, 0x3e6f254c, - 0x31fa3ecb, 0x3e71e759, 0x320681e3, 0x3e74a6fd, - 0x3212c585, 0x3e77643a, 0x321f09b1, 0x3e7a1f0d, - 0x322b4e66, 0x3e7cd778, 0x323793a3, 0x3e7f8d7b, - 0x3243d968, 0x3e824114, 0x32501fb5, 0x3e84f245, - 0x325c6688, 0x3e87a10c, 0x3268ade3, 0x3e8a4d6a, - 0x3274f5c3, 0x3e8cf75f, 0x32813e2a, 0x3e8f9eeb, - 0x328d8715, 0x3e92440d, 0x3299d085, 0x3e94e6c6, - 0x32a61a7a, 0x3e978715, 0x32b264f2, 0x3e9a24fb, - 0x32beafed, 0x3e9cc076, 0x32cafb6b, 0x3e9f5988, - 0x32d7476c, 0x3ea1f02f, 0x32e393ef, 0x3ea4846c, - 0x32efe0f2, 0x3ea7163f, 0x32fc2e77, 0x3ea9a5a8, - 0x33087c7d, 0x3eac32a6, 0x3314cb02, 0x3eaebd3a, - 0x33211a07, 0x3eb14563, 0x332d698a, 0x3eb3cb21, - 0x3339b98d, 0x3eb64e75, 0x33460a0d, 0x3eb8cf5d, - 0x33525b0b, 0x3ebb4ddb, 0x335eac86, 0x3ebdc9ed, - 0x336afe7e, 0x3ec04394, 0x337750f2, 0x3ec2bad0, - 0x3383a3e2, 0x3ec52fa0, 0x338ff74d, 0x3ec7a205, - 0x339c4b32, 0x3eca11fe, 0x33a89f92, 0x3ecc7f8b, - 0x33b4f46c, 0x3eceeaad, 0x33c149bf, 0x3ed15363, - 0x33cd9f8b, 0x3ed3b9ad, 0x33d9f5cf, 0x3ed61d8a, - 0x33e64c8c, 0x3ed87efc, 0x33f2a3bf, 0x3edade01, - 0x33fefb6a, 0x3edd3a9a, 0x340b538b, 0x3edf94c7, - 0x3417ac22, 0x3ee1ec87, 0x3424052f, 0x3ee441da, - 0x34305eb0, 0x3ee694c1, 0x343cb8a7, 0x3ee8e53a, - 0x34491311, 0x3eeb3347, 0x34556def, 0x3eed7ee7, - 0x3461c940, 0x3eefc81a, 0x346e2504, 0x3ef20ee0, - 0x347a8139, 0x3ef45338, 0x3486dde1, 0x3ef69523, - 0x34933afa, 0x3ef8d4a1, 0x349f9884, 0x3efb11b1, - 0x34abf67e, 0x3efd4c54, 0x34b854e7, 0x3eff8489, - 0x34c4b3c0, 0x3f01ba50, 0x34d11308, 0x3f03eda9, - 0x34dd72be, 0x3f061e95, 0x34e9d2e3, 0x3f084d12, - 0x34f63374, 0x3f0a7921, 0x35029473, 0x3f0ca2c2, - 0x350ef5de, 0x3f0ec9f5, 0x351b57b5, 0x3f10eeb9, - 0x3527b9f7, 0x3f13110f, 0x35341ca5, 0x3f1530f7, - 0x35407fbd, 0x3f174e70, 0x354ce33f, 0x3f19697a, - 0x3559472b, 0x3f1b8215, 0x3565ab80, 0x3f1d9842, - 0x3572103d, 0x3f1fabff, 0x357e7563, 0x3f21bd4e, - 0x358adaf0, 0x3f23cc2e, 0x359740e5, 0x3f25d89e, - 0x35a3a740, 0x3f27e29f, 0x35b00e02, 0x3f29ea31, - 0x35bc7529, 0x3f2bef53, 0x35c8dcb6, 0x3f2df206, - 0x35d544a7, 0x3f2ff24a, 0x35e1acfd, 0x3f31f01d, - 0x35ee15b7, 0x3f33eb81, 0x35fa7ed4, 0x3f35e476, - 0x3606e854, 0x3f37dafa, 0x36135237, 0x3f39cf0e, - 0x361fbc7b, 0x3f3bc0b3, 0x362c2721, 0x3f3dafe7, - 0x36389228, 0x3f3f9cab, 0x3644fd8f, 0x3f4186ff, - 0x36516956, 0x3f436ee3, 0x365dd57d, 0x3f455456, - 0x366a4203, 0x3f473759, 0x3676aee8, 0x3f4917eb, - 0x36831c2b, 0x3f4af60d, 0x368f89cb, 0x3f4cd1be, - 0x369bf7c9, 0x3f4eaafe, 0x36a86623, 0x3f5081cd, - 0x36b4d4d9, 0x3f52562c, 0x36c143ec, 0x3f54281a, - 0x36cdb359, 0x3f55f796, 0x36da2321, 0x3f57c4a2, - 0x36e69344, 0x3f598f3c, 0x36f303c0, 0x3f5b5765, - 0x36ff7496, 0x3f5d1d1d, 0x370be5c4, 0x3f5ee063, - 0x3718574b, 0x3f60a138, 0x3724c92a, 0x3f625f9b, - 0x37313b60, 0x3f641b8d, 0x373daded, 0x3f65d50d, - 0x374a20d0, 0x3f678c1c, 0x3756940a, 0x3f6940b8, - 0x37630799, 0x3f6af2e3, 0x376f7b7d, 0x3f6ca29c, - 0x377befb5, 0x3f6e4fe3, 0x37886442, 0x3f6ffab8, - 0x3794d922, 0x3f71a31b, 0x37a14e55, 0x3f73490b, - 0x37adc3db, 0x3f74ec8a, 0x37ba39b3, 0x3f768d96, - 0x37c6afdc, 0x3f782c30, 0x37d32657, 0x3f79c857, - 0x37df9d22, 0x3f7b620c, 0x37ec143e, 0x3f7cf94e, - 0x37f88ba9, 0x3f7e8e1e, 0x38050364, 0x3f80207b, - 0x38117b6d, 0x3f81b065, 0x381df3c5, 0x3f833ddd, - 0x382a6c6a, 0x3f84c8e2, 0x3836e55d, 0x3f865174, - 0x38435e9d, 0x3f87d792, 0x384fd829, 0x3f895b3e, - 0x385c5201, 0x3f8adc77, 0x3868cc24, 0x3f8c5b3d, - 0x38754692, 0x3f8dd78f, 0x3881c14b, 0x3f8f516e, - 0x388e3c4d, 0x3f90c8da, 0x389ab799, 0x3f923dd2, - 0x38a7332e, 0x3f93b058, 0x38b3af0c, 0x3f952069, - 0x38c02b31, 0x3f968e07, 0x38cca79e, 0x3f97f932, - 0x38d92452, 0x3f9961e8, 0x38e5a14d, 0x3f9ac82c, - 0x38f21e8e, 0x3f9c2bfb, 0x38fe9c15, 0x3f9d8d56, - 0x390b19e0, 0x3f9eec3e, 0x391797f0, 0x3fa048b2, - 0x39241645, 0x3fa1a2b2, 0x393094dd, 0x3fa2fa3d, - 0x393d13b8, 0x3fa44f55, 0x394992d7, 0x3fa5a1f9, - 0x39561237, 0x3fa6f228, 0x396291d9, 0x3fa83fe3, - 0x396f11bc, 0x3fa98b2a, 0x397b91e1, 0x3faad3fd, - 0x39881245, 0x3fac1a5b, 0x399492ea, 0x3fad5e45, - 0x39a113cd, 0x3fae9fbb, 0x39ad94f0, 0x3fafdebb, - 0x39ba1651, 0x3fb11b48, 0x39c697f0, 0x3fb2555f, - 0x39d319cc, 0x3fb38d02, 0x39df9be6, 0x3fb4c231, - 0x39ec1e3b, 0x3fb5f4ea, 0x39f8a0cd, 0x3fb7252f, - 0x3a05239a, 0x3fb852ff, 0x3a11a6a3, 0x3fb97e5a, - 0x3a1e29e5, 0x3fbaa740, 0x3a2aad62, 0x3fbbcdb1, - 0x3a373119, 0x3fbcf1ad, 0x3a43b508, 0x3fbe1334, - 0x3a503930, 0x3fbf3246, 0x3a5cbd91, 0x3fc04ee3, - 0x3a694229, 0x3fc1690a, 0x3a75c6f8, 0x3fc280bc, - 0x3a824bfd, 0x3fc395f9, 0x3a8ed139, 0x3fc4a8c1, - 0x3a9b56ab, 0x3fc5b913, 0x3aa7dc52, 0x3fc6c6f0, - 0x3ab4622d, 0x3fc7d258, 0x3ac0e83d, 0x3fc8db4a, - 0x3acd6e81, 0x3fc9e1c6, 0x3ad9f4f8, 0x3fcae5cd, - 0x3ae67ba2, 0x3fcbe75e, 0x3af3027e, 0x3fcce67a, - 0x3aff898c, 0x3fcde320, 0x3b0c10cb, 0x3fcedd50, - 0x3b18983b, 0x3fcfd50b, 0x3b251fdc, 0x3fd0ca4f, - 0x3b31a7ac, 0x3fd1bd1e, 0x3b3e2fac, 0x3fd2ad77, - 0x3b4ab7db, 0x3fd39b5a, 0x3b574039, 0x3fd486c7, - 0x3b63c8c4, 0x3fd56fbe, 0x3b70517d, 0x3fd6563f, - 0x3b7cda63, 0x3fd73a4a, 0x3b896375, 0x3fd81bdf, - 0x3b95ecb4, 0x3fd8fafe, 0x3ba2761e, 0x3fd9d7a7, - 0x3baeffb3, 0x3fdab1d9, 0x3bbb8973, 0x3fdb8996, - 0x3bc8135c, 0x3fdc5edc, 0x3bd49d70, 0x3fdd31ac, - 0x3be127ac, 0x3fde0205, 0x3bedb212, 0x3fdecfe8, - 0x3bfa3c9f, 0x3fdf9b55, 0x3c06c754, 0x3fe0644b, - 0x3c135231, 0x3fe12acb, 0x3c1fdd34, 0x3fe1eed5, - 0x3c2c685d, 0x3fe2b067, 0x3c38f3ac, 0x3fe36f84, - 0x3c457f21, 0x3fe42c2a, 0x3c520aba, 0x3fe4e659, - 0x3c5e9678, 0x3fe59e12, 0x3c6b2259, 0x3fe65354, - 0x3c77ae5e, 0x3fe7061f, 0x3c843a85, 0x3fe7b674, - 0x3c90c6cf, 0x3fe86452, 0x3c9d533b, 0x3fe90fb9, - 0x3ca9dfc8, 0x3fe9b8a9, 0x3cb66c77, 0x3fea5f23, - 0x3cc2f945, 0x3feb0326, 0x3ccf8634, 0x3feba4b2, - 0x3cdc1342, 0x3fec43c7, 0x3ce8a06f, 0x3fece065, - 0x3cf52dbb, 0x3fed7a8c, 0x3d01bb24, 0x3fee123d, - 0x3d0e48ab, 0x3feea776, 0x3d1ad650, 0x3fef3a39, - 0x3d276410, 0x3fefca84, 0x3d33f1ed, 0x3ff05858, - 0x3d407fe6, 0x3ff0e3b6, 0x3d4d0df9, 0x3ff16c9c, - 0x3d599c28, 0x3ff1f30b, 0x3d662a70, 0x3ff27703, - 0x3d72b8d2, 0x3ff2f884, 0x3d7f474d, 0x3ff3778e, - 0x3d8bd5e1, 0x3ff3f420, 0x3d98648d, 0x3ff46e3c, - 0x3da4f351, 0x3ff4e5e0, 0x3db1822c, 0x3ff55b0d, - 0x3dbe111e, 0x3ff5cdc3, 0x3dcaa027, 0x3ff63e01, - 0x3dd72f45, 0x3ff6abc8, 0x3de3be78, 0x3ff71718, - 0x3df04dc0, 0x3ff77ff1, 0x3dfcdd1d, 0x3ff7e652, - 0x3e096c8d, 0x3ff84a3c, 0x3e15fc11, 0x3ff8abae, - 0x3e228ba7, 0x3ff90aaa, 0x3e2f1b50, 0x3ff9672d, - 0x3e3bab0b, 0x3ff9c13a, 0x3e483ad8, 0x3ffa18cf, - 0x3e54cab5, 0x3ffa6dec, 0x3e615aa3, 0x3ffac092, - 0x3e6deaa1, 0x3ffb10c1, 0x3e7a7aae, 0x3ffb5e78, - 0x3e870aca, 0x3ffba9b8, 0x3e939af5, 0x3ffbf280, - 0x3ea02b2e, 0x3ffc38d1, 0x3eacbb74, 0x3ffc7caa, - 0x3eb94bc8, 0x3ffcbe0c, 0x3ec5dc28, 0x3ffcfcf6, - 0x3ed26c94, 0x3ffd3969, 0x3edefd0c, 0x3ffd7364, - 0x3eeb8d8f, 0x3ffdaae7, 0x3ef81e1d, 0x3ffddff3, - 0x3f04aeb5, 0x3ffe1288, 0x3f113f56, 0x3ffe42a4, - 0x3f1dd001, 0x3ffe704a, 0x3f2a60b4, 0x3ffe9b77, - 0x3f36f170, 0x3ffec42d, 0x3f438234, 0x3ffeea6c, - 0x3f5012fe, 0x3fff0e32, 0x3f5ca3d0, 0x3fff2f82, - 0x3f6934a8, 0x3fff4e59, 0x3f75c585, 0x3fff6ab9, - 0x3f825668, 0x3fff84a1, 0x3f8ee750, 0x3fff9c12, - 0x3f9b783c, 0x3fffb10b, 0x3fa8092c, 0x3fffc38c, - 0x3fb49a1f, 0x3fffd396, 0x3fc12b16, 0x3fffe128, - 0x3fcdbc0f, 0x3fffec43, 0x3fda4d09, 0x3ffff4e6, - 0x3fe6de05, 0x3ffffb11, 0x3ff36f02, 0x3ffffec4, -}; - - -/** -* \par -* Generation of realCoefBQ31 array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)    
-* {    
-*    pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i));    
-*    pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i));    
-* } 
-* \par -* Convert to fixed point Q31 format -* round(pBTable[i] * pow(2, 31)) -* -*/ - -static const q31_t realCoefBQ31[8192] = { - 0x40000000, 0x40000000, 0x400c90fe, 0x3ffffec4, - 0x401921fb, 0x3ffffb11, 0x4025b2f7, 0x3ffff4e6, - 0x403243f1, 0x3fffec43, 0x403ed4ea, 0x3fffe128, - 0x404b65e1, 0x3fffd396, 0x4057f6d4, 0x3fffc38c, - 0x406487c4, 0x3fffb10b, 0x407118b0, 0x3fff9c12, - 0x407da998, 0x3fff84a1, 0x408a3a7b, 0x3fff6ab9, - 0x4096cb58, 0x3fff4e59, 0x40a35c30, 0x3fff2f82, - 0x40afed02, 0x3fff0e32, 0x40bc7dcc, 0x3ffeea6c, - 0x40c90e90, 0x3ffec42d, 0x40d59f4c, 0x3ffe9b77, - 0x40e22fff, 0x3ffe704a, 0x40eec0aa, 0x3ffe42a4, - 0x40fb514b, 0x3ffe1288, 0x4107e1e3, 0x3ffddff3, - 0x41147271, 0x3ffdaae7, 0x412102f4, 0x3ffd7364, - 0x412d936c, 0x3ffd3969, 0x413a23d8, 0x3ffcfcf6, - 0x4146b438, 0x3ffcbe0c, 0x4153448c, 0x3ffc7caa, - 0x415fd4d2, 0x3ffc38d1, 0x416c650b, 0x3ffbf280, - 0x4178f536, 0x3ffba9b8, 0x41858552, 0x3ffb5e78, - 0x4192155f, 0x3ffb10c1, 0x419ea55d, 0x3ffac092, - 0x41ab354b, 0x3ffa6dec, 0x41b7c528, 0x3ffa18cf, - 0x41c454f5, 0x3ff9c13a, 0x41d0e4b0, 0x3ff9672d, - 0x41dd7459, 0x3ff90aaa, 0x41ea03ef, 0x3ff8abae, - 0x41f69373, 0x3ff84a3c, 0x420322e3, 0x3ff7e652, - 0x420fb240, 0x3ff77ff1, 0x421c4188, 0x3ff71718, - 0x4228d0bb, 0x3ff6abc8, 0x42355fd9, 0x3ff63e01, - 0x4241eee2, 0x3ff5cdc3, 0x424e7dd4, 0x3ff55b0d, - 0x425b0caf, 0x3ff4e5e0, 0x42679b73, 0x3ff46e3c, - 0x42742a1f, 0x3ff3f420, 0x4280b8b3, 0x3ff3778e, - 0x428d472e, 0x3ff2f884, 0x4299d590, 0x3ff27703, - 0x42a663d8, 0x3ff1f30b, 0x42b2f207, 0x3ff16c9c, - 0x42bf801a, 0x3ff0e3b6, 0x42cc0e13, 0x3ff05858, - 0x42d89bf0, 0x3fefca84, 0x42e529b0, 0x3fef3a39, - 0x42f1b755, 0x3feea776, 0x42fe44dc, 0x3fee123d, - 0x430ad245, 0x3fed7a8c, 0x43175f91, 0x3fece065, - 0x4323ecbe, 0x3fec43c7, 0x433079cc, 0x3feba4b2, - 0x433d06bb, 0x3feb0326, 0x43499389, 0x3fea5f23, - 0x43562038, 0x3fe9b8a9, 0x4362acc5, 0x3fe90fb9, - 0x436f3931, 0x3fe86452, 0x437bc57b, 0x3fe7b674, - 0x438851a2, 0x3fe7061f, 0x4394dda7, 0x3fe65354, - 0x43a16988, 0x3fe59e12, 0x43adf546, 0x3fe4e659, - 0x43ba80df, 0x3fe42c2a, 0x43c70c54, 0x3fe36f84, - 0x43d397a3, 0x3fe2b067, 0x43e022cc, 0x3fe1eed5, - 0x43ecadcf, 0x3fe12acb, 0x43f938ac, 0x3fe0644b, - 0x4405c361, 0x3fdf9b55, 0x44124dee, 0x3fdecfe8, - 0x441ed854, 0x3fde0205, 0x442b6290, 0x3fdd31ac, - 0x4437eca4, 0x3fdc5edc, 0x4444768d, 0x3fdb8996, - 0x4451004d, 0x3fdab1d9, 0x445d89e2, 0x3fd9d7a7, - 0x446a134c, 0x3fd8fafe, 0x44769c8b, 0x3fd81bdf, - 0x4483259d, 0x3fd73a4a, 0x448fae83, 0x3fd6563f, - 0x449c373c, 0x3fd56fbe, 0x44a8bfc7, 0x3fd486c7, - 0x44b54825, 0x3fd39b5a, 0x44c1d054, 0x3fd2ad77, - 0x44ce5854, 0x3fd1bd1e, 0x44dae024, 0x3fd0ca4f, - 0x44e767c5, 0x3fcfd50b, 0x44f3ef35, 0x3fcedd50, - 0x45007674, 0x3fcde320, 0x450cfd82, 0x3fcce67a, - 0x4519845e, 0x3fcbe75e, 0x45260b08, 0x3fcae5cd, - 0x4532917f, 0x3fc9e1c6, 0x453f17c3, 0x3fc8db4a, - 0x454b9dd3, 0x3fc7d258, 0x455823ae, 0x3fc6c6f0, - 0x4564a955, 0x3fc5b913, 0x45712ec7, 0x3fc4a8c1, - 0x457db403, 0x3fc395f9, 0x458a3908, 0x3fc280bc, - 0x4596bdd7, 0x3fc1690a, 0x45a3426f, 0x3fc04ee3, - 0x45afc6d0, 0x3fbf3246, 0x45bc4af8, 0x3fbe1334, - 0x45c8cee7, 0x3fbcf1ad, 0x45d5529e, 0x3fbbcdb1, - 0x45e1d61b, 0x3fbaa740, 0x45ee595d, 0x3fb97e5a, - 0x45fadc66, 0x3fb852ff, 0x46075f33, 0x3fb7252f, - 0x4613e1c5, 0x3fb5f4ea, 0x4620641a, 0x3fb4c231, - 0x462ce634, 0x3fb38d02, 0x46396810, 0x3fb2555f, - 0x4645e9af, 0x3fb11b48, 0x46526b10, 0x3fafdebb, - 0x465eec33, 0x3fae9fbb, 0x466b6d16, 0x3fad5e45, - 0x4677edbb, 0x3fac1a5b, 0x46846e1f, 0x3faad3fd, - 0x4690ee44, 0x3fa98b2a, 0x469d6e27, 0x3fa83fe3, - 0x46a9edc9, 0x3fa6f228, 0x46b66d29, 0x3fa5a1f9, - 0x46c2ec48, 0x3fa44f55, 0x46cf6b23, 0x3fa2fa3d, - 0x46dbe9bb, 0x3fa1a2b2, 0x46e86810, 0x3fa048b2, - 0x46f4e620, 0x3f9eec3e, 0x470163eb, 0x3f9d8d56, - 0x470de172, 0x3f9c2bfb, 0x471a5eb3, 0x3f9ac82c, - 0x4726dbae, 0x3f9961e8, 0x47335862, 0x3f97f932, - 0x473fd4cf, 0x3f968e07, 0x474c50f4, 0x3f952069, - 0x4758ccd2, 0x3f93b058, 0x47654867, 0x3f923dd2, - 0x4771c3b3, 0x3f90c8da, 0x477e3eb5, 0x3f8f516e, - 0x478ab96e, 0x3f8dd78f, 0x479733dc, 0x3f8c5b3d, - 0x47a3adff, 0x3f8adc77, 0x47b027d7, 0x3f895b3e, - 0x47bca163, 0x3f87d792, 0x47c91aa3, 0x3f865174, - 0x47d59396, 0x3f84c8e2, 0x47e20c3b, 0x3f833ddd, - 0x47ee8493, 0x3f81b065, 0x47fafc9c, 0x3f80207b, - 0x48077457, 0x3f7e8e1e, 0x4813ebc2, 0x3f7cf94e, - 0x482062de, 0x3f7b620c, 0x482cd9a9, 0x3f79c857, - 0x48395024, 0x3f782c30, 0x4845c64d, 0x3f768d96, - 0x48523c25, 0x3f74ec8a, 0x485eb1ab, 0x3f73490b, - 0x486b26de, 0x3f71a31b, 0x48779bbe, 0x3f6ffab8, - 0x4884104b, 0x3f6e4fe3, 0x48908483, 0x3f6ca29c, - 0x489cf867, 0x3f6af2e3, 0x48a96bf6, 0x3f6940b8, - 0x48b5df30, 0x3f678c1c, 0x48c25213, 0x3f65d50d, - 0x48cec4a0, 0x3f641b8d, 0x48db36d6, 0x3f625f9b, - 0x48e7a8b5, 0x3f60a138, 0x48f41a3c, 0x3f5ee063, - 0x49008b6a, 0x3f5d1d1d, 0x490cfc40, 0x3f5b5765, - 0x49196cbc, 0x3f598f3c, 0x4925dcdf, 0x3f57c4a2, - 0x49324ca7, 0x3f55f796, 0x493ebc14, 0x3f54281a, - 0x494b2b27, 0x3f52562c, 0x495799dd, 0x3f5081cd, - 0x49640837, 0x3f4eaafe, 0x49707635, 0x3f4cd1be, - 0x497ce3d5, 0x3f4af60d, 0x49895118, 0x3f4917eb, - 0x4995bdfd, 0x3f473759, 0x49a22a83, 0x3f455456, - 0x49ae96aa, 0x3f436ee3, 0x49bb0271, 0x3f4186ff, - 0x49c76dd8, 0x3f3f9cab, 0x49d3d8df, 0x3f3dafe7, - 0x49e04385, 0x3f3bc0b3, 0x49ecadc9, 0x3f39cf0e, - 0x49f917ac, 0x3f37dafa, 0x4a05812c, 0x3f35e476, - 0x4a11ea49, 0x3f33eb81, 0x4a1e5303, 0x3f31f01d, - 0x4a2abb59, 0x3f2ff24a, 0x4a37234a, 0x3f2df206, - 0x4a438ad7, 0x3f2bef53, 0x4a4ff1fe, 0x3f29ea31, - 0x4a5c58c0, 0x3f27e29f, 0x4a68bf1b, 0x3f25d89e, - 0x4a752510, 0x3f23cc2e, 0x4a818a9d, 0x3f21bd4e, - 0x4a8defc3, 0x3f1fabff, 0x4a9a5480, 0x3f1d9842, - 0x4aa6b8d5, 0x3f1b8215, 0x4ab31cc1, 0x3f19697a, - 0x4abf8043, 0x3f174e70, 0x4acbe35b, 0x3f1530f7, - 0x4ad84609, 0x3f13110f, 0x4ae4a84b, 0x3f10eeb9, - 0x4af10a22, 0x3f0ec9f5, 0x4afd6b8d, 0x3f0ca2c2, - 0x4b09cc8c, 0x3f0a7921, 0x4b162d1d, 0x3f084d12, - 0x4b228d42, 0x3f061e95, 0x4b2eecf8, 0x3f03eda9, - 0x4b3b4c40, 0x3f01ba50, 0x4b47ab19, 0x3eff8489, - 0x4b540982, 0x3efd4c54, 0x4b60677c, 0x3efb11b1, - 0x4b6cc506, 0x3ef8d4a1, 0x4b79221f, 0x3ef69523, - 0x4b857ec7, 0x3ef45338, 0x4b91dafc, 0x3ef20ee0, - 0x4b9e36c0, 0x3eefc81a, 0x4baa9211, 0x3eed7ee7, - 0x4bb6ecef, 0x3eeb3347, 0x4bc34759, 0x3ee8e53a, - 0x4bcfa150, 0x3ee694c1, 0x4bdbfad1, 0x3ee441da, - 0x4be853de, 0x3ee1ec87, 0x4bf4ac75, 0x3edf94c7, - 0x4c010496, 0x3edd3a9a, 0x4c0d5c41, 0x3edade01, - 0x4c19b374, 0x3ed87efc, 0x4c260a31, 0x3ed61d8a, - 0x4c326075, 0x3ed3b9ad, 0x4c3eb641, 0x3ed15363, - 0x4c4b0b94, 0x3eceeaad, 0x4c57606e, 0x3ecc7f8b, - 0x4c63b4ce, 0x3eca11fe, 0x4c7008b3, 0x3ec7a205, - 0x4c7c5c1e, 0x3ec52fa0, 0x4c88af0e, 0x3ec2bad0, - 0x4c950182, 0x3ec04394, 0x4ca1537a, 0x3ebdc9ed, - 0x4cada4f5, 0x3ebb4ddb, 0x4cb9f5f3, 0x3eb8cf5d, - 0x4cc64673, 0x3eb64e75, 0x4cd29676, 0x3eb3cb21, - 0x4cdee5f9, 0x3eb14563, 0x4ceb34fe, 0x3eaebd3a, - 0x4cf78383, 0x3eac32a6, 0x4d03d189, 0x3ea9a5a8, - 0x4d101f0e, 0x3ea7163f, 0x4d1c6c11, 0x3ea4846c, - 0x4d28b894, 0x3ea1f02f, 0x4d350495, 0x3e9f5988, - 0x4d415013, 0x3e9cc076, 0x4d4d9b0e, 0x3e9a24fb, - 0x4d59e586, 0x3e978715, 0x4d662f7b, 0x3e94e6c6, - 0x4d7278eb, 0x3e92440d, 0x4d7ec1d6, 0x3e8f9eeb, - 0x4d8b0a3d, 0x3e8cf75f, 0x4d97521d, 0x3e8a4d6a, - 0x4da39978, 0x3e87a10c, 0x4dafe04b, 0x3e84f245, - 0x4dbc2698, 0x3e824114, 0x4dc86c5d, 0x3e7f8d7b, - 0x4dd4b19a, 0x3e7cd778, 0x4de0f64f, 0x3e7a1f0d, - 0x4ded3a7b, 0x3e77643a, 0x4df97e1d, 0x3e74a6fd, - 0x4e05c135, 0x3e71e759, 0x4e1203c3, 0x3e6f254c, - 0x4e1e45c6, 0x3e6c60d7, 0x4e2a873e, 0x3e6999fa, - 0x4e36c82a, 0x3e66d0b4, 0x4e430889, 0x3e640507, - 0x4e4f485c, 0x3e6136f3, 0x4e5b87a2, 0x3e5e6676, - 0x4e67c65a, 0x3e5b9392, 0x4e740483, 0x3e58be47, - 0x4e80421e, 0x3e55e694, 0x4e8c7f2a, 0x3e530c7a, - 0x4e98bba7, 0x3e502ff9, 0x4ea4f793, 0x3e4d5110, - 0x4eb132ef, 0x3e4a6fc1, 0x4ebd6db9, 0x3e478c0b, - 0x4ec9a7f3, 0x3e44a5ef, 0x4ed5e19a, 0x3e41bd6c, - 0x4ee21aaf, 0x3e3ed282, 0x4eee5331, 0x3e3be532, - 0x4efa8b20, 0x3e38f57c, 0x4f06c27a, 0x3e360360, - 0x4f12f941, 0x3e330ede, 0x4f1f2f73, 0x3e3017f6, - 0x4f2b650f, 0x3e2d1ea8, 0x4f379a16, 0x3e2a22f4, - 0x4f43ce86, 0x3e2724db, 0x4f500260, 0x3e24245d, - 0x4f5c35a3, 0x3e212179, 0x4f68684e, 0x3e1e1c30, - 0x4f749a61, 0x3e1b1482, 0x4f80cbdc, 0x3e180a6f, - 0x4f8cfcbe, 0x3e14fdf7, 0x4f992d06, 0x3e11ef1b, - 0x4fa55cb4, 0x3e0eddd9, 0x4fb18bc8, 0x3e0bca34, - 0x4fbdba40, 0x3e08b42a, 0x4fc9e81e, 0x3e059bbb, - 0x4fd6155f, 0x3e0280e9, 0x4fe24205, 0x3dff63b2, - 0x4fee6e0d, 0x3dfc4418, 0x4ffa9979, 0x3df9221a, - 0x5006c446, 0x3df5fdb8, 0x5012ee76, 0x3df2d6f3, - 0x501f1807, 0x3defadca, 0x502b40f8, 0x3dec823e, - 0x5037694b, 0x3de9544f, 0x504390fd, 0x3de623fd, - 0x504fb80e, 0x3de2f148, 0x505bde7f, 0x3ddfbc30, - 0x5068044e, 0x3ddc84b5, 0x5074297b, 0x3dd94ad8, - 0x50804e06, 0x3dd60e99, 0x508c71ee, 0x3dd2cff7, - 0x50989532, 0x3dcf8ef3, 0x50a4b7d3, 0x3dcc4b8d, - 0x50b0d9d0, 0x3dc905c5, 0x50bcfb28, 0x3dc5bd9b, - 0x50c91bda, 0x3dc2730f, 0x50d53be7, 0x3dbf2622, - 0x50e15b4e, 0x3dbbd6d4, 0x50ed7a0e, 0x3db88524, - 0x50f99827, 0x3db53113, 0x5105b599, 0x3db1daa2, - 0x5111d263, 0x3dae81cf, 0x511dee84, 0x3dab269b, - 0x512a09fc, 0x3da7c907, 0x513624cb, 0x3da46912, - 0x51423ef0, 0x3da106bd, 0x514e586a, 0x3d9da208, - 0x515a713a, 0x3d9a3af2, 0x5166895f, 0x3d96d17d, - 0x5172a0d7, 0x3d9365a8, 0x517eb7a4, 0x3d8ff772, - 0x518acdc4, 0x3d8c86de, 0x5196e337, 0x3d8913ea, - 0x51a2f7fc, 0x3d859e96, 0x51af0c13, 0x3d8226e4, - 0x51bb1f7c, 0x3d7eacd2, 0x51c73235, 0x3d7b3061, - 0x51d3443f, 0x3d77b192, 0x51df5599, 0x3d743064, - 0x51eb6643, 0x3d70acd7, 0x51f7763c, 0x3d6d26ec, - 0x52038584, 0x3d699ea3, 0x520f941a, 0x3d6613fb, - 0x521ba1fd, 0x3d6286f6, 0x5227af2e, 0x3d5ef793, - 0x5233bbac, 0x3d5b65d2, 0x523fc776, 0x3d57d1b3, - 0x524bd28c, 0x3d543b37, 0x5257dced, 0x3d50a25e, - 0x5263e699, 0x3d4d0728, 0x526fef90, 0x3d496994, - 0x527bf7d1, 0x3d45c9a4, 0x5287ff5b, 0x3d422757, - 0x5294062f, 0x3d3e82ae, 0x52a00c4b, 0x3d3adba7, - 0x52ac11af, 0x3d373245, 0x52b8165b, 0x3d338687, - 0x52c41a4f, 0x3d2fd86c, 0x52d01d89, 0x3d2c27f6, - 0x52dc2009, 0x3d287523, 0x52e821cf, 0x3d24bff6, - 0x52f422db, 0x3d21086c, 0x5300232c, 0x3d1d4e88, - 0x530c22c1, 0x3d199248, 0x5318219a, 0x3d15d3ad, - 0x53241fb6, 0x3d1212b7, 0x53301d16, 0x3d0e4f67, - 0x533c19b8, 0x3d0a89bc, 0x5348159d, 0x3d06c1b6, - 0x535410c3, 0x3d02f757, 0x53600b2a, 0x3cff2a9d, - 0x536c04d2, 0x3cfb5b89, 0x5377fdbb, 0x3cf78a1b, - 0x5383f5e3, 0x3cf3b653, 0x538fed4b, 0x3cefe032, - 0x539be3f2, 0x3cec07b8, 0x53a7d9d7, 0x3ce82ce4, - 0x53b3cefa, 0x3ce44fb7, 0x53bfc35b, 0x3ce07031, - 0x53cbb6f8, 0x3cdc8e52, 0x53d7a9d3, 0x3cd8aa1b, - 0x53e39be9, 0x3cd4c38b, 0x53ef8d3c, 0x3cd0daa2, - 0x53fb7dc9, 0x3cccef62, 0x54076d91, 0x3cc901c9, - 0x54135c94, 0x3cc511d9, 0x541f4ad1, 0x3cc11f90, - 0x542b3846, 0x3cbd2af0, 0x543724f5, 0x3cb933f9, - 0x544310dd, 0x3cb53aaa, 0x544efbfc, 0x3cb13f04, - 0x545ae653, 0x3cad4107, 0x5466cfe1, 0x3ca940b3, - 0x5472b8a5, 0x3ca53e09, 0x547ea0a0, 0x3ca13908, - 0x548a87d1, 0x3c9d31b0, 0x54966e36, 0x3c992803, - 0x54a253d1, 0x3c951bff, 0x54ae38a0, 0x3c910da5, - 0x54ba1ca3, 0x3c8cfcf6, 0x54c5ffd9, 0x3c88e9f1, - 0x54d1e242, 0x3c84d496, 0x54ddc3de, 0x3c80bce7, - 0x54e9a4ac, 0x3c7ca2e2, 0x54f584ac, 0x3c788688, - 0x550163dc, 0x3c7467d9, 0x550d423d, 0x3c7046d6, - 0x55191fcf, 0x3c6c237e, 0x5524fc90, 0x3c67fdd1, - 0x5530d881, 0x3c63d5d1, 0x553cb3a0, 0x3c5fab7c, - 0x55488dee, 0x3c5b7ed4, 0x5554676a, 0x3c574fd8, - 0x55604013, 0x3c531e88, 0x556c17e9, 0x3c4eeae5, - 0x5577eeec, 0x3c4ab4ef, 0x5583c51b, 0x3c467ca6, - 0x558f9a76, 0x3c42420a, 0x559b6efb, 0x3c3e051b, - 0x55a742ac, 0x3c39c5da, 0x55b31587, 0x3c358446, - 0x55bee78c, 0x3c314060, 0x55cab8ba, 0x3c2cfa28, - 0x55d68911, 0x3c28b19e, 0x55e25890, 0x3c2466c2, - 0x55ee2738, 0x3c201994, 0x55f9f507, 0x3c1bca16, - 0x5605c1fd, 0x3c177845, 0x56118e1a, 0x3c132424, - 0x561d595d, 0x3c0ecdb2, 0x562923c5, 0x3c0a74f0, - 0x5634ed53, 0x3c0619dc, 0x5640b606, 0x3c01bc78, - 0x564c7ddd, 0x3bfd5cc4, 0x565844d8, 0x3bf8fac0, - 0x56640af7, 0x3bf4966c, 0x566fd039, 0x3bf02fc9, - 0x567b949d, 0x3bebc6d5, 0x56875823, 0x3be75b93, - 0x56931acb, 0x3be2ee01, 0x569edc94, 0x3bde7e20, - 0x56aa9d7e, 0x3bda0bf0, 0x56b65d88, 0x3bd59771, - 0x56c21cb2, 0x3bd120a4, 0x56cddafb, 0x3bcca789, - 0x56d99864, 0x3bc82c1f, 0x56e554ea, 0x3bc3ae67, - 0x56f1108f, 0x3bbf2e62, 0x56fccb51, 0x3bbaac0e, - 0x57088531, 0x3bb6276e, 0x57143e2d, 0x3bb1a080, - 0x571ff646, 0x3bad1744, 0x572bad7a, 0x3ba88bbc, - 0x573763c9, 0x3ba3fde7, 0x57431933, 0x3b9f6dc5, - 0x574ecdb8, 0x3b9adb57, 0x575a8157, 0x3b96469d, - 0x5766340f, 0x3b91af97, 0x5771e5e0, 0x3b8d1644, - 0x577d96ca, 0x3b887aa6, 0x578946cc, 0x3b83dcbc, - 0x5794f5e6, 0x3b7f3c87, 0x57a0a417, 0x3b7a9a07, - 0x57ac515f, 0x3b75f53c, 0x57b7fdbd, 0x3b714e25, - 0x57c3a931, 0x3b6ca4c4, 0x57cf53bb, 0x3b67f919, - 0x57dafd59, 0x3b634b23, 0x57e6a60c, 0x3b5e9ae4, - 0x57f24dd3, 0x3b59e85a, 0x57fdf4ae, 0x3b553386, - 0x58099a9c, 0x3b507c69, 0x58153f9d, 0x3b4bc303, - 0x5820e3b0, 0x3b470753, 0x582c86d5, 0x3b42495a, - 0x5838290c, 0x3b3d8918, 0x5843ca53, 0x3b38c68e, - 0x584f6aab, 0x3b3401bb, 0x585b0a13, 0x3b2f3aa0, - 0x5866a88a, 0x3b2a713d, 0x58724611, 0x3b25a591, - 0x587de2a7, 0x3b20d79e, 0x58897e4a, 0x3b1c0764, - 0x589518fc, 0x3b1734e2, 0x58a0b2bb, 0x3b126019, - 0x58ac4b87, 0x3b0d8909, 0x58b7e35f, 0x3b08afb2, - 0x58c37a44, 0x3b03d414, 0x58cf1034, 0x3afef630, - 0x58daa52f, 0x3afa1605, 0x58e63935, 0x3af53395, - 0x58f1cc45, 0x3af04edf, 0x58fd5e5f, 0x3aeb67e3, - 0x5908ef82, 0x3ae67ea1, 0x59147fae, 0x3ae1931a, - 0x59200ee3, 0x3adca54e, 0x592b9d1f, 0x3ad7b53d, - 0x59372a64, 0x3ad2c2e8, 0x5942b6af, 0x3acdce4d, - 0x594e4201, 0x3ac8d76f, 0x5959cc5a, 0x3ac3de4c, - 0x596555b8, 0x3abee2e5, 0x5970de1b, 0x3ab9e53a, - 0x597c6584, 0x3ab4e54c, 0x5987ebf0, 0x3aafe31b, - 0x59937161, 0x3aaadea6, 0x599ef5d6, 0x3aa5d7ee, - 0x59aa794d, 0x3aa0cef3, 0x59b5fbc8, 0x3a9bc3b6, - 0x59c17d44, 0x3a96b636, 0x59ccfdc2, 0x3a91a674, - 0x59d87d42, 0x3a8c9470, 0x59e3fbc3, 0x3a87802a, - 0x59ef7944, 0x3a8269a3, 0x59faf5c5, 0x3a7d50da, - 0x5a067145, 0x3a7835cf, 0x5a11ebc5, 0x3a731884, - 0x5a1d6544, 0x3a6df8f8, 0x5a28ddc0, 0x3a68d72b, - 0x5a34553b, 0x3a63b31d, 0x5a3fcbb3, 0x3a5e8cd0, - 0x5a4b4128, 0x3a596442, 0x5a56b599, 0x3a543974, - 0x5a622907, 0x3a4f0c67, 0x5a6d9b70, 0x3a49dd1a, - 0x5a790cd4, 0x3a44ab8e, 0x5a847d33, 0x3a3f77c3, - 0x5a8fec8c, 0x3a3a41b9, 0x5a9b5adf, 0x3a350970, - 0x5aa6c82b, 0x3a2fcee8, 0x5ab23471, 0x3a2a9223, - 0x5abd9faf, 0x3a25531f, 0x5ac909e5, 0x3a2011de, - 0x5ad47312, 0x3a1ace5f, 0x5adfdb37, 0x3a1588a2, - 0x5aeb4253, 0x3a1040a8, 0x5af6a865, 0x3a0af671, - 0x5b020d6c, 0x3a05a9fd, 0x5b0d716a, 0x3a005b4d, - 0x5b18d45c, 0x39fb0a60, 0x5b243643, 0x39f5b737, - 0x5b2f971e, 0x39f061d2, 0x5b3af6ec, 0x39eb0a31, - 0x5b4655ae, 0x39e5b054, 0x5b51b363, 0x39e0543c, - 0x5b5d100a, 0x39daf5e8, 0x5b686ba3, 0x39d5955a, - 0x5b73c62d, 0x39d03291, 0x5b7f1fa9, 0x39cacd8d, - 0x5b8a7815, 0x39c5664f, 0x5b95cf71, 0x39bffcd7, - 0x5ba125bd, 0x39ba9125, 0x5bac7af9, 0x39b52339, - 0x5bb7cf23, 0x39afb313, 0x5bc3223c, 0x39aa40b4, - 0x5bce7442, 0x39a4cc1c, 0x5bd9c537, 0x399f554b, - 0x5be51518, 0x3999dc42, 0x5bf063e6, 0x399460ff, - 0x5bfbb1a0, 0x398ee385, 0x5c06fe46, 0x398963d2, - 0x5c1249d8, 0x3983e1e8, 0x5c1d9454, 0x397e5dc6, - 0x5c28ddbb, 0x3978d76c, 0x5c34260c, 0x39734edc, - 0x5c3f6d47, 0x396dc414, 0x5c4ab36b, 0x39683715, - 0x5c55f878, 0x3962a7e0, 0x5c613c6d, 0x395d1675, - 0x5c6c7f4a, 0x395782d3, 0x5c77c10e, 0x3951ecfc, - 0x5c8301b9, 0x394c54ee, 0x5c8e414b, 0x3946baac, - 0x5c997fc4, 0x39411e33, 0x5ca4bd21, 0x393b7f86, - 0x5caff965, 0x3935dea4, 0x5cbb348d, 0x39303b8e, - 0x5cc66e99, 0x392a9642, 0x5cd1a78a, 0x3924eec3, - 0x5cdcdf5e, 0x391f4510, 0x5ce81615, 0x39199929, - 0x5cf34baf, 0x3913eb0e, 0x5cfe802b, 0x390e3ac0, - 0x5d09b389, 0x3908883f, 0x5d14e5c9, 0x3902d38b, - 0x5d2016e9, 0x38fd1ca4, 0x5d2b46ea, 0x38f7638b, - 0x5d3675cb, 0x38f1a840, 0x5d41a38c, 0x38ebeac2, - 0x5d4cd02c, 0x38e62b13, 0x5d57fbaa, 0x38e06932, - 0x5d632608, 0x38daa520, 0x5d6e4f43, 0x38d4dedd, - 0x5d79775c, 0x38cf1669, 0x5d849e51, 0x38c94bc4, - 0x5d8fc424, 0x38c37eef, 0x5d9ae8d2, 0x38bdafea, - 0x5da60c5d, 0x38b7deb4, 0x5db12ec3, 0x38b20b4f, - 0x5dbc5004, 0x38ac35ba, 0x5dc7701f, 0x38a65df6, - 0x5dd28f15, 0x38a08402, 0x5dddace4, 0x389aa7e0, - 0x5de8c98c, 0x3894c98f, 0x5df3e50d, 0x388ee910, - 0x5dfeff67, 0x38890663, 0x5e0a1898, 0x38832187, - 0x5e1530a1, 0x387d3a7e, 0x5e204781, 0x38775147, - 0x5e2b5d38, 0x387165e3, 0x5e3671c5, 0x386b7852, - 0x5e418528, 0x38658894, 0x5e4c9760, 0x385f96a9, - 0x5e57a86d, 0x3859a292, 0x5e62b84f, 0x3853ac4f, - 0x5e6dc705, 0x384db3e0, 0x5e78d48e, 0x3847b946, - 0x5e83e0eb, 0x3841bc7f, 0x5e8eec1b, 0x383bbd8e, - 0x5e99f61d, 0x3835bc71, 0x5ea4fef0, 0x382fb92a, - 0x5eb00696, 0x3829b3b9, 0x5ebb0d0d, 0x3823ac1d, - 0x5ec61254, 0x381da256, 0x5ed1166b, 0x38179666, - 0x5edc1953, 0x3811884d, 0x5ee71b0a, 0x380b780a, - 0x5ef21b90, 0x3805659e, 0x5efd1ae4, 0x37ff5109, - 0x5f081907, 0x37f93a4b, 0x5f1315f7, 0x37f32165, - 0x5f1e11b5, 0x37ed0657, 0x5f290c3f, 0x37e6e921, - 0x5f340596, 0x37e0c9c3, 0x5f3efdb9, 0x37daa83d, - 0x5f49f4a8, 0x37d48490, 0x5f54ea62, 0x37ce5ebd, - 0x5f5fdee6, 0x37c836c2, 0x5f6ad235, 0x37c20ca1, - 0x5f75c44e, 0x37bbe05a, 0x5f80b531, 0x37b5b1ec, - 0x5f8ba4dc, 0x37af8159, 0x5f969350, 0x37a94ea0, - 0x5fa1808c, 0x37a319c2, 0x5fac6c91, 0x379ce2be, - 0x5fb7575c, 0x3796a996, 0x5fc240ef, 0x37906e49, - 0x5fcd2948, 0x378a30d8, 0x5fd81067, 0x3783f143, - 0x5fe2f64c, 0x377daf89, 0x5feddaf6, 0x37776bac, - 0x5ff8be65, 0x377125ac, 0x6003a099, 0x376add88, - 0x600e8190, 0x37649341, 0x6019614c, 0x375e46d8, - 0x60243fca, 0x3757f84c, 0x602f1d0b, 0x3751a79e, - 0x6039f90f, 0x374b54ce, 0x6044d3d4, 0x3744ffdd, - 0x604fad5b, 0x373ea8ca, 0x605a85a3, 0x37384f95, - 0x60655cac, 0x3731f440, 0x60703275, 0x372b96ca, - 0x607b06fe, 0x37253733, 0x6085da46, 0x371ed57c, - 0x6090ac4d, 0x371871a5, 0x609b7d13, 0x37120bae, - 0x60a64c97, 0x370ba398, 0x60b11ad9, 0x37053962, - 0x60bbe7d8, 0x36fecd0e, 0x60c6b395, 0x36f85e9a, - 0x60d17e0d, 0x36f1ee09, 0x60dc4742, 0x36eb7b58, - 0x60e70f32, 0x36e5068a, 0x60f1d5de, 0x36de8f9e, - 0x60fc9b44, 0x36d81695, 0x61075f65, 0x36d19b6e, - 0x61122240, 0x36cb1e2a, 0x611ce3d5, 0x36c49ec9, - 0x6127a423, 0x36be1d4c, 0x61326329, 0x36b799b3, - 0x613d20e8, 0x36b113fd, 0x6147dd5f, 0x36aa8c2c, - 0x6152988d, 0x36a4023f, 0x615d5273, 0x369d7637, - 0x61680b0f, 0x3696e814, 0x6172c262, 0x369057d6, - 0x617d786a, 0x3689c57d, 0x61882d28, 0x3683310b, - 0x6192e09b, 0x367c9a7e, 0x619d92c2, 0x367601d7, - 0x61a8439e, 0x366f6717, 0x61b2f32e, 0x3668ca3e, - 0x61bda171, 0x36622b4c, 0x61c84e67, 0x365b8a41, - 0x61d2fa0f, 0x3654e71d, 0x61dda46a, 0x364e41e2, - 0x61e84d76, 0x36479a8e, 0x61f2f534, 0x3640f123, - 0x61fd9ba3, 0x363a45a0, 0x620840c2, 0x36339806, - 0x6212e492, 0x362ce855, 0x621d8711, 0x3626368d, - 0x6228283f, 0x361f82af, 0x6232c81c, 0x3618ccba, - 0x623d66a8, 0x361214b0, 0x624803e2, 0x360b5a90, - 0x62529fca, 0x36049e5b, 0x625d3a5e, 0x35fde011, - 0x6267d3a0, 0x35f71fb1, 0x62726b8e, 0x35f05d3d, - 0x627d0228, 0x35e998b5, 0x6287976e, 0x35e2d219, - 0x62922b5e, 0x35dc0968, 0x629cbdfa, 0x35d53ea5, - 0x62a74f40, 0x35ce71ce, 0x62b1df30, 0x35c7a2e3, - 0x62bc6dca, 0x35c0d1e7, 0x62c6fb0c, 0x35b9fed7, - 0x62d186f8, 0x35b329b5, 0x62dc118c, 0x35ac5282, - 0x62e69ac8, 0x35a5793c, 0x62f122ab, 0x359e9de5, - 0x62fba936, 0x3597c07d, 0x63062e67, 0x3590e104, - 0x6310b23e, 0x3589ff7a, 0x631b34bc, 0x35831be0, - 0x6325b5df, 0x357c3636, 0x633035a7, 0x35754e7c, - 0x633ab414, 0x356e64b2, 0x63453125, 0x356778d9, - 0x634facda, 0x35608af1, 0x635a2733, 0x35599afa, - 0x6364a02e, 0x3552a8f4, 0x636f17cc, 0x354bb4e1, - 0x63798e0d, 0x3544bebf, 0x638402ef, 0x353dc68f, - 0x638e7673, 0x3536cc52, 0x6398e898, 0x352fd008, - 0x63a3595e, 0x3528d1b1, 0x63adc8c4, 0x3521d14d, - 0x63b836ca, 0x351acedd, 0x63c2a36f, 0x3513ca60, - 0x63cd0eb3, 0x350cc3d8, 0x63d77896, 0x3505bb44, - 0x63e1e117, 0x34feb0a5, 0x63ec4837, 0x34f7a3fb, - 0x63f6adf3, 0x34f09546, 0x6401124d, 0x34e98487, - 0x640b7543, 0x34e271bd, 0x6415d6d5, 0x34db5cea, - 0x64203704, 0x34d4460c, 0x642a95ce, 0x34cd2d26, - 0x6434f332, 0x34c61236, 0x643f4f32, 0x34bef53d, - 0x6449a9cc, 0x34b7d63c, 0x645402ff, 0x34b0b533, - 0x645e5acc, 0x34a99221, 0x6468b132, 0x34a26d08, - 0x64730631, 0x349b45e7, 0x647d59c8, 0x34941cbf, - 0x6487abf7, 0x348cf190, 0x6491fcbe, 0x3485c45b, - 0x649c4c1b, 0x347e951f, 0x64a69a0f, 0x347763dd, - 0x64b0e699, 0x34703095, 0x64bb31ba, 0x3468fb47, - 0x64c57b6f, 0x3461c3f5, 0x64cfc3ba, 0x345a8a9d, - 0x64da0a9a, 0x34534f41, 0x64e4500e, 0x344c11e0, - 0x64ee9415, 0x3444d27b, 0x64f8d6b0, 0x343d9112, - 0x650317df, 0x34364da6, 0x650d57a0, 0x342f0836, - 0x651795f3, 0x3427c0c3, 0x6521d2d8, 0x3420774d, - 0x652c0e4f, 0x34192bd5, 0x65364857, 0x3411de5b, - 0x654080ef, 0x340a8edf, 0x654ab818, 0x34033d61, - 0x6554edd1, 0x33fbe9e2, 0x655f2219, 0x33f49462, - 0x656954f1, 0x33ed3ce1, 0x65738657, 0x33e5e360, - 0x657db64c, 0x33de87de, 0x6587e4cf, 0x33d72a5d, - 0x659211df, 0x33cfcadc, 0x659c3d7c, 0x33c8695b, - 0x65a667a7, 0x33c105db, 0x65b0905d, 0x33b9a05d, - 0x65bab7a0, 0x33b238e0, 0x65c4dd6e, 0x33aacf65, - 0x65cf01c8, 0x33a363ec, 0x65d924ac, 0x339bf675, - 0x65e3461b, 0x33948701, 0x65ed6614, 0x338d1590, - 0x65f78497, 0x3385a222, 0x6601a1a2, 0x337e2cb7, - 0x660bbd37, 0x3376b551, 0x6615d754, 0x336f3bee, - 0x661feffa, 0x3367c090, 0x662a0727, 0x33604336, - 0x66341cdb, 0x3358c3e2, 0x663e3117, 0x33514292, - 0x664843d9, 0x3349bf48, 0x66525521, 0x33423a04, - 0x665c64ef, 0x333ab2c6, 0x66667342, 0x3333298f, - 0x6670801a, 0x332b9e5e, 0x667a8b77, 0x33241134, - 0x66849558, 0x331c8211, 0x668e9dbd, 0x3314f0f6, - 0x6698a4a6, 0x330d5de3, 0x66a2aa11, 0x3305c8d7, - 0x66acadff, 0x32fe31d5, 0x66b6b070, 0x32f698db, - 0x66c0b162, 0x32eefdea, 0x66cab0d6, 0x32e76102, - 0x66d4aecb, 0x32dfc224, 0x66deab41, 0x32d82150, - 0x66e8a637, 0x32d07e85, 0x66f29fad, 0x32c8d9c6, - 0x66fc97a3, 0x32c13311, 0x67068e18, 0x32b98a67, - 0x6710830c, 0x32b1dfc9, 0x671a767e, 0x32aa3336, - 0x6724686e, 0x32a284b0, 0x672e58dc, 0x329ad435, - 0x673847c8, 0x329321c7, 0x67423530, 0x328b6d66, - 0x674c2115, 0x3283b712, 0x67560b76, 0x327bfecc, - 0x675ff452, 0x32744493, 0x6769dbaa, 0x326c8868, - 0x6773c17d, 0x3264ca4c, 0x677da5cb, 0x325d0a3e, - 0x67878893, 0x32554840, 0x679169d5, 0x324d8450, - 0x679b4990, 0x3245be70, 0x67a527c4, 0x323df6a0, - 0x67af0472, 0x32362ce0, 0x67b8df97, 0x322e6130, - 0x67c2b934, 0x32269391, 0x67cc9149, 0x321ec403, - 0x67d667d5, 0x3216f287, 0x67e03cd8, 0x320f1f1c, - 0x67ea1052, 0x320749c3, 0x67f3e241, 0x31ff727c, - 0x67fdb2a7, 0x31f79948, 0x68078181, 0x31efbe27, - 0x68114ed0, 0x31e7e118, 0x681b1a94, 0x31e0021e, - 0x6824e4cc, 0x31d82137, 0x682ead78, 0x31d03e64, - 0x68387498, 0x31c859a5, 0x68423a2a, 0x31c072fb, - 0x684bfe2f, 0x31b88a66, 0x6855c0a6, 0x31b09fe7, - 0x685f8190, 0x31a8b37c, 0x686940ea, 0x31a0c528, - 0x6872feb6, 0x3198d4ea, 0x687cbaf3, 0x3190e2c3, - 0x688675a0, 0x3188eeb2, 0x68902ebd, 0x3180f8b8, - 0x6899e64a, 0x317900d6, 0x68a39c46, 0x3171070c, - 0x68ad50b1, 0x31690b59, 0x68b7038b, 0x31610dbf, - 0x68c0b4d2, 0x31590e3e, 0x68ca6488, 0x31510cd5, - 0x68d412ab, 0x31490986, 0x68ddbf3b, 0x31410450, - 0x68e76a37, 0x3138fd35, 0x68f113a0, 0x3130f433, - 0x68fabb75, 0x3128e94c, 0x690461b5, 0x3120dc80, - 0x690e0661, 0x3118cdcf, 0x6917a977, 0x3110bd39, - 0x69214af8, 0x3108aabf, 0x692aeae3, 0x31009661, - 0x69348937, 0x30f8801f, 0x693e25f5, 0x30f067fb, - 0x6947c11c, 0x30e84df3, 0x69515aab, 0x30e03208, - 0x695af2a3, 0x30d8143b, 0x69648902, 0x30cff48c, - 0x696e1dc9, 0x30c7d2fb, 0x6977b0f7, 0x30bfaf89, - 0x6981428c, 0x30b78a36, 0x698ad287, 0x30af6302, - 0x699460e8, 0x30a739ed, 0x699dedaf, 0x309f0ef8, - 0x69a778db, 0x3096e223, 0x69b1026c, 0x308eb36f, - 0x69ba8a61, 0x308682dc, 0x69c410ba, 0x307e5069, - 0x69cd9578, 0x30761c18, 0x69d71899, 0x306de5e9, - 0x69e09a1c, 0x3065addb, 0x69ea1a03, 0x305d73f0, - 0x69f3984c, 0x30553828, 0x69fd14f6, 0x304cfa83, - 0x6a069003, 0x3044bb00, 0x6a100970, 0x303c79a2, - 0x6a19813f, 0x30343667, 0x6a22f76e, 0x302bf151, - 0x6a2c6bfd, 0x3023aa5f, 0x6a35deeb, 0x301b6193, - 0x6a3f503a, 0x301316eb, 0x6a48bfe7, 0x300aca69, - 0x6a522df3, 0x30027c0c, 0x6a5b9a5d, 0x2ffa2bd6, - 0x6a650525, 0x2ff1d9c7, 0x6a6e6e4b, 0x2fe985de, - 0x6a77d5ce, 0x2fe1301c, 0x6a813bae, 0x2fd8d882, - 0x6a8a9fea, 0x2fd07f0f, 0x6a940283, 0x2fc823c5, - 0x6a9d6377, 0x2fbfc6a3, 0x6aa6c2c6, 0x2fb767aa, - 0x6ab02071, 0x2faf06da, 0x6ab97c77, 0x2fa6a433, - 0x6ac2d6d6, 0x2f9e3fb6, 0x6acc2f90, 0x2f95d963, - 0x6ad586a3, 0x2f8d713a, 0x6adedc10, 0x2f85073c, - 0x6ae82fd5, 0x2f7c9b69, 0x6af181f3, 0x2f742dc1, - 0x6afad269, 0x2f6bbe45, 0x6b042137, 0x2f634cf5, - 0x6b0d6e5c, 0x2f5ad9d1, 0x6b16b9d9, 0x2f5264da, - 0x6b2003ac, 0x2f49ee0f, 0x6b294bd5, 0x2f417573, - 0x6b329255, 0x2f38fb03, 0x6b3bd72a, 0x2f307ec2, - 0x6b451a55, 0x2f2800af, 0x6b4e5bd4, 0x2f1f80ca, - 0x6b579ba8, 0x2f16ff14, 0x6b60d9d0, 0x2f0e7b8e, - 0x6b6a164d, 0x2f05f637, 0x6b73511c, 0x2efd6f10, - 0x6b7c8a3f, 0x2ef4e619, 0x6b85c1b5, 0x2eec5b53, - 0x6b8ef77d, 0x2ee3cebe, 0x6b982b97, 0x2edb405a, - 0x6ba15e03, 0x2ed2b027, 0x6baa8ec0, 0x2eca1e27, - 0x6bb3bdce, 0x2ec18a58, 0x6bbceb2d, 0x2eb8f4bc, - 0x6bc616dd, 0x2eb05d53, 0x6bcf40dc, 0x2ea7c41e, - 0x6bd8692b, 0x2e9f291b, 0x6be18fc9, 0x2e968c4d, - 0x6beab4b6, 0x2e8dedb3, 0x6bf3d7f2, 0x2e854d4d, - 0x6bfcf97c, 0x2e7cab1c, 0x6c061953, 0x2e740720, - 0x6c0f3779, 0x2e6b615a, 0x6c1853eb, 0x2e62b9ca, - 0x6c216eaa, 0x2e5a1070, 0x6c2a87b6, 0x2e51654c, - 0x6c339f0e, 0x2e48b860, 0x6c3cb4b1, 0x2e4009aa, - 0x6c45c8a0, 0x2e37592c, 0x6c4edada, 0x2e2ea6e6, - 0x6c57eb5e, 0x2e25f2d8, 0x6c60fa2d, 0x2e1d3d03, - 0x6c6a0746, 0x2e148566, 0x6c7312a9, 0x2e0bcc03, - 0x6c7c1c55, 0x2e0310d9, 0x6c85244a, 0x2dfa53e9, - 0x6c8e2a87, 0x2df19534, 0x6c972f0d, 0x2de8d4b8, - 0x6ca031da, 0x2de01278, 0x6ca932ef, 0x2dd74e73, - 0x6cb2324c, 0x2dce88aa, 0x6cbb2fef, 0x2dc5c11c, - 0x6cc42bd9, 0x2dbcf7cb, 0x6ccd2609, 0x2db42cb6, - 0x6cd61e7f, 0x2dab5fdf, 0x6cdf153a, 0x2da29144, - 0x6ce80a3a, 0x2d99c0e7, 0x6cf0fd80, 0x2d90eec8, - 0x6cf9ef09, 0x2d881ae8, 0x6d02ded7, 0x2d7f4545, - 0x6d0bcce8, 0x2d766de2, 0x6d14b93d, 0x2d6d94bf, - 0x6d1da3d5, 0x2d64b9da, 0x6d268cb0, 0x2d5bdd36, - 0x6d2f73cd, 0x2d52fed2, 0x6d38592c, 0x2d4a1eaf, - 0x6d413ccd, 0x2d413ccd, 0x6d4a1eaf, 0x2d38592c, - 0x6d52fed2, 0x2d2f73cd, 0x6d5bdd36, 0x2d268cb0, - 0x6d64b9da, 0x2d1da3d5, 0x6d6d94bf, 0x2d14b93d, - 0x6d766de2, 0x2d0bcce8, 0x6d7f4545, 0x2d02ded7, - 0x6d881ae8, 0x2cf9ef09, 0x6d90eec8, 0x2cf0fd80, - 0x6d99c0e7, 0x2ce80a3a, 0x6da29144, 0x2cdf153a, - 0x6dab5fdf, 0x2cd61e7f, 0x6db42cb6, 0x2ccd2609, - 0x6dbcf7cb, 0x2cc42bd9, 0x6dc5c11c, 0x2cbb2fef, - 0x6dce88aa, 0x2cb2324c, 0x6dd74e73, 0x2ca932ef, - 0x6de01278, 0x2ca031da, 0x6de8d4b8, 0x2c972f0d, - 0x6df19534, 0x2c8e2a87, 0x6dfa53e9, 0x2c85244a, - 0x6e0310d9, 0x2c7c1c55, 0x6e0bcc03, 0x2c7312a9, - 0x6e148566, 0x2c6a0746, 0x6e1d3d03, 0x2c60fa2d, - 0x6e25f2d8, 0x2c57eb5e, 0x6e2ea6e6, 0x2c4edada, - 0x6e37592c, 0x2c45c8a0, 0x6e4009aa, 0x2c3cb4b1, - 0x6e48b860, 0x2c339f0e, 0x6e51654c, 0x2c2a87b6, - 0x6e5a1070, 0x2c216eaa, 0x6e62b9ca, 0x2c1853eb, - 0x6e6b615a, 0x2c0f3779, 0x6e740720, 0x2c061953, - 0x6e7cab1c, 0x2bfcf97c, 0x6e854d4d, 0x2bf3d7f2, - 0x6e8dedb3, 0x2beab4b6, 0x6e968c4d, 0x2be18fc9, - 0x6e9f291b, 0x2bd8692b, 0x6ea7c41e, 0x2bcf40dc, - 0x6eb05d53, 0x2bc616dd, 0x6eb8f4bc, 0x2bbceb2d, - 0x6ec18a58, 0x2bb3bdce, 0x6eca1e27, 0x2baa8ec0, - 0x6ed2b027, 0x2ba15e03, 0x6edb405a, 0x2b982b97, - 0x6ee3cebe, 0x2b8ef77d, 0x6eec5b53, 0x2b85c1b5, - 0x6ef4e619, 0x2b7c8a3f, 0x6efd6f10, 0x2b73511c, - 0x6f05f637, 0x2b6a164d, 0x6f0e7b8e, 0x2b60d9d0, - 0x6f16ff14, 0x2b579ba8, 0x6f1f80ca, 0x2b4e5bd4, - 0x6f2800af, 0x2b451a55, 0x6f307ec2, 0x2b3bd72a, - 0x6f38fb03, 0x2b329255, 0x6f417573, 0x2b294bd5, - 0x6f49ee0f, 0x2b2003ac, 0x6f5264da, 0x2b16b9d9, - 0x6f5ad9d1, 0x2b0d6e5c, 0x6f634cf5, 0x2b042137, - 0x6f6bbe45, 0x2afad269, 0x6f742dc1, 0x2af181f3, - 0x6f7c9b69, 0x2ae82fd5, 0x6f85073c, 0x2adedc10, - 0x6f8d713a, 0x2ad586a3, 0x6f95d963, 0x2acc2f90, - 0x6f9e3fb6, 0x2ac2d6d6, 0x6fa6a433, 0x2ab97c77, - 0x6faf06da, 0x2ab02071, 0x6fb767aa, 0x2aa6c2c6, - 0x6fbfc6a3, 0x2a9d6377, 0x6fc823c5, 0x2a940283, - 0x6fd07f0f, 0x2a8a9fea, 0x6fd8d882, 0x2a813bae, - 0x6fe1301c, 0x2a77d5ce, 0x6fe985de, 0x2a6e6e4b, - 0x6ff1d9c7, 0x2a650525, 0x6ffa2bd6, 0x2a5b9a5d, - 0x70027c0c, 0x2a522df3, 0x700aca69, 0x2a48bfe7, - 0x701316eb, 0x2a3f503a, 0x701b6193, 0x2a35deeb, - 0x7023aa5f, 0x2a2c6bfd, 0x702bf151, 0x2a22f76e, - 0x70343667, 0x2a19813f, 0x703c79a2, 0x2a100970, - 0x7044bb00, 0x2a069003, 0x704cfa83, 0x29fd14f6, - 0x70553828, 0x29f3984c, 0x705d73f0, 0x29ea1a03, - 0x7065addb, 0x29e09a1c, 0x706de5e9, 0x29d71899, - 0x70761c18, 0x29cd9578, 0x707e5069, 0x29c410ba, - 0x708682dc, 0x29ba8a61, 0x708eb36f, 0x29b1026c, - 0x7096e223, 0x29a778db, 0x709f0ef8, 0x299dedaf, - 0x70a739ed, 0x299460e8, 0x70af6302, 0x298ad287, - 0x70b78a36, 0x2981428c, 0x70bfaf89, 0x2977b0f7, - 0x70c7d2fb, 0x296e1dc9, 0x70cff48c, 0x29648902, - 0x70d8143b, 0x295af2a3, 0x70e03208, 0x29515aab, - 0x70e84df3, 0x2947c11c, 0x70f067fb, 0x293e25f5, - 0x70f8801f, 0x29348937, 0x71009661, 0x292aeae3, - 0x7108aabf, 0x29214af8, 0x7110bd39, 0x2917a977, - 0x7118cdcf, 0x290e0661, 0x7120dc80, 0x290461b5, - 0x7128e94c, 0x28fabb75, 0x7130f433, 0x28f113a0, - 0x7138fd35, 0x28e76a37, 0x71410450, 0x28ddbf3b, - 0x71490986, 0x28d412ab, 0x71510cd5, 0x28ca6488, - 0x71590e3e, 0x28c0b4d2, 0x71610dbf, 0x28b7038b, - 0x71690b59, 0x28ad50b1, 0x7171070c, 0x28a39c46, - 0x717900d6, 0x2899e64a, 0x7180f8b8, 0x28902ebd, - 0x7188eeb2, 0x288675a0, 0x7190e2c3, 0x287cbaf3, - 0x7198d4ea, 0x2872feb6, 0x71a0c528, 0x286940ea, - 0x71a8b37c, 0x285f8190, 0x71b09fe7, 0x2855c0a6, - 0x71b88a66, 0x284bfe2f, 0x71c072fb, 0x28423a2a, - 0x71c859a5, 0x28387498, 0x71d03e64, 0x282ead78, - 0x71d82137, 0x2824e4cc, 0x71e0021e, 0x281b1a94, - 0x71e7e118, 0x28114ed0, 0x71efbe27, 0x28078181, - 0x71f79948, 0x27fdb2a7, 0x71ff727c, 0x27f3e241, - 0x720749c3, 0x27ea1052, 0x720f1f1c, 0x27e03cd8, - 0x7216f287, 0x27d667d5, 0x721ec403, 0x27cc9149, - 0x72269391, 0x27c2b934, 0x722e6130, 0x27b8df97, - 0x72362ce0, 0x27af0472, 0x723df6a0, 0x27a527c4, - 0x7245be70, 0x279b4990, 0x724d8450, 0x279169d5, - 0x72554840, 0x27878893, 0x725d0a3e, 0x277da5cb, - 0x7264ca4c, 0x2773c17d, 0x726c8868, 0x2769dbaa, - 0x72744493, 0x275ff452, 0x727bfecc, 0x27560b76, - 0x7283b712, 0x274c2115, 0x728b6d66, 0x27423530, - 0x729321c7, 0x273847c8, 0x729ad435, 0x272e58dc, - 0x72a284b0, 0x2724686e, 0x72aa3336, 0x271a767e, - 0x72b1dfc9, 0x2710830c, 0x72b98a67, 0x27068e18, - 0x72c13311, 0x26fc97a3, 0x72c8d9c6, 0x26f29fad, - 0x72d07e85, 0x26e8a637, 0x72d82150, 0x26deab41, - 0x72dfc224, 0x26d4aecb, 0x72e76102, 0x26cab0d6, - 0x72eefdea, 0x26c0b162, 0x72f698db, 0x26b6b070, - 0x72fe31d5, 0x26acadff, 0x7305c8d7, 0x26a2aa11, - 0x730d5de3, 0x2698a4a6, 0x7314f0f6, 0x268e9dbd, - 0x731c8211, 0x26849558, 0x73241134, 0x267a8b77, - 0x732b9e5e, 0x2670801a, 0x7333298f, 0x26667342, - 0x733ab2c6, 0x265c64ef, 0x73423a04, 0x26525521, - 0x7349bf48, 0x264843d9, 0x73514292, 0x263e3117, - 0x7358c3e2, 0x26341cdb, 0x73604336, 0x262a0727, - 0x7367c090, 0x261feffa, 0x736f3bee, 0x2615d754, - 0x7376b551, 0x260bbd37, 0x737e2cb7, 0x2601a1a2, - 0x7385a222, 0x25f78497, 0x738d1590, 0x25ed6614, - 0x73948701, 0x25e3461b, 0x739bf675, 0x25d924ac, - 0x73a363ec, 0x25cf01c8, 0x73aacf65, 0x25c4dd6e, - 0x73b238e0, 0x25bab7a0, 0x73b9a05d, 0x25b0905d, - 0x73c105db, 0x25a667a7, 0x73c8695b, 0x259c3d7c, - 0x73cfcadc, 0x259211df, 0x73d72a5d, 0x2587e4cf, - 0x73de87de, 0x257db64c, 0x73e5e360, 0x25738657, - 0x73ed3ce1, 0x256954f1, 0x73f49462, 0x255f2219, - 0x73fbe9e2, 0x2554edd1, 0x74033d61, 0x254ab818, - 0x740a8edf, 0x254080ef, 0x7411de5b, 0x25364857, - 0x74192bd5, 0x252c0e4f, 0x7420774d, 0x2521d2d8, - 0x7427c0c3, 0x251795f3, 0x742f0836, 0x250d57a0, - 0x74364da6, 0x250317df, 0x743d9112, 0x24f8d6b0, - 0x7444d27b, 0x24ee9415, 0x744c11e0, 0x24e4500e, - 0x74534f41, 0x24da0a9a, 0x745a8a9d, 0x24cfc3ba, - 0x7461c3f5, 0x24c57b6f, 0x7468fb47, 0x24bb31ba, - 0x74703095, 0x24b0e699, 0x747763dd, 0x24a69a0f, - 0x747e951f, 0x249c4c1b, 0x7485c45b, 0x2491fcbe, - 0x748cf190, 0x2487abf7, 0x74941cbf, 0x247d59c8, - 0x749b45e7, 0x24730631, 0x74a26d08, 0x2468b132, - 0x74a99221, 0x245e5acc, 0x74b0b533, 0x245402ff, - 0x74b7d63c, 0x2449a9cc, 0x74bef53d, 0x243f4f32, - 0x74c61236, 0x2434f332, 0x74cd2d26, 0x242a95ce, - 0x74d4460c, 0x24203704, 0x74db5cea, 0x2415d6d5, - 0x74e271bd, 0x240b7543, 0x74e98487, 0x2401124d, - 0x74f09546, 0x23f6adf3, 0x74f7a3fb, 0x23ec4837, - 0x74feb0a5, 0x23e1e117, 0x7505bb44, 0x23d77896, - 0x750cc3d8, 0x23cd0eb3, 0x7513ca60, 0x23c2a36f, - 0x751acedd, 0x23b836ca, 0x7521d14d, 0x23adc8c4, - 0x7528d1b1, 0x23a3595e, 0x752fd008, 0x2398e898, - 0x7536cc52, 0x238e7673, 0x753dc68f, 0x238402ef, - 0x7544bebf, 0x23798e0d, 0x754bb4e1, 0x236f17cc, - 0x7552a8f4, 0x2364a02e, 0x75599afa, 0x235a2733, - 0x75608af1, 0x234facda, 0x756778d9, 0x23453125, - 0x756e64b2, 0x233ab414, 0x75754e7c, 0x233035a7, - 0x757c3636, 0x2325b5df, 0x75831be0, 0x231b34bc, - 0x7589ff7a, 0x2310b23e, 0x7590e104, 0x23062e67, - 0x7597c07d, 0x22fba936, 0x759e9de5, 0x22f122ab, - 0x75a5793c, 0x22e69ac8, 0x75ac5282, 0x22dc118c, - 0x75b329b5, 0x22d186f8, 0x75b9fed7, 0x22c6fb0c, - 0x75c0d1e7, 0x22bc6dca, 0x75c7a2e3, 0x22b1df30, - 0x75ce71ce, 0x22a74f40, 0x75d53ea5, 0x229cbdfa, - 0x75dc0968, 0x22922b5e, 0x75e2d219, 0x2287976e, - 0x75e998b5, 0x227d0228, 0x75f05d3d, 0x22726b8e, - 0x75f71fb1, 0x2267d3a0, 0x75fde011, 0x225d3a5e, - 0x76049e5b, 0x22529fca, 0x760b5a90, 0x224803e2, - 0x761214b0, 0x223d66a8, 0x7618ccba, 0x2232c81c, - 0x761f82af, 0x2228283f, 0x7626368d, 0x221d8711, - 0x762ce855, 0x2212e492, 0x76339806, 0x220840c2, - 0x763a45a0, 0x21fd9ba3, 0x7640f123, 0x21f2f534, - 0x76479a8e, 0x21e84d76, 0x764e41e2, 0x21dda46a, - 0x7654e71d, 0x21d2fa0f, 0x765b8a41, 0x21c84e67, - 0x76622b4c, 0x21bda171, 0x7668ca3e, 0x21b2f32e, - 0x766f6717, 0x21a8439e, 0x767601d7, 0x219d92c2, - 0x767c9a7e, 0x2192e09b, 0x7683310b, 0x21882d28, - 0x7689c57d, 0x217d786a, 0x769057d6, 0x2172c262, - 0x7696e814, 0x21680b0f, 0x769d7637, 0x215d5273, - 0x76a4023f, 0x2152988d, 0x76aa8c2c, 0x2147dd5f, - 0x76b113fd, 0x213d20e8, 0x76b799b3, 0x21326329, - 0x76be1d4c, 0x2127a423, 0x76c49ec9, 0x211ce3d5, - 0x76cb1e2a, 0x21122240, 0x76d19b6e, 0x21075f65, - 0x76d81695, 0x20fc9b44, 0x76de8f9e, 0x20f1d5de, - 0x76e5068a, 0x20e70f32, 0x76eb7b58, 0x20dc4742, - 0x76f1ee09, 0x20d17e0d, 0x76f85e9a, 0x20c6b395, - 0x76fecd0e, 0x20bbe7d8, 0x77053962, 0x20b11ad9, - 0x770ba398, 0x20a64c97, 0x77120bae, 0x209b7d13, - 0x771871a5, 0x2090ac4d, 0x771ed57c, 0x2085da46, - 0x77253733, 0x207b06fe, 0x772b96ca, 0x20703275, - 0x7731f440, 0x20655cac, 0x77384f95, 0x205a85a3, - 0x773ea8ca, 0x204fad5b, 0x7744ffdd, 0x2044d3d4, - 0x774b54ce, 0x2039f90f, 0x7751a79e, 0x202f1d0b, - 0x7757f84c, 0x20243fca, 0x775e46d8, 0x2019614c, - 0x77649341, 0x200e8190, 0x776add88, 0x2003a099, - 0x777125ac, 0x1ff8be65, 0x77776bac, 0x1feddaf6, - 0x777daf89, 0x1fe2f64c, 0x7783f143, 0x1fd81067, - 0x778a30d8, 0x1fcd2948, 0x77906e49, 0x1fc240ef, - 0x7796a996, 0x1fb7575c, 0x779ce2be, 0x1fac6c91, - 0x77a319c2, 0x1fa1808c, 0x77a94ea0, 0x1f969350, - 0x77af8159, 0x1f8ba4dc, 0x77b5b1ec, 0x1f80b531, - 0x77bbe05a, 0x1f75c44e, 0x77c20ca1, 0x1f6ad235, - 0x77c836c2, 0x1f5fdee6, 0x77ce5ebd, 0x1f54ea62, - 0x77d48490, 0x1f49f4a8, 0x77daa83d, 0x1f3efdb9, - 0x77e0c9c3, 0x1f340596, 0x77e6e921, 0x1f290c3f, - 0x77ed0657, 0x1f1e11b5, 0x77f32165, 0x1f1315f7, - 0x77f93a4b, 0x1f081907, 0x77ff5109, 0x1efd1ae4, - 0x7805659e, 0x1ef21b90, 0x780b780a, 0x1ee71b0a, - 0x7811884d, 0x1edc1953, 0x78179666, 0x1ed1166b, - 0x781da256, 0x1ec61254, 0x7823ac1d, 0x1ebb0d0d, - 0x7829b3b9, 0x1eb00696, 0x782fb92a, 0x1ea4fef0, - 0x7835bc71, 0x1e99f61d, 0x783bbd8e, 0x1e8eec1b, - 0x7841bc7f, 0x1e83e0eb, 0x7847b946, 0x1e78d48e, - 0x784db3e0, 0x1e6dc705, 0x7853ac4f, 0x1e62b84f, - 0x7859a292, 0x1e57a86d, 0x785f96a9, 0x1e4c9760, - 0x78658894, 0x1e418528, 0x786b7852, 0x1e3671c5, - 0x787165e3, 0x1e2b5d38, 0x78775147, 0x1e204781, - 0x787d3a7e, 0x1e1530a1, 0x78832187, 0x1e0a1898, - 0x78890663, 0x1dfeff67, 0x788ee910, 0x1df3e50d, - 0x7894c98f, 0x1de8c98c, 0x789aa7e0, 0x1dddace4, - 0x78a08402, 0x1dd28f15, 0x78a65df6, 0x1dc7701f, - 0x78ac35ba, 0x1dbc5004, 0x78b20b4f, 0x1db12ec3, - 0x78b7deb4, 0x1da60c5d, 0x78bdafea, 0x1d9ae8d2, - 0x78c37eef, 0x1d8fc424, 0x78c94bc4, 0x1d849e51, - 0x78cf1669, 0x1d79775c, 0x78d4dedd, 0x1d6e4f43, - 0x78daa520, 0x1d632608, 0x78e06932, 0x1d57fbaa, - 0x78e62b13, 0x1d4cd02c, 0x78ebeac2, 0x1d41a38c, - 0x78f1a840, 0x1d3675cb, 0x78f7638b, 0x1d2b46ea, - 0x78fd1ca4, 0x1d2016e9, 0x7902d38b, 0x1d14e5c9, - 0x7908883f, 0x1d09b389, 0x790e3ac0, 0x1cfe802b, - 0x7913eb0e, 0x1cf34baf, 0x79199929, 0x1ce81615, - 0x791f4510, 0x1cdcdf5e, 0x7924eec3, 0x1cd1a78a, - 0x792a9642, 0x1cc66e99, 0x79303b8e, 0x1cbb348d, - 0x7935dea4, 0x1caff965, 0x793b7f86, 0x1ca4bd21, - 0x79411e33, 0x1c997fc4, 0x7946baac, 0x1c8e414b, - 0x794c54ee, 0x1c8301b9, 0x7951ecfc, 0x1c77c10e, - 0x795782d3, 0x1c6c7f4a, 0x795d1675, 0x1c613c6d, - 0x7962a7e0, 0x1c55f878, 0x79683715, 0x1c4ab36b, - 0x796dc414, 0x1c3f6d47, 0x79734edc, 0x1c34260c, - 0x7978d76c, 0x1c28ddbb, 0x797e5dc6, 0x1c1d9454, - 0x7983e1e8, 0x1c1249d8, 0x798963d2, 0x1c06fe46, - 0x798ee385, 0x1bfbb1a0, 0x799460ff, 0x1bf063e6, - 0x7999dc42, 0x1be51518, 0x799f554b, 0x1bd9c537, - 0x79a4cc1c, 0x1bce7442, 0x79aa40b4, 0x1bc3223c, - 0x79afb313, 0x1bb7cf23, 0x79b52339, 0x1bac7af9, - 0x79ba9125, 0x1ba125bd, 0x79bffcd7, 0x1b95cf71, - 0x79c5664f, 0x1b8a7815, 0x79cacd8d, 0x1b7f1fa9, - 0x79d03291, 0x1b73c62d, 0x79d5955a, 0x1b686ba3, - 0x79daf5e8, 0x1b5d100a, 0x79e0543c, 0x1b51b363, - 0x79e5b054, 0x1b4655ae, 0x79eb0a31, 0x1b3af6ec, - 0x79f061d2, 0x1b2f971e, 0x79f5b737, 0x1b243643, - 0x79fb0a60, 0x1b18d45c, 0x7a005b4d, 0x1b0d716a, - 0x7a05a9fd, 0x1b020d6c, 0x7a0af671, 0x1af6a865, - 0x7a1040a8, 0x1aeb4253, 0x7a1588a2, 0x1adfdb37, - 0x7a1ace5f, 0x1ad47312, 0x7a2011de, 0x1ac909e5, - 0x7a25531f, 0x1abd9faf, 0x7a2a9223, 0x1ab23471, - 0x7a2fcee8, 0x1aa6c82b, 0x7a350970, 0x1a9b5adf, - 0x7a3a41b9, 0x1a8fec8c, 0x7a3f77c3, 0x1a847d33, - 0x7a44ab8e, 0x1a790cd4, 0x7a49dd1a, 0x1a6d9b70, - 0x7a4f0c67, 0x1a622907, 0x7a543974, 0x1a56b599, - 0x7a596442, 0x1a4b4128, 0x7a5e8cd0, 0x1a3fcbb3, - 0x7a63b31d, 0x1a34553b, 0x7a68d72b, 0x1a28ddc0, - 0x7a6df8f8, 0x1a1d6544, 0x7a731884, 0x1a11ebc5, - 0x7a7835cf, 0x1a067145, 0x7a7d50da, 0x19faf5c5, - 0x7a8269a3, 0x19ef7944, 0x7a87802a, 0x19e3fbc3, - 0x7a8c9470, 0x19d87d42, 0x7a91a674, 0x19ccfdc2, - 0x7a96b636, 0x19c17d44, 0x7a9bc3b6, 0x19b5fbc8, - 0x7aa0cef3, 0x19aa794d, 0x7aa5d7ee, 0x199ef5d6, - 0x7aaadea6, 0x19937161, 0x7aafe31b, 0x1987ebf0, - 0x7ab4e54c, 0x197c6584, 0x7ab9e53a, 0x1970de1b, - 0x7abee2e5, 0x196555b8, 0x7ac3de4c, 0x1959cc5a, - 0x7ac8d76f, 0x194e4201, 0x7acdce4d, 0x1942b6af, - 0x7ad2c2e8, 0x19372a64, 0x7ad7b53d, 0x192b9d1f, - 0x7adca54e, 0x19200ee3, 0x7ae1931a, 0x19147fae, - 0x7ae67ea1, 0x1908ef82, 0x7aeb67e3, 0x18fd5e5f, - 0x7af04edf, 0x18f1cc45, 0x7af53395, 0x18e63935, - 0x7afa1605, 0x18daa52f, 0x7afef630, 0x18cf1034, - 0x7b03d414, 0x18c37a44, 0x7b08afb2, 0x18b7e35f, - 0x7b0d8909, 0x18ac4b87, 0x7b126019, 0x18a0b2bb, - 0x7b1734e2, 0x189518fc, 0x7b1c0764, 0x18897e4a, - 0x7b20d79e, 0x187de2a7, 0x7b25a591, 0x18724611, - 0x7b2a713d, 0x1866a88a, 0x7b2f3aa0, 0x185b0a13, - 0x7b3401bb, 0x184f6aab, 0x7b38c68e, 0x1843ca53, - 0x7b3d8918, 0x1838290c, 0x7b42495a, 0x182c86d5, - 0x7b470753, 0x1820e3b0, 0x7b4bc303, 0x18153f9d, - 0x7b507c69, 0x18099a9c, 0x7b553386, 0x17fdf4ae, - 0x7b59e85a, 0x17f24dd3, 0x7b5e9ae4, 0x17e6a60c, - 0x7b634b23, 0x17dafd59, 0x7b67f919, 0x17cf53bb, - 0x7b6ca4c4, 0x17c3a931, 0x7b714e25, 0x17b7fdbd, - 0x7b75f53c, 0x17ac515f, 0x7b7a9a07, 0x17a0a417, - 0x7b7f3c87, 0x1794f5e6, 0x7b83dcbc, 0x178946cc, - 0x7b887aa6, 0x177d96ca, 0x7b8d1644, 0x1771e5e0, - 0x7b91af97, 0x1766340f, 0x7b96469d, 0x175a8157, - 0x7b9adb57, 0x174ecdb8, 0x7b9f6dc5, 0x17431933, - 0x7ba3fde7, 0x173763c9, 0x7ba88bbc, 0x172bad7a, - 0x7bad1744, 0x171ff646, 0x7bb1a080, 0x17143e2d, - 0x7bb6276e, 0x17088531, 0x7bbaac0e, 0x16fccb51, - 0x7bbf2e62, 0x16f1108f, 0x7bc3ae67, 0x16e554ea, - 0x7bc82c1f, 0x16d99864, 0x7bcca789, 0x16cddafb, - 0x7bd120a4, 0x16c21cb2, 0x7bd59771, 0x16b65d88, - 0x7bda0bf0, 0x16aa9d7e, 0x7bde7e20, 0x169edc94, - 0x7be2ee01, 0x16931acb, 0x7be75b93, 0x16875823, - 0x7bebc6d5, 0x167b949d, 0x7bf02fc9, 0x166fd039, - 0x7bf4966c, 0x16640af7, 0x7bf8fac0, 0x165844d8, - 0x7bfd5cc4, 0x164c7ddd, 0x7c01bc78, 0x1640b606, - 0x7c0619dc, 0x1634ed53, 0x7c0a74f0, 0x162923c5, - 0x7c0ecdb2, 0x161d595d, 0x7c132424, 0x16118e1a, - 0x7c177845, 0x1605c1fd, 0x7c1bca16, 0x15f9f507, - 0x7c201994, 0x15ee2738, 0x7c2466c2, 0x15e25890, - 0x7c28b19e, 0x15d68911, 0x7c2cfa28, 0x15cab8ba, - 0x7c314060, 0x15bee78c, 0x7c358446, 0x15b31587, - 0x7c39c5da, 0x15a742ac, 0x7c3e051b, 0x159b6efb, - 0x7c42420a, 0x158f9a76, 0x7c467ca6, 0x1583c51b, - 0x7c4ab4ef, 0x1577eeec, 0x7c4eeae5, 0x156c17e9, - 0x7c531e88, 0x15604013, 0x7c574fd8, 0x1554676a, - 0x7c5b7ed4, 0x15488dee, 0x7c5fab7c, 0x153cb3a0, - 0x7c63d5d1, 0x1530d881, 0x7c67fdd1, 0x1524fc90, - 0x7c6c237e, 0x15191fcf, 0x7c7046d6, 0x150d423d, - 0x7c7467d9, 0x150163dc, 0x7c788688, 0x14f584ac, - 0x7c7ca2e2, 0x14e9a4ac, 0x7c80bce7, 0x14ddc3de, - 0x7c84d496, 0x14d1e242, 0x7c88e9f1, 0x14c5ffd9, - 0x7c8cfcf6, 0x14ba1ca3, 0x7c910da5, 0x14ae38a0, - 0x7c951bff, 0x14a253d1, 0x7c992803, 0x14966e36, - 0x7c9d31b0, 0x148a87d1, 0x7ca13908, 0x147ea0a0, - 0x7ca53e09, 0x1472b8a5, 0x7ca940b3, 0x1466cfe1, - 0x7cad4107, 0x145ae653, 0x7cb13f04, 0x144efbfc, - 0x7cb53aaa, 0x144310dd, 0x7cb933f9, 0x143724f5, - 0x7cbd2af0, 0x142b3846, 0x7cc11f90, 0x141f4ad1, - 0x7cc511d9, 0x14135c94, 0x7cc901c9, 0x14076d91, - 0x7cccef62, 0x13fb7dc9, 0x7cd0daa2, 0x13ef8d3c, - 0x7cd4c38b, 0x13e39be9, 0x7cd8aa1b, 0x13d7a9d3, - 0x7cdc8e52, 0x13cbb6f8, 0x7ce07031, 0x13bfc35b, - 0x7ce44fb7, 0x13b3cefa, 0x7ce82ce4, 0x13a7d9d7, - 0x7cec07b8, 0x139be3f2, 0x7cefe032, 0x138fed4b, - 0x7cf3b653, 0x1383f5e3, 0x7cf78a1b, 0x1377fdbb, - 0x7cfb5b89, 0x136c04d2, 0x7cff2a9d, 0x13600b2a, - 0x7d02f757, 0x135410c3, 0x7d06c1b6, 0x1348159d, - 0x7d0a89bc, 0x133c19b8, 0x7d0e4f67, 0x13301d16, - 0x7d1212b7, 0x13241fb6, 0x7d15d3ad, 0x1318219a, - 0x7d199248, 0x130c22c1, 0x7d1d4e88, 0x1300232c, - 0x7d21086c, 0x12f422db, 0x7d24bff6, 0x12e821cf, - 0x7d287523, 0x12dc2009, 0x7d2c27f6, 0x12d01d89, - 0x7d2fd86c, 0x12c41a4f, 0x7d338687, 0x12b8165b, - 0x7d373245, 0x12ac11af, 0x7d3adba7, 0x12a00c4b, - 0x7d3e82ae, 0x1294062f, 0x7d422757, 0x1287ff5b, - 0x7d45c9a4, 0x127bf7d1, 0x7d496994, 0x126fef90, - 0x7d4d0728, 0x1263e699, 0x7d50a25e, 0x1257dced, - 0x7d543b37, 0x124bd28c, 0x7d57d1b3, 0x123fc776, - 0x7d5b65d2, 0x1233bbac, 0x7d5ef793, 0x1227af2e, - 0x7d6286f6, 0x121ba1fd, 0x7d6613fb, 0x120f941a, - 0x7d699ea3, 0x12038584, 0x7d6d26ec, 0x11f7763c, - 0x7d70acd7, 0x11eb6643, 0x7d743064, 0x11df5599, - 0x7d77b192, 0x11d3443f, 0x7d7b3061, 0x11c73235, - 0x7d7eacd2, 0x11bb1f7c, 0x7d8226e4, 0x11af0c13, - 0x7d859e96, 0x11a2f7fc, 0x7d8913ea, 0x1196e337, - 0x7d8c86de, 0x118acdc4, 0x7d8ff772, 0x117eb7a4, - 0x7d9365a8, 0x1172a0d7, 0x7d96d17d, 0x1166895f, - 0x7d9a3af2, 0x115a713a, 0x7d9da208, 0x114e586a, - 0x7da106bd, 0x11423ef0, 0x7da46912, 0x113624cb, - 0x7da7c907, 0x112a09fc, 0x7dab269b, 0x111dee84, - 0x7dae81cf, 0x1111d263, 0x7db1daa2, 0x1105b599, - 0x7db53113, 0x10f99827, 0x7db88524, 0x10ed7a0e, - 0x7dbbd6d4, 0x10e15b4e, 0x7dbf2622, 0x10d53be7, - 0x7dc2730f, 0x10c91bda, 0x7dc5bd9b, 0x10bcfb28, - 0x7dc905c5, 0x10b0d9d0, 0x7dcc4b8d, 0x10a4b7d3, - 0x7dcf8ef3, 0x10989532, 0x7dd2cff7, 0x108c71ee, - 0x7dd60e99, 0x10804e06, 0x7dd94ad8, 0x1074297b, - 0x7ddc84b5, 0x1068044e, 0x7ddfbc30, 0x105bde7f, - 0x7de2f148, 0x104fb80e, 0x7de623fd, 0x104390fd, - 0x7de9544f, 0x1037694b, 0x7dec823e, 0x102b40f8, - 0x7defadca, 0x101f1807, 0x7df2d6f3, 0x1012ee76, - 0x7df5fdb8, 0x1006c446, 0x7df9221a, 0xffa9979, - 0x7dfc4418, 0xfee6e0d, 0x7dff63b2, 0xfe24205, - 0x7e0280e9, 0xfd6155f, 0x7e059bbb, 0xfc9e81e, - 0x7e08b42a, 0xfbdba40, 0x7e0bca34, 0xfb18bc8, - 0x7e0eddd9, 0xfa55cb4, 0x7e11ef1b, 0xf992d06, - 0x7e14fdf7, 0xf8cfcbe, 0x7e180a6f, 0xf80cbdc, - 0x7e1b1482, 0xf749a61, 0x7e1e1c30, 0xf68684e, - 0x7e212179, 0xf5c35a3, 0x7e24245d, 0xf500260, - 0x7e2724db, 0xf43ce86, 0x7e2a22f4, 0xf379a16, - 0x7e2d1ea8, 0xf2b650f, 0x7e3017f6, 0xf1f2f73, - 0x7e330ede, 0xf12f941, 0x7e360360, 0xf06c27a, - 0x7e38f57c, 0xefa8b20, 0x7e3be532, 0xeee5331, - 0x7e3ed282, 0xee21aaf, 0x7e41bd6c, 0xed5e19a, - 0x7e44a5ef, 0xec9a7f3, 0x7e478c0b, 0xebd6db9, - 0x7e4a6fc1, 0xeb132ef, 0x7e4d5110, 0xea4f793, - 0x7e502ff9, 0xe98bba7, 0x7e530c7a, 0xe8c7f2a, - 0x7e55e694, 0xe80421e, 0x7e58be47, 0xe740483, - 0x7e5b9392, 0xe67c65a, 0x7e5e6676, 0xe5b87a2, - 0x7e6136f3, 0xe4f485c, 0x7e640507, 0xe430889, - 0x7e66d0b4, 0xe36c82a, 0x7e6999fa, 0xe2a873e, - 0x7e6c60d7, 0xe1e45c6, 0x7e6f254c, 0xe1203c3, - 0x7e71e759, 0xe05c135, 0x7e74a6fd, 0xdf97e1d, - 0x7e77643a, 0xded3a7b, 0x7e7a1f0d, 0xde0f64f, - 0x7e7cd778, 0xdd4b19a, 0x7e7f8d7b, 0xdc86c5d, - 0x7e824114, 0xdbc2698, 0x7e84f245, 0xdafe04b, - 0x7e87a10c, 0xda39978, 0x7e8a4d6a, 0xd97521d, - 0x7e8cf75f, 0xd8b0a3d, 0x7e8f9eeb, 0xd7ec1d6, - 0x7e92440d, 0xd7278eb, 0x7e94e6c6, 0xd662f7b, - 0x7e978715, 0xd59e586, 0x7e9a24fb, 0xd4d9b0e, - 0x7e9cc076, 0xd415013, 0x7e9f5988, 0xd350495, - 0x7ea1f02f, 0xd28b894, 0x7ea4846c, 0xd1c6c11, - 0x7ea7163f, 0xd101f0e, 0x7ea9a5a8, 0xd03d189, - 0x7eac32a6, 0xcf78383, 0x7eaebd3a, 0xceb34fe, - 0x7eb14563, 0xcdee5f9, 0x7eb3cb21, 0xcd29676, - 0x7eb64e75, 0xcc64673, 0x7eb8cf5d, 0xcb9f5f3, - 0x7ebb4ddb, 0xcada4f5, 0x7ebdc9ed, 0xca1537a, - 0x7ec04394, 0xc950182, 0x7ec2bad0, 0xc88af0e, - 0x7ec52fa0, 0xc7c5c1e, 0x7ec7a205, 0xc7008b3, - 0x7eca11fe, 0xc63b4ce, 0x7ecc7f8b, 0xc57606e, - 0x7eceeaad, 0xc4b0b94, 0x7ed15363, 0xc3eb641, - 0x7ed3b9ad, 0xc326075, 0x7ed61d8a, 0xc260a31, - 0x7ed87efc, 0xc19b374, 0x7edade01, 0xc0d5c41, - 0x7edd3a9a, 0xc010496, 0x7edf94c7, 0xbf4ac75, - 0x7ee1ec87, 0xbe853de, 0x7ee441da, 0xbdbfad1, - 0x7ee694c1, 0xbcfa150, 0x7ee8e53a, 0xbc34759, - 0x7eeb3347, 0xbb6ecef, 0x7eed7ee7, 0xbaa9211, - 0x7eefc81a, 0xb9e36c0, 0x7ef20ee0, 0xb91dafc, - 0x7ef45338, 0xb857ec7, 0x7ef69523, 0xb79221f, - 0x7ef8d4a1, 0xb6cc506, 0x7efb11b1, 0xb60677c, - 0x7efd4c54, 0xb540982, 0x7eff8489, 0xb47ab19, - 0x7f01ba50, 0xb3b4c40, 0x7f03eda9, 0xb2eecf8, - 0x7f061e95, 0xb228d42, 0x7f084d12, 0xb162d1d, - 0x7f0a7921, 0xb09cc8c, 0x7f0ca2c2, 0xafd6b8d, - 0x7f0ec9f5, 0xaf10a22, 0x7f10eeb9, 0xae4a84b, - 0x7f13110f, 0xad84609, 0x7f1530f7, 0xacbe35b, - 0x7f174e70, 0xabf8043, 0x7f19697a, 0xab31cc1, - 0x7f1b8215, 0xaa6b8d5, 0x7f1d9842, 0xa9a5480, - 0x7f1fabff, 0xa8defc3, 0x7f21bd4e, 0xa818a9d, - 0x7f23cc2e, 0xa752510, 0x7f25d89e, 0xa68bf1b, - 0x7f27e29f, 0xa5c58c0, 0x7f29ea31, 0xa4ff1fe, - 0x7f2bef53, 0xa438ad7, 0x7f2df206, 0xa37234a, - 0x7f2ff24a, 0xa2abb59, 0x7f31f01d, 0xa1e5303, - 0x7f33eb81, 0xa11ea49, 0x7f35e476, 0xa05812c, - 0x7f37dafa, 0x9f917ac, 0x7f39cf0e, 0x9ecadc9, - 0x7f3bc0b3, 0x9e04385, 0x7f3dafe7, 0x9d3d8df, - 0x7f3f9cab, 0x9c76dd8, 0x7f4186ff, 0x9bb0271, - 0x7f436ee3, 0x9ae96aa, 0x7f455456, 0x9a22a83, - 0x7f473759, 0x995bdfd, 0x7f4917eb, 0x9895118, - 0x7f4af60d, 0x97ce3d5, 0x7f4cd1be, 0x9707635, - 0x7f4eaafe, 0x9640837, 0x7f5081cd, 0x95799dd, - 0x7f52562c, 0x94b2b27, 0x7f54281a, 0x93ebc14, - 0x7f55f796, 0x9324ca7, 0x7f57c4a2, 0x925dcdf, - 0x7f598f3c, 0x9196cbc, 0x7f5b5765, 0x90cfc40, - 0x7f5d1d1d, 0x9008b6a, 0x7f5ee063, 0x8f41a3c, - 0x7f60a138, 0x8e7a8b5, 0x7f625f9b, 0x8db36d6, - 0x7f641b8d, 0x8cec4a0, 0x7f65d50d, 0x8c25213, - 0x7f678c1c, 0x8b5df30, 0x7f6940b8, 0x8a96bf6, - 0x7f6af2e3, 0x89cf867, 0x7f6ca29c, 0x8908483, - 0x7f6e4fe3, 0x884104b, 0x7f6ffab8, 0x8779bbe, - 0x7f71a31b, 0x86b26de, 0x7f73490b, 0x85eb1ab, - 0x7f74ec8a, 0x8523c25, 0x7f768d96, 0x845c64d, - 0x7f782c30, 0x8395024, 0x7f79c857, 0x82cd9a9, - 0x7f7b620c, 0x82062de, 0x7f7cf94e, 0x813ebc2, - 0x7f7e8e1e, 0x8077457, 0x7f80207b, 0x7fafc9c, - 0x7f81b065, 0x7ee8493, 0x7f833ddd, 0x7e20c3b, - 0x7f84c8e2, 0x7d59396, 0x7f865174, 0x7c91aa3, - 0x7f87d792, 0x7bca163, 0x7f895b3e, 0x7b027d7, - 0x7f8adc77, 0x7a3adff, 0x7f8c5b3d, 0x79733dc, - 0x7f8dd78f, 0x78ab96e, 0x7f8f516e, 0x77e3eb5, - 0x7f90c8da, 0x771c3b3, 0x7f923dd2, 0x7654867, - 0x7f93b058, 0x758ccd2, 0x7f952069, 0x74c50f4, - 0x7f968e07, 0x73fd4cf, 0x7f97f932, 0x7335862, - 0x7f9961e8, 0x726dbae, 0x7f9ac82c, 0x71a5eb3, - 0x7f9c2bfb, 0x70de172, 0x7f9d8d56, 0x70163eb, - 0x7f9eec3e, 0x6f4e620, 0x7fa048b2, 0x6e86810, - 0x7fa1a2b2, 0x6dbe9bb, 0x7fa2fa3d, 0x6cf6b23, - 0x7fa44f55, 0x6c2ec48, 0x7fa5a1f9, 0x6b66d29, - 0x7fa6f228, 0x6a9edc9, 0x7fa83fe3, 0x69d6e27, - 0x7fa98b2a, 0x690ee44, 0x7faad3fd, 0x6846e1f, - 0x7fac1a5b, 0x677edbb, 0x7fad5e45, 0x66b6d16, - 0x7fae9fbb, 0x65eec33, 0x7fafdebb, 0x6526b10, - 0x7fb11b48, 0x645e9af, 0x7fb2555f, 0x6396810, - 0x7fb38d02, 0x62ce634, 0x7fb4c231, 0x620641a, - 0x7fb5f4ea, 0x613e1c5, 0x7fb7252f, 0x6075f33, - 0x7fb852ff, 0x5fadc66, 0x7fb97e5a, 0x5ee595d, - 0x7fbaa740, 0x5e1d61b, 0x7fbbcdb1, 0x5d5529e, - 0x7fbcf1ad, 0x5c8cee7, 0x7fbe1334, 0x5bc4af8, - 0x7fbf3246, 0x5afc6d0, 0x7fc04ee3, 0x5a3426f, - 0x7fc1690a, 0x596bdd7, 0x7fc280bc, 0x58a3908, - 0x7fc395f9, 0x57db403, 0x7fc4a8c1, 0x5712ec7, - 0x7fc5b913, 0x564a955, 0x7fc6c6f0, 0x55823ae, - 0x7fc7d258, 0x54b9dd3, 0x7fc8db4a, 0x53f17c3, - 0x7fc9e1c6, 0x532917f, 0x7fcae5cd, 0x5260b08, - 0x7fcbe75e, 0x519845e, 0x7fcce67a, 0x50cfd82, - 0x7fcde320, 0x5007674, 0x7fcedd50, 0x4f3ef35, - 0x7fcfd50b, 0x4e767c5, 0x7fd0ca4f, 0x4dae024, - 0x7fd1bd1e, 0x4ce5854, 0x7fd2ad77, 0x4c1d054, - 0x7fd39b5a, 0x4b54825, 0x7fd486c7, 0x4a8bfc7, - 0x7fd56fbe, 0x49c373c, 0x7fd6563f, 0x48fae83, - 0x7fd73a4a, 0x483259d, 0x7fd81bdf, 0x4769c8b, - 0x7fd8fafe, 0x46a134c, 0x7fd9d7a7, 0x45d89e2, - 0x7fdab1d9, 0x451004d, 0x7fdb8996, 0x444768d, - 0x7fdc5edc, 0x437eca4, 0x7fdd31ac, 0x42b6290, - 0x7fde0205, 0x41ed854, 0x7fdecfe8, 0x4124dee, - 0x7fdf9b55, 0x405c361, 0x7fe0644b, 0x3f938ac, - 0x7fe12acb, 0x3ecadcf, 0x7fe1eed5, 0x3e022cc, - 0x7fe2b067, 0x3d397a3, 0x7fe36f84, 0x3c70c54, - 0x7fe42c2a, 0x3ba80df, 0x7fe4e659, 0x3adf546, - 0x7fe59e12, 0x3a16988, 0x7fe65354, 0x394dda7, - 0x7fe7061f, 0x38851a2, 0x7fe7b674, 0x37bc57b, - 0x7fe86452, 0x36f3931, 0x7fe90fb9, 0x362acc5, - 0x7fe9b8a9, 0x3562038, 0x7fea5f23, 0x3499389, - 0x7feb0326, 0x33d06bb, 0x7feba4b2, 0x33079cc, - 0x7fec43c7, 0x323ecbe, 0x7fece065, 0x3175f91, - 0x7fed7a8c, 0x30ad245, 0x7fee123d, 0x2fe44dc, - 0x7feea776, 0x2f1b755, 0x7fef3a39, 0x2e529b0, - 0x7fefca84, 0x2d89bf0, 0x7ff05858, 0x2cc0e13, - 0x7ff0e3b6, 0x2bf801a, 0x7ff16c9c, 0x2b2f207, - 0x7ff1f30b, 0x2a663d8, 0x7ff27703, 0x299d590, - 0x7ff2f884, 0x28d472e, 0x7ff3778e, 0x280b8b3, - 0x7ff3f420, 0x2742a1f, 0x7ff46e3c, 0x2679b73, - 0x7ff4e5e0, 0x25b0caf, 0x7ff55b0d, 0x24e7dd4, - 0x7ff5cdc3, 0x241eee2, 0x7ff63e01, 0x2355fd9, - 0x7ff6abc8, 0x228d0bb, 0x7ff71718, 0x21c4188, - 0x7ff77ff1, 0x20fb240, 0x7ff7e652, 0x20322e3, - 0x7ff84a3c, 0x1f69373, 0x7ff8abae, 0x1ea03ef, - 0x7ff90aaa, 0x1dd7459, 0x7ff9672d, 0x1d0e4b0, - 0x7ff9c13a, 0x1c454f5, 0x7ffa18cf, 0x1b7c528, - 0x7ffa6dec, 0x1ab354b, 0x7ffac092, 0x19ea55d, - 0x7ffb10c1, 0x192155f, 0x7ffb5e78, 0x1858552, - 0x7ffba9b8, 0x178f536, 0x7ffbf280, 0x16c650b, - 0x7ffc38d1, 0x15fd4d2, 0x7ffc7caa, 0x153448c, - 0x7ffcbe0c, 0x146b438, 0x7ffcfcf6, 0x13a23d8, - 0x7ffd3969, 0x12d936c, 0x7ffd7364, 0x12102f4, - 0x7ffdaae7, 0x1147271, 0x7ffddff3, 0x107e1e3, - 0x7ffe1288, 0xfb514b, 0x7ffe42a4, 0xeec0aa, - 0x7ffe704a, 0xe22fff, 0x7ffe9b77, 0xd59f4c, - 0x7ffec42d, 0xc90e90, 0x7ffeea6c, 0xbc7dcc, - 0x7fff0e32, 0xafed02, 0x7fff2f82, 0xa35c30, - 0x7fff4e59, 0x96cb58, 0x7fff6ab9, 0x8a3a7b, - 0x7fff84a1, 0x7da998, 0x7fff9c12, 0x7118b0, - 0x7fffb10b, 0x6487c4, 0x7fffc38c, 0x57f6d4, - 0x7fffd396, 0x4b65e1, 0x7fffe128, 0x3ed4ea, - 0x7fffec43, 0x3243f1, 0x7ffff4e6, 0x25b2f7, - 0x7ffffb11, 0x1921fb, 0x7ffffec4, 0xc90fe, - 0x7fffffff, 0x0, 0x7ffffec4, 0xfff36f02, - 0x7ffffb11, 0xffe6de05, 0x7ffff4e6, 0xffda4d09, - 0x7fffec43, 0xffcdbc0f, 0x7fffe128, 0xffc12b16, - 0x7fffd396, 0xffb49a1f, 0x7fffc38c, 0xffa8092c, - 0x7fffb10b, 0xff9b783c, 0x7fff9c12, 0xff8ee750, - 0x7fff84a1, 0xff825668, 0x7fff6ab9, 0xff75c585, - 0x7fff4e59, 0xff6934a8, 0x7fff2f82, 0xff5ca3d0, - 0x7fff0e32, 0xff5012fe, 0x7ffeea6c, 0xff438234, - 0x7ffec42d, 0xff36f170, 0x7ffe9b77, 0xff2a60b4, - 0x7ffe704a, 0xff1dd001, 0x7ffe42a4, 0xff113f56, - 0x7ffe1288, 0xff04aeb5, 0x7ffddff3, 0xfef81e1d, - 0x7ffdaae7, 0xfeeb8d8f, 0x7ffd7364, 0xfedefd0c, - 0x7ffd3969, 0xfed26c94, 0x7ffcfcf6, 0xfec5dc28, - 0x7ffcbe0c, 0xfeb94bc8, 0x7ffc7caa, 0xfeacbb74, - 0x7ffc38d1, 0xfea02b2e, 0x7ffbf280, 0xfe939af5, - 0x7ffba9b8, 0xfe870aca, 0x7ffb5e78, 0xfe7a7aae, - 0x7ffb10c1, 0xfe6deaa1, 0x7ffac092, 0xfe615aa3, - 0x7ffa6dec, 0xfe54cab5, 0x7ffa18cf, 0xfe483ad8, - 0x7ff9c13a, 0xfe3bab0b, 0x7ff9672d, 0xfe2f1b50, - 0x7ff90aaa, 0xfe228ba7, 0x7ff8abae, 0xfe15fc11, - 0x7ff84a3c, 0xfe096c8d, 0x7ff7e652, 0xfdfcdd1d, - 0x7ff77ff1, 0xfdf04dc0, 0x7ff71718, 0xfde3be78, - 0x7ff6abc8, 0xfdd72f45, 0x7ff63e01, 0xfdcaa027, - 0x7ff5cdc3, 0xfdbe111e, 0x7ff55b0d, 0xfdb1822c, - 0x7ff4e5e0, 0xfda4f351, 0x7ff46e3c, 0xfd98648d, - 0x7ff3f420, 0xfd8bd5e1, 0x7ff3778e, 0xfd7f474d, - 0x7ff2f884, 0xfd72b8d2, 0x7ff27703, 0xfd662a70, - 0x7ff1f30b, 0xfd599c28, 0x7ff16c9c, 0xfd4d0df9, - 0x7ff0e3b6, 0xfd407fe6, 0x7ff05858, 0xfd33f1ed, - 0x7fefca84, 0xfd276410, 0x7fef3a39, 0xfd1ad650, - 0x7feea776, 0xfd0e48ab, 0x7fee123d, 0xfd01bb24, - 0x7fed7a8c, 0xfcf52dbb, 0x7fece065, 0xfce8a06f, - 0x7fec43c7, 0xfcdc1342, 0x7feba4b2, 0xfccf8634, - 0x7feb0326, 0xfcc2f945, 0x7fea5f23, 0xfcb66c77, - 0x7fe9b8a9, 0xfca9dfc8, 0x7fe90fb9, 0xfc9d533b, - 0x7fe86452, 0xfc90c6cf, 0x7fe7b674, 0xfc843a85, - 0x7fe7061f, 0xfc77ae5e, 0x7fe65354, 0xfc6b2259, - 0x7fe59e12, 0xfc5e9678, 0x7fe4e659, 0xfc520aba, - 0x7fe42c2a, 0xfc457f21, 0x7fe36f84, 0xfc38f3ac, - 0x7fe2b067, 0xfc2c685d, 0x7fe1eed5, 0xfc1fdd34, - 0x7fe12acb, 0xfc135231, 0x7fe0644b, 0xfc06c754, - 0x7fdf9b55, 0xfbfa3c9f, 0x7fdecfe8, 0xfbedb212, - 0x7fde0205, 0xfbe127ac, 0x7fdd31ac, 0xfbd49d70, - 0x7fdc5edc, 0xfbc8135c, 0x7fdb8996, 0xfbbb8973, - 0x7fdab1d9, 0xfbaeffb3, 0x7fd9d7a7, 0xfba2761e, - 0x7fd8fafe, 0xfb95ecb4, 0x7fd81bdf, 0xfb896375, - 0x7fd73a4a, 0xfb7cda63, 0x7fd6563f, 0xfb70517d, - 0x7fd56fbe, 0xfb63c8c4, 0x7fd486c7, 0xfb574039, - 0x7fd39b5a, 0xfb4ab7db, 0x7fd2ad77, 0xfb3e2fac, - 0x7fd1bd1e, 0xfb31a7ac, 0x7fd0ca4f, 0xfb251fdc, - 0x7fcfd50b, 0xfb18983b, 0x7fcedd50, 0xfb0c10cb, - 0x7fcde320, 0xfaff898c, 0x7fcce67a, 0xfaf3027e, - 0x7fcbe75e, 0xfae67ba2, 0x7fcae5cd, 0xfad9f4f8, - 0x7fc9e1c6, 0xfacd6e81, 0x7fc8db4a, 0xfac0e83d, - 0x7fc7d258, 0xfab4622d, 0x7fc6c6f0, 0xfaa7dc52, - 0x7fc5b913, 0xfa9b56ab, 0x7fc4a8c1, 0xfa8ed139, - 0x7fc395f9, 0xfa824bfd, 0x7fc280bc, 0xfa75c6f8, - 0x7fc1690a, 0xfa694229, 0x7fc04ee3, 0xfa5cbd91, - 0x7fbf3246, 0xfa503930, 0x7fbe1334, 0xfa43b508, - 0x7fbcf1ad, 0xfa373119, 0x7fbbcdb1, 0xfa2aad62, - 0x7fbaa740, 0xfa1e29e5, 0x7fb97e5a, 0xfa11a6a3, - 0x7fb852ff, 0xfa05239a, 0x7fb7252f, 0xf9f8a0cd, - 0x7fb5f4ea, 0xf9ec1e3b, 0x7fb4c231, 0xf9df9be6, - 0x7fb38d02, 0xf9d319cc, 0x7fb2555f, 0xf9c697f0, - 0x7fb11b48, 0xf9ba1651, 0x7fafdebb, 0xf9ad94f0, - 0x7fae9fbb, 0xf9a113cd, 0x7fad5e45, 0xf99492ea, - 0x7fac1a5b, 0xf9881245, 0x7faad3fd, 0xf97b91e1, - 0x7fa98b2a, 0xf96f11bc, 0x7fa83fe3, 0xf96291d9, - 0x7fa6f228, 0xf9561237, 0x7fa5a1f9, 0xf94992d7, - 0x7fa44f55, 0xf93d13b8, 0x7fa2fa3d, 0xf93094dd, - 0x7fa1a2b2, 0xf9241645, 0x7fa048b2, 0xf91797f0, - 0x7f9eec3e, 0xf90b19e0, 0x7f9d8d56, 0xf8fe9c15, - 0x7f9c2bfb, 0xf8f21e8e, 0x7f9ac82c, 0xf8e5a14d, - 0x7f9961e8, 0xf8d92452, 0x7f97f932, 0xf8cca79e, - 0x7f968e07, 0xf8c02b31, 0x7f952069, 0xf8b3af0c, - 0x7f93b058, 0xf8a7332e, 0x7f923dd2, 0xf89ab799, - 0x7f90c8da, 0xf88e3c4d, 0x7f8f516e, 0xf881c14b, - 0x7f8dd78f, 0xf8754692, 0x7f8c5b3d, 0xf868cc24, - 0x7f8adc77, 0xf85c5201, 0x7f895b3e, 0xf84fd829, - 0x7f87d792, 0xf8435e9d, 0x7f865174, 0xf836e55d, - 0x7f84c8e2, 0xf82a6c6a, 0x7f833ddd, 0xf81df3c5, - 0x7f81b065, 0xf8117b6d, 0x7f80207b, 0xf8050364, - 0x7f7e8e1e, 0xf7f88ba9, 0x7f7cf94e, 0xf7ec143e, - 0x7f7b620c, 0xf7df9d22, 0x7f79c857, 0xf7d32657, - 0x7f782c30, 0xf7c6afdc, 0x7f768d96, 0xf7ba39b3, - 0x7f74ec8a, 0xf7adc3db, 0x7f73490b, 0xf7a14e55, - 0x7f71a31b, 0xf794d922, 0x7f6ffab8, 0xf7886442, - 0x7f6e4fe3, 0xf77befb5, 0x7f6ca29c, 0xf76f7b7d, - 0x7f6af2e3, 0xf7630799, 0x7f6940b8, 0xf756940a, - 0x7f678c1c, 0xf74a20d0, 0x7f65d50d, 0xf73daded, - 0x7f641b8d, 0xf7313b60, 0x7f625f9b, 0xf724c92a, - 0x7f60a138, 0xf718574b, 0x7f5ee063, 0xf70be5c4, - 0x7f5d1d1d, 0xf6ff7496, 0x7f5b5765, 0xf6f303c0, - 0x7f598f3c, 0xf6e69344, 0x7f57c4a2, 0xf6da2321, - 0x7f55f796, 0xf6cdb359, 0x7f54281a, 0xf6c143ec, - 0x7f52562c, 0xf6b4d4d9, 0x7f5081cd, 0xf6a86623, - 0x7f4eaafe, 0xf69bf7c9, 0x7f4cd1be, 0xf68f89cb, - 0x7f4af60d, 0xf6831c2b, 0x7f4917eb, 0xf676aee8, - 0x7f473759, 0xf66a4203, 0x7f455456, 0xf65dd57d, - 0x7f436ee3, 0xf6516956, 0x7f4186ff, 0xf644fd8f, - 0x7f3f9cab, 0xf6389228, 0x7f3dafe7, 0xf62c2721, - 0x7f3bc0b3, 0xf61fbc7b, 0x7f39cf0e, 0xf6135237, - 0x7f37dafa, 0xf606e854, 0x7f35e476, 0xf5fa7ed4, - 0x7f33eb81, 0xf5ee15b7, 0x7f31f01d, 0xf5e1acfd, - 0x7f2ff24a, 0xf5d544a7, 0x7f2df206, 0xf5c8dcb6, - 0x7f2bef53, 0xf5bc7529, 0x7f29ea31, 0xf5b00e02, - 0x7f27e29f, 0xf5a3a740, 0x7f25d89e, 0xf59740e5, - 0x7f23cc2e, 0xf58adaf0, 0x7f21bd4e, 0xf57e7563, - 0x7f1fabff, 0xf572103d, 0x7f1d9842, 0xf565ab80, - 0x7f1b8215, 0xf559472b, 0x7f19697a, 0xf54ce33f, - 0x7f174e70, 0xf5407fbd, 0x7f1530f7, 0xf5341ca5, - 0x7f13110f, 0xf527b9f7, 0x7f10eeb9, 0xf51b57b5, - 0x7f0ec9f5, 0xf50ef5de, 0x7f0ca2c2, 0xf5029473, - 0x7f0a7921, 0xf4f63374, 0x7f084d12, 0xf4e9d2e3, - 0x7f061e95, 0xf4dd72be, 0x7f03eda9, 0xf4d11308, - 0x7f01ba50, 0xf4c4b3c0, 0x7eff8489, 0xf4b854e7, - 0x7efd4c54, 0xf4abf67e, 0x7efb11b1, 0xf49f9884, - 0x7ef8d4a1, 0xf4933afa, 0x7ef69523, 0xf486dde1, - 0x7ef45338, 0xf47a8139, 0x7ef20ee0, 0xf46e2504, - 0x7eefc81a, 0xf461c940, 0x7eed7ee7, 0xf4556def, - 0x7eeb3347, 0xf4491311, 0x7ee8e53a, 0xf43cb8a7, - 0x7ee694c1, 0xf4305eb0, 0x7ee441da, 0xf424052f, - 0x7ee1ec87, 0xf417ac22, 0x7edf94c7, 0xf40b538b, - 0x7edd3a9a, 0xf3fefb6a, 0x7edade01, 0xf3f2a3bf, - 0x7ed87efc, 0xf3e64c8c, 0x7ed61d8a, 0xf3d9f5cf, - 0x7ed3b9ad, 0xf3cd9f8b, 0x7ed15363, 0xf3c149bf, - 0x7eceeaad, 0xf3b4f46c, 0x7ecc7f8b, 0xf3a89f92, - 0x7eca11fe, 0xf39c4b32, 0x7ec7a205, 0xf38ff74d, - 0x7ec52fa0, 0xf383a3e2, 0x7ec2bad0, 0xf37750f2, - 0x7ec04394, 0xf36afe7e, 0x7ebdc9ed, 0xf35eac86, - 0x7ebb4ddb, 0xf3525b0b, 0x7eb8cf5d, 0xf3460a0d, - 0x7eb64e75, 0xf339b98d, 0x7eb3cb21, 0xf32d698a, - 0x7eb14563, 0xf3211a07, 0x7eaebd3a, 0xf314cb02, - 0x7eac32a6, 0xf3087c7d, 0x7ea9a5a8, 0xf2fc2e77, - 0x7ea7163f, 0xf2efe0f2, 0x7ea4846c, 0xf2e393ef, - 0x7ea1f02f, 0xf2d7476c, 0x7e9f5988, 0xf2cafb6b, - 0x7e9cc076, 0xf2beafed, 0x7e9a24fb, 0xf2b264f2, - 0x7e978715, 0xf2a61a7a, 0x7e94e6c6, 0xf299d085, - 0x7e92440d, 0xf28d8715, 0x7e8f9eeb, 0xf2813e2a, - 0x7e8cf75f, 0xf274f5c3, 0x7e8a4d6a, 0xf268ade3, - 0x7e87a10c, 0xf25c6688, 0x7e84f245, 0xf2501fb5, - 0x7e824114, 0xf243d968, 0x7e7f8d7b, 0xf23793a3, - 0x7e7cd778, 0xf22b4e66, 0x7e7a1f0d, 0xf21f09b1, - 0x7e77643a, 0xf212c585, 0x7e74a6fd, 0xf20681e3, - 0x7e71e759, 0xf1fa3ecb, 0x7e6f254c, 0xf1edfc3d, - 0x7e6c60d7, 0xf1e1ba3a, 0x7e6999fa, 0xf1d578c2, - 0x7e66d0b4, 0xf1c937d6, 0x7e640507, 0xf1bcf777, - 0x7e6136f3, 0xf1b0b7a4, 0x7e5e6676, 0xf1a4785e, - 0x7e5b9392, 0xf19839a6, 0x7e58be47, 0xf18bfb7d, - 0x7e55e694, 0xf17fbde2, 0x7e530c7a, 0xf17380d6, - 0x7e502ff9, 0xf1674459, 0x7e4d5110, 0xf15b086d, - 0x7e4a6fc1, 0xf14ecd11, 0x7e478c0b, 0xf1429247, - 0x7e44a5ef, 0xf136580d, 0x7e41bd6c, 0xf12a1e66, - 0x7e3ed282, 0xf11de551, 0x7e3be532, 0xf111accf, - 0x7e38f57c, 0xf10574e0, 0x7e360360, 0xf0f93d86, - 0x7e330ede, 0xf0ed06bf, 0x7e3017f6, 0xf0e0d08d, - 0x7e2d1ea8, 0xf0d49af1, 0x7e2a22f4, 0xf0c865ea, - 0x7e2724db, 0xf0bc317a, 0x7e24245d, 0xf0affda0, - 0x7e212179, 0xf0a3ca5d, 0x7e1e1c30, 0xf09797b2, - 0x7e1b1482, 0xf08b659f, 0x7e180a6f, 0xf07f3424, - 0x7e14fdf7, 0xf0730342, 0x7e11ef1b, 0xf066d2fa, - 0x7e0eddd9, 0xf05aa34c, 0x7e0bca34, 0xf04e7438, - 0x7e08b42a, 0xf04245c0, 0x7e059bbb, 0xf03617e2, - 0x7e0280e9, 0xf029eaa1, 0x7dff63b2, 0xf01dbdfb, - 0x7dfc4418, 0xf01191f3, 0x7df9221a, 0xf0056687, - 0x7df5fdb8, 0xeff93bba, 0x7df2d6f3, 0xefed118a, - 0x7defadca, 0xefe0e7f9, 0x7dec823e, 0xefd4bf08, - 0x7de9544f, 0xefc896b5, 0x7de623fd, 0xefbc6f03, - 0x7de2f148, 0xefb047f2, 0x7ddfbc30, 0xefa42181, - 0x7ddc84b5, 0xef97fbb2, 0x7dd94ad8, 0xef8bd685, - 0x7dd60e99, 0xef7fb1fa, 0x7dd2cff7, 0xef738e12, - 0x7dcf8ef3, 0xef676ace, 0x7dcc4b8d, 0xef5b482d, - 0x7dc905c5, 0xef4f2630, 0x7dc5bd9b, 0xef4304d8, - 0x7dc2730f, 0xef36e426, 0x7dbf2622, 0xef2ac419, - 0x7dbbd6d4, 0xef1ea4b2, 0x7db88524, 0xef1285f2, - 0x7db53113, 0xef0667d9, 0x7db1daa2, 0xeefa4a67, - 0x7dae81cf, 0xeeee2d9d, 0x7dab269b, 0xeee2117c, - 0x7da7c907, 0xeed5f604, 0x7da46912, 0xeec9db35, - 0x7da106bd, 0xeebdc110, 0x7d9da208, 0xeeb1a796, - 0x7d9a3af2, 0xeea58ec6, 0x7d96d17d, 0xee9976a1, - 0x7d9365a8, 0xee8d5f29, 0x7d8ff772, 0xee81485c, - 0x7d8c86de, 0xee75323c, 0x7d8913ea, 0xee691cc9, - 0x7d859e96, 0xee5d0804, 0x7d8226e4, 0xee50f3ed, - 0x7d7eacd2, 0xee44e084, 0x7d7b3061, 0xee38cdcb, - 0x7d77b192, 0xee2cbbc1, 0x7d743064, 0xee20aa67, - 0x7d70acd7, 0xee1499bd, 0x7d6d26ec, 0xee0889c4, - 0x7d699ea3, 0xedfc7a7c, 0x7d6613fb, 0xedf06be6, - 0x7d6286f6, 0xede45e03, 0x7d5ef793, 0xedd850d2, - 0x7d5b65d2, 0xedcc4454, 0x7d57d1b3, 0xedc0388a, - 0x7d543b37, 0xedb42d74, 0x7d50a25e, 0xeda82313, - 0x7d4d0728, 0xed9c1967, 0x7d496994, 0xed901070, - 0x7d45c9a4, 0xed84082f, 0x7d422757, 0xed7800a5, - 0x7d3e82ae, 0xed6bf9d1, 0x7d3adba7, 0xed5ff3b5, - 0x7d373245, 0xed53ee51, 0x7d338687, 0xed47e9a5, - 0x7d2fd86c, 0xed3be5b1, 0x7d2c27f6, 0xed2fe277, - 0x7d287523, 0xed23dff7, 0x7d24bff6, 0xed17de31, - 0x7d21086c, 0xed0bdd25, 0x7d1d4e88, 0xecffdcd4, - 0x7d199248, 0xecf3dd3f, 0x7d15d3ad, 0xece7de66, - 0x7d1212b7, 0xecdbe04a, 0x7d0e4f67, 0xeccfe2ea, - 0x7d0a89bc, 0xecc3e648, 0x7d06c1b6, 0xecb7ea63, - 0x7d02f757, 0xecabef3d, 0x7cff2a9d, 0xec9ff4d6, - 0x7cfb5b89, 0xec93fb2e, 0x7cf78a1b, 0xec880245, - 0x7cf3b653, 0xec7c0a1d, 0x7cefe032, 0xec7012b5, - 0x7cec07b8, 0xec641c0e, 0x7ce82ce4, 0xec582629, - 0x7ce44fb7, 0xec4c3106, 0x7ce07031, 0xec403ca5, - 0x7cdc8e52, 0xec344908, 0x7cd8aa1b, 0xec28562d, - 0x7cd4c38b, 0xec1c6417, 0x7cd0daa2, 0xec1072c4, - 0x7cccef62, 0xec048237, 0x7cc901c9, 0xebf8926f, - 0x7cc511d9, 0xebeca36c, 0x7cc11f90, 0xebe0b52f, - 0x7cbd2af0, 0xebd4c7ba, 0x7cb933f9, 0xebc8db0b, - 0x7cb53aaa, 0xebbcef23, 0x7cb13f04, 0xebb10404, - 0x7cad4107, 0xeba519ad, 0x7ca940b3, 0xeb99301f, - 0x7ca53e09, 0xeb8d475b, 0x7ca13908, 0xeb815f60, - 0x7c9d31b0, 0xeb75782f, 0x7c992803, 0xeb6991ca, - 0x7c951bff, 0xeb5dac2f, 0x7c910da5, 0xeb51c760, - 0x7c8cfcf6, 0xeb45e35d, 0x7c88e9f1, 0xeb3a0027, - 0x7c84d496, 0xeb2e1dbe, 0x7c80bce7, 0xeb223c22, - 0x7c7ca2e2, 0xeb165b54, 0x7c788688, 0xeb0a7b54, - 0x7c7467d9, 0xeafe9c24, 0x7c7046d6, 0xeaf2bdc3, - 0x7c6c237e, 0xeae6e031, 0x7c67fdd1, 0xeadb0370, - 0x7c63d5d1, 0xeacf277f, 0x7c5fab7c, 0xeac34c60, - 0x7c5b7ed4, 0xeab77212, 0x7c574fd8, 0xeaab9896, - 0x7c531e88, 0xea9fbfed, 0x7c4eeae5, 0xea93e817, - 0x7c4ab4ef, 0xea881114, 0x7c467ca6, 0xea7c3ae5, - 0x7c42420a, 0xea70658a, 0x7c3e051b, 0xea649105, - 0x7c39c5da, 0xea58bd54, 0x7c358446, 0xea4cea79, - 0x7c314060, 0xea411874, 0x7c2cfa28, 0xea354746, - 0x7c28b19e, 0xea2976ef, 0x7c2466c2, 0xea1da770, - 0x7c201994, 0xea11d8c8, 0x7c1bca16, 0xea060af9, - 0x7c177845, 0xe9fa3e03, 0x7c132424, 0xe9ee71e6, - 0x7c0ecdb2, 0xe9e2a6a3, 0x7c0a74f0, 0xe9d6dc3b, - 0x7c0619dc, 0xe9cb12ad, 0x7c01bc78, 0xe9bf49fa, - 0x7bfd5cc4, 0xe9b38223, 0x7bf8fac0, 0xe9a7bb28, - 0x7bf4966c, 0xe99bf509, 0x7bf02fc9, 0xe9902fc7, - 0x7bebc6d5, 0xe9846b63, 0x7be75b93, 0xe978a7dd, - 0x7be2ee01, 0xe96ce535, 0x7bde7e20, 0xe961236c, - 0x7bda0bf0, 0xe9556282, 0x7bd59771, 0xe949a278, - 0x7bd120a4, 0xe93de34e, 0x7bcca789, 0xe9322505, - 0x7bc82c1f, 0xe926679c, 0x7bc3ae67, 0xe91aab16, - 0x7bbf2e62, 0xe90eef71, 0x7bbaac0e, 0xe90334af, - 0x7bb6276e, 0xe8f77acf, 0x7bb1a080, 0xe8ebc1d3, - 0x7bad1744, 0xe8e009ba, 0x7ba88bbc, 0xe8d45286, - 0x7ba3fde7, 0xe8c89c37, 0x7b9f6dc5, 0xe8bce6cd, - 0x7b9adb57, 0xe8b13248, 0x7b96469d, 0xe8a57ea9, - 0x7b91af97, 0xe899cbf1, 0x7b8d1644, 0xe88e1a20, - 0x7b887aa6, 0xe8826936, 0x7b83dcbc, 0xe876b934, - 0x7b7f3c87, 0xe86b0a1a, 0x7b7a9a07, 0xe85f5be9, - 0x7b75f53c, 0xe853aea1, 0x7b714e25, 0xe8480243, - 0x7b6ca4c4, 0xe83c56cf, 0x7b67f919, 0xe830ac45, - 0x7b634b23, 0xe82502a7, 0x7b5e9ae4, 0xe81959f4, - 0x7b59e85a, 0xe80db22d, 0x7b553386, 0xe8020b52, - 0x7b507c69, 0xe7f66564, 0x7b4bc303, 0xe7eac063, - 0x7b470753, 0xe7df1c50, 0x7b42495a, 0xe7d3792b, - 0x7b3d8918, 0xe7c7d6f4, 0x7b38c68e, 0xe7bc35ad, - 0x7b3401bb, 0xe7b09555, 0x7b2f3aa0, 0xe7a4f5ed, - 0x7b2a713d, 0xe7995776, 0x7b25a591, 0xe78db9ef, - 0x7b20d79e, 0xe7821d59, 0x7b1c0764, 0xe77681b6, - 0x7b1734e2, 0xe76ae704, 0x7b126019, 0xe75f4d45, - 0x7b0d8909, 0xe753b479, 0x7b08afb2, 0xe7481ca1, - 0x7b03d414, 0xe73c85bc, 0x7afef630, 0xe730efcc, - 0x7afa1605, 0xe7255ad1, 0x7af53395, 0xe719c6cb, - 0x7af04edf, 0xe70e33bb, 0x7aeb67e3, 0xe702a1a1, - 0x7ae67ea1, 0xe6f7107e, 0x7ae1931a, 0xe6eb8052, - 0x7adca54e, 0xe6dff11d, 0x7ad7b53d, 0xe6d462e1, - 0x7ad2c2e8, 0xe6c8d59c, 0x7acdce4d, 0xe6bd4951, - 0x7ac8d76f, 0xe6b1bdff, 0x7ac3de4c, 0xe6a633a6, - 0x7abee2e5, 0xe69aaa48, 0x7ab9e53a, 0xe68f21e5, - 0x7ab4e54c, 0xe6839a7c, 0x7aafe31b, 0xe6781410, - 0x7aaadea6, 0xe66c8e9f, 0x7aa5d7ee, 0xe6610a2a, - 0x7aa0cef3, 0xe65586b3, 0x7a9bc3b6, 0xe64a0438, - 0x7a96b636, 0xe63e82bc, 0x7a91a674, 0xe633023e, - 0x7a8c9470, 0xe62782be, 0x7a87802a, 0xe61c043d, - 0x7a8269a3, 0xe61086bc, 0x7a7d50da, 0xe6050a3b, - 0x7a7835cf, 0xe5f98ebb, 0x7a731884, 0xe5ee143b, - 0x7a6df8f8, 0xe5e29abc, 0x7a68d72b, 0xe5d72240, - 0x7a63b31d, 0xe5cbaac5, 0x7a5e8cd0, 0xe5c0344d, - 0x7a596442, 0xe5b4bed8, 0x7a543974, 0xe5a94a67, - 0x7a4f0c67, 0xe59dd6f9, 0x7a49dd1a, 0xe5926490, - 0x7a44ab8e, 0xe586f32c, 0x7a3f77c3, 0xe57b82cd, - 0x7a3a41b9, 0xe5701374, 0x7a350970, 0xe564a521, - 0x7a2fcee8, 0xe55937d5, 0x7a2a9223, 0xe54dcb8f, - 0x7a25531f, 0xe5426051, 0x7a2011de, 0xe536f61b, - 0x7a1ace5f, 0xe52b8cee, 0x7a1588a2, 0xe52024c9, - 0x7a1040a8, 0xe514bdad, 0x7a0af671, 0xe509579b, - 0x7a05a9fd, 0xe4fdf294, 0x7a005b4d, 0xe4f28e96, - 0x79fb0a60, 0xe4e72ba4, 0x79f5b737, 0xe4dbc9bd, - 0x79f061d2, 0xe4d068e2, 0x79eb0a31, 0xe4c50914, - 0x79e5b054, 0xe4b9aa52, 0x79e0543c, 0xe4ae4c9d, - 0x79daf5e8, 0xe4a2eff6, 0x79d5955a, 0xe497945d, - 0x79d03291, 0xe48c39d3, 0x79cacd8d, 0xe480e057, - 0x79c5664f, 0xe47587eb, 0x79bffcd7, 0xe46a308f, - 0x79ba9125, 0xe45eda43, 0x79b52339, 0xe4538507, - 0x79afb313, 0xe44830dd, 0x79aa40b4, 0xe43cddc4, - 0x79a4cc1c, 0xe4318bbe, 0x799f554b, 0xe4263ac9, - 0x7999dc42, 0xe41aeae8, 0x799460ff, 0xe40f9c1a, - 0x798ee385, 0xe4044e60, 0x798963d2, 0xe3f901ba, - 0x7983e1e8, 0xe3edb628, 0x797e5dc6, 0xe3e26bac, - 0x7978d76c, 0xe3d72245, 0x79734edc, 0xe3cbd9f4, - 0x796dc414, 0xe3c092b9, 0x79683715, 0xe3b54c95, - 0x7962a7e0, 0xe3aa0788, 0x795d1675, 0xe39ec393, - 0x795782d3, 0xe39380b6, 0x7951ecfc, 0xe3883ef2, - 0x794c54ee, 0xe37cfe47, 0x7946baac, 0xe371beb5, - 0x79411e33, 0xe366803c, 0x793b7f86, 0xe35b42df, - 0x7935dea4, 0xe350069b, 0x79303b8e, 0xe344cb73, - 0x792a9642, 0xe3399167, 0x7924eec3, 0xe32e5876, - 0x791f4510, 0xe32320a2, 0x79199929, 0xe317e9eb, - 0x7913eb0e, 0xe30cb451, 0x790e3ac0, 0xe3017fd5, - 0x7908883f, 0xe2f64c77, 0x7902d38b, 0xe2eb1a37, - 0x78fd1ca4, 0xe2dfe917, 0x78f7638b, 0xe2d4b916, - 0x78f1a840, 0xe2c98a35, 0x78ebeac2, 0xe2be5c74, - 0x78e62b13, 0xe2b32fd4, 0x78e06932, 0xe2a80456, - 0x78daa520, 0xe29cd9f8, 0x78d4dedd, 0xe291b0bd, - 0x78cf1669, 0xe28688a4, 0x78c94bc4, 0xe27b61af, - 0x78c37eef, 0xe2703bdc, 0x78bdafea, 0xe265172e, - 0x78b7deb4, 0xe259f3a3, 0x78b20b4f, 0xe24ed13d, - 0x78ac35ba, 0xe243affc, 0x78a65df6, 0xe2388fe1, - 0x78a08402, 0xe22d70eb, 0x789aa7e0, 0xe222531c, - 0x7894c98f, 0xe2173674, 0x788ee910, 0xe20c1af3, - 0x78890663, 0xe2010099, 0x78832187, 0xe1f5e768, - 0x787d3a7e, 0xe1eacf5f, 0x78775147, 0xe1dfb87f, - 0x787165e3, 0xe1d4a2c8, 0x786b7852, 0xe1c98e3b, - 0x78658894, 0xe1be7ad8, 0x785f96a9, 0xe1b368a0, - 0x7859a292, 0xe1a85793, 0x7853ac4f, 0xe19d47b1, - 0x784db3e0, 0xe19238fb, 0x7847b946, 0xe1872b72, - 0x7841bc7f, 0xe17c1f15, 0x783bbd8e, 0xe17113e5, - 0x7835bc71, 0xe16609e3, 0x782fb92a, 0xe15b0110, - 0x7829b3b9, 0xe14ff96a, 0x7823ac1d, 0xe144f2f3, - 0x781da256, 0xe139edac, 0x78179666, 0xe12ee995, - 0x7811884d, 0xe123e6ad, 0x780b780a, 0xe118e4f6, - 0x7805659e, 0xe10de470, 0x77ff5109, 0xe102e51c, - 0x77f93a4b, 0xe0f7e6f9, 0x77f32165, 0xe0ecea09, - 0x77ed0657, 0xe0e1ee4b, 0x77e6e921, 0xe0d6f3c1, - 0x77e0c9c3, 0xe0cbfa6a, 0x77daa83d, 0xe0c10247, - 0x77d48490, 0xe0b60b58, 0x77ce5ebd, 0xe0ab159e, - 0x77c836c2, 0xe0a0211a, 0x77c20ca1, 0xe0952dcb, - 0x77bbe05a, 0xe08a3bb2, 0x77b5b1ec, 0xe07f4acf, - 0x77af8159, 0xe0745b24, 0x77a94ea0, 0xe0696cb0, - 0x77a319c2, 0xe05e7f74, 0x779ce2be, 0xe053936f, - 0x7796a996, 0xe048a8a4, 0x77906e49, 0xe03dbf11, - 0x778a30d8, 0xe032d6b8, 0x7783f143, 0xe027ef99, - 0x777daf89, 0xe01d09b4, 0x77776bac, 0xe012250a, - 0x777125ac, 0xe007419b, 0x776add88, 0xdffc5f67, - 0x77649341, 0xdff17e70, 0x775e46d8, 0xdfe69eb4, - 0x7757f84c, 0xdfdbc036, 0x7751a79e, 0xdfd0e2f5, - 0x774b54ce, 0xdfc606f1, 0x7744ffdd, 0xdfbb2c2c, - 0x773ea8ca, 0xdfb052a5, 0x77384f95, 0xdfa57a5d, - 0x7731f440, 0xdf9aa354, 0x772b96ca, 0xdf8fcd8b, - 0x77253733, 0xdf84f902, 0x771ed57c, 0xdf7a25ba, - 0x771871a5, 0xdf6f53b3, 0x77120bae, 0xdf6482ed, - 0x770ba398, 0xdf59b369, 0x77053962, 0xdf4ee527, - 0x76fecd0e, 0xdf441828, 0x76f85e9a, 0xdf394c6b, - 0x76f1ee09, 0xdf2e81f3, 0x76eb7b58, 0xdf23b8be, - 0x76e5068a, 0xdf18f0ce, 0x76de8f9e, 0xdf0e2a22, - 0x76d81695, 0xdf0364bc, 0x76d19b6e, 0xdef8a09b, - 0x76cb1e2a, 0xdeedddc0, 0x76c49ec9, 0xdee31c2b, - 0x76be1d4c, 0xded85bdd, 0x76b799b3, 0xdecd9cd7, - 0x76b113fd, 0xdec2df18, 0x76aa8c2c, 0xdeb822a1, - 0x76a4023f, 0xdead6773, 0x769d7637, 0xdea2ad8d, - 0x7696e814, 0xde97f4f1, 0x769057d6, 0xde8d3d9e, - 0x7689c57d, 0xde828796, 0x7683310b, 0xde77d2d8, - 0x767c9a7e, 0xde6d1f65, 0x767601d7, 0xde626d3e, - 0x766f6717, 0xde57bc62, 0x7668ca3e, 0xde4d0cd2, - 0x76622b4c, 0xde425e8f, 0x765b8a41, 0xde37b199, - 0x7654e71d, 0xde2d05f1, 0x764e41e2, 0xde225b96, - 0x76479a8e, 0xde17b28a, 0x7640f123, 0xde0d0acc, - 0x763a45a0, 0xde02645d, 0x76339806, 0xddf7bf3e, - 0x762ce855, 0xdded1b6e, 0x7626368d, 0xdde278ef, - 0x761f82af, 0xddd7d7c1, 0x7618ccba, 0xddcd37e4, - 0x761214b0, 0xddc29958, 0x760b5a90, 0xddb7fc1e, - 0x76049e5b, 0xddad6036, 0x75fde011, 0xdda2c5a2, - 0x75f71fb1, 0xdd982c60, 0x75f05d3d, 0xdd8d9472, - 0x75e998b5, 0xdd82fdd8, 0x75e2d219, 0xdd786892, - 0x75dc0968, 0xdd6dd4a2, 0x75d53ea5, 0xdd634206, - 0x75ce71ce, 0xdd58b0c0, 0x75c7a2e3, 0xdd4e20d0, - 0x75c0d1e7, 0xdd439236, 0x75b9fed7, 0xdd3904f4, - 0x75b329b5, 0xdd2e7908, 0x75ac5282, 0xdd23ee74, - 0x75a5793c, 0xdd196538, 0x759e9de5, 0xdd0edd55, - 0x7597c07d, 0xdd0456ca, 0x7590e104, 0xdcf9d199, - 0x7589ff7a, 0xdcef4dc2, 0x75831be0, 0xdce4cb44, - 0x757c3636, 0xdcda4a21, 0x75754e7c, 0xdccfca59, - 0x756e64b2, 0xdcc54bec, 0x756778d9, 0xdcbacedb, - 0x75608af1, 0xdcb05326, 0x75599afa, 0xdca5d8cd, - 0x7552a8f4, 0xdc9b5fd2, 0x754bb4e1, 0xdc90e834, - 0x7544bebf, 0xdc8671f3, 0x753dc68f, 0xdc7bfd11, - 0x7536cc52, 0xdc71898d, 0x752fd008, 0xdc671768, - 0x7528d1b1, 0xdc5ca6a2, 0x7521d14d, 0xdc52373c, - 0x751acedd, 0xdc47c936, 0x7513ca60, 0xdc3d5c91, - 0x750cc3d8, 0xdc32f14d, 0x7505bb44, 0xdc28876a, - 0x74feb0a5, 0xdc1e1ee9, 0x74f7a3fb, 0xdc13b7c9, - 0x74f09546, 0xdc09520d, 0x74e98487, 0xdbfeedb3, - 0x74e271bd, 0xdbf48abd, 0x74db5cea, 0xdbea292b, - 0x74d4460c, 0xdbdfc8fc, 0x74cd2d26, 0xdbd56a32, - 0x74c61236, 0xdbcb0cce, 0x74bef53d, 0xdbc0b0ce, - 0x74b7d63c, 0xdbb65634, 0x74b0b533, 0xdbabfd01, - 0x74a99221, 0xdba1a534, 0x74a26d08, 0xdb974ece, - 0x749b45e7, 0xdb8cf9cf, 0x74941cbf, 0xdb82a638, - 0x748cf190, 0xdb785409, 0x7485c45b, 0xdb6e0342, - 0x747e951f, 0xdb63b3e5, 0x747763dd, 0xdb5965f1, - 0x74703095, 0xdb4f1967, 0x7468fb47, 0xdb44ce46, - 0x7461c3f5, 0xdb3a8491, 0x745a8a9d, 0xdb303c46, - 0x74534f41, 0xdb25f566, 0x744c11e0, 0xdb1baff2, - 0x7444d27b, 0xdb116beb, 0x743d9112, 0xdb072950, - 0x74364da6, 0xdafce821, 0x742f0836, 0xdaf2a860, - 0x7427c0c3, 0xdae86a0d, 0x7420774d, 0xdade2d28, - 0x74192bd5, 0xdad3f1b1, 0x7411de5b, 0xdac9b7a9, - 0x740a8edf, 0xdabf7f11, 0x74033d61, 0xdab547e8, - 0x73fbe9e2, 0xdaab122f, 0x73f49462, 0xdaa0dde7, - 0x73ed3ce1, 0xda96ab0f, 0x73e5e360, 0xda8c79a9, - 0x73de87de, 0xda8249b4, 0x73d72a5d, 0xda781b31, - 0x73cfcadc, 0xda6dee21, 0x73c8695b, 0xda63c284, - 0x73c105db, 0xda599859, 0x73b9a05d, 0xda4f6fa3, - 0x73b238e0, 0xda454860, 0x73aacf65, 0xda3b2292, - 0x73a363ec, 0xda30fe38, 0x739bf675, 0xda26db54, - 0x73948701, 0xda1cb9e5, 0x738d1590, 0xda1299ec, - 0x7385a222, 0xda087b69, 0x737e2cb7, 0xd9fe5e5e, - 0x7376b551, 0xd9f442c9, 0x736f3bee, 0xd9ea28ac, - 0x7367c090, 0xd9e01006, 0x73604336, 0xd9d5f8d9, - 0x7358c3e2, 0xd9cbe325, 0x73514292, 0xd9c1cee9, - 0x7349bf48, 0xd9b7bc27, 0x73423a04, 0xd9adaadf, - 0x733ab2c6, 0xd9a39b11, 0x7333298f, 0xd9998cbe, - 0x732b9e5e, 0xd98f7fe6, 0x73241134, 0xd9857489, - 0x731c8211, 0xd97b6aa8, 0x7314f0f6, 0xd9716243, - 0x730d5de3, 0xd9675b5a, 0x7305c8d7, 0xd95d55ef, - 0x72fe31d5, 0xd9535201, 0x72f698db, 0xd9494f90, - 0x72eefdea, 0xd93f4e9e, 0x72e76102, 0xd9354f2a, - 0x72dfc224, 0xd92b5135, 0x72d82150, 0xd92154bf, - 0x72d07e85, 0xd91759c9, 0x72c8d9c6, 0xd90d6053, - 0x72c13311, 0xd903685d, 0x72b98a67, 0xd8f971e8, - 0x72b1dfc9, 0xd8ef7cf4, 0x72aa3336, 0xd8e58982, - 0x72a284b0, 0xd8db9792, 0x729ad435, 0xd8d1a724, - 0x729321c7, 0xd8c7b838, 0x728b6d66, 0xd8bdcad0, - 0x7283b712, 0xd8b3deeb, 0x727bfecc, 0xd8a9f48a, - 0x72744493, 0xd8a00bae, 0x726c8868, 0xd8962456, - 0x7264ca4c, 0xd88c3e83, 0x725d0a3e, 0xd8825a35, - 0x72554840, 0xd878776d, 0x724d8450, 0xd86e962b, - 0x7245be70, 0xd864b670, 0x723df6a0, 0xd85ad83c, - 0x72362ce0, 0xd850fb8e, 0x722e6130, 0xd8472069, - 0x72269391, 0xd83d46cc, 0x721ec403, 0xd8336eb7, - 0x7216f287, 0xd829982b, 0x720f1f1c, 0xd81fc328, - 0x720749c3, 0xd815efae, 0x71ff727c, 0xd80c1dbf, - 0x71f79948, 0xd8024d59, 0x71efbe27, 0xd7f87e7f, - 0x71e7e118, 0xd7eeb130, 0x71e0021e, 0xd7e4e56c, - 0x71d82137, 0xd7db1b34, 0x71d03e64, 0xd7d15288, - 0x71c859a5, 0xd7c78b68, 0x71c072fb, 0xd7bdc5d6, - 0x71b88a66, 0xd7b401d1, 0x71b09fe7, 0xd7aa3f5a, - 0x71a8b37c, 0xd7a07e70, 0x71a0c528, 0xd796bf16, - 0x7198d4ea, 0xd78d014a, 0x7190e2c3, 0xd783450d, - 0x7188eeb2, 0xd7798a60, 0x7180f8b8, 0xd76fd143, - 0x717900d6, 0xd76619b6, 0x7171070c, 0xd75c63ba, - 0x71690b59, 0xd752af4f, 0x71610dbf, 0xd748fc75, - 0x71590e3e, 0xd73f4b2e, 0x71510cd5, 0xd7359b78, - 0x71490986, 0xd72bed55, 0x71410450, 0xd72240c5, - 0x7138fd35, 0xd71895c9, 0x7130f433, 0xd70eec60, - 0x7128e94c, 0xd705448b, 0x7120dc80, 0xd6fb9e4b, - 0x7118cdcf, 0xd6f1f99f, 0x7110bd39, 0xd6e85689, - 0x7108aabf, 0xd6deb508, 0x71009661, 0xd6d5151d, - 0x70f8801f, 0xd6cb76c9, 0x70f067fb, 0xd6c1da0b, - 0x70e84df3, 0xd6b83ee4, 0x70e03208, 0xd6aea555, - 0x70d8143b, 0xd6a50d5d, 0x70cff48c, 0xd69b76fe, - 0x70c7d2fb, 0xd691e237, 0x70bfaf89, 0xd6884f09, - 0x70b78a36, 0xd67ebd74, 0x70af6302, 0xd6752d79, - 0x70a739ed, 0xd66b9f18, 0x709f0ef8, 0xd6621251, - 0x7096e223, 0xd6588725, 0x708eb36f, 0xd64efd94, - 0x708682dc, 0xd645759f, 0x707e5069, 0xd63bef46, - 0x70761c18, 0xd6326a88, 0x706de5e9, 0xd628e767, - 0x7065addb, 0xd61f65e4, 0x705d73f0, 0xd615e5fd, - 0x70553828, 0xd60c67b4, 0x704cfa83, 0xd602eb0a, - 0x7044bb00, 0xd5f96ffd, 0x703c79a2, 0xd5eff690, - 0x70343667, 0xd5e67ec1, 0x702bf151, 0xd5dd0892, - 0x7023aa5f, 0xd5d39403, 0x701b6193, 0xd5ca2115, - 0x701316eb, 0xd5c0afc6, 0x700aca69, 0xd5b74019, - 0x70027c0c, 0xd5add20d, 0x6ffa2bd6, 0xd5a465a3, - 0x6ff1d9c7, 0xd59afadb, 0x6fe985de, 0xd59191b5, - 0x6fe1301c, 0xd5882a32, 0x6fd8d882, 0xd57ec452, - 0x6fd07f0f, 0xd5756016, 0x6fc823c5, 0xd56bfd7d, - 0x6fbfc6a3, 0xd5629c89, 0x6fb767aa, 0xd5593d3a, - 0x6faf06da, 0xd54fdf8f, 0x6fa6a433, 0xd5468389, - 0x6f9e3fb6, 0xd53d292a, 0x6f95d963, 0xd533d070, - 0x6f8d713a, 0xd52a795d, 0x6f85073c, 0xd52123f0, - 0x6f7c9b69, 0xd517d02b, 0x6f742dc1, 0xd50e7e0d, - 0x6f6bbe45, 0xd5052d97, 0x6f634cf5, 0xd4fbdec9, - 0x6f5ad9d1, 0xd4f291a4, 0x6f5264da, 0xd4e94627, - 0x6f49ee0f, 0xd4dffc54, 0x6f417573, 0xd4d6b42b, - 0x6f38fb03, 0xd4cd6dab, 0x6f307ec2, 0xd4c428d6, - 0x6f2800af, 0xd4bae5ab, 0x6f1f80ca, 0xd4b1a42c, - 0x6f16ff14, 0xd4a86458, 0x6f0e7b8e, 0xd49f2630, - 0x6f05f637, 0xd495e9b3, 0x6efd6f10, 0xd48caee4, - 0x6ef4e619, 0xd48375c1, 0x6eec5b53, 0xd47a3e4b, - 0x6ee3cebe, 0xd4710883, 0x6edb405a, 0xd467d469, - 0x6ed2b027, 0xd45ea1fd, 0x6eca1e27, 0xd4557140, - 0x6ec18a58, 0xd44c4232, 0x6eb8f4bc, 0xd44314d3, - 0x6eb05d53, 0xd439e923, 0x6ea7c41e, 0xd430bf24, - 0x6e9f291b, 0xd42796d5, 0x6e968c4d, 0xd41e7037, - 0x6e8dedb3, 0xd4154b4a, 0x6e854d4d, 0xd40c280e, - 0x6e7cab1c, 0xd4030684, 0x6e740720, 0xd3f9e6ad, - 0x6e6b615a, 0xd3f0c887, 0x6e62b9ca, 0xd3e7ac15, - 0x6e5a1070, 0xd3de9156, 0x6e51654c, 0xd3d5784a, - 0x6e48b860, 0xd3cc60f2, 0x6e4009aa, 0xd3c34b4f, - 0x6e37592c, 0xd3ba3760, 0x6e2ea6e6, 0xd3b12526, - 0x6e25f2d8, 0xd3a814a2, 0x6e1d3d03, 0xd39f05d3, - 0x6e148566, 0xd395f8ba, 0x6e0bcc03, 0xd38ced57, - 0x6e0310d9, 0xd383e3ab, 0x6dfa53e9, 0xd37adbb6, - 0x6df19534, 0xd371d579, 0x6de8d4b8, 0xd368d0f3, - 0x6de01278, 0xd35fce26, 0x6dd74e73, 0xd356cd11, - 0x6dce88aa, 0xd34dcdb4, 0x6dc5c11c, 0xd344d011, - 0x6dbcf7cb, 0xd33bd427, 0x6db42cb6, 0xd332d9f7, - 0x6dab5fdf, 0xd329e181, 0x6da29144, 0xd320eac6, - 0x6d99c0e7, 0xd317f5c6, 0x6d90eec8, 0xd30f0280, - 0x6d881ae8, 0xd30610f7, 0x6d7f4545, 0xd2fd2129, - 0x6d766de2, 0xd2f43318, 0x6d6d94bf, 0xd2eb46c3, - 0x6d64b9da, 0xd2e25c2b, 0x6d5bdd36, 0xd2d97350, - 0x6d52fed2, 0xd2d08c33, 0x6d4a1eaf, 0xd2c7a6d4, - 0x6d413ccd, 0xd2bec333, 0x6d38592c, 0xd2b5e151, - 0x6d2f73cd, 0xd2ad012e, 0x6d268cb0, 0xd2a422ca, - 0x6d1da3d5, 0xd29b4626, 0x6d14b93d, 0xd2926b41, - 0x6d0bcce8, 0xd289921e, 0x6d02ded7, 0xd280babb, - 0x6cf9ef09, 0xd277e518, 0x6cf0fd80, 0xd26f1138, - 0x6ce80a3a, 0xd2663f19, 0x6cdf153a, 0xd25d6ebc, - 0x6cd61e7f, 0xd254a021, 0x6ccd2609, 0xd24bd34a, - 0x6cc42bd9, 0xd2430835, 0x6cbb2fef, 0xd23a3ee4, - 0x6cb2324c, 0xd2317756, 0x6ca932ef, 0xd228b18d, - 0x6ca031da, 0xd21fed88, 0x6c972f0d, 0xd2172b48, - 0x6c8e2a87, 0xd20e6acc, 0x6c85244a, 0xd205ac17, - 0x6c7c1c55, 0xd1fcef27, 0x6c7312a9, 0xd1f433fd, - 0x6c6a0746, 0xd1eb7a9a, 0x6c60fa2d, 0xd1e2c2fd, - 0x6c57eb5e, 0xd1da0d28, 0x6c4edada, 0xd1d1591a, - 0x6c45c8a0, 0xd1c8a6d4, 0x6c3cb4b1, 0xd1bff656, - 0x6c339f0e, 0xd1b747a0, 0x6c2a87b6, 0xd1ae9ab4, - 0x6c216eaa, 0xd1a5ef90, 0x6c1853eb, 0xd19d4636, - 0x6c0f3779, 0xd1949ea6, 0x6c061953, 0xd18bf8e0, - 0x6bfcf97c, 0xd18354e4, 0x6bf3d7f2, 0xd17ab2b3, - 0x6beab4b6, 0xd172124d, 0x6be18fc9, 0xd16973b3, - 0x6bd8692b, 0xd160d6e5, 0x6bcf40dc, 0xd1583be2, - 0x6bc616dd, 0xd14fa2ad, 0x6bbceb2d, 0xd1470b44, - 0x6bb3bdce, 0xd13e75a8, 0x6baa8ec0, 0xd135e1d9, - 0x6ba15e03, 0xd12d4fd9, 0x6b982b97, 0xd124bfa6, - 0x6b8ef77d, 0xd11c3142, 0x6b85c1b5, 0xd113a4ad, - 0x6b7c8a3f, 0xd10b19e7, 0x6b73511c, 0xd10290f0, - 0x6b6a164d, 0xd0fa09c9, 0x6b60d9d0, 0xd0f18472, - 0x6b579ba8, 0xd0e900ec, 0x6b4e5bd4, 0xd0e07f36, - 0x6b451a55, 0xd0d7ff51, 0x6b3bd72a, 0xd0cf813e, - 0x6b329255, 0xd0c704fd, 0x6b294bd5, 0xd0be8a8d, - 0x6b2003ac, 0xd0b611f1, 0x6b16b9d9, 0xd0ad9b26, - 0x6b0d6e5c, 0xd0a5262f, 0x6b042137, 0xd09cb30b, - 0x6afad269, 0xd09441bb, 0x6af181f3, 0xd08bd23f, - 0x6ae82fd5, 0xd0836497, 0x6adedc10, 0xd07af8c4, - 0x6ad586a3, 0xd0728ec6, 0x6acc2f90, 0xd06a269d, - 0x6ac2d6d6, 0xd061c04a, 0x6ab97c77, 0xd0595bcd, - 0x6ab02071, 0xd050f926, 0x6aa6c2c6, 0xd0489856, - 0x6a9d6377, 0xd040395d, 0x6a940283, 0xd037dc3b, - 0x6a8a9fea, 0xd02f80f1, 0x6a813bae, 0xd027277e, - 0x6a77d5ce, 0xd01ecfe4, 0x6a6e6e4b, 0xd0167a22, - 0x6a650525, 0xd00e2639, 0x6a5b9a5d, 0xd005d42a, - 0x6a522df3, 0xcffd83f4, 0x6a48bfe7, 0xcff53597, - 0x6a3f503a, 0xcfece915, 0x6a35deeb, 0xcfe49e6d, - 0x6a2c6bfd, 0xcfdc55a1, 0x6a22f76e, 0xcfd40eaf, - 0x6a19813f, 0xcfcbc999, 0x6a100970, 0xcfc3865e, - 0x6a069003, 0xcfbb4500, 0x69fd14f6, 0xcfb3057d, - 0x69f3984c, 0xcfaac7d8, 0x69ea1a03, 0xcfa28c10, - 0x69e09a1c, 0xcf9a5225, 0x69d71899, 0xcf921a17, - 0x69cd9578, 0xcf89e3e8, 0x69c410ba, 0xcf81af97, - 0x69ba8a61, 0xcf797d24, 0x69b1026c, 0xcf714c91, - 0x69a778db, 0xcf691ddd, 0x699dedaf, 0xcf60f108, - 0x699460e8, 0xcf58c613, 0x698ad287, 0xcf509cfe, - 0x6981428c, 0xcf4875ca, 0x6977b0f7, 0xcf405077, - 0x696e1dc9, 0xcf382d05, 0x69648902, 0xcf300b74, - 0x695af2a3, 0xcf27ebc5, 0x69515aab, 0xcf1fcdf8, - 0x6947c11c, 0xcf17b20d, 0x693e25f5, 0xcf0f9805, - 0x69348937, 0xcf077fe1, 0x692aeae3, 0xceff699f, - 0x69214af8, 0xcef75541, 0x6917a977, 0xceef42c7, - 0x690e0661, 0xcee73231, 0x690461b5, 0xcedf2380, - 0x68fabb75, 0xced716b4, 0x68f113a0, 0xcecf0bcd, - 0x68e76a37, 0xcec702cb, 0x68ddbf3b, 0xcebefbb0, - 0x68d412ab, 0xceb6f67a, 0x68ca6488, 0xceaef32b, - 0x68c0b4d2, 0xcea6f1c2, 0x68b7038b, 0xce9ef241, - 0x68ad50b1, 0xce96f4a7, 0x68a39c46, 0xce8ef8f4, - 0x6899e64a, 0xce86ff2a, 0x68902ebd, 0xce7f0748, - 0x688675a0, 0xce77114e, 0x687cbaf3, 0xce6f1d3d, - 0x6872feb6, 0xce672b16, 0x686940ea, 0xce5f3ad8, - 0x685f8190, 0xce574c84, 0x6855c0a6, 0xce4f6019, - 0x684bfe2f, 0xce47759a, 0x68423a2a, 0xce3f8d05, - 0x68387498, 0xce37a65b, 0x682ead78, 0xce2fc19c, - 0x6824e4cc, 0xce27dec9, 0x681b1a94, 0xce1ffde2, - 0x68114ed0, 0xce181ee8, 0x68078181, 0xce1041d9, - 0x67fdb2a7, 0xce0866b8, 0x67f3e241, 0xce008d84, - 0x67ea1052, 0xcdf8b63d, 0x67e03cd8, 0xcdf0e0e4, - 0x67d667d5, 0xcde90d79, 0x67cc9149, 0xcde13bfd, - 0x67c2b934, 0xcdd96c6f, 0x67b8df97, 0xcdd19ed0, - 0x67af0472, 0xcdc9d320, 0x67a527c4, 0xcdc20960, - 0x679b4990, 0xcdba4190, 0x679169d5, 0xcdb27bb0, - 0x67878893, 0xcdaab7c0, 0x677da5cb, 0xcda2f5c2, - 0x6773c17d, 0xcd9b35b4, 0x6769dbaa, 0xcd937798, - 0x675ff452, 0xcd8bbb6d, 0x67560b76, 0xcd840134, - 0x674c2115, 0xcd7c48ee, 0x67423530, 0xcd74929a, - 0x673847c8, 0xcd6cde39, 0x672e58dc, 0xcd652bcb, - 0x6724686e, 0xcd5d7b50, 0x671a767e, 0xcd55ccca, - 0x6710830c, 0xcd4e2037, 0x67068e18, 0xcd467599, - 0x66fc97a3, 0xcd3eccef, 0x66f29fad, 0xcd37263a, - 0x66e8a637, 0xcd2f817b, 0x66deab41, 0xcd27deb0, - 0x66d4aecb, 0xcd203ddc, 0x66cab0d6, 0xcd189efe, - 0x66c0b162, 0xcd110216, 0x66b6b070, 0xcd096725, - 0x66acadff, 0xcd01ce2b, 0x66a2aa11, 0xccfa3729, - 0x6698a4a6, 0xccf2a21d, 0x668e9dbd, 0xcceb0f0a, - 0x66849558, 0xcce37def, 0x667a8b77, 0xccdbeecc, - 0x6670801a, 0xccd461a2, 0x66667342, 0xccccd671, - 0x665c64ef, 0xccc54d3a, 0x66525521, 0xccbdc5fc, - 0x664843d9, 0xccb640b8, 0x663e3117, 0xccaebd6e, - 0x66341cdb, 0xcca73c1e, 0x662a0727, 0xcc9fbcca, - 0x661feffa, 0xcc983f70, 0x6615d754, 0xcc90c412, - 0x660bbd37, 0xcc894aaf, 0x6601a1a2, 0xcc81d349, - 0x65f78497, 0xcc7a5dde, 0x65ed6614, 0xcc72ea70, - 0x65e3461b, 0xcc6b78ff, 0x65d924ac, 0xcc64098b, - 0x65cf01c8, 0xcc5c9c14, 0x65c4dd6e, 0xcc55309b, - 0x65bab7a0, 0xcc4dc720, 0x65b0905d, 0xcc465fa3, - 0x65a667a7, 0xcc3efa25, 0x659c3d7c, 0xcc3796a5, - 0x659211df, 0xcc303524, 0x6587e4cf, 0xcc28d5a3, - 0x657db64c, 0xcc217822, 0x65738657, 0xcc1a1ca0, - 0x656954f1, 0xcc12c31f, 0x655f2219, 0xcc0b6b9e, - 0x6554edd1, 0xcc04161e, 0x654ab818, 0xcbfcc29f, - 0x654080ef, 0xcbf57121, 0x65364857, 0xcbee21a5, - 0x652c0e4f, 0xcbe6d42b, 0x6521d2d8, 0xcbdf88b3, - 0x651795f3, 0xcbd83f3d, 0x650d57a0, 0xcbd0f7ca, - 0x650317df, 0xcbc9b25a, 0x64f8d6b0, 0xcbc26eee, - 0x64ee9415, 0xcbbb2d85, 0x64e4500e, 0xcbb3ee20, - 0x64da0a9a, 0xcbacb0bf, 0x64cfc3ba, 0xcba57563, - 0x64c57b6f, 0xcb9e3c0b, 0x64bb31ba, 0xcb9704b9, - 0x64b0e699, 0xcb8fcf6b, 0x64a69a0f, 0xcb889c23, - 0x649c4c1b, 0xcb816ae1, 0x6491fcbe, 0xcb7a3ba5, - 0x6487abf7, 0xcb730e70, 0x647d59c8, 0xcb6be341, - 0x64730631, 0xcb64ba19, 0x6468b132, 0xcb5d92f8, - 0x645e5acc, 0xcb566ddf, 0x645402ff, 0xcb4f4acd, - 0x6449a9cc, 0xcb4829c4, 0x643f4f32, 0xcb410ac3, - 0x6434f332, 0xcb39edca, 0x642a95ce, 0xcb32d2da, - 0x64203704, 0xcb2bb9f4, 0x6415d6d5, 0xcb24a316, - 0x640b7543, 0xcb1d8e43, 0x6401124d, 0xcb167b79, - 0x63f6adf3, 0xcb0f6aba, 0x63ec4837, 0xcb085c05, - 0x63e1e117, 0xcb014f5b, 0x63d77896, 0xcafa44bc, - 0x63cd0eb3, 0xcaf33c28, 0x63c2a36f, 0xcaec35a0, - 0x63b836ca, 0xcae53123, 0x63adc8c4, 0xcade2eb3, - 0x63a3595e, 0xcad72e4f, 0x6398e898, 0xcad02ff8, - 0x638e7673, 0xcac933ae, 0x638402ef, 0xcac23971, - 0x63798e0d, 0xcabb4141, 0x636f17cc, 0xcab44b1f, - 0x6364a02e, 0xcaad570c, 0x635a2733, 0xcaa66506, - 0x634facda, 0xca9f750f, 0x63453125, 0xca988727, - 0x633ab414, 0xca919b4e, 0x633035a7, 0xca8ab184, - 0x6325b5df, 0xca83c9ca, 0x631b34bc, 0xca7ce420, - 0x6310b23e, 0xca760086, 0x63062e67, 0xca6f1efc, - 0x62fba936, 0xca683f83, 0x62f122ab, 0xca61621b, - 0x62e69ac8, 0xca5a86c4, 0x62dc118c, 0xca53ad7e, - 0x62d186f8, 0xca4cd64b, 0x62c6fb0c, 0xca460129, - 0x62bc6dca, 0xca3f2e19, 0x62b1df30, 0xca385d1d, - 0x62a74f40, 0xca318e32, 0x629cbdfa, 0xca2ac15b, - 0x62922b5e, 0xca23f698, 0x6287976e, 0xca1d2de7, - 0x627d0228, 0xca16674b, 0x62726b8e, 0xca0fa2c3, - 0x6267d3a0, 0xca08e04f, 0x625d3a5e, 0xca021fef, - 0x62529fca, 0xc9fb61a5, 0x624803e2, 0xc9f4a570, - 0x623d66a8, 0xc9edeb50, 0x6232c81c, 0xc9e73346, - 0x6228283f, 0xc9e07d51, 0x621d8711, 0xc9d9c973, - 0x6212e492, 0xc9d317ab, 0x620840c2, 0xc9cc67fa, - 0x61fd9ba3, 0xc9c5ba60, 0x61f2f534, 0xc9bf0edd, - 0x61e84d76, 0xc9b86572, 0x61dda46a, 0xc9b1be1e, - 0x61d2fa0f, 0xc9ab18e3, 0x61c84e67, 0xc9a475bf, - 0x61bda171, 0xc99dd4b4, 0x61b2f32e, 0xc99735c2, - 0x61a8439e, 0xc99098e9, 0x619d92c2, 0xc989fe29, - 0x6192e09b, 0xc9836582, 0x61882d28, 0xc97ccef5, - 0x617d786a, 0xc9763a83, 0x6172c262, 0xc96fa82a, - 0x61680b0f, 0xc96917ec, 0x615d5273, 0xc96289c9, - 0x6152988d, 0xc95bfdc1, 0x6147dd5f, 0xc95573d4, - 0x613d20e8, 0xc94eec03, 0x61326329, 0xc948664d, - 0x6127a423, 0xc941e2b4, 0x611ce3d5, 0xc93b6137, - 0x61122240, 0xc934e1d6, 0x61075f65, 0xc92e6492, - 0x60fc9b44, 0xc927e96b, 0x60f1d5de, 0xc9217062, - 0x60e70f32, 0xc91af976, 0x60dc4742, 0xc91484a8, - 0x60d17e0d, 0xc90e11f7, 0x60c6b395, 0xc907a166, - 0x60bbe7d8, 0xc90132f2, 0x60b11ad9, 0xc8fac69e, - 0x60a64c97, 0xc8f45c68, 0x609b7d13, 0xc8edf452, - 0x6090ac4d, 0xc8e78e5b, 0x6085da46, 0xc8e12a84, - 0x607b06fe, 0xc8dac8cd, 0x60703275, 0xc8d46936, - 0x60655cac, 0xc8ce0bc0, 0x605a85a3, 0xc8c7b06b, - 0x604fad5b, 0xc8c15736, 0x6044d3d4, 0xc8bb0023, - 0x6039f90f, 0xc8b4ab32, 0x602f1d0b, 0xc8ae5862, - 0x60243fca, 0xc8a807b4, 0x6019614c, 0xc8a1b928, - 0x600e8190, 0xc89b6cbf, 0x6003a099, 0xc8952278, - 0x5ff8be65, 0xc88eda54, 0x5feddaf6, 0xc8889454, - 0x5fe2f64c, 0xc8825077, 0x5fd81067, 0xc87c0ebd, - 0x5fcd2948, 0xc875cf28, 0x5fc240ef, 0xc86f91b7, - 0x5fb7575c, 0xc869566a, 0x5fac6c91, 0xc8631d42, - 0x5fa1808c, 0xc85ce63e, 0x5f969350, 0xc856b160, - 0x5f8ba4dc, 0xc8507ea7, 0x5f80b531, 0xc84a4e14, - 0x5f75c44e, 0xc8441fa6, 0x5f6ad235, 0xc83df35f, - 0x5f5fdee6, 0xc837c93e, 0x5f54ea62, 0xc831a143, - 0x5f49f4a8, 0xc82b7b70, 0x5f3efdb9, 0xc82557c3, - 0x5f340596, 0xc81f363d, 0x5f290c3f, 0xc81916df, - 0x5f1e11b5, 0xc812f9a9, 0x5f1315f7, 0xc80cde9b, - 0x5f081907, 0xc806c5b5, 0x5efd1ae4, 0xc800aef7, - 0x5ef21b90, 0xc7fa9a62, 0x5ee71b0a, 0xc7f487f6, - 0x5edc1953, 0xc7ee77b3, 0x5ed1166b, 0xc7e8699a, - 0x5ec61254, 0xc7e25daa, 0x5ebb0d0d, 0xc7dc53e3, - 0x5eb00696, 0xc7d64c47, 0x5ea4fef0, 0xc7d046d6, - 0x5e99f61d, 0xc7ca438f, 0x5e8eec1b, 0xc7c44272, - 0x5e83e0eb, 0xc7be4381, 0x5e78d48e, 0xc7b846ba, - 0x5e6dc705, 0xc7b24c20, 0x5e62b84f, 0xc7ac53b1, - 0x5e57a86d, 0xc7a65d6e, 0x5e4c9760, 0xc7a06957, - 0x5e418528, 0xc79a776c, 0x5e3671c5, 0xc79487ae, - 0x5e2b5d38, 0xc78e9a1d, 0x5e204781, 0xc788aeb9, - 0x5e1530a1, 0xc782c582, 0x5e0a1898, 0xc77cde79, - 0x5dfeff67, 0xc776f99d, 0x5df3e50d, 0xc77116f0, - 0x5de8c98c, 0xc76b3671, 0x5dddace4, 0xc7655820, - 0x5dd28f15, 0xc75f7bfe, 0x5dc7701f, 0xc759a20a, - 0x5dbc5004, 0xc753ca46, 0x5db12ec3, 0xc74df4b1, - 0x5da60c5d, 0xc748214c, 0x5d9ae8d2, 0xc7425016, - 0x5d8fc424, 0xc73c8111, 0x5d849e51, 0xc736b43c, - 0x5d79775c, 0xc730e997, 0x5d6e4f43, 0xc72b2123, - 0x5d632608, 0xc7255ae0, 0x5d57fbaa, 0xc71f96ce, - 0x5d4cd02c, 0xc719d4ed, 0x5d41a38c, 0xc714153e, - 0x5d3675cb, 0xc70e57c0, 0x5d2b46ea, 0xc7089c75, - 0x5d2016e9, 0xc702e35c, 0x5d14e5c9, 0xc6fd2c75, - 0x5d09b389, 0xc6f777c1, 0x5cfe802b, 0xc6f1c540, - 0x5cf34baf, 0xc6ec14f2, 0x5ce81615, 0xc6e666d7, - 0x5cdcdf5e, 0xc6e0baf0, 0x5cd1a78a, 0xc6db113d, - 0x5cc66e99, 0xc6d569be, 0x5cbb348d, 0xc6cfc472, - 0x5caff965, 0xc6ca215c, 0x5ca4bd21, 0xc6c4807a, - 0x5c997fc4, 0xc6bee1cd, 0x5c8e414b, 0xc6b94554, - 0x5c8301b9, 0xc6b3ab12, 0x5c77c10e, 0xc6ae1304, - 0x5c6c7f4a, 0xc6a87d2d, 0x5c613c6d, 0xc6a2e98b, - 0x5c55f878, 0xc69d5820, 0x5c4ab36b, 0xc697c8eb, - 0x5c3f6d47, 0xc6923bec, 0x5c34260c, 0xc68cb124, - 0x5c28ddbb, 0xc6872894, 0x5c1d9454, 0xc681a23a, - 0x5c1249d8, 0xc67c1e18, 0x5c06fe46, 0xc6769c2e, - 0x5bfbb1a0, 0xc6711c7b, 0x5bf063e6, 0xc66b9f01, - 0x5be51518, 0xc66623be, 0x5bd9c537, 0xc660aab5, - 0x5bce7442, 0xc65b33e4, 0x5bc3223c, 0xc655bf4c, - 0x5bb7cf23, 0xc6504ced, 0x5bac7af9, 0xc64adcc7, - 0x5ba125bd, 0xc6456edb, 0x5b95cf71, 0xc6400329, - 0x5b8a7815, 0xc63a99b1, 0x5b7f1fa9, 0xc6353273, - 0x5b73c62d, 0xc62fcd6f, 0x5b686ba3, 0xc62a6aa6, - 0x5b5d100a, 0xc6250a18, 0x5b51b363, 0xc61fabc4, - 0x5b4655ae, 0xc61a4fac, 0x5b3af6ec, 0xc614f5cf, - 0x5b2f971e, 0xc60f9e2e, 0x5b243643, 0xc60a48c9, - 0x5b18d45c, 0xc604f5a0, 0x5b0d716a, 0xc5ffa4b3, - 0x5b020d6c, 0xc5fa5603, 0x5af6a865, 0xc5f5098f, - 0x5aeb4253, 0xc5efbf58, 0x5adfdb37, 0xc5ea775e, - 0x5ad47312, 0xc5e531a1, 0x5ac909e5, 0xc5dfee22, - 0x5abd9faf, 0xc5daace1, 0x5ab23471, 0xc5d56ddd, - 0x5aa6c82b, 0xc5d03118, 0x5a9b5adf, 0xc5caf690, - 0x5a8fec8c, 0xc5c5be47, 0x5a847d33, 0xc5c0883d, - 0x5a790cd4, 0xc5bb5472, 0x5a6d9b70, 0xc5b622e6, - 0x5a622907, 0xc5b0f399, 0x5a56b599, 0xc5abc68c, - 0x5a4b4128, 0xc5a69bbe, 0x5a3fcbb3, 0xc5a17330, - 0x5a34553b, 0xc59c4ce3, 0x5a28ddc0, 0xc59728d5, - 0x5a1d6544, 0xc5920708, 0x5a11ebc5, 0xc58ce77c, - 0x5a067145, 0xc587ca31, 0x59faf5c5, 0xc582af26, - 0x59ef7944, 0xc57d965d, 0x59e3fbc3, 0xc5787fd6, - 0x59d87d42, 0xc5736b90, 0x59ccfdc2, 0xc56e598c, - 0x59c17d44, 0xc56949ca, 0x59b5fbc8, 0xc5643c4a, - 0x59aa794d, 0xc55f310d, 0x599ef5d6, 0xc55a2812, - 0x59937161, 0xc555215a, 0x5987ebf0, 0xc5501ce5, - 0x597c6584, 0xc54b1ab4, 0x5970de1b, 0xc5461ac6, - 0x596555b8, 0xc5411d1b, 0x5959cc5a, 0xc53c21b4, - 0x594e4201, 0xc5372891, 0x5942b6af, 0xc53231b3, - 0x59372a64, 0xc52d3d18, 0x592b9d1f, 0xc5284ac3, - 0x59200ee3, 0xc5235ab2, 0x59147fae, 0xc51e6ce6, - 0x5908ef82, 0xc519815f, 0x58fd5e5f, 0xc514981d, - 0x58f1cc45, 0xc50fb121, 0x58e63935, 0xc50acc6b, - 0x58daa52f, 0xc505e9fb, 0x58cf1034, 0xc50109d0, - 0x58c37a44, 0xc4fc2bec, 0x58b7e35f, 0xc4f7504e, - 0x58ac4b87, 0xc4f276f7, 0x58a0b2bb, 0xc4ed9fe7, - 0x589518fc, 0xc4e8cb1e, 0x58897e4a, 0xc4e3f89c, - 0x587de2a7, 0xc4df2862, 0x58724611, 0xc4da5a6f, - 0x5866a88a, 0xc4d58ec3, 0x585b0a13, 0xc4d0c560, - 0x584f6aab, 0xc4cbfe45, 0x5843ca53, 0xc4c73972, - 0x5838290c, 0xc4c276e8, 0x582c86d5, 0xc4bdb6a6, - 0x5820e3b0, 0xc4b8f8ad, 0x58153f9d, 0xc4b43cfd, - 0x58099a9c, 0xc4af8397, 0x57fdf4ae, 0xc4aacc7a, - 0x57f24dd3, 0xc4a617a6, 0x57e6a60c, 0xc4a1651c, - 0x57dafd59, 0xc49cb4dd, 0x57cf53bb, 0xc49806e7, - 0x57c3a931, 0xc4935b3c, 0x57b7fdbd, 0xc48eb1db, - 0x57ac515f, 0xc48a0ac4, 0x57a0a417, 0xc48565f9, - 0x5794f5e6, 0xc480c379, 0x578946cc, 0xc47c2344, - 0x577d96ca, 0xc477855a, 0x5771e5e0, 0xc472e9bc, - 0x5766340f, 0xc46e5069, 0x575a8157, 0xc469b963, - 0x574ecdb8, 0xc46524a9, 0x57431933, 0xc460923b, - 0x573763c9, 0xc45c0219, 0x572bad7a, 0xc4577444, - 0x571ff646, 0xc452e8bc, 0x57143e2d, 0xc44e5f80, - 0x57088531, 0xc449d892, 0x56fccb51, 0xc44553f2, - 0x56f1108f, 0xc440d19e, 0x56e554ea, 0xc43c5199, - 0x56d99864, 0xc437d3e1, 0x56cddafb, 0xc4335877, - 0x56c21cb2, 0xc42edf5c, 0x56b65d88, 0xc42a688f, - 0x56aa9d7e, 0xc425f410, 0x569edc94, 0xc42181e0, - 0x56931acb, 0xc41d11ff, 0x56875823, 0xc418a46d, - 0x567b949d, 0xc414392b, 0x566fd039, 0xc40fd037, - 0x56640af7, 0xc40b6994, 0x565844d8, 0xc4070540, - 0x564c7ddd, 0xc402a33c, 0x5640b606, 0xc3fe4388, - 0x5634ed53, 0xc3f9e624, 0x562923c5, 0xc3f58b10, - 0x561d595d, 0xc3f1324e, 0x56118e1a, 0xc3ecdbdc, - 0x5605c1fd, 0xc3e887bb, 0x55f9f507, 0xc3e435ea, - 0x55ee2738, 0xc3dfe66c, 0x55e25890, 0xc3db993e, - 0x55d68911, 0xc3d74e62, 0x55cab8ba, 0xc3d305d8, - 0x55bee78c, 0xc3cebfa0, 0x55b31587, 0xc3ca7bba, - 0x55a742ac, 0xc3c63a26, 0x559b6efb, 0xc3c1fae5, - 0x558f9a76, 0xc3bdbdf6, 0x5583c51b, 0xc3b9835a, - 0x5577eeec, 0xc3b54b11, 0x556c17e9, 0xc3b1151b, - 0x55604013, 0xc3ace178, 0x5554676a, 0xc3a8b028, - 0x55488dee, 0xc3a4812c, 0x553cb3a0, 0xc3a05484, - 0x5530d881, 0xc39c2a2f, 0x5524fc90, 0xc398022f, - 0x55191fcf, 0xc393dc82, 0x550d423d, 0xc38fb92a, - 0x550163dc, 0xc38b9827, 0x54f584ac, 0xc3877978, - 0x54e9a4ac, 0xc3835d1e, 0x54ddc3de, 0xc37f4319, - 0x54d1e242, 0xc37b2b6a, 0x54c5ffd9, 0xc377160f, - 0x54ba1ca3, 0xc373030a, 0x54ae38a0, 0xc36ef25b, - 0x54a253d1, 0xc36ae401, 0x54966e36, 0xc366d7fd, - 0x548a87d1, 0xc362ce50, 0x547ea0a0, 0xc35ec6f8, - 0x5472b8a5, 0xc35ac1f7, 0x5466cfe1, 0xc356bf4d, - 0x545ae653, 0xc352bef9, 0x544efbfc, 0xc34ec0fc, - 0x544310dd, 0xc34ac556, 0x543724f5, 0xc346cc07, - 0x542b3846, 0xc342d510, 0x541f4ad1, 0xc33ee070, - 0x54135c94, 0xc33aee27, 0x54076d91, 0xc336fe37, - 0x53fb7dc9, 0xc333109e, 0x53ef8d3c, 0xc32f255e, - 0x53e39be9, 0xc32b3c75, 0x53d7a9d3, 0xc32755e5, - 0x53cbb6f8, 0xc32371ae, 0x53bfc35b, 0xc31f8fcf, - 0x53b3cefa, 0xc31bb049, 0x53a7d9d7, 0xc317d31c, - 0x539be3f2, 0xc313f848, 0x538fed4b, 0xc3101fce, - 0x5383f5e3, 0xc30c49ad, 0x5377fdbb, 0xc30875e5, - 0x536c04d2, 0xc304a477, 0x53600b2a, 0xc300d563, - 0x535410c3, 0xc2fd08a9, 0x5348159d, 0xc2f93e4a, - 0x533c19b8, 0xc2f57644, 0x53301d16, 0xc2f1b099, - 0x53241fb6, 0xc2eded49, 0x5318219a, 0xc2ea2c53, - 0x530c22c1, 0xc2e66db8, 0x5300232c, 0xc2e2b178, - 0x52f422db, 0xc2def794, 0x52e821cf, 0xc2db400a, - 0x52dc2009, 0xc2d78add, 0x52d01d89, 0xc2d3d80a, - 0x52c41a4f, 0xc2d02794, 0x52b8165b, 0xc2cc7979, - 0x52ac11af, 0xc2c8cdbb, 0x52a00c4b, 0xc2c52459, - 0x5294062f, 0xc2c17d52, 0x5287ff5b, 0xc2bdd8a9, - 0x527bf7d1, 0xc2ba365c, 0x526fef90, 0xc2b6966c, - 0x5263e699, 0xc2b2f8d8, 0x5257dced, 0xc2af5da2, - 0x524bd28c, 0xc2abc4c9, 0x523fc776, 0xc2a82e4d, - 0x5233bbac, 0xc2a49a2e, 0x5227af2e, 0xc2a1086d, - 0x521ba1fd, 0xc29d790a, 0x520f941a, 0xc299ec05, - 0x52038584, 0xc296615d, 0x51f7763c, 0xc292d914, - 0x51eb6643, 0xc28f5329, 0x51df5599, 0xc28bcf9c, - 0x51d3443f, 0xc2884e6e, 0x51c73235, 0xc284cf9f, - 0x51bb1f7c, 0xc281532e, 0x51af0c13, 0xc27dd91c, - 0x51a2f7fc, 0xc27a616a, 0x5196e337, 0xc276ec16, - 0x518acdc4, 0xc2737922, 0x517eb7a4, 0xc270088e, - 0x5172a0d7, 0xc26c9a58, 0x5166895f, 0xc2692e83, - 0x515a713a, 0xc265c50e, 0x514e586a, 0xc2625df8, - 0x51423ef0, 0xc25ef943, 0x513624cb, 0xc25b96ee, - 0x512a09fc, 0xc25836f9, 0x511dee84, 0xc254d965, - 0x5111d263, 0xc2517e31, 0x5105b599, 0xc24e255e, - 0x50f99827, 0xc24aceed, 0x50ed7a0e, 0xc2477adc, - 0x50e15b4e, 0xc244292c, 0x50d53be7, 0xc240d9de, - 0x50c91bda, 0xc23d8cf1, 0x50bcfb28, 0xc23a4265, - 0x50b0d9d0, 0xc236fa3b, 0x50a4b7d3, 0xc233b473, - 0x50989532, 0xc230710d, 0x508c71ee, 0xc22d3009, - 0x50804e06, 0xc229f167, 0x5074297b, 0xc226b528, - 0x5068044e, 0xc2237b4b, 0x505bde7f, 0xc22043d0, - 0x504fb80e, 0xc21d0eb8, 0x504390fd, 0xc219dc03, - 0x5037694b, 0xc216abb1, 0x502b40f8, 0xc2137dc2, - 0x501f1807, 0xc2105236, 0x5012ee76, 0xc20d290d, - 0x5006c446, 0xc20a0248, 0x4ffa9979, 0xc206dde6, - 0x4fee6e0d, 0xc203bbe8, 0x4fe24205, 0xc2009c4e, - 0x4fd6155f, 0xc1fd7f17, 0x4fc9e81e, 0xc1fa6445, - 0x4fbdba40, 0xc1f74bd6, 0x4fb18bc8, 0xc1f435cc, - 0x4fa55cb4, 0xc1f12227, 0x4f992d06, 0xc1ee10e5, - 0x4f8cfcbe, 0xc1eb0209, 0x4f80cbdc, 0xc1e7f591, - 0x4f749a61, 0xc1e4eb7e, 0x4f68684e, 0xc1e1e3d0, - 0x4f5c35a3, 0xc1dede87, 0x4f500260, 0xc1dbdba3, - 0x4f43ce86, 0xc1d8db25, 0x4f379a16, 0xc1d5dd0c, - 0x4f2b650f, 0xc1d2e158, 0x4f1f2f73, 0xc1cfe80a, - 0x4f12f941, 0xc1ccf122, 0x4f06c27a, 0xc1c9fca0, - 0x4efa8b20, 0xc1c70a84, 0x4eee5331, 0xc1c41ace, - 0x4ee21aaf, 0xc1c12d7e, 0x4ed5e19a, 0xc1be4294, - 0x4ec9a7f3, 0xc1bb5a11, 0x4ebd6db9, 0xc1b873f5, - 0x4eb132ef, 0xc1b5903f, 0x4ea4f793, 0xc1b2aef0, - 0x4e98bba7, 0xc1afd007, 0x4e8c7f2a, 0xc1acf386, - 0x4e80421e, 0xc1aa196c, 0x4e740483, 0xc1a741b9, - 0x4e67c65a, 0xc1a46c6e, 0x4e5b87a2, 0xc1a1998a, - 0x4e4f485c, 0xc19ec90d, 0x4e430889, 0xc19bfaf9, - 0x4e36c82a, 0xc1992f4c, 0x4e2a873e, 0xc1966606, - 0x4e1e45c6, 0xc1939f29, 0x4e1203c3, 0xc190dab4, - 0x4e05c135, 0xc18e18a7, 0x4df97e1d, 0xc18b5903, - 0x4ded3a7b, 0xc1889bc6, 0x4de0f64f, 0xc185e0f3, - 0x4dd4b19a, 0xc1832888, 0x4dc86c5d, 0xc1807285, - 0x4dbc2698, 0xc17dbeec, 0x4dafe04b, 0xc17b0dbb, - 0x4da39978, 0xc1785ef4, 0x4d97521d, 0xc175b296, - 0x4d8b0a3d, 0xc17308a1, 0x4d7ec1d6, 0xc1706115, - 0x4d7278eb, 0xc16dbbf3, 0x4d662f7b, 0xc16b193a, - 0x4d59e586, 0xc16878eb, 0x4d4d9b0e, 0xc165db05, - 0x4d415013, 0xc1633f8a, 0x4d350495, 0xc160a678, - 0x4d28b894, 0xc15e0fd1, 0x4d1c6c11, 0xc15b7b94, - 0x4d101f0e, 0xc158e9c1, 0x4d03d189, 0xc1565a58, - 0x4cf78383, 0xc153cd5a, 0x4ceb34fe, 0xc15142c6, - 0x4cdee5f9, 0xc14eba9d, 0x4cd29676, 0xc14c34df, - 0x4cc64673, 0xc149b18b, 0x4cb9f5f3, 0xc14730a3, - 0x4cada4f5, 0xc144b225, 0x4ca1537a, 0xc1423613, - 0x4c950182, 0xc13fbc6c, 0x4c88af0e, 0xc13d4530, - 0x4c7c5c1e, 0xc13ad060, 0x4c7008b3, 0xc1385dfb, - 0x4c63b4ce, 0xc135ee02, 0x4c57606e, 0xc1338075, - 0x4c4b0b94, 0xc1311553, 0x4c3eb641, 0xc12eac9d, - 0x4c326075, 0xc12c4653, 0x4c260a31, 0xc129e276, - 0x4c19b374, 0xc1278104, 0x4c0d5c41, 0xc12521ff, - 0x4c010496, 0xc122c566, 0x4bf4ac75, 0xc1206b39, - 0x4be853de, 0xc11e1379, 0x4bdbfad1, 0xc11bbe26, - 0x4bcfa150, 0xc1196b3f, 0x4bc34759, 0xc1171ac6, - 0x4bb6ecef, 0xc114ccb9, 0x4baa9211, 0xc1128119, - 0x4b9e36c0, 0xc11037e6, 0x4b91dafc, 0xc10df120, - 0x4b857ec7, 0xc10bacc8, 0x4b79221f, 0xc1096add, - 0x4b6cc506, 0xc1072b5f, 0x4b60677c, 0xc104ee4f, - 0x4b540982, 0xc102b3ac, 0x4b47ab19, 0xc1007b77, - 0x4b3b4c40, 0xc0fe45b0, 0x4b2eecf8, 0xc0fc1257, - 0x4b228d42, 0xc0f9e16b, 0x4b162d1d, 0xc0f7b2ee, - 0x4b09cc8c, 0xc0f586df, 0x4afd6b8d, 0xc0f35d3e, - 0x4af10a22, 0xc0f1360b, 0x4ae4a84b, 0xc0ef1147, - 0x4ad84609, 0xc0eceef1, 0x4acbe35b, 0xc0eacf09, - 0x4abf8043, 0xc0e8b190, 0x4ab31cc1, 0xc0e69686, - 0x4aa6b8d5, 0xc0e47deb, 0x4a9a5480, 0xc0e267be, - 0x4a8defc3, 0xc0e05401, 0x4a818a9d, 0xc0de42b2, - 0x4a752510, 0xc0dc33d2, 0x4a68bf1b, 0xc0da2762, - 0x4a5c58c0, 0xc0d81d61, 0x4a4ff1fe, 0xc0d615cf, - 0x4a438ad7, 0xc0d410ad, 0x4a37234a, 0xc0d20dfa, - 0x4a2abb59, 0xc0d00db6, 0x4a1e5303, 0xc0ce0fe3, - 0x4a11ea49, 0xc0cc147f, 0x4a05812c, 0xc0ca1b8a, - 0x49f917ac, 0xc0c82506, 0x49ecadc9, 0xc0c630f2, - 0x49e04385, 0xc0c43f4d, 0x49d3d8df, 0xc0c25019, - 0x49c76dd8, 0xc0c06355, 0x49bb0271, 0xc0be7901, - 0x49ae96aa, 0xc0bc911d, 0x49a22a83, 0xc0baabaa, - 0x4995bdfd, 0xc0b8c8a7, 0x49895118, 0xc0b6e815, - 0x497ce3d5, 0xc0b509f3, 0x49707635, 0xc0b32e42, - 0x49640837, 0xc0b15502, 0x495799dd, 0xc0af7e33, - 0x494b2b27, 0xc0ada9d4, 0x493ebc14, 0xc0abd7e6, - 0x49324ca7, 0xc0aa086a, 0x4925dcdf, 0xc0a83b5e, - 0x49196cbc, 0xc0a670c4, 0x490cfc40, 0xc0a4a89b, - 0x49008b6a, 0xc0a2e2e3, 0x48f41a3c, 0xc0a11f9d, - 0x48e7a8b5, 0xc09f5ec8, 0x48db36d6, 0xc09da065, - 0x48cec4a0, 0xc09be473, 0x48c25213, 0xc09a2af3, - 0x48b5df30, 0xc09873e4, 0x48a96bf6, 0xc096bf48, - 0x489cf867, 0xc0950d1d, 0x48908483, 0xc0935d64, - 0x4884104b, 0xc091b01d, 0x48779bbe, 0xc0900548, - 0x486b26de, 0xc08e5ce5, 0x485eb1ab, 0xc08cb6f5, - 0x48523c25, 0xc08b1376, 0x4845c64d, 0xc089726a, - 0x48395024, 0xc087d3d0, 0x482cd9a9, 0xc08637a9, - 0x482062de, 0xc0849df4, 0x4813ebc2, 0xc08306b2, - 0x48077457, 0xc08171e2, 0x47fafc9c, 0xc07fdf85, - 0x47ee8493, 0xc07e4f9b, 0x47e20c3b, 0xc07cc223, - 0x47d59396, 0xc07b371e, 0x47c91aa3, 0xc079ae8c, - 0x47bca163, 0xc078286e, 0x47b027d7, 0xc076a4c2, - 0x47a3adff, 0xc0752389, 0x479733dc, 0xc073a4c3, - 0x478ab96e, 0xc0722871, 0x477e3eb5, 0xc070ae92, - 0x4771c3b3, 0xc06f3726, 0x47654867, 0xc06dc22e, - 0x4758ccd2, 0xc06c4fa8, 0x474c50f4, 0xc06adf97, - 0x473fd4cf, 0xc06971f9, 0x47335862, 0xc06806ce, - 0x4726dbae, 0xc0669e18, 0x471a5eb3, 0xc06537d4, - 0x470de172, 0xc063d405, 0x470163eb, 0xc06272aa, - 0x46f4e620, 0xc06113c2, 0x46e86810, 0xc05fb74e, - 0x46dbe9bb, 0xc05e5d4e, 0x46cf6b23, 0xc05d05c3, - 0x46c2ec48, 0xc05bb0ab, 0x46b66d29, 0xc05a5e07, - 0x46a9edc9, 0xc0590dd8, 0x469d6e27, 0xc057c01d, - 0x4690ee44, 0xc05674d6, 0x46846e1f, 0xc0552c03, - 0x4677edbb, 0xc053e5a5, 0x466b6d16, 0xc052a1bb, - 0x465eec33, 0xc0516045, 0x46526b10, 0xc0502145, - 0x4645e9af, 0xc04ee4b8, 0x46396810, 0xc04daaa1, - 0x462ce634, 0xc04c72fe, 0x4620641a, 0xc04b3dcf, - 0x4613e1c5, 0xc04a0b16, 0x46075f33, 0xc048dad1, - 0x45fadc66, 0xc047ad01, 0x45ee595d, 0xc04681a6, - 0x45e1d61b, 0xc04558c0, 0x45d5529e, 0xc044324f, - 0x45c8cee7, 0xc0430e53, 0x45bc4af8, 0xc041eccc, - 0x45afc6d0, 0xc040cdba, 0x45a3426f, 0xc03fb11d, - 0x4596bdd7, 0xc03e96f6, 0x458a3908, 0xc03d7f44, - 0x457db403, 0xc03c6a07, 0x45712ec7, 0xc03b573f, - 0x4564a955, 0xc03a46ed, 0x455823ae, 0xc0393910, - 0x454b9dd3, 0xc0382da8, 0x453f17c3, 0xc03724b6, - 0x4532917f, 0xc0361e3a, 0x45260b08, 0xc0351a33, - 0x4519845e, 0xc03418a2, 0x450cfd82, 0xc0331986, - 0x45007674, 0xc0321ce0, 0x44f3ef35, 0xc03122b0, - 0x44e767c5, 0xc0302af5, 0x44dae024, 0xc02f35b1, - 0x44ce5854, 0xc02e42e2, 0x44c1d054, 0xc02d5289, - 0x44b54825, 0xc02c64a6, 0x44a8bfc7, 0xc02b7939, - 0x449c373c, 0xc02a9042, 0x448fae83, 0xc029a9c1, - 0x4483259d, 0xc028c5b6, 0x44769c8b, 0xc027e421, - 0x446a134c, 0xc0270502, 0x445d89e2, 0xc0262859, - 0x4451004d, 0xc0254e27, 0x4444768d, 0xc024766a, - 0x4437eca4, 0xc023a124, 0x442b6290, 0xc022ce54, - 0x441ed854, 0xc021fdfb, 0x44124dee, 0xc0213018, - 0x4405c361, 0xc02064ab, 0x43f938ac, 0xc01f9bb5, - 0x43ecadcf, 0xc01ed535, 0x43e022cc, 0xc01e112b, - 0x43d397a3, 0xc01d4f99, 0x43c70c54, 0xc01c907c, - 0x43ba80df, 0xc01bd3d6, 0x43adf546, 0xc01b19a7, - 0x43a16988, 0xc01a61ee, 0x4394dda7, 0xc019acac, - 0x438851a2, 0xc018f9e1, 0x437bc57b, 0xc018498c, - 0x436f3931, 0xc0179bae, 0x4362acc5, 0xc016f047, - 0x43562038, 0xc0164757, 0x43499389, 0xc015a0dd, - 0x433d06bb, 0xc014fcda, 0x433079cc, 0xc0145b4e, - 0x4323ecbe, 0xc013bc39, 0x43175f91, 0xc0131f9b, - 0x430ad245, 0xc0128574, 0x42fe44dc, 0xc011edc3, - 0x42f1b755, 0xc011588a, 0x42e529b0, 0xc010c5c7, - 0x42d89bf0, 0xc010357c, 0x42cc0e13, 0xc00fa7a8, - 0x42bf801a, 0xc00f1c4a, 0x42b2f207, 0xc00e9364, - 0x42a663d8, 0xc00e0cf5, 0x4299d590, 0xc00d88fd, - 0x428d472e, 0xc00d077c, 0x4280b8b3, 0xc00c8872, - 0x42742a1f, 0xc00c0be0, 0x42679b73, 0xc00b91c4, - 0x425b0caf, 0xc00b1a20, 0x424e7dd4, 0xc00aa4f3, - 0x4241eee2, 0xc00a323d, 0x42355fd9, 0xc009c1ff, - 0x4228d0bb, 0xc0095438, 0x421c4188, 0xc008e8e8, - 0x420fb240, 0xc008800f, 0x420322e3, 0xc00819ae, - 0x41f69373, 0xc007b5c4, 0x41ea03ef, 0xc0075452, - 0x41dd7459, 0xc006f556, 0x41d0e4b0, 0xc00698d3, - 0x41c454f5, 0xc0063ec6, 0x41b7c528, 0xc005e731, - 0x41ab354b, 0xc0059214, 0x419ea55d, 0xc0053f6e, - 0x4192155f, 0xc004ef3f, 0x41858552, 0xc004a188, - 0x4178f536, 0xc0045648, 0x416c650b, 0xc0040d80, - 0x415fd4d2, 0xc003c72f, 0x4153448c, 0xc0038356, - 0x4146b438, 0xc00341f4, 0x413a23d8, 0xc003030a, - 0x412d936c, 0xc002c697, 0x412102f4, 0xc0028c9c, - 0x41147271, 0xc0025519, 0x4107e1e3, 0xc002200d, - 0x40fb514b, 0xc001ed78, 0x40eec0aa, 0xc001bd5c, - 0x40e22fff, 0xc0018fb6, 0x40d59f4c, 0xc0016489, - 0x40c90e90, 0xc0013bd3, 0x40bc7dcc, 0xc0011594, - 0x40afed02, 0xc000f1ce, 0x40a35c30, 0xc000d07e, - 0x4096cb58, 0xc000b1a7, 0x408a3a7b, 0xc0009547, - 0x407da998, 0xc0007b5f, 0x407118b0, 0xc00063ee, - 0x406487c4, 0xc0004ef5, 0x4057f6d4, 0xc0003c74, - 0x404b65e1, 0xc0002c6a, 0x403ed4ea, 0xc0001ed8, - 0x403243f1, 0xc00013bd, 0x4025b2f7, 0xc0000b1a, - 0x401921fb, 0xc00004ef, 0x400c90fe, 0xc000013c, -}; - -/** -* @brief Initialization function for the Q31 RFFT/RIFFT. -* @param[in, out] *S points to an instance of the Q31 RFFT/RIFFT structure. -* @param[in, out] *S_CFFT points to an instance of the Q31 CFFT/CIFFT structure. -* @param[in] fftLenReal length of the FFT. -* @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. -* -* \par Description: -* \par -* The parameter fftLenReal Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 128, 512, 2048. -* \par -* The parameter ifftFlagR controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* This function also initializes Twiddle factor table. -*/ - -arm_status arm_rfft_init_q31( - arm_rfft_instance_q31 * S, - arm_cfft_radix4_instance_q31 * S_CFFT, - uint32_t fftLenReal, - uint32_t ifftFlagR, - uint32_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialize the Real FFT length */ - S->fftLenReal = (uint16_t) fftLenReal; - - /* Initialize the Complex FFT length */ - S->fftLenBy2 = (uint16_t) fftLenReal / 2u; - - /* Initialize the Twiddle coefficientA pointer */ - S->pTwiddleAReal = (q31_t *) realCoefAQ31; - - /* Initialize the Twiddle coefficientB pointer */ - S->pTwiddleBReal = (q31_t *) realCoefBQ31; - - /* Initialize the Flag for selection of RFFT or RIFFT */ - S->ifftFlagR = (uint8_t) ifftFlagR; - - /* Initialize the Flag for calculation Bit reversal or not */ - S->bitReverseFlagR = (uint8_t) bitReverseFlag; - - /* Initialization of coef modifier depending on the FFT length */ - switch (S->fftLenReal) - { - case 8192: - S->twidCoefRModifier = 1u; - break; - case 2048u: - S->twidCoefRModifier = 4u; - break; - case 512u: - S->twidCoefRModifier = 16u; - break; - case 128u: - S->twidCoefRModifier = 64u; - break; - default: - /* Reporting argument error if rfftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - /* Init Complex FFT Instance */ - S->pCfft = S_CFFT; - - if(S->ifftFlagR) - { - /* Initializes the CIFFT Module for fftLenreal/2 length */ - arm_cfft_radix4_init_q31(S->pCfft, (uint16_t) S->fftLenBy2, 1u, 1u); - } - else - { - /* Initializes the CFFT Module for fftLenreal/2 length */ - arm_cfft_radix4_init_q31(S->pCfft, (uint16_t) S->fftLenBy2, 0u, 1u); - } - - /* return the status of RFFT Init function */ - return (status); - -} - - /** - * @} end of RFFT_RIFFT group - */ diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q15.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q15.c deleted file mode 100644 index c0c201277e..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q15.c +++ /dev/null @@ -1,460 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rfft_q15.c -* -* Description: RFFT & RIFFT Q15 process function -* -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - - -#include "arm_math.h" - -/*-------------------------------------------------------------------- -* Internal functions prototypes ---------------------------------------------------------------------*/ - -void arm_split_rfft_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pATable, - q15_t * pBTable, - q15_t * pDst, - uint32_t modifier); - -void arm_split_rifft_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pATable, - q15_t * pBTable, - q15_t * pDst, - uint32_t modifier); - -/** - * @addtogroup RFFT_RIFFT - * @{ - */ - -/** - * @brief Processing function for the Q15 RFFT/RIFFT. - * @param[in] *S points to an instance of the Q15 RFFT/RIFFT structure. - * @param[in] *pSrc points to the input buffer. - * @param[out] *pDst points to the output buffer. - * @return none. - * - * \par Input an output formats: - * \par - * Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. - * Hence the output format is different for different RFFT sizes. - * The input and output formats for different RFFT sizes and number of bits to upscale are mentioned in the tables below for RFFT and RIFFT: - * \par - * \image html RFFTQ15.gif "Input and Output Formats for Q15 RFFT" - * \par - * \image html RIFFTQ15.gif "Input and Output Formats for Q15 RIFFT" - */ - -void arm_rfft_q15( - const arm_rfft_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst) -{ - const arm_cfft_radix4_instance_q15 *S_CFFT = S->pCfft; - - /* Calculation of RIFFT of input */ - if(S->ifftFlagR == 1u) - { - /* Real IFFT core process */ - arm_split_rifft_q15(pSrc, S->fftLenBy2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - - /* Complex readix-4 IFFT process */ - arm_radix4_butterfly_inverse_q15(pDst, S_CFFT->fftLen, - S_CFFT->pTwiddle, - S_CFFT->twidCoefModifier); - - /* Bit reversal process */ - if(S->bitReverseFlagR == 1u) - { - arm_bitreversal_q15(pDst, S_CFFT->fftLen, - S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); - } - } - else - { - /* Calculation of RFFT of input */ - - /* Complex readix-4 FFT process */ - arm_radix4_butterfly_q15(pSrc, S_CFFT->fftLen, - S_CFFT->pTwiddle, S_CFFT->twidCoefModifier); - - /* Bit reversal process */ - if(S->bitReverseFlagR == 1u) - { - arm_bitreversal_q15(pSrc, S_CFFT->fftLen, - S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); - } - - arm_split_rfft_q15(pSrc, S->fftLenBy2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - } - -} - - /** - * @} end of RFFT_RIFFT group - */ - -/** - * @brief Core Real FFT process - * @param *pSrc points to the input buffer. - * @param fftLen length of FFT. - * @param *pATable points to the A twiddle Coef buffer. - * @param *pBTable points to the B twiddle Coef buffer. - * @param *pDst points to the output buffer. - * @param modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - * The function implements a Real FFT - */ - -void arm_split_rfft_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pATable, - q15_t * pBTable, - q15_t * pDst, - uint32_t modifier) -{ - uint32_t i; /* Loop Counter */ - q31_t outR, outI; /* Temporary variables for output */ - q15_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - q15_t *pSrc1, *pSrc2; - - -// pSrc[2u * fftLen] = pSrc[0]; -// pSrc[(2u * fftLen) + 1u] = pSrc[1]; - - pCoefA = &pATable[modifier * 2u]; - pCoefB = &pBTable[modifier * 2u]; - - pSrc1 = &pSrc[2]; - pSrc2 = &pSrc[(2u * fftLen) - 2u]; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - i = 1u; - - while(i < fftLen) - { - /* - outR = (pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] - + pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - /* outI = (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); */ - - -#ifndef ARM_MATH_BIG_ENDIAN - - /* pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] */ - outR = __SMUSD(*__SIMD32(pSrc1), *__SIMD32(pCoefA)); - -#else - - /* -(pSrc[2 * i + 1] * pATable[2 * i + 1] - pSrc[2 * i] * pATable[2 * i]) */ - outR = -(__SMUSD(*__SIMD32(pSrc1), *__SIMD32(pCoefA))); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]) */ - outR = __SMLAD(*__SIMD32(pSrc2), *__SIMD32(pCoefB), outR) >> 15u; - - /* pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i] */ - -#ifndef ARM_MATH_BIG_ENDIAN - - outI = __SMUSDX(*__SIMD32(pSrc2)--, *__SIMD32(pCoefB)); - -#else - - outI = __SMUSDX(*__SIMD32(pCoefB), *__SIMD32(pSrc2)--); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] */ - outI = __SMLADX(*__SIMD32(pSrc1)++, *__SIMD32(pCoefA), outI); - - /* write output */ - pDst[2u * i] = (q15_t) outR; - pDst[(2u * i) + 1u] = outI >> 15u; - - /* write complex conjugate output */ - pDst[(4u * fftLen) - (2u * i)] = (q15_t) outR; - pDst[((4u * fftLen) - (2u * i)) + 1u] = -(outI >> 15u); - - /* update coefficient pointer */ - pCoefB = pCoefB + (2u * modifier); - pCoefA = pCoefA + (2u * modifier); - - i++; - - } - - pDst[2u * fftLen] = pSrc[0] - pSrc[1]; - pDst[(2u * fftLen) + 1u] = 0; - - pDst[0] = pSrc[0] + pSrc[1]; - pDst[1] = 0; - - -#else - - /* Run the below code for Cortex-M0 */ - - i = 1u; - - while(i < fftLen) - { - /* - outR = (pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] - + pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - outR = *pSrc1 * *pCoefA; - outR = outR - (*(pSrc1 + 1) * *(pCoefA + 1)); - outR = outR + (*pSrc2 * *pCoefB); - outR = (outR + (*(pSrc2 + 1) * *(pCoefB + 1))) >> 15; - - - /* outI = (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - */ - - outI = *pSrc2 * *(pCoefB + 1); - outI = outI - (*(pSrc2 + 1) * *pCoefB); - outI = outI + (*(pSrc1 + 1) * *pCoefA); - outI = outI + (*pSrc1 * *(pCoefA + 1)); - - /* update input pointers */ - pSrc1 += 2u; - pSrc2 -= 2u; - - /* write output */ - pDst[2u * i] = (q15_t) outR; - pDst[(2u * i) + 1u] = outI >> 15u; - - /* write complex conjugate output */ - pDst[(4u * fftLen) - (2u * i)] = (q15_t) outR; - pDst[((4u * fftLen) - (2u * i)) + 1u] = -(outI >> 15u); - - /* update coefficient pointer */ - pCoefB = pCoefB + (2u * modifier); - pCoefA = pCoefA + (2u * modifier); - - i++; - - } - - pDst[2u * fftLen] = pSrc[0] - pSrc[1]; - pDst[(2u * fftLen) + 1u] = 0; - - pDst[0] = pSrc[0] + pSrc[1]; - pDst[1] = 0; - -#endif /* #ifndef ARM_MATH_CM0 */ - -} - - -/** - * @brief Core Real IFFT process - * @param[in] *pSrc points to the input buffer. - * @param[in] fftLen length of FFT. - * @param[in] *pATable points to the twiddle Coef A buffer. - * @param[in] *pBTable points to the twiddle Coef B buffer. - * @param[out] *pDst points to the output buffer. - * @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - * The function implements a Real IFFT - */ -void arm_split_rifft_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pATable, - q15_t * pBTable, - q15_t * pDst, - uint32_t modifier) -{ - uint32_t i; /* Loop Counter */ - q31_t outR, outI; /* Temporary variables for output */ - q15_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - q15_t *pSrc1, *pSrc2; - q15_t *pDst1 = &pDst[0]; - - pCoefA = &pATable[0]; - pCoefB = &pBTable[0]; - - pSrc1 = &pSrc[0]; - pSrc2 = &pSrc[2u * fftLen]; - -#ifndef ARM_MATH_CM0 - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - i = fftLen; - - while(i > 0u) - { - - /* - outR = (pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - - outI = (pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] - - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - - */ - - -#ifndef ARM_MATH_BIG_ENDIAN - - /* pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]) */ - outR = __SMUSD(*__SIMD32(pSrc2), *__SIMD32(pCoefB)); - -#else - - /* -(-pIn[2 * n - 2 * i] * pBTable[2 * i] + - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1])) */ - outR = -(__SMUSD(*__SIMD32(pSrc2), *__SIMD32(pCoefB))); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] */ - outR = __SMLAD(*__SIMD32(pSrc1), *__SIMD32(pCoefA), outR) >> 15u; - - /* - -pIn[2 * n - 2 * i] * pBTable[2 * i + 1] + - pIn[2 * n - 2 * i + 1] * pBTable[2 * i] */ - outI = __SMUADX(*__SIMD32(pSrc2)--, *__SIMD32(pCoefB)); - - /* pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] */ - -#ifndef ARM_MATH_BIG_ENDIAN - - outI = __SMLSDX(*__SIMD32(pCoefA), *__SIMD32(pSrc1)++, -outI); - -#else - - outI = __SMLSDX(*__SIMD32(pSrc1)++, *__SIMD32(pCoefA), -outI); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - /* write output */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst1)++ = __PKHBT(outR, (outI >> 15u), 16); - -#else - - *__SIMD32(pDst1)++ = __PKHBT((outI >> 15u), outR, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* update coefficient pointer */ - pCoefB = pCoefB + (2u * modifier); - pCoefA = pCoefA + (2u * modifier); - - i--; - - } - - -#else - - /* Run the below code for Cortex-M0 */ - - i = fftLen; - - while(i > 0u) - { - - /* - outR = (pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - outR = *pSrc2 * *pCoefB; - outR = outR - (*(pSrc2 + 1) * *(pCoefB + 1)); - outR = outR + (*pSrc1 * *pCoefA); - outR = (outR + (*(pSrc1 + 1) * *(pCoefA + 1))) >> 15; - - /* - outI = (pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] - - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - */ - - outI = *(pSrc1 + 1) * *pCoefA; - outI = outI - (*pSrc1 * *(pCoefA + 1)); - outI = outI - (*pSrc2 * *(pCoefB + 1)); - outI = outI - (*(pSrc2 + 1) * *(pCoefB)); - - /* update input pointers */ - pSrc1 += 2u; - pSrc2 -= 2u; - - /* write output */ - *pDst1++ = (q15_t) outR; - *pDst1++ = (q15_t) (outI >> 15); - - /* update coefficient pointer */ - pCoefB = pCoefB + (2u * modifier); - pCoefA = pCoefA + (2u * modifier); - - i--; - - } - -#endif /* #ifndef ARM_MATH_CM0 */ - -} diff --git a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q31.c b/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q31.c deleted file mode 100644 index afcb470416..0000000000 --- a/src/modules/mathlib/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_q31.c +++ /dev/null @@ -1,326 +0,0 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 15. February 2012 -* $Revision: V1.1.0 -* -* Project: CMSIS DSP Library -* Title: arm_rfft_q31.c -* -* Description: RFFT & RIFFT Q31 process function -* -* -* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 -* -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 1.0.10 2011/7/15 -* Big Endian support added and Merged M0 and M3/M4 Source code. -* -* Version 1.0.3 2010/11/29 -* Re-organized the CMSIS folders and updated documentation. -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. -* -* Version 0.0.7 2010/06/10 -* Misra-C changes done -* -------------------------------------------------------------------- */ - -#include "arm_math.h" - -/*-------------------------------------------------------------------- -* Internal functions prototypes ---------------------------------------------------------------------*/ - -void arm_split_rfft_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pATable, - q31_t * pBTable, - q31_t * pDst, - uint32_t modifier); - -void arm_split_rifft_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pATable, - q31_t * pBTable, - q31_t * pDst, - uint32_t modifier); - -/** - * @addtogroup RFFT_RIFFT - * @{ - */ - -/** - * @brief Processing function for the Q31 RFFT/RIFFT. - * @param[in] *S points to an instance of the Q31 RFFT/RIFFT structure. - * @param[in] *pSrc points to the input buffer. - * @param[out] *pDst points to the output buffer. - * @return none. - * - * \par Input an output formats: - * \par - * Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. - * Hence the output format is different for different RFFT sizes. - * The input and output formats for different RFFT sizes and number of bits to upscale are mentioned in the tables below for RFFT and RIFFT: - * \par - * \image html RFFTQ31.gif "Input and Output Formats for Q31 RFFT" - * - * \par - * \image html RIFFTQ31.gif "Input and Output Formats for Q31 RIFFT" - */ - -void arm_rfft_q31( - const arm_rfft_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst) -{ - const arm_cfft_radix4_instance_q31 *S_CFFT = S->pCfft; - - /* Calculation of RIFFT of input */ - if(S->ifftFlagR == 1u) - { - /* Real IFFT core process */ - arm_split_rifft_q31(pSrc, S->fftLenBy2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - - /* Complex readix-4 IFFT process */ - arm_radix4_butterfly_inverse_q31(pDst, S_CFFT->fftLen, - S_CFFT->pTwiddle, - S_CFFT->twidCoefModifier); - /* Bit reversal process */ - if(S->bitReverseFlagR == 1u) - { - arm_bitreversal_q31(pDst, S_CFFT->fftLen, - S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); - } - } - else - { - /* Calculation of RFFT of input */ - - /* Complex readix-4 FFT process */ - arm_radix4_butterfly_q31(pSrc, S_CFFT->fftLen, - S_CFFT->pTwiddle, S_CFFT->twidCoefModifier); - - /* Bit reversal process */ - if(S->bitReverseFlagR == 1u) - { - arm_bitreversal_q31(pSrc, S_CFFT->fftLen, - S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); - } - - /* Real FFT core process */ - arm_split_rfft_q31(pSrc, S->fftLenBy2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - } - -} - - - /** - * @} end of RFFT_RIFFT group - */ - -/** - * @brief Core Real FFT process - * @param[in] *pSrc points to the input buffer. - * @param[in] fftLen length of FFT. - * @param[in] *pATable points to the twiddle Coef A buffer. - * @param[in] *pBTable points to the twiddle Coef B buffer. - * @param[out] *pDst points to the output buffer. - * @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_split_rfft_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pATable, - q31_t * pBTable, - q31_t * pDst, - uint32_t modifier) -{ - uint32_t i; /* Loop Counter */ - q31_t outR, outI; /* Temporary variables for output */ - q31_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - q31_t CoefA1, CoefA2, CoefB1; /* Temporary variables for twiddle coefficients */ - q31_t *pOut1 = &pDst[2], *pOut2 = &pDst[(4u * fftLen) - 1u]; - q31_t *pIn1 = &pSrc[2], *pIn2 = &pSrc[(2u * fftLen) - 1u]; - - /* Init coefficient pointers */ - pCoefA = &pATable[modifier * 2u]; - pCoefB = &pBTable[modifier * 2u]; - - i = fftLen - 1u; - - while(i > 0u) - { - /* - outR = (pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] - + pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - /* outI = (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); */ - - CoefA1 = *pCoefA++; - CoefA2 = *pCoefA; - - /* outR = (pSrc[2 * i] * pATable[2 * i] */ - outR = ((int32_t) (((q63_t) * pIn1 * CoefA1) >> 32)); - - /* outI = pIn[2 * i] * pATable[2 * i + 1] */ - outI = ((int32_t) (((q63_t) * pIn1++ * CoefA2) >> 32)); - - /* - pSrc[2 * i + 1] * pATable[2 * i + 1] */ - outR = - (q31_t) ((((q63_t) outR << 32) + ((q63_t) * pIn1 * (-CoefA2))) >> 32); - - /* (pIn[2 * i + 1] * pATable[2 * i] */ - outI = - (q31_t) ((((q63_t) outI << 32) + ((q63_t) * pIn1++ * (CoefA1))) >> 32); - - /* pSrc[2 * n - 2 * i] * pBTable[2 * i] */ - outR = - (q31_t) ((((q63_t) outR << 32) + ((q63_t) * pIn2 * (-CoefA2))) >> 32); - CoefB1 = *pCoefB; - - /* pIn[2 * n - 2 * i] * pBTable[2 * i + 1] */ - outI = - (q31_t) ((((q63_t) outI << 32) + ((q63_t) * pIn2-- * (-CoefB1))) >> 32); - - /* pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1] */ - outR = - (q31_t) ((((q63_t) outR << 32) + ((q63_t) * pIn2 * (CoefB1))) >> 32); - - /* pIn[2 * n - 2 * i + 1] * pBTable[2 * i] */ - outI = - (q31_t) ((((q63_t) outI << 32) + ((q63_t) * pIn2-- * (-CoefA2))) >> 32); - - /* write output */ - *pOut1++ = (outR << 1u); - *pOut1++ = (outI << 1u); - - /* write complex conjugate output */ - *pOut2-- = -(outI << 1u); - *pOut2-- = (outR << 1u); - - /* update coefficient pointer */ - pCoefB = pCoefB + (modifier * 2u); - pCoefA = pCoefA + ((modifier * 2u) - 1u); - - i--; - - } - - pDst[2u * fftLen] = pSrc[0] - pSrc[1]; - pDst[(2u * fftLen) + 1u] = 0; - - pDst[0] = pSrc[0] + pSrc[1]; - pDst[1] = 0; - -} - - -/** - * @brief Core Real IFFT process - * @param[in] *pSrc points to the input buffer. - * @param[in] fftLen length of FFT. - * @param[in] *pATable points to the twiddle Coef A buffer. - * @param[in] *pBTable points to the twiddle Coef B buffer. - * @param[out] *pDst points to the output buffer. - * @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_split_rifft_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pATable, - q31_t * pBTable, - q31_t * pDst, - uint32_t modifier) -{ - q31_t outR, outI; /* Temporary variables for output */ - q31_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - q31_t CoefA1, CoefA2, CoefB1; /* Temporary variables for twiddle coefficients */ - q31_t *pIn1 = &pSrc[0], *pIn2 = &pSrc[(2u * fftLen) + 1u]; - - pCoefA = &pATable[0]; - pCoefB = &pBTable[0]; - - while(fftLen > 0u) - { - /* - outR = (pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - - outI = (pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] - - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - - */ - CoefA1 = *pCoefA++; - CoefA2 = *pCoefA; - - /* outR = (pIn[2 * i] * pATable[2 * i] */ - outR = ((int32_t) (((q63_t) * pIn1 * CoefA1) >> 32)); - - /* - pIn[2 * i] * pATable[2 * i + 1] */ - outI = -((int32_t) (((q63_t) * pIn1++ * CoefA2) >> 32)); - - /* pIn[2 * i + 1] * pATable[2 * i + 1] */ - outR = - (q31_t) ((((q63_t) outR << 32) + ((q63_t) * pIn1 * (CoefA2))) >> 32); - - /* pIn[2 * i + 1] * pATable[2 * i] */ - outI = - (q31_t) ((((q63_t) outI << 32) + ((q63_t) * pIn1++ * (CoefA1))) >> 32); - - /* pIn[2 * n - 2 * i] * pBTable[2 * i] */ - outR = - (q31_t) ((((q63_t) outR << 32) + ((q63_t) * pIn2 * (CoefA2))) >> 32); - - CoefB1 = *pCoefB; - - /* pIn[2 * n - 2 * i] * pBTable[2 * i + 1] */ - outI = - (q31_t) ((((q63_t) outI << 32) - ((q63_t) * pIn2-- * (CoefB1))) >> 32); - - /* pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1] */ - outR = - (q31_t) ((((q63_t) outR << 32) + ((q63_t) * pIn2 * (CoefB1))) >> 32); - - /* pIn[2 * n - 2 * i + 1] * pBTable[2 * i] */ - outI = - (q31_t) ((((q63_t) outI << 32) + ((q63_t) * pIn2-- * (CoefA2))) >> 32); - - /* write output */ - *pDst++ = (outR << 1u); - *pDst++ = (outI << 1u); - - /* update coefficient pointer */ - pCoefB = pCoefB + (modifier * 2u); - pCoefA = pCoefA + ((modifier * 2u) - 1u); - - /* Decrement loop count */ - fftLen--; - - } - - -} diff --git a/src/modules/mathlib/CMSIS/Include/arm_common_tables.h b/src/modules/mathlib/CMSIS/Include/arm_common_tables.h index 5fd6ff4af9..9c37ab4e5a 100644 --- a/src/modules/mathlib/CMSIS/Include/arm_common_tables.h +++ b/src/modules/mathlib/CMSIS/Include/arm_common_tables.h @@ -1,24 +1,41 @@ -/* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. -* -* $Date: 11. November 2010 -* $Revision: V1.0.2 -* -* Project: CMSIS DSP Library -* Title: arm_common_tables.h -* -* Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions -* +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2013 ARM Limited. All rights reserved. +* +* $Date: 17. January 2013 +* $Revision: V1.4.1 +* +* Project: CMSIS DSP Library +* Title: arm_common_tables.h +* +* Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions +* * Target Processor: Cortex-M4/Cortex-M3 -* -* Version 1.0.2 2010/11/11 -* Documentation updated. -* -* Version 1.0.1 2010/10/05 -* Production release and review comments incorporated. -* -* Version 1.0.0 2010/09/20 -* Production release and review comments incorporated. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. * -------------------------------------------------------------------- */ #ifndef _ARM_COMMON_TABLES_H @@ -31,8 +48,46 @@ extern const q15_t armRecipTableQ15[64]; extern const q31_t armRecipTableQ31[64]; extern const q31_t realCoefAQ31[1024]; extern const q31_t realCoefBQ31[1024]; -extern const float32_t twiddleCoef[6144]; +extern const float32_t twiddleCoef_16[32]; +extern const float32_t twiddleCoef_32[64]; +extern const float32_t twiddleCoef_64[128]; +extern const float32_t twiddleCoef_128[256]; +extern const float32_t twiddleCoef_256[512]; +extern const float32_t twiddleCoef_512[1024]; +extern const float32_t twiddleCoef_1024[2048]; +extern const float32_t twiddleCoef_2048[4096]; +extern const float32_t twiddleCoef_4096[8192]; +#define twiddleCoef twiddleCoef_4096 extern const q31_t twiddleCoefQ31[6144]; extern const q15_t twiddleCoefQ15[6144]; +extern const float32_t twiddleCoef_rfft_32[32]; +extern const float32_t twiddleCoef_rfft_64[64]; +extern const float32_t twiddleCoef_rfft_128[128]; +extern const float32_t twiddleCoef_rfft_256[256]; +extern const float32_t twiddleCoef_rfft_512[512]; +extern const float32_t twiddleCoef_rfft_1024[1024]; +extern const float32_t twiddleCoef_rfft_2048[2048]; +extern const float32_t twiddleCoef_rfft_4096[4096]; + + +#define ARMBITREVINDEXTABLE__16_TABLE_LENGTH ((uint16_t)20 ) +#define ARMBITREVINDEXTABLE__32_TABLE_LENGTH ((uint16_t)48 ) +#define ARMBITREVINDEXTABLE__64_TABLE_LENGTH ((uint16_t)56 ) +#define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208 ) +#define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440 ) +#define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448 ) +#define ARMBITREVINDEXTABLE1024_TABLE_LENGTH ((uint16_t)1800) +#define ARMBITREVINDEXTABLE2048_TABLE_LENGTH ((uint16_t)3808) +#define ARMBITREVINDEXTABLE4096_TABLE_LENGTH ((uint16_t)4032) + +extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE__16_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE__32_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE__64_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE1024_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE2048_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE4096_TABLE_LENGTH]; #endif /* ARM_COMMON_TABLES_H */ diff --git a/src/modules/mathlib/CMSIS/Include/arm_const_structs.h b/src/modules/mathlib/CMSIS/Include/arm_const_structs.h new file mode 100644 index 0000000000..406f737dcc --- /dev/null +++ b/src/modules/mathlib/CMSIS/Include/arm_const_structs.h @@ -0,0 +1,85 @@ +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2013 ARM Limited. All rights reserved. +* +* $Date: 17. January 2013 +* $Revision: V1.4.1 +* +* Project: CMSIS DSP Library +* Title: arm_const_structs.h +* +* Description: This file has constant structs that are initialized for +* user convenience. For example, some can be given as +* arguments to the arm_cfft_f32() function. +* +* Target Processor: Cortex-M4/Cortex-M3 +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* -------------------------------------------------------------------- */ + +#ifndef _ARM_CONST_STRUCTS_H +#define _ARM_CONST_STRUCTS_H + +#include "arm_math.h" +#include "arm_common_tables.h" + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len16 = { + 16, twiddleCoef_16, armBitRevIndexTable16, ARMBITREVINDEXTABLE__16_TABLE_LENGTH + }; + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len32 = { + 32, twiddleCoef_32, armBitRevIndexTable32, ARMBITREVINDEXTABLE__32_TABLE_LENGTH + }; + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len64 = { + 64, twiddleCoef_64, armBitRevIndexTable64, ARMBITREVINDEXTABLE__64_TABLE_LENGTH + }; + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len128 = { + 128, twiddleCoef_128, armBitRevIndexTable128, ARMBITREVINDEXTABLE_128_TABLE_LENGTH + }; + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len256 = { + 256, twiddleCoef_256, armBitRevIndexTable256, ARMBITREVINDEXTABLE_256_TABLE_LENGTH + }; + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len512 = { + 512, twiddleCoef_512, armBitRevIndexTable512, ARMBITREVINDEXTABLE_512_TABLE_LENGTH + }; + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024 = { + 1024, twiddleCoef_1024, armBitRevIndexTable1024, ARMBITREVINDEXTABLE1024_TABLE_LENGTH + }; + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048 = { + 2048, twiddleCoef_2048, armBitRevIndexTable2048, ARMBITREVINDEXTABLE2048_TABLE_LENGTH + }; + + const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096 = { + 4096, twiddleCoef_4096, armBitRevIndexTable4096, ARMBITREVINDEXTABLE4096_TABLE_LENGTH + }; + +#endif diff --git a/src/modules/mathlib/CMSIS/Include/arm_math.h b/src/modules/mathlib/CMSIS/Include/arm_math.h index f224d3eb03..6f66f9ee3e 100644 --- a/src/modules/mathlib/CMSIS/Include/arm_math.h +++ b/src/modules/mathlib/CMSIS/Include/arm_math.h @@ -1,33 +1,41 @@ -/* ---------------------------------------------------------------------- - * Copyright (C) 2010-2011 ARM Limited. All rights reserved. - * - * $Date: 15. February 2012 - * $Revision: V1.1.0 - * - * Project: CMSIS DSP Library - * Title: arm_math.h - * - * Description: Public header file for CMSIS DSP Library - * - * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 - * - * Version 1.1.0 2012/02/15 - * Updated with more optimizations, bug fixes and minor API changes. - * - * Version 1.0.10 2011/7/15 - * Big Endian support added and Merged M0 and M3/M4 Source code. - * - * Version 1.0.3 2010/11/29 - * Re-organized the CMSIS folders and updated documentation. - * - * Version 1.0.2 2010/11/11 - * Documentation updated. - * - * Version 1.0.1 2010/10/05 - * Production release and review comments incorporated. - * - * Version 1.0.0 2010/09/20 - * Production release and review comments incorporated. +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2013 ARM Limited. All rights reserved. +* +* $Date: 17. January 2013 +* $Revision: V1.4.1 +* +* Project: CMSIS DSP Library +* Title: arm_math.h +* +* Description: Public header file for CMSIS DSP Library +* +* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. * -------------------------------------------------------------------- */ /** @@ -35,10 +43,10 @@ * * Introduction * - * This user manual describes the CMSIS DSP software library, + * This user manual describes the CMSIS DSP software library, * a suite of common signal processing functions for use on Cortex-M processor based devices. * - * The library is divided into a number of functions each covering a specific category: + * The library is divided into a number of functions each covering a specific category: * - Basic math functions * - Fast math functions * - Complex math functions @@ -51,41 +59,7 @@ * - Interpolation functions * * The library has separate functions for operating on 8-bit integers, 16-bit integers, - * 32-bit integer and 32-bit floating-point values. - * - * Pre-processor Macros - * - * Each library project have differant pre-processor macros. - * - * - UNALIGNED_SUPPORT_DISABLE: - * - * Define macro UNALIGNED_SUPPORT_DISABLE, If the silicon does not support unaligned memory access - * - * - ARM_MATH_BIG_ENDIAN: - * - * Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets. - * - * - ARM_MATH_MATRIX_CHECK: - * - * Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices - * - * - ARM_MATH_ROUNDING: - * - * Define macro ARM_MATH_ROUNDING for rounding on support functions - * - * - ARM_MATH_CMx: - * - * Define macro ARM_MATH_CM4 for building the library on Cortex-M4 target, ARM_MATH_CM3 for building library on Cortex-M3 target - * and ARM_MATH_CM0 for building library on cortex-M0 target. - * - * - __FPU_PRESENT: - * - * Initialize macro __FPU_PRESENT = 1 when building on FPU supported Targets. Enable this macro for M4bf and M4lf libraries - * - * Toolchain Support - * - * The library has been developed and tested with MDK-ARM version 4.23. - * The library is being tested in GCC and IAR toolchains and updates on this activity will be made available shortly. + * 32-bit integer and 32-bit floating-point values. * * Using the Library * @@ -100,33 +74,67 @@ * - arm_cortexM0b_math.lib (Big endian on Cortex-M3) * * The library functions are declared in the public file arm_math.h which is placed in the Include folder. - * Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single - * public header file arm_math.h for Cortex-M4/M3/M0 with little endian and big endian. Same header file will be used for floating point unit(FPU) variants. - * Define the appropriate pre processor MACRO ARM_MATH_CM4 or ARM_MATH_CM3 or - * ARM_MATH_CM0 depending on the target processor in the application. + * Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single + * public header file arm_math.h for Cortex-M4/M3/M0 with little endian and big endian. Same header file will be used for floating point unit(FPU) variants. + * Define the appropriate pre processor MACRO ARM_MATH_CM4 or ARM_MATH_CM3 or + * ARM_MATH_CM0 or ARM_MATH_CM0PLUS depending on the target processor in the application. * * Examples * * The library ships with a number of examples which demonstrate how to use the library functions. * + * Toolchain Support + * + * The library has been developed and tested with MDK-ARM version 4.60. + * The library is being tested in GCC and IAR toolchains and updates on this activity will be made available shortly. + * * Building the Library * * The library installer contains project files to re build libraries on MDK Tool chain in the CMSIS\\DSP_Lib\\Source\\ARM folder. * - arm_cortexM0b_math.uvproj * - arm_cortexM0l_math.uvproj * - arm_cortexM3b_math.uvproj - * - arm_cortexM3l_math.uvproj + * - arm_cortexM3l_math.uvproj * - arm_cortexM4b_math.uvproj * - arm_cortexM4l_math.uvproj * - arm_cortexM4bf_math.uvproj * - arm_cortexM4lf_math.uvproj * * - * The project can be built by opening the appropriate project in MDK-ARM 4.23 chain and defining the optional pre processor MACROs detailed above. + * The project can be built by opening the appropriate project in MDK-ARM 4.60 chain and defining the optional pre processor MACROs detailed above. + * + * Pre-processor Macros + * + * Each library project have differant pre-processor macros. + * + * - UNALIGNED_SUPPORT_DISABLE: + * + * Define macro UNALIGNED_SUPPORT_DISABLE, If the silicon does not support unaligned memory access + * + * - ARM_MATH_BIG_ENDIAN: + * + * Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets. + * + * - ARM_MATH_MATRIX_CHECK: + * + * Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices + * + * - ARM_MATH_ROUNDING: + * + * Define macro ARM_MATH_ROUNDING for rounding on support functions + * + * - ARM_MATH_CMx: + * + * Define macro ARM_MATH_CM4 for building the library on Cortex-M4 target, ARM_MATH_CM3 for building library on Cortex-M3 target + * and ARM_MATH_CM0 for building library on cortex-M0 target, ARM_MATH_CM0PLUS for building library on cortex-M0+ target. + * + * - __FPU_PRESENT: + * + * Initialize macro __FPU_PRESENT = 1 when building on FPU supported Targets. Enable this macro for M4bf and M4lf libraries * * Copyright Notice * - * Copyright (C) 2010 ARM Limited. All rights reserved. + * Copyright (C) 2010-2013 ARM Limited. All rights reserved. */ @@ -258,7 +266,7 @@ #define __CMSIS_GENERIC /* disable NVIC and Systick functions */ -/* NuttX */ +/* PX4 */ #include #ifdef CONFIG_ARCH_CORTEXM4 # define ARM_MATH_CM4 1 @@ -276,6 +284,10 @@ #include "core_cm3.h" #elif defined (ARM_MATH_CM0) #include "core_cm0.h" +#define ARM_MATH_CM0_FAMILY +#elif defined (ARM_MATH_CM0PLUS) +#include "core_cm0plus.h" +#define ARM_MATH_CM0_FAMILY #else #include "ARMCM4.h" #warning "Define either ARM_MATH_CM4 OR ARM_MATH_CM3...By Default building on ARM_MATH_CM4....." @@ -377,17 +389,27 @@ extern "C" /** * @brief definition to read/write two 16 bit values. */ -#if defined (__GNUC__) - #define __SIMD32(addr) (*( int32_t **) & (addr)) - #define _SIMD32_OFFSET(addr) (*( int32_t * ) (addr)) +#if defined __CC_ARM +#define __SIMD32_TYPE int32_t __packed +#define CMSIS_UNUSED __attribute__((unused)) +#elif defined __ICCARM__ +#define CMSIS_UNUSED +#define __SIMD32_TYPE int32_t __packed +#elif defined __GNUC__ +#define __SIMD32_TYPE int32_t +#define CMSIS_UNUSED __attribute__((unused)) #else - #define __SIMD32(addr) (*(__packed int32_t **) & (addr)) - #define _SIMD32_OFFSET(addr) (*(__packed int32_t * ) (addr)) -#endif +#error Unknown compiler +#endif - #define __SIMD64(addr) (*(int64_t **) & (addr)) +#define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr)) +#define __SIMD32_CONST(addr) ((__SIMD32_TYPE *)(addr)) -#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0) +#define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE *) (addr)) + +#define __SIMD64(addr) (*(int64_t **) & (addr)) + +#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) /** * @brief definition to pack two 16 bit values. */ @@ -421,7 +443,7 @@ extern "C" /** * @brief Clips Q63 to Q31 values. */ - __STATIC_INLINE q31_t clip_q63_to_q31( + static __INLINE q31_t clip_q63_to_q31( q63_t x) { return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? @@ -431,7 +453,7 @@ extern "C" /** * @brief Clips Q63 to Q15 values. */ - __STATIC_INLINE q15_t clip_q63_to_q15( + static __INLINE q15_t clip_q63_to_q15( q63_t x) { return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? @@ -441,7 +463,7 @@ extern "C" /** * @brief Clips Q31 to Q7 values. */ - __STATIC_INLINE q7_t clip_q31_to_q7( + static __INLINE q7_t clip_q31_to_q7( q31_t x) { return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ? @@ -451,7 +473,7 @@ extern "C" /** * @brief Clips Q31 to Q15 values. */ - __STATIC_INLINE q15_t clip_q31_to_q15( + static __INLINE q15_t clip_q31_to_q15( q31_t x) { return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ? @@ -462,7 +484,7 @@ extern "C" * @brief Multiplies 32 X 64 and returns 32 bit result in 2.30 format. */ - __STATIC_INLINE q63_t mult32x64( + static __INLINE q63_t mult32x64( q63_t x, q31_t y) { @@ -471,20 +493,18 @@ extern "C" } -#if defined (ARM_MATH_CM0) && defined ( __CC_ARM ) +#if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM ) #define __CLZ __clz #endif -#if defined (ARM_MATH_CM0) && defined ( __TASKING__ ) -/* No need to redefine __CLZ */ -#endif +#if defined (ARM_MATH_CM0_FAMILY) && ((defined (__ICCARM__)) ||(defined (__GNUC__)) || defined (__TASKING__) ) -#if defined (ARM_MATH_CM0) && ((defined (__ICCARM__)) ||(defined (__GNUC__)) ) - - __STATIC_INLINE uint32_t __CLZ(q31_t data); + static __INLINE uint32_t __CLZ( + q31_t data); - __STATIC_INLINE uint32_t __CLZ(q31_t data) + static __INLINE uint32_t __CLZ( + q31_t data) { uint32_t count = 0; uint32_t mask = 0x80000000; @@ -502,10 +522,10 @@ extern "C" #endif /** - * @brief Function to Calculates 1/in(reciprocal) value of Q31 Data type. + * @brief Function to Calculates 1/in (reciprocal) value of Q31 Data type. */ - __STATIC_INLINE uint32_t arm_recip_q31( + static __INLINE uint32_t arm_recip_q31( q31_t in, q31_t * dst, q31_t * pRecipTable) @@ -554,9 +574,9 @@ extern "C" } /** - * @brief Function to Calculates 1/in(reciprocal) value of Q15 Data type. + * @brief Function to Calculates 1/in (reciprocal) value of Q15 Data type. */ - __STATIC_INLINE uint32_t arm_recip_q15( + static __INLINE uint32_t arm_recip_q15( q15_t in, q15_t * dst, q15_t * pRecipTable) @@ -607,9 +627,9 @@ extern "C" /* * @brief C custom defined intrinisic function for only M0 processors */ -#if defined(ARM_MATH_CM0) +#if defined(ARM_MATH_CM0_FAMILY) - __STATIC_INLINE q31_t __SSAT( + static __INLINE q31_t __SSAT( q31_t x, uint32_t y) { @@ -645,19 +665,19 @@ extern "C" } -#endif /* end of ARM_MATH_CM0 */ +#endif /* end of ARM_MATH_CM0_FAMILY */ /* * @brief C custom defined intrinsic function for M3 and M0 processors */ -#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0) +#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) /* * @brief C custom defined QADD8 for M3 and M0 processors */ - __STATIC_INLINE q31_t __QADD8( + static __INLINE q31_t __QADD8( q31_t x, q31_t y) { @@ -684,7 +704,7 @@ extern "C" /* * @brief C custom defined QSUB8 for M3 and M0 processors */ - __STATIC_INLINE q31_t __QSUB8( + static __INLINE q31_t __QSUB8( q31_t x, q31_t y) { @@ -714,7 +734,7 @@ extern "C" /* * @brief C custom defined QADD16 for M3 and M0 processors */ - __STATIC_INLINE q31_t __QADD16( + static __INLINE q31_t __QADD16( q31_t x, q31_t y) { @@ -737,7 +757,7 @@ extern "C" /* * @brief C custom defined SHADD16 for M3 and M0 processors */ - __STATIC_INLINE q31_t __SHADD16( + static __INLINE q31_t __SHADD16( q31_t x, q31_t y) { @@ -760,7 +780,7 @@ extern "C" /* * @brief C custom defined QSUB16 for M3 and M0 processors */ - __STATIC_INLINE q31_t __QSUB16( + static __INLINE q31_t __QSUB16( q31_t x, q31_t y) { @@ -782,7 +802,7 @@ extern "C" /* * @brief C custom defined SHSUB16 for M3 and M0 processors */ - __STATIC_INLINE q31_t __SHSUB16( + static __INLINE q31_t __SHSUB16( q31_t x, q31_t y) { @@ -804,7 +824,7 @@ extern "C" /* * @brief C custom defined QASX for M3 and M0 processors */ - __STATIC_INLINE q31_t __QASX( + static __INLINE q31_t __QASX( q31_t x, q31_t y) { @@ -822,7 +842,7 @@ extern "C" /* * @brief C custom defined SHASX for M3 and M0 processors */ - __STATIC_INLINE q31_t __SHASX( + static __INLINE q31_t __SHASX( q31_t x, q31_t y) { @@ -845,7 +865,7 @@ extern "C" /* * @brief C custom defined QSAX for M3 and M0 processors */ - __STATIC_INLINE q31_t __QSAX( + static __INLINE q31_t __QSAX( q31_t x, q31_t y) { @@ -863,7 +883,7 @@ extern "C" /* * @brief C custom defined SHSAX for M3 and M0 processors */ - __STATIC_INLINE q31_t __SHSAX( + static __INLINE q31_t __SHSAX( q31_t x, q31_t y) { @@ -885,7 +905,7 @@ extern "C" /* * @brief C custom defined SMUSDX for M3 and M0 processors */ - __STATIC_INLINE q31_t __SMUSDX( + static __INLINE q31_t __SMUSDX( q31_t x, q31_t y) { @@ -897,7 +917,7 @@ extern "C" /* * @brief C custom defined SMUADX for M3 and M0 processors */ - __STATIC_INLINE q31_t __SMUADX( + static __INLINE q31_t __SMUADX( q31_t x, q31_t y) { @@ -909,7 +929,7 @@ extern "C" /* * @brief C custom defined QADD for M3 and M0 processors */ - __STATIC_INLINE q31_t __QADD( + static __INLINE q31_t __QADD( q31_t x, q31_t y) { @@ -919,7 +939,7 @@ extern "C" /* * @brief C custom defined QSUB for M3 and M0 processors */ - __STATIC_INLINE q31_t __QSUB( + static __INLINE q31_t __QSUB( q31_t x, q31_t y) { @@ -929,7 +949,7 @@ extern "C" /* * @brief C custom defined SMLAD for M3 and M0 processors */ - __STATIC_INLINE q31_t __SMLAD( + static __INLINE q31_t __SMLAD( q31_t x, q31_t y, q31_t sum) @@ -942,7 +962,7 @@ extern "C" /* * @brief C custom defined SMLADX for M3 and M0 processors */ - __STATIC_INLINE q31_t __SMLADX( + static __INLINE q31_t __SMLADX( q31_t x, q31_t y, q31_t sum) @@ -955,7 +975,7 @@ extern "C" /* * @brief C custom defined SMLSDX for M3 and M0 processors */ - __STATIC_INLINE q31_t __SMLSDX( + static __INLINE q31_t __SMLSDX( q31_t x, q31_t y, q31_t sum) @@ -968,7 +988,7 @@ extern "C" /* * @brief C custom defined SMLALD for M3 and M0 processors */ - __STATIC_INLINE q63_t __SMLALD( + static __INLINE q63_t __SMLALD( q31_t x, q31_t y, q63_t sum) @@ -981,7 +1001,7 @@ extern "C" /* * @brief C custom defined SMLALDX for M3 and M0 processors */ - __STATIC_INLINE q63_t __SMLALDX( + static __INLINE q63_t __SMLALDX( q31_t x, q31_t y, q63_t sum) @@ -994,7 +1014,7 @@ extern "C" /* * @brief C custom defined SMUAD for M3 and M0 processors */ - __STATIC_INLINE q31_t __SMUAD( + static __INLINE q31_t __SMUAD( q31_t x, q31_t y) { @@ -1006,7 +1026,7 @@ extern "C" /* * @brief C custom defined SMUSD for M3 and M0 processors */ - __STATIC_INLINE q31_t __SMUSD( + static __INLINE q31_t __SMUSD( q31_t x, q31_t y) { @@ -1019,7 +1039,7 @@ extern "C" /* * @brief C custom defined SXTB16 for M3 and M0 processors */ - __STATIC_INLINE q31_t __SXTB16( + static __INLINE q31_t __SXTB16( q31_t x) { @@ -1028,7 +1048,7 @@ extern "C" } -#endif /* defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0) */ +#endif /* defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) */ /** @@ -1528,6 +1548,7 @@ extern "C" * @param[in] *pSrcA points to the first input matrix structure * @param[in] *pSrcB points to the second input matrix structure * @param[out] *pDst points to output matrix structure + * @param[in] *pState points to the array for storing intermediate results * @return The function returns either * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. */ @@ -1543,7 +1564,7 @@ extern "C" * @param[in] *pSrcA points to the first input matrix structure * @param[in] *pSrcB points to the second input matrix structure * @param[out] *pDst points to output matrix structure - * @param[in] *pState points to the array for storing intermediate results + * @param[in] *pState points to the array for storing intermediate results * @return The function returns either * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. */ @@ -1725,7 +1746,7 @@ extern "C" typedef struct { q15_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ -#ifdef ARM_MATH_CM0 +#ifdef ARM_MATH_CM0_FAMILY q15_t A1; q15_t A2; #else @@ -1943,52 +1964,8 @@ extern "C" uint32_t blockSize); - /** - * @brief Instance structure for the Q15 CFFT/CIFFT function. - */ - - typedef struct - { - uint16_t fftLen; /**< length of the FFT. */ - uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ - uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ - q15_t *pTwiddle; /**< points to the twiddle factor table. */ - uint16_t *pBitRevTable; /**< points to the bit reversal table. */ - uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ - uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ - } arm_cfft_radix4_instance_q15; - - /** - * @brief Instance structure for the Q31 CFFT/CIFFT function. - */ - - typedef struct - { - uint16_t fftLen; /**< length of the FFT. */ - uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ - uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ - q31_t *pTwiddle; /**< points to the twiddle factor table. */ - uint16_t *pBitRevTable; /**< points to the bit reversal table. */ - uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ - uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ - } arm_cfft_radix4_instance_q31; - /** - * @brief Instance structure for the floating-point CFFT/CIFFT function. - */ - - typedef struct - { - uint16_t fftLen; /**< length of the FFT. */ - uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ - uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ - float32_t *pTwiddle; /**< points to the twiddle factor table. */ - uint16_t *pBitRevTable; /**< points to the bit reversal table. */ - uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ - uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ - float32_t onebyfftLen; /**< value of 1/fftLen. */ - } arm_cfft_radix4_instance_f32; /** @@ -2006,6 +1983,43 @@ extern "C" uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ } arm_cfft_radix2_instance_q15; + arm_status arm_cfft_radix2_init_q15( + arm_cfft_radix2_instance_q15 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + + void arm_cfft_radix2_q15( + const arm_cfft_radix2_instance_q15 * S, + q15_t * pSrc); + + + + /** + * @brief Instance structure for the Q15 CFFT/CIFFT function. + */ + + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q15_t *pTwiddle; /**< points to the twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + } arm_cfft_radix4_instance_q15; + + arm_status arm_cfft_radix4_init_q15( + arm_cfft_radix4_instance_q15 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + + void arm_cfft_radix4_q15( + const arm_cfft_radix4_instance_q15 * S, + q15_t * pSrc); + /** * @brief Instance structure for the Radix-2 Q31 CFFT/CIFFT function. */ @@ -2021,6 +2035,42 @@ extern "C" uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ } arm_cfft_radix2_instance_q31; + arm_status arm_cfft_radix2_init_q31( + arm_cfft_radix2_instance_q31 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + + void arm_cfft_radix2_q31( + const arm_cfft_radix2_instance_q31 * S, + q31_t * pSrc); + + /** + * @brief Instance structure for the Q31 CFFT/CIFFT function. + */ + + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q31_t *pTwiddle; /**< points to the twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + } arm_cfft_radix4_instance_q31; + + + void arm_cfft_radix4_q31( + const arm_cfft_radix4_instance_q31 * S, + q31_t * pSrc); + + arm_status arm_cfft_radix4_init_q31( + arm_cfft_radix4_instance_q31 * S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + /** * @brief Instance structure for the floating-point CFFT/CIFFT function. */ @@ -2037,401 +2087,63 @@ extern "C" float32_t onebyfftLen; /**< value of 1/fftLen. */ } arm_cfft_radix2_instance_f32; - - /** - * @brief Processing function for the Q15 CFFT/CIFFT. - * @param[in] *S points to an instance of the Q15 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place. - * @return none. - */ - - void arm_cfft_radix4_q15( - const arm_cfft_radix4_instance_q15 * S, - q15_t * pSrc); - - /** - * @brief Processing function for the Q15 CFFT/CIFFT. - * @param[in] *S points to an instance of the Q15 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place. - * @return none. - */ - - void arm_cfft_radix2_q15( - const arm_cfft_radix2_instance_q15 * S, - q15_t * pSrc); - - /** - * @brief Initialization function for the Q15 CFFT/CIFFT. - * @param[in,out] *S points to an instance of the Q15 CFFT/CIFFT structure. - * @param[in] fftLen length of the FFT. - * @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. - */ - - arm_status arm_cfft_radix4_init_q15( - arm_cfft_radix4_instance_q15 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag); - - /** - * @brief Initialization function for the Q15 CFFT/CIFFT. - * @param[in,out] *S points to an instance of the Q15 CFFT/CIFFT structure. - * @param[in] fftLen length of the FFT. - * @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. - */ - - arm_status arm_cfft_radix2_init_q15( - arm_cfft_radix2_instance_q15 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag); - - /** - * @brief Processing function for the Q31 CFFT/CIFFT. - * @param[in] *S points to an instance of the Q31 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place. - * @return none. - */ - - void arm_cfft_radix4_q31( - const arm_cfft_radix4_instance_q31 * S, - q31_t * pSrc); - - /** - * @brief Initialization function for the Q31 CFFT/CIFFT. - * @param[in,out] *S points to an instance of the Q31 CFFT/CIFFT structure. - * @param[in] fftLen length of the FFT. - * @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. - */ - - arm_status arm_cfft_radix4_init_q31( - arm_cfft_radix4_instance_q31 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag); - - /** - * @brief Processing function for the Radix-2 Q31 CFFT/CIFFT. - * @param[in] *S points to an instance of the Radix-2 Q31 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place. - * @return none. - */ - - void arm_cfft_radix2_q31( - const arm_cfft_radix2_instance_q31 * S, - q31_t * pSrc); - - /** - * @brief Initialization function for the Radix-2 Q31 CFFT/CIFFT. - * @param[in,out] *S points to an instance of the Radix-2 Q31 CFFT/CIFFT structure. - * @param[in] fftLen length of the FFT. - * @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. - */ - - arm_status arm_cfft_radix2_init_q31( - arm_cfft_radix2_instance_q31 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag); - - - - /** - * @brief Processing function for the floating-point CFFT/CIFFT. - * @param[in] *S points to an instance of the floating-point CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place. - * @return none. - */ - - void arm_cfft_radix2_f32( - const arm_cfft_radix2_instance_f32 * S, - float32_t * pSrc); - - /** - * @brief Initialization function for the floating-point CFFT/CIFFT. - * @param[in,out] *S points to an instance of the floating-point CFFT/CIFFT structure. - * @param[in] fftLen length of the FFT. - * @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. - */ - +/* Deprecated */ arm_status arm_cfft_radix2_init_f32( arm_cfft_radix2_instance_f32 * S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag); - /** - * @brief Processing function for the floating-point CFFT/CIFFT. - * @param[in] *S points to an instance of the floating-point CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place. - * @return none. - */ - - void arm_cfft_radix4_f32( - const arm_cfft_radix4_instance_f32 * S, +/* Deprecated */ + void arm_cfft_radix2_f32( + const arm_cfft_radix2_instance_f32 * S, float32_t * pSrc); /** - * @brief Initialization function for the floating-point CFFT/CIFFT. - * @param[in,out] *S points to an instance of the floating-point CFFT/CIFFT structure. - * @param[in] fftLen length of the FFT. - * @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. + * @brief Instance structure for the floating-point CFFT/CIFFT function. */ + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + float32_t *pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + float32_t onebyfftLen; /**< value of 1/fftLen. */ + } arm_cfft_radix4_instance_f32; + +/* Deprecated */ arm_status arm_cfft_radix4_init_f32( arm_cfft_radix4_instance_f32 * S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag); - - - /*---------------------------------------------------------------------- - * Internal functions prototypes FFT function - ----------------------------------------------------------------------*/ +/* Deprecated */ + void arm_cfft_radix4_f32( + const arm_cfft_radix4_instance_f32 * S, + float32_t * pSrc); /** - * @brief Core function for the floating-point CFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of floating-point data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to the twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. + * @brief Instance structure for the floating-point CFFT/CIFFT function. */ - void arm_radix4_butterfly_f32( - float32_t * pSrc, - uint16_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier); - - /** - * @brief Core function for the floating-point CIFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of floating-point data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @param[in] onebyfftLen value of 1/fftLen. - * @return none. - */ - - void arm_radix4_butterfly_inverse_f32( - float32_t * pSrc, - uint16_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier, - float32_t onebyfftLen); - - /** - * @brief In-place bit reversal function. - * @param[in, out] *pSrc points to the in-place buffer of floating-point data type. - * @param[in] fftSize length of the FFT. - * @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table. - * @param[in] *pBitRevTab points to the bit reversal table. - * @return none. - */ - - void arm_bitreversal_f32( - float32_t * pSrc, - uint16_t fftSize, - uint16_t bitRevFactor, - uint16_t * pBitRevTab); - - /** - * @brief Core function for the Q31 CFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to Twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix4_butterfly_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint32_t twidCoefModifier); - - /** - * @brief Core function for the f32 FFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of f32 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to Twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix2_butterfly_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier); - - /** - * @brief Core function for the Radix-2 Q31 CFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to Twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix2_butterfly_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint16_t twidCoefModifier); - - /** - * @brief Core function for the Radix-2 Q15 CFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to Twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix2_butterfly_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pCoef, - uint16_t twidCoefModifier); - - /** - * @brief Core function for the Radix-2 Q15 CFFT Inverse butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to Twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix2_butterfly_inverse_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pCoef, - uint16_t twidCoefModifier); - - /** - * @brief Core function for the Radix-2 Q31 CFFT Inverse butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to Twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix2_butterfly_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint16_t twidCoefModifier); - - /** - * @brief Core function for the f32 IFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of f32 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to Twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @param[in] onebyfftLen 1/fftLenfth - * @return none. - */ - - void arm_radix2_butterfly_inverse_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier, - float32_t onebyfftLen); - - /** - * @brief Core function for the Q31 CIFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix4_butterfly_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint32_t twidCoefModifier); - - /** - * @brief In-place bit reversal function. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table - * @param[in] *pBitRevTab points to bit reversal table. - * @return none. - */ - - void arm_bitreversal_q31( - q31_t * pSrc, - uint32_t fftLen, - uint16_t bitRevFactor, - uint16_t * pBitRevTab); - - /** - * @brief Core function for the Q15 CFFT butterfly process. - * @param[in, out] *pSrc16 points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef16 points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix4_butterfly_q15( - q15_t * pSrc16, - uint32_t fftLen, - q15_t * pCoef16, - uint32_t twidCoefModifier); - - - /** - * @brief Core function for the Q15 CIFFT butterfly process. - * @param[in, out] *pSrc16 points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef16 points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - void arm_radix4_butterfly_inverse_q15( - q15_t * pSrc16, - uint32_t fftLen, - q15_t * pCoef16, - uint32_t twidCoefModifier); - - /** - * @brief In-place bit reversal function. - * @param[in, out] *pSrc points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table - * @param[in] *pBitRevTab points to bit reversal table. - * @return none. - */ - - void arm_bitreversal_q15( - q15_t * pSrc, - uint32_t fftLen, - uint16_t bitRevFactor, - uint16_t * pBitRevTab); + typedef struct + { + uint16_t fftLen; /**< length of the FFT. */ + const float32_t *pTwiddle; /**< points to the Twiddle factor table. */ + const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ + uint16_t bitRevLength; /**< bit reversal table length. */ + } arm_cfft_instance_f32; + void arm_cfft_f32( + const arm_cfft_instance_f32 * S, + float32_t * p1, + uint8_t ifftFlag, + uint8_t bitReverseFlag); /** * @brief Instance structure for the Q15 RFFT/RIFFT function. @@ -2449,6 +2161,18 @@ extern "C" arm_cfft_radix4_instance_q15 *pCfft; /**< points to the complex FFT instance. */ } arm_rfft_instance_q15; + arm_status arm_rfft_init_q15( + arm_rfft_instance_q15 * S, + arm_cfft_radix4_instance_q15 * S_CFFT, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + + void arm_rfft_q15( + const arm_rfft_instance_q15 * S, + q15_t * pSrc, + q15_t * pDst); + /** * @brief Instance structure for the Q31 RFFT/RIFFT function. */ @@ -2465,6 +2189,18 @@ extern "C" arm_cfft_radix4_instance_q31 *pCfft; /**< points to the complex FFT instance. */ } arm_rfft_instance_q31; + arm_status arm_rfft_init_q31( + arm_rfft_instance_q31 * S, + arm_cfft_radix4_instance_q31 * S_CFFT, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + + void arm_rfft_q31( + const arm_rfft_instance_q31 * S, + q31_t * pSrc, + q31_t * pDst); + /** * @brief Instance structure for the floating-point RFFT/RIFFT function. */ @@ -2481,76 +2217,6 @@ extern "C" arm_cfft_radix4_instance_f32 *pCfft; /**< points to the complex FFT instance. */ } arm_rfft_instance_f32; - /** - * @brief Processing function for the Q15 RFFT/RIFFT. - * @param[in] *S points to an instance of the Q15 RFFT/RIFFT structure. - * @param[in] *pSrc points to the input buffer. - * @param[out] *pDst points to the output buffer. - * @return none. - */ - - void arm_rfft_q15( - const arm_rfft_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst); - - /** - * @brief Initialization function for the Q15 RFFT/RIFFT. - * @param[in, out] *S points to an instance of the Q15 RFFT/RIFFT structure. - * @param[in] *S_CFFT points to an instance of the Q15 CFFT/CIFFT structure. - * @param[in] fftLenReal length of the FFT. - * @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. - */ - - arm_status arm_rfft_init_q15( - arm_rfft_instance_q15 * S, - arm_cfft_radix4_instance_q15 * S_CFFT, - uint32_t fftLenReal, - uint32_t ifftFlagR, - uint32_t bitReverseFlag); - - /** - * @brief Processing function for the Q31 RFFT/RIFFT. - * @param[in] *S points to an instance of the Q31 RFFT/RIFFT structure. - * @param[in] *pSrc points to the input buffer. - * @param[out] *pDst points to the output buffer. - * @return none. - */ - - void arm_rfft_q31( - const arm_rfft_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst); - - /** - * @brief Initialization function for the Q31 RFFT/RIFFT. - * @param[in, out] *S points to an instance of the Q31 RFFT/RIFFT structure. - * @param[in, out] *S_CFFT points to an instance of the Q31 CFFT/CIFFT structure. - * @param[in] fftLenReal length of the FFT. - * @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. - */ - - arm_status arm_rfft_init_q31( - arm_rfft_instance_q31 * S, - arm_cfft_radix4_instance_q31 * S_CFFT, - uint32_t fftLenReal, - uint32_t ifftFlagR, - uint32_t bitReverseFlag); - - /** - * @brief Initialization function for the floating-point RFFT/RIFFT. - * @param[in,out] *S points to an instance of the floating-point RFFT/RIFFT structure. - * @param[in,out] *S_CFFT points to an instance of the floating-point CFFT/CIFFT structure. - * @param[in] fftLenReal length of the FFT. - * @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. - * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. - * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. - */ - arm_status arm_rfft_init_f32( arm_rfft_instance_f32 * S, arm_cfft_radix4_instance_f32 * S_CFFT, @@ -2558,19 +2224,31 @@ extern "C" uint32_t ifftFlagR, uint32_t bitReverseFlag); - /** - * @brief Processing function for the floating-point RFFT/RIFFT. - * @param[in] *S points to an instance of the floating-point RFFT/RIFFT structure. - * @param[in] *pSrc points to the input buffer. - * @param[out] *pDst points to the output buffer. - * @return none. - */ - void arm_rfft_f32( const arm_rfft_instance_f32 * S, float32_t * pSrc, float32_t * pDst); + /** + * @brief Instance structure for the floating-point RFFT/RIFFT function. + */ + +typedef struct + { + arm_cfft_instance_f32 Sint; /**< Internal CFFT structure. */ + uint16_t fftLenRFFT; /**< length of the real sequence */ + float32_t * pTwiddleRFFT; /**< Twiddle factors real stage */ + } arm_rfft_fast_instance_f32 ; + +arm_status arm_rfft_fast_init_f32 ( + arm_rfft_fast_instance_f32 * S, + uint16_t fftLen); + +void arm_rfft_fast_f32( + arm_rfft_fast_instance_f32 * S, + float32_t * p, float32_t * pOut, + uint8_t ifftFlag); + /** * @brief Instance structure for the floating-point DCT4/IDCT4 function. */ @@ -3167,7 +2845,7 @@ extern "C" q31_t * pDst, uint32_t blockSize); /** - * @brief Copies the elements of a floating-point vector. + * @brief Copies the elements of a floating-point vector. * @param[in] *pSrc input pointer * @param[out] *pDst output pointer * @param[in] blockSize number of samples to process @@ -3179,7 +2857,7 @@ extern "C" uint32_t blockSize); /** - * @brief Copies the elements of a Q7 vector. + * @brief Copies the elements of a Q7 vector. * @param[in] *pSrc input pointer * @param[out] *pDst output pointer * @param[in] blockSize number of samples to process @@ -3191,7 +2869,7 @@ extern "C" uint32_t blockSize); /** - * @brief Copies the elements of a Q15 vector. + * @brief Copies the elements of a Q15 vector. * @param[in] *pSrc input pointer * @param[out] *pDst output pointer * @param[in] blockSize number of samples to process @@ -3203,7 +2881,7 @@ extern "C" uint32_t blockSize); /** - * @brief Copies the elements of a Q31 vector. + * @brief Copies the elements of a Q31 vector. * @param[in] *pSrc input pointer * @param[out] *pDst output pointer * @param[in] blockSize number of samples to process @@ -3214,7 +2892,7 @@ extern "C" q31_t * pDst, uint32_t blockSize); /** - * @brief Fills a constant value into a floating-point vector. + * @brief Fills a constant value into a floating-point vector. * @param[in] value input value to be filled * @param[out] *pDst output pointer * @param[in] blockSize number of samples to process @@ -3226,7 +2904,7 @@ extern "C" uint32_t blockSize); /** - * @brief Fills a constant value into a Q7 vector. + * @brief Fills a constant value into a Q7 vector. * @param[in] value input value to be filled * @param[out] *pDst output pointer * @param[in] blockSize number of samples to process @@ -3238,7 +2916,7 @@ extern "C" uint32_t blockSize); /** - * @brief Fills a constant value into a Q15 vector. + * @brief Fills a constant value into a Q15 vector. * @param[in] value input value to be filled * @param[out] *pDst output pointer * @param[in] blockSize number of samples to process @@ -3250,7 +2928,7 @@ extern "C" uint32_t blockSize); /** - * @brief Fills a constant value into a Q31 vector. + * @brief Fills a constant value into a Q31 vector. * @param[in] value input value to be filled * @param[out] *pDst output pointer * @param[in] blockSize number of samples to process @@ -3261,14 +2939,14 @@ extern "C" q31_t * pDst, uint32_t blockSize); -/** - * @brief Convolution of floating-point sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. +/** + * @brief Convolution of floating-point sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. + * @return none. */ void arm_conv_f32( @@ -3278,17 +2956,17 @@ extern "C" uint32_t srcBLen, float32_t * pDst); - - /** - * @brief Convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return none. + + /** + * @brief Convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return none. */ @@ -3302,14 +2980,14 @@ extern "C" q15_t * pScratch2); -/** - * @brief Convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. +/** + * @brief Convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. + * @return none. */ void arm_conv_q15( @@ -3343,9 +3021,9 @@ extern "C" * @param[in] *pSrcB points to the second input sequence. * @param[in] srcBLen length of the second input sequence. * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return none. + * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return none. */ void arm_conv_fast_opt_q15( @@ -3394,16 +3072,16 @@ extern "C" q31_t * pDst); - /** - * @brief Convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return none. + /** + * @brief Convolution of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + * @return none. */ void arm_conv_opt_q7( @@ -3456,18 +3134,18 @@ extern "C" uint32_t firstIndex, uint32_t numPoints); - /** - * @brief Partial convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the block of output data - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + /** + * @brief Partial convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. */ arm_status arm_conv_partial_opt_q15( @@ -3534,9 +3212,9 @@ extern "C" * @param[out] *pDst points to the block of output data * @param[in] firstIndex is the first output sample to start with. * @param[in] numPoints is the number of output points to be computed. - * @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + * @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. */ arm_status arm_conv_partial_fast_opt_q15( @@ -3595,18 +3273,18 @@ extern "C" uint32_t numPoints); - /** - * @brief Partial convolution of Q7 sequences - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the block of output data - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + /** + * @brief Partial convolution of Q7 sequences + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. */ arm_status arm_conv_partial_opt_q7( @@ -4098,8 +3776,8 @@ extern "C" * @brief Initialization function for the Q15 FIR lattice filter. * @param[in] *S points to an instance of the Q15 FIR lattice structure. * @param[in] numStages number of filter stages. - * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. - * @param[in] *pState points to the state buffer. The array is of length numStages. + * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] *pState points to the state buffer. The array is of length numStages. * @return none. */ @@ -4666,15 +4344,15 @@ extern "C" float32_t * pDst); - /** - * @brief Correlation of Q15 sequences - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @return none. + /** + * @brief Correlation of Q15 sequences + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @return none. */ void arm_correlate_opt_q15( q15_t * pSrcA, @@ -4728,7 +4406,7 @@ extern "C" * @param[in] *pSrcB points to the second input sequence. * @param[in] srcBLen length of the second input sequence. * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. * @return none. */ @@ -4776,16 +4454,16 @@ extern "C" - /** - * @brief Correlation of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return none. + /** + * @brief Correlation of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + * @return none. */ void arm_correlate_opt_q7( @@ -5031,9 +4709,9 @@ extern "C" /* * @brief Floating-point sin_cos function. - * @param[in] theta input value in degrees - * @param[out] *pSinVal points to the processed sine output. - * @param[out] *pCosVal points to the processed cos output. + * @param[in] theta input value in degrees + * @param[out] *pSinVal points to the processed sine output. + * @param[out] *pCosVal points to the processed cos output. * @return none. */ @@ -5044,9 +4722,9 @@ extern "C" /* * @brief Q31 sin_cos function. - * @param[in] theta scaled input value in degrees - * @param[out] *pSinVal points to the processed sine output. - * @param[out] *pCosVal points to the processed cosine output. + * @param[in] theta scaled input value in degrees + * @param[out] *pSinVal points to the processed sine output. + * @param[out] *pCosVal points to the processed cosine output. * @return none. */ @@ -5144,7 +4822,7 @@ extern "C" /** * @defgroup PID PID Motor Control * - * A Proportional Integral Derivative (PID) controller is a generic feedback control + * A Proportional Integral Derivative (PID) controller is a generic feedback control * loop mechanism widely used in industrial control systems. * A PID controller is the most commonly used type of feedback controller. * @@ -5163,39 +4841,39 @@ extern "C" * * \par * where \c Kp is proportional constant, \c Ki is Integral constant and \c Kd is Derivative constant - * - * \par - * \image html PID.gif "Proportional Integral Derivative Controller" + * + * \par + * \image html PID.gif "Proportional Integral Derivative Controller" * * \par * The PID controller calculates an "error" value as the difference between * the measured output and the reference input. - * The controller attempts to minimize the error by adjusting the process control inputs. - * The proportional value determines the reaction to the current error, - * the integral value determines the reaction based on the sum of recent errors, + * The controller attempts to minimize the error by adjusting the process control inputs. + * The proportional value determines the reaction to the current error, + * the integral value determines the reaction based on the sum of recent errors, * and the derivative value determines the reaction based on the rate at which the error has been changing. * - * \par Instance Structure - * The Gains A0, A1, A2 and state variables for a PID controller are stored together in an instance data structure. - * A separate instance structure must be defined for each PID Controller. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Reset Functions - * There is also an associated reset function for each data type which clears the state array. + * \par Instance Structure + * The Gains A0, A1, A2 and state variables for a PID controller are stored together in an instance data structure. + * A separate instance structure must be defined for each PID Controller. + * There are separate instance structure declarations for each of the 3 supported data types. * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: + * \par Reset Functions + * There is also an associated reset function for each data type which clears the state array. + * + * \par Initialization Functions + * There is also an associated initialization function for each data type. + * The initialization function performs the following operations: * - Initializes the Gains A0, A1, A2 from Kp,Ki, Kd gains. - * - Zeros out the values in the state buffer. - * - * \par - * Instance structure cannot be placed into a const data section and it is recommended to use the initialization function. + * - Zeros out the values in the state buffer. * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the PID Controller functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. + * \par + * Instance structure cannot be placed into a const data section and it is recommended to use the initialization function. + * + * \par Fixed-Point Behavior + * Care must be taken when using the fixed-point versions of the PID Controller functions. + * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. + * Refer to the function specific documentation below for usage guidelines. */ /** @@ -5211,7 +4889,7 @@ extern "C" */ - __STATIC_INLINE float32_t arm_pid_f32( + static __INLINE float32_t arm_pid_f32( arm_pid_instance_f32 * S, float32_t in) { @@ -5237,16 +4915,16 @@ extern "C" * @param[in] in input sample to process * @return out processed output sample. * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 2 bits as there are four additions. - * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 64-bit accumulator. + * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. + * Thus, if the accumulator result overflows it wraps around rather than clip. + * In order to avoid overflows completely the input signal must be scaled down by 2 bits as there are four additions. + * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. */ - __STATIC_INLINE q31_t arm_pid_q31( + static __INLINE q31_t arm_pid_q31( arm_pid_instance_q31 * S, q31_t in) { @@ -5284,48 +4962,43 @@ extern "C" * @param[in] in input sample to process * @return out processed output sample. * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both Gains and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. + * Scaling and Overflow Behavior: + * \par + * The function is implemented using a 64-bit internal accumulator. + * Both Gains and state variables are represented in 1.15 format and multiplications yield a 2.30 result. + * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. + * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. + * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. * Lastly, the accumulator is saturated to yield a result in 1.15 format. */ - __STATIC_INLINE q15_t arm_pid_q15( + static __INLINE q15_t arm_pid_q15( arm_pid_instance_q15 * S, q15_t in) { q63_t acc; q15_t out; +#ifndef ARM_MATH_CM0_FAMILY + __SIMD32_TYPE *vstate; + /* Implementation of PID controller */ -#ifdef ARM_MATH_CM0 - - /* acc = A0 * x[n] */ - acc = ((q31_t) S->A0) * in; - -#else - /* acc = A0 * x[n] */ acc = (q31_t) __SMUAD(S->A0, in); -#endif + /* acc += A1 * x[n-1] + A2 * x[n-2] */ + vstate = __SIMD32_CONST(S->state); + acc = __SMLALD(S->A1, (q31_t) *vstate, acc); -#ifdef ARM_MATH_CM0 +#else + /* acc = A0 * x[n] */ + acc = ((q31_t) S->A0) * in; /* acc += A1 * x[n-1] + A2 * x[n-2] */ acc += (q31_t) S->A1 * S->state[0]; acc += (q31_t) S->A2 * S->state[1]; -#else - - /* acc += A1 * x[n-1] + A2 * x[n-2] */ - acc = __SMLALD(S->A1, (q31_t) __SIMD32(S->state), acc); - #endif /* acc += y[n-1] */ @@ -5378,7 +5051,7 @@ extern "C" * and Ia + Ib + Ic = 0, in this condition Ialpha and Ibeta * can be calculated using only Ia and Ib. * - * The function operates on a single sample of data and each call to the function returns the processed output. + * The function operates on a single sample of data and each call to the function returns the processed output. * The library provides separate functions for Q31 and floating-point data types. * \par Algorithm * \image html clarkeFormula.gif @@ -5405,7 +5078,7 @@ extern "C" * @return none. */ - __STATIC_INLINE void arm_clarke_f32( + static __INLINE void arm_clarke_f32( float32_t Ia, float32_t Ib, float32_t * pIalpha, @@ -5435,7 +5108,7 @@ extern "C" * There is saturation on the addition, hence there is no risk of overflow. */ - __STATIC_INLINE void arm_clarke_q31( + static __INLINE void arm_clarke_q31( q31_t Ia, q31_t Ib, q31_t * pIalpha, @@ -5482,8 +5155,8 @@ extern "C" /** * @defgroup inv_clarke Vector Inverse Clarke Transform * Inverse Clarke transform converts the two-coordinate time invariant vector into instantaneous stator phases. - * - * The function operates on a single sample of data and each call to the function returns the processed output. + * + * The function operates on a single sample of data and each call to the function returns the processed output. * The library provides separate functions for Q31 and floating-point data types. * \par Algorithm * \image html clarkeInvFormula.gif @@ -5510,7 +5183,7 @@ extern "C" */ - __STATIC_INLINE void arm_inv_clarke_f32( + static __INLINE void arm_inv_clarke_f32( float32_t Ialpha, float32_t Ibeta, float32_t * pIa, @@ -5520,12 +5193,12 @@ extern "C" *pIa = Ialpha; /* Calculating pIb from Ialpha and Ibeta by equation pIb = -(1/2) * Ialpha + (sqrt(3)/2) * Ibeta */ - *pIb = -0.5f * Ialpha + (float32_t) 0.8660254039f *Ibeta; + *pIb = -0.5 * Ialpha + (float32_t) 0.8660254039 *Ibeta; } /** - * @brief Inverse Clarke transform for Q31 version + * @brief Inverse Clarke transform for Q31 version * @param[in] Ialpha input two-phase orthogonal vector axis alpha * @param[in] Ibeta input two-phase orthogonal vector axis beta * @param[out] *pIa points to output three-phase coordinate a @@ -5539,7 +5212,7 @@ extern "C" * There is saturation on the subtraction, hence there is no risk of overflow. */ - __STATIC_INLINE void arm_inv_clarke_q31( + static __INLINE void arm_inv_clarke_q31( q31_t Ialpha, q31_t Ibeta, q31_t * pIa, @@ -5587,19 +5260,19 @@ extern "C" * @defgroup park Vector Park Transform * * Forward Park transform converts the input two-coordinate vector to flux and torque components. - * The Park transform can be used to realize the transformation of the Ialpha and the Ibeta currents - * from the stationary to the moving reference frame and control the spatial relationship between + * The Park transform can be used to realize the transformation of the Ialpha and the Ibeta currents + * from the stationary to the moving reference frame and control the spatial relationship between * the stator vector current and rotor flux vector. - * If we consider the d axis aligned with the rotor flux, the diagram below shows the + * If we consider the d axis aligned with the rotor flux, the diagram below shows the * current vector and the relationship from the two reference frames: * \image html park.gif "Stator current space vector and its component in (a,b) and in the d,q rotating reference frame" * - * The function operates on a single sample of data and each call to the function returns the processed output. + * The function operates on a single sample of data and each call to the function returns the processed output. * The library provides separate functions for Q31 and floating-point data types. * \par Algorithm * \image html parkFormula.gif - * where Ialpha and Ibeta are the stator vector components, - * pId and pIq are rotor vector components and cosVal and sinVal are the + * where Ialpha and Ibeta are the stator vector components, + * pId and pIq are rotor vector components and cosVal and sinVal are the * cosine and sine values of theta (rotor flux position). * \par Fixed-Point Behavior * Care must be taken when using the Q31 version of the Park transform. @@ -5626,7 +5299,7 @@ extern "C" * */ - __STATIC_INLINE void arm_park_f32( + static __INLINE void arm_park_f32( float32_t Ialpha, float32_t Ibeta, float32_t * pId, @@ -5643,7 +5316,7 @@ extern "C" } /** - * @brief Park transform for Q31 version + * @brief Park transform for Q31 version * @param[in] Ialpha input two-phase vector coordinate alpha * @param[in] Ibeta input two-phase vector coordinate beta * @param[out] *pId points to output rotor reference frame d @@ -5660,7 +5333,7 @@ extern "C" */ - __STATIC_INLINE void arm_park_q31( + static __INLINE void arm_park_q31( q31_t Ialpha, q31_t Ibeta, q31_t * pId, @@ -5716,12 +5389,12 @@ extern "C" * @defgroup inv_park Vector Inverse Park transform * Inverse Park transform converts the input flux and torque components to two-coordinate vector. * - * The function operates on a single sample of data and each call to the function returns the processed output. + * The function operates on a single sample of data and each call to the function returns the processed output. * The library provides separate functions for Q31 and floating-point data types. * \par Algorithm * \image html parkInvFormula.gif - * where pIalpha and pIbeta are the stator vector components, - * Id and Iq are rotor vector components and cosVal and sinVal are the + * where pIalpha and pIbeta are the stator vector components, + * Id and Iq are rotor vector components and cosVal and sinVal are the * cosine and sine values of theta (rotor flux position). * \par Fixed-Point Behavior * Care must be taken when using the Q31 version of the Park transform. @@ -5745,7 +5418,7 @@ extern "C" * @return none. */ - __STATIC_INLINE void arm_inv_park_f32( + static __INLINE void arm_inv_park_f32( float32_t Id, float32_t Iq, float32_t * pIalpha, @@ -5763,7 +5436,7 @@ extern "C" /** - * @brief Inverse Park transform for Q31 version + * @brief Inverse Park transform for Q31 version * @param[in] Id input coordinate of rotor reference frame d * @param[in] Iq input coordinate of rotor reference frame q * @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha @@ -5780,7 +5453,7 @@ extern "C" */ - __STATIC_INLINE void arm_inv_park_q31( + static __INLINE void arm_inv_park_q31( q31_t Id, q31_t Iq, q31_t * pIalpha, @@ -5839,7 +5512,7 @@ extern "C" * Linear interpolation is a method of curve fitting using linear polynomials. * Linear interpolation works by effectively drawing a straight line between two neighboring samples and returning the appropriate point along that line * - * \par + * \par * \image html LinearInterp.gif "Linear interpolation" * * \par @@ -5859,10 +5532,10 @@ extern "C" * sample of data and each call to the function returns a single processed value. * S points to an instance of the Linear Interpolate function data structure. * x is the input sample value. The functions returns the output value. - * + * * \par - * if x is outside of the table boundary, Linear interpolation returns first value of the table - * if x is below input range and returns last value of table if x is above range. + * if x is outside of the table boundary, Linear interpolation returns first value of the table + * if x is below input range and returns last value of table if x is above range. */ /** @@ -5878,7 +5551,7 @@ extern "C" * */ - __STATIC_INLINE float32_t arm_linear_interp_f32( + static __INLINE float32_t arm_linear_interp_f32( arm_linear_interp_instance_f32 * S, float32_t x) { @@ -5891,14 +5564,14 @@ extern "C" float32_t *pYData = S->pYData; /* pointer to output table */ /* Calculation of index */ - i = (x - S->x1) / xSpacing; + i = (int32_t) ((x - S->x1) / xSpacing); if(i < 0) { /* Iniatilize output for below specified range as least output value of table */ y = pYData[0]; } - else if((unsigned)i >= S->nValues) + else if((uint32_t)i >= S->nValues) { /* Iniatilize output for above specified range as last output value of table */ y = pYData[S->nValues - 1]; @@ -5937,7 +5610,7 @@ extern "C" */ - __STATIC_INLINE q31_t arm_linear_interp_q31( + static __INLINE q31_t arm_linear_interp_q31( q31_t * pYData, q31_t x, uint32_t nValues) @@ -5952,7 +5625,7 @@ extern "C" /* Index value calculation */ index = ((x & 0xFFF00000) >> 20); - if(index >= (nValues - 1)) + if(index >= (int32_t)(nValues - 1)) { return (pYData[nValues - 1]); } @@ -5994,12 +5667,12 @@ extern "C" * * \par * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. - * This function can support maximum of table size 2^12. + * This function can support maximum of table size 2^12. * */ - __STATIC_INLINE q15_t arm_linear_interp_q15( + static __INLINE q15_t arm_linear_interp_q15( q15_t * pYData, q31_t x, uint32_t nValues) @@ -6014,7 +5687,7 @@ extern "C" /* Index value calculation */ index = ((x & 0xFFF00000) >> 20u); - if(index >= (nValues - 1)) + if(index >= (int32_t)(nValues - 1)) { return (pYData[nValues - 1]); } @@ -6059,7 +5732,7 @@ extern "C" */ - __STATIC_INLINE q7_t arm_linear_interp_q7( + static __INLINE q7_t arm_linear_interp_q7( q7_t * pYData, q31_t x, uint32_t nValues) @@ -6067,22 +5740,22 @@ extern "C" q31_t y; /* output */ q7_t y0, y1; /* Nearest output values */ q31_t fract; /* fractional part */ - int32_t index; /* Index to read nearest output values */ + uint32_t index; /* Index to read nearest output values */ /* Input is in 12.20 format */ /* 12 bits for the table index */ /* Index value calculation */ - index = ((x & 0xFFF00000) >> 20u); + if (x < 0) + { + return (pYData[0]); + } + index = (x >> 20) & 0xfff; if(index >= (nValues - 1)) { return (pYData[nValues - 1]); } - else if(index < 0) - { - return (pYData[0]); - } else { @@ -6174,14 +5847,14 @@ extern "C" * @defgroup SQRT Square Root * * Computes the square root of a number. - * There are separate functions for Q15, Q31, and floating-point data types. + * There are separate functions for Q15, Q31, and floating-point data types. * The square root function is computed using the Newton-Raphson algorithm. * This is an iterative algorithm of the form: *
    *      x1 = x0 - f(x0)/f'(x0)
    * 
* where x1 is the current estimate, - * x0 is the previous estimate and + * x0 is the previous estimate, and * f'(x0) is the derivative of f() evaluated at x0. * For the square root function, the algorithm reduces to: *
@@ -6204,21 +5877,19 @@ extern "C"
    * in is negative value and returns zero output for negative values.
    */
 
-  __STATIC_INLINE arm_status arm_sqrt_f32(
+  static __INLINE arm_status arm_sqrt_f32(
   float32_t in,
   float32_t * pOut)
   {
     if(in > 0)
     {
 
-//    #if __FPU_USED
-    #if (__FPU_USED == 1) && defined ( __CC_ARM   )
-        *pOut = __sqrtf(in);
-    #elif (__FPU_USED == 1) && defined ( __TMS_740 )
-        *pOut = __builtin_sqrtf(in);
-    #else
-        *pOut = sqrtf(in);
-    #endif
+//      #if __FPU_USED
+#if (__FPU_USED == 1) && defined ( __CC_ARM   )
+      *pOut = __sqrtf(in);
+#else
+      *pOut = sqrtf(in);
+#endif
 
       return (ARM_MATH_SUCCESS);
     }
@@ -6266,7 +5937,7 @@ extern "C"
    * @brief floating-point Circular write function.
    */
 
-  __STATIC_INLINE void arm_circularWrite_f32(
+  static __INLINE void arm_circularWrite_f32(
   int32_t * circBuffer,
   int32_t L,
   uint16_t * writeOffset,
@@ -6311,7 +5982,7 @@ extern "C"
   /**
    * @brief floating-point Circular Read function.
    */
-  __STATIC_INLINE void arm_circularRead_f32(
+  static __INLINE void arm_circularRead_f32(
   int32_t * circBuffer,
   int32_t L,
   int32_t * readOffset,
@@ -6366,7 +6037,7 @@ extern "C"
    * @brief Q15 Circular write function.
    */
 
-  __STATIC_INLINE void arm_circularWrite_q15(
+  static __INLINE void arm_circularWrite_q15(
   q15_t * circBuffer,
   int32_t L,
   uint16_t * writeOffset,
@@ -6411,7 +6082,7 @@ extern "C"
   /**
    * @brief Q15 Circular Read function.
    */
-  __STATIC_INLINE void arm_circularRead_q15(
+  static __INLINE void arm_circularRead_q15(
   q15_t * circBuffer,
   int32_t L,
   int32_t * readOffset,
@@ -6468,7 +6139,7 @@ extern "C"
    * @brief Q7 Circular write function.
    */
 
-  __STATIC_INLINE void arm_circularWrite_q7(
+  static __INLINE void arm_circularWrite_q7(
   q7_t * circBuffer,
   int32_t L,
   uint16_t * writeOffset,
@@ -6513,7 +6184,7 @@ extern "C"
   /**
    * @brief Q7 Circular Read function.
    */
-  __STATIC_INLINE void arm_circularRead_q7(
+  static __INLINE void arm_circularRead_q7(
   q7_t * circBuffer,
   int32_t L,
   int32_t * readOffset,
@@ -7084,11 +6755,11 @@ extern "C"
   uint32_t numSamples);
 
   /**
-   * @brief Converts the elements of the floating-point vector to Q31 vector. 
-   * @param[in]       *pSrc points to the floating-point input vector 
+   * @brief Converts the elements of the floating-point vector to Q31 vector.
+   * @param[in]       *pSrc points to the floating-point input vector
    * @param[out]      *pDst points to the Q31 output vector
-   * @param[in]       blockSize length of the input vector 
-   * @return none. 
+   * @param[in]       blockSize length of the input vector
+   * @return none.
    */
   void arm_float_to_q31(
   float32_t * pSrc,
@@ -7096,10 +6767,10 @@ extern "C"
   uint32_t blockSize);
 
   /**
-   * @brief Converts the elements of the floating-point vector to Q15 vector. 
-   * @param[in]       *pSrc points to the floating-point input vector 
+   * @brief Converts the elements of the floating-point vector to Q15 vector.
+   * @param[in]       *pSrc points to the floating-point input vector
    * @param[out]      *pDst points to the Q15 output vector
-   * @param[in]       blockSize length of the input vector 
+   * @param[in]       blockSize length of the input vector
    * @return          none
    */
   void arm_float_to_q15(
@@ -7108,10 +6779,10 @@ extern "C"
   uint32_t blockSize);
 
   /**
-   * @brief Converts the elements of the floating-point vector to Q7 vector. 
-   * @param[in]       *pSrc points to the floating-point input vector 
+   * @brief Converts the elements of the floating-point vector to Q7 vector.
+   * @param[in]       *pSrc points to the floating-point input vector
    * @param[out]      *pDst points to the Q7 output vector
-   * @param[in]       blockSize length of the input vector 
+   * @param[in]       blockSize length of the input vector
    * @return          none
    */
   void arm_float_to_q7(
@@ -7231,12 +6902,12 @@ extern "C"
    *           + f(XF, YF+1) * (1-(x-XF))*(y-YF)
    *           + f(XF+1, YF+1) * (x-XF)*(y-YF)
    * 
- * Note that the coordinates (x, y) contain integer and fractional components. + * Note that the coordinates (x, y) contain integer and fractional components. * The integer components specify which portion of the table to use while the * fractional components control the interpolation processor. * * \par - * if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output. + * if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output. */ /** @@ -7254,7 +6925,7 @@ extern "C" */ - __STATIC_INLINE float32_t arm_bilinear_interp_f32( + static __INLINE float32_t arm_bilinear_interp_f32( const arm_bilinear_interp_instance_f32 * S, float32_t X, float32_t Y) @@ -7322,7 +6993,7 @@ extern "C" * @return out interpolated value. */ - __STATIC_INLINE q31_t arm_bilinear_interp_q31( + static __INLINE q31_t arm_bilinear_interp_q31( arm_bilinear_interp_instance_q31 * S, q31_t X, q31_t Y) @@ -7398,7 +7069,7 @@ extern "C" * @return out interpolated value. */ - __STATIC_INLINE q15_t arm_bilinear_interp_q15( + static __INLINE q15_t arm_bilinear_interp_q15( arm_bilinear_interp_instance_q15 * S, q31_t X, q31_t Y) @@ -7478,7 +7149,7 @@ extern "C" * @return out interpolated value. */ - __STATIC_INLINE q7_t arm_bilinear_interp_q7( + static __INLINE q7_t arm_bilinear_interp_q7( arm_bilinear_interp_instance_q7 * S, q31_t X, q31_t Y) @@ -7551,6 +7222,84 @@ extern "C" */ +#if defined ( __CC_ARM ) //Keil +//SMMLAR + #define multAcc_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((((q63_t) a) << 32) + ((q63_t) x * y) + 0x80000000LL ) >> 32) + +//SMMLSR + #define multSub_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((((q63_t) a) << 32) - ((q63_t) x * y) + 0x80000000LL ) >> 32) + +//SMMULR + #define mult_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((q63_t) x * y + 0x80000000LL ) >> 32) + +//Enter low optimization region - place directly above function definition + #define LOW_OPTIMIZATION_ENTER \ + _Pragma ("push") \ + _Pragma ("O1") + +//Exit low optimization region - place directly after end of function definition + #define LOW_OPTIMIZATION_EXIT \ + _Pragma ("pop") + +//Enter low optimization region - place directly above function definition + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + +//Exit low optimization region - place directly after end of function definition + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined(__ICCARM__) //IAR + //SMMLA + #define multAcc_32x32_keep32_R(a, x, y) \ + a += (q31_t) (((q63_t) x * y) >> 32) + + //SMMLS + #define multSub_32x32_keep32_R(a, x, y) \ + a -= (q31_t) (((q63_t) x * y) >> 32) + +//SMMUL + #define mult_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((q63_t) x * y ) >> 32) + +//Enter low optimization region - place directly above function definition + #define LOW_OPTIMIZATION_ENTER \ + _Pragma ("optimize=low") + +//Exit low optimization region - place directly after end of function definition + #define LOW_OPTIMIZATION_EXIT + +//Enter low optimization region - place directly above function definition + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER \ + _Pragma ("optimize=low") + +//Exit low optimization region - place directly after end of function definition + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined(__GNUC__) + //SMMLA + #define multAcc_32x32_keep32_R(a, x, y) \ + a += (q31_t) (((q63_t) x * y) >> 32) + + //SMMLS + #define multSub_32x32_keep32_R(a, x, y) \ + a -= (q31_t) (((q63_t) x * y) >> 32) + +//SMMUL + #define mult_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((q63_t) x * y ) >> 32) + + #define LOW_OPTIMIZATION_ENTER __attribute__(( optimize("-O1") )) + + #define LOW_OPTIMIZATION_EXIT + + #define IAR_ONLY_LOW_OPTIMIZATION_ENTER + + #define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#endif + diff --git a/src/modules/mathlib/CMSIS/Include/core_cm3.h b/src/modules/mathlib/CMSIS/Include/core_cm3.h index 733d6be539..8ac6dc0788 100644 --- a/src/modules/mathlib/CMSIS/Include/core_cm3.h +++ b/src/modules/mathlib/CMSIS/Include/core_cm3.h @@ -1,25 +1,40 @@ /**************************************************************************//** * @file core_cm3.h * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File - * @version V3.01 - * @date 22. March 2012 + * @version V3.20 + * @date 25. February 2013 * * @note - * Copyright (C) 2009-2012 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. * ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + #if defined ( __ICCARM__ ) #pragma system_include /* treat file as system include file for MISRA check */ #endif @@ -54,7 +69,7 @@ /* CMSIS CM3 definitions */ #define __CM3_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ -#define __CM3_CMSIS_VERSION_SUB (0x01) /*!< [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */ #define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | \ __CM3_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ @@ -636,14 +651,14 @@ typedef struct __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ uint32_t RESERVED2[15]; __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[29]; + uint32_t RESERVED3[29]; __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ - uint32_t RESERVED4[43]; + uint32_t RESERVED4[43]; __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6]; + uint32_t RESERVED5[6]; __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ @@ -1516,9 +1531,9 @@ __STATIC_INLINE void NVIC_SystemReset(void) */ __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { - if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ - SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */ + SysTick->LOAD = ticks - 1; /* set reload register */ NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ SysTick->VAL = 0; /* Load the SysTick Counter Value */ SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | diff --git a/src/modules/mathlib/CMSIS/Include/core_cm4.h b/src/modules/mathlib/CMSIS/Include/core_cm4.h index 5f3b7d6198..93efd3a7ae 100644 --- a/src/modules/mathlib/CMSIS/Include/core_cm4.h +++ b/src/modules/mathlib/CMSIS/Include/core_cm4.h @@ -1,25 +1,40 @@ /**************************************************************************//** * @file core_cm4.h * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File - * @version V3.01 - * @date 22. March 2012 + * @version V3.20 + * @date 25. February 2013 * * @note - * Copyright (C) 2009-2012 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. * ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + #if defined ( __ICCARM__ ) #pragma system_include /* treat file as system include file for MISRA check */ #endif @@ -54,7 +69,7 @@ /* CMSIS CM4 definitions */ #define __CM4_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ -#define __CM4_CMSIS_VERSION_SUB (0x01) /*!< [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */ #define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16) | \ __CM4_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ @@ -669,14 +684,14 @@ typedef struct __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ uint32_t RESERVED2[15]; __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[29]; + uint32_t RESERVED3[29]; __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ - uint32_t RESERVED4[43]; + uint32_t RESERVED4[43]; __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ - uint32_t RESERVED5[6]; + uint32_t RESERVED5[6]; __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ @@ -1661,9 +1676,9 @@ __STATIC_INLINE void NVIC_SystemReset(void) */ __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { - if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ - SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */ + SysTick->LOAD = ticks - 1; /* set reload register */ NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ SysTick->VAL = 0; /* Load the SysTick Counter Value */ SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | diff --git a/src/modules/mathlib/CMSIS/Include/core_cm4_simd.h b/src/modules/mathlib/CMSIS/Include/core_cm4_simd.h index b5140073fb..af1831ee17 100644 --- a/src/modules/mathlib/CMSIS/Include/core_cm4_simd.h +++ b/src/modules/mathlib/CMSIS/Include/core_cm4_simd.h @@ -1,25 +1,39 @@ /**************************************************************************//** * @file core_cm4_simd.h * @brief CMSIS Cortex-M4 SIMD Header File - * @version V3.01 - * @date 06. March 2012 + * @version V3.20 + * @date 25. February 2013 * * @note - * Copyright (C) 2010-2012 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. * ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + #ifdef __cplusplus extern "C" { @@ -110,6 +124,8 @@ #define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) +#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \ + ((int64_t)(ARG3) << 32) ) >> 32)) /*-- End CM4 SIMD Intrinsics -----------------------------------------------------*/ @@ -624,6 +640,14 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QSUB(uint32_t op1, __RES; \ }) +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + /*-- End CM4 SIMD Intrinsics -----------------------------------------------------*/ diff --git a/src/modules/mathlib/CMSIS/Include/core_cmFunc.h b/src/modules/mathlib/CMSIS/Include/core_cmFunc.h index adb07b5d34..139bc3c5ec 100644 --- a/src/modules/mathlib/CMSIS/Include/core_cmFunc.h +++ b/src/modules/mathlib/CMSIS/Include/core_cmFunc.h @@ -1,25 +1,39 @@ /**************************************************************************//** * @file core_cmFunc.h * @brief CMSIS Cortex-M Core Function Access Header File - * @version V3.01 - * @date 06. March 2012 + * @version V3.20 + * @date 25. February 2013 * * @note - * Copyright (C) 2009-2012 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. * ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + #ifndef __CORE_CMFUNC_H #define __CORE_CMFUNC_H @@ -314,7 +328,7 @@ __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void) { - __ASM volatile ("cpsie i"); + __ASM volatile ("cpsie i" : : : "memory"); } @@ -325,7 +339,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void) { - __ASM volatile ("cpsid i"); + __ASM volatile ("cpsid i" : : : "memory"); } @@ -352,7 +366,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_CONTROL(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_CONTROL(uint32_t control) { - __ASM volatile ("MSR control, %0" : : "r" (control) ); + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); } @@ -424,7 +438,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PSP(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) { - __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) ); + __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) : "sp"); } @@ -451,7 +465,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_MSP(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) { - __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) ); + __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) : "sp"); } @@ -478,7 +492,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PRIMASK(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PRIMASK(uint32_t priMask) { - __ASM volatile ("MSR primask, %0" : : "r" (priMask) ); + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); } @@ -491,7 +505,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PRIMASK(uint32_t p */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_fault_irq(void) { - __ASM volatile ("cpsie f"); + __ASM volatile ("cpsie f" : : : "memory"); } @@ -502,7 +516,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_fault_irq(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_fault_irq(void) { - __ASM volatile ("cpsid f"); + __ASM volatile ("cpsid f" : : : "memory"); } @@ -529,7 +543,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_BASEPRI(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_BASEPRI(uint32_t value) { - __ASM volatile ("MSR basepri, %0" : : "r" (value) ); + __ASM volatile ("MSR basepri, %0" : : "r" (value) : "memory"); } @@ -556,7 +570,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FAULTMASK(void */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) { - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) ); + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); } #endif /* (__CORTEX_M >= 0x03) */ @@ -575,7 +589,10 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FPSCR(void) #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) uint32_t result; + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + __ASM volatile (""); return(result); #else return(0); @@ -592,7 +609,10 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FPSCR(void) __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) { #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) - __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) ); + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc"); + __ASM volatile (""); #endif } diff --git a/src/modules/mathlib/CMSIS/Include/core_cmInstr.h b/src/modules/mathlib/CMSIS/Include/core_cmInstr.h index 624c175fd5..8946c2c492 100644 --- a/src/modules/mathlib/CMSIS/Include/core_cmInstr.h +++ b/src/modules/mathlib/CMSIS/Include/core_cmInstr.h @@ -1,25 +1,39 @@ /**************************************************************************//** * @file core_cmInstr.h * @brief CMSIS Cortex-M Core Instruction Access Header File - * @version V3.01 - * @date 06. March 2012 + * @version V3.20 + * @date 05. March 2013 * * @note - * Copyright (C) 2009-2012 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. * ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + #ifndef __CORE_CMINSTR_H #define __CORE_CMINSTR_H @@ -111,12 +125,13 @@ \param [in] value Value to reverse \return Reversed value */ +#ifndef __NO_EMBEDDED_ASM __attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) { rev16 r0, r0 bx lr } - +#endif /** \brief Reverse byte order in signed short value @@ -125,11 +140,13 @@ __attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(u \param [in] value Value to reverse \return Reversed value */ +#ifndef __NO_EMBEDDED_ASM __attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int32_t __REVSH(int32_t value) { revsh r0, r0 bx lr } +#endif /** \brief Rotate Right in unsigned value (32 bit) @@ -143,6 +160,17 @@ __attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int32_t __REVSH(in #define __ROR __ror +/** \brief Breakpoint + + This function causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __breakpoint(value) + + #if (__CORTEX_M >= 0x03) /** \brief Reverse bit order of value @@ -279,6 +307,17 @@ __attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int32_t __REVSH(in #elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ /* GNU gcc specific functions */ +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constrant "l" + * Otherwise, use general registers, specified by constrant "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + /** \brief No Operation No Operation does nothing. This instruction can be used for code alignment purposes. @@ -364,10 +403,14 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE void __DMB(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __REV(uint32_t value) { +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else uint32_t result; - __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) ); + __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); return(result); +#endif } @@ -382,7 +425,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __REV16(uint32_t val { uint32_t result; - __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) ); + __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); return(result); } @@ -396,10 +439,14 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __REV16(uint32_t val */ __attribute__( ( always_inline ) ) __STATIC_INLINE int32_t __REVSH(int32_t value) { +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (short)__builtin_bswap16(value); +#else uint32_t result; - __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) ); + __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); return(result); +#endif } @@ -413,12 +460,21 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE int32_t __REVSH(int32_t value */ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __ROR(uint32_t op1, uint32_t op2) { - - __ASM volatile ("ror %0, %0, %1" : "+r" (op1) : "r" (op2) ); - return(op1); + return (op1 >> op2) | (op1 << (32 - op2)); } +/** \brief Breakpoint + + This function causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + #if (__CORTEX_M >= 0x03) /** \brief Reverse bit order of value @@ -446,9 +502,16 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __RBIT(uint32_t valu */ __attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __LDREXB(volatile uint8_t *addr) { - uint8_t result; + uint32_t result; - __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) ); +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif return(result); } @@ -462,9 +525,16 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __LDREXB(volatile uin */ __attribute__( ( always_inline ) ) __STATIC_INLINE uint16_t __LDREXH(volatile uint16_t *addr) { - uint16_t result; + uint32_t result; - __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) ); +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif return(result); } @@ -480,7 +550,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __LDREXW(volatile ui { uint32_t result; - __ASM volatile ("ldrex %0, [%1]" : "=r" (result) : "r" (addr) ); + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); return(result); } @@ -498,7 +568,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __STREXB(uint8_t val { uint32_t result; - __ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) ); + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); return(result); } @@ -516,7 +586,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __STREXH(uint16_t va { uint32_t result; - __ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) ); + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); return(result); } @@ -534,7 +604,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __STREXW(uint32_t va { uint32_t result; - __ASM volatile ("strex %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) ); + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); return(result); } @@ -546,7 +616,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __STREXW(uint32_t va */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __CLREX(void) { - __ASM volatile ("clrex"); + __ASM volatile ("clrex" ::: "memory"); } @@ -591,7 +661,7 @@ __attribute__( ( always_inline ) ) __STATIC_INLINE void __CLREX(void) */ __attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __CLZ(uint32_t value) { - uint8_t result; + uint32_t result; __ASM volatile ("clz %0, %1" : "=r" (result) : "r" (value) ); return(result); diff --git a/src/modules/mathlib/CMSIS/module.mk b/src/modules/mathlib/CMSIS/library.mk similarity index 69% rename from src/modules/mathlib/CMSIS/module.mk rename to src/modules/mathlib/CMSIS/library.mk index 5e1abe642f..0cc1b559d8 100644 --- a/src/modules/mathlib/CMSIS/module.mk +++ b/src/modules/mathlib/CMSIS/library.mk @@ -1,6 +1,6 @@ ############################################################################ # -# Copyright (c) 2012, 2013 PX4 Development Team. All rights reserved. +# Copyright (c) 2013 PX4 Development Team. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -35,26 +35,12 @@ # ARM CMSIS DSP library # -# -# Find sources -# -DSPLIB_SRCDIR := $(dir $(lastword $(MAKEFILE_LIST))) -SRCLIST := $(wildcard $(DSPLIB_SRCDIR)DSP_Lib/Source/*/*.c) -SRCS := $(patsubst $(DSPLIB_SRCDIR)%,%,$(SRCLIST)) - -INCLUDE_DIRS += $(DSPLIB_SRCDIR)/Include \ - $(DSPLIB_SRCDIR)/Device/ARM/ARMCM4/Include \ - $(DSPLIB_SRCDIR)/Device/ARM/ARMCM3/Include - -# Suppress some warnings that ARM should fix, but haven't. -EXTRADEFINES += -Wno-unsuffixed-float-constants \ - -Wno-sign-compare \ - -Wno-shadow \ - -Wno-float-equal \ - -Wno-unused-variable - -# -# Override the default visibility for symbols, since the CMSIS DSPLib doesn't -# have anything we can use to mark exported symbols. -# -DEFAULT_VISIBILITY = YES +ifeq ($(CONFIG_ARCH),CORTEXM4F) +PREBUILT_LIB := libarm_cortexM4lf_math.a +else ifeq ($(CONFIG_ARCH),CORTEXM4) +PREBUILT_LIB := libarm_cortexM4l_math.a +else ifeq ($(CONFIG_ARCH),CORTEXM3) +PREBUILT_LIB := libarm_cortexM3l_math.a +else +$(error CONFIG_ARCH value '$(CONFIG_ARCH)' not supported by the DSP library) +endif diff --git a/src/modules/mathlib/CMSIS/license.txt b/src/modules/mathlib/CMSIS/license.txt new file mode 100644 index 0000000000..31afac1ec4 --- /dev/null +++ b/src/modules/mathlib/CMSIS/license.txt @@ -0,0 +1,27 @@ +All pre-built libraries are guided by the following license: + +Copyright (C) 2009-2012 ARM Limited. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. From fdb897c3dd5561a1d9f22b35ec049e50d526d08b Mon Sep 17 00:00:00 2001 From: Duncan Greer Date: Mon, 20 May 2013 17:41:42 +1000 Subject: [PATCH 05/16] enable usb console --- nuttx/configs/px4fmu/nsh/defconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nuttx/configs/px4fmu/nsh/defconfig b/nuttx/configs/px4fmu/nsh/defconfig index 02e2243020..94d99112e2 100755 --- a/nuttx/configs/px4fmu/nsh/defconfig +++ b/nuttx/configs/px4fmu/nsh/defconfig @@ -248,7 +248,7 @@ CONFIG_SERIAL_TERMIOS=y CONFIG_SERIAL_CONSOLE_REINIT=y CONFIG_STANDARD_SERIAL=y -CONFIG_USART1_SERIAL_CONSOLE=y +CONFIG_USART1_SERIAL_CONSOLE=n CONFIG_USART2_SERIAL_CONSOLE=n CONFIG_USART3_SERIAL_CONSOLE=n CONFIG_UART4_SERIAL_CONSOLE=n @@ -561,7 +561,7 @@ CONFIG_START_MONTH=1 CONFIG_START_DAY=1 CONFIG_GREGORIAN_TIME=n CONFIG_JULIAN_TIME=n -CONFIG_DEV_CONSOLE=y +CONFIG_DEV_CONSOLE=n CONFIG_DEV_LOWCONSOLE=n CONFIG_MUTEX_TYPES=n CONFIG_PRIORITY_INHERITANCE=y @@ -925,7 +925,7 @@ CONFIG_USBDEV_TRACE_NRECORDS=512 # Size of the serial receive/transmit buffers. Default 256. # CONFIG_CDCACM=y -CONFIG_CDCACM_CONSOLE=n +CONFIG_CDCACM_CONSOLE=y #CONFIG_CDCACM_EP0MAXPACKET CONFIG_CDCACM_EPINTIN=1 #CONFIG_CDCACM_EPINTIN_FSSIZE From fa403956ed6ef1a345ee06c25500c937a78dd7cd Mon Sep 17 00:00:00 2001 From: Duncan Greer Date: Mon, 20 May 2013 17:41:59 +1000 Subject: [PATCH 06/16] change default rc channel mapping --- src/modules/uORB/topics/rc_channels.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/uORB/topics/rc_channels.h b/src/modules/uORB/topics/rc_channels.h index 9dd54df915..9df29ed34d 100644 --- a/src/modules/uORB/topics/rc_channels.h +++ b/src/modules/uORB/topics/rc_channels.h @@ -64,9 +64,9 @@ */ enum RC_CHANNELS_FUNCTION { - THROTTLE = 0, - ROLL = 1, - PITCH = 2, + THROTTLE = 2, + ROLL = 0, + PITCH = 1, YAW = 3, OVERRIDE = 4, AUTO_MODE = 5, From 05fe7779a98ef2d44693dac28bf73a899772a206 Mon Sep 17 00:00:00 2001 From: px4dev Date: Mon, 20 May 2013 20:33:18 +0200 Subject: [PATCH 07/16] Fix .gitignore to avoid ignoring prebuilt libraries. Also, generally clean-up the .gitignores and farm off separate versions for the NuttX/Apps directories to keep things tidy. --- .gitignore | 80 +++++------------- apps/.gitignore | 10 +++ nuttx/.gitignore | 28 ++++++ .../mathlib/CMSIS/libarm_cortexM3l_math.a | Bin 0 -> 3039508 bytes .../mathlib/CMSIS/libarm_cortexM4l_math.a | Bin 0 -> 3049684 bytes .../mathlib/CMSIS/libarm_cortexM4lf_math.a | Bin 0 -> 2989192 bytes src/modules/sensors/.context | 0 src/systemcmds/tests/.context | 0 8 files changed, 60 insertions(+), 58 deletions(-) create mode 100644 apps/.gitignore create mode 100644 nuttx/.gitignore create mode 100644 src/modules/mathlib/CMSIS/libarm_cortexM3l_math.a create mode 100755 src/modules/mathlib/CMSIS/libarm_cortexM4l_math.a create mode 100755 src/modules/mathlib/CMSIS/libarm_cortexM4lf_math.a delete mode 100644 src/modules/sensors/.context delete mode 100644 src/systemcmds/tests/.context diff --git a/.gitignore b/.gitignore index de03b0a607..0918b89f13 100644 --- a/.gitignore +++ b/.gitignore @@ -1,62 +1,26 @@ -.built -.context -*.context -*.bdat -*.pdat -.depend -.updated -.config -.config-e -.version -.project -.cproject -apps/builtin/builtin_list.h -apps/builtin/builtin_proto.h -Make.dep -*.pyc -*.o -*.a *.d -*~ -*.dSYM -Images/*.bin -Images/*.px4 -nuttx/Make.defs -nuttx/setenv.sh -nuttx/arch/arm/include/board -nuttx/arch/arm/include/chip -nuttx/arch/arm/src/board -nuttx/arch/arm/src/chip -nuttx/include/apps -nuttx/include/arch -nuttx/include/math.h -nuttx/include/nuttx/config.h -nuttx/include/nuttx/version.h -nuttx/tools/mkconfig -nuttx/tools/mkconfig.exe -nuttx/tools/mkversion -nuttx/tools/mkversion.exe -nuttx/nuttx -nuttx/System.map -nuttx/nuttx.bin -nuttx/nuttx.hex -.configured -.settings -Firmware.sublime-workspace -.DS_Store -cscope.out -.configX-e -nuttx-export.zip -.~lock.* -dot.gdbinit -mavlink/include/mavlink/v0.9/ -.*.swp -.swp -core -.gdbinit -mkdeps -Archives -Build !ROMFS/*/*.d !ROMFS/*/*/*.d !ROMFS/*/*/*/*.d +*.dSYM +*.o +*.pyc +*~ +.*.swp +.context +.cproject +.DS_Store +.gdbinit +.project +.settings +.swp +.~lock.* +Archives/* +Build/* +core +cscope.out +dot.gdbinit +Firmware.sublime-workspace +Images/*.bin +Images/*.px4 +mavlink/include/mavlink/v0.9/ diff --git a/apps/.gitignore b/apps/.gitignore new file mode 100644 index 0000000000..9eb5181a48 --- /dev/null +++ b/apps/.gitignore @@ -0,0 +1,10 @@ +*.a +*.bdat +*.pdat +.built +.config +.depend +.updated +builtin/builtin_list.h +builtin/builtin_proto.h +Make.dep diff --git a/nuttx/.gitignore b/nuttx/.gitignore new file mode 100644 index 0000000000..0d763ab2a9 --- /dev/null +++ b/nuttx/.gitignore @@ -0,0 +1,28 @@ +*.a +.config +.config-e +.configX-e +.depend +.version +arch/arm/include/board +arch/arm/include/chip +arch/arm/src/board +arch/arm/src/chip +include/apps +include/arch +include/math.h +include/nuttx/config.h +include/nuttx/version.h +Make.defs +Make.dep +mkdeps +nuttx +nuttx-export.zip +nuttx.bin +nuttx.hex +setenv.sh +System.map +tools/mkconfig +tools/mkconfig.exe +tools/mkversion +tools/mkversion.exe diff --git a/src/modules/mathlib/CMSIS/libarm_cortexM3l_math.a b/src/modules/mathlib/CMSIS/libarm_cortexM3l_math.a new file mode 100644 index 0000000000000000000000000000000000000000..6898bc27d0f736c2c77bb036a208b34ffebe6811 GIT binary patch literal 3039508 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όw#8t#o#8Jdg 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

v4irx}i!4720wU1Ow1i2?6*=&_xgo`cfqXMkeT@ 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Ν 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

4xEya9Aj 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∓apqm=$nWO?Tt?9&pucX_b_)XFo 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

W|Uet6xR0seT;2 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º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

(Ve33bz^~-L@a7} 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�i#4S-_vd(^WO7l1A3MsaeTf#_{7QL+X$ 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%0DFd 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,tS?Zq95wxX+_q zw`bJO`a|ld7jiRKX3oxR&zx5`*Y`#&sq6WL9>+hN?N!p_c;oR)OPp-%IF+buQI@jK ztC6faI`eSnMKcc{9#`~Q4~o3jBR24OV|L*2kG%P8?;rG5uk|43wI0ruhiTHZ!_MSe zUkTHJy1BkP;y2uGBe(nEkm~PbNh}z<_uRC zIazh|S&U5$^WDCc$DDp{rOG<5o|E}OZ+%2*jCh#ujEEj}qcm*Bp{G7S{+M%7H;0uYt*5snd)QC!pdXr1Sb>X8v3;!dYJD{s66Jx zugp+3^v3UchhFPJ!+a&__X| zTfatB&@pDPdoK#`?i<64vYH8Vkf$K_N24slf;)!SBUOV^5TV4NnKC-#9T3mUiEv9~ z6|yP)97KG#7!jmLF;=_PqABL>4z~-GDk6y{W?@6=7;O=IU%l9W26_ zIxJEVlz)4%Bai7$uEYKCW`BI17U69AYOc;M)G=-FCKbVJ8&6Qv#_oJMZ&DGyroi}O z#(EdZ7lIF+`(ben_k*viG7!=8SRTl?!<&?V=ESt|5Xv6P9Se)-_&EC?#8 zi>&rJ9@I&ni7J{cN9YzjxN-?!@``EzY(YVD00_CPsljc<24DEp;I(1{D=(TF;;q=g ztFodw0DP4yssX_9T+_OnTd@J}b4}|ut_Da8@jweX z)iD<1(_FO{z}yP7aT5^sb&6^MSgvzu5&BH|51mjq^XMS2j?%5Q~gF}K%u;zJ$h@A=$zSO2*o()cl^n2VT z!~g-FvoJ=6i6dSI?+v_@;!cg%HY}=On()?#g-P5nYbDmthZNB#m03^(X&z$kK$NG}Gp+wIt^2MRR5|35i^?kcSB=oc>BKo?6k@1G6DgQ^`u!1*N3@(3kZ`FZeqxB8bO@YcAEz<-(-STD) zaH{;fG*ZA?(8+8Ra9iotMgcDs?~aW^)tLXaQOG5GSI4I{UdpW*0p2-+$=2)6Mgg2n zHd(D{p^X9-Os3ez`Q_83LK}tK!84E0W~Z@Hm=ZENKb!0j3T+f#4G}#SP~F;kg*FQJ zpG(Xsf_^a%I1XT;jl$=P&df&Pk%4*L`KfFao-Z&cSHVT`1 zo|%n8zq8NGMqx&u|Fu#0b9nH}ADQB+0gm7?2 z#Wn#p8dCmg*`IZyQL#-(2)BMzY!ec~tsfaMDVg#E0KX(2c0+qFet*S(O0%?-gd&$M48SZIsTU-HWYvFd>R zEcZQMXV9@rKHL7l2Up~!f_$C9WmHx*D2KuYXl)QUmPLr@2a<2O?td<_<+|?>`KX|^3E~(RA)_e)7INMrEHCmccjkE_ z4;LIQ$k$`YsCdf% zLZPh|R0wDf%lJTRvxRRZ$c45Er{ie0_euCqVSjv+06EsqyTHMGI?m;H%CXEG3L&GQ z0lrgCWwx<|t%lrZpwxkUGLGd!PUTbBdQ^|<&emg8DrHCl%-^cY%CTd|rcz@^TdIN6 zb1p72oDDhd0B|mj>^L&>j)UILeO_o+xGB;c-8uh|x4(C$I1|eJ#HYskx``RJ>#aBc z^wv*&x9Kx=I&*o(VY#EuZMr;zlCRVatG_ifp114kx5?Iz{nDmC)NjvB%FOjsMQwik zannk?F}1|mA?MseLRnH#q zmFJ_a;k}zwtTfW%?bV%;K3-|4CA>3ox7XDBh>k2c6uCEi&ph9~W3KNNP2$mb`zK|l z`d-mo-;JYpb?GCSslFSJ98nRk+8gu8QR;E=p?~@OJm0-(uJ6S!;Jv2$UL1QE$s2<` zyy{1eD(}2Q<1$zKZVT#O(WS1H-1zmdk149MrQElXyrXZ8LR**gN8evKs=R-Dz6h2Y zAE(Er;(pC zi5vMa3cS$gv6C0UXLsH(;{(WaBg~7fyvMkT`v&je{s9&lV7}Jt6^LoV?mf%|z%KHJ zR1(YZND7M(q~?7FmIhdpz)O|78X~AtJg9foe25sOhww9M0ba=d6($U@!dQs5V;s+K z5elFzh#}05T8a{^`^Q)b%pwY6a9%VbxD8@>|1csH3bAbvufe|16U3MalSR;8#-ML7 z;*TMIDkp-CA;ya5W!M)p9Rq`s5n;a=gOQdI5iTcoPEG`?cB~xYwb++!L$DxdM8w32 zVRDQJQ{fm`*o=s$eGGOlYB~0WVPOo`Fh<0)JvJ#PBK#Fo1enq&uUP%XjTP>i+`ZTQ z$&3{^@msyP#`BYnZW#>3nWO0zDADo>ORimg<1dG*`P-a57r-yS)Qo3VE}6Y%0gMW* zc?MKiX0Lew}v z*?78vC_>Zvt*zLA)=bfC06K|K^TS)iRsC9Rk6~(_3L63(Dd_n%ZOS{O+lC!x95N}8 zXO}hk9RLGxXd_>lNO&)hJPef+&Oi9DIJ7b6(gBJJw&$jeB~UYhgD2pnjGKy?BouJM z8-igf%egnBGiHiq7Ya`33p=a)j`&2w&MLnnb~4T9xD4#TW3-X}%N_QHH!QEjN27SL zQB(uKv8cTJG!6x(mx^itXxE`;Y;wY?F3t%>H2~9XjsYQmpzu871g)v@v=&jrG#IvJ#@`i2SB<@z5|dPqan(4ojFtEkp%)4FF$uT4*8 zKpXmVTT{A?Qs?Q1wx)D_TK|!rnW!60)bmRHr!DjKttvIJLT{dbp5DCTy_FmF=BA04 zY`kvJ#)ZR&kJs@DjwYo}&}2>?1+Qs15Km@3UiXgGYd1EG!Jo1CGY)^oi-NN|Mc<0i zqgZA74n42mHOkg^=yLsb6p!W{IZ+>)chat3GwBp+&`IM^Vf-oiUfH#swVCy6CXN07 zLCa}u-cP3I#I0v?@!;*z+q@4&J{-P1w8Q;~zQg&Lnp9l#w)C7`I9>}E%5hTv&4>K{ ztNCN&`yQ|1c&kFfa}aCYHrbZ~=tP75zt8m|j-L$@b{0EE#n5DZH|tk(g-kpzV4ArL;7!1oD)6BROkiFebdoYz+qWb{x8 z@rg|crzyBt(O<%RO#oqj4&&muZ3s{E|SJU1A-Qxnx7)TOO6K zo`jfuM~Qwc_5TAHH5^hXXY1+V<$(=@(yJ7 zX^j%`I#)t`S))XcOMU3_A+ys`g6O9rvmPlSvDutT&31iLsU-nk@B^@cZC?2gJuX@MON%STaI6a};;8evbtR?wel)gm*8aY)X$5D}K8fOu{J?Yezoj6|#Fv|PGa z;zNDrI0%{R69}$vAfI<3;Wh{n9g}>H7J_-g?||4@f~Sk|ZDV^^N&Q0oCYBP>9(*r= zHkLQr4?uq;`CA0pTP+Z~8_S81*yz)igOMQ^*t6cr9$<@j4bS`y6oy)?{`rgE6 z{rHj>{gUJhev)4BODbRVlc(7yIq_M)WXX$uzvK&kDZSwLt9;QfJz<}^uX0<>{-7w`K;fs5**Fm(UccGnu_jxUhh+TYm~FEsPxvUYFDz9S{!IyqIBf8#&+Lr zT`CyE_kwYIbD&Q;d@1@bD92bCVE6U zGkkYK(NQnz9re8UQ7`_rqts*mp;te@z;_od@V%Q$J8I~*Y*=m2hRVS%{o!nQ<>ko* z$;UgFJF0Ufk2~HGr)Z#!@rM@p?u-S#H=?xT#9w1eay9=Nq0VI*doGaiFF48gZ%kg1 z#K`TqzjoA#VbsAMza8Ly{wA(tK8sxi%3L-i22o>Sa#Z*msH;4XeL7C)PDoA!tA&~) zsao!5sAqI5N-g&@{5JG;$g$kd(04cvYpnOFR7!JL958lOD(GcMzR-|fdCGWRp=QoLu;0&_p_gWv5^al8F0 zglj|q=|gmx2#C-by;cPFg~fABO~(rJm*M*fGZ%FwSe@}CjrGZih)o!SGS-wLq+blS zFGfUUz1XE_Y6kY*3K36GBX;ur=P#~Fx%f{1z+1GY zo4WdT;#Ec&O$_>XsCmwNa=mWy0=;fBy_$|Tm2yY$AJw#}U#oQ_RWu*Ha+JLQ5in9f zdm}x~2VzBE(E+zt=Payyr#{`R&0RdRnz7YCMq@~*j&mZfLp4j z&HY-jVJ2Y#fb9?qsFuxa&j!ekVSX|BoH72GwE#@KLpL+xB34ujz)#@N%^nbbSc+-^ z_%R&1ISGVYtD;%}zcSIyrS|7>=;lqBB?KaL=%y~dpsZq~IRNR~1%eP<(JX-U9S0ii z)GUDXT>>=DW(MY93YBOkc&IGqiU9{IrGz@}(6Kzb|* z^w=-ZBOfgj(9>+dH9YB?ZU&ko&l4l#f-vVsElwSLYFZy*Y{LUi(`MC*4cr(t-Kbiz z0sXY58}p9Am^gD9%>qC*%)H7&TQPU$OqvCN!cE?4eC&vbHlQCCF+Z%0=N_v3bP{TwJ zJ@g3o8({42PDyFs18fS){8nQw*1r?hXrr;XZZt><6`i4{NPTQeTHm446Gsdku2-e?ITQ5CZ8J@G=z;UndgZnu`MlBk19taOg9eQ< z`=JihoJ=7NRpuntGfqBJ68x4UF_ zC5SH2=;r1u$I^Xfu_*s;T`u`~c`{uj?l9f>Tuypdc%kz@#oxRl@~;(RvOAy4^8*SR zs|UijW>B}X$T4eXHrX=RItH~KFa2Nkz6HLj>Pmm@d(OG{+*cApcxk{3h=M>K5MCOU z=S5y7B;h4gf`BFp7$JeESfZ%aYC8d13yKX+-_`z$Z>P00cE-*)txRFYX`POAI@9SW zNoNXUsW-%#{(s-vYu|fvxCxII&O8}sXL z`gMuVH5L$`cj$-V$nF%|aAap23+U%)k!Kg}|E(aLJFuZG24s%bA^N%45Eg@NVpupY zs6*5x^Gyt3E{?AwoGtWY#U3HZeqo1B zzh(Y!1X(W}aaV?$5@g+Q=*^04^uzsJoL{FHY5lMs$83f2g&608-xLGUKQErQzwcL?qj zd_d6X8=Dx$hh@IeH~zBNU>?x#ZwdNi8;{8Re-tz^j{hdMU*{M%I<$u|aloixuHbos zc&EkkQG#Ox%LJziUMV6JvQq?0*ylIfL#0Qt%zYF2SJ0M4A}P0b&mk1e=5PO9U?yyi#z!;MIaF1V1KN zC%8cnbP(FxDY!@QbAn$Hd|dF`g3xZkdOsBW2SM;jnExxm-wIktXz3937aSxwLhvHN zQo%`ra|GuJ!sCs0km3-yR`3QveBSiNt^Zb@8(DOxr%gEvZhg|U$$ida{30IeS#+oO zyLTN_pP}RTwp^SXn2aawoc8p>oc9fmS;PI2cGS;`>>vU;LE9C>oc8h>oc8^ zmS;O72cGS8`>NO(y8 zkp9OlYscZzPJ2N~r+rgtXJC5?6rj6;?}oaZRH!TX8>h=YSa|)9qQh`-aueM9UMFrJZ(psLOdb)D?Wk;+CwpcNA2# zZaf-1lCaF+Gai}d;x?R5+9D0sEw`lQ3_2g=cg?z?>% z*2b2tu3$>G{2ORtSF~?fxV7Nbj=F^-QuYsmvZmf@p#0^us`WZNxB2q174#RFTmKo) z=w1RU$b7kITC?VX(X?hAYtgjk7hR)ijkgl(PHe)bY0aB;Lm2s%;ns6d(GIZ;iE>#D z!L|PhKPcPg{PC`hp=u7uW}|5hpN3D<8n0Xm+6$ESmI${#Go4o%KVvm3omZK4j+uGK zN2H5nDryc054?7RTb~PR8#*T7*4aSrWpL|kOcidOjqQjfWcBNXXaa8re|X{JzA)hM z#h669@H6?71PC&gG{ywTO_nsq1V)%y)R@zT350hms==Ex!tfMT z0yJaS&|N`TZ)tI6OHHAY>jabz)f1THHTH3S&^KU0yN86 z1<>8u+`T&(Qmd#MfHPpz+p0QEW0}JN{bF<6p+syBI|Pi)Q4dgK%pCLpWu%BbZ3H}R z1kr|$=4*^_$Q|Do8go2tfa&LwX`{*0k0$PiUa!do>LAgkm^md7H_pPund43i$&XZv|&P@jb#8FW~@B%yf#eYTOIs% z`s8fUJn{j36?YFBm7Av7pY*N96tAO}?|>gh`tB@*Qol#aiWga15>`B6MH?TRyXcbA zv87g|$Tu~&thi+S#K*>#jxFU1-`P=wh{8=p*5A=`D_Z`YxtC2SEVZ^2p`9&_Rw#)BLZ{hDw$e$b zE1+f?Lb6w1y4DXZ$%fbOo;Wt#2C{H$Gv5>bG28WXY}5M_9Tq*+-Z-{hJ;d<&Ikvn(nmfaO^v1D0 z*+UGUpJPjS+Ut#D`))}4z)dmx>*v@?2K9|&ONMoPfhlMY|NI==yOHcMe148?W3+D^ z+kt4`IJT*t|_3GH*xful89fcW|c-XsWh6WC|sz|NGL6Qiur4n|r7{qbS1 z$b6%V$?=JZmy-E#@4!X~1+YW#SAw`9V!nwJI}--qKB{PAM`+?*W0=!pKT zL&VM@=;BFxoIlMW+9I|;o{YIsN8%Wf(^Tpi4$S1_L^=yBM@kDI$1!@iFX)-WHry97 zvccvYxj0^8!}S9@C5Uf9*sMnjj#X@wKaxUG;tc*CxEmK$49QL=1Hqo}F+hxs2^{`6jaSyw< zyffXh-WJ;R9}UybZtcl=;?~kf!{5(ahjBmoC{zsl`jNP3E^@3c{{(Es-!=#uew=4? zF9F-eH$*@MS$RvjJQhCS@IxdJVx2VGsfWvrbEF&1MGn?>9nQ<{hL9gELmX(1AjI*_ z%4Hc**XF2d*M0y#z9DF?yXGS31qHG~bMPq2C(zRp+(-wCfZ7KZtR*BJ{Bst96v)HP@ZI?drV6G*K_Gv|X- zxXxJ9IF!#=7zGhtXRI4RI6(AS)nY~5?juj9O^htSe#ugZ5QF>`^DBQ8N{4-6C-|-} zT89`lVbL8BO34&_M*6f4F}emS2#T%&uqfx5wGK0D)p*wGi`F3$YAIRK?8yJ+gKw1U)!?D=k4qyzh8~0`Vz>S5`$!5X+@AF|I(xc6|uVp++S%rDzFWF|lz) z%TW=di9G^^I3v3ARX7T(cxe>?KW&R{+0ljxG{8YzrG;&n#uy|c+KA~1e73h`{O@=H zXJJ!XfnMqkq{S1lvwBuKcN=<)M7@euVg4~>)^dUmv$Z80S(3An3K+!VTG(n$)dAV34oS}qAG0lKXvsdxVpotg@tKu2fKuh zTTrjW1Ws!{rE3q{^$gY<(T0xVh2Fx3O|$tp_oC#e`!gclGJ1;hY0<71cVGf7Dy)H-7@x`UWH* ze`Mx=XQ(3ATlSzew{w>o0>LOui4nJVf_}Is8aly zKs0yOtVs5$uHUld=FMBiB+81W z6irM_C@Gy#I-z7rV)W+q8`iJcvVKfr<&3ID#p`92@nx&0jK6O4noVo#5}Vg=t>03A z^QJ`Uw6cjMlRic>5Qoh&Sfn5g?aaD)bL0Bv@rx!>FcMl64&>VfYJeJK4OT5=`;S)^OP{p4!=I*-U2S(vOd`(88`m>A-(;kogF)I_%PkV@;y2ZC$*6rmrZkBFC25sGJWJyry~g`gK4`HOe{`yW4rUreUFANq{l&3jQAij1;@46 z7!sES`2th09Qr>vhIoeb%mwu*;Fwl(+|qPi##pm%UC)nZtr^K0jNoPS^~g0KG}M96 zLIgquKGI(+bihVDC-N>J6*X*d3PAi;fG-34YmF4x_|!&yqXCJJ1k6YJX&}aDp*}PX zVIwXE^}*G^hL$0gBMt`kY*`LnUD)gj$(Pg;{qp#g{X{!47cmtcMbi0z7v zoKu(&-#Y3e#~bWx1lIxk6E%p9cn~bV3s^w(kl0@rd90{B7Kwq&j-OazY`kU60+(Il}s9xATSKjyP`U|8SBfSe00Otf9<^UyhHc8bl4 zTXErd!bChKIZishDJ#JhRf+vJ zoFAlAVB`BA$o^GGc;WatbVhAR4Bvv8@pxSD zX~E|Oe<1in!5;~l9C_!!9Zs5f7V$fi%le*6>^>iNDB75z)$O~(yOVVM&s$pGDxkYr z|1vQ0#=JnsS}R)na^1akn0IeiaOB23r(Dz^0SL!Q0h9^2)$ zZ`VClXL_vXZLi%@KM8v=61~1AFVL~xezErL`e%Lf-mTqoo1VqIOg$@jBH?zenLar&<;4?$*jJBG$Gkk%5$<>1aVv7g;mVYI zQ{=>NFRe`33vtA8bo7~6nv5J*ff*_LGPh*u(>Feucg%mT+!A#KmY;vvyG-wGZgOtQ zUQn5G$5y87RXA_hYu)mKTDN4{(7+WxKk}Woj)xlNehl{wKob<_^0Jhnr~a)c)+1-7w> zv8w}k{INRh2exgFBav7gT-sKh0(ambHqP3pFn&L1BcLXv9C(Fi@`p!(eA*}-e#5~z zU_V@hDd^xFXaKsnqpLa4Du;Mp7=he6?uL0cXjW(wI}rXhDqn?dL3BEd5g*z_PR=k7 z-dcpFzQKEUMw!YBDH^>ZYPm%AK(cZ!jb0X=*PqA{!+{aZr6|u06{#y@y3)n5ekxy0 z?@^{wTFR)e=i^V)FrN zh?yg;s2ZDwZ$;4(fNZ*Ozash~Z@LB`o8Io(G(OJKo5t=Apw0A7$vb28-(l|Xcg9@w z&XhKDBnD9f1+iQpUBO%f186I+um7eOn?u$^^EiySP6km!o^D=4dVMU!VH!Z&xOx3I zz1SS@LDVo+xXRe2qX~K+^~Af zElq1SuU~go8i)v@$|$v>kJVg0+G;KuiFT`tdEs(v zgr@ZBH#JT!Tiy8Kkua>^xaNlLeBS2uYc}*m>S^IZ56jm58b}9I^?}UmzGl(dUJ1ht zO?W!z*Auk|xk?|uSE5P24zf;k zdOnjMbiug;q==SSB$~bLO&^jy77H8$+A};{C`$A_&jv7w ze}Cqy_i8LVU#F!8_>GjyY(I)hrzH*w+gf0w*vc>4zj(G#bGVTo9daneAOuM9jtY}Uq$ z6X#n5vL;@fn2!fS5grJh9LRa2;zZvR`x(KP1epVfpPnZQL-oL!z*mIj%msu=Yv9F+ z6h4x}!U@Fn&{5a}Fh5SjPNT5a*nnLm^(V@5j{6A{!M}s$%mIXn7K_b7FY<$fPZz&K zpr50`b%FU83XT;7AB*`M_lEcxu~{p|(R?fr`8R=l+#TZa89~h}IT}7c4$%}@ex)GimveL;KOlxN15I8pBv^p$*C^a5^I5|Z$4zY3 zu5^eV6q~s_#2tx^uT=9r35eq-^N|7v_7Opo7wiqOP2AR7 zV*gT*^UvW0KsXFPXJg{9jP{_>7F;d${ThOg$ow|JZwZ>bUjHoizX+ZZ{9i#6=X8N^ z74S`>e}+3*E4I<%yIbu01iv6?xDmvXWBpeIe=hi@pwY&2MH6nM;KhQo1+NlZD|mz8 z-GcWC!g-4AJt_Et;ERHPBlrWszZd+G;F&lXJm}E=>6&Vj5xSKwr4uJlm@;YNw4UO* zCQq19rYqM*cFb9rRJg%OQ8c>S^E8E(KJ?>oxX}8)l<#1s#kc=k(K1DArt9z*K zAM0{YJ=m3d>Jz7OPu<&@d+MH4v@6;b>57~RvqqVly0Tz$!T5rT_HheiU9lHKU7@c8 zyMhlnUCuo_3bqz(gi6@LFQn+D)h(ZIIogsp!JVkee|SVaOdWwd)$x~#9_fGF3QRj( znX)famli%{ciF!_zrgCUX7^97D*%%-JQY}Am&|(l#wRON_Bgwwfa~NJ1iAt=$XZF#3xs zT(f*=Y{l^~80di)J3MT>C7^1&iYTrRJdFC}?Os85@Ol=A#ns@A3LgrKA?1(gwxm1Tk?JjMs0P zDCRG;Stcf8O`{NTRSS6o+&!Mm0VRTzIXr76f?9JCif~zgC>QJrCUh;h{PD0=t3Y$- zp;jJh=%sLqVt9)B7(UAUOW_lR16W;)a1GDWe%L-9oqMr#GjF@XY#S4p-A|3m=^wRn z&d*sA?5CsBgw~@ zGNU^ZjJVy=9T?1|KC1Gjb$8ZEnC};mm?m4d53!YS<3sV0&svX8^-7M*?L<%K*}v4V2c> zYz|I@W~i0|q^j$wnr;=pPfnUgO8`J4*I{}t~6~s*(2Lg4xG@_wUPzN7GsDq<`IyJi2TyWpOwonIcp$@i*I?Fxv z%pC;DaWO~{QA`+=h>sZL74sJF{@lU8rnBM=ii(Q$|MNDj-O#jdJ*~ZTRm0|+Z`izM zW8(Vy4ePfgMmJBLJZ9Amo0<}h9OSTO^TvdUR#;V5G=)PNZYf)JUHzt2MMcFM>aQ!l zVeQ)DHJdk%-*oe)_2bvCxvsvLgCAr|dVAfM*UQ#>`bah6YxsuUxTdkLs18r&Esg8y zH#HX3=@GyV-(Ri2B4y$OHy=cjd*(3ojvo2jVYf<&QYW;V0_4>x92AMOvx^nfx`s-Fz z-`uo$?fO-7XU*#F{O=){rw12o+w{oUpp__vrcmz=Zd(|DY#5 zHryKC7d>CF#Bt&%Bbk5Uv zJWjp7?$kgceB9u;^u_@k3u*t3DQ18D9Kh7Ued7Rb3=C)L8B1|!57SDF38d8fr0$l>JU9E%W*%2 z&72VO{)l}hZ8*a@z%hpPOnwVXj=PByVeNj02wCHSQ1%D<^CNNI0EcL@EI(UqI5@?y zK14czoO-~abY7&LGT+3BoJkw*%ToXAf@jM$zzv7(9}_$-Xf)#dT!Ybsg9{Do`MHOS zW&T(}zHS|&E5+vP7I8FUBd!hhwSw0Rnz)fO`PSLtl!bGHhX(Wg+#9@7nD74`fKSJK zKNrXGY{=Ur%kka@8=v<;eBuK!1_Owpk-&9=aB;x)|1RJT!FV94aWw@`@ zzm_UE@LH;{Wpu5Z)Oun&lWK3GOs}a#J8WLEu2w6tEl%EN7{j82ap0&$v4eT#CZrQbmkEUV=Rr$)48`WD}nX)%H$x>0X zQ=%PrG?jN?RC0dGj@rkS9X;VjY5dH?PdvFY<;JjvUbi%9r`OY(Zt8N>#d>28`|F0% zb#?D+pzRjro?M>p%l2S$T3QEA)afq&e#$1aYoD+q|8OM4%4c)%d*jn%E4%|Mkj;L7 z6iUFhIhURa@~uI+c)JS(98TO92qFJMz;=ED?t}SEqkF~yldgj}*?`MjM}`1lLfsB= zE;!|a>j=0uNBFt+&%u0v6Y=Su;Q_0l!b2Q;i=te(iL}re;vZcQ+gj)hlBF(U+qBRb z7KGs;)JkU%O%8)))+T6>Fa)r*oEhlsFz!F;-ySCYc zbSFQZ)wNjnNtlmdLu|eb^Rcw~W0)Y1^-_fDg>h1}j@tjgM0!4L4uW*r*tA&+6N06B z=>nLDRn<~z>tX&XZSH_sm^SypT#+`PMo2J^L0N-7hjFXalL)E{0 z8f)7yfuSmjYH;CvA6GnemsQg(ECy&n?j-(vEX@)pc747~_H!^=_mE-LR6Lm0l4)a`elklQiZejTx3^dC)zq;L=H# zMaI&Z$Uw)~=t5bn^Nz~5+*b#3BWYiz<= zlCTQqTbs+R!i2RhamBC^)}Z-TbGg+oVcpDTY`zsPA89?aBVqlNp0GZ>W4?8g$|p{p zU^PE6+G@W3%Hj!D^S5RrP@#Cjzf2yA1+7?M#S^SPhLQcHJeptsoxsx*`EMEjrJI`? zOYvs{{!GN5vfkv$&Tdq{K74xQem7;XhS^&h3F2C_-V5!l--+|s*tB7a4t?0zv|$4N zOvIlu{F$UlkZxV>W^8QQFtsP5#G`Chf7|-TTN~DUYNqqa;M7duzZ3aynJ2&@JJkXW zv))4=Ha2aT+)dhSW7CGx(}EyA2%!(Xav!+!^q_4v{jB02Hm~2%TMPsa_(w4ix|o~) zxoDetpBRS!@N1jBo3DL47;J?)_=i^Wqol56m~)MV@f84$Aj?$Xf$G z#oOM$i~k<&Vc?BvPmlJHxu=W2>shBr!Yd$z<% zpntiZ{vo#m)-kaXyD{$Cciyo4JHC2f>47J~YpGY;Y;Y{Qwi(7Eo4%qfjAhq01E1pE zkC??L4QQ?v81>Y*Wm(fS%o>ntnQ2BHqdIm5BBb8-Q(k+xucZWnO@N zefJi#9hCP!Rsz46OnE=F&AP`*;D~2RU$o8eZf^>XtGUilV8c6sV}^TAFFeYb#ms#A zWgdnFj|tun=xSjY5D=fm(Az>RJ#2iV05Lui^C8v%8)L127$%1K@cY4re;kMy3CzbZ zA=tRCffz1?`J7uaU#AKMVtgv*vrbulMyCwPATfWr=#E`42%Rd-=Z|7nViw}W*EG)}Ze>X}#(&LtBk9jg!*|0i^^q#pAGandmg zas3qzgk~ZTUrF#|VklMG&l#2+pmEI^!)AUUPV_IR7nYncaqZ%Q%>%3AM6A6Z)_QQT zk#-YyKVV$=0K~V6eTghD7JHi5(1$~P){P1iEfSmcqQb%}#fi@YZ048Zq8Ak=%`@S6 zNPEmTA$CS==AGhNXAbo_<^abKQSXXv_^1$$KlI%MIT?h9kK&jmhX@`(AYXqTK8oF~4y9vZ z=1M(e?8SU|PJ!@d0+FZ!2zMrsb?ZF(WQKn-xrlg7JYprJ{=j|#%M3ESw0 z`E|nJ)5P+(1>w|$JwTA}lk$#*`Tpw}4;#$S!mE^(oCU8krEKElzVa#!I@r+Bv7n>V zyvjWX)$ZMHpp|x6yRSOjn#@UtlDF5T>MpN)5n5G`w{(#*%2)IAD%x+NAEycq1UlA7 zf1E08ElpC#TDrXc#d>7aDIKb_uza#B^7#E-Vc&Ye6Rv{371luQ;E9;h3`Sx~-sBff zDEBXq1ol~N^swrf+dt3|$_wnFR<*C+aVxawaA3c>vL@x;RFkq-L6hp9E=SSc`FYMz z+85|pOII*o6FRO!ZrO8Bf9}belwDqva<}j7vJ}+7=0i!0#w3e}V%u(+y5jQWh{H80 zyRatZmfzW>6cng=ew)t|Ed9-CqK32t#!kJ&1u+w^3*$a#XBPtZD^aXVJV0!NVt-SFVkRWmr|f5v}vn zBf<_vAr)2xoUNJ(1x<9T2;3=Gk#o8MvJ&#xVsJ@m-B;yA;D4Bj(}G#`9vR-AEL} zSQ#vV)@xiXw(g)H#V~LNGvAQvO++yaj={X+nRz)lz?g?7oA6PmAn|BL2k|AP@^Gl~ za8mm~`D6lJy338(DjG#F3nE*BqshuCj1z^tB4n-+AZeNk zqiXz6>j*fBP-8kY1BmIS$`VZK&f<~61?yrHgJ_$U6B9_ER5XEg2GFgn3a0<27n^o)c(CI+-NnP& zFb{hlq^do3^&T73IJ*9Nn1_Dk(Kf9zCy*ifumuF;=X94hYr{Nz&<5$6J@(2yHm1>% zzn-_J*z26`GHraGa5jTfv&UYt$Huhu$mQRSz_9e$^0#1)wrRn;MO-sE)WC;O{~gwb zd5BaBQso|d@g5t~vc>M_g13m1kkkDnr1vQs1!x}grg&`@yw-Be9}Zo!TP8x0N_irY zAkUMDQDX0%#3j9q+(r2b2$tm+tr{_O#Hf<7C6k6(k)lh=O0C<Vt^Ze0P^YRJfp*vN!X3eRt_7RC& z8rL*7Z8-yTh@IbZ%jQPjZ*Ov>41>rlY4==7qNSGUz`U#HE?GFE>VrWs_R2Bh*46{Z zIQ6~Y7;$}l#4YM#zM{{CTZCWB6!VnCi-MQid2N6W-vzgWI{1edOFWi6tFzCw&_m9c zWf*(oZLeS;ac*g}hgWOU9)G`?&LGCyCi-WOZI)pij+sWe-61+l+upx>+VgUYJg(HN zOhjLb5Fvf7DP|I!hqt|77wYqb{&~4YyvJi5yn3MwiV+~VE= z`gPV6)1JS0=f4-+BDkYW@m$z^oYNnpT;30E5ywTlMp4e5TQsqwcou*=#K>1uxZTrU z8H(0s)nmiWzS|R4-*dpb;j0M<9s-E*|3F+jK)AhthSw`UN51Y%Jl*@P=?0!3e9&JB z{;eSMCGiYThx;Y$e-$*^ZXCyhn+hDFaiac$I6m;ZbDWon*9l8Lm$<~~go!Sb`g4F` z(FltR9}*_QFlg9oWqF<0xKCj@$LYjH8!Sw8uPkRxurSeQ#pZlIVJ(=B`kXE~Oj-*p zPV^mV5BZ>ABZo1T^O*U#@Fig#;|rU4lQ0nmal`JE`u{67T)bEw2gZd*2@@5H&G}ox zq~meo!l#6ZE|ul8WqpjP!E%nv2@@@c?GSAcyjSpH!Dj^jR`96c2|){fa~=1=?cgqe z_Rhrn;n|IPxVHm2=D;CBmIol@HGoM$qlpLS3g$D<41P;&IEi7KI2;p~X5w#l%5oE@ z=8v~QdJ3%1vP|HQ#QwG*G(0gM9xb5BQ^eP?qxpIuG93d=o+6H81iysy=t#VxqwniL zqJVJ1}!!~h@$Y%!oLcwu@C4wd{jCo>c_sRUL1>vN}{566Y(*@gHmtYlOHw(gx z5BmW@Mp*f4(3v1z6r9 z_!+^yf?pK;s^E))FA0KL!216t_#44ffbSuuMnImc(q`aV4dIw!4^TI znFsO$?d=ylDEN%vOM)*8{zMQtM6n(_(tF`i4KJRBN1dECKCLv7(EO_YTUt^wdGh2$ zV)E3oK5ON@?#o|f;?wrHU{YI>xyituS%;nEuw*Q0?JBOTulssk?x|0l>Zr>-b!TU! zE7FzsRJbdAD)-dRcd3hxSF~Szb*wA)PPibaE9b@h0@bCyc0N?>B374mdqw+(>BDt2 zTVX|e{dBO7!-rP1-^f$;iJ+=zziIko$-GH!8J4LlzIPF0VSYq5U+xF1pl7-Qc$6{2f;nwMj;-*Abjby=!4eh3$Yff*5?zx zlp~A((^8y02r?fL*5`v6VSPSKQB<7=`cTuV2rfoZ6&6tpkLV1o8bi#Ird9FGis8Yn zW@C66*qnF`%p{u30rRXU)rwqZ5Eq~t)L8RarEejsLBuw%9x8oo?$YK&F_Ek&uO2FW zycDB|auBMk7GYg=4gYe)SlJJQrQloVzF&(S${&w+=#khTUJ6w$rao5VXtR~#*`(wKpYtkRv#sn4Ml;eQ@zW^S)i$RqZVE8WP zec#Lr3{aK!tu*5zD!{g|>_5yh8_RCvWe_aGvVf)Ax;2PpxAQWbAS}Zp0^8X}RDjo5 z%)3P9Z6zwe5HrlXLgqDnoCYG!5A(1dKGz2+4iq0K?CW5#uY>!@zV@U!cy{coUx^U3 zYg&mgnr2YFDWX8R#=2_}LT@mgZYn2Z1R_Ma9y3Uk*Ik;hoAMx9&ew{B{f$ClfgyCU zaDa#D9cUI14NCVj&GZiLf$4=~2uv@KgZzC=F9O~aRRTbjC|Uvl;b&2k-G&ML1T1QD z+c1F-JBylPEC7g6jf$4Q(V+)ir{mR7bkmCgSW8h20Fkwd76Y)Jq8b1+nH4PqK=#@b z7?^2^Gf(M#$WX+10oNO<253RWr2x2nI8YE1dQ(dQP$&$Nrcg1hV<49Rv{qr0YQqGl zY(vx_cR`L1;^P!81F&2*HSwP7l-4x>$bAN=IZZ<22;%Kt(PDtCmG&awm}pxBKOB zDpdJOe<^#5cmMe7;_S%0(<18rumOI4-^^Kv48Bat$}6%O5(z7>{6^Lo+#5>R$~x9u zWCyIzg%Xb!kGGZe-_1{~Sh2#oX1;Y%xwWatD!dDdgTD>3;^4i|7li0wV=43nyR^O_ z&z(QZx;4S7gPFNWPo?{BEguTq!3*be4BwiyYbRzXmTnB5hj{U_b$#TO_>lBb&@jEF zKQzC0PBMq-z3}m)-RQlHqpnoK0GYMxRwvz1n(?aNq%{yvqyD;6epzX}OlxOH;Q8E- zrn?di>1FYH&V%&9QA6yVufyFdD_=MBJ>u&=(n3rZ`6@Xlz78KirkH2CpRX$izrh2E zdgtq)rF3H-_`2-{+MjtQz7Bf+7%y*%ne_8@Lm{B;A!JNFKVSFSK%!cSK?EO!{l$xl zpRc>b&3rbYnD+d9U706Ftv9}IzN?@5rkM8peBJCJI&VFWOK*JLC1ITd!xYmVUJkuH z*B8(08(;TaglMhr_@PZdUpFM)H@@zZJ>*UD^K~zYo}DS?`t$R3Pn?(GMSJ7xQW95W zia9Po&+gGn`F-Q-urcs7rkM8p#XJ8azOH|oufwyTFMM5(+KIT?cY6)cdS2k+a1Q`N zVFQTIF(5uBfd4MYae4iYF$?fBYNk-XUj{ z`28`!4{?tdh>iFN*q4hvL+oz3b)rPK%JMs8`GY|4gMud4&Nrpr4+P&7WZn$%P~y)Y zD|n^gV&LzASHs{@^aHXxK)=3Sz0BvFUs?3+44>9l-A8y6(9RQrCij%#+f42$!?*F! zb?`P)pL3}=`nd=6=bY-2dT?7}xjzRL^T{6l$8LPGBe}sGO6xyzyr)BH{YS*v!bThm zkaL51_&bDuz`jwCd1Z%atJo~_@5wy{KP+tKmBF`&eLxV7Skue<1v5B2Mo zf(}8u@X!Ez;k~lwi0Xm&nli1V&%D?69^wc0xH}Kh?z@urC)J*wLBLK>cf}!d}*CNhX+2qtPEfJe_;1E0Jm z<;E`f8U9|AvbXCtrzL|veMTDYZE32fCGBD!ASUQ?9 zf%7r>O&Zxzd*_=p;_J2R-lXC6wR7K`m$FyA#eZMnzX#sraUJ~PX)B~DQ5XOL^|x1i zZ=(U*hUR)e1)2I+E>y|_0fz?;1Va4#u^qe*Tkn9%GrEv)R|Z_?DcqOb&|S)#7>i>H z?9kV+Ou78%c5TiE=-Oe!*x?Bf#BGj($icOP$CZ6NIEfj%eazS)5#H@V+yZW+5JwcR zP>?nZaR$E4Y79Qe?4$UM;c+${1G!ae2w1xMO%(X$KrD>HB^&t9fymxPF~x3wtw6~E zmN+^HD~=BbF}4J?aF>fCZKYZY6N#we7>T1*C`W-sgX>qVK=T;tk#jqOzSx8UaL#Hh zy%rB&&Uf`I2~6Q_ZNLG^1AEjDD%gmK&WGFt`p{ohS|_7phYA{$^Hr46ER#cKRx~JXltz8H{6Q6>w_#zx1x+jv*?*zM%8C1FQS{ zVG=>tyf28h9)L$Fw(=)te?ntu0LEEi<`+FP^C7OC?oSYBbD+XUxII7_UV z7~rm`61)5{J&AqXr6;jdJW_%x@ms))s3*f2jv1ox6s^QT(juBGad*MJMawgLzS4ABWynTEkm_?)4S?LQqNM-~vt$ks6S~=@0K6`nOlFvda<8Hq0J5r@ zML7C6u!@#uHjCZng8hI_jG{^a_D9i5bH)^Fc5uO7B4Az-2g74;6|FR9%~KJ_;Bj3M zz(XTwr8(E0inv%Xq*PHQK<}C7D4{Q0aK5oeJ)dvXz-UrMl>k&$v@El`X*p9IT6u(; z*3%CR6u5do`r)vE%rghV6x_WbLx!UPcZ1n~Q*f&WpNWG29@y-*DY!2~HVFF;j@Voi zrr>JB;FNJnf7X~w9jOi=1A=EV#=Kzs%nOP*eeK`L2{sQtQ@l1F^8q@Ez3*#8;2$@M zm=*(tZzy}FGMVd*4g4`FD_&%6NhGXzxpi}qHDLMh5<6h+9RDp_S^ra&;OWF_TUn{9 z<-?1?A&$eMJFBtix8r!xyH)dfQ5P?|hZl9}MJ?5O(L228{_2Fa3M)P`KC#$V)~~9r zw}x>pv}5CnY-K%MowyX6|BrE>XRDm2%Te`H)yr3|(95v>hj}Cap_jE*FE1M^E4F$U z&eAJd!{*xo>y2^cfq|q{n$hY;SF$jskF|n$76R(#ZSv4y-Pp{Ail)X4L&pT#bsKJ) zwW*O1uy%cBwX>%t`$m-N)BZ=GSeibnz0sG5Wt_LkLpx?CE+vAnH-*xSj%j+sJrI-# z96Yl+X|IGN;tzG8VrF9>q-a8nEa@p%8*Yj{aFZqPMJ(Y*I;ELnIFWOSCG+ zO_mHK!h04tGt|L9_`>jsX!?MHPfut}nPQgtV+pSsM4YGnOx$D`J~GpYXIp-5az;=O zC^W^a;^!vs8$$FmOYcW-+~f{u-kHWc+x2skbwe|pS#R8ATUe((HO2JL&rLQD)%uxd z;wHC6h;t~JV%qa_ldlZx8#lQ*MjU%!3fjXzKR5YOA7cqi`xr~Ou8*;Vhlgd3b8p<_ z{yxSMt}D>Fh|UyCh!|RM0H&DZ>@VK=A90hKn=}RPRt$bN1vcDOroe{38^;j$B5;}B zQGo2O?LPRYZ~CRHSFb_F-qqKy-PmwLwl^{TMum}$&<=%b3J4JqaG3Z&i4^G3iIIUB zO;Zf0Mm;##P>;FM0`1vBy-&+>_|8!egGW&hA1tVc5sIh>P6x}4)+v1AsD}?1)Wg71 z)Pp7>>Vca9Vz4yo;l7A^Gl2t%*2!|#IEB`#)WZi2>LGRt^}wlMIdW$K;fq9j$a9Z+ ze+?XX?i}u!VlVN53{LM{HBvc7Elz~E2_SQ5ah;12$Rlmz+S>qR&B{2XbL-)F!)ER* z4hb-Ab1t;_>ABF11}ZdXv7EI}!=gPI7wyyV={fbFjE3bVw;m61kBjzcn27TM#WT6~ zcB8&S#0i3;`h20@H)TG1a~-0;g&ifGV=qjEa1Q2H1XVO5Wcfy5m}slu?NYB*@JoV!2K*!BYB|rlqhpVO{uoF<_XU?Z>X{sU`2E7} ziL3QZ;cVd^hyA;1qr#t#^~VSz9TIH5Efg)?*l-nAOcU137uLpF`Kq-58U|V$y58B zv#=I|Bc7avgJ}SbKXyF#PY(`jZFPt4zF^nzJr&2vtvF8ML@OOXa_6u|4jrR84MUG(_fT}r*4%BwtdtU$ey%A5Xrs({`|733W{mjC!YUAC-0m<}BqJm>Y) z;L6uih11_i73Li}HjvlPc@!-?5v9)@Iu>~RXli=v(G(pxnkqkd=$Nf4+V_?A+dIGg zfq92g)Os{k**c@WW%i2Xef=xi_f5-x^iV3%s#*u^bN3!iEj&2A{m$t}Q_EWi@2hD4 z?4|u4o!|bze7CitecxsGMGvJ$AB?qrqyN!kq>iR)S|<;l+o3{{z4=21?d!k4qWx>r zD%!tz*`d^ht<&4@oP9J^(mG^sVBf3`$C}sPGB5I(2crW!BEh4_Ts5~N8ak9JY0V#e zG?mvnXm9W{!Tqy3l!YGM+27iGC{@>bG_~%)(NtY)bl2?mmKo0eiuSKxHn08e`G-aH&9@k7Vl$B(8GFC9&}2k(kj zwC|r7J@MO;qp1sDn%REm%vkHJ_6O%b(Equ?_6b+T_E)q&aoOAsD>S$x;?C=chT-pb zC($@MzOSYB=_M(5+~Smr_G61v_CmDZ(q)f4bSyFw+llNwn!4~{Mf<}OE81HxjqaV* z{=m#t$@%Rq^S{vlxxulAE7}iqYu%mXmR1gnwcdF6&@uOhL&qZb7blmb+=Xa=S;}3x zIOUGZNd`Z=H03^WcUNG};*?z;e7L2{Qg?NQM;-k->fWLk=Aa+&`-$Y8_1#zJ&f) zwC^ejJYqdOz5T(fD%$rOUWbc480hKXUY#d&ALVk^6`5zhv*r$LNNaj?w)iF!~|4VQw;6ksS6W{RNLHUJd*qh1c_%VQvL~tWO=lq-{!G5Yr zc$x;byxH6L^EPsM&491cvxo)EsNW1impXYR+rJ1VlJ2 zYA$HQ1cJ*gY98E%34F3x)Lhtx34FIGT5bnOr$we+m5_lzNBye898*n;0lIIiGJV_b z?b~*5-?n@Ew%yye?cTm^*M0jB?%VdlHcX&XidK30R%80+$@_?cw-`lL02Z;JT?;cc z!F#3)4^^RRfYe--shQ6Ih=Owvq0i&e=7OEYAfO;E-D5A?W8?5cQNY+Z=(y62jYAEE z8)GBuG?YP%{c?clryd*A5ApS}EA??qJYk`-)>_3h`e{}+efDl58$YYwhJSx$(7QXo z(voqdTl zcxdU^lHr%ExMKL&lH&2!Ek#ytV)*!Ct6{mdfm2>?D7T8gWi7tTnozXxs*;uw>&A{6 zH+R&ylA9MTysG4?l3@!ky<*(hQR7P1+*2~{z_=0Pc%lHxhlIIvJbeJtkGIDZ)bQodW)e@hx1zm9v8a! z>zTKkizvl$aIM&B{h&jbqk5?l$KPS6JED!oN8$qV=oa`F0 z(7p8TN1nu-Vn2|8#O#MZ|71%}_Sjx*)BILY68(w&;NZ`D%RgCJpfwgv@%G(Yyz}1+ zUKiRknS#B|6pMc`nPO2WWAJ%MzxZ>p_{z)_i?6IqvG~f!6pQj`Xg7^mlk!Cu>ogl@ zAyX{Mmv0sQG3LuJ>AgK?5r*|H*7u)ti4XO2i%^*X=frV)aXrWu$axkh&ZpQWU*VU;=2#++4r)(%3;kT%TeAKy1-o&{jtuw5 zbtPQVU_sX31(zeX(LH6&L&Q1C{5gWGzl-A_Hm8k)j;+`x&mmlGn2#J`K#nU$zDltT zXZAI*pA}>-+9CR$*haV4&z1c`mLC&5DcC9K2rHQz^S);1mL^O)3vOxBq-lN5+xP_M zq|4-OG~CkN2dzDOT(vu}hmP-R*`K5lG%`0COco@ECZFr1gU@%;f#*5{tE zo%2dpc;s`P_QB^n?E}ws23w!+40`6f2cPeB4?NcyX??yk;+Y>i_E*$k1@*)Q&v8r^yVWK_|!aJ+Qg5MRKM%H$ohwGE2yem22-45aT z$*<#qZ98y@xejZmxgo@aWZe5jXxl*=Ktg6rwa!8&-eBB?& z)z1T!e6efV`CJLWx22+`0EDGmv^CI%3GnL{ZMEAl0piD^t-&@-U?iMHTitX%FN?ND zIEfd&yDZuoYr}-rg50{DwIFr8+t!bByc>qfDOw7BNS!UC5`dR1iyF4KVI&JW?eUMI z=sqvb^m$pP&)d9x-sbJ|HgBJ|dHcLg_Zd=*7Hx~QVM6zLo43!~bf0xt)-v=Nxk?o+ z2IxND;_Wjot#rW$j-o06kI$i9H9%;$D5?VJv$HE5Hin{km}-D5_6|nn1L1YI<1j#p z#iUO|mH==B#x}>(yN_b1%xZp7Y5zL*jdutDGoOsJrR1MJQY!!|g#zh8c zR}FF#Vp=3Y0f@ASsLd_2#F3Hb}J091Kr; zen0ig1N45Pf4%vsW3C?GYYLjiKfj;)SI|N;m81^p`Tf+jk-qtRb-39=md+F-NJVO(Mk;*w`9EU^Z0(s{py2b~^|$g#Pr^Z;cOr)W;(m zc&5Bre{6nhf6T}s*$<=h=jRptertbTEeprf5q<&wezE!dIXWc`kX5CSA4!(8!v@Ds zY|a~(C5FWBw>GgOJhs#!s+aZoyh0yQ>}J6`1@94rO9u5=ztSO{N6sPog3Nzh(8N4( zQX5a~2z)rOAv3_HM~f+jWuejm&?`j?BuUM%R( z)5S4T4$&>L9F8K`pA!6x;9kKt!7m6JeaxrD_UG;T8<}tPGhY+?b-{lXH2&;gihW%0 z9Q?wQCY^;}cyieUotP?78`&{uVNyY|ONye=>Gvp<2E1r^{K6&=)y{)z&mMPB^3LRa z$%^9?r9E`~yDbkV<4HStZE{Rqq7LeFrL1XJUl&Z)vb}=suhs2L9`GzbRu@eE%(Hw< z{mx{f-m`vvFj>pCtY5z~dBC&$SbZ@0GtcrwSz^++PN>MvD@*R(#DkjzN~GYhbeD7+kVi38yDJj&Tc8tFZJ3a2#UD~4mARmd=*U9F7;>>kF)7K@c(0*+M{J;Ma9AB!5dw_!qm7t{b= z=8miY;5b`!YjYbyoY85Y<5>53ai-5pGJS6H_PI$5wdp=LdHdXy=jn5kx6e(3xzC9H zvZ$%B4HLT0P2N5)L7%l^*K&aFbF;V4-5kfd&s6|V@+0h^O>e6z&#rbGRPON{>$BJ0 zv5e+|^m+b_#xX$5yP`?}&YGg707PFXss!LfDOw7^H>jdY08Wykr2vj7p-KQ>?z9vD zAudIg0LX_ZS_&xCrv`wJdPPeStB!qAwA7qC(>-tTb{kh1hJ7fi1mIjLS_y#YhoVXV zt}R6?0Xm^nB><;I(MkXY6ey|$K(kTNN&vLp6jcIrT)|2JUXm150uZsHXeC1H5mv9L z5}@~BWlwv6=bS#B)wl?7Ivv_Z6VGeIBseHV%K*4zTC`2IVFFv`{8FY_l?e*S=IzGm z_7<h_fE)efp?q9?Z;tP9MiC1Fww$S>4T>8@o4phQZB{YI@HGgr5bMpsxr%5GFkk z_Z=t2%P@Gxn5U(|KJb2R{NS_dZ_PM&{jIcjGrnwOHX^={6NTwZq`A0Af(6ZnPQee(Dd2t(2W<*$jG@Lc!@Z{`A9>$|wz7mZ;rW1< zSMXB#dSDhbrdV4mUkd=k#+y5Ad>g~Yrv_{cbAgR_c-Tg33m+Y@F+>N;IUiBJ9>)zE zpC7O>77q5yVzb6pfBijz6oGKifI*2LAEwJnkCWQuqzUwH6uBubqYCgZU8R2I9j9$oXjE#F==3`((c1 z5uOyAeJYO5?*wH3beIT!8m!0pJHj%)TJnIw=5f_=8Sfq@Lc(U)JkB&MS|)MvN5_dU zG70l}9CchYjKY#{#*BBDpAh=-5g(xa$p6>*07SIodf-8+juz+!z9{qInuBff0R2d8 zlLrXiIV?BYQ3xo9{l9{o{|e*&#b2H$SRi=5pvjMgY!Rq`i6Cd&aEK;}ZN|GB4XL>@ ze}Q0?AQHc0JwKmNC-XN5ZV}uj_;JCz1pR!2UsLKysb|K=zbN)gf_{GC?`8gv1dj?D zp5ZOA4bR}$nEGE?j)d`iTm|ET1%iVGFZloLeF=OO)%E|mGxL_bB@2W_WO*zixID6f z8;}hii$KDrplApXAPNDJfFQ&~0r$3XtvhP9w(74%wASiRf<;@kTCsIOi>+I$B(_aN z=!5t#|Ihc_d*7Q3Av^@D_Q(Bvk~3%K-a9jQ=FQwW-*di4$^J?raXi|El^m+%8A|3U zIZDa1l|(Xmw1d4Ba)FW+N>(aaqvYjEUajQyO5UR6?MmLSB<8y4m!I=$UI`rqQa`Uc z@UsV9Q>rq6zvWzVHsyBU!w1#_DU zP5NO`<3}t1+U>n4)z2#^YZ~op>Go>WTbB`eH5#Z}(oAFX3QC*u#d|xA1&=p`Qs5Sd#KGt-4IodM>E+bz{$amxGp4(ja zxNk2MpLhR#ch`;XTi=VO)^%?-#pG?SJKT3piF(f#XB0-gXHSV*fl&n;Tc{|#Arx8C zOnHGwAu<^?3*pW3X20_I4UbKUdIN<~Z(vH)>gmlITksgy7O0(Hh;`Xw_zBylM7=#z zBZX0K&nZ#sl;a|sTBzvPEo68bmNZjAVbnUMIO;tsKk7ZJIBE^27Oyd*;BoHBL{Ejr z@cgJXT(o%2cV72uZ~q3y2>DuCf-wmM@!(?wlMZ_^1SbG8gqJD93>TqJtp!!1Tui}f zWA@9(y&mtIR3EYxVM?Bc-6KH?(=7eiO#O(fahvhD@YriPFlk2{OrM!{u5Fw1kWdM2 zs)0*8+Q19Q83}EN)Z(Ylws}lh5?a#5^HR_~Uhv>BTCf5lT7; zDU#2|g5)Oh=MZ<}AIB_6fgITdR3A~$w$(@Wj6)sd8?xmSauId1srvJdAN*9ql3xxa zX_jz{npA`Nbi4o%K>iyd4h%+60EQke_aGTkNC{TQ+vuQx$v}7zPHfN(GazNF^K7kR zPVp$HB4`Q(z_>4swX=VMs{HlK+#bIDV_tPF4 zp?{hvxZQF4YG?@`c_3*-Lgv*bZGOT*kH6&J;Mf^4x32E}n8exs>4hpj+E5pN-unhBm++nkR%@t;|30bXV$ZR&poAqmkTf%&$CTtnz6Gj;8 zEMe|g1^oeThjlY7VSc!3hGm#PGq8O-*Z+xuR5aUb=39nZey1j6jv8+c3FqVtIccbw z9|q9$F}PWigDZ;2Q)7GD>426ZL&jnhX%21H}-b|isIMD!D1}%_-QxB0?cVg5M!YS=@<`? zEc#2}NO*u?L(xTJQ1GO(t>$EG@Kw}BZ$luj-QxXxC&}aJjIWsP=%y|);s$9tP9anLmnTdT^MJ4H^F;Nw?R3>D{WZ1=xy--wjbXtg)KSbE07ZbZ8Wyz z^+}RVU9b&*n;i8T{q18*&&bb1e0XpLp29UFgWO41K2Rk4co1ls|otq#u2dWDbU)^gM%P`*@Hf&kJ~p zRC}KK2PtL;|1;M6Nz#WR{zK`>%3j+E(tlu%kOH+mqPCYPeXi0uHwbcUC>_a+q2Hu* z6zKe!{2$;Y!utXH!TSUfpMH?+Wo*j@0^bAZcwR$tybbtel&*7uIJy0uco{HwwEL}+ zz|f&{+>J}dv_k@agmlJp9Lk=|Hnw)gjSYV7@Hznl#`;8aEFj_^_1V)Jxi6Hi`JdPz z<&vN9kT5Yo;`0~MnRCIJV_~JLhfi!8Q6OPNfdtMBiMa~o0413hy&XO&upVGN>@JWTXNBvd zbl}s_*)WIeqjctZ!Szu(^Mko0@iL^7XKJsyE_^?w#CgJoWS?jb2f2++f~F%~#gdMf{O;WR^fyiP=SsC!D=K>P_7q4TOHzLV=9*yn>>} z&n`_#@0xz?7yHjHYJ7iHWx*<}8+KiDt?!yI_K$n5Tc3T`w?5hQS#6(v*X}E7e1G^g z&9zD1hIb=HjUTS~U&b0fIIC{cRbT8M(`Vl`d%X>pN3LqF^*qz`LG6`a?2l}ZS{sWR zKg_shQ^Te!n`_N4Q%u_%#WmP%H1?<)2W+M z_FeaR%D!v&rR=+Audm59I;n~BJWV3s-DDILH4YtJ)R>W1)R;M@s4*+jYxa!U8)pA` zc51d5?rll+UiG?pr?}(2sCUb8;+*b*CgB&iat?;uQkzYYyG`6-+?f@%&K76%k6LGE z?KJ{{NL~Su3)+=JR#yM05wNmnJ-+O*tf4r?rL&VHQu_zJz zs^S=hAKh3UzO{vyIf%R#Y=wqpF)rb?z&q|@bEP65!grG)$%kZa0S~-ljBO5#;&p{l z@XvdQ$(o5+I$#tTCIAdz6q&q~1oB}chnLAGkZD06E>hB*qX<8~xgovBpTpKsARGeR69A4Q#zRHwxL|ojCW*7LPXGtO@`@~__L6G0Qo%_VEU(B>Y9S(Z z82XsNfD5AvNY~CsR02etE&gdRNp?cuAY&4pfk|N4*#+bbjY-Jn=njuQaUlZcWOF=v z9L?eV!&l$Y99}~2qxo#)Op?u!h0M_$c3Dn_Xbv7oryZzzzqd#%UN4H;09k)M|_aP8;T)ta|xP(cOl+)f@VN4 zhUkDcWTVLt$bKYfDg+vuRJC*i7VsuTwuE>OZD0-=_c8@S9hJPX75{+T!4$NX#7H#+ zm;=iQVHPwQ0vQz<=D@;yR;on|=7^sMtQlP5t74!^d=&u3SS>~^=^P07K#ii+ls6!6 zVBUb$lsB-CZ~y)tyihdIx4-s8o62i*2M!)2sB34m=$DtC-luQFAld(^s=2kTQGG|1KvafI|Mwr@rb zI`)~P%1d<xo=E7Lu zcc8}t&pI&X0W!k_+kVcvd|mzG8XfHTG)#u$)CK2;M>yKxy92(CI44|NoKt((R5Qi_ z9s_Y0Lb*V}hHI?hLR?$;CF=5@+D}Kv4Z=GO+v$RH$F;?|4Oja7ob1w1{v=tU=1 zIip|uTyRdT^7v#Ta8>JqMf^Fj%1=@f!zvMHmaRLpov#zCygoHCta5fg8E<$ftn&HP z#IVZQT@u48>$@JqD!&RBoW?5g%xD*@Y?lWv_I^I%ST4p?fbqeq5mfoAk-J0bAd7*{ zSXEHY`yr2Zt`a9!$+;_n2XcThms`@|=N#eu@j;>`u$(3lU8W=`d7xwN4#}KeNy zF-l-E*zPBeUxw6q-ka3={g5sqQ(=jnm24A(<0l%aFh|BJ{Ul>-{EnOwexe#xk8?}- ziEdE+J)qYAMCnf{`7C6RWQp1q$rS2Q#3c-DYTp3Ej z1_B-5UyywNxQJFOonrxA(mfRt^hl7L`v#nAO2_jUy3VzN=Pq;@ogq0E&_xGu)iI@$ zi|7MY&xw`oR_is!1gkabBlZ#!W@|{zO{a6IXzUAyYi#G-H!h+{O6QEkE_Hvo6k8E; zx~T16DhX>Y)~6_`W4QV&UB_^RmEPt)N+8zfo5p5!ZXU$a;&=~*)xy4ydd~X>HV3Rf z+F0$qs$VCD&fJwQqK#@hYy!}o*t!$DWgx;OZCj9EH+JjfQvABHT-ZQxUWhq{JQS9@ zP}M`c3F_KW zj6$mZ041F{jWX2w93`DOj(}iczY~-!R&tt>$i$58vy_~zy*4&$?KJ@SJKHrd6!y$uaf%x$55M#=n1u+--C#?Rl1HDMb>Dne^E)KH-^4V zNzG9Shz{#NR?-=V~h=}#&7ze*w-HMT#mB=Ukne?`e{O1`1wb|rTx2`m-$KU1<< z$uE?QDv4a8sE3IXq@|=+$$*lnN~S9bR|3=@proEhwBxIibvRt5L$k6@mw~v4<|>^h z=RVit_(MQeq)maODE&H& zzfc}%p+av9jdizB#MMHhe>eNNs8u(q^wm<)5;AGXifzAYp_D$`1}^M9`@w~G&mLIb zyY#{GyG!4QT6J$k16$^o|Fs{HUTG*Nlr3_nZaZP2)e>^| zn*B!9TW_|6Tw9~w`ZuDf8@EPNH@*?=Ubi*cz3z>uwegK;p#F_$dfgk*o?DVyXq@ib z-$G|^janPGMg#R*qv>^9qdm905e?Pnfefb>+-T+h^eubJ?S0~SUx-@uFGK@%FGSO~{G;@d*NYm*_b47Uc~qxn z(>QBeF`{$N%#V7{Mx<nn|s2bi( z__Gv8y{DLw{HXVo;;0qyMW}`H@}pK@YSeqYF}xt^J$`D`3K%V3fh`45D`2*G>7&=5 z{j@n{=@@EYK5DiZSOVW|0>BL>z|Lae?q#=@yYU(lUiRQKTug{;c;Mt>SezuwWKWc0 z{@SxVAfGb4F82TQdeYiBu&{TD<>Buz;T?y5y%s#M4X`1@?jN>Cjv9B7Kp&K*ac02 z!0gYYO0fY8>^o)mVSpdhAU>#R5bU$E32HH02g=BZuj6m8?cB^84oQ@Z__F20c#aBT|=%0E$xZVC{T=f zXlc(j_1p7P(7!cZ?D~)So&lX`!r_+RY;@%T!JbaI>TrlQ-y~rshl@t`HCKkrq)^`x zea*fhb9T7@keq=ho;ozgtPb}XIP4zFe?n;EN4=8CZC56N1wu5!#`MkL>& z@p&@`pHP!^c1_mIs*?r`x!v@I43mVAz+;RplgTg@=Ov?Ou`NI;+hM^xy0Mc9qI~jV zD0<7oV;cRcftDNv$K zj7QN$_vgeL@!bS|DqVCvC*GLeiP)xbD7>*}g0Yb~>2VyaBfN3=L2^$y@y1cM{yK_{ zoZyymPP*vxb>fZF(i6iQ_jrhYr90vI0OkY-;*CE)NbV_TY-H#lxu=|X<20X~)aat` zD`#xvEZewr6dQT9FEPAvK!UlarllUk8;=BU#IwCUywT37+0NVWi19|uxq(aNE6KP3 zaxp0#@fFaW+>zk(#rkh6cO=J9B@y9c8OM1%WRi-Z(l}-k5kgO(pP{zHH5oeF)02pp zeJUvP*FoplsGxN8hJLZCzg)FPVLO$Qcs4=D_YR~p#_nXb9&yFkj_(XezAi5L@eQeS zQNdpnI%s4d@ih*~DYs$oRl3Gw@Oh5)FiAijDn=1}RH*k$C6P}Xy2kVHyn)V%RA6^k zI&*rq6QhWaeXQ5Hrkpq)=LoaKzJl}$I_C;QE+wUNjxd+HE;gLQ8LI{=Eo|rO;vzz> z2uS#aLc*v3d6SZNC<#ANtcR5W60~WMPCUZN8R^6u{;AsSQj%k3T@=Hk4;8a{FgqoF z`&G*-tC_`S$&fe)U`8k;$^PX3%#4g-!-j=ILr=@jO4Lp{7B{IQrxFc1b!YRKYa%P& z+qkbTTC(rzsJCVRu&&L**R|m%Ery5ox&KA`JpVeKa{v`J=S@cDpwWB&l3tMd!k*Kr z@9k04e0M(9;jgZhMt_h})VLs!-#FT}zBSPQ4=DwWh33|lylHi{Ht1GD<~ThsNe6z`|_@>UYRPATAi zu4*-9ePc2`-9jnBZ9i!-l9QYMyt1fqp*w${d(TTznoXg+P0xPXe3iTDt*RNR`TJ+=bz*PN8n+x1ZboLtO~eUoy8FDnFf)`VP_{H>dFvajtn+jJ<*BbLEb&{ zahO1io6{TJ+`tZ8`h&#yZ0q_gqNKjycWliTh<5M zzyf=yOIVWy$oSkGmE=B05Y@Ut^>~>ZPmmh-XM$*r8j9DB0;u~T@`LM5F+K@fMdFimnk3s zZix|mU|iI2iXhnZMxr}B9+RJeVJa8V@Oa9lJPI`*Th~GbLNC=9z)Jw2P^u{vu|-he zrIcZB+z!qFDKJP$74z;?4m>PCXib_W3VjG5gKvl!jU9FBkIE5jrBnl}$H1|qGpv!A zy}}|UCZ)px9Vx21=yhEY&H|_sD;%HLV>h0egJdxX#kRc`FQ@LB*J-W5C)5jHR@-cc#WwqO@-EV3~NYQ!o}; zreeadj~RXt-le-Jlg*`F`~qufe2=*dD9X`O>rZk7!K}l90&&ak0YTA(7Im>WQV*3nR-b=2n+4si->84EfDk zMcclo=i<2ME~zXlnY(ygMOAfWc%hSV4)68FrPT}N7SjB4xxx$xvpN(u10l;We{Y2> zVg6`!*h~v&=A52oCWTF3_23h3H7_1+b_t(-`lQp%q|oxXII+B7UB)1D>2NbRe+VZV zDzB&>mQzwq3riQxr~D}sOD5(|8(T7A^rSJ<#+HnpGNovWw8gC`T|_HN7cDQt&>k?} zL)y$k=EggkI_|vDB@@R@otQtZa4eOS6izsgs>>EHEnx#+X1h@t37Jb{hdOQa)M+J= z{BaYePZ@pm@&tV)lW5#%89TcCDPyKj96f288p;)=m6>rHF)YDx+h-dCG0d5#msC?_ zS=I7I)ry_2V)^1ZWtA}&x}`Q#b(zr8)!E8SPQuC}f*uQh<29Zu{=W!a)|b=k`5aGL?; z)$_{cEMHJkUNL_OspZl+b1KVL*tafPGS{w_R+d&QD66usI&jUR@`^IuV^wt}h376= zytu5Qn!@>0CWcF^t1HXrEU#|c%lyjH#qb+Vw0xU#CE4FC+Gd6cs+~`4N1B{?I&&qB z;a6F_z_+xp9ouQ4qd(+cg1?wER}%Aa$Gf9TOzBUpi{6H@*2^gOSww%bt#wuB2bd zZ!-)J7x;g-7bAjv+~`l2)BWw+Y+rJm$28lxz_CJ~2dHjrDY9shU*@FIMehsJc3V z2IHK1948PY`TY@;zaQA`K>h>C{?bWA?CX_8(l0tFW6hyohk8MxTOgB2+7*K&{hgDD zkS-cJ`#T4THmiEb;RgLxr2_|mzC-D3)CrRGTMjBaBF+bHwo9|;nl0W$+o^TDiMCVY9f5jyr$A~uHFyl5 zAIe^hym+Xm?bfgfLB}%|(&_gP%MjLoq9iEvp~F}PsqL>i7mJgdjT26|h>*t|l58eYkNc=d1Q5N`lh>{a>UcY**0PKhUM_KNr!pYCUI6cM-9JA^dsO`kyGd zNy#Ubbo$jF%03N>9rWw;qm9pCGlwQ-pB|R5AMLt!?bFd;Bu6fSb-Lx{O=)M|yy?MB z>CM7(>ZV!SF78eH%;w8C1vZ70b$T{irwda@@A(U?(@Tq*zn8zIhqg|OO`=uonv+_% z>$MD{m74Q*y_UUocV02IikAFcMVWo!oZL#g3U|GhDOwGd&+X2eYI0rPZknwo+F|?W z1-o9$`Zc#VcNOj`%I@E63ejqPQMBjZl@Iv)<#`?xBV0{yE*+iPc~jv&*RI<)W!AwK z9etMexjw&P)BUhQ*XwonDzg}gFAd9sJeh{q z^*7uGUeDzamghYP;r)NS(n1;*!)qaXRoo5@j!<%sXFD|9xi51g-Aauc{2SU1jXc*5 zJ2a-k)?9(7i3d=lwNT&*;(_~wC7oK89U6&4VTVRQle9xKjpeNd-avjPXuFM7}xdBVEzbU%EwzgMWOMNK7lJO1OjRJp}d0I&o_1ru7 zi@_FAU8MKFM*fR7AnyqBs3g%+8gYW}%l$nzz#7eX7fpdc7_cpcJf8YsMiMj)hbIpx zmTyKMf{T_>=D^sf=+$YojQ*AJFL?-bdhflbZO})U6g$ELTBSHz#oG8|ZT1d6pjBr_ ztG%afxXIFci?`eWN_koEbHPO3Lra-tZG%3+*a}?}mlo$_yGAx3p*@4Qe!%Er*O`p< zzrx_Hd56A|!Fvk{GbqfeP{<6z;{6I+yq{bho|w^lpqVuOsuMPi=rhJlx}p|;*Q_77 zuHPVYb8Xnn9WU+MN6oIyrxCNDwzX?7%N$x#{oiigj-C4J2TkJ=^?OHFHagx}C=8zuUfzN0%;mL=_}=U+Z4yT5nxxUUf8V+uwaw zBl=d^w(Wd<`aR~fZFh$sFV6wwH$Up(Rp+#A#rl* z_WyHBA2wa|xHxUwOB1whk516G{d$77?Scet+bjKX`#Org|D3k%m9}x|$hQ5H1Z~@k z60~i;|?|?fa~Ko|!WzsC;XKL?x;o$0Puck%Ny)jL6Y1}L84yDhTVq4N#{>bB03Y> zU2#q)&Y!LTNUX;*3KAc1kicdj@qUEFM;)ZoC!2laT?zw%@3E?gm0Eu&n>VLO24{+@uQ`?;Q9A5R*#4Z7P8&Cp2VlGAP&$+iyG`C9o9}fd zu1h<4LtwMQdTpz&RJ!)HW)3eG5yH3{(0M*|5tiw2Sp2eXLK*$jV97$NELwY&IY39@LFa-PxQ{)VS@udz)T9 zXP9witGj@+(4!!E<0igv%~3V+Yldynh$!UO<^Ja2!k}Lb9MqK4=j1uQwD80iS~ITt z{Lk6xp{Ivsy?6Z?OP@Yx_*3J$<(BpSeSYz)myY`6vz}wJyF4-Oi@)Sfc<|GPNjJZe zJ-PX$JE#8Pf!))my;m^fj#XEj_kQS!S=X+4`@)RVKb!ri_woR4^IbKU-eX>{`X8->*KGRzM{Dv*uB~ajsn=y+PQUxI=Wj@={lTy~wNDItsP_9; zZLhte@1ENI`}ebij`i4%dZ>?fXper-ANocA*bnxH{bK((4jd1T3&)4!#PQ;|ar`(B zoDa?m=ZEve`Qp5B{ul?02gU{CgK@%mVcal&7)OjJ#uej>amILK+%f*R4!9n;F1S9p zPPksUZn%E9j<}w5Ezl?tA z_x-AVQ$PBrTgN{6>6SY`$lSa!YyC6Fb^hq7R~yfMG7#GG`1#%P9$S?C%Fj~YocCz> zeBZ;5_IviB`B&CF82ZcEKU%SN(0$u}+j+yZe+Tb=cSW~5-@h#5_S({!Kb*DT##`=v z>rXd*_W95oC;h*B>(9*T^@G)aeE54q(#K!_%qgwcZY|z?%?Xd)boFPeS6@}MWBHX2 z?z>|BoG?n*BRH_{`-Ff&tTjPWQptW9SIj=`-iG7hH!7k`$2f|DQXxlW&|@l2wXCO zews!6ezjacIZWgZG>Z{aU|1e}9Gc8oaS7wdUKi7qc|C~ciU&*ZdrbmihVb5sy?HGr z9JDM@Kp0*NbYd=kzb|C!78l2REf#>QRc;@!$s3y-xqTj2xqXiJMPjVo{6U=Ss9;*YyfdHVF} zU6SF@A?}8X1aHY4mT?bMJW)B_5GVlQ9WOrTY(3(9PBA3TPeYO+_;7KI+FfQRVEf?R zL?9-5xXmC+=gGOCE(lE#V}1%yk{?!GG4zMV!|WiK6$i&$_Gk>Zj>hnW4~WL_s>lis zz({H@0ON-R0R(y=Y{Qm@M+a`Ghz#WHv2C^I?D0{XoIP%pvnLLDr84B@BT7S-9<|;@ z)Ja2OorM_J8OM;`m&SD-;v!&Tu@pf*qOJo8!6saI60HC-cFu7S-ALw@VhC(*3sS+W zLlV+V$5llI!P90guuH*z#6_3Vm;oEGh#Fo*bc{J+%zzjIgNpcQ6LcN~o(h6yK%jmn zS-+EyMA!6FIR{RxCF)3b$nzl(9Vuu!1SZ{rCPM&+7Bn3~24_rxkOv#f;)CXxpxcfg zIa%-`aMK#PgnDkkGJcqXWDe z&|R6d(z^kj;owYK8Q6dYG&N~uYV0f!4+4iCLFYhVdonIg{ETB&k!uN$IAm*5X-ov2 ztFxI1ItL?y4$|n7wq3*_Lxi5dH&4)12n@f7$FgAX5b5To;+w3=ap12#zz#dI7rTBM z-Ul)#=XWhMD8dFtZFsd=*iKTl5XkW904*sKVfokA1L zRrO||dT_tu9P{F^*(F@u>*Sn?StsXY^~}yXd7x#O|Kl2O-mzxBCCts2RU0l)=Tw%? ztu9A#D zvqM=KnOT`x8K;E?RhBI(E3GOU96CRL%ETdMi|3Thn^!jP)SQyjPMuR(S}}KFsIqKD zc~$w6icsbmIoTOQFQDquIg84sE-jr~Ua{b-MUya!CQmz|kdY-7Wd*B-sZf!s@``CV zg2~yLv3QXf-;R#?iN~J68%XBq7?#a>IFwTPaVexVq977t(P&h#eyP zPGt7zIJN`7_9N!mX&c+2E^oMU$-L6)QhSKTcQeG}TZMz!pU(QV=ET8(L*ShTXCBnS zA9N7D0fUj#Mj{w8z$vPWUWB)r#%fTIPW0!xk!>6NuI(`obzLR5IQHwY?H7|9dw;+5 z5QS|k^dfA}dKu-fUZOYK*)M4I?E78WotSeM`^6`iK3_QY+53CiFW4>9W+dq#`9i=eZp!HvmrGOHj|Jh+8od+D;8NO; z1%d6>ejc-Jhk5eRfzAk!Skha@{wx>&W$K%x82;+kB!9MM=C1bnFKxtic zf6iiGe>7r2*fTO#ES|$5Kb?e7eP-WI$N!usU*j31c?@_?Hs=mBwDYwGY?FV2&NRspDW3{FF~T0 zl&&!=c6?5gz6jX98{5<3aT&}XpGFe1(AZU)!mffu{a_zUBg#|~Y#q?qciTmDE_Cqm zE2;V0nXf%abi1nmAf)<8Lw)>GAdfb-#Tckd<(si#T3}vVFLCA};J6?c5%b*u(^K_Jl$@{RMM^GHa=DVud;&1>p`RZq`LL2d zQ(Txo%=R^ zu%@VSZjz^Ig2>tQ((e7^9@}fw{kmzMKmYUT)00|ilU%LV!|#krYV}4>+uL)?xv38| zHJ<5f4P2Gcqto$^?X|YhCbMad>1w6jW^17GvAyopzjqd`uF%%b=B^YY75qiaL5>67 z@g>m!bFBN~r0WBZq`cVa!!CQf2YUACGoas~6HXk|=j62Tml=P_etOvV&Nz2?x7^?7 zuO8KF%oF4CCTy9MGx^S`d!`r8xZ=DgX1#skXR|+_vvc0I`426uxM;wlmlu~T`Dp3% z$|tK_%L`U4x@7&zYgg4=dco?G)_lC?+M3>%-F=y_c24a>weQsKsoh_@r}mxNhid24 z`fBgKtoLQt)_lC?q%{|;uDSHuRqIzSx};!*Yx$E^(qT=dYwZS!}| z`+Ux4v){h(iCI^iS2$zO^gE~KOx`jnZ^9GfdW~5<>i7BGa?c(9y)&L3_LuB0Gt$C+ zPCjwapc4l4>(M9Bb8q(#yS&)xk(BEL7blH%1BKf0aB-MVv2*5>ukeDu_WC$~JF_t+~xD|^)U@UstH z_TYpc4ZbgZL-O6-?##G-<_~YYWyej!ZoIF)*AE`~-uUZVuibpj%~!9!YQ>dn*Z*kU zTWfo+U2(;Sm(RU?Pu)FrGwV*Q^VLzEukOUUnRWNn?Wvo4`G=RUxT5FUx7Pk>-P-jl zu3UZ9%~x-}ruEwK*FW;TUO%|6e%OsWZo2W7nLo_9z1yA1cc*U{eBXp0UH0I!5BVN0 zd-Ro`Jo2ebs{@d80#n29025?+LRn*8h=iZ3F=aB)H| z!*c;PFeswAtAOg8oc={~SAihjzy}e82TXf$42JVHSstc!5nhg_^jZj%HY^J{v< z^IEI|QUS)oq;ja2qB5+zKA0i~=)C-7_X14?0SGSCh{DXihy?*o*= zn!l998uSe6IR6}_z~{w3S1E9G@y}BVW(rC8^bs{^g{ZBh+?Wbqh5%=ozYJTacL`#K zBx<45B_V5?r~^K>0FVkW4%kOim@ob{m~6$AR5l5-LX?Jf$W7Bp;UOs?JQQOQ+a>Xk z&KSz0kB7wh^flp>!aFoDq5uvDr@k+acMxMCHt+*jNb;F}wCw33#zM5}CrZ|FJ$BYA zA30d7G~&@oBOaY?5C`9vRKt?5DQ|8Iao~d;Bk!h5X$|$>fMq0T7j!Nz z5&9FHft?F}Y+zdwG#LVoOQV( zY|t`yd~=(yDtSd?>|59yyc3hCn&hZ$fQmy6*oP{1nz$~E^wMMq9J~#xXb+Omk33!M zI)C&W1|;##a%8oiIe@=;bqG-mgfQexPr(yxuuzc19;6Hqmt^Le0==SE>Xw_D8g~ zWIAz)d7a~SYt+GCd$}55W3%_UptYhIf(Yf&F%bOWb#mJmyYZVpO-paEa%o)=nsqGwlgX4rPN#hk? z1KxnID(oMAb&&W7gXAQ0E@`!agkLBmlC44F(+X1aM#0w@I_NAQL9h(TxRXoqjJc%Q z2l8pPUFR|2>+4cHVlJXawO#W-;T?$e&U^*12w^=NxLkAq9^lN2?8F0fo&n^PL3_?? z?^Ur4Ci!Jr={fjZj$9F$!7TeN2_Mm&*Xwa$#>Md&85QT=LnUF}aAioU2@mG?O%8<8!aQ}W=( zovUU>ikdGgPHwu!C2mAL5fQgRmM_GAz3+$BzJ==f4DLVga}rxVCowrXI90Zl$3k~n zk^D$^uJcpwCo@u~&TuE|B9g~jg*r!bcYAZ+JtH~yq=lVx zx72peeZ96sC+9x1J|lORH8i(i;TgGme>Ng_>Gu3w^W)LEon9Z8 zYiyX9J7VJG+{`~s%bhxQMsAOr&(C#jzA*Q;7fN$yK0GgX`^5`#A4<9?_rkS{a_`w* zk?T!bmOCcBD%ZcSI@j~`irnbbmAQBSc2(}?^wqh8&RUcE=$SRS13F)pyZHIbau-jk z%}sf%Hn;Gz+FYVKme8>t+ffho(GKm=5BfvD=pXyR{;*%{AIE{?!ExdEaGW?^95;?1 z=YjLVdExwUo;Y8eH_jj9fbqb%V0DTEKI{7FtS3F>Gu2v^W)JCon9Z;U~HJ!Fk<55hRi=rYnVEA zMnjLA&u?&TzOdo87fKsuK0L2s`^5_y9!k2X;lj0x8t&O%(cn#5)-Wc$s=>dny211G ziiYUal?`|Qc2&dX^wkZ6&RWy(=$SPQ13F*Uu=x4Q8WvBgZAf{nwxRH|+6JOJme8>t z+ffho(GKm=5BfvD=pXyR{;*%{AIE{?!ExdEaGW?^95;?1=YjLVdExwUo;Y8eH_jj9 zfbqb%V0J@`^GEDv*jS{_c5EWAi@Yj`bukQrVJ z?_EZyVyTefiQ*C9ffU;W6ci*%K@le@VCi*i;g5EFy@@|Ug%3;;f?%Zzib_V3cq2a8 zWD?^yFcyfx^&@GJcoWS?_y8@vg>EpF@Bvz44X5G*w8R={9~oL=?Fwk6B;H1|yP(Wb z3PP=YbCvQolzB?ogLKJrvE%Jez%vPfMinI9!9fiIxP<5^@h*By!iT3^oD38SX=S8} zlrTwuj;U8bno5!IdCP(am`UzCH??`nY?vNlhz&w%6{vv`>;Kw7% zkQhe7P^lRBL&H$ps%Q$TTl|V%AR9r6;@%417y21+KjDi03T&8dJh5naBt8%i?8)Nh7#nr zwp=jrLy4uuX%Fer&tP5bI=l7#7a(1SlN|eX4!$uf!)9_w{?E&>q7&5J^2 z*U*qt`;IuZ?|G;68_}olh(3LDd-WgLyPvtJ-b@dhi$Z4VcqD>J4Nu86mof6SEOhb6 zk++_9!tq6?59pcqm^p4Zr-+HCHEDx!#qyOf%UVK7TVmlNM-9{ZYI#~J=d8+FIlr=M znS`3Emd#m}6|+=vHt7l#yV6057W6W#O)oLS*MaDkBh+SLY2~3%t`4y)d7p5nu_IJN zVGp`lQc;C=w_X{%CBnN`b(V`0; z3ss?V5&m z?ncyI96DC#dc4Chl~P47Ix(@^Ttrja!KR#;*rNcY47uNqFtJ8Y`?-^ynAmT;L_u4S zg+6sBCiZ9#;<@ypFtI--7^^d(S7Mmht^{LsX4(4d2oo~{L>K6j4JV3=u!nb z9PM<09-I8D{lb@47i>oijV{nZeWD9=WRb-+#Cxs{1{X^T9-fdtsc>x3lnf-0(P&(Z zZSTPBF`9>O{@le&7lFvQos=_G%jd*4%+Fe0era4Qoj0$|>`9%Mud9r^_jQwBEWYmY zneIDIV#~fBG6xRoVT^poD-OToh&j}-9iKPYK2J%w=s`yiKP3F{Ac5~df@9Culjvc{ z9`cKFh(~gPWO!s85!NG54C>*F4egqh1YU>jp!0`>gE88>1#x@$Eu%hgJG6(j1ob!r zY*!+<=0eA}9CXn7qaN~xLoz<{72>g+aahbvn5Oc7rxAbkL2^F!H0e1A$@o~B!pG8x zF2}1ZO~vP=5&b~v@Ii%sx01kjq5o7#819a}1JkPsBl?9^#->JDqPQ z2untg2#H=%5B##w`zoDT6p&X)tp_~|^im}`-X=&g-${^&9nN)rouJCElcw^U1XbSd zAj$ZeG!<8qMlxS_Q2M$+e^>SY7sxb)rv-`rq4cQQ&Kz{Wabep8jtiMa)K%#mSEKP! z#G$F}V<8j3NqMT_BKZOAQt@~$8Gi~1BPb*%ly=GA4J7hAK~7N;AN9~VF3*+^o^es{ zq4Ve9U5a+kD0!&(tTwo}jbl*f&A|f;>ow;f=UsA9EN>3%4$w8{AX{*4dEK4)ZeaSv zc4lF6N$V#hC-iVB{M)NICvExK8Ao-=WXzDTjY1-i9^^+#atdu1vAGnI@oyLG(6S!< zH=x6Q3VEE8Frh*}MagU>IrhTFL0O>I!?23=)0Ld1E00mA*i^NO~`5boFT&Jy0icvZ*v5|I_lg!fpCFOglqEDvHzOni=;mvHhuuWK3F zdp(%K#sl=&AWD>wcOgg;Z$&*|A)L-j z+y-?dLTnJm#~QrHBuOHx2u=?GZ@nE=fp9P@B5O$M%B+a2A+=fnp?s|EgH}r74m3Ma zu_Cg9GY2aoD`imTDP$Gb!!`^COZcBxA(y*K~EeQZNahYY?SiR*r>K zAZT!2Gkvfo~+L>(UJCQ7z( zAo__?GzVg;ZM}=AodCgj)FHwN(`{%j&!wn_C2m@0ydds>LB*I_zbqGd;7Kya!&6bv zbX-2vut9eyGDxf#0$XLQA(kY;Ospr^<=`{vqLtuI)H}c`d{TR9H7%!18(AJcu<;RX z+aG)@fi1fge<7A-pxZ2nA9HQ^4{*Vkxa4v?7Xo*epve$8JO@P~jzgM9r$V5HlcG@W zX)1);tnF^R2_O1`iXqfy^_3-$0_$vOHTH)yjIkD?TV^f90*;qi3$cKfZCDGDrULE> zHaHy*9hvuRDg-~M>0Ahmf~_Jx>tJRQG!;Su_OZZ192IuwrU2MYV^;|mPx4vLfPjyS z4I6If&cG-mfH@H^L;V=l#jfL-b2xD70ik=}Y$PEYqx9EEqFjcz0!|fXWynkp7dsgZ zPs~4A^BGRa9Gsn-c}jLWe1;8|Rht`YhZ{+4I1LqHAspe=F)18%S$1YgwF5?FG)}P= z9uxtLpW1<_>vw?IFcEOI4VmEqv4WbwaPE?-7|WppVO>5D&FN0eeRU{obWVcU=o38>!$z-2 z5F35o)?Y{1=#74&LOmG#ewW3GjlR(%F>LhBfV5@mg0AuB#6~wJCl)W*H$iN4T7o== zJ8a|95jJ{tf;@(6667)btjo72UJ!V(Ec(|hOGoj7-xM|qUPWnsMZpz|m&4&P#4{|0 zRmSHplE={g8n;iAl;0=p_+J$_`ox*mw8$$w@hUEJRc%jnAE9s0^gslhlK#T>6tSXSzO2VuK zo$*(fv}-|Xe!~aU_Ma&En36iKakJ7n7o1BP!XPys$9$TIw^a3gjk#9p8AVT7SeiS;G8;*$Kxvw$D#^ z>dt0Qo#ZI=7Bzm_hNIBNPxvqJ6YlRkeA8c|3%7u!uy5lBD}UWI&lPAID;{i`>w0Xj zQJ??$^mAOh_m6hBS`XI_b+sn#9lp2wmg%VvHZ=})wFYiEy$w5|yOs8st$`_EC*0Fn zw7Tu=gr23y??cD90ly90fZsGXq{_|6Qwxhpzr-*_y6!B7a6gORzVIS8#N_yD%}vNJ zJ;MWgH6t7`ZbCeT%nfL!xe58b9^)p2*GU}uU=Cr+!;e7W!A*!j4I4M1W{D7ZG_~a>1nIDin-Ko1ac;tP$p}GQ7$+ly^F^GD5H1vP zGD1Aq<79+DFPMzbw=%|v7ULv@FGY-#5FvOmPC~F8Ct->qISKy_6<;+{?S_ahydb5D zNUb2|DVm}%8F{`mMIjI&Nl^$&*%a`^!&aIK#~$&jq$o^d+czsjoj_5Dl#ZPhMPVwq zm&F)()+ihTBYO04hy!E8jtWJgW-Rozr6>ePZyZVhV_}MBEKH5BN2|2B3O_29qp7nF zFFP0l!OR;})5iG{*>waJLtt}T#zMFuB2}rImNR1^me+BE>9}HOU}G$V1CmT$Fc|`k znXwQH;Q3?5LM)&QW-P=4rcKOPhz0cMC%!RZ!;c4T;Ufh7JJ<^0>x6x2w!#&Xtq`k_ za_OLKh5C_#LxWAd7t$s%n_-6(ggAekfTkeCGWHXvAcQ6{fEXHreem3nmKpjSeexV} z)5fC6(3z@dIqKmfF;-6x8aN0Y^)Mxg)x%}Rxp~OJ{D=pbyo#}4D>TYtALbZKAyk}A z`z(dH9+*H2nhYWD1bAw4!LHS#T(9CP_JSt5z%}x4z=m%YTQ~sfh<~vjHcO!d8_F|t zbHP%$80nLa&oTYu%_U(oEu4ddN`bJsJZ$>I1I#28{G5u`jHQ&@OrXb@uNrY%{rs46snNo6R1%EZuUm53@-T)AX!Syk1N%BsOf zBX?Cke*WwNP6E#DuEHgi)nzMBotRB-pJ!r{(aA~|T|_styEsnt5WS6l9pVl6u@@%y zT<2NuzS4D-b+vhoaV?uXzcN1|8;~-O@e{V?XhYGa-MEMDOt6UGd=>D8|L)cBUO1`bQ=z31P0sMp^g>%4f1LJ~8iZgH0 zLkaQ|&a(05b(A;hw+ZqS+Ijdo!W-W95_5{_qR-cfH>^pJpRj*|{Djd2`3cL9GC$!u z+ck8hFEh8$Tg3Xv2O# zLP=*nB~bfd+}JK0BtkX_$a|Fh5o8+C|0o@)C!p(mN}TVeowyv0M=-x#8qqG*p5t*` z6te?!z8jriDNV&+q!FDCdu;-7H;2LtI2SnV#>)QwpXMioXBYOrNlC^LypA|5C;z02 zV(~YcuTaO=48%CP=m5Jv$5|n6NNulDlJjHP;%zX2gMOouoJAeHiqO5p<|F8Qox!W9 z>S?<_=g;yg{z;dLzryjWdfNWac7HFi$qCza{0(eQ&~+Xo7@eSpl^mfY<4y_WFFI0t ze&W1^!!i=(ElfYgTc~&jB_rb3$y<1gw-3C1*ALiujJNOqEN|aw{iiW+-!b0K+FUz# zq0GXfT&tbMu&h&I#I{^8BpE_;7qa7t;o|sI!vlM;#dD`N+=a{nthoz$is5y!hlkhG z881T1gSd0U@^Cn`@XmtfwSJCCfZ{Gh{EdUV5WWK9wOG82=E;h27j8pj2Y=8b`=$5; zROT+k%U`N7?n2%O=dq*(*!V}BNSwRy4I6jio9G5%yv$w5T8z7pwHS9HYnr=|i3~M& zAuF1@kQL2c$O>~8*5EkawsRM5$3Zc7;ZSUQ2L~d#3wbflUC3&jyO34pE<`p#sm8er znaYs43*oaPsSKIBkf{lo*{~h%LQ_x*5JNHd7W zT?m8x;cypj`%iHfb_i|BBX-go#*m@Jc@4j>M~sb=#ZUoX z+Pv0Ya82R}*fH+HqsLvS?}KCUIbTP7P9ofew;cv|VXDncuNR%%g?A;$UAU16g$~VK z_>Tm+3tvu~TPKTkgWxR6h3FJ54X$G8jSIQ%zq z7gjBwlQ4JTX&H%g7uKinB+ezjI|fmA>Vn*JDfJrz^|yKbHwAAf#l5MZyD^3+ZQQn{Gh7-__EDYf2`^K+NUD#?KJuq zHGZ<{ibkIiXz)b3MV@MMd&`^twrc0XqQ;#|t$J6zFY?|_OYDdSQh(L-X>DDj&t25` zVU@Qb5}DFtZqo-<+q=2zJ@xPHbc?!1pYYxGc+-cq>ps1lk~Va2@I^kH{o~oGLsN4u z?Hy=I4J6%o*Xt>F1?~>slYCo$@mcrX-G9?PaC7jMJGn+4NBJ`nva`8TIc) zbLwVBt>b4zt&_cxm%7#UC~f+1*(=>J79zKQ1mm%;(P!a2lJ8mD=y!E*2t}TWM5318 z(=0sCv`|XPwmy%~j9TZ&mB_599Gw`@FTpW36c)%%S0&flM=G+z{csxuYw@C;n=0D&* z$y9I+I2oCn>wZ&i?4qdPeq^F9sNf#pB}x)|@F|3$AnK>QHiZxFJ)#gHQ9$B+9GEl; zDk3&~i1ZSpp&}O7$FWus#6J8L;U)+|6l0;{=^g;xvzUb4im3q(;F8MZ00L{3a&F+b zxH35a1Wpujn<)Xzr=?=7u>zosQk%{RaF!&lXRHYXF#_0(BIc!otql}-$#~hMAX^qT zqBrBmCiA!vaT^4^fZa=!fl}Df29#c)kaV=c4Fph3%wKb08!$g})N$MWfCCK2A{K0H z(C;`r!B(zu zor#jdws@{I(MjYXnv2NiB25G5$m9jpmdT6bwLk_pMND_k@XzF3B!ec7D8;rOe#Z{Z zINMg{`cv-1I?)%q9#Kt*<97`FB5QCx;zjYqLGTShHxxsvR9ndF^f_Ov>9~bwW0>iN z7y%p#-;^{NVglEkg+{0?Xcojg*(jDeD&A-c8ZiJ$(;(2$r0S&`uz-oOplRrVc?Rf) zSP)RWhpFfR=Vj0h*gF@PaO6?(sh~51ZWt9mtSRUeBnfW1VS+om#|A7Th+WXR5a6XW z=@PL43vepZ1ssVY8t&O6n&m9iPpof*xm=Y=n#m9A25EcaCrr7`=dy|syk0$ zyS*)*5@-u}9m&{0Q=kie-NTVuM@aer+%$0a1O)&>R-X{W;rzc5L@x`X9YUt*0ChGZ zM&Y^#x(HqHP_Xw`>F5uxp`ZuQ{lO)$Sx74G_WDDyUstA-;B;(;XiW~15J=X{&$MuO zNI_{;`P_-6)e9rbE9O?0FR7?HFtqENjWlD|WIZoUl*R5hB!-(QA#+*COc`z&=KDt2 z66U=%VO}0@3G;!P@%=2reAyi~>(|V%g!!`?RQv;1e6VJ`nG~`N^Vja-mN0*{>I%y+ z-!?*)FdyMQ-sEaOuNiL{=5yRd$ZR&z754LUuJatXeR>t@yk%hfc(Y#CvxK>26^><_ z5k|Y1zJ>e3K7UqI-TxGGS=dYqon_7nsa$2qSQa*iJbIC3n2))yP>0@7Q;*{?(5|5- zeA0l(B;JnwRr5Nz9s6mh2`|k$DUY|$H|y76EE@RKpVQlUTYaqW87B?k-c{?KmSMiY zL(xz(eva8IY*-|OrlMOqwQ_Dg|1Y5Oih^wX%c1g${46YG;$Kz=ynk~RU0hgEEdjO| z0133NonX49qpGUEVaO3)^Xk^bIcBy+7|Sd2asK%^Ho&mWNii`Wh!LkwFTl_4z#rof z+aAJm4~0a|S+r#C#hlixUEV)Ah8WGn;m7Yn&>aWp9y|{k9)<-6^8Do|cQ;}Z7|tGL4O1E&eX&Z1(OQhH_8ly=tEmQy$ur(d+wEGgWMWF1kP58hRNe+by|&bkW+6Ql1AQ-}Je4dH2kWBu1!)^D&PR;& zu1MVtngH|%d%Wd%W%gpqOyIF%a<;#CG5OAp7nASIcrp3T ziWigbjCe6A)xoES5sw%109^)v=webQ#$+)jc(%vl+v1Z%$){(3RI6tVVrX#R1J^*W zkid5#VVE%dM4UW5pmGic<$VUpxu=38W1xa6*HDm{ zxxIr#Hz^$~+tBY*5+5JX*}XX^KSCgZc|-m|NqFl*XYRb9^sR(_zD;aX645F6=+GQ` zNiw%GbatjrBFTLgl;4uj*%2>DgzV_h7pnI7FoDj-vEadD+#XT&;lPY~_;7&)$v@;@ zAzdoBls_KJ#JPn0@f+XDWT7(m7|4pXef`SE%imD}BAv?@{{wO8!F0 zU#acCSNb26j>0&Hl6=3wo}qMhC9&nEg0&5Lrji`<=#n|zAV;b7oU6>Ga+SH%edChc zEsz(gdN9{P2Nw#Y=GH?h3+SLNfn=T(m&#q{QumXMYwsad&lxl4xcI++BvTy3>jGOyq++AU_It2kj!=El5-Tu|IgmHfLB$W zX@6_4z0cX_mP7~`HNc4kL@p-@go_fngyaMQns8H8TEZn7DoTXl1rbuK_10-YY3l`x z|4jcGr_)wM+uGI{_*-kSY8%>))8ERBGt+5purrCla?Zgi|MPxpt#fuZ34}sB*1zk4 zynF4n_gedQ_T_uO@BRGeca~nxoM+gaupG=tK)x^Zp`{3e2j;^#0)&AC2)!C0+oBz9 z$?W62^L@loQaeCA!+}tZ0wUfS$oCUR8AO0EYyk001;W4q+KIFtw$SE?i~wL?)1i#yV-x;i)*BPjlzb++xl*Tot?B)6>WzgpBg)2efO@*^WM59;GHs@Cbrx8`ivWb;G2z zb!|Mk=>oe;*f<&&rmSnrpI!b;McTS{Qrem?roDLBvF)CG`@)np|GbW2$-Ly0wDrp5 zv~@>e5=R$Dwlrnk@l4ukeKu{CKU4g>^Z%|m(39^hZU4(+YubMtv^5hrMw<6)Tl@vy z@$q9n1RfAycb<}qJVRdYZLa+~_hgsxdNz#j4kw~oEs)2^K`vaYMc~n(c|eW?my(G;iCYkO zKwE+b1l8y8RA}R-8_9Cj^aip*dajuYgI|nr;;K9eV|#=Jn$8K@C`2%Wd3fPa6e2!9^Y9)hk{I$oPxL z%HX3QE~K`I7b2@FD8wOe2_>;yh-U@_77LNp3onQ?2oZ9H(Et5DCSb*XL+w8g3%$+l z7LjQBi5V8(%RKCSNi=A?)WZ(Ousq}rNi<};P5eeV7(?=K-^PdDpr6@#xCb$T;l6+u zOQNB8&w`@lG>1ss#Cuqa+)CKPl@8IM76|!f_plAOaO~kjXhYI=-n*}20(xQxSmIjChR}zTFLI746g4x)Dp{GGMa&B6>)0iN*Fqck^ z0L7c_SORYU9sJm-H$kXq$%Oz`*`^)KuqY@RKNAQQL_v$t{0rvr76CxwNZPP9%haKO zg%h+GptnzLn6_g*jBWk7NUX`@;O6)>HG zmICnJ9>(_Xw73h@VHZU1u34qov(-<}n4PCbSN#|BMqsPY(etx?7w^Vw>_s7ty&BNd zYL2kk1d&s%#5hMFcJ^q}xm~L(Z^7}j8ybg%V!ND;Y zscu?Y(zKrog1-c)wGF6xY4!H9#McYXc8G4?qK_}CAa@v0gZ>OOL9xIVFigQ&Gl^`C3Qd~BkpO)pct8}o4x22txey92`%ZUZ!}rIaozF z;3Mtq88nl{*+Xx3(~}m>>|zAFIQr%-dRkb|`|7Np z#c@lG(Ji^3WNy>?a&9oMH7NM46OC8a_^Vivd?4)H@Qq&0xEO zCJ}5S3GM2EcNN$`@I8vxRyZ8seht zvvEznah9%0yvPsan#5-pbh4n0Wy=5W`|m&BUS}iRQ~dV^a}D7)4#^NxaIeCLb|&mtOXDXw<3r8w5{9^&f{y*!Hd zz78pr4~KIT>oN-E?R4YHww6Q-2*r(UYu4V>mS|C=A+ik-^>S`X$aVFyC|*9H+_vOb zokZD%Wn(MGPqKx4W-}a*UUT9T$|h8dzt9%)hnwNrv&VrW&-Z!yn@+sk7V<}%6Y`d} z#)FfbNeBK)Z}Fy^Y4~A1saHyjmBW?8QSTW1 z-fl;|oQ-a-n7pFx)GkLJYv{n-k5;Uhy{N9@gW!d9qUTZW;Pmo0I)#f7UxKGl`S!RN zLH6MHaVb*%P8Cx=48BFU7xn2|1Z%?Y?_0#0-hcKjQpG%u&cwIK`^+$3vVPy9R*Pu7 z$2r4{i|+-m&r88DA_N1R%C`vG1mLhtF_V7ZqCEkkw~XJ(X|K9{BF`v3-8uqWz^rUEx#v7Tq^Uy-S#4j*H*7XiwR|e2eZXB>JxD zL?1s?{k}!DLkH$t^!1?w^DTO3=)io7o-fNC=acysm7Y5=-=Y^TP@Lzfe2d;G{}bzBK9eOPY%qhG4=fkWPRnB_6>ngj&8^I zAnJc8-y$$x=>KAk$P9)$a`Xb(7bB*9g&duS(;=ms93p~BBHEdn3X#&qj*;TVL&P)> z>KqLh(pYuIksnjHLxB@SRW)SaE?aA5uy&h5Xc0pqrOpruxSAOK2A(4Kv!G0 zgX2Yghep3o3m8YVKcms_!{YZ<@#hs~>$Jy5C8hg$U!y;-C^$?k4;vkDlt%u2IF$8W znxW?#-=%rFe!6)@L4%^-`!)J~M*O}aexHzU>-F|&1Y?T+eyZ{38u@nu9}!(YqLFpv zkzWC>z~xfzYplA>-zuJ2(A|M zU(pE47Ilsf#`f#_5slz%F~3k_vBtPY_9uW3k*-&2oTd>}FWMV4Ua9dKjjJ?Xr|~9@ z8#Hd#xK$%4V)XY}jbGIGltysHXy2#tA2t48joljG(-^bW^5m$$-_=ol}{Fxrde;+qKhkhSJ|NR^v z1lZ2s*XIyHpIEn=_V&{{rxBjqHHY z$Medc2L-lMEN5#(?k&`#=J}w}|6D89^ErPz&abZfpKqK`1wN*_eU?W5a}Vm*Sk9kU z8*xmSzg%OJM)*2mev8I+8eyBj{5FlZY2^1y{GN6FZjEqZ!hFsb51(LN-=z`y-kASI zjZbO(vPRf9(9Z9r@G;f(7c}nI_@c%G8u@({`P_B=ry6^`zrtr&&;NzSw>7?_(f>S8 z>G|(#ggqSn*cx4p{N4*6VqG`S{~}%YzXz1+`TqBTay{SwUQngy&(c_L}N17j*M8->&g)jrVE% zlt#F7qCeP-flq4uqQ<8*ep%xljn8R(UgHZI;TDa4Ue##ckNS-Pn3`B$7LUg(CQX?* zb@HTsV*sX3oIGWqd7Ik%(fr!w-nB>Uq^=*e+byw{nx5c-+MZzYCH4mox(%J~g7tfA zdxE2*N47;L3~k8Vov!H#j``l<(lvHZ&{@#wtbvF6_Ya4HFCBIR!Jc3+&=U+C-#f*M zb|0TyH79UnTe5OaS+cMRUjKF}l~LEu_IsYKX}KJu)vM9Mp^zG_zNRNQ9-}m5?nz9{{4v%VX=!}kbdV5ZIkhv#=G0-!{ zLGM$BqOX?^heNL(cB7%5U?{4_NTY9zq52Pb`nP62aZo(*Wuo&!=M6e+hJGQ5( zbw`>SMd?R}@2dXZ;h+=fv;*j4Nb9hUk3O?KEt+6hHsZUaYr{Rl;n<{)3b^uHEWXF3%Npr_nebqSLBfyot;n^DopV&EX_zA}O9^P<+5dvFSB8a{uh=$;jz>D-? zcwY_1rw|Rn2QXfi3*kwJEQ^ETqD4dSp@^5{LU<{`IyRWyUk2eCDnw-2uP}j7GPu9M zF%;oi`J5uC8D{`*_Cs+NR236_`ri-D3TzR{oHM?yCtV^(FT!5)fqaTYpx6~moI=s- zgXw>tbL8ivrY+5MCtI93B9rcn1NjS#?!?*67DU<#YDB;rJ`@F;L$U=|ilBwLR*)pw z0?V?XMQHsYuL~WjY=NCr&|&}vwy8%f&ib&Tz)(21+cBfqhgL`aLR&~08}#w9aT(oklJW&>0ITyekF6zt+Z3{ zEL1@cd;Gx7ph4QCR>RQOC=YA18mjo|!NYo5>26Ho*Xi-u#S*xx9quK2WXy_vEa`FS zJ;_$(>77yAR?HiRorhC5_Q-6a@{z|O8I;}IT$?#Wh-?JY;~Bdz2VirrLc!sIlN`E+ zV=la);lPN1oX6BJ`?Qz4Q1=Jo8vQ|j4*h`~GX>W*jDp7D5dtK*B5|y6R1vfba>J;W zAy^y9O~0k(1&#AC3|Da8L+}|MJ_w3Mq|rwOaYixY2#g?9Jnc+@9}2DnIL5-^!8o#F zjIWal^5p1rCSUcJzsDM=-B^FAeiLqrBlg14z zD<4-j>Ea9Fw)dGk+Qv@Qt5=Mz96m{IPGHq>$eUPu)0 z!w>IrUw^O_AORJW4}*8yJwu840Qk+}4Ho+WRBxWS@)vI3et38d z@%HytKN?>Mnb9)KV$pwdokMwy&%4fqWKfNiY?K8gq zW)=7ChlkfOtYZRaM@QB7mnmq&f4mxam+R<9^% z*5SiR74sda%0M)}Sbadh-u3pw!>fVM4R7k{``|%18a`v}%M?@JWWW!K4<0O2*dET8 z93yJbb=E(M5g}_a@OF*&YJ6BDYf;CD{uXsd`_jQ@3iS{Xgz(W0YY6H_r;EAR5Ya#C zcJ>hpX)ZQK^q+e99^L-my3YDtjuJP9&)Iq4>OxxdIz)64>Jg&Jdj1TJ%#nsDtLN3M zmt)_c5Ye5w&b~n*qR;9&>w1NV{zmunw4TqLWsK+_^nCWEi>d1l+lOBQ(60yO*Mai; za`=7T*zN~?D%~GKTT#DSqhHqv3jAni8>PqBjZJtSU$@Wd<&1t8{Fu>>Pb(lkuYjC- z06s3d{+dRk-{tp}V7)kps7Eh{PfOG}Hq}uvXFxnFfv|-F*%#CyHn{=$x^yV(>xNHW z)crngtfubKOWLHDT&z{470 zutS|ivaw&d9vl_F2K00LevbZZ`wZbVl*iSG=O*d{^$|K#pP&!B574Q6I`M$T@&2Ir z0G+As*qQqLoNe8)Q~CIq-zjtfa30M4s6S2;X^BBfo{E#4Tv1**P)>3`WLiABWarUP zXx6T-1aw8 z?w((?ypf8wzMLW|N}~Ph1*rEk*mqL)OFS*LpPGw2XV2oos5F##7?)C!5Yo zI**|Jt)@dM+FwxlLbr%6?RYI!_~dJ;;_d&I+>=^72O_hYE6oVFdBM7KTS<5lY;x5mwZx>`&QG%Ys=SSiJztH^4nW}mWnq1uH|Pb zch5hi-0ks|YX9dYn^vmrtVlk&atv>0xcm5}Z>@}1eydxA-R^=wu)Dz7d+<=I@X14| z;_ZQ5^05-pSY$sgw?9yGe+~4-CUnTh-$+qGQ47WsRil%3mk>D0cIoe)S@?{63}>N{ zTisGI1IK)DhunQl$}X68HP#t5Y+lNy+pfMQVFCLI$kT|KFm>1S=K=h*QH1*m z{GI=|I@=G^nPLH|kg;&@N9*ON;w#c!g&wYeb16Q?LfBljUZ zxk%@-`5bcDAmL5krIG28d8`Qqg3MD5=c@XA^ZQ_LW~vn5^ElR$?u2zbSMbs(s1d+= zytJbR?=gRk(@Hx)5oZhMO`?SWEGp<4v!r0tf3_$EsYL+9>kGO%w;*07vjvx-pv3@o z*ry%v8|H!yQq7A1=m+U6V;06eLNZ zEhG4<;(}TD0SNX@&dx#rhhS4lc9vQZ*BY0;7#edqo8qlw(@!h3|9>`3Ng`3E{>{5- z^}0=Knsa$e@Eqg3CD~wpt5=vmhn(ur{vVQ%dG&HbT;^5Df+~6IT_qDPEGsLSSa#V6 z{F67f$@8k@^$8iNA69xnc}dx*-6KjanD`V zA5l^#Z>=vISvIV!(kvXRlD8&CW9f4fWwIrKwP)Tnt9912iLIq$C%z(YPn3?8p|~YE zyGM0JzeznzK98*Zog>3fZrxYMF8wtU0r{Zy zX;Gaw_q1&Jh@$V6w*%+k&v`pcF*e76#@6GT73<*J7zN+1-kY|uGU6N8Ym+W2P!u;} zmaz=};~AUO{h5LsAkeZh#Y}>__V)LDfugz5AGXEx2Ws7{gYpGQ^pNSy(+2Hr?{e_} zy}>iXOd?j_JMOeWxp6VyjLX>-J>xtMpHxrXv>^|Ox4-8HD;p{H120deKX^%*bx^*o z_2*47ZFuZ@`#a$24<;|uA6yK~Iw-F=Dp{E+rVZ{0-u`}u1cIdUSiqgr^oO_~tYd8d zR|SclHl64;RFT8LyIdgDcMLw_H@&w1TSI-v;3KZnGYow>)OQR%UfR6-@s{Vf;Cs{T z2W-?H$p`vHi0J>CgW?$rV|s1>Pvt3Hao7yuT7v%Ywu>>n{k@&9G$u{)Zo9X5=bsJR zzjD1b1zVRZGW+XQ<-~j*-Xn+oG3gr3^4gf1t@j>H(m8xga<+dQ@m!H7)NurJ1>69> zLrg(GaJ9iP!o8*!7oc7w6dAB$#meTDtJbc#ZsVp^y`H&h{qP{=0t1B276=y{AoTu# zxUPY4WdXw03WR$P5Vj*AY@|TA-~izv34|>a2yJ;FbmoB2J_ACt9f-t$KzK0$+17X# zbCYm9VT_my1!6yeD>brhI!1Jhu5)e)2Q}i}iTRIeg#H}r9Csb-CwBn21if4b z5L|+;!<80wj@tv5pzCatjuHL0uEQM(bbUlRes17&bAI5X9R0AaxTAF(9HQ&> ze1AMV%Xm9P_vm(iu7}U-`HySFXFZlTxjw$8>n7I+zVp#;I0BQq!NgUvax3EP^l~O% zz~uPg^8%e}94~M@8sV9XI!pvWSP6iz5dfiG3G~Oq`*SRu%GPeSr%zj9%i8PObk_1y z*$SsjDOX7i29U#`zxahu?}>>=v~Xx4$0 zO$SnLLBT{yOz(K&nJq2Px1?LHN)=p-wQDo-J=4RGrX@|=n+`S=OcXOlcU+QOm@1fm zXG^N3CL`Z}p`~bc@oX&pofPd~+O)H&qv`UNPqoZkd!VH*BahZ*WU5B>b>!TY-$@m= ze|F_hSH>q=Gembm@Mj03kB1)%Ju*TZJny^bg?EG=HaW`2b;Ncdd%~yM!@FMTCTB^? zz996-?2OaBdH7&hH-ocM_66U0X67?!Sv(vqn3La8l3bXwZ?KZdjPu*-lzqc>Ezx1g zjMF{4sbH8j{l5<8=}3V5BwhUdj?k{~qu)&4*YZkBtfjt%GLfS)6Zx%`iM;P*BB{De zj@q9xK2e8}DYKug!TKWup|l0 z@9Co22fAnuvYr2C&Xu)A`<_a+chRiNTLNF$Kj&-J?!KnvU$g|j@ME67GED|QDhevU*)2j}Js8~;ekAl*iKs2QvMBu7(C0q( zt3#Bi^G-q^r8qmXkY6qGR^$N{X2co$s_E zJNgTU-`eJU{_alKa`#zD=kd@Zqc}%8GP=)7+2d&3%p*5GUH0rXDSLiH=PzzA%>+`R zOyqq#Bi^+$k)v}vqjGR(iJZ1?aI&HE-?`6c5C3W#dUPIl_g$JqFV_rLy*dxgJd%8R zX>w`GelVD9=zRP3P$qI@OeXNIn-M*3Ch~rDr|nMaERkdO%}KtND%$@ha=2GNd-$Dg zcXwJcu&Zcaak4ID&wnFj$DM9F+|c=NTQ1B5($P#LWo1MU&egn5*H(RuOul(;;9>MY zBk%6C+`Btv=(S&4_Xi%c9^ZTToo(*E)yX+c(}p>_MDbwIRBHwX2SV!y{-a5i}9+7RI| z+2G+s0On+b(X&K{g-n6#^B>KE9j{9*;{33B08USd)nZL{UT-X|%-Be>G{| zdFGV}M7aa+C?Ji+RcJ-}pD--eV%d#a$y=p)zXsKD2o?D{TCatM3v_g%Yj3I`u>zYC zTYJ+)JsGmNI!RaIa1~v9Q>Cuv;nhtvVVyjD!{|xa`qX5EGe`0QQ!S$WU%_u!ze$UI z1!>-?ehkBZu#ky7O3f@7qsTm&TFz4cN%;}D3M`AMD%SWxX5TG|_88!#^fB-bgC!N0=)67!PRRC21xycp8Q!s7reOcCw3HSBbO@k5fWrW7sxMhYh{xJ% zDSsNo`~TJ=j>E@?F5>T}NMhZbOC@pq`$r{le7m=J$J@kL=YQam{u6f5&%SgHG$r}Z zkdi!{khjIh%Wz`kxRGSpLY7s@P~y@V730dvE|s@d$!L6{yuGTdY?5q^&n_vsuxvtk z*|?IDl2X|km!ZV8i-wh#j2JPYtfWNV9xoX={KB%bvT-G4svQZ>6LR0Sxcn8}wewT6 z#!ehtnk?NhA}ON@9__ETEej+9@|>y*<;M7hG88YDn-b$?exgEdNK{l_FieKyBZte| z;xdBV=@l{>mm3nOY>tnXn-VfFA#Y7wJnGVkV@qYI>f%wCEgdP_s>)?3UNW*oHpS(~ zs^nopw(+CFg_Q68TkFT#mOLgP`g{M@1grcW)wN|~k*EBqa8)DpijNAY6W_BnQ3`Qj zwc0&fs}R<3RJh2~e*aeFX;;hLzZHtcM}>PAH$W-a^u2wnXMGilz~`)bZQDjT(NC#d z(MIbxwN>EHMEseAKgd-+u$Tij>YJ-zU=au>;Y3VFiPawjMd2)!1KuGQ!O?3ra)={1 zLnSd^dy}RsPDyX9Tid#V*IAEmHaew@@W!>*-=wx-&H7EN);05t<~53C0xR?<5x8)Q z9Obw__7S@K7_oKC+ z_yyQdz5DU}dFr(q`+*M%b6or!2Dk}07MWtk0(vfw(~4h!Pl+j}KY#JgKN}oIZ)INW zZLa(=;um0R#P^FT<`Yhpfy6KH_ptul%5fIvw%j{}!OTVPr^^NS;~1)No?}Ev$OvS= z;h5HBjcFTnjA*THXWMg3*$;pmkRBtY!5Y(fg=56O7a+XKfSgA-M)VC`{|Alij~>(c zq+=@F8p!^+F_i-eh+KxS4YO_EAsT{ui0A@fOlzz{i&xkAOEg4uiLSF2afpc3HjE~5 zi0CTa&N3Mx6&{Ut_LqeQFWN&y$odK7_z2`#*XyxnDz;zO+0Q&gbO?2a=wE@F5SY=YmtgXQ zo4A9dZa4YC*~;eEq;|Bi1lq%TdG-T!l)nM+6M8iHa3gX5*^KhlWYIGE2G)s6~p2O`8B*sbwBjj+67eoP}wZ>YmZ0tkB=aJt4n zbo{~}Tl3Uh=O#}&>Zk{?F`l>Q|=vm(st{f zbf6vc=Vt6Q^s4slt?LZcJp~RZluX%MsM~eiDbIIP{)&!oc2j=5<7;VZ{aV`Ej*M1{yH+~}>IHAQ}jxjAa*zG#sJ=oCsYP6|l6+F9TX$OwY zyz1JFcu!0(P9j^h>=N?DXQn?>p0;L+syP|ab79Jwp5L)2Z8Z)~V#$#y>)JhOyU{L3 zZE5>s#a7jS9sK*ZyJTyfI_6)+F>l(Fwq^w~;oHu1(qN>@MNDld0RasqBspoQI1$o=a2vb7`x| z&4?5-f+HKaSyQd&u6r(JxBv3K{LFnRv(%KmCoX5Nb1U7+V&)YC>oaY)KbH=iWL$gQ zb7{BT?sfyurNgt#$Qaigfw`S_O>N4Z|Mj%p{`GX=B+J+f+{xC=K(}k}>2>C29;tg; zOfOGc*A^$8jCc>ZzH#Po25J1vBh#K@9!M)W* zz@4Z8l>;{mm%n#v(TXny7mqEG1W5($mk=^Rh`FfZxfjC2NzB8*Fc^oK%4q;CGY$rD zrgOMD(^8IRtSlcz8cA^-I*B6SKuuBv-XnM`>aQJi#LLK;{Lt{t4|d z-T@x_L9DyjA`0>NT)j?R1bqh!oB=1~4;J|Rz=8!d=Y#ap5tCjz>g9W4Di<{ueizgP z4{OHLop2q=78v;jH3IPYE~z!J8xzW-z7cK{2=oxdp8Nl%CIJvY=A|)#Q!J5|{!mp}$=HUyF3pU|GKD61qxtN6$ z9HrK+Izcg&W=}bi1?T3PZu(+?%v}ftcfp;4I3f^og}Al4m>2x)7AY*BjOyYY`8`mv`U zTn_kUL3J9(9ct1z_P7{uTEl)&WmugkCSvI+T>ZE^WKs-Ly0G|5!gk7cDIx_-U2N`~s?^6j!T zF7xk_E$_;rxV*egUXYNXWisr>%Sz?t?jWuwWWF1hH@k7UJRwUHGXGuK;wEHs9Ief9 z`8}#%KDKo06=O?RO?1a{KunGk0YjphkW1Fq^I(nIroBIU?NC{Tz`$+oXB#!udbj91&|6Ax;7xB{7|^FQz#L#7XG+w`*i> z;Vg1QhjhOt{-BqZ3-UMWcFxZi(s2keq6q9hAtg17I_K#N>39T_zcNIWz;ZF7X?l61 zsl|4qkc!g*_KFXQ5N*`!ZPm!!QG~J@TQK*aUp7KTGzSnS@dmX|1A|lDI`31vYQCEA+uJ`EBy!^zvmI{dvdyc^Zv&72+n*ztOJxh_0J_ zjj)QL9cDA&CXN1lV$hvHyUE|k@j}Qer{^-TYq}1@0O~t5!halfzMgQrbltDrhA&&RL#+XbyvIOxd`I3TT{qfT zy*Nw9mj@NOK{R({wA(ljszY?Ho)7CG>YNAFAvPZZ=jiz`-JyP!M%eC9$Co;L`zq4Vnb^qCYU!Ip48FS8?rL{_vzIx<3A4KXOS6byYe&wN?P<}tJ#95@Ps>?BW~_q2<9ikV z5_A-!5)3GoCumOy)OFg|PqFJdhtvj+Yzu(rnmp%RMCn}18cL2m)gDF(>bk4_BhT(k z(~~>XV*Adt)xI+=8^alq3HJoUD>4scLK%@pwiv}F1zj^@LuY7heW%mh(CN;t?L4p6 zJ+jTM?R1^Gl)c=pw5N(0OFB-cU-W1C*8SFpxzF=zO}{(S_LHNA?Myq{ccugFJJZ2g zC)-kUEYz0TYp|s?o#)kHOOdMw5li;e@x!bcUpm;(`KjotnkHr@%R202VOm`K-J<<- zii&nso2^2yv6T|nj_8>COkr9?c2!eGbWu+bb0dWvqmo0?;)VjvZUqCB5;yEji>7s& z-9jFm>f&A1o!~2jt#vD_=j~OTnUZr_=fIH!#`r}Hu*U7ryd^fosmQY$j|rzZsFb%xjCn9S=O(#P4W#@Rb% zFY`LXADa+BFYb|Tq594twY8lgz6N%t?d>>M!6!eEKGcWWy zGc%8@dRm>Emx^jLqG$h{@}lRet(2HfT|&-0viRvad}d~4L>JGG%sevh>3FgrEv{Ak zu}q0;n{TTrZrO`v8e6X^ey;jI4^H_NtkLT8+ZOPj5x<7W0^-Ze7osk`xyIeNopCO7 z!!_cgM_LZv8>JQG^sSKVvP^s#2Y4ajfo0;$kclBjFyaQ7BNzvx8#{=%QYl>KE?oOL zte`}~q-#Un)j`;;ROyETHvF!FVm;UptVo<35Jk9uhnaKnQpE%#t9#7@!HD=_7cY0B z9<6Zgap5;3=EJ)aL}Uo6XyS5I7o!Sq7;yy%M(A%Uf^jj1R^;LmJvoWQQaxEo;z~@i zs}w{&qlm^9H=)ZYi*NI!q8mXM^w*AuBux4Jwc{a%#Gw7O$8d~8Jod*i_6X38JU&+^ zs_WnbMmL@=*~keY=}xbmkRSG%Nrcv;phf^fA#G}<_-;&rYLV2oZ8s*qr7Bx@BMmr6 z9zl)ZIgk}wP$K|AK5A`D)hl{zTb5};fj+RHh3EqWkf4PCgewVJ0>HNV*hU0C30j2L zVq6J2fzNk%dp2z2?Llf)L5r|G$i69P5dg+EiA8v5U2w4pS`5HeC{htqVDJPj24Evj zWE=5*BxpId18ZxB5R*`F5VRP8Ees%Y(4_M{M`}5?3_a_WFp1D8(4LYwQ>a6eZWXQoRoa89AZBuE4 zKpdLW9;LRexw)pBzKBDNX9~3KAkBddM~0iNL@Y@ISw*-nz(w#4oy`qyfso07J10KF z@kwP0`amErK38D^g{%!s43Oo(rz84+LL*+^AX|*gG;qxT_Y0{FQ_u(8VbKR(?a>F^ zAJGShWb^?k50*aGeZZ|0eW*BFRnQ0a34Oo~6MbNx&<8T-pbuoI3m_0uhaO^|&G8+S#?EE}mGjv21bwgkX*gV?DPVCB}5$>8Rg*a0tFr zlAJiNCnmVb5vIL(K@&uFLipGzvf6m4(y81DYvu7Epc_9VETFQ3czHm)#+iZ}Lv>#9 z-NAbTpLFiE@00giFi)Nt7x*Wi?S?*3T%h;nZ8#g)V7>Qv$E3pZCKBLNV6c z-<$p9yJ1D+Tz7QLRd!TUOdH}Gy#2jXMAWYH0C~AUer$a!<7v0`{p2Vcd!PfXbrfJP_of9rPqCNQ64jAA;6 zNleEW#fW~a+o8P(dolBYh_ymJLpJIWjwyK%v@_2W z(>Y8+TAwUNir)$8Tsjd_F+nk+kL&(8on%CP{bBz9((_q1D575EF`sjj#E4!)dxTW1 zPfW*(#fW~R=fkrS_4k3`F=2-Sj|tR2Ubdg>@54tJ)`yV^2)`4c;W>~h z7j=`Xh861_&G$MwCeR^{@dYyP>rgg#2%m3HY?)t&&hUJHt;aDuAL|7=C+Y>BDyEFj zzeCDr(i2-|?D!_O%;?kkc?W+E8>BWxKhWj}`gQ7<7j}qd>vovFQ0JflM+?~CciGQGdYyabz^uw6HCU|mC4cM$#ny7d(=566ZlYF{|}Auw#R%} zT7V|^jp6m6e1rM0eE~;mgz*b?c*O$eYUG?uj`lP7Ghe54F&+A&^L3n>*CE!u1^%)5 zI;8N$xO_i_rm?R3e@8ILpq<63kkd%l+26v^_gN2*4#N%V9J}i%0}Rlg69*=6%s08D z4A0+Z4B+aO>zW6u137idw1MV~N%hU&<%@~i_xyNobbHYwc@J4#?bd_IMSDN)#vab! zfebG{ZKsQ=>yh^86NggM_9t4#4SV?QA@s>(k?Y%!MZ{glA|vlU7O8E>d@B8NH-%@En?gw-AL*jx>j;0Gy}evpbbM!O55;qHR) z?2b26)Ee!!1GPWA_gJJB+lB4Jw$-X_c~|$<^T6Br6zwjM55K*W?$z7>W~w-jeR%EH z7WPL(y9)w`Qqld`hB=wg(FK{%dsrXwfImnTwEiGfIO_+gqQ)PjiVFg~4e{{bAIyI| z`dE>OJyBQ`-8sG}wzKGoAzf0GcSIk_+ufM5r*GMd{c5hBlX2diKRotmadLLb9*6j| zBhSo#rZHuY6IIyaIT@#CcFLYUxFeXnDrHa4OJY6DO{VPW)h*M8nWg48RSdJL4j(Mg zs*`l_9UXbQ52Y&G52ecYH)QTjTRYxJzL|=aznP-OPaF%6d^2UwdNbwHJ;%b=w;v0O zyN`uy#lweE_8vFsWJ2!-GokKCCUk5@k}{#AvooP1)tOL_^U(ZE=v{k9T_)5W`21_B z;yp*t<#l#O9=f-Ss{d(D=wbV@hR(wq52fOJ-Z}T9wMF|bO%6?lcHiAaHO^z<9lx0K zf6o2;YIk2@@=&U1Pxy(CchT&Z=R8&I?z=kqi7uLBJraCE>^_tlzvt(3R@A!t#w8D= z>{&I#52UCGI-&qvv$Vz|14J zKOKD}Z&zc=zINr_dyYj$%8WQtlM(NopZxi`80qJ8zEth*8<`X{V!I|MYf|>~K$i&6 zgqcT{KmFG@3wPYB*7|KSBaY_Q`c}2OZ&FfRhBcr%$>(O==p@dC%!v0FWJD^rbagGX zAid{HX2j9DjCen{%&J;<-}L0_rpjT~W&d=r_*b+KA1Q{*gKn{SP!Rpx`}VJk#p=c; zZt(9xE(jN9SQq+QLg9d;LCmN9i%?J5)cQdMWSQzX^2;qWaE*yic9TaAkuO7=< zJC=p9KVm*=?v74W@(|gJuDyxGep%f&U6~v1~l*10W z3csM}TCjs$g-nf7k>u*95R`Zx#%3B3qH__>p2OAepo$MlReb|h`1z>nyL>ACXV^PW zqM_$;AjFb`T+ho=`$A{FdK4^H3Zo4<}mEop5%`6+X$-2+)~_8n4kb6|^2f zAs`?R)4&5N)(tR7s@b`|jN0Qus6DDMzH4(UU4xad4W5KPC~)2qvYNI4=61$ru z(cOGJmI6M>r)SgF-I!3vDI1=L7y7+C;$i^E9*Zqys(^&U`~YpFO*DEp{C<}s7JxR= z7TQ3!8Ffd@TqU9IxFM_V*lPiEq#%%quXsUM0`B9<)EdfAy!9yJ4xaP20W{*I6?vpDvA~W60WFSc_N*@g6KBj@ymih!`zIfvmwgc)Xxga* zB+5pVjDUdThPW(<%k>F)PJB2RwEXym9JP08)y&IhmX(!#Y(hoZ^3d2YONTFJ;V zxhhdzQ9hx(qO813-k6X>6J_OP6_`D;VrE(Sgozd7D<;bu5{=_4#+Q}Ja}rRToKWFg zRzAHgE*}whU2*k{8S>V+48`TG^%KXADleC}CQ4@)mzQ5$#?!Ju1^D%Btq)WM?i(jV z33*$hY-0I@a+wGD%TW_#B!TTOh|A513b{EU2gR{rTrWXAKQ3GO?}qq{(HF_v6Bmz~ zFE__4FNE-AC_W6iu{Kv#Um`z}kQc?1rSg_45Q)Wc8BSo=mL_C#Lf$R5FTc9HeC((N zvTYfJGTZ8}DART5c*?fK#2R^fT+O;|nQ2?5GioUXN;c&YpRweIm8<)fq*UzT4U1v+ zqnjsHtT+=YkyB_fL8ikN>#kTDpA)Z4OifIRPb{yPSTV7DYJALw=5@_0H#T1!zjpSb z%gdT?T-Cg0P4k)wl`E!BShZp0O{-ht8=7xfyK(LMo8lFhR8A_N{1MXnjB_qsKIihq z^A@YWD;77mZEDqXY8E%HSg>~0^2O^nZCKsByl&2%94C5`Fu~K6m~2_OK{15phd>)! z)^BLzA;38HCJRr(XqxpCt3Lz^l&~dwxx`Y>O%V6MKJ+K6^Kird{bCEvvHP?Bq%MZ< z7-+67r7(@>r7C!>LfoJ!hWGKu7VgKpnTNPBskmrwNTPe#K;Yx_9P{@B80=MOBla8s1%hvuN^?L*ZcTR11L?;Kiw{mJM0 z;S=HT=^2LJ9-#hYljpdA-NN;UuNA-kWITUh`jg0g274iN5>J{#>(8-;TJbYiPDg(d z_x2p0Xl~2B^(W0-jKDEEr;&@wuRl2hpMEi-T8-=!9V5j(#Yk~ZF`WYmx{P``jwy>N z=Re??a*E6?A?8l^&x-R75nR2296J`G0q34#T}s@O@J$!fx|AWUPZ*u%d>u9jOZ<0XYMDaV+cdaQxx^z z>2?(CXMbGcndY>@a{~S2TMu}q`jqg)KtJ%?0Q&VRVa&pOqf?38Y^cK+1@y-@!32o; zoO8_49I~S%#ekf1%pp3empiV}#0>g#T*3T>@#zDv_oJ zbr?#3P}~8+zz6)fMwo0+hl48cbh$=9w|J`9K^O@!&Yc=zB}9F@#?NbfTqDeeXh*&Z zAWSaHEE!J_%RVTd#6j zJg$!I`Bag^DkTK)UQClSE zcLwX~JLR03l)I%SWmjPwF=Iu?A7%`@3gawIxp$cD7sn!*nT6`u1&^BjkUhEW&TVsc zpE`qe*q@q|dq-|Run%hctr@!yHgvuma(B(Gd9|jnOIp)9%G1_-aj7_FA8E+kml~X` z$+)a|!}e9D?X{n=}v!8lG#7ssr3t26GqR!=@!#+~0`Co9v|wX2finDbt3#%29R zXg5M-^T}dy%sFCBH~oD%WzDj>t>`ZhvzFgl_auHB{3Nl(U*Wy6M5r4l0`$Gbx(vSt z!>vH_RtlG+$dOjpnhY&OX*qv`1}n%!49C`+I4OjlSl~mlaZ(5g$;C;*vpyFm#Q{=w z5K+}qxVZ62*M3KFEA_mdjmT&RpGI=EK=xnFZ-}b&i@b1gyA!pb zOWa98U(&FCL?m%tB1@R}x5m^MHR8PDSuLm$fCxC2f5Zfy z&60fbkN7wiv!)01zl}A3eXNh?k@E9pWNFy0^aMZ8WTO|4*ML@wAUToRsH*jAN9d@+FI z=skQ30)jxW3c3=&vL&=>3y?$YX%o0sF8E2{Mj_}LfMPZ_(*_#78`Fx7x&{E@`zWfjG!w4*!n1K z+L9X|a}XvPrA=+Qxn`@-og!XtfwDXSaFn__y*r%i2rZX*r^*zA+; z#7PdK+T6YlBF=KZ+XSJ4lWx;#A2;ko-^UFfT5zNjeB!uZ7Jgs(9`()Px6$bAk1pRM zz{w5fB=p5ZnTHMvt`9uAkO}<-QVJ#b(u7AL-uz85*CM`lu<7u$f|nKU$_QID#hhet z#h_2&u?4S3#4%JOj+jwl~jKB;nSWks3Xn5Z0E zIk9X)nOsv}(NE(%*^(%$oHufu?z}C*Jx@T-ljNG~(EDY}X0>vd+}6_fOSj5l@jhbP zPGGFo-ZZ-ce>jO+f9ce`s+VVp$oi9riBpC(zA$d(5E*WO~-tlOc%3I z=e#$?^ylZU{uMs;1K_S6Id@>()wc%7U8Ovn%E`E^H$uc(OQx9p@N-x01?uSzZtY~; z)sMrwQao_(3U39bU=siR+||+na#t@6kh^-npIA7*F6NWPIgapT+*SDi zxvK*MrElfjZ1>sIS(D1S+U=JRIWubREJLsB`>MhzNp1sDDkjvso{u zxrLC*8iG3OVTM$`Mbw#FK%5`eix8x@c>XbsFj}FV*Oc-5XHg#hjsl4T}J^Y&>z=! zx^a7colbo9p?`dJ1Cjj&XmY@@E-SbaJ)aG%h(FVHWLH7`VT}-0LEY$co{C$8%@WHW z)aZ{x>ZRA(NA5R2mj-JemV-GN=#LxX>k@jCx}CH6I7*5N2)AM&Qm+HA(}kI^u>a8Wf2|Q_S}Y&bSgbLw5$0L6&(?Uk#)TRo%Y=5gF#~VXxIrTV}@KPAJ|#v3(|<*3W(Wf1j|vV0n|f4u(wBp@jg184u{!&-MRq zKc$!R>x7rmX!tQ*sYj zJ8{fSZQI+B`PBOjnFo)lv7_&U`J9`vQf^PsU6HvjWky|)vEGmN1fw$piZ={K8aks3 z=5|I}=60T27d^5qTGts3B4eOkX-^TCt%82zo}FpYzB6s@-`Vvt?@R~Vx9wGX0NxgR;byn| z_+B%T>D}yKLucfMx=t6pFR1Ihz`GZBxRv%4>#|)38#*5dySo}|7K8b8F6pq6gVJJt z?Rnrn_s?m_+@Bs(^rh;WOo-13UKC_X%pcXU?3qDn5fR6z>r2(MG9lLKlqnG@>L`S| z=M6U=0InpPEyV}T>4x8<#KioaC-OU-@G$Gwm*Fg^z)F4D)C8eEh`=fg(8@(Jge^BODIK)e)*XiBuH< zcagOqI=L0>Zj`-Wxf+F6nx2Hdfu4jErJ7{=lJn7VY};y#AB9|-nxq)+&YX{q+t=jU zd6HtVkt5rxYH!Z9^CZP!H@`UBeqFAeCn*p1^f32*8``c#mB;5Q68B+a&Jm;X21jJx z1$j#Y=ZHn3AVBm7&u75+N8Xv%(=NtOukF_SPm2xHr7 z7{oDZuo4Jr1i+CzXn5U@6 z)~vk=vW`%s^$<;%g#(dK8?tJR!#SEtADw*KkQHoH4Z8G2G?^bh3N`>?e?}`2hX4#A zHVUs5a3h9a0#Yr&h6Cwt$N)exA0!f9vEiBqQVOJ#Dd-bytkF)ys}fv4(WlX0{3;QB zM<=vI-;nD--;fu;j|`syc%{b;4r9Re4epW%_A>=z7|lrpzhMmAY%vC8M=%C78gWB{ ztPIA03^~TY?Ga;uFvA%5Y`_>G*)Rs~$EFxfN{oSHgfZ~>g)xi{B#sqGI1pzT1IG$u z;8=l3gKr7Oz%esK9>##ozbPQq@I*mcX#5WF34yZ@i5S-U)XDP-Eu!@m5nPaE2~>5H^=ACzd~O9Wk^S^ zPsoqe%c1eh%Sy^7&Mzq&Usg75q1>F9-%xyoy!u;msApB(F!l<$;ag+M%En!$mQ}sI zjzvF~kQK{j$@x`sa(q?k)`>|-O|Fu|5(A;oJVee^TED4Z7OhtxSe8%v6IPQPuu!Cl z+S<5wb93A6t<9$rh&*Lb7cQw2W5GV`JQ;2fXPqbevu0$rnEU#f@MPYbxZ%nCnvu{u zZ1CLt&A5Ke$Yq0-M+P4HUY^Xa8TlhysS224`txf>e#Rk=VK>Dr=huvE8j|CoV4J~y z0R5VgQ-giSc=s2-rEnC^_y1UG}1aV!UccGM5+I_D~i5kdGJ^EoG2 zjOZL)hkOs}tZf$4Ipada)(O;E8!)7`%0lWhAIO|Th=@gkLYi|x{F?5M<8op;9_I{l z#r5d^IKC^UzLCLUan3Hog&{5tcB_ca*%c$Y1oe>mSU{cQaL$6(BphaO+*v~uIl*)t z_9)c-x#bLZWo+ZHcVRhrb^~E;0y2jRu142QE;)RDV?N>#fcOXl;)4%}dn53h8u0;$ zy17pLx#awul|LSga|=3JQxw{XIR2iTaV!(%5OF>jhg2>>hgAHZqpuG~#{q%^(d%!} z=#Sqz+Z>0Vb39Yd!)SPjYHi8uCQVGN zFU#hJ>xaXtykz2lwI#>nW!A%Cokv4y!mqm;wkPk|^O$Qr985-&@*(QFx1Cy!AN}3& zJ6iss<-c1>k_S>mMM=!Tv`yvNX_v0Npeh6Yf?N!52MGHCh>@Bf2xTdD@hjcvISG#ZYr4k?QRjdw8OLh z{?}9Pldq?u+tEjp-inr{Mm_aZ(_EfI*_+5G^S&k-j7iC@k_2qhPs5Do3bOn zd}huwSEcNHHJ+G(d4oD`)63Q-Yg2aQd0i7T+^J#)j-bf{E2h_8VC1hYH{rW055>pv6=QG|;( zA#n|Iu7XW*SxWF)EDyOdcOF`oqje*ytn>E~Xo6u@2#l^+fhz8cD&N;?tc%wrmGg_M zFsFt&W{s;$Rke~-6@D1~Q6HrgiOh(|JR&)ia>RqJ=etCXp6`H=2;@_QnTcRR%#5n# zFN&Tc28mgL&s9f>To2a~APV)?-wXE+$>PG^I=%JxO7WG-nvZlRUU0Gn(ei>C0eJ8T zx(e@!h?EdHxiu7(ihdyg{djEpC>{<2@$G_^<+@ph-r#v9>9#FdvLV;!V$&xy{&>Fr zdR0R%0&vhg?O0-Z4bYB8#9N_ji0ewaMeN3e8s~PA9S5JnED1oZjH=V@I54~8jY803 z0P9ZDd-CG#U^k;fNi< zqh+9KZHGw6XuWKU%V?DhRb4WA^e`4oOH`MRy{vR>gKVyn!>h{V%7hG6)m7@&xC}2V zZYXXVRw`GEWsM>7cjh(opbZqI< z^7ce&Qil2p5jg_|Fjgm9wQl|D8y2tK+#AYH)&$dE>3lG=3E*d zgMpWsL2#+_-+j#*5E}>f3A(WGkCju3Ae1pBT=Z z^&8rnZ<}!WBnpIsmxruDcA*#|&Xq;tJaN7lZb3ieWLjkSg;(d5-W|Hf{bcaoz(in-Z`x^Tk!@&RmuPFgtu4{}Q1SdV&8s$Dzhdo8*R3Z#y>iv64b8WBTi2~$ z?X9ldu=1wsn>TuAoj7OR+MAk9j~m-IP-6A^8*gmBsf`k|7hRrM+19pU?W#>}y?eQC z!^#_*&He4vMctT{9R~%vVBTWP!X~u|(Okj%`xR!R^jIh$lD++nDNxT{^oMOR{ehtMtj;F>P?=@Q&MZj`}9SxR`Iog>I2q2PFZWeAAhy4fFvOY{h=K>KfKFraQn7tL&wLP2kGD4zHQpDDg?Z}w!^_gibjz0H6FU!>V*2wJ@BFio2MPO? zE9R)EBD239uxPk;%H_^w19{_8;4P=IXvI}Ob> z++$(O1@{Alg9>oAMz+<(hz$w|L<&io1P@w@Docf5lMPHbZgG8nG{4A`|vfIv!9*^q>=#5B!9mZo5`KucqikS3v! z%K2v@A^c0o1~P4}3eqQ=*8k7<+DKOkVs3 z(uU_GtrT(ek(@vBlSW!zC*ku+cjfaDomxU)AL_-9IH9!eHEm*XC6uNxO)DXVB`>n-DR>JUyn1>x*4tG0}^#zjq2Pq#mfzn?Xf&LywGKV3j z7>Q9KdF~4&UinDNmxPrVd8@;=x=y~JDHn{R7rJb*3L{pR*^f_d@|G`&=m_MA27rv} zCQ&F*{xc(Oj5AC^DgRF+txg+bF3Oo~kb-#xO7%DS6ZOa7GoSs@I3T0C!KnYm@pRig z*^gJ(oilNYHVBt=Jl)&mNfUdmdxJ+Wta}@z`lEX*Z+WP+<|>z~P0v^WnWs9?tf2qX!i3>&K}*zg0^2@PY=)J z2DSXU>6zS+mgiqCp=At4knasj?wNM**IO2}y?FgIxlGG5xlt|qq_?;k@ARy5?|-kl z^`)~_^8Sj6Ut3i%`SEtA^vefeHK}>v`P{^osZR2sir>`uOs;0vGr5T^&*#QHaM~fS zbW>~T-sf}m4_uV<=Pqb#yYaMxzM6aRH`lgvuCs1xi~C##W^;Z@jk%!pAo{ksX5Y=vyzD#Auz!OZeoLG3=Qlj_vU`4TuYaF=|04%~ zvvWjt(Ec%5m}#;(e{6N@GcWsJdMtZ!&Y%1I%f1r~o_6pzo4&>VGafql+nqPHd8tAB z-=F>4!f;ES7|qD`YZ>RXzVHU2LO{)^^e(Zy7K?-i0 z19_eoi4P|~x$l5IIj<@W7KOuRkX)zav)tECTtZvAfq1{UG04+AOb5LM;{V|XsIWb7 z9B(13Mc0pEfFTQR?>ga5iwD?jyYUz^SV6@ne0F{et&Ho$g*`0pW3}k|KAILc?&F#i z@a}V)971UZ!c}&)9D0ei?M9*J?sFV0tUdU(EuLXTy zN@7dRA`9ZGIYH*LuXB-(bEPxOG#`j$+~&BZ12MVMG-tzwki+=^*1~1@kd-lkmE(nG z^-=D9UKz8VQnC*(KFsl*mDo#0_Cduds8#Vk7@LS;$||7I$UekIky*NUA3#bbXJ_^H zuKS>b6LcuQPX*`0v2#hBjgc`h9hF-l-~LU|nTp0VIIDDazf6koQ>aTJBoXCmqN`5z z6X;Zv#X8kvaGE5QN)L4=^jqvKD_NepScWJI)P#OYm50iCCx^0jbt&&{qluMwh1!up zaz}PyLeVA@s7tUD!fA316ff<>I879s=_ zQoB)8<`ZK$YB2)H&`}o_hPsfU1lUyt5)+c%X$ivg34AJvH3~-4j#`M&Eteta*HJ4F zPs@C=edk^_^l7a?u+S`l@S^Uty=*hKBWhJi-Dy(o(@o-Z8Hsfy&nu7v-`O_VdUQM8 z)$^FWPw7~`tetJ*3G1$$M{I+6%$P!eKX`=rh6VhviKp#Y^>!cDPkgWPWMU_R{S<2^ zn|K1dE9VjHYYeoBu7sK#9F;qRH97vG7=rIH#^BJopqF^cDUQv}6Wd)s@Y&H1uas~< zV3ytWLkj;cQ^e;;ELWT(WohL&4s$X;ZnqY#C`k3c*&EiZzvi;FYR$V>Y}&H%iY=?J z&Ro83{o1XWv$sv1JbJ|y8?MPTi#~Amma8+C&SAyGswu+xuzBK&OV@2!QB_sFe%+l<2P*Fuy#C}y=q~HFeB;litE>z(dENyrcUE3^7e4^4u{dV>0=BBD9 zzN5D`U$$;Tb5)amP2wo4l=sidsfWK~OU5g!_g(K-ZnN)rf4gJ(aNqU5U6S$c*)O}&c<-Y6vOzOTMb^lbtKHt7RBkgP-U))jUyWUUTD(`n5 z`(}K{`=adocnSSJDeWJZ_T;}Lbw81QzqDh{*pb7ky-PFRund3uWxT8Fz0u!a;k(}7 zl{9yvrce!jc-1lVnukEO67}Fq48ToRlZuyH^Q&#WYvt94PS?XOL zlimNWGql6)(l+%%iYlxBsfu8k@f2~t(1K>a&K$6Kws$)JkS+C_;a)=XI*L&^H(=E<%Is zF4*rM%dY(9w2nk+lN}2gx?E~VFYU_b^;3dx*<|~Rrf~VG(7_jLwe8cUlP8`Sh2*JN zAtS#-R41>E#BB29%b}3Gh+&eaDpY?J#*Db)h147F5cH*76XuM(&b=@#7mpHSKcGp*EQ zlRsWuCDEJ0fnwT=EoIt#LMD`wNa)x!Q=ih`9^`QrC11q*o>I!?y8-S3WBYC6%nUX8 zqWCf?rRJOV5)Ub5;vZq7Y}(&s>TfamdrbaQCQqWhe7E;P-;NfEcDV8*`KCl#+i@FL zMR1G2;1fz#c40 z$=ZTj+(gXXuoX7P75!b&3s7%y6!1IpCu;kBJX`PR@6F`NIN*Os^aV&U5=94Q@;IfF zkJ@$%#}L1VsXv~rw`dQEPh{Gohaf-CNG$%yOI$Z>_e~yJYVuM1=0t6~(Ra`f(WQ|V zcar<7ynw$|*PSzY(h1->Qz!P`mil!Ke0SkKDfL&j-I;7`t87$8!TWS=n6tj*D{s)A1=iwwafue)41OPGXMq_Gq^J@Eu3K)Ce;Q3?jC_xoxF$v$^== z7v=ozU(Ld+5^i(WOwG^|n@O~w<+=D(kF~prDf_A$Dc`@(KX_)gq@%oKW?RY3dAazF z%X9wvczZlne)!g+W7n-_wUvOxtS@bkmwffWg0`oU3mX?>kL{h^x?)&Or+dlB?EJz0 zA;%9o%7tg-*AF+sO)}Rxx3tmkDECL?+_`;QgY2YE_o~Y5M+Y(fKrb6+u$c+~#?;k_eo9p4dq8*Wf0<#5nZc_}$1@GHAcyqcxd8R(BE37YE$ z5-iS*T}Xv6txGH(*AHM!^8Q+29C1eSWAZ-An`bjy7qA;Na;_hfso07C4Y{~4Bvif+ zO}QKQ35OUAWqXYSv>afn?P`*DgWX{1Y`x}c<^Do% zZ&B`ZrqpgFIf&GI>FNa+1S%y?ReD>M>Y87LYV@{JX@{=~1N;25S^YX?guTyh z`vKhGc2@}w-yb3_PN+X`%Oz~29Zj1y0KENOu2TJptU*x8{>+F(<5QK`OZ8{rb(C_D zEF!+xVOc>!w&1+~!J=X35T~ALeIUcikk>E(Lw=IT!c5VGdz2x6$p%CICtX(p0?Lq6 zJTv4RZDluzGX*W<{&cSD$5}q;nKS)IPpL{E!@`h1Wq*czojNqcGF**shMQqO9lDPm zbP^`?$A*K9vAkeI$&>?LWU(J9E5$i3-2-S;Rty@Ihq6hfDvIs$`-IUT#_6j;qkahN z_$zh%q5cz1egJtI4x~h>LE#SMcQ?yY11E8JN8=Rf&zpt(NO&tbY9WG`moTW9UL?V0 z=%~ds#n{nNixDzos7QPw9HAVw1i_%hCt8y4ixnE*ae>;ZYR}lqCXsL)^**|0A8P7O z+smflt!fDZ6v2Zeg$+Gyh$MxlSldS}MKEls+N>HzHJriU;rZb?W566otw0brIvl+S zdnjy(O4ao$dGzRM+q&!wS`<^;>H5sQWN7Xb!Y1)}OLQ)^48fEeD7x9pSeiR^876#y z8;)AWV~^)rh-kitUOC>R8TlGDVy``ZC|EQ#38nTovx7VGttg3p*(pvZXEvKIm>3+j z0`U>iRtOgfwYDqHfe#NyEk~d`a@BR)kpvrZl|cNGXu4Rg5U1R5=3X+qXdHD(xI5-C zM=e7DqMIv3Z+vk$Y8i$w0NsvS#v~&_#l-qZQV+dybV)NZ*TNocsk+Xvx=?D5yHs6g zC|$zW%^p(dx-lAE#pznE3^{!Y%Mn_eb{#}CTsN{Tz!T~^SZF9Biw-KGu3K-4?ByVS zl!T!ZrJ*E>cnA}Dc9o*mI1q-a$kIA=edvH z-Yr4Z$n%C3^)jc>%lY1w8Sjia7tpfP2loBT8<&r%4QK1ejPhOYH6IZ7FK+~eea#1v z{mUEc$8;acD~vTxm{de_bFyITTZiAqXm~fRUUSvj%L-0Y$8fajHII#krzcGA3Zxz% z+tsW(HZqvNtQ?ZKas3&9u2CPUuulo|PdAwB8|1sO8vM6E;munKZ-tc6Ci@u|#ajvT z=vW6WSpn)4#ak-}7I4LI9Iq(e`aizb8QWwJA&R%2Rie~tdr+Zqqj>9G;C8-_lZ6hM zU64_{^|oa1@Yc@^E#QEB0@?neciMPJ&!2f`qiOIV$vTEZ@s%z^Q7Bk`-|eO zKhEg$J09Np;WDLQn6-&b{zviFIThXeJVo)=f2`=<=P8P}9;ztz_p?7?6mR`yrf{8) zg}09C(>uKN@&3Jw;{~3MKcP*bOH`D?l_GvQlJ!5*`klO= ze4vzA!Y7m>JO=e*QJ>I?6!IT3<-%W+(Dt2_ORSlMQliC88~&Pvi7k`Xsz&lW>x}a~ zWJ)PWqA5rHOrGfCqbF-~33+cLOd# z-r~99&lcjhLGw=jG9%FulE2PKn9s@ME02^&7=co|P2Td`L}MwzzfL>hX#(dqdCPZW z`E3rE@?RNg?F~?|v!BQB4}NW=+}GfhCV#e()kX>*Q=mlaj=aE>FEjFDBUc+K_j#a1 zC65$7CeG8;f5b>M^^^+_6S1O99$i2AM~wW2k>51(+eZGt$Y+d1&(D4@7>T-{e20-y zUYx;(pJu3$-~qHh*GOOi@)sCs`EXX5{1rxCW#kP;{)Lf$W#n!n!4l~2%SHkzkl$}4 zcmnxf82Pf1|868O1NA(x$e58SBl{XTz{sIS4mT2Dg8e2M2|hu7rjaLWhY=Z1&R!=-V$FoxanPU8?zvr7}r*NV%=}y*8 z0Ub8yC!ROhjhOr!wNtS3ARr0-K@x!cW5t|9cg%RbjWO41+QXX7ezIN&H0K1eCp(F- zS_$H$dwGzxjXLM+1M78crEJC zg*d^=RUG5=hyp_W^}}6&*+GaO&p9TlO3_dg0{q*UpFRS-I+}3+*Nbh-Zf{z;SY5_ z*2ox%j#$F$hOE)gZdrvO2)Rj_kMhE zzfNav>x|ODen-rAbI#nFLHnk|fi$GG;o*LrPAWc#tLx^R)V}F`TZh1WbV)^a{$Tj5 zRL;5N&Q53Hnj!OK|D~Iz57{^Ul>XtG89D zuK8l9MsH)YL9_;AvjH;*$timb6_U8>0y>rB!Irn#z&ujhY~YStwvjrq*}#vkf5J68?L;`{pjR-Y=uP;+x25fbQUk0B#XxI9AxXa7jIjhd zIgBMlHz)JK4jbl25?H12SCyrh+Pxeu8{8w=){S%mo^;e=sx{)e7=Zz^CoE5)L|2Yl zg3yB&d}sk%F~)M#Ld1)5e7jfBE8ua7+PxGPSlb!vMRXR9x)4EcL&P2;ezalKX`9uo zQN#JuaK`Y>Dt`2|f_(&I>%dS;5UkrgwR^espNZD9E|hvUFo1FjkrL@DbPTjO_AxLR zmJ!Ep^$M{Saa}#;`MlfFfu@h$%3dyxjW7ivJC1Hnh>veBN>XiAvqsH2^Ex$Ruf0fV zF4A3&Ew&x=+x(EnQXw8!yKbvwzCn2Na2MCh@II*2xx1>bH?oVm{?+B5%S zk!%ea?CD1PVHM5_94lco06#T|y6qnXy2PN+c>NNE2ETGUu8pV33lEE0UR!**gFF)n zC3;*~z4N8Q9gSrGQFSau7U#n%9rT^3Eu0qye%Q4UJ;)~8hdn>r2O8+``PjZtxrWcf z_Q~`cK7O0{(V0^Dq4_GZK@zw=yoiai#ZAlgz@h=q2yV~t`CIBM!+<9#+Gn^gBKe2= z!U{gz2Ttxb5fvIUOAvn|KojMeJMO2B_FDPBj$UP3I<0UD-&cPxQ`c{qSKj^}*M=vn z*WkUkwaQCpysejeeKOw0jF-;TdRNwar-6JwmC?}j<^$BrC3vD$aMyKV&L zf5pf5_$xP7jk#6Y)sL^fVDuTI>%1H0oHuqt?RZ*#<;JS1_$fc*R~2gKhidf*`MRo! z-VIeFL-kp#3PydZ!CRj3&d%JiVpHwwAn?C;F%(GB)Kql_1S)z<5;ZeD$zP}RAc5vY^{?2!<-G|gC(6Q=lvUR-m>^5l}F*Cavmvv)!+&d(SQ&;?*Sfb(n zz8>!$f5)AnsK1aOZWw>pi}gbKXmGlHxHIhUTv6UV{?00g{%mS2 z@7~{;RZRFiejKuMI2QiCy>pyF8s;D2W#CHv} z4Lb5Uv!9JeilUHm6obg9zpL1J1WMtKheYp-w75~!&pGP9y3({4KYDO~lNau_5Y8=M zd4bB~+CMSvj)!N9eMX?!-;u(l7AW-|eqa1(ja*?Q8b``E8u@m^LnXdKpnU<5CyS4= zUZ5Y=7s!*vORc|t^uFu~KSlG*xJ1uGM(@|CJ;(9MGMW7I zPVX!U3Qq45sKt*7cb^k~hMwZSSTDqV@V7viiHkYOuHhi(%BO~9ZF1s7N^$1pImyIe zdVVn{*#*U%WDD|~WJJ|>78P@nU0BRXCfNcfnPdx`WRiV{lPrYFka*r5wHQG>l|Ktk zvVs>ckYEp-WQ9gFz)jfE0eHjoWQ9iEIeyw3+oo_{f{34pW8j}Qc59bVvSH2liSU#C zt8%>b9B*sJOGo(03{BaY-VIe=Vve_>-aD(l+FKssDJx&@U6+C3?1qe2x_sy;AOMKW z@_c26w(LwAByUTb}VY)O*kT(b>xcqbTAAJFfmdL}=D^Z%toj6!33H z7Be{|6ZSO(tGxXP%#MW*Fa?}?{xYL>;!?d66IGJcVZPb?Wnb-qzfAa3?YximKo9(7 z==Q?8VeBulgGJ|vegNGNK6Qj22=`Y4FIlL6TX#jI9sFf`ZDptqJE-uuclFVJEsRUK z9ao#L6w*08@R#B97w)ey#H$tNFC*q&=x~(8{4aE$ufs~_&nB!t_yl@`@2Q?%eE(!g7McTI~FpGB{cMszid}|v9F=+FPg&TrvghjcI?!= zMV2H_o}5BD75rtzu~WI?h147VGIY8&ao>Z-aE*8`M6rc#3Cvbsc3Jf8NT2Y8fgd2T zokbFN1}WxQ@9>vtJ>xt4WpZDjM$er}Wyd<53o+A-$dDGyCX6rMq{>lY3Gv>D{YaOZVQ9Ey->)OlBW{X^{H)z(LuD z>8lS;a~8DyYTJk`Tw1raCH)0$FK+!>Q+&UlT|9lw!5QAO1Kk#{W%0Wfw7szT z`Ip`EZ*EI^@%{a>uQusEo*L-y3HIn-o`2atKXK>HZApi|2JMfVo_;y7XSs_m;DU3GX>#pH@9aF~57`*#P@_oePB{ba`JKPWXQc~9zNrFZr{ zyX z&FE(3Qu~hBbpRT$SU~L*POejeowDo1B`l;HU=QlLF#;kL^N0agdBifx^N8Wt)-8`1 zD!qbQPT~nidBncNL+|@yIuiFWmDjN-4UgDZj-vNGVgd<&I>ICNw|O41&lK^9f!7rx z`8&xkq5_=GibiG{ zsdXD_ZDwg|-G(}wS(aM2VPZZbbYS*f?5x0JJ3_lfB}yOnb43(lgo+cpp7)n`rS`(y zc3andurMaZwDW-(UH4((ERMzbafA+xZn$-vm67AZct#xW^6lTkbYM`3rDpddvSVp+ zWXCsw4h;C$Q#(NI3W;gYQ40~`E~<7f#eEVZZbw~+kSNR{rvj2zdM-kky_O?&7`}@N z9b7~Q5}rBY-#}|eEk+0`t#)(MNV13Gs6|xMnWI)9xD7n$ysVkIqgF5gmfj_5_det9&0sLo;F!q^k_M4VW7pPoH}gDx%YVW9nMVX*qN zkZJv}q{?gAzT7+HL5lTtA<6oMTV?W(TwgWPcfF^iQN4G_!$SNU*Js8{Va96_Dy`4& zm^0RQy{DzXwt7^$(wttO7q+XPyBX8%qt|m7-`BnRj`sy&#?l;LpOdz~a0%r0`5jdw z#tt7o97?Xf`p7xT`*&o#4H>VtrD5*IGtRHA-gw67QSZ6GdWVKD~E>`t!YTVlVmbDfyoNd*bUIld1Tv;nuE?Tl|IwtpZwJV#|)^#_mZN7ffTCLa3 zTjXE5e&d>}maMyBt?HICOJ6G@wRMf%7FG~%U3bNXwU=cioZF@)Th=HwbHLy zY^hM$UA}QkX4>NUne(r{bnRuAt-UO>aLdLuYqxIQxMl0;j8N7Ix!r`?nkkvHx2#>i zcJNA za#$z?Gd6B%Ub}7l{5n;VjLlEDef>(OzcbJqD@_;K zjx)=2V>>>r4D9s{*^U=}$#?X^I@uRtZ}r06ab<-WA=Bkf?aw9qLUyY04q+Ovysj}^Nu*-NghXDbUa#aK33J!CX? z+n5rq-?qsfYBYA+OO@LGCTcq#<;uD;rn$y!vi(J4w>>+cd)x6SSJvW$5_>?K=#T%= z*lkX#d)x77?6xhb?)AOV*liD{y0;yV#%_Bd#7TB6+wm8O(_~K~bRTdoq1#eztLUBW z_=A1kiQV=_Y{ywebIqAE^7`Gvv|PlMRVY6B*liLsE3IU{L5i;L&yXu?EvxagQbaGn zCL1nYbeaz#Q%e27nz+t-CS=`=^TT* z>Uc4uBz6g0NoL#=wTb5Il>PBkM@DU+qg-UiixG7^n`coi1)7u`c|4ovKedf>)Ta3u zy7CFh?~0+d2K(>GT9o5+lICG$R+^J_DYniSat;J#$-6zCV9GeJ;(# zZ?wn7IiJTlCpf~>58vLobNb}Up3e8$=^URvHho;~dmcHkpzUezi9tUY)c26*y{EM% z=Z^iru*!YQrdPhE7H~zrxNlOcbMEk*JGQFz;}286bb8-?eP2@xKC>^rf94;KHcRbX z|G=;pbi32&W$xPPqxR9q7j>&G^gy|DZlUIP2WI}^=oY=#Z(x%0HqE5upMS6ROMF1N z8GMKN(;;vp&VJvwt9_GPr{t5&TTUDWm`5DaJfD;V8Fgd$-gua~=J}+slJyAD=vh7~ zY()yDwXiP~boi&!zaN9}$aUfp*(~nMB<%Z`_quVPu%&^32!>Azja_l9BQZAgykb5n z-?MyDfoy3$skq+WqTGZjwOg7`N=V_#Jg|+FylnKgD%CaRp&Gr7e-E> ziJ-mG@rO`HmI-rLmUS_#I%Ssv4$Nd2Vvv-BWjnLUehdXTXuurN_%H6W4)y;+&IKFh zJ^}zp7GAx+a4zxEB{{25zzgrvS&rddf@Go+&ktdkl4wQ586_hX1dXsFS6*+QX# z3&8-Wp5S#*m3RycfL#ho%>hK=z?Pp88TL%D0#_+#&EPzt)%h?>O@-JAW+@qt@Rl;% z&8|`dGrm%HQ9`%(5(9~DRpl-MZF2};v20V4x({Deh*;!>BN@HL!WR`I0#HAN@Pa;} zY>85R!$eLHJatO})m<2)2nEz&%^)R777uENNbXBl?Xb6sB-GK4TF5O=q>)e7zu1eOm`+1%G9=y6Vg$ADKrPPe?n%rsf!YEO6q`6NIckNCoI*|A zX?tP-t*Af3oN%YB~$21L8aogzWvp=&H z=Ys^$b<}bj5-5C{meeM43br_O1fh=XS#^i=*vXY-&l;;B-U$2*SO)QBXpfQW$8}&; z%1_Q$0xMEH^1}EDmWHfEiANO1N?3jJTe7Oei;k}W=2BRP&_3`Rv!cYW1NK`Oj>0jF zc(K~wpBO=~4~63=F$dc8=XO5)e!TebF5m`>UiavA1oQ>)BWg6yi%qtV=M)2SlHB`)o&_VXiB&xQH31mv}lw=bGr85}hOHBmC@#Q+Qtcy1Xmi z=8Rfa)pr7nTHjNSSK)Y@s=SISZ+(?FDC0F%d4q|$_4h$lP4(&H>c-8k9zVf%yr0}K z$9KIi1i+j>xPcbm(2QC?yP?Y4ba?}mTYn!^%^!cutR~&O#@jTfHd6ev8|IAjt`&Z+ z`~c%41H9LFbf;-fBWO%s89P! z_%v*?{YhM4TgX>MiBjL{X51)_>Yt|6Lwv3u2S@$q9%685mefM}>X6>ysK1LV^{l;U z@`a&O6i0n>h*BB2WrV-CfXha4)NdL-8=LI4h~lWfIiq(t>b7#FzG6Eu$454bqn_EP zcR1=N`t%M*eY#JgQGI1cfnC3 z99V_7>dE7%f(N~YVsO1#99YWl@bPjO_`WV38l7~ z{dSmsgbOI4)W=L-Vs#k@I`A;&2V@jK%rM_$O(bzx2%N%IlM`V#5 zK%f=+$f4Xf;KfGT7(M9mDW7em<*0hU$y<)9btb>b$Yvwa^|SwNMxyB_zt>2#{N(o; zd8%>n=>2`NxVW%s5Sz%{M<O#Ln+qx0Y$ zro6>SpiuS`uF62E`%L};Bcq&td@It9Z!)CB;tZ5})Z~TJGEnLXlYi1kiOoqYK$CAZ z^2bIB=VhR}Z~*?s)W2lpD@GnN@>L^+6Ejfib(6<`kGyYW+{jWRD~zl(a*&ZjjLaB0 z%E+^g9A_jDGyT^a* z{?f=7jQov}FB$oYk%x?Y)ySNYQBFnQa3RKxEHx4yZGNvxBQXOYKg!6njT~oWlxuOS zDX%xO!N^7Aw?d zY9>#foXJd?P^$}iVK=t0TvQG{*o}R4S4sB5oPTaQ3v1mE+LiBj#9|BDgu!mqg2Nxm zC0^Z`c-Md{rej65VtTwI7WX@1UaTV)o89JJw({_8x%1q{wzwaAb?3~|_M>(6GtSTX zbBAR8$-;~`NsZgly5x}y;j^1;#)!o_V(|rSaai)sDvYsn`Xw?7eKXE^F1>plF>kgo z*u_1@IG6tG{Yg&!qE>o6b$xOjPFZi~`jh=hZvEdKSkQJy>8i%njeQS!?v&PwoOAA9 z4f^4X_w8FT{VRia)nZZh>wQ(NPR=>^3)9bPz4c*Qyl?s?`*zj+XkUE)&Jj+|8T*Cl z{(-?S=r;YO5BA?x`)gW^q`V^Mj9of?@jlAh4(PHkOn=$fknJ4#!{5t0L~EZM%my56 znSjCxfErFNc2Rk*yuZbA#EHL$GB*%@JU1rXqrjDUt~^=!0McpuG0%^Iv=+GXSlJi2 z^2*uOj{$UgP8>5bFYf<@9kl(J7xzDb{aBK9km1UcxYA7yOZXC>56l?2ocoOkSKgy} zuDr)WTzQY@x$^$Wlq$Q`oZq^}ZfUMOA@KgTX0^MHg}>f5TzOLaolvdbHe7j9`(&tA zZ>v&W^W9L5-o_q{Rk3kLC%7xgDI*NDc1PzDmVKB)aYyG{zYJ18r!jAj1{bwv%gfuN z&D0*~<U_m5Qd9aQT!2cf=yQ%~N z7ivACSPQitVP++DZ(|lVEPLxx<>tW3M84@pIA%uc|!9D7=?X| zEg72_r8;Ucf`Lo0N~=39Kd#N&V#;=B95^7Sef;B3`=^n!*OH5}C#jJ4&p{@Ub!I2@;Lmk08jL>*tBNI#(83Q$a z*su+QH9H1|EEp0&QxG_9wSW5$9+Iw_L#Y?>BAmt z*tm!k{(Z!J{OwLKXYrQa6U;r?oh^&+dLIfhH;tV)k zLBC!qM+~hVUwy_{3|;P`vK}hAgML*vl>`*%zQ(&=ELN)KG2X+|1bc@vRPqrIJGt_@9@UiWasmfu~`XE-qyAt z${TmKt3-cjlN~q88`o6XJKngQuM~9IHrY+RXe^|`B}(037w!7pCW!?=IA-W=1GHaC z)Mh2h8+T_9HY-uyxMv3yY$?LN|11#fv63E%E78l_Wb3ee4jjT@VU zw31l9NMg?-2P0GZH*rg~RX*kK@WyEy6U!SX{67h$`MlCv8$woaQ5!0>DwH3OcMjzQ?cS=k zB7f`{41a7}5z*yg3uNxsg+>wshjO3|qw=<+ts|1 zc9jj<)%mAqy+cm?=~ds#sV6R2^;fG@dxh_`S9q#=e(R&{s(fJUk8^6*k8}PLpKJPU zQ@mZx3h(`$oZ9uBod3k9Rz1I}Vq!&|b6zd&TWtG8yPCyFrR{1qqtVXn)8e;Rl>9X3 zw~Si%(_DPlPjjVDaBPWoHQSCdWVP2`5qu|C+47y-pk3d|4S6C{=bl&6Ug1A|U_o2* zw1tg}1b@r4dQHx|y>`{uFFP&g&vg$u?jsMs`{9K-zuGz1ZCBH$<@~Yf*2bn}mNBO1 z{JA$b#cSA}x2n%j_uO_6wb-VaYX7<1AM)1o9qg7I*vWd}HpBkibxLH)cjA08xNg9L z+jV2YH|ht3T9vrOJ#d@BoK^_HV7Sf19?^*d3b}C~-!(VxW3(86@I|=IFxGUieAM=k zBq#n|{?3KH3NFXU84kU|N zS5l%JOBTQ=DRGV^%Zunuhz@*SsYXrCD(&O+bs9=OF}+l&c%Uqng1>&E7fPr~EaQHv3b(-kHG zyD={JZ0fGxN7w9QU=lW&NgTBp!D7QxTb#XYfS!u~JsbKMwiY7ta;u_Xchm|5KYyTJ zD;<6MUN-sV0S5lyk1pu-2^Xbzxe$RmJy5Tej6QuYn*hEswaG8q1;j+}vJAmXI8d(z zqfg(K)uG`Y~leLQ=3YQ+I5FAa3#YjoQL!8ghJ&0X(Qrx3D6tX zZk`CY*)z)V%Bs$*9zNVFtsh%m?QN{``qmGv9zLqtyRzz%>gwTMB2!&mJ+``f_{ibj zm6-{;sAhc4_~ApV>%5Is<406`i7MKh<=s$KU0v&4neqB(ysN4RR(tN8hU}9pr&%`UV$4dHlU%x1AvUO2^$w&JXbfRJ1b2RR3+QeYA z$@UlZm;8RHKb{w^GuI{RFF7<&>T26b=-8wFlF#<(UiTc0JNuCmtv9fVuK6GJm#pZ4 zXDk|b_NI9Ey60%z*{{YmKyQ=1ucH2vFNChkv2@Qb;g@PV3tbn^B?L{VUFqKGo*ycE z$6xY|=$?s|!!>7KkLsSoyke0z^9k#oiI0u0w9d$A+*$DpN-MR%)Qe6ht+YQ}TB#;e zzR}1XMuHtt|CdIB>5vzHIQ$V!{$V2@MFyHq11bJF2_+Z`?ZrO_U9f5YZ%A~(CXWFJ zd9fQ#EA>AnFaB={rQXGo7XL&e&oPq3c=9pxNAM%$>yUB4;E+-OC_Wb{|EQ7He~@oS z%AVQ*gu2PK zQzq4&)03`f@}!zx+l{wqT}D(_RDSD2Zp+82b@NL}WyWR+wSOmyE`g|_F%e(v8oN5S~HXc&5Zaxy6 z|LgMq7&xQt{J=Tq*0#9%`oZ7sbnc7qKRcUQwcwCSlx3Ymj^~e3qt9#o+lSq~-aR{- z7B$63-Ezcno+$s9femfbVvijB{mu`y#a-wA`2Kfio%de3YILi6w|9T+;;|PGANt`V z-pC)7Pj8!1`fmfjaqyL$A8w0#&ffU`HQ93)O<#W1^7ur~{72>gHjp;91@+J8{3qP^ z{zLX3v-5IJ&Cd>$81Aya01uEE&37Ry$Z zELLTvidC6mBD17Y=|ZhiWhrM_3DHT*!{JJmst5%gm6d`~d&=8L?Z_a-GhFS!$~2$& zqH)whgajf`yBG2SbSpQ#+Px6x))%U`;5wk3>!+C4ASEuP=`q?eyd5c<4!=M9|ss?wt_L_iVd zsO1RL=?Xftv7;_R@MH$irH$mnO%g3IKX%kI zM4<%-BZQ zE$d8h>!{%|-~cDZcOW#9Oo1%ySqHHOvI&(ix?5|QjJEm^XYJ@13^wu1ebZb|>?4>& zxuEzP<7ozo3HEF`lKrV&%&v2oYXS~fBue`ot!pJcbMhrcB z+@x`1>Lz&0GT!jzb(4k-AK@*|c$M|u`g(6%RrPSmW!_&qwszv!x-oTQ$Jf<*+cI^v z!-t{-rfG&4dX;m$Wc}#Lbz>)c+p6lu%&M#Nw$<0w4nG}zaqZYzZ%vgqtg3DtUCcIJ z44c6IW2+!JGaY5e!-odaY3_uiG$v!l|;TKDCC_a+{bh0;{k-G3|S|4@h;m-)L08 zbsMH}0jEvuNf)n~*t$@#buq(Uzi!h?X}ggRnl~OT@a>@X?h+%Aw}DN}W!-YF@g9Cd zu>$k=MAeqH>#HtXd+9Y-tX#L@@{P)DufFusEo-k0*RJ2VCY)WpW%Y(D)@}_KbuC%H zZo^vJVvcG=UMs?rBy0QC^o{n{|`-T}c+~4B^ zyVrdaLn_?gD>1zmu*udDb1K~5(*u>n0ps|>x^FyO?LMSm#+7_O*ktQ=NBWyLxO?5V zd_^2DOqDxZW$OWyvxw8t%ix~2FszRC|sPY43?5)Ue&6kP7)p|&9}HhyWP-fzk!u3K7ZH`|0#*PHSW znf4OJAgz=rcoIqxgn;~~jr=WE1TDP0>BS;=%zE9Hn z+lKo7CNDO#X%p8ir8K`=T4|f^w9+=SDW#T~_F~hWR>g6R-T>d5;3dS{GQWq|><3Dr zxIywxL(Vi(bY1AdP5wmr-YgCv_(>?9pv40|Yx>15je6!%XAFst8S+nU8x4y(#}UPmcvn-7lQk0B8f3S)+)41! zS)56(Z+YSR7QUJ$OzI6jGi74$@tGfY6W3?_%ZJKu%HI6Y-EsHMzj~=ec`b8VoqLnn zcx|FR?!@c-?4n$J`{G=D{i2+|VsXwdEkFF>T>0T!kCY$2<@NHzyAH$ZHoj6-rjEpO z$s?t&mmG=xK^+MWEoggb>Vmdc>S1{+?I~ zx%m1SIlnYMAzmA=bLyWw;N7F{b?!T$mJhmg(Cv+?#o6QDS9!?u&S_Pje5_M7Jlv_2 zbFMn#zxrZ7=f1&M8Y{P>+;vBe*mce$>g>_2>fXmX-G)axUFDCo?VNMmj&ikX*ML@a z_dkE&oKA1yJwr;41h4&jzo4VM2w#~`T@UAm$~Nz9p%Ai7r%VKH^{>MFZEF` z{$66c$=lj@WKBs>Q55IgRN>@0B>)Gm6KDGKHnBYkEtu;D@}RmgY&1Q2xEDaN=K29z zE$?eIwY+K)J137XTwH`Nh;6zbld!i=T+qR||9_U_rC|e!1L%CUNua1y`s1{ z4q*iy{6v(RXqI7490j|^40y`p+^QNgK(QZ(;ZgIP;rAFP(5~h=!+kKpH-qLmV}?!4 zr1k=W#}LIOaT>LfB~EWb98V>SOGyF@UT2>pdpcRs`j@y$CHd;r*@Q5!Ne#SZNti%P z4X!7eJdJ>-2`r9umUwxI_vEt|cuFOJPIT>yo>KBMbm@;+tuHmeHnOQwycXv$l=QKVdJbOqBiSEGKbRG4$hW(Sc5*7xmt<8b*p%*PH}#tW zJCOXfC5bowh&>OZVxrh_X-E)2ju|J@Jk~8mqsR75J;j!PNgq=XlFKz zYB=*+BZuv!oCE5sHs5fUTUS8d*+_bb%dBMsG=HpBABj6J3@ z;b@a18r2Xwo(i>jTmE>YCUi8WW{Z(UN3+QsO};L4G`7yj;-ldg?5nOZS7uZG3Q^AQ z&{u8#3*C32j&gH_Ox+eEi;n49b4>ZV&@tIMBfB0`8OJoLfl=i;*yE{Co44nWM`}Vx zV`{b-S#&hb=4kSDp`)>NMi!2SJB>4~%>OR=D}3IW`MaS~<*%{5{^y;U?>|&)e}VJP z>~cp`cD+l_J2QWuR(8El&(raq%+Z-UG=Dc1A6@ibEj~J1Ywy<3(P1S9a^|STcGfr! z_GjPvBy16gwZPj3JkzFd8Q=XjS)i4*3|HPJ9(-HIgKiV}A8dOBU1GWeFSR%y-&+J8 z0!M^H8wV)9sbF&pr||LeI(JV5yZh5Zb=|vZXcdm-(aNKBZV`?rIxd6V!J}0^M?-f2 zZUdWZYHDid&8!(;Gq$F#W?W5OwRc_Bh+#DotH)P+YnRjJDb;epJq_80dqz#IeSOqa zFOhL$T@bHgr0ZDF*5(P5RyM!o0WRa>aB49v`Jt}9W_>Mx>iA>8z#_km9z0FnDEn3T zkgXEF<15S6{P!!rKGk()x#^M~@zLl)JsGG+l&o@yvIFaZN8{?RXLx z*V~^BOTDEquJGJ!weC@j3p)~GquXSs_bA5oQl;jWU;&QCp8oi1h+W zZ2jmzik)AxHb(`5?h*a8PARz#kkH+_739;$GqX|#`YJ*xMn4_?#U*5d{K<6 z)qt8D-?1>RTvF?}ZLd{UN7q%#&uUOV+%c5`3}bQM*KUtf4P5{Ga?vQgbm9skWL=s65aG$fD7yY zps`37xQs+?7bx{2YDop2kamHHQxmpDgU50jVpF)4$IrIqS1{RziWg6QHpo{?~iq?H*e!yR;7rXL=QXevT62BL7IWmf! zL@|>nRuaX`L^BNMl<5yOD|s|t$Y{J6>?kPborFXWixi)u!1x>mO8vDdmnaf}QQ-vo zeTl?w6N%y$`42{Z%SelzS**;)F(M2%?Zs*`Q0kz`V~O+GGKIPVzCd$QSu`|B) zXczUVL5oYd`dJFL%ubZn@c$20(1WcI;=fXxZ>bwG5uN&o@l%y zvE~ny+HcySXeTfCbD%_fjkIx)erM|8{-Zn^4+#x1)akAqw@>;Z2AWwL0W9SCrlRI9PN7II*ZOX;^P>o zF7pn09?DNPUR4y6Jw8SX^GW8oK5SF!>UtgT=!G7A*qlB0#JxNHJ?hY_yIMNc!rh%} z*X~YlRZFK+v%AxIqNUTz#E%58l^k*ZtMrK1(bDNQ?Cx|o{YRhJ5&zYaj#%&?`=0Cb zqds0oEErqjcEo~gTX1={t>1M2-rw|j|1iHJ=8y9IS9ki(r`(T?m=PRueE0rr&L5i^ z>JIfMtMTg4L%Y;Cb?DHpJ)LUTot>)X&Q9lvJ)PbIcXoOWdpey>dpg~R?(B3ICXU2& zrAK1_9UMu$<{wGEzM$=;O1~qPTzU8-xubply-%zo<_8_I;H;7bZLbU&=a+WGlC#>9 zSNgB+4Cb^AoH?^C&|}Z@YyCQZvhyDIV}tewEgM_!>{Ji!=~NHw>2!A8+3B?0+37x^ zM|U^v>GV|UNb)cvCyvCA_(#;C1#NAN9AA0(w$24@2P=>E@jGIrPxM*PR(d5zp*mu* zQU2_<*s6xM(`It^XU)jw{OyB=?&|st#M!7 z>CR{yG@~D5ojYQvH`Jf(zNh6taJT;{=f1D0%LX?Lo;}#P%e%k-A+MyawWU+l?Cw;V z=3(v;?=@#+TOa5CN2a?SG1qVN{4twGv^GAnyVGfC>2xygNdJiYU(S6$>Z4m+x~X65 zzh3y=3*R>+2GZOo=!nIBzx0+1|N26=PM16~o!{cKOAqEf*n$@K{@K5G?tAg~_%~Us zS(rRPQh#Q+F~Z3O-f>6stb0xgba0*%Ct89l%fCqwdU|dEQ0%!ed6e;~b{C-G_55Hj z88{Q%g*?Ze9|NQ*(6K<6S)gN)KtX;C?^e%=6EM(=`)Hj#-^T>Vi~B&z0p?krp<|gu z`5K2+PKgiZ6?5>hGoEX3fRGIAJOd||0_@yK7GL4G07&PP#g!zEzpRs`hE+*I)B>}} zviL{}&OD#7l7b@ZO+k?LrXa|&DX=dq+2mDpxtufdSg3#wu0EQ39sHr+ewLVHX!vq!|Ku(qyLn>|gGvB}6`Q_kFL_vpUX_JLhsl?<^M%0iCz zI0%q^07=B);@JTQW?sRP1V2phS5^%cg9FLos{uk5g42Q8V1Wr6C(i;ab!aZGHEc0_ z8M3NoZeTTS6JvqlgJ#U_2EWHYv<-QdglcgDMn&~t>9 z<13hGdmIyA5F8Vf7({U-awA{4kf?BsA2bv)L|)`rS^49|hfNO8E|E>G>mI9lo9wZ3 z%y`6sZQ5hUqs@A=am-j6aLxG2`k~Sh9YDdD(ztdYUT8x&Rw7XHb#A@s@C?4g923`& zX&%c`>kVfU#}NL_K=MHB7@OaWvAK54*mi7CIK~cNGk!yk#U29@FS%wg|8T817OoY) zDc8y#3z1;CRyJWyQ|T%-$kmbJ&vccVXgu`rV0gEy)O+z@ag|zZy!NnE?apg2e4mP@ zLE&`UORv4RF7jtcM|uJLiPK&><894&=}g1?ar4Gb7*{=O#JGv?8ZoSH=!B&gc$d|C zeKTG%<6T?N-^+;JcIDifS=F-$$hL6w@YAbnhfWwe!MpZ@`T7-e=T?ue9t(Q7aCG(Q zH6zDVPw+1Lls6zV&ugmk24?0~&#b8)H@>K{Z@ssn-m7W8;GR)SYws8}b<_(QR7@Nb zRP5eWu6gRp<|0HfkE98RWrCv##+9#G*L}FOl`E$$o;l$Z`^mi_7_lqi$caLN$8)aZ zzUkr?SIkaQfDNad0BZQQaETM0TTgf)GetLe;k1+WiF^Aqk-W9=!tjiaE|tVrLg)n| zJjmtU;Dx;9!ah!~_S5>}C|;=9$qH$|-#uQ4&LceT>OiT_h6?N^F}%a$;uFV;CW;pl z56bRCD(S%|?y5+Ccl6*Br|sto>CBiCe?gn&= z$<|@76z=bi9`HhRIP7E1Ij>CVm6J`>@&8Mac4KSQl3IK4 ziNo$Fd>(i85--FU8vVCTb}VG*wp0)F(kHI9pAvsln{0p46fQp%K5^Owz$W{&>Ga3& ziQ~)SWPIY_4&jr08`%Qe8(i%fY5&;J(I80h8%;u32!z`^dPMGfMvqVg7@Tq9*H@<{uZ)3pq zF?kycjuk)kHYS|JFiWd^Y&eNwmR1^PN$W2sqGx-;d6rPh*R~(S93-%+Shdxz!9ACTiXZ7S!A2x~E z6lhyXBq|#u{8PxNKAc#dl*@ep-emI3!Q}5Xl8<=uD7cV(u_3K5+drAS#pSF|o5kfU zzlg=<1V`=$kBjmti0>r6UR-Z*1S9!+CU0ZgS)LKgD}qXr`l!#E^-cRrQ!hS}fo5h! zo+#dNJfE~E{&BKCYW8>U2_F$(Soj~z?-9jIEG~Ph@DYec8Sg$Lqj-t<)COiAc@uot zqA?Sr_^-Xsu;pd^s1Icn4`w2#UDUTy=BaM@Z|r?3qzK)_U_@I%IT{OO6fcIzlyWpu z$Uil|hxiT$T8n~=@_mSQqZ=F=jTGfFkMet)d=#ISXmx~p%D}Ha2x4c1O?*V^{DPLiv_(lh+3y!|t)Ne9U z>_M2{O`f#~`6%9gn<*E6!9dfQBP|YZpN}4WKnZZ$ix{1gY9~zA^e?NDJI|k&)uF3& za@5&HYsd=i>z$9$Iam$A2Xw)n?ClTTLyXRr+q1zQb?7U*W;c~&8=8*(_x~RKc}`Wt zvKQtmQslh*ex8e0{B6^3nx4uj_48cm!a>=ma{eajMrWVO#Z@NDcJRrka;0kSu+#9( zbQ0|qL9)HVS7W!ej(%ia)21eMC$081jc)qyrkkaAch569{|QRJ(3Dw4bjP3MN_Ra; zl*hX%otAxI)l}*Gg;na_ib)j{-#2Vg>od7QEzjhJJg_@Uue6(z9o_W7>_z5yf0~QG z@P($I=1O;ER{bPb`p~BAlR5tZ+FhJ|U{!uM++II29xuAml)?x999~d?#7pPYb zB=A`MYqekE5Xi0II})oK=Smic(d7ERyw9AH$9R05INlzv8|)_M#$@f{2TVO4p%n9+ zGh1mE4`dA(kKu|@2!08Zw(G}aUEst~7`t&_-VSjeC@o-x5aFCbE$?8_qwT;*PMkNN zGY8-P@qm8V?`jGf4mmC!c0xfz6!bXWw3>njb$0?QDNRAcIw=VOsk4Nz0ZI9m(3>o2 z^rrR|l~U~JK!udERN9Mwsovx%(whlZC3=(C5*l(8)*9`&Dw|j;Y1mQM2<#}EXw-Xx z^+u^w>b)s~jCx^&&o||9r2wC+C+E+-g4EB zQAq6bJhg*Q?n1)&%~1;x;xn&yH*PWL0NaIz+SlDti!fiIsiQ8oEhFBYA!LqkAxFKh z(2&JzCW!;m)r%4GO+|1>b8IDQ_bebe-o30(J=N^&W#e;_xz^ds z#us&_K!t-#w%k|(O-Z5%Slto3y?l{Y*zl>CFQQc(s+!k=(FLEi?jkaBGT{`?i*@Cn zh1b&wQ`5}xwq(4rdT&6zw{7`kZ(C;mh;e6+oG@YJ*oh;?UEnRP_a@X=!-qbge#uZT zl^N=7%UtgzGW@%tYU0@GBZf72OEcbt%y935j5na!+crnKsX24PNa&AKMdT(x(H?FF-T1L5gx%aI4V8f<{skNI%jj8%czHE$Z9a93GH(bXkr0ac^8nE~Zgjvr zpaC&Up1P)htk6k;07x!PfzhYH&eN5?rza1pw?7ub%rU)e)Xj-o;C<)ka@%?3!)zD%J71mof zRcHr)xS46gf8Nc+TMF$i-&nlCY_gl^GQ<7F`)CB8{x}xfAMu*(KBTXE+WNyLTSq)F zyG@$qE5$q3CcBA0R(RY8`|4PIj7zy47oCaShx8A8@7vBob?8{a{heK@^~?0fBF*+E zwsWEVf6)Vv4*po-{-%cdL&a$OgO4KIUt6Hm=R*Z{llU;<{$^F`--+Wx7jOGR2h2Ve zH`yIi>btfRQ%9Dt5#e?hCc5{tLRT2ZO}>Z!N9g=**Uv=GVv`*g8OBX=WlHojEDFI0=#P~(V}|>iT2Z)0B->v!h09L`Zc@N3 zNE}@udHJVTr>?OB!&i>;(I4S9d2(kJk{3Z~Jk=)>OOPvGNM4sbSFn(XH3;r!6X!xa zMy?U>g<>2f%&N0; zFd)&Trj_OrPpcl|BZ`k0m=_=MX&tj2Dcr`)L8e^d)1?h}ctUC2f7&gKB}i#b~1O1}!GT z{7O5CEfnG%it5g-F3`ps6yB!5`1;`!#PtnyObn#>_ys1uWng}{P@KW2Z&Z}4`gqt& zPret`6Kf_-IsvZf$u)Jo)=f6_;Cu1$hx)X%#QW{(ySx9Ll`ZPfw{I%V_PHm~6g&m% z&YGq^|Bt;lfv>VU^T(g_E_cbjSx5o|0ZAaZ09jd8)Bwo^0-CUjO3NZ>Xb~a_J5&^C zMQsb>wBpj()@f~PTf{Ef+JSB^wfqMk{C~dBdCtA>eYt_4 zwAC5U2l9Q-@}Bd)?|qkZp5^;IbR#jiGf{ABPZ+H?C! z=WFVryCMzo`zj~Jx7XIhcT8xAe`RDt{2#|3Ni^>KPQ2?pj6db|~jFfesZkF@Yww zQ<%!BBmXw4n0x4@gp>Dj!l`*FL5;VabcP`M(7|KYke3s*@TEkka{I}^OelLCypD?M~>%*o1aB z{H=nbb_z{xcf!}5Z;m?W9_n~%3wk_wjBYx3%-V6}m^I|31m(S)AbL6Ba15fC5>Dg6 zW0u-}GFWF~DdDIQH|ga>^Z<@Nt1~Yc>C6ipJQh;hPe$w3H#IjMNrZNy&B0??b@qb| z@jast9&=P(eA|S*O;0z`u5G-3-jE(QoFK)dvNBTENF=D8JFMhNaCWM;Rh$RyLLnT z{!1edO^M$5NUn$5ha__@P$Th^jc3E^! zU3^RJ!GyE-NMh7Z#Gi5>YKZR|cO(%#kQx{F%hwC0#CJ?6?5D^3%4Lg-YT|d-1UvJx za@r=fN1XhkhWKM61D$!1+IHLir}J|@bL*QkzPU5DCsx>o`}Rm;%7JleYwfn$gNfR` z2NP2c6x^TRVLOu#^?E4(a~C(wO*og`cG6a#h)j;(HgVzkI|_>0txzyV9m<~CuEO^{ zvGMUa2`6`M!Wq8hq@}h-CdF^7K`Z>uDy*&?eCS)T`3YzE@+P;_$=Y_(s$0|aQo^bH zLS*a7fSMTJ9{YNMzL(tamPk$fwuyQS>}_3{)#h4mY`JU ziJ)cTEx}L13I*ZCk`g)dd(jDUSTz-5meh~~Zbr*-m~%AbfLqaJ=awdgh(azz&i2g; zA?X4Rj4uKXOfG^7(r$&wBSeqLBvi*@SCe6j!Ln#93e*&2u@nixH(E`FxDRjs&{fFR zgKQQA#^ILLH8?1XV$djCe(0Q;6Ttd1)wX$^jc?!@h_IypX3}0p1X^w9=bGgS!61QSVv5C z5j-Q}x;IQw7J0)I$?e2bh75s+@Dtgz8CvF4(jsJzJOm?sh<@?uhU^;KZ^9D;?xeJ9 z`u(>4nX#SfKvUi-nt>TF*lZQe2Ji%cb~OSq2?%hco@g7k*>RqBHKO;4y7xxYyGnOH zVGkvm2|x?b52jjTGM!B9wM4T3(sF*PC6?*Q#B*%=9Bv9urkS_QB+R>TVH7n2mf)G9 zUGs3{Cp;c2*v6SC@*G~0vJZPAV5Xv(09;&`gDxf4Nm$l$ATOE=NVP~FBzA=1l%kn{ zR0|v-CtPV!qxvcL4=WG9)V?B>}v$(vWu;cCl<#6kM^wVgV94-kB_+d4 z233}olniVtt0);U`26W*%w<+wF{r|Bo@alw*zR3#XFnFJw%3)9si>G*F>Dw-8A|Ib zMwC@l4!^vta>QVJJ;L^sSB$v4tfXwn`IUnzCSO}pR#G;&Y*1O%plQRes2EXEG2)8h zm4nJED@K%548MLvN!jI><1l-d+quOR_VwfKq2+wMH`(3+Bbze5TBISU8>w-Vm3TH3OD zd24qOeoiaIKb`0v;%M)+{$DK1$NMRxUju|L?}!I2?ZSN^%a>$ih&`3%LxzNXys~`n zx5Rw1{4)9%ZDKAFlgzk&8U6f%l#hXz3(YU1-z~O(CYk>HGWtmYq6r=$tZC<$(MNj| z+fG4-i0>=T1L&90ZwvKIMnAtB-v+;o{*jQ^R$O0OB)^P)xu-vT=*{u@W%P&H}QV_GW!3D_Dn`Uq8r}^zl?sH z=enGZ3vG#TP?=<|3(#|WuwWi?Sm-WJC!?<{AR2Bu^Zai9WX3@{7c%;EsknLCboyKP zHsHFX^aN(PV#fF9PmTAZ*8+MGl9b7NU(IPTf4mjvUf#_dRDXxKKWxLEt^MC2&rGvn z50j2>pDo-{VTo^_Eu2ze@o~r|>Vt)hiFcn(G*t3z8yptjhHTO{>|wD5&L*0JcE-0M zEDIv|bjbe3$6>SN*{Cg>=##P^$Nv!@DwIR_iabYf&L-l(4u1prw?Dp$-$vbUo6f!} zE-}v}kVEsjM0esH;A)*O&~S)>YZH0H9cJX<##e#utX%D74m5Ib6L-gNOP=;SyQju` zV*Let25>z+a&YK}kcT`4$iK5oG+OeP2r{>wE59#n_NAPc>Mk)KDUkIUJ&3o%Oex?} zlYS6E8+rH&0y*B3D_nQ3#C>up$q@#z4f4Mg{5Qd4f_@unNN>=dIqncwNb=x#K>kef z{Qs2S%WrF3F{*OxS;_OO#`ajAzfJq(ByEk0s5i%(SrES`eEZ&eV|T>VZt8e(OC%PE z%}s>*&q{=bXBQS0Za?YNQ#GemOseP_?K!+Wje5mrc)qmV^Yj~uv zPhsGs-4*S8d;F_Kb?tv#eM2nTp#m83i%+b1+_cLn>{}Q-8TiX1{p#9ZTdgibed!?; zn;5G)Zaq+a+&B@PbEer*#6Cn*B9y>W0@3~R3i9j+B}S!Nsx4onjPBmA`G z1o??qAsC@pA?Ic6;5h8U7jhujbuUMeCnS!gL*lrXVUL>?X1AKBDBysbBM71l>tAez zjE(nAXdPL`X^vw9Edp1UEra^TD&31E;QB zXb&No&c&PyZY8=Yl&El$QXhIfttkZh+!UU7l!snHBE{CNA5Ha`ZAmjYYM`5pAhwG;KiqCJ^-UR)TL&6#!ZtkW5pxUZrEvvcFj*6VVaB? zJ$vQJrkS_QB;4RS3eL5LT*jqMH1fPQ926qrDVh&}6M;>el;`l0(S9%>oc$He1TcXa zTbbyDYQ6rR0npW$#B6FO^CV8PgEv!(m5HQJ{77o;$ z3w$LE-w?drG1Gbrk1;HLz)&FXAtc;N@QTAx*URBT1#qMM7;vR9oI{4Q36?hA zU7eM*{FGQ2e_!#rPm0J4)G93kheavbIe&{J8prdb?3{9YRXH1`-&}6@Eq5&YzXSD- zvbU|j-LdSqc>C>jpK~nxwqUWN?6=q5SmSAgicF2lOEWgw$~%}5y4~5nx!4|Dk8%FY z2k@!&I~~jZe}VCivOl%HyxLRI$`v@WPp#)c{~Wl{QT9FSZ%j72XZ^1S;BfvNDA&#G zLB&_tlj_CPU5m-R0YrKt80X9EjV1DKCFAEzCca?7tgEI^m|pwNgyU&O?J2=_TCram zUNwgG46P%p7qs@!v^^yiPnUsLolT68_k)EyWP9Cl{opN>K_)&a2VdiNDHH!7K1eE= zm;bwwiNpWcBqOEs%f#`bg@3R~W*5Iq9DFNSYh&heI+=K$qh(1Zng0ATad11wGK}k& ziO(z4F_h0F6Th?@z8}Bc`g47>>=6B7E@@=Wewp}nK^=?MBy%2qnfQx+w9PE~JDp5C zKScCDrW2kZ>ExG*hl+Y86VJ=iG7po`HU9f$;y;h{%x?Yi9?Ha!cLD94Hkc&4}-ejXo)Pp}`D zuz_dd@xi+m?eJ~}`gwdHw?X-r1^u#dKabC|(vJC^T>ahwns_j5zUYZfZ)~%TOxMq! z;^#^6^Pyac-_sS{hpX9TfmpBt5n&qmAwjGLk;n2J$njrX(mD{t8s2sH=6}K<0gNiJp;unE%No`i10~{|Rv*Bo78{?N{sKaa?8 zDX$Pblk6PwI`rqi4_TI;;ePyE^A54FoL01+qFcCquiCvkM7ybD_ZI4OqPYXlkI~Ti31|8>31@sm zeALAa@sSrz?dltu($zPs;lz&P4JYnMG{pN)Ylxp$Kj_4c`ofOZSG_pM4ir6Kl;2@nmmZ453XZFf<{ekl8sZmB zzpyZRGC1eXqUR^gDB3+ybtn}$>CCzC(6x^j99Prwj;sC`7Un?GKWFzu=cJl*-XRqm z5bJeZZ7e*lUbv#LAwFVC=wx6{^ki`U&f{v~?&GSlvT%5zeUhHNVZf9DyC=FQ1FK&> ztnTl<&`9$K#-4he_D^QxQzS<*HzQthCn4JQOb+?Q4DJfY#2LWUTjC7ZmJ1RE+Y0h` z5Ej@D%kpi<;7i5ObhTt(JFE(on`t~T2g#B0wEI11+3 zHtfhl>&OnWDLCn12#?vi5-&ENx4+5T6jqRlitr!OO(dnI{V}}i zS@@449L#LgX7ij%Z!$B6-emh?-ps*712+7iV^>S7A?C+3{$EfF9K(TNfyAv0 zVY^xeG9_*`1{-Kqk5+lO=Ad-vvtPOzl~751Bv}bo75tKF**&K6C)_`N0!XLXN`A#t z7Ev!~QhMQL$%O&@Tgg7qgqd4!`nBn!71B8#9p=P$V1SQynM!?V7y$ZhUYo2u-{84M!R5PkxVFeX%$ruZNsKM)LA%G^p2X5=e1!I z+CxP%0T9#&Fy_efJfo&*UC@t3m2F`D<6DvDU@!RED4K&ffzb3Rnghy49J!)7<^-^x zIX)QdYwNw)066Dbv}qHNC#$pxrlg$k9zYOpMY90VELgO56Hqr@o7Pm9jZ2P%-Fr9^ zOiui}qwI7;;{AhQ2a2u*V5DqnrE!IYgN78B_8nT%X3j5%Hf;)c%FVgv(57|Xa&z8h z=AS}20&7AF+pu~szOJl$bxzEzK#Ji<(>HuE(` z@`fA1Ed)OlC>TLN4kI{(^1!t<37;zy=A*l|-Zuq4P51(>lHUgp5mb5*4&WX$>2z&y zl}*Anei=C0;j)@!zD~F*cqf?43FSRr47jE_qW(jmMW|l!mhdL;bzy@II*!M^XO1uL zZB?Fx*SKNjs-+8VxOwV|mey6}O%OaVjm@IgCY?+A#rSl4*v{{#yhtC6f5DLg%S>RP!&GAzMd*AMfyvP+69tN{C| zG_P*0qGf>UG&S6^6%(qp`wBatER$#(V;8gvk<@8aZdwUet2J0@$}6pTN-OG#z7M~} zIaAS{Be#{)tLGLhm^E+q#Hum4aPLSn*K?|=bRFJU#P(>I`Myxkv3#UE{TyB`8T4}# z&V_#NgLoXNWZvlSMn4CR6_bp94xd6#F*PfqY5bDZ$<*Pq>1DflwYTQI_3P*Gi8T8l zeIGGZJq2bHtcqqE=?CCTHV5UY!|KmF?k4DYoKxd*fUeZr-_)$kJ}ZdZ;q4FcE+BI9 z>*w$Z_x86eOY^6jWa{v__xAVT038>@ub1&spn^`~iBrm8^mQ`DFGyAOQ6t)#4yzdNc`P|Ub)8SA zpZim;j`(Pjxh_D61x&i5uxI+YCwmh?vSpI#&!4>I=fYkf=nls zPUV@xS~Hbwej}%n&6aqnWK$mBfA7X;rJvk4c)w@R&!xxYNV%+>)3_XGtDjqodj#>^ z1)1vy@#`he3(jn!&r6==-P!sX0W!aBHqim8$8;Ncj&Gi=Bj^FaD*?P-^b;H}!zH=_ z`7r6Y3z=?veLPef^ zusnK5e_Rpcqk}mJ+OZ3PON21QKz@GU!z6juTf6ccxmr99G`>3i_z8aB9e=z8j!WYb zy)6CzQ4mJ-D2JRJcv6sKIJ?C0%Yc34K0Qy6Bh9+RQ89s#paT&V6UfgO^t6(nD|nqC zWa+41AqXKm^6Ldn{DGa4e?;(6L5SPY{yD){1dj^x^Mp?ko)5&=5F956Q9H`l3EnEW zRq!ssPYXh}j`m*^{HowL1fLQ7nIJ^)X#Z!y{}enf*b8$D+qx- z>aP)m+#dOl2;L&NTJT)!hhg1~@t|=58oLE>zar0eCx~Mqc`&9R@8`HkN`{U3+pMw4QI|*Mn$-{yjdCd8M{`ZcbBM(u1(GJo* zAVgZgvyC(3k8@;v2v5~lS5=M5#BJA&zIycN%5go7yYWjsHB0KNP23Im!foBVGZu*D zvNzn3E#W5Oh!9kQm=5ckoS2SkQNpn%o@#Pqdv&A=&L3}bV;!D+xby8%UqB=YYilgf zndb&O^PKN>Qtt9YgP$mAx`B&-o0<={j4(VjMh(m2zL98+?$HlzTo{F2kkweWnLH6S1@E2e{gPmE5 z`HbHdPLPAHsSxOotdIlAujM%WB!?Whmbr-CZLd-~@7Mce@W33%c?dH{a z$ZoT+8(M(XEY&hiqlwcA(C2vJi*2Z5;3Oy4QqgQ&Nhn$rH3D!g70m%aHKV8zz{-D` zV+JujnuHlVzCwzw#nr$$xU>#BSZrcGsc0TRUypUlb7Dykv`m^L^SGGg&EL#t&L69u zX;A*YzE7v<=LYtQV!N!q=F!q|)%TYUC=FE&A5c2L&MLm#zIr_S zAEjjY2mmqZ()p9Fnl*Kn{<~n-($>|@Qc^psal!Oui|5Z;xq8(NOXp9XG%4LzCn>E@ z1(D#s(=;98xsw_+tyYKUNJX7URx-^O|LK9ML|=3s0;iOw8$j#}QGQ5l^bG2lmSs1s zSh_?Hdd^fXd^|FA%K6Ca^_7gt@qTbCI<4LU4|K-38Iy7<&&sbTEpA3q5QZP|1HLUu zMz-2h-342X@%KX~te+6W&?F;G#r(x9W1gL-yqd%+_O@ElQnSGGTY~nSPNv00Ovt}FVhc>ZHz$8-#UnTFjPv;Y_=`k+K z&A2egG5a9>v76W#FcA*+LprP}rFCUyqm>w05n z+|f);<6xnX!Og9mmr-M3~lKvUoaP zu4tb2WiiS0=TF}9bD`tFIi?cMHkJMsu`_VLr0&=Bqv=WP49xLOLO*yvnS?yvJGf@} zR-CE>={BB5GPuT~B|h&Zd=CdJ6(K1UwYVdNnnLLL)gl zvYahjn@a*WOFO2G$R>V|0KXY?8nu-k3hbD9xgI`PmpJQ z9pWNO{xLy+Y!0LM;OprU{j;?D7eNs1pu9W(D;BD_M1PTXZws>i&(#tUAal^UL@W>T zaFm&N>fm%oxzU3_hl)HzC_s?M1F=R0niw92vy92QUC|$U^dRi72mdtL?^A-zr|%N& zk^Dn~U_(N=i6_naMCgsA{Ck3|Uo?JwF46N+4xtY6tXG75R`MoJv|k^>dPZ=TiGCqh z&~TicN#5R_zY&&4iy;J7#Z@E6RF54!@{;c4w__{Eh`9I6ag$py;h>cK)^M5a z+#B6_UnsIWdsogqxjWY!I(UqBL>~(8ER5Y9TiHSNkO{t$pvqxQzw3Kn(d70&tm*1Y zyVdSj5>DQC+K=9PVD^#?~wc##f}_v z)RuUbdZX#7_BU>g?vKTCVh!;>v>;-}(U#xz4eSc;dZPUgw;nkbKszehZ^g3i`_jT~ zZ`?-Vwm&R{y!T`0M?3SP;m=~>cEBaK?Lq*Yhv;QIIGe;65wiI>P zLF%||i;j~~x#ik~6PcHAKKi4+Tl!6Gf9;loeQ_PsmADey<5|w*?MH9T`P}w+#4Xxi z9Q%GOmT)4$4i)@M*+El&)Azoj3GIKl*{uCx$mvWx47g0%-@qRe4+9?;dnHOtJPcNYhJs*MOG$;fmng+h!r0S4`L^%sAliFE|xzM&lP&XOND!9Z( z*e!u$Z7>%as2|nU7*@@U!tX$5tkq6*Y^rK*6y|NFDjLOPPBrjev!YljN@hlsWv{yC znkWlGb!Gg^eLJH>j^yLXp!38XcK0ncABq6$k=JVXQ$bx?lcoSfk;r%Yyft&skONc8+dFL z%|;LGxKF!4X_idbRnaT}&dVDF1<$Ci=2PLrpt3*|aegWIL0<-Ml%F@RZ>p#rg=xhieQi81&>u zKj3xU@VAG%$LZReKA_rw*9oo{{8sU#f-3+oZTPz4Jp@}alg?C+N80QI9S!vD;1Iym zj7Jyi0r2XY)Lpr^E#|!NC&Szp^IELcOu`eNsT_|y=AL*V;?c+5h$kKED9rWXI}4xt z4n_2)B1+)h?GZfS&EVZ14!hVN>o2oEyEI7XG-~8C! z)x*GF_vOHi$$jSWK99+H z%2NloQm-BWz6lpur*hX}&f@K_Tx@VnGIiSMA(e^(+PcFe(+=xA@3?#Wq=<{+WGaV7G|=jNa&t$f?JNdgep%v^$WU**6CIC9mG7DkrmVjP~45 zr6oC;ePbYZ_nyZc{d?vc^I(pa4Vz@H8PIdNXjDPZd}Edr5aTLX38AvMHbS47etEXC(DPsaZpcw$8k&FIKwQTIU1V?_lI%^9~G?mW5}FEIdraB>dpslX|dIBhRw%uyB-tdr#_N z+K4>U{fEUTAX~V}pmULWmVjjweO>Y_+s>A_9NBu!15As@5fR@QBeRYW^%I%(Kw!jY zvmYV4O6q4weVUDagy=S@-!Ao^ll&JX|82>G_6F_$Kgs_>@<=!yJQYB^CxN(Mfp~=i zc@6FAShc{O#!vTiH70yHW8c6@3H9&s7AnUxq2`71DOAe7H%8jqe*>dC=T@8p* z(2t2D!#Xfm3j~269s>H~srxzda`F4SL~MWS67`on>~)dn`x0?hB!4EK6{D*$ab`F& z1+JIuf0G~wE$%_Qmb2xYd$0QxY?0r^e_t3MgERRQ_;q?2b)>G=RRhn~$AE=eu4W(s z`tKjS$WiXUk65RQ=T7RO+eY5+1LfEGA&wf_8E!_%Uy!dAoFX_~5cVCY_v-@vag2;k zkl%-%ct*xoiY?4tk?3aNZoFH@fgvpF?-lfOIzBAre%+zpmkP2V^yBxbf+_^%#<$8` zZ^-DZ+|>Ikxn8dt-6Ne|Rdsc>W)(cMPOk%oAsKXf+xA+!_JnA++G+2ij$drKD`xF! zOoTShNQ5qHOgPhLB%I~BCqD7kzH`;B-oW3jCAFOrpJSm#}tBJa8e?)G0-5Z;c2yMbyrp1F3r^W+y z_OViut24YY;mnt-a{~QkwMRnvg}Em_elpaR8%FP7ShU(NoQ#@aSFSataBAF|9O}xA z3_5X_T$iDBZda}~C2rMCN;vcNaa-dbIlMS#-*+V89I*EMn4;}={3UUEf9ULF3!VQMX||fd?HQr{~grx1sCf7;q}YRE2o1lQEFsYGGMH$c=40 z;K>+B@cgx5?vjjw#Btq{9w6|zOzHag-Q)!Mm7qc_YCqsYVOKUI|u|pO9(w5{15W+Dl34xw-5#)5S|ypLl$bn-VlYuowIO&BDx+MxL@G7 zN%;^36hfZ=6=4Q$}-erTSAbME$YdSXPOIOJeaSrG-k!iex3a#=J2Ud(cJWmM}4FN}ipuqN=? ziBXONmDC;vh;mZ|iKj$`N)jQWCO@L)1c(YoQB?s^Appg_QH+Lt&O*P4+u!eYgn6N& zMu1k2?V62G>#KOuC|xJ0HIXv_>}g87=AkKD=lGO=OtDEbQT+<5>Sh9<^Ra2w$C6xX zNSJ6M9+f);m=)s!PwSRcq zDY^#m8Vgr;&4vP&6V3_RH$}4nc=9c3-UMU<2Wp0%E!kAZj+zBPwN1O`CA-2Sjn{>u zxd5J{(k+{Sx~p4~U7_ijy7C;g43#=+vwx7*QcY>i1#RdIo^dMW7lk&^Wd^B5w?Rfb zJIw(=51EDIzt`d}kcTYLhjJXEr%u`oZbLaPLOwMwm;I7;=Hhtjq|M+qbFqqW!G}1> zU(jq0PF{L*njVTpbBYn1;sv*C;-Ao*U6h(pAf@KKqSV})Dm7P=7utLp0h#`^wNsv0`Trslwz8c+Dx5w(;Q=G zryj^PlsdFbHVkH3gM??@PdkZc9IpgCJ+Sh?!vz^Wo^d>iun&Oj8ur>)7sFl~wyq#g zh3`F{FRYKD_lFI)(fwm82)h8t=3v7L`&C$OFrNozlCavqgikCuV6SZ=#$m1mdjZJp zARB>P1m+yz?7);2He;B0!ZsCaPdHOz%?Wwj8joQ3|JwQD)eU2Q*plOo=>MJk*Be$b zVEs1N(c20{@9+Pe&F|^|-Ox9FFUSeJzmrM+doj~J2-_FD86X41%K-1jb8$~1 zs_D77Cn2lr$vuf>7r0_zA8peA_4D`t-u`!r|J`8jAw1(7Jl7HLD$J$4_X$2Q=3V7~ zCz*GT{~crAA^4p@ZD11CCwLoU>WC$lV-aOpTGs+zodFh^u(X{1+U=3N@Abd%gq#_a z-sd(*mu}ai*KT=h-X9+ZQ}n)9hGw!ht>1-5ci(tB!fH z+N|hJrHuXdemhxr}(ZV8Mi$ldImFwnM24l5~QH z5zrY7tN6BCwxXMWm#N$?TIew(=&UbulDJg zJ<-uVJ+miztRi)tPsg=e)VF8$M0@-9%%14zfDi16-bpM>_$}l9!8;?}p2!yllkJJB zpxSxYKG4iX_zq%Vo@V^74swAn-mX9a|37Z84BK&)?p{uqYLAsQxahXMONvlAkQ9eVbOoXM_bx+Br{__6eijy<2^0)Ka~6nl4trW;oL_1-%0&3ssDdK z_!0vn#Np)8E(fyzFlnFI2vLdThY51*!U)lL$=3-^14f8uOP;xS!8MFLe5|D&&SWTO z`=c9=cQwF0J1|zTkdA zem-2WyYq1B@^b<^9BBvj5b{dyH&+l^Rg}ZV5;#=wVnMtsQ9eqrRuB%DD2EOfxIoZw z=&q9d#|8QM0LOsj|4|UST9m&a2$e1J>;sJBm;9T8%t?*;7w&u5=Lr@IvOR&T=X*du z*Dh4OC~pv)D|nsYV!;~)R|u{W+#vWdL8yq)-#-XGBKW8vbj7IOFZe6L-w1XJ8cyD9 z;mkFhycbKpOt4OHs^B8QrGijKW4uobLMM&<7X+UW{I1~hf(HeEC-_If{}enf7y)lJ zxR?b?1cwSj(T)14g3xy(zf=&)ZsgYq-YU3N5IS(we?|~maOC$1LK%+yPX*7!b?|QO z03mP3c>eb!d?QfK-}iUHH4NPZ_Ge%6bHF`(CObiYtY!cE*Uv@lw;MbYH!*XqybC)* z^B!j{V+K1y|N9&hI<$MIc7?^VKR9&I&zbBDIVL!MZ)yLxwmV!W{#^4kOr2mQU0zfbT%!G{I?9QBV$IpiDYm*=IJUrGLH!2^PRPJ5oOBF2H#|57k* z{)%~+l)ozYhTxwB{onJnm=lmi$oJ3@3<>hQ7r(FM&G)}Z^8R^1sg(QY1C>(lpBIdm z@)|*oW#JM{k^FSQM#0&F^91J$E)-lM*d(}IuvyU0`M*iZw+L<%gjE`j<6go01RoT9 zSkOQ3cudOo3VuuQNx`QD4+#E5@HxSs3my{urQnN#uLvF$d{yub!9NLh2)-$p5PVAz z3l*H7BN!5l3L*v->I(&n1P2Hf3ziCABsfB_QgD>uIKlCP{@4anqVX@JYd^1rG@R zMDRJmp9{jO5#zricvSFJ!8Zi|BnY`B+P^875PVAzA(&9_2*UIh`KVx?V4+}<-~hp5 z!BWAC1V;$M#uELF7pxJi6`UeCU9eGbw%|O$`GPRbM1RW#n+5&z)=g5rMR1$o9fEfY z!kiQRJt+9F;3I;M3O**dSMXbcPYOOQ2(xJP_jAEB+Wn7Zv;Q-5d5x{^aV&iEGHrzyLswktTbt}7U;?FwF0*A=|*>e@h8FfhgmwFkq2H*XDu zyMm#Hc&Mr2#J1xr_r>BxQ_A{8JKrADQ0umrE(vx8gHBh_d3)cKxU*#Zq_MHWg@Fzg za7w9yIzF*w?i005S7D6$Iz7$>80TlTSzWIm|TeCu4!9YViz+FASBcE3Z4`UYm1mU01L^))kx@(?>o$)$5PB*N8syk2ajxe!Stt z#}oDO{`F(}z)vC2K6GiMD;RdWf`J7mb|mWKfu(ivP@vBYXVg3I`MFy38|n&%+^(Rz z;KUt?`nZdJ-QF{tQP!1@9Bzo;9bH(vsCIE}L5FQ$d}!x!YTk968dd3s&wp^@<+Xvh z6TrT`oBJP{`}oe|YT>Tqs?jQaaN_7%l+S6-J(P1z@S3Fq_V){R1p|HNOupvoYphWZ zPP~GDwYhWtTN`5LQdJ z<-*v(wt_cd?Nf&B28fev$7QJqrnK5#-*$rFinO)8z8wmJ5m4;)Z6^pBj_m|tDsQV0 z6XS#&kP+IB15Qdin}jbgJQ1_u?y_=A4=Nmf6imC|M{f7 z{ueCR`iEP{Y_%r0R-3IX@DN5=aP(zusShGi*`_RbwCUPMJ+*q9n5s+He#KL(w<)S? zzUryb+pzyh*4mg)XS5AST?*TaU z!n)mf^{RQ_F~;=&3iDUkYrq02AIs*Hg*!;i*r5JOMN|M+*1{6u%jpd=PE3jmVDVOn zwegoNt_axh$R7-PcN z7H%*Q%s_Z<652r+2ZaSbF8HM2B?hIxG4wV47*a3@xj^;>Iz$kId5wE94vgUuqz@Et zFzhu(y-@PwJ!Fmp!XCUF;amy_G-D)bjCK9TX~@+skn@5=2Q0clAdPXMl!Jo@gkCsL z5Zc0_6-oz_Odoiode7VR^(hbe8P3!6Y3$a`d6~ZP67-&jN#;5l(l*=#xZlimGlsG- zXvAG=t`h`s_`t%j5zf5ky5Nm%44PpqYZ87Z{}^}}@VofO_>LG?`^SK@FbsVCW5Afw zBsk*2=@xE$xE;SL#A@GB#L7kpuHZZi!$z2_gM1uLHQwaCKbiEG$pPQ*28oC%t2D{l z&5K%_%9|ilYiV7wY(;B%6XY*ii%JB0L_1sAE#-E0d9`ENhn@1N(`x#Uym+L&p?u=- zONI=usvcAUYPF5Uns-dMxOk|v7?^DF)s4l&Qe8-c#^D32hF4XWp^L9>gbm|ir+(@* zPc`;8)x+!+<#zGBn#HAyt7n(SO7Aa?*~P^fBG-6r29suKV})L9*^1V23tH)xkyQ&? zeNkm33=CVirJ34k>$q{5*v8&FhJ&|^^_~zc1iLXDT(+WhWc7m9RFE0JG2j`Z>#%hM zZleDyJY(J|4_*niImO#T+k+nue8RoM*6GHkqx~rR!R$ ze95BLMO41HrG>bl+;eBX&m-8pm-xl71Te|i10w!_rMr-$0~YnxwnBb; zK&(m4K1h&#!OzDevx$|Z*+vQkh#E4Ci^Z?k4si;26~qn^`b(S#5VjTG{^o=-+XKR9 zAg#ZCdU}QP@Y)0Nvdjp>kmvab?{L2_BXE|u^bWodHKb_O=I>!>K!5G$T!K< zfy>6*U(xxQ?Ex{_#6E^!Y+qD=#!W&U{=+B2+ireNW_v&^*}eQ?2fN`Hd)9XzAky-3 z;hFpD$G-C@K0kGxPiGG}Dp$t@>?UndA( zG~}@?24dL)yg?AlPUQbuwt!Vw(PtA~F4!P=y&wl*%qChdd5(vXtpzba#Ek)d1?UPV z7;LwY4-^ z|EwUShbVta&~Llow^cYH?fyp)!bR+F;?MhS2F|r@(g(Ik`g)tVL}zP@#BrZsD=GaT zJ~Z-v8&YF?R4IwJigvF8&ZD(3RQp63%$sz3kUnAM@|aA%%F!w{co+7lg3A8m>^{W{_7 z{ch8*5}_^bPBY%Y1RYTKSi3Q}nBsn?#vYb&k1o7;S>-accroEru5WrV5pDdRrWX^Tz5kjB?JQoT&wpxc z;UayURk4Q`UBt(k)%o_NM;8^3`d+8X3U%fMf}MHpzQacng%2M|4A>cX(7wM!H5NG! z*gNm6-2rX0Q+CLH;H3oR6*XZzHU5H_)1efuvQzp$kI#7Az8}9rBiDvX)fKqr1&8dm z>k>}hxNEV`(1BAE4z0WPx`dm@eOwV5rLLHoaOqEn!(fT~G}Og3B5Ssdv zr2_0lUu}Pnq(bo0Q}u|oT88yJY~9o} zWN~yMXol2uWU(p_v8wVaED$g$3tx%a24tVd8Xg}YH5+4Pu}>3khCzj)H$lQ020NF| zg3o~;BQ=NjVGS{Fh7qDiZ^E%5jMbFRLcHFcRy3suwY>_`o@hn=Tw$L9S6IkRs#(GH z1>!Licql-WmCEv!l=(DmPRd0r+FT0x2;S#5ZN~I8l`!d6)CgePWZG2=LO^H*v7Ks2 zbUrto0nqBi>r6|<{JqJ9i>YWP0Jou{Yf}xA;qH-Og`j8_fIl|03#t!JI3Qg;6Ttku zw5!o{6rf#G!1IOUL|j3eT2&i1;3#F&8r6mkC^2kWlOp|EE*d7qcNHfTVI}F&G@=NO zIf_M3$yQKJc{G@rG3 zy^cC#_Zn}ny}hJta79H)b;ad_@Xub}YWEv&-&Af#>j#$huPmt;+BT@WlAFp(rVT2YY_F}a7*a8?Vw7nd9&fKLABxs}%PZ`ra{K0a z_5r%RrnzQZb#v*k>KE+w<)y>yu-1qyTQN}wXqlKHG)uMjR7Ee6RCuuTzgtyErhqH6 zR^2e+y-A(0Y{djbrI|3QJ6%Z2vJFdH*EcWq)cXRgG%Z?n2C4;pyWF^ZY7$Wa^gq+QF_HJhdj7O>i)H#~qiS8W-he+!kMd z54f3iDd1r6_V;9gmO0}*FnKclu`Q%I7$W+<#1b&c)Zw%1?GG}3%(~DYM24n6m~xnX zkX~?!KIthin~3S+?eE0`{X3yQ#Q!k;f$I+Y7+uP|AaR^xlTe5M-}JQ$hBNC@U_#^7 zrK}5Q=2n2et~pku$HJMp6)w#Bzk{Dv&DM^2y-ML;%ETD;|Rok4TQ`Z_&q_$qLGJb5)k@XAWXS{;9vy8P!m)g3k~L-82yE z0wBxwv-Nob7fCq>IL_8_FM%8<1o2s<{w_g|?Ve4vNAlnmM4tWWv$g3PWMJU71oD~) zx*2K5GE(SfB>y`gbTg8Ni5&7>lK*eXbM(?|Z32dRFsmbv>kZ^(bT(<7Q&{5EWb0=V zdG@Q%CLO0Co02*x_NNaM$HqiC`_apb0>_W%80gon;5kP*FJj(7{1z4&c>Ho%C+AX9 z$KvNXz^WbfM#o~}au|Qx&q}?~xtvMYf^|OnJ1FRvS)a*ImVXzI&IM6qkq0L!(8OsO zB6)v&7C+Ac!n#p{=nyW9lCGr`Sza=iB3Hc(g-B>zcMTJ<~*;dBK{lOK+pHpCzcWrYm|I zjrdu@X{_n$a~qZaED@@y=_DY}_ql<1?SkpE1HX5;aA$odqVcwXhI#syr@S3AEyn5kfN1p7Y z+?IuPN6^nRiO`mYBhMtF2QF>8Y+&A)ys6Bo5l zP;}8_`#CQBB;D^*uS|^nOW&CjZ)l%n)3C?(@5EkH%<+BmmBneb_o85n>fDP7d@%HB?Di0)t6K{YiK^}g}Lmc*0Dbo3v2J=6JK_j;!5Gwt=qJE=h( znmX|(udnQ&2|s+@JK9%XZ|^%SmbyBOPdSuoGgK{G(Ung#0#RR=-xZi^@a$09Wu*?ksKblD10Q!vc6Hs`8H zU4`tYb+%fvhjn(OWb++vJW8^&90`06_8LB>4|OUDVh;z=985#O=#dMj9LRrJMf@c@ z2aY)Hco$PPE(!dm@N20LmzjX}Ha-T}e=yiQus_t1pdz-uWanXj*%x01j`X+y_7WW2 z{yMYodb2P4;H2%_3*#dE3BCksA@BFN+3%3q4;I`U`YAc)UqR@6`Y;#W1hB|T7fPGR z7m=wfqmD{&49RADqf#JDMUE?hD{?(GSQ4U~sF$bI%+>kJDN=3zy3*!iAbY&iX8f|r z1j{=`jQ~uvZEAMfuz^R_rshx^Heh~aQ**Qp8{pAa)Cj;7TG92;hQK&p(e(h>$J?}V zQ`01yXw2R8nsGto9|zyn0lbpSj=ya%*Jcqn)e*q-1n=P_=S0PdW@ zs|y!Z(RBd$9oV#CQyZi&uw>%hu>ood?id@@d|9tEKZ2s`@Dm{VAveJWD3*BVJ1nBR zbtc+|p9iE5ie>=x&vP9Bp%3|pumN5MeX17G37v7;uz~xmdp(ETg~>Y*Z(Zm=Tv`Pe zENtSpRWuX8(GF?Xd>~dXie>bHqL~2Z zSEF6?f%;r$0`y_-f@KsZn5e<~Ls6sgNwR3;CUgd?Fhz|3R;<%TxYTgMbER+QSpeoX zqmA55kGqi(zK@D#0Wdb2n1qK>UynHeUcJ#q2Lpi#MA008bmpW^A{j*i4=|n&MY91g z>9uHM2p!zc9n1zu2cc94h;s4{uuV%zkDZF5^;+jNVs6!r_y?A^|s-TaM0@?9F{5u=UCYV5*m6sk-|b6ns6zjH&lBrzH8O zEV;#HoUK5ay>2{U2yfq{d+1+|+y%Otw<|G9SxH4%g&t@Ubfx`44gY+g+}^oqo}=tX zH_sbX;#l@`fnq87%I0}xD0wzn^3~1r$|@Yoenywr9rlgV_N$xc*^A5V{9-WbSB<~= z^17iHS65s-^x{%J%m5!ofRDQx2R1NJ9#}N=VmpF^cr;LtZcKLu9YvO->>q8uF)+`u z0`@lopGzItARNcD$)o@3W?k}(E-_u439SGrwQNP}m{AK_>4xRYnit$MX5@m_l@OhX z&i1UF*fMEuYg<}r^3`*SCl!w>A6q`MxVo~cx~jTzZ1F{_mM&kqsAcKJ#n(@mc~!;I zn-?!#vSjI!vQZ1hmMvbjXvGap#jBRCS=O>_<%;5}OGb^X9Q`3$vU2s}9%X;MnV%}K5sbT&6)#kw$FPl z<>i*HxjhX(e)1t=?e06#*Fxv5CDyvH_XXuWK2P20Z}Fzg$ajx*$2;?FlPmLq?$#tD zVYyIrspcc^^({g&?VyvzHdcX1Xy^T+naPo!Xr>al%f9IOqMH7&67%ZVmh{tnc$n@& zgp2+#GlH(g?1S{WtL6PBnL0n;{YwF&w?r0(UNlAdLGxV1(#-DgTAw%TmuiaS@_+ zDQA9rSFfH>9>!`WOq4I!9|*l3Frwv1$d8e{;kUn9+Fv8>nZG+CYiO4=Z+C=fv$SLW zZk&&_hpZd*NNA6DBk)Z6SA5IR4)!NN_K9?f5X>70LtG&1!Cmo*bcqEbK=zGvbxbrM z6ac`R1zFDkUTMkSD!5h9ua9N@xJv|sXdncKK*M(oI~e34vj;-t4`e;LM=uM(Ir4sA zqJNX}V}hVdK|A9UhbY>}Bi1y~ub<`n)g|gL^?rV0_T6-eKz;`F^AW@P9OW>T2g0ra zh}AQY?_21zB@g`#@`yJHWXpM%=vK+YE*W{&34!li@=S~3YWgQ2q-;RG-;FP*x!+x) zf0FuV1v$=xhrizV>=^#~KT12l&(3ivXWvj)OB8_Y8;W4ta=-Q#gaiZS#wW+{+e06M za(+(0_b>TLf|CXLxp9eRO8#0wjt_zO2a<#LE2~HJ+8Vvh?NYKxZ>*vMYDD7?)gx(DM?-smY5cYy7|B~QW1@{SlNAL%N zKNN)G4f`2Bem|eBpU1XK+W(i}+k&?6oI-Pl{`v?G6f6<+^Z5JuX#G62Q2n95YXmn!QpHCK~Y3Topg8sMw`=$KHf-eaEv*5o9zAOl3Bl`OfL8upz z4+`c8<_kjWi24fz%LS_iFBQB(FeX?p2o)su|FEEmFR)DV&`hF!v*32Y9fG?A|3UB} z!OsgqRf+w-Eok^x4@e#wOw|8U@D)MC`$G8}f`1Y`lf4YqLDrRA)#x7CM~%B=T#xOeey+_n)9j-b#P5lAd~5w7)fsY@ z#_U+1qht0_`Jf|XoUxN?6QNCQcl`E_EBA#)QpLO@sOcj$&Zf{Pb$P!-PaLP_58pu* ze|%-kzFQ|!d9W)txPRa8URg6S(3Kl_`E`xDH@(ll9d3yKJi4$}wMXsz4%-@bs4`(q zn{ocoeN?78lqx@>E*+Avrk#Ii!sC?*tABJKjmXnw{R`2yzq%A{oE_`aF=!0Px=}jqn7`SWMW1!9*4arN&GzMN)Hazz&(gzbuD+iV77WAX>X z7srPGA`D+#-U_#@zL~6$-d;skSW3-S7FIzKrUl8dVcQeo>9pRasIJNN)aY%n(0(3D z*9lt6AhHIPqp4|MfUOC5Wu+>ydw?Pk* zw=8K5YVIY5PPs*lM4g} zN-Ve3t{FIZT%hlnArKCz0QYmM`+qmxgNnTX{t4XmSXa8nmzju)aDjd+50P5U-Qr`+ zN8aWV^);2LuAe|3xc0yB)^qm>(|yE9K{GS;z6+n!)0+p0p%3%>W zmfejJQBJxMQEtkW6`rkm=|)6pMnM=S-xv`UMAV!BQQ;^y9_kIi{(WFY)Jx^7d68>* zhrSVoEK!lShJO~3?9gT{O~%`SHp5UqnecH?)CkZvMJ?K<2r~_vS^{m@sNqJl0Fdn1 z)MB+^19zj1J+J|Js-jr{80{!(1i)h7rsj{e;r9o%hN4+m6+^$x zdP5hAW&yBHx2eV3+YHm2qFJfF(m02;M0h3uM*&vhnV#dBiNnIKx+2vHyp)m&kC2$X zU{hbW`2ZO8E1Cn)R!^&MWveGm+%^ZWijRBst!>!Q7itawhlEZ?p4W!W&u~vO0s6YF zQl8_SlRDFxse?=!y&&nMnvtqaUI+67ThzioG|wcd#W6pxMJ=1~`{I{G8}o~z9Nq;W z(Y2`gW9DZ>xj7z`o9l#e*mRUyETD`N@Qm{@bL*guXB=;cR=?(Ockg}e^H;ccbG}nA%yyxbrHiv75(S4hdRLaf=LufAU zxd420(vJfTG!J&_IAHCnZT#kWz%G*Wa8 z0LPb=JigRvWU^5*(>f%~wQ$?x#htuV@1Pt%9aeO(&;*e+j>r56xWFcz>vo(xDluk~ z`(I%z#F34A#`gRZQg*&#JD_6wBidf4WFD3=0T}YQY$D^@*|3*!Ve8|om9qp53; z;yu`!#`U(pVZ0qFw>Oldu@xwHEJph=x0sD+Ec=%migjUHnQrLXkGbXC&b43P(29Xz zsN=Lb6ZZF3Ob0lEp3%(#BroTGh-V-=psHs>`* zhm0`E^oNO+*+x1qKvZLv(4IQKZBAZ)qPIZF8>cp>58AlAhV-Y={!e za7{ADj_JSGmgZ22wi&_koz6C=KAUKG1{)~9Z4M3TnQhMMT&>eI3CD;3e%qYEy?SPw zv%6Q%Y;&ILrG3Xu(()TR#Wp82Bz2unXPfh8ub$cF+})>VwmDDt{lGTo-Pq>fCQ7%> z;m^O%HV2=scW;}+v8vw#{L^eJkxkn7Je#Nj(kKrPHQO%0R!GX(Gt_Uh5T+zQH5^cp z=a|UZ;&~A!LRbdm*;XN}z1@&!8-=j&R%a7EA^ZPG@US4b9x(22ff1sAmvXkn2@{=^ za=$H3U+C5&Vrvj4ZEFxF%}ebPT_U>oDL}(Z9VVJ9ScKQVf?_{wl*( z%U@@Bi{;;G=(zy*Sh>c+<#)Am676%(1mnKdW9e_}^%9BguDb0J9qzaf^-9~0YIdZI z+m>>18^Enua@`oA{%MUxQUyP58e8O3QaZXZPQ{qH9Njk$S z-{3-W-fy9nB(zS z-!BaPePo~6@mSySnBMVN-gx5ZU#;OpL(ese$K=LENByOSD-Bm0-eBlsZO3D3w_ExB zhPd)*?}vu?@UWjZjK{=|bB6HeQQvcgvc`=mGmOWuKHc)i8sg_;{R<3n@L|t4jK`pk z$DYRPNBuU#TMfTqh%=D#zcGBs@DW42ft3H)5T_vaONReuxYrO5A?00$hYbJ6FlAhr ztYJL%b3Dc~u0`5A*U)o+E;c(JyLqYQFE@;HfZ{Ql@kY}A{f4+9v7a=2+Hj{K-bu>$ z816OPXNa$oa^^sQxGceP!@-6_4XX^#Fg#I?5aR;0?>Ry7=b7i)GEh&w`18zjZ5h3# zJpMdW&q+iBiEm15&k54_Bq?(aM7X!d%L$4<-%gYhq}o*}_bmh-lT#Cqg?&~&KQ2#l zf9uALn>cY|K3`Wi(FDpDm$prx(-;uA!crh-6uwPK{So?#=#vu*8_l6@naw{4wn^vX zo9=7u(-<~ZzA3d2H*Px=&OLjt)NJXNO_%MJ>UDdUw>;SLc1yB8se0hjdC#V8hh*-y zLqUsFZ#$G&{MH*y9j|OCbup)BW)HTN?&^|EQ^zYCGY8Vy_sVkz(z(=ubY{_qw;yWi z$elK;Bh#EZ*fxDeM>Zq1GdfZkwz=z#rjA!>CD+uE(^j7Cl3Y{AtLs_+59Qed>FlBp zzxg}jZZ~ygN6+d=FTbcGm(Ct+n<+IHb!5}@_`x@tI`-UL}G#uz%Vm+021- z<^yeo$l9(inKNc}lw94|kuAv_Y?~p~jUAbi+x*@TrF%xk?M=3+6EB-OK?|#`a=x2jq5>@XG8!Nkm*_#I~du+#r6@#RjNy)W) zw>1Ra!R%qXr#@QQ9pt7xCTEtryj=g?KBsbT&>iHw^_w^PcWo-~yL)QGj>mNEh{DjO z3CZ2l8s2>Do&9b3*Y~&Of4P4^*QWBs?yDMp_1Mq$w^cp6e*xFOo)*af{WXm|jT_?! z#q&s0LLKcsM)tihhk^`OU6@F@*tJvWh~oT4z9hFVmNkqud;7$ci^ zvoM*4TN4HuRq4qj_p?GW$#oxQl7ETDj_R~ojBLE!Jvc>aodxk^!m){bjO^`&7}-CJ z#K?ZC5F`6XmMeZ~O<`%RUve?BHE_$nxM}$qId$ArM@IiRwjP!dtHTi(6Sb^M+ntWfCYe?lwSa)zJQqEY8 zGbdqk%Xj8{%%KI7Z>4^)qj1BKf+cmZdfpR}yI?f2X8+%c$gWVNKhq9gW1%b%dP7hm6ZFX^E*5??YZ1$ODC!I_>ym7&ml$HqYfs1}(JX zHChhn$v_!{WWq~990c{jIUYE9x&tOs{&7oe&TVAx| z=rOG1U~*KiNQ(@hb21QS>FwmRL)WKmhc>6_G+GMU=_jdgM|%)Qo9mtRgBI=Zzotb7 z`#kORURt8loh;Dl@=UbTQ!>`+c^Q$DS(Pa&rTik1qfJC!DBjw+Dl+mH5D653Ns2$(KMy=yVl7@-~A^6NhY5yqPFGyd?{t`LaQN5sv4TK%WLX7n_ z*t5Yj=^#kYpb2>nHTS=x$V;KJ5y(7bH+k?_uy8qB-%Za1bEGSZI*2{2Z<=J-q>XGgG)%|ukvK+fW=JRI3P*jBA1C`44 z>N4V}L#l~H&fuqT>n=oo)twm7k~ML_TPNMc*zbIqM3Eb)<+l8rLCs+~m_`(r-9My$kd zh_i~(%9Pw7GpY*NY=GKP8r2c{!JCrfOtD0Jfm{Z#zS86L%q&ul=%d?R!sBY9X^vV( z*2>hX8KZ```*T0bx$m-kn|%vM(B=C^{H{cPXEqZ#sd)frrEpUF6*&bcijc5aQG?LQ zxONbYxrioStX-nnN7}_?R%uGs^CPh6^yvx_WO&hJzG+IOZK zmZ%iS1%Nb|$OsB9lcTJHu=gUeHpqHhL&%gRMpn#Su2ed#SthS)x)PUjWz55PRmlyA>&+)lSg&2l1?1C_ z^6>$la5=$?Kug;@|tjUJ}l3NR^RQNVO{+Y-u?A}AVa+_Uar4NL zBTo%4&xb2#h0n>Xso@iCQ^FS|AFf~1lg7!;lqid{L|L3AbtO|ujO-cqfo&R0SE6Ul zltiDyn3&hET~o)O@%*Xh&ji?plNYTy7XOl;#(13db&J*%CCW}XGS(l3nE8=p)>co7 z?#NNJ)*Nke@*k0yx#Y_$7pdUPB*&2bY;rQ0(Nai>UbWL2KBjisq|Z7%^Uw4Z$MKd( zeDp<=zp0gwaxh>Y-os}X(Bfp1l zj}WTS_NG+#&duZvkaZY?COtAhlq*&$mOrEiiJpr$SWKZXP+d%i$F}0kET&M;tYQjdTMMN^V=)z{wsORaiC9(9MC_|*3gsjl zJah-WCpVKjHb7AslIJ z)wn7Xz1~1(j)LDYlCEtBzBI^yAhJda7 zt1{zTl^MS>&b!LGYnAe!upY6eY<=Zh5qrvP)qo=Ql-W%D$Ns%xjsexI$SH=Z=|p@v zv(E#|#A!HXjW<U0!y%S`n%O;gP&siLOIeYNt=>Ybx7cun zq4FrRBAd)sK4nVec5HY+U{0KdQdZ<~tEc>@oXAhje$i01lX4>eVfJr8v_iogvK4MW z(qK-c!tB9@BMgb<$o9@Q{BtlR(qOm%%!w?ua@9P_iQ_kAMYdSJ@|toYh{}`yT@Xz- zL)AFSiflLgDZ^c0R^$ak)i%nCylwV>86E&rBEL1v;pfkZ3<9$vry8Da`4h}O&+tOa zpJTS(VvfR3jq`gLQ>MP>^~5#wRE;F%X6Az$OD>|N$NK~}?;l`X(??^}o`;H4 z2%B&!AQ~v(1BQQZ2n~e%rww-+ss<$dGPCy@?lV*^NHn(0{$Ilc_m7mg(GhsLX2|2R0C|~p{MLVni5fsA^62s?s=pTFv$1XbH6g%^GLncoad41{gmTi_aD8V z;y^chxZy~{F@`mUo<};}YzQ8#?|G!qIIvp`J#X}8v+ppx%kZxZ?=ytz!TSFG3gZLY zYsba;qVHOHry-OO>U&-&^bhQjhGPu9Rvd&7%4ZtJ`Jh)>ezPHT5$bO=+-!KOq1S@@ zYqP&=_^_epg%aDBcHo(So)-$61p6IBNF~^Z3`662rVaZVo@6-0kg!jz2LlD1Vh9lh zyUFlM!zG3=Qz-wMAuJT^ZyDZeh=-i~?-_pI5S|M8&ly5j!G7KFEyMkWuvjSn&@f0l zJ7rjISZO%SaD*Ye7uG+^5c&)D979Mh*ozGzw_vv#!g0aA)o`ofw+!z!Y&V1iL;Zg? zg!F>_f+3U_?0tqXU$74v{@#!Yk>o>&0V@qpF&t(%+OXOX$_(|V8p52xUT6qE2K!n= zXfoJeHT=5aUl?vPyvGm@4fVfo2$cqVhap@V?0+}>Q{x-Q`Ni?~lVfQP!W3iw@T!1u zezAW4q?}g;#A^bgn-0eL#Bq(mxW@0XVzA;FpS$i7DhY1+rZ$9~2Qy!6mG ztp0UpdQr#SrK@)D?v@>m&9^i^(_Gs1hx)2cnRaHU%o)`wji+_W^x=(RXOQ{%;-7TO zj*A!Hu~@n)l0jERD7By4O?1?OyI<~>O)qyRcRbkqcJmpXG9$Y7&TiSXvpc!tZx`=f zTrr`dJ~)3o^|$)^qdR2=TRO8-X0kQv**aU3T@@vJx|3V0R_y7{Y}(V^X9s;7-6=Eu zR)#DIyDCyUyZdk5**$2}&h8;Q^7V=HOS&qOKYyvIqx6)y(=M3?2RgqyY!1#D*(uX1 z8!zZi&Q5d&iN_y3=h3;{$=cxD5uMU-L3eU&+3so0rHyQ(p*uNyOLJx%%X1d@8=5$` z>!lz4XJ@+QB6(Uh(Df@N8SsuBOo0fi89h@XnNkxUaWttf`b^tYlI;x)9COzYgvAfulUnIw8JiA<6g^Aw|d;g^+LU6Mq` zJ00jG_1QX{#oRMekRdvJFo!vF@Od&iG5&Ly&~q~A&<7XK6Q?Mi<&+KPV&Wn$Rh7Z{ zG!BopR8p;y=U zoSY9#S=y6ks42<>)G2y$6MpkT!f_qQT#mIPDfEzI`-+xcQY=-CF%1YSt8Xkg=Sc)m z4CGRP?Ho?pW6aw~dn~%9zev-pW6V1i`63MDQh?FQ5IHm!P)!e|HE3tS^`SLU=mV#! z(?L^pHh%t;yx(W^;C2@A`KP5tK1hxpTv&x+L&qIl0N~|G$@?Xv2Wv!4i1BG@N%mNU zEjSL{e9xgvNJ|DM22x0AY031cPrDrNKt2ypFCi_Amuu>c!r)J4pQ1K10ZvG&=+pIp z*VNRye=}Dty>9JQ%Ze^>o(3A$taZ&*D^{(kX=couN5#q|Ynp4Cop&gu_oMIy3Bt0P z3u;dt6%LpZuC58QHFe>VnsCGv{N&l1k*C*%3u~^dtsOOrqB^TGvT9_wFki3PeQL%| z7(3Ec4@+yp#WmFr2;Nzx3L9D>f{PK0ICMtF^0IS1ez(?5d-Ab)7p~ z|JIL>dVpIA^a?Tu}^$DX#X*syHP z`j%y%QU5V_AfLFL8~P5}lD?(n*3@muuZOoMzM)T$kF4!;b^Z9yy7QPhB<^nS6iYv4 z|8bPXyXfI;9JHgU#71xK2t=_ z51r4&CtnuV_Q_PZDQI#3aa`MHU$S@q@wKu2*xs+`*Npm)oyux41$^ri%|id;+CFIA zP%rL3<{0>WBK2d8Ba-14jkRsr_9X*0KaMVbvkC5xOhor z;(R`3B9B^mT!Tc%Q1IzmxyEI{r)#$QeDLX-tv;Wui!VsK=&@t#7)jRRA7x!6V(@HU zckO1%*n)n{d<1P5?#Zm@eP%Pw_C7N`UXi#M$BH+_=OXoC6@$l$F9qj>dQTe0ePzr$ zrTj(1_}CNQqm+BimiSmxn&X59fnj`XX{_a|_EJQn1y(LLU$o#t!?-U@KhM#&v2s3n Wv6TzJaWI>yd)UVsYdq52{r>}*GN5Vz literal 0 HcmV?d00001 diff --git a/src/modules/mathlib/CMSIS/libarm_cortexM4l_math.a b/src/modules/mathlib/CMSIS/libarm_cortexM4l_math.a new file mode 100755 index 0000000000000000000000000000000000000000..a0185eaa9208381cddcc8f8aef4affd134bc8aef GIT binary patch literal 3049684 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Ξ7K|5CG`Z0BG98*j4m}9JCbz>h>m(DS@c8}qSckIsnW9lk6rnccRH;azl zO?*tIiMWtX+$;G+JX21@2kk^% z=qKX2aUw3w6K-yus9XC)ymU^)wRhq!{1fpiI1#tu3Acz&+--a!-XtgD9-M+XJXPo9 zDV(EIb4Hz#bNW=9GN)*cPt7~_l$~>@?wmj6=EAAD5KsBJbm~pzQ}awYH6PSdYObAX zbN$pjH%`r^c`7j0skX6C%}eLhT)U^@+&lH={;7EtoSNJ4RG3Al-X=aZZ<14U56-{> zo~aA+3@*@FIHS(U1%0MnF=uFj&%!(Qj9qYN?t(w#7Q$J$5YPC9bmm>jXW^N07CxwF z)IvMc7W!FuZk&Zn^GujqXWG_23oo6saP6Ln3-8QZ_-El&a29UEGhq>(dE59byh+Z& zJ)|j`q*WTxG(*!m&CnW+Y5JC>!IYz^DNn0Yfu`po4W|b+(}?zQOw-p1P4B=tn8I^7CC|wzI+qygoSM?- z`Z;s%Gx%J(WzX3ucP>u(b9XA7OLOs@n@Z>YxqR+Tm2>G{Jy)mNxjxg+>8WupVe_1x zTj%=HK9??>b7|$C^HcBKpZVv~G&q+w;khu4&i!S4E?p<*(hghz3@<25UZ@ydSPXRm zF?~T}=0d~x!n$QIz=pe^HvEOU5iYE`cmX%k1-+3kw2g9M-K!TQ)-DW2ztFL9VPW$E zVe7)c_Jx6+3v1VRy^V4i-K&>8)-H{ie(7W5GQ#Gi zfUQeoXil+38p6XL( zs?YG0zGJ80iknhb{8YUXru0Ib!YgU&Pvxn0rA+AuZK}_WDZMnO5@SvEjXjmHGo{z= zl)Un${@kC^SHYCthEsGEP5n(grEiicy@yxS6?vszp(|-dU+GuOl|RE*(j9jtUh!A% zm2f33q$~eQzVfb=E9pVI(ig^+v^1}zxpk#)?JH^HTuE#1%3lOm(l)%37SWZzjjyDe zQP*%uU(-wGT3h04>yEt!Tke|L^4IECxV9GJHQY+q^j5ys zw#v2jpk9+p?b?{@*ZR`9wwC5KT3Xk}#=bU|&b766ugR@<9nAe}eH&a`+wdA~qw8Q3 zUt2fHwY3K~>=NFHOY+8DqMK+&-Ed3#Mp`mA-V)zLckB(j@dvAWz?C+gpAMVvw&eXA*0PACd4tLEfa>>ff<;?8Jv?da*k$bPR*z}J)`H$jG5z^ ze9O+jf}6nwKO+~yOrDD~Y9Y<&g*+4H%1pjjXX;#=nKON+&yAUk&6zg0X6DkKX&YxI zuiTls@Mhu6pXrNWCU3%-wuoloGM;JMWG3&xEx_tgbJ2)^1I#-_qE)wXu22VC&Yx_N{@PTYKf+ zirBjiv41P!;MU%Rw=#}yBOKov%jDMHfjh8-cj}V7gG+R$EvY+lN#E&9<_<0Kov~!^ z*d=%8F8ModDcr?#@s3|gcm7ho6PC(de6QY7OYP2F>UZ?gxQnrQXUwfTYiZvZ8|N-w zxp(5yy9<~8owN+@;!SvGETX$;8Q&S(y?#T^(uWy)pw88hrhP`Ju+`YTu@41a|?`_0;ek0xc8~I+?DEIb*dQWY%dvl}T z(;MU7UYhsJ#=5sQ_I-ezdwcEPiyQAg-1zs>Cb+k^;k~?x?xRh7A1sr5dk-GK7Cxw3 z@&RtqgSMp}$SwV#ZKnh(s@da$pw`_;33|I5Ars8h_>-VuuUG~J;nxR zF<5dKE_qBY1&o#=rj`<>mojFS3N|(twy}fp%Eju^!`jlv`ZB`p_bH!UeX(8$!zcvZ`dW+a!a`7m*iGhqOG{3w$hT`%1dUeEQ5`@ zR5#jE+vrPuV=Rr0ximM{(q1}CWo0j|jk{F0-csB8OMM$Gl})%bx6v|QCQD@(FRd+H zkt=dVtb1QPquc)=KV%FkHT}vx{Ew9YAva;9O%3K*M zdu6TcmAis#Z-v(Wie3jRXA`cpb+j_p@yc2!D`yARUvry|`BQ(pulkYjdxx?Y+8&J8g}2`kLMuYrHep+Rj=VJ9};I zoVBxa*KqHx(cWLv`(T}H!nL-K*2X?wTl-|4?C{3eup6-DHgL;t$gQwJTX92er47B6 zH_TSq7+Y&&Z=8+2b2sYN+h|*Vqi=%^-i8}<8*SoEys@^)2Ji9K*ecs#Yi;eVv$glp zHr~RWx=Xgop4_QBw9|IfPTkQveaGyy9o`u`b_e#{j@t7(buaA9y|{yWX-DtnowiqY z)?VA0J7Z_<+#R{McJ|KOF?)Zf?}MGa4|ixE?eIR{8GE=__sP!LlY4cK_S&A>t9yE{ z@0q=}$9rSX?fE^w7x%(m-iv#8FYW!kybt%vKHh74b8qaey|uUZ!9L!5`*0ua?7Z0cbG*9!vt*B z0&L3$Y~BHE#|13(0E>LU76ZWcL%^0Jzz$=;RujOE|JzTiB$-mvD5W;2l$xbeYKuv! zd7M%^Y)XY(N=1B1Eea{MFQ(M8lv0OsO06m>b^M>-x}=_R(?-f|m?<}FrQDXCa`R5g z?YJoydMOwADYqD;+1_Ln-DpDGZ?lsNwIt0>{@YQjbuy!7P)2Q188t^|)Hah*37k>8Y(_0`8MVh} z)RK@<2VzF8NEvk`XVjXKQ78Y$Z|i!-%@`TCX=dD-q?b4@d^AuG?d?L0>~d9Lf`xq_GHdVZcO1$k}|=DA9g=SFd! zt0j4E0tlCcg!Vtnts_EfQiMm+gw|#VjlhJ~WeKgo5n7KYw30w*1Ch`w5}}P`LaQl+ zHc<%|X@pnT3AbkuUehEzWD#E5COpC+ysk@l1&{E0KH-%D!W)EySBVI36cb)8A-u`| z7?*@BM38Jy5Y%Z%wiu|^F(f-2BoPnEq5#Rh2+6Vp$)OC%sshQe3PDkWJgGxaG9cgh z&v5yc4PnWFe8+`k(StnlAzut2-wz>QjvzmbAzw`(KZXUJBnxT*74!yG06n^(x0r(3 z!v($b-_}}3d_gY?1-&m8^s-dYhjKx$Dg}M47TBUz@JYSEmW+bm_|I?smR;aVPQmZE z1-|GNeB>AWVo>n=VZkp)1%DV9{AyD0$FNA&QITv?MYc{C$u?7T>$pgExgy!)i)2YC zk^`|wR-__1l8aQ>eAg|iC9lZ${32fpiu@of z@|CE_kK!U0h|dL_RXl>9+h@+(ovAH^lVmX!PnD1!zpBa$qG zCMu%_RfY|^j9N??HgOqs*fQDR$_VjgvMH2NUo4}BR7OL&jH*f*jny*fYh{7d%V1!X zg@##%eXA_A>@plUWufDi$-Y+>kY6STL0RaBWz>(#!Z0oi)ub$pL4|F=ib0YUwuvf6 zgQ{>1x?;4L3fIIHqr+DC23IiSR@IqAF@q zRjol+QJbl1O3RUn1GtwfHk8|*4!ql8BMC@ zHRzhrW@=s&*NiS(^BY{v=;2_z|!Bv}%XRD&j|7DH+z zCaDfff;vZ1h$q>)KvI2?gbj(LhBB!&6p|XNBxqbth04gHyczPBD!w2n7W2=-Ry966A5** zFVS4#NlTEK4BEQZzgL>Ex z>!=^q!(m)E`bj+;g9bpb0TJ0?5o%CPszD*TLA9BNh;W1IvJKGV8dQ&Ousxwc4a5f3 zlN!`WZg>r)K~2;K=xYtw*Bfl#XoyX-LG`VM*tQ#D-)V?lw*dxTL+tqtb`UhgLD--M zQ9~TX4RMe(#0hAU2sRNSn><2Ivq?2ML^sVg)ASH-nq9U@_PD0mXqp4D$@QhC zIg*=RUul{XwMq81ChF@=zHcIx;%u$n0oC zt78rAjy7^SQrGS1L$4$C{Ej{fI?^EQ7{jO|jpB|mN;=X6bjcy?q9NJkho~zIsjh_R zt~6x25yD-o%XY~T*R^_lmmdjTYan)|zSOlwayRNLU2CFt-J#YEhkDl?8QpMXcDvsL2*Nu99*B=GlXb^UTVbqOAaW@zx-DrZ4h#15njKraUn7)LVp^Q*p zLCjc1psyj=*AW;PNbH%2>RX8J+lU%CNF2F{?0X3HeMAldB=VY<+4r+aY3^t2xCX(O&j4TPTE7kh9Z_3WYC(*{b<9;-dJul2aT-eU(wPaK#%v2XRz z$nJ>)r)P}Z9^dzRLf`N4gP<4p!yXz$y?7Y+j6u?i$G9&Kg+4Qo`pih~qk+4@(3b~c-yB4Jc@+1l`H?~I7*dB2cXCzJB5kK}u z^4K5olVBuI!jUkJM#?xI36o@$jNzCXqcJn)#^P8Q%VTAXC)(H?>tl6djLnHX)+Wx_ znz&Vju10kLCSC?Im1kXZtY3_?emTkdRg@zMDn}OR99d#=WCiEQ znvmlOF~=9A9AA=id_~FeH6y1JW==0yIlW}(^oo!EY&7uv>vIEU(1jAws!*T+{DqWyTOo6K40#%a=Vo5HD6{R57tb$px z3ueVBn6;=7mf}KKNeW?&Dbi(Jq^ojKDl0{)Y8S1tQ?#maF)Am;sLGV+3NFz#xg=GT zl2o%xR>dh<*HM*t4TSo;tEq!Dss)K*tMh**Z%MRSU>|d%>Xuw z0h?!m3OJyqd7x$mpyoy30tvWj8Ms*mxOo+TlmMWq_n)4QZrJ@OUo%QtE9ZVnu2L91v7dI=8P01%#@b4Qe4JPaXBZ&5pD`*yp)#l zQ(7)aX+)UPGEvIQ#3?VAq&xzq$uvlVESV;=C{5<6w3?;Ue40t~S)AtcY#QXaw4UbE zdR9p5c`>c#q_m%w(|%S-`*}4Dvs#+W=xH)%q)Ea|YgsGJXY4eebJ9HFreV%Y>lr_- z=Yq6OglR1orTt8t_H#+vCqM?|VTR0;8I(mCl&3Okp3dlbCL?5VM#!@nKyVq7;4?;6 z$QXGsqY_d^C*(|!RWdCy+eDaWh$wFn zao!-3d`xfzPhi3zctRuuLMHyZefJ54hzXep35SRYi?E4+hzXAfiHL}a|9WEq0&JQB zDxiUyW`GMYaMLURDGq=P57?9d*o+9&lmyg_4BV6g+>8o9S_3ex1CTKQmo@=RTR=nS#4q=dAY;?h>iNZTncr2J4{(lRKF)D?;#U4h1vmXW5Dg3vtDGH4TN zJhYQ^i?o*%gpQDk{_hTMP9bw7q9m>)(j;Xh$|Nf!Fp?S)1j!ajC&@m^|9{?p z{c8x3hQvdZAtR9g^{*ww0Wt-#grr0M*S}K`7$gsZfXqSSA-#}vNExICG6l(ltU#I| zQ;<%`7Gw^x4;g{1K(-+JkpJ>IAchde|1aAT!Vl4cC_@||(hx(41H>0%2yun@LSPWh zeJH>m!HiY;E`!c4eS{Rd%!?BBTY;O|%14-}Wrt}MUBP4^ks(<}$3bh1gh16@wt!>d zc0U)d2fhz2X?-Lf4|v_!i1yStGWD>)al5;z|8Z^oHRTdx-~Q-_TG_*LkBkSKdGXFp zH8D=huJMlHS?LZO%q8}nZB2GG79+Oc%XJ%}X)>F%;M>+yA-4COT8UPFI65q!;CC&a zObT0=Z+e>Z)K!@!L3T|Ur{qo9Ab68K#FX)XprCQi4#G&JbK3A(j0ftrtuN~c-?P=}SbDELRH3gen9#39ir3PD0?b$$ z^dn?m)CycaB0KB~78!CJLIOY1Y>742#2!R`LXb;_mvQQ5IUjA>)7hN*VfnW*V59u0w9npKo)WZctNg!T*wtL3b_Ih~mkQu`QjTV<97i?Qi=zaa!;y_0=19bzap1AyH=?l4H-fM! zH$1RCHyp5gH_Wm8ocFL+oT^wNrxdo0^A>i4lM~Cv#eg;7BEurM&M~!Idzb~Tbqp={ zJmxO<1SXifA5+Tx0yD+kfFa>2!^rSF#<=q&V6u2{m;s(J%n^?_Mwr(LW6x`jiRab9 zbn+@CCpcE}5 zkcoB|h(TuxAkc3G{Ly~|9-@VATB2=k>Y$@<%A?zFil8@c-axYn(xCMPFHw<#d#Gx` zZ>Z0LGbjq7L6nlv3zUyg4JuEl05u|%j5-y;+D1#*coC*Y#RX;pF_xsk09K|Um!BXs}OzSj}iOgF$lif z5eSRh9thlRE5x(gT8PElQV7~Rya=^Bvi(7RE#Q-6pVT=$rN=V`7csjYB$nRYCbYfYB;h(sx5Lu zsyvceIyF*98XXCf_Khr+wv8N@)`|QpEg2~;!xiZ$Lm3$-a|myj`37H?8HZn&?SgB` zR>6a1GvURuIQW>XKm1JA4lW|61GklvfD`3zz?NY) zg|jNb!*!Hg!eL6r;l)bw;qR1q!%vhb!*3}cgxyzO3qUlpSjUw5Mc-z1}I-!`K}-zB3UUvgthUnyf*Uk77WU%c_DPo43C z&x~=m&xLWBkB|w$$IQgj2X12EQ(_|KGi*ZRvuE&(p4OTb*u%g9{VE7Y9AE6;q}v)BBc z=azZBCxb&|_j$zAvUZ#TdD({Abao7_6? zr@JlQ4{?K9o4biwOS)ND)49Q|cU=pu$6WiY>s-HEC%Dqt_`1s37`Qsx2)hC{WUfzb z)?MD&^tt3xm@aP&mK+LetvXp+wq9YF8h&|UDzWpJIhCj zc9M@8?Pwo;wA*=jW;gPX*S_+hu08RgkGIJf`&fY+hzfv!Ww z10RQw2gwem51Jgr9(;5le{kxs=FIKb>#XHi?Cj}?a*lVjcW!W$cb;-&bUt+a>BQkQ z>ZImW<>cZ-a3VOlI8`~RIgL7TIQ?`wbYyg%a+G&&aI|-hcSJdRIu<)?IrchpJFYpO zI*>p3=pgo>$-(qNvO~xNABT(wx(;m*cpW}JIJZB0@X4P0VY9u)!(@B6hd%bihr0Ha z4|(lJ9-i6lJp5=!`>4@Q@=>ClU*^jvFIvyR{ettA%d-kZ_mdhp9R^7$b z_K}O4E$G5(Tkf)N)9>=mX5Hnf4Vf!oBkbyEW8f-hQ@y3V!Fdd#)Zde;?h zP3LA|E$Jp^ZSDrO4slz&pYGOizsW8A{1P^vtvC4GE zTeY}5TYYesw>ogAv%2oFX({XR#?s0o&oa~_)H1`v*s{q(&~nP-!eYNjCTjuXPd(F2!^UNu{Ld}J}jLh}C1k63X&ddm2(`MyfwPw9u zc(bowj%I(oWX!m{smxToznR*5cbUSyGfcC*eN9`uwM?hH*-d|X@0rl}44a7gl$aR! zz)d`T%uEPALMCNC7slN_GsX)(b;hSYcw<&y2V+@ZDPv1ta^oQ1C8I>&Hlu3aB%=Xe zccT?w6{AaE1|v?tO+zKWZbNIoEJK)|zhSbUmSL?QyWybUPlIoM0|u9V1qPh{Fat$@ z1B3hiJO;u3fAkalNA)ZHOZEHw;rdJdCiTHezP6u##ac%cgqoYqYXtkSIuMC%R&TInta3hSN) zUg)p{P3cGmRq7Z9p>*7XEOanILOMA?XWC6c6WZ^BDzw*w5ZeEO%(U5q1+-;?kF|`0 z$Fw|yOSQ1U5n8#yhFVR*JX)i{zcp8bhcqvO3p80mLNp~pbT#!u*fm{3b~O+oy&CBu z*&4MWz8d`@>KY3nj2Z_a>vw5jop%Lc$#>OYu6M0r@^=GZly`}+MfE~hqk1chs6Ga> zS6_pPtDnREsa+5Kpe7z#siqx@RC5S5RfC1{tHp)>Q7s7_Qf&_{P<L3uC?P+knXuY3@8OPMnKM2R>2 zosxWbv668(Ovxo&M+qLzs+1JIrC1jJQn4dEMR6?LMe$p>tm1L_HAR|;&k6z&wF-(6 zXa$o9a|PE3eg$~MfqX*5fP6_ru6%2RpZsuyn*3q}o&0{pvK$$_S?&g$C?^58mD7QX z$l1ZqWc}e|vN(9LY$iNdwhFE#+XcTaI}Tr$`37&7IfTc_P)0h+a7BvCNJjpZ)`=XK zwv8;6_Kk!|qa$^sQzMzB%Of|W+9Eroh9l#o<|7@Yb|b~5{zYC$GDW?Y6pSj7RE!Fd zG>p=cbc$k<42)Wpz(uu6q(?YW%GZ!^-XFDqY&P9~}9a@Ci9bN?O z9Vx`(Z7syJ+g1qNZ4ZRS?FaJ&Ja(< zsF4w3oJc(}aU`plDsn^A7}+7}jEoiaN7{*^kRqaq$P- zQi^;>&Iz9&YlO*B2w_%~p|B8&Ls$;AbxQ};dCLkFf6Eo+a4Q%kdJBs>6-q{p2o<36 zglbSeLN8ECLW3v@p&8U?!EdN)!97%@;3Z05kOs{rcmut0Qv}_9Qyv|CQwMEx(-JLo z^C9|=fIs@J00NyU5QBCX$VAHsl%h!l8qibxUFcH&A#@1;3|fPK8BNc>i(cY8LpSh| zVbFX`7!y8T3@4vBW}8WMBjg7}x+-25w-T{wB~uF9Lw{5`a0q9KcPl4D8Tp0G)KYKrEdR zU_)mP+@!Mx_Guk}9@>XMGOat{MC${H(gp&@G@-x%4IId%K>@BbI6#7i2wYId0i)DO zKrVGU;6u09}ePfQe!P_)0zvG?32#DDqjrkbE9sBmV-dku3quWGetbwhEY$ ztpi+So50q!EuiDt4iJ597r1}zC%|`Y5BLfF4ZMOL0141Tzz%u@2tkj51JV(hJ~(i-jo>KVJnb&Q}1Q^Ce*C z>p)OGr-NWX<+Yk0_Z*+1CmZh0LRloK;*O^I6Qd+^q;&2(oed8MW6TE`Y;rj`x6LM{qX@J{`PGNJ`uP$!{<9TV__G1$|FaUO{IeKG{xb*nX*U&D zu^WdA-34%(y9gZpE)2K$!xvZo!xe}8;ea#vVToh=VTfDb(ZsdxDB62ut!_l*nzDTZ06Q1)@^GXE44L%{rCMPcKmxYw(xs3 z*8h76R^@v(mg0LNc6Jkwt=x>lhHnO8bv8Y)Oq&kal?`)j(-+PH*pBZ^*zkt+B)X#+B_z6Z35%A){l{1dx5!HZNN;fmSIX(A7g@6 z6ENzlI1J5d7-r#{H>UQR69)0k9Ao%R2gCkN5wp1>j%i=v#l);IVQf~&FoG**=!4~5 zbpP@)I%9bT?Y2CGmR{~cUwv&rPkt>$mwe4c2Y-!0-~Ea}(|z?vFD^YqH!NAAF-tmV zlO=gH*OCZ&XYmI5%2kq>66krK0Kh|5pg zh>1^gh>}kuh>%Y&5SpK=5R9K5Bffo%K{S7iKoCB9Agn)HA%s3^Ar5Dx5Q8(kh@2T( zgwM=Hl=94W6xGaJ)WV0MsQM3WQJ4=;qRc*|NAZ5ZMeR)oM)giRMP*DIM!8QbM#)bL zMv+Z3Ma@qAi>#j7jYLk(M;cEJM{-TIMgE*DkL;ODjZB|JN4ib=M#@dvMqZoLiJYB~ zjI5sEibPIOMw(09!ffJJ#_Z%Ijr{W8Vvh(3}*GV z6(;ny5O&&6guU+%fR*)I!y@|CV21sIFz$XD*nZzZ$UxshNM2umNMK)Wh*n>E2umL# zWV_cTq`Ox?B%@a%#JiUzM78%Kn4xzycNFFOO8Uls?% zy(9!YeCZt^_tGSQ>ZNqRau-WLd)KLdQrD8dTUVdIQdgxvT~~ttT4%6-SLc2I^iD;8 z?@msC_0CH_=FV?^+b;(FdSBG~<-ADt3wi$N56Z?{^2M-*CsJZ%N0BFT7*G z*R-SBSFj_|_q;vGce>rux29dz7ieeowQE21k!WA=A#3mUS!^rwX>B9;B(-_^xVIVj zsI-asFtyS6Y`6aO?roj&&TDP)4r$HuHfV)=^R?Q0pR}lWPquJ*SGWB20$RR$*|+q1 zNwt)FQM3@emYY4jUNq}@r8NtC`8HE{X*F+qax}m5{M}UVIog!u`J^e(6WwIyY2760 zd8diNldNgaW2te^;0`=*ad&v0 z=`Qm;%$?@>efRZevhLl_nA~%p{dR*rn|3pP*5oGiEZyz0A;j%-gSlICgQQzh1D%^! z!>+4l!dIXP>p+*Xx<@Xk zI&~M@IxZLKy0b^rb)O$?)OI}Tt<8Q^SR3{zvexpERjuTsJGHcrC~9{euGWk^?5?SN zm|sJD7*XT)(4t1;;q4mkhvYS94_2!`Kj^M*dyrq9@gSl)4Q7fVh<>*$sep& ztvUBr^*R?-6+0uUP|h}0_Ri8(^3JqXjLut?Kb;0EN1e(mtDJC^1Sh9T7bm4kH7Dju z4yXO6hmP-`PC3>-ZE%cz8t>@w)YDPxsg@(pQ*Oueic^Qr6(1eiDw-TJDv}*SDtsJF zD|8*iDtH|zD$ecKpM0|Kf6{DU`Xt#N`^3lI`H8N*@)KTrwkKzHhvgsbK9o1wHI*mY zrIvfy1(s{s8JBa}iIpGQQj|~GZj{yA4wS{(J}Gmx1`K2|E0p$Gvy>KE|0#i6e<-oAZYdG7&M1Le!%7zKTb6X( zmnuoW&rsrbf3H~g{zNhN{pZC;R;k64R>8$JR_4WcE6HMKEBa!2t6xQQRue^=mW@Sk zEYpheEJKPyEiH?TEv1VDEt!fgEPfY$wD?f?%%Zh0#v;4$kp;X^$-=gf!9uZc%bdNi z*Ziy?&wQaE)cjR}k$F*pfH|(<%*>@=+DxmU*6d~h-t1a|quEBjjM;ELm04~6H`Ap2 zF4Lg=3{&%bUsLIPEmP)vcGIK0J(JIQ!zNvMB_>6Aa1&gfnTczjkcn>Ig|Tqnj4@?i zo$-%cyzxY?gK<-?lyO!rxp8Ffl96L>n~{2Mk`aHdyAd>3#b`5!!DuvR)9_hNw_$ot zmSIGWzoC7OmZ4e>yCGlBPXlPqfWhYD0)uytVFu418yI9h<}rwR{72vU@u<$`Zbply#vSnl-I!msO>!o`u#G$gkqwr!#6CrLEsx zO6$Bkn3jC^S(@wJ$7%9+v1ycdz0wxd&C(jx71D_6JZbjoH@xw=FVxtzo^SwiBNY;a<+tW#pJ ztU;odtX$%CS-!+|8QR2lnbU+gnT-TTnGXr#GCc`@rRx*MrSlR>rDGCc(qRcY(k=&u$mT;ch3# zS=>g)@!bxH+ZT6=>k~JM%Me$Na~BtllND!=gNjqc&4?YxJ{8-HjS!oS)e{?vWfkj) z-4Lye?GVk0jTMcJwG)ku6%qB0JrS{s9TqW&%@t9K^%W6~RTjAsODRGXJ12Y|QzQH% z1|hr{V<8TL7|~l1F{eV_F(X0_F?m8pF+M_SF-k%b zF%&|4F`osQVyXq9F_D5t(fWelquB)Kqc?88k8Z!&6CHiCDca^{MYPb(oajFS@zHMu z(9xL!!O`vlZqYIVHqj&k2GLXes?nwV644?20?``$EYbA*6wyn37sLj>JtCTKm1x2@ zOXTExN8IM^A$Ib%5aW5Pi1xe%L}A`k;t>ylIKUG{%;E_ky7RaaWq53eBs@mMDQ*p7 zDYq;!m|KK+mz$eN%gsbw;36m1a$OJ*T)znhT$=#_a7v#_n=S6LVE&8*XSfOQma#@dJHX6?l9 zur%SjSZeTbEM<6GmOQ)=OFI65IUe7~jK`-jBk>QJ!|=D6{qg75J@6yfo$)!>ZSY># z&G2&9_37%J>o{8GImsR zfcvx+U=M8xm`s}wI?-l>qO@t?F-;OUKobjQ(hxvb8Z0P5g9I$tl=nalN^OvqQUjc)Py?$e zltDO!0;o$N3o=nifnUibzy@-05JfHm8j{}v*~kUKH8Os%nT!_%$hbi>GER_-j04=d z#s+p=V*#VDF@yK7F@b#77{H%UdhivL7EFNBfOb%7PzXu|9*|Oky`&Ui3Mo10OiBid zkzNB&NTA>V2`QLKLJGQ)kbsgTB;W;v1RRAxz+4Cf^nyS@SqKD#Kp^166$C82f`EQk zB%sn22}pKD0)F^M3YPsN1%v-VLG^#vK&pRa;O9$nu=0`u48NoVwJxbZ`b%nX@h=Tn z_m>uo`b!V${bc}||1yE!E||gR7c3y=f(^u_(W6vZ&n=>i!=9w(Gcd7t(pDKe%r)r?%sRk%=stq2V+ynbh48Zgg6Y$ZA zIe6#fK6rj?3yvH+f{%|Mf*!}Npv+X4h6nv1+rbF9 z{(Bs3`8@-Izvn^o-(NxQ-|OIy{T;Ate;d0BR*x14gX+| z2QR)Sh(G-$jvx9ZgU|k@jCcQ~iI@4MkH7k9h9CcFgD?E)jQ9WPfmiR%@u9o%c+K5(JpFDSe(^^czWzrI9{HmQZ}6iN&-SAazrHhyZ{3;3<98PD7CWnW z-kl%#-R(pCtL;mC!ZsPfVVj;Hyv5*xx8w+JTj~U!~uL+GCLj>%`G{JP^3xR86 zld!Y?o6xm>L5N=`C)%$w5rx;eiHB<<#J6j*#LP7fqT8AgQF_gWc(v+EoLmhcmaIk* zgH{Pd_0?1&&1wO0;ae54_FD@P@vVnw`0X8${o5>Yb7hs-zOqM*S-BwEtWZP?uCPQO zEDJ>UFH1ycEUQMlEgM8jFWW?4eRYeT{2Clx@)aE&{53xM?$?}Xx~~<{i%U(>4NE=I zn5Fm8CQI|tTua}hcNUMLUoJvp5*L|b92faw#1DSd}^NSgN_m*!j<~v2~wwVo{$fV~sy|#BzNeiv2M=8~bW@Gd6klIQGFT zMV!Ped)(zG(YT3E%5f#1jN(E*ImKyy3W#I;gpT|6F*&aJV{sheV`H54$KE)hkJE97 zGplifGly|GGi32TGwkuoGotZSGpg|mA57!xKRk-Ze1OH9eIUg1e#nmBo34uQo$id! zn0^=UKD`t#KfM=EHcgr^JH?VvJtdNWoKi_Jo-$3~nsQ0_IT@DFGZ~YRKAD%`Hd&t_ zH`$YLZSq6H?8HVw^~7lca)LI|WP&e|dqOVp*SJAq@3>Q9=6GQ3z{TUNV8XQwe${jOH@*8tcQXh*-q9032T6tHN)bg%9 zDdyd~B>Q*ENn-DglKzfTCr^y>C6|vXB!`b0C+m;8CUcC!lYfjPCHIV!C#R2eBzug! zPgWdRO{N+-P5v@WpYnWIC!!$BcrB3C_*y+H=Cxgx)9cVIsnU4)!N*BmnvdPOoF6N7MLnkL z%6z=m`TTKL=ex)0otuxnJE1x1oqRdWooYGTFYI%AUqs~OyhzUpdhskr_r+)q=Znpp z-yP80;ST=Xk`DD;c!y)IX-8zPU`JN&d3#gtbo)eZP5X~rpq(<$u3b1!qFpzStlc$l zu??5k+E$d8)Yg^f-u5|9rR^w>sf{^*yHz^Bx79p9uQez?q%|quptUxiuXQ;8q-7(2 zvgKMqb<52Hphc^|zQv_Lss&d-(Na{f-2AHGMe{;ITJu?fZ!>$LR!#m@cbb@r$eN^!mKrUKIvPWY(i+o>d>b2!v>PXiI2(Tz{drDb z{QkLQapiOKV&HjjvBUG!Vwva9i)o%u6t6$qEAD>AP?Gyhss#4Tvc&iqtVHNpM#*JE zOUdVk4<*eFe@c=XSW3Mb6iPK4>`HGmM3w%j&nq3T?<%dXUns@bUz9$m=PpyM*C=DG zcPaZ(2bK-iJt-@z8z@87ZIs#8QIt#9iIr2=8JBO=2A22Mrj{4hHkC)#ekix9JuJUd z%l3q#R{6SdjHg>s`e?OD)wnnmB-WGDy^sMRXk5AtIsR$RDZ6p ztZu7_sLrU!uMVl`t~RY$trn{wuc4^8U9GVE311_HdqIi{it&( zW31OGQ>^DMdr*H-imzWNt*-AX9k0(T{Zk)RdZWRvRI@>$)T@D|G^ycFNpr)8lFtn- zC6^5uB|^_&CC1MzOJL8WN^+kulypDaD_(y#QB3pvd9lp%)MAI{!NtIH^Ww_qlEv?z z(-;4F{;P4fT88uaT5IzST9fiaT7&ZQTFvu&Tcz{2Tbc8j+K%#6+CJyGw{_(uwH4*Hw&C&? z+g$U=+I90J+J*D%+9~sZ_8+-5?Gw4v?M=Do?OC~k9g(@F9gey14)xrU4*uNX4ruQ0 zj?Em-7o$14FP`NDy-3f=c@dG*`@%kF`-NH#b0=SpdM7l;yL0n#dgr^xU7gP#uXScV zrt6A&tkmWF*sV+RaZ;Dy(DHx*LGPkuhp{}UkhX{yr#$^>)y?j z?*5SJ+})WO+g*~`+#Q{{*zKQ5(PNn@+oPEIu!lP{zK1lkwP!nHxo0wi`b|fM!keND zw>QL$X&c=zt6XY|gbclW+b-|j6>XX%Si*Xo0%2lm;g z=k;l%5A+GA@AuKCbN3&m8TK!wMf4A*mGwVMd*A;!?X(}8CiK=T&FZaL8uqP1TJ2k& zwAr`hX`}+bjQ|SiXQ&k5|QoRS|Q?mwnQhNuyUPbnM9P8lDq=*b#rPvIsrQnB!Ql1afr+gVcO{N-IO;#Lv zpX@Qxk(@qKp4>B%l>B1^p3E`onyf!+oE$!?kX$~>mpm~_o&0z7C`s(ya+3YKcS$kt z+LKz|l_jmbOG=_2i%L=-b5HUcGfT=HQ%M>e6H59s#+W4V{vy%h{r5!d`E)6B`M$6CV<;P4*ECbPKhK`Pq8G-PLU>%P4C6aPcOy0Prr-L znC^`4ovw=Co6e5s{XmE}`v8l_e0UUJ|G_kV;e%>C)r@Go@(g>t&kR|7&dg!l;LK{= z;mmZL(8u05>yM3bgpb8>%^#EFzI{Z;F@6e&)BNNV7xKv{uH=()+{7o*xXVxMaT2o> zaSvvXW0Pk$V_(hA#{QTcisky;5o`RpG8XkYC${c$Z0!8!$XKd5?^u;NyI8+DgV?+| zrPz@<(b&_u8?mDERIv{8=P~i~KVmxP7h|^O$747adSVP08eQfU-wKE{tEoiwRRS?+ zHHuiW8bF*}btPV{+7PAJjEHV)8pO;sS>oF@5#r$*H&J+#rH^p%J)Em|95vn z;de*E_;(A!zwi14sV#Ma+m;+5b4#2su*FX}+F~aNZ_^VTw#f(y+n4xP+lTnw?H_pF zomITW&H^64GmUTE8O5*f^x@flbm9$uG~tmyYVh?x%J7Rn^6>P#>3GfEczozC9$&GG z#DCfi!;}B?$1DHz!2ADn#uxsy!H@qm!(aW>$IJZE#Jm4e#%KSM!4Lfs$DjTZ#Eb9o z;2-R<;Zyb)@o)C1@W1zBu=1Jw_cz~IAJ zuuAs;9L-6sjBRFzw3!Wd}2k)Gi zgO5&3!1NOXu>a&9czB`>ikxbIj;Cs1(y21oeX0QNoyvkY&!j+`GYK&EOdRYy69IS5 zZh<`Kf}q7YKZrl)1zXR#!HsiHkmG^_G`?U1F&8Z0^9yG1+XWNI{FedL`%4c-{iOx# z{?dSpf2l$GODa(7k`fHRqyQ@~$-&Q;WFXbQYoPi+C>Z>IivRHMf2#ja_kRDU{r}W| zb@ks500bg%d<7io%0go2u7I^TPsp9>E1+*I2g2rl1;jIqLUgIF0BP$BNK4T_pgBi^ z#EbhM09|k)af-hL_<1r(vR3{A|6B%07;gOqa-STNOxRuktLvhq(_!bpXJKbj4$K(< z^GzXr5_$?et$jlZvpxX=cYc!+1df3>;zH2*FNZ*mza2D!@CVqbjfYyZ9sn&{FQJI+ zePC1gC-mFZF97u9yOv@96NoCex)xLT19-bcyw*Fm4LrQjaZP*cJD_2+b&c}(2Jj%2 zlZXoq)l72xY5BJ5T_5LizWo8ORs@NclM8IiPAn zPK8;n0}#Q=RBejYfKj?Xl{%^dsBS8vVy!C$5+*08w1x_Stz8Ip_e3txO({p6{5A{t zchify>1i5Jsg_GE5|#wi-5;g?b2|9?|g z^9wV2dTt4zq!yrWbQJ-f<~P%~We5P?aclIvjakbW1ab|Wo*Z7r;;bbe zGTW;FxaKdZ%-;AY9CchT^I>}k&Oz#c8T#1=m-$hUC2QRU*BoifQvKB)_nbA3MPtwc z2Q+uGIOiGQ_>6a0uIx2&vCCYn;@6aLb)jag%SDp7SO~z%cT*U5J-LZ>CyNKC$Fj<* zbHIY*$Y*8~yGx5Ba_X^_ML=;tUL;#h-Z_?xxrR-r_BWO`ah?rUwS`T&q-K{-U&ew# z>g;LWv)HfmLF{<3acrqhDLdW#TkPxVDRz1IOY9vgQjXKhChWGi9EW3gHFl@hlf&s# zF;cJ}u==bK+Q zut*j*E)E?A?4GOvmnh*HR@w}~wg3DKqu^1?6+ZF{a~!e2)iSY$@h8x5Kku8vBqynJ z`<0JltkZ+IH-h>xo#`dqLLx6Pt;v(zqT}_LyU`Gy-!5esvnUxJ;&L`-$;+MRt4RW8 z!y=1^tP+cPq%gp9wiAlcWIN({&Et(B9Nglyyz7MFeP_q}!pIy$R~*NCpreD)59s8* zCZ>paE5FVA>p~2JKD)u!`ickR+hxpW?aPG0N1*vWkdR^Ch&S*_$Dg9P78m(o7eCM` z@pSyz&dX>zX$}68nh)s5AAYHUvx0heXHb+h6hgangQ#;|C84Kd9Vmw=AEA)Q8WekFu8<{t0ZMLsSjaFd3H4;} zM97&8i+V&WdMnX0808}9aBHr~1yw8`f6HLU5_Mgx^VS@r4yr?M>sGpu915?;Asli` z2o24K580-~a_Ir$&TiO$6iH=76 zkmtMIniP(3h%vwY26RWTPhxMYc~~I?u0OjiCZ~l6F<-o$v@eM`C(_*UD&#?QwW!|d zl%qvdE%@C@=sJ&jd69Q#{?2yPFV>Mebt#{tRK!m1kSq>HG z8d+VqF7@HGEK)^*S-OfoHPUTZTUzEiI+Fc9Oga+k8)^5cL>jqj6Uk~dE`7IAJJM|M zLVCbYGV)YLT!!g7S0sI|gN$emMP%GztPIVaL--@(cA4(t6?j74nvBlnd-%0wCfOq6 zF8C0Smh5CqC4AT>Sa#`o2AnjyNcP-(kXsSG0gpa!lGB^H29G=VDpwM)ACa_5E5G;qOGMl|Re4qK;fTmOU-{^f zmIzBij{G=BNd(>f0eNowgov6O2lAoBhzO2(K85LGmk9fGGX>2mXb)%Mf2nxW zt1R3(`MYAt`^0eZeHJC7oA7Y7iH?%6w@bKwNr;kio>6$rR*@31Q!ZRu{GAf@Fi*I) z$BEL^TZ-_eEFtCj=fA_EURf!N#(xP*UBD^#Sqz5l?bj<;lQo8A{hL!>s?7@vhmx!K zs1w5Cu4GjVy92^T4_s7Y?%0OOE+wn*Cu)Sf?&(tDo)rmul)I^dV`K`u?!&BVq;ekm zK|)Ivv|J0#`4OlpZ1+CYzARr=+qgZH!E{LV!<~}Q7rzcvzh1_M8piXf`F4kdzT_}f ziwJNCr6@zFkx^=git$#e@nwmHa%4@b4bol@9shT!_BY}jrsF2AJ~XxpgT1s<7iAiQ zSyB_#Z|Swd7AzapdwmLFRH6Hg1J&a!b@S{70>9~?b=4+n19=ZCb-5MN0)G}v>1rlL1nMhY=+;g-1`3Ye zy7!PwGZ1HKdCyf$D9~~ob+1F6Dlkj4@}9fquK=y;$$S1XGXa*@&hJfM?+oa+6VfYO zD+&Nh%=N}A@Bvw05PAXD-U0h`6?(`6gzxi!C|1?0Y4fw_Guo>P+uJNM`)-ntfO7`>G z^fN>>g!tuJXBp}US^MR;zc!pmQuK4D-8AH1yW#iCp26s@_@%F6p0bgc+lsH;xSP>- z+*{w}<3uBTNtLf0Yn##W(*$2}(Iq33!a(0{DRSdjyoK-PZ7Jh=ds*KSZU^HY9#-G4 zBzWV&nG>HUUuuotA{TsCYd;uwGj#jp1zs4xcwFk!BPe9@f`;H@Hfd_o8|vw!6#_Sz z8`k$phnAR-(u?^hCJ&k1yGP?ALA7U6?*G#}7{zYNkDv5DT-G#w8`tdpLdDlK1DEC9 z9G7mI>;?B;8tpWFrEc#n5BX+#^O}lxlQ@;x;44mV6C;`bN5Xl><@oP^oFtp1JyZAHL_|xdC_6h@N%wV;t!!D@TN1J&<2;_7KhAml&iPXJeO;f= z`~7-7U$65UvfJbL#J?_MhTJNAH1Vvv-;jQR+QjH_yN8tflQ7Y1@Qopsll&+4wfZ?E zLi3nd)2z|Z@n!y-_~?57p=*0Lo49uE?4eD)N=ww`;h?XwS#tmwJD;cfe{ z4j(;+Of0l-pMK3_%O*>QnZ1%cHeMRwFz|4ght<2;4w=>Fc)0#v@9=ZdFpmZ$G>6-} z+k4FX^UA^VQDu)F@5>L{S3KW6DzoFT!!>TYyKiwG=53MezGJH2u<}(S+($M|95(gW z9CxqVSBGu5Im|t0;kRL%V%xi?m$w-1JF>F-r**xCOR>)rysAtc{wntR1RMXg!xy$l zn$Y*v(cwRKtep^H`*8S-YO^NP3NmqgFmLFD>!({d_B-2l!qLw|9gml+Fd@C#0!M3` zT(?iHVjYjWWVm(fblTBj_8zzO)^8k(FI?$XvSEc0*Jey{^D*f-LL1S~?dRRmBkr_q z<~A?EcSP+1Q@7VH+ed^ReldPf*~=qr+|tL#?fp2S!QX`Ox25{XzM=Z@dFQ*2JY2zb z{PP}eBd6=_#_!)BG;;p)I^+9R*gNt@m!GbC#$O*9vh1$w&F$YtZasX|^~A$EP7NML zx{fZ@!^!OX9M?TfCOVBP?%=w+Q;1W`zinL|x*l}$$}Q)*vCVC#j+yVq`BwYsv~1Ib zali8Fjk0&!G0rTl*Qi6)0>*9fo;+$-s@u5KwyQ^V9j=UXx|uX;Vs_neGpA;avT^!3 zwjlrKsH5q3#(wsyKl*9IBV$KA>NQ%M9X__MGI{jqWUsM3!dHz>dNpXQ@y@}~nPpp! zU0w0^=;TIbV|UvWjGo-;g-gYe7Gpj&IpuQHqsN#Ll{dL;@bnxL{c(v)@~9PKjGB|n zAG>{HuKIO!Sy1izm}{NQU8+3(GUi-%uJetJHJy*nyX3sLpRMzbKRcXb-ncr)Eb;&U zzuveO{dfE`{tSPXzr)|i2fvHo$?xVf@LBjwd^SEKpOw$dXXiWcUHDFX zH@+j^mG8`V=Na%UcqTj>o)OQAXU4PR8S*T7raW7oG0&Q3&a>wo@Gf{Kyc^yT?}~TE zyW<`5E_tWCTi!A6ns?5-=L~QbI1`)=&Io6PGsD^83~`n?Q=Bc%7-x+$$Jyfyauzw0 zoK4OsXO%O{+2ss#mO0a$ZO%Anoioqb=MHcexD(tB?g)2Oi+)eH%ca=NK-Q^B*m$}p2ZSFXCojcFnX9h3}mnZfK}hA>N* zDa;mT46}xr!|Y)OF^iZ<%qC_Ovx=F;>|%y7%b01*Hf9{Nj+w{oV+Jw{nTgCsW+bzc znaS*AhB8Z;smxYpEVGuG%j{(aGmDwY%w}dZvznRB>}G~D%bDrSc4j=Yo|(_=X9utg z*a_?gb_BbEox$#4hp_T=TyOABqu4HGjJK3S^Qg$l4l^x5jW#_Vc*}?2$b~3w}9nG$0XS2K6 z;p}pDI=h`6&#q_Zv-{BiXaO_<+5nA!RzNeL9ncVH2{Z-T0*!&zKy#oy&>(0LGzr=S zje=G|v!GqjFlZSx4cZ2cgVsUwpncFlXdyHa+6aw=RzfqOozPHdDKr(@3XO%~$kA_#nv*F$FaCkX9 z9o`O)hu6dN;r;M{ctJcN-Vl$7SHv^o9r2KONjxRq5|4@3#B<_3@t}B7JSpB3kBV2t zv*KOxuy|QKE#4N7i`T{T;(hVJcwsy--WZRJSH?5ro$=6kX*@OF8jp?F#&hGn@!)uI zJUQMRkB(Qzv*X?I@OXJVJ>DLVkJrcZt}7_bbO25bYy0qcNyz&>Cgun?FCYy?IED}kB7PGBgo z6qpKZ1;zqvfw{n5U@)*4m<((NMgyyX*}!gKIItX;4r~X;1M7kLzg^lMhB~d*}?8$c(6Q}9&8WB z2kV3R!Tw-?ut1m~Y!F5WD}))s4q=F}M3^FM5yl8>ggL?m^5q}Mh&ZmS;MYj*syGvHf$Tl4eN$^!@gnQuyB|-Y#c@oD~FlG&SB`VbeKA9 z9mWo8hq=SvVeqhcm^^GAMh~lp*~9K(_^^DKK5QSx59^2d!~V$t$O6a&$Ogy=$O^~| z$PUO5$P&mD$QH;L$QsBT$R5Zb$Rfxj$R@}r$STMz$S%k*$TG+@$TrA0$U4Y8$UewG z$U?|O$VSLW$V$je$WF*m$Wq8u$X3W$$Xdu;$X>``$YRK3$Y#iB$ZE)J$Zp7R$a2VZ z$acth$a=_p$bQIx$b!g($cD&>$co5}$d1U6$dbsE$d<^M$ePHU$ezfcin6Hqheg>G z85LO-nHAX;85UUnHSj?85mg@nHbp^85vm_nHkv`85&s{nHt#|85>y} znH$*~85~(0nHT87o;UnJd{V87x^WnJn2X87)~YnJw8Z87^5anJ(Eb z882BcnJ?Kd88BHenK0Qf88KNgnK9Wh88TTinKIcj88cZknKRil88lfmnKaon88ulo znKjup88%rqnKs!r88=xsnK#)t88}%unK;=v897-wnK{`x89G@ynL61z89P}!nLF7# z89Z4$nLOD%89iA&nLXJ(89rG)nLgP*89!M+nLpV-9e{FaSN`#z>n)D`$3K@&Q~&Yj z7k}#VkH3F?pXon-p8eFDfBE@;nkM|^_dR_+^Dn>OB*FGCpJ(d0GJpAe_3PgK!{=>z zfBPRkf7trDfA~IQoqGJ?`$bi+_=oS?Gb{Ty-+$V=-M@JrHJldx=J^b*`QLAzSDpJ+ ze)Iecu}=$mo-17s6!Ls^mdgrx-rHUeDCGI4@2y$L``A9`)i2(Uz0KiYyswOZhF`qD zMi+`BRpB{lR%0W1s$m^Le6K*bmO@q<`anaDFG>Z~cSw zeE!JK@0{-y;TOJh-jB~(_nq@U#@^#Q_hFHB`|sS3T2=pj&{JP2uG{)PFlr19f?=7m?2efi9fIn9^mGfzU=^v`F$ zoa$I3pLt`Ud-<99v!j3VXXcT+li@S-Y3!t-pP5%Ni!DAgznX;Rd}5vz-=6Y``PR)C z{E2y&b#KHc=HG+wmYlJd@FJ7%5zGvUquiW#V z{WCmg@q6}>-_U;V*-y`oR)5dFTH5es4*Sb#O>z$VZ0SEk4*M-{o_!Ac?&SM=Iqbi; zlXBm&4}D&xzGFZ7OK*&@>w;$Q*r)SMzP)9?8Y0fTW#3vhi+IcaonUl( z%RcTi+UhO)`S$leZ`jv0H)g(Jf7g)MH|+C!Z>PRtzfX*|dBeUx+pp9c_W$qSS+CIp zHI8k6jXtP7Z{BP4LWNGfUZWp=7MQIiN`@BMbeCag!6?&vq z#k#N1C(GZzdx>7Dd?n>2`sI4^@|WnDj5w#4=$o>un!ZHuMEiVwf&Q64|I7>Y(EeEw zFVIK*XH9s4UK%pb`UU#wjQ79iMS5z*)#vD|#xa|oqqpiN&3KOf+IrdcIeP5$yRy&G zXTB94JVUQN@4WjN`t6JR;%Df&)Tn;X(096w8qd&sL1wR?qW?DZJ^Bra+Gv^_Cy0m%fL-ci-(<>jMxBV84d5HdA(y`@3^mxJ7f^77;S=z;H^m^io z4cX}Tcg|C?(eqb2*kq&cUCm2p7j*!>+;TJ^V|h zh$;8*Gi@*0+{52^nU=YS-?`WK{$2dfytTXU;)nV@UUCX6 zxr3i_9ewf+{wnqSsyp~CZ`-kV@L!3?+T6j9^|$$xg+FsYbtMbG_HXFsEc{!OmtI-; zxd(d5!r!&9G|$5CRnK^O8~>NM^w4em;5%#o+xWvLABNw?FNPm#d>j90w(RRI{A9l& z=WgLIotsAA!f*C9oqP-bStY0IE&S+(JEd>oPp4hJe-poIdT!56{A=8K@09hv-$P3dypA6q<5~AQ{`|t_+-vytcpLQ^{{7wlwb$_TdsW?Sf&V3aTXqH> z*zBOg8TjCjIZe*M3tK4#>F~n~RWsA!iMR9P)8UJwv*)G58=bH8ONT!`yI40J9{J_U z$J6l1^$*XShF9MHy8bl$GO5Ol)9}oWy?UI6Z+b4Ob{gK<|Jd78@Xt4Y(@w!d`wt60 z1s|Qgf8r^4>6EJ7Pr*;S1XMf)Pkr+HxdvaIVK}bATVGUIt-)Uh?r_uKv59>rZAI;ln47CmG?z z)@qOue*EgHvk{*B{GF8%zTBo#Nh7>DLwS$}e?GhTU>ZESfiW-*KK;C$a~iz5>O`wF z_;u<<(=>SYqb?6l!ngeo9y|%}PU;YJ68=5&l=De=_^Hv>C*k8sg(XkI%X{z6PKBQv zCLBtIr_XG%JQcofo{nszbpMdw*uKFSc{@-WFi4^jHnGtJK$Okq)pO`{ka6@O8LVi$ZdzBRO zgr(Kr9VcHX2-l92H^kPCK2H8Hb>EERfFA5l)S|K#jc~|CzgMGkCLaj zHgP&izEa<*?NRcUDUqf}$zOUs%sxUMbJ+Uu5%QT+VIfDzYi9qRaD@Ek^1N35jCDDz+a!{kQ}S>Kb%la3y{ znoPcAvVCVVd6V5H-(>QqXME+IMr`93zum^dclE}xN&bX9BURLkNmL&4C^`T3X$kRqzJ0_8@ zjeXKOiM;J_jA;`2+j#d!2g&0mcR6;DeC|e#wFk-Tww9Q3ko@l1?;Z!q^CC^^936zn8o;;7{gW^3zf+cI_ok4IS^dmwdI(c9*^6 ztw+Cg-b?=KIl_D|d2E|gIeW-wt8_cJhrG7F7Qcu5)^YgKJ>Z$|?IG`N z=TdeL`ES3*uXd9MCl+YC$%mb?V|J4lkIGoEoBTNGqQh?TM?9C8ueE#RwyU5Q+T`0ASJUxHUi=E`_gW|NEpV|S9j z4^3ROlRUn}8ONRE^Q+!l?If?yYgB$G`MuSow>!x5N2Z+JLB2n!)|MS~044?d?4SeS zV&c4m4#1$*U3Sm`ux(Ox2OWU+mp^W&1JJ=Yb2}Y?-aU42rvos}Ja{`DfPH!H+vxz9 zXUldv02{L`w$lL^`uOKIIsl!%-PuM5z@g5OZFB$DUzhAbsr~?r1yp;|>pu5dhIsjKX z*4Ro1AfoEmEp!0x7QeZL4#2j*2e;4x_*G`j7CHdW8qe552f%gkz%6tD76!D~LI=R= zlGzqI0ITc0N}vO<&TuAy4#1H7EeUi0Qs){H=m0z`K0bjCz{Pl70v&*PgDn#10K6$x z7*7YF)y@0ybO3tpO^K%i&^~f~JRN|4D;LJo0Z3XqGM)~=fbE^)=>S~6P&J+oz<^)* zo9O_Yu)VpN4nVWjhc?pzhU-0EFDN-%JOfuBX*zIsm8tRoqMmz<*EP zCOQBfo>w=~0hrSEz$Q8X>r1ZLLv0VuWcKpY)_PVd*m(E&I%cvc)8fJmc#936mbI_o$(0JE={$I$^;I^%OJ z9e^)&ZpP99cziE8mJUGAosqG002&6&kEH|PH)~`p9e^p*yTsA~c(AZ$EFFOC@PZgR z0CUpr$It=T@;x<%4uDsWxEMMBk2m_n&;j^nGCqb5zzOdjF?0ahnp(!t0T>lmB8Cot zZJ$>g=>R+~Jin0+z<*~FH_`!^9}}{X4!|tG85`*U=oSy%NC)7luk}Vc0OQwH*+>T< z?c~=DbO8Q-zO#W2Knt4_8|VP^SQEQ}4#0q~J{#x&44CG&fet|LPrWwKKhp&_-9QJx zwoT~`bO3ri&sk3gU}WNz^>hH1`X;TX18~$cay=b@vMvkP(*e*=7_*)ZK+VN=>*)a8 z-P~Y39e^`gChO?{JhgZoO$VUE{7cbv0MzV#(R2V-IEF>j0f@?;7flD?&Ad_3bO3@a zY@_J_%+IPHO$XrEW|L?-01k^^ucHId&;9Z`Isoxw53HjDFm`gpIywLW{tMU90jPPv zc^w^q`Z>xvIskE98n2@R5EWT!9UXvj#dD+R0F=~UkD>#xyu#5aIsohTZH%G=&~dD9 z6dizx79LS_0IWXri=qP%eYH e~ZJDo4=)7V8!m_^b7D7hdvf)2oatD6yY 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�C7Q)m28iKw6I{tp` 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⪙>F!lyb?`3|zy0z*HIv&f2!cl{yoN9UV{cFp^k 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 z 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�r70cN-~ClUI)t`xM*+fJj8# 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

GloVrXUHt!ZsrAU*hgr{kx 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±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

^4U<}wYy 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

Z(`?2rse(t&%DJFe-H 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

RG=<)fuJ<$opVdvvTrb-%xm>nK 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Ȣ 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

q&ojS;&ogVbpJTQs z3^Ac+&N4OM2APp{gUqz+8Ahz+G^2m#6yw2pipkI&V0wd3GLPF&Fn?biXC#*&XN;|n zFr8vHMuf?3b!$ zl6F-wRoRuy@!<;Q7E1*)xv`x2<5$KA)R!`{PfHkPX$fO#R?N6Z7cpTc3Ym;A1x&R} z0n@i9pShBk$2`84%Y2xh%ly^KVR#N?Gpm}im<|7BGP**U%y#n(#wjkH@jsQu9GOmK zQrD(3#m*^AV_`DWe=~_W&z{8GWD=RNg9*%=mUw37MI7@_B#z;-h-H=~#xSb}qnWke zqZn0%D2Db%GU@6^nabJ-ri(wEITsnq-1!v3yl@C+zFa-T{L?tda5o%aM3?Pn*2MTT z%2U1!Ir=c0uX{08+MdkrCU<6^&_2d5ZZ8u&?ZO;!c4p#kIx?xu9ww{BfhiE##gr!4 zGnLOv7z!rWsaDYnuhrF1DTNNHS+Se{5ko-OQNI(alVUo(a?5v59G2Zp1XF z7%+{$^q4w#U8d?DF=Yk}Q`Du+ZJb{BMnREKn4@to1=eScCX z>hdw2Z8g0*Vn@6FN3nhQQ~kC90G5%FA~HgDL=*Kdy`QA>Mtq*fu*^la;oy?*6x#wY#&76By<9&B~H2g)R}6$&~MQi#Q+bScA{)9E0xKxwW_0d0Aez^RGH-7d+#jUHIy)b}^%? z?K)c0?H*JH*gX@l>|TcH*$vpr*gZ0TW83$s#`eA+*Y<6Pvh8y@HyaU=Vh|A#5t;bM zz%x0wYs3E-cr178+M|CAJnv9$IRB4<8**+9YyL5C(vRD)>>mTo9lIK){bQi|Q%ytb zUk296-D=4E%RrR*n+CJk@#_}`oR6Gr?EjB}6+<+_wzOyEf8T^M--(N#7fdUNdmbZK84SO9rmq6cLK_F|c)5 zOc?fpff#v7VNDMMrVC|+<4+kF3!Eyn>So{yS6-Ol{L154pxBLk`KHo`;K7H-6AyPbq` z=NT}Ya20Mp$3Tvzr*P^S25KCs14`Gkge@Bw z7#zqIHmqgff>fdKbO{5wbGgFumH&6q0%4kffz&I-LVGR))NPees*nMh=c|S7xeWNG zt`Tyx7})WrRA`XSz=O@}gzd=;$Y^g6MkX@AI$tInj%6Tu@g`wL6a(cCHwy>D7`Pa> zRTv!1z`gI~LJVNwed%_gx-SDiRdx!~mN6i4a+mP3I|DMddxYPd8IbAND>QOsKq73v z&>tB1Ieb8vXUD*M{vqK;D+caPs}%0DV4$|*u<)QM0~^hb3U|+CAiDXOaIGN&X1>RT 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

cTl!EQXEAi1*<2vx% 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

}Mkfa~m@l*%vV}f24l@PE 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 literal 0 HcmV?d00001 diff --git a/src/modules/mathlib/CMSIS/libarm_cortexM4lf_math.a b/src/modules/mathlib/CMSIS/libarm_cortexM4lf_math.a new file mode 100755 index 0000000000000000000000000000000000000000..94525528e899e9ecbaa54024dda111731fdc354f GIT binary patch literal 2989192 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≧?HjlKB3~*>z6vI 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

%{fq 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

X1PPu6ou$yzQpS;a*p%enQ*Qf_6k zh+CY@=jJ7IxEaYTZc;Lx3rhyM5y@0;Q1WK3Z}LX2d-6K2WAYmA%;c5a$;r#OhnVj^E^H0)e&Y#4OoNtNmI3E*Vb6zLD*agHMK2uGZFki$*f z&!H#o;cQLZ$=R5=owGV|h_f_tfU_Xc&LJgsbFhgv4kEFGQ=e$zR3^4@iWBvmyhJT0 zBT>akN|bYA6Q!JpL=h(_QNZy@-`aKIojeo`79{+;fAODoy9sii!9{+%Ch`+~H#ouO2<8QM0@z>bQ_$zE6ew6)h{D17V z@#omf<4>~}#-CzS;*Ya&@kiOn_(N=X`~h}#{9blx{BCxB{0??z{5Ez<{2)6nzMmZ# z-^&h;?`HeOTiG7*9c-s~Gka!y8+%H;p8Zd}mi;GA#r_tjV1JC0vR}uE*-zsH?E7&% z_RTmp`$`;>eIbs<9*G0lN8`4#55#R|?~2>V9*SGf?u}c+w#Kbuo8p$UwQ)C1-me= zjGYr#%ub6dWGBSsv7_U1*r9Qm?0~p*wpUyV+a)fEJv%OeJuME#o){Oy9upVI{s9YT ze}aXu-@<~}&td-ThcI9EZI~DP8q9-z5$47|19N5{hdHtj!e+Dgz-F?y!KShMU{lyO zm;>7ko50q?#EpH4~q-?$)dx)v#78ytc|cwtktj&tfjEGtog9lEE4Pm3k!S3 zLckug>R=C96|noPV%Qy4F6W!!EJ{VHa55u(K>z*lE@r*h$uO z*m0Hv>?mt2>=5f`>;cy2*uAWGvAbC>Vt2A0#cpHWi5+5Hi|uEP#@bnDV|!R9Vr{HL zv7M|vu@=_$SQD#1*2wCL)v+wG8kRm*$x_A2S&~>Oix(?mF=7QQYAlbnF_z6*6U$^R zi>0v^#DXkRER}_g-OOr^-NdSo-N34hUCSztUCqjkUBOC^UB*g^UBZfuUC0WLozDu4 zZDo1Kl2~rB1lHVG9BX|~1m;l!57+==X7;n~s7*7@{#*KxIabY21oLF@+b66EIvslG3Gg!GXQ(5UT zlUa!|4y>4%e^_BL<5+<)V_4oXznQKvKbdo4zB8xAd|^(E`NSL>^MUy@`W^Fg^lRqZ z=$Fjr(a)I=qn|KuM?Yd-i+;eo7=4#{Ci*t>c=S!?!RYJE-O*Q=+oCTq`=T#0ZPDkM z=IFCbUG!;RPop5_gD8M`D{3qAO4MfNg{Y0pk*M{|qfu*_`=eGf zcSWsW4n-|v_C_sXc1A5?wnfcnYNA@1vM4fB5JhCNqi{?p3d`Iag=VgcLNZrGA()Gz z8km%*dL}NamWhh0W;R4sFsq}=n59uA%>1Y#W@c0YGdU`k35&{RMn+{agQL=!zELSm z_oyVMV^jijMpPVgQdBH+TvQbEcVqWZail-4IMRu^H*zj>d*p0pf8QH{vYgd&FtR$B0vmHxVZo z&mxX79z+~w+=@8JxDv6SaUo(aVO zD2d=O@*-G_j0grJDFR}|MgWY6h^>sEh|LV2h)oQ)hz*Rn5$hP!Bi1k+B33cRMl5Ii z3}4Fl9KM+GHhdxDdH8(BqwrS7op3VaS~!t$F&xi06OLsZ4@WZ&h9eof!x4<(@J5C` z9L}(Y*D*}tH4JTd6+;nT!4QR)F*xDH3|e?0V@r5GV|{ooV`X?YV{v#UqcuF8fe%k* zpu&?G4dIE5>hO3*X*i5g5FX9Q3Xf!@goiWY!b2I6;lYgH@IZ!dxIe=^+?U}P?#-AH z?#Y-G?#>t&?#lQT=FIpK=E!&#Hiz*tY$oGz*mTC-u&IpeVUro7VGfM5VG|f9!p1WW zg^gwG3HwXm7WSLo7xt5G3;Rwthkd2%!ama#VIS$Du=jLM*jqY1>@|IB*h~6`u;=tu zVNdBx!XDA*g*~7X!tT-0VRz__VYlctVK?YyVb|ydVOQu`VVCGBVHfFfVHfC;Vdv<< zVQ1*RVIy>pu#!E}6(a?VS*-$(EL}(BFP-qu@PpFl?EwqE)7iyu~LQQmYsFAJ<)zg)sTDmw?P3MLx z>GV)JeQT(cz9CdhUll5(FA3$-=Y?|Vgitme9m=FPhSKRZp%A?+6rdM`Zl!01ZlKsuA%#euA;k#uAn=HE~C!~T|%D}x|lvLbRqp$$b9;jkXHKp5HkH` z2$B9c1W&&k(n7x;f}xLwpy+2qn&~G(n&^i@8t8jM>gn4;YUzC;)pT1(CEXlSPS=H$ z(iI`abWunlofA?(r-kIvw}j--*N0@$SB7NJ7l)+LTSHRl_>d$zDkOp45E4hP4vD3g zhD6izLn7&!A>s7okWe}-B!nIj5=0LQ384Fg_|e@$eCTsSyy(+IJm?M~ZuGGsF7%(l zPV~>gbLnq`XVaet&!RsHoQg7~zeARa9zh(k*YV$l+U7_{gh8Z9&kr1=K{ zG|!-|H0Pkrw3$JhXp@6B(8dR?r~M9GOZytQn)W_$CGBP4a@ym-rL?<&OK8^v7tuxo z7tqcI&ZC_Oq|gopl4*MaiL`Bjcv@dz3(XdYp_v2GG+iK)rU*pPM1hSoP9U5{3#_MY z39O~953HuG46LLr4lJj&2A0wAfh9ClU=gh$uz*$_m`^JW%%$ZAX45hQGik|z=`>hi z8Z9C)g%%W;MDqzupt%Lc)8+=kXww5@XbyoyTCv`+z{v^N34v}XZzm!Y%%qtFTe|Dc2Z=b_#H=b&N#GmzbX1hV>{f=vD= zAg%u~NbY|W68ay8*!~A0$bUby*?%9j&VLWI!haXE$bTn9@!t;N{D&c={}2TCAAqX- z`=DZfJCy6+1Eu?SL5co0D8|1N3iEG=0{qR8m%j;e@i#)V{q@jPe;qWzUjzO1Q$gST zl+Z^%IrQ333O)6cK==Jb&<#HUbjgnoo%7>DC;iyaVLukM*N*{h_oGAoeh}2<2S64- zDx~+@0xA9eg~WcFAgNgL{_oG0Weq<=wj|jp1@KA&w4hr(aLf(ED$kh)8&GBo7ruiYDiGGdH7(Y1l z!?zy#d@G<^zU9yr-%{v;Z!vVrw+K4oTLA6z&4+gQ=0XF$*-*D{ z7S!&W0U3PLA(d|`B=Jp#c)m#x!#4q<`o=>Wd|}Wk-xz3#Z!|Q|HxeTFMnGuaFsRWt z1gh~3hRS>cp#t9kD9hImO7ZoD;(WcK2wzVq$kzk%@pXgTd|jcrzRu8eUnj`HcP=#6 zcQ*9XXBPC?X9o1vXFBxUXDal-X9{%7XA*S9XCidLX96_hGafqXGY;DCGX~n}^A{ZS z`3?5?`~*9Eet-s_Z=lNOD=6{#4Dx(FfefDyAl2tRxY6e=xZ39pxYXwrIN#?5Nc4FQ zVtk&0jXqDn8lOjCna@M8z~?@g<#P{A@wo%W`P>F0eQtumJ~u#LpKG9-&sA`)&t-7B z&nW2Na}gZta{>J6eIESmeHMJ{eFl8)Jpw-TJ_X+PJ^^0wJ`P^+J_?R_9|4bg9|HG# z9|U)L?*|9H_klg$d%zCw-JsEXC#dq?0ZP2LfjsYFkl{TDQoRSjjoy9WYHvHZ)Vl|q z@7)a&ylo)b+X^;%cYrnC?O>U=87%NNfmz;0FvZ&d#(C?&NN+6|If}gzv;2SR<_{@t7KJa3Lx4c;36)y&O!HW)#ctPM%FA&`C zMFn?wZ3PFsHiO+>|AOsan?Qrt22ka-9+Y^k1$ka;K!(>UaI4o!aD&%!aFy3GaEaGa zaGuvPx@QWw#WNXP@0kRy^h^L3 zd&YyUo-h#a84IF3W55Q_D6q;i5-jnI0P{S?r%hL~Z z@$>;_dwPRYJ-xsQo*v*|4|njpha338!v%ch;S4_Ua0Ksp%mr_F%mFWX%mUAO%mhz* z%m5F0Oau3LOa-@jOac2mCV@5&2hi*>0n~Z?1Ij(dgF=t7AlqXM2zmSkHhcUA)_ME_ zR(Sjb7I}OJ$R6K-7LTt$v&Uzk-s2Nc>G2UL_IMBEdb|VDJl+Bc9-1NW>HytqGrUAO$)IhtN3NW}S0i~N95WC3$uA3B~yGekp zZX#fVn-Ey(CIA+@@qt!1E`WFA04O&$(BQ@bs@xbri5nfrbE5$nZV-^<1^}^cR3O}K zD-hte1@Lm)47j*$0%p5y1g5%e04BJt2mZLO1-`ki0Y12{241q-LTu0%lKiU(M(H~@5Q z0seKx0&86{z;agwr|(S|HxF28eR4 z0zzCX0bkb&z}>YRaC9vLX1JCBlU$2|ajr$cPnSaAvr7T+)+HZ!?ve{Ubjbm3yJQ1b zT(W=*E}6iHOFD4WB@Ni`k_zl_NdX32l7ViQB%s|T0Wi4411gs|KJklXaESy~xkLbqUBZD@moNbD5(=PPLVyOBV4%t+5GZj80PUTwH;FTwH)Z&d$I$XGh?J^IYJS^Bmx@^K9U*^DN-H z^GsmWc?NLSc{*_1c`9(wc?z)Gc``8UJPEKnI{;Sai9nn41VH2b4N4kF)CJBzsU+tgRE+a?YLoLfYOV7ZYPs`gYN7KdYL@dyYKrp* zYMk?XYNYc!YOwQLs*m#Rjhn)alMIs1DB0sbig=QGYl+rG9dHLVe@(nEK4= z5%q!7L+VYZ2h__>_o?Td?om%U-K8FJxk&9m#8$SQR)__i_~>a|4~;sU7#*- zaI{kmj=fZsV-Hp0*iGd*c2OCQHtJSKD|LfoCv}x$2X%>KJ9VC;g^G7HQ&Em4YJ+1N zwc620Ep;?d^Bncm3`ZR`$x%yHhrPM!j zCDd@F|+qTUfKF79g?ChCm z-ub@8>_2;56Yv+|qwu5QBk}#=Bk-N!!|~1G!|*lX zL-A$dL+}ORgYjA6gYYTg1M#upI6gca-~+=k91cfuTR4L2!(m(*4&&l*2@$Opad@Y4qHLL?4AI8B)gt75KVJsX8W8(I(cH9`oz*S*wxFoC%=Y_T6%rH7m3v0m} z!f1GPSTkN4)`aJWQSr>MMm#x;g2#qY@Bv{Bc+aqUJUpxp4-Bity~D^jA*=@f9$Jlm z46VjrhgRWFLo4xnp%wUz&~p58Xc>Mkv=l!PT7n-8Eyj0;7UNq(i}3ZKh4_ll0(?4$Z)&p&2+oG#zJ!rr|B2sW>Gx z1+NKB#>+yJ@chsuoD`afr-UZpaiQ^eL}(n|D>N4G5*mvKg~s4Mq0u-YGz$L_5{Z8b ziNN24MBq!yO@^xG5wA*MtP)vXEe$9}U{vr2FeLarz=GccXYe~<4t@(X!Eb;p_ze&QzXt5!SAZV;5;O+C z1mxfspgj0FCqE0w;rRg2O>Kz}}!6U|Z02up#IgSQT^?ED5>_ z<_7%(rUzXC6N9dR(LtBNkf2Kd3%UrLK^K8J=mO9Lod>d@^FR>P3D`mB06pj|Xbd_F z$U$d7dC+N45Of-31)Tz^K_@|c&`A&(bOQ7aIu5!99RtBZ$AE9pQ9ukj0)7S_0iOd8 zgSUZ)z_Y+Z;6dO)a4YZt_$TlH=nUKsP6qA+hXeP4y@7kdw!l4LL*O2;DsVSg61WS@ z4crB$2krzD19yPYfjhvE!0iAF+ygMek=R=`qlC15G&3|InA1}p)G0~Uil0gJ%4fJIr zm=C50%m)(#=7CWGbHR{+xd0281DpY~fhk}%&;-l^vVd7Y5HJ(40%ibuzzonBFddKs zrh~G8X`morD#!|$3Q_~6fVhAuAR=Hg=p8T#bP1RQf&wN2pMZ&g7%&0+@E;F8`Hu&0 z{KtW3{^P)X|FPhv|5$Lve+=mK9}Q0Uj|PYQM}a;5qrf)*kzl?52(Z$B1X%1p9L)6} z4yO4J0~7p*fl>ZL!4Ur;0QDaN9R7oW$$v1=_zwb7|3QH7KM=6|2Lif34k-Qr)c6BX z=8u5_e+-cPQIO(~f;fK!4Dd%lFMk+x@rOW=KLot}U4Y>40zdqm;FF&dy!LZ|r+yA_ z-_H(i`q{x{KN~pbX9Fkvtl*HJ73}u2fUSOJu-?xMR{EL1B0m$D<7WiZ{ET3{p8<^Y zGl0Qt_$zyLov=;njAueFfm4uK?`!<%2E0e6Y@!2UhsH$yl)2>;oAWQ`Emf_%K>&@ zHZb_Ify$Q!B)%-b^JRi|UnZdWwu1)Wc2MQp4oZ9(AkUWpGJV@Xl5ZP`@ofeDeOp0K zUpff$rGo(97U1RE0^EFCz&9Tn_~1hWuY8)pW1nVl*QW_w_h|x`e44-+A1XNJLj?zX z8o@4~MzGn30@nIaz;Yi7Sm@ILX8AOLDL(aJoKHO%?o$T_`qTl~rw-VBYJuLT7ASql zK2k0P@ZUR_{EZ^Uebb?_41A&IKIr zT+rs71Dd>ZK%I9EsPN7PMc&yU$2%LOduM?J?<^4IO#*$rNuZlI350lO0zdCe;NhJK zetBhpFJ2koomU2U?v)N6dZmNgUg_YfR~k6)l?G0ErGX<}sbHU1D%kFo3O0JBfYn|p zV2M`>nCF!YW_TroNnXidv{w=s>Xih5R}ye}B?7ZoBG7sz0=ZWr5O^g3wpRjZ^-2I# zuXsTAiU;Lh@u1Kv4rF`9fmE+J5bqTWBE4ckZ?9O;)hiYRd&K}>uNXk|iUB`8qrqp- zXz<1}8a(ri0uMZ+z%9=xaK$qUbb3aDlb(^_uxBLL;~4?Ac}9Q@o)KWBX9QU6IRMP{ z8~~HZ_i$U;MoiO@aPFXdh`UZ zJ$izt9zDT*j~?KLM-On>qX#(W(E}X!=nf8gbO*aVx`VAA-N8DKZeWE+H?YW~8<_3U z4NUdu2F81I1tUGWfqYG&F2nRHeaM0ip4yrxE zL5W8=$nyvTnI2&v$s-KJc!Yue9$}!TM<@vM2n7Kip}@-{6#Q`y1>f95zz6pb@X9>| zJa!KOcilt4b@yO!$vqgHaSsN^+=IaZ_h7KoJqT=e4+3l5gTQk4Ah5ta2+VR10#n=r z!C3b|Fx)*540I0!uzMh|x(5KgdjL?n2LO?K0O)WJ01Wp4(CqFH>fHT7rMo{UcJ~Ll z?*1U%-5(^n`-5nAKhW3R4|I3;1EKDIz~9{uc)0t4-$Y;VmFNrJ5q-f6qAz$v^aXc_ zzThg+7hE9vfYU@DaD?as_7Q!+4x$g(MDzixi9TQ{(Fe>YdV?86Z!n4I4aN|?!7!pX z07P%#B6UZ9ZZ39^ZvAdTn=;)$Lh zlIRKg5IsRRq9+I@dIDdfCvYcvf}aEr@R{HN-V!{(bAktWK=1&!2p-@cf(Pg%cz}}x z4{(^^0rnC+z&3(A*g$Xxs|fC3F~J?oCAfp>1a~lz;0{I++`$lnJHQC;z(H^aCW1TA z5Zr-`Km>dO5wHkEKqnAEBY_BN2t-guAc6t{5s(N(kU}7WI06ww5Qv}`fe5+~h#-hS z1l|N9AP|V)hZ_NWawCA(ZUpeujR5Yu5x@;M0=Vo(0O#BY;Dj3i9CRaq-EIW1)r|nw zxe>q$Hv(AXMgVi%2wTmRmIZNWBUo3TxQZ^SlY z8?X)7dTc$m?(enOT5Jur23!62Dr^?J~khlht0$0Vso)M*c@#3-?Ok;*i39DHUpc1O~(QWX)z6^!PJ-i77AzCdXu$43lCKOoE9qF($%rBCr8if2=>&59^Ed!TMmmv0hkDtS8n3>yCB9x?x?hE?77gj)h^NSO^w^1!F;2 zAQp%PVE&jN=8O4aKA1P=g?V9~mhR=t=Yh zdK^859z~C$N6^FQA@m@60Ns!7L-(P3(LLyHbQii4-GOdLx1-z8t>_kXGr9@gh;BgF zqwCOh=vs6Qx*A=Du0&U$%h6@%QgkW01YL|SLKmV7(D~>*bS^pvosG^yXQ4CE8R&F$ z8afr7f=)&!p%c*w=y-G-Iu;#+jzLGGqtKD)2y{3)3>}INK?kFQ(19q90u)106hUDW zLS3j6b)a_Cj@nQwYC+AY2{obyRFCRVEviA)s0vl03RI5DP$?=w#i$4sq5_nU@=z|? zfpSnb%0iiFJIX-Y&{mX=wxBe$8ErzTXd_BN8_;^R4y{GWXboD8R-zSXIa-F6q9tfC zT7(v&1!z8+hvuR=Xf~RKlF&>v15HQM&{Q-9O+pjV1T-FvLu1hxG#ZUUBhd(S0NNkz zhxSE#qrK3cXb-eI+70cBc0t3@Ff4gG`s zMt&hbksru+9E6RqkamQDv>|k) z1)(9$2o-5WC`dh0htwiuq#CJ0Dv@%e3@JrQkRqfIDM0d&TqFm{LP$s^l7XZlsYnWv zgd`#fNE{N2#2`^fBocx2NBSXsk={rzq$koH>4tPg!jUi}6bVLxkU+#A@k4wOZ^R4n zMBEV~LO}k&zu{l-5BNL$4gLauhCjj|;P>!b_znCTehI&TpTSSzC-5WqA^ZTo2j7Kn z!?)m@@OAhad=P;8-{sj)EiL0dPOK58NB>3HN}z!Cm2SI1CPfgW*8fANGTN zU~kwH_JD~n0saI1f__5Zp>NO^=ri;Y`T)Iy-axORm(UC78T1r-3_XM%K=+`#&~4}@ zbOX8uU4^bdm!XT$d8iXQ3!Q;ZK_{T&&{60JbO<^C?T7Y4d!Sv=4rn{H71{!Af;K?w zp|#LzXce>qS`ICR7DJ1m1<*WbE;JjO15NI$o z5CRYeArJ()AO~cFtdJQpLIy|&X&^PEgyfJ6l0YIz2=O5<)B&*}Ce#kKL3F4EYKEv# zBh&!ZL1d@~s)8z@a;Ow4hKis9C=beovLOmbZxmLKAxt6#VxfZ(SyXLxPyJos(xTd+LxF)$KxW>E2 zx<#A{8xhh=cu2NUAtI(D2%5`PCvRs+2bXTe?*_G&ucg4D5 zTv4tFSASPuS8rEOS9e!8R~J{9E5sG#3UK+kd|X~G50|@(;QHhI<^19N=KSLPE`_H`04oW`0DuV_~>}=ctM~kD`L3L0Zbq=zl+EM8!ca%Dc90iU% zM~)-Qk?BZxq&Sis363~Nj3df1z|qgq$I;8t!_mzV?g(`RI|3d44j+e?!^1&zxH*2? zf7rj-zt}(7KiJ>eU)x{WpWC0>AK4$+@7eFzZ`rTguiCHJFWE2H&)Lt|PuWk{kJ=C0 z58C(J_u6;aci6Ytx7at@*W1_HSKC+Gm)V!t7ugrs=h|o6XWFORr`RXiC)mf?N83l* zhueqR2ib8uW=HHUyTfj?TkJ-=-mbN)?FzfhF0qU3d^^|9v9s(9d#k<0-ehmIH`wd! zHTEidg}u~XY%jFu+jHz$_Dp-4J;k16Pq4?@qwSIQ{`S81-u9mMZuTzrFnh2)(C%;d zv3uD)>;(HC+b`R9+gICX+eh0w+Z)>}+jHAf+hf}U+dbPI+fCbb+g00T+eO=X+gaOb z+ezCo+Y#F#+kV?#+iu$q+cw)~+eX`Z+Zx*{+X~xK+hW^7+dSJG+br93+f>^m+XUM< z+i2TJ+i=?u+aMcmLv66lX|vm`Hj~X@)7sQFrA=m&*hDtIjca4um^OxuZll?#Hj1s@ zMz&SkDr{x85?i4y-)xTf8mC7G;aD^|SS{^|W=jb+v`rLTrIHf18iZ z%jRJt*#205TEAPrSU*|cTi;q=TVGh8Ssz;;TJKr!SZ`XdTd!I#TQ6EWt!J&LtS78T zt%t1#toy9HtvjvTty`>{tn007t*fjntV^wntqZL4th22%t<$VitP`!{tz)dCti!EC zt%I$&6|=%tm(^~yT1{4iRclpS6;_#5Y!zC0)($Jn%CNRtY1Sqy#aeGATdS=V)-r3c zwa}Vp&9RcK8P-&5vNgdPXN|T-TKil3SbJH!Tf17rtRdDwtH0I9>ScAe60E;1KP=xY zpDiCP?<{XDFD=h4Pb?2D_bqoUw=CB!S1p$<7c8BYGnP}9A(nv_U_mU9#bL2p%oc-1 zYf)Pi7MVqC5mg*U_NI)Z9Zu}W<88Z60ABY94IH&8QhNJIyw;*=#iH%xbg3EHjJE0yEFdF*D6=X1clA+-R;h z*P5%%73MN?vAMvUYtA-jn$yh5=0tOxIocdy?r-j6?rH93?qUu#2bulNzGg48yV=eB z+w{Zq)%3~q!SvSj%Jkgy)bz-7-*m@x({$bRkLi->yy=|jwCRNDsOgaDfN8I3mub6c zi)oW-y=jeUrD?foiD{u}o@userfHgKvT1^8tZB4qglVX0kO`Pj6J&CjtR|C5Z_=7n zCb>ys5}Np?4in47FwsrTCaS5yRBNg>RhUXm#ijyNt|`luVM;Y6n-Wa1rYO?@Q(seW zQx8*DQTjML^bK?`^L*qT;9pg>oHRBcIMPsM& zjPa!LxbcYbpmCpZw{eGYt8tTYy>YE^m2tUoiE*KEo^iHuhH1&>ol$L67^Oy$k#FoUvWyI4tC41;8XJtY#%g1QvD8>(%s1v3NycRmW*cT0rWz(0 z#v8^MMjD101{-h#YJdz5gVkU%=nWc!(jYU44FUt#z&5lSS`9P<)zDz5HB=ia45fx5 zL%t!$Kr*BoQVfZPI774{!qCsq+t9<%)evR~HUt=a4PFL!gPY-({=5E*{)7Il{+0f@ z{)zsf{+|A}{)Yal{<8jp{+#}_{)GOh{*ZpZez$&yeye_ye!YH;ex-hyezAUmey)C& ze!6~&eu93iew2Q=eu#dc9@E2mr{1PF>kWF1Ua6Pq#d?9Bt7q%m^{slEzENMVC+n;9 z<@yqRp*~Nat>XY>G`WStrzQ4YYzNfycK1?61577JSz4Y#SH~mlDH{EC52i;rU zE8TP56Ws&dUEM9+b=^O@OS<#AGrE(yW4gn-1G>Gsow{wh&AJV`wYpWh<+{bX1-iMq zS-R=EDY^-|vAR*Z;kqHZfjU$N=^Q$%&ZN`p)H;PusuSt>I*yL1YtyypnsgLht*%;E zp)1uD>GE{hx=dY~E?F0^i_t~u`s@1Wdg!|9!gRs90G*G{Q%BVO(f-hW)qc{x*S^ud z&_2~Z(%#qJ(caKr)n3+K(4N(v(jM0y(H_w5)$Y=6*KW~n(5}_4(k|C7)-KS_)y~pR z(@xe-(2muP)DF`Q*5X=3>(bh_7Og?6)vB~|tynA2a4mZ1Hu`L6k*`KWoTd8K)-d7^os zxvROQxu&_Ixu`j(IjuRNIifkJ*{9j9*{<25*{E5oS*2O7S*%&0nX8$pnWmYn8Lt_m z8L1hn8KeOkSmV^#G$xH+qtPfdQjJK%({MCQO{<2cp=#P4i3rUHw`8LH$PkQvFQ*NPS;@M}0$mReec) zUVT=5QhiK)NWEXZN4-P6RlQNYPQ6;aT)jlSKs{GIOFd0JSv_7oMmfQ1nyuQgl;< zD}ojN3Lk}s!cFl@{!RW#{$BoC{#^b<{y=_5ep7x`eo1~_enx&mepG%?zE{3WzD>SK zzFxjszFfXUzCb=lK2ttbK2bhaK1x1JK1dGau-qZH%8hcZTq&2yMRJ~;BX5_}<;`-6 zyjET%FP9g~^W{16OnIt2Q649clJ}SQk@t{yk%!0w<-T%HIYItg_FeW__CfYW_CoeV z_E2_Lc2jm$c3E~_c1CtWc2ssywpX@OwoSH4wobN6wp_MYHeWVdHbXW=HbFKh2;=?>`@ z=|<^V=}PHR=|br|=`86q=_Khm=_u)N>0l|4!cvFSA~j02Ql(TX6-v2Mwv-`lky54g z(i&-{v{YIs&6Sd*Y0_kAyfj)mK-x#zL)t|eDh-tSN(%l4FuXl6{ihlI@bslJ%0+lI4=clKGO^k{OaIk_nPAk`a<25?q2v zoD!SFB+*G!5}8CK;YrvMhJ-F@k~B!jl1fRbq)?J8AxY9CNs@R;v}Ay!kEDmBizGx6 zAn}oSNZcep#oxrA#P7tf#LvW!#P`Iv#Mi`^#plIm#3#f@#0SKC#XH4Y#T&(I#Vf^2 z#S6uA#WTfI#S_J2#UsT-#RJ8t*d?}$&0@V+EtZSLV!oIoZWq(VP2vVISzIYD6&H$g z#Uyc>I7u8QjuQ75_ZD{-hl_*7{$g*jyZDdjhvD!Q8boAKrKnU?D9RO)L}{WVQJg4B)L+zF)Lj%V3Ksc`yhZM!Kf)ivFTxMP z*TUz*$HM!<+rsO@E5ZxHv%-_Yqr!v2y~3Tst-_7MwZfIcrNRZmIl>vjDZ&ZDF~SkT zAwpb;2%SQ!&?wXj6+($nAnXt_g{{J7Aw^g#tP++9i-fsCk}yq}B#aYA3Hu9s3%d)$ zg~38Up_h;-{4Mw{_$+uYcrAD?cr3UlxFxtIxGXp?I3qYAI3hS8*e%#D*eqBtSS?sC zSS*+?m@Swlm?Rh{7$q1c7$m?1kiaG|33LLLKqe3gcmkH7O+XVg3hD&af^tETAWx7b zNEajv;sw!y{(|0u?t*YZu)ts7Eg%Yh^S|>y^WXDd^Plk_@$d0(@vreO^E>&c`N#Q( z`TP01`P=xL`0Mzq_{;c<_;dL)`BV85`D6Jb`9t_PAK^RsR=$C+;VbwOzJSl+xAW=z zCVm6IhF`%i;TQ08_!;~ZegZ#+AHna#@4@fF58(&!z4`9^KfE8jFTD4>*SzPv$GrQz zTfA$$%e?cv)4b!n!@T{x-MnqQO}uryRlKFVg}k}EnY<~y3A{195xgNhz=L@Xo`t99 zsd;jqn8)L>c?@0)uaQ^BtLBySigyNtVtJC{3?JC!?;JBB-g zJA@0kFxSDgaP?d@SI!l2d0aNPjZ5P;a_hKN+%j$vH*KW9eX==c5Lm~(6OdtMaSZf z`5m)6rgco}7}qhfV`#^~4y41`VeK$!|K1?mYTc zbtHAfc0_jc>*(3hwIj46pu?xbz2gt(2j?^AJ?Ay&8Rrq_F6SoaD(52S9Oo40DCZz& z4`&Bw3uirNHD@_z5oaD}CTA*VB4-R|1ZOY@aA1y|W9H~MDvpdJ`p2wcap30uc9>X5N9?S-8h;3(^*gCd~EoBSY9c(6> z&TeAYvuoJp>|%C4JByvpPGZNgBia4fJ=tB^A?yIQH`|^4hxMKHne~qKiuIKBkadT3 zgLQ>C#^i8YQjk~Nftvk;bpWnt-AYL<*8 zVsTk4Rx7KS)xaXNDp)0~d{#Cqot4arV@0w0v3jw(vO-w_EFYFT>o@Z|^AqzO^Cj~s z^8xb?^E&ei^E~qm^EmS`b02dTb1QQra}9F^b1`!sa~5+db0TvLa|ClR6EGpBooQm~ zm`bLEDPVG#?aUS?m08EEW|lFFn7PbMW-2p*8N(dF?8EHN3}*&0eVLw2H|EdwFYO=N zU$;MNf7E`r{bu_=?HAk6wx4J}(!Rfacl);XP3>#jSF|r_pWi;aeOmjZ_Ob0F+K04* zcDUW%Zfe)HE8C^*g7%K~_V$)`YI|LKb$eNRVS8?SW_xOTLVI-kfcD<)-P^<31KWMu zJ=*^;elR{W-ZNe?o-!UX?l5jJt}xCs&M=NM4m0*Kb~3gyHZWE*mNOPH<}qe6rZ6Tj zMl*&n1~E{ElVN2T7#fD0A!6_tEJiD%nbE+gVN@`R8TpJXMj9iD5zB~R^kwv5gfoH} zehg0rf$_8LOWTLG*KN<+9<|+VyV>?n+l98XZ713ex9xA+)wZ>5W80dxswc~ zE^S@dI;VAd>!j9kts`59w1QT+)!u4q)wL>HC9V8cPAj98*4o%w+gjOL(pu1(-J0H- z)Ed_s+1j_YM{AeX;8wp@uU10qPx=@72l{LJGx|gNUHT3B75aJl8TxVhA^KkWPWl%5 zdipB*GWtUL9Qt(nWcoPzNcs>upu==K-9*>Ym2?T6PiNB^bQ+yPC(|qGCG>oH7Cnug zM31FM(EHGP(8K9LbYHp$-HraE<#WrsmX|G0TOPFBZn@TSxuvt^RLjwp11)=6wzq6* zS=+LrWl78YmRT)RTPC!OX&K%!s0D3twpd#XE$S9oi?D^;!fc_pP+RI+s#?lg3R`ko zGFp;b;#;Cx`nB|I>CzJ1;@{%cLTLF(`$GFbdrf;rdq}%OyH2}8J5M`JJ4QQ5+e6zy z+e}+WTS;3&n@^ifn?{>R8$%mT8$?5CE}E5Qps8sxnvlk&F==!fl~zZqqLtDLX*skE zS~4w;7D?+%>q+ZE3#R$eJZWyUAI)Ey-#5Q%e%kz?`F8WQ=1a|;&8M1=HXmr--Mp=N zWAmEk70rvA=QYo4p3*$Nc~tYz=7G&fv!mJEtZP;_OPcx3>}EzYt(nqHZmwu9Zq92a zHK#TwG{-a#XztzItvR$gpxL{b*!-*MYtzT3H%-r*9yQ%3q}arejS9oAx&C zXxiMgu4!e{lBW4hvzn$hO=ue3G^}Z06WZi#vNY+NR87(*K@+Em(L`&aG?AMsnu?q9 zo3fhHni890ng%rWZtB()+7!^_-9&8qMg25=byOu)LgiE0)HZ4}wSihgEvFVybE%os z6ly#*irSCbliGzEO!cFBQr)OO8b3F_Ykb-Gr15^^t;Va37aPwuo@hMWxUX?%AlC5=`-zaylZ&b@TB2>!>xv^4Hp~EHk@cU+_1M{N5kfZbqy;UmNd+7 znAI?~VM4>`hG7i@8;}NjgQ-E=plA>`@ETYRtqn~L^$pbxWetT5*$wFpNe!_L5eaW*duJ5crRez*@fBmldt@Rt~SJyAAUsyk< zep>y+`Z4vx>j%}N_0D=ry}n*mFRAC(v+LXHo9i3uYwFAE3+r?0GwPG;p`_}iU z533KX_o;WU|6TX3?ql7Xx@UC{>+aNDue)5=S$C@LXx;w0U3FXQHq@=ITUNKQZg$W0@1szd7>b>=!s}XH z7f|P2N38o*`?dCc?W@|SwGV1<*Iui=SbMhiMD5|)eYHDlH`lJKU0J)Nc7E-w+9|c; zYe&@%t;K8MT3fBLR#Pjl71egsw%4}QHrCeGR@N5R=GBsFQ)?4yqiXxr_N?tv8(iyK z>rwlM{GI%X{D%CT{D^#)e1m+M+(|w~K1x17-bLO@-auYWUPfL(o=u)co=6@;9!4HW zM#v7bnXDx%$YL^&%p}vvRB|1;id;g@Cufn<$O+_Va({9!a#wON*^lf=b|ZhU`Bd|^ z=0(lpn!7bOYOd6ruQ^q7wB|s~?wYMN8){b9EUQ^iGrMM5&BU59HN$EK)*v;G8dHt7 zMo}ZK;npx~=rz=u+M3FmlA8P)QcY@2LQQl{znY#kU21}Ad}};v{#1Xf{#gB{`g!%k z>O0lft1nldt3FwMq#J8*FR7kiJ*#?3_4w*h)kCX6HB@b@HdL#tW!1uJ zPBo*NR^3otQ(azNRGm|uQJq{JTOCo|r@DJ}XmvofcQv8eo>bkhx>@y4 z)rG1vRmZ9hR_&?UR<*HeP1Ulhg;jH^rd3U>8dEjAYG4&o<)|`MX{!`fqAG3`v#O=4 zv8uMJvZ}Z$uZmQaQWaknRn@nuM^$)LV3kjmd)2SXuazGvUsXP>d{B9-@@nP9$}^S6 zD-TufsoY+bl=I8k<*nsS<#pv%<)!8M|oiRvTbD>%T|{yD_dALyKGw7 zgtF0PL(A|oxXe~&EK`@s$^>PcGDcZ*SwmTMSy@>@S$0`^Sz=jCS^u(LWnIdG%Y4f` z%KnsoEB#pdy7XD;gVNijS4%IJo-I9IdZ=_y>Gsl%rE5x;l`bruQ#!45V(IA8VWoH} zTxu&dma0o-rNUB9DWkNxw4t=Rw5+tCG`lpdG_f?gw0~)@(k`XJrM{&erN2wQm3%09 zUGlW#LCLL>t0fmo&XgQ0Iaso%WLwF`lGP>4N*0vNE}2>~p=4Ca&=ODrl~_v*C8`o> z3BQD0(pu6~Qdd${Qc{v%LMllui7$yN>08pHB&;N`#Jhx8^0W9$@w?)e#gB{c72hbn zQrua5s`yCp{^Fg*TZ-2euPk0%Jg<00@#NyM#UqLb6{E$DVso*!SWzr0<`%aXw-i%~ z$;IWxMa4PA8O2G(vBd+5dlz>t4k`94_9*^S^sVS)(d(jTMGuN@7hNs7Sahc7c+tV4 zJw@A!HWsZeT2{26XjakGqVYweiiQ+{B3F^MNMEEXk`(caSViN-L_En!;s; z3kzo#PAi;HIJ$6XAt;0jt%Zg{RiU(yU&t9O6y_C@3R4Q>3L^{q6m~BR zEet61Ds(ISQShnYZNc+`hXr>Et`%G=I9qU{;84Myg6#zx3)U1YD_B@CyI^X;go058 zLkmEGtH4^IFHjXo3U~#q0(t?ppthi*ptvBnAhRI3AhsZ)pm#yHf{+6L0?&d!`QP(D z=D*H=mj59CcK+4;3;AdAkL4fC-<`iTe?$JN{H6Kx^JnHy$sdpPiqcpO_z=-#@=+ewX~9e4l*x{9k!r^4{mY%zKh|FYiX) zmAuZplX*w-_T}x&+nl#HZ$;jsyg7N(^Csqv&Ks78=fQclJVTy3PnyTiW9PNzQS<8Z zD)Wl-^71nCQu5;RBJ%p=b;}FM^Uw3l`;+@U_hats+-JEDa&P5c&ApI&I`>%af!y7> zTXWavuF74KJ1=);?&RFDxg&B1WGQn{(@Pt8+_p^K-LuQ*+~U zqjLM^cFzsV4aoJ%CFK6d`IPfE=XuV`kVI&v5}%{dJ@)j6d(1vyzcsW}NbQ8|5cdgO%V1mt+- z5ORKGf69KF{XF|&_MPl&*%!0VWFOByn7uoDTlR+RRoP3k=V#B%o}4`{dqno2Y&6@E zZOYbU%d>^qoNPvRb9Q}pRd#81el{sPH9I~#GP_T9_w3MY|7@>px9sm(AG6+MJylTGDdTLegx~G|~jpDAEuTAh}2ul8&S#iAh{iJE?_4A=Qw|NQIOl%41(3W+1k#VpPnmBspJzVIyq$S1^J3D?ZuZ%Al z?=xOzJkGeAaXsU5#<`3W8HY0VWNgpan6WxzX~u$#Ss7C@#$}Ai7@UD-I5JEbnhbe{ zFoToPmeG_^pHY=jl988@nURtaml2WCJELnxNQPgAN5=2;ujwDsU!^}uzn6X^{YrXg z`pNXe>3h?+r*BGMlfEo{LHexpsp;d>N2U)>N7J3@=5%ekJYAU1NoS-tr`M-frI)1V zr<2lC(&N%2(tD?OOAkr+OZQ0so%S{DL)xpfCu#T6ZlqmF>r6YDb~tTs+V-?fX=~D! zr7cLCl{O`9eA>vg!D(okBh8eiO_Qey(>Q5uX-#SMX;o<@X?baxX~}7EX%T6?)4HYw zr}?J2r~OX-n)*KVW$NS9yQw!)FQ=YMJ&}4Sbx-QH)QzdDQO?jU3 zDCJJdwUmn~XHt%(97x%fvNdIW%F2|*DRWb%r%X&4lQJv?Pk~abDf$#;ia3Rr!c1vN zp`_HLl%*7;WTm8~B&0;8^iAoW5}M+l;+gU%`Frxm21=Bq(@12lCC9POgfWvEa^bfuB0tV>yuU{El!%7G(Blz z(&(h2Ng&CUWJ%H|DU-xW+@$s-T2ez&by8_keiA7uB`H2BGO15ex1^9Hza)>O--%xn z-zUCIe4KbM@kZk1#B+%!5)UQrN!*sWA#qjWlEit5GZH5!j!hh%I4}`Tv?Ur6Rf&>B zULrHGC6SUyPApF>Ow3M9OH4?NO6;51Jux)VKhZPsPr|o^4+*amo+jK+xS4Pzp)=uR z!r_Fy3ELAkCag|anlL|MX2Rrzu?Zs*1|=W~_5@>sIzgJiPhcg`6B-l93FQfe3E2s0 z2?+^N34IfKB!nddBzPsbC47(n82>u{Y5e{8oAFoTJL6BrACBJ}zde3q{Ob6n@$=(n z#!rbK7e69?P&^WEk2l7vI0Umjl=pB*q5*a@7S)f!Lh!v?yN(&zSI-fEceB zx0vtIAERGKKaIX0eKYz>bZ7L*=)=)_qqj$Ij9wkRGwUN}Q+^EPX*C@>>!6?co#K_Oc!^qjl!N}TZiqQlkLnB=y zrV-T$Z#2sL#{0k<d7Zo+yf$77uZg#USH)Y(TfkHCB)l?S zAuorQ#!KKu@q&52Ja^tKo;}ZsH<>qqXUNmxY4RvM9PgLmSHoe$LBnT;4-ESZuNz)6 zJZsoxc*t;%;daB#hU*O*4eJe;8!j=NZ>Th^G%PhNFw8bgHHA%x|ssC92p8ie!tNQ2lPw5}k->1J*e~bP`{k8fH`qlc&^cU)*`ZE0r{bK!G{dE0A z{b>DAeSdvVeP?|KeQW(G`lk9keU3g;pQ?}7ALV}Ie&7yrpK~8_?{Is$m$}{CF76?2 zCwB+8joZR)U@^mgfO)oayj)?1}ltM{kgA9{22Q$3y@M~|gP(M7Lk}mTr&k1>IA+M|Jn>?$X_=yHR(oZi8-(?w`7U z=%TtZ-3r}e-8|iN-9+7J-B4YBT~A$ST?buj-6^`Jx`w*Cx=dZFE?)PS&R3mbok5-F zIuCUEbgt`M(mAWsrE^eckIr_T%{uFKR_oO1{H?QCXP%BiN30{%5$I&;BFh*y6g!0N$M#@5v+dbd?8)p2Yy-9qTa!&;%P`)t!r8rwN7gt z(>kEFTWgzEt5&ntDy>?rzqJ0)nxiGx5@{7{F}0{#c&%ToudHF#AnQ5n0jrO7opp(IhIO2EkhO=kowbRzj-Glfh6GmDwbjAe#11DRgT*-R&mEdJ((U$52pvx zz38*)PIOzk1>KBpMAxIU=rlTkK1TaS`#^g`8=yU;-J$i;F4NA^x@d=JowV(=&9wEj zMp_;1Z`xwoT$+L=rU_~Jv`ktuEtVEW3!r(?X44#LHZ%*G8I4Ed&{#AY4Nn`TexrV% z4pN^}A5#0M*QuANXQ{`j2dR6g+o_wV>!_=#b=1G8i>Py{3aW@&Ld~aUQj@4L)G(?) z)syN%b);HTr%+9)JgP30Nu^Tp)L)dZlwrys%6?qcbgls_8CNs!nGM4;<^qDk7dPRCd>L=YIT_v3-ogy72?IZ0ZZ6R$W zts$)>Rg;#I7Le2=DXEN9NXj9lk>W{_q+pT{$&ECVG@Ue!WKQCf^hs=z28l#MNZ*N{ zi0_Cmh>wZ)h&PE>i06nWiHC`Mi5MV;1E~@DgjRz#ec&O z;|KB2@elBQ`0Myf_%rz9_=EV}_-*)2_;vVI_*(p5_(k|RcsX8#FUIHLGw@0HXnZK% zAMb&8#yjAx@ssfr@P>FDye6K4$KikCzTn>DUgMtP?&EIbdTd;>vMFxLjNsE&&&X3+;OvT({Yx#NjMXnK296Qz>#nm+z;$$ z>^tmB>=W!g>`m-d?0M`->=EofYzMX-y8*ify8>HphYGLVEA{N1pU_N5rVg@jeFn2LGFqbjim=l;om`=8U6F##Aa%xsJk#s*`7F~jgM91IIX!{9Na$Twsd z8AP5V50O6PI&uj)gB(W=B72Z+$R=bRvI?n1{z4WZa}YTqLW+?*Bm+r8qLEOs^^&M^fHG=;6YXq(M^$kt@^$qp-^%b4`>np1H>kIn%=NGj9=V$cP&rj%Q`!n?N_ory*_a|uM_s8hm?~l;@?+?+i?+;MN@ApyO_kI-r z{VqBON?n0-1-HEcl?m)kP*@iy;vIRZ&r5)|~vKd|Rr4?0u*??w$S&s&NX-4h7 ztU%BXq9(%h_{o?H&^_90B>b-Bbs+-=nspr4ls4jTBULEmvje5r0 zRcij*dNt{7jr!f2ztuP2EL9(Q^M`uFoB8UcZ%}pl8-+UIjYRGKrb0dGjZn>aQ>gwt zn5Vu!n58~Fn5N!3n53>5j8n@7qtqFLVQT-uAhq?NpIUd&Oa1G$oBH`{XZ5AmPU=0c z?bNGZTdC*1wonURo2$cLo2Z>$^VCMKxoYBTZS~t%O!bXdboJp^B=v?@IQ7z3W2&-O z-&OIizNp+^4XY--daGi*da3&I@|o)X%ZIAdFYl_hzPzQXeR)kKe|cGz@$#H1;N>Zm z&CBB|&dWop(HDDF121-}F2C5O>U^-AGVa+YrQ5T2O7my0l#FLjm7kwJQ1(CVQ=Wd>tK9nZvavRNoD5KBg%lM z`<1p&cPaIrZdD>rHz{8}S*N`EWVLetlRD+vC(D(8JXxYFellMf^F*a|c_LAoJtpp6)zt&E3Q6hQ0#wDqiBAxOtI*}0!7IK zwIcR`MB)0NOkw_@K%wySG4s1k}vK5A}{YBk|*}Rlza9+mRt1Sm236)%17>9 zl0Uw8Mt=U@QTeWW`{b+cb;#%5Ym*D^t(QmKTP>e?uSRZiZ<(BOZ-IRHu1el_S1j+k zTOx0}nxYS_8pW7`gX}8 z`r2hP`_{`$`c}!PeKoQVx0lN9-kv8rd0Q^qa=TnsbGtw$znv+|x}7Ksx*aK-emhWR zaNARcyFE)bc*{<9sc zft!8OD>tu7_uuT6Hs3rhU37DwRCsfTH2&r$sr$_}(#bdLrL3EON=I%ikUqYllwP<| zA>DnWP`dg?rgZ*|1Zm-o2x-&}f2qq2cd6M8C#l8_E9vK6bLstFp7d<5wsc1?UAnRt zCq;X|OY(b%CE>lVBr|#+NlbcgODMfpBp()s>aEuKrzl{OW?r%~utbRaeU@WmoenGq0vr240P>oPIT^((tNBCE@Cf%6C_+ zDsNpet2}tFrnEsZxIBmpJpvCvnh~*JArCkHowyx5UINm&8MtPl@|39~5_8 z?hvp%r4?_^p%pjJi7SqsE2wBYmsU}IF1kW~E}$a&oNGnMx#<;-=O$P1&+#fK z=d>z5c9SalyMLCS=^ifc=pHC<=)PAzue+zbu=`ATO!uL3*Y1w;$=w^uS=|lg-_QP4 z{_O0$@+)U6%lDrxEMI>%y?p7}m~zqCfbx{HuH}Abrsqdw?PQ5GbI`yP< z%c)zXb*C= z`yabdY;G#2!-HLV|wk>KrY*zHgVcnwA!<3?=!#@gr55Ft4 zJ^ZN9@NjP-@$i|#;X?-s`wwj?>^{^~xckuZ!ZnBH7A`(iQCM*(w=m^Ue4+oLz{2T= zW)~VAvM!_?GAaCYkX`ujAhGbm!EXh7556u~cd)-;*}*FXl?P80WE|X65PYz;!0F)1 zf(Zwg6lfe&6nr~ST=48bTEW!=5e0`1conoBa44ucFsVRsfLoAzfL0KB;Fn-~-b z{r!^##Qj{s@IIR0{=Q%N=k~qJ-?Q&ge)GO-`Ahem%CFqFH$P+Fru^W24f!+nEy*|C zr^wgbSCs#KZ)*O)-mv^@d)@Po?zPKr+iRL%w^t`0-Al|b-1{{zZttr+&%Jl^toB~a zB`-?Xl}l zw&kw#+1y=+vI)DkWDoCb%zm(QS@wmUitK$mi?UmGCTB0-8IrBoIXgRVr)75ZPNQu1 zos8^hJ4ds)JBP9eJ0E5ZcU;YS(9xB3p<`#({*HB78#=18sygOmDLcxt1RWV!F&z{@bUf%H}^Wcu_nVWW;%&gh5I}_c}l3BE)CNqA= zyiA`RWtnz6GBS;JL}b!-cw~OtZkzdRyGiD??X1jW+cBA2w-0Bm-2NzI!Sqi>sQ#+hxF8N0XfGS+U>$XK@RXS#IT zoAjJ*_tGP`T}*e|b|`(?wk_%0ZL89W+m@t%+$v3fv^78d^47TY!(08*+qOEU*KajX zpSM*fUAPsWp1k!_TENz)X^vZa)6BM>Ok-``l{UI%UE1K5sXxiB=C24!Mq^7Og z5|Z}!7MC=|mZ@p^TlCXnwouc&wv43OYefz6o!0(6MZf)33aPy><#Sti%G0)eDLrki zDaYFCQnt3uPg&Jgma?cVJw?h=0 z&m{M3?o2+mxg~k)=IZ2Co984i+FX(>-kg%0wK*s`V)LwIx6Mu)9|lQ(}# z`m*V1(z8w1lCE#+O6uCQBWcH`HAzjImL)CSBukQR%1_GO6q^*i$tTHk)AS^pO(sdk zo0v%&n?@6Vw7yAv)p{@ScI)}XGp+j*_q4VqwzSqIR<+JcRJWEU7PY1(Cbfnn2DCaS zI<-zooY=}q)NUmtVp~5Zyx;gZ;o-)fgv%R`B^=(kEn&;X)d>w77bh&*SeYQ+n4OTd zF)|@?qkDq;MymwtjfM%ljnoAC#&7Z8Hw?tT+HfQO_J$MjXE$`j@7=H_e#3@k@iiM{ z@pCrh#S1sY#HViXj1S&m6YspiDBfZNJzj6aNE~Uyi?}Z>H{+hSoQmsh*%^1TWo_K9 zmOtaxwaDU@x8%jCT4LggT0G;DT5RG1TX=CZTWE2UTSj6zEd#N{mK(93*Pn=ew!R~_ zcYRariS&j#HtV@q+Sr-yhvu;+*+;x*6(F7f0cn#Ze#EW=1_-8yeNS);a3r+R0J7*Xl&Iti?uE zuN{hwD zHPIu6nnuDOHa!o&+H^hqc+>Ilj;5{Q%}p!Amp3g4pVL$tUfPrrp57D?9^T{_?%p&Z z+_p(G+@$G87^~?;7`Ev~*oVfhuqTb%!g?E5g`H|#7`CUeENo+AYFJ%kVA#S&$1ri@ zgs_}O&9KeA4=tCK@7uJ#W-yxKl= z+iH{0HLEp3|5`l~qF((xM7a7|Nc!rdA>pgrLp)a3huE#28)CY;IE1}AAq2nLC*<=g z+mL}(ypY?gC?VaeJ_jFI^*FeF)urIos}2M&TeUG*xvDC-c$G3Zbya?F*sADY_f>Ae zwyUNFPgunXX0O5p<5vv@eQvlLG|+H1=yt>Ipz{rDgAO$;3EJ8q4r*%12>PobI7rw)GC#{xMG?SYhr`oQli=LQb0EDF58GCuIiO0U4K zmDYi~R_X_~tRx23tsD+mxbl90WaYVl{FR*ni7T4}f>tgKn7y(xz0iRcB2E17D-M??efd7RR*ZhyHIO4y3MVo)~idz5b6>9(aD+K9`#!Au>T|8`iO;FJ%Rc++4*0ayZSYxL_m|IKby6R+F3YE^F4QNxZl+Icotck+ zou-d--FI)xx@X?}x~tw=b%(qOb*)`okZsCD-4texn+xt8g@ zs`iK1pS91u(Aplavf9I5*|n`+akW)m0ksM*m)aaJ>)LRy3AN5%+O-qCNVQC_?={~& z-_|_$d{oop*;{kS^K4D4=Yg8#o?C0=o@;BeJ*#WNJQvi=^pw=)s@|cOI;H z@a4gj2S*<4c<|!EhzA!QEO_wW!F&hj9c*{-+`(`Mw;il@@Y%s+2ZtT(b@0}~SO-@f zEOqeH!Au7y9c*;)(7`|l_Z+Nq@Xf(A2ge-ja`4K*CBl@Oi=H1&0^xUGR3n*acS?EM4$(!OR6G7i?VcaKXR@_ZF;M@NL1g z1;-ZbTJUPYs0Ei6EL!kq!JGwW7HnDYWWkUHHx{f|@L|D(1qT-FSMXlJcm>xLELZSb z!E6Pm6>L`USixWgcNMHv@KwQ71xFR^RPa*4NCg)aEL8AM!8`@$6l_!QOu;Y(w-l^W z@JYcW1&0*uQSe5=7zI}pEK%@7!3+f_6l_rNK*0b7_Y85WzqM_YkZ@@D0H<1ji8ULhuT~CGdm;+Z1EIIJwz>EVY z4s1B^;J|QHt^cOXakoGEH?1hz+3}o4Qw^=)WA>!Hw~;b@X^3T z0|yQ4Gw{y9I0M%VEHm)Sz$^o&3~Vy+$iN^2cMPmC@WsFs14j((Fz~{_2m==kEHLoD z!2AN|3v4g&yuk1Rw+pN;@VUU`0*4FiE%3I$*aBAzEG_V}z{~=vMD)6enr~;P?EGqD)z?=eS3T!Fxq`;5@HwvsM@S(tj0tX80C-9!Ycmmf6 zEGO`rz-$7i32Y|tn808HcL}T|@Rh(+0!In#B=C~JNCFoLEF|!cz&rxy2y7$pjKDAg zw+O5v@QJ`A0*46fA@GL47y?%aEFtiNzzhN>2y7tmfWQC(_Xn&W@O{Aa0mldI9`Jg= z=mD1pEFSQ8z}x|62W%bibimL7HwUa7@Nq6M`o|p{uy4S-0pkW-8?bD^uK}|LoEorc zz@q_!2HY92X26#LQwAIvuw%fB0V4)n7_eZ#e*yCaoENZNz;gk^1>6>}TEJ%klLZ_W zuvfra0b>PR6|hvmPXRLpoD{H8z(WB81>6&`PQW(-(*zt7uuH%z0iy(560k_X9|3a& zoDr}^z!L#O1l$m?Lcj+B69gO(us^{20OJE(53oGI?*Ov{oDQ%#z~cae1KbU;Ho(^a zQv)0gurt8R03!oj46rc3zX08}1(*Ya@up7W@0HXn12Cx{wUjTCfoCUBIz*7K20o(+z z62M0Q69F6qun)jH0OJ5$1F#IhF95RuoC2^3z#{;I0Neqv2EZ2pQve(Rumivg03!fg z0I&f5|33Zy-%s%W_jCH;Q~Ce-6n^;JefXq(_;h{vO#Lt8pPm0{{FCxOpu^*zhd+eA zL*I^n;{71{8hwSnL|>o-=yUWL`V@VFK1Ls*57GN*KY9V~?YGf_v>9<@cS(5dKTbRues@=+eDk8)6Ll!Y=-8cIg- zC|4@HZe^w8x->C=HFV)Y~kJS&!xP=}}k)IMqt z^=$P_wY}O#Jxx7XZKgI>8>l&IEj2?;RTI=0^-t9|)koEk>a}V>^;mUZ)u+0lx~jUM zI;%RNI-)wD+N0W`YFD+Y)~Om*D^%60KUIrV^Hge;OeInYRRyXXRk|us6{8AQ1*v>h z9x4}=qsmq_O*KhnqB2x*R4f%;MN(l@Kb2pU!^$_x0p(-mJ>^YhkMe@@jPkhhpt4iB zL)oU>pj@L|sjOE1sr*AZM=4i|lqE`mGE14Fj8jG^gOol>H|0#_bfu-zT*+7JE47sj zC0U74{!n~Y3@KhJo+$biHx*YE=M^UvM-+P%9f~$Zi=t6culQTBSTR>2SBMnFiabTS zB0&+U2v+zgToq0VTZM(fRAH#lQ7{xF1)>;{e~=H#pULmbZ^^I9&&f~756Sn)x5+ok z*T`4Mm&+H)=g4L9a(RI~OP(x`mWRlFm93H0%l?-AAydmLWhJs)S*k2n7Ao_Vxyl@6Rx)#$kxWOXAtT6s zNk2>9NS{gjr8lG(rKhBarMsnDq%G1_(rW2q=^Uv8J|5UID+Svp;6AvKY5 zrA#SFIwtudc`JD)xhLtBT#%fQ9FTNKHc8e<>Lkk~^CU7!sU%O5Dv6Nl}(j3l}jqo%F4>3%B;$S%J53xN|(y% zl~XE>D|IXBmDtJ=@sRkr_@4Nh_?-BdxKq4EyiUAA{HJ)HSSl_NXNwcX;bLF0i`Y&) zS!^WM7E{DyqR*m1(PPmq(IwGI(SFf((FRe2=x@;ikxV2MWs4F;VIm*VERl_9qR2qR z6cI%~D&AKNRNSlRsW@A4xMF8TYei#4RmH*zd4;edyCR_?tirouW`$LSX@y>eMg_Lw zYx$e<$K^N6FO(lI?<{XGUt3;VzNlPTURIu4o>(4M?p;2k+_HQ^xo$bFe5~wK*{ibq zW!KBjmK`qZDBDohQ1)lp+%j>Qpe(g4vdp*4xy-uEw2V_mFGI>cmA)+PFTGZJru1Ox z_R{sG^`%QnRi$O6Ii(4uA*CLr4y98{d8N!!eCapg8{s2iudrKqSlA(K5v~v}6{>_~ z!W?0|Fj(j&oGzRs)E6>@7~$uVmnHorS4&Qo>?>(6X)38InO{;_Qc#jo5?r8kMv+AkuSl~9TlBf`Md6*oONGY@cNK0ZTv52V zP+nMEm{u53=w0YoIJr>2P@{0HV7TCE!Oenm1&0c@6|60&DwtOwD#$H}F9ck(afAIaaI z-<)5SKQF%`KPNvn-#>q5{?vTKe2x6Ey!UyJ^Lq16=k3kgl-H2ABu}1Kn3s|ln&*~h zlV_5rm50mwl>0pQR_?jngSlIB8*`WCDszi-Q**;|-E(boC*-noak-yzp6A@k>CV}o z)0VR;XK9W+r!XfuCpc$zj%AKfj%LnS_WSHd+1Ij9Wbe*y$*#?wpDoJH&W_IZ$#%## z&(_T*W`E6kk##$(JL^DJTUJBX;w)*FAS)p&AZupUlq_x*C2J(}b>`j73z>&9w`8u) zT$(A*6l5l324v36oRZ1Sq-2g{yv*p!IG1rCqb*})#-a>KMs7xIhHr*L#>5Pr41C6? z^k?b4>8H|nr?;e6r_W6+_ac9 z?=<@~(=@F#OxpX@hpAUnkEL!;ZAx91Do+)p#;5wFI;Kuc)lS8wen@$o(vxyLWqV3f z%CZ!BiXbIE#W%$v#Vm!Lf=PLw{4n`S@{#1N$*YqWCrgrZlcSTpl5Lau$&BP*NrOpu zlg=gWPijr7OPZHdmXwwhlH`(Pk;F|RC4EkOmUum}D{)8Sn#5&^vc$Z^*hKF{yF`8> zBk^a#>x4TA-3faWHY8Lhpb5nZNeKZ7P6-ne*a?_~q4@jp7vm4aZ;G#rpBG;mpBf(& zKQn$(yiPnW{(anoxJz*d<2J|D$IXu`jZ2LSiklfXDNZ{M8#fetKlVcGf!NmA+Soa< zC9z4d0kMv;X0fc;(U>`%9-12(8R{Bp5y}b0g${+>3+WEo6Ve>AEJPBL6%rQW95N|{9WoX?7Ipg$)D~15ga#D`#Rho>Sp{)}2tmVv{ekBK zI|G{omjzY^W(I}?&I~jQWCs2ScoA?t;8;L=Kz+cRfTDo70M7uc0B!&w;JyDn|8D=? z{%iaf`-}Y3`~&?R{Z0Jo{$Kr`_+9Zk=(o{txu4uG$1lRq#cz_ImftVmm%hEe$9&s; z>wHn)0^b;4ci*YLy1p3SH$Jz0PWo*3Y4DlvQ{t20^*rO*;knv#fv3jl?N*R`&TT`OEuT>V^aT@73b zu0yl$%sw@H`|Opo=guyi9W&c?_T<@Gvwyk_xb(Oja@pwew~NFj!zIYY!Nu5x;_|_{ z-}$WbPUlt5^PP*G^g*teM|uJezTO#{L=WW-OgiF(YM$?+oi1+!@#zZ=7yA9dl}P zs&~yoauK4r?6#a1c7g zJ9s)wb*>AIk4$f!{`Yjr^z`Wg)9t1k zOvg`uYj?};xLuoFm7UBk(=N!)-i~KSv>USRv+c5Nx2>^N*k;=X+d9}9*^+GE+w|F- zu-Rf$YooBqwh6Iuv@xbt1)H2;Nz|z)I-x6y%IIVZuk!c&J{WVQIEp?jjG^=Tx zX=77gPVJd`VCwp*OQx1hO`PgEb?Q|1)E^elEG}7eS~OWKv?#WSv2e98w_sR&neuQ- z_mqw)E2qqvl0PMU%8V)eDU>P0lkZGEF}Zzm&1CuH%*lb1?I!C_#!eob)H~_$qz#jn zO{$obG|6ky)Jg0~Kg^$*Uo!7BZ!%wCUSu9^?qY6cPB;HFv47&}iQ6XDO;k?Io)|pQ zexl(-+{8h%UbDky8_brORhT82d6`W$W1D?9ePVjSbhqhh(|M)^rje#IO-)QGro$8N zOz4`>Hlb>QbVB+BzX{e8I1|Q9UYJ}l*=MrWkw@o!GQ4Ma%5aNejiJmi!_eQ*#*kw;W-wrI#bB?&8iNG} zMFvp@vkWE}Pz;9k`}Di?H|zhcU#Xv>@1s9WpRNCc`-FReyNlbvox{!JhH@RbJT8Iz zMz2@zuwIMa61_6Lcs)10NqP*u&z$?5)10lG8jhTk!SUzVa5$V%-RHWObvtz%b?508 z=tk(y&^6X2>AusssdGeUqs}s&a-9Sn51q+6nmS*!?`xmY-lkovE!WP_4$!vI=4g+y zpR+HqJK2rwd29hYobALmW)s4lGVSCZ%+O?f(YUX1T4Sq5jfPAkUBgeqN<&BEC;ch?0(}>~fsWF1=^=D` zx&a+ae?{w|?We7!Eudd>V=Nj(U@Ngt~#clv+lOr@B$isT$NzlzWtuly*uL zMM6oXcvGfQv?wFwN91nu4stzNNzNh%l5NR)HI{v^H~Uxk<8Q}I6d zsdz2?2<{QC8@B^jk5l3@aRE3R90xaweU80^-Gg0)orBH8hGHGChFBc-HKqr%AF~#- z5L1MS!py>$U`UvE$W7!3vH@9&lp%45D>4zG|L*^x`F9$FwjX+aX!xPqhgKi@d}#8a z!-w`BdV6T>p{s|M9{PD`=An~^HXeF-XyBoHht?hXc4*q6V~2JfdUa^jp-YDr9r|-< z&Y?4hwj6qLXvm=(hgKZ=aA?Az1Bdn-dT(gFq3ed08~SZ%wxQF8HXC|uXt1HXhSnPT zYG|sVqlR`GdTD5+p^JtV8v18wo}qJwwi$Y6Xqcf}hE^H+WN4D1Lx%PkdShsep(}=# z82VvohM^ONHW+$fXn>*nh1M7PUTAuu)HV=9{Xz-xBgVqlEI%w*kql0!1dO2w1po@bR4*EA}-k@`X zwhekVXxN}zgH{dtG-%SGLxc7VdNXLupeuux4Eix>#-I~}HVk?&XuzQRg4PTAE@--- zsLpC}^UfgM#)6dM9X{plgDb3Hl{y zmY`FDHVJwpXpo>gg4PK7B4~=BBZ77adLd|ppbLT)2>KsrexUP#wg-A1Xn3I8fmR3l z9B6W&!-4h&dK+kLpsRtF2KpIjW}uUSHU@eaXkegwfz}237HC?aV}W)BdKG9?pi6-k z1^N?cPM|Y^wgh?-Xh@(NfmQ_i5NJZ61A+DfdJkwkpzDB^1NseUHlWjhHUoMLXfU9= zfYt)~3TP^zqkwh-dI@MGpo@SO0{RDN9-wo8wgGwuXc(YdfK~ze1ZWbVLxA=GdIM+- zpeulu0Qv!F2A~swHUN46XaHdD53_!l@54+V=J-rkMitEKVMY&gd6>n+{2gZQFlUF^ zI?U5yh7NOcn3cnP9A@G$2Zz}=%)4R64RdXnWyAa$X4WvLhS@aCqhSUOb7z<}!+aTL z$}mTU*)hzEVMYvdVVDKO{1;}vFz1EYF3fXbh6{6BnAO637G|~LtzFAb5EFc!h92EnlQ(N*(J;?VMYmaNti{#{1Il3FlU6>BFqzE zh6r;*m=(f&5N3if2ZY%l%==)*2Xj4`<-z<8W_B>AgV`L+<6s5{b2pf^!F&y7YA{EG z*%{2sU`7UWF_?wH{0nAYFz15V7R<9?h6Qsgm{q}i3T9F;hl1G?%$s1w1al>rCBgg% zW=1e4g4qzvgJ1>(b03)XzKQMgnmHZp@ZlP^eOrfy^G#Ld(eyM8T2@M0NsUdK{ud{ zXf3)7orlWMQZx@uL8DNAbT(>-PC^Y(O%#WIQNL36tFNk0sQ0Khs_WH%s3qz=b)4Ey z?W8tWYpZeUVbw#`Wz`|oW>uYPj;cr%ukun^tGFt>>YcJrc~ZGmS*KJfbCsb=M8S}PKX0!4h$mx_xO>ng+*0TsN8;qo)(4dsR9uH~%qr)7J~{wRwtn^N|@^kQja zXAL#2Sx2gq9V5OiNQ(X*y69r2OA_}+#j|FW4p}3cQjL-~?jEm_@(*4r$=_k|BG?%oI z)V--?sg|j)Qd(2eQw&mWC08d0B@>gol4MEKlinn@CZ;BG5_=LBC%7kki|>ffi#LkD z8TV(LXWU3^M{G{4er!+7!kAexL(v0FsYtB+1gYC%R%8_>~PvX-=1#2b9(gjZ+1;~?siXY|FE^Ny=+rz!?xLL9dG@^YK@hf z)f3AFmgbh{rU|Cerfr`ZI(5jR+QQDFcZz6=&Xm2AV<&%^v~rTuq&{=0xt{rfiSZM^ znyoZ*GP`A3X{uw|IU#z&N0S;8TazAs315T1%{b8bmC+)jiAJY+nLLEI*3iZ9u7T7* z*IGTQ6G=tJlnN;oQ-!)Me}L)Ctjft-VOwRJ)6v!XD9Dp=GCal~u?h zvo*~}=$~oTG)vlfY7P~lHc@6!Zjgm!8hJCxlk|Wn zC+ZM)5rPRX@$>P<_(Ql@+%Wbp>}2d|Od93~vI4Oi-~Yp&ANKjMw}<^a?BQYG4tsUj zpTnLU_TjMihW$3|v0+~gduiA|!=4%T$*?zu{V?o-Vc!dTUD)5ko)-48uy=+1D(q2V zUkZCs*nh&F6ZV;~w}ky9>>**_2zy1?AHtpx_JOeXgZ&=t@nByEdpX#@!JZBFX|Okg z{TS@QVBZCME!bbdo(lF+uy=y}66}#+Uj%z0*#E$u2lhFzw}Jf(>|tQv0(%wMpTM33 z_93wMfc*ySF<@T-dkNS-z@A}zpWsERh5Z2R0bt#SwI0@YSkqx0hqW8lYgnUUU52$7 z)?Zk2VV#Aw71mQ&Lt)*7wG!4xSQB9#gtZUWJ6PjjU4yj@)-PDIV4Z@s3DzT6gJ9i( zwFcG~SW{pffwcqH3s@syU4XS<4E>J2M<1hC(7otNRE&n8Cg^+hAvLOYQ-4?ORAs6( zRr{5R%5RDqg}Gv%+*5u|7AWhMx=TAHrjoxaKZ#?+yG1lnT17|s_cD*N`K2d>KT2#$ zGK-fN9VqNC_$A;9?DBo{;&QWcin7bH$})u+`RS=?;i;}EQ<9lU9}{lG?~Gd-n;tVg z8XI*bVr6)0m`Uj4;I%>VftmrQ{KURyK0RJ?PZN(bZuzdH*{#m*v-)NTo$!t;?9Hd| zwe_&MWEErCKQ+VR`Q*GwFDK@iJ)e+a(r+AVbk)$$;3#*xUYo9g&fjc|Ryp%2BTC~G zZ927u%p{?Nx40zidBlQ%AXo&x@ECgxf?%q#2y%M-7ytJQiy=x71i`JqAqdvO89@*% zhFpk65L^cQ><|Lqv4lnNn@;%IF>U-eq~#a{!Qu&v;mS|32!ail!UcGe3N9cM1aOW_ z@`8teCkRSJaM`5sE0IRv1Vd)ReUkA<$FGO?f*T>@u~-BlU~mzb4+w$~?cmW84`UGo zC0b$;L`|H6Ll6})35y^~VgMFF6vX2g1d$`8wKxR9C18#r2try9k17k}i696WKRW(B z8bJ^W6L*HR1cM+{J_bQ>-6Z%W))b+BgzKIo*^HmXQjOr*p8tIoN3DQMFOaD4s7>+I z&2ZxvNzC!HWaVKT?~Ry3~@I!R+^0EcFiD%tQ*j zlJE+QzaZw6f9{h^y#Y5j>GxSWl?T_IJbt5CQ|3PpVG0GFH`Y`eA>(;i1R?!|gDfah zun0oOyul&}M#3Eblfzfj_;&=s?7<<3MihdPGU2Cb2!b$f!n;|gICABX%zkmg!E4tf9kwCndNGJeW}XN_6>@4=(LFZ}lV^wICrIpe2V-tf)iNJltM6xmAxR00!HdcjTY~hW%4vQe#@S?)oL#Gj5Aw(M<>z#kkk0HA4aJM0^ zaR@>fe~277c>E{?k05$*tuY*;YYI=il!YHZ>^*{ThWAB7;rCF$@?nL>49z z!z3aI)(oN1TxmE4g5Y!!9Ag&EnHIoC5d81olM#e~$IxiAXwC!-8$pPZ5gfx%13^f? zk0!v;WKD!Nel-gFKgUuv{<%Ry0DA@%L1-EXjtsZ+&sn+^#*IFHhlEM=05%Jwg>fgY z^rXYRXb}E)D3*vI48s3z2+nH$=PVULnD+nYQr3UYQV~RJ$vg~(g|THL2z%)~41%Rr zdr}cZ8-od8!(Hi^AOUP^8iMHlz8)=r4cFtCBk;`h#xEuy2>1U!To*cm=o7{d8UKQ1 z2#cu3Px1f!OovnWM~+2QdjA~t&zB?oF_3UL350(!$VW_gGyDVxW03Iw9_upxs|YxO zMTP*!nlj||94gG|6VonKUa|K3g1e~yj% z@3Hpd&(NkBPT^n-68-OU!6G)z{~l^Mei(eg%kt0HzyA;T@7I6NyTQVPyn<_CelRo; z3*o>5YfD=aVe6_;d*1j3REBx_c3X}K`3JfoPOD=5mT;7^v$aGa8y zS0d(%guNrfPo1CaLFJIqiL{K8Kbxafe=P0=F_inRZB-twWj!DfJYHB6BLEGct>E5b?janJpBs+ zOMm~yJ1RUaSdf_3ytA>@yGw_=s4EyhH^>vAab@MFmdxeQyLoLO~S7Knw&yKu~PXUYOY3 z-QA4^-#K`EAK&Nw%>4fOtr@)TYwyL{wbqWsjML>l0W;<}$$iy+3ctVrCzr0S9ou)B z{Cm*@$@G$$@GM!We->ku$H-ArJ>9*$N00E3jGQ{cJoRSR zkbgk z{Kpa9NAw>(*ki~jOMj$&&0ZT2DEIf7@2CImE*(2eRsOx+zoV^WKKcgw&KfZ|aHiiZ zKVP||q;LNUg%UsfPirH+CU{I8>@{+*`>4JH{+{E%e8}A08RnUn`^@yyn#23A%0DBQ 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

  • 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

    gE##$ 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

    2c9 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

    Ikn~84{-y!~-_$%UXi60X?h<_yhiTG!t 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%0Dh*$xV{c3)aV>IQtE4oR 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�y7_GHc@Ig$3p{*&45-{csmqLIreEV4k=9 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 E0r Date: Mon, 20 May 2013 23:19:24 +0200 Subject: [PATCH 08/16] Hotfix: Building fixedwing backside params correctly --- src/modules/fixedwing_backside/module.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/fixedwing_backside/module.mk b/src/modules/fixedwing_backside/module.mk index a9233288b0..ec958d7cbb 100644 --- a/src/modules/fixedwing_backside/module.mk +++ b/src/modules/fixedwing_backside/module.mk @@ -37,4 +37,5 @@ MODULE_COMMAND = fixedwing_backside -SRCS = fixedwing_backside_main.cpp +SRCS = fixedwing_backside_main.cpp \ + params.c From 0165034e496d0652f9dbb7d122d808cd6b483e60 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Thu, 16 May 2013 09:12:13 +0200 Subject: [PATCH 09/16] Hotfix: Changed alarms back to what they originally were designed for: Traps to later see if condition was once violated. Currente status can be read through the status flags --- src/drivers/px4io/px4io.cpp | 3 +++ src/modules/px4iofirmware/controls.c | 3 +-- src/modules/px4iofirmware/mixer.cpp | 1 - src/modules/px4iofirmware/registers.c | 1 - 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp index a40142792a..8b2fae12b8 100644 --- a/src/drivers/px4io/px4io.cpp +++ b/src/drivers/px4io/px4io.cpp @@ -1273,6 +1273,9 @@ PX4IO::print_status() ((alarms & PX4IO_P_STATUS_ALARMS_FMU_LOST) ? " FMU_LOST" : ""), ((alarms & PX4IO_P_STATUS_ALARMS_RC_LOST) ? " RC_LOST" : ""), ((alarms & PX4IO_P_STATUS_ALARMS_PWM_ERROR) ? " PWM_ERROR" : "")); + /* now clear alarms */ + io_reg_set(PX4IO_PAGE_STATUS, PX4IO_P_STATUS_ALARMS, 0xFFFF); + printf("vbatt %u ibatt %u vbatt scale %u\n", io_reg_get(PX4IO_PAGE_STATUS, PX4IO_P_STATUS_VBATT), io_reg_get(PX4IO_PAGE_STATUS, PX4IO_P_STATUS_IBATT), diff --git a/src/modules/px4iofirmware/controls.c b/src/modules/px4iofirmware/controls.c index dc36f6c934..3cf9ca149b 100644 --- a/src/modules/px4iofirmware/controls.c +++ b/src/modules/px4iofirmware/controls.c @@ -217,9 +217,8 @@ controls_tick() { if (assigned_channels == 0) { rc_input_lost = true; } else { - /* set RC OK flag and clear RC lost alarm */ + /* set RC OK flag */ r_status_flags |= PX4IO_P_STATUS_FLAGS_RC_OK; - r_status_alarms &= ~PX4IO_P_STATUS_ALARMS_RC_LOST; } /* diff --git a/src/modules/px4iofirmware/mixer.cpp b/src/modules/px4iofirmware/mixer.cpp index 5ada1b220e..1234e2eea5 100644 --- a/src/modules/px4iofirmware/mixer.cpp +++ b/src/modules/px4iofirmware/mixer.cpp @@ -100,7 +100,6 @@ mixer_tick(void) } else { r_status_flags |= PX4IO_P_STATUS_FLAGS_FMU_OK; - r_status_alarms &= ~PX4IO_P_STATUS_ALARMS_FMU_LOST; } source = MIX_FAILSAFE; diff --git a/src/modules/px4iofirmware/registers.c b/src/modules/px4iofirmware/registers.c index 61049c8b6a..f21ac6e4cc 100644 --- a/src/modules/px4iofirmware/registers.c +++ b/src/modules/px4iofirmware/registers.c @@ -203,7 +203,6 @@ registers_set(uint8_t page, uint8_t offset, const uint16_t *values, unsigned num system_state.fmu_data_received_time = hrt_absolute_time(); r_status_flags |= PX4IO_P_STATUS_FLAGS_FMU_OK; - r_status_alarms &= ~PX4IO_P_STATUS_ALARMS_FMU_LOST; r_status_flags &= ~PX4IO_P_STATUS_FLAGS_RAW_PWM; break; From 88ba97816ddffdfeae6f8d29e984759136eef9b3 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Thu, 16 May 2013 10:48:57 +0200 Subject: [PATCH 10/16] Better preflight check, catches wrong RC configs. Needs rework of mavlink text message API to VARARGs --- src/modules/px4iofirmware/registers.c | 8 -- .../preflight_check/preflight_check.c | 99 ++++++++++++++++++- 2 files changed, 96 insertions(+), 11 deletions(-) diff --git a/src/modules/px4iofirmware/registers.c b/src/modules/px4iofirmware/registers.c index f21ac6e4cc..9698a0f2fb 100644 --- a/src/modules/px4iofirmware/registers.c +++ b/src/modules/px4iofirmware/registers.c @@ -412,18 +412,10 @@ registers_set_one(uint8_t page, uint8_t offset, uint16_t value) if (conf[PX4IO_P_RC_CONFIG_CENTER] > conf[PX4IO_P_RC_CONFIG_MAX]) { count++; } - /* assert deadzone is sane */ if (conf[PX4IO_P_RC_CONFIG_DEADZONE] > 500) { count++; } - // The following check isn't needed as constraint checks in controls.c will catch this. - //if (conf[PX4IO_P_RC_CONFIG_MIN] > (conf[PX4IO_P_RC_CONFIG_CENTER] - conf[PX4IO_P_RC_CONFIG_DEADZONE])) { - // count++; - //} - //if (conf[PX4IO_P_RC_CONFIG_MAX] < (conf[PX4IO_P_RC_CONFIG_CENTER] + conf[PX4IO_P_RC_CONFIG_DEADZONE])) { - // count++; - //} if (conf[PX4IO_P_RC_CONFIG_ASSIGNMENT] >= MAX_CONTROL_CHANNELS) { count++; } diff --git a/src/systemcmds/preflight_check/preflight_check.c b/src/systemcmds/preflight_check/preflight_check.c index 42256be61e..7b1c9679ef 100644 --- a/src/systemcmds/preflight_check/preflight_check.c +++ b/src/systemcmds/preflight_check/preflight_check.c @@ -45,6 +45,7 @@ #include #include +#include #include #include @@ -98,7 +99,7 @@ int preflight_check_main(int argc, char *argv[]) if (ret != OK) { warnx("magnetometer calibration missing or bad - calibrate magnetometer first"); - mavlink_log_critical(mavlink_fd, "SENSOR FAIL: MAG CALIBRATION"); + mavlink_log_critical(mavlink_fd, "SENSOR FAIL: MAG CHECK/CAL"); system_ok = false; goto system_eval; } @@ -111,7 +112,7 @@ int preflight_check_main(int argc, char *argv[]) if (ret != OK) { warnx("accel self test failed"); - mavlink_log_critical(mavlink_fd, "SENSOR FAIL: ACCEL CHECK"); + mavlink_log_critical(mavlink_fd, "SENSOR FAIL: ACCEL CHECK/CAL"); system_ok = false; goto system_eval; } @@ -124,7 +125,7 @@ int preflight_check_main(int argc, char *argv[]) if (ret != OK) { warnx("gyro self test failed"); - mavlink_log_critical(mavlink_fd, "SENSOR FAIL: GYRO CHECK"); + mavlink_log_critical(mavlink_fd, "SENSOR FAIL: GYRO CHECK/CAL"); system_ok = false; goto system_eval; } @@ -134,6 +135,98 @@ int preflight_check_main(int argc, char *argv[]) close(fd); fd = open(BARO_DEVICE_PATH, 0); + /* ---- RC CALIBRATION ---- */ + + param_t _parameter_handles_min, _parameter_handles_trim, _parameter_handles_max, + _parameter_handles_rev, _parameter_handles_dz; + + float param_min, param_max, param_trim, param_rev, param_dz; + + bool rc_ok = true; + + for (int i = 0; i < 12; i++) { + /* should the channel be enabled? */ + uint8_t count = 0; + + /* min values */ + sprintf(nbuf, "RC%d_MIN", i + 1); + _parameter_handles_min = param_find(nbuf); + param_get(_parameter_handles_min, ¶m_min); + + /* trim values */ + sprintf(nbuf, "RC%d_TRIM", i + 1); + _parameter_handles_trim = param_find(nbuf); + param_get(_parameter_handles_trim, ¶m_trim); + + /* max values */ + sprintf(nbuf, "RC%d_MAX", i + 1); + _parameter_handles_max = param_find(nbuf); + param_get(_parameter_handles_max, ¶m_max); + + /* channel reverse */ + sprintf(nbuf, "RC%d_REV", i + 1); + _parameter_handles_rev = param_find(nbuf); + param_get(_parameter_handles_rev, ¶m_rev); + + /* channel deadzone */ + sprintf(nbuf, "RC%d_DZ", i + 1); + _parameter_handles_dz = param_find(nbuf); + param_get(_parameter_handles_dz, ¶m_dz); + + /* assert min..center..max ordering */ + if (param_min < 500) { + count++; + mavlink_log_critical(mavlink_fd, "ERR: RC_%d_MIN < 500", i+1); + /* give system time to flush error message in case there are more */ + usleep(100000); + } + if (param_max > 2500) { + count++; + mavlink_log_critical(mavlink_fd, "ERR: RC_%d_MAX > 2500", i+1); + /* give system time to flush error message in case there are more */ + usleep(100000); + } + if (param_trim < param_min) { + count++; + mavlink_log_critical(mavlink_fd, "ERR: RC_%d_TRIM < MIN", i+1); + /* give system time to flush error message in case there are more */ + usleep(100000); + } + if (param_trim > param_max) { + count++; + mavlink_log_critical(mavlink_fd, "ERR: RC_%d_TRIM > MAX", i+1); + /* give system time to flush error message in case there are more */ + usleep(100000); + } + + /* assert deadzone is sane */ + if (param_dz > 500) { + mavlink_log_critical(mavlink_fd, "ERR: RC_%d_DZ > 500", i+1); + /* give system time to flush error message in case there are more */ + usleep(100000); + count++; + } + + /* XXX needs inspection of all the _MAP params */ + // if (conf[PX4IO_P_RC_CONFIG_ASSIGNMENT] >= MAX_CONTROL_CHANNELS) { + // mavlink_log_critical(mavlink_fd, "ERR: RC_%d_MAP >= # CHANS", i+1); + // /* give system time to flush error message in case there are more */ + // usleep(100000); + // count++; + // } + + /* sanity checks pass, enable channel */ + if (count) { + mavlink_log_critical("ERROR: %d config error(s) for RC channel %d.", count, (channel + 1)); + usleep(100000); + rc_ok = false; + } + } + + /* require RC ok to keep system_ok */ + system_ok &= rc_ok; + + system_eval: From d720944efed1c5cde2b6feed170ade7b2bc9ada3 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Mon, 20 May 2013 14:55:48 +0200 Subject: [PATCH 11/16] VA args now supported by MAVLink text messages --- src/include/mavlink/mavlink_log.h | 45 +++++++++++-------- src/modules/mavlink/mavlink_log.c | 26 +++++++++++ .../preflight_check/preflight_check.c | 4 +- 3 files changed, 56 insertions(+), 19 deletions(-) diff --git a/src/include/mavlink/mavlink_log.h b/src/include/mavlink/mavlink_log.h index 233a76cb31..a28ff3a687 100644 --- a/src/include/mavlink/mavlink_log.h +++ b/src/include/mavlink/mavlink_log.h @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (C) 2012 PX4 Development Team. All rights reserved. + * Copyright (c) 2012, 2013 PX4 Development Team. All rights reserved. * Author: Lorenz Meier * * Redistribution and use in source and binary forms, with or without @@ -47,27 +47,42 @@ */ #include -/* +/** * The mavlink log device node; must be opened before messages * can be logged. */ #define MAVLINK_LOG_DEVICE "/dev/mavlink" +/** + * The maximum string length supported. + */ +#define MAVLINK_LOG_MAXLEN 50 #define MAVLINK_IOC_SEND_TEXT_INFO _IOC(0x1100, 1) #define MAVLINK_IOC_SEND_TEXT_CRITICAL _IOC(0x1100, 2) #define MAVLINK_IOC_SEND_TEXT_EMERGENCY _IOC(0x1100, 3) +#ifdef __cplusplus +extern "C" { +#endif +__EXPORT void mavlink_vasprintf(int _fd, int severity, const char *fmt, ...); +#ifdef __cplusplus +} +#endif + +/* + * The va_args implementation here is not beautiful, but obviously we run into the same issues + * the GCC devs saw, and are using their solution: + * + * http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html + */ + /** * Send a mavlink emergency message. * * @param _fd A file descriptor returned from open(MAVLINK_LOG_DEVICE, 0); * @param _text The text to log; */ -#ifdef __cplusplus -#define mavlink_log_emergency(_fd, _text) ::ioctl(_fd, MAVLINK_IOC_SEND_TEXT_EMERGENCY, (unsigned long)_text); -#else -#define mavlink_log_emergency(_fd, _text) ioctl(_fd, MAVLINK_IOC_SEND_TEXT_EMERGENCY, (unsigned long)_text); -#endif +#define mavlink_log_emergency(_fd, _text, ...) mavlink_vasprintf(_fd, MAVLINK_IOC_SEND_TEXT_EMERGENCY, _text, ##__VA_ARGS__); /** * Send a mavlink critical message. @@ -75,11 +90,7 @@ * @param _fd A file descriptor returned from open(MAVLINK_LOG_DEVICE, 0); * @param _text The text to log; */ -#ifdef __cplusplus -#define mavlink_log_critical(_fd, _text) ::ioctl(_fd, MAVLINK_IOC_SEND_TEXT_CRITICAL, (unsigned long)_text); -#else -#define mavlink_log_critical(_fd, _text) ioctl(_fd, MAVLINK_IOC_SEND_TEXT_CRITICAL, (unsigned long)_text); -#endif +#define mavlink_log_critical(_fd, _text, ...) mavlink_vasprintf(_fd, MAVLINK_IOC_SEND_TEXT_CRITICAL, _text, ##__VA_ARGS__); /** * Send a mavlink info message. @@ -87,14 +98,10 @@ * @param _fd A file descriptor returned from open(MAVLINK_LOG_DEVICE, 0); * @param _text The text to log; */ -#ifdef __cplusplus -#define mavlink_log_info(_fd, _text) ::ioctl(_fd, MAVLINK_IOC_SEND_TEXT_INFO, (unsigned long)_text); -#else -#define mavlink_log_info(_fd, _text) ioctl(_fd, MAVLINK_IOC_SEND_TEXT_INFO, (unsigned long)_text); -#endif +#define mavlink_log_info(_fd, _text, ...) mavlink_vasprintf(_fd, MAVLINK_IOC_SEND_TEXT_INFO, _text, ##__VA_ARGS__); struct mavlink_logmessage { - char text[51]; + char text[MAVLINK_LOG_MAXLEN + 1]; unsigned char severity; }; @@ -116,5 +123,7 @@ void mavlink_logbuffer_write(struct mavlink_logbuffer *lb, const struct mavlink_ int mavlink_logbuffer_read(struct mavlink_logbuffer *lb, struct mavlink_logmessage *elem); +void mavlink_logbuffer_vasprintf(struct mavlink_logbuffer *lb, int severity, const char *fmt, ...); + #endif diff --git a/src/modules/mavlink/mavlink_log.c b/src/modules/mavlink/mavlink_log.c index fa974dc0b6..6395ab214a 100644 --- a/src/modules/mavlink/mavlink_log.c +++ b/src/modules/mavlink/mavlink_log.c @@ -41,6 +41,7 @@ #include #include +#include #include @@ -87,3 +88,28 @@ int mavlink_logbuffer_read(struct mavlink_logbuffer *lb, struct mavlink_logmessa return 1; } } + +void mavlink_logbuffer_vasprintf(struct mavlink_logbuffer *lb, int severity, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + int end = (lb->start + lb->count) % lb->size; + lb->elems[end].severity = severity; + vsnprintf(lb->elems[end].text, sizeof(lb->elems[0].text), fmt, ap); + va_end(ap); +} + +__EXPORT void mavlink_vasprintf(int _fd, int severity, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + struct mavlink_logmessage msg; + msg.severity = severity; + vsnprintf(msg.text, sizeof(msg.text), fmt, ap); + va_end(ap); + #ifdef __cplusplus + ::ioctl(_fd, msg.severity, (unsigned long)msg.text); + #else + ioctl(_fd, msg.severity, (unsigned long)msg.text); + #endif +} diff --git a/src/systemcmds/preflight_check/preflight_check.c b/src/systemcmds/preflight_check/preflight_check.c index 7b1c9679ef..4bcce18fb8 100644 --- a/src/systemcmds/preflight_check/preflight_check.c +++ b/src/systemcmds/preflight_check/preflight_check.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -143,6 +144,7 @@ int preflight_check_main(int argc, char *argv[]) float param_min, param_max, param_trim, param_rev, param_dz; bool rc_ok = true; + char nbuf[20]; for (int i = 0; i < 12; i++) { /* should the channel be enabled? */ @@ -217,7 +219,7 @@ int preflight_check_main(int argc, char *argv[]) /* sanity checks pass, enable channel */ if (count) { - mavlink_log_critical("ERROR: %d config error(s) for RC channel %d.", count, (channel + 1)); + mavlink_log_critical(mavlink_fd, "ERROR: %d config error(s) for RC channel %d.", count, (i + 1)); usleep(100000); rc_ok = false; } From 5dfde44c56e8fc833ea08a246b49076256819ba0 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 21 May 2013 09:12:54 +0200 Subject: [PATCH 12/16] Fixed va args in MAVLink, tested with RC config, correct output --- src/modules/mavlink/mavlink_log.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/modules/mavlink/mavlink_log.c b/src/modules/mavlink/mavlink_log.c index 6395ab214a..1cf073fc8b 100644 --- a/src/modules/mavlink/mavlink_log.c +++ b/src/modules/mavlink/mavlink_log.c @@ -103,13 +103,12 @@ __EXPORT void mavlink_vasprintf(int _fd, int severity, const char *fmt, ...) { va_list ap; va_start(ap, fmt); - struct mavlink_logmessage msg; - msg.severity = severity; - vsnprintf(msg.text, sizeof(msg.text), fmt, ap); + char text[MAVLINK_LOG_MAXLEN + 1]; + vsnprintf(text, sizeof(text), fmt, ap); va_end(ap); #ifdef __cplusplus - ::ioctl(_fd, msg.severity, (unsigned long)msg.text); + ::ioctl(_fd, severity, (unsigned long)&text[0]); #else - ioctl(_fd, msg.severity, (unsigned long)msg.text); + ioctl(_fd, severity, (unsigned long)&text[0]); #endif } From e655c0fc577d724a42d6bb666af814b1301feb1c Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 21 May 2013 10:14:16 +0200 Subject: [PATCH 13/16] Fixed missing count --- src/modules/mavlink/mavlink_log.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/modules/mavlink/mavlink_log.c b/src/modules/mavlink/mavlink_log.c index 1cf073fc8b..efa2e221ff 100644 --- a/src/modules/mavlink/mavlink_log.c +++ b/src/modules/mavlink/mavlink_log.c @@ -97,6 +97,14 @@ void mavlink_logbuffer_vasprintf(struct mavlink_logbuffer *lb, int severity, con lb->elems[end].severity = severity; vsnprintf(lb->elems[end].text, sizeof(lb->elems[0].text), fmt, ap); va_end(ap); + + /* increase count */ + if (mavlink_logbuffer_is_full(lb)) { + lb->start = (lb->start + 1) % lb->size; /* full, overwrite */ + + } else { + ++lb->count; + } } __EXPORT void mavlink_vasprintf(int _fd, int severity, const char *fmt, ...) From 5d9512eb799c86fc674ee9d610f12273f2e97e62 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 21 May 2013 10:17:37 +0200 Subject: [PATCH 14/16] Removed unnecessary cplusplus check --- src/modules/mavlink/mavlink_log.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/modules/mavlink/mavlink_log.c b/src/modules/mavlink/mavlink_log.c index efa2e221ff..d9416a08b9 100644 --- a/src/modules/mavlink/mavlink_log.c +++ b/src/modules/mavlink/mavlink_log.c @@ -114,9 +114,5 @@ __EXPORT void mavlink_vasprintf(int _fd, int severity, const char *fmt, ...) char text[MAVLINK_LOG_MAXLEN + 1]; vsnprintf(text, sizeof(text), fmt, ap); va_end(ap); - #ifdef __cplusplus - ::ioctl(_fd, severity, (unsigned long)&text[0]); - #else ioctl(_fd, severity, (unsigned long)&text[0]); - #endif } From 2db1422fa7cb400f45eddfdae622c7f84c883acb Mon Sep 17 00:00:00 2001 From: Duncan Greer Date: Tue, 21 May 2013 19:16:49 +1000 Subject: [PATCH 15/16] Revert "change default rc channel mapping" This reverts commit fa403956ed6ef1a345ee06c25500c937a78dd7cd. --- src/modules/uORB/topics/rc_channels.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/uORB/topics/rc_channels.h b/src/modules/uORB/topics/rc_channels.h index 9df29ed34d..9dd54df915 100644 --- a/src/modules/uORB/topics/rc_channels.h +++ b/src/modules/uORB/topics/rc_channels.h @@ -64,9 +64,9 @@ */ enum RC_CHANNELS_FUNCTION { - THROTTLE = 2, - ROLL = 0, - PITCH = 1, + THROTTLE = 0, + ROLL = 1, + PITCH = 2, YAW = 3, OVERRIDE = 4, AUTO_MODE = 5, From 7469b9c7006fd2bd3f56416045d4d8a86b92a384 Mon Sep 17 00:00:00 2001 From: Duncan Greer Date: Tue, 21 May 2013 19:18:59 +1000 Subject: [PATCH 16/16] Revert "enable usb console" - shouldn't be in pull request branch. This reverts commit fdb897c3dd5561a1d9f22b35ec049e50d526d08b. --- nuttx/configs/px4fmu/nsh/defconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nuttx/configs/px4fmu/nsh/defconfig b/nuttx/configs/px4fmu/nsh/defconfig index 94d99112e2..02e2243020 100755 --- a/nuttx/configs/px4fmu/nsh/defconfig +++ b/nuttx/configs/px4fmu/nsh/defconfig @@ -248,7 +248,7 @@ CONFIG_SERIAL_TERMIOS=y CONFIG_SERIAL_CONSOLE_REINIT=y CONFIG_STANDARD_SERIAL=y -CONFIG_USART1_SERIAL_CONSOLE=n +CONFIG_USART1_SERIAL_CONSOLE=y CONFIG_USART2_SERIAL_CONSOLE=n CONFIG_USART3_SERIAL_CONSOLE=n CONFIG_UART4_SERIAL_CONSOLE=n @@ -561,7 +561,7 @@ CONFIG_START_MONTH=1 CONFIG_START_DAY=1 CONFIG_GREGORIAN_TIME=n CONFIG_JULIAN_TIME=n -CONFIG_DEV_CONSOLE=n +CONFIG_DEV_CONSOLE=y CONFIG_DEV_LOWCONSOLE=n CONFIG_MUTEX_TYPES=n CONFIG_PRIORITY_INHERITANCE=y @@ -925,7 +925,7 @@ CONFIG_USBDEV_TRACE_NRECORDS=512 # Size of the serial receive/transmit buffers. Default 256. # CONFIG_CDCACM=y -CONFIG_CDCACM_CONSOLE=y +CONFIG_CDCACM_CONSOLE=n #CONFIG_CDCACM_EP0MAXPACKET CONFIG_CDCACM_EPINTIN=1 #CONFIG_CDCACM_EPINTIN_FSSIZE

    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�As`7PVIY7Ycyi^U#>yoGja)(q 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

  • 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%0AfDGrLn&PeDDd;t# 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�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