From 8d0a8b5f9c661cd187afa51b55feb2e4ddb8281c Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Wed, 15 May 2024 14:20:40 +0200 Subject: [PATCH] Refactor code --- Makefile | 122 +-- config.mk | 99 +- figures/features-v3.png | Bin 279729 -> 0 bytes figures/gather_bench.png | Bin 100612 -> 0 bytes figures/gather_bench.svg | 523 ---------- figures/gromacs_mxn_v2.pdf | Bin 14226 -> 0 bytes figures/gromacs_mxn_v2.png | Bin 131612 -> 0 bytes figures/stub_new_v3.pdf | Bin 22768 -> 0 bytes figures/stub_new_v3.png | Bin 53725 -> 0 bytes figures/verlet_v2.pdf | Bin 12815 -> 0 bytes figures/verlet_v2.png | Bin 63370 -> 0 bytes include_CLANG.mk => make/include_CLANG.mk | 13 +- include_GCC.mk => make/include_GCC.mk | 0 include_GROMACS.mk => make/include_GROMACS.mk | 0 include_ICC.mk => make/include_ICC.mk | 0 include_ICX.mk => make/include_ICX.mk | 0 include_ISA.mk => make/include_ISA.mk | 0 include_LIKWID.mk => make/include_LIKWID.mk | 0 include_NVCC.mk => make/include_NVCC.mk | 0 include_ONEAPI.mk => make/include_ONEAPI.mk | 0 {clusterpair => src/clusterpair}/atom.c | 0 .../includes => src/clusterpair}/atom.h | 0 .../clusterpair}/cuda/force_lj.cu | 0 {clusterpair => src/clusterpair}/force_eam.c | 0 {clusterpair => src/clusterpair}/force_lj.c | 0 .../includes => src/clusterpair}/integrate.h | 0 {clusterpair => src/clusterpair}/main-stub.c | 0 {clusterpair => src/clusterpair}/main.c | 0 {clusterpair => src/clusterpair}/neighbor.c | 0 .../includes => src/clusterpair}/neighbor.h | 0 {clusterpair => src/clusterpair}/pbc.c | 0 .../includes => src/clusterpair}/pbc.h | 0 {clusterpair => src/clusterpair}/stats.c | 0 .../includes => src/clusterpair}/stats.h | 0 {clusterpair => src/clusterpair}/tracing.c | 0 .../includes => src/clusterpair}/tracing.h | 0 {clusterpair => src/clusterpair}/vtk.c | 0 .../includes => src/clusterpair}/vtk.h | 0 {clusterpair => src/clusterpair}/xtc.c | 0 .../includes => src/clusterpair}/xtc.h | 0 {common => src/common}/allocate.c | 0 {common/includes => src/common}/allocate.h | 0 {common => src/common}/device.c | 0 {common/includes => src/common}/device.h | 0 {common/includes => src/common}/eam.h | 0 {common => src/common}/eam_utils.c | 0 .../includes => src/common}/likwid-marker.h | 0 {common => src/common}/parameter.c | 0 {common/includes => src/common}/parameter.h | 0 {common/includes => src/common}/simd.h | 0 .../common}/simd/avx2_double.h | 0 .../includes => src/common}/simd/avx2_float.h | 0 .../common}/simd/avx512_double.h | 0 .../common}/simd/avx512_float.h | 0 .../includes => src/common}/simd/avx_double.h | 0 .../includes => src/common}/simd/avx_float.h | 0 {common => src/common}/thermo.c | 0 {common/includes => src/common}/thermo.h | 0 {common/includes => src/common}/timers.h | 0 {common => src/common}/timing.c | 10 +- {common/includes => src/common}/timing.h | 1 - {common => src/common}/util.c | 81 +- {common/includes => src/common}/util.h | 0 {verletlist => src/verletlist}/atom.c | 0 src/verletlist/atom.h | 102 ++ {verletlist => src/verletlist}/cuda/force.cu | 0 .../verletlist}/cuda/neighbor.cu | 0 {verletlist => src/verletlist}/cuda/pbc.cu | 0 {verletlist => src/verletlist}/device_spec.c | 0 {verletlist => src/verletlist}/force_dem.c | 0 {verletlist => src/verletlist}/force_eam.c | 0 src/verletlist/force_lj-x86.c | 112 ++ {verletlist => src/verletlist}/force_lj.c | 100 -- .../includes => src/verletlist}/integrate.h | 0 {verletlist => src/verletlist}/main-stub.c | 0 {verletlist => src/verletlist}/main.c | 65 +- {verletlist => src/verletlist}/neighbor.c | 0 .../includes => src/verletlist}/neighbor.h | 0 {verletlist => src/verletlist}/pbc.c | 0 {verletlist/includes => src/verletlist}/pbc.h | 0 {verletlist => src/verletlist}/stats.c | 0 .../includes => src/verletlist}/stats.h | 0 {verletlist => src/verletlist}/tracing.c | 0 .../includes => src/verletlist}/tracing.h | 0 {verletlist => src/verletlist}/vtk.c | 0 {verletlist/includes => src/verletlist}/vtk.h | 0 util/README.md | 37 - util/cache.py | 33 - util/cache_sets_histogram.py | 39 - util/evaluate_latency_and_cfd.sh | 116 --- util/gather-bench/.gitignore | 52 - util/gather-bench/LICENSE | 21 - util/gather-bench/Makefile | 126 --- util/gather-bench/README.md | 2 - util/gather-bench/config.mk | 22 - util/gather-bench/include_CLANG.mk | 9 - util/gather-bench/include_GCC.mk | 11 - util/gather-bench/include_ICC.mk | 9 - util/gather-bench/include_LIKWID.mk | 10 - util/gather-bench/src/allocate.c | 57 - util/gather-bench/src/avx2/gather.S | 63 -- util/gather-bench/src/avx2/gather_aos.S | 71 -- util/gather-bench/src/avx2/gather_soa.S | 67 -- util/gather-bench/src/avx512/gather.S | 62 -- util/gather-bench/src/avx512/gather_aos.S | 151 --- util/gather-bench/src/avx512/gather_md_aos.S | 147 --- util/gather-bench/src/avx512/gather_soa.S | 67 -- util/gather-bench/src/avx512/load_aos.S | 23 - util/gather-bench/src/includes/allocate.h | 32 - .../gather-bench/src/includes/likwid-marker.h | 53 - util/gather-bench/src/includes/timing.h | 34 - util/gather-bench/src/main-md-trace.c | 441 -------- util/gather-bench/src/main-md.c | 361 ------- util/gather-bench/src/main.c | 166 --- util/gather-bench/src/timing.c | 47 - util/mdBench.c | 979 ------------------ util/plot_gather_data.py | 114 -- util/plot_run_stub_data.py | 76 -- util/preds.py | 28 - util/run_stub.sh | 54 - util/string_to_agr.py | 34 - verletlist/includes/atom.h | 103 -- 122 files changed, 418 insertions(+), 4527 deletions(-) delete mode 100644 figures/features-v3.png delete mode 100644 figures/gather_bench.png delete mode 100644 figures/gather_bench.svg delete mode 100644 figures/gromacs_mxn_v2.pdf delete mode 100644 figures/gromacs_mxn_v2.png delete mode 100644 figures/stub_new_v3.pdf delete mode 100644 figures/stub_new_v3.png delete mode 100644 figures/verlet_v2.pdf delete mode 100644 figures/verlet_v2.png rename include_CLANG.mk => make/include_CLANG.mk (50%) rename include_GCC.mk => make/include_GCC.mk (100%) rename include_GROMACS.mk => make/include_GROMACS.mk (100%) rename include_ICC.mk => make/include_ICC.mk (100%) rename include_ICX.mk => make/include_ICX.mk (100%) rename include_ISA.mk => make/include_ISA.mk (100%) rename include_LIKWID.mk => make/include_LIKWID.mk (100%) rename include_NVCC.mk => make/include_NVCC.mk (100%) rename include_ONEAPI.mk => make/include_ONEAPI.mk (100%) rename {clusterpair => src/clusterpair}/atom.c (100%) rename {clusterpair/includes => src/clusterpair}/atom.h (100%) rename {clusterpair => src/clusterpair}/cuda/force_lj.cu (100%) rename {clusterpair => src/clusterpair}/force_eam.c (100%) rename {clusterpair => src/clusterpair}/force_lj.c (100%) rename {clusterpair/includes => src/clusterpair}/integrate.h (100%) rename {clusterpair => src/clusterpair}/main-stub.c (100%) rename {clusterpair => src/clusterpair}/main.c (100%) rename {clusterpair => src/clusterpair}/neighbor.c (100%) rename {clusterpair/includes => src/clusterpair}/neighbor.h (100%) rename {clusterpair => src/clusterpair}/pbc.c (100%) rename {clusterpair/includes => src/clusterpair}/pbc.h (100%) rename {clusterpair => src/clusterpair}/stats.c (100%) rename {clusterpair/includes => src/clusterpair}/stats.h (100%) rename {clusterpair => src/clusterpair}/tracing.c (100%) rename {clusterpair/includes => src/clusterpair}/tracing.h (100%) rename {clusterpair => src/clusterpair}/vtk.c (100%) rename {clusterpair/includes => src/clusterpair}/vtk.h (100%) rename {clusterpair => src/clusterpair}/xtc.c (100%) rename {clusterpair/includes => src/clusterpair}/xtc.h (100%) rename {common => src/common}/allocate.c (100%) rename {common/includes => src/common}/allocate.h (100%) rename {common => src/common}/device.c (100%) rename {common/includes => src/common}/device.h (100%) rename {common/includes => src/common}/eam.h (100%) rename {common => src/common}/eam_utils.c (100%) rename {common/includes => src/common}/likwid-marker.h (100%) rename {common => src/common}/parameter.c (100%) rename {common/includes => src/common}/parameter.h (100%) rename {common/includes => src/common}/simd.h (100%) rename {common/includes => src/common}/simd/avx2_double.h (100%) rename {common/includes => src/common}/simd/avx2_float.h (100%) rename {common/includes => src/common}/simd/avx512_double.h (100%) rename {common/includes => src/common}/simd/avx512_float.h (100%) rename {common/includes => src/common}/simd/avx_double.h (100%) rename {common/includes => src/common}/simd/avx_float.h (100%) rename {common => src/common}/thermo.c (100%) rename {common/includes => src/common}/thermo.h (100%) rename {common/includes => src/common}/timers.h (100%) rename {common => src/common}/timing.c (80%) rename {common/includes => src/common}/timing.h (90%) rename {common => src/common}/util.c (53%) rename {common/includes => src/common}/util.h (100%) rename {verletlist => src/verletlist}/atom.c (100%) create mode 100644 src/verletlist/atom.h rename {verletlist => src/verletlist}/cuda/force.cu (100%) rename {verletlist => src/verletlist}/cuda/neighbor.cu (100%) rename {verletlist => src/verletlist}/cuda/pbc.cu (100%) rename {verletlist => src/verletlist}/device_spec.c (100%) rename {verletlist => src/verletlist}/force_dem.c (100%) rename {verletlist => src/verletlist}/force_eam.c (100%) create mode 100644 src/verletlist/force_lj-x86.c rename {verletlist => src/verletlist}/force_lj.c (61%) rename {verletlist/includes => src/verletlist}/integrate.h (100%) rename {verletlist => src/verletlist}/main-stub.c (100%) rename {verletlist => src/verletlist}/main.c (91%) rename {verletlist => src/verletlist}/neighbor.c (100%) rename {verletlist/includes => src/verletlist}/neighbor.h (100%) rename {verletlist => src/verletlist}/pbc.c (100%) rename {verletlist/includes => src/verletlist}/pbc.h (100%) rename {verletlist => src/verletlist}/stats.c (100%) rename {verletlist/includes => src/verletlist}/stats.h (100%) rename {verletlist => src/verletlist}/tracing.c (100%) rename {verletlist/includes => src/verletlist}/tracing.h (100%) rename {verletlist => src/verletlist}/vtk.c (100%) rename {verletlist/includes => src/verletlist}/vtk.h (100%) delete mode 100644 util/README.md delete mode 100644 util/cache.py delete mode 100644 util/cache_sets_histogram.py delete mode 100644 util/evaluate_latency_and_cfd.sh delete mode 100644 util/gather-bench/.gitignore delete mode 100644 util/gather-bench/LICENSE delete mode 100644 util/gather-bench/Makefile delete mode 100644 util/gather-bench/README.md delete mode 100644 util/gather-bench/config.mk delete mode 100644 util/gather-bench/include_CLANG.mk delete mode 100644 util/gather-bench/include_GCC.mk delete mode 100644 util/gather-bench/include_ICC.mk delete mode 100644 util/gather-bench/include_LIKWID.mk delete mode 100644 util/gather-bench/src/allocate.c delete mode 100644 util/gather-bench/src/avx2/gather.S delete mode 100644 util/gather-bench/src/avx2/gather_aos.S delete mode 100644 util/gather-bench/src/avx2/gather_soa.S delete mode 100644 util/gather-bench/src/avx512/gather.S delete mode 100644 util/gather-bench/src/avx512/gather_aos.S delete mode 100644 util/gather-bench/src/avx512/gather_md_aos.S delete mode 100644 util/gather-bench/src/avx512/gather_soa.S delete mode 100644 util/gather-bench/src/avx512/load_aos.S delete mode 100644 util/gather-bench/src/includes/allocate.h delete mode 100644 util/gather-bench/src/includes/likwid-marker.h delete mode 100644 util/gather-bench/src/includes/timing.h delete mode 100644 util/gather-bench/src/main-md-trace.c delete mode 100644 util/gather-bench/src/main-md.c delete mode 100644 util/gather-bench/src/main.c delete mode 100644 util/gather-bench/src/timing.c delete mode 100644 util/mdBench.c delete mode 100644 util/plot_gather_data.py delete mode 100644 util/plot_run_stub_data.py delete mode 100644 util/preds.py delete mode 100644 util/run_stub.sh delete mode 100644 util/string_to_agr.py delete mode 100644 verletlist/includes/atom.h diff --git a/Makefile b/Makefile index bd4f835..a4e369c 100644 --- a/Makefile +++ b/Makefile @@ -1,109 +1,30 @@ #CONFIGURE BUILD SYSTEM -IDENTIFIER = $(OPT_SCHEME)-$(TAG)-$(ISA)-$(DATA_TYPE) -TARGET = MDBench-$(IDENTIFIER) -BUILD_DIR = ./build-$(IDENTIFIER) -SRC_DIR = ./$(OPT_SCHEME) -ASM_DIR = ./asm -COMMON_DIR = ./common -CUDA_DIR = ./$(SRC_DIR)/cuda -MAKE_DIR = ./ +TAG = $(OPT_TAG)-$(TOOLCHAIN)-$(DATA_TYPE) +TARGET = MDBench-$(TAG) +BUILD_DIR = ./build/build-$(TAG) +SRC_ROOT = ./src +SRC_DIR = $(SRC_ROOT)/$(OPT_SCHEME) +COMMON_DIR = $(SRC_ROOT)/common +CUDA_DIR = $(SRC_DIR)/cuda +MAKE_DIR = ./make Q ?= @ #DO NOT EDIT BELOW -include $(MAKE_DIR)/config.mk -include $(MAKE_DIR)/include_$(TAG).mk +include config.mk +include $(MAKE_DIR)/include_$(TOOLCHAIN).mk include $(MAKE_DIR)/include_LIKWID.mk +ifneq ($(strip $(ISA)),NONE) include $(MAKE_DIR)/include_ISA.mk +endif include $(MAKE_DIR)/include_GROMACS.mk -INCLUDES += -I./$(SRC_DIR)/includes -I./$(COMMON_DIR)/includes +INCLUDES += -I./$(SRC_DIR) -I./$(COMMON_DIR) -ifeq ($(strip $(DATA_LAYOUT)),AOS) - DEFINES += -DAOS -endif -ifeq ($(strip $(DATA_TYPE)),SP) - DEFINES += -DPRECISION=1 -else - DEFINES += -DPRECISION=2 -endif - -ifneq ($(ASM_SYNTAX), ATT) - ASFLAGS += -masm=intel -endif - -ifeq ($(strip $(SORT_ATOMS)),true) - DEFINES += -DSORT_ATOMS -endif - -ifeq ($(strip $(EXPLICIT_TYPES)),true) - DEFINES += -DEXPLICIT_TYPES -endif - -ifeq ($(strip $(MEM_TRACER)),true) - DEFINES += -DMEM_TRACER -endif - -ifeq ($(strip $(INDEX_TRACER)),true) - DEFINES += -DINDEX_TRACER -endif - -ifeq ($(strip $(COMPUTE_STATS)),true) - DEFINES += -DCOMPUTE_STATS -endif - -ifeq ($(strip $(XTC_OUTPUT)),true) - DEFINES += -DXTC_OUTPUT -endif - -ifeq ($(strip $(USE_REFERENCE_VERSION)),true) - DEFINES += -DUSE_REFERENCE_VERSION -endif - -ifeq ($(strip $(HALF_NEIGHBOR_LISTS_CHECK_CJ)),true) - DEFINES += -DHALF_NEIGHBOR_LISTS_CHECK_CJ -endif - -ifeq ($(strip $(DEBUG)),true) - DEFINES += -DDEBUG -endif - -ifneq ($(VECTOR_WIDTH),) - DEFINES += -DVECTOR_WIDTH=$(VECTOR_WIDTH) -endif - -ifeq ($(strip $(__SIMD_KERNEL__)),true) - DEFINES += -D__SIMD_KERNEL__ -endif - -ifeq ($(strip $(__SSE__)),true) - DEFINES += -D__ISA_SSE__ -endif - -ifeq ($(strip $(__ISA_AVX__)),true) - DEFINES += -D__ISA_AVX__ -endif - -ifeq ($(strip $(__ISA_AVX_FMA__)),true) - DEFINES += -D__ISA_AVX_FMA__ -endif - -ifeq ($(strip $(__ISA_AVX2__)),true) - DEFINES += -D__ISA_AVX2__ -endif - -ifeq ($(strip $(__ISA_AVX512__)),true) - DEFINES += -D__ISA_AVX512__ -endif - -ifeq ($(strip $(ENABLE_OMP_SIMD)),true) - DEFINES += -DENABLE_OMP_SIMD -endif - -VPATH = $(SRC_DIR) $(ASM_DIR) $(CUDA_DIR) +VPATH = $(SRC_DIR) $(COMMON_DIR) $(CUDA_DIR) ASM = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.c)) OVERWRITE:= $(patsubst $(ASM_DIR)/%-new.s, $(BUILD_DIR)/%.o,$(wildcard $(ASM_DIR)/*-new.s)) OBJ = $(filter-out $(BUILD_DIR)/main% $(OVERWRITE),$(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))) OBJ += $(patsubst $(ASM_DIR)/%.s, $(BUILD_DIR)/%.o,$(wildcard $(ASM_DIR)/*.s)) -OBJ += $(patsubst $(COMMON_DIR)/%.c, $(BUILD_DIR)/%-common.o,$(wildcard $(COMMON_DIR)/*.c)) +OBJ += $(patsubst $(COMMON_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(COMMON_DIR)/*.c)) ifeq ($(strip $(TAG)),NVCC) OBJ += $(patsubst $(CUDA_DIR)/%.cu, $(BUILD_DIR)/%-cuda.o,$(wildcard $(CUDA_DIR)/*.cu)) endif @@ -129,11 +50,6 @@ $(BUILD_DIR)/%.o: %.c $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ $(Q)$(CC) $(CPPFLAGS) -MT $@ -MM $< > $(BUILD_DIR)/$*.d -$(BUILD_DIR)/%-common.o: $(COMMON_DIR)/%.c - $(info ===> COMPILE $@) - $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ - $(Q)$(CC) $(CPPFLAGS) -MT $@ -MM $< > $(BUILD_DIR)/$*.d - $(BUILD_DIR)/%-cuda.o: %.cu $(info ===> COMPILE $@) $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ @@ -152,18 +68,16 @@ $(BUILD_DIR)/%.o: %.s clean: $(info ===> CLEAN) @rm -rf $(BUILD_DIR) - @rm -rf $(TARGET)* - @rm -f tags cleanall: $(info ===> CLEAN) - @rm -rf build-* + @rm -rf build @rm -rf MDBench-* @rm -f tags distclean: clean $(info ===> DIST CLEAN) - @rm -f $(TARGET)* + @rm -f $(TARGET) @rm -f tags info: @@ -177,6 +91,6 @@ tags: $(Q)ctags -R $(BUILD_DIR): - @mkdir $(BUILD_DIR) + @mkdir -p $(BUILD_DIR) -include $(OBJ:.o=.d) diff --git a/config.mk b/config.mk index a1662cc..3f31b0f 100644 --- a/config.mk +++ b/config.mk @@ -1,7 +1,8 @@ -# Compiler tag (GCC/CLANG/ICC/ICX/ONEAPI/NVCC) -TAG ?= CLANG -# Instruction set (SSE/AVX/AVX_FMA/AVX2/AVX512) -ISA ?= SSE +# Compiler tool chain (GCC/CLANG/ICC/ICX/ONEAPI/NVCC) +TOOLCHAIN ?= CLANG +# Instruction set for instrinsic kernels (NONE/SSE/AVX/AVX_FMA/AVX2/AVX512) +ISA ?= ARM +SIMD ?= NONE # Optimization scheme (verletlist/clusterpair/clusters_per_bin) OPT_SCHEME ?= verletlist # Enable likwid (true or false) @@ -47,3 +48,93 @@ USE_CUDA_HOST_MEMORY ?= false #Feature options OPTIONS = -DALIGNMENT=64 #OPTIONS += More options + +#DO NOT EDIT BELOW +ifeq ($(strip $(DATA_LAYOUT)),AOS) + DEFINES += -DAOS +endif +ifeq ($(strip $(DATA_TYPE)),SP) + DEFINES += -DPRECISION=1 +else + DEFINES += -DPRECISION=2 +endif + +ifneq ($(ASM_SYNTAX), ATT) + ASFLAGS += -masm=intel +endif + +ifeq ($(strip $(SORT_ATOMS)),true) + DEFINES += -DSORT_ATOMS +endif + +ifeq ($(strip $(EXPLICIT_TYPES)),true) + DEFINES += -DEXPLICIT_TYPES +endif + +ifeq ($(strip $(MEM_TRACER)),true) + DEFINES += -DMEM_TRACER +endif + +ifeq ($(strip $(INDEX_TRACER)),true) + DEFINES += -DINDEX_TRACER +endif + +ifeq ($(strip $(COMPUTE_STATS)),true) + DEFINES += -DCOMPUTE_STATS +endif + +ifeq ($(strip $(XTC_OUTPUT)),true) + DEFINES += -DXTC_OUTPUT +endif + +ifeq ($(strip $(USE_REFERENCE_VERSION)),true) + DEFINES += -DUSE_REFERENCE_VERSION +endif + +ifeq ($(strip $(HALF_NEIGHBOR_LISTS_CHECK_CJ)),true) + DEFINES += -DHALF_NEIGHBOR_LISTS_CHECK_CJ +endif + +ifeq ($(strip $(DEBUG)),true) + DEFINES += -DDEBUG +endif + +ifneq ($(VECTOR_WIDTH),) + DEFINES += -DVECTOR_WIDTH=$(VECTOR_WIDTH) +endif + +ifeq ($(strip $(__SIMD_KERNEL__)),true) + DEFINES += -D__SIMD_KERNEL__ +endif + +ifeq ($(strip $(__SSE__)),true) + DEFINES += -D__ISA_SSE__ +endif + +ifeq ($(strip $(__ISA_AVX__)),true) + DEFINES += -D__ISA_AVX__ +endif + +ifeq ($(strip $(__ISA_AVX_FMA__)),true) + DEFINES += -D__ISA_AVX_FMA__ +endif + +ifeq ($(strip $(__ISA_AVX2__)),true) + DEFINES += -D__ISA_AVX2__ +endif + +ifeq ($(strip $(__ISA_AVX512__)),true) + DEFINES += -D__ISA_AVX512__ +endif + +ifeq ($(strip $(ENABLE_OMP_SIMD)),true) + DEFINES += -DENABLE_OMP_SIMD +endif + +ifeq ($(strip $(OPT_SCHEME)),verletlist) + OPT_TAG = VL +endif + +ifneq ($(strip $(SIMD)),NONE) + TOOLCHAIN = $(TOOLCHAIN)-$(ISA)-$(SIMD) +endif diff --git a/figures/features-v3.png b/figures/features-v3.png deleted file mode 100644 index 07fffadc50531d0398ef3b5880295b99695059f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279729 zcmX7w1yCGqvxSl17Thfm2=4Cg5+u00yGtMh3-0djt_ur+;O_Rp;_mL;`Rh^z1yxkd zvNLb@Ip^snQdL<74VefT3JMBMPF7M43hL7x6cqG1A`I{q!!CCe>XW3moTQkBclN0P zoG9)DcFzNuAb$!TZUYo12p3cA^!)rBiWmd}{RO`16>X6E{z=Zp`zp^5cFdK<`}ZMa z3Nqw%eg=Gix>quCa&l%O6co+g$@A-q5{8J>)YWfFzJAC|KjI~5K*iBH*g?rOaC!t> z1VSKz=^iIE0h-w~eADAMq2R!{J&=Zmn(Twfl8}$2A(FUK#8(@Cwz#P!`%N{@zLnGO z({91qjJrrzw(L|b_WEt6`sK&+)Gz^H-uES*`-|Y&jqaZZ(k+=DHz#aa&z{HWSUx2q z!|*k}C%&(`YtEW74fQ>d6JKHd>4!V37I0+@rB?9WU1Coh;Qsie%#W-1fVE zevplsAFbC><`K`+YgKzk-Yl)qK3#0gcIX+&GNudpoD6E#iF`1s&tG1j;qT+6W@h%0 zy!9!EVcBE_T1=2gB&ich6dmN5ahYM?K|ZaK>c{WzPB-3JS7`Lf7UWlMz)8{|FOcW? z-5q;e@5)Ip$}Q_nw^3AG_6Ea-AYcsg7uXd{!J`r3U||(*7yV}b&91mucedPM zwu{Zk2wPlW;-10SP5dahIhxZ8`z}Corg*B55`c|!C}7j9THfOP1mCVZP$4^G>S?FN zT&+Riw<5>(Z5IZrmcmjk1cB; z@N1)$L;g;;goTA!P2~<4#Xi2j2^?ueN{VmTK)?Y;VE;%93b(aZhi<=zFtGpCHk<+F z?KkRtyMpn@s~vnM-Q=Q;g~dfjmi`P5D8 zYcJkD#CY?X)^@9h%fp>+`5`4TK%r^J0>llfUBK4*mKNVAc8I^52BAw@4 zeqM`;TDR`u&?G6DIGZa9J@t^hO0K9lw%Akdw&RlOu6QcDOQ~2jFt&tFFkZO?r*PYgkjFmWY5o_TgK5-$@G($tf z>rb5ikIuY_G|;w-)ksu=bde5b<|HO_rAn+6Ntqt*?qL5X@g{RzhxoKl9KJk7cF@xf zCXk*KM$OcOyKk2Uoiz`RMnmjY%4A_%t7A3SD-3bNn%^*n5LmzjL_`)(k!tsGX{CFn z3>^=fyGPt_J)BhrojojuimAmBvtJ+=hTrUW7$7F2@rg7Gv%4@kRGF4mw0Ybxz4X7i&e(vv5~QrS~ZOF z!x*ppg}+&WnOd_>%-_wo$jxG!dTWq^l^jgzL7mHhqqTo!y@&Y?&F7g#6bv;Cw?Sw59Q1!vttWsPgeVS^2ndZ)G`O4C6wfjpAb> zjd$Qe0_l1<=)-qcv$8PU0=NCxtE@C7K`9Q&UpTfTRDP2GYlGf zF8SYJvWoJ~&W>0gqh=*eZl5e1tl7b24xbmD`j6ov>zTqlk)Nq5RTw1UM>G{rhxQ3I z8`2dTQsikYnVQYsk&$KyX6RH!Gn8-qb?c{j>G79$CkK{jRc?;KJ4spvXPHYP0Z-7$ z7tSx9wzkJ(X~9suN{Wir-;2UpT0FAon!NQFGdOxt6HVAh9wxGQnl+?89{a;F^t82m z=Rc=2_y{oRHuDC)@{Y1+XBPa$AQPnc8b>Ms9|`;}Y*R5@t$l;*o_yFg*c<4&{ z8rJw2HWpTPP7cWPjNfXKM9p|2lWQOff9ie)xtLyb#Z>xMR>1aEgSXWNk}|RhiuZPo zBUSLYyREk)v~}J%XhWO3fOHQcyA0zJ;Z|u^5%|b2t2~aas8)ZzeH>4yv~ISU+y7r% zvFLrW7>Xs`;`*zQe4z^!Vdm@Wn>`-*_6!YoQ0{ZBhHJc3Yv6t%EhUwanK_ETbMpib z56?;=_Pjk1g+|Q%&p&-0jg+5rO@@IWqbcXuI2d6{gn8oMn0MY6?nt zbb7uox{%v(yO034?i$Y1eTwG8v>LzYHyrtr3Llc)pHzpn6EejQ=VcFdQEO?G9V_$< zyl|>Je=}ZU3FeC~dNG-CtI8drHCil|F!`+(n_bkcm{VCg>>w5Aq*=3Fd0?WH+wjpT z5(oJ1Kk+gewfavpRGMlIz88*=_T-}JprVi332@R7r|qokp6_|#^L|da91-L$`v{x$ z?N}YvIjR?5MXMGv(s45VzV0C4>~UV4Br9&Rq?|QiS!gS@l7@eu~556fcgKI8aW08Q-fc!7#fk}EhUFqF!jX)*_gnRcg>1!1{GvTme2z7iRq+lqbH{HeA^ zuZQw=W{;3-9}FDAVikx#x&!EN_eS$gE6;aVwODo2>i&jgQyZ;=SKrJF>Ef zfgT*(_I?-tLWUY;*NV4*a!I(LN=7e6Oa?SldvRXz( zjK-H0=liRjy#Q$kFw~HIQR{}mw8z?j)ilU$H0{vAo_lfV;lB*@@lgy#IgG9upU1E{ z8+p*BOjlS2_;85}w3%Q>^Cn=i&#uhM7BK(wj8MX$X1@5-@C;6Uh%MTMkZk^Ri?jQk z^CHoX^ZU5O!B*Bk@?gUi1r=}I1|{NT0S_IpE`gN9mjNl{J$rw6-xL*IKEAitCv2?A z$;pn796qtyi7=e)hpCA3?sxbAp9egU`v?Ceo29V#O^vOMoub52pG$w{S5z|sZ&T3C z<(=j&mEyA(_eQ&cP7b?rYRDC#(c#t35FcL;-N?^ZFKoGDd+I- z-lLQ9GXkP(zWlp0Cl8Oz4srDvP?ECwW}VIrNSV+`b%-Bfz`;Q+|2Sr>R2uAR>L9Ss zLR0NcQp9Bt*IGMxHZF@l-|7g#uy;dN@nr-V87T<~38|?++}%0%DXzVmt2HXH=4n(w z)@l->k`}VlDl!>SvWAL-2fsEIf6n=}`3;qV?sL9$bg*_C??&?n3K;vx%E@vsjs>zy z#EtY2@x7^DUz?OXFncn&PtEa|RHZgHX~%Uk=Y@#O2E6Xw(5@8@@R9aFoczL>yJufg z*pEfyxqgOa@`~+uGWj7qoE4wKHWF(>8PTmWT-mTt`hr(8z?zj$Ci2 zH^vt2cWyZy=EbhZQtBSJSFn{G&;&ET*~QN+|J4=p^CYHR?^df=T(+9T_)yM4Zn=vV z{Ksz4RO%6$=Ydxp&S2BVu?7@_ z1iz_ww$h$6nIzL!iKD#XICY-cL=T9)QgZQeY*t#cyD#33JVBnsm!$fTBM+U#a_xrg zG!`S)xA(V~zaa>)D2j@T)CPbl7y>L3lU{2z@H|PrCdijmz7YJTqS>*_kE^Y%g|ke4 zda;tc4q|R$Nnp2&R$khY^ZQZaRWE8e&t_@)UwdHd;tx8T5q_9JO9&fxSR5rgMqltwpQ?U0|U#K<#gk7bz@RQ9c_o=;~-wRM4`!_4f%4AZf z6;c@^BY{^@W7th}{;Q6XfEi0!RC3wmK_{2yr^bh^E^gF2&v>o%ig;r`kSW5M zs}%C#oyPo`+5jQup!L+a>aX}%(zZ68?^QkdA-MBYPyB3)z$_IqGX z^59%tT&x9TNMmZzagkCMcXT!uCIcPodc-fyPlvj^zA728KjT^1xr3?PYx*Yjx?M1+ zPL}c-*pRNSe4n46mfI8W>A+MiAasS*rc9B*T6cYN0|kcKmaj3bumf6es1wLv0~w9t zI^LsqiIKOMf2ikWk8hBXk)iLxM=?2~oegdQ#` z|78eE(P^>|cqP|rVob5!OwAeC&DEJ4PLA6|p9O{Sl;%0@(EW*4NEf11a7dM&ZAPsb zoUc$fc?JrJk8qyKDf#%sgh?sNlW04wa<=GOZ><4{6&kL(y4v60|1uR01Y+BOqT#>(Q5=!O_jkvnHNwwzwUu39IrHp<%!ciX@Js|2W zEXmed9Ps*mrCZHJn3xi>nG=K6;k}|MGkKh1L)?rAS(7#fcbH(QRjcm8C4h%v3)ath zONDUwcbP5U8el1mOVjlB;w~WjId{@$A`^tyeas@MEcY`7G*lsf-&3NakUw#be=?Ae*mv;RJ1b{sm3fsz2r$>CI1};WiT3q^x=#mAFNErtZtiTCGM$#y-2t^*gV3gX7CHU`7QkV)3 z^v}ASEH$J07}2LcI)8JSgzHU<@{GrC83;VWyOiKIM^hO1DiIzM=Wyg+*`~S4%kEiMxZUlu$*Xdw0Z!~n<-jN0qnyjV_djf^J-2XFHai=;~^c3-b6rEkx z{BX3)1qU=_2W&Mr&y%?PNOz*hN*EQLotE%MqRCUMpziMX zKK)7fq?Vm7?z@#fDLnQtMZN%ia;pRO+9+3EBJXjj(a5~vWl*n~--SRxii0PEX!j(r zx4(i-SJC{*rb}&vWk#Y4OdrJdFqTN8{2X4T92l4bR_i1!R~r8GHr5a zf2Mt|^}M5W+h}dV_VWvfi*9Dr82&h|sa4Xx z5Lj;ESR~I7F84s;L3qUD^hQ3_Q%|}vc^JL;)z#8eR(9}o^M?tiG1Ro;_^D|KnJYHl z8~1ViZ$($*@uI^@RY}bRX7wK(oe8qR%Dq+Y>KH!JsO6S;f(^d)R#$H;FW0eM@F{X| z%lHpy5O9m{4^sqc{?pE5l&Xmiq@f`?wme^^HDiws27|%7iGB&epNVuYsrWD6Tu@v8=OwL0!g*Wk?FICYx_$xM25}Jt;E*2}0h`U?MDd z_-7jURY;$iT{2J4(<8$?6s|Dp>*{C>>6!ym%^^a@acLdYD9a~G*`-2@q(&cFSF~8S zP$Dkd{JsozRN?%EDy=zi?RCWTwCbUOVu-uaJ>{3#*;(ER)!<+8mBm zrX~-LBUr9`gxbFrDDi@PS!Xs0Xj&-FB@u2^coG$5j_aLI!|IW7P`Vaj%RN7P#J}rP zA{Tmn)xme8RvQ7XNL!~2sWSaO%zG=tIjm`rsd+0vSnqx?5|MX$h)f+wMN#hvM|=24 z(=xhLtG4R50){IR@MVD@xK9lmGT)yRYa$%PShKLu{(QMt(n(THDDD)wq`$H%wf`iFXSN3{^NKZUr5MOF>cWL*jNweSxzB* zFF#gl4u8`Y#7hSD_nJif5!(3iI^n}!fegZfZu>1GrOD`ESDC~?sq<|-qfU^DMya>vp-p#Qi%JXqfMRg@1NY% z)#EZPc$bNt#mH3Lj*koC;QxXlB%HV;x+8%x!GU!+XZ(>n;#qd8~?Lk@@{t_%jyT3_5Z5vtHGyi!%~l|ReN>@TMuDjcYE_;Gi8K6Tl_s!VEj zvMeky_45=IP~t=`f7hUx#)(?-&=NLM{{pRp&s!d**iC6NVgJ}$Gr)R_{0XKZJ>@qS zC#O{PG8~f0X81UyE>`!?4Y`h}1N5@*(?tV9hc@M(eR=d8JH7My zURNF-SwUJ``&?5UsIQ-F7D%hxy^bc6E_9y~ZBJ64l4!p6_^3NwY-GK?lr68^-QTUx zlz$&hWm=mUe~yqOQ?qdj&X;g?g)49-$%CxSyE{orCaNyWNEFGascAA)jhL8h^SN#6 z9Obb(m=*}v+a0wbx#?(WY0*fC57t_k`#G>dhcMxZeyDn106J}t0Z3NB;#rHxxb()q zX!N(EWi}%FKwcNXVF3;+%VW&tfP`E-=InG1seos8V*nYR`ubnEN-IwWXed$Q z2Azt_^#y+t5)S*r-xe2{ogjn7C8T(W{`6X8^a-c)i)3nL%8Ku9a`l!Pm#wKvd^;Tn4gbHZj@$%E-mvC_ySMe`1lWr)a|AS z75nko!-C8Sq2J&Cemrw%ZF0xPr~|90>SXF5>**yb98F;GAnkblMP0nF)ONwRGz&~$ zYpVEzMl*#@eIM{#y<5M2{UQ_gKiu03bw#7PNsQtqa9)_3o12JJVQ64FYypI4jX`t$9P+v}rCJBqYZzSCz@lf(1b5)@}bg4rls26%}8ZSC~q zv=wlGpS0!0(!0g9P_i)9RI*Nevd>TkofZ1y|t}} zC%~5w4b2Q2yJxL!z(3H7siqKXgx}8Y;sVmfr~_lqo7?hpPO}rLcDxR=>+t4aid?`G zbyv;7!C_k^ZA4WG%H?wd;)DH+vzOOUVzJ#!J~~z>yTdnkCS;{=DqGWNc{uZYP8)*X zIP4Y~WwF-;?@X>6LnJ^uZAOjzGKHvn&&dwc^M7*!UsbETVw7CDCmQJzb?71l=Pa3Y zc&(7#nf7lFg(B3!hTW-ir3>6#3tn!-EuIc&Of`?^>uL6@8duW=c~sJ;IxV9E)2t55 z^;9Q|9%nNWtDuLifR|@m>t#-d&i9!jA0i@5T!z?h8iznK-ICcVpz@M7hId(82DmgJ zW~RslN{*ea?P8VI#pPE2E`8S(plK!2U{~1KJrVizTJ51L(ibOnR>Bkiv>D?URKDyZM<~GMp`fpJEQ2KCuRr(#S0G-i1 z^b#P4o+C@H(e+(0&PM+aU9nGb!OP;zV6W8;#ZrarfWz#lk1&e^2mf|6T72=3hd{N1 zwlWDWp_msF>kbp~kJ&x!?VZh3E2sV=ru-lqVJfRhtrCLoZi+v?X^JhGvLrfEV2Z+{ zlMD~r%K~*afm|hn9S&Y?RgVYy2TVW3c$iJkX%7)$z!Tzc_F&PP8HJ-^f9DJ3$0885 z;Oom|%}E^uqp-~d>+j=Z#~KsSLg!t?-4B64jSnVJYL+GD2c?|3$>`l+ z9@Q%XtT%FK->-EE7%{pgYLn*hr6@}#A$r4^k4MZf*Va7)YNyj z-{WFPQOHV5OX1kqqrPI%sW7I<{#bBl5OVB&FJ&TP(xF}WEX#4KN&b9W!Rt9nhf#Oz zr%YG1tFHZrpOWk&Slahu-|3$+`u0B&b@*14`Wo)n<2}N=6STFSq1TBOo&yYi=C0?h zzg$g;xT9pCrU5IpkCP?MAx^q1bKBLg&3F}Y@%a=kX@@oSqC zu;QvFX&&}OI-i*Ef@Gz({j7(qM2|yoUQcH<@e37=F#Wg3!=iH9q(S%7nez!&6`7Bh zyO;a#W%N{3JIl-I_EB{6-<@lppPpg}*kCqLtX5$S1T4qXOBB+?S0^VO0SQe&Dh6)N z_N5CM;gp!j$)8%R)`5KsUzhXM($gaj`1H+R9zYNR?uXN@4tkG2ET?iORHbPEZfI<7 zh-fvb2!YC30bO75ToHBEOi-R0@G zHZ*xvsD9txzGhn}wk>hpa--EfZD&wMOrl@aq=>^Ph~y*6TVG$#6Al=ikuZVjynlOn zxGa?w#_O+noCX0uASgphP^z{E6=Y&bC_&#?47-K{v^@c~IRwale$Ug0wQGRK%ft|c zrby7(3<6Eudh8J~gUY0MonEu@69Pg=d$Z}lAFVpW7;+J^h<3FSdCjUHnvef(H$qLG z`eMqm?GA6j`cHqTWu)R&a6eyjNkz|FtCO4Tp;K-Td%IMs_RSNYy?L4wzwl*waL3Bl zs41CO*1{5a3|ir4dD3f?2a$$oA#El0nPaTe5b}D=GC=cv(dXvM^f^4(b^qJFv3mY zV*idFhM#uHpt^~@dX{L_J*+njQ-#K~&jGB`_gCG6&beRh%ty(TO4ak(wvU%v=2uW> z%+_T3Wy(1~3L;KKS|+VJ!;+Jo4YYUo-*C~Np9nki0n98=D>R-XfWOQdR&Tx9d<29S z1=OkEE#JREsC`jT=|ovKaz`?AGyk0E*2{(Fj%v81q<#osvV$L5u_Xra@5|jF`EEX3V-Me=QxG>`xoHkfg z*tYqvbcBca$V2Jr>5q@zPZQ?I6P0yFJ<8$IqM~0}YsHto$cTy&@u#12_iDJH9# z1hdgizNcya@f{5uM9Xn_(vzBl^{N>A(dyoDe;w0NtCQ;w+*gG{3m8Zat4SXaXExTz z6fnHJ!mLy8R_nDnmUR1l@B{E>7@6VB|6wp>=}=L1Xau(K~dKG^W*1#@j#Ft@;VC~Oanknt+;W=&8+j1b^(|$b4qLpoq%-{kRYs6BiyCa z(S#hs-K-Cyc5{IAGTRh^c_LZZ}DDn6uHPi93C;Hit8?ybo9B8#WHf8t8-db2Tq&R)HxE zu^!)igX?ED#j~(8u#|$3?yYxLzw;C*>AHtnsfeDf~wKgsDf5_t!zS6PmCblq{cTR5X?~PIZ+D zxr)~II3Sv&BT8i1F7KDYLSuN7pO|~i@6cYi^aO{d5hQ#Q{XRlvwGdmqM7pgYG^G9N zq~)G*Fy*R?>=cKfWBJ{R*WJ)trD>8l4fApcKu~vHW=;6htI4iEzBxA&0w(QfrO8To zv96B}eGRn6(|AJJtfAQ@DJLOO1UsZtXT2kR-_$_Y8F*(JEIQq60g@WyG07;ha*QQh zv^qMj$tH?qkvr90sa5uLE9LL!I*W&Uz#WBz8bnbF+3a%m;fO&GU6KfRGTt-aHrLiN zuQZEaz)NH6J~MyovKUJRVC#Q9KgmZwm+?lAS5SAp=W}5GDWT`}v|b6?jm~8~n+=_F zGU_2YIa3(*M|<)=eiWMp{YxYSEjIi<8pHTL-4dl`zX7(GC`f|CM56H8;c(CTGo2G3 z^j$JgCE+9-5mQLQX%+_E2l(dkq=! zpqnY%%``Lr0r5rnb>c;EFhZ&T2ISIzK{V83-_bwJ@DnopcF-r)krW0kfP7PaZ?c@g zrd8f`JctvgurXb7HUH-Ob})inI~ve|x|>`&bI1P8U;kcBQ-~+der%WMOJwm#bbw$O zPenit6Mn8E$!h!Y@>$ko*$|eQIlt|puB<+|_uMJGcHlMWd4WN{o7RXjdTOL%WVMgv zl=3C&N`T4GE5=^mWfxBx4DJLK#JjGZ_ijnooE$X`CN1<;FpGf6Pe_8J`%3L!QZK3mDc!H$=i8E*m^Q=wv&MsNu+p`(r z76?wCdwBN+_0{H2Odo=x(3B+4QuN+?A78(InQ5)p?Lqgebvu|e-nVs7OFL+I9i_w65-HRlo1?QeE95 zvauKpD3!Y2P7X?iH!(psHF8{=Mulsl)N;kr+hfSeI{=6{B%9*a2GrElwzs!eTg=L! zo^au@ey`OUtmu$?(jVzc<2l1(1DCO0PNq|ze*KdW388ovgNgg(F2uRKF(71-TZ=p5 znrmBrDJmV!Z!A8r(x7vx>gLZpjAn?;gIg&|wl;WQTa<%zo7z}A0QUF(@Jz97*+fBn zeaDN;?$ToHV)C&nsWzr)P@QhAS@~+gVQ0rB(^25JtqZ(2sW1r0` zn*4gWIyvTb&VH)<@BasILOqiZSIa{t%cwlJE4N3?5SAG8>gv6?vbeB&d{dN)#**<= zo&I$1ov+7+e0^DTp%tJ0t7bz#V?*C;If^;oW)cXf?Wm|R01IBukBy|!4I zrW|`P0pV>wJai3*=gK&oR6$c>{3eeVx3dNDjb0HoYHVNe|a zKJ^bC6LKGpiRGgbK$f8bOhx75EuA1>U~pl{Mg+}0zF#$O9*+gb>Y$-A38-S%k&pRMDokdxf5jn8n0hlkD%5?spwyw=4Cu-Nj#PxhVX1qv?Nbxh#U*`OBdw z?^PTxic6C}rm5%J<(9iab5ZyZ@5sj537E-W6oUuF(AWXb21zjPBlak-4aPx~F@L!{N#`%|9z2RRg>c)#%J!sFfX(xCOZezK>xVs5#y++zP?3(_Ybx7~4lwUoR zlEH80L+8iWG$<97*^j&UwOc|jUAiawGi6xcDBzFHk><<4Cjsw;(N0;gm&5xPe%*DU z@}~&E0`+#KS|cA(5=wo8UKYjHL&G9AONRkS) z8%zg857(M)uw?|4qRjzwCr47b#dPZ)`vhA;ADZ6w;5xs=n*I!R;qV<&0ziODGw=6( zaLU&8-WWyRoNj_WS3-8|Q0*}btOVTsKS*pSAH%;(vFS48WHHIunbjW(=zx2Msca1)m zGDh<9it{6gU;=D%(8cSGn8QgTI5@j*i;cDxLFsso_i?RFoMzDO-r(UV$L0tF&b`@P z`1fzVR9Uaf^?GSI-uH-D&ZG{+aF%VA^VR>L5B-3i^)E$cqd>c|&k^K%WS_~{?%jLB zI&L#v&t`~=+@hKXXWA4NR_fnvu*%Kvx({Efgr)@FHr9wu=(;)8QA}DKwYJ=g2}(Uo z-=rtWIbCrHBl}%o7i@dr#K+fQbQ8L!9QiL%?k#gnB;a(p0hrm`j7N#q&CSidWhN!+ z?cD$eF#KE?9i?YtiqR;k)(#ZgP(b;mEns#C$7MHWNsj4~9LsmodTxeuRJL2fG}{t% zrSSTRh)76JW7XvpbI|CoaV}n{Qa@D@Ui7)3NrlLMFXrG8lETWrmLZI(^;bkEyje5+ zr<0Qt#Ultzmm*;Z8>?XBgKGqZ^Ia=z`eEd}L&U)ha2fqV_%_rP4CskvW06yW4) zb(;18$660n&x2LC4_JjXW`pB(5Dy!jlz_>wyO$U3FD$%}27JS|OyX8o=mgo~g1=`J zPjCD5mt!TBE5vbQ&!`@lar-f+^?h*$9!|%)wSg(uWB2vP-3>xIMXNu~?P+~jZXVA2 zXRk&WoLI>i`dxJ*b39DI(GelSfvY~-Gyh>abf;YyuvRANrQF6A4DAAQ1@LfiCb~vO zKi^-UmO+T#7R{mx3STHQIt8=K8^Q$&&OXI!ZepTA^b5RDWR_LW${(bQ46rzcod4gy*(lE$IVQYif9CjNYfW#>cGLF3GxM(ixpz( zV#hi7$sdC>({coE`11UCcU|5WHgELG{=tK37nB#j%vjsGJ(+;;W`B-nHFH~9^K`*} z$|=FX4S9i0P}51{J4rvs8dPpaSOVB2r1BKdjE9`_R^4FF>(N`qBW*?nNm9m@df!eB z{qfP(h>mTD`cO&pM+HjuMoHT`8#}j7nKG#&EYqkT26ftX)detTxY%N+wV7b<)WV)E z9MCC;y~sYYwx*{9$_8}!tUN02@aei|j_ZHJXoq1$_mtb!8Z;zml+$jW)F0ZL=7c!K$AvkhQE`+1S4|3=}noG(=2C$%(* z{Cr1+8$JRGP$VurPRM(Iyc)&dZtp9Y-+IOf(;#=WOPutxUb-_U@*sn#ou1>3ub2b= z{7R$TV5(mN>~m|+op(gWW_t4z>vq*DmUj22%MsmK>Ny;25jcpyP1&S}7L#RJqs!oj zl`e;Nkjy*L*><7h1`l(nS7{?ZcMW9pBLZyqW1nRWu~sV)tbFh4Zm0oy*U4)tJ6ht*{E)_jQa7rhqS(6Z&0 zXvSso!54|)rm$M}AXHwzd;937zpT|>HSAKHM&ZSG2G>G7n7ThP?H$&bj0~qHYC40V zKL(-#VE(?cThs=8fa9hfJX|^$5>A)qt9SSD=o0Mb7f1y>j`P#gSH3FLW(jz?J6}3` zJ=o2ao_V?w5fh{fCnzbrwV0G48@?CjA)2F+_E=4k(U{$C^!yarJq3~{1e&Z=a*|Zv zfd%joSId{?*@Dt}gc+shi;convLB1jos*LoKqpVBUBZCTdQn zdyhHY!1t8`yQy6M?S*EpT=erfm-WSf>4#c0K^{jH9$|T9vXy#Dl`k2efHz@)o?;<$Sx!8=Y{5h; zA7zW*r88bgmIFqef*#u|Gy5wI>Jd^}J~0+H_FfCJdCmba#0G@sc|1;J`}u~>xv0_h z_)EYp&QUE~s-XQc>$Wf@zNwF^?Y>5!HOkHw6WZwgo9q66U&{jX8oPO#yi(vU?dOYA z6v9S|z+hNCt=DFcJ=CyR4!PIX|r zr8uz=?ixdbqrT8xOe*v`?eAjh>cFPPh*B1O5b8q1&iT#3(8GCmci@{8kdHmwtsAtS zM&#$G2+FY!aVm3N<|Hb4LPakV;^6%5qenW5T!#|Jj&E#gx&acdD$OcSV3|cvZ>_kP zy1W?hVnE)M$Lmsfda#^d3}3hi43W-IZH1u`51(VDclrYm6(~RiUd&z+Zy{U*VnLO( z=^h4xcULo*W_4L$NCy^p5}3p9pZ5gRyqXPXHu&cU7+78+Sc;|a1B2|*?4Ak~)BEO% ztlD3!kAl=kVPusuk{rdk?EO2fuKt?kTJ9FpS~8kH>>+&;Y~Wo_`6bCdr;&HUD-IXI zqB`4xx;LV}MJ%(0@?asc#Lk}Q;f++PSxkW0C-$ebst+LQ=WA?#bu^~nDqD1X-$ZW# zWbmMG`quV$7?nJuq{Ko)1E;odb!~0TiTdM1ySvOJHL3PZKvY~X_4p1c77Y4gx3F^f zBb?5NI+8J-qmrt5U!$_`Dz&|{V5T+Wq#$W&GF$M!_6(SZ3U9NP>w$BTu`7J0-3l(6 zF$K+ZZVnE=t8J;L>%9Tf1|W5+*IxZ)3QXiuq`_oKvaDeyw>cJ%0k`OHxdL%b1$tdV z90h4~J861z%LTrcRxMFDY^4{jM@^S+;v_WN=xS-XKjES7@ac@zWlq-8VS4uMwupPp z#V*@Bh}+HIe+=Q38fsEYw)-p-*?@ytuNBq&OLTXKFPA{a0fBN*#3z|;3u5KSHb>7~I2tTP19=h%hnfOWsFt8ffW~2vc zkS7Y*=Da4=4h^2AlN&&{hmantH6;Obm-EqeWqtAXBAKSl&&sDtL?qAsQm(pGG2bJ1 zm-H8|KsiRL4yuE}oos@HDPI!%6c2TkOOMZrDpQP}GwB-F1AEAu-S49=A%C`zP-mBS zRc@i5!X#9fq$Obz#%>hE2@_jB~->ICokDtf=0v_2AKLfy1}*n!r5 zKKArNBs$d+I3sBjBj()UR*C4;D&W;yOYO$z^jIKW9LY5JOjdrL9V!FE2M>Y&e3^wy z%#6o74AO^R(n~eZ?X0b}aj=u>_g*{NeDcA=k|szDq_=_@_|tfP1SgDZ*H49-K6l5s zNNk7^QBhUe4TUu|XF$`xHuM39m@Qd5IK+${AO}kip^75^ZwU6v*Eut`6v*VZTI87-rk;y1G;V}TlykbR*O5y z*9fx=SY_c}`er2g854Y-iv)BZ6JFHOf^`?1Ry#45 z?Jh9cw7)OC^rOwuz!$N;sp)@j%FOcgSCN3{Pv#Uj$Z}A&Sd$3Is3g43li7U5xj?OX zI9ZBAPd_|32#0pQL41Nn=~sdc5Wm?(>-7_L9f)VEs5tEN{ISj%u#bQr;?Hqfqam=iS|DW`q1MufXbQN$`SqP zI6v5o)2v#8Pc&O*o#amnSo!ge_`y6q{rOTS=GWAGhw>z@bFO}kbk3L70e+9Oe)Gdj z`7{r;?~%F&32xLJ<9G49#~4!sSBYfZ$aajFhnJ5qWK>&Gn=-AW-ICcjJ$~W`@--m6 zXkoVk3v30Z!IJ8dW>bTaA(fmBLvd1qxG8IPQzQ{uhM`f)RM{JzX=Gn4Rcm|{cZEWS zo&6uh=Km>DeKwzgrL=h@4uLbsg6iAykG-ND; z>H`4kS28@|vd(UDiMZt?P-m3do;-6eZSc{^(FYJ;1}|B#E4#q)KX?DgQ%ou)%@Y`_ zkR~jGkNE|gCuuLJvz6bYy!$pi(T|$g-wHu<%Ns`~z{&nA#QAQDuTr3pu^UgW z6_sqwVG~R(MLlDRtaV4fD$}bH&C0o`4vGPc@)USKrGyFIG@E z@1HpB3oIXXr85sjs?X&%3a!=YrLe*ehdb9QL5smce!zy%oLM5oVMXrVM)ptWwpJbM z-~PRsvVFHiGD>5?xgZj1CBw!ps;Z+x_A~#!K2`(nbuz+3BpsBa$i*|Uw zw)9yRYCRD~;8iE*M+rTbEV?3uP1n5D*QQ}yMu!No6qU+UGV@FDzxhLTQ+FGMtP4s= zjK>`q!e>U{oNiRzy!hhf#l)a>&Mq!N|GDH3Aro}mf=Xl}b%i)7tb(1JiM{#eUO4a` ziLgGX8hOFJirwA&p%#)-9?aBAMd6uip>&Uje2$dl)$3mt6wPz?t57T1l+cjo7Htbh zC$(K`Wuhgw3-UPy{?v!BO% zE=7Pk2mU7j{H#O!I>xaR>9sAWly?i><*@h4T0 zpNGBG^^qs!1APQfADvKk%fy}q>fi0CBaXv^ z1OF8~JiPs_EhjLno0*xx_#mB{miC`tm4~Ng|ZbT9ujh=PgK1!8(eq@ z@~kC&t%G=OqKq{amm+gQL6m=O`xnjUp$lJP)sj-5%w$ROXcB(u&rjQSJ4D8(ve1(? zGM{Dtt$1QI`7@^Tx;zzVMp_%nrBJCJnwzm$y$m%Hw>p)@7u!canmG?mls5FQQQ{61 z?kSKqS?THLrkKMquHTUG9atq6ShV_Fsd%7_WrXw;v3T*XHbIoB)JbdTwCL#Q=BSZM zn&Occ=Y+g0@9LUbDy;u2t&Bf&{Cre?K;a`st{Lm;WT2mOHs4VFi$0gxP|#qV=M{K zvY`RRzOOI)exPo^-5E*>Odp(c?g4hgNurc(*j1b{#L-~kJgGFI=MlbuC;MDQF3<<( zXahA0y@w0JEMlwQ4ou&bFagwuODaDFOA{ge#{`B{GWfLYSxoiRR4K+k6W=N!;gcVu4@9YFj+n0&OU6 z#Nz8N|9%PLoUD0%gOJ#8obt)q(g@h$Tk7N#dbjxT)w?)%^cQIoJQL){`YNLSojH7c zbEu`#V6&^WzAE!2lH3JkV9$B3S3m|`?~QyiT0VLjw0o;T)}dB$1uX@@}xMrbiK;|GmF=o?XSe{jQR7Sb4rrI zI;*#QUVY3#lvTb#(}h$SS0+#lM)aR0I}*ek832;W_HV&4Xi%ee=z<~7=X^P56dOe_yMGd?KG-% zgt6h%z8JMQ?hJA9Zzie^l+3aWhK5ISImfTkg&R-jngl-ge`3YLjv`!C(2zhQR@zJn zPw5EpX{fIyzuw>9hgqE~Gl!Vmz89D0O-fJi5FGP$eb{}w6oQf5=5>xtoz7nIax==% z=4}3YLWlX|4;$VmZ@1T?8to+RcN$GcGop**n>qdx31)V6=G2Jz`Sr-DAc3j7F_z%0 zgtU8kCSi-uW^J7wdL6vj#!e^}ntW5!=|^sKCjK!8h7RL6b)aCS*?Nd>V>n8FPy=2?3+CyGXr>I3F{RFdTPjfHZRIEnCudBo`>2_5 zN9*8+-?zXn=n#!cxE(ym>8v40%&EKvJf_s@XLO8t$Pyw}X}LKjaG#7D41ub~$Ciwp_@ zhrEN{doNI1eKHjGxCk;RlWM9OA4?5N#K7t6FRIs2l4b9hsicmrgv}0( zIPkf2C_g%YF53MWb-=mATPea>bgl!k*ICtvG570`;ICg7OCZh_`T3Y6G#s3?p=XI8 z2beQU(_lHv<8ehBhKk%NcXM^qd3JUN1pPd61d+9pqo%-@6NDk5JSe3Wl!wsI*k_3e&=q5WmUl|!~W~D#t_^L)3AIU8TV{w=mJ{}{yF1w4#6!Rx$%X~1gzbP=^NJ+iv@j3VWPs(wy zmXL8qa!Tj0X#qA5`LtIuB)z$T@^mEp-B;qW`I{NOU+i)pPueeLejUQMf3It;iRJf@ zy?iAh_BB>+jaR2Oh^s;IUVPtl$aQnn2Kn6-t^PoGxzdb@`Ex5TMEnKabl|4{=Lww# zgn68MRp$KPn~IMq=%gA(d4g13y@q`aTG1sbaW(6)0T@}pF8t@8FNMkp(Wb&Y(<_hl zsZ!%nV`qpRNrpv*WZ>L+L-|-jNj}R&##A_a6Ruo9hxFdmuB)*fA8vP z?D(P^cPwh0KSaySPS4Xg^A2R8Kz)#wDP^8S!&tIl{MAFfQp(LboeSV zG7$yX;%E_g51qEiq>+fbUCayo104JMN%i7B-MbIdG(n;g?tvBB zHeK>tA~eYV?pp~*BHotwMc(|7Y0lB(@T>2uHiQse{G^A?G_tTLeZUFk_Jv`>p`2I- zo>GTbs0sMY-NX=XFW}X*P!3A-1p+b?1<|(~YxUEGT+tBV>n%OgmmrC}~FHT9rp!oS?@Fv2r52mVv9VGuoNSXW4IoBjJ!6 zMjb45dpcwROU|hAgkGGTpA_Z3d}256JQ;2Cx@Vyav!qv1nFh02=-0R=@dr$yC6zp} zw=3%*Inz*RXfePuWp7JvfsEN`JcuFQd?I~4jh~cY;BKLL9qP9cZ=3({&k?hII0hDs zrf_Zf)V{N8mn`IU`m;cYj4jH@lnT|m_Zp_AiS$WvmreH12v}jDvlRvYs;cY^k3A>p zDWT-7r5al}Iywr}uA7dg15n1hXwe_P4n4>Q1iT+&Wx4)RD?1`d(E53XZQ{hI=^qce z+M6fAiZnHM+u{GJ?GZ%CqYx_}v3cX|GTmZgCQl^b^#C72MjTEEdB9?wHS4LkXV|P4 z!H@8pH@IlZ&qpTfeQ#8ZE`k5mZ!5)U>Mr+pEl=-HT`!3Hu`;oSYl|8s{PovnpW-g{ zLELY~GJkA%jq|-;6QFCIUJk2#daL|=?+OQ~R@r|(iFCl>)|m7*H`(cBHg|op8Emc0 zne;s~zuPiacm4&_65QhhIhJh6sQdzj9nFG%;lmy43@+l1w@7d;JF0JtODoizp;_37 z&ep4_4{*L$m+}6B{P?LobaSlVKR);Zzw;}NSFfy_)h|3o!Rb~I$#z9mxw^f85Rt%wwk_Zh0c<$qv@);z3$np!g&-Mo{qy3tXZNA9 zQ#K2lE^vk0p*vWfE>GhR&&`&E(x!Zz+P^8+1Ky<)h>xJMJS@ z$e#LGr+Kj1P&g~t2sH#{`xUbxmy$!bq;b>zc;!|2{C*6^5CH)JKn25$=rtKiG+5Yg zz^DzZ?iAP;oRHkA{^P49S4iE`%)i+D)z0X(KQB1UssF&|X+T!#rytEowC$z=bBo>N zWL<&|Lu!h^MUSV!6ovSolYkCAg}tch_oVIL3`$mayHFj^Inkk&vFqPkFfneWPg+ z=U{<+sV1t}V`_|6Dd63cEm-_fm*6`))bK$6;1~PUGQRb|YJABi$vBF^!9gHiRjZZb zG;g1tLOiYy0hJAS0-o>A^MT|uIXMY*S}JY#+(r;9B-8Bc>jM&rQx+aDu?oYR$ORC9 z?ZdT;*7Q%+AnQ$ToBU ztW<)*KJZ}LEY&OBl;n(`zA5`eLY5U`xMpDp)s~fu#RZF8xkQ7)yvB)o5o|h<^V&#XPxzxk8 z1Qgu4RfV8jBn><1)~BMOpi~0lLl(d1_A=BAm*cjiqY=1cz)0I)YoEs-56siSjRIna z2=@{jKAbIl(!d_A3PFOC9O#*3^A|Cd>2$b-?sTz8b=GNdmdXryxgYqW)1(2(P2ITr zBg9!w%jl$Qtf;+gj^p1_r5*FN^6eC3|9Nk=XcP6SR+eLB{(atw8Y`rFM0!lk_j}(@ z!%g+`-CqU)DX6WY>aDhm?XHa3!xko~=VJ;Cp^H|JRHf%Hp{z~&GQouEtIPSV8x6z1 zX?&Im=OJFaCSv-@AI69f5Y+UnWtItID`ALAMDgeYBMuWECRUHZ142J%R&+o3~1 zK;ZC$kdor>U)W*l1~H8)Dw<;Vxe&nyjz!!#85Qv+U(El83KTRu1Q7GILrxJ!_E`Xy z7$|ZI9{3(Djk`Ztx;Qnf{SKEy!;P}6^`%70ZlTaRjKN|^v0z?+c9aS)>bB&6ZIYlZ@1ZR_V#I>uW2od(qd!J zTD6tz$!zt_X`LPe&d$#_x3>e198I@ANGF1vOkmf9oa_$;op@1PQ)BvPaG)8+ddiRf z&+pt-qLe=|$WTfu&VbzgUvdhhtqgS#2@a7)f?5)pMF#{OjD4Sf=n>81T)e}J)gSAy z*V3Y=Q>pUm#U0OLV$o-Pw`aQe3xg0-ck)kos{4~D`RYti&^jqoE}5{xfUd5t#6WC5 zfg{0yf;Uv!moHzEK+kwk3C;?n5P0yn`uh4JEf;ry!UsZ877__~^>667KYaM|g3}<0 zTVSH~O}we7Br|VTrX-PtX@KI0p322ABT}ee15s=BdT(IF7v`f}!*u-X(dX?Y_8S%V zn}7I9G0)1Pk|u2g^02V5!XL9i=wgbIGJ-rPE`y65N?5@6MaM-37;T5%CKZ*IY8Fak zW4k`9sO-?pokA{lr<)ww3DbV2I!0!H(`q?hxL;%BbHtrPOtsOv@Qqk3gEGt1++-N_ zyrT`aO_M50NWeS^q~QjXPSEuze*OAo^mkzxCIEsAp?#~Fdw`8N*lBGMQ|WfSH@>ixBpnUn1!mSGEou?F zjG72UYn4StNrw%C81IvV3~vgDPgXqR<3v@h>%($uBr`bdjuuN{wImCtwr8-2bLY~u z$A8X9-4ZawN&e#1Z+qR=nX(;Ao=$jR`;p%JJ#sU^j28 z9haMnkhaDHVQTC3RnJr+bXiZ0n3CjUX2)cq12HXUN#IW|Q8|$1-KuL^ z8z){vJq>w%tiKB4aQl4eN@sNYbewX+NY9(}OJkzO@eWfY{8_2<>|JW|UPx-{XHns% z3aH$wbfkTp{k_@ZRGFr%tt;&Pr`R2 z&L`5qQc>h#R`Izh)wLbZhWKL-FUkL#=2D{wcrPZSg2-*dXQktLg@L5%Lho@coKqSW z=R(fUs-p6{Mz0W~mcR{JLF;#{lvX(05Nx4V8osF1JUyzH&n^kn{7}+HOdJaS@U0Hs zbo={>rZ0***h}$5#ZjV>sJp-Q#@KIOHs}4-sZsD*;DYp=BQsJ{C7nyabE z{h6ii9=27-BbhS^{~vw7CM%?WInJhQb5sPi`W-E$(6_qp8MJV~isrMJWMVbSX~^)> zeYhX1OX+)n#~x0;`e+TGMs7e(kRDk>O^OjLH&P#bpe*rRCa>=s1mA&Dx@~S|{SA&= zq(j_MT3K2;URzB)Z8E2fbp<9&8uh~&4qv5;zZ!%blYMH^^Nu`p9CyC-t9-0*4fA=; zZB_>}EBkjk-S`PANmrpJ3koIcCxwWvf9M;oH(E5~Ete9tKE_*^m{%^>STD5S8voXh zOcQe2e%02_A3gi+u!Zy4RFsyBm$$n~BtRvJQTzLBnHum+X4t*44H~bqny&%?#~kla z05?WJK!AAO+78Bl0ArPRZ{Mczx`LR#Om6&UHy{Ab%&7A6@}lo8HQDKdFbl9zEG{er z{V=seIXETE{=2aOrQnZGR-iTm&nW_9JT_mgne79ZS3y5=J!b^b!OyXoDS6K$zFU$q z8C=U3ie?5>0r&oN_mCD#dRekn3N*163`Dq-EIGCP!jTcigA!6&##8?IgTx$F{QeZu zJf>q;TJN39q0E#5sJG#j)=B%?Zu_;m8aUC%Q#tg*JE-~{$LhWBxA$gWntCt>^O*nn z=x(@erQ9*%ty)|hb{p21Z|=)~8TmS|hnf74hRs4UpMM^{I{$_sosxIHfu$*yGmbY z05=rU1vJu!hXyfpC`Wq%ufq1Z#SOA<#X)gg>Z*@q@pZI$L>QR z!g3AI3!(yonf-EKhaP0xFSn=jYFL_8>4S-Kh)A;0;_0z4B9z+?O{c<=nip?L5A57e z&KlQ-Z^lU0L z0dL3c3vDH>r5RyH{Q2ecHKAe=B1mv$J&hyB!BL?fdukQ%^YP`AF= z9t2a*uXWV?OR&F8oISYgH#z~Hba-~O5!&*HHXlDf7&d~3Ze^LGIDfiGW z;FE(NdcQK7W5|J%E%Nmbnj_251rJ*llgX^`w=vf>-yYdhlNayh875}qokL+_OL?7L zw50mm3aBJRcJ`i z?speE7D^u;TGVX4i%F>zKRn<1Xxj~nec`E+5UP(UM7dhdDnDd`>n{?#WXV{KVBle7 zk%@=WD*(R%1J~@r8UcDnl2^RdGsQ(*;iQX;?4rTpPMM@#6dP*dy~ZEWw92D(p%%aU ze5|0eG{G`TDFyu44s-Z*2OiNeq>+lleMH~b65XMWo3G#1({j}e4eYF%>?4V(%D8#E zNQ>d|DB)nTzK)^SO09+urB{+qK(%Lomr0-5rB$B?FK{VpnwWkcV@ z%8Szg?@2@LVl5MG;;5T1x)>%nxGMmBWyN;*(c7#{RC%63K{MOugJovPos z2O5wvmzEl=&RK01nE2VSl;X!TxG^O&FW-w&CkS)jab4t!qFe|J0nE+Vz*Ty=MzK?H zNl8gM%SM#YJ<)O?Ae!e8LOo0}x&Js1$e2n=yypoCy9FU&)i!OSCG%|$xrL5?gnL<5 zO5rqtKiZERG#bnE)7k3^{zhcixv9>}E{DQSx;!MLF#9;HXqj!hyk>OqRSk0QgB#*P zefq~&cel~Et1DSlPfpfeR(W3lT_v6Kv+wQ6JgFc>i?fCO(_O>e-Hd?u(!=Aaob(hP zPyP50lwmQ7_Ae20F{JB13}kUXE*u`OM)ouCnT?HwVe;Pt475dx*~orLDL%8uRblWu zUJHvasCf1Uvt_mq4?qH}Ty9@(vfo@-YA_?_ZCn|mUz>E;E|gjRcl;q3sR1~`zTRIf zQ7B!fe6E%$M8ih4q@$CXqrTr5i9;vsoKCoYjAj$E;^k&l8`E(uLUzt{hISsSK>zBO zWlEWN&tF9ktG82Pxx)b65}XYWi>V7cR)|fZt-t5I6STwPXcy=gv_|Q6d!h^ORpGCG z&@ew5!OYJe%gDgMzYGZvC%fX4wQ-N7xX{A_2&QhsHj`vlsCkO~J>WFKr(R7M^glX3 zbM-AWAve-B5tLxZO86w9rT+USe@QWol5rS!U~Y^%CN#PVn`CV763u2&xkWPWkZ&zR zA={Mt!}InzN41V-i$siqt?l4&$~r(3v32VZ@Ovl?#>aPfi}pol+E~yL3BEiAy;b3~ z`*eSxG65c~EWs2!!ewA5I6T%C4#OzK`H1InTSZ1&a&~iE7ZB*)?!o>2v}0me=5dzc zQKeYD(cFN^M7lH_n-efb6y%7BFsA&*_36~H%o0o*TYO6}=d6{!dG2#LYj?(K^g8`_ zw}FQk#(QaTk^CA%!V5^T)cNoOWXP<@<}Rc5m$~Irf!z9fss&4-=-InU&&wKvUzT4m z*pv831WAVXE{ha!-90QDEmVf*IBYgWvZ|_-s`V^-BQE=+j_7c#jt(k)FHP@%JD4@p zyXEFC(`%fRmC{8h2&`4BSDJct5NbyAg9y(Ev1SMqEY@T|$? z6P-4wG0z8E5QhD$iY@s@5V`qo+pZu@;gg?#<-h^($xTj$DwSdmWxBjC?y_be-x2Op z|5NS+_pLc{Wc>rBO0L0fu*BP^mJ~mb%XuM*iIjD0JjM#bsCCM>=)d{Z_ii3_JhxkK z#(5&kx2xW_%8-wNT36qWBj8sT*KIvK1K-DbTeZ3V&$Xl5+f*r2IBrWNK7|UTYs{KW zFK>K8XC@}Br*aM-U8^n9G_#H#BJtUL4?I39wp2`qUAl4whcOpbWswxU`>C1JPZac1 z`{(VcJFDr;Z)Xe5y|Lo1ZY$?QwwIYwtD|`h?{h=#pBxNcUU%f=j|3bUBv|$AAFZo@ zE(djXe#w`3#HD9bqtC>|taG|MWA^u-_I+95^SH{{_?DoQFaHj%JGkpCTQFrTTacDr zjgsDSE}gyG%NvD&Q?EL=W@v@4(R8#B<_|S*YaZ?=RX+P~;dONplB%=Iyb-V-Qd;qa zN-wP17x&=9`Jb;5jMdf~tZ*O0v-nEC)=-RG`8l_@wT)%*FN1V1ECN=DO76SZQxX9W zGWiS|qoTmTZs1@cBbCep$~xOYp1%2yC07FSKo9~{q!r7w(a|Bo0_4YjQ1%`agL)V< z3d{ZBmqGV8Q|&TUx?q$a2RtVq{_?>%{yRRF;-8rDQc40Rypn;Bl*;a3ENC+a)+#74Yy6u~p%)NI)~cs=K4`^|2Df2JTo&x?X2Ri3E+M`Po9-(?Qa`*6YrdNXJgy$zn!sBU2$!4-hS z`v37COh`aRk-;M*#b>6NTv=fzgDOf7WM?PL5QON-9Cb$%A4lLqPX5OK-B$fT)sxV# zEvoflT5>1eR;{Ge9Eu<6AddrEzzUh)|H%M&RAhhXNt5rx)cb!jD@L8_>j}f$DHkb% za}r$2d$$|1?~U;jI-4>#56DuVfvXxrD4RjO;@dVl2}#vNHCUZ8;tpq{3_m+%S=lCp zPp<2g!DP>E#o}fYcJ+U3rvv&Lv!jngXsF9g9_W;*h2_13vwdRoLx&HoSEEe{JglD8 zowTM?HB~=4I(*~_6O8=Rvf!P57e1ltMOymq$dl=2)!}Mv&gpz>raI;~LDl^>{Hbc# zPP~YNlEAJfllP$A#I*4ZW_r3d^PfGtamjyUk_F>ZRXPS~Kdi0Ltt81Xgag>IC8Z2t zV7`8kHZ-J->A%QMO`X5v_kBf;$6L(rooxAcMfzEJ&9i~lc83a95#J8)vaV~RI-`qh57wmXBUBGQmW`0*Z~IM{_#;q;D2*uL zc?1YCANY8T+wRiZ>Wja`KT+6x5~@BbV_J)aBwAsjKJ-aP&$(uKk+l+-mtaCWuMGGA zxP$s-b7^U*df%Cyz(l1bJN7YbAt3b((GN~0R%_Oon)jtn6EfRwfOl@tRhq}_i|^-= zR&mtwbG%1D%R3 zxpB*M;O#&mQf|1UMn{kBM3@n`8PVFRJqAmmid1Vli3@zH%=`bE0CD|e=c=Z8} zoH1uPH1sN|1~_7&ESNP@;;?_9_NM!n&NGRA#T zP-M8BC|jc3W33lz_Q{%z)!iBHi|PlWZiRYtXWd_nVNe#z4O#CRD|fZ-n`B`3$dR8~lxu-mb`Uh?Zr{uI*(sq}i23CWbt zq>xKEMl|BPL~RIS&7cVEreJ^h>zUR0?F1tV*^;r|P=Y+;P<=_xXJ#Z~o`r9xv2 zvrjnsGJ7Ewd!}EyDCDnC{?$(iy2i+3OUW|I<>%!&x;_d%1@hc^?yJLGnz@-m}R$3t3047|s5QgQaCz#`iHsitg#gpEhfAe4F8!viQ?L2?D)>=$c zKdfb(kc!hT^HvgQ?sG_-SG=-O(G(VPR5N}weg4SPII|`*cs|*Ey0XmS6?C;6A`pTW ztl(0v*P1&sQ?J#jQX|%7G)09Wo`HTzc~-6zTpPycFOOt55r`|HUg1J0VEr4)bewpis^c%Db?tn8=JUp;_N*g0NT}Au_RxLRjvJWEkZ>!$0g@plu zo)2J-!37CK+&}h6Y`VSu{YGr?%7dW26$g>|#~c&dcpy0_E;k<7*3^*DDnyEJXlAVc z23~@AOniJPFU75Ps$Z}*@=20ZppgZWz94yUu%ui-|dc?9zo#HVt(f+L(s1)pjzWzr{ zTD@^cb*ou|1LecI*PZy64-lBW^qI2dKDFVRbS{^9NMeXGE!JDG6V<9h?^B%Lu?8g5amC&Yh5!F6~tKgh7u5+yku@jlMj zpoAPF>_QK_YkIm4U|@i<+Sl=Vb%2R{Ba&+mXi*?9M@eduFCGP;=_@NM=AK4NZ|D|L z-jNQ0zV?4%n2D)hdhH(b)lRTn!oj~K)>YvJ1qBPVS31TQDP*#KyBw+CrSDvBGGqYy zE&x;&DP+GK-7&qeJxqeNO;>gMipcg4Aj}6Ap4Ho~E=^6v-%z{0@L4_07s}vb9|!p( z`+Q7DItEK}aO54PeRD;EL4_vu2~0zd7ntX0@%C}b+Fg!tC@;sZua7i{B#=>1a@~dM zkr?~lBkh0RnQBh4gGfqAS*+2o{t-76;mhUp{~;cQ^qp-!lPT@G8X=L}@@d8@WnAt? z7fP(WC0-v|yTf16e4wdu2Du(fTHo94mMy6`B_qC~vM`AngCF%lPid?EM@Q+Mk)M2% zUd(#?DZT8B<57uHk#)GS@6{{={OC{N59xeiVuA0s6DkcC6nt`@SbH|k-Gu5Rty3y8 zGj&0w96JGwsU|N`wTMPS^;GSyr+QrRWO0$!q$0qdHetY%U|@q<-!nk*XGqW$;8!C@ ztP1MtSfAx!`xWs%_OGpxT!eK?pq>ert5+_8|F!C^ZYe1#=jCtTESKs_!!MYiHY5H* zd7lgOZb}$@BX|D@?CD#T_I?mlc-u%uxMTlZI98DOh7aI5fDzw)3r8rs>yKANSufJr z;|a3g`ix+I(=4^bRXOu1hB19*!}WjvA& zUt^k@IBnMxs^O4WXK=jSsc2}7U@zw1bEEL{^XI^cH?oJv*$65h`@8%Jc;mD?!py=# zF*(Z>8fBu1>VPI9y7`IkB7V{Uh4P*DTV*KYEM8aCTNy)q9XkXPnE^bw5^LWam=0KDLAfI>VW#g#Gz!HUe|5O@X z-YP_PK>|44vp^Qw~i;I>yrK#Z_285Ai%NFmm9w$g%HHs?(%s21<& z)hc(is|7!IZk1yBGc^k-=GY{M^!h$38bofj1oRz@+gHfRHI2n6+D@n{mE`soY*9IS+QJ7Fzhv#5LEO5GeagEbbLbN4FHK^u5}Lqjhdt+;%@gg zQ4wF~NCXxgOae%v#_?LrjNB3;#O5zl8ZZ zq%c0qQ75H4#bGd`&i?~tf#zEQvVIAriH~J?Fq8l6j3mp9w|-%wX+vWJa=lpj!#NVJ z{96>PXzqU8qCXp{F(~h%3@#`bF$)uGg&c`25>${EC?iimUG#yxnR-xY$cQTWqqC zz3pK5&K&SmpeA!2~bilQ}1b->0vvXDx~r{ z)~~@=$RWpy@PR$ZYx%vA{fGv^@+Dji$BTMks1_j6Er06Y(^#i=*7jr+#+qLh2|S(r zS|=ICw$@Uz$2l@IKbeTw>qSQz4r;|>QdIq=zPs7V;@tP_xa*QwlD@sWeP`M3@yV~7 zq~^v`l}HNv=jRTfDG$e@`@TJbGWOwf(~wy;pYrj&4MJYK&&0OFqMs<7cc4+iSSb zvy5kB)+duq*gd-9z-*39p42m2tThp1lW@O{q%Qu!vnqg?6BQL53@>Txke163^wql#x9x!1w!|LuoB0cjrg9!<8ES7B>Qa;q z#J<=zyPZ%?*Z_O_th*rzId;0#f*a}iQu`IF+Dpdh8Iz9`GfabA3 z8e7sNeFeEe!QUAwQ;TPwfV^GIXrkvYC^8rphvwVMKg31cCSh3CCej zNkQQ=Ik~^yql2?^o6j>(5vR>k&?aILc-E}uDgb@jZn+Uf&_o%w0NBC!z$z7hWoKn& zRYns)d^dgW7PfW=x;yZQUS3`XqGb*$)@;mz1(o2=&Qd`WwfH$YI*MIIQ;s&{V-$RT z&dut#48mSuXD3KcicyfuP0h|0qLgtlSTfO?TUt6E{&BJM7lNw8rgEb`^7I=49(n^F zE-pNth&EE}QI!Z=w7b((CX3|UIA-F{PX8B+EA+(E*iAT>QzVn(wC*9`i2VQPLv2$z zLQa=mLy^sHgzwr722CRC5tacoaYd4;IeN#-x24rdWF9NIM#tW`TWkrB=k>h=oeKDJ zhapxqY$Gu^m-;u>lcla(+h@O48Trerl{Q@XPbFn{cFe8XK|X^rLb>#eK3z8FbtW+} z5o{9yavw~SSREG`_tS>`2PbgYok4Hn0`A5MLX0Wb(Oe~LOCclMFL*W#xV+x3PPJ<9T}!bD$?>>)=3YEl`q*!g;LJ z0Cdw6@6YnT>8Q-{Nz1FBjK8-qO&=fd_E{!t_d5R0^(Jriv?=pbqv0wl7YSDuelo?? z^8A!ZT?J+qj}Q7mGCX?a>j~rb6^J+CdAkA#i)=KRoS@(DpCeRA;RFOpX6N=+TY~RK=lxM#Gu6quw3z*z;*3rpGkHqZ> zT5e*s3EH56LMiX~VqkUNuU@H@H26Sr76Nh@_-zyGBDM0mRX(Q| zq#SKYop$Fcz$ryO>ZsqGlS>m_%|~!;PjBq7zY)7fI=ImUpp9W1R*KyyqU;K`GSy0{ z?3QNF`>{d%N$CRR_c8B>i3HB@!^pcK&Wr=)Jpg4`8rKq>ncftWF}*m@o~T%ce`DR$ zo0#B{-dRz9vie)QRL@0@?sH9)n`dPMN+q&#w%}uYqGe*f*&h1)^MJ00`?_H?v5yzc zP%{74A%d}_lBr07wLln?2PEdcNPM8<7Y6#@K<7bBlYVG%%tv-UzK;x?_X z_tb#%s$kOo$!0MH%-NH;ACrrZ$b%tX_b|N^`<$Qgm<{2cM!*38?Mu1!9+^1=jnvdw z896tjqyVC_1RG=O7%D6Aujw z5B0%F2(}~_@cZ^1w0eIf@vp*6@?dd_uQM>r*VzhW!}BG^OuSiWb|HS6B)`NbmNB?G|&huB;rA z&HH+-apLi}20ryKpRL{oo?wnLk~x%sSOK&=G?glu*1e3ZI1!Iwrx>nK0Qv$6s}`=Ca9Q#Kls~`g;E>d6t4K z^)kjkHp*)^S4uZqGM#*f3@y?8TAImrSQKFX94h@_lZWZE+iOTn1{G!IqfC>8XkV=VHwYsGBQNsw2MoT*hB4H!&DaY(0aqE z{M4-<2nktd8BT7;=kB^AS^uoW6j05eD1us1tnAPAMPupe={SUuf7Cil;Qng*dFCp> z#)>DtSIZ-k-s1jPTU}GJ)>z727;2shoDHtvs`Ijt{q(&?qf~hZRGo)=uM`{F%6K(d zdd>IwyD;u-`bxukL;vH}URYcUOXPdqa+H*MHVk&W+r9IEgOC&K`-|1 zeYHVR^$blPcuDvlZj@#FLKd2x_CSYeVP*CfD?O%)3ivL|Mwp}c9O#E%3p<+%?6Fh6 z8ziX2o&_9kX?RXiC`PQ?F1m1WP%jNEY`ixMP5M(+*Rr;Ve{4tYF|+_Q3$PeDUywLjhQKkRsp&T0jdc*)N3X*fx@cZR z<*@8*{cqoL0DxyeV~2Qp;(k9>yko=;nxh+F>)6;5U!o|*Bgv4QbdLV6uzc%;nh~Mg zCk^fgCB%ObvW_nlahD@OJq?B%@q3c4CoBG+kuUu9<+AwjSug*l zio2xoi99#KWh}0&5aF^PtS%KQk=y$NL<+oe6`|SI09icefH_pT7 z>hYia<@{M1ezpb{$lTGfnHI`oYf5Z-8Hs!9_{0GZlL( zn`?%X%3$aZsuQDs|M+-{1{-DnfPJ_>LP9vL7h(q=2*VW6+*{g#mJm+Z^Fa~3NBg$~ z&>1(tEDj2pdWVbZP7u*Xm&iP z_}QwV=X*;EKesAez*TI(b*@6G!o|l3sM110P(0B}yYWBphV)y%qY#TZBKcv-RZyyO z6$xwWFEOKJD)1I&`ESiV!4FgI0x6~>E>8{_XUA_{_HX6V_mg24 zr>i}{EZ_b!KE;1B4u}VjF~Tv)`N=2-wq2V?=isc)RgOn12-Vx`H2xsYq8a}hnt})+ z-pZ_s|8i+WrPU@K5{sbI{?qm~C~h?kIVP594#i0e^e2+_^|}ZcjA3lg^H4#d+cU;C zxh>N+_jWLjh>#Dp%*XNKi^msg?!$fuMBGKWCXP!PTe$bW!#Ein2`aL&>jMLk3bzY$6nHebz!4;!bBP@p!m^m7OnDe&{?O*7%&g+-@V< zv{qr+?$p#FmTph4M0+M`y5cZ!I#H-0?RZhs?YWbZsl=pou4D2BLu_fOORzWeQ1Fd& z(nG6u9PE>WvrGcCjp986l$eawRFhwUh(Wa!4mQT*XM z<>>QgY^PJ4nXrj>|?AAm7Auotnt0r4y&wW1pJKPO_j7m1la%1>b33-Z?kKv6y!;G7b;A6qZ!h$Wp-Cud@Onv=v)rjH)3%Lz|z4< zJH-bQ`Dn;bZO*Ehsw44rk=C+588k5`gar5rOB-DO7Z$5X(++0Afv)bx8U4xO^LK^m7S~lx}jWygkITIHdm3V zu%Enj3Ll#MsdPyVg}EFq@7lQ%?}?dzcWT#V7_^diMuFaCXuyLX$Mr>Y@h0@C8#EuF z>rM0KzPA6{6BbacjlJfz-+OFrqBNGr@DP#f&ymaTd6QU;#D4*P_fZMeOPq>TxpSc> zzIS}oIHQ@;CDB`4(sF$6*wPZU_lx}+Nk>F(~3?(PO@q+7Z{LZk%gmhO=52I;Q7p7+~h?6H43-5zeY@?`VchZc5n$w zJ*Encx_|2%Tlre};m$=3jx*}`EQkHYTcWYG0x}@*oO?2^371ZxrjuxYZ0`4L@Qh+0 z;!B8ma9;wS6<#XI@gv34s|P1QPSNVG=S?5`p&)e8PW(X87c%|3!8=uMP^RBK%z{|CY6)`tGUX)P5;O;<}`=o=3lZr zHtqZ-B(!2h$(US707SO}`B$GTE3#~(ag7-1=ig#_ddI&ij)@iCGYYFjL6cxpWN7}z zJ3H5Q{1~?pV?Q_~(pVZ@VVY=VKrw>XZLImJ#lkszyV@XEU`qT2q2;?pirv!3H&ZdO zifoh22vcrOPQP6bFq692gDj2g!`O%=C!wzvfDfBD{GR@!9qdi#)y*6bVM ziyh$-^5|qqAHs8G+0EL#QT+jvV{KjXN1#mbl6GzCUiSBuL51v>PNvZYx~siadUl%N1U(I#);odifm5w{>$bfd2Q@&HQ912@!&M+rFuU%;OR-_kMtzl=?a5Ho88ZhABwRwCym{$V(nNN@1Ya%WcR**kOsi=*bh`*<%o86 zC(ub?5BCcDs_gT9`{#W6o6RepE(LQ2`Kx>W)g_CA^K4GoFK7-htj}jB+>z0%i}NyZ z^R?a!tz7u(*M$6wino{<#u4P&52kkq9CK~X%{g@!P1(nSY-Z!K^VYHR|MtonNEriS zMZVwZw6MbL0hVF6AYll5<6x8u|DGVS;@@xO1#ag_T zD4h8m_PF{#a~4`l%GwD)tC>ukBkhlGOz3#wtOrjwAFS z7^e2pue}YWMexyroUH|N*5Q2SZtbcb9Eso z(->IXrWbD4&XC9`1;?OBGw|L2IO8nK{)Z#>eunYxqA)Qh%`uJ{gMO6wH~Zyf9EKy- zf|#3$T2E_xqZHwK>ns&_@2n9F_**4#GX<<> z;-g)+%= zTIMCSs})w*c)AGhhP8No(mujK&kr^%KCKFP=B$mDCrcYn!`Gi1l*)*fxoY_~*8ePPyt(?>pgch#WP%%hh1hdH5q=C&LXSWlD`UsRp# zCw(16z5u#3qHvi}bCDbgpZ;q>y#2RgV_~5QiWPJ`eL!>pfZ2e0jOBCpxucrGN3$OYN z_ObaGp{=HTc8eTMHOhq&@rtGI9ul_d|Md4ug!26WKfSf3C4rTrGe_FT0W{Eh8ti{+=;IhP`1V_SYD^9vo}ZT_Tj1%H!X>K|}biH?p2KR+x# zmVo?6U{24k*08X!_&7T|8)^dFe2#VWdZDV|H~$e_X}p2)q^720fmDyo5hAn+v&#&O zkn;d~O&vVNq^ES)lMEA^Du6p6(#Y5NBNO=hX7G{tJWflG!ysmiFki6$n(htTYkj%9 z``DPF04h59oOk<~{U%;1LPW?$|6QQQhdb3}e*aJrb$ND1YL#d?kr(7k&CAipK{Tm; zK@w_6*H}35cyy>4B-bqN-Dy_*iHL2KieN@=v50FAlC zfB{3R-}%V*Dzk#v$Y7*gD8`iDT6Gm+|KIYQYz2|=Vkrt$qlp3yf_%7Q^!)3YBWR=F zdqh|$R%z~qG-*=68sEMk(mFuP?Vre|-1*#AmT^#%XW zo0SB8QMHLZ(D&m(5Ql{jEfV{=F5t<5Jjwnm4!v;k$-c^h z`iOpO>f7>CC(trfq#L4To-8=Gl*SayDR+tgd)$Gr$mx~T+}NxB>uQ||#nX4occns1 z?z6b||L7PD)PU?i{Q+r2_QUM31(M}2`P#EoKSEjZ@ zHtL+A)_;W1g=BPV<{B?@xr|y-0l}$UC)*8`<^SCwH#;s?SRIur5;v=DHn$gjTRRd_u+6YM6Q`C z{|fI=w=`SI_4F@?E;&Zz)BqzWj|%Pp74br-7?}s~pOBH2wGh!6jb^}VRs$uDWI0rq zq008hijR02rTTk8k4)QaO=Y2M{c9qrt<6BoVrAvCrNkuFhKA6?wc#L2u2e)wVt+4f z6ZShQRLB=-mG;k@{QmP?g2O4wHhv^c_EM%9{0BO^x}_y_ju0zbTRG;KCzWJoLxcRf z*MI@O+Wn-RL6scsd;=L$-M!wdA$1$JDE=I$tkMsyVpBp%S1wk9TY(@iNl&k+Nwr1? zm{nMcG~*t`Q`yq8Sc1MS-pW%yR|kKS>Ywto?sx>p9Hwqt*%%TFsILZe;WxU+?2e^S zQaR*YSo`r+ne1`$qDr6ZQgscsLOL0^85vLhC`NuW!l5V!wJ+ROQ*Y-90e8Xg$p7gM zgO-Py8m>oc=Za<<8UX)IUkpqt*S-cEH7>l_t%u^vArVMR{Yh#S6gSo@J~ELr$ji$^ zs!zITmgI(-E!(zsyl@A#_~f9tGfaug{JhaQeSehb_eq5>1|8+-hns2JD)s9OA=)$- z^N{%iWUBV57Twg~w==9&Sk8;^*nbwmM3CbnCnF>KSOT3cHuI`cq?W`B&%<0BC7K+gi+w^DjG za>p<@X99eDD|2(WO^(wv`=W>UO5%+HK~tOoZ`#I8B(CIda>hvyP>+h4=C5;l7_uvU z?tIH*`ry;g&2CBODxFvKc6U$G>NL}=Pd*&aDl}Q!M3qIDCYP3@+=}G0P_l6@MgDlw zfEvRUREJ~3{p82HQunm=2NaorTHDT=NeZS=3}7*^T+NDc7|GYI)kP^B+qG{-a?zw* z1Vq2f*$8gb;4#2j4RU>@JsS4y67;V?)yjYpF_ZRys_WF%#6N)CY4=|{)qSH%a*cg6 znGsN_QbQZ|7U#?}%lJ)uG}#%OwPTg)R70%m$WxKAIRS-_O`A8(FH5~h!=i}&mGCl~ zZ^{ZKio~K*bc7*z$$7AKAi3qrC2l91M z0isEU4@w`nfk4`WrOkYlAU8tB0*a16x@TcQ+eiQzANYq8ZDPw!hb8U2?kT#%B#y_ZeL zM6r8@i{Y{r6r#`ihWyNKpn~Cs8pHkbENDw}vC+|lcE!Pn{i|-=>hAFPFpX&rES z|KQdh>sRW-z`y+E0Z~c=?|0t_NY(F6SB?m%eK)1ojM*%u%?c4VkD3UC>Q<0WFkeZR z=vbQi1qafW@iN61ooa;EQQaVrp+%6@5x-`q(t+kAXHXz ztXMlUpiGbT$e$pkX!v*2GwtQ4kPfqUg@JMQP~KDw5Ctp#{x_;~P7gO7O)Aj12AZb! zEjWPouRKAieTW`-2UV8K2hhb^ro>>7#&FxrAyY5GE|x%xQKt}O(xS|m zWi)V6KxpE#++1BrG2V}QACmq;**AfWc)Q!9_2$3sDNx<<--~ctcM9(F1xvH=(mIAC zL7^pvF8)P(qS))|Ykbzo0M|azVu#Pa%?64aG|2rJ+J3Gd za@h;|{&XTtnqadRW$p|eWMtkJGpuE_n($QP7Fy#Ms$o2r(f&9^onbLroSaN>xt_=u zl?z)$q*M$IsqwvcF2DjAlhAIU?6kSZxIIG|-+<{0WF38Oj#8f@Sbl`d)rD?YMw{MQ;=6`Z?=x0r zNSgiECDh0@7Q^KqUR>|hmQ@sUEb;Ny-O0M=*Z#$Do9NZ~OkCtRK|g;+#Cn<;6*{Ncw7Lk@*% zcp)pjlWbgo`iL;1pThibzK(e$s-0wnYmOf(CM!c%1^M_}X#fi$&_&_J5=dF}QzO?*<%X@|0g;@@n|RK~+| z$UB)C<@I}hR$hf>*YDUNV@pBSTqCOzg48-eAy2nKSokcsq~0I$mCD+EUub~Z1!_gb zGmNQZh6!D!hJO;f=`)qh*bQx+9HrrTWqN1Xld6 zUsJVS<0-W8WN1&10(h_&^+|WfbE}V;yp^9FezhoJ4LBg4*e(35J?+GZ-(M--;S%Js zJx{!EH}Uhe8fP2jw?=n=rlyTABIL4$lZ>UuzaVw?24u=#@3F%-UmOaGV*IZH!WN)4 zK;iSv6uEUJ@Bi%4cHmu5dHjP$kB)7?QwQi*isR8v?r``yR{iGCS zO!DYjMT4KhqidpD0F^1!2rx{#wNcj#2Yg=9fL}^D&(v43Z@AlePG95;T+_wF<_iHs zPE?|fyAZ+{|FQ1b6W;6ij)z>>I8OgNGz>-xBwX^`gTuq}cGy1fO|aB}Hr3W8{Z_w6 zE`EL@36$l}$W6{WQ4I~8GyHCcGXM*i7)pOpY1=52Pyx`FPR`Ec{_K+q62$j~Y1We^ z6t$Av9?WYzveGaAKjTT9huyk#OC&yDmOh?Z(`Vi8cGs|3(;fgN+m+>eg~pze9qu?- zeT5(3Mp?dC@5=ht1?so`dBEe&!NM{C1Q!X3ABG+Nks}LApko1O4A0>52zEes_ccaI z;H(5k3&VX2@RNw<(k**KHMySJ@+9b*7Z*Kz*IZg$k1#)iq{?}0yl`~!ykh~=Y=jUcjnU_Sq!2=9!w+f!aq`~e4wVP$z) z@0;th!}HB69QERF*7L{VPB3tFcL&-|wBk1r#lO98VjaTC5%~r-K|7(A9>blqi%~+x zF87a*SpI*j4F&Hl^&LUgl{XXhEO;V|)NP2K3YUC?#mK+a9>!~tr?RPh7o$V}iLuEU z+FgL-J-R}tm65U6H=JN+6w})qP@)VA$@t46f7N-VZWcMlHlRswh!|cj4K-svNE7@M6nefjJ74pyZ_LE8qHY_v_zMve*KsW_B72 z!>)AN-T5eW8qB_V0t>wd%-<7gsT!X+y{xUHPYWJUdrb2Ls3GeP1|89eBHNZulWiu` zXby&J-cPYjtvr646Gi8uPSqr)b53q+wMPR$?nz_JaHCm=L59jIU4|f3>USa1cAg%u zD8!VHFM;7cw_hmaLxCEjJfn*3{P&7a8NdA?&&C#ZvRv6+f|G(KF(}Bvq8;H9Ve_<_ z#1SmPS%J~)kvQK8Fl}!238p5WNB3?)LOI*5hC?|6Zin)%%m~Q>G31e9Z7t7RdOSmI zhRUz-6V3S9TPS@3&B|j-1v<5u*JP_1!7@a*gPW1T9sr5IInnuPD=H(yhR&#@1`|gu z6?E<-2uhuX@^wkoymRfcy-~I+uGbp8=G#@HN5Xzf=5{HG>Mf5;$m?)gt^Qx>a%B)y zd1cktzkspS>c1oMi5u`;vfl;TjKyio$|bP;UhFxP}^TmZz%%Hnn7s1#XZbVU=*19Zwk{TN$xv~_;n z4Y9&yV5JvZ0eUF~U^k?or*Xp8Xpy`&Tzw zM_|!m=bU%HDUOixy}sZ{s(h)4SJiL#>_460k)TF1*q@t9-B~%p zxF}SreIka>-%b5GqOf!oBgs?G(hS9lKAQ-#ki)~f*H2ANk^7gwP``cq_A_+k4KQWi8LzBN zt4BNP6hpX|mw{gpArxkE>LvFQmS=(nw}#PNxBg=ZqVN25)|GUCA@ravwbk_ebe!p-Zko@Ovl%NpKO2L3 zvbmjoFmJ_af)Tm04#wB3_mr45+q%8ngf4_SwJ5Ln&y;8S+MZMzIO%A1o;SPtVy?Dk zrHRyV{jQhPH&*;c2dkkbysVXXjGugW;1cPH&SAcyB>REt`T7tj_)Fm}DhgIACiG2@*-cE9`TUKpx zw?jubH@L_Hr?rrmo>V1B9%IicL5>kW4N za1DH42+R#SJxHRTG;NzBl&*!la^YPsbDXye+Ft>KT{|66B z-yP*}^CVA;Uw+|)GBSp`aOcd;PiG61y|W^lnQOAwmTN^qwcE?V*R7X6k-O$Y@gtib z`tqU_=)7)n2p&TqlK}p*;|**Q>&N%JuC#jOqI?sGL*^H|&Y_TZ&d$bEuuVwshu(;z z{9l!lR_D+Vieq%dXtDLx^TV+^||e&%?=a3=Jfc!0Xn2XaKz>f^t-#rmd0H#z9Ni$#)s!P zZez$EJm&QRI9(kxs9Jk1HPijLQ^(;5`{R&~Vw-Yv4elAAvE}2%Ce#_CvxnQ*CBF1|K{c3;FR6Km^c zZ#SH9HwYr4^n2w>E!KNzg4(hOYHI4g{ALZ4x)!1$B6&~&8SIeSNHpOlCUnN6SyO15 z#`ONO1s0q21mzveMAC2O!& z{=oQ`T)!M24;AciPP5aW@}E|gVh;wt|AyoW8FzZ-k42=Hb@!JruZB#)(8#pnl$7|F z=0KC|B5{PfR%*|%xum(vSX=j4qq3e0qFi6m172D{+?Ov5(J@h4Iz~a+k|d9)V@108 zLNyi2SNzdGfBt-f8fhPs#-Pmxv@kQ~@GUQF9`@u8XDSyLGe<`jUtLlt=O@9{Adr{4g-?Xvo1GW&c|=u2Y}!Z(w^#aoKZrmFn5M$0GO@Z{c|Km+nlw>CrEr@Pr|5qHPQy-BqX#q$? zAfAc#1PL*9vkqS1tOpt`;WMbx5OUKOzy#XF1f%cSu!rHo5dvJ177Kd6Lc*~sr1E)iuA`dbubbKk*JVj>Ds7!VU$$}&J=WVGrpF)6kv zg+8li*%9*(7X{?Ld(>^>+a;tU$esqx zQoyGNk#x+M%e>1lAfj)xTtOShd^g5c(CB-B)ZIM!E>}r^*sAQad^Cz`;xuMb(sDU2 z4K^%dq?VZEAK!B>1g0^<9O6-w-t|A#t8Qmyw`acvi|ncxMcXAi89DXA?11!}@ND;a z&(Vgx(8A%%J+y$v5#P_9w4aXh;>u}oZk8Xd`htE_XzS0Hh&JxV9hVJ0Qc>dw)yqLG zK0hnF%sh$Yi^vq7l|_OSAA|moe)kBDtE~}10L%)(0U-m?G~guW#s3^I|KS#uuD$W} z%j3}%mLUt(+K`VaG)0i+#*R8QLQy}UsJQq*yAWC>P1DapnxLZNWV+elV6##R@wQeW zf%EFIVUXkUaOnrvzsHb2evcU5TjxFi7MU%Z8kp$L^()@%V0C)GsaJW0P%BeAQ4+VI zUTMymR3~@GXD{}cHo=aTbLO7vbdTia?EwAiOX%qK3WdRwrN# z`bSd=x2PbxT740K#e$gIY8>#ZZ-QqX*mE88Lt*rCb|TcJ2*D*+#g39R4q!i!kcy2( z6vz}ktuaqPu;SbRGcV+$5M}0;i~Q_G3OamjR_Qhp&}Nbh)mew`?An`L$*KRm<`Epv zEk{;eXi0-1Jfa&>;N!Iclg z-@os{tE)ooJG9kyWBe#dvQbvPw>&K>Qpgo|fb(&TpvO9~uX+wAdPDS7% z>1s1<_dUP94kdj2Kj%p06L8XlQXer@8r0+j+ScaQE2*l4E~CkV7uOsIhJP*e1;)}R zWA=~&^=;^d;lTm2Kd7g5rn7T5jLVDlr;ERR1V@VWsbnb=r)f~RZ59+>4ESU5W=wV- zvRwrp)L-^!e*etTaTfu}V-@%B|CQ`u&4A-~R-{*)*7v-rfdVX(1vX0+wF|k?4#u8br z<;=>KmYB0k?=nb&b<&iTsjFiMM18)nw3H@SdL9(;P$VbD7?bZTeU+D!lk%=ZcI2C? zdQ$4%`1asTW~-K`!>O@02^KlAG1zcW>LeEb{-Ehrb#fBfSnHI(49rmnYlgx5NyBve zchrf+TJMtj@Z293yToMHAd$K05fU#qCaJRV@I($O{IH+>b@|0iTkgcNW2mEBkqsF% z#fvQemcfJ$Qex;2DbX6K{U~6lN-mxByLBQkSEQ3_cf zCrcGcYF*yl-GI-=ezy`eDe3xpSMZRlc&`sjvR<7z3Iu8B&B`r!mOY!hD@dU|y}TN1 z(n71jO>Z5{VJt+nnSXW%pz$Y~GF~3Dwfm8_+en`j`3IXcXYwyEMVi4Atq4PmsfbN^ zd9?#idHL{6dJoO9+O`86i*&CL!NHp|4S`nM<-Z#T(^~Pdiwzb2_ZMIH_nUG)WfJpy zlCvh@^EZLb7NM$Y1NdWu0F`ZIujTnBczPQH$-qQ-vbt)(pW``KnWN$qsad$~4rhcK@+uPR%h<+rWoYKJR-Gs)f$7j?rb~|0o zRzsMg#?V6yq{ioIGqb)r{}jd|G|GmZP}g@8jN$&4aY~PI#c?|~RKxMcIH_|(L=2^hdWr_B>2Y`O z{1ewY)_81EO%K)NJu5H=O^F>+mCD$CJ-dfed}(OLahYYlWyJCY_$fm1 zH5@VJ8nV+_XV#n>1?6ezE!%%;v-9rAv zW232aeMm+0-Y2pz^X4@7Z{6Nc`Ail67l!R4K2dUQ7N<>0!H#wDuigDIs-%kKR~)J{ z(JqgtLO*Dv!XLns7k_o-zxr3xwj>Pe7rKcKN(r6%*kEx|I8l$ z!zeUhePFDd%YnYfu-1P#=*K^5Lqotuv_T`z`dhnGlffxW)LiG?00&BNDsclXhja(W0R^mZx<<{&Xi1Ulnf5U^P8Oeonbfqm3UYr_m!4g5y?HD zqq(^GsyalJm`paa=iAfl4qs^kK6gJ;)7#rq@#~|tzilnsaU?omsm(G{;B$LLr{3(m z8$JE}7-}&}K$mcQy1?Ef7HOlHt1&U>pZ7DAtK>D}<`s>!CwL!8)lVv~R)+xxBqQ0F zm=p{RNm34*aBD%j637uDJOl_msx3Go&5XM3Ts=j)HoD&+sc2lMA8D=tM-YTD$E;*u z6aa+P|4$ar)L;_l=LhNpIjed5u+-Fl0||)0T+ves9e}Tn#J?e!=Xk_!GO(j z0*1KyD4uL-zLKYVYu2FkZUIcHUac8~-2VR->IzdeMo*R~cwH^aDs(~Td&ur6Jt4ub z%S$XT&%e65w-}LJr%QWv*0VK?x+)-A_bDKUA%P)_-)l4H6G<8q3dtuO&33P_?q#U~ zx?`q&ag6);pWyYQjMGMaS^~?WTHNrbNF;suAMWzKpAL0q8d~Qou-h^78!1bEhs7DC0xmE3h^>sa)a=dA!DzQ7anj;(La!#3DQHMf zn%7#mrRd-g%xq|#%7D*mo9@{41#WOKjDW!J_5`4Nn_C?WyF!twdb)|v?7=ucc?Ch0`o#Bn1J_Ofjatlp*(8X{7Vd^ zUv`8=;5HUWO%8O@BH}T0Lmp3=*1s%lZUo97$=10y>wXxt(Y+!_aE+wUsY8Zom)8tG zYc<-xSB)xO^3&XsU9fC_9%AC{bZ}t57#J#Ky%nUL4J;GNxns1BJo;Z&5XyV7Q9h|T zbY!I3@Hb1p&qHUv2|bSvP4Azr|1S<$A?xVuat#aWdq71P=$0EZrL6%? z+j=s(>sCwVKbUhqb-8wK!N1r2&93dHkAssI99%(wr}x`$$!H=^vc+A0WhDhsPAsU1TT0$zH{ z&z46E4-f8NU&;`o0$ugjURO|yyejA}lgAJ)drhh5!15pfC zu+;G^`LCN&6fWy|{S+kmCxsM<|0H6*g@<2ja)L1+L;&?E&@SEd@@!tPrJ!#*m;@j& zeLz74Epqj@j0^()?4Y0^&lqqfgL>c$7Nc(9It6|&F}(-L`V^Q?u#-_SazVg!6DNQw zE+&S~3{i)o5}j>&WX4-IXmPJH>Iv(Z`UNb!i5`a+l?B9fu3@z9;m>Iy#qE{_8LR`E(Ow*h2eTe+*2e_@158U&c7T^y$rs&>^h27O=)_>@y-5lK}%bW;!p51tyHiMBhgX7?;$*JP|j5l}@#zyQf7D~2d z^G%zNMCjL*fNoqbMxDEZeb>c~+`VHxySd8t7WW!>WG(l9%j@s?LInNsdg_Mvm^1mk zL?ps=TwRCGHmLds9}Zic$I0lmn5j_k0yf*@FaSt8GW+dB2O-HWlA~AH}y1=QkMDO6TX*!Oz=veI_R3I{u!2M|%ii zXJ%)~G!@)ab6ZfZP%{M61}v@Yve`o4;Was(u1dQ;EZ5iP3=T?K)ziyou4b|pBF6Ni zBKZiI%e|MEH%g**8qI7uI_g2sX!CC)31!O@hWV9|@hdyqJ)1XcZ@i(fz}CSj*c829`s!w^zi#=@GF!|OY-~T0gi8+ za-r7hs!7f#dhfUNRv~g?ARh|E0EuY4AZCSb#r%febOsnFHmo;~UGeWue!=5}!v6#J z2pBlzH&rR=vXsMLe+37_OwmZgRg|k&z@4AHP%L$e4b-Is2XFIXt&)qWQeNsP!A2uR z=)*t;bmNqRq=s>p)5qVAmGdb)DYzeT+K#fHTO6_y_R*L1yU$omeTeJ8mt*1yvMtgl zcEH{tp;63ibG@2a9iF#!X_)qT#~F|>>L?cAuL2_t-rpOcfR#EY+UKqx?{VAB4Low=L|GP*!YdL6kDU%57GW%!O0U_yh1A1NTKqw^M6cCz za&3)-*i7n8HGDLsG(PL#&!ptei3xP<$nqb*4Vz72olGj2TX}A8Bu+?BY-3c8R_KsSV)mtg>_H^Rat}*PYjdMR+ubrba!Wm z%*CshE`kH~)KNwTg1mb!kDCIqbU`^S*f=bz+TJP-g|H0d~?L@SvXnuE!O%R`JFP z*W+PZ-}ai@ez`w=l)y(r9|ODvAs<^w7*B^uzQ`Am@Q79ECW-w~vXQOx2&DX#l@;k< ze8uMu{_y30rB4kdg@uFi`wi!2I(>Eq#J#O55a^aZzX>+run6j?N2v2Ac=0%U6PEJR zCO0J|6#9-DeIF-sSa!WQR8&cKb8~Zh_Ac#{TmZ#i+g}X{<=L-Jy{FFctL=@Rlif)) zipFD5dO7ifv;;K41+j4<`J!Yo-zHsoH5N4}XD`(beokmI#yoU%ei4vJ`jtxRj^_s! zZEn2*={C9J{!G>@IQ~cNQvB=TZ>Z<;bHL%a>0Rk61ZCRVn7g%B7?@p%bbvh>GFpz( z(w)(mFlKPLh&-i(1bZM|I@ET!wV&Tc6GyyU^J=PX!ypNb`8PB)8ImEY(Q06QFjcV7 z;;bu9?ne#mg&|BGL=+>Sv#oOt#AL`5=;mZp)g?+lzqc3ekAChmKl+cymA`ND8Y$>2 z;BC11b?lcwWKK@kHhFSb^sW1!5^|dawof)M!n2dTGkPV0tY(gZ_!Ry zE~>GvhS^euKsdK}j0`Kt0FC1^Xtfi_3BW5ORc(E7eeDMd27s#tSW189YUoVNCxe5+ z5N;`GQ~hvU^MJ!1Qbi4nFO* zxX<4yYx%odq4+SUujM6s^)B+T>dnicpFgEstR>4RwOS||`~J1hCNkoetyC$xyTh92 z(d6TsYRt9va{^7KOm5>5YzNIt3x_1-?M{R22&O*AE{#`T2eXWMVF^6ySmGwfdpMO1 z01LNXt}nibfuYho-i7KrVv0DWSqGM)jg1XYWNPu!vnfn8;9dp2n$AzffJ8{l`*oFf zJLjvZ6pDe)6?Ngt36K}WmlmWxx*y{uuWxT-Tp{rO+C(~1vD6Un93a9D~Td@O0Uexox+t4^FD zPGi1#+#|)G6qav@p`|61H4g9G#rJ>f34M&Q@P4s_A2akIEWvDtX^L!!jo@}a{z*OL5$yKevG6fy%NkvN{1z!d=Oi0K_J$Du~#(HQlVjbh%U;c@J1C zM{(>I9W5RGmfJAP95_SUXrX#DQQpv$8FLIP7zvaEw{!DoHXBL|)ZAv&Q$~L&w(99m zN^zroaDwOsiq5D@DZS_;;dXBF;mR5WOZ?>ogI9^29`ij!I zl$9d}6Y5!78937*AN{S`uup!8Ak&B-%&d=YLYXyl737sp?bJ^Ei!}4zs?Iw#TCDxCxy1mT zuz#N6`>EQkH!+oM7uR`Ozdio`=`BFTw_}@6_&= zi~!tZ%2B%VJ*I=K~ z-=f_u9X{5#^I@l^5gH>i-NwF*VtqGhr009y7YN;xz7nhbY_OEArFO`>Q7RQNOdD$K zXjzOYSn`bcsL6#Sa8Ek2F3_%P{#`}i)=Ymx@!`|W@4ex_NPfH?{C?_U78AX(zEo7C zH!0W!$XG~kTW`6mJ&XBGW-E$MbXI;gXGU}l`H~b~Z@LLR?d_ZAY=jf18OVrJ@MOyu zPuR(Gx;U$mfRRi%wBsFJf0gq<;Tfkm2Lu=Ejg^YHNO_<U$2`Q_`DpXwgbLazR0KU}xGQzsp`Qy$ppGsg~j4Wo|#kS=v~z_-*TBFHBj zMuiCeOqv+z=w~~_xCO%7Y*1_R6?s{Pl?7~KUpRmxp!50unVr<53v!d0Y7#TMpeo7V z_6%}SGK%Hhik43Mwk1LlJKG%*d@Ys={b@i68P{;JfQ*d(mcxL-D)N_()N0>cDc+i+ zQ7p>(I6AuFXKc;#clp!P7yR(*6XLbs-(!{5#Cm&XLZRUbNx3=0Z&%xeKhGf0wYehk z!lsilx8(I-$UpwMs{ZqiiuhAbMq>Zult9vz-`F71sQk!g;>$K~N!;3nwjAdtPJwl_ zs32*E215`qv#|idwbQkZKQUMMczE^Jvxno68rq(ZH+D)&@gpbt0CJJdVkFY$eI17S zzC1tQ3A|##2gTaTYNO;|%GJu@))rVH(a}muC-|>W*}j9)lLA85+33G_5i-`f;PgTx zi-Ly6N2-H~Rgw5`fBy#mV}Zx3k(Ts@ zM4$8TEGXq{;?<6me+O-Dw@%Acn%>@vKVMdI1bu9+%>~@%jJJ8^3~F}bw@<%Fkv7%X zWgmSn)IuplAd$5HNk}EA-(;)yr1|esM}VxSe-R&lmmLokCL9S48J6*;Yb!j*pO}cw zCN|#3=XuDz`L`Us#mJcG@K6FZx>I}G^z+Lq_sidTiy%~i1{Mr;A*enc582n3Yn4Ph zyk!PX17o<$mQ0U(aMGno(Tj?TOf4(`*KVdCT;cn^>NmS~VTFW; zZ>>%_@?|0by8iXqStq3*ln&b*aM?dS`TF=g0^njH2S|MP#h_qh{|dqb##}ZZ4$uR) zS$+yYLU6&#CEda-UR6-80Nn&SioQNk3cqqX7$lgmMCi5q^3YiWJ{C~Z%-5g9?020bn>Dk-E!$YO_dK4Fdj93HY#b8H5Tv%Nl zmj-8wyx>%o3z0zFIo9D{D z>$!z-S^mUJBGZ=X!=B>&z6h)j-S2ef9kEuML^fPl++%6EQz$T%F6yinY=1>q9qD9~ z_g<9Y3H}?McM5I>HPz2H?9n5YcN|;w)vb!mnBI*i^&5E^&AcxSX(Cu<%IO(ujJz>X z%H?y!DR&OAVa+;t)lv3D(4S5LtEtx>c2!FS{w*>t0f9GIO##UlOHulC_^owxTwK7} zIu!3)9atIBB7~j5a^N69c7$oi^)D%vhwy1PR?p%6-46|p?yVjEz$)wu$ghcTXMX?Gq zojPDSK#)VsBJ7n5Pz^WGGunpogog~pARz&t88v=_v{?qsx}ME$ZxAizaGz-4!zCRj z!o3A>s)MfKa3@6H@cuWgu!*!`^xJ{p)5L@&>zo5s6P^4D)DmQa1@LXRV3fyFq=BN5 z@?{{%=u|fP>Pa{EriDj=EwGfqbp7(48xAJ2H!e+j5Gh^!_Oiu}_^5^DBXI+{ zNO;)AzJsJ>_CyZh+3EVN^E!FXhh$C}ytLTpXDwa91@fcSa{|sO@1YRJf2}MPC11YG z{`^T|b_2vsPA?ySrV*L-S#+x?O+pnEm&1N5QEjsXYqILHFnAzwkUVY6jefhKA~v4CDaS zc$Bg6ahNtzLns8_ew+JU4NpDd`+?!gdttIPRLK^%jc!2`JSwDfOie^&q-1{K1h$&aSlHGQ zM_uOW`!7fY_1(U>EVg}+YKX0rtwM6ZyLiLS!!DvS`h)MW&cPC^`H`z&V)+vi2l;Tx z7YLWk^<<`(s4;}Ni6mNoc^SQ{+tt`AJKEPZd~1rve?BT8;QB5Pb)Eq?pGTG-?Q768 z^SNk&rORjSR1h?Ana^u^M_8g>B29^QpFn?|`r;R?gYh1Gy}h!|T0nliu+JYLopb9y zH?id^G1dshUXLI^eXQn+l3oTzND7{*gqLe<8r<2D@DPb>)@1s4$$`GXiMz!Me|XjK zu&wA@jgHKE+UzxNN8gR^+|&I5!B679&y$S{0k8-?eG znJ*Rzz?mQD(==1^*OB0$t*xrE3k(!mGq(>1qzrb2rFCpk( zrSt>>a3ahub030CDmBj-HM4|2^Yf!C*E>me>^oXtP1JM_^Z-=hadi#}eu`@MO^bnw zeKX&In)x+g`JI6C0?U_%j@@;;3$6s#V%kvbYNJ0pr60cClsM@}QEy}=97K>tcWL@} z{Fs_m?$lRJ=`W4>f@Kn>>k94My-TVz7W7@--9bV$5a z?ioweMaZwSzy==`9j&CS@cH}D&>koYy_BINNVX-kAt);e{!oNda;}4{VenAdH!!=4 zyRcQ)5j!+Kk$|0_No$>D?`B6YGW*c)6=b!wGYnwzo#?U>Lj_VB(hT4| zR`6KERceHkB@+92)s8Or+C-Yn;E&?MsNj#Bft**-!Ga?^>kY&w4N4r4ZvLkk2Kn9l zL!ZntJjIpciS+Xu@}oOsr^OZAJ!?Gf7k!TWG1)1~{8;HTqPjBaBk%&A*Ib5%vZd2| z@$j%!72aul2pAcbY4`Ya5iG*#^%jy}$-vJ%%U1N&?eHSlD&vP$tl{h@7%i=b+*m3c zEr-Mnr*;#f#erup>J%lLx1ps-G9Q0iE2*8@`PAF4Kjp3(ntYtC56>!nSJGJ7&MCLN zI6hT#dt)`;&G(QrqM`bi^K+`YX5+Z<7@U-5AoPMs3QRdfoOQx&2q3U9u&}^7i^+o! zPlL9kUvG3%6{RH^B@PSZrV$Y^pX1T1Vynk{szG9LynSDxRCWrvybR~UY#Vm&Qpquq zmi9N#RYANP_O(oJ`tnrfzI&at*qknI9uXb$5_!bziqP?cs?J3R4!=qvIp)P5&YfPN zmru)xh?p&eT&RNGaH2o2dqzaOeTqbaG9P!la)j2GD8`fqd7J~mc zA*}DOW}vb?7saB9|D35T<(aLZt!kQNbYBJk@V?rtM`+_~>Y_Z@yFv$mnDVt1sX}6? zQ(%XaQWsP|KvLLMMm3A2Nu1nZmeH_Y7RzvsTQFE+0TZ7(Fw#0n zhPg)q=dq*G8Fk%=3`2sy`}?4RR%BxSxYcuEnf(EtB|rN7?3^TjhTylAiZpr_DFMEY zM(MaDxIR+6=;&1SQl~C>-t9%F$vxC>gKJYWlg*yh4K@yIQ2wc7mQCp>#4CIM+OOvp z4~U6?@Oz>5>(xpymAiO>`m-@%x{IDoRf_`dMU8!O`DmlV9o<&1b!oOR4 zHa5ZWU%i|ugqd6N)k|ioWvO_0FHS8Svk}Zc=D)ly)$_~WEiT{d3$ZhB&ZCWN_G zuRfoPc{=qd47_NS+0CVlZGnuU)`IndA{;cZ0@VN@_6?J>s{hqql*Ge};0#K`lQz9- zZ54cB_WgF3k}IKUfl{e6YO$7wi;yW`LhI)sfF0!LnlI||Ikd1u3^v-S+Q|gs9=P0o zlW$}+c-F}^*IGKWJjl*2{)tfm_wH3SVHo-{Tap*!@;Uu{Y<|4b>Yykf;A>Zh%a;2J zx^%wlikjKXrGBJbg$6N?Q!iz7>`b3OJPdsnJJ!Y3g8^UR%vrnR`m5f%Qp`>x@n$0S zA`5C3cE-Fc6Zh}qtc&n^B$;~qAD8A;y#g*l6Jj+@_lw6ipRJ2isI@7^=iQDFpGov z0ciMe?+WzD`jEn=Y$r^DuM0c?Mhg}Ly;XJZUJ6i3Ywu(tBQpqQV^lh0X3eM0uCDTJ z3sCg+E;Z(5O*mm1XW)MO=6HDy#~hyt6Tfm71|*yEx{rSzI>f5>8=sUNgewgvk24qB zjafeJY5zjoDDc*GpDO>eP@vxFhOhzx2+kch5wTsPz2LJh+0d$s_74whEG@mEIwce0 zb-T#NNE6j)>Yx}wcoZu4CrP^9*G?1MT+IAUDNfkkijef3?^NIes@L&ckazp{9K{3< zm5d2S3(Jo%O!|F>D?+VV4auWg-262Bdd7u0aYJ>)GAAPWuZ*upU$uoGLase;osNio zaW^eNpBr_PGTbT&(HBNJUEF_zUExE!^+HN$qESd=|Ve=NT3=gNt-?PF-28 zKkL;sW5o|n)LbupU97!>&bQWP6c?u;B9z^6phOdi$=;U1?J|F-ZU7s#dkj6+*yH9Db{ta?Xzi@o)EeTiOCt5XkT7lm_KQKtkr}%MOr%q zh3mADO-)T8k;*svha5B7&vuutfGb-qD)4NCUhS)bYw}2-0P{_-SSYw`ZoBE=iyc|O zgK|{F__;4jK$&!dmD_C{f}inEgwlnSJ@{9<3qXZq29R;-CFDfD0sB8ktYnOW#WS7< zVz42V@`$cl4IMPn{&n1dO#X?mJuS7kij?eM8i@I~7Z`C=PQnK9Hm_>>79Ii8CBM;6 zN2s&g**9}s8HIuYM6WnU1Top!zBRfF#Ap_l>F<;Y_4)l~jIcs356MHAnq91TNICp>k41)=XDf*Lh(qyDiPHOSH(TlD+klR4S^$;AY=; zsCsKo(C#33biHbefg8ocLdZN?shvkno;0!V>EP(dLSN`?2eo0ql%=#5!iIz7InRA| z7ia&+Qr72gw$NDOV(B; z#fOo>?3mqY1)aeX`TbM79WYB#TtKgJ$#ft|Xbw)*NDTMI+MkK50THEiG>a(&kCQE| z)0~@%3flT`qo*rB|0e()wrV826FLb3-#9!-BACd>6p^`1$<%U`8LL=+K(h1jmSv_( z{ZJf5|R&{(&ai>?9kpGscRb>V*DNUt>{X|8T6_p;!)sdXqn0khAvZ4dO^7o z;J1KKwI0NRcN=d9`U+O2%?)!{pJ5paNM59+rP(iV(>weF)xx}Bfq{X)y#l#Svp+S+ z(8L7ZU?dDd{&R>k8PiH2Ta3zDn#e41V1#Ls#E09V85*0=Ko{Zs%vs_94AZ(IJtuYsqyqDXr#UmsdSFy#7{tjpvh1FKen` zb#UOGhuCbdiR!zs$U`I*9#$roaZiJz8RZNe!?fzc4AWj=AxNE=o*}(lg2JB;q$E+#-$)yhu&|)5joF-$VUSikN?;a$ z?D+Aki7Rjc@xY^5lJM9=6_#@?ZRbd6X>dp_BM-n>ze7R1&Xqum-|JUuPszx@IfK9Qmk09GT z`ejiS5tE#yN1dz?$na>;0>iTAauKFREcRY(p(CkGjt1={@kB5U#_Go;Chzh8Y_=^mFGdpcjdr zg9@Mdx91UFZR!N><-;5399f%-uTo-#QoE>Mb?Do?3JPN|VjLZZ6>BHr7p7Z>NJ{(YV4jXl)Q83)ddOb95R%{05r~33d1O+c>x+s_HkGUrAPyZ zoQx_;?ORKeBjW&Y?0{OcWRL<{D77yPDCW337=JuD!STi8t*tP-!FoZa5c1g*elwWB zY)Tpt92sJ8iQy;4rH0;XKk2Hw2LsZ$O1~572Qu+CJGtGLo_7y9ZN(Hz8L@wVa2nF) z_ovc7BltC#W+;F`LxVeSXki|ltnaauJIH`|`p4oq^Xnk8<40FTnAF<;^fknSSuubc z51SC@C^3#aY4k?tb%Q>Zx<)G}j}$TT3HCiG^$~T`cA1hCmDd1vafb7i*f%l~`8wF} zb*v8>1!?9biUR^HqC(Qj*47fsb0eP3M`&bh+UwED9`-QxCT8T3xAwn`>S6y88*`Y- z8W_^S5f&0=+q5t8mCw;FUBuAbcG52vRub> zszsPN5<sTgrB*BptdhK(WtpOgzI!zVLC3H(k+U&p1r!zD^J6mnqkjK!kT z50RkZE0x2(%b?mDjPcQaZ9HUx=HwJ(Hp2+8HcN;&fWEVqfH@VbTbv&kRc`!Arn7hc zXT#`KXUe)G^Loqs~CE5r|qjctoda8d99BK=A15AWuF89XHNxb!P;Mt=(l{OtP;#)}z2 zTK;-BDC6u5^^uSF!liMcS@2t5yi}IiN0TVL!At1J{A-wejEsSje>clo;T+uDbpS4L zB>sZJq{H;uNSsq`mT``V&UJRY8l?6<6p~#&T0=k3MNh}9f9#X^1JejynoanXY+<83 ztju<1HXdH9`;VbZY`f!wjp|IbfcmW1`IqleM^7KD z1kvvO_Vy*fH6;7=O8!WNZ#Rg9J@5U@aA$z38-0N#C7#7jR!8$Py8@5Sm?shvXFNLN z`BIdl#5ba-N~=t4!PHR498PxQ)az*J<=OFRy>0KbPVqLrlo@%B-yF_MgW7 z1wGULN4bXbTXUQq+~as%_$IT>JA4Yig;%VLj*5yhW2@v+SIjw2$fwJkZFZ@uVD1=I z{^E5E=@I6qqkG@f;&sC9F7u?e9#R2OiXc~IJv=o{9Ej_3-@b2S9wvDddwDz-5^CF? zV=opnUszb5pO24k0@4>ST7xeY7D^NkNz%w}oD4NaOnGT36&6yp4wDQDZJ0K&JrRip zW~MT;eDbn7-9SBDi~Pxpvb#T0D8xQFx!`EBK0L83HCmz(g)?*Yj~x%LK2viP?*cW+ zd)#Vm7sS2neF+P9R-=0B@$m2fW>Q&Ucc5Oao2*o%peWX@(@P6(XC6M|#H+AowaMyz zv;4$g7R*;wG6m!;>tGSp3I@7y5Rb~NBEb0EUZAy2U-8-r&qGW$n5;Sx7c=fQLni2& z&*KEM?t8l7_s{h!3qz7uRZ8-kH@Zz%5XxMyoBS%ajpJ224)P<%DnxJHC6PzX8Y2AD z1d{cyvQ9Y!E(|&-IWxP+aNM@)g}g38vyMAC?BFn5>-5+K%N`94O?i1aIyyQd-ZrcOUV#8JKDtwc@xg^gh?)HyQ8Aw zDIP|jQ@;_-_xintx8Rn~^(W4g1G+RlWnNkn<18yqT?KTPA|T!fG{r1l|D_FoufK494LdQzk-|l$^r@ z_Evg0y@yyI75fX28bkcf)ILW{>@hJ^{fWG%%t8h3L+*mufeakbLwI$e;u)PC*LDoE)0jthnPj*e9Trol|; zSG9*%9{lu2>h^*bhjq{U?KG?C8-(FPt`LR~*y}LgjeUqjTRSGDpnmZAq6`*^dB8mn z9TCjh^_}}L6H*Ps4|cPg>CgLZ#j=vd^IL82^Umt6zXY}Wp8k;Uw~?aAFU+b5bG5?t z+AB;C%g!$_r>4&6G({A8|1;$oMv>@m_;vz~SE=~-zv7vb4H0ne<|y!=C$FWHrETIe z#;kGfCSIw-Jkn_39Ck6mN|%)fZ%85(eD4nI>l|a9rHe)&Cp9*vnmh3Ryfj^^?Ap-K zuwy8S=4!CNlP zGL?6vIa}LD;}j9uU!iEhA3i0f`^kU%JACUpajQy+9nX^%lg5M0T9;qSU}t>sA3#IY zn|2W#`U3KctB&EO;{4`@j-2`_XIy-x7ahOX6NN|6BLB;N{f|a7YOn9@s!!7idJM{c z0I+tt*&}N!=z3}vgL#skoHM*JaM0yzA9yx>BXmQ8wF?TK`K;y@7(}Wi5BuNKsTizv zn^{`@xT;EVTxR9+me=Z6JilS)O3|&H&?$|VP&E}5OmHfrDSMIYp_uBIDo$wU{$3pn zs2NadIgliho0|(NlS#w}$p|Dvg&Y?d7B?l$9PDIh!S3A)P!`~yFVm{=@0or053gwr z2dcAHH+DX}atl9k?-BcHEEh=B08lK3)62AS#-ZJ86J&*7am0D;d^x1KG))<1pat zKB+_Zw7Frc=)9_#bsp~+eTS^frs4Xz7-Kr*cR2T2{=F^0+{9im{-5d%0j7k0_*-Z~ zaqXstbB)@)zfsJn@(0jaXbVW#ubD|)ZzIZJs;=aKhMtpBoLpl zZa&9`62VoC=)o1k&+9kt3ZQ7NDxI{c)!>ExsbyQL&}UchM{iu;B^@43#Sw!bS$2j4EBi%fz@DS>mSN0;!-eq-zPG>YT+0})L=xW028p6b$)+gg(o40;(=va zI;Nr?Pr(?z1>@4%w?C6bgF>}S3`$mrq6J8SCBZfBQOChpQen%-nK83~5V)AAf zF_ln>;pID1HJr~FS_^@)PK63*U5V6Q|H#N&KE7L^9AuXs>a36^r(obPywR7Cm-jm@ zTWS;itMH0)jKJr-&ZhO?nZI}k(?(=I!HO%kC_{M}dcasZu!(xX1ZT3LG+lBD+co5*|0_8X&^ z?_u2V_3nO0b)jheToD?L>j=G(x}EH{95tacOZHTPXXuiER6=yJ7;W*HkUcy+2BqoN z_p$CE_V)JokB@A|?TLp<3gofE1zD|Jl9QL}miv==_H*VH)729{$#~vL#0@k%6IiyO ziWUwLRMO8FD75lk6ohB9fcx0uD1BkM4{G9D9S98mz|kM7o8$J5KI7DEWx{+|^io$+ z`O@Cxv|K}4JR|OFf7a0$_lJap^Q`s*-7nFY>90SJZvM_SxWuq|G`USUV*WnSZIV_R z^||^MoAlv2@>iGR;@F%FgL8YrgD zuw_hCooR~CL=Lh5sL7emN{U*AfeP~sJjWHD2p;Gp$pA6E`}<4Z%q-9FRcLf=BMHj; ziF8s^_e(OWchKuk+#vb4P4f$UQky0A8Nja$Efr45dK09kcDvNo2=sh2kWoAZ znH)33I~RH83{FLMv~dD6`euCiaNnuOOVmqAx`=7A!t}4_i0_ue7rgA$pxCJLzfw~3 z%+g#;*gc>B>{%wrmi5)L_cm&Y{zkEz@Xc=09HRD<+}cseGu6E5MY)8SlJv-^ge*EK zpT~QVR>b!HaBP0eap}wG+uZ1Y7f!N=$E1KqhB8$oayM(|zyrmP-nZs(JlLZF$B%pF zoV~ie@2o~QzNk$>o8y*BwElyWw>Ll)5Dr*Nr9t$=-34KXQlDGjDQE|W`~B;u;k?+n zqW0_l`BP|}=6h3d#`C3K9Io=Au=|GyoN<&UO?U*@OjBjp{BgV%6kRN-QmjK?fD|0g zf*2UN@@=P~xB_=;rq7+ietDENLmFJ)c2P0xrt*2MN3kpegU^VC)_`vL{$h8o6sEs~ z0VOITXdzNspv`I|SxX%xS^Nj>-`4=R17Q12|4FbY!PtGeRJTI^f$MO&@jofP`!*nZ zLqYYEH-qUuNYIwx_^sISA03s3d!Q`O1bcV{k-b3#xJRveSdQpMn}fZ*Na!t*xJa-C z;Vf&@F6=OTQDol(_XzE`!vys<)W(!b(Id2BU^Zhj360+oAM8QJyvP~pG+`t3fBe3R z%QeL-ZT%E`n&Z|>IV>^ei?Kv$VxS?h2-(u{(eKDVHS?bY);GkPI9dYI)pif`p!f5T z(hPab@8;C&;{yx)o9E{z4pvS=L}lN@T_Z_(S6ihU1nc7?EODp>@#XB7o0y*!(m32T zHKw2GoVKed`=kF38KV+;|H+MOxfmE}%!p;&tH*hp4MoKN)n8h)=EEg)?yHkrDG4ld zG2?!1oVaVOJm)LLk13|c#c|l;8AM(kRaNxP`Za>j?k0c{dAK@YSOdEh@Rn=A;1~l_ zVdP+EpGtCa^5GneBT(`MoNair;$cgAXQGxP@+{PCEgsHUGAjzK!$_oqMFVCR1{)9& z*;%ffW3HF1#__DUAdDB8$Pe)50Cmb?%dih>2KV1Y^ySh(9J%HIBlPZM1x{Q(? zG;S%&Q?K>-6yj-jsm&heaLzNfwYDl}F@XSL3&~amU3vW!f0TbHvAY)oU9lb&7k~D+ zsdqQN%5H3XZLQE9nQYe!Cz7t7O&uTbItHeziFW&;Ub8L=ln{nI<#)QA#RW>DH>Fp; z(}?(Z@);DAo&2KPI7VOlY&budg3?PY0h#ThtGIe?+SAcZU8%j-C{YSmt3rf>qot#x zio$$Y8l7V0vykT*G+-i8I8UG!_1AD_IRv}TJ)+f6M1Ln02M1P^qGQLTHptTN^3CFi z^1g9|Kk4iCKGFhgRV*huDc|#rC9|zwz+Q8JVjS}PZxly!`w~RWEScOE`53a5J6H2U&S7MbGojfh(+a z=$WBNKEp6Agq?%aRTKWucWbsO)>YC&{C$~0IegQcH~-H7v>5KHWFwsV(aCs`?trJ} ziD*PA%{0-y@Tp(~{wHpNjfY^fP=4X0^o42XQumX&D{ulo@w@*f%}CneYeq7Gcus_w zrSV(M$z)^L{@FKDU$Z2ES5z+=%XR4WJN7IrnN@9P%tqOZ|N|mrKF|z@@^OB=BOSmQV|7E2M8_mK+5fhZZ2GD zF06epDsj!EYj7qC10%~C94GcY3-j0stfl0$`%!H@SZ(I#nIPmlj3kB06zM3O+#Q+x zgiK`W@p&Eo=+EcUJD(XHW@b9ayw39!cNn$8FTWAME-Rrf)SALQTNCI`)jZbApV<_p zi?QG~FQfYJ&cJs)*t_E{Yob; zK)t*=b3Zw18zsAdOmlTB@{w>Y^S#DxqeXiaDqR!6SXE92``Q+11ZYp{Qh-+^!nfA8 zHo9pQK#dYCCIHPZ^zQdnKw?V#2H7THGCt=4l5UvzsOd$JjQdIrp$p{x;Oems@c|h)7)1j;|6SEAi-vCQr9iYEM@r0BvcDlh)-PUyX=y`>Yo<%N3>hhpE)HK_U9|q z?OuDl{5V~@aLddvYhqq!hF)i?Z(b&ikVJ5IX@;`oJgE+;&|pGh?WUA-FX8ij;28|zbd;u%L)5sh&=VYJSNYABK*SI z5~YZ$jJJ(~wB0|}m?<{tdZc59A^G|T1W&Z`3eT4T^zt&ELB-<-^@5aUe(mS;S}(W1 z8Fv(Lo37%jU0oQ4>lLe7%}+1SnVLkn9Dn3@tg7GtHQ z=MVEE&~R#H8s1((xR^#Oe{>lV~v&i9Ha4b>dS*B3Z^G`~_z@h0YIWHhuGy@gdoGRDq+ zF?-EGzjs=dYh*$J8b;7^!dO^dC#jofskdDmlRjL_L?9FM9zP2BYJr3ww}VQT99;Xq zC?g*dK`%IP+r?~A5ZxGxRFY4Bt&Ek8Hc9RrVE&9AdOA<^=FyO##nC*PbO>sksM~w2 zW1mladf1Jz5gPt9iUu7zMAa19FxBXL^fTN29s1I>*O_FghESWEng?awM0Q*iI$DD1 z_qI2DSKPK{)KRJbbTe%9HDZ%5yJWdiihnG=y?Q?sp;QskTwtn^YZ~^lG=6$@Fr&Pl zw;&IrMO*R711m2IYvH4yms}hCp*|EEoC^^ip7;5dq?MIbFrxrHr%;pi7!F1Zci^@C z&LvO41&W3vLCHpSbv0PYatjJ(ip6^!7Ru-dW3%o~R=I((@sK}kiG<(vbK?1>`^gID zM-M=qf>Q&ehaB(i`5ewt)ffMw-y513h(aaQ($@AE&iZBm%8K|3k{UVuL1zjmJ_ru( z23p{q^oml;wSVkHMEN4ZPsNSptGoBqq#2R?A4g`?j&#@u7cj(C)E@o0N>_;ed+E&> zQVR+l%zN~xI{cS5(~J5g_^jH^rDOEXg9+j|(%)4ct^Z{GRA)uUsV@J%wByq0f@n{@e{>)CUJX=n6^UAsfS zc%atutO~@Ci9iB!4xz6=eU;Om97&HBpkw}Dtv2C?tx z=t#oh=TA#!cmObg_bx1fq}*GeLJfZamUxMb3}W>(HyKqk%|RA$oPGmUG!Iv@qKW{p z?E;)IYBV1r4aH3=Kd6K4R1H5@`VM~R`*)blEYx>f&P0sk3Hp^P0fbMlFF{*wJb_`T z;R&oAo{iw%3Hv`R`<>&p8!7nia+lQjS!=8qjl9=h~ zQc&i{u?_uxgj3&1z9k==Iwetg5yUE5EIqR1y+oVT)X$-J{NrVtxPV5z;4-|i zOos916^l^cAie-kBl}1piV+l&$%*!79-YQQJy^Bnj*ES^}F*96Y=E z!@^BgYM)IiTxH|W>Cj403|)X6Dml^f(4GVv6c~m6JFDrB3}<=VR8$h<;*ec8&Hxw& z*a6vmRXI6?LxxU4e}yB!-=4rCMM=#Ly)PLKsPoUICYcsAZYnu(rDTaK}4n9tChFGC@x`aoV4xd7vf`^Z;F6T>(V| zXPlp-w)O&;*CrCG7WQz$xeS2@6>u9V>V(W!c@p3;gh6PNj=^|2FSU1~7I}N#Ku1si zzef?CP}piX5sZc~&~CtesV`{D+tTIvX&-+zS^U)LCgNG?B*riuBG z5a4;1NDn7XvWUN0IRAn|66p>N!bos#*n9VG10n7#26YmV#9%DX44bcULgcjF+Ctm52=}$zC+R8KMZ$YA$%!!@6AOPx1=0VC6lv7BWgtRp5 zqda*Eq72e!w2vq%XpF|nP{^QA2tHJk0`9BCP`I?U17=nLP`Dc#{{l8QiCZvnMrOkX zuK|w~1FldT5P?V$kdj_}M*biQ0*f|!P)!mPzg53{)vNh~goLD^tn38prh&Gs^lRz@ zDG%*DNOJzw1XM!6nbNn*4_Xhr{eBNwX@$VJGmJ*ST7sJ5<#KsUtRpb=xvzkZrawz{ zy+L;kZ@x2QMaP1=#t0FOGca_Eh>C(SIB_`ma!2wGENeO3cQU?cMb8-?|MTUgB8=v)1S>)RFOsf|RA5^4Ff_{D=1 zt$@$N|Mf5X!-0~4Y!x2T_oCOF{7cbYc_v?Bhzwup`8nAIVZKWQ^t!< zHi(yL2-7M|>C|kcF(%WE!@+XDb$r!ATJuu}OO@0|ls^$GRyfi93KS`D03E|$Gy#sT zOaurAN&O)NG%|$Md;B^rc>`5Nt-U?F*>66YuxPGR`Sq*+8f=>c$sw-hClsacD=VNz zdhT#RxLK_mY$?y5Co5bocixr22G(}RTia4;v5(1(165wdLMjG6QlkWsCGxrLSnCuu zH#xa1c-r&4l|5w`-Zy=!3#&4%*sVQ3m=h3b=8Q&nRC|4Mukr2emLRJBRKMPsh>fM= z?d5}U0C7iywl!Lv_w~PuwLK`Y0h1wBPMW$FB#H1?Z0uy^FpB6Xd||2mtB1j_gYR*+ zVq^}OB$fs40%I(Xx!QWEr&Jg27QT`-1X}E=67Cp zHV)04=hor?A@VD^Z1InuJ|`p_5G!DQo84|*Rqm3#89~a7>mnHO5Z}kW^kiR%3IYVu zu|B&bF(HdF<{s{4GrH&zo~l7`=-q9ia=>bsfZ?{;jp7~Af&^pc-^f;f zw((8w4cw^rwwUKy>+`e7tnkF|2(tkBJB^bg+?crCuy2ua$pt*5?5U$8dBj5$MDQ@s zr;MVn15f)&&l(S@6`%!2UTu?73I9qAUhq=8vK}w<{8#rXY^$HM_1_IC*3knvUX?f8 zx+B+qEJ|8o5o>Q2@KG1pif}Zm*KSScV-jsSMuRe}BPQOFHW*g=o*wpqEZE&>F>hn1z;#GwlND#F#@}E3Nv^D4qiu>MKVl%k!NY^NkHk!P;?ELnwikl`KuRs8d^~7=0Ya`` zd4GH+6fUB>n~`gw4Gam|S{+xV?i+ zlpen@ObOUFOG+eWQ_E{ji#zT)cu`ccC;>)G`T@WKeGLGhs*TMf2bNm@7G~W^VI41cwArr)o7n0|zX4 zQA&?d9ht*n#O(h4%ldcf8xyQyNFS{c962%#0$%D@Dqd!0`ik@4I^CH}I$YL` zA0c;%C+&of-VXGAM+D3@AF&5yLbSHb*GC#L6a`^F|NNp{>5pR4nNq|78#2#`-&yhx zU;Zx5G-v=b>c20%_|YKBcrlj~rx+@_J<+@l1p5n1

&LEbqHmzvWeR58>$+*dhXi)eC= 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 diff --git a/figures/gather_bench.png b/figures/gather_bench.png deleted file mode 100644 index 5d6528d4e79dfb223154c79a1859cc949db1dae4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100612 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®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

    p`^Qb`+dx_zQmcFyzzbbt|XW0Z?hx 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

    #-i|Le+F|30F%GDeM{4=(@f7;1~6Ww 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - gather-bench - - L1 - - L2 - - L3 - - DRAM - - Single gather - - MD gathers - - Contiguous - - "Random" - - - - - - - - - - - - - - - - - - Application Level - Hardware Level - vgather instructions - - diff --git a/figures/gromacs_mxn_v2.pdf b/figures/gromacs_mxn_v2.pdf deleted file mode 100644 index 474fafdaaf2407f4da46e0159f0c237d7517a41c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14226 zcmdtJby!qg)Ho^~(jXlJ2ujZk-Q7b=sR#oMEestJ(kKmrpfu7*iXdImA_xdbmne;t zlJ^Yi+u!|u_n&*8=MJ1X?6vn^XYI9D?R6Gx+6qcM5MDuiwwled6MO*>802Jbhc6)k z;)5X^t=()uf&fSt9|QvNDcL%>AzXmF1KbUvfUt0~MBqzF;k&xIAmI1$z0x*K)MMHD zb!NxQ3s-77=?$fdq3Uwn+$3aVSLe65`9NrQ3h(qBwx9Ygo-D?%-a6_r!BD4jwr0`n z;^Jb8Cyf`iomswUX8Z9zzJIC5+kV~4)W5~ybS3k`|7@kjaoy>n&LP%7>&M*jjUQi` zmM<>se;hb{+^l?g(L8#AvY6Zv-z=>ahD>|Fh>RQ;*I3kK*68lwQ2j?y;D%-(`&n=POta!-@i1wQvfyw%v zu(c}kNIb;UyX&FhW@J+HWQD#NvCnQqKGf*(YTt-Wge4BHG)dTf?SGPks|JxI;1?98 zq*5P}W_sB$Bh8Y;M23H)#-s>A^vANw9xTOMYRfEL-@@@t*%U!Huz0WgRA!}G5?}R6 zXa}#Q1e}NlK55*OxiYMGPwp}EgmiJZMgHf$MLWEc)nIqelNBh zW&4}vq()(Qw6t%6`}|;?hc|1my>06WsUKiby%PR0+xmomjcRO|!O&vMqbmc_W03m# zQz{YDH)rBNB7ZgKo$P@ONLh8T#SFPpb6e!Y6l#t_2JXWHbhNx;y>WIXf2bje$-;-+ zz+$UTzQ?&-W%<)gRP{UpG*vI1&8X#KgmXd%d|(SP+phRVqTPg@;Zt?^+_P6Q4L;G; z$oKieFvFCI?LQUTgtp9BtU28jq<-DY7OUc zD3A%-cqi*C!93N#OzFRo7Bs=UB8kr2R8`A3dgkSTa52>G#?Cw0&QH~Au^Vi27X0kt zG|EkWk3P%9=k8$92Zq4OqV;>4#^_b8Ra6-o^TCN9;5zkBa9%%~G+%lqCMr@2?dt4t z(R<$^g6kzQ*u&tI4tm<_fnd<^}^59ZXd~eqoYHZ^y_E z-{Y)r#b!i5@LJOd$j)80o7zk={LEwGxtp*?5@Fc!W6j94#GTr{cLnFUNmss@z~iq~L0`au{AhFHRIYs4b#3*n9)~f)fm7&Y)}$5qG+HSG zHIqg=)FbbkLn!3yoLH~Nr22?O8mdn>dDm>6KTE5da&Amcx399m7pC9H(^gk1fFaR5 zC2{DYR&H;=7eLobK zD%1e;HIP{2JS08NcAbP?53OBKlC_z7es-rs=g5#|5*)rb4WtZ6av7z_T$Q>xCr3gV3KjzLb!tv-X3oQG33x{N1>mwqGzoZ8J`(dHP> zIs*8S_Rq`*;DON*qr2QXE!%c8Gv{qqy0k>t;UX&ow3tdt&iC)GKWH`utv6U0B`O5<%iPb|EdXmW;iliWCz=IqJ03IYo@VnW}=5FGc zxVb}-Ii_Y*@m+Eg-mqw0Qf)tI_(})+-l-M&!8$umxPF&cJH;KJvAw0_7)%9}b+|<+ z595jMcuN$MLHv4Vli|g%kNPyf$SJ#=*!j(Yl566Lna}fUtNaXFRlIwK6nA)UQ-mc2 z$+uEKGDto=zkUTnv+yh~w=NPKf>6v3vB*#8S{TD;Hz*66$uR6ObWTnqn7SiGL_L|J zUiJ)2+|4<(d{BZWU%|sVqv(|e%!R`BzVcN{wC8cVA)+bLV9L9bM|V++%ZLs}v7Rfk zge^Y$LFLwAPyA%mn+jIxkEt6Too#5(7edSx&62tK1%hSQcIIV^K^-E`DPqpdNRc|@ z&Mfm+*;ZR+=7=gUSw^_c>OP<8E4V0o0DMVKSDXh4Oh~AfQ!8JmM$YD9b z@oCRW&c7rQv(GTHK%*KY3G`6_9+=4C8p*`tWl5Z=H^j5v3A;oMGgL#?xGhPc(T;pBB+27j~Tp zH(7hYf9|3 zZ%8aH&ECAM>ZHk&=8-8yhwjv~f=g-AJlC!yo!}~nik76`ZPetw(sfUE3&J@Yu)V-N z!sI)a-v4$iZHhI!h^etdy4!^uclUg`aJZ)3er_t)olNC=r#j5hmYF@;^8ED5B< zm{r9TSeOnWWeuM~U(LM}{j7s^`2ohrU=QCXSGT)_^?npuN~*JJ;Lr29=D3LxV^%%x{OwTl`10ohOfOr%pfSR z$`qZEd5*5mL(P9U!(!QPXoj&Zo}uKynt|gAE1h$qfm=bc$!btb%Q~d|~JvhOR+og|4zi^xQ*l-V$ zcIQIe3syB~&{ZB8@Zh*>zwVE!d(n1vefsqcJDjAGln9Oe`2aJ#(#0Ggf>DZ_Ii8Ydrb40|Jf_aWGCZZT9UvQ8;y`?O`(1T;~h?{K_ zZ;)(Fnf?jewk0*vIf^?l)URk6jq?OTiszW4vo!B-r}#N6hbUY*;t0F!?uX!akz2I& z%_#s$x0j6Z3Rd=7zuo zSRGtnt1Mulv+C-|0?2Uhb_Kpw~!VQ?PqqE|v% zR!5;-@!B3+_)?zXg19qJPIFFN142Y=t^3^x$88Q5 znLZr+Y;k#3qRc{l??%=%ck|Xs;a4=71LdZI))$BmRF!T;!yHH5vJEl z@)Zu6(d1P|l^C)LE`nt(UKm|x#04HIsj-iGUN>_I>el`3IFUZwTq0U~BL8}h9j7;+ zBlk#68=zOa8a;Ueb)b4~H!)1aIRU&-(Mk-{Y1s)H(;4sqWYiI{G*WRE;v4@EO; zqzVu3kD1f2%<|VsOLwkW@vwGFhqH|sKQP5;izC0MbN+!yhKhQir{^Llxll2>Sy$@@e|CEJ7MRkQz5Fn-DyV}re>HRE4h zAYc5I9$52;t97PK5OkhT2;}w9O=>tbGd@55^sc;X>)R$2-Snebxf?R-6Ei{zJ+Q`k zTQ=RDPGAeb(+S{t*K6uNE^+ua?Ie4#c;Tf3s8O|^LO?N@pUr$B>JP|ke0id+D*DTzy?$TIX-R{ zlamm3$ctjm(#%8Z%ZJGJ``sVzh-9WKK~N;VPgg`JZDmz5k?Xu!r4`MQtdEa7TLkoR zxOG(jTjb%hffj1FmaxLF*YXBdzWEV$mh~5LpEeTZL?+R{Hg3tDABxL^eS1sSlcE^Z zU&L^0iaO|~CK&8^bD{9N3SMxE02SNPORq{uw!l^4+Qh5MrR zSX4xWj{yNvXZ0U8#_1}#CatS(;Ek3>ZmQlJQMhprGov!%+B-Z}-FJo(&qQS+ESY%t zs?ic??IC!v>%;!7_00Ko1SiSBy-^`^U7lfucVi!gIa5Z8&h_zTV)wY+d!d0>B?Jr~NtC9|Z=jWzd&bg}Sl&G#*OKeWsjg{a7~lHw=(T^xx|wn! z^9AA9^5*n%cR(#uq}mC403`(2;Vkps?LkaD?ttSVgz$0iqLYf6x&5%`J1^-y zOGR?vOwhVs7bHK2B};gvxUn;QNa}c{<_d{;?#|W$joM7nTicijPKa5j|TUcb;%1Tpv z`=EMFV|E#w6!(OY$ zk5v{HI{Rj!jhxSC{46?yR3Ym&I^SV7E`#YKWI+~J?EB1cxpXGSZmT;EJ3h*bB_xNC zT`wG$Ve5sWooM$|qXp94^}NVWDXDL=ra7IYiwO`Kn@M6X-Op61%TUeIvWywQho zF!AFxQsAz!pAuvLhvJH$#=qF$kb7hVAVNnD{2M&HN;qn`R;q71oyO2#$hILuTg~KZ{}8k9y_> zPTv}|dZaEWKP(MlbA0JDi>AjFsjW@t{~XOQsGOppbywQkqDwVclP=o#&eJ)+<^4B; zJx|i_vh5nrEu7bCWX7+3SxU;o@KKQ#{ZP#Q7#TsOY!uz#^5c}wZF4uFF|35eG8-}H zMYSG%BtF2(RHh zw*?<0;vhY6Xp(h4u;WcPb>z>$HlVZBT(+DFv+ij(w8YUK)Ge*}`a(15Fo@Ws3df^Oy8=D5Eqyx{Zk zfK#a|dXsg=ld?CFpYie6@!6WwD+gIlzD9(5vYG(t2PaN-B0>5xE$2yZJ@aG2@R5PV zh?i<20t<#jAJM)jhzd0+#&>9)TRt5SpvP)@J&aVom58hHyJh4zDBK{n|zxmK6hYANck#kx|!1p(4EtvPnTs`ra@vFVk)u<)( z1-?a+`aD{&OTke{IMO+mpbasU*f3EVt!OMKA2G7jMOss~XuXi~H3 zMFIDhy;p-|mWesIF{C3M;Ov6xI-?xmKs006fJHM>=Fb}hr?tOfwHnkZNqUYM6W!p{ zn=?sxfw*L>BX8=}^JKa<|n3mW*6rHfKrBU8Ncq?E1&lwqkpbm5T;gWaCDz>EU#Q#0)Ns;l9jjpgnxc7$_e1&D9XQOA2aAwCS1xiV6yf6ou_b*!H@n z>>PY32&6>%wm%w7QMXh!)rQmhm zNfBE+WBHZ)X!lGy^KC2c1w4^&`!lk~PWcRsn1$ubcOeD;SwX`W8v7a1PFF@}D*a5;%30rAwJ5 zfiu9p8NyWEtfz=c+y=}1BuwT~8=9bsP zwtpJoSuwyK9ba!YpQT0}_~p2)Zdi{*ZVtsKTm}MCPO`AehSQt1ZdFB|E#z|yfYw8UsBYsIZE@3nv z;XZY5s1H^KMZBo3HsX(1*saD9gxtjL&n%>Q1n0BGr@9Q+UOs|dlj7UrMjzCU&MK6pAUl<( z;ZNR~J|;rFz4D|iPyXHsq_q2kUreoE9Dg1;5rf>&T38hM+CmkVkVjROcTU0BIM*t7 zY7=DbH9{WwP#<^`R@i{xuKW6V#*}(%jFg`H@*P0eqWPnkgfVy_t+TNS6ikZm?n!Hy^u-|{BC!G-J8PFRkxtxt=jk%)s_7rE7VWAlvU ztk;x7svHIU?d^FvGJ(Nx32K2>15)000>s)mlvWNnyWj& ziLB`TKC@cXla8Vc(7HnWQ|XyI3TtqCKX1FLN+V|%aNToxF;e~QKrWoeWejO|BUren zP3%DVA5r;eLU~hy6T4RZFcva4{nOSLwR{*O8*Oq;`;pfe9npd^>+sih%pN|8jTvO8 z3;vcE+A)?BN}l*7jr!`>&a(HlZz$wTS@)4Yv-i8j9}U+XmutRb`_HDb4mBp5?|-8c zZ-lyc>;&jp_rf*oH>0mU7UnqiDRsp)LI5x1O!f^Z1=25qRDgWD9%XSDbAECcu!+_+ z_wF~ukI9uW#lVX*KC)ojOBzm@c%qdq)jbOb6`YwQ-agBsIdqj0AX-}{dj4=XWYUVlXOM)v)u{xDDUh1I_iZ>-%q|c`mMsRkG0FBOEP%RT}_*q3RS+#R;f8 zP@W(H6@{P%pql)DlrdZuE+~4rDeJibMGGJa2^0YM@R>t_28d5i1H`B4VG00K%G ze)mCy{^->5K)5)-z5mh+2VZu|%Yq;vJ_|VT{d4BeZ$2X}b325E+vON95s(O~eB### zJ|!ndRLAeP#_3M_%{f^3H<(A74(l)f%tBDBM~4zZMZc8#0G*~ zu2LKBf&kD%e$VC8Kv>$s<(#}gcK{F=Bq$`rD+(})Uj!rs<>wWGLcziylgp{{0A0Xb zR}iZH<7cslvWt^D@-MXheBdSYH~D%187^=~S0w7e7T&+XsvtKPcf{|OJTOWD;bCim z&{dX00e`Vc7vbvU?qY#(1)(-e_bafi%?LE`$^v~=A)j&r{`|& zcF83rV1F+ma(`upFu(M&WZ*aC7qb( ziUOpT?vngz`4jW+SIk<7@lILnB)P1=pN}EtndOx@9LDA|%j@^nosRJst`^w_d!6*> zJ%G_Pw_UA}9yy)Ka8l`JLSDqDLOr|jbqSKX7eSm+`81<<>_%mtn+am%1&yvhHVNfU zu~)rXxm)R$A0hJCA@aNFvS$oM>zgc9jgmf0`G`s7xG(&=X*X!p?rM6D=`tO!wu{%Y zPwC?bzF15alK#(f+z0?W3qK902+ll=qT=D~;{7;)~9@2iVejM-~z>CJL#EY>ok zLK&4L6(syFiN@Uu{@ogIJ%S%4dhr6HR|xkeO%`p;X|NooQTp-6T(6ic|F-qcJj4 z^nwgdi#G!Mu9bg5aC|pi_^LW?x)Mad;o1j#8!q|in-N{qLYSm0_9594^us}#G~bOY zC0i4+>ft(C3C`cJ_Bjp4xkKZfYaY;!gSOhpHlkC>miZ?0-l4zC{=WuLyIr;tx?ntkh3=Fs@?XxgQ_zmK5W4w4xp z$|lzCJMkgG+^3aBWc<_o%EvVslM(qlS^-BStL7MIL&Rv*)Ob;tBD#Ip!K}F?LBrYF zAcf7c*-B%sR0y|(Z%s40`h0Eq72)>TX3xF0#5KHv8WOv!X*JX07_jjC?tBqfEh7#> za{6<|d$`qh;L~`Ijz(uLpY2-mq!U%OOty}~CU?tj3PCIAAmJRIG=J)6s)F{B{1gJ# z1`9Qr8`MgamR<^F~KXP~2d82;XIX`w+}~dSu-3 zl_k&2GdZ0mI@$F2snmD$Q&weuGqlyMJ`(4v-UY+rkO-RXJSaD~>e*7UsHG#h0Ef{Q_Z0)*Vi% z!{oze2jzq_Nb~Cu(7LZ(JnU87_50v;FteVVTUOdSHTH?q(I`bOzhQc+m^7Ilt{qHO z4wmEIcX=tm zR;a)q(Hi7;6o>NoKm9l=P*Om+TDaIE-JD!5?Ia4M3BM0SJ?e(aI;x6XvKAI_M>iW= zS6KxmJvU1pU4*r}1N_gyO7Q!(4&I=fe~beG13|z@j-U7(;MPFE^9Sx}&(EnvuH6GbknjhcK3kcT5x5VqDf ze-6=eL)Tb^2f+`zwAFtNhfv|+Z`=JRb1t9ocLRM1l7qV<9e{CJDL41a`j{AH70dqD4-{bSf5HF1feAo`KmxzxK|l(f^c`(c1-+iiur5PMeqTQDM>wYX#I_X8VTS4L(k2PD zDw!l#?^`lY$YMDo5>{~HZwIwtd8g1!P}59)53w)c@r3nisU5&n-*NSF7YU5=gDa4O ze1+V7u=h80klcNm1M0op2FPC6dv4VM9b`Y>J9UoYTUQc_6!F<;itxAmv+=izyo(fN zCLexykv3q7l{v6H+PHWt6wHd1b(Thk-J!^UQh>rQQJ#;HoBrt#Z5Za6yks(wnUQoMoKvidQ+%RjG$Gj-HF zr>qz-<(GMSrYOAb6gr2a(1Ia46Tn`14v)mBZkamEAXq+~;KMgR!`}U#?8XG2-qGDx zZa@06#Tr1?-0gO9K7VolApD|Mu!KF5or;NN$NOPh&pbMQ|2w&8y@2nqvoi3(*=Um9 zr2mnIAO4HUr!F&#*d?Url}5|Tk%jbBdjew@5^3b#b;ijYp2?ZG?={54FaZeJG4~>5KI6O8Y3AzpDXz_~156OM?T^neCGSi=p~(!cS0}pDT_yR@qQ3|pAH7Kb?ND!es0~v{ z<>DfB?!(iqn%p?q0OTu4tDQjlC3>pYxEL{kxAcRr3T>Ob*|bdffPS=|=DgOUJSLDO zt(eANj`VVNZp}r%;)e*Qw+ZPu%4>-|X3Jwri-V@=PX)>Iy>Ck0cVx#jnb%uYAoiBT zJ6!#Kn_SN1c#W}FDcluGIXM(jEUI2J?;b7|=Ra6x}HYnMHLdZPaWZUM9Pyj=m0sOo6tgqn^D z1ptR`3mlVCE*!|}ATHfDO02b9EDA5434v70GKYZzBe+PM-|r>xs9a+C z8AVtEfenggln1@!zV6RF&0pNoWnSqo#QuAaP{|?JOQhlcl=_@XtOsE#S5;P9O*`M2Hs*x@qI)hIAF<1JYgq)Y=7(w6V2t<#lqg z=J**@$pili1O#j#2_;1(B`{b(6bu$p1THx+SePHUqb>;WHyF4BJcj~zexMBn#{6*y zfG9Xr1Q-Kc!UDf80EWWBFAMYmxKWqT|Ars+Y+#%)fKUi{C{*+^$H#X`rmd5s0xBnX zQ$Y+0MkT`lLLhoH~881p|u+q2%))Faa>2m4An!sQo8QgkJ<8 z^>5=K5Qy+U@j>{(B0wzuw{c(*5kWwR{tgor6!{l@qJl#Inky;{{^wi>SP3jC(f|GoDDe3gOc46dbwHqkK$QQ_xgz}kjc6YhVSnApOAW(abGE}-wPHrIR&-^B;jWTY4+d-)zO1NCz;4W^LQUc)@ P5){Q}V^h>p!vDVjL$B_5 diff --git a/figures/gromacs_mxn_v2.png b/figures/gromacs_mxn_v2.png deleted file mode 100644 index 1733fd70b5260231cce6e55dcbf664668c2644c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131612 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

    Em6gKtj zp?kxOE-NZ(lk^)GoFHGdJIa&Sr$8DX>EZLxu|{eX_5f|2eAg7x!;2=j1UHnvZ>zi9 zTD^xv;KwQQg!NgQZbK++(~vh17@N51x7OwX5lP~Pd*0;UVy?gGp5<<-ovC@Jh_AwW zOGazGPxM7%4x#UNWtDRc9qEj_BU@XS&gmXNTrJ?ObR>LDm(Q-LgbEzV<`tz8fUbNq;BX$sp2j1gwugb(~V2J?%d5iNNvgfVj-dN*b%`XW@Z~!8ceM?xyRl|4i_B| z<)u_*4UK-jd;j9EOxTy`f}biJmVEr6KwA5wois}buxy3@hE*8p-(3%=^2>}6Q}9I~ zNb>Qd9LU0HQMKWP-`BQXI1BTq>A(riO%nm0&!2)xe{;{EgPdS9FAag6 z{j~S#B~W2VT;YvN$#ppog%;hA!GXlkl=1NXhHtDO4;ct!xn7|`A4tyhD6wm^3W0!z58Q(f};v) zzEPq@WEqp)Snd7^zqfe<(v1_{@!l`+LNRO-H5L?*KdpgZD+kNVL7_O-jLoQbIO^ zHIpq|?CxynqB=YKcqNq*6swHSpR2%c`^u3XRv*peB}NmFbO3@t)7A($DlC3#xGFAm zrv@TaU>AEF@QXaM4Ix)*eSnK|#D<0Rc6FWqe5etG31c zMNUkN`yHK-mY^fjI(Kv&ItF^URtq$Fb2m@X%hO#zd=5cMUsSY)d298x*5At2!KwsA z85xEK+us8sUySdM@bOtrXl|fjdusedj%RU$ZM(3@7q%1?+tc&)- zwbs}BNB#&11>>QSpMDGN&CA6rql=kC00Y967Rmcz;>+tD%_vtFlxPmC<@}g{o>+7> z<#p;0Zm^OX!b(|K6&pOHNKC=4<@D+rd-`I@fP91n>fq ze_;ja|9=hMW*+O$3Q0}9h4Ko}3$j@oDhhk1vOon4I3I7>RQ0`oYocdtT{N z3%1-J+P>`%PDGz2fiOL$#SM88LeH*FYH&%d;nzWc93LuPt+!ZPXA0U{_0OxwG6!1l(rec~^~c8~LDY(pDt zebH#v+Ms6_6u1>uDku$%+YIHsm`745N>r|*`Ryn0l$NWmk?e1fiEEd<71-l()*D9< zJdCzTZr1A zdz6#+n;%cc$)VP^TP~$*iKu(d$NErmN(9E$lLpKFKQuMVt~)_aja-;Y{2i8PB=lrArkHr zxHx!QU(9Ik95k~oJm5@$ij$mmak%jw zc%avNE$Cv`TCR5;-k)pT0}_mj1g89}4Lc#g3rg<+o3PDVXi9$US)_6!h}DIrGv|nHcu1ZJm?1kl4keT<>m2Ecd7%0XD#N zCXuWVg2aOfMlLlDnEsTw`kcS&z&n)E{qj%!6Vb_}hx)I8dEeUFXr)w>az!E#dq?@! zd_;R>GR|$jwx*JCdJ0uAsjvaZ&8`!RBAeo>jx|xEjv)K4S2rTecT4&W#IhcK=CicK zUvyKL-`j6;wG;T0OC1M}Pfp-QbY{<|)gOCjVI=YBf{fdKf85*7ePo0y>GiQGpbLGp*T3aES3(|2}%&7gp{Hv;Vl+4hR3$ffL#?kPVn7vm(Sh{T`*IHvhY7I%@OSgK$9Ri$|MtYx zQ0MD%o1442piLlMEUf=pJA^}%8=oQ;4=5MDwVX@ufVy|*_fIM1wtl}Duwe;I!OB5# z_0SRA+|&lJ05)KlwKnR+0EYmXIVe?%BH=uSyz%s+4GdujRmStK23MBJeWvSTZf<+Q zWl3dgrk^o}nj9~zEG*o6T~fOd5SraZRek?#qJGLgjrWWNIx8}@6Vm^&UWuRPwtjuG zz!wB z-_}JG9Ykkk<>N(W1;hme%t!;?-Ni!I-Eo62iL>DVz{MS1G)cuY1khRr_U2?1eMUot zFf_f2UEC{hsX-SVyuQ9dXu@`3`h0eA>kPoAGOrn&ax*um#^8t=a4x z3MOd`O`B3o_)av7N1Pc7bW!bVaIs#dMnz5iI2J^SWCEb9f{acC=p@M2wKvn#Msb35`)~y!?8CM$UbE6KCWK z1v2wTSZ^q!P}vROT+-6Q+NlE%$WLyEEsZbYuRY_LwBuXBgi?~*!mT}!AYOFeSX4B| zqV&r(qnYWi(RGM`z(+Wt3^qWs*y);6BeLS<$MfE4_iT-VVJ0K65p-8eY?5O@nVo(0 z%hn1uJ6pe)nT8t(jagka8+b|0=159gQ$L(qga8bqR`j^Iw05V20WTW;@|u@zc#;r^ zcb{q-Odl2fRdR5ubJ@*USx{$S|6l3)u6o0 zCA5WjjK|_I!d6@qOyju-H>2$PQ;MaCD9<{l2&-;x&=G<;QBZaUkvky4+?JYWFPb3# z8ay`n!p_b!?Ux^c{x(OWh?Ti%9u&u}<(0@21!3H0uAIe&^0!WTaAeRVtIoc4gc8PEui%xf3jg+(3ctRoa9n@c{0d5de6PR>8j$oF~C-|H#==n z^j8iKKf;X)p1n0h<3jc7etsi_qu6pS@kYT1;^U)hHoq(uZ!7qrzuf9!Wzzdqn{^%M zBWv7Ww@s~+nkZNc%6!}}KRRip4FC$_!u@@};yeJ3D81xG2#=cF&HdhTP%7qrGI6uz zUUbl~{HC*M0{NDP+= zzzi1t=5Y@TyQ}${Fr^knV;Nvd=fLzj+d%TU46jZXD+-F%ry`1rg!e|A=%Q9&eQ@s8 zt=stkce1~c$qF{PDuxIS9`whnWT?egqljna_&BEuJ5a+so1EnNgNa(;rM^>9P(4;~ zeqK9ND_8KyFt0$sLxqZVzpIDiL}$gB5* z^#>>ONEn!Bg~g8$9E9FI#VB~5vvv4`vhf7GTe$EKuy&fBW>1=x&J3H62 zld3i+bU&0M)^^aj9f%w@T9J}1Pc{elc6D|%>(9=X!81ImVKucr{5hZZCsl(>a8QGN zNhQJIQ(3%@To@F#foPhCRA1k*d;AO?jNiTx689weg^df&PMynm)N$I3cBR-kJ>H1i%UyRLv66B>Z9Z6AYza9pLR`6_DpZJJ8FlX zzITtH#oj7Vn?Am`v58T3;gHX*z@gATS{A({NQjg#GR(oK$=aCmN+dYWlMfXENp~(b zUd+b1&8dc)Ehi(kJ@xKgG-H#o3P}LJcYKF@D(53yhm~zkXCyc>4iP(-fhs* z=t43xVb8zJkWY1KkJDUC^5z3xgJsoavBG&w_>;l@h}oY02sHLTC%$qi+iytO6BFx8 z5+4o3rKRac3(}DjL4*)$R|{+~Xpwl~w+Vk$`Q+8pzi5l# zXKOYxJdL+UvM*hHD@qpUR6)7!sGaO_P@`yAy!stIAx4F-$Ct~;SoCc?e>?=1aXj#S5&7Y0Gbom=!JgOnG+TZH4QbF*tm)rbDh(Mt@Nl?_} zrbRy*u}%}E^u1IlDj4~HpZ=|*jGvqM?c3*Ew%>-o8XF58d$C|CDS48b1xVkt*)lt) zV9$RIXMWxLp_LB4oP8(@b*9v7JPz=ny2xpgI---GARiuC+^gezuwu>!_VoEQA)cPu zh@A!?2zRFFlU&1;$IXy`4M1sVGfv2uMaVi*fMsWNQGFrw7QMyLZ36VE4GacjEef8l zli}gvLXGV$#oK0{naAI*+-hSiPHG-B-O;*xd+T4LSu}@HBjqJx!06~v?m1UIAHmbM zDFnVKO?hQCg-+sb^NWe?_l6HQmm6U5Nn)Zvm~V)(3JVhp3R@?iek4+^zs&p7{?ntm z*$#(j>ex1l@qoRt277tVnd1X5C0Mjmbmq_SX|FPQC(XJ=SN_&|!qIE}u3o{_{i zeqmvwM64^)tsY8KF)^AiVq)$Kt~WQXmxciO!$&E2ZI_Dx@xz7>aHRqrZ4lmxFtkj+ z>HH|aZfrK%{Jl$?9XcWO(^t`mt*tLF%tUOm<0RR>GpbFUoxIRp^{9PfI1d0D*b{0< z%^Rx1hr>sY0Xj@bzD5JMmM{jxWC0jkORca>k(2x{YdP>Unw9IQfv73~~Y#@RSK6x6`cR8m%p`bW9 zkXMMTQJ+0^yzG;!kMi;*H&-}2F4#i-YhYCx8;kzrAQpyF*biTaN-1BBlyP8ttx0I- z*YCJTNL0DfY%d(UqWk{R10Hi4=1< zyu04Y(Q_RKJ3V(BMMuqRy%r@+<*m1}@~>4JL|+CFzr;mQD{PZsAUr%gRFz_!l5)hM zBRHWa5P!AFoLOJrQ&|7J+LdScxE5;mJ3D(d&C|bmzCkf~Hx3DCs`&;tVWI5WiFd^> z=sq`gzx9a5*zgOgH#2yXhb82lP?(vYzwKJXh=Yq;cgal*WEa)*zuzrRm29SUj(Zdr zd(RY~A7r8_7R|%2w;k5Dq6t7lzYay$i5CI{p{isl1Zg82Q0j1XXSW!9%a~t0>xfr;tOA3;NxbH*?WQp-l+?TAkX{l?H|&9`T2GxCPLp#3i4HO zJ?wj#H6%VeP46zbRdqOJHk8Y$_cUuAet^NW7Wv;7($qV=Ru^}0I14m^qd)0s|@ou*UEKRsB|&+ z2`TWH<;duDCnrsY4RR$Gt9jizV?lYOq zj8sxro!*C6mhbV>e~AF+Ki(rqG8G>L_iT-d+SqNF(t!AJ%Jz#Csn-ob@AcEc3Sz*` z-FaMjP=L%?;2XS0J_1|p+2(>N*03IM;raZKeLd%KX}@-jgqZD^X_8i2y8B(%$Wju# z!ckV2#pP5`Ob=AfGCfh%>o~ELaxzCZu@q~v|NaLe3}mlJlMHJ+U(+f4Cr84^l|Ged8Lp2VLAp#De1q zX+*?Zo%*kY#a8-L`Rc^07k``F=Cf`T5E2v9c%w^G&u&CT>}_9Lyaa-^;Q%V! z9o)OjyZizaRaG7+6xP5uM}Yk{W~S*~Ou>St6Be03}iu_p+LqIQy^eQHwKHbqp8TYCm4poc=|?T=Tkf+32N zkFN>|+{@nERgEGfXJ-r4WoO@Y(&Dz8;P|_*bn;z^7-r`aF-%g#_aYH6&foDqE~xeF zk6Y-Ou2;Ty(D)21-tC+1t-fW4zPkm%2QLU)4lJgVeWRBT-1=$GezMas;` z5U|PCBh^x1_cI4>N(j` za}KFejxe>t?v3~$NR*LfXxNM;{Pgtp?rCH*VCx&->LLNa37osF>h7d#viOQmyf^aZ zF+x^drjjjQM@OI6rw<@u*#+7yko)c@=9xhm7!(vc$o6VKcayTFfAkRv?+Ip4?RX{>@F#>Z_DH>y_ST-tbR ze1PA7nS65cm5|WjZ~W$8VhSjLglF0c0eJ+Vd^kGPfJAHRuj)5rk>0zmgT?J}eY?V% zxwDhPOEaXV8*IL=Tn+fA+0h=}ZMK0N`;c`wl6!Y4G z9%hXW7ZtFIX0C&&!RRB|QB-1L;>wEt{E1*q4zJ~=qkPfdABT=fMMoUE#@;Mvv++}4E2uB}XeN70QI&Dg+h@*=kxs(3>FWV}pOl#P ziTPTI!|yYq_wQq*1oH%0Bz1Lz^mVC164ddcR*=A5Cb3dOTWUz7c+)`4)_4~jBz74l zB%CGDaE4s0KWLVA@u=1`@ulT?tB;%IU>Sx= zlMKxpzvPEIqedn-vV>LYWe7k|UpTwmd?!;wLG#(cAR?!@1ay6 zB=jglUl8%RprGFGuk<*it_ysrF_TUN1TgAYeJDDigov7Xqw7~Ml*`F;_{O>qdh@0( zpN_W=!j)MNb7eWAK#|Lh^`6S~nY+}Rp-W{!ShUR}2?)L+s;;j5MX!qonD8_@tWc9P zFeDIfAf{&#>gX|Fx-Fd)z^*jhBO;C@XBh%#%d4sa$%s|pl&N^AXf^Lo>w|CaKYWm; zTA)Yi2;SffR!q70BGlf?w=HXGQtNsEPSg?G?|(4CxmtnKqIY#HD@yAL5o}}0LMDLi zOeRep1|$5J^cvq>u42yj#bB`>sD&>Sd1$5m4u7qilbh>r#vq@Q#&H-XEi=Ha^=+@b zI?B*pY1a9%DRJj9i%LZEgrMj68m1$Li|eG|ODJ!)inQe+`J(yyBu`06F0T`w*n#_C zRYlAp(pzoclj5z4(luk&-UViKrE2r#VWb79`^;a=syMA0m+9`X=I=|`WFf!j-TR!U zrtkRRjpiTjU30WfX#D-B52&Dky15^jqzBvDLb`t1Zx2O7d_!FKHY5X0JnEQFd4vp@ zf3N;(_-hHLS9R5>T#MPRHv@uYH`B|iPu!+mKS>|*i^6|r`KikC@<`Snjvn4H;3Zc?F`*VR^b#u*Wx+@)3e1AhIZ|;ozQ&W#S z+YRY2j2J(XQ|9!814#8K-AR>JZjg#IcFNv_)5!wqc~{| zuesYGI#L@Ya<0FZc0K_GE=DmAk*74%&b}EHtP#!E=u_DbXLvNV0rslY_ zp;j+pC-5mmPe6ElBT`_?s56ZV~X%3nDROD1F6pRuk0qEJTDxGJGPp@LCRbKztK~ z0T}ux!*OG}0t3Lp#pAszGOO8r=Zd7Lr3GQS*w)UD#)KQH^ZE4PN~JRzL?lo1OzieI z2v<0xKZwCy4EnD&pG+~1k#txS5LGsl83_NlSr5OzU?b##j*Pbd>X#R#WGkGLFQ!;s z#XIOhLs(vUKVQEA`6!&lIqxV)fM#`hcm^lk^43J5L^S!!O1;$U1yU~kuu+m}M-q~P z-Wh!NhMK!JHa2LM!k(+!(YM7Jvqlsi?$}?#k@|zr3)}R17m9wK#Lz<#l2=sXr$D*_ z5^jI-sD18gZhWOu?eqmJ7IKDxuI#02C#(*i?d@jM`Qcu;BJwJ6AclM<2D?x|##-|u zao65E@Vg-$;k10xP(D~)-9^AQc}N@@XLYbeUPiz}UO&d2 zp93{Dy<|yb(|nf*qotPX#$Hn;f!X*3bTo^Lvw`Fho$~Va#IlOk{jJ5#h7kfMr^=}H zvp)kLJNp)THed@}r0H=sy912^{doB=$^RJ0EPnf&t--`4q(-Xj)GDUsjw??_(YP14$14}>J-TBEAs11BtcO-pU zBdZ2`#GWQZjPIUrL`)|NNFzSx&3d)#axg;GJSKmAaZbwX;CRd4tVhhiY|`;38kHRZ zp{OBqqS=|7u}DY0kqNL5#$Vj%Nh1g=2L{EU1bITVwHrb|IUL{2)kW2uB{t;h|9$td z_-dz!+G>9aK|G37{F)zwPTlcTQ=DtKd}`nq&!j|)O-Tl-Itb>{EMqI6FgxW8KdVG| z`v?+A$5Cl!fEyC?#`Q3K^7!&4V!XHa1+$E7Qr1trkFyw0-@P^aaoYb{Z; z+fv42J2N7;B+kWc&SmX;5v}Eqaqwzin2Jj5(8%`X3S}rnR{esz!5R(nRz(`_b}Kle z(Kvf#C5_CgO7qd>sGTK@vGF_H9#bhf_C@L`a;E=J`iKc~fEB02+k|=q$P@x_C6jhs zAOXX{IL`{P^dE12Ha6~S-+hC)ho-t(SUgR%O8`hhimzDZDiq)#{5140U>T9KsnIuZ zSXq}pUm~J@VvLKMSVL7QP`tG-pSl_vdwrWD;%_K%cVjfTzkr493EJtr^+V0#M<7+OIekccAIUv0lCi9OsU`Bmyj|&j@cv!1XPUp zH}eyiNW@U^ssAVCas4mliOOKG!?U&B4Yl1-*%y}01YH3;pa0&S<|QJNmh(-aDCEGR6bi`ZV?9V8e?K$o*;va+$!y*pn80nh?r z^(lT>V{eqW>iSv_`uI2rpXQ?sE=!*Z2I~$C@@}`^97QoZFRpkKTpOMKEVsK)#q@t= z$?jNLVv1b3=U80*Grdmq!i_I7@>8B)I_&zo_T&^lJyRxqY9=1KB!Z8V3; z3AcZ;M=f+{-|WU3KcZIlNx^5k+eo_*lO*@M>&W>Kg~82DzMpU+PgqR3%xj*f%LwB# z5f!wf3JXcRBwfEs8wd4zRgPT@b7KDnJ}nB0b*;#8Z__Kg{Za;&Te>fz5+K&r%$m&1 zFS3}iy;4|I*hD69f7mHWwsdY(5YO9`zFRu}@k=7XaR-z9Uuo5OelXeEdg$TseytM| zgNPcX9x^*?-1AC!tO+7!bawcV6m9)ann**VaW5@Rabv8nU)jp~bZBz2As>!2)!?+B zQnVf0i15<0|G%>AW0#v`%b$;K4gPG+I)>OX)@{Z*e`ZuF8tCFWws@sHdupQ-dex zgLmfzvdit^rA174F*kyrvzf#S?MeGjU3%q0I#N>YjT+4mH1?l_O>@xGci~9(u%mK2M;pPv zbAbH8B9mo;_2tMb5KSz`K0@66Q}5sFu^aZ2&m*Y6o-IdoKy8pZb2gEd?!9Y|`|_(y z334v`L`&?Vv;C@%zyo5xGn#zS+NRt4CDilSQY#kjdeR%^f$o^}b$>SVZ5C^@y#2no+X!-2$PASkFuhBL7Rr!WXqjvrX{R&KqrjPhC)|4Mzaw zsfKkYp5|{yIvnm1+-R^Dxs~dK_2ouaFTjqwB0ISL3YdUcknY}@{=E>_ScE_xMCJx@ zn0yb74tlw2P|xxtc6I4=9PIOph#0H=z;4#rzHJW&*x9FO7833$U*VD%=pJrxr%(Nn zU-^M+UxBA*<_dE*?pa=La1QOz_&8^F9y&M=G>E1HP>BV+MB-iqP@2RiaKy#$L+A)b zyOW7|`9r?Lnu0Oh^xkei~z6z{tOMTqjqEVt-SEVBWs|FS#W%z$X@%kIVK88lYk=50XxEPIq z*r^{0*0kl zy`c*bfv@Yk-YU&~f%3+mOr4!V%txd1sU0~2xOsp0bq#IU@x=Ztws^>5QQf~5T3iTG zF5YCfk#!vsxV8Z-(D8oNaU~V3c%2x4tI^{TGt_f2 z+_oYPwYl@7%}q4vRZ_)ftuTBQq43{|0StLFpXevbopE|cE-EVgDlxo#NlC`)sIO?J2Sx9jSmXzd47U}=#+d1a#dANM zm5anp2*{+VohQXmNi8EBmw2sM72<||#S5T(rszlMNs)s~g-y8`g8IDVeO#JYi!T_D zDdf!u)D5Sn=cjd7Hv6D6c@VnD^Ei#C?^Y7NZmtWkQf4y)7Gb zO{`!0u+vHWmjA*FLF`mqycb>W)$b^91k^ryW&xVGj&#(L^8j%C2h3RvXWn$ zB5G;}qy?M7l0k^^@xDB^%P>7X-zQT}5QymB^IBm6Qg6n-`O>fZYFd?(6SGzukOZmj zMc=gu(SV+c*L=Z+%q|($j3VBF{Xsh$Pp}Y-2hwKpk$1{QeDlf>R_UI(da9$moRJJD zHX?V%ZSf7yFni|;Y|YEXog&q0Uq1QnNc;7xn-M${i=6}0X@3=6N#z;lvk~O5v&5dE zluu#41Bj5%a;MKK)6>5>`v2CprGELl$4%rVzxiQ;KZPN{2?rxDSVKz7Gy{9Da3LYc zkiN-o%mjQK|qlI@6 z_m7KykRPd3>jmZ49~a-0SWrGTmp1x2U+)m2`qzhhC=4}VbNqzy_=?}U@3x@aQGU<| zKP=)E0c_NCuff4V(?uuHI)WII9Lm=%HR}TwL?KeJ4&j8F!F!DAhwjNKzI%(NvKKnK z>U_~%B5mh4ZI8NNX2k4Vu<7@HJItq*Tl8;{)<`872B-4d~YG}zksM=tfa57E;t z%y%-W3k^;&^-d5FAKxmBhnXTlTiPVe9AOj`cJBshaWWfkBo5o`s=(NVHV(85m_aPW zGX=oUhq(Vhem$FHpFaNYFJ`bO)DrQVj_TuOyUyQp@xYH-fUs%i)Q1Fem3#S|IZL?1 zNrwxMS$?j50q6c)Z(t4Kh$Y`cvDnd1hmGlC&RrgZ@+oxlYKfT^3=Xo5zy?4*U5WU) zo;+E>_N6A`uX%mOjRB;_NzU{tOWoc#Z)7j_{A;a6335&*!jmJGmYR2e58fnjQHyt{ zo?`sK0gmFI4rGfSu@(?_vgle9xMMFX)U#WQJoDFn6{1NM5RIu>q3Yz=5jamfb!bmu zV~Y)Z6`c_^Ngp0{5~Cn$MYEQvXon#Y|CRj(O(QWQ8Lc{W@C5R2-U+*v-zrG($wY>(xPy28M`GR+PDt-(mTsM#Zko0}Wly+{Y7cMmjm zb#&kn*5+>L|^P$vCTS?@^*MkOv|(P;P`nZXq?{UB=*O^M$_3@5iKDJP?QibYab{k9vn8n_(e}7N1(n)t`tGUuz~HB3I*)-%uY2AI}VF%ydc2EVG)ag6*1fM+^5MURx0l*zjotNVYH zxeZ%42V|Mq_dlJ0a$hls_YN6?i=F6_aa+~ss`3mH9S6VX3Q6R>XGf`eZ)ebX*&7Qa8pd_-E*o77FI ztHX?M94>D@_G~tL+gl7d3KqQ!PjL9dyLeh&w9hyX*)$ZjrlFD3B+1QtLtj9utn%o) z(Z!95D)G?B2vJ@Jkhw=V|2{wmN1sc^=Z|8NoxMhK9{RkHMW`plWY4w9fcCNfj4XL5 zn{ev{gpl3In(T|7EZnr-$Vs!!_%bEEaH|1*<^mNFzDmoDGE#&mu5dQ2%{I+$` zEjhm7F0i#%4IYi!d$jNeBKiAm!dwJkNoQkYSU`5LH3}%qF|dDdzk_+G>0GT1t;#sc zG{V2GbgHF@PLObeP2M}tFIL>Hw^hhl81~o9-zNrDJ%Yv)DL*$-`=eZ$L14U zm$R;B*4(pl74hK3Eg(`#D&1YuVbI;3f=DAEDJ|V8 zEuoUq-67pw-`xEE@4+`u^uX&<*?X<|#2EL`D-g~9l#;S!_u@tC#gU7??mjY)wZQud z=|`Z&a2Kp6(MV-VHb9Sb@pr4> z`lPdy$ROb#qLC3!^WBb8&$65QA*P_{|E&^nggv*yeY`-tn}@z`%Og;oJ04?eoG7a@ zHYJ0+pQlHH%mi~hlt9yFyK@mG}Rw~#xq^x_0O<{oblBHIXF5 zr$14%f}qw_N?{y`lHMVC1Gw>?bw&tqc$aKe4jxfc(#=agIt2q+*PcZwQ&+x)g`2JK z6Iu&@f=82v^AJPKg${iZrDss0(Omb27(Op|`+fM`C?!NyS2J$|3m@EY*P5W-Ou2gEYK7&%G*e)(-=j^h-UzO(ZlNslb{-o8fkInh#6#E31I9<~7Jfoh~ zG+}m~t!;trmi{5CkyT2i0*5G@v83 za*Wqq(MDI1DckVm?^vq^pR|0(5|OP{DJJuEcXOKUQJ7GSo>~Y%fw*|pOY%!lz9Ay2 zQ~h8L`6Od1K?GY}Ri9V?$D@~iKdZz?!}uY*Q2VBJ*x|T>Nsz;dSx|7Y=N~d4LP#2= zL7&1pe>zzsym>QK&MpswWSS(g(a|3)+4_2%SwG^|$3{Y-)bU>D0B!I<(JrhdY-}t* zzBoj?{BcyQ>al1^sAbcCVhG6B;EjwhvM*T6%|uc8_4d9#lfw{^%rp3`fZS^Mp`P;( zgx&ptfB|d&Xu0%Mo!0;3Yvn+I0ctUX!6PlAcZYr**1eNkgNvMEQQ%219_fg1OwczH zu@T_A0q6G=2q356vxVTE!|&(nQ|msLa#lKLD#8jkB3P>77~pgUpHP{<5j3s!gO_*W zZz*2buSjWbGjJX*<(aEE%(6%F#HtwD>{U$6>EE6L5&iJk*buocJ;5x>l2L5zks~Z% zcz2P|cDXA<6vDHfupE;bX7%kfZhkw6NEPV*a=2t0u2}s>!0a}qTg{}ZnLl}8dC+o} zE{JiBD!ltGw<}fBtzJ!vTq(igJQL%T_ZyqbDh4zH! zufuvK6%tEGD;n0#4~{AXTSto1&@6?4gJv2$o{u;-`wslbaR~|b+&!C`y9glk?CPY) z`lfCrNWySIvgPwEI{0joA3m2Dl`Irc&5Kx5xFG@y87IY11W@e7?l3^l-%kmr{zj6M zN4>U=nK|S$GHP$Xk8a$X9qvvkw8{`mDdHem%JcDitUTPlSS_%gAw=(X#Zu{(nixN>*wlWH07_=XxIDA4w z^Xlj|VO&o{WMu#6NL1*$w*EveSN~xwx|U8PnUU2~9|{&0enl3Ri>>0~9c)?TOjvCa zK}cdR%zEf%La(L6Won_CJ3^Sqc{)nSgb>MVS~5!l&_7eM{T{wjanD(bziwG*Yv)M3 zKt#j1@-Rt+z}_5znDM}{)cm!mVlSx!(XSqlQ<$oG+DHaA*1^HwuZTB(gM$vStPudC z>QMUr)c2Qw&E9yRLw2+TN>px0xG3YdoSb?IRVv7^VDp6vV;Bj$e&Y(A?NUc5fiSM$ zn*ZT6fgb}kHMJq4Y4l5Ai^N+@C0%A!bTw;C@pOh$)*Xu?373Ao0W~V9QgeIII~?di za^CHnrrz0II~?6jNzo=21Yd_*Y>X>b)&!$tQt&a>Z3>k+Zge9iuvygLKm740t^W!V;H+<>8uAxX$($ZRKnIa$1v9M||)p3_V+6Z1;D%Q%1fYU&}59uD} z9;Vx8^1RqOJJihJ-C6Q|se6aT(dW~0vD#Bnv52(fbOfd*ewnBq z)8|{euZ?=vy1l}SiX@3n{CnLpaB)MIP(sCgwNmtGiGfaPn1_vI!Tymm(E1;56gK55 zqB`=V+$^s-Lwp#1Ddk^?YzfhM4z_Zi+95#koai)7=?|Z$Wai$X^0{*8+JD#e-UPy{ zL*+Ix@P3qwcyDzU*%CooE?s?5dAm^f^y zvs@QM)CYoxG{MsxighS-7CZR z@1dy%Q@7$08koI9dd97g5JGBH4`6*}SQ{fGCThifP2`$hb%7R+nmo@vgG8BFsKp_m z_D4HYcFh~!k1f=c9cynHSlC(oORVy5WuXK$qF5X3U;ylL^GqHN)-qHkG0 z1+uab_g!OKmtmf_*QMv4zTFnIw#60``qO);X9HV;!AVas*hGu5R^?e56YCow@A-wo zjb@k#A(1s?_J=+UneT<&P>Lg1**xSWN}1oKbQ2Y@`tyg*?9Dj8j}M)bjJv&>*RfUJ zf1)nn!4_h%rn6m^sF)9@7BMh5EBAi3u(kE3!ZNAIM_IXELwEDkp`3$;br@^fhDMSewtdt@??09p+(cK0n+qz%G%k_g6GMEqx2 zmXo##!UJ(=NKmff6Y8*uhigyd+Zz68Z3%g~4ydmH1Dt~ZmQ#*Y){#dYwYdHfp2G6&g$gk_UYFb26~nKPL~fBnqE<@r|}{EgSQ;D zUVM{vAktc~6p=ae__2Fs*_g(;=X5QDB?!bFuIaXprgDpoJGQipsZ!8+*^ptYs-Z!V zAxH)d=Fd}db8}ZefRd8l;QGLjP`uSBNnzmIcRjR^EM|gJx4U*hOy+*)oJfL8=5D~i z1;3Y4)0w>%p0?Syw)K>5h{w(LG)FqV9`G z{`Nk9F4aaw03@j9xP9CbKK9*w_{Z30?@*)7j+%>$^z)O{7GbvWzbnt`Gxo&S%S$*964nto|7iG~W)!eB0$E&v!k2eXW5+d85|fVQ)g;GO*IjR(D^QBtO1%KsjfK9yZK zO;;h67q04xtkSt9T$0D7X%m%ObyLx#Pi@i1r#yBx8HN4|OoSu{Hw_Q}j*iL~cQ&-QK{Hr425dm=cb1 zMIZX*K3nbzCqKJchq2g*V}oDN8p%vD1POAkn=Q(SB8dW zXu3TjqLC(=2M`6ekG_+LPXVp!n%#5moc3^WhTZOwT>kp3@^5xOdl{3)MTPxq=JWdykO`lp>TqIdvgn?J4Goy^v zrX^W!)rBW^;>-T$iBZTCGj-lVi?~s?YemVB?-l(=TQ=XKs>Mx9=tWp?y5Tr1^fXpr zyBXrBG(pN~MhI;*s>BjDK^;pbrGmJ)MzGD03f!HanwXhY(x=mnx>i{*=1@l`!wU=# zH`s@yib9ScULm0*W%d;aQc)$)$jwD~@UWsgKT0J|R6Z!D(M%?H@L72E?m{2Il$esM!R)aW@&V?twDTn}7S6dYa4PV#M z*?&aii`zv9VUnCrfH=IoTp2*z!LgZnX2L6%O2%Q>3f<5GHk_#Fa(qE#!w#zf+f5IB zz8-j&g3~&ZubQVI3;SO~Y(QCM(GQ1p%2_@6$%)cO=K^{9oaeawl`mL{_q|4p zigeK%S8eIQCHbEu$M$cyzTh2gIu54j%xP5sXIrjDVR{k@bW)Ju#2tmsQ~XQ=Y4Z$q zp*(bXoI-gREu|}8o>rMclT6xST!{{$PWPj&*~;f-3tcu~m!@g@!U7`>YszAvBZ!hp z*}nNnQYMVbV+7GU3Y|fU8jN?BJ3VE4i=~>sy`y*gcK&*P z|F1;)W8d7h+r!>#^5iq#kn4QOJ63a;h@zr9)=^G!x1``eS1@3r3zNwqbgtOq1w6X1}?;E(Fi zT9SzdB|E>SH791(Dl=?*2;|&_nxgC@ESZuzb3oR{wp&5~Lg06I{Vpk5^#1$^0@D^) z45!n^P<6mS0g$te>r%PGq@>QTQu?pQKAT$KUhP2(i_cux46Uqq??#x^sr1$>LG>#X zNeKgWu0|iZ$cGOc)0uktsw!K!IAztV*FTp9q1IRGR4h3+y3_33>sSH5`s=csbc;DxdXbb92b)5Gkehbq&A10Ic`v z86Wq%*TW<9{69inwznZln;4-;R4{kdUYx1#%jL0BKdHCGpz}xb%_vwOBFX>mdLao6 zQfX}3JRcw-?3c32_ODWm1Ns}_=B(iQ`po`6XF=bvc?dnl~wFS#pk&KYak))jw6O%IeweppQ9sV(TFl^~m zC{1eBP;MIy*hTIP11?&61+s^iM8t^?>&bz)c;|ABCU`xZB zhR9~>39fge1?>3vaxf2%gee3X+v9(`R3E3SyBa6vyvNzJd)_5~{woc1E>*c3j>{GG zz++4+Qevq0@AE_79^rwMy83$WoHs{I%6+r0<{ugx0JiAT#tk82!zPG82Er`qb&X5M zvDGY+1@{f;ak{wzSH721*Z!A!Y+x1HZM<;N*{-b~}cc5CR3eQ)C z=mZR=JS^y67yG5Osl13U*ViaCp4nNh`X8@@l6mZ}&kvRv;>YqNQk7;j=Sb9|f8*oX z{tEh5sQR7u@#DunE~O;7OF8v5kzY8zV4|a=zlgk~;)&)$UMu65hh<4g%l6ElCSq*Q zJmj$$CxAroA=>@j&#kN2w`K_FsWw3j=sE8>mk!e-V@IG7a@HEUi7GK!g#M&W znulG#Te(Y?op*l}2)WDHh_lA)5`_6JcbD!7(|Fk?As6P}WM;-(iK|2U`X)mA0yD+5 zHVC&oh@U_Adb5|nXQijS^N5Trv1M;m*>rWL_opfiK{$@!lr}s38##~RuH2i@bQ49j zvkvIKE<9rslQOa)l;3V#B`8XSovBPd?rS0R9x)na>) zFf$mK23xMf|6)7&wHwimX$qi3@iBE9UVZp5DCn!Gub_wb^QkLz+g;sWsy2`0Q@{k0 zcd>&7wzu2_6*CPCb<^ncot{3|4;(-o8Lc+3o^3n>|i=_jc*3+E?;#3bT;MX>gHLgM6;ps2e#sp!+yS~$vux|#! z`Pqg>G)>KsR4qn`9L605WkD7>XZ~%c zC(vsMxgD;A7OcNEdq`V!egO`p%8aJ|lAkRN)_%Du zLqeeJm67_V0}n2!usWhwvpR{jDG~D0M5h${fDWJEO(3tpPZHOB?SVjYvWtn7jJ88Y zKwR_B=*P-egy_+imoKR{hu&A)#d* zdh8SrF$v4%+#78y{XetWo7$=k4^C{%Q#YXxx$$SEmQ@P!^0(a0)qnYJctZ^mAlHq8 z3tiDsRQZkPbq!N%2a2^bK-RcptLstO&;N)D zO-#$~+&-dk-a+8va{Nf7r+l)_PbK8j@!XrRbsfhg9T(Yi-*0On=M|7g+#L%WU}$NP z#%r4b`1)z*?RcLbju2msyEY9lCgx`oy{b^#jsLe<2ZKk+sHdvRY`yRV+*{FR&YrNE zH1*;iK_bVLWo;5(ch@6L7^3*`LZKhGZW zf+-#Kg3=9gu~%N$PyiZwXc+$BagRgPX2;eHqC zqO$AYK;!V=_VMQF(*O;AgHv&u-5EF*-OQ{a9*r*?`4KQnFWQ1#y!XaXj%>obnYU1} zSMpSy&(Htd)7vAKhB7X6oSdNtEq5-+?csS0d+BLI6~io1GmcF`L94hJ7z_QW3@9Ko zz}Jn2u~)XO&*1qhz8AJ(G}{w?nx3`L+RM;f1fG2WFMNn_=Qv{yJI#RA|sH6>S0xGW_*I_{HOK zRrPjq=1kZ9P%@inSzJP<`mU?wJUk(GVDtWnSb?+bR$J|<=a8#Y>bj=n5TG9ktTs^^ zPY6;TFvrgiwEGhorlEs=@oDW-GdJDGkJn@$XT@K2cE1mtIRd+jkFJqeR`otM0Q(}K zyoucCs(iW9$*~YA9Fu2&gH%u`i>=WO8QV=t8WS(lveQY?jkV86iaFW8fBEr2W2)8gK5pB>60=WU{xU!-+baZ{x{5-0HxgILF6DL-I#{#9@H{SClG%X%^4; zrQA0>9zDd9I)}q#fKlP`E6`$_Fl9VQ-uW<;PHAM20eghGGoVoG5O&L zzQ{epFrMT-9*+kf;NNtocDLdCxib_D_zok7b`0CTLr>Ac3kBorw7oD@`nb^P3-B9I z!2%YN@Ame{sskif$g+keJa_)G#C8AHW7gZrx>j z{F>tx0Zctc@es(>rpLbNrPmo~Pd3}R^ZZ9sY5kk!UmEcRA&kVQ_CqMX(^o!qv2)c#l(lu_%_F^jJ@bU$>+ zlTY4zx3{(m>3?qwtK7D5^8WCKA39Sn=WeQx@Cm}?^M(K93bCP0Lsc)9a%qUb`SMal z^V+c@N@C{N{Xc1#jov$^&Gn7n7_|3n}Gy{Mg;Dk0s3ys~Z*%LBj*~nqsF5GAgghl1uRypMb`QIEwfoEE}i6 zm+P=`u}&Mm29Hor;=Ik^N_Ev!2F`ueQw#hNxo*fyw+OR)OR ztXO*)38F=Ni{R`KdKcq}$DtJP^+dqZT3;wX=ZUOxHh#_-_*wTh?rgz)?wAnnc3Nxa z=LXMDMX9;e_;?+ezm=9&inWlIm2os$S?6EZfrUP}BA=ecN-?vKXd<5g+1)>EU@t74 zcSMG+Y4wKc=u?h$Scql4@nlO8Wz_`Vf7+x*=m(O*Iv;E#OIO0%ZN7a4iN5V5GQ+Vg zGLp+2-r0ymitd&(9Fjb4xc4H1*Ewz%CE2QO@E8Mxj@Op2L69MN^M8}C<8SsLGX?I^ zg|U|^d#Az0+QP{Q?4X$)$&U>8la5X4o%6)j(#CqJYh%4U(=2$330^(dAB0hXKd17* zljRTtq)10DlIutl}_(9R5^k&lAj#d!%{ zBr963*Rl}X#yzsRan`=5EAbaQ-3Drc_sh&7;mC>cNEG7HVjWK&LB(`KAODS)&QpYA zg4V>XH-#1aGWjmTan!16seNyW^I3N%vg;vT{UK<-U5|XCt@?ns$5YB24Iqk4{9~^E zg*U2D>OG1I8Y1D{5>V69a?i5;2LDd7#U+q1#3vy7d%IwX)B3g?thWOynQCEny8^-K zc&*pcLDbMRuo~znt0JmtjwfkoA|@qmzUSsv7i77(=eY&=YFAQlJSX_oLw@~sj)$6K z|KDn>h~aPi1Yr_cL95FV-l36^1@>W$@%isn;3uR=H|z_*sOyv?`WiQPWCq$C@=4y{}FeDi}7>&>xoLFTl z86Joa9;RWV4`6HH#IB<8r!E*}v5NV=gcp=Q6;5(3mey4B(87a~y7Yz2%_|OF;Mb_9 ztNqP`=*@`Oq56)_x2|(e1-wsAVM6B%;W|{Fs3T(qHu)Dh%cmwrMsCyX2)}xJr*F0& z8X7&DnG_%(<&qM1R$>D^rOfIl-*S_uDcv!2`9fOa0Z}oB*Uo>QL9OKHA{RRyOG7@5 z6PRUMH$L3o-c@+TCng$5basHZjm@58d~>Bi-sX!F(~hN-PUB|)khZ;IKP^m|V}cuM zAD?4|Vr(K_Uykmpl<4-u1EVl25eVnB7-Ba#m)uWH$e2ynhuEQs#E&aQ9Qy^05sIq-V+*d5~39Hdy9IniKX88sWo+X(F zpRyW8c-@96yyjTy#4rT?9|p+?6IEyyvs4Fs&>zaGqd8iTLDDZt<#qhG!0W_@dHXE_ zc8-fEQgSN)&v!dh5GGagMIj!o;pz6>r?nA;dkdYO*_}5lE35odR^Kei^$qW{N4R+9 z^qh@I6HU`s-KC!ZoPTbjI#IgEmq13Agr4fHz_-Rg+MYXghm`yd=xyGK=et*w_O2_J zw~|cMveR1LAuTL*{vZ<8hAep^f4&1H`gqO96QcxPf>@ZSynT|+<8Z$4@S9VEXUi}l zpGKZ^_OP-Hf2^G6)RerlPt-qUTVI^R&#yo-<_SkdfC0z>_lN?>OWuDW#m*J^5m30{ za+wp7G!zmz5NI(QCVajB6Ne%2WVNNzbXn;VB|2LAv((uo4pw8@y)p0*ROc1GOLDE_ z<4zY9F%k1EHO?*bRn;I6Ct-?+s6dE(_G4V!%psx0>Q$xIO)T)2fo)uIKLj1uW-8(n z99cNZVH&>YJ*Y~3^sTUvN=7xCv5AO*VRt;@zFIQCHo&>ZUj6Nz_i%Tg`*XZh=_R&CWY?^PQP*>DIPD~_48pYrh&5=Dk z%GvqCQe7<~kF{>Y&AkAgr_hf$h3++Ra|$ka)**(Xw3Z>-oS{`2j*9>K_{5o{IzGe0 z5KH~N@1M_M2qZ@{Fyy&EH?~P4pPa@6f<|^N5nbJe^;zSKo36;(2b5HLcSdn4qP$_L zv!vYo{0n2nXxY3PUBlOYM1K-y$vBkH4; zyWZaRYDGx|VDf7|tHr>jp!mT?hsx)?J#f~lRTCRz4b?Sa1fKzyco1u#^bzWpr(R>`!k0_p>wUT=_rGMlXipUF>JTDz3ts%ECN z^7k*sYZ?bB2a9a_P9B_k0MH9{_gqRI&RAdDHoDE;CP>iFyY(TnXGmGVk$75*8n>kJz^yEZ18v z3)|e?9-mfx#tdPOA?%?3O~vOG)et+j*HiLAWL-0!Gq$P z!0vGCexc%Yv~7+}F=6Sl0O1m!imGUlLX9^yYGu)BkzIB5lW`4B%b7HQ*XMS-u}N~d za=`-R?sRm44|oJ0G0!NyBr+%EH$&>Eq@)kgNe}p5TK77ALRdlP2@ehH z*>5ZqTj2;ABH*)Mfv+G;+p&l&-BE$;!x8=V{!|chW?rkf^MJSU&6k53JG;f^t;6@- zJHW+i|0M{Sn($UoEosPzUTG!uakN^zbR6@?*&iTG{i~+ltRu*jKB=_VyU<5Bw%hnc z!YabbcGHbP<~D4B7rJx_^iP#X(^LKZ1!-78nQubIvF=Gx5B4t}pDBI^(APuOyE0<5 z2XAT=zPwAz$@#LGbEC7Xsi$W>H{;Zj2QJcZ@&pQiKa7(4bf?I?K%qlPiZ;`5vYk9# zO8E49@s}EI?jem$*X7-2n~ZL5Fs;h8Yh_cXA_^K30`Fk`ID)p^(l;*0JRj8a6<&|l zf1bs%rwp-pQU5I}gu*?|o&G=g4^Vt2w&B4N*zdgl9by7Tj)`gt0q&#JmnUQ7zF}db zIR{spyzUdXH*d5sXFnLh2uVmriAWHEijXQv7#Z5OF7fg7>`FeP*c8@PKGEKK8S>)! z!6l6P>27#l;npT3-?u)@1*>bo*5&?704)?s^^=6!BZ@;{blWmCe>W%U=4NN?_5zpO zqmzS&SnJ2>NG(X>g=z}itqDIBEF4)`(R;%7FKTY+Q&1pqzkbWhOU+^^UOLWaUI&b+ z6YYnH(4gf^{Fg6T9n3((Qm-4E`Pobnhvvx>BX^kx`+dCW>Rv}!hHu{{o4rK_QQhM0 z1?nRAv@5e`2;pOmX%PTom-$(fDrksU>SCwg-*r4{oyA!F6>{<%GAM%RLTp6~Se3J* z4i{D$m4=t*{F0}CRs6;S5gx8GLTNCdiSJnRAdX6D+_5vJ1s#@$b_*gBx!b>gBTa?N zv-U09+nIGKLTY*i+1a{EnG8N&R#wHTPaz$h;o(1G*I{A<%VOv290Hv!~bn++)Kftoksz_!Gdxih2P&tSemAXI2SAF7?m!i)xYwJmkD= z%oBBZr2Nj;L**uK{jnD3ntBsGtU~?~!|&LCPLV^>xJEfyL4=%aOndT39Wu2)o)Os9v1Su})UaC}e_@1lNknU^bc$E+Ue-2}vi#(5M3 z7h6t_RrD6mArw)IDr;O0(~!k0;)jP<;LjN(nip?oWjb=v{?+q|Mq4fJ2JtgkAMftv!f`u!{`OWZv#_z+7YF; zTo+N*97bk8G4LwKWKtyo3@>u>!p%wLH?jcav;}Ia>6Y?m!?Ph`)>cvT?EF7|v0f!^ zu1(ICS3VyuCqMvOjbE1Uyu`&%W@H|TFnYSPWe_hM^j=MRf%{W+>eGMK=<7wNU?nuU z^yVpxOGl{nrTRcIg9*9Mtf0~J{RZg}hbl5d;)JS#+pA+dsIm6*vF^drAkDY-u&;#} z)b1zOVb?FIU%tB?LqGNywPIv1t%%LV&rOTOK&q(d*s8?$t*TmY$+q*WsE`RiTy34I zRt>Tc0ufCUqz?fhh)x|wZesq@G$5aeI+{>ih7N*={>c6zAal1?`M?M^oti|Fk$;fL zfi7~qiBPQHdWO$xJvinPZTbyZ9d4W9z(7pOS&uA^-+%BJH7`d(nduL#6H#&~_-3LT zv+%Em%CDfV-|!{H}=G2xp0Ln z1YDS3q&9$4wihH3%z?+g#Hc!@z*Ll5I`z= zTqak!ls1t7l+bjlz*eCgQ%JX*tOsQrF~+{@8q3aWbuc>A!Fynn5|!kk$hm$107zas zZ_*l0{?*9{`sb2)37(Jd`0nKSq1Pw97N}Gca$$dj<}kF&$$} z-|puQwftbF=c-?w3_-q-wAd>(Gr1kC(X0r{*+-toj6g?s8a}85+VGCnR*}}Jsoe@E z7Fr>Bc~rinK!k`0;+7X>Fjdv2QaKz1K=r$^5BJ}peH{C+qcXu z$jtlZ$~fVte(9Oe0dPD}Q%mCJc*MlV*FFu$5R;&P=Iw&&efz@uU(Qz%B_*}rERYBU7UO-hih{-)AoWxJA+Yl7SbUN4^T2EGQ? zuoHQHe)WOebyew~zOy>jqo6(>-49dYwBOp> z18aXi@NM$=$*`-68qX%EQEmCK%x-xgKUvOiP$}b;RzL{hf0}V>A)!lG&&GoH?CFT8 zJkyW(AT*>50%ZRh44yzxetbOLLWR4md z%;NZLitGkL=~Q!1zf4E=`{5xI$L!icZyqD_z^pnLpX_mv7NiAj0!USQ0*?-go&goa z%=|zwN!HH6o@{fI@G*hy% znjeGmeG?X;w7UYhpxR&eFo0c*Zk?Q0kBTat20*LsK>^<{O_^Q=*w4xGS|b7R*HaZ$ zz$Uz4x=gl-BeDF?^8LGjF@_ciECwyITfpOcmQg(r)FI=KCY;^K>(#uS4BTEawf@;s zcJ;b!2^etaKw#i6dp@SwfVw)zfgcb4fW*woTXlo9D;LKloUowI!AQ`amzBvH1O;*H zl>(H$f~xB2*O|dD@fz4{$cAsZf2B;LKDK*fJjRNe3dCPU+SruO$rES6zkluz29mk? z<{*d4$DvBx2c_u=5>s-R-=cY}y5DsGbQPJ>>0jTEH!zN7HZtX@?~$}dx%J-W=JMk& zimr1wC9p#DUs4gMc@27z>gnx_JLT+hR3_=9r|ILy2@yhNl>QO(AoYE$pKe1ql4bM# zTkd~lUyjrJp>KJ-3-xJ~K<;kG!4G`8LsPz3NXb9RdEuf+VIYbm=kvqz z=)mlM5c-b$9)UABLh$Jm4SU&dhbZ_wL`9&F8l)1$8?94RwP{M}y~Uy-Pnq6=^y(SgGVOm!HR zCs*N@C7G~&b!(lF-o^HF&ifaY2|0yV5ud=0BZG)Od}`{Z9gGSp zD$KuExIf78`cIh(GFDrBl6Y~TZ&_fZBo-War*|lJIe_eLTMm9bnOn@15Q}N6@+VMuhHf2ciPDDMG3vEt-7X{J`9tzs>wY<(DtB zmzQe!<6EjZ5d}-v(FGcQeue%Bh;U7V;?9l%)4E{g(`Ef8cc05qGZ3nZmB2v%j-P%K z_QU0)#cn(V$fTb8*?exb7I^5qy+0V*xNJ!Vyo7ye`L_PQ(WaDHiMY1y26jt_u)_Lgm|t)otBEitFR zyN3U6oaIKq|D~HcT4-oNicj%tV8Ow1qzDVPDB+Z2;f>UcrL_3cJ<5pR5g{IrI_%_P zu(b2sygX4IhQ6I1zI}u)rphyv%Z!)FKbrE*rqaif2@) zWnfCle0p``&5~%orf6jGeK6*>uUQvZt(=9Fdh_IQ&(uDNiRm2l*QVX`-V^i0|*!m)7gdc&}s( z%P$jTYSvsrc6(tI)A;{oZ~<_PpBBoX4KQ zSy@{nJ-Z@X5i+zWq(p+2yR0T4Xle@U@giXG%`2cI0s!so z;dUVJN`diggWKqGGc+_5(=wXS?1uGPf2&(s=98Uq0xXhJknwJi;(PwVDSs{obm_oC zuIAPA$6Yz54+YfGKJUj7EO{*CTngG>N5}l~J}SA+>M4a$(Cw=g}5g^Mp%ZnQ_k7-;vIo1(*IVdzcP&qyG zZ@zd5IU3KXWF!IztWrRsfW7S{kccL)T+`%aw;Bd zkn{U%Usfvc=O~uL9rrygh_}~A1HyNfhC&)(B&8|@wVY~rvs z-VgLdgZ=%iLmCse2Vr3bDT9Nko?h$yRa!WJ@!7D@_ER6vGLG)q-*FO1Aw9m?thdMF z9Az0atafMHI?wgb=;`SG38!#UKYQj~(3UPDE?yt+P7X32Mn=^BZ3-g$ZjIwSikVkr z^n6F(n7>&mVkT#~UFu}l)tG+N&mqNAtR%&Ki|9|vrm5g^jOaX~ZouU}&s5Jg`5tKn8wVwh8hbaiAu z>}W&*!=RRS9OQe+tPcsHV}I{K5ZSND*cLy4;o*H?gC28i)O!gsF;Y=83=vfx4u zOEFJYS6hk3;Q3B!Uc~B>uIJIJi;J8_$i9*uT^7`kpnx|8BYOgzAnfS$wZ5SNN*27f z;UPCHpP;JL0_K>LkU%8umagnPhDZfPRN#1jv9STCN+`+pj15>Uwjb=VIU<1-bn`kI zHNOsP|1EMzs2gpB8y47H?uSV`d#zhuEKf}T(3+S=WMXPRQ&E9Hfy8-*?P_PY(E9EN zBC7AmNJmzFJ{akQs`~l;NjS28N<&jV{n{P|c_#kZTi-C_Efx|zH|ienAJPO8`++n; zDntoz5YHgE@DN#|^wf-XgiGSNr-XN5_8BZOSmP4BTk%+ zo6wq>xnNym6H-==)F%-Gxj_Pt&xF;yoG;nHx-N8e)fc>Vl^Bsg%#)xCd~l)x1}7{u zI4jSdwe)@tHDewGZW~ttN`RH$#S0_hwV0aOzMvgV%}ialSsaJi(4Z|oMSJ!KjXRJm z_g!%?$~UHbrP6|!r?vAAt6G+yc(` z#vP+hX=#Nlw)+d8W&%)G_tM)2bq3SanEsn;Ev%ScwBoh4`tfih7W#c*VW2OL(!i?P z{Btx{m%>ZKu|ILx+BydR&`i4D%utf!fCAnNf2`LXBqW@k3&Sulem1RfRYVQFijso> z$4!pWx>*tE%>@Z@Q&;Wu(n^KoY-?5X?kdPcs=Bg}ky@u1`yJNTCRqb84!pE-ru zF#adDZ})N%)1ZRLnswmG0Lev&dM|#qv&j#S?|u3jOURrbHT*5*LnIv-d)9mNQ)0eR zv@6ftA`flM|Ngx}MLA=$a@a*$D&&E@6y(|{y(T~jmV`C{tgxx=M7aV>5i{PNy|M<0 zL9LUOfT%oK2{%}IG&FGffn6?@OOYPNf9Vn*JiZkFOT5rw@Pz4J^__i_e5AD4*=sdm z#>V&DG$|VI8%@53&xMM&Fzo_gN_1}f3HPr%lF$(2%HqA+wYx~yi4?&fPA8L<;Ho?q zO28=6c5pvS;)c?NeF`%PsbcK;+z#)arU^VGiCMTEP4y?ZAgiMb$^Dg$7Kwg6~yuafzIqV&k)lroL5h5nC1&Sw1f= zYEUSnDSET&y!G?tLPsc$^`lZ`PfrTrQy~VO7R$-NA3a^Xv%6zYl~#KebZ_Am)tAV&gjlJw1ju)*gl%L!Abj(m|2vScP^S-IC9jmUSp4X_?5_qot7J zE(;#XL?DLA9}*ED^6|Gc4QrcgHYkibY@&sTJSNl^W+y}dqsojj zzgpr*UUUIUcyo9sXro{0FPBHRj|XFrwpgO&f3{Gu+l${OWH_N{XCek+4%ut)dQ!bY zN~4<&g*ijJ`aV|-c|^Xh>A$6kFS@&?@1Ksrk;g*H3;!)33l1$qDnT|6@FF$>W-ibBf)nO*z)mvNsO zGy-E-L>=0(E_`5+qxhq7N(EC>&Se*u)>*Il*O8h%zBq^w28M>O8-1D2-F3swJF8OW zFJHe3DL7b_=j`m%>&5%8YQ|uL}2?u>(8Hd zXO)L|IaMDct3`6>gd6UAz;BA*osQ|^UqV= zMP-qLfzK5&KMCM3Yh1JYL6nmxt2>461FxO+lX~1I30@YQ#_`(G>M@c@Ul{g3urVYcr_hy8~MS!OEketB2pdAQo2R1N)Sfu-X!u!IT-_CO8|4LN;FJi^^2 zNlb`pi!5U#SC^X`vC8ysXkFb!`mCT#2$quMVmR?Jte^6DB?(h8kSSMU zX>sv%xD5_wH`~_cWiubx+gCL1GAg}(0K>OBnGFPX0s?-+LNbp=go@N1AE*azO!?Zd z+>^lp=Q@ZeN=}|TS^wM`FA@1hc8E?gyPzOMX8^)s)DW5mF=+5`KT_EM(R|!?s4h(3 zGgFkV-CcmK#TpAMR~g>kj<>Q-0V=wO53yj-65Fx0L=g7|6tO4}`F62CrSNZh#|d!u z5F3;Gz~ybdSECrB7~e#%_Z{Kw*{kypWgD>3v^3gwf8(w=Zt$W zvC-W1K!5JDcZ-j=xA&?f%R<3CBk>ze>ZlQ2Re8nR6%{(-p`->~-CK z-wNCYi<|O@^XI50m8w!>c30oj8n6oXxae#ANUW!O1KMi5K&?~^ejX%%c-YwPu(C~+ z(vp);9F>Ux7nq(ezo4lQ_WcgZ=fsqOF1DP&DRU`#C9}5K``TcGggB5KL-r zPU6sggnn?K@E>^58>+MDNeWnZ{ANbdu;xs{SVY~9 zcR;{T*}xe%aERnrOptJL>Z>7y07I^s))4<%mlT2l3)tp(ZGNE^1884wt)#h3Oii&| zAa{bY?tg&l>fT{4F9E=Y?0fCq^opOimK|HV1U2>b^}Uy#jO}X6o-TZBD0TvIu$rZg zX)W_Favsm3v&=BdOGro{gA73=7T~Vv>oq%BWW*$COXN}BY7);PHL-+7FH94M=DNrk zatQr@l+rD2-!3rbe@8EgbIZkl$3XmsLXsn((Dk+BPV4hL1yG_3FZ|SibUB1g^_=Y! zi?c4le*IE2A*uFBj(fsQ`KI}-zVL?ScI3jYMO{)x@pCZ?GVguJ zf&X?f-1ePb<;LMIQ6GXpJh|IljX}Dp5{N=k*FLG5C6D!H-!=vXP0{1w0k5Wc6KZN; zxJU8hN7?bug0FGdj+9mV6SIIv^3Q5Q9X^>XSBY1s@@FiJd;@;3;gm63mS92jHBrJa zV;8Y?S(*AhJw2{+b1}c0B+YL&;#uPI8aUt_5fY;QAZ7D4?ZlYtBXL34t-y?Ur@*0B9N45sw?JOKN-Z&)fC0Mx zp_#PAGki=KZXz)caxYJ$4aLyD`U1CMMK8nXm#JcYm8hW$w?|K? z8701eoTHXBs7_X46Y2y*Z&_CESx*4)5b7J0%LUj-YGK}!tEeqycR8ATz1-F`!D=5^4COONJk-7HhZg& zc=J(1LFBSRLf3PdoP^A;EkHDza1}qHHVL*sj|9MImeiT?z+=ZnLkEi;Gb|jeCd`A| zMft<2f&@COYhumDJUS*Hh~s#$^GMn?iZd^0`R&DRM~l%NP`GNH|7E*51x!J80G*6% zj0CPCK-ow@exVB`1Ny&D5HHgxrqbs-YJA zqE_2Rv)Ys@DP$`2Ca_11sd^ROC!(WAf%|_V1ek~c>n1M$pw6U<=uY_R zz;%Js&WsKk#jB8+jJ~LMIJfUx+(*cS@OaC{H2sQ2^PefwoA2+H+#m4q`Di9{s%mSm z=oit+*lvufk!jqQke5H|^)>WBscS!~9Ua7gBo;GFs%2)0`LP_pB&7n=0v?|kR+X6G z@eZPa3$f|cK_;`mD=I1IH>edJ-=PHVyOUBTR~`fWOA#QemG8$edCr60ocnAtdLM@* zjgYj!nyo8}6d>rg;Q#q_)Ef1H!Jl=oB+w}paKRmkUId0byl-C~ZVKgzxVBZ5fF;o^ z#+6Bca-tFgY-{>?uSJC!H^$3YtfXx&nWSN%f5ZWjnf2-0AUB2H{Wq~x>hv5O#4bHF zaJh(7^^cH1fBa}CuAoG_oStgp`}^An z*|A!=Hb@46FziWfo+icXd`T`wW-zmC{JP3v0JHw)SJk0e%6E024wGb52T?u7)`5?X zY+O{HSY_2>N#EKlzk!TkY~wXI5D2U^P=<;*))kh)@ZvX1qI=N+sAbUy%QerDBsAp2!u&_s`u{!DY-%(op*aJ-0?!HUuOt^%Fq=AKJ6vcyu#p znD04GEYNaKqi%d-j?Xe^_(&MjTf?cIhmd?|FWTaK%&HvI z!ctS+f<&$%L~=0_yn5AVj$fN-h&MVqs+^;D ztq>pIWqoDp(2K5u|-ok*2xVGM8^%!4knTk@h45b;OXk!Z*FVE&CJw& z!P1Nm!IC7Gewp<3D@yB8im{|s7%dPpiNEmA#(QRL+^JN2Z|^vz#6!;yg3R`qJUB~8 z2uw`K-xOzl{tIxh?%3tdaD!}w93qyPE`MO*l0XEgR0RbMxP6lpyYUAs{Vc!HJVUA+ zGvbCVDQ1Q|7+}CqsI+JpX4F)G=k=Qa%m)T5qh)7iFq@Z7Rn&95K{hfS#@?}EWx+Q> z$inAVojQk(Ngc8B$cKIgDk^hCDvluTV}L`t1<&mH^R22#18~lciVf1-^OTYt+MVm4 zbU(efcjdYNckL07ubp25`gG8p`(ODV!oP}6e|nlv-HO*T5>38r0|$QZN-xx%jL_c) z_d3?W1_s(#QtY5)`KV$HA5hr)5eyWS2IWFFMtMg^p*dsYqr3w@U+?0ALCUD;$>97L z;_FvaKY|c7<{`qWybCI|7+_@MzJ`MLVDX{yC0*%P%(cnBnK20(sy)-ld)eA%#@5;R zZ22YXCb9ea67J?)RdqFdG`F z%NsE#-0@?zJ$n++s08*BzC%**+olq&3}&Dc)Smz1#-f@8?_;9ht!!$#68BC3kvKb2 z*V-Oa4}r`r<=f9sf1JYjoQH*W1#S}!8dVo%@uis|5Nn?KVClY!6WNzhOrZdOeV}#q zcs3lQ>#XwfDE9WUD)scjad3Mb$rJ*kmG9aMQT_uKmoK#MNXvz?I5z&OFjk3Z08+H3 z)3GN&<>kTj!uI5BK4_DexI7Zgng?)B$Kpa;||GhdVXQrkL0{J#{ zH@NNTl=OpgU;^$g+juQ?pyg3LZc*3lNES@%OciFD|M^t{E%_h)@yNdl8}{sA zBgwYxWU4X%DLx89)|)H+G%$&X)B2y=w|m?PS``k%xH|_PlVS&p$FqMV#|Rn_F!T9+ z_bBVTbD{r(S);CNBmMoB`^$Dn74bp?*I#IR$1B-v`RJg!<~QJP+Fla#VYwO9a0$Hp zVfhpM(sB}kNo0G6U<0F_}5tO+oui zti#x!8AddJWIN|El{OR`JV&K7856K^%A*?2`G4(a=cT%C6NsJzm*f z0ZU2YYAO4*OFmD}FR|xM$i+5(*k^&Rygi%$Q@)0WOD2YGuWS7MJLBdB@9dqY#=D$U z`uIviaPEja-5UtzQmH6v9g5tqOi%Co;4mxXURl|VNTJp@nGSk0kCwjo*RfUYV4__2 zj#y~ZlOG^S1_Iz3h}tD8hEHa+OL-h_Kf`_a)MT|T1j0i&$hH`h*DgGJk4!Abu*Pr4Zd1D73z zQaAenjU#&MIWm$yXjh+SZ^+rD{MzdcT8RS~Y1mc6L{dG)>&4ccqeW-D=##ED%03g> zCthBAa&^%siv^z=mRaFXn3nsG47x|?Hq_)Iq(Ga74;tqtd}2sxsmi4D06_0SFjekt z{Aly)E_Of=4qj`+OK}eQl&PA1yV-YqfG~V%w~K8diT~*vkdNEOaa?LRHCRBdJ_<^(}|AL9wKhyfRa1@jKD$hm0z9W{m?8rqvp9sx{=S(_Y+ zY#;i!J)QfRe%AtQEldefhnN6Oeuj!l5niCk%zVKML4c6vy2nr`c{t1sD)$+S45JVN zxtd35E1>tJKmcnRuMit=*8$i%IEA)pfdaw>IZB zCW1wOR-K()g0-~4&%#1jPIIr7ZaXvMqdq2`>{zFg8Y7C>$@dG60Nn@hvXf5tWtNg=QCWS^sWaQTbdJ90lId6yomcT|WZmzdl`5;s} zzW2@fQDs_${gLnten?0UEqOllHVwLS9tQqZ8G><}X)r@XdDSQ+gr7c^d7E+qo@oUU z!@_N>c|h}zNq9E>!|y@%avkZZd@-p2%bl;}3?_=^e?OQO@BL*Bol1aE@P?8X#BYYu zI;cO2`H^H|D+`-O?oug5sOOcfFj~@14^Wp&$+elkS2A;$RhV|4Mh8u}WW!qZ=jr0Wz(x3> z`NH}yM!xxS1TOhaw`ehbgSY4N!aSUh;j=L`W}L@0&KY+>{w~;U4;-eRm#^g7A^w@T zQhxmz#iGVW7HYAlecf99vX&c!!4d)EmI*OxY&3N2Ak4tqdUI*BH^>iW6h1LA5SM8yxU&?Q(EzX^yPqL%W-kfFQ~<6QwV~(=C|wN@TjJEelE7AwzihmYYg9; z^PQ12;@iBYHEex|n4k1b06&y~AT{ceHcu>+TE(sAs6~*=yml()F;a7@?T2DWwM{ru z15C=s(4CIY>+X)|K)!xzvSyUFc~F5fmJft^zhi-nXm_PIu{FLK4yYRW-+zqZB!w%! z;;OW}RD?J>c1k;EY!@>yR4iFdmTMm zvnJ?@s;;6buuB$Zd*^hzHLVQt|5dPwN0?Ozs_xw2LB$2Qh?L+#p!Wah*h&!?QFMW{#?+r47d4q{W ztXDa5HO9=FX%68^Dki2p|Bea%>=~?@PLz&Y<7zoqX2dr)cW^{z9AJ@K5%lx!^BWqV z>8ec~-cVm7goRO981eT|K6(07fd6cn)v#HPd~P8to7_O9+Ws86)|W6{WtC@c*>M}3 zDm2_zR_$bI}|GXpRiJAIK^`Yj2R5yUcM2N1hl?GQB4Ae~b8r)o(S?Yw| zcA%>a${%x`Px=8lBd;@yDu-psYj z5iiGDx2Oa?0R@W3l)TK$Xg~dK0=-1Og=0N*5&7Q~-t-^pAy3jA``EQAd_)a|7x9xkI^HaThfB_p% z)iZzrQcrY7N8esI0Od=UkptX*(rNKe5Y9PF`9D3z!c46&_XiDxOz5M9Yg#Q2NqrL* z_uX%b@es__Vh21?iPhveq1_q5h0%doeKO9t9}2ud(hGz{AT4py2l{X)jl>ial27rv zq`B!wu4)W^X6YwqGiY{xzUrrTbroj+g)JStKuU}5o-eZa78XCgshO)jgaCmWIWrM3 zoNv?5qV#VMWePVQr90?AN?3(M5sLADXpOvJBEAMr8`yF;0${6I&Q+FezEN45EES)i zjfa43*7>PGf2Y|GHPdr#38cWndoqKC`ro_s)1WOaPnRTD$EzV?ms@Mj`b}uSb0f@@ zflk1q)_9NVZ|LJhE*TIG1^ee&97DEuwCwYg@xGJur*cY848S3dt)8=Xc-19 zfMzdBKJ*B=KdP%s^!vL3Ba&ai`INbNI%r}YK8^>|F8HchB8dqiu2LZ;AqR8tr?@cXl$Az8QqnUaJy@$4DU<*y?PJhZ( zlUyu!4;z<{x8(%)|rIrS{qLZkSkaMy=FkhJ^s>Pjs0R3agAd(p@>5L`P4F3 z@80WwV3<-NKl=&r2h$Jw$_KvTf}TC})>ayiYd*rR!FYR?z3n>Bf3bk~(LiL#!C}MH z8`RE*kITdbt%knYz(sSOI*9@SLOWd@-_bF9$)yaj+YEf#-PI4h<|gZrUl<)5O3j^4 zL%ZxbwY5L=)usdgvGTy_T4b^yzJ_IR*Z4cHseK@T0Ucs+uh7%ji}6CuG<}YP31Oj^ zL4rSFY-Ar)M43U?qVgV8P0TT5&MuUCk9cRR^aRc+ZdvEc9}#szmAjjx!051cYRL!i zOMpgt5DFpKE6TH)-TzlbsbF~foV)gBj%5`zYtZ@4*T>&?;mmBBipgV|hrFWk+?woP zFyr?Jn0)mT6WAJz*_vJ=RDDoDOTAX`gIf-|wHAaGCCvj~zYtK6938!1{QDou@=*Bv z+U(WvpI1a6T#GQsP;^@R6-={A~>-)dz;5YK`QoRa?(H+fz&A&s> zDHR;kE46Yy=X9Zvj6_jRf&ZcU9-WhZfZF}wjF+YPU|xZ8zOSw7kp2O$@R@Z)yw3zusjH1&7(|-VH>_lf~l_wgj8f@Z(Zv7q4 zd2BF};R)@vN8Jcf{K*B8jA}Hybo0_&4>FJfW>}DKBp@}D@Z~|%;-MT>DxFen-NIbp z`|!2~V|7Z|J3J@fZ5n1wT;0q~>AxL@n!olGbn5Rr%?!p=3jcnje4`V%;TaOlrIk~) z5hh~kfPaK&^@bpTiD0wHK22mo0!qXMYpB?`8U5M_^a1C)4Va*35k?N&2SJ!de`ayf zDgIbU0a!cSF!UB!7@+X+0Y2)Tn$6E}h~#-Oh91Ai^Y@sB+zaMhIki)@_XlZmUL-tP zA>ilBPXLI>z96v3YJX^jI@@n=Fsnm$MLi;xm9Fp;PYDOsgT`CCJ;rHYzg8-#Whz>Y zOkM`H3=wU_L3`s>a1Qd(=R7-oe}^^KIf!Knk$n0_Uzi*G=b-c9kL5h;?Zf-rIVM0T z7RjPXYSd>Sl%KB8R;WO zs7h!qf7ifiC`MB8*|YjshRN@-xC@3{u|x*n)3mW-EvDF^(N)vo^z7{D=&UVBRyqzk zmQXqdX6DPHz00M(YIxh7JDVjUyA$~nHmk{kE(2YCf@^|G-y%#NO1>FX3b+HPrqOqyuE$lHYA(?4i2mI>Q+mI-Tz3&3Xs^NM5R zCya83;>A#NjT>ddPmxVN%}SH*+H?BT?+Uc1n|!i~PZVoxpDVIHX;?sGds%TRb^4Ny z`|xw`m^{2WrLtz zRy}E(1=D1kM3oB(PK&u32RE8n_o;LtYXKdr{AoU9&+|O#=h}a4BJgkz-j09KrvdD6 zarxN4?$Xbo5D^ioH=?OAr`o3m$^(tlwKO1g(0OE`t|)$DOl$C0AzEMmF?j->3BQc? zbQWujjTF}XjhqfVdTC1=8}uC;7;OG$esI|Jvl>e#GOV1t>g1pGf!Oo-UYPS zwQ){Fjr;eu?NVV_7~;An0c87hu27_{a^WbWHiVrQB_Y{Q-X9KO*+f*Ln(C?#`4-qr z9+14z@JA$-U8o)OSlU@zyE%AMK7Y}$Z}y52V!|WTU6a7o-uHWvYhm5mfvZtfYd_8B%`jG zf*CX$U5y^UmhieLr2fkd;pBYgKjH8zw5sd)!J~jkn)EPA$&Y;n1z}bCE3S%_4Fz?eWaQU&rDnv zkhCgPHS?t&r8Qk$(wAM27H+O7Ix&s+2RAp}n{K{3Ul?24>>GZ+H%@Jf8bEnh*bu9F zhx9(73+Pfl-+C}87jcH@=N@zd1WAV;9RJ?Ude;q2%l=%=Zw(EWF9LlhdM_^qeAYLI zj^BL16UIl!q@5@Bt_Itx96SM)Q(NfCi5W2y!Fx*Haw~mNl*io?*Zj*u8a~96n7!K?{pedDcx=9}p*%Acf4~TRqFXNgKOOKu_Oh|D5&K0~s-PzQ-Bhqxf+PcbbQDb(W zIC@`u>(%*Kle2T_^?AXD)d)5zg0rHPD0NI;--gkDE~Fq0y`miB=ZPo}(rr*n2FF1kI| zU)=isJ31R(gzNLQ(MfTGRCZ%paR$b~lAI>HL#a&@==>^2df0)ic6@}ht77AsO+Q8a zvE2+*u5-WHy^5C21Q0lme#BG3`R?Aup2CcPOPcn~uJ4{tc}-2_0bFpU+Ax4{*qEe7 zzVm|`AcsguAR721A{QCiZx`Ojh}*T6R(-35sX#lpMNALR*L?mhDERZ*UqCHZOHLy?D?s;`MudJzF~<;pZQMmHc>!I zSd5d`2^`A;!}wtVkxgyN92)iab~<7Fb8|BluOnj#hnsbuzS169oh%)Qx6*U8{cd0H ze@|AX>-n>_?0`GKwKN1=*B>L}I+U)j9u5`{YpJVhqRq_Ibdr?Nn=h0i^9rDp+M@#8 z(Mjt5PLf#kZBeaTzY)t}Nx#c$Jp&?d#wTwV7MO~G1+K3;Z9Tm-Ej?^=3(|Z`3)kf0 zqN1`FhSWd@?%O|k59Eh?$m!_J>5F=Zc&KikEUSV}m(fhwoS;bUGA1_cETjlHmW&yXr>#}MJrFEx}#90loh ze@oqsiP?iEVx{N%!36%qX0BP*wg-o_A~`ipjq$3=z;Ldk_xhVB5_iwtE1~JNuG*-=%h2>yQQBpRjqvHZ=rzU4- z*4J}%*4H5!a(3QgUbj%IYW}yO{bLpuh4(F2?~uNojGLlzHph(?jHrrqWT%$b;^k*OZM@Gm~1mX;9~i3#0)e%1;a zi3({q2e|we^DZ_c!tOPXb!e4urj;}j@!KD#qz%VpeXvrH`hi6sa7VrX(d6OI{D|Xo zQqN0)Qost(O-)b^h%74IQ7_|=<8{3KPna2*{ojhz1CB&(41Z+aF93ho*n6L;n>|p~ zpUyPaXWcElUq?YnOUBCw>x?i?ee*{jTvbBxm#b8&v#>@VeYU6j8m=@=Ph3^iQOL)K`1ENf_|c>5=J|j- zas~OCo`Mrvd8`{720FQwE^h|N$>GM2vK@N67uWpM91R_9aSR%T4pk^AO$L(VRtRWe zIz=R8R>^Q%+r-p@DARgSEK&9KAzE86;~nPXnvx|aIyi zkqO-VeMEo!!CPHb;%aahei)r44>2&Xf0au0bCxzVgylv<6AdT@8Cf1>ja-)|qAk>} zW&IYbmjPeR(eq6fMm*P8hD_A$-*}yfiEbCeZvP{559~X)D@N35Y2|jc)6!wqudc?C zCnouGTfOOE%z<=w*Y0;eLnI{Ja9h>`bIzm~!3i&vSX)Z=8hLuJKH~CpfBeHP1X4a7 zr)zE7x@8Hfx;o{AdFbUyBactoQxMU1k!SfLVosgH5wdr1@u%Qa1Vq>F8x?AI2IAoQ zPeX3@35vh^{e%Stz1)rXygm`JjsbbdW)!)!jOMXmJWlI3IVl$si!zaqxCo!w07XgN9pQYhV*AIma?>S_$e{JU17SdwG2JonfJ= z2^FxG3ZLXk^Sha@Ha>&#@^Gx_(K!DfTOTw{y&c{3)%|e%9!Zx?*^MN%M$IMnVH<)t@75uVS>YW-Y^vrA1_goTx47q zo)X_fQDX|FtTTF;xhs!5Go<=h@_8{j#*KN!G2CQ0vs%1_6*e<-GRmfj_Wr$Z>h-`o zWXp$7^HeY5PPOr=S+)BbN?*O1=>4x&f$3M%xJ@SFf`oQo!_8l()8!ufqh_HI?u|1E z+!Ix4f`U$I8ovtl2!Ly@cx81{lPxJq1a~soW7VZ)wO=BR*<^&2oqddiy|5^r*!{@* zV!$i}nX7T%!dZo2=7v}jfy*hjw7ZN(HE|l@xg&UUUQ?4FvabSdZ;#DZ0B`rf>D8ck zbp?R!)YRD7uMS<-rj*|Z!uwL}E(zkX=-Amg*|wXGPI;gH@@cP;CMo$ljqt24FuMMU zS!@IJPWZHSX^~CI&CN-}t8s47BzphZJ;Arum9y~|$O!Qwl>3o7a%`-~;TaX6s@M2P z7BQPVh&df6l6;OzN8-_EPJsF9{9rl8!9mYlv(2n?Q-!d(G#9{~I2(&@Uyrb3_8nfG zH*a=Gm#0pQA)URw-E+OTL&NIS8Na*leFzBHtS4FpX~0T$n;Tv?zColDA~-k*ou(x5 z)o^}Dy^^@kI3Kqx6>eYV*42cqipoOv^}KJH8K!C$|Klvqx=iNBkEyi3nAXO`h&0CN zfmGOSZc@k78y{?X(Y0lB=l*W=uN8W{W_^ZYCJzW_>M{4ANy|%2JGR!4O`7VoiY=Jx z%a_;M2?XFrV|w57iwkOM_5lH-$k+N_AFfl$$#t?~pPw1(sH=;7%S79nIk&$--G`i< zWQj#{pPg?B{8?Ih<1_oD%fsj7w+$=m#F&o5VW~QM6`q?rjjK+*(x?TBHxx6d8~*b8 zBN?HozdF2Xx9S64%NyrXpWYwQkdWw+fMDgv zqJC-E#mR1pO6X*$i-?K{aSY9yoL|NHa7&z%T_NwU1nbXTY-U*fcXlL>Q5}u;<_|9~ z-7Ky=;BXg3kcPx4)fkN!bs6kOy08FPX0_Oh$2^3vc6egK`^B!|LiK%dzuYIW1d|_= z1lCS|B~l>GZp6dIZtm6mi1Ataa%a>1ZN=ou`kdc%TC~fqTM=f7Y1=6|{|q{x{aKT* z6g6$veO`rMZ$_Dsle%`FOP_wr$f%N+!~7WLU3eZzUE*GR8k$zI*BO(>#~9MGup8NC+u5j@6#yme|G~%CQzhDJWQsZLPbSjN;VF zB`h`zOP+|Cw3T$SeapD^_~oadc!_ec8Xb*c9UX=Ep=7ddY!OjWClA~BcAKrEK5Vw? znv54<_gd{lHKm4yO%rfGCJv4ii;Z{RJy61)XJupzgexdW$af?YYnb1o(9AMFRRP}a z8~b&|A;k4YbH9GUMlvpa{Q_DwQR_qt#}m!s&CjA}iF$3r0t1q*@6V-b0hVeM=*6a6#WYx)O2s#HAz2nhC$585+~Fvo{X^ zNGK^wcH7i>Dbd}d6@E~;DQqk+Un|b|D>9eHtP(pD-6_@6a^nwUGngRuo-`W+YJ{V0 z9_y1&(C-px*Z=13j*h^G3yj?l4`4;@?5a9R^Na3KBPeM9YmHnN>{fnHH=C`f!ldQ0e_XG#?-nu!MEc9!;$vz1 z2Sivxy;!D9ueQ*_kNT1vIoJ-32PU{o{DI`#LWw>Ok++dES>N`)G7Ij}I5LIA;;V)r zjG?Ki;rG?R6@_!bI_ajteMeK1JOW(|b#*kD#;^7WpMJIl#)FMLAxgZqKbW04ll)Z( zSHSttn^%1epQUVdO@h#Ef5Q3tR{KMb`59p?EvyQ2j!-^!udB&?c0@dKwe`IKvVEmA zHU;l~Z0wn8&d;A)or689(mpjIAD`bN{?&~K(U#(5-;R5iNacsZrk6I7J@zFHAZ)#h z#iooi457Q5;`)IMM}s8bE}|L5U>|oXOYn@1^k#3dc}b4U*O8m#_Cszged=`TptLnx zkG#IDbf@iG3nk~ScYo*GI9<0p^^uk3ySfb?*q-AuX=p@5MU;$vaI!(}G*KpOU6f0C zl55Nn5|@>$psc(us|f$=$)yf$=g+;_^d7No&GX92=5o|k!0F^&+DGnstR|i-j%PpbyBxUv+k5{NpM|^E@09t}scKH& z0blfm%84dT!$Pc|9Y)yVf1#7VNgt2dLGCiSp`{ujCra+~-&_IPvA>&UGC`Mh!lM$o z`F3>%yYR648N^(xMO(#+FB*2--8lC4J4;W}>?4ipKM*niiw?I?)5pNu<-#~l)T41D zd}G?x75T*mm004=`R!23(oh-y+o4QH#+JRwYX6w&bQQEGKHoPl_wUU`WyR>tSjt^( zw(^6$#bb)#U^QgWUzU-e{o|DS?o$XUK+3`l{+-A7-6Y##0@~U^(@e|27%H0)BReyKsT9cpV1^ zJ61yS(_T(?b_5N@OMU(GbKLiEJbbG4Iz>%m_h1TUd*;}*`3Ayy+}jVyjYE{}a&5?CAkBAci-A98r>hn>qM7dC%t z;W+OSQNkwxisVXG7QqyzrmpOC&8su|?8<5iO+Gr(|3zMZ7wPQmXm%*VV=2UbOu%o?Db)vgG^U++5Ec8}9S9>nj5T5)#Cold!OSvstx{$Nc^t z6fRfjOfWYu=p=CqPOxF_c7rz>{Foc|n@GsQtpcPFm)k??!M+H1p;r3iojj%*B! ztH|-jcRDk(!k%aNfkd6QQ<_?1?K-Xpm$C_bpgf~N2Ol>)Xx646FVC;amVxkY)Hk0! z0pRty(i@Gr-00dyUhh(GH&K4*)0ZTHkeSkrJmPd7zE56+&2F1zy6$1 zQ`48=TzeIn2X0O8{ZLFGzI@w|{%r1@{PVS*UOPw4Bf5ny7$0bs+zdSnFQJr==ohDw zfAVJzT0xToeyKF`%R_5ywmo~sNcVy-iBfn0x*3ITM+!!w`YOiBEzO@TC|Fo^NXKoV zpdWj;z1Dqu)kS})yDp_yZF|ie!^3uXvbX3*gK}nD*c9Fs7bE(NqNnfek*rd^-3w1f zwL%DocU#+tPh|@*|NJT13Dd{AI$J_-ZZm>Fq##c2?jLnY;5GFsEexKHTTfPR@l0}e z(-N|1#J6u|Rw_U8#}4c{Re8nYIUULp?64A_J9d<|X)>vMYXdw4(s&2+977hBx3 z4-OLl?vkPh1oMmS$HGi3w6xHHAI$hT4vxf23Y}V6sRxhOr@c%LmYsjNnIeLMdg33@ zAIc`Dr2Ji!zY7K`Tn&C`Ir(;6xuA~Gd|#{y5mMCkiT}jK!qUwlB5Y0J47h|g zHF5k98|4LH;myC%UNbI%%GJXe0x&A;s-sKCduwmsF&jS~i54W!Ahk zANFL;(~a$g1e;`p%jY6CL%U2)LT95O=w`Xd%T2G1V{KO=S6 z?K3L5h2osc62J}m#$DWjD zi@}F3emOwvo+GN~0D%agLxhBQIc=*?R;lZ z{5Cz=@HG~GiX-U6ogtNwJll0}Y>XiR5iV}g3~ z87Dawwq9L|tn6LM=W@58>+o(v0~(CebfQ;A=EoJsl`got-v|in=MU6kNXs_G-Opw8 zx?u`2K;?0jG0{`yh{;3ZP|WuDZ%wKVZKJ`TT>|F#AD9L<+?gBU z{08CkC9AYai5rg+f$*!!qv2Q^cVX?cB6c@0D#>QVu(DFgcoa4?s%coH$9lOrh4$uZ zU;zDO>yzQpzOW``@KJF<0Hwtz7X&ajYP`X12i><@ULJ*Zm#S1FLG@;$@B2HwwKXE+ z%Usk>Z>dn1N4UfB(PSm2vf_UIJmR!ZboNAQym-GIy>6e-g4edasq%7NX0j_o@Y*qy zkH;PII)sH+CWnWwG`a>5a=leu2m(*S+sBaayhpW7mRST9wTJHMxZP#uD9-16z`HP% zuEX6tiuv~KsCz{tcb;nTw=um^Q&5H0_4iBc5MPc-k(^ci;o~#wD=`UW&RgWFE7N53HTuTp5@VgZlrT=yF+$FuwF{ugyTMubk zEr5^y>iiOU&%1mN3k%-q-AhQeij{S;??WF!c6KeReu@Q0zoeU1Zf9U7tMafQg~R6@ zXIH+u(1N*RZf~)ob8FjQF8|1A>{rxj_Ait!UVUF5!$dy5gu42`pJgTpf3+wtE~!82 zve~%7Z72Fvn@F;2=-F)}&}`O@-q?WlekH|xj)W{Oc!m!%pf#rc*L?50e0iU79-nvb zzAbNxKCX9@H|F3O{iXH{x>uekR4M82$U0D`URyJHvuA$C7%nFx)2$|hJ~Xb~m|xgm z9PH}Z-NSOyusU*l60T{_JoaBp0Lu4Nz1?bv%bHl#+{%lIV!tcr{2vi%(PEl;4Gkv= zA=T%vI=7zEe>d+G|2{zZ}2@AvQBb*C0CTLy-K2FgVypW30JNefzg^zRuX!@fsx zKG#x8FJHc-fS_SuV89T!$(z%U-=(t4VbKq(hEqy*A#N+iU#Ad2Hm};~RE`V%C~)W! zK)bLlIx?955+JDFkN-M7zRb(uL^n5wxbm;X3JAL!6g{_De6Yrk_^3ZvL|KjPVRcpd zL8j2#J!fyPJ9^r3xuoh3DAJp%(>Ci4n%}-QIo@Du)Dg%2nz(`UqDErCmYp3SmmPIK z$q~g(LUu=_I`!>XzR1=79ZJ4@C>dGCY54B5iLX)bE&dd|2xV=I4^OM7RUp(L$q%<@%h(K;76mXEieRehwXLWcx$EqD{ zA0vgdf&~G9d5^-}r8J;1FfRoWa+w$yGL5l+TvD0LOb1{9xVtR<*yby|cuk7RuBLhI zAlnBS^=6C}YnD>kWb@a3YuRKbc3smb!;hb#lr}`f<+S3$#x4C~*x=Uel+2k}@B86q!+WK#>+zZX4@zz``qLCMP9z z?g?gqNQr9=IQ-j>l_X>X*gfvoJW;sgzl$?}htFz1JwY+HbcaRZ_Jfns}10{0&f zZ~Qe~k?V;?Pt7SchoZ5=mB$C{)oKK&)Wd$KV}LSR0QZ89?sB`jTWMYi*4lcrhpn>= zkEMq54Ld=TotI=MKC}Os);cA@9eqn$Vp{3Yp`?E~&=HR4uIRV>@ZJmM+0~mW%9QP! z+(qzdLqT`4N8YrJx%`VoUmt+RIfh)3vJ@vmx3M8rn~VX3w_O8GJN|?6T(EX+xI5J~TEW14mCUm@TJKNKfDLT2jM?I5+c0V`VDbg@&rP zZRtJ}2*di+lz(F+ss7SKXF!iS1SAwG>6QlR z9wMlu0@5KZUD7p0x}-;!fG|pGG~Y9S-}yuS@xse@@1EzJ``i%`ra}fDb83I8HbLM@ zCi*Bnamx>qBso6ogr6AOdZ(rSKw_k$^UhqU5wWGUF>Ovh?(bILU*?gtU%V>wKUg}Z;|H;d)XQ7I`K;(|e>~mMVYg>kXl$owgopQIS+o z;L&Oq41Dr=i-ur3imu@Lq<#hhFTXe7{OXnD{4a!De(moN7#D9^Qc?h~0NIl#^{q0W z=H{z$oECWHJeqET=dks;kQ4D|I0cXB7%L^EH`C58JRt%yQJz^`A1LgyYkV~2_eZii zKQFJQEH7_;W_wf8XXj0MaAsiR-n53Xyqa2$c`0R`wbM;tB-2---|W4K9kYVSS0l)G z+J}J2c_OtkMf%danT!Pawbf7J$#ZxbjtlZ*@ps9w@S4;4`oC=lViOREY$%~Z&clZZ z2|ITlE94+a*+m}}l~*2Bp+WBQ%};1q@`t}e0J(#-;X}mC$#$VAyUV};51()o(72P_ zIUM5nwU?0WQ)oCxd;@>K?#=-tV2j1ZO-F1e`n;CBzW)0c4&3x;@v*V@plKxR4Fu*+ zy;rRzT;pX%gS}Eh!9;YT0d3!J-{)+6J|)VeWfV18G&9DXB6I$C(s~G&o}OM7xQG4x zY1vHCRKJ~~?>DDa@bV?_CofWn<#qr0Ie`)$1S-C>Dg=F3h z%KP5eZqXZn7Bro2{&1aAfC~tFmm5NI(89vghC-oWup#o-5^qHvNnh0;4RobHBDpt) zknrGK(V2ZNt7WsL*E0EZ7Xtj881>g77G0YgQ31CqDrwwCe5G(a&kVq^=a%dYb9GG) ziYUgk&8H^=51-4zlRqwo0&uTRuV91(=-5R0r!zNsGq)0B~B^urjU;| zbFLDAZb6z0ILDyO44>65eN<7k%=vFs@a4-dmtJ|Q_u;n!r=FACrd$ikHN5$)wy5>k zly-4x$v7_?8#$vfT0Rtu*6GXCJc(+}z_0K_&-}G;hlA|f7ok*5Z5e-F@p`*GXBQoC zy9<}zfOT4$^A-oHo6$!60jFnz1hCICLwg<6hl8g6(X+6cQc z9Ku*}x=OY4ytwj{Ur7-@#Lg~%sF({hGn<=shpa@OIq%nt)_j57 zzh7^ytqFm=N4;Ko%&!A`hw~cX>3$AOJT3bD$6flh(Jfe|a(wjXxf09#NJn^-d0P;%g*XzH_9M2-=phiaH z*MA;^h%lEj36;VXRB;ilZ0Q74P-r);`+^)|Dn^8X6db9pw)jCIbJPg&Jzz|vQ*MCOpDDM|=^q5PB-d^iN2&70##85FrGUjYr2FUQ zAC&#r22l>2s90vyBw2JBd0v60xPgu36NC#eeZ^q95k8Dhhto?p?W4=P_2%{kQy+}j z*}eaQD)^4$`=c)yj;YdF_dX~6`D8*xhb>Xm4;M@z{9`tGqdAkrr63V9F%Z_Ws3cEd z>g42FCV{_)4)S|Zh_kqJH9KK_d3J109zg+OX1x!WY7N2&d_Do9K-wYv&YPw;eG+12}PXa<8Kpla$wTc z+Nv1Ku;gv|=^7PQXiHgv`zBswhY zScQn_OIaEI3xa}kJ;zwkwwl^9S2#>XhN=>P*9Yrb_;^d z6|EV$C9L}|KNdQQ=@LBF*4Ed~BLj4)y~^gB^s;H5%X=({ALfTzlsNu=zOIh;zwRAd zSSixc~5W-zyw^&;! zhD7@h-)(XvV8r^jEF}V5f9?fu4d7M&9EoMNyI@lx;d}UJ_-)JV_0SwLXg8;9)+5eit}S#y;`M4b%Rg*`<>oSj1TVz~LTrN)A-$DJ(3!ApKn~a0>^|#rrtbkMb zm5reqz0;H1rq-P}cE*9p#VX%%9K2_9+TZcfOK0Dp7k4pJMsgu8PJ_w~HSv&B15azJ zR|<-C90LNzIT78jX8V9^>bbM^2p^||O{GdQ~dlu47kwABdK zw##F)A+LF;?3MV$RU8pw(j-&+bd7a!tT3{wz99JLPZXz(4a~;}&AZ^=WI>d%1Z?3B z1X{d6xW`;5TZiMiOK@_u7NzX!9WhZ+5#d6t$@0XlHi4V%NGdLh3hz-+!4lx2yb{~MUv9Uh@-#YMBJcg0se*@2gtEP8^3zPFw^pcj)Eey+3w(c%w2&*u1sRf?%> z0zOZb`%$^aKe9l93D^+B|68fwz@pvax2z;g6|tWvfkG4&J3Jr!PDo&5E#2HH*S&vn zj5CJ|LeF+5aw6buLBFP-d-&`+F4%KR76-5}JV}YqmG~Qa71V}A<}ljXL+9tqONzaj z0wmnr`W)BR& zekW8HJT1-7v!NEAkYE>KO~h{(@7sM}?MpTmAKLPsnwr{*kcbG-8@Lvr=g4KIlovZ^ zW;lAJ@F5kHD8H(%fCwCy#vfQBK@@z}XASTFZjOJ-Ea|}lZ>eFqBm}&(?|5~w=Y7_l z$=_td0fJg9VTa|Mn>jx`CWE0qe_sGo15E#f)x`N7Z-{aUXU4hws8tv zp!nJ@_Ei^P3xQxjU1+|y+k%nVwLtgJ3%})z?7BG@uBKZM=Fpn`)}LSW zkQ0#M#gyiy)O<_YW(*!b+5$T=hP~rJ);ugj`K)SMo)9B5vp^R!W?4UFcKMAr=gAoU`y3` zEo=aptuHtktR9w|+~kEHjA@a}rJ$t%S3E_FpF~p=;fceD_@#-u943?h542(u5m^wV zfPW$*B*e2288M3{su2|QB`oo)CP@5SK{^RI04bThFX1I6Qd##j#3QexBFRL0Hd)VHHHHH2626tds>_I06Cj|3DnWC zro4ukcG?}YikeMv90ltZy89ZtSLgVl>+6bK?&-D`PGyX*bZ&sfh$$wXlO zyd6U!GZo@0za@FlwA*^VBUcQVhr0`Hapr$`fPzcvpJ{^=w(~|^OVC0MR;T5 zhMF_exX;hPI~~i(6+BZ%ur}MubB>CQy~Q0HYiVMvq$Fmngy-Utl(4%90TOlOpdk_D zhHoCDoScY=2hLY4ke-|`{o5|qA=GQ3bYaS8-hOZpUWewgZ<#5XoSR#kQ=Ei&dEs#v z;lBMbRx`{a|LBqVgST(x2mcJyKFHaHnVAKRz2ySAT{&}|RFG7$rt&#=?DtUvC+HqM zU>UFCy=5-1Ti36&9v67A_$1~D!4`lB+5J~VKyEAE?(N#Wj<~!A4^&_$Pnlno!sIR| zhz*)oT9L(lX&_KkL*ac=!Fs*a9(*p18F`cCIDCIa1aEhAtj>3|K?o?H-tI3467Jq{4!-;F*ty#&irhI|vq)2Hro0?EV>Jsuy4gYi*|+@amV zw6rFI*A5U!daWR`;ovkxYKnIm2mxm$t25?F@PCg`_g3AeTy-hV4IF=->gGe=HJN($LiXgP1x6Cj|gL^E67pK10v zu)c0VY|qp=Q=LX+#J~2B^K8#FqEeyFA_J*&ej^IPZ|!)2=W?@;+x17ZF`5B?_M`0g zMnw+rsm9o?X-&a1*i2N3XZbO0_Ft!LL{zg^Mz_NkEYYVAe{8gID8VQwNcKrur;hfI zk4KqQ9Vt6!X9YWF>0P{nc7XlmR{2a5x=+dv?U|mO?c`M`EkyoRPEO6_n-L1a#IX_i zp%WX3xmGXFPDO;r>axl1b8@=hV&I--de_hTe@@~2y!xIUdH3nxu5TlZ<&bwI1x7L> z`L)j;e7}sSs!|^XERTxt5FQm~LwT3#P9L zy7L&cT@{|A#^DziRq3a4(4(UP#iLDm@SEiDxxv9?*D)e6^3GZFKi>Tc;=B zUpmmorGm@(l4}Cm+h6CLJ6O25n{GtYk%ecc>xVN+>{za@y3U<$sNJP!@uRaBuN0~U zzm%4qy%9w#%Ju|gobks%0d3(I-7fT%ZQ-4f5}1QyRKfH-#KEyEenx$LQYfI&r_&w6 z#wMwy2Kk43>sb@&3U%QM2s-Oz-Xu1bUAe^Mdc4+hAlMt%{m|E1wA7^3&?H687Y>pL z90vy~fs}>lwtkbQNbA7(ZHt=MzuI|U_#LOEow;V;H(i-L+6OyEx&UGbGqY;D=Q-iU zI*aVL4{9`&AI*}5wp>jtmNI}n9{-nJ!SIgBnd*vL%prX?nSkMFL-&Z}f|YNyRYFl| z8Jb?pBCLlyxB!gUfk$^F-OUlazgrIggp;d*(V~32k41|q4|yvqD^`2X(NP4^Pvi10 z5IwL~csYx$f~mk*v~k=H?bq7mr)p{*sGky;DQc2I5?p@H>*IsgSK57FLREv?{M=&D zWk&Lfqg<==^YD=NZ@)UvA#i82>1#UFmUP{hXfEGo^?62m2%!H*jYC~dUk@j9rQgo6 zhSJMFxE+o9=0cp3a;If@Z0zr8cJ}LWDTP18mrrbLY<#_+W1E5>LCVVb&=CpHZBq&&=;FEm|(*eA8`9Ncq$V8P<`!DH!10uMw}uig|2 ziBG64RsWP;s$=2^mWo#b>#eLzq}<*g&*@Bo-8u3R1?1&{?=9-*+6-1-M}SW}id(dm z;FW!G`h+O?Ks>45-#wSFE-{#ECZQpdEOjdIH2HFGXxt`&&uir1DMY8t|DrBYB>4S% z?ClUUc+AkO0E#l4lJ<>)bsmljHD$%88l7nIEdEueLo_%SA0B;2HyRr=RlHCCg#Y#} zw*ify$)Tkjw$o4hq4zc;70gc^Ud3tNzl|U2ua*+r>4-y0MMZ@NDQ`KRwg*cm8c>|q zp8{kYPz^0hLIAbtMQY}+fqJ)~YMfsTj}ne`I$Zw^3fb#dehwHEPck(z;VcehI1cU& z>%MdqX48RW`ok7dn39-XVpfQVjxKxH_h>l8Vt<}?Bi_CKCGP*X3tuK&HbQH?UPR4$ zDFz*q{YsKiGj%3mvY#$KKF)^se)SZ2b=Hw4aqwodM3LnA?@Qai3Wd!rZY17D(6>Ln z#Yk#w>=v7_2+~(R&G@I^>Z_0@AXI$R99|(h#Lk{s?_hyTFMFXlJSHMeL<#duWrl1G7m@eF_4mEb7v5maAsr<+%bqBKirQ z&72tX^`M`Z>4D+uSYq6!7yYixcB*;w)rOCu`~eX*>n3E0UnHc&d* zmwQLcSek$*G2LY=s4xe7s$6E42@U>5*5pJzESreDD294DyO- zJ%5=@3x}pj`GeM<-)rJ1Ud1p|I)t23K8Yw%+1F+PXj!4YD zH-2BU*?8)uHcpb-;ZuVa+V0Hmnz{J~w;`F;5AcG5;y0_0T6w%pz}Q=xz0?NYyf7&= z-UGzrS)kA>U68zU0=DH4$| z;r`8Wyz$8!a3Z={Hb-ih^wHSQ@q<|Svz*&<3?f*Ac78LVo5PAN1|Ueq{msPLIiQ)@ zQ!1%r>6FVJc5aF)^iy+jwQrNZ4z90{;##5iyHl~@DvwO0Nv_*OQt8;gU>Y#^|=Tl zdzceA5Jk*nyGh%z#I}S%({3XvH8i7}%If=TtXTV~Sa5|&BPa;bKcU6U5<)We-u_HZ z)!EJMOP-!{8VKojDnr{Hcq|Txg*2;J1b<-)%5r6NAnAKC-Gp9D^{SWuRr}q)D+R~J zX`!s5?UMateEdw(#oNPGMp=Jxtrr%@RQeOnmbu#Ime_zUQ4S0afJCTKOcV=Te=(Dj z2S9`-ln44`+NMGE-+?6C^+&HV1r0m#Jh!$w@wW`&J#lK+LNrEHbF3jSg0YUDhNmn# zWRSPl;*2oJKweRRx2?`I*A=VpjKH!s(szlPiODpTLh)N)-HOT)F_OIp?sSG4uYt{TYEl7%O z%V!9{)vMidOSE!~?thq-S^lxF;=^ZFQx<#IML48vmRBl+WoU8DXhNR!^5r@_w6#9(Y5wR`i6g(MvzS9Vyw5Hl|A!2 zE@_f-IWJ_C`w)qJN4utNWpn#d#Yd4G;7rY4i=_l=9beA!ESg9VgCRWDTusAXQZyC1#+ zFrwMhmYBo4b<4=t|KEoHw+F?pb&|Q5n!xo5@?|0EOZq>ZftN{0azgVA1=NBmgmci= zFtzh(k$~;#nw8QaH3(oyn~c*32d9+%?6jVh*?>NJbT9J5`vmkvH;FwXue}$COm#U! zb~ePqqEw=@6QQLs6)3*z#UzFfh%h7oT8U9F*8^yL3i089gPlsQo2~x)0BBn zH`)@t#r(E#=C~{lAavb+L%z7RwRQ3H8UlmCLWZ?5jD(pV3nztfadD&l?ty`(rlyM% zBq#DQ&6RM%b19pJAh3r8<(1qajt6x|miRu$z`^DEB%(7)t{FY90+_O4O;R2Z=iTH^V?LsbtLTgd zXNO1Fdw*h$TgrG%EcNL9jFk(P$9q-e8#oqnDoF1)9R3|NYC`CieEcyVm=YL3iNP8} zupqn5E7w+Gq)(KUQ+}C4l9D28j0H>Q_VI}n;Z5gmeRkGBmon-(Q4KSq+7+SR`15u5 zR|7F1I33S3O9385x&MSEBssZ*OqT)k9Uk2h47SN|-Sh1vK3NQ5c_n47q3;u4SXH&P z3yh>stsS@_@T72i{Ckh(k zF7vB{qrIf;bzWvoL9n>zn7z?5^1KgPA7`wkRVuI<1e|l9MkwPhE-$+_{;qA7Tm7z} zq_j=6%?VCGs>`)<4&T=|aMI54=^kne|Lt1@TZRLig9XFJ+nTaQrO&k5`E=7vbEG}F zznlhc$pu|f{PNQskk^RG9144=uWx(p^-v-xSQHrn>r3^1ENL&M{#X=z-`kGJX3_WW z8Xe}kO_o~(rvOssFA}D+`PJ}N8})$9Pb@rIVKUZ0woEZ}pPX^?{y-OF(8XVN%74E7 zm(J?vKFgCKBadHozrL(@oT+u3(HkgpKHqVR6~mt;6sn45wl)#=WX}cfS*5(Hp`qa{ z$NRe-O^R~T1~Ys!+C-^1uGvyT(YGsT%Jk5o01lP^vR>o-^l1r2gn4jmtSwh!Emk6* z7T3iSDKoZcUM|SFPWx z0PNTD?KEtVFt%P$T~sCbt>trPM@Q{^2LoV0RZrl$Ed3}wA!v|SACzgDb#fO1gtdjO z`;ZsfO6e~yalz=ky4L;NDcjiDmM8wi5cf5ioSvf@J76TbI=tkY1m#83ya>x z>ub7}o%;-Urv*9C`g(6~tx4aEn4#vnfFBSBh9kRl*8TaE*2Mp|)lXC;Ey}ZS0P|q~ znLSof5obRI!6~3hUw-ogQ3;=2wo=?aAcj@MQX3_i$}Z|TA-`8`?P2hl0}XBt4(LPT z-~QxOSoLe;a!sZYhdXLp46ZEX=nU1lRb(RuNLf+T=EtFNx+-=Ull2`Q@IfgkTrw~TVJhw% z>Vjc6ce+<)w_^p%^8+nV7JQ(hE0pAvR=nhQ4Hz{N3?LMs&TuaFxuMB(lM&H@ho=Xf zz#2YyDfC-3%BF)d()*DLuY zmrg5>7d?;79$4O!dr?#ls2zR+qLl9=f6wC~n4WxN5MNuvWlS}K9q$+gYart$p;lHM z)XK>s=pF5WdM^@)OYQbS%$=GSva!EDBZi0lj}EE95BgDPiSf4dK@A;XJgiLC@W}i6 znwd+&0gbwBqY^k0gi7&AVgcD@lj`(0*GwUsA8~FFY8u;V8doxMDF}u)_O0+HW+8hr zh|CBg2AW3VZ1SA*bRIO|8<_-5f|uBdk?N26cIoxW3IYoGT68PDTX8u(nh&!u9{TWf;S3%}8ys&>HXPIY}Hcx1WbMx{%)r%X~GpXWI{mLbr zc^3bOv$^;RgQ2%mERhekv7u~|R{-`lB%)5s;hu~?A@K&~rKP?K4Ywhhv)8+#CldcL zkrr2kCY|Q^&#a1zicVfCV;11(UyHn?WR*e9P+jsjb0*h~+xyDOH(xDigY!>;2C_Cy z9|28EOW;*gh4uEVbXY^ezy#E|op>jFRI{>nVQj6x!aBHng(fof8|GXmR7X2it18b9PEU3U9&T^GY}BezD$ z67RX^7b}zI?~?h)i6()ktBEF-vx9SUFGXk`Bh7Lg$yR<*DGI?(+cKlen~waFNEX+Q zKSUTv09|w9eOqo9YwJ%aZ9I&l&cx0Kj6cG;tVhr{2pzgFGSOa(3OW8B<)RP}PZ z#TCk#;WqYdrmOEu?E!TR$;pYmLPB6y-ePHFgqRPUp1CBWrgZ|m-ZE8A{PZ}tAz^g* zeWsORk5V$xg^rH3advQmAQzQ)9&r;;!Izg+4q_=6mpgvoP(cCsqm%SRFEczmHYXe( z5Ou~?(e*{6EoUCzY8X}=4u~L&_aMTevW8R|kqc*qlQxoY^ z_4$^j?Umz)3)>Kg=Y{g42QMVtYMr*v#=)*Httk*INu+Q8N5AN`G4Mwi)qVk2j(ZxI z=1zoJ0gerl_aNImtysOX{m(@qk+j;?fw$p7*XK$zL+-)7y-jpnEf6K8brX69D8LTA zfLI@FYfWgf6$)&*l2!u_oLWYW!5u4bSwWVxznq$$|Zi`a2$|Z zWvu7uNmcL8v7I}8m{C$#64{jJ`n&t|K;AebB_)#)@~t-P9Sr{Y^Bb&1)cF}I5bze? zydfrRzncLI9p5)yuZjO4T&0MqmS3lW%N;&>8zsrAuRuM4$XU?{a6{U!?&w22D=v-H z!2%qOL*A=Z>E-l9^c}< zey*-G`Fm3R3JB}@`KK@n4Z@rHwPKbsfF8~;;ZOc27 zwLwDDeYNki9~x^-?`k_mgdx%XWcM4z@v(oU*^8y|){EKL*g+&aE7WbRe;`w+0F9#C z0Mt=C6vSc97inhCTj5u?KG{_2XUsh@_CnY6Ry&Tvtd-t8W;d+hLxFi1x89FRr`Cxbc_H-zjA6ijaDOOzx-P&T~oSK4)iV{l#bBNN?fV9%zSnMw0ddzyR&M8vh zwuV`pj$fFf%6a2)Wb=E*?wcFLlwWR_tMh>cPT%89nEcC^4|Gx>H%K&Q>4ufD3kqtS zDW}i63^{TBtud8J@(A0&uN79O>*dj zChkwryK!JeiqlYw*c^XXqB{xl?EU8FOQB$yCs4i9dXFWpMqpf?Uq2B9bWl zG)sSK3jMMQ8Xy0{i4&^%{5b`CQK%sCME0aIaxg7zB(LEP1g^{a4qMMOuN)@2tcM%j zaLWC`Yp|X$nM-%D*;^4R?tXs*rSJ}HXZw+9^h{Fcy+>OPKu;r?gNqm|taesQ$9kG} zUr)gGuBn}!lan2%0F#^6A+A`*{GOhT0U$+&uhxMez$8XlhU>c~kLt@C>gyS~PO*Wj zt!_y*YG^3vm5XPsaZ_T?nzk-OWuZ5-&Q1Kep^DE5z&7pMw^J;(98A=XnMK|~YRBBc>T#XSs?Ol-> zWBp%@`I1yOo`aqVdIFSAWwsKaaKs9C{=x*TX>^Y-zkhSsPxCjDd_pJn@)yaZz)y#3 z{W|DF+=oxPtExWo$iJK}MSgpMF=e@Yqt&&lx1EYa5^f`JfUAU_4V)Yk480YbbIE?k zd%?+Nz-~)B@?@kreQ@v(I$BLx+0Ze)#jmZo+KUfz==gZZC9k|Z>${b=>$S3$)~I*6 z4gs?9h`)9MI#bJ|Jf9Cx&uDZC?>o-{?t^#Z)6jmdN7dH7`@a8Y^DHjrecJT{TS;e= zt)9dJELPT!SsOmiE{-*fLCx|up?5S*OpbS-3Ni8VRo^RDdmfQ89si-I7Gk*uJq-{qiwbrW8Tc}H4ch3Znud)B znjOpm8p!PI30;yyivmuutwP895BD5lqLJUsn_998KF)DwYyIU--}P83UH0`!_0(I9p6tOhk?8OlbF^DW9hAJZq+&crp`o*Q6xf7NY^> zXWyuCzPP0N?07{Ah>w15=@ExV$|&LvL0eji0*R>^RX#!PQok1_5m7RYQlgX9P0OaztF&@uWd(77xcqLa+BK`K zb6toxID9Xj)YGiCId)+$s0P=sRb!==Kha(z6=gh5FkrmgbVGE^mwXV&uE!Kr?dKx}6_37zv z7G@J7ck#?PUy{cTe=G_92P>jtz~qnJ?<^f9W3l2YH?|Jdkh`pNQ%wPQaLgz#?>3fb z$aIQ`v+qJZ6dOX$VYDdVrChRq-<9wr(u|d$0j#p`^sP3?F`YFjIylO4!#- zW4GS3yk6HXVv%u3h>GU=kjwk5>f<+QuHhvBLe}_G;}K7x?Y~<6K1wu8b&ZP$b%+hl zLOZ+Xgtx&4ruw+JMeSMKVMh~~r$Y%8{vbvdkfa=*N};4a<~7bhytUXaLlN;}aX4q< zDCQ1S%vo04<$T&VgFVq6&!%A(OMb_Wsuq3gE0`-zigi1zd6KMa(WfzE%1^Xlpn zxW8!|o*%q_A3(x#_hcOq;G8HZu^^I{$Ly@>r{VUAt*E}*p(b#NFoLXC(7ZZ_WYHzm z)R<*`rudi|5j5L;6I{X#cDhi&B`85Py~MD}m2umkQBfqrwW{Q(ho92}bXn;3=~TuI z9Jfm4rWf$p%YZVYr zuG8Z_e}2nYr4W0f#7D?!Kr--jiIZ(@zd?@#^KtxnaISocqH$y)L);D&^ms=Gtd1D zXhw+kc{~VE`1{QT>6s>CiKUs*)!RCNdf~`eu>n47P{Q}J6zbqvp6sEK+$t*gc=7QN zA)z_B{(c}RDp^o30xT&;J3S-V3vH46x+sVaj+BGgDI{j4ln$KGFVI$$?F9~ zCmO6A2ptx#?AD?U7mv61ed=o98>0hlX`V!2Jz{m4qXf(uJSKM*@a*hU*~TY;+^kD0 zgb!=1F4iy8 z_vcZq?RHDjAPCL71o&|Nxez2&Qb$-XwATN)Y!_{7TK~Vd5-n|{Tyrfcq-bvz(#-ey z*EY>xr*ii|)q7^i{AQTSwiYGGyCZ#+w-3_5b5Q%Gtf1xDW1dtDN4>-`mFM--H(i~s zd0uB9Ftcj4E$^O#;f+(@`beMuXXgX(%TNKpTAi0#x(=lMm=S2d-NAbC8W=Ec z{h^TeJf54Z=7WH%(sf$2W!Uo#U!R39P+ppub@)uK@PYUW4s2s~44+t~FZ z_sFahlvFb##k=g|1}J6&*cIH?58M-D455o!{+; zI$r=nbbb3i&@aE;3<-2xM^3rYM67hC%g$AM^t~x=e$p5*_t8>81SkR;LvRdV16G_H zPkq@B15Y>T*v*C!lS$sal^zZK$0Rh#;N9u$1I1Nzz!z2mO&jdITNPikWK3VgwWW>? z3?2=;#N&cHo`1@#Vc0J9oGX~{XptsZ1X>*rf<}BG_?I&fc{ZPU3#j_HI*@vZDIa4t z3f2ThBO?!8qdgJ82yA@r_@A!GdRDva>~{^8)r(wL00p}M-YgE}$hdy}%l|I{@m@+o(8^L;-A8%W)GnM(;)FlQ|j zq_mPqEnvM_>>+t+jYT!=ax+`jn8kMpL`#E+on4C>|8 zqgi#iHpV!feX)j4UY-oI3?Ce9oW*_sEG@zU>os!WT|HFc*M_BMP^|I^BX<_tr8j5UF<3&o+#^NNcTONt4Q zGpbHX>bPMom&l(zlR!AAX6>4iouwVrdv*5DX=V`P`*gJ&*0evL8m(u_DlWdS*((fK zJ7Sqlu5ZiLShyx+db-&6+F=V2lc3AL7IenA;N&z=Q2|u5+=5!ibAw+K4v2{fclddo(Usc=BR%b3eWoZ~d|YPVhKZk`Z`jprqSM zujGz@5&O({r_{=khTBemXcEj66moAchjdgB&GK`PbA#G~$2f3Ur&}%l*#M;rq@k3Q zD_#E|6b)D3k6njg@q8YpIHCs z)VwHcQws|VEz@2+Yd|zI$OtDzM|&f}1bc2W?~881#3BK^uzU!*15eoO#&fsqNYKEf zNT(9#V%qA00|kkHt@rF>V~CQpsREv;ApJL6#@69=`N_U=JpnEI4iez!-P2>^$;u8R zCLWCu7bm24iNN;p@4L-qn zu2n~sD-PISbZs&snT(BG(L}E1B6j~~Mie+Q00}rk_Y|0eFA_e@*xZv_$fJt|wy;}g zuXF2g7zKjq!p57;Ebthmz4sPdiLdqiIb}0jGKiLL5Uda#p7h}tRRqnMu2?1 zw2o4-RpchMnEHC2>k7oksOGVeQDESIcI1FB4IJ6I_B*0NG2Ufn{6FuDi;wV$Q$Kkc zIjs5=+uS@mBb?^vT784jll9#fH}4@v4-RHmc@RK4OC%RqY=M5j2DF~8`{W45Aj4v*0}ZeRSc1ns z2lFnZpb2?e&^#zK<>Lf4x}dsFF$)WI^^tWFPwvsMtOJ9GzX4-4&1{C)P{-jZG=k3o(@%>-fZg7u}V1XrJVyhz^DSh*I0deYzN>}fR zPU}C`MV2-;vZ?6<9z%i~LxGzCt#gKnUoX#B=4UctmNp9mgFca&Ls;U#ESjq(2cr{~ zYjJZQT5zr~RY<>k_g3elN5D~9<(05k>L|rrw*w&tTxz|uw|~pOshOm%ye;C`iX?4e|wil=Q9#7Zc$dr$xJcKUoF*sG*-;>N9ir7NwJ-^WLLh1kB9tq~WtNLC# z^es2fT#MqNDZzDfa`KL^kPz7LdfMpIxGX>FEEiz=w*s$ICIiL10hadY< z>wO#00}CW4!>bQwNfeE8CwkATnPn!~Oj(A-7VfPFNfFh%t~fb)vinp4LlNII9>W*d z^bB2XvU9ih_L81&3NT=7yq9{INxNO$-OJqEf7>r?EijIK3z8$Hr$5zl;b&Z=;k2{k z1XDIdYxFN)QVJG?xW_M5k|nFu%hSdv8>z{R_s-Re!ISWk`I#e@sLwE0t#mow4tpGUg~$jYCg- z{O`sdTnfK+Ckwl+xhQq);5sCMbC5D36$p_I)=`mbVd_183*CDiSYj-BKXEqz^Y>6l zCn~TW+XYOZqIublmP{3qW#1)hMfl3ME>kDqsWa?cbAd2UE)=TRU5dBM?rsG{9r$nb z{|0WB_yh+b1O&kVt)B`F1s`3K-CPE6yIQ5r z!?L%abc~q|)2JVh6mmh&$(L)B!dRYz!P31OW^_xAN=7NJc~y|fodY64k8yl(k?lTyM%(>IyhZ{j%NzW)Y^_9pxG zJv!_OnUAR#H6Cc#(<^{I|J-jb1u9NTgnl(!l|$*>|9l!VxFkz*VfR?m1%{Ilz!&l$ zuex^r>MDZQ+4B>6!t36huV!u4 zC9n9;FQeW+>6Y^*{q;*T&{zQmzI&HV4H7`&cf49@5nO5@yQ0tJt8_F0?*5{v5$9nmGF}7Eg}1h6>E4UgqX$H!^Ho}v>i*08=`n) zsq(fDfNffIeBhZ2Uiv5&Nk7GB!*6ipHGee6N1Sx2P^CLCBjhg}*Tj`%PD7 z$|pVm!R`OEhnf^Y%*@<09*1itHHtRkybo9L;oju@n5<9lIu6}CrflAzz!8^7Ho5&2 zmy?T*mWwMmB_+Q*h4xETm2rz5v&-_&RT~W#1&hls%5%?+Ee-vC$`=>{@gFF|Etcw=-Shy>CVlPQS<@!IK6ojmeIZQ2>A^#d{A z!d2yORnr05p^!CP|9oPaDLtljVA+Uw@%4UhzbzDevz$)6p(-lj7>oi2i_#z>1o2Bp zMV&EtftN?i3qhA*yU#l+y8fGP5vcN@pg^D=uvYt>Un6uP`Wq~^ZCPPSSu0DG%OoTu zfLEFGqXXv#ao|egB5>C}8vzDxool}#(b0qD5|YFh=hdF`C1FwGMn*?A?jGP%&?yJt z3Sgg5$w|P#?%q$K311u-2`?q`gs_{ohlw{dY!~W(?XFuN?B{;nG96W>K|$eB%y|Ta zMn5%vO!oPe`#R;~IpH>r49Vk!-(Z&JT<*_8M5R?qv4zOMS!BU;8WEvH0CRxD?ZQ)d z%5YB|od!X_D-erBOF-co{yiHex z>|~?hFg7!xr*$4|S`%++J)_&N`RA85`%#YfqmU**olq?z_VARHA}Jsu%Ti#xNkX(4 zs0QN__}eLDBLg2VX8AF}4L#nC0WjG+lHXs8qQikr8Hh+}5ccH8P@&!odw{UjqkIKV zdCT9lHBWdDm~Kd&uW|861WXhbl9NzOcP~?T^i$AQ&s2uVbodib(`t+ET-P9@(phM~ zJkgi`@Wt5JSm?!P7E4RaCDXKs4Ma1bz+r%?S@czYO>>>o;qka8E!rTmzO>-bv=1aYj(LwYCRJ%*pGTleIx?<@|2W-xDnYM8 ze$ZYZAOILz{cnE$yt=-y?7&imtpcEqgvB0s^O+dW&E+Hc>9CIGyn$A8H+VaBu~tD0sO38M!j+IbCBR{q)@*N->uGvS zv_S{cwiN)}EJmQ9dHVEs%g|dwUCiPZC^qxe(+v$7@AK<43-1 z>cTpHTePOu`I&+{FS<^_3}Q0ryQfepEq#1PzY6>Ru7#)B-2kD><~wGpurN0-du5L0 zfZQva4kH3hxU<;S4Bme&AJ47^P50oScYHdLxTNIdQI}?6Y;13SlcDa{2xlbL@bEg1 zlvJ>cudvY(@&LF%+DgSdI$8*;0>1XFRLvk5_xs_T??O7+m0JvPEA5tm*F~@VuXcB%IY2=UBqAq!W;Aq0@nq2OZ*T z4@Ce$1O8(|GdhEi0+`qA?&ep}z}wnpf(PpU(jm`oC#{xrLCs`s)aF`}4s6!=q0$+Cn2BZ-3l=bD!4!!bjpHf#$vU9!6czbtHhr?1*V6~Jy_T{;`2ADG^Jkp{OkJ(rBZ4kx=LCax z+ra2aYITt$9DSFaj^HcV1LRFu-_mx*X&{ zoE{jMNTJ_5E47-3j&knm1p0vS1_j0&Ai2xWQG#)Bh}q=1Tihp%OG>&tnQHLoNe3P3 zE;&mc-%yyjkN1fl-~Xt4?|&-)_<#I3c6LGtNo5mR*^yDQva|Qz9NCnRT|!m}k-hg! zM)uwuC3~Fg&F6WYUhntq^Zf(9-`nl`_@R019W<~^g3kkG3m;_Z$NYr%ziu*{!zRv3QOa5ESh9=EGh@ciI^nBmiof{$9z(BA{a|=Wd*LT@W8dc+aL^Q{ z`@8{0PCkcJgiTJeyQvb8zx_u(7n%z9m>y13O^ZV#0%748A>kQd*HqL3*un*;%?V z;`)<7{ChCK=d);(O0W`g(clicDJ;OU%>!YQFIRvLLjnIwIh{jAMlU4K48TG+?t~bcSoysj||nTPNZ8p zEw}sJ0pU(D=--k77&N@Mte#&O9mBnMQOU8cM@zSKLEdVh! zsP~P@=BsLrv`WuZNh2~5CJHC_%6!*I%-_F@3dAX}^=ef1f4wCTyL4r0BNVwTBXm6! zx*H@?rXV6=ZhQ-onOiR%H#POJrz8U$6bawk+S-`L!~2ez1Z&052HOPZJ^6WWr1y;) z>Mwv2eXPzHw+fIr7ZkpPjv>$Fl|rcax_iukgRo@ccQ4T-VwCs{f&4Dre>ok;=EJAitntD-2?=jXctY0co&L^ULkvfT#20z-hWX9dI_RhDXysE|tND z-LS}lU#xKMuJjO(zUZX0z`NVE(SqB zlapohwBv4a4`*MRKhUW-KEc!d>}$iJ@=#?iuj_9|*vjb%Fqu#|enD=Xw)4TbCgd}b zbhl!=3|EH*p9h@L+nq?Nmz#$-96b|06tfT%nnGPCXn@x3-PvF9_SP6T03bN-1}LM% z_sfd^eDY$!q9&uI?*Sucz~TY`$K8YU{XlwR0$pjhT^pV-1=U$mSyeZql-p--SsC91 zR#jCUN>c&N2A%THFFWWSc+u3N6gb9`QiTo;mxl^;bgOrx#gC0ndIy1WE6r1BogcR9 z`yOY8Qg_KnHjj^MjOda*DOfms{%+bIda(UMmFMMMiVc10xk6kjMMcfx)6stMT)%O2 z_P4s3l?A5uH9{@f1sjrM7_9_t;bfE3*ZBCwo;%urR@bCUD-~RrU4s1p4Q(we)y?Y( zpA8mX4Pk~xJdcRzg%EeLD^C2Dw`3RswBa>&E5PfFEFQCl+J|Y0o`-$8)VJhk{e`;=dx#2Ok4#&?yvWf12p~HOwlE!b?Z==6 z`+eM*8IS4PF$49>Jdl5ty9d8^?G5{U|MxVGfRPEAk1M^-l}-8>vyCDfJryb~Jv~oL zWMHB@KZ1stVL*-Sssob=OqM!9dQn(+&xX>+85ofA)G{_D0~8hXE;F|Ps7AzH{|*FD zc9|2Fl#{#o)PFGVK*!kF7OeLaFxFO$(|@U2=9F}C`TT4qi4CmPTfDJ>fI2lHf)xn4 zZpu1XjdM3UWyFA_PD{t~lw`8TKQi#yvr-KCa12QWg-VSLYgmB2<4chrKlEI}9}(QW zKR<~;6s`X31o?~shbIPg>MS+qANE_`0b!E*m4gF*z5N~xcJ|CI&025@ipTfF47m+) zCzO5mvvO3b3&9qid^=(^P-9Gmu*;RGhnY#I`}pd_2}=cY#Tx_4Lv(9dp`#kJ*$@By*tWdb%i#$Cx z`4gYIJ8Q1A4ikl7Z?u>sc^d|-`_=X%Y^EYSyX@Qzta=aTE!@{)#koS~GkNa=c?Lb| za5hr;DQk?id6qs~ER-BTy-lCiFam63*(Q{Bx(o^IF$f7qCHNn}0H||(V;!F6M{{-1 zd3xt(LDOp}0oq?n_PaVM8j=DLbRKcd!3?vt7|fec?S{``ijLi$I$3!jITi z+Rnc+K0kVb2lD}q>1h|eJ?$q0w&Tx{GF2zVcUSX76-@g_O)5JGBGitu9AQU z`S-@OFpMeX$?&jVQ?L2pM^~NlIxVgP>yC;B$&XP(;B-7MFl_d_K(@&k1~gZvF<*vo z_@R`}!x`5|(y~`exdXt2XU`TV*C|c&M!XzH<|Mpn{B)b3rewa>W9mm{ zuU@TX-`g{6z`1!-lw&j+`}ON{3F2$;<$iZ@2@lZt=}_A@n_@VRL@FBZ@wXt6oR;N5 z2lwtR3EZ!y_Nwvqe!V83mR_SRlbw}yHX{gp%bh6emex1LqYQeOLc&SSf{pd<-XV{9 z6nOdGkpy0MEP6cm?5C64Qa8vGd_}is#Cd&4SaXn+dNGj&b&|M~{rONJUAG}M+f%S|CJV^rUC_58cgiWyMDqVFJPIO|0hv^LcMn`ZQ zj4`CJa5j1E=2_fSUu{!3sx`%c8R;(s0d2B zuD7faD(J1|9}sDR9qKn5pblYoKeL?s;AeCfI~Z>bY=+BYR3?Y28;221DM4NaxfwbSnlC(-`tnRYK1Ia4nWj(7sS zWMBSWbH==;_}FgRBbvTUSO z)nqxaADxCHLShV|QAhdBQP7*@DNtLuB}*nYg{BR(FbZ~0p=rYc{qw#`sq}E? zB>sJZ1>k|6m`LXVbiXl104Un+U@$`5ky)bKE!rVMlK-iU<>cUqi7g!O5GIokfGp7? z@(-rMMS$pTar-F=Xt7#sj0JjDe)IVk^d%iZS;MK3v*y%p? zo;UlEAhdCVO;%Ws+=oGp1Jtkw{QUe|o9>$(xD##fnt8tS>embRmoci?bq5=%P_am5 z?HvFkBIkF1Uq+ZebZ4GJR?o8CLnrbk7_?733}!*;884)75oEbhs;F-MYIaGmAH!p0 zg7;JyW6)V2Zbuf+*XtY}lx5tvTYZH(0W?Y7P{Zl3%n0gObL z-iG;Y^L~0?eS`N;Hec&CGw-!n{q4=yPou#ysPgZmX&C_31 zp{(Yl@M*^FAbBdvs^RSb5@aRYT{9iliKwAFRU%tAuMVrNnLn@Hbp=O7ED)`Pms>P? zm{(o*&*%?h?CdZ&+5LlYZIh5{6Z!t4zRceeq(M{$2g;G2B%tEt(zxEz{F!LT*3M4T zCIt`OWk`*osfmN5so6rV{9I@kOBmtG%Tud!xti3NwITszHUgiSc@NdeHTv*jcwVuK za^ulNuWvx(Ma}F_Y7ki;yjYP4EH$;YjLg2V$Y{FQ!5}4=iV2{nMR!rQg890hFdm+S zG1F>*3k?^Kb9>V^;jt}?#B4!c3V3zqbhNM+2Zbd2;J|La9XNFW{OBR(>VxLI)(Sp& zYW@!e1O)s}l-UkJ8P8-w73vx6VPrE9H5|<@RAe!PtT}~Sai}PmXikV>2l4|;VNqyt zXca!qDdkZjBbm;sd5+j%P6j}&MQSv3(e;2aNWQI33m%}Gx5JRvy%4AM2 zE?)aGF!yx#Epz%;fpu1Xeo0098>6EEt}8C0mlJO!D*!}g`FWhK5=UD}@*JJ~QR(4d z4UL11d;vI!WyJd`aKT;sKl6eEb)8S!^qBvX6W!R_>MSZ5fPvrU#d??0?d<3z?Kt?{ zR=t(~>(3V5A2HH20(Ke&K#!~GU%f{uI2d?G3NP&`Mz0I58`QH#)L`j$PV&*@;>$LSjf&rFStNzI3@Wn~$)dQ!)OT!*`o z63*6(jJeXu!R+2%5!FOu zN#kD^LEm>kf0t*My(>&I(aPx1J0^w)u;e+~^}92QOd#$P%zAo@n0w1%0GKQrZhfi# zCaN2t*!uaSyf>Fvlcs(Wy$h_1F_$)(d@FpAekX`jDwGeBDkJ5+i}$vv>HE@`UVH}7 zJ7c7p6flt0)x++6_0@f1!x>R^DPakdxWs$nv3Q|#`%6iQ&yIaX4~*vq=ZoN|50|Qh6kZT${(i_JPmWWEdXSMB5AJbe-c6SeYzzIf6z7bYp;MBcx0)T2p$w1og z)T_;yY+}#x7^N{Gv8o_K{7tF3i3x1IcQgV^f0p7Ro2`H1y8K=&=bKhaWL4|%dgSy? zz`<&-At`Csn7^`V#=shbLeoz0&YfS~tv|0Dc6(9AxsOYMlwr|f-GdgSKiS~Fv6l*D}jX^j2v4H5hf zq!VvxGp2sz=}D#N(st@7@>N-|S&)|P(T*qEy2md5kojk@BNYG z{cwO`nTvP-&)bufk+H4|yOu`%&>>}e*I5D+R;Q8thN9F$IuYhGqazzp5ujvfD)Vv= zgf^#FbGa-W*2;!ywo=f7hV2`AupWv-*^k|MOCZ0lp9%DBgJQ@6u@Sqwq-iseZ1>~i zGY>dH6W!$4)DH|#&ur9+&QpdYb6b&)HUZsHgqKad4gv;hz}d#?*I?RX$rnT8n(l)| zIK6%DX%7TZLST;((@3M;SDWk8sE$qbJ!-Sl1^!B*x^nScLH6v5jhR^-0Uj15&BGTM zzP^#Qr%QUYuP}}#v$sqGjn1DQHqg_SwG)}|Uf9aV-YO-;(iE*}E(svQb_l)8;Y3bH zM@O{pdz%NKUkMj5g}~~-0c;bb;8s#W_Sw{=5f+Lj)<4;@c>C*pZeJ}q!yp+dYRnMG zWX->Dz~STjsKC!B-0$I7AQpo^c~%yrkydTpB% zR#IU~9&vKhZH%9;cL9YZyfiXxf8I0=VGq+urwy2?k4=ExZ5T z35v;h2T2M@b=|%rZ6tHwhbZx>JHekuHR+gFTO^3q*%889Kv9WmFlZm^?95n=vWARg zLB%MBR4SP2-_Qlgx59-sr9M%FM@C0S;|d!*C}(7~^Q0`vKp?XuR0{7(;ZakgXL1lJ zsD&6muLOrI*pLQqEHz?)FNS^qe>~y+@8i(_L-+!{YyJ02>a73XkN%lg9x!_S@B7SR zzCg3^zn{Bq1LE`l`N*J{$6@Gu`|m5>+(3`+e=o&h{eR;Np9LmYRCRkx<5B2I_xod6ywWXFSU{rwBNW*PlYZy6dbcMW}$vSS&>c;9|N0(`&^JI z%_l2%{k;x2$8X-m3xX0Yy|38{1{~t_D{%7;FlK(TO_JMTZ z?(Q|;+n_IBe4a=i0?fFs*QCS&)1Y5~5_~kBVxOVH6EhRog-&&V`!}y>dx?7odh`Qf zY3S)-*njl^OpewFbx%kB|E4RUFGO{kGY1366NzTG%Tq#_Q_aQ%E(llbPGERYHmni! zkV(t30mLK^?2C9%#BF*vr7<{_o@6 zCeRI%Vkz}S*RB-zv)qp+AWn?aR?SOUA3zMGH|w*F(_m2BaP%SK#*LaaCJvVk2>#=V zQ}b%)ce_H=mqcB2Ly~Yjkw?Jd!u@Whu#kse3KT^C=uE_g=B|OCeLFlwQo z!7j}(NV`S$+71KWQwc&2*G`C1U4%*=%6^RHba8>(8m8U+kxW-z4i$JW0T~1^eqk;K z=&mrHbRyYQWjBRENubBJRt1b3*dk_^`;rA6=h?j;RPF^tRLX zjQOta*})62AO=NHJMZWED=M7Sb{MYhtjw4sirTGGKm%Ea`i~>KCSp8s%?Bp;6xf>T zM6si{w0XNR*WYq+sd;Z1FkOr%OtnB4_Xi#d(2=O2VQts^Tnn_CrgC=j^5awEeRLjC zU{*>IayG$7lR{i-o{1nDFO02dr-%S5j>J%z)zj=%C>m2#Z_4k_Hm-=bX3HVD2l2=? zG3vWD6fH(ilx6iRbVopMh}Issa!?(51`fYsKsCT1aT&4N>L>{sE=*(Dj!Nn$%zyuQ z=mcBS{{|iyc)ZzAt^+jXs1=;;hGf{E)s5`2-is#WF&4G?k&1&vF?Rk-~Fi5-2lyO$D8~Vw}VJMp&*Ff zm8u3{oaVece9QZ*CM@fK3CDej=re=BU#wQS>fDj&jlBMY+KyNL7AYGOur|%@pmL>5 zkBxg~=^O?PuXaAfo)5lG0``(~%5Y%&V|fPACb1wCD_;2B1+;5vt~lroetm{}WKN`H zvxeg-M4MOx*zb~njyc!AWMUK1WT>q*#=j&X;G_=@#^Luw@l&(1IE^Sk^+jy*>73sO zaaA6N&%l~SRl=c^QxEsWeYTgIoWiPvRPL?mU)s%L@CXSBXHPLmq1OC*05G!|Wyuct zkg(PNmOP)em8%O(Ga69Ryiv5kFab<3x7zS)bz-T#YPTq3P!|=g4fne&#^SlwqMm7k zv3Idb8AI+=!b5pUS4pGMTa=qP+3Qu92pppjE##SX+H?Y+#+aFK8H3RIv)7Wx(zS8m@B>}yc7l3fQ znXQpXpl#Z?JV^~IEbEECvZ*auWT=1N8s(2}Si8EQfp$vPsV+{iofJKvIY5IQ*Fe=9 zq+Ua92FRpBXVD3yLUN+9gfc>ch0rudgyu+u@q~H4X5q`qVKqK%|63-4gF3f6p(i{+ zg@?9<;vT#;;%>0C&}sR(IgvmLl0i4%^#w*k9d~(I*jUDD%16L_pnPd^!^}EUDLASIvbX1pRT#-l zw?4Eykpt!pFs=C1v)Tc3LxB0Q!(5!H2vFzNRPpDe;FK(XJdVUiFvre)GV0_JaQg(E zGCLIJ(Vp#aAb-s zv|+1!5jF4GPuM@B2k}~odG)H$L&HNd%whPWO<62#7kQG^v|HPh`gc-I@!d( z4qm!ysBe1N0M1o&-||X+$XlD&@H=ZYU$3ZgNfa(D91uI21$4I)J18vJjT_S_TyGA0 zHtS||LYA%eh;t(LsM+M|*NeL%eo;^kKR%u=ZN+bOsd22#6*@LWI8Tr|k00+MqYKoY z`b$87r@)Ned0XDm5>(tVa_XO3JhbDv{X=11cg`2-v)3nxEc&o@JQ9myNG?M)^36uV zFJFB(4|eGkVb70Bdw7<*nU8FSX6K;flz2!{l;MXcOZ_d0wOeN%2?wtv@z%VDqr!*# zm8VeqDs4p%C!Jftf!cE>cj++;d{~#)QnnkLQ=m$vx=_4vN}rkJ1W7<>;vLF zlSa@tB70CVP2BgC&r$Wh0-q7ox$P|JW?9;o`c(5w2I?{X_9a6pYPa~}j`;rik9XwE zCeLdBMc4tw@x`d9`2xC1s^aQt9E-a%Q}ap@&TX7HS+S^L2h>HPfo%Z+RGYTY&^ z?gCG$^J#?al{5FD=fM8t>=(<+07&SsE4{s_7!K^NMmn_V6WTqL2G?s5w2wS2na;H9 z=5?Hu#}zQIbe?plrcMOs2&fvci5R23Z{ORdWNgYqZq*G(UowLr^V~`^Wv-c{gO5yM z!`NM(2PS9ygoaXqCC`^ppt!!hj@r6?5h%eyr}veHwA<|{)D?lGRPYBhI}~z7fp`*B z3%^xG`=72sN*+)LDMT)X!}WkEA6lJidot~b9v+*1%;8m?jUzeAX;Bl@qB2SNj6wUv z>~yWcyhMDIpN!RZB#CFZD7&aRI<P0WKB8OKX!8d&RLHAO1C=6Ug)t4! z4JlL269uI!FE-^nryrDkar)qo_ZD zvIo*30ek+77rFN_K!|9=R35+;ju{%nlfHDPQc}u2EdmtGMvJLxWJ4I9+*M&zl zw1C;}MMKBD22Jf1Dxdrch$KQwvof$AR#Jlxfqy6>V~^%zKbwpliqP&d+ro0Tkks`t z*B}?#GrU>SY;I%{L#bhvR-~mg?=mO?>z_veidMkwCJD!mCvcMp+?V)4An?~hQlT^D-(=lsN+>Hy#Jw7-SG5u zQ_|J9li>t&Tt3alG`dOcWm=JRRSRNjeC_mdZui4_M`-7XV@5S@`)@`ur`{x&>iYY= z2#Is%$tY4xfuiK#jCrVyshZ^trm9@9?pLC=ZFz)1aB~jEt*6DYOBY>(AOlfAlzE(L zYb{L<&3w2NNG(F9>Rf|A=kJezZ97;H=WEDxsVqa@HrqX?k+H!i)~g=LSNg`x{Wn@b zr2Nag#Bx4#gDs{FF68!Eq(XJ!Yr-U*w?#?R8j4fXP4mOH0nDw+#}XwSEWY!SY&iIS zNd|!kVso<8RIU@HV`wKg(|b$6Tw9h{WbokNjGUKL`zy@`g5_NW(sXBqLgbMyDMaPY%CcWJLT*fvn_=eQgo>jZXhmgvpfX7?0f5EJ!1U*W2;+ZA!NRmNLO&4_m% zp#T>W41WaWQZJhu&m!#?oAyL6V}C!1itYYdWLe*r{XUz6bY&A)V9d?CMj>2%dgGVV zlmT5{A2!}~J_@sYev9-9?<@k1GJ6{_O!jifV8>~>2oYp8t z{NJ0h5#*iqRoroRm^JQp@}gS*x=Ke1{ZYB|=uhw2f!XuDXbYi-DM*wE5_wduWRtrV zG){M(zBi0P%AF{5ddrtfMUjeTW$>%gmHt?_szuaxOHAS$gY=eXkS}{UR_wdDbo5f1 zp^e_k11H{k^?P{Q#ipgi8Os0V+RY|geZkKsRs1JyEiQ{k3D2^JXEG6z%!$wMGkAYT z6~bT3Y_%Bl)mT3XWL+UrP`xcD$fkQB#^S2dtlJN(gioF7s|V0h!UZ?7h|RR&0$+$* zWW)Q{eNR(L=1boS3J=`4xs(59l;xqEOm`}ksIc2APTu28#&_3Rtne1mdpy6Uh0a}* zD&#i`TK6|jWzVnCqB!5p)6{_jbWDpr!}^2 zuEln_QKI8`Tdvvm+9-5QTK$X}*Cts4pb$m?5lkqJt536e&!(K%?96+3u_QS)HI*~+ zV-F;@^v$d`MgH#fpC23l5kBwryPR}NT<%1t5$x=k6MfV5ZbAohB*hp0>}_qR%58d0 zSmz~uecWO4xYpUo`a)dKl$}6w-)Up~uk4FOQRE?z%<;dvth{m@hkz+^3=69z$1Irr$992-TxlpfZqo{s+`oiJ@*=P~JZi$mR z;~o%^e19#fnHTn&ck4)YO{vI+ewDZ|ew?J4C+(!yQoOvpePra0sJcSlOwNwxdzZP| zK|9Uv$ssxdUe`gzk2FeK@yn||s8JQAeM%yGVMzO@S=6XEo>RAKwxQ;fzkj)wR?Pq6 zbb7_jQY7}L8LxA5HO;F1<9z3lJe2f3%mUh&!=pvJ0rAt-%xLjbQ`3Hce>v=%vwcXI zU;CETMs-<9I~*t%?a0$Tv0T8JA0(4xU;Uo3_*6Q!E>-x)HBnYiS`kjuXUG8U}6;8zWbm#%d)~UPP=wl44>XyEPjctDk`smKZ zf#VBKH~K)@=uuL&w&x14)Et<6u}91-uj{Chin~9y+l|~WjDd(@=cfxLkFXk4deACK z^=bJRvtF122YR(G037ugj0GOf+^a>8MsfYCru}Sg-?bipi;FbZGE8ifb!;;mX9ATp zdIG~`BIuip?~GXZzBWjuOU)(-ipo##UH&7WpGlwpE8Y4h#iX?ct}g3^!`S6q-X)WE z3I?8Eb)#|D4Vx*bv)G=&Z5u@d9YO{>-uZz>gOOfEZ{|}(J$L{7^tZp5c~tMzsKdVT zjcVa@A~1Z_ArrVDkr1s>k{G;ih=hS(bnw}=ti$e@ZwJGus28dfgR1G4nTe0CjYfc= zZr-!Mak^P|47%;(#}8sWM{fBV3ZrV~TR%NJ>ogzlJwTYPzk71$Js#cj^n0WIzmFOo zy#bcyf)yi}WUPI038A<|<^`62LoWXIzPGJNNQ)xoXoWTBopGysE1*V5{5AMRt@-k* zx5{lf@WAs>Xq`U)E}Ff6Og~5C&EnTqt)^w+LambaWe1FVIAbQI+M9s|V;Hl`!fzaefQMos%9Bkh;eG`~wT&sqR!TllSs?9+uVsKV_U@<#NaQp+@5y!@nrU!8#EmeP#fUq-$8v_Nq zrrbLbCQ3_-s4xa@5QX@iS6$TEP88{%Wx4P>Y3@1RsQKp3h#>wZ)Ti$^oY7}5#Ac**KJ-Jz&7N*g)FOEoA)bi~%F*NBKn~&`!F8Y17#p%J0Zq8o|lB!fRJ<5~L4yMGKP2z?6d*o%hlPR`!mlfe4(k z*ukh8q9eP1q7*WoY5f*2mBkL)gEZG#Jucgb+NF41hpDo5uOiis^qIW_xagXjaH{w! z7$LAWaV@__!ilVieA8wFpNOnBXe`7LY}tS}CL~vMV4<8M@EtlUDzaaEQ~xrqI50vd zC+v4%oeTB){Sh?aTaFZ*f3>)&WBM7We6FOS%ESFc5+L_2O+xxTszjwQ8A_Kjg%n8k z`~;k36Rnxsl};bOWgbxgcr@y83ggz$NnS?TwFaA94nYAJs;lOka$+{k>te}?e4r(_ zp3k7s)QqzgY=J2tM^bb#M?e45yTr=LQ^J@Sn=7F@_k{a&Y$Gx zDNZVqvUDG6fgwp~)VLCQ*x3(XV0^ZC=+39EnJ84p#TFwSa>FX3mp1&=F==0_2MnT8 z&el?qem!D~7a_ag^^lPNMmO~WF*{t4qAup!VoosI%W#qERV>SeV95-bu_KMh=9ldG z7u=vms5fQP3ndx4iJ&Wc);uE|eSBe{*j~d86>u0F@~@`7qzSTxT`hN+4^54jQWAx{ z3NqAtUjsOp_j07`YIYNDpUryw--X@>>R;38*_{fr;Sa&N>3uG_bYzoOJ#Azxx$yOM zl7OVsDm?#QqG0^Xksre0orMXyJ2h5#YC3PidXvX~@4Pyn85kXiaK^Dp38b|o`)fnP z8wb3BZ=L7!FR|Y8;(mM=+h3uE$ol5^&rl~a8c2_0&mKBf6gMy2i+ z)%%h0-J%igCZ)J#+tPAvZ2N(<{F3g0cbrBH%x2SLZ}L{Y1nb#u4pdBAwVe+N0 z)_W+M@vQ=>8>wlWv@wSE9q$)pgkUPrUl3XWE+aeUQ~V}3NSQG(;79`S&MUd)Weblt(YqZ zJ_cq++*;ZHZT9^e@46}~OB?jc%`C5!oMD@C2ZUbE&i;eM}RMdJI@z=-sH!`bO~ z-36)(lymng0%>I^-Q_+%kLkzrcIG~oCQ{+&dy~Yo&|Bb~Oj&j6{pi)G@5?FK*{_u{ zC2K<06mE}NLkQZ#1`Dba2#V7rJb2o?w*yoZ8r;e+Jowme4FVdhJn0-ndC|k}9~j@$ zCmuSu%^_@=Kj@6i37j;-Q@@fc;T93AA4{LTX`vQw)!F+xVHvGNL8!51RR?h` z%F+q&i`JGLzq!-?_YF--ozsEMasr&+;Gu2OQo(6)1P!Og7Q?TsU;~wh6G^A^FWu-z zX~S*;_oj5w&ylkvX~tb{;+}Z`{PE~kq9FL}?4kX+RR{2hRYp1t%_dt>y&V*W-e- zb>sZ`KT(HAC=GjNMd@l|3PGoVkV!A7kE;COX{@fHI6~-Z=F^7>DfY3rJpxn5#xXxw zw%WrDgS!r#hW4ipsR{edUbTFW=B7#cE&GsxSXCPTr^)LrGN&u%ssPtDndT z;%{)Mb&n>eq@+YdYJ`!aDn8rtDI_NZL}rbwxt;1FV7RN;{Tm;ry^{s)f`Kj?u>b|FHpIst{|;2Ha++Oaog)@^+zwK`qG>`zdyq9zqU{@ zYrc8G{E65KHWAyy33-Ld9+;lEYSD9H{&JZ^R#|yn z9$-_w_!FT2r(T^c?wN*6gq$oe3wF9d6Z80L-#F$(J`9Y^jY3^jQ)~q26(4soh;{?K zu_Ai#H0R9cv~xOg9;=5uU+{40Lh2U8poSZX%bKwvFLRTvGL00OMR|J}?rS!MwAH;y z7UBNvruV@H9Zg^1a4WT8z+n9fLMaf_9{|^`e-IT6Pq#^9hxP9NUbRTwZe9)kyyunm z1Pd-uB_t;~J*7Ta75SSXy=u?eh7|D*2pC`!AdM= zoUtv};7iuQOm}y?7(oT=-Y2G0cZ)?3?YJg4C2x>L;5&6h3d@H5c{pBNkF`b2>D43H zeA4GA{;Axe{y4UocNt=VLAu_+=S-Mras=q+%QvAE0iM5k@{LbU9%_ah>`zWlurDg} z+m14--%bo5dY!Hneq-Z&*2;n?AW}_4KM|{ctz9tb-D3RH4a5ab-jYl0tnz*K&OYli z*|*d0fk;m*^3{+7Ltf)*TzN-EZe!O0p2nz5X+k4lf(BNkSM`FY$2=cn`RHYpt~6JG13JJGJ4SGe9B@xuU`HjcC&60x|B3 zZ+cw19>iNn#to%+NL`X4&!zu6eB=KFK4m)x)nj9I+9+WA%{P5-WSwPKWJ563&|zyR zy+XNE+@@1EP~+^C^}a~v#)ZDe93a>fq&4hB2XPsCpMfdegFGu&bSyXanJ8}x*l?(O zgJQ#rvznnJRn)6)aA4`#ZLMs0Wue|5-pQ-gzk(+?XNp+Wxyss@dyHsXn%{wKIjxU= zQ}e$tKU0zybC5`wC@%KXD}-hyQ^zdCJC5`%zqqPX8@82}3piLE@1?a|PA(EL8;8ve z6n+iib^d5vOc;WWSo|-)`ZhMB`z@~uc9277Acos5W!`)qX7P}DaOPtmKM$~-uxgr+ z1Kx_bcbSWMV1uckQdM4n3+6FC=J`FJPVgX*wqk^UyW#J50ut(S-?PK5t9_TP36=*V z@{MP$P@Siz=TQ4kdT$Ztt07LA6%8iIb|nq=mPedCE6jr;ZcR3aa{88I+h`7jIRaZu zey9f|gu&P5z;bNeO5|G`6q4;+Egy|%s)2J~^fF?M+ta(^&~`Q|&8t%b+<120SCpni z+*!hS$uJJW!9UmkiezS+kp<`z88+$(wO(JJ2ytW91|G2-n##W z;d}x2>Lip0-OqvW*qRWEX0E>Sn8zy+Z`!V1`Rv^^C>JSRplk#-OOqd~L^oJvnNz^g zdG1|J>pG$+IOn!FHa1Ww=%h9v$Kbm^Bv*afI3{VicBDtmz15#(_fbcBnU>TCT~huX zzypbNb4lK89#x1VtT2IskQf^bH~0R;DvO`|$&cIE#Xa2kGGxV< z_oc;i!)Hps@XB>%Wh;V4pBs!>Iu2f%2hiY7_1Ml8J(lR0eYF@V=y3Yu6ZGa-TS14- z@-h0{v0viu&*2@) zZ`&c;y8BN5!coI!%idp5Y1VJz6Qn2q=B<4PA&9>H*2DNM4%%9$QJe|vWJiAat0OA| z+C+7k$SPhZXanC^kOl5#Zy-Vi7YhB9MLz2~E_~H|qeM3dje*4E>KYd@lcitZ@hF@SgBI33n{U}D{gr0^6Jw@?liQo(cujh_-%H2X zDLy2#q7dn*#5olLQz=nkY&Nge`<;&sjYLNlBF7<7oU*lQz2EOmOV~rn5tek*h*Z{v z-kY%3^3(#&=S$rFp1b)Sc0h7?ujR$X5nr7{LQlu}s+`2>P&o|kj0Gh? zhcq##iKy9d-yAxFLTp6CrELSfvRCSi^F9TMbWq?+AA;H3@gI(Ud&$W2Vt?yiD0QsZ zlW(}lFS#gik;H>&xesNxh-{W%cmn)?%ckrOj{_qOg~&mmKS;)FPfFY!N?)D1`M zxM22k?oBJmRz+n(Nksa;V9Mo#3o|PR-$r}52-VW_G4l<}=Szbe#uma&`}`?|-&nT} zJ*|5%09tAK=Z$fVAio6BSLEBc*KZ)6HjvgZVADnS=tnAfkTmdNmhMN^x~&ao_lQKS zp@4Z{StX_VN>6O8;}kp8^g{OhxN!_tml({oCTuX^#cM-x)5VtIwzeBne@{$}S0exK z-s7*0p^<+%om@|#ZMAwvVEbVrOHA2On zvy1f9Z<*>^x1akRl!*ngid)yNl%M?K>Y-dz_8lg%8uIAgo| z=^RA4!|C)8Qd|8!{Md1+!nO>p-xeWuL$3VhqmboX?IO6yH5QhZMZ)8B{{6=5H5dWg z6;LhHrENVR(r&*_Us1Xg3aD^uMu?2)ZoGP$GqRT1&#a|4@77g{#pWgoRiNnX_D!M~ zD&9E;(sGYYCEMeT)7l=VqI_0FkdL$<{fa8`HNe2+9}kD=Rmz=idnPyt7DhA(oMi|csabE4asp83w^fjBuelSd*?o|%0t^1L5QB%y-3BbtQkL6uhA(Do`{$+TVQf?-i;$+`D^Sjx1<;C2laXiv`o`l-HRk3>I*Em(z(UZ(JO@GPM$s z{nT!TK+r5qsM4+cCa~= z$3ks1MK!|N`z(fqFh%>PMZZB)t*~!%N7yZYOeTpx)m9WZEXY!ZiQjgU_2%jt{@YN} z>5pCZOYa~YahO|}g|6!Rj+cUZKYAi5hg6oKNNltu6nvxPEAW+M*m}DsK9^agHr=AG zB_9HL*XX-cjbtlTKw9xmDfcV7lLO)m7fMr2qs~J4a@~NOsXKinV*7*ABy@X}CC>Fs zy4(SoIvC&xVRQdcbV>|cjR1@1cuw5(1LWN?RX%iT(B|Lb0=qLTfFB%ci&-L$`FS42 ze6M0{CRO^*u3T|m(GV@!XuMxWS0*m|*gNc|L0cM8$0sQ9SigL%YhZhOlwg6SL~a2G zcAn7^ZnI#<3uc@HRaye%Z1>K{MDg3NcLC$_1EOUxJ$L&BoXbh8_seNl=PMFd45o1{ zipUPQK*y4AC9fm!z}L2n!zeKW4EN7ASY!Os%kCOs!eE1->0bg~67n1ppGP*GMgB|M zu0&8nklC8))8=X@b%v?XLHOT!jTWOW-r70S1>*^WrB`;S**>^Q4IaALYWStm(SY2Y*2(aSj4}VMXA|{OJ|{f z_4vsGjy)MV0~-ju0k`isy{Y;H`TF92I6=@ng={``<~N@NBl6_+ z?|AfU0-)EZv_K)=2=b*Nc>4pSj>(a;JTc94W9AQM9LB%h>{_v!ryS| zX&5Ocj1-D;)Y){l!rqfX`(i-7k6qAQ`^v=^SCI1+ zN6|b%EGdTGOw?`G6wew3U@$iv>1-G*;{)`he@tH)LV#1feQzKZ1`8O&n?+wB%#9T; z`0ro(-IX1RyFY+4&W*PLF@JPRUIzl)!;Lg^I(4 z7p3??=mkN9Z(-OJ6~SAnz>PbD#O2(d#m+i3O?x#Ri?7nIb|6o?|I?p$YB`su_{|ga zc)=$#3GwkZV!wvPIq60G&X1is| zeLK!Ckggh7uz*9>L9rSSJoGgWW((XiIA4^wG)Y6|V+76Y9#`6?J&C0LG*z+I@das% ziKV;Vf;{iLDtfQFS4?@hJ!cznavEMe>q0Og)1u}7-WOyg9Qc>NqnXvE&#s#PdZ25p zw!I047qctd$8yaR*YT>BcEEz7&iAdeZcD>4Vmj@n@GAyakU9uK(X^Nz#Dd3r(!c|? zcP}pb72hLufS`WlYl>L>Ht(7ZVvAluPO} zN+P7_hLLM3>ZjZy-B8Vkv(`BManA2|)*rL?%-+vhYxcX=^FC|swfB1%e3}izun&84 z`GPBHjA{u!p}4mfkiz%m1`L9XV%5^4TLYNBfdw5gHmK-HQL5X^;%E6g`>XW&DXsU0 zBkB~8hGsKe8${phRT0V_M5zFxJ@wA)090cGRqc@_MQ8Ajup-4ojm~%!5@;|4E?4lg z?o!_hN?rfG6ea6PH5I^J`l~Lful~=4)TmZK64kPdN0)+usNUJw+!=5raU~d05w0$) zcCeO8MhfJKzvm*nQt$tw*Z~^bBkvX8-JGK2!G$+Y3eyy~!mv+YzsimF2?cUMgzD_f zABAhZu%tqQJEYSL^i4%X-%SqY^?^Xf6BA`-@_WoyS6bb)t>v!gMf_^os7-MzsC=UX zu(;H_OCiEUd(-pFeYw+sM*KF@-GCMx`6_3VyufE&FnJBlmTpL6y-P`j=>@S&O3}ew z`Xl`GS4G6*H~4>cT}{Z((;H{Zz@=2vFI?y9!)?KfSuHH6^=(;42*&Ac2L-nl?bi&a z_V9B!$#Psv z`Md9gVx0EhrEqdXB2wn&dun`de{8?;e3q#cQ!B_Nv+T**+vB*YvYD~kE>er<-BH=6 zm~5+`ucaenHXOb^^V%F5QP~JuukZp%d9a+wq@gVa6)IWreNzXx$u0{OX;~M>4G&gv z26JzW%6#9Hy=WlxwWD+ow8n8cErp6!ZA1QNr;iy4ho`rW_7HRsaUHZ3xn!R*qd=EP zqgd1!==G>GN^jc7X58zgqfl*b8z%)ypN>BCO$H#i=i5ou`l*m9u^2{6Rs|^7!gu!@#Cx8xVpW>@$+Y zj~=B4V7_}!t`p`c?CKyvQbLl;9{5&Hw?5a9R4r?;ZUBW4tYP10{Ly`su|szrEP?Il z*f*u?#9INvTx2>IAeU!6p}ra#V81l1d?0#l7*%x$u)$7w6$;Uq3SE5nBM)WLLqc~W znuSTFG|o@#X`2%hQWZl}XA*Es&FapHAiVk`i2@=HzvQikNPTKDD%9V_*nKRylW#XK z((7ew?2{~&RoXG@Z9-0caZ$h*S#OTk`oIB+!7jvR>cq*f0WhjDgptQs*K?#_nrU{+H!mDZB)RLP{7>kI8d8yPTHz)rZppjzcX1Uf~rLzM5=z6_YyX`P+UKEmqwYbkb1B6`K1Kg58u9^)r2#d+mD5m0wzdkV zwucm7fB&AnCFZuGAC}adz7go^$5UDepj#}BA-qwSRuX3LUM8Ae3{U&GapckhCVYsd^y?4#nx07mga4zBv|K*1s-p>O>DL+=o&>$T={6 zRJDY^W&uH>8hLL(E=TB$sGI@6$Wcq`1LF+G++w#BI0~b_T1dk=^!Rsqcap5_EDQ~O zJ7Fcd8KN;t-dtJ!le(QPcg>sHqO)r{j!bPG@D3HZtwRW|-*s&jktGS{;rFqQZ|BTjpT6YZS$)3FmXw2F{denegWg}U@ppbM>s7CTf( z)~iXFv`lDnj+EGWdlElr!`alRA#fElsp$#0bF8T!y!CNiKWs9RfaC)K4~KKI4dSwMBAYF zU??X626+>&XeHXS@egU!bOiEtMh>X9SHE+r*Tjz zG`mv(&PH;8h6fwDFe=rQ?-4G-9AJ_b%H1v4<6T=&_U$h?uAQMg1HP{3Ir;IZK|C5h zIE)512+kCTGd8s~#@TwA;qc}bc$}G$sVUyn^k@Ul_P+p!xKt)R`u_tkIj2tmfH5qA z861oc<{pj?V}>wz2=UjRzC##~NvB2WdvfW#$e=KqJ`M!9RH=C=0YI}~Kq@UfIE;Ci z$K-N=lK&q-IBA!ozB7@i?-9nOGec?1(F#cbYzV=JsdW5qCW#jA$c^AonVb+uZWLl^ zWo2TEvyHOCnVVSQa7Ly^rvC_PYX+F*zc4 diff --git a/figures/stub_new_v3.pdf b/figures/stub_new_v3.pdf deleted file mode 100644 index 71d8d8ba9e8f1bf2c590b760f73988105cd3ccf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22768 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 diff --git a/figures/stub_new_v3.png b/figures/stub_new_v3.png deleted file mode 100644 index a275199520911a3ff003c6db065682f9488cfb22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53725 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 diff --git a/figures/verlet_v2.pdf b/figures/verlet_v2.pdf deleted file mode 100644 index af6e7bce0ef74f1610dd1246286e1f00e0ecf680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12815 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 yUj#`zi&_g diff --git a/figures/verlet_v2.png b/figures/verlet_v2.png deleted file mode 100644 index d3a0523a49f3cb05053e05d6060de52572dbc4e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63370 zcmdRVWmpwo^!23$NdZCWZV*Mfgo_|u64IcA(nvQ7TtL7g6u3xtgIqeKBo&Y@>F&<= z4F2Bu{C@kd=kXEdUS`gmIcM*+*4`7Qt}0J}cNY%^gAqJYfNR2F=tAJ1BQZ8O!m^Mk z0)yeQ+Q`bP+gMn@U^=hWC{38{EWRnFI##!NnOqs zfkNjBM+nHhmqVj4jA48wM|LwJ2>tf!H{9r*)lTFZkMtdmqer}X(bVN_u36nU{xj+hC0RG-H2b^c*yf%6*BH}(YDi!OE#B4BeJ6!CNIuw{ zFQ8Dh&Lry6)zG}A8)hjlfxj(JtC(|| z40+3}BDlSCC+j2I*UF-M{)7+j-xI(zvD#@{Q;KGIeC6L~C1+AM?*$uifzhAUd;N`p zz1~EZKK-q$W>;18*#{=Nx%~k1%avDl3<1H70Q6;PYY=PP%{d zHDNXSr@~9% zWi2XUHk`4!k6gb!R^Q8M&(_T$6?mJeIM;t%o>Y!K_Hc}uM%L=L=f1EP$%WM^%!v6( zj6m#uTz71KY%M*}H9U@9s$|aws^ZGiDqrR45WW=~3!>GOj4ENTFEy zghY)NnQLj$4 zhE)1gmSj;=|BYWG1;2Cndp=t3=!xXt9*SqxA9(!WX_@g}{q4sQ1>{ApdTWJ(`F5!^ zX+{OU@;F2Mf5QHVEc^#3qVXwoipmtw?Jtrv9s6@ulB| zg1Rm@9&u5Z(~akjW5#DjTYu$lS=yBGw`|!#X?H;nm?b(Y6n5^6%*4e<@F> zxFzhz``mx{fIR;D*WUP?FTr2`#7CB{*s8hlpM{8wP4xOCoOtdL-OjwdayyIXvUITG zU8U{!MB^XNNUJi6zT%dD4Fl5K|Cj7tH3Oq*|w&pcJp{HJfa5{lvh^fW^SHroUD;JUu~Q!(jF!IP!C( z8CBogR9Os}1X+q7;?1i+7Mnf)KK#ol8Rw6&mTSg9oK)*2e$P9jJ9A%#zWn*JRd!z1`&{Wc+lwQI{;6`S z0qrP@UbO^`gp&ks=NK3F`6!3KwmIW?b_CO7Wh$-)m*0PGsE(_x)2}0@cMOn^jBTdI zlhDL!_Q-cDm((H}PPTEz~9O4WTl}O>Q>(^yD_boLenhoTznj2UBPqUHmWNvXh#?{FS<*cODl1NXlwQD4UN4K zj_h;qi<=8l^E3;bO%}|bD*th;Fmg4B^yxuWQ)yi+Uu{K4x5`;EQ4tL-^$wNiy}S20eTa8VPtBTt3`gIm;}M^d458)n zVZ2N~&p97Bov!e6ApMHR_ijA;NNUgX&?87{XE(ZB>NeY6@~7lDH4c@BDpV@T$xew? zXXcX;KjS#~C@gPYem*W+j9JVp^B=wZ!-q$vQh&SF__XFYvO8hUA#(b#+p|}~H}2Tp ztbV($`;3%sgzi)l+b8i^$Fmk*9iRTw!Hdy@y%EjX{(dPL?)UYdTvW6HaiX_S&{ToJ zyjWqdfVVK%DL53c41>AegTYo!VKC8n7>vR(v06hMe1L7PBoDv32Cm-G1UQ20sG#ox z{#UsE_xR^4N$>;C>nAF5IE%P6_>9c_X!Bpd8DUT0kF-6;)+fDvJ{?R-UFwP)(38nD z<$l)Ue0t9LR5MWYmxiWm+PH9rml#=X44L@)kUdk5aOJc_3CB2Rg6LSPmbl7Y!U1wM z+!qMVw;^vlZhn54_$)()>e)9O)r*S{K5i8@s&)g$BDKiq(CA0u7Iv*DL)QN^t>x7pDhn z!)lua40viJ0KT?|a|2xG#>^j|zP$*^3WvktBZiz52UC;M29DN-4i%$FsBc$g&1H3YyLHHIfhBMfInvd3o)w zKGRh{=Cl~ET#o9NH;-R0c7J(b)r+}VyVonWH8yxM%*1%~S~ST%C*o`pTSzI6*XZp4C0uEMUVUuq+$36?7MurV+6I_3hCc zQC=yp{pH_j@?!NAT=P?2slUwce^E}(Jfof1KK|TsHQ~!wEhbravY6mde`48wRsx64 z!XuibS}Bk^cR|f52j&g}**D4wVrXswu-LJM{vCzG(ZZVu{v9RJ2rze){qOkytgi=i zC-hi~rNO!_%RF5~O-uB+YqaL4I2jqI`B4mvc=vSj{&+EKh&GZ{!Y`RspYH`H*)QMATBAZvcjd5>GH1>*}1#veIh$m ztebt^-QBegb^8}ea58IXYJVyx3P)gcw*ag~E8@h@#^S`!6EWUUh9J(0b$=6G#_7eg z^Q7>lFj6K)#;P!B&!K$%GRrHiQ)GS-0Nw0`=j z;=Gi66t#%6HtzX$sMPu2eY^fJ7idKpC7vzqz&=&Wo=Fa7{bM{WB`^y0+l2hi)bOh3^9 z7|KIl^*%G$sMIYiZy-OaVGNS><0IB^AWfE{HTRZ8)Bd;QOwI#mL0Ogj4R}Uw>?_tOmfh5OZT!855UL&yf(b zmE3#BooqG6X!eL+)p2cgb=6jOoNsQkWi$>$*~y%CwLyM0F_g~l_;2VmChzsMz=pd# z&d!`KYhJVP0Yt}`zy~9YeRf(YOwKdb=JZS?D{Fb!>eV8`0ZQkm3>fjO@a>!53TvES zZ24cEE%}e{!0IzHG8SZ>pDlTaKC<=3a^HC=sKz4ZB-bet?^MsoYA;vJbQvX6=ib)E z*Koeu)v)aou(IMieCVWx6E7Z^`CamCy{u2N=BBX!<@rfl-k8+l##RrFZXfBE0d^>S zaG=G>PDMqf=V&KMD(ax+&mLIOquq0cj2}tfB-|?j4>$Pc^k=`r*RU<0g+EJN7kQqI zw1q8b+Fk&si-kCzy>$;{GTbACQ^>c(XiYU8G}+1UTeEC;PhxwVIdc z2|o`M|^Wm8S0w4v)P%HG?mHu9}^VrM7$8QG+QAZ2@J;(u{4eC2-g7qoJGc`Hpa z%XCkTc-T03-aStH?U6j;tx~6g>5gm*5WBiK-gRFRFK5@Yo2vEPvwTQ&?+LALp<$JC zMzjQK#XaY2?Nwd{IRctmTkN)XcOF>olYA=y;D5YX$C~OmW7EM;qQP$FNIDB5ce%}g zT6!{{NxjdBqRClC?jES(K&QHb|LT*g){2ok2p+Ff=IrwXb$wFk2HfM|l*TU4R>t`=Bad~lewAGMtWbCjtRp)&)#d>6{bh(qGhAXfD zO}0);kjqJC;1oI;6W)`a;7=d)b)h9o5#9R(@`v3=?;;L$Yw+>+Uk4VmTkXRQQfgg$ zEg=Z61Q7pT-ZYe2Tw6-;sEv*&V3SLmElo{L`)N|qp3@5zpUq=UeRj$ALL|9%hc9@Z#9xAhb`uTZLb)r|eMy{<&3 z!@oVPRTJsrJ;1~kVo;_27Qt0mC`|WFj4s>ToBDl7P;uoWkCiY65u_@aY({FA2~IrY zHx6igdh_G&x$#V9w=!yLYkh|8jHDPy`naG#)DW3`21g=DQOOtUR#IpBxW&F_ha2Pm zzYY$zHX7_rY-~S@1@`?BJ@iPvlda2eWCaxPlwA|d>4*7Hy(N>_f>MzlB zv=q^a`V2sZoj-paz?w|&QP%nddU8d&yUI)+wv=pZR2_ZvN&uVKdZ^m3JGt(GkBtna z@&t{kml)dZzE|D>`hE#Zrm-C~JMP0{V`E+?rFD!}8xv8wUt2F+0V+!R_hc3>6b3&* zb6IL!p_?s;j|~LH*RN?H3X9jI?iJ*vv@;fytYsaxEa|>@@nWH&U7>Q;TX#a#|B@d; zsK)5%2}NGR6Qyb7TmjqM2RIn6$;JE>Y?a1NjZ7shiqA`HxZN_Gbfp=>xCe}`5FYUD zx3$3D5C#}Jinr|IesAErJ&L3((=4NV?3P?NoA?(uR6qYcZl)V3xl;x~RUN~uITBI|`(j|xGAS+~SWG?;D9(9F?} zit)B!H(ehsv+A1)i@G^sK;vHMSeIXOly^M(2dl#k?NtdA{b%ni4r_iC?t|HgF6j9L zr-@84dIwmjy8F%&C_IW>HcJD$GoqiGC}bu~z%?oxRSL%Ss%okKSMPrPPKG8o8A#sj z#|X=^+Yzni8X}TJq++~mA@Si`1CD1tHz{UOtMflUvArsEs#CT~IQG8j`0h*8%;U`@ zHoRM}h6{~q4*kA?q?EzZe{er_w};9EUB}5RD*0@X93-zqO7j$O`KuKk&(W?={nCS~ zHQ~I$b@Kvzm3w8T2(IAN(HzALO_h0KdPY3yR5D2}040GhMjIZE6=zFddMx)Wg(cbK zbYAPy@uj5_j<;oL5^hq%af&K zwLS5-C1r_Rj$^k1?Q8aU8R;N4)oc|CoC{8c~%Gp z4ekThR2VZS-cnD3ki*n%o1vQCTP*uu0FIjYwVkmNQbWSK;y`wosPr`*_;eS7c})Xt zs-yGf1c=Sp=or}el)tXfuhS(3&IsL_ed8);<0y#Wo0HsOX}l26m3aI)D13^Cb_X7e z2nxt9CJ9uz=DvArQ!JaP>RVi#WaC()e#nYwufF}2fh;vXEH~)%x_q@$1(j1?YX#oa zQpLL=9c({BiRdKH$%>&YX+mIqrS~>Ec`1qidB=MO+1`%2VX}PTJTgEsKTz=1Za3eo z>O;r5PCKkCeri3IlapSnU+9Av@a&-s;;bbyHmXnI>xsN^j_7d53zkV)PWk!Nuue_F zmzUV{$4m$Uf#`_fG5Bsf`Vm_|5TF%hoLSRjiI(FYh02&=_PXu)b>ZhQtbM>awKPWJ zBSN%@4MRs)hQ*XzHss)%-1?5~)hJ~cI5pHfamar4PZxMzCl;1p5W~CR{qCP%qrz=O zQrE}{~J3O#0&ay5Mcl|wpZ~DU-i%%sIK%W{(WIyK@c&fgri{VE8w%Gx8pMOVIJlgu|H+yU6bBGw*DDF$j7trTYI<4OCG&lyg(&d(F$N$LClQpL+QtBW z21}uWVF8cDO+d1wAn&Ntg{M5iVkKgPT0=X48hN_JyT9zbM_ zDrJ&G65ZA&E(=N367~Dj`=9aNgBz{iR1P+x@9gdEy%itzSI%VYJIZ>gmV^QDy%F#f}cxs&UM?M*`K1{0XKva5#fS3n|r5|NL zJ5F?yv=X(x@Y7{s>U7f^Y~*Qw|Jb=ulkfiBTJ&?_d(L(ZNB@|e#d6k!7!9VL6C?-c zgHfrgHi(EC)|h&MBHQtrw>_3&2nAlN-b9f(`x~F65_Tdw6ABM|afR^h!LSfM+Ij%T z*+>1Jjg>3U$FT&Xo!Rk8NPcob%k?|$KNfg+b(#j@Yr5rmBm{ovE!P=~YXv&bL{k1a zE-r5C+kwJBqSPY#45Xxdti`y-f)=-uxP#FYS=TRKvU8VsaOq)FdJi6 zus-9sB1bEsc%u1CHAS7BOfctX2^8nZBy9D}z)hjaX#0VW*FLlyMxTsz^?b=r7}`J@Bq!ay@K)W0Cw# zg6gfFPY_*SPYwHs`pByIEex6r1S05B4W1@njL?)vZaF_CKK2jm_9T4!T64#_;2SS* z^E@lJ{{1Sd#3LgLM@fvA@8c7&`T!BSU0^}~12Sxs zRF3qbFpAx#25Ds5HvJ+W<;2Ko3#rk?9!=Ak#z2fBQJh3E_sxluz>S($HB1RDLU#Z|2tn{m}M)pO*p8Rx@q}LturnfE^-vG&@6_(`)~5z zWY=os{aL-Ud0TO<`|eK)YR(1vTe81>Y#Ia5FiuUZ8{SnmwvEPc(QJ{TX+Zc5wCvY^ ze~duC^M)$)+6&qzU0DKCWQY=Oyxi)=7VI^Y=&MTq?;?l}@I4$b@9KkSvY~`Dx!G$~ z!(q|U(GAtu)({Y2^ZxfV+25D6N6J2ja8q4ZSJ#Sa%%w;RV9!_F@nm{+=q%DQ1crn4EAq6tV_>6sv531m)wOjx!#?pNZg+t+kE3jH2& zfNPFum^DBIXg3cC9-KpID^e#wno}x+Dah?Nl$|R%Trd@T?!#_+`Y^s z4H4~wPyeVMI60o|Mo8(_4)q8sFZ*!NTozM!0}ocKjFkQRMm7V15M4RmnQK>j_mXa8 z|81IlG_8c-?SCou^S`y*JY3{|v1W30swRESdlRNIkzSPF>!t_Z11F|v*kzea#0*5= z!6)XoMRmm=avZf7xVVsqDnS0&PfMV<4Zf$NK|xC!bp_`~YD0AjOx6Gs$0f_vNt)Y-x~!o5xJj;o?W)y#H8;eVwK^{-=+=T&h- zLkKd)a#8`4q)dO#r%s+I$yBrl7lO6yzg$Eqg zL7Q1T_eTIt7Dgt~C>h=%3R|=&zy-Rwuz}oM84&2Ja}Xzar0(S8v@=$fi2bqo%?&+T z@AZ;)T0Ypdno6yymn4}_&jN_Uc95e3-Yu(InfOUrdx|h}ebtF2m=#=T{((~}3wkW{ z7hAv$S(|t`Z4l?%$X{o!x^2WyVKNUK@`Z)UCruGI+!DhS?`r64K{-KW>|z(5viw_~ z&UgQJ!xJeXfJ%6UN!#QSBCC&-zWm~_vf*OG!Jh~&2OwBuoGCUyAKpMmGJ{E_A;N@yN8{1J zKT-MG0PwE*Je9^Di$BOz0rhY)%Ji*1OS3TIW0GX6edxVkPMvUvl;nd{*iBm`Z@CCj zq&qF+mQ6=3ikLl$DQs+&?Fd`l)JEv}i|D!D*3CEyoHmevYwsLlI9pVu9m(T)zkZ8H zl5GnaN}&XWaVz#h7vD`xA&*@(4s45THpEe77Oh~?g}Bp!2qPd8@fIuFTJK-0U&9S&cra@04L1+hri{;1OQ1Kn@Fs7;LRtPpxVxEtp z6N_g96<2l=SGgREAXo8EQk{vnB2JClmuFiIS501hU7~U6H3?HF zp5GSVAR{7fLQKg>@VeB{I~FQPO*MXTa1uU1e=8U{0wH8d42=dDYVR4W=BHla>6&|; zfgNBwf@*eJ3hynF#}t94hqp5M-d8g5-)s4962-=@)Ho4%dlEEp6yyt@09-TK??&cO zzp4;1>d)EGDU(#Q4DjUXJq+3vMWLiSLhUb95+x>b2kQhuE@Za3l9lXty3*ib+-B5w zYl*)7PmJo4<#)0~FK1C1wTv|PN!MW`_Y0-XIyOdsO(2?H5cPcgySfLbW+y#hb(&zx ztZZ1#%_|HS+49miiOPEWz5Qv^$W2w=*(101>)aUEAKX<~D6cK!>MB7t2LHz9HH0w0 z_8p`Fiuv>LY))Ze;icQ#wHJmDqYqjPJ}De>;~Lj1D=qig5VulL6*1omriENM?=Pwq zWyx&F*rR18}2$JKWA$0 zV#ce-v`KXil^tQH4r6%xPb_T-hee{UOK2!;n|`X_YZ0QMO)BwTXB(B%erJ#R*k&(V zN}5ud2KL`3N&MX{PgDg-c0?taojGh&Slq~S|6s3Wz`4Gb@Iyn`&8OzpP7P3Tt!~io zOQA8Pi=2Q6>o73dtCsxEeA)x@Dggehxco49znH_846?vl%{|O0_IO0YQ5Mo`H7Dze z@gQhd$CDMQ`_I%HT#I13e?6j?5W?M(JPzS53U~zO_(kj|uUjWyhi+!d*>=U*+zw+G zK+uvPQD^7d`yz~-2QB$@@H!jF+N!*Q{pSSp8dbkuDNRdzu10MVrk~SMK_qp){e#E~ zxKdT6KdIEvqJ$Y(@Lr@guh$(-d2iL>RM#WF2QK+rKCld!1DyNbL#Nr6FjDs#zx+H| zV{wUwN>1-=cQOiqz60u+8};WBVF%mr2zDQYA|*eUyn6%NSYhAiwv<@rqU%RtxHawi zod6#jh&kc!w9D5;lDLJb@kZDAjt@-op9|^smTcqExw<*X!ou%58C(;++O-!+7#eD_ zl32gXB4o40fpwb+Ik{y+d-pHb^;01-rlbBA-(TeoJCbea2PseLHdD|z#K(5W*JbZh zkb4k0x6Jhp#<;1#z6;ygL7> zWb|v<-v*oo_$5mSx|bK7=S^$zr>HQzM6ji6#p@=#sZhc+9`U!>Iv|tSp>C}ttQYNF zB^Rl$cuT-W5S6Mog>&^o0!HsqVv;c;Cr)dZhP|b*YpxnKWBJa4!LLX?Kpl#BaZ@Tr z1^bS}-B(gYajZvEIJCcCWmg)rK?ZEd6&*Vqfkz40sf6?3!TqF-Q5HmB)A!_8iQR1v zKv72(Uxgop$g&<+U7w}J=)x)MO$4deHLJu}D{kVNg3t4vi>H_}dX;m;C@zeo6)Ih| z2J@Pzd59ZPz7n#5MVE;ZC({*LPOrXvzqoQdtmPD^e zKmOHG*H_aC*NH@*)18U1xBLowb2G4 zbAUZI*7Y1ODT!cUU>=WpS0$w*Igr4W<_#4(z0rs4d;n@5EWY|%ID}Auf3+m4I7xAG z=>sTPsyc(0P*^}KDG)GO2fNMj4lP?hwHA;y(+zxACS!-|54Nvxg5$wDilX*RwHn%3 zxquh)qf*?)4k-072carjn_}QQVHklCavB2LUur7P7jl(v1ozR~_o(J*XTrr5eu+VDVewW1m09>H2GscMw0y zub>6R&7O>*+B>9?z9q}|!gq;_aO-K09-8!KIzo47Ey~wP1x=Fx*X9cV>pb_vLuNwoR zJL?|8|Jp!dkWCfS?Yd57UsVZwLIq=SNftcn|F;K#5k}9LYSG#QeR;|)VIn~u4j&W? z0sf`WvE$6(b&2+)_bWv6IOKXGC2r#1z3xM}?$&r|2LbEfbj(lPP2Dbr3{~&L*R{z& zf}q2cG{WZFQ#8Q>yhWRQ3yY92=D)dP#8bDoiqQmtqT< z3Hfo(4uTrizt@1XN!!r{VXwXx2nb4iadnnmww>U3B!o?0Pm+;s?++bUEoZ-mZGulE znRgp{{rFx&ahr)I3tSAf#?g8`_-keSKe{g>H+h0e8V*P5bKkxR8?hBM7(WA1w{!z| zXaK>q(5^#!46;4i%o`%fV;BtbqZa4HinTOSs5>Jq=}C4wgjZLa5YU0nH{mzw(F=!-Fw(8`|O7aR)l4Ov7s$ zeUA1rJgUcV`nf{+j~<4JuyBJ*BjN+v9Y0Wb-;ul>_^$G(Xm77&2@OmS4z|#|F5vcV zkIl9wKa`;>fCi4*%j^q0O{kU$byI8^I7r>okK+JKmIRB|2|X?`F%e%uceO?_@kThQ zG`28YVhi*F)sn)dJeQK(tIKG2F4chdf<`$*OcHz(TPTS+2p7bFsl=%r9dTOwDUZ2G zp`r6iiR>rhmJZ?7jO~8XPRzeA_TZ*W=+sVBg$?p}L?Arg=`51JWGO692G(4n)G$}b zdKl{veBM75_hJ}S>mR}r0rjkv8d@`K0&|!W*%V2^D6I$egoI9)MvFwfDmKZfttp=? z*qfUQiZEqE&uhPyn|Rf9sB!}5`@>yz?r;fNOpZG8Y>+D=!IUSl1;rpYRhWXPjH}po z>2~~9S4_3FXNp6~NrFXz(>I#LnB*Ux`~&L^m5{OD$wHjTNwD^#Qb_tZ@M5N3JG`}0 zCg+bb(gD^>qRou!^fv2u=}3NE=bnQ9%7#XK<6|!y>YOt!3Q*GnTWZ>y#KDZf30VGl zz(t0K1p^jU(!`l!((pK&x%dv#Zt^Cf%{n*9{w)$Lv8Cp)5{vezr?i#Hy1>ohd`~PD zF+`pER6aXu!qjmN&g`xxc{2a0!2=7Lir||V>Fq{XWJq+xceM6d(6~vmetEtmb#>CG zHm>B?NA$Yx-Ekf2>_Qkvv@rHMqyU0OzL=XTABrMpS!r^HadDb?X)9U3kU#fTJxiBcVBuRFbJ)+VIX-Z_#`oVV`D z7BGf3MSg;uTf^hb{k@aDr9L6!KYn-I1K;q)FsI6}jC^Y3tB1N_GSMFbOt;q_yCsr@A5wdTT^76VR8ALL+p0yYHc-q|_DM(ObkP0pablxO*rk;-HFi-#N!|QAZX6{0&+UM0ZCSS@_Ud%eA8F%uZ*c@w6J<)2}xtX z04<=3S>PrPA7cmZ{-_IlhA~7H7SO>+6I=yy!9)qp@@(x~|0}H>p0908*0^s?jn7Z56>8;Z z=Y}m5(nTPar>c!4{QtGayiAZu9m0oSFv=WWNY|6JlX3A>|}8 zvWDr_;lI2g>5VgDRRj|il&7d9Avts?1N@kq-Z9i#b8ETah%ez6sYdZ=Db%22bJ$nJ zpgR3I33TsN(d;ybC(LAlQVgC@sLo^oy^|bNVqcgvi8d?;S2tKbjbz<-I(PLvy9jGH z;(?rFB^QYXLac_V!T_^Y0xVJu+_^2A$yVIt%5YfOiD~!ZepIEP!JMF)${|ne+|j10 z)0NMT$G2Ne5!P;(pf2q@{AGy(JW({wUqAYiwwb3)E(!HOgy&j7u#X%JrArV%C~@Ah z8$S5tje#yV9!}_9rWRq^G>rL63j~FxNT>;*pqx&4*?C>%dELcSqQ5^9J;`m2Lbfxu z6BKsW;d_7TLAOSXw*f*_NucO9+e=2h?T5s~b)Q&Os?{oXV5S1d@$ai*(nbEFZ69a( z5uU&PB(V+*9Ql03&i*4L*z351GHx(K`C*v~(s}&q$`8eQ_Fj*OM5Fktr0?neN=73vLftoa_o|JOtip#eV3^y%OzxBu!U!Y}nEe{-ii-fd zgW1C_;VU%MO-FGoL9qTMems}jMgrAm?4F#BC;^l;p?OO7xm?uJ(($d4e9~4SxO)9nU>v zf9%ZB&^g%Gzy3ZtWh|a4c2=YrdFqiG>Ta75z}`ke{33<#n`Y#thq=f%^_Gd8;!%H{ zm~jk-403hOP^q+hOzm8aN$6iw#8=iJH5NGt+!!~;adqc$riZZ5ptMPu- z{Rg#M$e=s!aF_;E|77P>-~{bZSD@qMUll;`oh=d`69c}vlY zl*J??w=<~n;(s4=a2VLSkyYSBEKhS)YQph#Zhw$(U8r)Zn!NFNXO-$%A=+l$5t2l$ z2YYqR;MwY0V4qY`Zf+3{Xm#7W{9OVIcsMyaWjCHHId;gat~GEv_=F;PZ`yzQxMs^A z9VYxMX;{CZ-hA-%K-$Nr`|#LfNfr?o*@T4u~g3X7clkIaw*N^`u7as1dH@w=oqV7MK zzU_GFvzE71gx;Gh<#2kb1PeG>{W+o_R{vcm0b*vO{a$TWH!RBKu9LrF{mjr8e{}FjlembiIoDSHaq%MRbq=1 zxkko9#L26=)G96w-T4LI`&M#4T89wS5lHoUkbG(Z5u? zI(Li6#|(J;7DdXG8<3kjX7ZE`Wnv;DGeIY>jmFQfQPi4Ref^mLEI=$NCcCpe#j1N9>e19@V^IO(XpFRtiuM0bHon)Pb!X3*!cA^`4o?!#c zlJ&IQ(-2dtqJm)VWhh!jg_Trx#2N~@yxbv_ngy$-3MZECVNGkN3}sB|OXTA(%~~42t+*me(_xu;+_6j%JTOhI_A9sWh<1m% zr=BZAYXM+AgdKLqlVm)BnVU1NS^VN9){i(!MA|k;abHfQr7@XAM`3^b_}J7?^8IIl z*-wOz-n(q?$$v{tJw^T)mDbYgdZPlHoi#U!!caF5+iqRVfdveETbw0@K1b-+fhb{< z^7`A8c_Q;zp~G*fru2_3#jnoy`lPO?i?16mXQDWR@W3+6O z?rJCclmFqIN@EwF19D%H$X@>0Sb;^>lDoge{4>pdgj(CEe?xM4gMX)5^d$QFxGr8% zjI`g3c#@0PY3IpGMnI37U&03ax8Ld60G1x-1FQmexikh&1Bpuq-+NLn%nmMu9~gN z35})&6Ah%R>@vWY_0I#>$)V{_=L`3*{Ti2)I^jtu32=l!H5ts7&JEL5=#JzY zuU`%S>_tA@$G$YfW=5q}RDkE!oXE0BIoW09FnK!TkV z)2*rhWZu;T7WYU<=vCFghPm zU{Gm4c`EzQ4J2~7iqC_!Q4}KCyk>w$*|kXq+H2;UWwk*^g0aalq_7+=0<`F$3_xR*erZGY&f&v?Jo--0 zl>%CSV>@)PW`vgUZM~?iyDhy93@gT}d@CICbZ!EfPkXlJE*)COrL=5nkdZQ|2tiGGbzisJsddH zcJ)_o||NVkueosqdx8_UW3*Lc^t~nsdud*TCu58$dz8aqnn7+E4tLVG>?)z!;Peca2JU;*WrohoW6-o9oFiDMx zpl)_n*6Y`vfPgc;?ddr+Y*9AK*5+m$jZ%T$v{A$P_ZFY}ieE{shhH)ABSkX+wR{up zeZ)*i_Jc8OK?xhEO$-P5$=l%xZ$9Lb>xUWBcwK~;osvsy{Qi!kTND3SD^ZVEZ~I8> zwlSK0o$JIEbB*<7!dI`kgPb{#mCb(R!YsQL{Dd~5qey3czNOA88OQ~Lw@L;@oSaIE z@Oy9szSPN>sL=fLt7jvdlme9vxH3|d?ZQ}pT;|tmK;@0-!LJ(kOj|+I z;ZH`stxqCc&H*hgFWPTKpG+yE%3oh4_B%{U@rEFuKUePWc|Kr@r@`3al$F0O-4kW| z?fc<6j;qtu@Y2M(p7y*j(NpGW#5Y#xy)TwlZ_~NR8@6zk$Q$M@#O(a#ig^`8oV$Vo ziur02*i^sYWP*PCTkk_OJzsHhoAZ+l#)D20zCI>rIUp(iuntF8B+=wPI7JDIQJ{T5 zWo)-VwG6M|R_F7nNe*en&YNit(-_MKR3S_G?^P*%{|vtVTb614EhlH;ZzivR6AK=W zxtA9|ytqsyS}r(&GPff|J1On=NLujbVXPCOEhf~PLm5yFLDU;&c7GHjtXU@KW83%| zj`tST5`#8lhmBpuu!!(<_$edFKCx>kRG-E_Z1}-o|FRx*K=F2v93AaA>evH^9$QB` zL;~`n2LWlZIC8Vpd5c0llA?Kb(^^35>i!m9vF+%El>efuPCv0H;}l)$?)s?JmcRQb zofzHx`EH!Mf6N7rApa&e|NIk7_NfqQ5mE{3miO!$8d~}`(X6jU`zG~1D|!=z-EeN% zYb`*TaLdD!*f>prm8crG=Bd9F&}Q%rV+3Qyv$dZmSm+RRL1yYd0M3<5^<0D&LnOx_ zR4{wi_mh)^#5Em~n&u+V-lV?_Y{1y6-D}NvU#c-NPBiU}|6r?n#zjm+bF#PWGi?%$ zV73dQ?(W9X)N=3pQMJq>6T(*Oxvd<*>UMCqolU>pCH# zyIIFv73|v@3ChleU6|Jnl5LDHcWK>QlcGL-Gyl1QjuQVsUSqqf=EzsYarsk5V+TUa zBpTW8L$pV%0{hp52>bLIB#gBNJmggfwl{00efBnM8dZc?B=21+v~yjW3$pWj6M7F4 zA5i~hlJ9<20hn*!bE6OF3Gd!LDY%0-Gb`ugxsxhj5QCC%{IO9$lw`)S8K9OLH-abAliJr@J+7y9E?6_Jfbtv z4Y?Jy{xGQ3q}Zu$uJ@o`Y8vd%g9 zmQO^GnNFnSLQn&ieo-}&Fbcu`8Ns#s<%^u$QNfnSi;M0rZ8&S8Fuq##`)9#L6Gigf zm(2EI?AsgTR=#I>wlgzLs|%rRH72V2rHX3)PJUiFTV-ufc}3ogbmG6aRiuG!Xuo-X zpIyaGN1d*^%0StD{9A!vD1%r-vYoQ;Xw0}E2^0-AjvnuK zXXlDaWQZDU*3mQi1KQ@pb+`XLrvtn=;o6_b%P=6!09Bh^qY?a=XEkmcV--i^Z@xxc zTz6_Bbk6nz3Zm?%7~^-^L{K*41cvx2;FXslCW~~LX4$%T`19*)sx zOTbd;sXd5du!?q8X49Z2*6lbrCD=R2NRs;9*@2q8w}3o@n{L$qI5_0?~#G@!Gvh+UQ1h^gziZBvN( z9E%YrbKUORiRM`dkO@p@NL-8s6|S^mTzl|3Md=HryT72GC$c%z013+DF5W_z2QtrQ zq9tD&^2ii6leVz_>*;EQ+NmyajF#^(qtijf+;QqMzVwl-zWI0$Mo&a$T0OSlEZ%t# z)@s~scFGaV1mCl62j-`+1i`x9pM#1s`zyJ3-bfwnri%p(4vt2zPvbs+E?%{?Cv~p_ zmm<{$_4vWYf#-N2$dM0mbs;Kj5>pOSQK2xlJN%_>m{nu-hL?h!b1aqbv$qu}f}tCN zM*%u%z{~U!WLi~te*enA@T#NgrLg}+)py5J`TlXAW0s1n5E8PBWM{^qA}d68gzUYy zzE-lz$liN~?1Rdl+1rtsoq5dTxo-Nsp69v$sn@ITmvi6ezOL)@d9P2JBJ^2L=(=|{ zgc|m)%R&eIa-j~QjGeQ0;MU2ndt5@U7OVduK}l(`JLruI8sZIoeNqw3L6x4^PPsVT zd}N_JxrRW{vo^oUTz^pJ^?2*3RU8iJ?-a$4w+3Hk5&Fjt4Q+3$?D#Ut8Dor}-;0R2 ziEblSqm8XQ*_;$pXvCUwna@=gIF$heH>i#X->BH~fRKPRsWrE){eO;4=(Ac(*E+75 zh&${Rk1x5tc9!~;$PqK~iu2nVmFjf}Z!C#+&k2_Nn4780YLNYnHhyf%!`026=d$Q) zk<~fEZ-jFkXRZ=tGHA#{UjrEAuG|e1P-XOINjI7XZw77 zNg?4=ScRJV8a-1hP33)F5r?yr}K8Pa#nFLEe&yho3izhjQLp9}0F!@Br*wGX!f@M@~S zdRSoSMPJzZ!d&TW-vA;fVe+&P(rd`lB41MYTZNC8Qn6=24F2b}Hf=SJ!ym&t3>sJV z7q)r?z{%0$55NKy6?=!1rtCV=_uBvCiujamNPRu)Vv@8 zsVLdpGhc^F$&cX(Knpat$-Z1`8P+EBg;*TDGJk9f`vo~xi>KTtcR|WR-Ijvx+VR(7 zJb~n7I!@8|L2iD!jkYem1Z<_YBfox~E|-68N;yC6EBCg710?NE$^70ly*a9(hvl=| zSA2Qtme@urz88>|SWORgXzPjG>dMJ!6ck62J-q!O#xc&$S`?HCF;`we$25o+fE;Qb zH6?3CEv{*Gla&+SCNx4LNcq2q-j&T2xlvcQWby z=hkg0Nd6UM{BywKAq{~vhLl$HopzVJoi(n1 zey`UI@WF|I*J=M5Ln+{FY4x&eb+gME1w?QKAt?+b%ROUR_oIG-!w-p;>#VSW?SUQ` z$Y*%dJ0dCVj4m+4=Y7|zvTH>9d2+);8fCWKH>{du$l90sQpD+CkVgg%j{Vx(Fpw&; ztbz@cA3?C3++5acx3>C1La6r!)4pA|_#yvtATv-=8wg$<=JsRmaDZkM00YkyE`t&X zXXDL_YnU;aYeuz`b{P-)PncEz>nVIWQ%y7HFy8YcB+=?;#GxnEg=E-~logVInKmVn z-vXD|>Y*>W0KFUz5r0CF&S@TCy?jKgKf6=A`+>)Y)dZ9QyM+2FSvN`r&hUJofRNRR z_$o^dR+!J2#)*DDF(ZGKX=BReCK|Tlc1{4chs_{keNz5UpO}sAbivr!of^c-@by?8 zyXnh!Io!Pf1r(v>q82Xp*mHkIMaK;&bdRJ2L@DGqEBctNW(oqeoub?=8DP zoB{!#!8;SP)ll!aGTQ2u?6vcU4e*Bv;i2V3{7fKhgNzhhgI8#PXaCRFuN%O#89r3m z2f4qkDJ>d{=or9f1nRTZTg&t&n02ZO{*P{W{*Q@OUjU=bqr3a>jvz97fAJ{&sx^dS zO=>L@Br zBu}$*uNriWq`cF?y7$|sShssB4qYv?<4}#~Lja1)f<5KsR(S6EW^cpYr@mhC@o;8R zP|&FyL}cprlGfdxt#(V!8M*U4NGhwHYXVo$#$j8RozLIyjv=cXUa&wEv}azUU3<-r zo{4A-PF(~CVBo|I>KC}8_l4AFz!8V9rW5l{a!QMYM6>Oz8#)%2tmc)l?4HTS7YbsS zN?o?Q)JL!%-nK6vTz2*x$*ZUcyuK)a&0~B&vC+JK%AF3Z!Blmie%HizYi=CMswS&4EQG;Tfkro2A`+g6@6uJ1jom%nHn;%Iy?D29J(0v zw{%rdnN$EyN~?Bv=O=jUWZhX2AM5=G|YKTzIfoPUm&=cTIV=qBsPUurg-jVdvN z$H#NlPpqexDRoQY>NCxr!=B>s0tZvc{afy%0=8=(fr$lIxZjNNqKP*a=M>8T*0f#Q z#$8vxz6S!5cT0%@qN*J33OS~6eIU63whvSR-wHpvJtoMtwfepmB(Yq%l02JTH8h$M zFYs44Rj&~qz#$;Kxe&}yLm!}&mGz+7o5H7}0(Wem7N-AD*P`mrn#;g;2^S2uwlH%r zqpI7mVm;5}8%ljH=y;4Tp)y!g{j5LHJLF_JST=iLKp+wefGk~#Pm%cl5LgnD*1o*p zNcSy2b%#Benu(0hD!>L-)M4zyf85pBd}R4n4ZXW{+5DoR5GU{6Fi8X%dvp6W2nM+C zq)J(P6|i&xO2Nc;FZsJLVJX(?H$bGhQzz}FS$ z#J09D)w>yk6bpH>DR%aTiqQD$^(UKKOEbbhJdHw25KM#dd_w2lF7o-aX~o1+xiRR+BZw0B_9&KfVzEFS@1A7Rc8?)F`NCpP00X4kqbx_HdOqa}{Rm^gTmRdy zrfx=}Xoa2DH6~L)k_UlY^cTOlm9Q{OxBXg@hGjp<0 zOzbA?CKtMa6c?aol%X}_D_laG>ykuwoe@k5w%fa?T)rkhT-Q7%yDf*C02!_{L?po4 zCV%BQ!NYE_a_Lppix30K8IbsF=oz5+5?j{I1E*WPko;=&>I+C${VGpAA5s^PBZVZZ z)!BiZbf*r$X@nLh<>FWg#r0OHB;*1NO)Gh(z0&1l)z$wUx)DY)tbRhe_uQB-qk)Ii zF6)}08U_+tseC6U@|V5~k9AkqA$&eZa+^xZ+)Gs|6x06*D;ycqfIUoj`thARTmnZB zFcSP^i&%I+*NtlIws44*DS;$&m5RBoXo{Lt0@C@N_Qs}3U=lYKfoT?Yf?q#%GD8J@ zvoPS^GBl50YTReOH}!V~z4i5oEmB-nb^TD^;f-~}OmV`~q|fdpQf(#kJsgTTaDV^F z%5Rle%!AqTme#`{ooD3LY;0rwNx`}}4E%bP8hVcwP-^;-LN_iKwu=CIph&Rm6?)7?muAtxXNevw6iy+M77g)NRM9L}XnYH1OSE7#> z*lN&^59Pl#M5(;Qn!*eu91jeHg@-hO?c)5bE*yjY)wnQY271=fi$w^zaIL%cY&{5S zuGux8d5U;wfrT4m#78KU6O)!%2wBU{uRR+g@Mxxr0gy}6?M zjVLXTvh|0sJBMqREZzM6+?-6e{a)tWNiFrkR?6<^kgERQli`4giLht^hSJw1n6**4 z7}&niRr|R)pEE&!z&riInmcfpR%@mMzMsT30G0^6!*9BYn3VFH!Ik0Auqg?c*)S~z7 z<+~4st^yAGMEmHil?>j^Z@cS^^72i?6ofBCZL!Aw&T-Vm-iOCmHP6sZ8&~Fi_^|3u zXoB4pQ*<<39xiO0QPyWxMguD=n|WnKj@{BSVQRjJVY;adNlfQ!U(Eh9AHgmnt~PB& zs@u+XAv(I>>}0#}4cmK~Pxyhd#L6Yaa0LKk3F)6R;ABd)#(}k5siPpmrGZ6F&#|_F z{klY!T;NvMS9j+e7{Gb@I?UjmorFW{?J@2g!R^sn)@p5cIHLks527v!B*BCzfvTyp z-(Slf=@%b;O;9iTWR>)u#$<^r`E^b|j2f@OF0`O2yR!24cCAHf>g-Q?f6pmJIx9ec zgM>0rj4TzlN1jwYK{R~f13TLIISv&2wWYOn#X{x~bD9pW;SgV_L~k|(4ZE^6L{}me zu3M6nvqQHEzc7VPPIiI|6!CXiG=i|*ZBw^iBvMj_rkoq-(52?D?nRjaX)9cM@8iHb zyB&FJbn`L(NW}~MM?5J>)|;4B$(W$E;ngYa4C0_EJI;o@=e0?;qu1I(LVR;qZfx=K z)#!!W>oYdDv@|^8rMu)hKA<=H*95Njy@mtj$=2dk8fE=~wf*Bn@_z_Rxrck$*_9za z$VQ^B1lb^E#Yy+^Akf&0nQ)=S7b!4@pr?N`7Di0-NSZ7H)W;lQ-dFEyMAX?1lCasV z=bJOj~p4$u}G@j9%Zc`LJv{55}xI8t_qF%Imyaq_Jfu3%l2bjYM zrgxs~#Krkb$E{`3e?{DDggCLY^}vI)qZ#)3Vr^4z4nOMUlt~ibP)OC|DcH-n160G{ zGcgcOwfNQx%r#3Svffmll~Z`dRrm}m+4JB%-I?VV-nxV;K*)TPm2+=b^5Tg|I;&ht z+5%1ew!N9b!c0Mv(bqBS@-h)FmiQZ6*2y}N@e^mGI;9ep8aA{yX+>xIS&7I+46YPX zlE@);+@Vs!6TK|q04`P1i*Uc+WKG)JX=Q{Fe$?vlFiOdmPU_Vg778yA3oNd#Dcv1i zaG=k!7m=stP{6r$Uy1q_;_>EN8!0l?OnTKm)%ZpjZ@kG!oHqero5yGxY2H~_e7Pe; z8x%rqo7NDX;oS3i+I!kYZQ+aNR`63}@lWvtQ;$sN&5ev`O#<`B#W5wt@np_1l#iq1 zgdXtmkZ6<}^UUno)Tmq!=7U;fdw8f!R=oOsv~?(}$VJLmb_zhX!@y5W{1I{b3?uRHkhob z3d z&0z>BoFUyNTJ?>WAxccY$2{;uegVASZD!$$X#KZzib0RjSf=K-mi^O%$LNOO%Vx8Q z%PaDY%ML-Qfxk>#>{V7W?mBOLNZ*QLyy zPU^wj&Zcr4)q#40c)pGHQ-Dm*mq?F?mNipaa)^6$+)3zeHKFp+LO7n9jv3P9wVU?u zKcvdqQC14plgyQ_r`Sm$YS-HtMqc8~s1Wyn1RsgmpnetH`UnH$KG=Q(Q>dzD{Y$lj(}!vZWhjmq!bDYA5mm6?e-`>Qt~% zl6FCjsw1TMfBc*#C}f6z&Ig(PBRfC$PqheSNgLlli7%JrXJ&3gVYNTvyWi(+MNGwQ3C|p zrBL8i%nu+@XJDX<>%lkV&ymBQV`J-jnzIhS#f3TPXUbTddCb6YBrR|4Qj&Ky$XcW{ zEx+^3PS_hci>csE6|_36{r(=Fkiqpr_QTn$ZU*u{7Z6bw9sz;asm^ajA7|9G+d1k4 zX41?%3P4| zet{9`_0#5zV8z51hUtG=r*~9MRO)f$zE%IX)Zwlof{YWPw2M+ax0u`Q!?y1UpRPBH zM#Gi`ezsbD2#>|02JRuz6&hvb@v*VfXY*>Cv7{)9i#5Od=HLm#s#yP8>qUOpuD0*| zHOPV+Z%*_d!7WEmQG^a;j&BdSJVoFT6}PFd-Qe-!#alz(gqx(wl$3l&5H$F64ZYP}_N=L|52r=3w0Rzj(Wh^cUL2Bu?C}Bp z!UCrws#ya^B)u#fxD-9q6PAfPd_mh3Nj*S55bjwk86U}=$0zljxfwxrjFX-(Q(#pBE26dt=#x*;lzC+VJ%MaDAytK)R8)og+Vi{FX9^0hdQ+O9--ox_MKU)( z2P+q1d781^aJv2Nv)QLl3p1<90){d>-zyd+9QJ&kW{9X#g4f3YygtZ50K1D^d~b;O zR-n!f@%Vy^$cS^3WQD9<>i59^4<9ze96pT>>)0tT@*?x-nE%EW-^On$S7ks)3G;&lww zsZ*G#H&<`Nwth8nQ#qGvN&{I~IdZnHBzZdYo=9B{PU=-pYy?0J$G`a{)~0zS_y=3! zjsU`0@v@e30FebEka^E;Zqr9oKkEju|Ly*e*2(+I>481HdR)~gH6DZ2L?UsKz0Iej zK81x*GwkMe6p5&*3Io)Nw0MnxPtY@~;NY$>J#RA5)^Vw5`o{67 zv6%G2eBSxM!H>S#pCR*NdE*6+;PzL1y1aZWtGJ5oZ)K0zevOwTex?rV2{_C8SGoam z!ahsbr>yLKqPG)8M3poI>2U3=d4Z-N46FDIzidctTSj zd0avrbKe$)7&~p@S>wH}-)MTUG^EN;eGvQQOMB~|#ikkLNXfy>l9$l-S?1uhu&l}7 znfob0L6TaK<#6~24%q_=7H332`0&MF9XKvBO1^M6fnZ{gG{Qbz0=9K_@>EFPALfd# zOA-#RuQlfZxYp@=Jfbe9d(EEQ1~@lKN%zlNn%j}XLpq_M`{%=BS0Ghe-Ns())vE#? z@e#kaF@OH}^7Z#OwMPo9JPnI-UkmowJ>L`;PpzSH!OSyypJLo+v$?48`2^&`Q{?|p z^jC339PD0A`ACJ$dzyhl0eAV?hKTJP_0M2Z36;;wGmj-9l=t%|H*evyjlGqC0>u=( z)z#hx%kmmMtL`s?EtD|eoZ9CL<^c^Nff{66DThOjk+09tb;4q5K$guZoGu7O$!R-68^`topXGr_27Vx>}s0%c~2l9lO?f zmGq|XOU(%QT_D*BK&k{SkW*2eiAP4ld;p++Em8pQ{n^O73RG=DB5|~UL3@;j0*){O zu?e!FS#6-r4lpM+3@+Sp>s9R0XRivrp+4N<+r*+#ehqo-zPDN0Kv5i>F)av876>15 z6O90=Tg$~B$OjOX5+~S|&`242tE=|KNzu00iU~cZ)i1@s5v;D5>GNF^-B@??yc|_k z57UBN7y&`@9~GrpPgm{`&=!|iXw++L7UkHGUbJoG59f<1!YC-PxAWfEw84i|n(y;Nxy}qY2MEYR^0*1;RS^4h#7DsC z3SDg{uR*HW8>tNCyd`pM=NTbPhbbSBD((+{E`EmJ34?KC%UwyPys7+`N?UDON$Xm( zq9q-msKOPek9GjM=R?&ekrC;>)}j7SqckvJYEaCz^x1ogC8|(~Pra&*&RnIs zXQMX&bil_wzkKhWgZ9kj9+NsZ@R6gVqiLIqg#$WAukBP_=sC-L2L?QWyye)%opIHD zlGEfXO`|i~62ckhgBR_r`G|@4$$)J*J;I2euDUakP@^a(mhL%DvUkJV$(?1N#jeq0 zuQZ}k<51Vdgmo$j1d`Rv?Wa5F|Le&Qvg_0BnC-f14zrp6*F(qH2l~ptqXq)^ph&U% zCKqyXx?2D;Ooi;Bk}=~Rca6)5${BAG@5cx&-x04dBY(IfJX+2g410Qi`9V|Kuc%8A zB9K!4eHRsYeh&5Y57_Lift7Zj7nJK{cHK+w#c=r#tm>u8AV6ZuhXkrwO z1?6EUA9$)gS_WI;VKMFn&p8`(_5bes;er4lmW$t79~~AlunXv5VVP1PZsMc*+DxDX&IDTS8OF>(-%zI)V}3}X&;Qp)iB@h1jktG zmfn|_+Se^^zXQ-K;97ALfaZWMO92K%>-BLsfC6hiXNJ4%bg-etiElKwwONGg-9x`3 z0jYt&K1S?+y~t@oC4>NI*C>`pTd_FQIa%Gd2_hnG>)tGp-@TMTtXoPUrkzi_IzD9H zYqIF=*ybI|TiT`8Q+x&!Q}i~7DKKtEG(3~Nz1>mmahK20<21_SE+^+fblOqV_WX?- zZQ)%=M{t9K7dL3$`0Gc|e32TFP|H|Z!ww{5xQ zhGx+PH@ zjaF3*jbdLaZk@e75oBIgHAX)Tjf|T5?C%uz_2JJ^6ItZu+clmpce2>?Jjx`X=_Qm# z{%$9pG<+KNOmt@NIP|Cet7YSHx6oKb7aVm(RGiCiB|Cyv9_g~!= z_x>47v4#J!)sk;*GXh{`tPz*6?trZm>yvI0KB$Hik|XQL%3JZvy1Icy9V;j*NUZ!0 zs-U0rLGP5kG6^T4g}HfOaenC9sar6s$I!V2!ZVR5g;dH*Wq*D`^KMzq8#hDHPs;yp z9bG!!Y@h(uq9CXi(^F0O>4L@+H!<5lh$uH_2BDG!Zw-P5p-wciU_7OHT?yPe-`JoM zTl&mR3V}a4QlcIu&<@R70j=%S#i_~Gq)X#RJMtUiUQQ;#F7?R)JcHRA9FsPUQ&90K z{@}(~qx}J6UfxUn@;9>_qxWC`XbQlR0>b&<)q|UKRho(qs(^b8Y|J|p{4C7rsYc(D zZ{cSX&E=jfg7-a&xdRDcscYQAQO7G&<1&oD{vpi&?`~ZEhui=&7w35U223Ad+Y$@+ z>ECEL{160|j@yAc+5wjKZ!&HI)1D^S{W+mMrD7u5FSb^XlbN|pOlC8bDP4E?jT0+= z|67f2lKmhD*NRx=G9A_Hx<%L5F%0jOP#2x zrlNHXAWMc(1>2c5}K8i8L-)l!IMyg+fw z8nn^x@AK%H7-RiaVP#-9pYb{o5XbZ@%${t8N3%Dq zb-EEwd+wh}cwwYmU|=JI z?;n0&zG&;BufkG4xhDh%d2G+qogcRGh{G}a7s-Buz88t8mSOl+j@qCy0D40mc(Th} zFiY~`wTP6Il=GY%a1x(GAq?=YcNHmCARa<)QY+0GRdBu&nBa?h%}T3$gI2#U`C6sA zH69@yX0!k2bI8p>VcWJibB*EC`!7sp7rcSy>_P0zP;88BPXJH=6t~H%lT&at7AiR4 z@T0MztOwXHP*+a$?9Zf$UAf03uOQ-e`_hdNSl?*)NfG=^4yj$=mJsich2FAgkZi@L zhw>7B=x8SSW9Z1vnu$2l`QNmQDZ8!*RZ}}RY{0;T-B9sLZ*Q3(>)tEqzD5^dWR^Sg zrO*R29HL88#3{G1FUKpKz#jrc?WGgw!4h|^tm3^Zt!t(Maq#2diMn=>zs7E-txnr+IYN0=lj@$XwF&9*E zDh_~|lSB{hM8rQn@jYWE>_}~5Humq-$QJ)*d;=lk4Z2uhL?VBiu!*AJkOv)Tr=E+? zI?N*O2`j(0hoIschh$^b4u5B3OTtRwM@K{>=ORyUm)+$2N5C#Di@PlMJ&<_b(Ip;V zTWhG#2$osN$8T8RN$AxXkwm1N|N4j@^PD9W;fv@dD7ZSFd@c%{S8juXhUihL@A7*}>>QJVr!iWYeH-d}d>`+i z)Ao>NK=)&3%|RT=aiN9_!7$@KDE7N;yE5NN-d9x&eUojmc}*Y4IbNMU;X=b7n896@`l8MnMaWI+?drLnQ++^Hy`z$Zzt(@-*_2`&}JjJ8i8s#$TF~kJ1tgN}0 zC&^rcdgv7!$12kAoK14pdqarn(4@-r8hepVy^=!3<+N)*zygbPLpK#~qUtoZoeBAVGY?)te- zOoQiA=yQt?vX7211BcWyVS5eQ|B#Q2nDr?QWw`3SyvW4+=#dlDue8ynq)P-06ZPlRyicq&$Z5UUG0ZswwE;ivlgMDeh&!83sc`;>TwX#-V_MWCr^pi=j)i zElFYVUa}vhBH|Zmf3{r?2+-^0AKLzDRD*6ARASPD2Xy(Xs||xU%y5s<;UX^F|M|T$Q_L^z zI5KH9m$2Wh8EO}Q7Oq$Qi)OmyT6uJET6;P}V31qbr39V?k`jfFqny!2Rrq-vc8_O_ z!HRgG```iBCJ`SrBg!OYdYA`@0Mb5#YxhO+lsgK-qjN`tIlPcrRe=xpZuL7<=LDyj z{2t*6atr(;&lpcw$7mcpad~VHtSimLlcHlT$tC2BJ2Eq~jbHL!m*+PS9kR@@z`Hh(5WuwKfiBMsVGlxOqpFyH z{y$uy{9PP=fP5@Wx20?yjXsx8I%~%y*=;@8uP7_KL4?OR z75Zjl{%O;;_8~DHO&`$xJ?B)O>|^HVgFh!<5@_he%SIl&>}95?f{Hfb#ErS5u)D?+ zJF&^^+Yg%+aRlvqMZN5X*@0qt_YqI*KA*bmlMuSmx@iwaK+@%w9T7s~HDnD9f9^dK z$4pm~(prX#wgJdYX48|9iNOa-VTP|uX~Wo3Z5znpVH&#KWgVtd??c`__5fK8gWrCF zXluOdf4tMq9wk{;u9><*s>=Y0*nAYwWJB4iqFjS*k*}&R#S59Yp#eA0?3Kw)=xi?o z8Oz^p?>Ele{_$(_;-DI-6Xo;rKCOTT_G}zjkJMK&QM>G&KdKZvzyHu)t#_S|SfX>( zdR0zmsuwvQEQU+m#K_g-cIdAs`y?zkV!U#_Bbth8M$g%Mcm2bVDp=IJm%<_VKVp+I zA~Erx=QpRvKyZ_g@JUb47Uy!I)q>jTkGYNJGBk(N-L4AH~-3FQ^|f2rwtV0mxi5ZYe`VTW=bOy zbQa`bZ@o!(=yjbCfS|hQz)fCjL<3|lYVuly{XHjVww?P7jHS#`*>H-NDkkEkD4eKh zOOK71=c4HUd1=9WxyTS#3qgUiL|5A7BXsm-!M1@ML%$FkDg&mN$_{l0BCm8Ag>8`7`BI6Z^{Ykl1^C5n%Zq2N~ z8kL(Jpga)auf$Zm9-`lZYE~+w;<oz#DUs@BB^JkdEdV1e%iiV#t99IIrJb&_S zj#^m<5MYwqG=8*(i_Xb{U(&YBJ%o;@U9*H1Q^Z^9{nt#k=hXQNwb-XWoVu8+B&;;%WMPLFL-bOkT_Yw9yTtX^SOR^|bbNpVzka)S*QA*^ZCNO2T!5IW^N z^Hs=oxW=-2o%?M*;IC*()iWK9M5O{}awpFOfM&3zMN$5fLX>2Z;P2g03m%}VDZPtk zVG1wJk*TJQ&}nI*NTD zg*Hv%y5(ai5p{laf@7Rh2d=55rM1y^_W%k{=Tr?q)cj0)IURL5sp9Ov@>8c3ugD;$ zm_N5T!Gd|8*b{|#c;P{=(73&01WJQSeoG^A5YG4Jv)HqXn4YFI{UISR*9Qc%DiIsD zB(;4E0rE-a^E3w%ppk0#^E@~5UXP(`M+$%d5Le@*qiX<|8EBm^!DeFOvQ9d)yf&k;iwa9qHV3)(n>W~J zB8q3eFfIBhsfg{`X!*3P35I zvQNHidgpQC*1}B~NpQ>HpycrI(50rze+oD(AX}gv4I}H+eGV)dXH-!#7WF0D+h`*c z=_^0>#%55O<5i)?SIOmflKW3b4R0fv@_Rku+B)CJqB$?``Jmu(Dq!25#TFLS3ct3O zUmj)jONNF~)xj^UI6W09K7AaUr^i7eU{u2R9XcW?O=Z^>Pk=Uvqw4C_d1d?0^Sud) zw+s|ROP$|LHR&jW`jpO7j6~wxTR>+R%k)_kk8R3fvAw!0V}Nq-`~KENDRDZS)V_dg zQe4uovH!Gd&`GSnf+fV*Ozq~j2PIyQ2ZUR_#sR9s`*(D(fK%REbK7as1R*nlzk8k9 z_$%z%Es-~&7{1h31r*{e=-!Av!4q{G;_n}z*vaSt*JzF;DoIGJP1;5KT`7KE0R)tR zY-N_wus8(1muC_pgVU5~VRkfrI6+V)~<27q_uOd8!H&^kT?4hiXAF#7c);7 zFr#}O89RS;+DT4~6WkQAtoR$u^kcDv>{TOlSlr<1-+Hct)Y8<{?Gdo2KmSJW)CHH&#jcc0N2YcLuQa$^<|!y zT8j#H@4|s!I-l&_34pKfY0R6g)Fhg|kz>IhDy6bL>e>Hn3jfeyQs}AJ7WfFpW&z+u zVh@kRS5^_7`o@Md5%CuaPL4;M;JVJgM2kvEmnilB%$|;5eKqzUa0w^z+CYx;K9EiW znqTBtg-X4ZqAN7T=3GB!t?lt7s>$`J68{Wxkt|g#56R0emYPHzm^P?eIc>X0OYi&s z6cF?}1gM`J84Wu|&ePqFKf+Hy`PiVX4XHLGxHdWJ_-7Ep(Rh94e=?uHo3gX{az|MJ zyk{tT!O89Sfil0rk2I2{iyu;14r1nzM8f*d9&uhp1%nN)Zn}zm=(CHw&E-BHXxtH%XY>9e9m^LhtF8_FLd+nGzj{>x zS57+kRQ5%ij@PbK053%fYED=d=MgZEH#ky^U8yV9t9F;+_~p@-D(gNe4`>_NMH}1i z?@ylr{uO?%Sis5dhIoiTG|y&#ZXT2Dzt>6bjVFMd?iK+37kk+_#@f609>d5Q8#F=p zXybNcsi39M-!pf>zRtc8T8<+|dZLr6od$kBhdE7G%wks7MWqq+2;f_QHvv8n#`bIF zKKH$RP&ttNIn#ZNAgiXFa)^XH;q_6a!M10cgvKpEPkXBO3)*;z_}^1;L#6oefz^In zD^?G<9w;YQ)p0btwXEIT56I4r3EbG_z8MK5-`&Ui1$!YW&U(J{9NVXka(d$t`z&BA zDQg8N>qpvP&z=RH%m=Z9WLw1Fmms^C@EJJ|!x(XRh!!`FERNXRD^WFvcxkm0>3u zQoFZBv@j@kB?;OdPv#o|JnqWJd2+9G1!8z_rSL_mr+Q!ATA>*06UJ)h8y8(riKt6% zXUlT^JG;~2g7TF3vg^6t_vpnq6*iId1oBs}{&f1-j$c;3{L$lBv@OXSC)w-qV)vk8 zl~$CLm0RQ$U4%XuxuJ92s`fcVSJs5l*@@x{HWXW%79-PHswfg(26uu?qk55LSB4~P zO1&IxXMsIA#sIJB5%-g)Y0_!cX7L$qJ?{Y-tXzFl)W+-%RXC2G->*jt$EDEBF=E&6 z;KaY@HWQTEaw-2o#+Ckg!U-r3 z1H-4GpWHcsK^6s7gAA!kkXYR2y66X7U`}iKG+dOv(2LkJIVPS(O9O*UxH<5hWn-&anq2RD;XCf9PhkU2F`at;bv=w$?QL8$)u;l4a zgCq|{2l}#>b~td&l(}CxF;Px8^z}%9Sh*ea zXJW+UJmCBQcH&TaJ1HCiNwwh>w&C%CLTbQHr%8A;!vAWBmneZO01S92&5)A%*P{fY zRtp9EogJ~{gjj6gv2@n+w7>Ruqsk=tc=Jx1q^Hm6skAVL72QfgOnmg*(6DP(hAu`W zPsY2D9sTABp!?pf0~F>-mzn6kA0IIYW@)xiaK_;ub<{4t40uY?69+2vyZO1f3I%`P z2=#XZ{f8elggt1=F8(!%65~Y{7g@TLzXH4fASFJ7mFq7rTn~h*N5J@M1NEIxIjfb!%6$mOMR(3WrRw(HB zhy(sV(QO>yWjiq<#NgW;Sj=G^P2XY!*(JZ?!e;msP)NEAL z)J_UkaoUIybw7aH)P{ti|9JpGLGV@BQm_1RNlg_zL#CyHPgZpXP|xyV0MvK>poYR~ z3-c76k4I16_rM3>LTR?q|#BufnT z;$qk4bTn43YQ}9ALaZ52bb|HFG#H4^8&=d23(;$2zymG+ae|OCluLwno*wE;*E4g3 zcTX?iXy6>?CYO+I=?#3UckRB0{+RkB@_#t~l>2jE24VMo&&FeNkQiogS}oPIQ57EN zb;3EjT5ysWs)+Wilm@RJC-ms(!Mq|Yxwhckoam@}hshy5>~pktifG)SK6+GL`Rnd} zBntS<|9s{Vi*?^(RT3oH2ZO1_Y!2~elbjpA>~DJ96+LUg-{QmtYap(i;pt`(cn!Uw z*N)!&?`(Vf_xFHpXCRO^c&7T#o~~W*0+QPtz3AAyTQ ztJ|SwkhIvJ2BM(K3P-l^Xpe3vy)5IgR^eAt`ulr}z?MK{X@Xg)R%sp*fWca& zXkh2%<>o95pV$rDG%YRnJ2f~!D>N+Pf`5}D_NJa5n5_WWvNNVk)lGTS!R--P14*mf zy?!rqHCgn9iJS(=t3J?+bqB}}-GaVjp*a}P{^%!#v`x~&&XqTdHeA1bQ{#KD0y4wo zDl?>DFbluuh$pI{94sP`qFaPaZ_>5~pkJQ7^+ccpMrjVhGP8TdzIiuJX(=LLU_Uu; zaH}Q^3Xu!SO<_WhC|R41PPR%V)kAv1XykxQ7YP4x29{S~l(;Jnu5T9onAl z4}&JY4L6JWTy!8n>YWh>q~5wpso-0B(s9v4!ytW?$}=eWj{Agx-e ztnvfs4IG4y+(7Q)%fnz@kBQdCtNM-))W;<**5}PcM*y5(`1iB2tYxx-URyOBoF)P# zRA@DB6Tr#?tzB;ZdS~}4j(H)~2u3YjHuoiLpoW3F!dnFIZb z)F1jJU}8LE8TQ7Yd@tsXgpXiD<5_4<1h)DpmbszSVf1(6sY3h<^)8)}G+_;pjrd7| z>SN{u4R|vlHs+`a3ij|uww+yu+p$8~^8r~e%HHcJD=QPjPPfi6TjyBNIInM2%clln zu#a?f(>Sot%!>;!iMN?WJruu#NplJmVNlSO-<0smQ!qg6-MVLVL!`WN2?d z@Qk4YaG*O2Y>Pg?e9q44 zX0`MOXMC|kZo!+}w`j$#!*UcS&F$7FXl@4LaG!KXGM*@C3xF){G@;rQIyajjQk4vD z=jX>305)ZP2-w1WQL(~hJr?@k0g8>@L>K!_cN6paJtn651P9vxg-g(lzEfrI0XzIB zR+0McR%+|QBWt#I+hjx9HFL+6--geQTl^tvX(o{q08pUCkb<*8*-!SOmxB}9WYHlK zIpxqu@>g6jSa%65pkNx<-wqI1IhVp$S;0yMD>eP>8G4XXkZtnwF@ zGpDW1ljqa+YZT;yV0#Ee*@aBG%iSvhluq=d7n|D5-t1a#6)2xTIMzk~x9hvUF2tDP zMI`9(?kI&&8}CENw~24S5Wy^+^+p;bQ63JaVD@sv&j=`?$eZfH;#gvMs4zqIc7-;0 z-E?)sz|Z#ulSOgKK(8@){zNvu5rledDe6pnQ7sdRI9C-v>>#vAHwnFB1x!_f!p=*T zc~7S6MjyMEObMfIT%Ia_ko435aoqf1@?6Yci2JP#Kw#>eb+*p;bFxI=vNlp(*o=FV z`QKPyZmPbSnQyQ^>z7o-sb9ayD}LzczK>Y&t+qMc2fE2K?<(-!rikgRsoJhQD79@< z!wnNuTv^36Cy>8x#hOY6x#2l&r=#RNN?qBxExHEr-+@JOF{3di5o{!eTlJqjuMGDH z=(+2!ssP#NPnpAqSX}y`{+?AjtpvOZU=%o{yg&vqDQ>_&NTj{pWiF$S!m$wxL=8|; zDK1&LBQ}v45|L4vrT3VQ8tN(S)~CAlrl2l;>I6Y{ztRe7e2KDB7{P^KacDA~+-shw z7yE-cfmB6e3`(o^&Jt?8EV+-HR zygi3(*){yT@cj780Ng)EjPrtEqj<-NcTHTCX)%(UT}ha?)3Z1DUh8$9IO=%Sc_X-2~Jr z9t?~Xw8w)%Q81YseVZU?@EQ!77XUk;U-R*NMP1`ff$)_~>~m%4<$3I$R!a?_;U0-qa%IJL2=Cz$aD|_XO2>J&F_G< z!IRMrB>8k~6t8L1Ha8OO22{v1N~9nRft1)k4BUvdcl3>+k>s<~-oQR}+qC(b!txSD}F(Ea^EGMJg5>f9y;dGsQ~$bMODpzuVO2MzqSFD+~~p!@b0?r?lUXA@T@Mz zVSO;|{#K4ZBBk+na|jw}6Y$NPaQg470F-Tcs2PaCKi?6vwd`xuHCtWJX>e29L^3lF z(1I}g6>?Cc=M2vrRaD+=2i88UO!}A5C;`mWonA1!KEFPp6T!H-HUIm* zHt6-g;etvD_coq@7|D~aiEm)a_!-v71H7?tjmN zf(>Hs;3duwSQXcrjn(np0G6li?e~MXU`$MPdkM$S2H$T@I=>xm_-S{}|5!1jy>>@Zg-969dbg0y4VB+cT#w){T(yzhKWIsm+za%)DX`4 zwE3CYmgQ!w3NTlf)6peqihZqLcK;FF)Hgs z6Eyay>CWu_!WwHdPhUwx=h-}XqWFX;*oEMY0s*YEN*(QoEku--yo_5TF3+!3NUuSPF+brOaVwEp-6GO2P7wg7B_x_zo(wH&Av++_0IZz?n)26nrL zXRTWgOvnD6QD`y$SIY{n>*d<76UPOptia8NV@z+!|9t7oDd#Is&pmJF78T`FO~{mV4luv60s=tfke2|$R{`h2Wd__9(zMy`GWW$$U#j7E;Y(eQ!`~oc zoOf{F5R;g!xz_}8=qq`?Ci-6xPx_H(=+x5ZK==mFvK#yQ^&n04cxI{> z#EogZ_Ettb0nE(>KsBeJXHt~JfgVvQ)o%%Hg=Fs(#P(U|Y=zzZ2)_dpA5us=#JK-qsl9&hb+nEXfg5?@xX) z*C^sMPCS7{EA4O@k}ZSKc;TIolbP)LKdilVR8?K{E_?t1gOFBIkCb$$gi_KVNS8==BMk+-3;>qSfWn-KwYI+QyPOK+2J zGfO~wfuAx8=L3tn&u0*8v|RvMDY({T<)WgXqiU^Y_30yY0=c91Nc!L7&i;QzySZ0F zoehG@Lf9cBOmzoOGV(MN}(n0fw6D237hZ8x->^ajSkD`eCq}>!e-r+#I(@_XQ zkKRymKH^W>wRFlxXB@^Rf}awY{vxn!4F2m+<*CPFPN6Lu_F5fviN#?|i-||$Z9hH6 z;U7SxJ`$>Xla=KwQh0I+vp!$_$B%4Tj5oM)vIMjnXQxfKO#-x=_V?*A0F#yu6 zElM1Vs^%3dpY7lql^*0pb8SCuNaZCgVZM8}*FwRDDd2FP{+#MEItc$=FpvZU0ya4L z-_BG7^CQH@L7GfK@kmU&8jG3v*y-sDI;gyShV1g1m9_90f(^0?k?Jj*JEiBag{MJPg z{_6KN3=9k=54Eld&pBJdKM}=?W+h2rf$EC-rrBmWa2f@4sn8EU$Sq*Zs(*l)tnYAF z9O9Op$rRMMwu!21UugnnA7RFS`68dx!UI~EW^LbNu?HHipo&Y&19bp3SV{p}Q6exa z`|=)Z76%!%fq_~V2$2HFc5KaRK`jv(|D2bp*oL(f=`khcT4G8Uc6hk>xy^x6!C>u| zg$`}Sx_F;;&>)vj_?r?HFepL%>;o5w%l`_`twmnJ*Myao*$D;t-3!Z{bFV}kAoc3) zC$vOFRgFLzvvqNQFcFZTpkRfa$s+6-6zPLrvI8O~rqc8g|COf!748}Uq{9Lik9E9% zfBkx>J#+&^zQYxWYD{`2)@4-_PU^KRNG#-(2V|rv8Y|ebBAY2P4ja8?ZhuUw+ORFv zc@YT$3DR+(YUlZKl?PVupqeOOJ}#O*Ob&_uJTz*30D5pkc<&}A4GF7F=<6gsu{!ll zDP#dC;2>fUSiQ-r?sl|hZNZGE4^H`PKWdrN*K ziX~9`j4Li)a8Ma;)z4`7BTN?$R7w81pYr@8D7*x!MA8fI8n~7} zzIgZ{?GnCq_&ufa50DaXe^_CGg@*4<0;T+8AvSZ&HONtpp$D*T3@i9m7D+P((0=yb zm%arK@P9)~R;xP#V)jexvZ7E?y|lEEQ$8su!Te7hoA2LrS=F3^wDb%52QOnCEW|&= zWhcdw+yI_Fw}VHrbsc`Na2~#54h&$2t?0T<--UGy&#TN84DItdRXf46zVq4+AIC|Y z-PA#dufKCI1%jvMEgn-#XV@^%z3>;hmisA-Gh)P?w+$5db@WAD2_tF)ss|8hgk)Zr z7eX1E=Cneu^0t6syZx_X5)P{PAcZ_>D-w|hT9b|a20-p`J41Mic7@pv zFie%sF0j-=bExGJ-MgazK`We_>xuk31J2EI#8(vuffnn4Iw zR2p}Kv)@A&v=)T^5M5+ziG_2Ib62+B^n}snh#&Bt^hh5c)-eWL7S@|diWZitZ*QZWs z5=j^i&JJ~FF2h0JJN0_v$2EJs%$_%IEzjswK81>dv(!M-?9f)#kL@oynzb;2)>8Cy za%2Yug<}M#LyW>Us7BxlH8H%lIeiDuRRvhoI$TgZcn&p6k4YyZ@1`?8&OgF>rS8Ic z^;x^=-$%t=;=UXa_ti~*0k}UatseSOnMVTAoJ~Ow8u!Dh2r+CG& z`+rq0G;|aVzpt+W@jLHl5}t%;m2l3ZC8BreI>=+Lx3XN2&KF1eE128&2$|t{@r2gp$PL<{eSI>`4EDTNQgn}4=GRW=WUP{p7ieA z&O`Ot|Fhrc;;%W2_Ky(BEXHRq^p6y1hNh@^3*E2&E@<(mrYagx$8dS>1$4V7k+!x$ z>e+K;;7mR^U?&_J!HSBasNfd>l}-PcfTSi153!ZCwVi`?4Aeza-*xXKwW~`~bMSdw zR@QmNG^@6r^Wsf4jhD&l8dwIEPOC|`D897d;;kJ03B;(!7i>c91ycor-qnRwYb;d( zRMNY%;BJuLd7?oSq znH0q}ppKo87O>&Lxdj;IpkX8HUY)POWN03c2wGUUJ3`OYQF|brX$~o59&KVl7{@73 zji%nXRB##J%t*kB+E8yeJHS1sjKBHmTn_7#7*&$hiyfUKiaa?%Ljp(@k~=jPvrML3&b6LfoW=dq)-|@5s6Bvq~Bu(K#!=ehPYk;ubki z+{NBLS!V4(e23Nl@OkiTk~3iY9)Xr7C=LA=-J>J{>JOrh%?to%i0ByNxVzP}$b{if1J8=mpvujDaW6JgGQ5-IXVzO&9^4 zG|KZ~%xozVbtXixSveP!L#TIz5XS+3B~cJQSd!;GhE9NGB`uBdBr`NgpvgkQnc0B; zVgocpTrw`Q#`yYGMYW(CNc#h&)sex$pWm%Rjuth)_R*=b;o?CjK;d`L`2pR8mbo6} zZN$@b2tFyPBJ36RXlJjYLQ0)-n*pRYcl~|%Ygt})|7j1CwZWYpl!<;zi;T%j93ixF0^ zfXYcEf3%;-`Ck}@E=EED5>wyt3Fq(ukYVldSEIoFud?hD-@`id{(=8|;x<4s0p|sz z6~NpY3TrX*J_Se1mspf;sl%v{ExFU#=7_J~*(OaolZ9>pc;IC&pIJ~K4_IZTSFM0x zs67cs!;3*$>jZINGu0rQ$^5hcYRksu&UTV6!hiq8nkH0PtW$(@Rgne*p7Q2&Kkk2? z@@hLjI9I+y)mn_0KpFgwYch+d5&llpH3{tVlN-?F z-F~3#X^RY+U*C9W${c@3Pez(FUs~f3as%2OLD&q^r%~XjP!A;*b83pWGRC3?LXKBH zJ-|ut!DB<~W%px9W$Q)NF;-D1D8PiwduOImm3%7%Wv{Hwq&qwVT#ECIJO;)f?OR zlEBl-CQ}AQS!<3I(wLxdSNv{^0!`L;`rs#F?UXROd)*hi%iZNoX{D&W!pR90;0NSG z#SPN1$)0v%I=WIZaoYUCGI0xgOcs`}gw%D9y$uY6IiaBHejXXqP1dd8Cnqcd0&5XE zRi2=dler$M8w`C!94{1bI*>=Qd-TfKNQo7+-8%JrE`h=Kxgd{k9_rbp9sH9xg!xOM zUioUkEn1wf=xoI7*&fu*gsls(F}{^gUi;J)&y~D5O$A5&1n?;g9NEpkByK_Nm0{rY z9ykPD#Vyf&I-)_VZK1y1`20@YI^WGz3Y{=1(pYeGNqlxrJz8w)?Y#2N>P z($(K&5A&$_^=tT=?uyo^z`qdF%(bS+*BUTi;85T3@4ArN9b=7aL(03D$Byi!-->0` zc2V{>Lay&!_+m&BO~PO|vvBn?dml*nSG`?*CFnR^?zETD`mgcASmH?_R^*LjL8M3} zL(AF0OS+n@vvHK%0;_S=iRY0R|E_mxt%_x-tB~C z`a_&iCRTcxb|@F&4>{zF#)oQhnn2$U}%&-8OcY0H}sz7hoy(Fa?`)# z!Dwpo+`G8#@_Cy^2>%w)VMGQZiEOvYpExe>oS$3tc*p#WK-`b$oW4HRRBA}!XOp(r`U*9Rft zY0mxk8XPJnWIp*lKDqEmgtk72ezXh1u=@IX$%hkthzcB$n5Xpc*jIGqr8G3e|MsR> zZHX!HTc6E)i%B8O+MXjhbm6<3juI1>5|_a8xSG}dnEuz;VkG1eqmJP;^t|-4B_1VX z)|VCSXynH5m_QAW29pf$a*4H}5-iS^>gaR#-F8e&Dj1F!_p>6#Ki(4Fi1SMfO2P(w z7C7+3r>#{}PCSd0sjn9sC;xV_Kb&~i_;1@A$Y-6-!@-?z8pY_4^CsgrljGZzJzMw- z61?j40kF)V*J(lh;W4tA5({pvkS@E1@UP@c-?vXPF-1m6dyuFui9$oh-Daw@jR2kG z0Ke3nwJyOUWxt4fxXfWVS?~Jq4bPu+NO&bMCEwDpd4r=}l*S8sn|`K;^FRznxGW*f zYpRT$-gzAJoFE|l0l=l{4|t{`5i=@}Xrt-M=?R`{7xE?+2poKP*PV@G9(z#^)szF7Q4!P)AXOv*~*^J=tcDv_Rc;iYs$*&|X zk2Nw8C)M0%8s34t&U453BuwGHb0oZ;{&OVo0MwCU-Q`hq2X*_2(+)8@8@-;>ZM{_M4Y(A_e%m-PQXwjWsE1Nc*|?RW9!(a=&}9{T?18T*6xS5;9(SD{h%VLcR<2=?_E-*n04J32 zUGEN=zP-9qxnK95;6Xi6(uJ#+dedgz=G@}9$acXRzv+5Yu-Cw22K{&(V5#Xn%v4L4 zLHl1>v3?97Zy*CuKNsFHe2iOhUP6~5@g9XyL(SR#MM(RfbQoXm{_RPsODkuVahOkt^cDg&{^n@LQIkAH)RWO=E5$kE zTdkOY{kX8ZM(~-a*Y03?`XlQ(I_lfmrb`8Re^A>GYFg)`QC741GdvcCqRw-Jgf3l| zZYydi^N_rV^M8cMM-}UD)6Xf*izQ#+Ha!jhyt&-_4(M5v#-XG?7&KK|ZxXgQ}7OgEMgGMYT7BNRNGoCX+ zx#zgmYrUB-T|tu8>tuDn^74Ft^}GVN{l(srVV(ezV(iC!YFCM&_Nhl!pICYXPd;Wo zGtHlcy%XO8RLRgLriC6l*G0H&#AGZPN4tWD;7||RLzAjAdNyj=C4v<)+4#8aK}OvA z?(J1TZW&-?$iWee^*GDTZAwB3BSWc$ARc)DSP$xjHpwOh#Hq0|F;XmcL?x~oHCe&Mg!qM3J&?u3v0j$f(O6U3JR7D&CjbP)EkHho1It7l>_TIh+L)ylE z{1Q)N4_BxaAQo z*pq4go9Zz^K@Hs)L{)2Fby0gPnYu37UMGw0dzRhAV`Z!92>sKrt(SrMw@OMU6xxJ0(oBI?VX=Vu+PJb8BT~<@UpXQp=0`!dflEwn%~+zcjW4 zGuL^67)O8C17lxa#-9#T5uD=s^&S@8cB#Csx!k1RN*tZOm-JMM-#+e&l+4oIXe^NW z$x*%X$1>MXdEx6fi?Nc^?ADF30rNxrYoaex4>P>>y8KWx$t7VM)3uvnZMf1nxB;hh zoKy60m!%2{1GUpbLA&F{w-J{LX3de`5a*7Zp`B@d$l#I-sVuLG2lwXO{MU$G^e~fs03Ag_)C3_9J_uK;zrzs%oib*d!Lw6@5a(pOQru|1 zga53|^vknSg`64V+J0i2=$3gRZiP}g#dJFMp<;^h!Q&uY2Le>Z_tt86cu%h8tWvso zmDi~ou)PHGHYLdg8cZH4sWyBP;;)=$bKl^~oL|mt>5KA?NiCPiO{WV;P5<^fx~0GW z=OY~(pZE8~ghKrKxu@h<}`VmWifBz${RZ(~xBR?u#{;v0f&C#81 zRLwkljNr^<#d;A4-@F!^kp4_yRywUPlihF$x4bPbWn<)M?;=lXLo27!T{~Vc#Iu4; zfB{n=1CJrc-bS1GFs=xMG7$`ELe9UwzqdF_hRQxqN-XP&Qy%a}c6|Q)d5!CKmN0kw z6D%^w1xj1Q&8hq0_8GY!$at}<3EU3W|HZ3wBw z9*lxcArJary<9J;G#!s*EpA0jN8V*G>Hc(ociIQn*xQkGFTwgdFP9Sw*N2y4McYr4 zhR;_=h{@>Eeb&`WQ8wj@d40nOjnf(DuFuAogfjs|C*7WDeoHmRB;bc(n$s&8xyr_Upp?5--=0z#_Ie|T!_FsU>S4&sz(+M3vBNlb8@U+%}u^Mmym|em(48y zm~Jq7>P*>0MMOlze{@yW)zsAZ{AGEta`zi(0zU17IG>*kQYelguQIEif`n@?#yCok zs?YPms)5YBk2%j{0tRnKv-OAStyG#=RA5?n*i^N~_dnGp-eJdgC=*ny@-F+*^QYHJ zfkwY1NVz6ulYL!by-c(G?GHt5-*OofJ==^Uls@zQ3kqYB z=0Kd!%@|!4LmPsrOU1hT=r5;#|HV6QgTB3KpAd)9qkQOB6`k$h=_m(R_Q&8^UZaBx z)?Z^>b?GnD8vUm?r+ii{eT)@VvM-QuZG*mX@4sZtYE>tD67Cy%L??eawP;23-g!o9 zF|M5@-KT(Y2~-+zjQlKbBf2pWOELWsN>q8vh8}$B%evIn{pr)bP z*x~x1sn;%@AOV8oqSA?3wLWfLXcv%;mIM(e6>X^V(T!RT$ehIEumiRG{h#!4bMbA2 zX=Lvlb!t*67 z+pH7k%7N={ktk%9y{+8g=A)AZio8d{&lg62@FEX6xr0ruIa5I$G#$r+QnHHAoB3nH*bEV&-i`=XG`s{0MdKj11R>6bmU!sWfK6e*A-P6T{;do{HF?!+e_LzcT!?SG}mj72v7%g zV^zN@9cSiLh+@Ff@zD+s-9OToV1mQ#lZO3~wG#e^u{AQ%m&_G2?C}0cUqu7yg?T#T z11X}I^GBqqP34?6$L73ivH3$5c#uxR@&uG8*Hy|=x{J~5u{8sNR>HG6pF(N@<0$OT zvV&6fcagz}PpX)78AD9F)U<9^1lY|5_?ayntPgkX;-*n}trubSRk+&8B|q0MqL6Ti z3LCX^HTo$dZTE}S&8ws+*n$%TL;s$X(qXa4VI}tjT<)b)$m20En~UnjWS8RG1P(BZ z&A@meUH7T#8rKrnErS;m3WRRYu&Bk}50T8jEZVhz9O4O6IGsOWAhpOW0EY4Jo!qYG zu!|Q1UY5P!(BrX|T$s4hWU!A}>`3GcD147aHN@4>6^sv_Z~`84)$8z5e2iX!q?ek( zj&kKKI&6Q>y}|Q&f#)qQOznoi1Q{oLWGJ=p?iXtEm{-0g-F;dyR{K*uGNRI^KP3DF zhtobSJ+e^7YYX=XZJNhQo+E!5nt(&hYf*M?-Ml?^oCSv?>wKI$rlmD); zu|(9c8*P5>6`vgODgVPpvdDS$vzfN4U^Q&eC1$(W>_yO+sKm|HcpgaPVW4O7!Os9l zo67QTA|Mb0Q;m>WKy#lRtyPRxxX=2uRi|(T$0t|ci*8lUzdw>bJv%##E>EZv!*>x8 z1*2vAjufnZG%H@zmOyl?Xmd=r@>N3Rwu0oe4l0^ik7s|QV<`gCA0BcQG2JFgdWgM?8@2=%eGKqF5j zHSI&CLm6^K38NdLX*m=%>M5nZyV*G8=LBJ9#dLQ-jkc5k9~d769DR#p%l1+0cccm>NfvxS~<^Q$jlyhFVMN$M@8P3xc9-6hyb!LeRJ5J-AUTQyxim!DyoabbK5( zZ;zE(gFrT2fP<6%JNIxG!Uz;Ch>w_0(!pQ{^nR2l3W|=hM(cc)54Gdm#4?84uj4zZ zrGMog>@GaRq6|BfEqbdYl>=pB1#t4P<*e5PD*KH1K<&h%@zFYz=WEOt%3oJHK*hvdxKq|>`pIP zj?N@26iaREA5m7W+|EOTJ`==Z-Q8(4Rd^tcoJis98}<*p^}Ai*QlFm`Jo!ZktJlfH z{Wz{!F=$cUnRYGm%i~;uQjYRJ?0zC%!S^sF{e*fpaMi5!Y?eScZ<`S2<_SiLf)e5t zUx#X!!DD3`(>2|+!ph8Vg0PGRD_C}ilMuCvAq&1m*|U&#%6p=I0agrpVEKlJLT#wm zQ1LkYr{V+kAxC#%gNfCI4j(}QEr(&;@joj^3g;>V4sGTgELT5_fmeArl6BZ8EsU73 z-lw0~Z!k;Xo8>EE1vU?JHAMB-Gl0anQG(f`vh5t6Y}w0&({Z;^z|hXMp>PCvEHu=x z@hK+13}mW$)J)ZlZs1~p|ChlAKBLrh$A&z*g}1vcPJ9p#W~1DQ3yQtKl9U6FRuLKs zlmp0JYxc*s?quO)Xbo-_K12UDU8^6&Qc;58q;#XqMZK#~uu8N8tWD_=K1}+$1N5QD z7aWNl3~;D6fgKGpvUYI4cM$Xw;DqH1yrzQX6L~jt`RSR9VO@v8@J_`F#Owy4s5ySm z-))5q_UYX$4ooRaLP%mSsmE7V+H4$bcxh?KfNCUef>F@%OtBsVmd~^rq@3df#||6= z-<#3C1)+j6ktP-pta+;{_0nXJH^BSMuG9=nLl2)?L4pmo4D7>u-5gkk0-qD`(fxNK zTzIy=3G%OSV%OA$huEQkDHNRoz78MmKOD{lu;yb4;Gt{NC`&NeEH{EEj{98E* z@fLqHxqx<}(LcSxcYji0mEBiL5WpCuGXs$u+*GM!6)XUFb6IM+%2D1ksT98YzRemC z*nkZTlgwE~zERLl18^^d_k!wyT=c#M-B=9EpDZLPsDKa-E`8=~X{0m=!&E z=SDq8xPztOPbF-KsxD90OAz;Cj|~x~@vUi4mow{*fHM%M`s4v-sQ<`b^Ro(lNAN(J zQ`(5rp_1@BQoage8o7^UK!?|mv9phg<;_j&GcneR7_g`ey~p8N$2NB&!-{-Psh<-*a(>o@IT+Gu(H(0hjK4 zHTK^+9zH|Da`&QsdyO7xQH2~aSfaL zL)vl%e~RXDxnfITQGY$n%IaMGmOd5-IluO2f27TieMEUmG^|YGHa(P;o6Q?p9J)W( z9%aip4VZk=!nerx=!w@`-^sFEW10G*6HrMEjtj~d9L^xgd-qJwX`iN-^Z5B)qzz}} zPR5H`DUClGSp-M4ZQSEO;|uY&r868L>KIXUX^p05K_rwYq5U~7`|_x7J#oRb_^(0h^=zPruUHf)ZjlbGIUiB(W6ItY20 z!xC+i^XED&P%oqFtu;%eO@I9ow8$<`Lt8!&;=);QwSZnyD_JEk|JR8Fd&XP(-=b5d%b7K^q7$pI^B*;pLdJ zSSc<8yl+3c0Ymmlk=2gxyR{7%3RIXMr#o^!Omm3X#u8Lf+PYoW;mFbIG^C*{q*=X<;r{9hSrk!0j$7dQI<1WEoM;z%ox|m z8ptaIpk9FV8F85JpGsdVF!JS5hNC>%15;bjcn*TS9loa!vHzVeW{L}rAlP#bgh{m{ zi&9P+OrT5TuZ_nDb!Uy%GMlkn-HtCtdC#TXS4MYiqVAR)w3FZ)K+Z(dr*6KP8M!0S zXXc%BI|U2_1~YL(?|);2)&dkqo#k2><&7@YB)#w1e|xSY#xamUT@|UAOFH(Ny4Kg= zJzwJ{_+r+s>51L@l?5a{Xfe_0xGMU>6p)etX~6)zgrx?9)lxpqa2$BKo^zZ^h}!Cm zOo%r=KErg;s-pd`*0L|)q01M`M~r+n%cCQdQiPmM_uBrA#Ea-ZE1rN(-&c6(=c^O? zXjh%Wq$5vgwTmqRmnB&?h!=ZF)X;UO0%{J4`t|e+)cZ6*VO1)Nry!5;`XElxoxYoK zE`1rnOTVF+ZA4SnR!OX(UhlNj{!>o`E<_+8X-G)l^+oL@V4o!x%O8^J zsR1P}Q;}_M4zN5-*!pH=Se@Le?Jh9B4p`WJ&yMHUtIC#&g2Ak=fvg%Ud>5T`g2U17 zQPS`LQu(585UF1$7}VaU8}|pyo8P#*vUOM3t$5b$yTiT}1emvI#z_H0zTRKbDPX+O zUuI78pz`iK)T)~DTjwucKQ)l!U7w^aJ)%624KT3@)Y!_@gsC~`t!603)AC_u|A4Fr z91b$Q5a}680W!l~R&x@KKCgRt&ov^C&SWA<9_X#MAF-+VqqD{gOzv$z-yd4F4QXgL z2@!M%==aa5@vP{Wfy|HI9Txs(>kqN4YIn8gN++)me8qsNT^HM~g-TONiL4zR9Vv)b zH#Rnu3_U=@uFz1WWC8onPff?QO6f$Ki*taiA{mhvBuDkM_8h3%1Ry?bT77^*2Dq#_ zYv69*{EsKW8(##+lpX&huL>!JTn9<_^b!mfB`#`UZu0lbY)&8lgLck10u#2DLc22U z+(P3S8tR5Vn9=?1xhqC8*(q0679}|-kF9$?L&k+=`S9SNbDfA;Vsk7@Ovk0|xo-Be zWTbZjFJ_iH(d6I_`#H@5>mdjbJA%=X!UCH!f)uM*NcLd{tgeAd{a6TvnP`F>Of`Q9 zGPAJ$Y1t9G(dALvcVB(nx8lRS>jx3Eg6^^;MvFi_=$jTPBK1YiE5bVsw?U+#^yaey zjgW0%HW}Ht>$Tejm$w;fCG3sxGS2sf+W$ETZGAM`o0ADM7h-6y04q~*(n^`TFa)2e zn~D}ZazCsEe1#Ti z+shrnSM$@8e+j_ih|(fW+*0Yx-`5@1QdGX7ebOeK@TZ5?LkW587%;2bLn0rBGFiMc zy4f^guzOVA;Ov0WKd;eUp9aV5=h~ipnjwPi4KU#wemJlNIVWIDO=AB$Co?=WMW5cU z#0dNm1pF}Ay*A+Ote;$}O#nDs=F4u^>jVE3u%iC=Uw+Umx_J%X?z+Q=FdV^nZ@*(O z-=RdaFqjP$pnAY0V`;gxPXo0GQ-YNC4=A9-P&U#pdtzWD6_}Jywb8J^KTs?Lqqlx1 zm6N+VY!W&RXMT$#0I?RH`7*r6;q&$hmc^(aZE^z_g<1C#IsrJjMn)msU4gKYmF#*Z z_sY6l;tw6Rglf%eZ(wT1XgBm{FHDZ`Er64>rRl+0C?iYDwf=$B&=@P(Ms+W;S+ay4 zW`%bR@_D^hg1Bp~!JU@(&4VWfBSRK_N8qPHX5g?w1B83fG=ZU(jlMqk$%YhqKrkeu z;FZ8=gORU}z9jgGKOCAqF#c~YrX2RS_rn<~=!=N%l4 z1G#@2iw0lkx^qUFPooJ2;ZK0ILr`hsznDZzdi}Ok+r;Y^4?y(mERDw@^AsWUh@cn1IC@Ea10S)P?hVP<9B!Wk#%~zzgzoZrzZ( z1#6Xy&g1)D1+C*0UnP*u05o)CA>XOY%+3ib8%nPvf8#5x`6p(}MygEXy~>9q&~q0l z-?IDp6cyOI-;fb63KgFliUA*up7_Uy4NO2yJZ;oRRCsPerNxdiIAExhMHm5N6S{Vm&u9@( znZpDL-8-U+Vm6jswhT;@E+5DEd$ANP^kr%T3C*_v2mI3R zaw0EHt!n*5db`xFXv_y2rsn-Gsq|tLwv@S@eW2BXIc9RHP#b2AA_=&=tUj z0>w6UuKkp!a?FBnov{@|tq^=axQV*-^B(0YM9E%!XLN^JULnIC+N-3%ZP2;msSlsV2%TXsdxc?e-k{h5bJW|X^nkxCU6pvr_Qem0*tSRpEwV5-&a zUV-DbX~3POQ(g%{u-~^ae<}2>r?7U zc_+K%e_9%DIYGKa_+1nQ!LcqE>3lv!a3 zBjeDD^+qbTn!fUv{`)0WEX*2%=Z zdp$PtjzJI{mOqxb4e&9pSBcKB+t9B5NZ7ugTMB)-PRst%fdyIxaw-*yUIAq!ipo=E z0Zq6dJCRBHCY+Cx15TN0_l8l?jBA}=$edBf(dd668v`b+sRa5yD%b!iob4V*E@m<8 z6$B|)nXxD39Z|zRbuR<7fsj6A%~DqmE5)wGvI>(*jH7g7^YAafn?dktvs!_=3*?)% zPfC~!U?ur>Xj0liCtF@{tU;w%l0}j{o+=y^LWm2}A(j z%7fpq!K_Fr3x!fumizguM%Wi#DXoS*!4D3!fmhyTz}IpcPBsX?VfPV7pxnhm1M3rj zz>sxk{-z(tDHI(?#>U1@#xq(fd>tPGR8GfXz-v06=Id66we>OdMP=SV#45 z=Hmj`Zt*mz^>A~d0;yx7`N#a()1HU;udAW+S3CYvOwGEH<$0;5$9vXYZM9;gJycXB z(=}}i3*0^Nt>afDiO*V3_-M3>1fFGwHlwNh97=^$6*C9+hT45uwPql8h5f19(t0?)oeK@jD(>a$ zUGc+$Y)oE3mGW6wI?iQ38>SmO=VK(ti9q6p=^p;0k1K3dcX3?Opv29g#oA zMAL(`etJMCwvP4w>BEGyn4$VytzaII_BfSsdXoYv`TUz9XUG*z-R)`P{c64baStZR z>iCJ>%B~-a5^TuIy_3$`h?`>BskUM?r)svAhe3KEX%A$#qr*}l@ujwTIQp#mx6tGc zefw7csoHmohFP>=K>*2#bz2S8<<2iGV+_gjI?qi{9wf#=XyICr7RK-$csb7{!Ht00 zG2penYepr5!Gy<{{6~ek#}5xb48kYonjXgh1J<2#QrC)>2lrvVJNfBCPO`6T!XKg^ z%_oJ7#`o`8jE>IB{GFk-qKCX^pCyYrm6?FW>wtucc6pn7&z`ZGgU!t3nE7o>d%9m2 z`1`xr!rU&O(X<`WD7vLLVC2P?9)rF>*_P`prXRbcHs%Ls@NfS!Au*R*Du8rCj zE9*cK2o9hRD0Sd3)UDt=@y-yYRwG6Gaj{*m09mYjnKXR@xKcxMPH$dY4d_DtQ@n@a z4_sJP?(?BDBBJWbk<6^m?qChxAuG~^z*iIPpPo8;go!TuDK{bbEwv5R8;8d%ZxfAB zs!e!ic|Yff4#r0dc!&4KJGn;)aV}nzl)`dw`BoG2`Zw1u0La-0nMFlc!95k!?{2d1 ztoXq~AFhSxJ&ppN61zSt4;o}440ZGH@bEv3kLh?1hN>M2gczWnI&N8SV!#eUW^rU5 z0=+P@-A3bz>fbvGqvMm!wlp;)W5{hzMWxH$ zN1srKB4&nIsSwmg_HB2D0M?lsk2tN0r&Y84P?R2##3*QOh8O=teIJ$qWOMSEymDK~ zS|4q?a*P)aL$~hwY4|RTMcJnhZF6GJCyioLE{a^udI|9)2+G2gOhQjqDYTs@V7J%a~^L zt3u%ufs(S9(s>MySa*5TqkuIzR#Q=9wXgn%|9QIXN zV%Y)WS~;8&#!S_CA}{BM{yJLfyvw9#_0#5akW_Yh^Rt)kI@tcH6)trcGgiQX+*t`~ zQ3XXh>6eNnpmDuo#}^Dhj0_4QVGncvi7l|&KSGt*zb#4l5l~=e5IkOiFAux1te#$- z1w^A(@BTr#nN&sF!Pre#P7TQ-sY18mPTBPza?wy^oB?%+2Te&XVs}u3^|Fh=dv0^9 zu`7LsA(>NT1SqdZbhKkn9%z`jatLekiG3Jeta2SgwxGdk09UR(K*y6Tv*?EKQ>;A3 z+BPO}iV%Pw@NLWoKZB?iowe{U+CiaXxU!xqgCHfwG0e3hn&zMCTp*yk2bYxxsQb~G z;aCq^Ijfv$tW4mum0pco6bM0KHa&w-Dp^dg_RJOvqBjM7N-+4cpoUqCi4vCQ0sn*R zjtjW*TaUDnfe_X{b4=728$@Tlvu>T=p_jgNp7W3q#+(|@ z9+#_5+iR8;_ZSwa3#ry~Zm4R)Xce_!?+;x$`0K50ZEchH-nT-yHuW(@>CrE5ki3E6 zuPGXz_9t%Lpl_xx@vq$9gyu%JP? zctRK$(+4JpM%tjN1IG6W9kVc94j-e?=2w|YD7j=Jpcn>HE@&ndPw5dktaJIw4`4AR zUoHr3BVRBR3G7p#rTKajX7TXLTuCo1??Xm)U+~fZfL$ox;;?`fJ$=!l%~QfV?tm&V z{tlcu%5sLwuAOU?QQaPyT_jMEjKkfkv^4HPx~zOhkPEr36T9+o$uMby{a4oU=F0kC zXxB%)x`1(|6X3fGQNI^WrxRwcY;Bcf)JG;8VDx;?s16c8f@bKk70EyJ-S5OnYgD}9 zB^h~csy7Y-<%qs@9DLJJwFWx+fbR~_MnBv94QNU6^sL-QnQfl612^vi=T!G$^Ie+@ zUjkrhXAPUz<*jqx7o$BN3i=Ye3@i#*Ianl+QyG9O>!Lbg*m;`;EF1k&zPp-&vmev| zu4HxlDguB5cRodEN7}0*b$l}bs^``_lZFy4{^u4Tu*he-cnk<36`<7^2fC7KLgL%; zCZ6ps4aE)MU8>>6lOAyJf6!%X!y>8OwM(F42S^Q;qz9#12>5O5Gw*kqY4yD%l;CaD zRbpUKK|mJ%lNzM0;H74EYJ$K)q`Wa0DAE`xR1xdgV9a+NkF5Dn&p6WiBqyHy{|tf` z(&C|PPn^+b>7W?>(otRqnS!KL zd{|(xEcB$gAFN;QDa$3Ze($pe+SK9RWe|8iLBaUhhptj{0qPTi%S2$DH+VlJ$stcF z&xPOf8UT2s0DMQOw8r<-_9mMQ`xj!lWIJz=fo)%WXHRj*_HYZbzl(4XPlBM5niR@p zq;ct7o+W|k@C%@rLOtY`e#fn3mX^GQ_!lM{z|sZcEP@+X9HIZ5e(C>sr*s6*R;1z) zw@-b?{?Es$R~%u{D8?DIv+=njKmrZXxx_k4h_F(Fe8VF?CY(T=ydY(ekUBStmEs}4 zBlc(xy(#MI*keD@%ythiymM2QdDDA85P)hT6(d&gl&>kub^Q0rp;)HquRS5a1#!XR ztLIuZL}5gJ8TbqVIbX}x`>{UxVyF~nhN8o*#B;(@I~c6@17xdUYV;7$w`~0<(#^yLW%x^D@8D0B$+o z7}(+uUrHOB0CLqSvg<8YN&q{t`Wp#hElKt{GHndXAs8@80`M_PE#UfADdgV(>; z=M@p)1kWaad1_39nb{?;xM>d@Qx-YZ!7rr{s-J>%Tp$M}{ypwt5W-p3sPlDjB!=BI zWj4F&QF|E3NH?wk-^J($%iYmJ<_!TUsW9{0F=Nmzz|A(~sWvoJvnpho{!sA4U>5zz zv-FD%ONp~F8u)*<@MlR0SviEV8YSs)Kot}9Y$9&cSE=5HnY}jF^dA2jXa-e?nT~&p ztea4DEveIXvS4Ry*+Z^OZVx@H`R+A=hHSl;$Zm5&}{&vF?NCrqv_z0d-^s zdwmj=Ge@9EbE3l0<6p%{eICG7_ex9dBxZB3+^B;1+}#IbtmV6XBg){OM+|$YN?1+! zfEgXEO+Q~?k~nEgl;Nmah*jjcytgMp*}0J2pqvZry9uCpd_+Iz$Q~S&E6pGR5}Z%a znh*%54X_MV{w9ahnR;b^WK~l#(sIfBM zP_A;L^)~=`Y%~xv?xBhxIH9v&tjwPN4VBIyE@C=I$V5Jh8y2^*Lr|^-*$=&<;VKK{ zqvpuZw;Y}&zi}@ihT_8Vj@_AVuzn~IaL7)iEh??!)@P*SCN-0?VTuB!4Rs_mCWW~ad# zYmQ1Ms+xy5k5d~GnC%W%2N(}w73=f0^@6LY5AbEd0C8W%9a|g5N?oWH3Ms+1Tjc1s zu0P|g{a=?eQwE*>H%8n15NsKqj26qAg+ z0+Qk>C(TYD=iz36#KW)e<&~QlFXIIa_aUp6_Q&!?-_fms986{{Z*$xK)!3DXL)o_d z+Y%lOSra9sk}1YCwy{k}Wr>)FQkE=Z#$z2zj3x3sJVYt9$<`n}SrR2JBa)JB7#d4O zLYDA`6ovP??&|xF@A!`QINtl8mV2(b@44>lKF{CzJAdbS>GNirg2DjMy_3cL_;`Qq zXL#7Ofs&O)ez(clXFrh?8WYNb5LNCE>)BwY=l7pGkq(^a`Uv|8N520d0i8^#(RpkOZo*A^`5X9nd^prw3eq)RLvTKU=QabP+Zmo@=hd zYnZ^`zdrdX*T$sMzBTmbwICilwX%{npq}g}FB|NQqFy(aq4R1S8x2#I>02hE!Koxb zjGkGvdK85UYsQ$Y&9qCxrG>t(I??w=n#0bK>| z-CNAQTLWBY(ht2-`cHvP?)}nhJC38DypWJ=`MTbx_3bglGg*;p05Ch#NPpmsJoB_| zQnY$mVK8uv`<1j5%0hT#bkYKj#O-M2{uTIjN{zBP(jaCtV2%eG)-{VnZZ5F4770M* z2rbcXs5e|%7^jw-PAmf_l|n~N!gFzPKeB#ZO_-V^B)#|eJmASBC2W8IHzRhmZ$^} zdi>TBKgE>vf(9<8-s1yXRMSt zRlGnu!pk|WQ1qrhBy6@_=Z&*6ryS}N&Iv1UsNQWT?w+p0@m}+w<#WI_IxEW-rV+%_ zq4l>*ew?DQtKm))v%Hi+fFlmzjP7sLsaVNjZjoe~?7FKEq0Ff*_#R4hf~lnyk{8Tp zEq1(oRDSW5&oN4W0Q8L9kft>rq^F>&EEDhITb{D1EY({Uq|M^qS&IjdeTU}eu6ymN zELuv~wDPXRWFfR)n^z$u2CePAl-IVobVS6DzD|$m^%5pXvGCzj4IzvFZ5>nGnIP0P z8w2i4)W#>4I*3v3{8R3CG6m~;`u&SiP&m|Z$cwN@1peJ^fN010Kh zfSO|o8XBYTQ4cV;6!*hlfh^xxh6?;opbqLo$%y&3w^87lfS@{)qLA5BdbEnt*1w}` zU|`^(&&Xy4 z%^|D#jVcfbA|?CzbxVYPg}%z12H6KJof;4i0ED3ks(Ms_BYs}>==RHOzn0+liEAcV zj=lGR8O$EL2tN}?1mtN7`$-cT`DMxujr0eg2Cen63p|fB5l<_SGa+c*xIP&ak-p%C z$y&Ef>ahk4gEwavyTEjSOXX_alK#guNe3nmT2v$Rgd)Cs!Sj0Nkt}8Eh>8T_Cf!Syb-l`W+Nbr2jut!jXa2xZaVB6YXhB6CRwJl7?N^01ZiC9^KfTQBL-n@ z8K$8?E^0gdnT*qMtq(C(Ta4_s9D)kN!oSh<@x9F1=YDmz127=#H-{|Ae3uc$gptoe z7yp=OokNv?E||Wn+rf^e026zn5fAvacFcCq1Jdp+NHFXBOX-7*T)TmZ?;?|D(t%ZA z4@!JMiN#J^5l}%H7vkGi@7XI;au)bLl5TZf7*`5nuV;H%8;sVql8?%EH z6QCec-w7Vn(-UZ|WPAI0?!3QHw^&TxgNbGYNry}31)KSqP8>l_QRj=*F_XbMa$ z^*FCSmw>Iw+*j+)EXH=$S=D|8D#5`(!?V%qpY?#LH3tz3 zj;Dg00ThS>N{sP%i7O5Xhy#rs;C>qf1!%-j2_(*f^b9C=Jot4+XR?6dM^Xhi@jp~O|Ao*euK74*MJ1ErRJVTI4+i@F z1{FYY&5%2t-2iFtz(C#Nr;rnJXM5v0`|%7*MbfecV@lk5akN>Ac>H)A5udC~oL zm=}rjRe~fa?h2$*%K9p}%4A}pWx_QWoy-Iz9sy#!4mdA}^(#>I3+jF)L9QS^?r)gp zneO9qQxqU8%}7()j}5K%@F}Ik%!gScRD=e2UYVWcMMy@z@|O5-@d%QB@E)HX%-i*u zqgG*ObX32AY7SU!5r$3Shc}MK8c(@^ciw{8w0@_HtmRrcx@hFB$cZeL73Oj^-SW~S zO$1Q^%LB<6k55+ody>cZW)?58+gu!MEpV{ob;yvzQNz5R^R6@pzYc|!hed+=ONqY9 z$}3^zZOqT~n4CnY?a7QWnCS3a4)2MCo`YdMo3wNlr*PWCgjQLYOjm1h?dFUPG0{H3GR!c$z2g!l!^9WkrgPi{H&oxbRiki9TH zZjWWp8M!UZRq46vq&Wsa$`Rpk0r2(^xZ{Z2PIf917>x z{S^r6F@`Rbv$yA#U<~upl#SG|_iC#Jev`NB7Qs9q+;6quQ@}(MUZ_y{k<=!=Do{|B zZ#E(;}lSbDeyvuvTJmu|Zt=u!~{d=e<}O!JYG=8PXu-4N(JB?}HxU%;hP6 zK7_OzzDwjxN2)Y~bi)Y00PI)%BoF2BB3lj{Vf?&!;lthpc}(w|k+}0gW_?b(VsQnZ zx<7FIn<&5{kh5}|xqL6|#b4k3kdpg}I}t46uaYu1v{Y)d{HU-)@^>}N_~mfMeKZwO z{E_>|?R^d&22XVjN7!O+Q3?nYKs?v4c15=CcV!5^R8Q8oVH#)1;veR9EFyRIQeda z(%>$0;((a11JgL~uS3tvvMh<4YXtcDbwJdj312ps0~Mqf#cWq~oD7`O_(MVv~`|QBIsbP)Su${*ExLo8=j`1zK+N&=oSG+`| ztLe;Mz8H*pC~+)Qo;tpZ^to%7Q_sNs(OZ+-zH&Ykxw@`_TmDlStZKE+3^N~WYn`>I z#LksfNgL;+L`gI2JA<|m*6}_IG?5UMW|<_vRi&7Sj5-8%_>`$H%pRMvimB_qWm&h% zgS_~2;t3Dpo#k3^czmIWk?5L~>UFD-Jx$w|2m$pSw@v9VbcEOocU>049ulPA)LAo)ra7v2&x(B5-}~yI$&SzAK;&R{^31nPlwq6)7qJOqV{6PcvcMtYW*7MqqF|_h{(g@mL%d=W?RG35=2YHOA4K9s)0BXKt}uOGDd1$GIMyMh@;fWL|FS Ge)``z4YrB^ diff --git a/include_CLANG.mk b/make/include_CLANG.mk similarity index 50% rename from include_CLANG.mk rename to make/include_CLANG.mk index fb69d21..085097f 100644 --- a/include_CLANG.mk +++ b/make/include_CLANG.mk @@ -1,17 +1,18 @@ -CC = clang +CC = /opt/homebrew/Cellar/llvm/18.1.5/bin/clang LINKER = $(CC) ANSI_CFLAGS = -ansi ANSI_CFLAGS += -std=c99 ANSI_CFLAGS += -pedantic -ANSI_CFLAGS += -Wextra +# ANSI_CFLAGS += -Wextra -CFLAGS = -Ofast -march=native $(ANSI_CFLAGS) #-Xpreprocessor -fopenmp -g +CFLAGS = -Ofast -march=native $(ANSI_CFLAGS) -Xpreprocessor -fopenmp #-g #CFLAGS = -Ofast -march=core-avx2 $(ANSI_CFLAGS) #-Xpreprocessor -fopenmp -g #CFLAGS = -O3 -march=cascadelake $(ANSI_CFLAGS) #-Xpreprocessor -fopenmp -g #CFLAGS = -Ofast $(ANSI_CFLAGS) -g #-Xpreprocessor -fopenmp -g -ASFLAGS = -masm=intel +ASFLAGS = #-masm=intel LFLAGS = DEFINES = -D_GNU_SOURCE -INCLUDES = -LIBS = -lm #-lomp +# MacOSX with Apple Silicon and homebrew +INCLUDES = -I/opt/homebrew/Cellar/libomp/18.1.5/include/ +LIBS = -lm -L/opt/homebrew/Cellar/libomp/18.1.5/lib/ -lomp diff --git a/include_GCC.mk b/make/include_GCC.mk similarity index 100% rename from include_GCC.mk rename to make/include_GCC.mk diff --git a/include_GROMACS.mk b/make/include_GROMACS.mk similarity index 100% rename from include_GROMACS.mk rename to make/include_GROMACS.mk diff --git a/include_ICC.mk b/make/include_ICC.mk similarity index 100% rename from include_ICC.mk rename to make/include_ICC.mk diff --git a/include_ICX.mk b/make/include_ICX.mk similarity index 100% rename from include_ICX.mk rename to make/include_ICX.mk diff --git a/include_ISA.mk b/make/include_ISA.mk similarity index 100% rename from include_ISA.mk rename to make/include_ISA.mk diff --git a/include_LIKWID.mk b/make/include_LIKWID.mk similarity index 100% rename from include_LIKWID.mk rename to make/include_LIKWID.mk diff --git a/include_NVCC.mk b/make/include_NVCC.mk similarity index 100% rename from include_NVCC.mk rename to make/include_NVCC.mk diff --git a/include_ONEAPI.mk b/make/include_ONEAPI.mk similarity index 100% rename from include_ONEAPI.mk rename to make/include_ONEAPI.mk diff --git a/clusterpair/atom.c b/src/clusterpair/atom.c similarity index 100% rename from clusterpair/atom.c rename to src/clusterpair/atom.c diff --git a/clusterpair/includes/atom.h b/src/clusterpair/atom.h similarity index 100% rename from clusterpair/includes/atom.h rename to src/clusterpair/atom.h diff --git a/clusterpair/cuda/force_lj.cu b/src/clusterpair/cuda/force_lj.cu similarity index 100% rename from clusterpair/cuda/force_lj.cu rename to src/clusterpair/cuda/force_lj.cu diff --git a/clusterpair/force_eam.c b/src/clusterpair/force_eam.c similarity index 100% rename from clusterpair/force_eam.c rename to src/clusterpair/force_eam.c diff --git a/clusterpair/force_lj.c b/src/clusterpair/force_lj.c similarity index 100% rename from clusterpair/force_lj.c rename to src/clusterpair/force_lj.c diff --git a/clusterpair/includes/integrate.h b/src/clusterpair/integrate.h similarity index 100% rename from clusterpair/includes/integrate.h rename to src/clusterpair/integrate.h diff --git a/clusterpair/main-stub.c b/src/clusterpair/main-stub.c similarity index 100% rename from clusterpair/main-stub.c rename to src/clusterpair/main-stub.c diff --git a/clusterpair/main.c b/src/clusterpair/main.c similarity index 100% rename from clusterpair/main.c rename to src/clusterpair/main.c diff --git a/clusterpair/neighbor.c b/src/clusterpair/neighbor.c similarity index 100% rename from clusterpair/neighbor.c rename to src/clusterpair/neighbor.c diff --git a/clusterpair/includes/neighbor.h b/src/clusterpair/neighbor.h similarity index 100% rename from clusterpair/includes/neighbor.h rename to src/clusterpair/neighbor.h diff --git a/clusterpair/pbc.c b/src/clusterpair/pbc.c similarity index 100% rename from clusterpair/pbc.c rename to src/clusterpair/pbc.c diff --git a/clusterpair/includes/pbc.h b/src/clusterpair/pbc.h similarity index 100% rename from clusterpair/includes/pbc.h rename to src/clusterpair/pbc.h diff --git a/clusterpair/stats.c b/src/clusterpair/stats.c similarity index 100% rename from clusterpair/stats.c rename to src/clusterpair/stats.c diff --git a/clusterpair/includes/stats.h b/src/clusterpair/stats.h similarity index 100% rename from clusterpair/includes/stats.h rename to src/clusterpair/stats.h diff --git a/clusterpair/tracing.c b/src/clusterpair/tracing.c similarity index 100% rename from clusterpair/tracing.c rename to src/clusterpair/tracing.c diff --git a/clusterpair/includes/tracing.h b/src/clusterpair/tracing.h similarity index 100% rename from clusterpair/includes/tracing.h rename to src/clusterpair/tracing.h diff --git a/clusterpair/vtk.c b/src/clusterpair/vtk.c similarity index 100% rename from clusterpair/vtk.c rename to src/clusterpair/vtk.c diff --git a/clusterpair/includes/vtk.h b/src/clusterpair/vtk.h similarity index 100% rename from clusterpair/includes/vtk.h rename to src/clusterpair/vtk.h diff --git a/clusterpair/xtc.c b/src/clusterpair/xtc.c similarity index 100% rename from clusterpair/xtc.c rename to src/clusterpair/xtc.c diff --git a/clusterpair/includes/xtc.h b/src/clusterpair/xtc.h similarity index 100% rename from clusterpair/includes/xtc.h rename to src/clusterpair/xtc.h diff --git a/common/allocate.c b/src/common/allocate.c similarity index 100% rename from common/allocate.c rename to src/common/allocate.c diff --git a/common/includes/allocate.h b/src/common/allocate.h similarity index 100% rename from common/includes/allocate.h rename to src/common/allocate.h diff --git a/common/device.c b/src/common/device.c similarity index 100% rename from common/device.c rename to src/common/device.c diff --git a/common/includes/device.h b/src/common/device.h similarity index 100% rename from common/includes/device.h rename to src/common/device.h diff --git a/common/includes/eam.h b/src/common/eam.h similarity index 100% rename from common/includes/eam.h rename to src/common/eam.h diff --git a/common/eam_utils.c b/src/common/eam_utils.c similarity index 100% rename from common/eam_utils.c rename to src/common/eam_utils.c diff --git a/common/includes/likwid-marker.h b/src/common/likwid-marker.h similarity index 100% rename from common/includes/likwid-marker.h rename to src/common/likwid-marker.h diff --git a/common/parameter.c b/src/common/parameter.c similarity index 100% rename from common/parameter.c rename to src/common/parameter.c diff --git a/common/includes/parameter.h b/src/common/parameter.h similarity index 100% rename from common/includes/parameter.h rename to src/common/parameter.h diff --git a/common/includes/simd.h b/src/common/simd.h similarity index 100% rename from common/includes/simd.h rename to src/common/simd.h diff --git a/common/includes/simd/avx2_double.h b/src/common/simd/avx2_double.h similarity index 100% rename from common/includes/simd/avx2_double.h rename to src/common/simd/avx2_double.h diff --git a/common/includes/simd/avx2_float.h b/src/common/simd/avx2_float.h similarity index 100% rename from common/includes/simd/avx2_float.h rename to src/common/simd/avx2_float.h diff --git a/common/includes/simd/avx512_double.h b/src/common/simd/avx512_double.h similarity index 100% rename from common/includes/simd/avx512_double.h rename to src/common/simd/avx512_double.h diff --git a/common/includes/simd/avx512_float.h b/src/common/simd/avx512_float.h similarity index 100% rename from common/includes/simd/avx512_float.h rename to src/common/simd/avx512_float.h diff --git a/common/includes/simd/avx_double.h b/src/common/simd/avx_double.h similarity index 100% rename from common/includes/simd/avx_double.h rename to src/common/simd/avx_double.h diff --git a/common/includes/simd/avx_float.h b/src/common/simd/avx_float.h similarity index 100% rename from common/includes/simd/avx_float.h rename to src/common/simd/avx_float.h diff --git a/common/thermo.c b/src/common/thermo.c similarity index 100% rename from common/thermo.c rename to src/common/thermo.c diff --git a/common/includes/thermo.h b/src/common/thermo.h similarity index 100% rename from common/includes/thermo.h rename to src/common/thermo.h diff --git a/common/includes/timers.h b/src/common/timers.h similarity index 100% rename from common/includes/timers.h rename to src/common/timers.h diff --git a/common/timing.c b/src/common/timing.c similarity index 80% rename from common/timing.c rename to src/common/timing.c index ba8cbbd..f48a7c3 100644 --- a/common/timing.c +++ b/src/common/timing.c @@ -4,24 +4,18 @@ * Use of this source code is governed by a LGPL-3.0 * license that can be found in the LICENSE file. */ -#include #include -double getTimeStamp() +double getTimeStamp(void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); return (double)ts.tv_sec + (double)ts.tv_nsec * 1.e-9; } -double getTimeResolution() +double getTimeResolution(void) { struct timespec ts; clock_getres(CLOCK_MONOTONIC, &ts); return (double)ts.tv_sec + (double)ts.tv_nsec * 1.e-9; } - -double getTimeStamp_() -{ - return getTimeStamp(); -} diff --git a/common/includes/timing.h b/src/common/timing.h similarity index 90% rename from common/includes/timing.h rename to src/common/timing.h index 8ea6540..36a59c4 100644 --- a/common/includes/timing.h +++ b/src/common/timing.h @@ -9,6 +9,5 @@ extern double getTimeStamp(void); extern double getTimeResolution(void); -extern double getTimeStamp_(void); #endif diff --git a/common/util.c b/src/common/util.c similarity index 53% rename from common/util.c rename to src/common/util.c index ee96197..5012853 100644 --- a/common/util.c +++ b/src/common/util.c @@ -5,34 +5,35 @@ * license that can be found in the LICENSE file. */ #include -#include #include #include #include #include /* Park/Miller RNG w/out MASKING, so as to be like f90s version */ -#define IA 16807 -#define IM 2147483647 -#define AM (1.0/IM) -#define IQ 127773 -#define IR 2836 +#define IA 16807 +#define IM 2147483647 +#define AM (1.0 / IM) +#define IQ 127773 +#define IR 2836 #define MASK 123459876 -double myrandom(int* seed) { - int k= (*seed) / IQ; +double myrandom(int* seed) +{ + int k = (*seed) / IQ; double ans; *seed = IA * (*seed - k * IQ) - IR * k; - if(*seed < 0) *seed += IM; + if (*seed < 0) *seed += IM; ans = AM * (*seed); return ans; } -void random_reset(int *seed, int ibase, double *coord) { +void random_reset(int* seed, int ibase, double* coord) +{ int i; - char *str = (char *) &ibase; - int n = sizeof(int); + char* str = (char*)&ibase; + int n = sizeof(int); unsigned int hash = 0; for (i = 0; i < n; i++) { @@ -41,8 +42,8 @@ void random_reset(int *seed, int ibase, double *coord) { hash ^= (hash >> 6); } - str = (char *) coord; - n = 3 * sizeof(double); + str = (char*)coord; + n = 3 * sizeof(double); for (i = 0; i < n; i++) { hash += str[i]; hash += (hash << 10); @@ -61,45 +62,59 @@ void random_reset(int *seed, int ibase, double *coord) { // warm up the RNG - for (i = 0; i < 5; i++) myrandom(seed); - //save = 0; + for (i = 0; i < 5; i++) + myrandom(seed); + // save = 0; } -int str2ff(const char *string) { - if(strncmp(string, "lj", 2) == 0) return FF_LJ; - if(strncmp(string, "eam", 3) == 0) return FF_EAM; - if(strncmp(string, "dem", 3) == 0) return FF_DEM; +int str2ff(const char* string) +{ + if (strncmp(string, "lj", 2) == 0) return FF_LJ; + if (strncmp(string, "eam", 3) == 0) return FF_EAM; + if (strncmp(string, "dem", 3) == 0) return FF_DEM; return -1; } -const char* ff2str(int ff) { - if(ff == FF_LJ) { return "lj"; } - if(ff == FF_EAM) { return "eam"; } - if(ff == FF_DEM) { return "dem"; } +const char* ff2str(int ff) +{ + if (ff == FF_LJ) { + return "lj"; + } + if (ff == FF_EAM) { + return "eam"; + } + if (ff == FF_DEM) { + return "dem"; + } return "invalid"; } -int get_cuda_num_threads() { - const char *num_threads_env = getenv("NUM_THREADS"); +int get_cuda_num_threads(void) +{ + const char* num_threads_env = getenv("NUM_THREADS"); return (num_threads_env == NULL) ? 32 : atoi(num_threads_env); } -void readline(char *line, FILE *fp) { - if(fgets(line, MAXLINE, fp) == NULL) { - if(errno != 0) { +void readline(char* line, FILE* fp) +{ + if (fgets(line, MAXLINE, fp) == NULL) { + if (errno != 0) { perror("readline()"); exit(-1); } } } -void debug_printf(const char *format, ...) { - #ifdef DEBUG +void debug_printf(const char* format, ...) +{ +#ifdef DEBUG va_list arg; int ret; va_start(arg, format); - if((vfprintf(stdout, format, arg)) < 0) { perror("debug_printf()"); } + if ((vfprintf(stdout, format, arg)) < 0) { + perror("debug_printf()"); + } va_end(arg); - #endif +#endif } diff --git a/common/includes/util.h b/src/common/util.h similarity index 100% rename from common/includes/util.h rename to src/common/util.h diff --git a/verletlist/atom.c b/src/verletlist/atom.c similarity index 100% rename from verletlist/atom.c rename to src/verletlist/atom.c diff --git a/src/verletlist/atom.h b/src/verletlist/atom.h new file mode 100644 index 0000000..909dbfb --- /dev/null +++ b/src/verletlist/atom.h @@ -0,0 +1,102 @@ +/* + * Copyright (C) NHR@FAU, University Erlangen-Nuremberg. + * All rights reserved. This file is part of MD-Bench. + * Use of this source code is governed by a LGPL-3.0 + * license that can be found in the LICENSE file. + */ +#include + +#ifndef __ATOM_H_ +#define __ATOM_H_ + +#ifdef CUDA_TARGET +#define KERNEL_NAME "CUDA" +#define computeForceLJFullNeigh computeForceLJFullNeigh_cuda +#define initialIntegrate initialIntegrate_cuda +#define finalIntegrate finalIntegrate_cuda +#define buildNeighbor buildNeighbor_cuda +#define updatePbc updatePbc_cuda +#define updateAtomsPbc updateAtomsPbc_cuda +#else +#ifdef USE_SIMD_KERNEL +#define KERNEL_NAME "SIMD" +#define computeForceLJFullNeigh computeForceLJFullNeigh_simd +#else +#define KERNEL_NAME "PLAIN" +#endif +#define initialIntegrate initialIntegrate_cpu +#define finalIntegrate finalIntegrate_cpu +#define buildNeighbor buildNeighbor_cpu +#define updatePbc updatePbc_cpu +#define updateAtomsPbc updateAtomsPbc_cpu +#endif + +typedef struct { + MD_FLOAT *x, *y, *z; + MD_FLOAT *vx, *vy, *vz; + MD_FLOAT *fx, *fy, *fz; + int* border_map; + int* type; + MD_FLOAT* epsilon; + MD_FLOAT* sigma6; + MD_FLOAT* cutforcesq; + MD_FLOAT* cutneighsq; +} DeviceAtom; + +typedef struct { + int Natoms, Nlocal, Nghost, Nmax; + MD_FLOAT *x, *y, *z; + MD_FLOAT *vx, *vy, *vz; + MD_FLOAT *fx, *fy, *fz; + int* border_map; + int* type; + int ntypes; + MD_FLOAT* epsilon; + MD_FLOAT* sigma6; + MD_FLOAT* cutforcesq; + MD_FLOAT* cutneighsq; + + // DEM + MD_FLOAT* radius; + MD_FLOAT* av; + MD_FLOAT* r; + + // Device data + DeviceAtom d_atom; +} Atom; + +extern void initAtom(Atom*); +extern void createAtom(Atom*, Parameter*); +extern int readAtom(Atom*, Parameter*); +extern int readAtom_pdb(Atom*, Parameter*); +extern int readAtom_gro(Atom*, Parameter*); +extern int readAtom_dmp(Atom*, Parameter*); +extern int readAtom_in(Atom*, Parameter*); +extern void writeAtom(Atom*, Parameter*); +extern void growAtom(Atom*); + +#ifdef AOS +#define POS_DATA_LAYOUT "AoS" +#define atom_x(i) atom->x[(i) * 3 + 0] +#define atom_y(i) atom->x[(i) * 3 + 1] +#define atom_z(i) atom->x[(i) * 3 + 2] +#define atom_vx(i) atom->vx[(i) * 3 + 0] +#define atom_vy(i) atom->vx[(i) * 3 + 1] +#define atom_vz(i) atom->vx[(i) * 3 + 2] +#define atom_fx(i) atom->fx[(i) * 3 + 0] +#define atom_fy(i) atom->fx[(i) * 3 + 1] +#define atom_fz(i) atom->fx[(i) * 3 + 2] +#else +#define POS_DATA_LAYOUT "SoA" +#define atom_x(i) atom->x[i] +#define atom_y(i) atom->y[i] +#define atom_z(i) atom->z[i] +#define atom_vx(i) atom->vx[i] +#define atom_vy(i) atom->vy[i] +#define atom_vz(i) atom->vz[i] +#define atom_fx(i) atom->fx[i] +#define atom_fy(i) atom->fy[i] +#define atom_fz(i) atom->fz[i] +#endif + +#endif diff --git a/verletlist/cuda/force.cu b/src/verletlist/cuda/force.cu similarity index 100% rename from verletlist/cuda/force.cu rename to src/verletlist/cuda/force.cu diff --git a/verletlist/cuda/neighbor.cu b/src/verletlist/cuda/neighbor.cu similarity index 100% rename from verletlist/cuda/neighbor.cu rename to src/verletlist/cuda/neighbor.cu diff --git a/verletlist/cuda/pbc.cu b/src/verletlist/cuda/pbc.cu similarity index 100% rename from verletlist/cuda/pbc.cu rename to src/verletlist/cuda/pbc.cu diff --git a/verletlist/device_spec.c b/src/verletlist/device_spec.c similarity index 100% rename from verletlist/device_spec.c rename to src/verletlist/device_spec.c diff --git a/verletlist/force_dem.c b/src/verletlist/force_dem.c similarity index 100% rename from verletlist/force_dem.c rename to src/verletlist/force_dem.c diff --git a/verletlist/force_eam.c b/src/verletlist/force_eam.c similarity index 100% rename from verletlist/force_eam.c rename to src/verletlist/force_eam.c diff --git a/src/verletlist/force_lj-x86.c b/src/verletlist/force_lj-x86.c new file mode 100644 index 0000000..9a6578c --- /dev/null +++ b/src/verletlist/force_lj-x86.c @@ -0,0 +1,112 @@ +/* + * Copyright (C) NHR@FAU, University Erlangen-Nuremberg. + * All rights reserved. This file is part of MD-Bench. + * Use of this source code is governed by a LGPL-3.0 + * license that can be found in the LICENSE file. + */ +#include +#include +//--- +#include +#include +#include +#include +#include +#include + +#ifdef __SIMD_KERNEL__ +#include +#endif + +double computeForceLJFullNeigh_simd( + Parameter* param, Atom* atom, Neighbor* neighbor, Stats* stats) +{ + int Nlocal = atom->Nlocal; + int* neighs; + MD_FLOAT cutforcesq = param->cutforce * param->cutforce; + MD_FLOAT sigma6 = param->sigma6; + MD_FLOAT epsilon = param->epsilon; + + for (int i = 0; i < Nlocal; i++) { + atom_fx(i) = 0.0; + atom_fy(i) = 0.0; + atom_fz(i) = 0.0; + } + + double S = getTimeStamp(); + +#ifndef __SIMD_KERNEL__ + fprintf(stderr, "Error: SIMD kernel not implemented for specified instruction set!"); + exit(-1); +#else + MD_SIMD_FLOAT cutforcesq_vec = simd_broadcast(cutforcesq); + MD_SIMD_FLOAT sigma6_vec = simd_broadcast(sigma6); + MD_SIMD_FLOAT eps_vec = simd_broadcast(epsilon); + MD_SIMD_FLOAT c48_vec = simd_broadcast(48.0); + MD_SIMD_FLOAT c05_vec = simd_broadcast(0.5); + +#pragma omp parallel + { + LIKWID_MARKER_START("force"); + +#pragma omp for schedule(runtime) + for (int i = 0; i < Nlocal; i++) { + neighs = &neighbor->neighbors[i * neighbor->maxneighs]; + int numneighs = neighbor->numneigh[i]; + MD_SIMD_INT numneighs_vec = simd_int_broadcast(numneighs); + MD_SIMD_FLOAT xtmp = simd_broadcast(atom_x(i)); + MD_SIMD_FLOAT ytmp = simd_broadcast(atom_y(i)); + MD_SIMD_FLOAT ztmp = simd_broadcast(atom_z(i)); + MD_SIMD_FLOAT fix = simd_zero(); + MD_SIMD_FLOAT fiy = simd_zero(); + MD_SIMD_FLOAT fiz = simd_zero(); + + for (int k = 0; k < numneighs; k += VECTOR_WIDTH) { + // If the last iteration of this loop is separated from the rest, this + // mask can be set only there + MD_SIMD_MASK mask_numneighs = simd_mask_int_cond_lt( + simd_int_add(simd_int_broadcast(k), simd_int_seq()), + numneighs_vec); + MD_SIMD_INT j = simd_int_mask_load(&neighs[k], mask_numneighs); +#ifdef AOS + MD_SIMD_INT j3 = simd_int_add(simd_int_add(j, j), j); // j * 3 + MD_SIMD_FLOAT delx = xtmp - + simd_gather(j3, &(atom->x[0]), sizeof(MD_FLOAT)); + MD_SIMD_FLOAT dely = ytmp - + simd_gather(j3, &(atom->x[1]), sizeof(MD_FLOAT)); + MD_SIMD_FLOAT delz = ztmp - + simd_gather(j3, &(atom->x[2]), sizeof(MD_FLOAT)); +#else + MD_SIMD_FLOAT delx = xtmp - simd_gather(j, atom->x, sizeof(MD_FLOAT)); + MD_SIMD_FLOAT dely = ytmp - simd_gather(j, atom->y, sizeof(MD_FLOAT)); + MD_SIMD_FLOAT delz = ztmp - simd_gather(j, atom->z, sizeof(MD_FLOAT)); +#endif + MD_SIMD_FLOAT rsq = simd_fma(delx, + delx, + simd_fma(dely, dely, simd_mul(delz, delz))); + MD_SIMD_MASK cutoff_mask = simd_mask_and(mask_numneighs, + simd_mask_cond_lt(rsq, cutforcesq_vec)); + MD_SIMD_FLOAT sr2 = simd_reciprocal(rsq); + MD_SIMD_FLOAT sr6 = simd_mul(sr2, + simd_mul(sr2, simd_mul(sr2, sigma6_vec))); + MD_SIMD_FLOAT force = simd_mul(c48_vec, + simd_mul(sr6, + simd_mul(simd_sub(sr6, c05_vec), simd_mul(sr2, eps_vec)))); + + fix = simd_masked_add(fix, simd_mul(delx, force), cutoff_mask); + fiy = simd_masked_add(fiy, simd_mul(dely, force), cutoff_mask); + fiz = simd_masked_add(fiz, simd_mul(delz, force), cutoff_mask); + } + + atom_fx(i) += simd_h_reduce_sum(fix); + atom_fy(i) += simd_h_reduce_sum(fiy); + atom_fz(i) += simd_h_reduce_sum(fiz); + } + + LIKWID_MARKER_STOP("force"); + } +#endif + + double E = getTimeStamp(); + return E - S; +} diff --git a/verletlist/force_lj.c b/src/verletlist/force_lj.c similarity index 61% rename from verletlist/force_lj.c rename to src/verletlist/force_lj.c index a5d9e2e..a90c514 100644 --- a/verletlist/force_lj.c +++ b/src/verletlist/force_lj.c @@ -4,9 +4,6 @@ * Use of this source code is governed by a LGPL-3.0 * license that can be found in the LICENSE file. */ -#include -#include -//--- #include #include #include @@ -14,10 +11,6 @@ #include #include -#ifdef __SIMD_KERNEL__ -#include -#endif - double computeForceLJFullNeigh( Parameter* param, Atom* atom, Neighbor* neighbor, Stats* stats) { @@ -203,96 +196,3 @@ double computeForceLJHalfNeigh( double timeStop = getTimeStamp(); return timeStop - timeStart; } - -double computeForceLJFullNeigh_simd( - Parameter* param, Atom* atom, Neighbor* neighbor, Stats* stats) -{ - int Nlocal = atom->Nlocal; - int* neighs; - MD_FLOAT cutforcesq = param->cutforce * param->cutforce; - MD_FLOAT sigma6 = param->sigma6; - MD_FLOAT epsilon = param->epsilon; - - for (int i = 0; i < Nlocal; i++) { - atom_fx(i) = 0.0; - atom_fy(i) = 0.0; - atom_fz(i) = 0.0; - } - - double S = getTimeStamp(); - -#ifndef __SIMD_KERNEL__ - fprintf(stderr, "Error: SIMD kernel not implemented for specified instruction set!"); - exit(-1); -#else - MD_SIMD_FLOAT cutforcesq_vec = simd_broadcast(cutforcesq); - MD_SIMD_FLOAT sigma6_vec = simd_broadcast(sigma6); - MD_SIMD_FLOAT eps_vec = simd_broadcast(epsilon); - MD_SIMD_FLOAT c48_vec = simd_broadcast(48.0); - MD_SIMD_FLOAT c05_vec = simd_broadcast(0.5); - -#pragma omp parallel - { - LIKWID_MARKER_START("force"); - -#pragma omp for schedule(runtime) - for (int i = 0; i < Nlocal; i++) { - neighs = &neighbor->neighbors[i * neighbor->maxneighs]; - int numneighs = neighbor->numneigh[i]; - MD_SIMD_INT numneighs_vec = simd_int_broadcast(numneighs); - MD_SIMD_FLOAT xtmp = simd_broadcast(atom_x(i)); - MD_SIMD_FLOAT ytmp = simd_broadcast(atom_y(i)); - MD_SIMD_FLOAT ztmp = simd_broadcast(atom_z(i)); - MD_SIMD_FLOAT fix = simd_zero(); - MD_SIMD_FLOAT fiy = simd_zero(); - MD_SIMD_FLOAT fiz = simd_zero(); - - for (int k = 0; k < numneighs; k += VECTOR_WIDTH) { - // If the last iteration of this loop is separated from the rest, this - // mask can be set only there - MD_SIMD_MASK mask_numneighs = simd_mask_int_cond_lt( - simd_int_add(simd_int_broadcast(k), simd_int_seq()), - numneighs_vec); - MD_SIMD_INT j = simd_int_mask_load(&neighs[k], mask_numneighs); -#ifdef AOS - MD_SIMD_INT j3 = simd_int_add(simd_int_add(j, j), j); // j * 3 - MD_SIMD_FLOAT delx = xtmp - - simd_gather(j3, &(atom->x[0]), sizeof(MD_FLOAT)); - MD_SIMD_FLOAT dely = ytmp - - simd_gather(j3, &(atom->x[1]), sizeof(MD_FLOAT)); - MD_SIMD_FLOAT delz = ztmp - - simd_gather(j3, &(atom->x[2]), sizeof(MD_FLOAT)); -#else - MD_SIMD_FLOAT delx = xtmp - simd_gather(j, atom->x, sizeof(MD_FLOAT)); - MD_SIMD_FLOAT dely = ytmp - simd_gather(j, atom->y, sizeof(MD_FLOAT)); - MD_SIMD_FLOAT delz = ztmp - simd_gather(j, atom->z, sizeof(MD_FLOAT)); -#endif - MD_SIMD_FLOAT rsq = simd_fma(delx, - delx, - simd_fma(dely, dely, simd_mul(delz, delz))); - MD_SIMD_MASK cutoff_mask = simd_mask_and(mask_numneighs, - simd_mask_cond_lt(rsq, cutforcesq_vec)); - MD_SIMD_FLOAT sr2 = simd_reciprocal(rsq); - MD_SIMD_FLOAT sr6 = simd_mul(sr2, - simd_mul(sr2, simd_mul(sr2, sigma6_vec))); - MD_SIMD_FLOAT force = simd_mul(c48_vec, - simd_mul(sr6, - simd_mul(simd_sub(sr6, c05_vec), simd_mul(sr2, eps_vec)))); - - fix = simd_masked_add(fix, simd_mul(delx, force), cutoff_mask); - fiy = simd_masked_add(fiy, simd_mul(dely, force), cutoff_mask); - fiz = simd_masked_add(fiz, simd_mul(delz, force), cutoff_mask); - } - - atom_fx(i) += simd_h_reduce_sum(fix); - atom_fy(i) += simd_h_reduce_sum(fiy); - atom_fz(i) += simd_h_reduce_sum(fiz); - } - - LIKWID_MARKER_STOP("force"); - } -#endif - - double E = getTimeStamp(); - return E - S; -} diff --git a/verletlist/includes/integrate.h b/src/verletlist/integrate.h similarity index 100% rename from verletlist/includes/integrate.h rename to src/verletlist/integrate.h diff --git a/verletlist/main-stub.c b/src/verletlist/main-stub.c similarity index 100% rename from verletlist/main-stub.c rename to src/verletlist/main-stub.c diff --git a/verletlist/main.c b/src/verletlist/main.c similarity index 91% rename from verletlist/main.c rename to src/verletlist/main.c index 970bf03..3564261 100644 --- a/verletlist/main.c +++ b/src/verletlist/main.c @@ -10,8 +10,8 @@ #include #include -// #include #include +#include #include #include @@ -30,8 +30,8 @@ #define HLINE "------------------------------------------------------------------\n" -extern double computeForceLJFullNeigh_plain_c(Parameter*, Atom*, Neighbor*, Stats*); extern double computeForceLJHalfNeigh(Parameter*, Atom*, Neighbor*, Stats*); +extern double computeForceLJFullNeigh(Parameter*, Atom*, Neighbor*, Stats*); extern double computeForceEam(Eam*, Parameter*, Atom*, Neighbor*, Stats*); extern double computeForceDemFullNeigh(Parameter*, Atom*, Neighbor*, Stats*); @@ -325,35 +325,38 @@ int main(int argc, char** argv) timer[TOTAL] - timer[FORCE] - timer[NEIGH]); printf(HLINE); - // int nthreads = 0; - // int chunkSize = 0; - // omp_sched_t schedKind; - // char schedType[10]; - // #pragma omp parallel - // #pragma omp master - // { - // omp_get_schedule(&schedKind, &chunkSize); - // - // switch (schedKind) { - // case omp_sched_static: - // strcpy(schedType, "static"); - // break; - // case omp_sched_dynamic: - // strcpy(schedType, "dynamic"); - // break; - // case omp_sched_guided: - // strcpy(schedType, "guided"); - // break; - // case omp_sched_auto: - // strcpy(schedType, "auto"); - // break; - // } - // - // nthreads = omp_get_max_threads(); - // } - // - // printf("Num threads: %d\n", nthreads); - // printf("Schedule: (%s,%d)\n", schedType, chunkSize); + int nthreads = 0; + int chunkSize = 0; + omp_sched_t schedKind; + char schedType[10]; +#pragma omp parallel +#pragma omp master + { + omp_get_schedule(&schedKind, &chunkSize); + + switch (schedKind) { + case omp_sched_static: + strcpy(schedType, "static"); + break; + case omp_sched_dynamic: + strcpy(schedType, "dynamic"); + break; + case omp_sched_guided: + strcpy(schedType, "guided"); + break; + case omp_sched_auto: + strcpy(schedType, "auto"); + break; + case omp_sched_monotonic: + strcpy(schedType, "auto"); + break; + } + + nthreads = omp_get_max_threads(); + } + + printf("Num threads: %d\n", nthreads); + printf("Schedule: (%s,%d)\n", schedType, chunkSize); printf("Performance: %.2f million atom updates per second\n", 1e-6 * (double)atom.Natoms * param.ntimes / timer[TOTAL]); diff --git a/verletlist/neighbor.c b/src/verletlist/neighbor.c similarity index 100% rename from verletlist/neighbor.c rename to src/verletlist/neighbor.c diff --git a/verletlist/includes/neighbor.h b/src/verletlist/neighbor.h similarity index 100% rename from verletlist/includes/neighbor.h rename to src/verletlist/neighbor.h diff --git a/verletlist/pbc.c b/src/verletlist/pbc.c similarity index 100% rename from verletlist/pbc.c rename to src/verletlist/pbc.c diff --git a/verletlist/includes/pbc.h b/src/verletlist/pbc.h similarity index 100% rename from verletlist/includes/pbc.h rename to src/verletlist/pbc.h diff --git a/verletlist/stats.c b/src/verletlist/stats.c similarity index 100% rename from verletlist/stats.c rename to src/verletlist/stats.c diff --git a/verletlist/includes/stats.h b/src/verletlist/stats.h similarity index 100% rename from verletlist/includes/stats.h rename to src/verletlist/stats.h diff --git a/verletlist/tracing.c b/src/verletlist/tracing.c similarity index 100% rename from verletlist/tracing.c rename to src/verletlist/tracing.c diff --git a/verletlist/includes/tracing.h b/src/verletlist/tracing.h similarity index 100% rename from verletlist/includes/tracing.h rename to src/verletlist/tracing.h diff --git a/verletlist/vtk.c b/src/verletlist/vtk.c similarity index 100% rename from verletlist/vtk.c rename to src/verletlist/vtk.c diff --git a/verletlist/includes/vtk.h b/src/verletlist/vtk.h similarity index 100% rename from verletlist/includes/vtk.h rename to src/verletlist/vtk.h diff --git a/util/README.md b/util/README.md deleted file mode 100644 index 957b6ef..0000000 --- a/util/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Utility tools for MD-Bench - -**mdBench.c:** Single file version for MD-Bench, used mostly for teaching purposes. - -**run_stub.sh:** Bash script to run the MD-Bench stubbed force calculation for different configurations and evaluate the performance. -The configuration parameters are: -- **-a :** specify the number of atoms per unit cell (the number of neighbors per atom is this value minus 1), the default is 8. -- **-n :** timesteps to run the simulation, the default is 200. -- **-nx :** number of unit cells in the x dimension, the default is 4. -- **-ny :** number of unit cells in the y dimension, the default is 4. -- **-nz :** number of unit cells in the z dimension, the default is 2. - -Notice that these parameters can also be specified as lists, which executes the stubbed force calculation several times varying the specific parameter to each element of the list, and hence all combinations of parameters will be executed. For example, the following command: - -```bash -bash run_stub.sh -a "8 16" -nx "4 8" -ny 8 -nz 4 -``` - -Will execute the stubbed force calculation for the following 4 configurations: - -```bash -1> 8 atoms per unit cell on a 4x8x4 grid of unit cells, 200 timesteps -2> 16 atoms per unit cell on a 4x8x4 grid of unit cells, 200 timesteps -3> 8 atoms per unit cell on a 8x8x4 grid of unit cells, 200 timesteps -4> 16 atoms per unit cell on a 8x8x4 grid of unit cells, 200 timesteps -``` - -The following parameters are also available: -- **-f :** CPU frequency in GHz (assure your CPU frequency is fixed by disabling Turbo mode), more performance metrics such as cycles per iteration are displayed if this option is defined. -- **-o :** output file (.txt) for the results, the default is *run_results.txt*. -- **-r :** number of runs for each configuration (only the values for the best run are displayed), the default is 3. - -**plot_run_stub_data.py:** Python script to plot the data generated by the *run_stub.sh* script. Just provide the name of the .txt file as a parameter and this script generates a corresponding PDF with the same file name. - -**plot_gather_data.py:** Python script to plot the data generated by the gather benchmark. Just provide the name of the .txt file containing the gather output as a parameter and this script generates a corresponding PDF with the same file name. Multiple outputs with different strides can be included in the text file by concatenating the outputs. The script handles output from both standard simple array case and MD variant. - -**cache.py:** Python script to run the cache simulator with the data obtained from the memory tracer. Just run it with the tracer output file name as a parameter. The cache specifications can be directly adapted in the script to match those of the target processor of interest. diff --git a/util/cache.py b/util/cache.py deleted file mode 100644 index a02fbda..0000000 --- a/util/cache.py +++ /dev/null @@ -1,33 +0,0 @@ -import sys -from cachesim import CacheSimulator, Cache, MainMemory - -filename = sys.argv[1] -mem = MainMemory() - -#l3 = Cache("L3", 20480, 16, 64, "LRU") # 20MB: 20480 sets, 16-ways with cacheline size of 64 bytes -#l2 = Cache("L2", 256, 4, 64, "LRU", store_to=l3, load_from=l3) # 256KB -#l1 = Cache("L1", 64, 8, 64, "LRU", store_to=l2, load_from=l2) # 32KB - -# Cascade Lake -l3 = Cache("L3", 14336, 16, 64, "LRU", write_allocate=False) -l2 = Cache("L2", 1024, 16, 64, "LRU", store_to=l3, victims_to=l3) -l1 = Cache("L1", 64, 8, 64, "LRU", store_to=l2, load_from=l2) -mem.load_to(l2) -mem.store_from(l3) -cs = CacheSimulator(l1, mem) - -with open(filename, 'r') as fp: - for line in fp.readlines(): - op, addr = line.split(": ") - op = op[0] - addr = int(addr, 16) - - if op == 'W': - cs.store(addr, length=8) - elif op == 'R': - cs.load(addr, length=8) - else: - sys.exit("Invalid operation: {}".format(op)) - -cs.force_write_back() -cs.print_stats() diff --git a/util/cache_sets_histogram.py b/util/cache_sets_histogram.py deleted file mode 100644 index 58596a0..0000000 --- a/util/cache_sets_histogram.py +++ /dev/null @@ -1,39 +0,0 @@ -import sys -from cachesim import CacheSimulator, Cache, MainMemory - -def get_set_id(cache, addr): - return (addr >> cache.cl_bits) % cache.sets - -filename = sys.argv[1] -N = sys.argv[2] -mem = MainMemory() - -# Cascade Lake -l3 = Cache("L3", 14336, 16, 64, "LRU", write_allocate=False) -l2 = Cache("L2", 1024, 16, 64, "LRU", store_to=l3, victims_to=l3) -l1 = Cache("L1", 64, 8, 64, "LRU", store_to=l2, load_from=l2) -mem.load_to(l2) -mem.store_from(l3) -cs = CacheSimulator(l1, mem) - -sets_hist = { - 'l1': {s: 0 for s in range(l1.sets)}, - 'l2': {s: 0 for s in range(l2.sets)}, - 'l3': {s: 0 for s in range(l3.sets)} -} - -with open(filename, 'r') as fp: - for line in fp.readlines(): - op, addr = line.split(": ") - op = op[0] - addr = int(addr, 16) - sets_hist['l1'][get_set_id(l1, addr)] += 1 - sets_hist['l2'][get_set_id(l2, addr)] += 1 - sets_hist['l3'][get_set_id(l3, addr)] += 1 - -for cache_level, data in sets_hist.items(): - if cache_level != 'l3': - print(cache_level, ": ") - for set_id in data: - if data[set_id] > 0: - print(set_id, " -> ", data[set_id]) diff --git a/util/evaluate_latency_and_cfd.sh b/util/evaluate_latency_and_cfd.sh deleted file mode 100644 index e93c50a..0000000 --- a/util/evaluate_latency_and_cfd.sh +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/bash - -[[ -z "$1" ]] && echo "Use: $0 [-c ] [-f ] [-n ] [-l ] [-s]" && exit -[[ ! -f "$1" ]] && echo "Binary file not found, make sure to use 'make'" && exit -[[ ! -f "$1-stub" ]] && echo "Binary file for stubbed case not found, make sure to use 'make VARIANT=stub'" && exit - -MDBENCH_BIN=$1 -BIN_INFO="${MDBENCH_BIN#*-}" # $OPT_SCHEME-$TAG-$ISA-$PREC -OPT_SCHEME="${BIN_INFO%%-*}" -PREC="${BIN_INFO##*-}" -BIN_INFO="${BIN_INFO#*-}" # $TAG-$ISA-$PREC -BIN_INFO="${BIN_INFO%-*}" # $TAG-$ISA -TAG="${BIN_INFO%%-*}" -ISA="${BIN_INFO##*-}" -CORE="${CORE:-0}" -FREQ="${FREQ:-2.4}" -NRUNS="${NRUNS:-3}" -LOG="${LOG:-latencies_and_cfds.$(hostname).log}" -STUB_ONLY="${STUB_ONLY:-false}" -SKIP_SET_FREQ="${SKIP_SET_FREQ:-false}" - -OPTIND=2 -while getopts "c:f:n:l:s" flag; do - case "${flag}" in - c) CORE=${OPTARG};; - f) FREQ=${OPTARG};; - n) NRUNS=${OPTARG};; - l) LOG=${OPTARG};; - s) STUB_ONLY=true;; - esac -done - -# Other useful variables -MDBENCH_BIN=./MDBench-$OPT_SCHEME-$TAG-$ISA-$PREC -FIXED_PARAMS="--freq $FREQ" -CPU_VENDOR=$(lscpu | grep "Vendor ID" | tr -s ' ' | cut -d ' ' -f3) - -if [ "$CPU_VENDOR" == "GenuineIntel" ]; then - ALL_PREFETCHERS="HW_PREFETCHER,CL_PREFETCHER,DCU_PREFETCHER,IP_PREFETCHER" - DEFAULT_PREFETCHERS=("ALL HW_PREFETCHER CL_PREFETCHER DCU_PREFETCHER IP_PREFETCHER NONE") -else - ALL_PREFETCHERS="" - DEFAULT_PREFETCHERS=("IGNORE") -fi - -if [ -z ${PREFETCHERS+x} ]; then - PREFETCHERS=${DEFAULT_PREFETCHERS} -fi - -if [ "$OPT_SCHEME" == "gromacs" ]; then - STUB1_NAME=stub-33 - STUB1_PARAMS="-na 4 -nn 33" - STUB2_NAME=stub-128 - STUB2_PARAMS="-na 4 -nn 128" -else - STUB1_NAME=stub-76 - STUB1_PARAMS="-nn 76" - STUB2_NAME=stub-1024 - STUB2_PARAMS="-nn 1024" -fi - -function run_benchmark() { - BEST=10000000 - for i in $(seq $NRUNS); do - RES=$(likwid-pin -c $CORE "$* $FIXED_PARAMS" 2>&1 | grep "Cycles/SIMD iteration" | cut -d ' ' -f3) - if (( $(echo "$BEST > $RES" | bc -l ) )); then - BEST=$RES - fi - done -} - -echo "Tag: $TAG" | tee -a $LOG -echo "Optimization scheme: $OPT_SCHEME" | tee -a $LOG -echo "Instruction set: $ISA" | tee -a $LOG -echo "Precision: $PREC" | tee -a $LOG -echo "Binary: $MDBENCH_BIN(-stub)" | tee -a $LOG -echo "Frequency: $FREQ" | tee -a $LOG -echo "Number of runs: $NRUNS" | tee -a $LOG -echo "Run only stubbed cases: $STUB_ONLY" | tee -a $LOG - -if [ "$SKIP_SET_FREQ" == "false" ]; then - echo "Fixing frequencies..." - likwid-setFrequencies -f $FREQ -t 0 -fi - -for p in $PREFETCHERS; do - if [ "$p" != "IGNORE" ]; then - if [ "$p" == "ALL" ]; then - likwid-features -c $CORE -e $ALL_PREFETCHERS - elif [ "$p" == "NONE" ]; then - likwid-features -c $CORE -d $ALL_PREFETCHERS - else - likwid-features -c $CORE -d $ALL_PREFETCHERS - likwid-features -c $CORE -e $p - fi - - echo "Prefetcher settings: $p" - likwid-features -c $CORE -l - fi - - MSG="$p: " - if [ "$STUB_ONLY" == "false" ]; then - run_benchmark $MDBENCH_BIN - MSG+="standard=$BEST, " - run_benchmark $MDBENCH_BIN -i data/copper_melting/input_lj_cu_one_atomtype_20x20x20.dmp - MSG+="melt=$BEST, " - run_benchmark $MDBENCH_BIN -p data/argon_1000/mdbench_params.conf -i data/argon_1000/tprout.gro - MSG+="argon=$BEST, " - fi - - run_benchmark $MDBENCH_BIN-stub $STUB1_PARAMS - MSG+="$STUB1_NAME=$BEST, " - run_benchmark $MDBENCH_BIN-stub $STUB2_PARAMS - MSG+="$STUB2_NAME=$BEST" - echo $MSG | tee -a $LOG -done diff --git a/util/gather-bench/.gitignore b/util/gather-bench/.gitignore deleted file mode 100644 index c6127b3..0000000 --- a/util/gather-bench/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# Prerequisites -*.d - -# Object files -*.o -*.ko -*.obj -*.elf - -# Linker output -*.ilk -*.map -*.exp - -# Precompiled Headers -*.gch -*.pch - -# Libraries -*.lib -*.a -*.la -*.lo - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib - -# Executables -*.exe -*.out -*.app -*.i*86 -*.x86_64 -*.hex - -# Debug files -*.dSYM/ -*.su -*.idb -*.pdb - -# Kernel Module Compile Results -*.mod* -*.cmd -.tmp_versions/ -modules.order -Module.symvers -Mkfile.old -dkms.conf diff --git a/util/gather-bench/LICENSE b/util/gather-bench/LICENSE deleted file mode 100644 index 7a6aa02..0000000 --- a/util/gather-bench/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) RRZE-HPC - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/util/gather-bench/Makefile b/util/gather-bench/Makefile deleted file mode 100644 index 12259e1..0000000 --- a/util/gather-bench/Makefile +++ /dev/null @@ -1,126 +0,0 @@ -#CONFIGURE BUILD SYSTEM -TARGET = gather-bench-$(TAG) -BUILD_DIR = ./$(TAG) -SRC_DIR = ./src -MAKE_DIR = ./ -ISA_DIR = ./src/$(ISA) -Q ?= @ - -#DO NOT EDIT BELOW -include $(MAKE_DIR)/config.mk -include $(MAKE_DIR)/include_$(TAG).mk -include $(MAKE_DIR)/include_LIKWID.mk -INCLUDES += -I./src/includes - -VPATH = $(SRC_DIR) ${ISA_DIR} -ASM = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.c)) -ASM += $(patsubst $(SRC_DIR)/%.f90, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.f90)) -OBJ = $(filter-out $(BUILD_DIR)/main%, $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))) -OBJ += $(patsubst $(SRC_DIR)/%.cc, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.cc)) -OBJ += $(patsubst $(SRC_DIR)/%.cpp, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.cpp)) -OBJ += $(patsubst $(SRC_DIR)/%.f90, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.f90)) -OBJ += $(patsubst $(SRC_DIR)/%.F90, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.F90)) -OBJ += $(patsubst $(SRC_DIR)/%.s, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.s)) -OBJ += $(patsubst $(ISA_DIR)/%.S, $(BUILD_DIR)/%.o,$(wildcard $(ISA_DIR)/*.S)) -CPPFLAGS := $(CPPFLAGS) $(DEFINES) $(INCLUDES) -DISA_$(ISA) - -ifneq ($(VARIANT),) - .DEFAULT_GOAL := ${TARGET}-$(VARIANT) -endif - -ifeq ($(strip $(DATA_LAYOUT)),AOS) - CPPFLAGS += -DAOS -endif - -ifeq ($(strip $(TEST)),true) - CPPFLAGS += -DTEST -endif - -ifeq ($(strip $(PADDING)),true) - CPPFLAGS += -DPADDING -endif - -ifeq ($(strip $(MEASURE_GATHER_CYCLES)),true) - CPPFLAGS += -DMEASURE_GATHER_CYCLES -endif - -ifeq ($(strip $(ONLY_FIRST_DIMENSION)),true) - CPPFLAGS += -DONLY_FIRST_DIMENSION -endif - -ifeq ($(strip $(MEM_TRACER)),true) - CPPFLAGS += -DMEM_TRACER -endif - -${TARGET}: $(BUILD_DIR) $(OBJ) $(SRC_DIR)/main.c - @echo "===> LINKING $(TARGET)" - $(Q)${LINKER} ${CPPFLAGS} ${LFLAGS} -o $(TARGET) $(SRC_DIR)/main.c $(OBJ) $(LIBS) - -${TARGET}-%: $(BUILD_DIR) $(OBJ) $(SRC_DIR)/main-%.c - @echo "===> LINKING $(TARGET)-$* " - $(Q)${LINKER} ${CPPFLAGS} ${LFLAGS} -o $(TARGET)-$* $(SRC_DIR)/main-$*.c $(OBJ) $(LIBS) - -asm: $(BUILD_DIR) $(ASM) - -$(BUILD_DIR)/%.o: %.c - @echo "===> COMPILE $@" - $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ - $(Q)$(CC) $(CPPFLAGS) -MT $(@:.d=.o) -MM $< > $(BUILD_DIR)/$*.d - -$(BUILD_DIR)/%.s: %.c - @echo "===> GENERATE ASM $@" - $(Q)$(CC) -S $(CPPFLAGS) $(CFLAGS) $< -o $@ - -$(BUILD_DIR)/%.s: %.f90 - @echo "===> COMPILE $@" - $(Q)$(FC) -S $(FCFLAGS) $< -o $@ - -$(BUILD_DIR)/%.o: %.cc - @echo "===> COMPILE $@" - $(Q)$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@ - $(Q)$(CXX) $(CPPFLAGS) -MT $(@:.d=.o) -MM $< > $(BUILD_DIR)/$*.d - -$(BUILD_DIR)/%.o: %.cpp - @echo "===> COMPILE $@" - $(Q)$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@ - $(Q)$(CXX) $(CPPFLAGS) -MT $(@:.d=.o) -MM $< > $(BUILD_DIR)/$*.d - -$(BUILD_DIR)/%.o: %.f90 - @echo "===> COMPILE $@" - $(Q)$(FC) -c $(FCFLAGS) $< -o $@ - -$(BUILD_DIR)/%.o: %.F90 - @echo "===> COMPILE $@" - $(Q)$(FC) -c $(CPPFLAGS) $(FCFLAGS) $< -o $@ - -$(BUILD_DIR)/%.o: %.s - @echo "===> ASSEMBLE $@" - $(Q)$(AS) $(ASFLAGS) $< -o $@ - -$(BUILD_DIR)/%.o: %.S - @echo "===> ASSEMBLE $@" - $(Q)$(CC) -c $(CPPFLAGS) $< -o $@ - -tags: - @echo "===> GENERATE TAGS" - $(Q)ctags -R - - -$(BUILD_DIR): - @mkdir $(BUILD_DIR) - -ifeq ($(findstring $(MAKECMDGOALS),clean),) --include $(OBJ:.o=.d) -endif - -.PHONY: clean distclean - -clean: - @echo "===> CLEAN" - @rm -rf $(BUILD_DIR) - @rm -f tags - -distclean: clean - @echo "===> DIST CLEAN" - @rm -f $(TARGET) - @rm -f tags diff --git a/util/gather-bench/README.md b/util/gather-bench/README.md deleted file mode 100644 index 5f6601b..0000000 --- a/util/gather-bench/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# gather-bench -A X86 gather instruction performance benchmark diff --git a/util/gather-bench/config.mk b/util/gather-bench/config.mk deleted file mode 100644 index e76a104..0000000 --- a/util/gather-bench/config.mk +++ /dev/null @@ -1,22 +0,0 @@ -# Supported: GCC, CLANG, ICC -TAG ?= ICC -# Supported: avx2, avx512 -ISA ?= avx512 -# Use likwid? -ENABLE_LIKWID ?= false - -# SP or DP -DATA_TYPE ?= DP -# AOS or SOA -DATA_LAYOUT ?= AOS -# Padding byte for AoS -PADDING ?= false -# Measure cycles for each gather separately -MEASURE_GATHER_CYCLES ?= false -# Gather data only for first dimension (one gather per iteration) -ONLY_FIRST_DIMENSION ?= false - -# Trace memory addresses for cache simulator -MEM_TRACER ?= false -# Test correctness of gather kernels -TEST ?= false diff --git a/util/gather-bench/include_CLANG.mk b/util/gather-bench/include_CLANG.mk deleted file mode 100644 index fda89f8..0000000 --- a/util/gather-bench/include_CLANG.mk +++ /dev/null @@ -1,9 +0,0 @@ -CC = clang -LINKER = $(CC) - -OPENMP =# -fopenmp -CFLAGS = -Ofast -std=c11 -march=core-avx2 -mavx -mfma $(OPENMP) -LFLAGS = $(OPENMP) -march=core-avx2 -mavx -mfma -DEFINES = -D_GNU_SOURCE -INCLUDES = -LIBS = diff --git a/util/gather-bench/include_GCC.mk b/util/gather-bench/include_GCC.mk deleted file mode 100644 index 16f1072..0000000 --- a/util/gather-bench/include_GCC.mk +++ /dev/null @@ -1,11 +0,0 @@ -CC = gcc -AS = as -LINKER = $(CC) - -OPENMP = -fopenmp -CFLAGS = -Ofast -std=c11 -mavx2 -mfma $(OPENMP) -ASFLAGS = -LFLAGS = $(OPENMP) -mavx2 -mfma -DEFINES = -D_GNU_SOURCE -INCLUDES = -LIBS = diff --git a/util/gather-bench/include_ICC.mk b/util/gather-bench/include_ICC.mk deleted file mode 100644 index 09613ac..0000000 --- a/util/gather-bench/include_ICC.mk +++ /dev/null @@ -1,9 +0,0 @@ -CC = icc -LINKER = $(CC) - -OPENMP = -qopenmp -CFLAGS = -Ofast -xhost -std=c11 $(OPENMP) -LFLAGS = $(OPENMP) -DEFINES = -D_GNU_SOURCE -INCLUDES = -LIBS = diff --git a/util/gather-bench/include_LIKWID.mk b/util/gather-bench/include_LIKWID.mk deleted file mode 100644 index 4ca5456..0000000 --- a/util/gather-bench/include_LIKWID.mk +++ /dev/null @@ -1,10 +0,0 @@ -LIKWID_INC ?= -I/usr/local/include -LIKWID_DEFINES ?= -DLIKWID_PERFMON -LIKWID_LIB ?= -L/usr/local/lib - -ifeq ($(strip $(ENABLE_LIKWID)),true) -INCLUDES += ${LIKWID_INC} -DEFINES += ${LIKWID_DEFINES} -LIBS += -llikwid -LFLAGS += ${LIKWID_LIB} -endif diff --git a/util/gather-bench/src/allocate.c b/util/gather-bench/src/allocate.c deleted file mode 100644 index c5781f9..0000000 --- a/util/gather-bench/src/allocate.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * ======================================================================================= - * - * Author: Jan Eitzinger (je), jan.eitzinger@fau.de - * Copyright (c) 2020 RRZE, University Erlangen-Nuremberg - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * ======================================================================================= - */ -#include -#include -#include - -void* allocate (int alignment, size_t bytesize) -{ - int errorCode; - void* ptr; - - errorCode = posix_memalign(&ptr, alignment, bytesize); - - if (errorCode) { - if (errorCode == EINVAL) { - fprintf(stderr, - "Error: Alignment parameter is not a power of two\n"); - exit(EXIT_FAILURE); - } - if (errorCode == ENOMEM) { - fprintf(stderr, - "Error: Insufficient memory to fulfill the request\n"); - exit(EXIT_FAILURE); - } - } - - if (ptr == NULL) { - fprintf(stderr, "Error: posix_memalign failed!\n"); - exit(EXIT_FAILURE); - } - - return ptr; -} diff --git a/util/gather-bench/src/avx2/gather.S b/util/gather-bench/src/avx2/gather.S deleted file mode 100644 index ff7c162..0000000 --- a/util/gather-bench/src/avx2/gather.S +++ /dev/null @@ -1,63 +0,0 @@ -.intel_syntax noprefix -.data -.align 64 -SCALAR: -.double 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - -# rdi -> a -# rsi -> idx -# rdx -> N -# rcx -> t -.text -.globl gather -.type gather, @function -gather : -push rbp -mov rbp, rsp -push rbx -push r12 -push r13 -push r14 -push r15 - -xor rax, rax -vpcmpeqd ymm0, ymm0, ymm0 -.align 16 -1: -vmovups xmm1, [rsi + rax * 4] -vmovups xmm2, [rsi + rax * 4 + 16] -vmovups xmm3, [rsi + rax * 4 + 32] -vmovups xmm4, [rsi + rax * 4 + 48] -vmovdqa ymm5, ymm0 -vmovdqa ymm6, ymm0 -vmovdqa ymm7, ymm0 -vmovdqa ymm8, ymm0 -vxorpd ymm9, ymm9, ymm9 -vxorpd ymm10, ymm10, ymm10 -vxorpd ymm11, ymm11, ymm11 -vxorpd ymm12, ymm12, ymm12 -vgatherdpd ymm9, [rdi + xmm1 * 8], ymm5 -vgatherdpd ymm10, [rdi + xmm2 * 8], ymm6 -vgatherdpd ymm11, [rdi + xmm3 * 8], ymm7 -vgatherdpd ymm12, [rdi + xmm4 * 8], ymm8 - -#ifdef TEST -vmovapd [rcx + rax * 8], ymm9 -vmovapd [rcx + rax * 8 + 32], ymm10 -vmovapd [rcx + rax * 8 + 64], ymm11 -vmovapd [rcx + rax * 8 + 96], ymm12 -#endif - -addq rax, 16 -cmpq rax, rdx -jl 1b - -pop r15 -pop r14 -pop r13 -pop r12 -pop rbx -mov rsp, rbp -pop rbp -ret -.size gather, .-gather diff --git a/util/gather-bench/src/avx2/gather_aos.S b/util/gather-bench/src/avx2/gather_aos.S deleted file mode 100644 index dce42c7..0000000 --- a/util/gather-bench/src/avx2/gather_aos.S +++ /dev/null @@ -1,71 +0,0 @@ -.intel_syntax noprefix -.data -.align 64 -SCALAR: -.double 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - -# rdi -> a -# rsi -> idx -# rdx -> N -# rcx -> t -.text -.globl gather_aos -.type gather_aos, @function -gather_aos : -push rbp -mov rbp, rsp -push rbx -push r9 -push r10 -push r11 -push r12 -push r13 -push r14 -push r15 - -xor rax, rax -vpcmpeqd ymm8, ymm8, ymm8 -.align 16 -1: - -vmovups xmm3, XMMWORD PTR [rsi + rax * 4] -vpaddd xmm4, xmm3, xmm3 -#ifdef PADDING -vpaddd xmm3, xmm4, xmm4 -#else -vpaddd xmm3, xmm3, xmm4 -#endif -vmovdqa ymm5, ymm8 -vmovdqa ymm6, ymm8 -vmovdqa ymm7, ymm8 -vxorpd ymm0, ymm0, ymm0 -vxorpd ymm1, ymm1, ymm1 -vxorpd ymm2, ymm2, ymm2 -vgatherdpd ymm0, [ rdi + xmm3 * 8], ymm5 -vgatherdpd ymm1, [8 + rdi + xmm3 * 8], ymm6 -vgatherdpd ymm2, [16 + rdi + xmm3 * 8], ymm7 - -#ifdef TEST -vmovupd [rcx + rax * 8], ymm0 -lea rbx, [rcx + rdx * 8] -vmovupd [rbx + rax * 8], ymm1 -lea r9, [rbx + rdx * 8] -vmovupd [r9 + rax * 8], ymm2 -#endif - -addq rax, 4 -cmpq rax, rdx -jl 1b - -pop r15 -pop r14 -pop r13 -pop r12 -pop r11 -pop r10 -pop r9 -pop rbx -mov rsp, rbp -pop rbp -ret -.size gather_aos, .-gather_aos diff --git a/util/gather-bench/src/avx2/gather_soa.S b/util/gather-bench/src/avx2/gather_soa.S deleted file mode 100644 index c506156..0000000 --- a/util/gather-bench/src/avx2/gather_soa.S +++ /dev/null @@ -1,67 +0,0 @@ -.intel_syntax noprefix -.data -.align 64 -SCALAR: -.double 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - -# rdi -> a -# rsi -> idx -# rdx -> N -# rcx -> t -.text -.globl gather_soa -.type gather_soa, @function -gather_soa : -push rbp -mov rbp, rsp -push rbx -push r9 -push r10 -push r11 -push r12 -push r13 -push r14 -push r15 - -xor rax, rax -vpcmpeqd ymm8, ymm8, ymm8 -lea r8, [rdi + rdx * 8] -lea r9, [r8 + rdx * 8] -.align 16 -1: - -vmovups xmm3, XMMWORD PTR [rsi + rax * 4] -vmovdqa ymm5, ymm8 -vmovdqa ymm6, ymm8 -vmovdqa ymm7, ymm8 -vxorpd ymm0, ymm0, ymm0 -vxorpd ymm1, ymm1, ymm1 -vxorpd ymm2, ymm2, ymm2 -vgatherdpd ymm0, [rdi + xmm3 * 8], ymm5 -vgatherdpd ymm1, [r8 + xmm3 * 8], ymm6 -vgatherdpd ymm2, [r9 + xmm3 * 8], ymm7 - -#ifdef TEST -vmovupd [rcx + rax * 8], ymm0 -lea rbx, [rcx + rdx * 8] -vmovupd [rbx + rax * 8], ymm1 -lea r10, [rbx + rdx * 8] -vmovupd [r10 + rax * 8], ymm2 -#endif - -addq rax, 4 -cmpq rax, rdx -jl 1b - -pop r15 -pop r14 -pop r13 -pop r12 -pop r11 -pop r10 -pop r9 -pop rbx -mov rsp, rbp -pop rbp -ret -.size gather_soa, .-gather_soa diff --git a/util/gather-bench/src/avx512/gather.S b/util/gather-bench/src/avx512/gather.S deleted file mode 100644 index 54e78f4..0000000 --- a/util/gather-bench/src/avx512/gather.S +++ /dev/null @@ -1,62 +0,0 @@ -.intel_syntax noprefix -.data -.align 64 -SCALAR: -.double 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - -# rdi -> a -# rsi -> idx -# rdx -> N -# rcx -> t -.text -.globl gather -.type gather, @function -gather : -push rbp -mov rbp, rsp -push rbx -push r12 -push r13 -push r14 -push r15 - -xor rax, rax -.align 16 -1: -vpcmpeqb k1, xmm0, xmm0 -vpcmpeqb k2, xmm0, xmm0 -vpcmpeqb k3, xmm0, xmm0 -vpcmpeqb k4, xmm0, xmm0 -vmovdqu ymm0, [rsi + rax * 4] -vmovdqu ymm1, [rsi + rax * 4 + 32] -vmovdqu ymm2, [rsi + rax * 4 + 64] -vmovdqu ymm3, [rsi + rax * 4 + 96] -vpxord zmm4, zmm4, zmm4 -vpxord zmm5, zmm5, zmm5 -vpxord zmm6, zmm6, zmm6 -vpxord zmm7, zmm7, zmm7 -vgatherdpd zmm4{k1}, [rdi + ymm0 * 8] -vgatherdpd zmm5{k2}, [rdi + ymm1 * 8] -vgatherdpd zmm6{k3}, [rdi + ymm2 * 8] -vgatherdpd zmm7{k4}, [rdi + ymm3 * 8] - -#ifdef TEST -vmovapd [rcx + rax * 8], zmm4 -vmovapd [rcx + rax * 8 + 64], zmm5 -vmovapd [rcx + rax * 8 + 128], zmm6 -vmovapd [rcx + rax * 8 + 192], zmm7 -#endif - -addq rax, 32 -cmpq rax, rdx -jl 1b - -pop r15 -pop r14 -pop r13 -pop r12 -pop rbx -mov rsp, rbp -pop rbp -ret -.size gather, .-gather diff --git a/util/gather-bench/src/avx512/gather_aos.S b/util/gather-bench/src/avx512/gather_aos.S deleted file mode 100644 index 484144e..0000000 --- a/util/gather-bench/src/avx512/gather_aos.S +++ /dev/null @@ -1,151 +0,0 @@ -.intel_syntax noprefix -.data -.align 64 -SCALAR: -.double 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - -# rdi -> a -# rsi -> idx -# rdx -> N -# rcx -> t -# r8 -> cycles -.text -.globl gather_aos -.type gather_aos, @function -gather_aos : -push rbp -mov rbp, rsp -push rbx -push r9 -push r10 -push r11 -push r12 -push r13 -push r14 -push r15 - -xor rax, rax -.align 16 -1: - -vmovdqu ymm3, YMMWORD PTR [rsi + rax * 4] -vpaddd ymm4, ymm3, ymm3 -#ifdef PADDING -vpaddd ymm3, ymm4, ymm4 -#else -vpaddd ymm3, ymm3, ymm4 -#endif - -# Prefetching instructions -#mov ebx, DWORD PTR[rsi + rax*4] -#mov r9d, DWORD PTR[4 + rsi + rax*4] -#mov r10d, DWORD PTR[8 + rsi + rax*4] -#mov r11d, DWORD PTR[12 + rsi + rax*4] -#mov r12d, DWORD PTR[16 + rsi + rax*4] -#mov r13d, DWORD PTR[20 + rsi + rax*4] -#mov r14d, DWORD PTR[24 + rsi + rax*4] -#mov r15d, DWORD PTR[28 + rsi + rax*4] -#lea ebx, DWORD PTR[rbx] -#lea r9d, DWORD PTR[r9] -#lea r10d, DWORD PTR[r10] -#lea r11d, DWORD PTR[r11] -#lea r12d, DWORD PTR[r12] -#lea r13d, DWORD PTR[r13] -#lea r14d, DWORD PTR[r14] -#lea r15d, DWORD PTR[r15] - -vpcmpeqb k1, xmm5, xmm5 -#ifndef ONLY_FIRST_DIMENSION -vpcmpeqb k2, xmm5, xmm5 -vpcmpeqb k3, xmm5, xmm5 -#endif - -vpxord zmm0, zmm0, zmm0 -#ifndef ONLY_FIRST_DIMENSION -vpxord zmm1, zmm1, zmm1 -vpxord zmm2, zmm2, zmm2 -#endif - -#ifdef MEASURE_GATHER_CYCLES - -mov r9, rax -mov r10, rdx -xor r11, r11 -add r11, rax -add r11, rax -add r11, rax -#shr r11, 3 - -xor rbx, rbx -lfence -rdtsc -add ebx, eax -vgatherdpd zmm0{k1}, [rdi + ymm3 * 8] -lfence -rdtsc -sub eax, ebx -#movdiri [r8 + r11], rax -movnti [r8 + r11], rax - -#ifndef ONLY_FIRST_DIMENSION -xor rbx, rbx -lfence -rdtsc -add ebx, eax -vgatherdpd zmm1{k2}, [8 + rdi + ymm3 * 8] -lfence -rdtsc -sub eax, ebx -#movdiri [8 + r8 + r11], rax -movnti [8 + r8 + r11], rax - -xor rbx, rbx -lfence -rdtsc -add ebx, eax -vgatherdpd zmm2{k3}, [16 + rdi + ymm3 * 8] -lfence -rdtsc -sub eax, ebx -#movdiri [16 + r8 + r11], rax -movnti [16 + r8 + r11], rax -#endif // ONLY_FIRST_DIMENSION - -mov rax, r9 -mov rdx, r10 - -#else // MEASURE_GATHER_CYCLES - -vgatherdpd zmm0{k1}, [ rdi + ymm3 * 8] - -#ifndef ONLY_FIRST_DIMENSION -vgatherdpd zmm1{k2}, [8 + rdi + ymm3 * 8] -vgatherdpd zmm2{k3}, [16 + rdi + ymm3 * 8] -#endif - -#endif // MEASURE_GATHER_CYCLES - -#ifdef TEST -vmovupd [rcx + rax * 8], zmm0 -lea rbx, [rcx + rdx * 8] -vmovupd [rbx + rax * 8], zmm1 -lea r9, [rbx + rdx * 8] -vmovupd [r9 + rax * 8], zmm2 -#endif - -addq rax, 8 -cmpq rax, rdx -jl 1b - -pop r15 -pop r14 -pop r13 -pop r12 -pop r11 -pop r10 -pop r9 -pop rbx -mov rsp, rbp -pop rbp -ret -.size gather_aos, .-gather_aos diff --git a/util/gather-bench/src/avx512/gather_md_aos.S b/util/gather-bench/src/avx512/gather_md_aos.S deleted file mode 100644 index 573c86e..0000000 --- a/util/gather-bench/src/avx512/gather_md_aos.S +++ /dev/null @@ -1,147 +0,0 @@ -.intel_syntax noprefix -.data -.align 64 -SCALAR: -.double 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - -.section .rodata, "a" -.align 64 -.align 64 -.ymm_reg_mask.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .ymm_reg_mask.1,@object - .size .ymm_reg_mask.1,32 - .align 8 - -# rdi -> a -# rsi -> neighbors -# rdx -> numneighs[i] -# rcx -> &t[t_idx] -# r8 -> ntest -.text -.globl gather_md_aos -.type gather_md_aos, @function -gather_md_aos : -push rbp -mov rbp, rsp -push rbx -push r10 -push r11 -push r12 -push r13 -push r14 -push r15 - -vmovdqu ymm7, YMMWORD PTR .ymm_reg_mask.1[rip] -mov r15, rdx -xor rax, rax -.align 16 -1: - -vmovdqu ymm3, YMMWORD PTR [rsi + rax * 4] -vpaddd ymm4, ymm3, ymm3 -#ifdef PADDING -vpaddd ymm3, ymm4, ymm4 -#else -vpaddd ymm3, ymm3, ymm4 -#endif - -# Prefetching instructions -#mov ebx, DWORD PTR[rsi + rax*4] -#mov r9d, DWORD PTR[4 + rsi + rax*4] -#mov r10d, DWORD PTR[8 + rsi + rax*4] -#mov r11d, DWORD PTR[12 + rsi + rax*4] -#mov r12d, DWORD PTR[16 + rsi + rax*4] -#mov r13d, DWORD PTR[20 + rsi + rax*4] -#mov r14d, DWORD PTR[24 + rsi + rax*4] -#mov r15d, DWORD PTR[28 + rsi + rax*4] -#lea ebx, DWORD PTR[rbx] -#lea r9d, DWORD PTR[r9] -#lea r10d, DWORD PTR[r10] -#lea r11d, DWORD PTR[r11] -#lea r12d, DWORD PTR[r12] -#lea r13d, DWORD PTR[r13] -#lea r14d, DWORD PTR[r14] -#lea r15d, DWORD PTR[r15] - -vpcmpeqb k1, xmm5, xmm5 -#ifndef ONLY_FIRST_DIMENSION -vpcmpeqb k2, xmm5, xmm5 -vpcmpeqb k3, xmm5, xmm5 -#endif - -vpxord zmm0, zmm0, zmm0 -#ifndef ONLY_FIRST_DIMENSION -vpxord zmm1, zmm1, zmm1 -vpxord zmm2, zmm2, zmm2 -#endif - -vgatherdpd zmm0{k1}, [ rdi + ymm3 * 8] -#ifndef ONLY_FIRST_DIMENSION -vgatherdpd zmm1{k2}, [8 + rdi + ymm3 * 8] -vgatherdpd zmm2{k3}, [16 + rdi + ymm3 * 8] -#endif - -#ifdef TEST -vmovupd [rcx + rax * 8], zmm0 -lea rbx, [rcx + r8 * 8] -vmovupd [rbx + rax * 8], zmm1 -lea r10, [rbx + r8 * 8] -vmovupd [r10 + rax * 8], zmm2 -#endif - -# TODO: see if this logic can be optimized -addq rax, 8 -subq r15, 8 -cmpq r15, 8 -jge 1b - -cmpq r15, 0 -jle .end_func - -vpbroadcastd ymm6, r15d -vpcmpgtd k1, ymm6, ymm7 -vmovdqu32 ymm3{k1}{z}, YMMWORD PTR [rsi + rax * 4] -vpaddd ymm4, ymm3, ymm3 -#ifdef PADDING -vpaddd ymm3, ymm4, ymm4 -#else -vpaddd ymm3, ymm3, ymm4 -#endif - -vpxord zmm0, zmm1, zmm2 -#ifndef ONLY_FIRST_DIMENSION -kmovw k2, k1 -kmovw k3, k1 -vpxord zmm1, zmm1, zmm1 -vpxord zmm2, zmm2, zmm2 -#endif - -vgatherdpd zmm0{k1}, [ rdi + ymm3 * 8] -#ifndef ONLY_FIRST_DIMENSION -vgatherdpd zmm1{k2}, [8 + rdi + ymm3 * 8] -vgatherdpd zmm2{k3}, [16 + rdi + ymm3 * 8] -#endif - -#ifdef TEST -vmovupd [rcx + rax * 8], zmm0 -lea rbx, [rcx + r8 * 8] -vmovupd [rbx + rax * 8], zmm1 -lea r10, [rbx + r8 * 8] -vmovupd [r10 + rax * 8], zmm2 -#endif - -addq rax, r15 - -.end_func: -pop r15 -pop r14 -pop r13 -pop r12 -pop r11 -pop r10 -pop rbx -mov rsp, rbp -pop rbp -ret -.size gather_md_aos, .-gather_md_aos diff --git a/util/gather-bench/src/avx512/gather_soa.S b/util/gather-bench/src/avx512/gather_soa.S deleted file mode 100644 index 25b1eba..0000000 --- a/util/gather-bench/src/avx512/gather_soa.S +++ /dev/null @@ -1,67 +0,0 @@ -.intel_syntax noprefix -.data -.align 64 -SCALAR: -.double 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - -# rdi -> a -# rsi -> idx -# rdx -> N -# rcx -> t -.text -.globl gather_soa -.type gather_soa, @function -gather_soa : -push rbp -mov rbp, rsp -push rbx -push r9 -push r10 -push r11 -push r12 -push r13 -push r14 -push r15 - -xor rax, rax -vpcmpeqd ymm8, ymm8, ymm8 -lea r8, [rdi + rdx * 8] -lea r9, [r8 + rdx * 8] -.align 16 -1: - -vmovdqu ymm3, YMMWORD PTR [rsi + rax * 4] -vpcmpeqb k1, xmm5, xmm5 -vpcmpeqb k2, xmm5, xmm5 -vpcmpeqb k3, xmm5, xmm5 -vpxord zmm0, zmm0, zmm0 -vpxord zmm1, zmm1, zmm1 -vpxord zmm2, zmm2, zmm2 -vgatherdpd zmm0{k1}, [rdi + ymm3 * 8] -vgatherdpd zmm1{k2}, [r8 + ymm3 * 8] -vgatherdpd zmm2{k3}, [r9 + ymm3 * 8] - -#ifdef TEST -vmovupd [rcx + rax * 8], zmm0 -lea rbx, [rcx + rdx * 8] -vmovupd [rbx + rax * 8], zmm1 -lea r10, [rbx + rdx * 8] -vmovupd [r10 + rax * 8], zmm2 -#endif - -addq rax, 8 -cmpq rax, rdx -jl 1b - -pop r15 -pop r14 -pop r13 -pop r12 -pop r11 -pop r10 -pop r9 -pop rbx -mov rsp, rbp -pop rbp -ret -.size gather_soa, .-gather_soa diff --git a/util/gather-bench/src/avx512/load_aos.S b/util/gather-bench/src/avx512/load_aos.S deleted file mode 100644 index c5e1dac..0000000 --- a/util/gather-bench/src/avx512/load_aos.S +++ /dev/null @@ -1,23 +0,0 @@ -.intel_syntax noprefix -.data -.align 64 -SCALAR: -.double 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - -# rdi -> &a[i * snbytes] - -.text -.globl load_aos -.type load_aos, @function -load_aos : - -vmovsd xmm0, QWORD PTR [rdi] -vmovsd xmm1, QWORD PTR [8 + rdi] -vmovsd xmm2, QWORD PTR [16 + rdi] - -vbroadcastsd zmm3, xmm0 -vbroadcastsd zmm4, xmm1 -vbroadcastsd zmm5, xmm2 - -ret -.size load_aos, .-load_aos diff --git a/util/gather-bench/src/includes/allocate.h b/util/gather-bench/src/includes/allocate.h deleted file mode 100644 index 1732898..0000000 --- a/util/gather-bench/src/includes/allocate.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * ======================================================================================= - * - * Author: Jan Eitzinger (je), jan.eitzinger@fau.de - * Copyright (c) 2020 RRZE, University Erlangen-Nuremberg - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * ======================================================================================= - */ -#ifndef __ALLOCATE_H_ -#define __ALLOCATE_H_ - -extern void* allocate (int alignment, size_t bytesize); - -#endif diff --git a/util/gather-bench/src/includes/likwid-marker.h b/util/gather-bench/src/includes/likwid-marker.h deleted file mode 100644 index a35b495..0000000 --- a/util/gather-bench/src/includes/likwid-marker.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * ======================================================================================= - * - * Author: Jan Eitzinger (je), jan.eitzinger@fau.de - * Copyright (c) 2020 RRZE, University Erlangen-Nuremberg - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * ======================================================================================= - */ -#ifndef LIKWID_MARKERS_H -#define LIKWID_MARKERS_H - -#ifdef LIKWID_PERFMON -#include -#define LIKWID_MARKER_INIT likwid_markerInit() -#define LIKWID_MARKER_THREADINIT likwid_markerThreadInit() -#define LIKWID_MARKER_SWITCH likwid_markerNextGroup() -#define LIKWID_MARKER_REGISTER(regionTag) likwid_markerRegisterRegion(regionTag) -#define LIKWID_MARKER_START(regionTag) likwid_markerStartRegion(regionTag) -#define LIKWID_MARKER_STOP(regionTag) likwid_markerStopRegion(regionTag) -#define LIKWID_MARKER_CLOSE likwid_markerClose() -#define LIKWID_MARKER_RESET(regionTag) likwid_markerResetRegion(regionTag) -#define LIKWID_MARKER_GET(regionTag, nevents, events, time, count) likwid_markerGetRegion(regionTag, nevents, events, time, count) -#else /* LIKWID_PERFMON */ -#define LIKWID_MARKER_INIT -#define LIKWID_MARKER_THREADINIT -#define LIKWID_MARKER_SWITCH -#define LIKWID_MARKER_REGISTER(regionTag) -#define LIKWID_MARKER_START(regionTag) -#define LIKWID_MARKER_STOP(regionTag) -#define LIKWID_MARKER_CLOSE -#define LIKWID_MARKER_GET(regionTag, nevents, events, time, count) -#define LIKWID_MARKER_RESET(regionTag) -#endif /* LIKWID_PERFMON */ - -#endif /*LIKWID_MARKERS_H*/ diff --git a/util/gather-bench/src/includes/timing.h b/util/gather-bench/src/includes/timing.h deleted file mode 100644 index 6d9fb93..0000000 --- a/util/gather-bench/src/includes/timing.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * ======================================================================================= - * - * Author: Jan Eitzinger (je), jan.eitzinger@fau.de - * Copyright (c) 2020 RRZE, University Erlangen-Nuremberg - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * ======================================================================================= - */ -#ifndef __TIMING_H_ -#define __TIMING_H_ - -extern double getTimeStamp(); -extern double getTimeResolution(); -extern double getTimeStamp_(); - -#endif diff --git a/util/gather-bench/src/main-md-trace.c b/util/gather-bench/src/main-md-trace.c deleted file mode 100644 index 9fade75..0000000 --- a/util/gather-bench/src/main-md-trace.c +++ /dev/null @@ -1,441 +0,0 @@ -/* - * ======================================================================================= - * - * Author: Jan Eitzinger (je), jan.eitzinger@fau.de - * Copyright (c) RRZE, University Erlangen-Nuremberg - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * ======================================================================================= - */ -#include -#include -#include -#include -#include -#include -#include -#include -//--- -#include -//--- -#include -#include - -#if !defined(ISA_avx2) && !defined (ISA_avx512) -#error "Invalid ISA macro, possible values are: avx2 and avx512" -#endif - -#if defined(TEST) && defined(ONLY_FIRST_DIMENSION) -#error "TEST and ONLY_FIRST_DIMENSION options are mutually exclusive!" -#endif - -#define HLINE "----------------------------------------------------------------------------\n" - -#ifndef MIN -#define MIN(x,y) ((x)<(y)?(x):(y)) -#endif -#ifndef MAX -#define MAX(x,y) ((x)>(y)?(x):(y)) -#endif -#ifndef ABS -#define ABS(a) ((a) >= 0 ? (a) : -(a)) -#endif - -#define ARRAY_ALIGNMENT 64 - -#ifdef ISA_avx512 -#define _VL_ 8 -#define ISA_STRING "avx512" -#else -#define _VL_ 4 -#define ISA_STRING "avx2" -#endif - -#ifdef AOS -#define GATHER gather_md_aos -#define LOAD(a, i, d, n) load_aos(&a[i * d]) -#define LAYOUT_STRING "AoS" -#else -#define GATHER gather_md_soa -#define LOAD(a, i, d, n) load_soa(a, i, n) -#define LAYOUT_STRING "SoA" -#endif - -#if defined(PADDING) && defined(AOS) -#define PADDING_BYTES 1 -#else -#define PADDING_BYTES 0 -#endif - -#ifdef MEM_TRACER -# define MEM_TRACER_INIT(trace_file) FILE *mem_tracer_fp = fopen(get_mem_tracer_filename(trace_file), "w"); -# define MEM_TRACER_END fclose(mem_tracer_fp); -# define MEM_TRACE(addr, op) fprintf(mem_tracer_fp, "%c: %p\n", op, (void *)(&(addr))); -#else -# define MEM_TRACER_INIT -# define MEM_TRACER_END -# define MEM_TRACE(addr, op) -#endif - -int gather_md_aos(double*, int*, int, double*, int); -int gather_md_soa(double*, int*, int, double*, int); -void load_aos(double*); -void load_soa(double*, int, int); - -const char *get_mem_tracer_filename(const char *trace_file) { - static char fname[64]; - snprintf(fname, sizeof fname, "mem_tracer_%s.txt", trace_file); - return fname; -} - -int log2_uint(unsigned int x) { - int ans = 0; - while(x >>= 1) { ans++; } - return ans; -} - -int main (int argc, char** argv) { - LIKWID_MARKER_INIT; - LIKWID_MARKER_REGISTER("gather"); - char *trace_file = NULL; - int cl_size = 64; - int ntimesteps = 200; - int reneigh_every = 20; - int opt = 0; - double freq = 2.5; - struct option long_opts[] = { - {"trace" , required_argument, NULL, 't'}, - {"freq", required_argument, NULL, 'f'}, - {"line", required_argument, NULL, 'l'}, - {"timesteps", required_argument, NULL, 'n'}, - {"reneigh", required_argument, NULL, 'r'}, - {"help", required_argument, NULL, 'h'} - }; - - while((opt = getopt_long(argc, argv, "t:f:l:n:r:h", long_opts, NULL)) != -1) { - switch(opt) { - case 't': - trace_file = strdup(optarg); - break; - - case 'f': - freq = atof(optarg); - break; - - case 'l': - cl_size = atoi(optarg); - break; - - case 'n': - ntimesteps = atoi(optarg); - break; - - case 'r': - reneigh_every = atoi(optarg); - break; - - case 'h': - case '?': - default: - printf("Usage: %s [OPTION]...\n", argv[0]); - printf("MD variant for gather benchmark.\n\n"); - printf("Mandatory arguments to long options are also mandatory for short options.\n"); - printf("\t-t, --trace=STRING input file with traced indexes from MD-Bench.\n"); - printf("\t-f, --freq=REAL CPU frequency in GHz (default 2.5).\n"); - printf("\t-l, --line=NUMBER cache line size in bytes (default 64).\n"); - printf("\t-n, --timesteps=NUMBER number of timesteps to simulate (default 200).\n"); - printf("\t-r, --reneigh=NUMBER reneighboring frequency in timesteps (default 20).\n"); - printf("\t-h, --help display this help message.\n"); - printf("\n\n"); - return EXIT_FAILURE; - } - } - - if(trace_file == NULL) { - fprintf(stderr, "Trace file not specified!\n"); - return EXIT_FAILURE; - } - - FILE *fp; - char *line = NULL; - int *neighborlists = NULL; - int *numneighs = NULL; - int atom = -1; - int nlocal, nghost, maxneighs; - int nall = 0; - int N_alloc = 0; - size_t ntest = 0; - size_t llen; - ssize_t read; - double *a = NULL; - double *f = NULL; - double *t = NULL; - double time = 0.0; - double E, S; - const int dims = 3; - const int snbytes = dims + PADDING_BYTES; // bytes per element (struct), includes padding - long long int niters = 0; - long long int ngathered = 0; - - printf("ISA,Layout,Dims,Frequency (GHz),Cache Line Size (B),Vector Width (e)\n"); - printf("%s,%s,%d,%f,%d,%d\n\n", ISA_STRING, LAYOUT_STRING, dims, freq, cl_size, _VL_); - freq = freq * 1e9; - - #ifdef ONLY_FIRST_DIMENSION - const int gathered_dims = 1; - #else - const int gathered_dims = dims; - #endif - - for(int ts = -1; ts < ntimesteps; ts++) { - if(!((ts + 1) % reneigh_every)) { - char ts_trace_file[128]; - snprintf(ts_trace_file, sizeof ts_trace_file, "%s_%d.out", trace_file, ts + 1); - if((fp = fopen(ts_trace_file, "r")) == NULL) { - fprintf(stderr, "Error: could not open trace file!\n"); - return EXIT_FAILURE; - } - - while((read = getline(&line, &llen, fp)) != -1) { - int i = 2; - if(strncmp(line, "N:", 2) == 0) { - while(line[i] == ' ') { i++; } - nlocal = atoi(strtok(&line[i], " ")); - nghost = atoi(strtok(NULL, " ")); - nall = nlocal + nghost; - maxneighs = atoi(strtok(NULL, " ")); - - if(nlocal <= 0 || maxneighs <= 0) { - fprintf(stderr, "Number of local atoms and neighbor lists capacity cannot be less or equal than zero!\n"); - return EXIT_FAILURE; - } - - if(neighborlists == NULL) { - neighborlists = (int *) allocate( ARRAY_ALIGNMENT, nlocal * maxneighs * sizeof(int) ); - numneighs = (int *) allocate( ARRAY_ALIGNMENT, nlocal * sizeof(int) ); - } - } - - if(strncmp(line, "A:", 2) == 0) { - while(line[i] == ' ') { i++; } - atom = atoi(strtok(&line[i], " ")); - numneighs[atom] = 0; - } - - if(strncmp(line, "I:", 2) == 0) { - while(line[i] == ' ') { i++; } - char *neigh_idx = strtok(&line[i], " "); - - while(neigh_idx != NULL && *neigh_idx != '\n') { - int j = numneighs[atom]; - neighborlists[atom * maxneighs + j] = atoi(neigh_idx); - numneighs[atom]++; - ntest++; - neigh_idx = strtok(NULL, " "); - } - } - } - - fclose(fp); - } - - if(N_alloc == 0) { - N_alloc = nall * 2; - a = (double*) allocate( ARRAY_ALIGNMENT, N_alloc * snbytes * sizeof(double) ); - f = (double*) allocate( ARRAY_ALIGNMENT, N_alloc * dims * sizeof(double) ); - } - - #ifdef TEST - if(t != NULL) { free(t); } - ntest += 100; - t = (double*) allocate( ARRAY_ALIGNMENT, ntest * dims * sizeof(double) ); - #endif - - for(int i = 0; i < N_alloc; ++i) { - #ifdef AOS - a[i * snbytes + 0] = i * dims + 0; - a[i * snbytes + 1] = i * dims + 1; - a[i * snbytes + 2] = i * dims + 2; - #else - a[N * 0 + i] = N * 0 + i; - a[N * 1 + i] = N * 1 + i; - a[N * 2 + i] = N * 2 + i; - #endif - f[i * dims + 0] = 0.0; - f[i * dims + 1] = 0.0; - f[i * dims + 2] = 0.0; - } - - int t_idx = 0; - S = getTimeStamp(); - LIKWID_MARKER_START("gather"); - for(int i = 0; i < nlocal; i++) { - int *neighbors = &neighborlists[i * maxneighs]; - // We inline the assembly for AVX512 with AoS layout to evaluate the impact - // of calling external assembly procedures in the overall runtime - #ifdef ISA_avx512 - __m256i ymm_reg_mask = _mm256_setr_epi32(0, 1, 2, 3, 4, 5, 6, 7); - __asm__ __volatile__( "vmovsd 0(%0), %%xmm3;" - "vmovsd 8(%0), %%xmm4;" - "vmovsd 16(%0), %%xmm5;" - "vbroadcastsd %%xmm3, %%zmm0;" - "vbroadcastsd %%xmm4, %%zmm1;" - "vbroadcastsd %%xmm5, %%zmm2;" - : - : "r" (&a[i * snbytes]) - : "%xmm3", "%xmm4", "%xmm5", "%zmm0", "%zmm1", "%zmm2" ); - - __asm__ __volatile__( "xor %%rax, %%rax;" - "movq %%rdx, %%r15;" - "1: vmovdqu (%1,%%rax,4), %%ymm3;" - "vpaddd %%ymm3, %%ymm3, %%ymm4;" - #ifdef PADDING - "vpaddd %%ymm4, %%ymm4, %%ymm3;" - #else - "vpaddd %%ymm3, %%ymm4, %%ymm3;" - #endif - "vpcmpeqb %%xmm5, %%xmm5, %%k1;" - "vpcmpeqb %%xmm5, %%xmm5, %%k2;" - "vpcmpeqb %%xmm5, %%xmm5, %%k3;" - "vpxord %%zmm0, %%zmm0, %%zmm0;" - "vpxord %%zmm1, %%zmm1, %%zmm1;" - "vpxord %%zmm2, %%zmm2, %%zmm2;" - "vgatherdpd (%3, %%ymm3, 8), %%zmm0{{%%k1}};" - "vgatherdpd 8(%3, %%ymm3, 8), %%zmm1{{%%k2}};" - "vgatherdpd 16(%3, %%ymm3, 8), %%zmm2{{%%k3}};" - "addq $8, %%rax;" - "subq $8, %%r15;" - "cmpq $8, %%r15;" - "jge 1b;" - "cmpq $0, %%r15;" - "jle 2;" - "vpbroadcastd %%r15d, %%ymm5;" - "vpcmpgtd %%ymm5, %2, %%k1;" - "vmovdqu32 (%1,%%rax,4), %%ymm3{{%%k1}}{{z}};" - "vpaddd %%ymm3, %%ymm3, %%ymm4;" - #ifdef PADDING - "vpaddd %%ymm4, %%ymm4, %%ymm3;" - #else - "vpaddd %%ymm3, %%ymm4, %%ymm3;" - #endif - "vpxord %%zmm0, %%zmm0, %%zmm0;" - "kmovw %%k1, %%k2;" - "kmovw %%k1, %%k3;" - "vpxord %%zmm1, %%zmm1, %%zmm1;" - "vpxord %%zmm2, %%zmm2, %%zmm2;" - "vgatherdpd (%3, %%ymm3, 8), %%zmm0{{%%k1}};" - "vgatherdpd 8(%3, %%ymm3, 8), %%zmm1{{%%k2}};" - "vgatherdpd 16(%3, %%ymm3, 8), %%zmm2{{%%k3}};" - "addq %%r15, %%rax;" - "2:;" - : - : "d" (numneighs[i]), "r" (neighbors), "x" (ymm_reg_mask), "r" (a) - : "%rax", "%r15", "%ymm3", "%ymm4", "%ymm5", "%k1", "%k2", "%k3", "%zmm0", "%zmm1", "%zmm2" ); - #else - LOAD(a, i, snbytes, N_alloc); - t_idx += GATHER(a, neighbors, numneighs[i], &t[t_idx], ntest); - #endif - f[i * dims + 0] += i; - f[i * dims + 1] += i; - f[i * dims + 2] += i; - } - LIKWID_MARKER_STOP("gather"); - E = getTimeStamp(); - time += E - S; - - #ifdef MEM_TRACER - MEM_TRACER_INIT(trace_file); - for(int i = 0; i < nlocal; i++) { - int *neighbors = &neighborlists[i * maxneighs]; - - for(int d = 0; d < gathered_dims; d++) { - #ifdef AOS - MEM_TRACE('R', a[i * snbytes + d]) - #else - MEM_TRACE('R', a[d * N + i]) - #endif - } - - for(int j = 0; j < numneighs[i]; j += _VL_) { - for(int jj = j; jj < MIN(j + _VL_, numneighs[i]); j++) { - int k = neighbors[jj]; - for(int d = 0; d < gathered_dims; d++) { - #ifdef AOS - MEM_TRACE('R', a[k * snbytes + d]) - #else - MEM_TRACE('R', a[d * N + k]) - #endif - } - } - } - } - MEM_TRACER_END; - #endif - - #ifdef TEST - int test_failed = 0; - t_idx = 0; - for(int i = 0; i < nlocal; ++i) { - int *neighbors = &neighborlists[i * maxneighs]; - for(int j = 0; j < numneighs[i]; ++j) { - int k = neighbors[j]; - for(int d = 0; d < dims; ++d) { - #ifdef AOS - if(t[d * ntest + t_idx] != k * dims + d) { - #else - if(t[d * ntest + t_idx] != d * N + k) { - #endif - test_failed = 1; - break; - } - } - - t_idx++; - } - } - - if(test_failed) { - printf("Test failed!\n"); - return EXIT_FAILURE; - } - #endif - - for(int i = 0; i < nlocal; i++) { - niters += (numneighs[i] / _VL_) + ((numneighs[i] % _VL_ == 0) ? 0 : 1); - ngathered += numneighs[i]; - } - } - - printf("%14s,%14s,%14s,%14s,%14s,%14s", "tot. time(s)", "time/step(ms)", "time/iter(us)", "cy/it", "cy/gather", "cy/elem"); - printf("\n"); - const double time_per_step = time * 1e3 / ((double) ntimesteps); - const double time_per_it = time * 1e6 / ((double) niters); - const double cy_per_it = time * freq * _VL_ / ((double) niters); - const double cy_per_gather = time * freq * _VL_ / ((double) niters * gathered_dims); - const double cy_per_elem = time * freq / ((double) ngathered * gathered_dims); - printf("%14.6f,%14.6f,%14.6f,%14.6f,%14.6f,%14.6f\n", time, time_per_step, time_per_it, cy_per_it, cy_per_gather, cy_per_elem); - - #ifdef TEST - printf("Test passed!\n"); - #endif - - LIKWID_MARKER_CLOSE; - return EXIT_SUCCESS; -} diff --git a/util/gather-bench/src/main-md.c b/util/gather-bench/src/main-md.c deleted file mode 100644 index 2ad8c9a..0000000 --- a/util/gather-bench/src/main-md.c +++ /dev/null @@ -1,361 +0,0 @@ -/* - * ======================================================================================= - * - * Author: Jan Eitzinger (je), jan.eitzinger@fau.de - * Copyright (c) RRZE, University Erlangen-Nuremberg - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * ======================================================================================= - */ -#include -#include -#include -#include -#include -#include -//--- -#include -//--- -#include -#include - -#if !defined(ISA_avx2) && !defined (ISA_avx512) -#error "Invalid ISA macro, possible values are: avx2 and avx512" -#endif - -#if defined(TEST) && defined(ONLY_FIRST_DIMENSION) -#error "TEST and ONLY_FIRST_DIMENSION options are mutually exclusive!" -#endif - -#define HLINE "----------------------------------------------------------------------------\n" - -#ifndef MIN -#define MIN(x,y) ((x)<(y)?(x):(y)) -#endif -#ifndef MAX -#define MAX(x,y) ((x)>(y)?(x):(y)) -#endif -#ifndef ABS -#define ABS(a) ((a) >= 0 ? (a) : -(a)) -#endif - -#define ARRAY_ALIGNMENT 64 -#define SIZE 20000 - -#ifdef ISA_avx512 -#define _VL_ 8 -#define ISA_STRING "avx512" -#else -#define _VL_ 4 -#define ISA_STRING "avx2" -#endif - -#ifdef AOS -#define GATHER gather_aos -#define LAYOUT_STRING "AoS" -#else -#define GATHER gather_soa -#define LAYOUT_STRING "SoA" -#endif - -#if defined(PADDING) && defined(AOS) -#define PADDING_BYTES 1 -#else -#define PADDING_BYTES 0 -#endif - -#ifdef MEM_TRACER -# define MEM_TRACER_INIT(stride, size) FILE *mem_tracer_fp = fopen(get_mem_tracer_filename(stride, size), "w"); -# define MEM_TRACER_END fclose(mem_tracer_fp); -# define MEM_TRACE(addr, op) fprintf(mem_tracer_fp, "%c: %p\n", op, (void *)(&(addr))); -#else -# define MEM_TRACER_INIT -# define MEM_TRACER_END -# define MEM_TRACE(addr, op) -#endif - -extern void gather_aos(double*, int*, int, double*, long int*); -extern void gather_soa(double*, int*, int, double*, long int*); - -const char *get_mem_tracer_filename(int stride, int size) { - static char fname[64]; - snprintf(fname, sizeof fname, "mem_tracer_%d_%d.txt", stride, size); - return fname; -} - -int log2_uint(unsigned int x) { - int ans = 0; - while(x >>= 1) { ans++; } - return ans; -} - -int main (int argc, char** argv) { - LIKWID_MARKER_INIT; - LIKWID_MARKER_REGISTER("gather"); - int stride = 1; - int cl_size = 64; - int opt = 0; - double freq = 2.5; - struct option long_opts[] = { - {"stride", required_argument, NULL, 's'}, - {"freq", required_argument, NULL, 'f'}, - {"line", required_argument, NULL, 'l'}, - {"help", required_argument, NULL, 'h'} - }; - - while((opt = getopt_long(argc, argv, "s:f:l:h", long_opts, NULL)) != -1) { - switch(opt) { - case 's': - stride = atoi(optarg); - break; - - case 'f': - freq = atof(optarg); - break; - - case 'l': - cl_size = atoi(optarg); - break; - - case 'h': - case '?': - default: - printf("Usage: %s [OPTION]...\n", argv[0]); - printf("MD variant for gather benchmark.\n\n"); - printf("Mandatory arguments to long options are also mandatory for short options.\n"); - printf("\t-s, --stride=NUMBER stride between two successive elements (default 1).\n"); - printf("\t-f, --freq=REAL CPU frequency in GHz (default 2.5).\n"); - printf("\t-l, --line=NUMBER cache line size in bytes (default 64).\n"); - printf("\t-h, --help display this help message.\n"); - printf("\n\n"); - return EXIT_FAILURE; - } - } - - size_t bytesPerWord = sizeof(double); - const int dims = 3; - const int snbytes = dims + PADDING_BYTES; // bytes per element (struct), includes padding - #ifdef AOS - size_t cacheLinesPerGather = MIN(MAX(stride * _VL_ * snbytes / (cl_size / sizeof(double)), 1), _VL_); - #else - size_t cacheLinesPerGather = MIN(MAX(stride * _VL_ / (cl_size / sizeof(double)), 1), _VL_) * dims; - #endif - size_t N = SIZE; - double E, S; - - printf("ISA,Layout,Stride,Dims,Frequency (GHz),Cache Line Size (B),Vector Width (e),Cache Lines/Gather\n"); - printf("%s,%s,%d,%d,%f,%d,%d,%lu\n\n", ISA_STRING, LAYOUT_STRING, stride, dims, freq, cl_size, _VL_, cacheLinesPerGather); - printf("%14s,%14s,%14s,", "N", "Size(kB)", "cut CLs"); - -#ifndef MEASURE_GATHER_CYCLES - printf("%14s,%14s,%14s,%14s,%14s", "tot. time", "time/LUP(ms)", "cy/it", "cy/gather", "cy/elem"); -#else - -#ifdef ONLY_FIRST_DIMENSION - printf("%27s,%27s,%27s", "min/max/avg cy(x)", "min/max/avg cy(y)", "min/max/avg cy(z)"); -#else - printf("%27s", "min/max/avg cy(x)"); -#endif - -#endif - - printf("\n"); - freq = freq * 1e9; - - for(int N = 512; N < 80000000; N = 1.5 * N) { - // Currently this only works when the array size (in elements) is multiple of the vector length (no preamble and prelude) - if(N % _VL_ != 0) { - N += _VL_ - (N % _VL_); - } - - MEM_TRACER_INIT(stride, N); - - int N_gathers_per_dim = N / _VL_; - int N_alloc = N * 2; - int N_cycles_alloc = N_gathers_per_dim * 2; - int cut_cl = 0; - double* a = (double*) allocate( ARRAY_ALIGNMENT, N_alloc * snbytes * sizeof(double) ); - int* idx = (int*) allocate( ARRAY_ALIGNMENT, N_alloc * sizeof(int) ); - int rep; - double time; - -#ifdef TEST - double* t = (double*) allocate( ARRAY_ALIGNMENT, N_alloc * dims * sizeof(double) ); -#else - double* t = (double*) NULL; -#endif - -#ifdef MEASURE_GATHER_CYCLES - long int* cycles = (long int*) allocate( ARRAY_ALIGNMENT, N_cycles_alloc * dims * sizeof(long int)) ; -#else - long int* cycles = (long int*) NULL; -#endif - - for(int i = 0; i < N_alloc; ++i) { -#ifdef AOS - a[i * snbytes + 0] = i * dims + 0; - a[i * snbytes + 1] = i * dims + 1; - a[i * snbytes + 2] = i * dims + 2; -#else - a[N * 0 + i] = N * 0 + i; - a[N * 1 + i] = N * 1 + i; - a[N * 2 + i] = N * 2 + i; -#endif - idx[i] = (i * stride) % N; - } - -#ifdef ONLY_FIRST_DIMENSION - const int gathered_dims = 1; -#else - const int gathered_dims = dims; -#endif - -#ifdef MEM_TRACER - for(int i = 0; i < N; i += _VL_) { - for(int j = 0; j < _VL_; j++) { - MEM_TRACE(idx[i + j], 'R'); - } - - for(int d = 0; d < gathered_dims; d++) { - for(int j = 0; j < _VL_; j++) { -#ifdef AOS - MEM_TRACE(a[idx[i + j] * snbytes + d], 'R'); -#else - MEM_TRACE(a[N * d + idx[i + j]], 'R'); -#endif - } - } - } -#endif - -#ifdef AOS - const int cl_shift = log2_uint((unsigned int) cl_size); - for(int i = 0; i < N; i++) { - const int first_cl = (idx[i] * snbytes * sizeof(double)) >> cl_shift; - const int last_cl = ((idx[i] * snbytes + gathered_dims - 1) * sizeof(double)) >> cl_shift; - if(first_cl != last_cl) { - cut_cl++; - } - } -#endif - - S = getTimeStamp(); - for(int r = 0; r < 100; ++r) { - GATHER(a, idx, N, t, cycles); - } - E = getTimeStamp(); - -#ifdef MEASURE_GATHER_CYCLES - for(int i = 0; i < N_cycles_alloc; i++) { - cycles[i * 3 + 0] = 0; - cycles[i * 3 + 1] = 0; - cycles[i * 3 + 2] = 0; - } -#endif - - rep = 100 * (0.5 / (E - S)); - S = getTimeStamp(); - LIKWID_MARKER_START("gather"); - for(int r = 0; r < rep; ++r) { - GATHER(a, idx, N, t, cycles); - } - LIKWID_MARKER_STOP("gather"); - E = getTimeStamp(); - - time = E - S; - -#ifdef TEST - int test_failed = 0; - for(int i = 0; i < N; ++i) { - for(int d = 0; d < dims; ++d) { -#ifdef AOS - if(t[d * N + i] != ((i * stride) % N) * dims + d) { -#else - if(t[d * N + i] != d * N + ((i * stride) % N)) { -#endif - test_failed = 1; - break; - } - } - } - - if(test_failed) { - printf("Test failed!\n"); - return EXIT_FAILURE; - } else { - printf("Test passed!\n"); - } -#endif - - const double size = N * (dims * sizeof(double) + sizeof(int)) / 1000.0; - printf("%14d,%14.2f,%14d,", N, size, cut_cl); - -#ifndef MEASURE_GATHER_CYCLES - const double time_per_it = time * 1e6 / ((double) N * rep); - const double cy_per_it = time * freq * _VL_ / ((double) N * rep); - const double cy_per_gather = time * freq * _VL_ / ((double) N * rep * gathered_dims); - const double cy_per_elem = time * freq / ((double) N * rep * gathered_dims); - printf("%14.10f,%14.10f,%14.6f,%14.6f,%14.6f", time, time_per_it, cy_per_it, cy_per_gather, cy_per_elem); -#else - double cy_min[dims]; - double cy_max[dims]; - double cy_avg[dims]; - - for(int d = 0; d < dims; d++) { - cy_min[d] = 100000.0; - cy_max[d] = 0.0; - cy_avg[d] = 0.0; - } - - for(int i = 0; i < N_gathers_per_dim; ++i) { - for(int d = 0; d < gathered_dims; d++) { - const double cy_d = (double)(cycles[i * 3 + d]); - cy_min[d] = MIN(cy_min[d], cy_d); - cy_max[d] = MAX(cy_max[d], cy_d); - cy_avg[d] += cy_d; - } - } - - for(int d = 0; d < gathered_dims; d++) { - char tmp_str[64]; - cy_avg[d] /= (double) N_gathers_per_dim; - snprintf(tmp_str, sizeof tmp_str, "%4.4f/%4.4f/%4.4f", cy_min[d], cy_max[d], cy_avg[d]); - printf("%27s%c", tmp_str, (d < gathered_dims - 1) ? ',' : ' '); - } -#endif - - printf("\n"); - free(a); - free(idx); - -#ifdef TEST - free(t); -#endif - -#ifdef MEASURE_GATHER_CYCLES - free(cycles); -#endif - - MEM_TRACER_END; - } - - LIKWID_MARKER_CLOSE; - return EXIT_SUCCESS; -} diff --git a/util/gather-bench/src/main.c b/util/gather-bench/src/main.c deleted file mode 100644 index a0b9972..0000000 --- a/util/gather-bench/src/main.c +++ /dev/null @@ -1,166 +0,0 @@ -/* - * ======================================================================================= - * - * Author: Jan Eitzinger (je), jan.eitzinger@fau.de - * Copyright (c) RRZE, University Erlangen-Nuremberg - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * ======================================================================================= - */ -#include -#include -#include -#include -#include -//--- -#include -//--- -#include -#include - -#if !defined(ISA_avx2) && !defined (ISA_avx512) -#error "Invalid ISA macro, possible values are: avx2 and avx512" -#endif - -#define HLINE "----------------------------------------------------------------------------\n" - -#ifndef MIN -#define MIN(x,y) ((x)<(y)?(x):(y)) -#endif -#ifndef MAX -#define MAX(x,y) ((x)>(y)?(x):(y)) -#endif -#ifndef ABS -#define ABS(a) ((a) >= 0 ? (a) : -(a)) -#endif - -#define ARRAY_ALIGNMENT 64 -#define SIZE 20000 - -#ifdef ISA_avx512 -#define _VL_ 8 -#define ISA_STRING "avx512" -#else -#define _VL_ 4 -#define ISA_STRING "avx2" -#endif - -#ifdef TEST -extern void gather(double*, int*, int, double*); -#else -extern void gather(double*, int*, int); -#endif - -int main (int argc, char** argv) { - LIKWID_MARKER_INIT; - LIKWID_MARKER_REGISTER("gather"); - - if (argc < 3) { - printf("Please provide stride and frequency\n"); - printf("%s [cache line size (B)]\n", argv[0]); - return -1; - } - - int stride = atoi(argv[1]); - double freq = atof(argv[2]); - int cl_size = (argc == 3) ? 64 : atoi(argv[3]); - size_t bytesPerWord = sizeof(double); - size_t cacheLinesPerGather = MIN(MAX(stride * _VL_ / (cl_size / sizeof(double)), 1), _VL_); - size_t N = SIZE; - double E, S; - - printf("ISA,Stride (elems),Frequency (GHz),Cache Line Size (B),Vector Width (elems),Cache Lines/Gather\n"); - printf("%s,%d,%f,%d,%d,%lu\n\n", ISA_STRING, stride, freq, cl_size, _VL_, cacheLinesPerGather); - printf("%14s,%14s,%14s,%14s,%14s,%14s\n", "N", "Size(kB)", "tot. time", "time/LUP(ms)", "cy/gather", "cy/elem"); - - freq = freq * 1e9; - for(int N = 1024; N < 400000; N = 1.5 * N) { - int N_alloc = N * 2; - double* a = (double*) allocate( ARRAY_ALIGNMENT, N_alloc * sizeof(double) ); - int* idx = (int*) allocate( ARRAY_ALIGNMENT, N_alloc * sizeof(int) ); - int rep; - double time; - -#ifdef TEST - double* t = (double*) allocate( ARRAY_ALIGNMENT, N_alloc * sizeof(double) ); -#endif - - for(int i = 0; i < N_alloc; ++i) { - a[i] = i; - idx[i] = (i * stride) % N; - } - - S = getTimeStamp(); - for(int r = 0; r < 100; ++r) { -#ifdef TEST - gather(a, idx, N, t); -#else - gather(a, idx, N); -#endif - } - E = getTimeStamp(); - - rep = 100 * (0.5 / (E - S)); - S = getTimeStamp(); - LIKWID_MARKER_START("gather"); - for(int r = 0; r < rep; ++r) { -#ifdef TEST - gather(a, idx, N, t); -#else - gather(a, idx, N); -#endif - } - LIKWID_MARKER_STOP("gather"); - E = getTimeStamp(); - - time = E - S; - -#ifdef TEST - int test_failed = 0; - for(int i = 0; i < N; ++i) { - if(t[i] != i * stride % N) { - test_failed = 1; - break; - } - } - - if(test_failed) { - printf("Test failed!\n"); - return EXIT_FAILURE; - } else { - printf("Test passed!\n"); - } -#endif - - const double size = N * (sizeof(double) + sizeof(int)) / 1000.0; - const double time_per_it = time * 1e6 / ((double) N * rep); - const double cy_per_gather = time * freq * _VL_ / ((double) N * rep); - const double cy_per_elem = time * freq / ((double) N * rep); - printf("%14d,%14.2f,%14.10f,%14.10f,%14.6f,%14.6f\n", N, size, time, time_per_it, cy_per_gather, cy_per_elem); - free(a); - free(idx); -#ifdef TEST - free(t); -#endif - } - - LIKWID_MARKER_CLOSE; - return EXIT_SUCCESS; -} diff --git a/util/gather-bench/src/timing.c b/util/gather-bench/src/timing.c deleted file mode 100644 index aad74cb..0000000 --- a/util/gather-bench/src/timing.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * ======================================================================================= - * - * Author: Jan Eitzinger (je), jan.eitzinger@fau.de - * Copyright (c) 2020 RRZE, University Erlangen-Nuremberg - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * ======================================================================================= - */ -#include -#include - -double getTimeStamp() -{ - struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - return (double)ts.tv_sec + (double)ts.tv_nsec * 1.e-9; -} - -double getTimeResolution() -{ - struct timespec ts; - clock_getres(CLOCK_MONOTONIC, &ts); - return (double)ts.tv_sec + (double)ts.tv_nsec * 1.e-9; -} - -double getTimeStamp_() -{ - return getTimeStamp(); -} diff --git a/util/mdBench.c b/util/mdBench.c deleted file mode 100644 index 3bea419..0000000 --- a/util/mdBench.c +++ /dev/null @@ -1,979 +0,0 @@ -/* - * Copyright (C) NHR@FAU, University Erlangen-Nuremberg. - * All rights reserved. This file is part of MD-Bench. - * Use of this source code is governed by a LGPL-3.0 - * license that can be found in the LICENSE file. - */ -#include -#include -#include -#include -#include -#include -#include - -#define HLINE "----------------------------------------------------------------------------\n" - -#define FACTOR 0.999 -#define SMALL 1.0e-6 -#define DELTA 20000 - -#ifndef MIN -#define MIN(x,y) ((x)<(y)?(x):(y)) -#endif -#ifndef MAX -#define MAX(x,y) ((x)>(y)?(x):(y)) -#endif -#ifndef ABS -#define ABS(a) ((a) >= 0 ? (a) : -(a)) -#endif - -static int Natoms, Nlocal, Nghost, Nmax; -static double Cutneigh; // neighbor cutoff -static double xprd, yprd, zprd; -static double xlo, xhi; -static double ylo, yhi; -static double zlo, zhi; -static double *x, *y, *z; -static double *vx, *vy, *vz; -static double *fx, *fy, *fz; - -static int NmaxGhost; -static int *BorderMap; -static int *PBCx, *PBCy, *PBCz; - -typedef struct { - int* numneigh; - int* neighbors; - int maxneighs; - int nbinx, nbiny, nbinz; - /* double cutneigh; // neighbor cutoff */ - double cutneighsq; // neighbor cutoff squared - int every; - int ncalls; - int max_totalneigh; - int *bincount; - int *bins; - int nmax; - int nstencil; // # of bins in stencil - int* stencil; // stencil list of bin offsets - int mbins; //total number of bins - int atoms_per_bin; // max atoms per bin - int mbinx, mbiny, mbinz; // n bins in x, y, z - int mbinxlo, mbinylo, mbinzlo; - double binsizex, binsizey, binsizez; - double bininvx, bininvy, bininvz; -} Neighbor; - -typedef struct { - double epsilon; - double sigma6; - double temp; - double rho; - double mass; - int ntimes; - int nstat; - double dt; - double dtforce; - double cutforce; - int nx, ny, nz; -} Parameter; - -typedef struct { - int *steparr; - double *tmparr; - double *engarr; - double *prsarr; - double mvv2e; - int dof_boltz; - double t_scale; - double p_scale; - double e_scale; - double t_act; - double p_act; - double e_act; - int mstat; -} Thermo; - -/* Park/Miller RNG w/out MASKING, so as to be like f90s version */ -#define IA 16807 -#define IM 2147483647 -#define AM (1.0/IM) -#define IQ 127773 -#define IR 2836 -#define MASK 123459876 - -double myrandom(int* idum) -{ - int k= (*idum) / IQ; - double ans; - - *idum = IA * (*idum - k * IQ) - IR * k; - if(*idum < 0) *idum += IM; - ans = AM * (*idum); - return ans; -} - -int coord2bin(Neighbor* neighbor, double xin, double yin, double zin) -{ - int ix, iy, iz; - double bininvx = neighbor->bininvx; - double bininvy = neighbor->bininvy; - double bininvz = neighbor->bininvz; - int mbinxlo = neighbor->mbinxlo; - int mbinylo = neighbor->mbinylo; - int mbinzlo = neighbor->mbinzlo; - - if(xin >= xprd) { - ix = (int)((xin - xprd) * bininvx) + neighbor->nbinx - mbinxlo; - } else if(xin >= 0.0) { - ix = (int)(xin * bininvx) - mbinxlo; - } else { - ix = (int)(xin * bininvx) - mbinxlo - 1; - } - - if(yin >= yprd) { - iy = (int)((yin - yprd) * bininvy) + neighbor->nbiny - mbinylo; - } else if(yin >= 0.0) { - iy = (int)(yin * bininvy) - mbinylo; - } else { - iy = (int)(yin * bininvy) - mbinylo - 1; - } - - if(zin >= zprd) { - iz = (int)((zin - zprd) * bininvz) + neighbor->nbinz - mbinzlo; - } else if(zin >= 0.0) { - iz = (int)(zin * bininvz) - mbinzlo; - } else { - iz = (int)(zin * bininvz) - mbinzlo - 1; - } - - return (iz * neighbor->mbiny * neighbor->mbinx + iy * neighbor->mbinx + ix + 1); -} - -void binatoms(Neighbor *neighbor) -{ - int* bincount = neighbor->bincount; - int mbins = neighbor->mbins; - int nall = Nlocal + Nghost; - int resize = 1; - - while(resize > 0) { - resize = 0; - - for(int i = 0; i < mbins; i++) { - bincount[i] = 0; - } - - for(int i = 0; i < nall; i++) { - int ibin = coord2bin(neighbor, x[i], y[i], z[i]); - - if(bincount[ibin] < neighbor->atoms_per_bin) { - int ac = neighbor->bincount[ibin]++; - neighbor->bins[ibin * neighbor->atoms_per_bin + ac] = i; - } else { - resize = 1; - } - } - - if(resize) { - free(neighbor->bins); - neighbor->atoms_per_bin *= 2; - neighbor->bins = (int*) malloc(mbins * neighbor->atoms_per_bin * sizeof(int)); - } - } -} - -double bindist(Neighbor *neighbor, int i, int j, int k) -{ - double delx, dely, delz; - - if(i > 0) { - delx = (i - 1) * neighbor->binsizex; - } else if(i == 0) { - delx = 0.0; - } else { - delx = (i + 1) * neighbor->binsizex; - } - - if(j > 0) { - dely = (j - 1) * neighbor->binsizey; - } else if(j == 0) { - dely = 0.0; - } else { - dely = (j + 1) * neighbor->binsizey; - } - - if(k > 0) { - delz = (k - 1) * neighbor->binsizez; - } else if(k == 0) { - delz = 0.0; - } else { - delz = (k + 1) * neighbor->binsizez; - } - - return (delx * delx + dely * dely + delz * delz); -} - -void buildNeighborlist(Neighbor *neighbor) -{ - neighbor->ncalls++; - int nall = Nlocal + Nghost; - - /* extend atom arrays if necessary */ - if(nall > neighbor->nmax) { - neighbor->nmax = nall; - if(neighbor->numneigh) free(neighbor->numneigh); - if(neighbor->neighbors) free(neighbor->neighbors); - neighbor->numneigh = (int*) malloc(neighbor->nmax * sizeof(int)); - neighbor->neighbors = (int*) malloc(neighbor->nmax * neighbor->maxneighs * sizeof(int*)); - } - - /* bin local & ghost atoms */ - binatoms(neighbor); - int resize = 1; - - /* loop over each atom, storing neighbors */ - while(resize) { - int new_maxneighs = neighbor->maxneighs; - resize = 0; - - for(int i = 0; i < Nlocal; i++) { - int* neighptr = &neighbor->neighbors[i * neighbor->maxneighs]; - int n = 0; - double xtmp = x[i]; - double ytmp = y[i]; - double ztmp = z[i]; - int ibin = coord2bin(neighbor, xtmp, ytmp, ztmp); - - for(int k = 0; k < neighbor->nstencil; k++) { - int jbin = ibin + neighbor->stencil[k]; - int* loc_bin = &neighbor->bins[jbin * neighbor->atoms_per_bin]; - - for(int m = 0; m < neighbor->bincount[jbin]; m++) { - int j = loc_bin[m]; - - if ( j == i ){ - continue; - } - - double delx = xtmp - x[j]; - double dely = ytmp - y[j]; - double delz = ztmp - z[j]; - double rsq = delx * delx + dely * dely + delz * delz; - - if( rsq <= neighbor->cutneighsq ) { - neighptr[n++] = j; - } - } - } - - neighbor->numneigh[i] = n; - - if(n >= neighbor->maxneighs) { - resize = 1; - - if(n >= new_maxneighs) { - new_maxneighs = n; - } - } - } - - if(resize) { - neighbor->maxneighs = new_maxneighs * 1.2; - free(neighbor->neighbors); - neighbor->neighbors = (int*) malloc(Nmax* neighbor->maxneighs * sizeof(int)); - } - } -} - -void init(Neighbor *neighbor, Parameter *param) -{ - x = NULL; y = NULL; z = NULL; - vx = NULL; vy = NULL; vz = NULL; - fx = NULL; fy = NULL; fz = NULL; - - NmaxGhost = 0; - BorderMap = NULL; - PBCx = NULL; PBCy = NULL; PBCz = NULL; - - param->epsilon = 1.0; - param->sigma6 = 1.0; - param->rho = 0.8442; - param->ntimes = 200; - param->dt = 0.005; - param->nx = 32; - param->ny = 32; - param->nz = 64; - param->cutforce = 2.5; - param->temp = 1.44; - param->nstat = 100; - param->mass = 1.0; - param->dtforce = 0.5 * param->dt; - - Cutneigh = param->cutforce + 0.30; - double neighscale = 5.0 / 6.0; - neighbor->nbinx = neighscale * param->nx; - neighbor->nbiny = neighscale * param->ny; - neighbor->nbinz = neighscale * param->nz; - neighbor->every = 20; - neighbor->ncalls = 0; - neighbor->nmax = 0; - neighbor->atoms_per_bin = 8; - neighbor->maxneighs = 100; - /* neighbor->cutneigh = param->cutforce + 0.30; */ - neighbor->numneigh = NULL; - neighbor->neighbors = NULL; - neighbor->stencil = NULL; - neighbor->bins = NULL; - neighbor->bincount = NULL; -} - -void setup(Neighbor *neighbor, Parameter *param) -{ - double lattice = pow((4.0 / param->rho), (1.0 / 3.0)); - double coord; - int mbinxhi, mbinyhi, mbinzhi; - int nextx, nexty, nextz; - - xprd = param->nx * lattice; - yprd = param->ny * lattice; - zprd = param->nz * lattice; - - xlo = 0.0; xhi = xprd; - ylo = 0.0; yhi = yprd; - zlo = 0.0; zhi = zprd; - - neighbor->cutneighsq = Cutneigh * Cutneigh; - neighbor->binsizex = xprd / neighbor->nbinx; - neighbor->binsizey = yprd / neighbor->nbiny; - neighbor->binsizez = zprd / neighbor->nbinz; - - neighbor->bininvx = 1.0 / neighbor->binsizex; - neighbor->bininvy = 1.0 / neighbor->binsizey; - neighbor->bininvz = 1.0 / neighbor->binsizez; - - coord = xlo - Cutneigh - SMALL * xprd; - neighbor->mbinxlo = (int) (coord * neighbor->bininvx); - if (coord < 0.0) { - neighbor->mbinxlo = neighbor->mbinxlo - 1; - } - coord = xhi + Cutneigh + SMALL * xprd; - mbinxhi = (int) (coord * neighbor->bininvx); - - coord = ylo - Cutneigh - SMALL * yprd; - neighbor->mbinylo = (int) (coord * neighbor->bininvy); - if (coord < 0.0) { - neighbor->mbinylo = neighbor->mbinylo - 1; - } - coord = yhi + Cutneigh + SMALL * yprd; - mbinyhi = (int) (coord * neighbor->bininvy); - - coord = zlo - Cutneigh - SMALL * zprd; - neighbor->mbinzlo = (int) (coord * neighbor->bininvz); - if (coord < 0.0) { - neighbor->mbinzlo = neighbor->mbinzlo - 1; - } - coord = zhi + Cutneigh + SMALL * zprd; - mbinzhi = (int) (coord * neighbor->bininvz); - - neighbor->mbinxlo = neighbor->mbinxlo - 1; - mbinxhi = mbinxhi + 1; - neighbor->mbinx = mbinxhi - neighbor->mbinxlo + 1; - - neighbor->mbinylo = neighbor->mbinylo - 1; - mbinyhi = mbinyhi + 1; - neighbor->mbiny = mbinyhi - neighbor->mbinylo + 1; - - neighbor->mbinzlo = neighbor->mbinzlo - 1; - mbinzhi = mbinzhi + 1; - neighbor->mbinz = mbinzhi - neighbor->mbinzlo + 1; - - nextx = (int) (Cutneigh * neighbor->bininvx); - if(nextx * neighbor->binsizex < FACTOR * Cutneigh) nextx++; - - nexty = (int) (Cutneigh * neighbor->bininvy); - if(nexty * neighbor->binsizey < FACTOR * Cutneigh) nexty++; - - nextz = (int) (Cutneigh * neighbor->bininvz); - if(nextz * neighbor->binsizez < FACTOR * Cutneigh) nextz++; - - if (neighbor->stencil) { - free(neighbor->stencil); - } - - neighbor->stencil = (int*) malloc( - (2 * nextz + 1) * (2 * nexty + 1) * (2 * nextx + 1) * sizeof(int)); - - neighbor->nstencil = 0; - int kstart = -nextz; - - for(int k = kstart; k <= nextz; k++) { - for(int j = -nexty; j <= nexty; j++) { - for(int i = -nextx; i <= nextx; i++) { - if(bindist(neighbor, i, j, k) < neighbor->cutneighsq) { - neighbor->stencil[neighbor->nstencil++] = - k * neighbor->mbiny * neighbor->mbinx + j * neighbor->mbinx + i; - } - } - } - } - - neighbor->mbins = neighbor->mbinx * neighbor->mbiny * neighbor->mbinz; - - if (neighbor->bincount) { - free(neighbor->bincount); - } - neighbor->bincount = (int*) malloc(neighbor->mbins * sizeof(int)); - - if (neighbor->bins) { - free(neighbor->bins); - } - neighbor->bins = (int*) malloc(neighbor->mbins * neighbor->atoms_per_bin * sizeof(int)); -} - -double* myrealloc(double *ptr, int n, int nold) { - - double* newarray; - newarray = (double*) malloc(n * sizeof(double)); - - if(nold) { - memcpy(newarray, ptr, nold * sizeof(double)); - } - if(ptr) { - free(ptr); - } - - return newarray; -} - -int* myreallocInt(int *ptr, int n, int nold) { - - int* newarray; - - newarray = (int*) malloc(n * sizeof(int)); - - if(nold) { - memcpy(newarray, ptr, nold * sizeof(int)); - } - if(ptr) { - free(ptr); - } - - return newarray; -} - -void growBoundary() -{ - int nold = NmaxGhost; - NmaxGhost += DELTA; - - BorderMap = myreallocInt(BorderMap, NmaxGhost, nold); - PBCx = myreallocInt(PBCx, NmaxGhost, nold); - PBCy = myreallocInt(PBCy, NmaxGhost, nold); - PBCz = myreallocInt(PBCz, NmaxGhost, nold); - - if(BorderMap == NULL || PBCx == NULL || PBCy == NULL || PBCz == NULL ) { - printf("ERROR: No memory for Boundary\n"); - } -} - -void growarray() -{ - int nold = Nmax; - Nmax += DELTA; - - x = myrealloc(x, Nmax, nold); y = myrealloc(y, Nmax, nold); z = myrealloc(z, Nmax, nold); - vx = myrealloc(vx, Nmax, nold); vy = myrealloc(vy, Nmax, nold); vz = myrealloc(vz, Nmax, nold); - fx = myrealloc(fx, Nmax, nold); fy = myrealloc(fy, Nmax, nold); fz = myrealloc(fz, Nmax, nold); - - if(x == NULL || y == NULL || z == NULL || - vx == NULL || vy == NULL || vz == NULL || - fx == NULL || fy == NULL || fz == NULL ) { - printf("ERROR: No memory for atoms\n"); - } -} - -void updateBorders() -{ - for(int i = 0; i < Nghost; i++) { - x[Nlocal + i] = x[BorderMap[i]] + PBCx[i] * xprd; - y[Nlocal + i] = y[BorderMap[i]] + PBCy[i] * yprd; - z[Nlocal + i] = z[BorderMap[i]] + PBCz[i] * zprd; - } -} - -void updateAtomLocations() -{ - for(int i = 0; i < Nlocal; i++) { - - if(x[i] < 0.0) { - x[i] += xprd; - } else if(x[i] >= xprd) { - x[i] -= xprd; - } - - if(y[i] < 0.0) { - y[i] += yprd; - } else if(y[i] >= yprd) { - y[i] -= yprd; - } - - if(z[i] < 0.0) { - z[i] += zprd; - } else if(z[i] >= zprd) { - z[i] -= zprd; - } - } -} - -void setupBordersNew() -{ - int lastidx = 0; - int nghostprev = 0; - Nghost = 0; - - for (int i = 0; i < Nlocal; i++) { - - if (Nlocal + Nghost + 1 >= Nmax) { - growarray(); - } - - if (x[i] < Cutneigh) { - Nghost++; - x[i+lastidx] = x[i] + xprd; - y[i+lastidx] = y[i]; - z[i+lastidx] = z[i]; - lastidx++; - } else if (x[i] >= xprd - Cutneigh) { - Nghost++; - x[i+lastidx] = x[i] - xprd; - y[i+lastidx] = y[i]; - z[i+lastidx] = z[i]; - lastidx++; - } - } - - nghostprev = Nghost+1; - - for (int i = 0; i < Nlocal + nghostprev ; i++) { - - if (Nlocal + Nghost + 1 >= Nmax) { - growarray(); - } - - if (y[i] < Cutneigh) { - Nghost++; - x[i+lastidx] = x[i]; - y[i+lastidx] = y[i] + yprd; - z[i+lastidx] = z[i]; - lastidx++; - } else if (y[i] >= yprd - Cutneigh) { - Nghost++; - x[i+lastidx] = x[i]; - y[i+lastidx] = y[i] - yprd; - z[i+lastidx] = z[i]; - lastidx++; - } - } - - nghostprev = Nghost+1; - - for (int i = 0; i < Nlocal + nghostprev; i++) { - - if (Nlocal + Nghost + 1 >= Nmax) { - growarray(); - } - - if (z[i] < Cutneigh) { - Nghost++; - x[i+lastidx] = x[i]; - y[i+lastidx] = y[i]; - z[i+lastidx] = z[i] + zprd; - lastidx++; - } else if(z[i] >= zprd - Cutneigh) { - Nghost++; - x[i+lastidx] = x[i]; - y[i+lastidx] = y[i]; - z[i+lastidx] = z[i] - zprd; - lastidx++; - } - } - - Nghost++; -} - -#define ADDGHOST(dx,dy,dz) Nghost++; BorderMap[Nghost] = i; PBCx[Nghost] = dx; PBCy[Nghost] = dy; PBCz[Nghost] = dz; -void setupBorders() -{ - Nghost = -1; - - for(int i = 0; i < Nlocal; i++) { - - if (Nlocal + Nghost + 7 >= Nmax) { - growarray(); - } - if (Nghost + 7 >= NmaxGhost) { - growBoundary(); - } - - /* Setup ghost atoms */ - /* 6 planes */ - if (x[i] < Cutneigh) { ADDGHOST(+1,0,0); } - if (x[i] >= (xprd-Cutneigh)) { ADDGHOST(-1,0,0); } - if (y[i] < Cutneigh) { ADDGHOST(0,+1,0); } - if (y[i] >= (yprd-Cutneigh)) { ADDGHOST(0,-1,0); } - if (z[i] < Cutneigh) { ADDGHOST(0,0,+1); } - if (z[i] >= (zprd-Cutneigh)) { ADDGHOST(0,0,-1); } - /* 8 corners */ - if (x[i] < Cutneigh && y[i] < Cutneigh && z[i] < Cutneigh) { ADDGHOST(+1,+1,+1); } - if (x[i] < Cutneigh && y[i] >= (yprd-Cutneigh) && z[i] < Cutneigh) { ADDGHOST(+1,-1,+1); } - if (x[i] < Cutneigh && y[i] >= Cutneigh && z[i] >= (zprd-Cutneigh)) { ADDGHOST(+1,+1,-1); } - if (x[i] < Cutneigh && y[i] >= (yprd-Cutneigh) && z[i] >= (zprd-Cutneigh)) { ADDGHOST(+1,-1,-1); } - if (x[i] >= (xprd-Cutneigh) && y[i] < Cutneigh && z[i] < Cutneigh) { ADDGHOST(-1,+1,+1); } - if (x[i] >= (xprd-Cutneigh) && y[i] >= (yprd-Cutneigh) && z[i] < Cutneigh) { ADDGHOST(-1,-1,+1); } - if (x[i] >= (xprd-Cutneigh) && y[i] < Cutneigh && z[i] >= (zprd-Cutneigh)) { ADDGHOST(-1,+1,-1); } - if (x[i] >= (xprd-Cutneigh) && y[i] >= (yprd-Cutneigh) && z[i] >= (zprd-Cutneigh)) { ADDGHOST(-1,-1,-1); } - /* 12 edges */ - if (x[i] < Cutneigh && z[i] < Cutneigh) { ADDGHOST(+1,0,+1); } - if (x[i] < Cutneigh && z[i] >= (zprd-Cutneigh)) { ADDGHOST(+1,0,-1); } - if (x[i] >= (xprd-Cutneigh) && z[i] < Cutneigh) { ADDGHOST(-1,0,+1); } - if (x[i] >= (xprd-Cutneigh) && z[i] >= (zprd-Cutneigh)) { ADDGHOST(-1,0,-1); } - if (y[i] < Cutneigh && z[i] < Cutneigh) { ADDGHOST(0,+1,+1); } - if (y[i] < Cutneigh && z[i] >= (zprd-Cutneigh)) { ADDGHOST(0,+1,-1); } - if (y[i] >= (yprd-Cutneigh) && z[i] < Cutneigh) { ADDGHOST(0,-1,+1); } - if (y[i] >= (yprd-Cutneigh) && z[i] >= (zprd-Cutneigh)) { ADDGHOST(0,-1,-1); } - if (y[i] < Cutneigh && x[i] < Cutneigh) { ADDGHOST(+1,+1,0); } - if (y[i] < Cutneigh && x[i] >= (xprd-Cutneigh)) { ADDGHOST(-1,+1,0); } - if (y[i] >= (yprd-Cutneigh) && x[i] < Cutneigh) { ADDGHOST(+1,-1,0); } - if (y[i] >= (yprd-Cutneigh) && x[i] >= (xprd-Cutneigh)) { ADDGHOST(-1,-1,0); } - } - // increase by one to make it the ghost atom count - Nghost++; -} - -void sortAtoms(Neighbor *neighbor) -{ - binatoms(neighbor); - int* binpos = neighbor->bincount; - int* bins = neighbor->bins; - - int mbins = neighbor->mbins; - int atoms_per_bin = neighbor->atoms_per_bin; - - for(int i=1; i0?binpos[mybin-1]:0; - int count = binpos[mybin] - start; - - for(int k=0; knx * param->ny * param->nz; - Nlocal = 0; - double alat = pow((4.0 / param->rho), (1.0 / 3.0)); - int ilo = (int) (xlo / (0.5 * alat) - 1); - int ihi = (int) (xhi / (0.5 * alat) + 1); - int jlo = (int) (ylo / (0.5 * alat) - 1); - int jhi = (int) (yhi / (0.5 * alat) + 1); - int klo = (int) (zlo / (0.5 * alat) - 1); - int khi = (int) (zhi / (0.5 * alat) + 1); - - ilo = MAX(ilo, 0); - ihi = MIN(ihi, 2 * param->nx - 1); - jlo = MAX(jlo, 0); - jhi = MIN(jhi, 2 * param->ny - 1); - klo = MAX(klo, 0); - khi = MIN(khi, 2 * param->nz - 1); - - double xtmp, ytmp, ztmp, vxtmp, vytmp, vztmp; - int i, j, k, m, n; - int sx = 0; int sy = 0; int sz = 0; - int ox = 0; int oy = 0; int oz = 0; - int subboxdim = 8; - - while(oz * subboxdim <= khi) { - - k = oz * subboxdim + sz; - j = oy * subboxdim + sy; - i = ox * subboxdim + sx; - - if(((i + j + k) % 2 == 0) && - (i >= ilo) && (i <= ihi) && - (j >= jlo) && (j <= jhi) && - (k >= klo) && (k <= khi)) { - - xtmp = 0.5 * alat * i; - ytmp = 0.5 * alat * j; - ztmp = 0.5 * alat * k; - - if( xtmp >= xlo && xtmp < xhi && - ytmp >= ylo && ytmp < yhi && - ztmp >= zlo && ztmp < zhi ) { - - n = k * (2 * param->ny) * (2 * param->nx) + - j * (2 * param->nx) + - i + 1; - - for(m = 0; m < 5; m++) { - myrandom(&n); - } - vxtmp = myrandom(&n); - - for(m = 0; m < 5; m++){ - myrandom(&n); - } - vytmp = myrandom(&n); - - for(m = 0; m < 5; m++) { - myrandom(&n); - } - vztmp = myrandom(&n); - - if(Nlocal == Nmax) { - growarray(); - } - - x[Nlocal] = xtmp; y[Nlocal] = ytmp; z[Nlocal] = ztmp; - vx[Nlocal] = vxtmp; vy[Nlocal] = vytmp; vz[Nlocal] = vztmp; - Nlocal++; - } - } - - sx++; - - if(sx == subboxdim) { sx = 0; sy++; } - if(sy == subboxdim) { sy = 0; sz++; } - if(sz == subboxdim) { sz = 0; ox++; } - if(ox * subboxdim > ihi) { ox = 0; oy++; } - if(oy * subboxdim > jhi) { oy = 0; oz++; } - } -} - -void adjustVelocity(Parameter *param, Thermo *thermo) -{ - /* zero center-of-mass motion */ - double vxtot = 0.0; - double vytot = 0.0; - double vztot = 0.0; - - for(int i = 0; i < Nlocal; i++) { - vxtot += vx[i]; - vytot += vy[i]; - vztot += vz[i]; - } - - vxtot = vxtot / Natoms; - vytot = vytot / Natoms; - vztot = vztot / Natoms; - - for(int i = 0; i < Nlocal; i++) { - vx[i] -= vxtot; - vy[i] -= vytot; - vz[i] -= vztot; - } - - thermo->t_act = 0; - double t = 0.0; - - for(int i = 0; i < Nlocal; i++) { - t += (vx[i] * vx[i] + vy[i] * vy[i] + vz[i] * vz[i]) * param->mass; - } - - t *= thermo->t_scale; - double factor = sqrt(param->temp / t); - - for(int i = 0; i < Nlocal; i++) { - vx[i] *= factor; - vy[i] *= factor; - vz[i] *= factor; - } -} - -void thermoSetup(Parameter *param, Thermo *thermo) -{ - int maxstat = param->ntimes / param->nstat + 2; - - thermo->steparr = (int*) malloc(maxstat * sizeof(int)); - thermo->tmparr = (double*) malloc(maxstat * sizeof(double)); - thermo->engarr = (double*) malloc(maxstat * sizeof(double)); - thermo->prsarr = (double*) malloc(maxstat * sizeof(double)); - - thermo->mvv2e = 1.0; - thermo->dof_boltz = (Natoms * 3 - 3); - thermo->t_scale = thermo->mvv2e / thermo->dof_boltz; - thermo->p_scale = 1.0 / 3 / xprd / yprd / zprd; - thermo->e_scale = 0.5; - - printf("step\ttemp\t\tpressure\n"); -} - - -void thermoCompute(int iflag, Parameter *param, Thermo *thermo) -{ - double t = 0.0, p; - - for(int i = 0; i < Nlocal; i++) { - t += (vx[i] * vx[i] + vy[i] * vy[i] + vz[i] * vz[i]) * param->mass; - } - - t = t * thermo->t_scale; - p = (t * thermo->dof_boltz) * thermo->p_scale; - - int istep = iflag; - - if(iflag == -1){ - istep = param->ntimes; - } - if(iflag == 0){ - thermo->mstat = 0; - } - - thermo->steparr[thermo->mstat] = istep; - thermo->tmparr[thermo->mstat] = t; - thermo->prsarr[thermo->mstat] = p; - thermo->mstat++; - fprintf(stdout, "%i\t%e\t%e\n", istep, t, p); -} - -void initialIntegrate(Parameter *param) -{ - for(int i = 0; i < Nlocal; i++) { - vx[i] += param->dtforce * fx[i]; - vy[i] += param->dtforce * fy[i]; - vz[i] += param->dtforce * fz[i]; - x[i] += param->dt * vx[i]; - y[i] += param->dt * vy[i]; - z[i] += param->dt * vz[i]; - } -} - -void finalIntegrate(Parameter *param) -{ - for(int i = 0; i < Nlocal; i++) { - vx[i] += param->dtforce * fx[i]; - vy[i] += param->dtforce * fy[i]; - vz[i] += param->dtforce * fz[i]; - } -} - -void computeForce(Neighbor *neighbor, Parameter *param) -{ - int* neighs; - double cutforcesq = param->cutforce * param->cutforce; - double sigma6 = param->sigma6; - double epsilon = param->epsilon; - - for(int i = 0; i < Nlocal; i++) { - fx[i] = 0.0; - fy[i] = 0.0; - fz[i] = 0.0; - } - - for(int i = 0; i < Nlocal; i++) { - neighs = &neighbor->neighbors[i * neighbor->maxneighs]; - int numneighs = neighbor->numneigh[i]; - double xtmp = x[i]; - double ytmp = y[i]; - double ztmp = z[i]; - - double fix = 0; - double fiy = 0; - double fiz = 0; - - for(int k = 0; k < numneighs; k++) { - int j = neighs[k]; - double delx = xtmp - x[j]; - double dely = ytmp - y[j]; - double delz = ztmp - z[j]; - double rsq = delx * delx + dely * dely + delz * delz; - - if(rsq < cutforcesq) { - double sr2 = 1.0 / rsq; - double sr6 = sr2 * sr2 * sr2 * sigma6; - double force = 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon; - fix += delx * force; - fiy += dely * force; - fiz += delz * force; - } - } - - fx[i] += fix; - fy[i] += fiy; - fz[i] += fiz; - } -} - -int main (int argc, char** argv) -{ - Neighbor neighbor; - Parameter param; - Thermo thermo; - - init(&neighbor, ¶m); - setup(&neighbor, ¶m); - create_atoms(¶m); - thermoSetup(¶m, &thermo); - adjustVelocity(¶m, &thermo); - setupBorders(); - updateBorders(); - buildNeighborlist(&neighbor); - thermoCompute(0, ¶m, &thermo); - computeForce(&neighbor, ¶m); - - for(int n = 0; n < param.ntimes; n++) { - - initialIntegrate(¶m); - - if((n + 1) % neighbor.every) { - updateBorders(); - } else { - updateAtomLocations(); - setupBorders(); - updateBorders(); - /* sortAtoms(&neighbor); */ - buildNeighborlist(&neighbor); - } - - computeForce(&neighbor, ¶m); - finalIntegrate(¶m); - - if(!((n + 1) % param.nstat) && (n+1) < param.ntimes) { - thermoCompute(n + 1, ¶m, &thermo); - } - } - - thermoCompute(-1, ¶m, &thermo); - - return EXIT_SUCCESS; -} diff --git a/util/plot_gather_data.py b/util/plot_gather_data.py deleted file mode 100644 index c639e91..0000000 --- a/util/plot_gather_data.py +++ /dev/null @@ -1,114 +0,0 @@ -import matplotlib.pyplot as plt -import sys - -filename = sys.argv[1] -plot_output_file = filename.replace(".txt", ".pdf") -raw_output_file = filename.replace(".txt", ".csv") -fig = plt.figure() -ax = plt.axes() -plot_data = {} - -status = 0 # No header found -md_case = False -cut_cls_case = False -stride = None -dims = None -freq = None -cl_size = None -vector_width = None -cache_lines_per_gather = None - -with open(filename, 'r') as fp: - for line in fp.readlines(): - line = line.strip() - - if len(line) <= 0 or "likwid-pin" in line or "INFO:" in line: - continue - - if line.startswith("ISA,"): - status = 1 - md_case = True if "Dims" in line else False - continue - - if line.startswith("N,"): - status = 2 - cut_cls_case = True if "cut CLs" in line else False - continue - - assert status == 1 or status == 2, "Invalid input!" - - if status == 1: - if md_case: - isa, layout, stride, dims, freq, cl_size, vector_width, cache_lines_per_gather = line.split(',') - else: - isa, stride, freq, cl_size, vector_width, cache_lines_per_gather = line.split(',') - - stride = int(stride) - continue - - if md_case: - if cut_cls_case: - N, size, cut_cls, total_time, time_per_it, cy_per_iter, cy_per_gather, cy_per_elem = line.split(',') - else: - print(line) - N, size, total_time, time_per_it, cy_per_iter, cy_per_gather, cy_per_elem = line.split(',') - cut_cls = 0 - else: - N, size, total_time, time_per_it, cy_per_gather, cy_per_elem = line.split(',') - cut_cls = 0 - - size = float(size) - cycles = float(cy_per_iter) if md_case else float(cy_per_gather) - - if stride not in plot_data: - plot_data[stride] = {} - - plot_data[stride][size] = cycles if size not in plot_data[stride] \ - else min(cycles, plot_data[stride][size]) - -all_sizes = set() -all_strides = set() -for stride in plot_data: - sizes = list(plot_data[stride].keys()) - sizes.sort() - cycles = [plot_data[stride][size] for size in sizes] - ax.plot(sizes, cycles, marker='.', label=str(stride)) - - for size in sizes: - all_sizes.add(size) - - all_strides.add(stride) - -all_sizes = list(all_sizes) -all_sizes.sort() -all_strides = list(all_strides) -all_strides.sort() -with open(raw_output_file, 'w') as wp: - wp.write(" size\stride") - - for stride in all_strides: - wp.write(",{0:14}".format(stride)) - - wp.write("\n") - - for size in all_sizes: - wp.write("{:14.6f}".format(size)) - for stride in all_strides: - try: - cycles = plot_data[stride][size] - except: - cycles = '' - - wp.write(",{:14.6f}".format(cycles)) - - wp.write("\n") - -cy_label = "Cycles per iteration" if md_case else "Cycles per gather" -ax.vlines([48, 1000, 48000], 0, 1, transform=ax.get_xaxis_transform(), linestyles='dashed', color=['#444444', '#777777']) -#ax.vlines([32, 1000, 28000], 0, 1, transform=ax.get_xaxis_transform(), linestyles='dashed', color=['#444444', '#777777', '#aaaaaa']) -ax.set(xlabel='Array size (kB)', ylabel=cy_label) -ax.set_xscale('log') -#ax.set_xticks([32, 1000, 28000]) -#ax.set_xlim(0, 200000) -plt.legend(title="Stride") -fig.savefig(plot_output_file, bbox_inches = 'tight', pad_inches = 0) diff --git a/util/plot_run_stub_data.py b/util/plot_run_stub_data.py deleted file mode 100644 index f1f70a5..0000000 --- a/util/plot_run_stub_data.py +++ /dev/null @@ -1,76 +0,0 @@ -import matplotlib.pyplot as plt -import sys - -vector_width = 8 # 8 doubles per zmm vector - -# Filter condition of which data to plot -def plot_filter(atoms_per_unit_cell): - #return atoms_per_unit_cell < 2048 - return True - -filename = sys.argv[1] -plot_output_file = filename.replace(".txt", ".pdf") -raw_output_file = filename.replace(".txt", ".csv") -fig = plt.figure() -ax = plt.axes() -plot_data = {} - -with open(filename, 'r') as fp: - for line in fp.readlines(): - steps, unit_cells, atoms_per_unit_cell, total_atoms, total_vol, atoms_vol, neigh_vol, time, atom_upds_per_sec, cy_per_atom, cy_per_neigh = line.split(',') - atoms_per_unit_cell = int(atoms_per_unit_cell) - vol = float(neigh_vol) - cy_per_atom = float(cy_per_atom) - - if plot_filter(atoms_per_unit_cell): - if atoms_per_unit_cell not in plot_data: - plot_data[atoms_per_unit_cell] = {} - - cy_per_iter = cy_per_atom * vector_width / atoms_per_unit_cell - plot_data[atoms_per_unit_cell][vol] = cy_per_iter if vol not in plot_data[atoms_per_unit_cell] \ - else min(cy_per_iter, plot_data[atoms_per_unit_cell][vol]) - -all_volumes = set() -all_configs = set() -for atoms_per_unit_cell in plot_data: - volumes = list(plot_data[atoms_per_unit_cell].keys()) - volumes.sort() - cycles = [plot_data[atoms_per_unit_cell][vol] for vol in volumes] - ax.plot(volumes, cycles, marker='.', label=str(atoms_per_unit_cell)) - - for vol in volumes: - all_volumes.add(vol) - - all_configs.add(atoms_per_unit_cell) - -all_volumes = list(all_volumes) -all_volumes.sort() -all_configs = list(all_configs) -all_configs.sort() -with open(raw_output_file, 'w') as wp: - wp.write(" volume\config") - - for conf in all_configs: - wp.write(",{0:14}".format(conf)) - - wp.write("\n") - - for vol in all_volumes: - wp.write("{:14.6f}".format(vol)) - for conf in all_configs: - try: - cycles = plot_data[conf][vol] - wp.write(",{:14.6f}".format(cycles)) - except: - wp.write(',' + ' ' * 14) - - - wp.write("\n") - -ax.vlines([32, 1000, 28000], 0, 1, transform=ax.get_xaxis_transform(), linestyles='dashed', color=['#444444', '#777777', '#aaaaaa']) -ax.set(xlabel='Neighbor data volume (kB)', ylabel='Cycles per iteration') -ax.set_xscale('log') -#ax.set_xticks([32, 1000, 28000]) -#ax.set_xlim(0, 200000) -plt.legend(title="atoms/uc") -fig.savefig(plot_output_file, bbox_inches = 'tight', pad_inches = 0) diff --git a/util/preds.py b/util/preds.py deleted file mode 100644 index f5d93db..0000000 --- a/util/preds.py +++ /dev/null @@ -1,28 +0,0 @@ -import sys -import re - -if len(sys.argv) != 6: - print("Usage: python preds.py ") - sys.exit(1) - -iaca_pred = float(sys.argv[1]) -mca_pred = float(sys.argv[2]) -osaca_pred = float(sys.argv[3]) -uica_pred = float(sys.argv[4]) -div_factor = float(sys.argv[5]) -preds = [x / div_factor for x in [iaca_pred, mca_pred, osaca_pred, uica_pred]] - -start = -4.0 -end = 36.0 -npoints = 50 -offset = (end - start) / (npoints - 1) -i = 0 -for pred in preds: - print(f"@target G0.S{i+6}") - print(f"@type xy") - for j in range(npoints): - pos = start + offset * j - print("{:.6f} {}".format(pos, pred)) - - print("&") - i += 1 diff --git a/util/run_stub.sh b/util/run_stub.sh deleted file mode 100644 index 5ceea52..0000000 --- a/util/run_stub.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -while getopts "a:f:n:o:r:x:y:z:" flag; do - case "${flag}" in - a) atoms_per_unit_cell=${OPTARG};; - f) frequency=${OPTARG};; - n) timesteps=${OPTARG};; - o) output_file=${OPTARG};; - r) nruns=${OPTARG};; - x) nx=${OPTARG};; - y) ny=${OPTARG};; - z) nz=${OPTARG};; - esac -done - -EXEC="../MDBench-ICC-stub" -ATOMS_PER_UNIT_CELL="${atoms_per_unit_cell:-8}" -FREQUENCY="${frequency:-0.0}" -TIMESTEPS="${timesteps:-200}" -OUTPUT_FILE="${output_file:-run_results.txt}" -NRUNS="${nruns:-3}" -NX="${nx:-4}" -NY="${ny:-4}" -NZ="${nz:-2}" - -for timesteps in ${TIMESTEPS}; do - for atoms_per_unit_cell in ${ATOMS_PER_UNIT_CELL}; do - for nx in ${NX}; do - for ny in ${NY}; do - for nz in ${NZ}; do - best_perf= - best_output="invalid" - for nruns in ${NRUNS}; do - output=$( - ./${EXEC} -f ${FREQUENCY} -n ${timesteps} -na ${atoms_per_unit_cell} -nx ${nx} -ny ${ny} -nz ${nz} -csv | - grep -v steps | - grep -iv resize - ) - perf=$(echo $output | cut -d',' -f8) - if [ -z "$best_perf" ]; then - best_perf="$perf" - best_output="$output" - elif (( $(echo "$perf > 0.0 && $perf < $best_perf" | bc -l) )); then - best_perf="$perf" - best_output="$output" - fi - done - - echo "${best_output}" | tee -a "${OUTPUT_FILE}" - done - done - done - done -done diff --git a/util/string_to_agr.py b/util/string_to_agr.py deleted file mode 100644 index 446b871..0000000 --- a/util/string_to_agr.py +++ /dev/null @@ -1,34 +0,0 @@ -import sys -import re - -if len(sys.argv) != 3: - print("Usage: python string_to_agr.py ") - sys.exit(1) - -input_filename = sys.argv[1] -div_factor = float(sys.argv[2]) -result_list = [] - -with open(input_filename, 'r') as file: - for line in file: - numbers = re.findall(r'\d+\.\d+', line) - divided_numbers = [float(number) / div_factor for number in numbers] - result_list.append(divided_numbers) - -start = -2.5 -bar_offset = 1.0 -group_offset = 8.0 -i = 0 - -for group in result_list: - print(f"@target G0.S{i}") - print(f"@type bar") - - j = 0 - for meas in group: - pos = start + i * bar_offset + j * group_offset - print(f"{pos} {meas}") - j += 1 - - print("&") - i += 1 diff --git a/verletlist/includes/atom.h b/verletlist/includes/atom.h deleted file mode 100644 index a877f98..0000000 --- a/verletlist/includes/atom.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) NHR@FAU, University Erlangen-Nuremberg. - * All rights reserved. This file is part of MD-Bench. - * Use of this source code is governed by a LGPL-3.0 - * license that can be found in the LICENSE file. - */ -#include - -#ifndef __ATOM_H_ -#define __ATOM_H_ - -#ifdef CUDA_TARGET -# define KERNEL_NAME "CUDA" -# define computeForceLJFullNeigh computeForceLJFullNeigh_cuda -# define initialIntegrate initialIntegrate_cuda -# define finalIntegrate finalIntegrate_cuda -# define buildNeighbor buildNeighbor_cuda -# define updatePbc updatePbc_cuda -# define updateAtomsPbc updateAtomsPbc_cuda -#else -# ifdef USE_SIMD_KERNEL -# define KERNEL_NAME "SIMD" -# define computeForceLJFullNeigh computeForceLJFullNeigh_simd -# else -# define KERNEL_NAME "plain-C" -# define computeForceLJFullNeigh computeForceLJFullNeigh_plain_c -# endif -# define initialIntegrate initialIntegrate_cpu -# define finalIntegrate finalIntegrate_cpu -# define buildNeighbor buildNeighbor_cpu -# define updatePbc updatePbc_cpu -# define updateAtomsPbc updateAtomsPbc_cpu -#endif - -typedef struct { - MD_FLOAT *x, *y, *z; - MD_FLOAT *vx, *vy, *vz; - MD_FLOAT *fx, *fy, *fz; - int *border_map; - int *type; - MD_FLOAT *epsilon; - MD_FLOAT *sigma6; - MD_FLOAT *cutforcesq; - MD_FLOAT *cutneighsq; -} DeviceAtom; - -typedef struct { - int Natoms, Nlocal, Nghost, Nmax; - MD_FLOAT *x, *y, *z; - MD_FLOAT *vx, *vy, *vz; - MD_FLOAT *fx, *fy, *fz; - int *border_map; - int *type; - int ntypes; - MD_FLOAT *epsilon; - MD_FLOAT *sigma6; - MD_FLOAT *cutforcesq; - MD_FLOAT *cutneighsq; - - // DEM - MD_FLOAT *radius; - MD_FLOAT *av; - MD_FLOAT *r; - - // Device data - DeviceAtom d_atom; -} Atom; - -extern void initAtom(Atom*); -extern void createAtom(Atom*, Parameter*); -extern int readAtom(Atom*, Parameter*); -extern int readAtom_pdb(Atom*, Parameter*); -extern int readAtom_gro(Atom*, Parameter*); -extern int readAtom_dmp(Atom*, Parameter*); -extern int readAtom_in(Atom*, Parameter*); -extern void writeAtom(Atom*, Parameter*); -extern void growAtom(Atom*); - -#ifdef AOS -# define POS_DATA_LAYOUT "AoS" -# define atom_x(i) atom->x[(i) * 3 + 0] -# define atom_y(i) atom->x[(i) * 3 + 1] -# define atom_z(i) atom->x[(i) * 3 + 2] -# define atom_vx(i) atom->vx[(i) * 3 + 0] -# define atom_vy(i) atom->vx[(i) * 3 + 1] -# define atom_vz(i) atom->vx[(i) * 3 + 2] -# define atom_fx(i) atom->fx[(i) * 3 + 0] -# define atom_fy(i) atom->fx[(i) * 3 + 1] -# define atom_fz(i) atom->fx[(i) * 3 + 2] -#else -# define POS_DATA_LAYOUT "SoA" -# define atom_x(i) atom->x[i] -# define atom_y(i) atom->y[i] -# define atom_z(i) atom->z[i] -# define atom_vx(i) atom->vx[i] -# define atom_vy(i) atom->vy[i] -# define atom_vz(i) atom->vz[i] -# define atom_fx(i) atom->fx[i] -# define atom_fy(i) atom->fy[i] -# define atom_fz(i) atom->fz[i] -#endif - -#endif