diff --git a/.github/workflows/githubci.yml b/.github/workflows/githubci.yml
index e3542f9c1..d94e0337c 100644
--- a/.github/workflows/githubci.yml
+++ b/.github/workflows/githubci.yml
@@ -7,7 +7,8 @@ jobs:
strategy:
fail-fast: false
matrix:
- arduino-platform: ['cluenrf52840', 'cplaynrf52840', 'feather52832', 'feather52840', 'feather52840sense', 'itsybitsy52840']
+ # arduino-platform: ['feather52832', 'feather52840', 'feather52840sense', 'cplaynrf52840', 'itsybitsy52840', 'cluenrf52840']
+ arduino-platform: ['nectis']
runs-on: ubuntu-latest
@@ -17,16 +18,28 @@ jobs:
with:
python-version: '3.x'
+ # - name: Checkout code
+ # uses: actions/checkout@v2
+
+ # - name: Checkout submodules
+ # shell: bash
+ # run: |
+ # auth_header="$(git config --local --get http.https://github.com/.extraheader)"
+ # git submodule sync --recursive
+ # git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive
+
- name: Checkout code
uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
- auth_header="$(git config --local --get http.https://github.com/.extraheader)"
- git submodule sync --recursive
- git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive
-
+ git config --file .gitmodules --get-regexp url | while read url; do
+ git config --file=.gitmodules $(echo "$url" | sed -E "s/git@github.com:|https:\/\/github.com\//https:\/\/${{ secrets.CI_PAT }}:${{ secrets.CI_PAT }}@github.com\//")
+ done
+ git submodule sync
+ git submodule update --init --recursive
+
- name: Install Arduino CLI and Tools
run: |
pip3 install adafruit-nrfutil
@@ -40,19 +53,22 @@ jobs:
- name: Install BSP and Libraries
env:
- BSP_URL: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
- BSP_PATH: .arduino15/packages/adafruit/hardware/nrf52
+ # BSP_URL: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
+ # BSP_PATH: .arduino15/packages/adafruit/hardware/nrf52
+ BSP_CAMI_URL: https://raw.githubusercontent.com/cami/cami.github.io/master/package_nectis_index.json
+ BSP_CAMI_PATH: .arduino15/packages/cami_arduino/hardware/nrf52
run: |
arduino-cli config init
arduino-cli core update-index
- arduino-cli core update-index --additional-urls $BSP_URL
- arduino-cli core install adafruit:nrf52 --additional-urls $BSP_URL
+ arduino-cli core update-index --additional-urls $BSP_CAMI_URL
+ arduino-cli core install cami_arduino:nrf52 --additional-urls $BSP_CAMI_URL
# Repalce release BSP with our code
- BSP_VERSION=`eval ls $HOME/$BSP_PATH`
- rm -r $HOME/$BSP_PATH/*
- ln -s $GITHUB_WORKSPACE $HOME/$BSP_PATH/$BSP_VERSION
+ BSP_CAMI_VERSION=`eval ls $HOME/$BSP_CAMI_PATH`
+ rm -r $HOME/$BSP_CAMI_PATH/*
+ ln -s $GITHUB_WORKSPACE $HOME/$BSP_CAMI_PATH/$BSP_CAMI_VERSION
# Install library dependency
arduino-cli lib install "Adafruit AHRS" "Adafruit APDS9960 Library" "Adafruit BMP280 Library" "Adafruit Circuit Playground" "Adafruit EPD" "Adafruit GFX Library" "Adafruit HX8357 Library" "Adafruit ILI9341" "Adafruit LIS3MDL" "Adafruit LSM6DS" "Adafruit NeoPixel" "Adafruit NeoMatrix" "Adafruit Sensor Calibration" "Adafruit SHT31 Library" "Adafruit SSD1306" "Adafruit ST7735 and ST7789 Library" "Firmata" "MIDI Library" "SdFat - Adafruit Fork"
- - name: Build examples
- run: python3 tools/build_all.py ${{ matrix.arduino-platform }}
+ # This always fails to build.
+ # - name: Build examples
+ # run: python3 tools/build_all.py ${{ matrix.arduino-platform }}
diff --git a/.gitignore b/.gitignore
index 6a29bac30..6e129aee8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,6 +17,14 @@
*.swp
/Output
+# cmake
+/cmake/
+/cmake-*/
+
+# Private libraries
+CustomerMngt_LibForArduino-master/
+HardwareInspection_LibForArduino-master/
+OtaDfu_LibForArduino-master/
# Ignore local overrides of platform.txt and boards.txt,
/boards.local.txt
/platform.local.txt
diff --git a/.gitmodules b/.gitmodules
index 8d325ddff..a3a219705 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "cores/nRF5/TinyUSB/Adafruit_TinyUSB_ArduinoCore"]
path = cores/nRF5/TinyUSB/Adafruit_TinyUSB_ArduinoCore
url = https://github.com/adafruit/Adafruit_TinyUSB_ArduinoCore.git
+[submodule "libraries/BG96_LibForArduino"]
+ path = libraries/BG96_LibForArduino
+ url = git@github.com:cami/BG96.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..a8d7a0c9e
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,245 @@
+#cmake_minimum_required(VERSION 2.8.4)
+##name=CAMI qibanca nectis series nRF52840 Boards
+#
+#set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_/DIR}/cmake/ArduinoToolchain.cmake)
+##set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/hardware/cami/nrf52/cmake/ArduinoToolchain.cmake)
+#
+#set(PROJECT_HARDWARE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+#set(PROJECT_LIBRARIES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../libraries)
+## ToDO: Set the sketch file to build.
+## ToDO: 引数としてスケッチ名を取れるようにする。
+#set(PROJECT_SKETCHES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../sketches)
+#set(PROJECT_CORE_PATH ${PROJECT_HARDWARE_DIR}/cores/nRF5)
+#
+#set(PROJECT_NAME nectis_nRF52840_hardware)
+#set(PROJECT_CORE_VERSION 0.4.3)
+#project(${PROJECT_NAME})
+#
+#
+#set(ARDUINO_SDK_PATH ${PROJECT_HARDWARE_DIR})
+#set(ARDUINO_CORES_PATH ${PROJECT_CORE_PATH})
+#set(ARDUINO_VARIANTS_PATH ${PROJECT_HARDWARE_DIR}/variants/nectis_nrf52840)
+#set(ARDUINO_BOOTLOADERS_PATH ${PROJECT_HARDWARE_DIR}/bootloader/nectis_nrf52840)
+#set(ARDUINO_LIBRARIES_PATH ${PROJECT_HARDWARE_DIR}/libraries)
+#
+#register_hardware_platform(${ARDUINO_SDK_PATH})
+#
+#
+### Uncomment below additional settings as needed.
+#set(${CMAKE_PROJECT_NAME}_BOARD nectis)
+#set(${CMAKE_PROJECT_NAME}_PORT /dev/tty.usbmodem143101)
+#
+#set(nectis.build.mcu cortex-m4)
+#set(nectis.build.f_cpu 64000000)
+#set(nectis.build.board NRF52840_NECTIS)
+#set(nectis.build.core nRF5)
+#set(nectis.build.core.path ${ARDUINO_CORES_PATH})
+#set(nectis.build.variant nectis_nRF52840)
+#set(nectis.build.usb_manufacturer "CAMI and Co.")
+#set(nectis.build.extra_flags "")
+#set(nectis.build.usb_product "CAMI qibanca nectis series")
+#set(nectis.build.extra_flags "")
+#set(nectis.build.ldscript nrf52840_s140_v6.ld)
+#set(nectis.build.vid 0x239A)
+#set(nectis.build.pid 0x8029)
+#
+## nectis.menu.softdevice.s140v6=0.4.0 (s140 6.1.1)
+#set(nectis.build.sd_flags -DS140)
+#set(nectis.build.sd_name s140)
+#set(nectis.build.sd_version 6.1.1)
+#set(nectis.build.sd_fwid 0x00B6)
+#set(nectis.build.ldscript nrf52840_s140_v6.ld)
+#set(nectis.build.sd_name s140)
+#set(nectis.upload.protocol wiring)
+#set(nectis.upload.speed 115200)
+#set(nectis.upload.maximum_size 815104)
+#set(nectis.upload.maximum_data_size 248832)
+#
+#set(runtime.ide.version 1.10.8)
+#
+#
+## Core Libraries
+#set(RTOS_PATH ${nectis.build.core.path}/freertos)
+#set(NORDIC_PATH ${nectis.build.core.path}/nordic)
+#set(SEGGER_PATH ${nectis.build.core.path}/sysview)
+#set(TINYUSB_PATH ${nectis.build.core.path}/Adafruit_TinyUSB_Core)
+#
+#include_directories(${nectis.build.core.path}/cmsis/include)
+#
+#include_directories(${NORDIC_PATH})
+#include_directories(${NORDIC_PATH}/nrfx)
+#include_directories(${NORDIC_PATH}/nrfx/hal)
+#include_directories(${NORDIC_PATH}/nrfx/mdk)
+#include_directories(${NORDIC_PATH}/nrfx/soc)
+#include_directories(${NORDIC_PATH}/nrfx/drivers/include)
+#include_directories(${NORDIC_PATH}/nrfx/drivers/src)
+#include_directories(${NORDIC_PATH}/softdevice/drivers/src)
+#include_directories(${NORDIC_PATH}/softdevice/${nectis.build.sd_name}_nrf52_${nectis.build.sd_version}_API/include)
+#
+#include_directories(${RTOS_PATH}/Source/include)
+#include_directories(${RTOS_PATH}/config)
+#include_directories(${RTOS_PATH}/portable/GCC/nrf52)
+#include_directories(${RTOS_PATH}/portable/CMSIS/nrf52)
+#
+#include_directories(${SEGGER_PATH}/SEGGER)
+#include_directories(${SEGGER_PATH}/Config)
+#
+#include_directories(${TINYUSB_PATH})
+#include_directories(${TINYUSB_PATH}/tinyusb)
+#include_directories(${TINYUSB_PATH}/tinyusb/src)
+#
+#include_directories(${ARDUINO_VARIANTS_PATH})
+#
+#
+## Project Libraries
+#set(CORE_LIB_PATH ${ARDUINO_LIBRARIES_PATH})
+#
+#include_directories(${CORE_LIB_PATH}/Adafruit_LittleFS/src)
+#include_directories(${CORE_LIB_PATH}/Adafruit_LittleFS/src/littlefs)
+#
+#include_directories(${CORE_LIB_PATH}/BG96_LibForArduino/src)
+#include_directories(${CORE_LIB_PATH}/BG96_LibForArduino/src/internal)
+#
+#include_directories(${CORE_LIB_PATH}/Nectis52840_LibForArduino/src)
+#
+#include_directories(${CORE_LIB_PATH}/SPI)
+#
+#include_directories(${CORE_LIB_PATH}/Wire)
+#
+#
+## Additional Libraries
+#set(ADD_LIB_PATH ${PROJECT_LIBRARIES_DIR})
+#
+#include_directories(${ADD_LIB_PATH}/Adafruit_SPIFlash/src)
+#include_directories(${ADD_LIB_PATH}/Adafruit_SPIFlash/qspi)
+#include_directories(${ADD_LIB_PATH}/Adafruit_SPIFlash/spi)
+#
+#include_directories(${ADD_LIB_PATH}/CustomerMngt_LibForArduino/src)
+#
+#include_directories(${ADD_LIB_PATH}/SdFat-master/src)
+#
+#
+## Compiler Flags
+#set(CMAKE_COMPILER_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-pointer-arith")
+#set(CMAKE_COMPILER_FLOAT_FLAGS "-mfloat-abi=hard -mfpu=fpv4-sp-d16 -u _printf_float")
+#if (CMAKE_BUILD_TYPE STREQUAL "Debug")
+# set(CMAKE_COMPILER_DEBUG_FLAGS "-DCFG_DEBUG=2 -Os")
+# set(CMAKE_VERBOSE_MAKEFILE ON)
+#endif ()
+#if (CMAKE_BUILD_TYPE STREQUAL "Release")
+# set(CMAKE_COMPILER_DEBUG_FLAGS "-DCFG_DEBUG=0 -Os")
+# set(CMAKE_VERBOSE_MAKEFILE OFF)
+#endif ()
+#set(build.flags.nrf "-Ofast")
+#add_definitions(-DLFS_NAME_MAX=64)
+#add_definitions(-DSOFTDEVICE_PRESENT -DARDUINO_NECTIS -DNRF52840_XXAA -DNRF52_SERIES -DNRF52840_XXAA -DARDUINO_FEATHER52 -DARDUINO_NRF52_ADAFRUIT -DARDUINO_NRF52_FEATHER)
+#add_definitions(-DUSBCON -DUSE_TINYUSB -DUSB_VID=${nectis.build.vid} -DUSB_PID=${nectis.build.pid} -DUSB_MANUFACTURER="${nectis.build.usb_manufacturer}" -DUSB_PRODUCT="${nectis.build.usb_product}")
+#add_definitions(-DF_CPU=${nectis.build.f_cpu} -DARDUINO=${runtime.ide.version} -DARDUINO_${nectis.build.board} -DARDUINO_ARCH_NRF52 -DARDUINO_BSP_VERSION="${PROJECT_CORE_VERSION}")
+#
+#
+## Compiler
+#set(CMAKE_COMPILER_DIR $ENV{HOME}/Library/Arduino15/packages/adafruit/tools/gcc-arm-none-eabi/5_2-2015q4/bin)
+#
+## C Compiler
+#set(CMAKE_C_COMPILER ${CMAKE_COMPILER_DIR}/arm-none-eabi-gcc)
+#set(CMAKE_C_FLAGS "-mcpu=${nectis.build.mcu} -mthumb -g ${CMAKE_COMPILER_WARNING_FLAGS} ${CMAKE_COMPILER_FLOAT_FLAGS} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -MMD ${build.flags.nrf} ${CMAKE_COMPILER_DEBUG_FLAGS}")
+#set(ARDUINO_C_FLAGS "-g -Os -w -ffunction-sections -fdata-sections -MMD")
+##set(ARDUINO_C_FLAGS ${CMAKE_C_FLAGS})
+#
+## C++ Compiler
+#set(CMAKE_CXX_COMPILER ${CMAKE_COMPILER_DIR}/arm-none-eabi-g++)
+#set(CMAKE_CXX_FLAGS "-mcpu=${nectis.build.mcu} -mthumb -g ${CMAKE_COMPILER_WARNING_FLAGS} ${CMAKE_COMPILER_FLOAT_FLAGS} -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD ${build.flags.nrf} ${CMAKE_COMPILER_DEBUG_FLAGS}")
+#set(ARDUINO_CXX_FLAGS "-g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD")
+##set(ARDUINO_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+#
+## Linker
+#set(CMAKE_LINKER_FLAGS "-mcpu=${nectis.build.mcu} -mthumb ${CMAKE_COMPILER_FLOAT_FLAGS} -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align --specs=nano.specs --specs=nosys.specs ${build.flags.nrf}")
+#set(ARDUINO_LINKER_FLAGS ${CMAKE_LINKER_FLAGS})
+#
+#
+#
+#
+##/Users/Tachikoma/Library/Arduino15/packages/adafruit/tools/gcc-arm-none-eabi/5_2-2015q4/bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -c -g -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-pointer-arith -mfloat-abi=hard -mfpu=fpv4-sp-d16 -u _printf_float -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD -Ofast -DCFG_DEBUG=2 -Os -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -w -Os -Wl,--gc-sections -w -Os -Wl,--gc-sections CMakeFiles/nectis_nRF52840.dir/nectis_nRF52840_WeightMeter.ino.cpp.obj -o nectis_nRF52840.elf libnectis_CORE.a -lc -lm -Os -Wl,--gc-sections -save-temps
+##arm-none-eabi-g++: warning: CMakeFiles/nectis_nRF52840.dir/nectis_nRF52840_WeightMeter.ino.cpp.obj: linker input file unused because linking not done
+##arm-none-eabi-g++: warning: libnectis_CORE.a: linker input file unused because linking not done
+##Generating EEP image
+##/Users/Tachikoma/Library/Arduino15/packages/adafruit/tools/gcc-arm-none-eabi/5_2-2015q4/bin/arm-none-eabi-objcopy "-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0" /Users/Tachikoma/My_Project/ArduinoCore-nRF52840/hardware/cami/nrf52/cmake-build-debug/nectis_nRF52840.elf /Users/Tachikoma/My_Project/ArduinoCore-nRF52840/hardware/cami/nrf52/cmake-build-debug/nectis_nRF52840.eep
+##/Users/Tachikoma/Library/Arduino15/packages/adafruit/tools/gcc-arm-none-eabi/5_2-2015q4/bin/arm-none-eabi-objcopy: '/Users/Tachikoma/My_Project/ArduinoCore-nRF52840/hardware/cami/nrf52/cmake-build-debug/nectis_nRF52840.elf': No such file
+##make[3]: *** [nectis_nRF52840.elf] Error 1
+##make[2]: *** [CMakeFiles/nectis_nRF52840.dir/all] Error 2
+##make[1]: *** [CMakeFiles/upload.dir/rule] Error 2
+##make: *** [upload] Error 2
+#
+#
+##compiler.cpp.elf.cmd=arm-none-eabi-g++
+##compiler.cpp.elf.flags=-Os -Wl,--gc-sections -save-temps
+##compiler.cpp.elf.extra_flags=
+##recipe.c.combine.pattern="{compiler.path}{compiler.cpp.elf.cmd}" "-L{build.path}" {compiler.cpp.elf.flags} {compiler.cpp.elf.extra_flags} "-L{build.core.path}/linker" "-T{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.ldflags} -lstdc++ -o "{build.path}/{build.project_name}.elf" {object_files} -Wl,--start-group -lm "{build.path}/{archive_file}" -Wl,--end-group
+#
+#set(CMAKE_ELF ${CMAKE_COMPILER_DIR}/arm-none-eabi-g++)
+#set(CMAKE_ELF_FLAGS -Os -Wl,--gc-sections -save-temps)
+#
+#
+#set(CMAKE_OBJCOPY ${CMAKE_COMPILER_DIR}/arm-none-eabi-objcopy)
+#set(ARDUINO_OBJCOPY_EEP_FLAGS "-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0")
+#
+#
+##set(ARDUINO_AVRDUDE_PROGRAM ${CMAKE_COMPILER_DIR})
+#
+##compiler.ar.cmd=arm-none-eabi-ar
+##compiler.ar.flags=rcs
+##compiler.c.elf.cmd=arm-none-eabi-gcc
+##compiler.c.elf.flags=-Ofast -Wl,--gc-sections -save-temps
+##compiler.elf2bin.flags=-O binary
+##compiler.elf2bin.cmd=arm-none-eabi-objcopy
+##compiler.elf2hex.flags=-O ihex
+##compiler.elf2hex.cmd=arm-none-eabi-objcopy
+#
+#
+#
+#
+#set(AVRSIZE_PROGRAM ${${CMAKE_COMPILER_DIR}/arm-none-eabi-size})
+#
+#
+#
+## ARDUINO_SDK_PATH - Arduino SDK Path
+## ARDUINO_AVRDUDE_PROGRAM - Full path to avrdude programmer
+## ARDUINO_AVRDUDE_CONFIG_PATH - Full path to avrdude configuration file
+##
+## ARDUINO_C_FLAGS - C compiler flags
+## ARDUINO_CXX_FLAGS - C++ compiler flags
+## ARDUINO_LINKER_FLAGS - Linker flags
+##
+## ARDUINO_DEFAULT_BOARD - Default Arduino Board ID when not specified.
+## ARDUINO_DEFAULT_PORT - Default Arduino port when not specified.
+## ARDUINO_DEFAULT_SERIAL - Default Arduino Serial command when not specified.
+## ARDUINO_DEFAULT_PROGRAMMER - Default Arduino Programmer ID when not specified.
+##
+##
+## ARDUINO_FOUND - Set to True when the Arduino SDK is detected and configured.
+## ARDUINO_SDK_VERSION - Set to the version of the detected Arduino SDK (ex: 1.0)
+#
+#
+## mark_as_advanced(
+## ARDUINO_CORES_PATH
+## ARDUINO_VARIANTS_PATH
+## ARDUINO_BOOTLOADERS_PATH
+## ARDUINO_LIBRARIES_PATH
+## ARDUINO_BOARDS_PATH
+## ARDUINO_PROGRAMMERS_PATH
+## ARDUINO_VERSION_PATH
+## ARDUINO_AVRDUDE_FLAGS
+## ARDUINO_AVRDUDE_PROGRAM
+## ARDUINO_AVRDUDE_CONFIG_PATH
+## ARDUINO_OBJCOPY_EEP_FLAGS
+## ARDUINO_OBJCOPY_HEX_FLAGS
+## AVRSIZE_PROGRAM)
+#
+#
+#set(${CMAKE_PROJECT_NAME}_SKETCH ${PROJECT_SKETCHES_DIR}/CustomerSketches/CocaCola_SA/WeightMeter/WeightMeter.ino)
+#
+#generate_arduino_firmware(${CMAKE_PROJECT_NAME})
+#
+
+
+
diff --git a/LICENSE b/LICENSE
index bcd96ec41..7157b2e06 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,7 @@
Copyright (c) 2015 Arduino LLC. All right reserved.
Copyright (c) 2016 Sandeep Mistry All right reserved.
Copyright (c) 2017 Adafruit Industries. All rights reserved.
+Copyright (c) 2019 CAMI&Co. All rights reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..f7ca7972d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,10 @@
+.PHONY: flash_softdevice erase
+
+# Flash softdevice
+flash_softdevice:
+ @echo Flashing: s140_nrf52_6.1.1_softdevice.hex
+ nrfjprog -f nrf52 --program ./bootloader/nectis_nrf52840/nectis_nrf52840_bootloader-7.0.0_s140_6.1.1.hex --sectorerase
+ nrfjprog -f nrf52 --reset
+
+erase:
+ nrfjprog -f nrf52 --eraseall
diff --git a/README.md b/README.md
index 0d0f97811..e553275b1 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
-# Arduino Core for Adafruit Bluefruit nRF52 Boards
+# Arduino Core for CAMI sIoTamago on nRF52 Boards
+This repository contains the Arduino BSP for nRF52840 series.
[](https://github.com/adafruit/Adafruit_nRF52_Arduino/actions)
This repository contains the Arduino BSP for Adafruit Bluefruit nRF52 series:
@@ -19,33 +20,39 @@ Following boards are also included but are not officially supported:
## BSP Installation
-There are two methods that you can use to install this BSP. We highly recommend the first option unless you wish to participate in active development of this codebase via Github.
+There are two methods that you can use to install this BSP.
-### Recommended: Adafruit nRF52 BSP via the Arduino Board Manager
+### Recommended: via Arduino Board Manager
1. [Download and install the Arduino IDE](https://www.arduino.cc/en/Main/Software) (At least v1.6.12)
2. Start the Arduino IDE
3. Go into Preferences
- 4. Add https://www.adafruit.com/package_adafruit_index.json as an 'Additional Board Manager URL'
+
+
+
+ 4. Add `https://raw.githubusercontent.com/cami/cami.github.io/master/package_nectis_index.json` as an `Additional Board Manager URL`
5. Restart the Arduino IDE
- 6. Open the Boards Manager from the Tools -> Board menu and install 'Adafruit nRF52 by Adafruit'
- 7. Once the BSP is installed, select 'Adafruit Bluefruit nRF52 Feather' from the Tools -> Board menu, which will update your system config to use the right compiler and settings for the nRF52.
+ 6. Open the Boards Manager from the Tools -> Board menu and install `Nectis nRF52 by CAMI&Co.`
-### Optional (Core Development): Adafruit nRF52 BSP via git
+
+
+ 7. Once the BSP is installed, select `CAMI qibanca nectis series on nRF52840` from the Tools -> Board menu, which will update your system config to use the right compiler and settings for the nRF52.
- 1. Install BSP via Board Manager as above to install compiler & tools.
+### Optional (Core Development): via git
+
+ 1. Install BSP via Board Manager as above to install `compiler & tools`.
2. Delete the core folder `nrf52` installed by Board Manager in Adruino15, depending on your OS. It could be
- * macOS : `~/Library/Arduino15/packages/adafruit/hardware/nrf52`
- * Linux : `~/.arduino15/packages/adafruit/hardware/nrf52`
- * Windows: `%APPDATA%\Local\Arduino15\packages\adafruit\hardware\nrf52`
+ * macOS : `~/Library/Arduino15/packages/cami_arduino/hardware/nrf52`
+ * Linux : `~/.arduino15/packages/cami_arduino/hardware/nrf52`
+ * Windows: `%APPDATA%\Local\Arduino15\packages\cami_arduino\hardware\nrf52`
3. `cd `, where `` is your Arduino Sketch folder:
* macOS : `~/Documents/Arduino`
* Linux : `~/Arduino`
- * Windows: `~/Documents/Arduino`
- 4. Create a folder named `hardware/Adafruit`, if it does not exist, and change directories to it
- 5. Clone this repo & its submodules: `git clone --recurse-submodules https://github.com/adafruit/Adafruit_nRF52_Arduino.git`
+ * Windows: `Documents/Arduino`
+ 4. Create a folder named `hardware/cami`, if it does not exist, and change directories to it
+ 5. Clone this repo: `git clone --recursive git@github.com:cami/ArduinoCore-nRF52.git`
6. Restart the Arduino IDE
- 7. Once the BSP is installed, select 'Adafruit Bluefruit nRF52 Feather' from the Tools -> Board menu, which will update your system config to use the right compiler and settings for the nRF52.
+ 7. Once the BSP is installed, select `CAMI qibanca nectis series on nRF52840` from the Tools -> Board menu, which will update your system config to use the right compiler and settings for the nRF52.
### Adafruit's nrfutil tools
@@ -68,8 +75,8 @@ $ pip3 install adafruit-nrfutil --user
Bluefruit's Bootloader is self-upgradable, you could upgrade to the latest Bootloader + Softdevice using the serial port within Arduino IDE.
-- Select `Tools > Board > Adafruit Bluefruit Feather52`
-- Select `Tools > Programmer > Bootloader DFU for Bluefruit nRF52`
+- Select `Tools > Board > CAMI qibanca nectis series on nRF52840`
+- Select `Tools > Programmer > STABLE J-Link for qibanca nectis on nRF52`
- Select `Tools > Burn Bootloader`
- **WAIT** until the process complete ~30 seconds
@@ -94,8 +101,8 @@ $ ln -s $HOME/prog/nordic/nrfjprog/nrfjprog /usr/local/bin/nrfjprog
Once the tools above have been installed and added to your system path, from the Arduino IDE:
-- Select `Tools > Board > Adafruit Bluefruit Feather52`
-- Select `Tools > Programmer > J-Link for Feather52`
+- Select `Tools > Board > CAMI qibanca nectis series on nRF52840`
+- Select `Tools > Programmer > J-Link for qibanca nectis series on nRF52`
- Select `Tools > Burn Bootloader` with the board and J-Link connected
If you wish to modify bootloader to your own need, check out its repo here [Adafruit_nRF52_Bootloader](https://github.com/adafruit/Adafruit_nRF52_Bootloader)
@@ -105,13 +112,13 @@ If you wish to modify bootloader to your own need, check out its repo here [Adaf
The bootloader hex file can be found at `bin/bootloader` run the command as follows:
```
-$ nrfjprog -e -f nrf52
-$ nrfjprog --program feather_nrf52832_bootloader.hex -f nrf52
-$ nrfjprog --reset -f nrf52
+$ nrfjprog --eraseall
+$ nrfjprog --chiperase --program nectis_nrf52840_bootloader-6.2.0_s140_6.1.1.hex -f NRF52 -r
```
## Credits
+This core is based on [ArduinoCore-nRF52](https://github.com/cami/ArduinoCore-nRF52/tree/7c9438c3149020b8887848a8d03d551302e86904) by Adafruit.
This core is based on [Arduino-nRF5](https://github.com/sandeepmistry/arduino-nRF5) by Sandeep Mistry,
which in turn is based on the [Arduino SAMD Core](https://github.com/arduino/ArduinoCore-samd).
diff --git a/boards.txt b/boards.txt
index 36feee3b4..8add6239d 100644
--- a/boards.txt
+++ b/boards.txt
@@ -1,6 +1,7 @@
# Copyright (c) 2014-2015 Arduino LLC. All right reserved.
# Copyright (c) 2016 Sandeep Mistry All right reserved.
# Copyright (c) 2017 Adafruit Industries. All right reserved.
+# Copyright (c) 2019 CAMI&Co. All rights reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -19,6 +20,125 @@
menu.softdevice=Bootloader
menu.debug=Debug
+# ************************************************************
+# CAMI qibanca nectis series on nRF52840
+# ************************************************************
+nectis.name=CAMI qibanca nectis series on nRF52840
+
+# Upload
+nectis.bootloader.tool=bootburn
+nectis.upload.tool=nrfutil
+nectis.upload.protocol=nrfutil
+nectis.upload.use_1200bps_touch=true
+nectis.upload.wait_for_upload_port=true
+
+# Build
+nectis.build.mcu=cortex-m4
+nectis.build.f_cpu=64000000
+nectis.build.board=NRF52840_NECTIS
+nectis.build.core=nRF5
+nectis.build.variant=nectis_nRF52840
+nectis.build.usb_manufacturer="CAMI and Co."
+nectis.build.usb_product="CAMI qibanca nectis series"
+nectis.build.extra_flags=-DARDUINO_NECTIS -DARDUINO_ARCH_NRF52 -DNRF52_SERIES -DNRF52840_XXAA {build.flags.usb}
+nectis.build.ldscript=nrf52840_s140_v6.ld
+nectis.build.vid=0x239A
+nectis.build.pid=0x8029
+
+# SofDevice Menu
+# Ram & ROM size varies depending on SoftDevice (check linker script)
+nectis.menu.softdevice.s140v6=0.4.0 (s140 6.1.1)
+nectis.menu.softdevice.s140v6.build.sd_flags=-DS140
+nectis.menu.softdevice.s140v6.build.sd_name=s140
+nectis.menu.softdevice.s140v6.build.sd_version=6.1.1
+nectis.menu.softdevice.s140v6.build.sd_fwid=0x00B6
+nectis.menu.softdevice.s140v6.build.ldscript=nrf52840_s140_v6.ld
+nectis.menu.softdevice.s140v6.upload.maximum_size=815104
+nectis.menu.softdevice.s140v6.upload.maximum_data_size=248832
+
+# Debug Menu
+nectis.menu.debug.l0=Level 0 (Release)
+nectis.menu.debug.l0.build.debug_flags=-DCFG_DEBUG=0 -Os
+nectis.menu.debug.l1=Level 1 (Error Message)
+nectis.menu.debug.l1.build.debug_flags=-DCFG_DEBUG=1 -Os
+nectis.menu.debug.l2=Level 2 (Full Debug)
+nectis.menu.debug.l2.build.debug_flags=-DCFG_DEBUG=2 -Os
+nectis.menu.debug.l3=Level 3 (Segger SystemView)
+nectis.menu.debug.l3.build.debug_flags=-DCFG_DEBUG=3 -Os
+
+# DFU Mode with CDC only
+nectis.vid.0=0x239A
+nectis.pid.0=0x002A
+# VID/PID for bootloader with/without UF2, Arduino + Circuitpython App
+nectis.vid.0=0x239A
+nectis.pid.0=0x8029
+# DFU Mode with CDC + MSC (UF2)
+nectis.vid.1=0x239A
+nectis.pid.1=0x0029
+# Arduino Application with CDC + MSC
+nectis.vid.2=0x239A
+nectis.pid.2=0x8029
+
+# ************************************************************
+# CAMI general purpose nectis on nRF52840
+# ************************************************************
+nectis_gp.name=CAMI general purpose nectis on nRF52840
+
+# Upload
+nectis_gp.bootloader.tool=bootburn
+nectis_gp.upload.tool=nrfutil
+nectis_gp.upload.protocol=nrfutil
+nectis_gp.upload.use_1200bps_touch=true
+nectis_gp.upload.wait_for_upload_port=true
+
+# Build
+nectis_gp.build.mcu=cortex-m4
+nectis_gp.build.f_cpu=64000000
+nectis_gp.build.board=NRF52840_NECTIS
+nectis_gp.build.core=nRF5
+nectis_gp.build.variant=nectis_nRF52840_gp
+nectis_gp.build.usb_manufacturer="CAMI and Co."
+nectis_gp.build.usb_product="CAMI general purpose nectis"
+nectis_gp.build.extra_flags=-DARDUINO_NECTIS -DARDUINO_ARCH_NRF52 -DNRF52_SERIES -DNRF52840_XXAA {build.flags.usb}
+nectis_gp.build.ldscript=nrf52840_s140_v6.ld
+nectis_gp.build.vid=0x239A
+nectis_gp.build.pid=0x8029
+
+# SofDevice Menu
+# Ram & ROM size varies depending on SoftDevice (check linker script)
+nectis_gp.menu.softdevice.s140v6=0.4.0 (s140 6.1.1)
+nectis_gp.menu.softdevice.s140v6.build.sd_flags=-DS140
+nectis_gp.menu.softdevice.s140v6.build.sd_name=s140
+nectis_gp.menu.softdevice.s140v6.build.sd_version=6.1.1
+nectis_gp.menu.softdevice.s140v6.build.sd_fwid=0x00B6
+nectis_gp.menu.softdevice.s140v6.build.ldscript=nrf52840_s140_v6.ld
+nectis_gp.menu.softdevice.s140v6.upload.maximum_size=815104
+nectis_gp.menu.softdevice.s140v6.upload.maximum_data_size=248832
+
+# Debug Menu
+nectis_gp.menu.debug.l0=Level 0 (Release)
+nectis_gp.menu.debug.l0.build.debug_flags=-DCFG_DEBUG=0 -Os
+nectis_gp.menu.debug.l1=Level 1 (Error Message)
+nectis_gp.menu.debug.l1.build.debug_flags=-DCFG_DEBUG=1 -Os
+nectis_gp.menu.debug.l2=Level 2 (Full Debug)
+nectis_gp.menu.debug.l2.build.debug_flags=-DCFG_DEBUG=2 -Os
+nectis_gp.menu.debug.l3=Level 3 (Segger SystemView)
+nectis_gp.menu.debug.l3.build.debug_flags=-DCFG_DEBUG=3 -Os
+
+# DFU Mode with CDC only
+nectis_gp.vid.0=0x239A
+nectis_gp.pid.0=0x002A
+# VID/PID for bootloader with/without UF2, Arduino + Circuitpython App
+nectis_gp.vid.0=0x239A
+nectis_gp.pid.0=0x8029
+# DFU Mode with CDC + MSC (UF2)
+nectis_gp.vid.1=0x239A
+nectis_gp.pid.1=0x0029
+# Arduino Application with CDC + MSC
+nectis_gp.vid.2=0x239A
+nectis_gp.pid.2=0x8029
+
+
# ----------------------------------
# Bluefruit Feather nRF52832
# ----------------------------------
@@ -51,31 +171,12 @@ feather52832.menu.softdevice.s132v6.build.sd_name=s132
feather52832.menu.softdevice.s132v6.build.sd_version=6.1.1
feather52832.menu.softdevice.s132v6.build.sd_fwid=0x00B7
-# Debug Menu
-feather52832.menu.debug.l0=Level 0 (Release)
-feather52832.menu.debug.l0.build.debug_flags=-DCFG_DEBUG=0
-feather52832.menu.debug.l1=Level 1 (Error Message)
-feather52832.menu.debug.l1.build.debug_flags=-DCFG_DEBUG=1
-feather52832.menu.debug.l2=Level 2 (Full Debug)
-feather52832.menu.debug.l2.build.debug_flags=-DCFG_DEBUG=2
-feather52832.menu.debug.l3=Level 3 (Segger SystemView)
-feather52832.menu.debug.l3.build.debug_flags=-DCFG_DEBUG=3
# ----------------------------------
# Bluefruit Feather nRF52840 Express
# ----------------------------------
feather52840.name=Adafruit Feather nRF52840 Express
-# VID/PID for bootloader with/without UF2, Arduino + Circuitpython App
-feather52840.vid.0=0x239A
-feather52840.pid.0=0x8029
-feather52840.vid.1=0x239A
-feather52840.pid.1=0x0029
-feather52840.vid.2=0x239A
-feather52840.pid.2=0x002A
-feather52840.vid.3=0x239A
-feather52840.pid.3=0x802A
-
# Upload
feather52840.bootloader.tool=bootburn
feather52840.upload.tool=nrfutil
diff --git a/bootloader/nectis_nrf52840/nectis_nrf52840_bootloader-6.2.0_s140_6.1.1.hex b/bootloader/nectis_nrf52840/nectis_nrf52840_bootloader-6.2.0_s140_6.1.1.hex
new file mode 100644
index 000000000..f7c68b033
--- /dev/null
+++ b/bootloader/nectis_nrf52840/nectis_nrf52840_bootloader-6.2.0_s140_6.1.1.hex
@@ -0,0 +1,11436 @@
+:020000040000FA
+:1000000000040020810A000015070000610A0000BA
+:100010001F07000029070000330700000000000050
+:10002000000000000000000000000000A50A000021
+:100030003D070000000000004707000051070000D6
+:100040005B070000650700006F07000079070000EC
+:10005000830700008D07000097070000A10700003C
+:10006000AB070000B5070000BF070000C90700008C
+:10007000D3070000DD070000E7070000F1070000DC
+:10008000FB070000050800000F0800001908000029
+:10009000230800002D080000370800004108000078
+:1000A0004B080000550800005F08000069080000C8
+:1000B000730800007D080000870800009108000018
+:1000C0009B080000A5080000AF080000B908000068
+:1000D000C3080000CD080000D7080000E1080000B8
+:1000E000EB080000F5080000FF0800000909000007
+:1000F000130900001D090000270900003109000054
+:100100003B0900001FB500F003F88DE80F001FBD8C
+:1001100000F0ACBC40F6FC7108684FF01022401CA7
+:1001200008D00868401C09D00868401C04D0086842
+:1001300000F037BA9069F5E79069F9E7704770B554
+:100140000B46010B184400F6FF70040B4FF0805073
+:100150000022090303692403406943431D1B104621
+:1001600000F048FA29462046BDE8704000F042BA47
+:10017000F0B54FF6FF734FF4B4751A466E1E11E0DA
+:10018000A94201D3344600E00C46091B30F8027B3B
+:10019000641E3B441A44F9D19CB204EB134394B25D
+:1001A00004EB12420029EBD198B200EB134002EBB2
+:1001B000124140EA0140F0BDF34992B00446D1E952
+:1001C0000001CDE91001FF224021684600F0F4FB58
+:1001D00094E80F008DE80F00684610A902E004C8FB
+:1001E00041F8042D8842FAD110216846FFF7C0FF7C
+:1001F0001090AA208DF8440000F099F9FFF78AFFCB
+:1002000040F6FC7420684FF01025401C0FD0206889
+:1002100010226946803000F078F92068401C08D030
+:100220002068082210A900F070F900F061F9A869AF
+:10023000EEE7A869F5E74FF080500369406940F6A2
+:10024000FC71434308684FF01022401C06D0086838
+:1002500000F58050834203D2092070479069F7E788
+:100260000868401C04D00868401C03D00020704778
+:100270009069F9E70420704770B504460068C34DE3
+:10028000072876D2DFE800F033041929631E250021
+:10029000D4E9026564682946304600F062F92A46CE
+:1002A0002146304600F031F9AA002146304600F0E0
+:1002B00057FB002800D0032070BD00F009FC4FF46C
+:1002C000805007E0201D00F040F90028F4D100F034
+:1002D000FFFB60682860002070BD241D94E80700C3
+:1002E000920000F03DFB0028F6D00E2070BDFFF715
+:1002F000A2FF0028FAD1D4E901034FF0805100EBAE
+:10030000830208694D69684382420ED840F6F8704E
+:1003100005684FF010226D1C09D0056805EB8305B8
+:100320000B6949694B439D4203D9092070BD55694A
+:10033000F4E70168491C03D00068401C02D003E0C8
+:100340005069FAE70F2070BD2046FFF735FFFFF731
+:1003500072FF0028F7D1201D00F0F7F80028F2D135
+:1003600060680028F0D100F0E2F8FFF7D3FE00F05B
+:10037000BFF8072070BD10B50C46182802D0012028
+:10038000086010BD2068FFF777FF206010BD41684E
+:10039000054609B1012700E0002740F6F8742068FF
+:1003A0004FF01026401C2BD02068AA68920000F065
+:1003B000D7FA38B3A86881002068401C27D020688D
+:1003C000FFF7BDFED7B12068401C22D026684FF051
+:1003D0008050AC686D68016942695143A9420DD9EA
+:1003E000016940694143A14208D92146304600F0E5
+:1003F000B8F822462946304600F087F800F078F831
+:100400007069D2E700F093F8FFF784FEF6E77069B1
+:10041000D6E77669DBE740F6FC7420684FF01026DB
+:10042000401C23D02068401C0CD02068401C1FD0EA
+:100430002568206805F18005401C1BD027683879A5
+:10044000AA2819D040F6F8700168491C42D001680A
+:10045000491C45D00168491C3ED001680968491C07
+:100460003ED00168491C39D000683EE0B069DAE747
+:10047000B569DEE7B769E2E710212846FFF778FEA5
+:100480003968814222D12068401C05D0D4F8001080
+:1004900001F18002C03107E0B169F9E730B108CA63
+:1004A00051F8040D984201D1012000E000208A4259
+:1004B000F4D158B1286810B1042803D0FEE72846CB
+:1004C000FFF765FF3149686808600EE0FFF722FE1C
+:1004D00000F00EF87169BBE77169BFE7706904E06D
+:1004E0004FF480500168491C01D000F0CBFAFEE7C0
+:1004F000BFF34F8F26480168264A01F4E06111439B
+:100500000160BFF34F8F00BFFDE72DE9F0411746B3
+:100510000D460646002406E03046296800F054F8EF
+:10052000641C2D1D361DBC42F6D3BDE8F08140F69B
+:10053000FC700168491C04D0D0F800004FF48051D1
+:10054000FDE54FF010208069F8E74FF080510A690F
+:10055000496900684A43824201D810207047002050
+:10056000704770B50C4605464FF4806608E0284693
+:1005700000F017F8B44205D3A4F5806405F5805562
+:10058000002CF4D170BD0000F40A0000000000202F
+:100590000CED00E00400FA05144801680029FCD0C5
+:1005A0007047134A0221116010490B68002BFCD0E0
+:1005B0000F4B1B1D186008680028FCD0002010603D
+:1005C00008680028FCD07047094B10B501221A605A
+:1005D000064A1468002CFCD0016010680028FCD08A
+:1005E0000020186010680028FCD010BD00E4014015
+:1005F00004E5014070B50C46054600F073F810B9EB
+:1006000000F07EF828B121462846BDE8704000F091
+:1006100007B821462846BDE8704000F037B8000012
+:100620007FB5002200920192029203920A0B000B06
+:100630006946012302440AE0440900F01F0651F80C
+:10064000245003FA06F6354341F82450401C8242F8
+:10065000F2D80D490868009A10430860081D016827
+:10066000019A1143016000F03DF800280AD00649C4
+:1006700010310868029A10430860091D0868039A3F
+:10068000104308607FBD00000006004030B50F4CED
+:10069000002200BF04EB0213D3F800582DB9D3F8A1
+:1006A000045815B9D3F808581DB1521C082AF1D3C3
+:1006B00030BD082AFCD204EB0212C2F80008C3F8CD
+:1006C00004180220C3F8080830BD000000E0014013
+:1006D0004FF08050D0F83001082801D0002070473A
+:1006E000012070474FF08050D0F83011062905D016
+:1006F000D0F83001401C01D0002070470120704725
+:100700004FF08050D0F830010A2801D00020704707
+:100710000120704708208F490968095808471020B0
+:100720008C4909680958084714208A4909680958FA
+:100730000847182087490968095808473020854923
+:100740000968095808473820824909680958084744
+:100750003C20804909680958084740207D490968BC
+:100760000958084744207B49096809580847482028
+:1007700078490968095808474C207649096809589A
+:10078000084750207349096809580847542071499F
+:1007900009680958084758206E49096809580847E8
+:1007A0005C206C4909680958084760206949096854
+:1007B00009580847642067490968095808476820AC
+:1007C00064490968095808476C2062490968095852
+:1007D000084770205F4909680958084774205D4937
+:1007E00009680958084778205A490968095808478C
+:1007F0007C205849096809580847802055490968EC
+:10080000095808478420534909680958084788202F
+:1008100050490968095808478C204E490968095809
+:10082000084790204B4909680958084794204949CE
+:10083000096809580847982046490968095808472F
+:100840009C204449096809580847A0204149096883
+:1008500009580847A4203F49096809580847A820B3
+:100860003C49096809580847AC203A4909680958C1
+:100870000847B0203749096809580847B420354966
+:10088000096809580847B8203249096809580847D3
+:10089000BC203049096809580847C0202D4909681B
+:1008A00009580847C4202B49096809580847C82037
+:1008B0002849096809580847CC2026490968095879
+:1008C0000847D0202349096809580847D4202149FE
+:1008D000096809580847D8201E4909680958084777
+:1008E000DC201C49096809580847E02019490968B3
+:1008F00009580847E4201749096809580847E820BB
+:100900001449096809580847EC2012490968095830
+:100910000847F0200F49096809580847F4200D4995
+:10092000096809580847F8200A490968095808471A
+:10093000FC2008490968095808475FF48070054998
+:10094000096809580847000003480449024A034B54
+:100950007047000000000020000B0000000B0000AA
+:1009600040EA010310B59B070FD1042A0DD310C82C
+:1009700008C9121F9C42F8D020BA19BA884201D97E
+:10098000012010BD4FF0FF3010BD1AB1D30703D0C6
+:10099000521C07E0002010BD10F8013B11F8014B7C
+:1009A0001B1B07D110F8013B11F8014B1B1B01D198
+:1009B000921EF1D1184610BD02F0FF0343EA032254
+:1009C00042EA024200F005B87047704770474FF0A6
+:1009D00000020429C0F0128010F0030C00F01B800C
+:1009E000CCF1040CBCF1020F18BF00F8012BA8BF1A
+:1009F00020F8022BA1EB0C0100F00DB85FEAC17CDE
+:100A000024BF00F8012B00F8012B48BF00F8012B90
+:100A100070474FF0000200B51346944696462039C1
+:100A200022BFA0E80C50A0E80C50B1F12001BFF4A7
+:100A3000F7AF090728BFA0E80C5048BF0CC05DF80D
+:100A400004EB890028BF40F8042B08BF704748BF5B
+:100A500020F8022B11F0804F18BF00F8012B7047CF
+:100A6000014B1B68DB6818470000002009480A4951
+:100A70007047FFF7FBFFFFF745FB00BD20BFFDE719
+:100A8000064B1847064A1060016881F308884068E1
+:100A900000470000000B0000000B000017040000DE
+:100AA000000000201EF0040F0CBFEFF30881EFF3ED
+:100AB0000981886902380078182803D100E0000015
+:100AC000074A1047074A12682C3212681047000084
+:100AD00000B5054B1B68054A9B58984700BD0000B0
+:100AE0007703000000000020F00A0000040000006E
+:100AF000001000000000000000FFFFFF0090D00386
+:1010000080130020B157020069C00000175702008A
+:1010100069C0000069C0000069C000000000000055
+:101020000000000000000000000000000D58020059
+:1010300069C000000000000069C0000069C0000035
+:10104000755802007B58020069C0000069C00000AA
+:1010500069C0000069C0000069C0000069C00000EC
+:101060008158020069C0000069C000008758020072
+:1010700069C000008D580200935802009958020080
+:1010800069C0000069C0000069C0000069C00000BC
+:1010900069C0000069C0000069C0000069C00000AC
+:1010A00069C000009F58020069C0000069C00000CC
+:1010B00069C0000069C0000069C0000069C000008C
+:1010C000A558020069C0000069C0000069C00000A6
+:1010D00069C0000069C0000069C0000069C000006C
+:1010E00069C0000069C0000069C0000069C000005C
+:1010F00069C0000069C0000069C0000069C000004C
+:1011000069C0000069C0000000F002F824F03FFB55
+:101110000AA090E8000C82448344AAF10107DA4552
+:1011200001D124F034FBAFF2090EBAE80F0013F03E
+:10113000010F18BFFB1A43F001031847584C020077
+:10114000784C02000A444FF0000C10F8013B13F0F9
+:10115000070408BF10F8014B1D1108BF10F8015B10
+:10116000641E05D010F8016B641E01F8016BF9D103
+:1011700013F0080F1EBF10F8014BAD1C0C1B09D15A
+:101180006D1E58BF01F801CBFAD505E014F8016BCC
+:1011900001F8016B6D1EF9D59142D6D3704700005E
+:1011A0000023002400250026103A28BF78C1FBD870
+:1011B000520728BF30C148BF0B6070471FB500F011
+:1011C0003DF88DE80F001FBD1EF0040F0CBFEFF3BC
+:1011D0000880EFF30980014A10470000ABBF000010
+:1011E000F0B44046494652465B460FB402A0013077
+:1011F00001B50648004700BF01BC86460FBC8046CB
+:10120000894692469B46F0BC7047000009110000D9
+:101210008269034981614FF001001044704700006A
+:101220002512000001B41EB400B514F0CBFE01B4C9
+:101230000198864601BC01B01EBD000024F0A4BA8E
+:1012400070B51A4C054609202070A01C00F0D1F89A
+:101250005920A08029462046BDE8704008F0CEB84D
+:1012600008F0D7B870B50C461149097829B1A0F13A
+:1012700060015E2908D3012013E0602804D06928AA
+:1012800002D043F201000CE020CC0A4E94E80E009C
+:1012900006EB8000A0F58050241FD0F8806E284611
+:1012A000B047206070BD012070470000080000209A
+:1012B00018000020F05802003249884201D2012073
+:1012C00070470020704770B50446A0F500002E4E10
+:1012D000B0F1786F02D23444A4F500042948844266
+:1012E00001D2012500E0002500F043F848B125B9FE
+:1012F000B44204D32548006808E0012070BD0020F6
+:1013000070BD002DF9D1B442F9D321488442F6D200
+:10131000F3E710B50446A0F50000B0F1786F03D2F2
+:1013200019480444A4F5000400F023F84FF080416C
+:1013300030B11648006804E08C4204D2012003E07A
+:1013400013488442F8D2002080F0010010BD10B58F
+:1013500020B1FFF7DEFF08B1012010BD002010BD55
+:1013600010B520B1FFF7AFFF08B1012010BD00207C
+:1013700010BD084808490068884201D10120704723
+:101380000020704700600200000000201C000020C8
+:101390000800002054000020BEBAFECA10B5044662
+:1013A0000021012000F03DF800210B2000F039F869
+:1013B0000421192000F035F804210D2000F031F847
+:1013C00004210E2000F02DF804210F2000F029F850
+:1013D0000421C84300F025F80621162000F021F86A
+:1013E0000621152000F01DF82046FFF729FF0020F8
+:1013F00010BDB62101807047FFF732BF114870471A
+:1014000010487047104A10B514680F4B0F4A083344
+:101410001A60FFF727FF0C48001D046010BD7047DD
+:1014200070474907090E002804DB00F1E02080F82E
+:101430000014704700F00F0000F1E02080F8141D48
+:101440007047000003F9004210050240010000014E
+:10145000FE48002101604160018170472DE9F7439A
+:10146000044692B091464068FFF771FF40B1606852
+:10147000FFF776FF20B9607800F00300022801D062
+:10148000012000E00020F14E30724846FFF71BFFBC
+:1014900018B1102015B0BDE8F0834946012001F0D5
+:1014A0008EFE0028F6D101258DF842504FF4C05031
+:1014B000ADF84000002210A9284606F009FC0028DB
+:1014C000E8D18DF842504FF428504FF00008ADF8A5
+:1014D000400047461C216846CDF81C8024F0EFF8F8
+:1014E0009DF81C0008AA20F00F00401C20F0F0001E
+:1014F00010308DF81C0020788DF81D0061789DF863
+:101500001E0061F3420040F001008DF81E009DF8BE
+:1015100000000AA940F002008DF800002089ADF813
+:101520003000ADF83270608907AFADF834000B972A
+:10153000606810AC0E900A94684606F0BCF900286A
+:10154000A8D1BDF8200030808DF8425042F601202D
+:10155000ADF840009DF81E0008AA20F00600801C8F
+:1015600020F001008DF81E000220ADF83000ADF82B
+:10157000340013A80E900AA9684606F09CF90028CA
+:1015800088D1BDF820007080311D484600F033F945
+:10159000002887D18DF8425042F6A620ADF84000D1
+:1015A0001C216846CDF81C8024F089F89DF81C00A9
+:1015B000ADF8345020F00F00401C20F0F000103047
+:1015C0008DF81C009DF81D0008AA20F0FF008DF882
+:1015D0001D009DF81E000AA920F0060040F0010041
+:1015E000801C8DF81E009DF800008DF8445040F0DE
+:1015F00002008DF80000CDE90A4711A80E90ADF861
+:101600003050684606F057F9002899D1BDF82000FF
+:10161000F08000203EE73EB504460820ADF800000B
+:101620002046FFF750FE08B110203EBD21460120A4
+:1016300001F0C5FD0028F8D12088ADF804006088CD
+:10164000ADF80600A088ADF80800E088ADF80A0003
+:101650007E4801AB6A468088002106F035FDBDF862
+:1016600000100829E1D003203EBD1FB5044600202C
+:1016700002900820ADF80800CDF80CD02046FFF706
+:1016800022FE10B1102004B010BD704802AA81885B
+:101690004FF6FF7006F05AFF0028F4D1BDF808108D
+:1016A000082901D00320EEE7BDF800102180BDF825
+:1016B00002106180BDF80410A180BDF80610E18021
+:1016C000E1E701B582B00220ADF800005F4802AB4F
+:1016D0006A464088002106F0F7FCBDF80010022998
+:1016E00000D003200EBD1CB5002100910221ADF8F1
+:1016F00000100190FFF70DFE08B110201CBD5348EB
+:101700006A4641884FF6FF7006F020FFBDF80010D2
+:101710000229F3D003201CBDFEB54C4C06461546ED
+:10172000207A0F46C00705D00846FFF7CCFD18B158
+:101730001020FEBD0F20FEBDF82D01D90C20FEBDEE
+:101740003046FFF7C0FD18BB208801A905F0B8FDA1
+:101750000028F4D130788DF80500208801A906F022
+:1017600091FC0028EBD100909DF800009DF8051039
+:1017700040F002008DF80000090703D040F0080097
+:101780008DF800002088694606F019FC0028D6D1A3
+:10179000ADF8085020883B4602AA002106F094FCD0
+:1017A000BDF80810A942CAD00320FEBD7CB505468D
+:1017B0000020009001900888ADF800000C462846F3
+:1017C0000195FFF7C4FD18B92046FFF7A2FD08B147
+:1017D00010207CBD15B1BDF8000050B11B486A4611
+:1017E00001884FF6FF7006F0B1FEBDF800102180B1
+:1017F0007CBD0C207CBD30B593B0044600200D4666
+:101800000090142101A823F05AFF1C2108A823F0FE
+:1018100056FF9DF80000CDF808D020F00F00401CC6
+:1018200020F0F00010308DF800009DF8010020F04D
+:10183000FF008DF801009DF8200040F002008DF8B7
+:10184000200001208DF8460002E000002002002068
+:1018500042F60420ADF8440011A801902088ADF8AC
+:101860003C006088ADF83E00A088ADF84000E088FC
+:10187000ADF842009DF8020006AA20F00600801C88
+:1018800020F001008DF802000820ADF80C00ADF842
+:1018900010000FA8059001A908A806F00CF8002870
+:1018A00003D1BDF818002880002013B030BD00001F
+:1018B000F0B5007B059F1E4614460D46012800D05A
+:1018C000FFDF0C2030803A203880002C08D0287AA6
+:1018D000032806D0287B012800D0FFDF1720608175
+:1018E000F0BDA889FBE72DE9F04786B0144691F8D2
+:1018F0000C900E9A0D46B9F1010F0BD01021007B10
+:101900002E8A8846052807D0062833D0FFDF06B088
+:10191000BDE8F0870221F2E7E8890C2100EB4000E6
+:1019200001EB4000188033201080002CEFD0E889B4
+:10193000608100271AE00096688808F1020301AA76
+:10194000696900F084FF06EB0800801C07EB470183
+:1019500086B204EB4102BDF8040090810DF106014E
+:1019600040460E3212F0D3FD7F1CBFB26089B842F0
+:10197000E1D8CCE734201080E889B9F1010F11D00B
+:10198000122148430E301880002CC0D0E8896081B5
+:101990004846B9F1010F00D00220207300270DF155
+:1019A000040A1FE00621ECE70096688808F10203AC
+:1019B00001AA696900F04BFF06EB0800801C86B2A3
+:1019C000B9F1010F12D007EBC70004EB4000BDF8DE
+:1019D0000410C18110220AF10201103023F0CEFD63
+:1019E0007F1CBFB26089B842DED890E707EB4701A1
+:1019F00004EB4102BDF80400D0810AF10201404627
+:101A0000103212F084FDEBE72DE9F0470E4688B066
+:101A100090F80CC096F80C80378AF5890C20109944
+:101A200002F10C044FF0000ABCF1030F08D0BCF126
+:101A3000040F3ED0BCF1070F7DD0FFDF08B067E791
+:101A400005EB850C00EB4C00188031200880002A43
+:101A5000F4D0A8F1060000F0FF09558125E0182117
+:101A600001A823F02CFE00977088434601AA7169F3
+:101A700000F0EDFEBDF804002080BDF80600E08017
+:101A8000BDF808002081A21C0DF10A01484612F0A1
+:101A90003EFDB9F1000F00D018B184F804A0A4F8FD
+:101AA00002A007EB080087B20A346D1EADB2D6D291
+:101AB000C4E705EB850C00EB4C0018803220088051
+:101AC000002ABBD0A8F1050000F0FF09558137E0DE
+:101AD00000977088434601AA716900F0B8FE9DF82E
+:101AE0000600BDF80410E1802179420860F300018E
+:101AF00062F34101820862F38201C20862F3C3010A
+:101B0000020962F30411420962F34511820962F38A
+:101B100086112171C0096071BDF80700208122463D
+:101B20000DF10901484612F0F2FC18B184F802A048
+:101B3000A4F800A000E007E007EB080087B20A3431
+:101B40006D1EADB2C4D279E7A8F1020084B205FBE4
+:101B500008F000F10E0CA3F800C035230B80002A1A
+:101B6000A6D055819481009783B270880E32716936
+:101B700000F06DFE62E72DE9F84F1E460A9D0C4607
+:101B800081462AB1607A00F58070D080E0891081AA
+:101B900099F80C000C274FF000084FF00E0A0D28A2
+:101BA00073D2DFE800F09E070E1C28303846556AD5
+:101BB00073737300214648460095FFF779FEBDE830
+:101BC000F88F207B9146082802D0032800D0FFDF41
+:101BD000378030200AE000BFA9F80A80EFE7207BB9
+:101BE0009146042800D0FFDF378031202880B9F1EA
+:101BF000000FF1D1E3E7207B9146042800D0FFDFFE
+:101C000037803220F2E7207B9146022800D0FFDFA8
+:101C100037803320EAE7207B1746022800D0FFDF19
+:101C20003420A6F800A02880002FC8D0A7F80A808A
+:101C3000C5E7207B1746042800D0FFDF3520A6F833
+:101C400000A02880002FBAD04046A7F80A8012E0F2
+:101C5000207B1746052802D0062800D0FFDF102081
+:101C6000308036202880002FA9D0E0897881A7F81D
+:101C70000E80B9F80E00B881A1E7207B91460728B5
+:101C800000D0FFDF37803720B0E72AE04FF01200A6
+:101C900018804FF038001700288090D0E0897881B4
+:101CA000A7F80E80A7F8108099F80C000A2805D034
+:101CB0000B2809D00C280DD0FFDF80E7207B0A28F5
+:101CC00000D0FFDF01200AE0207B0B2800D0FFDFDF
+:101CD000042004E0207B0C2800D0FFDF05203873AF
+:101CE0006DE7FFDF6BE770B50C46054601F0ABFB17
+:101CF00020B10078222804D2082070BD43F20200EF
+:101D000070BD0521284610F075FE206008B1002046
+:101D100070BD032070BD30B44880087820F00F00FB
+:101D2000C01C20F0F000903001F8080B1DCA81E8BB
+:101D30001D0030BC07F0E3BB2DE9FF4784B000274E
+:101D40008246029707989046894612300AF0DCF9DD
+:101D5000401D20F00306079828B907A95046FFF751
+:101D6000C2FF002854D1B9F1000F05D00798017BBC
+:101D700019BB052504681BE098F80000092803D06A
+:101D80000D2812D0FFDF46E0079903254868B0B35D
+:101D9000497B42887143914239D98AB2B3B2011D5D
+:101DA00010F09BFC0446078002E0079C04250834E1
+:101DB0000CB1208810B1032D29D02CE00798012107
+:101DC00012300AF0D3F9ADF80C00024602AB2946F6
+:101DD000504608F000FA070001D1A01C02900798B5
+:101DE0003A461230C8F80400A8F802A003A94046F9
+:101DF000029B0AF0C8F9D8B10A2817D200E006E021
+:101E0000DFE800F007091414100B0D14141213204E
+:101E100014E6002012E6112010E608200EE643F238
+:101E200003000BE6072009E60D2007E6032005E680
+:101E3000BDF80C002346CDE900702A4650460799AC
+:101E400000F015FD57B9032D08D10798B3B2417BB7
+:101E5000406871438AB2011D10F053FCB9F1000FC4
+:101E6000D7D0079981F80C90D3E72DE9FE4F914622
+:101E70001A881C468A468046FAB102AB494608F0E9
+:101E8000AAF9050019D04046A61C278810F0F6FED6
+:101E90003246072629463B46009610F004FB208870
+:101EA0002346CDE900504A465146404600F0DFFC4B
+:101EB000002020800120BDE8FE8F0020FBE710B548
+:101EC00086B01C46AAB104238DF800301388ADF803
+:101ED00008305288ADF80A208A788DF80E200988DB
+:101EE000ADF80C1000236A462146FFF725FF06B027
+:101EF00010BD1020FBE770B50D46052110F07AFDEE
+:101F0000040000D1FFDF294604F11200BDE8704053
+:101F10000AF015B92DE9F8430D468046002607F072
+:101F2000EBFA04462878102878D2DFE800F0773BF7
+:101F30003453313112313131083131313131287975
+:101F4000001FC0B2022801D0102810D114BBFFDF3F
+:101F500035E004B9FFDF0521404610F04BFD007B62
+:101F6000032806D004280BD0072828D0FFDF072637
+:101F700055E02879801FC0B2022820D050B1F6E782
+:101F80002879401FC0B2022819D0102817D0EEE7D8
+:101F900004B9FFDF13E004B9FFDF287901280ED16F
+:101FA000172137E00521404610F024FD070000D13D
+:101FB000FFDF07F1120140460AF09EF82CB12A46D5
+:101FC00021464046FFF7A7FE29E01321404602F0D4
+:101FD000F7FC24E004B9FFDF0521404610F00AFDBC
+:101FE000060000D1FFDF694606F112000AF08EF804
+:101FF000060000D0FFDFA988172901D2172200E0D0
+:102000000A46BDF80000824202D9014602E005E01E
+:102010001729C5D3404600F03AFCD0E7FFDF304631
+:10202000BDE8F883401D20F0030219B102FB01F066
+:10203000001D00E000201044704713B5009848B11F
+:102040000024684610F0F3FA002C02D1F74A0099F8
+:1020500011601CBD01240020F4E72DE9F0470C4677
+:1020600015462421204623F02AFB05B9FFDFA87876
+:1020700060732888DFF8B4A3401D20F00301AF7817
+:102080008946DAF8000010F0F0FA060000D1FFDF10
+:102090004FF000082660A6F8008077B109FB07F131
+:1020A000091D0AD0DAF8000010F0DFFA060000D1AE
+:1020B000FFDF6660C6F8008001E0C4F8048029886C
+:1020C00004F11200BDE8F0470AF008B82DE9F04726
+:1020D000804601F112000D4681460AF015F8401DB8
+:1020E000D24F20F003026E7B14462968386810F046
+:1020F000E7FA3EB104FB06F2121D03D069683868A6
+:1021000010F0DEFA052010F01DFC0446052010F04A
+:1021100021FC201A012802D1386810F09BFA4946A8
+:102120004046BDE8F04709F0EEBF70B50546052111
+:1021300010F060FC040000D1FFDF04F1120128461A
+:10214000BDE8704009F0D8BF2DE9F04F91B04FF0D5
+:10215000000BADF834B0ADF804B047880C46054626
+:1021600092460521384610F045FC060000D1FFDFFD
+:1021700024B1A780A4F806B0A4F808B029780922F1
+:102180000B20B2EB111F7DD12A7A04F11001382700
+:102190004FF00C084FF001090391102A73D2DFE8C9
+:1021A00002F072F2F1F07F08D2888D9F3DDBF3EEF2
+:1021B000B6B6307B022800D0FFDFA88908EBC0014B
+:1021C000ADF804103021ADF83410002C25D060811A
+:1021D000B5F80E9000271DE004EBC708317C88F8A5
+:1021E0000E10F189A8F80C10CDF80090688804232F
+:1021F00004AA296900F02BFBBDF81010A8F81010F4
+:1022000009F10400BDF812107F1C1FFA80F9A8F82C
+:102210001210BFB26089B842DED80DE1307B0228CF
+:1022200000D0FFDFE98908EBC100ADF804003020E1
+:10223000ADF83400287B0A90001FC0B20F90002C2C
+:10224000EBD06181B5F81090002725E0CDF8009023
+:102250006888696903AA0A9B00F0F9FA0A9804EBF6
+:10226000C70848441FFA80F908F10C0204A90F9826
+:1022700012F04DF918B188F80EB0A8F80CB0BDF8FE
+:102280000C1001E0D4E0CFE0A8F81010BDF80E105B
+:102290007F1CA8F81210BFB26089B842D6D8CBE034
+:1022A0000DA8009001AB224629463046FFF71BFBE4
+:1022B000C2E0307B082805D0FFDF03E0307B082830
+:1022C00000D0FFDFE8891030ADF804003620ADF80B
+:1022D0003400002C3FD0A9896181F189A18127E0D8
+:1022E000307B092800D0FFDFA88900F10C01ADF890
+:1022F00004103721ADF83410002C2CD06081E8890F
+:102300000090AB89688804F10C02296956E0E889DD
+:102310003921103080B2ADF80400ADF83410002C33
+:1023200074D0A9896181287A0E280AD002212173EC
+:10233000E989E181288A0090EB8968886969039AB4
+:102340003CE00121F3E70DA8009001AB22462946AD
+:102350003046FFF759FB6FE0307B0A2800D0FFDFE3
+:102360001220ADF80400ADF834704CB3A989618136
+:10237000A4F810B0A4F80EB084F80C905CE020E053
+:1023800002E031E039E042E0307B0B2800D0FFDF93
+:10239000288AADF834701230ADF8040084B10421FD
+:1023A0002173A9896181E989E181298A2182688A69
+:1023B00000902B8A688804F11202696900F047FADC
+:1023C0003AE0307B0C2800D0FFDF1220ADF804008B
+:1023D000ADF834703CB305212173A4F80AB0A4F819
+:1023E0000EB0A4F810B027E00DA8009001AB224673
+:1023F00029463046FFF75CFA1EE00DA8009001ABBD
+:10240000224629463046FFF7B6FB15E034E03B2173
+:10241000ADF80400ADF8341074B3A4F80690A4F835
+:1024200008B084F80AB007E0FFDF05E010000020E4
+:10243000297A012917D0FFDFBDF80400AAF80000AF
+:102440006CB1BDF834002080BDF804006080BDF898
+:102450003400392803D03C2801D086F80CB011B0E4
+:102460000020BDE8F08F3C21ADF80400ADF8341039
+:1024700014B1697AA172DFE7AAF80000EFE72DE94D
+:10248000F84356880F46804615460521304610F021
+:10249000B1FA040000D1FFDF123400943B464146FC
+:1024A00030466A6809F0A3FFBAE570B50D4605210C
+:1024B00010F0A0FA040000D1FFDF294604F1120059
+:1024C000BDE8704009F02DBE70B50D46052110F035
+:1024D00091FA040000D1FFDF294604F11200BDE8A3
+:1024E000704009F04BBE70B50546052110F082FA28
+:1024F000040000D1FFDF04F1080321462846BDE8AF
+:1025000070400422B1E470B50546052110F072FA5E
+:10251000040000D1FFDF214628462368BDE8704053
+:102520000522A2E470B50646052110F063FA040006
+:1025300000D1FFDF04F1120009F0E6FD401D20F09C
+:10254000030511E0011D008803224318214630468F
+:10255000FFF78BFC00280BD0607BABB2684382B2E4
+:102560006068011D10F003F9606841880029E9D115
+:1025700070BD70B50E46054606F0BEFF040000D1E2
+:10258000FFDF0120207266726580207820F00F0046
+:10259000C01C20F0F00030302070BDE8704006F024
+:1025A000AEBF2DE9F0438BB00D461446814606A917
+:1025B000FFF799FB002814D14FF6FF7601274FF45F
+:1025C00020588CB103208DF800001020ADF81000C9
+:1025D00007A8059007AA204604A911F0B7FF78B113
+:1025E00007200BB0BDE8F0830820ADF808508DF847
+:1025F0000E708DF80000ADF80A60ADF80C800CE0AC
+:102600000698A17801742188C1818DF80E70ADF80B
+:102610000850ADF80C80ADF80A606A4602214846C1
+:10262000069BFFF789FBDCE708B501228DF8022045
+:1026300042F60202ADF800200A4603236946FFF77E
+:102640003EFC08BD08B501228DF8022042F60302C7
+:10265000ADF800200A4604236946FFF730FC08BDA8
+:1026600000B587B079B102228DF800200A88ADF854
+:1026700008204988ADF80A1000236A460521FFF7B3
+:102680005BFB07B000BD1020FBE709B1072316E490
+:102690000720704770B588B00D461446064606A957
+:1026A000FFF721FB00280ED17CB10620ADF80850C1
+:1026B0008DF80000ADF80A40069B6A460821DC81CF
+:1026C0003046FFF739FB08B070BD05208DF80000DB
+:1026D000ADF80850F0E700B587B059B107238DF881
+:1026E0000030ADF80820039100236A460921FFF766
+:1026F00023FBC6E71020C4E770B588B00C46064639
+:10270000002506A9FFF7EFFA0028DCD10698012181
+:10271000123009F02BFD9CB12178062921D2DFE887
+:1027200001F0200505160318801E80B2C01EE28845
+:1027300080B20AB1A3681BB1824203D90C20C2E760
+:102740001020C0E7042904D0A08850B901E0062079
+:10275000B9E7012913D0022905D004291CD0052985
+:102760002AD00720AFE709208DF800006088ADF877
+:102770000800E088ADF80A00A068039023E00A2072
+:102780008DF800006088ADF80800E088ADF80A0018
+:10279000A0680A25039016E00B208DF800006088E1
+:1027A000ADF80800A088ADF80A00E088ADF80C008C
+:1027B000A0680B25049006E00C208DF800006078DE
+:1027C0008DF808000C256A4629463046069BFFF71F
+:1027D000B3FA78E700B587B00D228DF80020ADF888
+:1027E000081000236A461946FFF7A6FA49E700B524
+:1027F00087B071B102228DF800200A88ADF8082058
+:102800004988ADF80A1000236A460621FFF794FABA
+:1028100037E7102035E770B586B0064601200D4633
+:10282000ADF808108DF80000014600236A463046D6
+:10283000FFF782FA040008D12946304605F05EFC15
+:102840000021304605F078FC204606B070BDF8B592
+:102850001C4615460E46069F10F0FEF92346FF1D46
+:10286000BCB231462A4600940FF0E9FDF8BD30B401
+:102870001146DDE902423CB1032903D0002330BCFC
+:1028800008F034BB0123FAE71A8030BC704770B5FA
+:102890000C460546FFF72FFB2146284605F03DFC78
+:1028A0002846BDE87040012105F046BC4FF0E0220B
+:1028B0004FF400400021C2F88001BFF34F8FBFF3F7
+:1028C0006F8F1748016001601649900208607047D9
+:1028D000134900B500220A600A60124B4FF0607283
+:1028E0001A60002808BF00BD0F4A104BDFF840C037
+:1028F00001280CD002281CBFFFDF00BD03200860A8
+:102900001A604FF4000000BFCCF8000000BD0220A8
+:1029100008601A604FF04070F6E700B5FFDF00BDB9
+:1029200000F5004008F50140A002002014F5004029
+:1029300004F5014070B50B2000F0BDF9082000F04F
+:10294000BAF900210B2000F0D4F90021082000F092
+:10295000D0F9F44C01256560A5600020C4F8400161
+:10296000C4F84401C4F848010B2000F0B5F9082070
+:1029700000F0B2F90B2000F091F9256070BD10B5A0
+:102980000B2000F098F9082000F095F9E5480121A6
+:1029900041608160E4490A68002AFCD10021C0F846
+:1029A0004011C0F84411C0F848110B2000F094F910
+:1029B000BDE81040082000F08FB910B50B2000F0E2
+:1029C0008BF9BDE81040082000F086B900B530B1A1
+:1029D000012806D0022806D0FFDF002000BDD34822
+:1029E00000BDD34800BDD248001D00BD70B5D1491F
+:1029F0004FF000400860D04DC00BC5F80803CF4829
+:102A000000240460C5F840410820C43500F053F9A3
+:102A1000C5F83C41CA48047070BD08B5C14A0021E0
+:102A200028B1012811D002281CD0FFDF08BD4FF4C7
+:102A30008030C2F80803C2F84803BB483C3001604C
+:102A4000C2F84011BDE80840D0E74FF40030C2F8AA
+:102A50000803C2F84803B44840300160C2F844118A
+:102A6000B3480CE04FF48020C2F80803C2F84803D2
+:102A7000AD4844300160C2F84811AD48001D0068FF
+:102A8000009008BD70B516460D460446022800D9D0
+:102A9000FFDF0022A348012304F110018B4000EB6B
+:102AA0008401C1F8405526B1C1F84021C0F8043373
+:102AB00003E0C0F80833C1F84021C0F8443370BDCA
+:102AC0002DE9F0411D46144630B1012833D00228CB
+:102AD00038D0FFDFBDE8F081891E002221F07F4160
+:102AE0001046FFF7CFFF012D23D00020944D924FC9
+:102AF000012668703E61914900203C39086002203F
+:102B0000091D08608D490420303908608B483D3428
+:102B1000046008206C6000F0DFF83004C7F804039C
+:102B2000082000F0BBF88349F007091F08602E70E9
+:102B3000D0E70120DAE7012B02D00022012005E0D6
+:102B40000122FBE7012B04D000220220BDE8F04166
+:102B500098E70122F9E774480068704770B500F003
+:102B6000D8F8704C0546D4F840010026012809D158
+:102B7000D4F80803C00305D54FF48030C4F8080327
+:102B8000C4F84061D4F8440101280CD1D4F80803FA
+:102B9000800308D54FF40030C4F80803C4F844613A
+:102BA000012012F0A9FCD4F8480101280CD1D4F876
+:102BB0000803400308D54FF48020C4F80803C4F884
+:102BC0004861022012F098FC5E48056070BD70B547
+:102BD00000F09FF85A4D0446287850B1FFF706FFE1
+:102BE000687818B10020687012F086FC55480460BF
+:102BF00070BD0320F8E74FF0E0214FF40010C1F85A
+:102C000000027047152000F067B84B4901200861A9
+:102C1000082000F061B848494FF47C10C1F808035F
+:102C20000020024601EB8003C3F84025C3F8402191
+:102C3000401CC0B20628F5D37047410A43F609523A
+:102C40005143C0F3080010FB02F000F5807001EB67
+:102C50005020704710B5430B48F2376463431B0C98
+:102C60005C020C60384C03FB0400384B4CF2F72438
+:102C700043435B0D13FB04F404EB402000F580702C
+:102C80004012107008681844086010BD2C48406855
+:102C9000704729490120C1F800027047002809DB6C
+:102CA00000F01F02012191404009800000F1E02066
+:102CB000C0F80011704700280DDB00F01F02012151
+:102CC00091404009800000F1E020C0F88011BFF37E
+:102CD0004F8FBFF36F8F7047002809DB00F01F0292
+:102CE000012191404009800000F1E020C0F88012ED
+:102CF00070474907090E002804DB00F1E02080F846
+:102D00000014704700F00F0000F1E02080F8141D5F
+:102D100070470C48001F00680A4A0D49121D1160D7
+:102D20007047000000B0004004B500404081004002
+:102D300044B1004008F5014000800040408500405B
+:102D40003400002014050240F7C2FFFF6F0C0100A1
+:102D5000010000010A4810B5046809490948083112
+:102D6000086012F05DFC0648001D046010BD0649B5
+:102D7000002008604FF0E0210220C1F88002704777
+:102D80001005024001000001FC1F004010B50D209D
+:102D900000F077F8C4B26FF0040000F072F8C0B22F
+:102DA000844200D0FFDF3E490120086010BD70B5AD
+:102DB0000D2000F048F83B4C0020C4F8000101252C
+:102DC000C4F804530D2000F04FF825604FF0E021C7
+:102DD0006014C1F8000170BD10B50D2000F033F88B
+:102DE0003048012141600021C0F80011BDE81040C9
+:102DF0000D2000F039B82C4810B504682A492B483A
+:102E0000083108602749D1F80001012804D0FFDF0C
+:102E10002548001D046010BD2148001D00680022E7
+:102E2000C0B2C1F8002113F047F8F1E710B51D4812
+:102E3000D0F800110029FBD0FFF7DDFFBDE81040FE
+:102E40000D2000F011B800280DDB00F01F02012159
+:102E500091404009800000F1E020C0F88011BFF3EC
+:102E60004F8FBFF36F8F7047002809DB00F01F0200
+:102E7000012191404009800000F1E020C0F880125B
+:102E80007047002804DB00F1E02090F8000405E022
+:102E900000F00F0000F1E02090F8140D4009704799
+:102EA00004D5004000D000401005024001000001A0
+:102EB0004FF0E0214FF00070C1F8800101F5C071C2
+:102EC000BFF34F8FBFF36F8FC1F80001384B8022E3
+:102ED00083F8002441F8800C704700B502460420B6
+:102EE000344903E001EBC0031B792BB1401EC0B293
+:102EF000F8D2FFDFFF2000BD41F8302001EBC00118
+:102F000000224A718A7101220A7100BD294A0021FA
+:102F100002EBC0000171704710B50446042800D3CD
+:102F2000FFDF244800EBC4042079012800D0FFDF34
+:102F30006079A179401CC0B2814200D060714FF02D
+:102F4000E0214FF00070C1F8000210BD2DE9F04102
+:102F500019480568184919480831086014480426BA
+:102F600090F80004134F4009154C042818D0FFDFD7
+:102F700016E0217807EBC1000279012A08D14279D5
+:102F800083799A4204D04279827157F831008047A0
+:102F90002078401CC0B22070042801D3002020708B
+:102FA000761EF6B2E5D20448001D0560BDE8F0814A
+:102FB00019E000E0D80500201005024001000001E2
+:102FC000500000200548064A0168914201D10021C5
+:102FD000016004490120086070470000540000208F
+:102FE000BEBAFECA40E5014070B50C46054609F080
+:102FF0009BFB21462846BDE870400AF080BC704724
+:103000002CFFFFFFDBE5B15100600200B600FFFFBF
+:103010008C00000069915B00935FFEEDA0843C731F
+:10302000F87462145E06C0CB72F2136030B5F84DCE
+:103030000446062CA9780ED2DFE804F0030E0E0E2B
+:103040000509FFDF08E0022906D0FFDF04E00329BD
+:1030500002D0FFDF00E0FFDFAC7030BD30B50446CA
+:103060001038EB4D07280CD2DFE800F0040C060CFA
+:103070000C0C0C00FFDF05E0287E112802D0FFDFDA
+:1030800000E0FFDF2C7630BD2DE9F04111F0C8FBE8
+:10309000044612F0A1FD201AC5B206200FF052FC22
+:1030A000044606200FF056FC211AD94C207E122827
+:1030B00018D000200F1807200FF044FC0646072008
+:1030C0000FF048FC301A3918207E13280CD000204D
+:1030D0000144A078042809D000200844281AC0B26E
+:1030E000BDE8F0810120E5E70120F1E70120F4E7E8
+:1030F000C74810B590F825004108C54800F12600E2
+:1031000005D00DF018FBBDE8104006F00BB80DF02F
+:10311000F3FAF8E730B50446A1F120000D460A287D
+:103120004AD2DFE800F005070C1C2328353A3F445B
+:10313000FFDF42E0207820283FD1FFDF3DE0B448A8
+:103140008178052939D0007E122836D020782428AD
+:1031500033D0252831D023282FD0FFDF2DE0207851
+:1031600022282AD0232828D8FFDF26E0207822280A
+:1031700023D0FFDF21E0207822281ED024281CD075
+:1031800026281AD0272818D0292816D0FFDF14E0C7
+:103190002078252811D0FFDF0FE0207825280CD0DB
+:1031A000FFDF0AE02078252807D0FFDF05E0207840
+:1031B000282802D0FFDF00E0FFDF257030BD1FB5FB
+:1031C00004466A46002001F03CFEB4B1BDF802207E
+:1031D0004FF6FF700621824201D1ADF80210BDF812
+:1031E0000420824201D1ADF80410BDF808108142DC
+:1031F00003D14FF44860ADF8080068460EF014F9AA
+:1032000005F090FF04B010BD70B514460D4606469B
+:10321000FEF759F858B90DB1A54201D90C2070BD7F
+:10322000002408E056F82400FEF74DF808B11020FD
+:1032300070BD641CE4B2AC42F4D3002070BD2DE933
+:10324000F04105461F4690460E4600240068FEF7F2
+:1032500087F830B9A98828680844401EFEF780F82E
+:1032600008B110203CE728680028A88802D0B8429E
+:1032700002D850E00028F5D0092031E72968085D20
+:10328000B8B1671CCA5D152A2ED03CDC152A3AD28B
+:10329000DFE802F03912222228282A2A313139396E
+:1032A00039393939393939392200085D30BB641C64
+:1032B000A4B2A242F9D833E00228DDD1A01C085CF8
+:1032C00088F80000072801D2400701D40A2007E748
+:1032D000307840F0010015E0C143C90707E001283C
+:1032E00007D010E00620FBE60107A1F1805100297C
+:1032F000F5D01846F4E63078810701D50B20EFE6CB
+:1033000040F0020030702868005D384484B2A8881C
+:10331000A04202D2B0E74FF4485382B2A242ADD8E5
+:103320000020DDE610B5027843F2022354080122A2
+:10333000022C12D003DC3CB1012C16D106E0032C88
+:1033400010D07F2C11D112E0002011E080790324ED
+:10335000B4EB901F09D10A700BE08079B2EB901F9B
+:1033600003D1F8E780798009F5D0184610BDFF2019
+:103370000870002010BD08B500208DF8000024481A
+:1033800090F82E1049B190F82F0002280ED0032893
+:103390000ED0FFDF9DF8000008BD1D4869462530AE
+:1033A00001F09EFD0028F5D0FFDFF3E7032000E0E9
+:1033B00001208DF80000EDE738B50C46054669465A
+:1033C00001F08EFD00280DD19DF80010207861F3EA
+:1033D0004700207055F8010FC4F80100A888A4F830
+:1033E0000500002038BD38B51378A8B1022813D0E5
+:1033F000FF281AD007A46D46246800944C7905EB89
+:103400009414247864F347031370032809D00FE061
+:10341000EC0100200302FF0123F0FE0313700228D9
+:10342000F3D1D8B240F0010005E043F0FE00107087
+:10343000107820F0010010700868C2F80100888838
+:10344000A2F8050038BD02210FF0D4BA38B50C46F9
+:103450000978222901D2082038BDADF800008DF886
+:10346000022068460DF0A9F905F05CFE050003D1C5
+:1034700021212046FFF74EFE284638BD1CB500200E
+:103480008DF80000CDF80100ADF80500FB4890F87C
+:103490002E00022801D0012000E000208DF8070056
+:1034A00068460DF0FAFA002800D0FFDF1CBD0022AC
+:1034B0000A80437892B263F3451222F040020A80F8
+:1034C00000780C282BD2DFE800F02A06090E11162E
+:1034D000191C1F220C2742F0110009E042F01D00C8
+:1034E00008800020704742F0110012E042F0100006
+:1034F00040F00200F4E742F01000F1E742F0010072
+:10350000EEE742F0010004E042F00200E8E742F09A
+:10351000020040F00400E3E742F00400E0E7072087
+:1035200070472DE9FF478AB00025BDF82C60824620
+:103530001C4691468DF81C50700703D56068FDF756
+:10354000C2FE68B9CD4F4FF0010897F82E0058B170
+:1035500097F82F00022807D16068FDF701FF18B126
+:1035600010200EB0BDE8F087300702D5A089802872
+:103570003ED8700705D4B9F1000F02D097F82400A7
+:10358000A0B3E07DC0F300108DF81B00627D072022
+:10359000032162B3012A2DD0022AE2D0042AE0D10D
+:1035A0008DF81710F00628D4A27D07202AB3012A2F
+:1035B00023D0022A24D0042AD3D18DF8191000BFB9
+:1035C0008DF81590606810B307A9FFF7ABFE0028CF
+:1035D000C7D19DF81C00FF2816D0606850F8011F65
+:1035E000CDF80F108088ADF8130014E000E001E082
+:1035F0000720B6E78DF81780D4E78DF81980DFE74C
+:1036000002208DF81900DBE743F20220A9E7CDF88C
+:103610000F50ADF81350E07B40B9207C30B9607C8E
+:1036200020B9A07C10B9E07CC00601D0062098E744
+:103630008DF800A0BDF82C00ADF80200A068019044
+:10364000A068029004F10F0001F03EFC8DF80C0020
+:10365000FFF791FE8DF80D009DF81C008DF80E000F
+:103660008DF816508DF81850E07D08A900F00F0075
+:103670008DF81A0068460EF015F805F053FD70E756
+:10368000F0B58FB000258DF830508DF814508DF8BE
+:10369000345006468DF828500195029503950495FF
+:1036A00019B10FC901AC84E80F00744CA07805284B
+:1036B00001D004280CD101986168884200D120B95A
+:1036C0000398E168884203D110B108200FB0F0BD23
+:1036D000207DC00601D51F2700E0FF273B460DAA2D
+:1036E00005A903A8FFF7ABFD0028EFD1A08AC10709
+:1036F00002D0C00600D4EE273B460AAA0CA901A8B6
+:10370000FFF79DFD0028E1D19DF81400C00701D00E
+:103710000A20DBE7A08A410708D4A17D31B19DF8DA
+:103720002810890702D043F20120CFE79DF8281026
+:10373000C90709D0400707D4208818B144F2506166
+:10374000884201D90720C1E78DF818508DF819601B
+:10375000BDF80800ADF81A000198079006A80DF012
+:10376000BBFF05F0DFFC0028B0D18DF820508DF8AC
+:103770002160BDF81000ADF822000398099008A858
+:103780000DF0C9FF05F0CEFC00289FD101AD241D2E
+:1037900095E80F0084E80F00002097E770B586B029
+:1037A0000D46040005D0FDF7DBFD20B1102006B06A
+:1037B00070BD0820FBE72078C107A98802D0FF2947
+:1037C00002D303E01F2901D20920F0E7800763D468
+:1037D000FFF75AFC38B12178C1F3C100012804D0A9
+:1037E000032802D005E01320E1E7244890F82400E4
+:1037F000C8B1C8074FF001064FF0000502D08DF8A0
+:103800000F6001E08DF80F50FFF7B5FD8DF8000057
+:1038100020786946C0F3C1008DF8010060788DF80A
+:103820000250C20801D00720C1E730B3C20701D05F
+:103830008DF80260820705D59DF8022042F0020251
+:103840008DF80220400705D59DF8020040F00400E5
+:103850008DF80200002022780B18C2F38002DA7083
+:1038600001EB40026388D380401CA388C0B253811F
+:103870000228F0D3207A78B905E001E0EC010020BD
+:103880008DF80260E6E7607A30B9A07A20B9E07A74
+:1038900010B9207BC00601D0062088E704F108009B
+:1038A00001F012FB8DF80E0068460DF0BFFA05F02E
+:1038B00039FC002889D18DF810608DF81150E0880E
+:1038C000ADF81200ADF8145004A80DF002FB05F09D
+:1038D00029FC002888D12078C00701D0152000E0FD
+:1038E0001320FFF7BBFB002061E72DE9FF47022013
+:1038F000FB4E8DF804000027708EADF80600B84628
+:1039000043F202094CE001A80EF0DBFF050006D0EF
+:10391000708EA8B3A6F83280ADF806803EE0039C16
+:10392000A07F01072DD504F124000090A28EBDF8E0
+:103930000800214604F1360301F05FFC050005D0C4
+:103940004D452AD0112D3CD0FFDF3AE0A07F20F07A
+:103950000801E07F420862F3C711A177810861F393
+:103960000000E07794F8210000F01F0084F82000A8
+:103970002078282826D129212046FFF7CBFB21E0FB
+:1039800014E040070AD5BDF8080004F10E0101F06B
+:10399000B1FA05000DD04D4510D100257F1CFFB2B6
+:1039A00002200EF0CFFF401CB842ACD8052D11D03C
+:1039B00008E0A07F20F00400A07703E0112D00D0E4
+:1039C000FFDF0025BDF806007086052D04D02846CF
+:1039D00004B0C7E5A6F832800020F9E770B50646C6
+:1039E000FFF731FD054605F087FD040000D1FFDF3C
+:1039F0006680207820F00F00801C20F0F00020303E
+:103A000020700320207295F83E006072BDE870407F
+:103A100005F075BD2DE9F04786B0040000D1FFDF49
+:103A20002078AF4D20F00F00801C20F0F0007030A7
+:103A3000207060680178491F1B2933D2DFE801F04C
+:103A4000FE32323255FD320EFDFD42FC323232780A
+:103A5000FCFCFBFA3232FCFCF9F8FC00C68830466C
+:103A6000FFF7F1FC0546304607F03EF9E0B160682B
+:103A7000007A85F83E0021212846FFF74BFB3046AF
+:103A8000FEF753FB304603F05BFE3146012012F097
+:103A9000D3FCA87F20F01000A877FFF726FF0028AE
+:103AA00000D0FFDF06B05DE5207820F0F000203088
+:103AB00020700320207266806068007A607205F0D2
+:103AC0001EFDD8E7C5882846FFF7BDFC00B9FFDF1B
+:103AD00060680079012800D0FFDF6068017A06B0D5
+:103AE0002846BDE8F04707F0DEBCC6883046FFF741
+:103AF000AAFC050000D1FFDF05F001FD606831463A
+:103B00000089288160684089688160688089A8810F
+:103B1000012012F091FC0020A875A87F00F003009E
+:103B20000228BFD1FFF7E1FE0028BBD0FFDFB9E7D5
+:103B300000790228B6D000B1FFDF05F0E0FC66682E
+:103B4000B6F806A0307A361D012806D0687E814678
+:103B500005F054FA070003D101E0E878F7E7FFDF4A
+:103B60000022022150460EF03CFF040000D1FFDF8E
+:103B700022212046FFF7CEFA3079012800D002201A
+:103B8000A17F804668F30101A177308B2081708B83
+:103B90006081B08BA08184F822908DF80880B8688D
+:103BA0000090F86801906A46032150460EF019FF14
+:103BB00000B9FFDFB888ADF81000B8788DF81200B2
+:103BC00004AA052150460EF00CFF00B9FFDFB888AB
+:103BD000ADF80C00F8788DF80E0003AA04215046C9
+:103BE0000EF0FFFE00B9FFDF062106F1120001F022
+:103BF0009FF940B37079800700D5FFDF7179E07DD0
+:103C000061F34700E075D6F80600A0617089A083D3
+:103C1000062106F10C0001F08BF9F0B195F82500B2
+:103C20004108607861F347006070D5F8260006E02F
+:103C30003EE036E06DE055E04AE02CE040E0C4F8BC
+:103C40000200688D12E0E07D20F0FE00801CE0752F
+:103C5000D6F81200A061F08AD9E7607820F0FE0063
+:103C6000801C6070F068C4F80200308AE080B8F10F
+:103C7000010F04D0B8F1020F05D0FFDF12E70320D7
+:103C8000FFF7D4F90EE7287E122800D0FFDF1120BD
+:103C9000FFF7E4F906E706B02046BDE8F04701F07B
+:103CA00035BD05F02CFC15F8300F40F0020005E0A2
+:103CB00005F025FC15F8300F40F004002870F1E6FF
+:103CC000287E132809D01528D8D11620FFF7C6F969
+:103CD00006B0BDE8F04705F012BC1420F6E700007E
+:103CE000EC010020A978052909D00429C6D105F0E6
+:103CF00006FC022006B0BDE8F047FFF797B900794F
+:103D00000028BBD0E87801F0C6F805F0F8FB0320E6
+:103D1000F0E7287E122802D1687E01F0BCF811205D
+:103D2000D4E72DE9F047054600784FF00008000978
+:103D3000DFF8C0A891460C464646012875D00228F7
+:103D400074D007280AD00A2871D0FFDFA9F80060D4
+:103D500014B1A4F800806680002003E4696801279C
+:103D600004F108000A784FF0020C4FF6FF73172A8F
+:103D70007ED00EDC142A32D006DC052A68D0092A4F
+:103D800010D0102A75D120E0152A73D0162AF9D147
+:103D9000F8E0183A082A6CD2DFE802F0F36B6B0AFD
+:103DA000CAF2DFF1C8884FF01208102621468DE1D3
+:103DB0004FF01C080A26BCB38888A0806868807908
+:103DC00020726868C0796072C0E74FF01B08142643
+:103DD00054B30320207268688088A080B6E70A790F
+:103DE0003C2AB3D00D1D4FF010082C26E4B1698891
+:103DF000A180298B6182298B2182698BA182A98B69
+:103E0000E1826B790246A91D1846FFF7ECFA297981
+:103E1000002001290CD084F80FC0FF212176E06139
+:103E200020626062A06291E70FE02EE151E18CE137
+:103E3000E77320760AF1040090E80E00DAF810002B
+:103E4000C4E90930C4E9071280E7A9F8006083E7F4
+:103E50002C264FF01D08002CF7D00546A380887B48
+:103E60002A880F1D60F300022A80887B400802E048
+:103E70009DE007E1BEE060F341022A80887B800874
+:103E800060F382022A80887BB91CC00860F3C302F9
+:103E90002A80B87A0011401C60F3041202F07F00FF
+:103EA00028807878AA1CFFF79EFA387D05F1090270
+:103EB00007F11501FFF797FA387B01F048F82874ED
+:103EC000787B01F044F86874F87EA874787AE87416
+:103ED000387F2875B87B6875388AE882DAF81C0064
+:103EE000A861B87A524697F808A0C0F34111012999
+:103EF00004D0108C504503D2824609E0FFDF10E069
+:103F0000022903D0288820F0600009E0504504D140
+:103F1000288820F06000403002E0288840F06000EF
+:103F20002880A4F824A0524607F11D01A86996E054
+:103F300011264FF02008002C87D0A380686804F178
+:103F40000A02007920726868007B607269688B1DC4
+:103F500048791946FFF747FAF8E60A264FF0210894
+:103F6000002CE9D08888A080686880792072686811
+:103F7000C07960729AF8301021F004019FE065E08A
+:103F80004CE06FE00B264FF02208002CD4D0C888FC
+:103F9000A0806868007920726868007A00F0D7FF16
+:103FA00060726868407A00F0D2FFA072CEE61C26EC
+:103FB0004FF02608002CBFD0A3806868407960725B
+:103FC0006868007AA0720AF1040090E80E00DAF83E
+:103FD0001000C4E90530C4E90312686800793C2880
+:103FE00003D0432803D0FFDFB0E62772AEE684F8A3
+:103FF00008C0ABE610264FF02408002C9CD088881F
+:10400000A0806868807920816868807A60816868AB
+:104010000089A08168688089E08197E610264FF0CA
+:104020002308002C88D08888A0806868C0882081F8
+:1040300068680089608168684089A08168688089B3
+:10404000E0819AF8301021F0020138E030264FF07C
+:104050002508002C85D0A38069682822496821F0B2
+:104060008DFA73E614264FF01B08002C8ED0A38027
+:10407000686800790128BAD02772DAE90710C4E924
+:10408000031063E64A46214660E0287A012803D0FF
+:10409000022817D0FFDF59E610264FF01F08002C2A
+:1040A00089D06888A080A8892081E8896081288AD1
+:1040B000A081688AE0819AF8301021F001018AF825
+:1040C000301043E64FF012081026688800F01DFFFC
+:1040D0003CE6287AC8B3012838D0022836D0032815
+:1040E00001D0FFDF32E609264FF01108002C85D001
+:1040F0006F883846FFF7A7F990F822A0A780687A62
+:104100002072042138460EF087FC052138460EF057
+:1041100083FC002138460EF07FFC012138460EF06A
+:104120007BFC032138460EF077FC022138460EF066
+:1041300073FC062138460EF06FFC072138460EF05E
+:104140006BFC504600F0A7FE00E6FFE72846BDE8FE
+:10415000F04701F065BC70B5012803D0052800D0F8
+:10416000FFDF70BD8DB22846FFF76DF9040000D166
+:10417000FFDF20782128F4D005F0BEF980B1017866
+:1041800021F00F01891C21F0F00110310170022192
+:10419000017245800020A075BDE8704005F0AFB900
+:1041A00021462846BDE870401322FFF74FB92DE99C
+:1041B000F04116460C00804600D1FFDF307820F039
+:1041C0000F00801C20F0F0001030307020780128A3
+:1041D00004D0022818D0FFDFBDE8F0814046FFF789
+:1041E00032F9050000D1FFDF0320A87505F087F93B
+:1041F00094E80F00083686E80F00FE4810F8301FDC
+:1042000041F001010170E7E74046FFF71CF90500A6
+:1042100000D1FFDFA1884FF6FF700027814202D155
+:10422000E288824203D0814201D1E08840B105F0AA
+:1042300066F994E80F00083686E80F00AF75CBE703
+:10424000A87D0128C8D178230022414612F04AF8FF
+:104250000220A875C0E738B505460C460846FDF7AC
+:1042600032F818BB203D062D4AD2DFE805F0031BCB
+:10427000373C42300021052012F0B4F808B111207B
+:1042800038BDA01C0DF023F904F04CFF050038D117
+:10429000002208231146052012F024F8052830D00A
+:1042A000FFDF2EE06068FDF752F808B1102038BD3E
+:1042B000618820886A460DF0C5FB04F033FF0500D5
+:1042C0001FD16068E8B1BDF80010018019E0A07846
+:1042D00000F0010120880DF0E6FB0EE0206801F0FF
+:1042E0004BFE05460DE0207800F001000CF0EDF9E2
+:1042F00003E0618820880DF020FB04F013FFF0E755
+:104300000725284638BD70B505460C460846FDF71A
+:1043100000F808B1102070BD202D07D0212D0DD040
+:10432000222D0BD0252D09D0072070BD2088A11C7F
+:104330000CF0A0FABDE8704004F0F4BE062070BD99
+:10434000AC482530704708B53421AA4821F0B7F9A8
+:104350000120FEF76BFE1120FEF780FEA54968469E
+:10436000263105F05FF8A3489DF8002010F8251FBE
+:1043700062F3470121F001010170002141724FF405
+:104380006171A0F8071002218172FEF7B1FE00B141
+:10439000FFDFFDF75DF801F084F908BD10B50C46AC
+:1043A0004021204621F069F9A07F20F00300A0778A
+:1043B000202020700020A07584F8230010BD7047D5
+:1043C0002DE9FC410746FCF77EFF10B11020BDE847
+:1043D000FC81884E06F12501D6F825000090B6F83C
+:1043E0002950ADF8045096F82B408DF80640384619
+:1043F000FEF7E2FF0028EAD1FEF77AFE0028E6D0B9
+:10440000009946F8251FB580B471E0E710B5044661
+:10441000FCF77FFF08B1102010BD76487549224691
+:1044200090F8250026314008FEF7DDFF002010BD82
+:104430003EB504460D460846FCF76BFF08B1102058
+:104440003EBD14B143F204003EBD6A4880780528A1
+:1044500003D0042801D008203EBD694602A80AF016
+:10446000AEFA2A4669469DF80800FEF7BCFF002018
+:104470003EBDFEB50D4604004FF0000711D00822E6
+:10448000FEF7C2FE002811D1002608E054F82600ED
+:104490006946FEF747FF002808D1761CF6B2AE4207
+:1044A000F4D30CF059F810B143F20320FEBD514E85
+:1044B00086F824700CB300271BE000BF54F82700D7
+:1044C00002A9FEF72FFF00B1FFDF9DF808008DF86D
+:1044D000000054F8270050F8011FCDF80110808823
+:1044E000ADF8050068460CF05CF800B1FFDF7F1CFA
+:1044F000FFB2AF42E2D386F824500020FEBD2DE982
+:10450000F0478AB01546894604001ED00F4608229F
+:104510002946FEF779FE002811D1002613E000BFDE
+:1045200054F826006946103000F0DAFC002806D165
+:104530003FB157F82600FCF7C6FE10B110200AB0B4
+:104540000BE4761CF6B2AE42EAD30026A5F10108D0
+:104550001CE000BF06F1010A0AF0FF0712E000BFED
+:1045600054F82600017C4A0854F827100B7CB2EB63
+:10457000530F05D106221130113120F0D3FF58B16D
+:104580007F1CFFB2AF42EBD30AF0FF064645E1DBEA
+:104590004E4624B1012003E043F20520CFE700207E
+:1045A0000CF024F810B90CF02DF810B143F20420EF
+:1045B000C5E774B300270DF1170828E054F8270069
+:1045C0006946103000F08CFC00B1FFDF54F8270082
+:1045D000102250F8111FCDF801108088ADF80500A9
+:1045E00054F827100DF1070020F0C8FFAEB156F8BF
+:1045F000271001E0EC0100201022404620F0BEFF11
+:1046000068460BF0B3FF00B1FFDF7F1CFFB2AF4283
+:10461000D4D3FEF733FF002091E7404601F0A0FC21
+:10462000EEE730B585B00446FCF74DFE18B960687A
+:10463000FCF796FE10B1102005B030BD60884AF23C
+:10464000B811884206D82078F84D28B1012806D044
+:10465000022804D00720EFE7FEF74AFD18E0607853
+:10466000022804D0032802D043F20220E4E785F8B0
+:104670002F00C1B200200090ADF8040002292CD018
+:10468000032927D0FFDF68460CF055F804F04AFDF7
+:104690000028D1D1606801F056FC207858B1012083
+:1046A0008DF800000DF1010001F05AFC68460DF094
+:1046B0005EFA00B1FFDF207885F82E00FEF7DEFEFF
+:1046C000608860B1A88580B20BF088FF00B1FFDF81
+:1046D0000020B1E78DF80500D5E74020FAE74FF458
+:1046E0006170EFE710B50446FCF713FE20B960686F
+:1046F00038B1FCF72CFE08B1102010BD606801F045
+:104700002FFCCA4830F82C1F6180C1786170807816
+:104710002070002010BD2DE9F84314468946064656
+:10472000FCF7F7FDA0B94846FCF71AFE80B9204611
+:10473000FCF716FE60B9BD4DA878012800D13CB148
+:104740003178FF2906D049B143F20400BDE8F8836F
+:104750001020FBE7012801D00420F7E7CCB305289F
+:1047600011D004280FD069462046FEF7A0FE00288D
+:10477000ECD1217D49B1012909D0022909D00329B1
+:1047800009D00720E2E70820E0E7024604E0012222
+:1047900002E0022200E00322804623461746002062
+:1047A0000099FEF7BEFE0028D0D1A0892880A07B0A
+:1047B000E875BDF80000A882AF75BDF800100907C4
+:1047C00001D5A18931B1A1892980C00704D0032076
+:1047D00003E006E08021F7E70220FEF727FC86F8D9
+:1047E00000804946BDE8F8430020FEF749BF7CB58C
+:1047F0008E4C05460E46A078022803D0032801D02F
+:1048000008207CBD15B143F204007CBD07200EF0EA
+:10481000A1F810B9A078032806D0FEF735FC28B11E
+:10482000A078032804D009E012207CBD13207CBDB1
+:10483000304600F013FB0028F9D1E670FEF79BFD2F
+:1048400009F0FAFF01208DF800008DF801008DF8C5
+:1048500002502088ADF80400E07D8DF8060068461F
+:104860000DF02EF804F05EFC0028E0D1A0780328BB
+:1048700004D00420FEF7DAFB00207CBDE07800F0D5
+:10488000FDFA0520F6E71CB510B143F204001CBD8B
+:10489000664CA078042803D0052801D008201CBD50
+:1048A00000208DF8000001218DF801108DF8020024
+:1048B00068460DF005F804F035FC0028EFD1A0782B
+:1048C000052805D05FF00200FEF7B0FB00201CBDFC
+:1048D000E07800F0E0FA0320F6E72DE9FC4180469D
+:1048E0000E4603250846FCF73BFD002866D14046EE
+:1048F000FEF7A9FD040004D02078222804D2082065
+:1049000065E543F2020062E5A07F00F003073EB1D7
+:10491000012F0CD000203146FEF751FC0500EFD1ED
+:10492000012F06D0022F1AD0FFDF28464FE50120C5
+:10493000F1E7A07D3146022801D011B107E0112036
+:1049400045E56846FCF791FE0028D9D16946404606
+:1049500006F06CFD0500E8D10120A075E5E7A07D1B
+:10496000032804D1314890F83000C00701D02EB39D
+:104970000EE026B1A07F40071ED4002100E00121F7
+:10498000404606F073FD0500CFD1A075002ECCD0B7
+:104990003146404600F0AEFA05461128C5D1A07F49
+:1049A0004107C2D4316844F80E1F7168616040F05D
+:1049B000040020740025B8E71125B6E7102006E5AD
+:1049C00070B50C460546FEF73EFD010005D02246B7
+:1049D0002846BDE87040FEF739BD43F2020070BDC5
+:1049E00010B5012807D1114B9B78012B00D011B1D4
+:1049F00043F2040010BD0BF023FEBDE8104004F0AC
+:104A000091BB012300F051BA00231A46194600F069
+:104A10004CBA70B506460C460846FCF754FC18B96B
+:104A20002068FCF776FC18B1102070BDEC01002066
+:104A3000F84D2A7E112A04D0132A00D33EB1082053
+:104A4000F3E721463046FEF7A9FE60B1EDE7092005
+:104A5000132A0DD0142A0BD0A188FF29E5D31520E5
+:104A6000FEF7FCFA0020D4E90012C5E90712DCE7E2
+:104A7000A1881F29D9D31320F2E71CB5E548007E91
+:104A8000132801D208201CBD00208DF800006846C4
+:104A90000CF01FFA04F046FB0028F4D11120FEF7B9
+:104AA000DDFA00201CBD2DE9F04FDFF868A3814638
+:104AB00091B09AF818009B4615460C46132803D36C
+:104AC000FFF7DBFF00281FD12046FCF7FCFBE8BB0B
+:104AD0002846FCF7F8FBC8BB20784FF00107C00759
+:104AE0004FF0000102D08DF83A7001E08DF83A10D5
+:104AF00020788846C0F3C1008DF8000060788DF8FA
+:104B00000910C10803D0072011B0BDE8F08FB0B381
+:104B1000C10701D08DF80970810705D59DF80910EE
+:104B200041F002018DF80910400705D59DF80900F4
+:104B300040F004008DF809009DF80900810703D5B5
+:104B400040F001008DF80900002000E015E06E46FD
+:104B500006EB400162884A81401CA288C0B20A82EA
+:104B60000328F5D32078C0F3C100012825D00328FD
+:104B700023D04846FCF7A7FB28B11020C4E7FFE785
+:104B80008DF80970D8E799F80000400808D001288E
+:104B900009D0022807D0032805D043F20220B3E74A
+:104BA0008DF8028001E08DF80270484650F8011F30
+:104BB000CDF803108088ADF80700FEF7DCFB8DF818
+:104BC00001000021424606EB41002B88C3826B881E
+:104BD0008383AB884384EB880385491CC285C9B2B3
+:104BE00082860329EFD3E088ADF83C0068460CF0DC
+:104BF000B5FA002887D19AF818005546112801D037
+:104C0000082081E706200DF0A5FE38B12078C0F31A
+:104C1000C100012804D0032802D006E0122073E767
+:104C200095F8240000283FF46EAFFEF72DFA022815
+:104C300001D2132068E7584600F010F900289DD1F2
+:104C400085F819B068460CF0C9FB04F06BFA040053
+:104C500094D1687E00F012F91220FEF7FFF9204689
+:104C600052E770B56B4D287E122801D00820DCE693
+:104C70000CF0B7FB04F056FA040005D1687E00F092
+:104C80000AF91120FEF7EAF92046CEE670B506468D
+:104C900015460C460846FCF73CFB18B92846FCF7BD
+:104CA00038FB08B11020C0E62A46214630460CF0F9
+:104CB000A9FE04F037FA0028F5D121787F29F2D136
+:104CC0000520B2E67CB505460C460846FCF7FBFA23
+:104CD00008B110207CBD2846FEF7B5FB20B1007856
+:104CE000222804D208207CBD43F202007CBD494842
+:104CF00090F83000400701D511207CBD2078C00815
+:104D000002D16078C00801D007207CBDADF800500A
+:104D100020788DF8020060788DF803000220ADF84D
+:104D2000040068460BF0B6FF04F0FCF97CBD70B5DA
+:104D300086B014460D460646FEF785FB28B100787E
+:104D4000222805D2082006B06FE643F20200FAE7F7
+:104D50002846FCF705FB20B944B12046FCF7F7FADA
+:104D600008B11020EFE700202060A080294890F8CB
+:104D70003000800701D51120E5E703A930460BF08C
+:104D8000CCFD10B104F0CEF9DDE7ADF80060BDF860
+:104D90001400ADF80200BDF81600ADF80400BDF82F
+:104DA0001000BDF81210ADF80600ADF808107DB186
+:104DB000298809B1ADF80610698809B1ADF802106B
+:104DC000A98809B1ADF80810E98809B1ADF8041057
+:104DD000DCB1BDF80610814201D9081A2080BDF867
+:104DE0000210BDF81400814201D9081A6080BDF894
+:104DF0000800BDF80410BDF816200144BDF81200EB
+:104E00001044814201D9081AA08068460BF044FE84
+:104E1000B8E70000EC0100201CB554490968CDE951
+:104E2000001068460CF09CF904F07CF91CBD1CB520
+:104E300000200090019068460CF092F904F072F99D
+:104E40001CBD10800888508048889080C8881081D8
+:104E50008888D080002050819081704710B504462A
+:104E600004F0CCF830B1407830B1204604F0EBFBD0
+:104E7000002010BD052010BD122010BD10B504F09B
+:104E8000BDF8040000D1FFDF607800B9FFDF607873
+:104E9000401E607010BD10B504F0B0F8040000D1E1
+:104EA000FFDF6078401C607010BD1CB5ADF80000DD
+:104EB0008DF802308DF803108DF8042068460CF050
+:104EC00064FD04F02FF91CBD0CB529A2D2E9001233
+:104ED000CDE900120079694601EB501000780CBD55
+:104EE0000278520804D0012A02D043F2022070470F
+:104EF000FEF718BA1FB56A46FFF7A3FF68460CF025
+:104F0000A3FA04F00FF904B010BD70B50C0006460A
+:104F10000DD0FEF798FA050000D1FFDFA6802889A2
+:104F20002081288960816889A081A889E0817CE549
+:104F300010B500231A4603E0845C2343521CD2B20E
+:104F40008A42F9D30BB1002010BD012010BD00B57D
+:104F500040B1012805D0022803D0032804D0FFDF88
+:104F6000002000BDFF2000BD042000BD645A0200E7
+:104F7000070605040302010010B50446FCF7A3F977
+:104F800008B1102010BD2078C0F30210042807D803
+:104F90006078072804D3A178102901D8814201D272
+:104FA000072010BDE078410706D421794A0703D4D1
+:104FB000000701D4080701D5062010BD002010BD50
+:104FC00010B513785C08837F64F3C7138377137875
+:104FD0009C08C37F64F30003C3771078C309487843
+:104FE00063F34100487013781C090B7864F347138E
+:104FF0000B701378DB0863F3000048705078487139
+:1050000010BD10B5C4780B7864F300030B70C4783E
+:10501000640864F341030B70C478A40864F382034A
+:105020000B70C478E40864F3C3030B700379117840
+:1050300063F30001117003795B0863F341011170A0
+:1050400003799B0863F3820111700079C00860F353
+:10505000C301117010BD70B514460D46064604F02C
+:105060004BFA80B10178182221F00F01891C21F040
+:10507000F001A03100F8081B214620F0C4FABDE879
+:10508000704004F03CBA29463046BDE87040132217
+:10509000FEF7DCB92DE9F047064608A8894690E8F6
+:1050A00030041F4690461421284620F008FB0021BA
+:1050B000CAF80010B8F1000F03D0B9F1000F03D106
+:1050C00014E03878C00711D02068FCF722F9C0BB83
+:1050D000B8F1000F07D12068123028602068143022
+:1050E00068602068A8602168CAF8001038788007D6
+:1050F00024D56068FCF72BF918BBB9F1000F21D05B
+:10510000FFF71EF90168C6F868118188A6F86C11CE
+:10511000807986F86E0101F0F8FCF94FEF60626863
+:1051200062B196F8680106F2691140081032FEF784
+:105130005AF910223946606820F020FA0020BDE8B4
+:10514000F08706E0606820B1E8606068C6F8640136
+:10515000F4E71020F3E730B5054608780C4620F058
+:105160000F00401C20F0F001103121700020607011
+:1051700095F8230030B104280FD0052811D0062857
+:1051800014D0FFDF20780121B1EB101F04D295F875
+:10519000200000F01F00607030BD21F0F0002030D2
+:1051A00002E021F0F00030302070EBE721F0F00059
+:1051B0004030F9E7F0B591B0022715460C46064697
+:1051C0003A46ADF80870092103AB05F004F80490E5
+:1051D000002810D004208DF804008DF80170E03410
+:1051E000099605948DF818500AA968460FF0F2F850
+:1051F00000B1FFDF012011B0F0BD10B588B00C4642
+:105200000A99ADF80000C3B11868CDF802005868DB
+:10521000CDF80600ADF80A20102203A820F0AEF960
+:1052200068460CF081F903F07DFF002803D1A17FCF
+:1052300041F01001A17708B010BD0020CDF80200A8
+:10524000E6E72DE9F84F0646808A0D4680B2824691
+:10525000FEF7F9F804463078DFF8A48200274FF013
+:105260000209A8F120080F2870D2DFE800F06FF2E1
+:105270003708387D8CC8F1F0EFF35FF3F300A07FBF
+:1052800000F00300022809D05FF0000080F0010167
+:1052900050460DF0AFFB050003D101E00120F5E71A
+:1052A000FFDF98F85C10C90702D0D8F860000BE067
+:1052B000032105F11D0010F0E0FDD5F81D00914916
+:1052C000B0FBF1F201FB1200C5F81D0070686867C1
+:1052D000B068A8672078252800D0FFDFCAE0A07F4B
+:1052E00000F00300022809D05FF0000080F0010107
+:1052F00050460DF07FFB060003D101E00120F5E7E9
+:10530000FFDF3078810702D52178252904D040F0CD
+:1053100001003070BDE8F88F85F80090307F28716B
+:1053200006F11D002D36C5E90206F3E7A07F00F067
+:105330000300022808D0002080F0010150460DF043
+:1053400059FB040004D102E00120F5E7A7E1FFDFEB
+:105350002078C10604D5072028703D346C60D9E759
+:1053600040F008002070D5E7E07F000700D5FFDFA0
+:10537000307CB28800F0010301B05046BDE8F04F28
+:10538000092105F0B3BD04B9FFDF716821B1102216
+:1053900004F1240020F0F2F828212046FDF7BAFE9F
+:1053A000A07F00F0030002280ED104F124000023A6
+:1053B00000901A4621465046FFF71FFF112807D0DC
+:1053C00029212046FDF7A6FE307A84F82000A1E7C7
+:1053D000A07F000700D5FFDF14F81E0F40F0080083
+:1053E0002070E782A761E761C109607861F341003D
+:1053F000014660F382016170307AE0708AE7A07F35
+:1054000000F00300022809D05FF0000080F00101E5
+:1054100050460DF0EFFA040003D101E00120F5E75A
+:10542000FFDF022104F1850010F027FD0420287021
+:1054300004F5B4706860B4F88500288230481038EC
+:105440007C346C61C5E9028064E703E024E15BE041
+:105450002DE015E0A07F00F00300022807D0002017
+:1054600080F0010150460DF0C5FA18B901E00120A5
+:10547000F6E7FFDF324621465046BDE8F84FEAE541
+:1054800004B9FFDF20782128A1D93079012803D180
+:10549000E07F40F00800E077324621465046FFF7B3
+:1054A000DAFD2046BDE8F84F2321FDF733BE3279FF
+:1054B000AA8005F108030921504604F08CFEE8603B
+:1054C00010B10520287025E7A07F00F00300022816
+:1054D00008D0002080F0010150460DF08BFA040046
+:1054E00003D101E00120F5E7FFDF04F162010223AF
+:1054F0001022081F0DF005F907703179417009E796
+:105500004C02002040420F00A07F00F00300022860
+:1055100008D0002080F0010150460DF06BFA050024
+:1055200003D101E00120F5E7FFDF95F8840000F0EA
+:10553000030001287AD1A07F00F00307E07F10F07C
+:10554000010602D0022F04D133E095F8A000C00775
+:105550002BD0D5F8601121B395F88320087C62F335
+:1055600087000874A17FCA09D5F8601162F3410071
+:105570000874D5F8601166F300000874AEB1D5F870
+:105580006001102204F1240188351FF0F7FF287E06
+:1055900040F001002876287820F0010005F88809FD
+:1055A00000E016B1022F04D02DE095F88800C00766
+:1055B00027D0D5F85C1121B395F88320087C62F3DD
+:1055C00087000874A17FCA09D5F85C1162F3410015
+:1055D0000874D5F85C1166F3000008748EB1D5F834
+:1055E0005C01102204F1240188351FF0C7FF2878E0
+:1055F00040F0010005F8180B287820F0010005F8AC
+:10560000A009022F44D0002000EB400005EBC000B1
+:1056100090F88800800709D595F87C00D5F86421BA
+:10562000400805F17D011032FDF7DDFE8DF8009098
+:1056300095F884006A4600F003008DF8010095F8A3
+:1056400088108DF8021095F8A0008DF8030021460F
+:10565000504601F043FA2078252805D0212807D0AC
+:10566000FFDF2078222803D922212046FDF752FDB2
+:10567000A07F00F0030002280CD0002080F0010180
+:1056800050460DF0C9F900283FF44FAEFFDF41E668
+:105690000120B9E70120F1E7706847703AE6FFDFC3
+:1056A00038E670B5FE4C002584F85C5025660EF097
+:1056B0005EFE04F11001204603F0DAFE84F830505B
+:1056C00070BD70B50D46FDF7BEFE040000D1FFDFD2
+:1056D0004FF4B87128461FF0F2FF04F1240028614E
+:1056E000A07F00F00300022808D0012105F1E000AE
+:1056F0000EF03EFE002800D0FFDF70BD0221F5E76E
+:105700000A46014602F1E0000EF052BE70B50546B1
+:10571000406886B001780A2906D00D2933D00E29B9
+:105720002FD0FFDF06B070BD86883046FDF78BFEB8
+:10573000040000D1FFDF20782128F3D028281BD1D6
+:10574000686802210E3001F0BEF9A8B1686808212E
+:10575000801D01F0B8F978B104F1240130460CF055
+:10576000B1F803F0DFFC00B1FFDF06B02046BDE872
+:1057700070402921FDF7CEBC06B0BDE8704003F0B3
+:10578000BEBE012101726868C6883046FDF75BFE27
+:10579000040000D1FFDFA07F00F00301022902D145
+:1057A00020F01000A077207821280AD06868017ABC
+:1057B00009B1007980B1A07F00F00300022862D017
+:1057C000FFDFA07F00F003000228ABD1FEF78DF8C9
+:1057D0000028A7D0FFDFA5E703F091FEA17F080610
+:1057E0002BD5E07FC00705D094F8200000F01F0003
+:1057F000102820D05FF0050084F8230020782928A5
+:105800001DD02428DDD13146042010F015FE2221C0
+:105810002046FDF77FFCA07F00F00300022830D077
+:105820005FF0000080F0010130460DF0F5F800282F
+:10583000C7D0FFDFC5E70620DEE70420DCE701F084
+:105840000300022808D0002080F0010130460DF04E
+:10585000D1F8050003D101E00120F5E7FFDF2521A4
+:105860002046FDF757FC03208DF80000694605F13E
+:10587000E0000EF094FD0228A3D00028A1D0FFDFA5
+:105880009FE70120CEE703F03AFE9AE72DE9F043C7
+:1058900087B09946164688460746FDF7D4FD0400B2
+:1058A0004BD02078222848D3232846D0E07F000719
+:1058B00043D4A07F00F00300022809D05FF000006D
+:1058C00080F0010138460DF095F8050002D00CE09B
+:1058D0000120F5E7A07F00F00300022805D0012198
+:1058E000002238460DF07DF805466946284601F04D
+:1058F0001CF9009800B9FFDF45B10098E03505615B
+:105900002078222806D0242804D007E0009900201F
+:10591000086103E025212046FDF7FCFB00980121EA
+:1059200041704762868001A9C0E902890EF052FDEC
+:10593000022802D0002800D0FFDF07B0BDE8F083C6
+:1059400070B586B00546FDF77EFD017822291ED987
+:10595000807F00F00300022808D0002080F00101C1
+:1059600028460DF047F804002FD101E00120F5E7AB
+:10597000FFDF2AE0B4F85E0004F1620630440178EB
+:10598000427829B121462846FFF714FCB0B9C9E690
+:10599000ADF804200921284602AB04F01CFC03905A
+:1059A0000028F4D005208DF80000694604F1E000DD
+:1059B0000EF0F5FC022801D000B1FFDF0223102217
+:1059C000314604F15E000CF0D2FEB4F8600000280D
+:1059D000D0D1A7E610B586B00446FDF734FD0178B6
+:1059E00022291BD9807F00F00300022808D0002064
+:1059F00080F0010120460CF0FDFF040003D101E01E
+:105A00000120F5E7FFDF06208DF80000694604F16C
+:105A1000E0000EF0C4FC002800D0FFDF06B010BD8F
+:105A20002DE9F05F05460C460027007890460109F5
+:105A30003E4604F1080BBA4602297DD0072902D060
+:105A40000A2909D146E0686801780A2905D00D299C
+:105A500030D00E292ED0FFDFBBE114271C26002CEE
+:105A60006BD08088A080FDF7EEFC5FEA000900D1D2
+:105A7000FFDF99F817005A46400809F11801FDF7B1
+:105A8000B2FC6868C0892082696851F8060FC4F8C2
+:105A900012004868C4F81600A07E20F0060001E05D
+:105AA0002C02002040F00100A07699F81E0040F082
+:105AB00020014DE01A270A26002CD1D0C088A080F2
+:105AC000FDF7C1FC050000D1FFDF59462846FFF76E
+:105AD00042FB7EE10CB1A88BA080287A0B287DD0F8
+:105AE00006DC01287BD0022808D0032804D135E049
+:105AF0000D2875D00E2874D0FFDF6AE11E27092615
+:105B0000002CADD0A088FDF79EFC5FEA000900D113
+:105B1000FFDF287B00F003000128207A1BD020F053
+:105B200001002072297B890861F341002072297BE2
+:105B3000C90861F3820001E041E1F2E02072297BB3
+:105B4000090961F3C300207299F81E0040F040017A
+:105B500089F81E103DE140F00100E2E713270D2611
+:105B6000002CAAD0A088FDF76EFC8146807F00F053
+:105B70000300022808D0002080F00101A0880CF06A
+:105B800039FF050003D101E00120F5E7FFDF99F8B7
+:105B90001E0000F00302022A50D0686F817801F0E5
+:105BA00003010129217A4BD021F001012172837870
+:105BB0009B0863F3410121728378DB0863F3820160
+:105BC000217283781B0963F3C3012172037863F3A5
+:105BD00006112172437863F3C71103E061E0A9E085
+:105BE00090E0A1E0217284F809A0C178A172022A94
+:105BF00029D00279E17A62F30001E1720279520858
+:105C000062F34101E1720279920862F38201E1726A
+:105C10000279D20862F3C301E1724279217B62F317
+:105C2000000121734279520862F3410121734279E4
+:105C3000920862F382012173407928E0A86FADE7F2
+:105C400041F00101B2E74279E17A62F30001E172C9
+:105C50004279520862F34101E1724279920862F39B
+:105C60008201E1724279D20862F3C301E1720279E2
+:105C7000217B62F3000121730279520862F3410132
+:105C800021730279920862F3820121730079C008BE
+:105C900060F3C301217399F80000232831D926212C
+:105CA00040E018271026E4B3A088FDF7CCFB83461C
+:105CB000807F00F00300022809D0002080F001015D
+:105CC000A0880CF097FE5FEA000903D101E00120F3
+:105CD000F4E7FFDFE868A06099F8000040F00401F5
+:105CE00089F8001099F80100800708D50120207379
+:105CF0009BF8000023286CD92721584651E084F8EE
+:105D00000CA066E015270F265CB1A088FDF79BFB71
+:105D1000814606225946E86808F0CBFA0120A073B4
+:105D2000A0E041E048463CE016270926E4B3287B82
+:105D300020724EE0287B19270E26ACB3C4F808A0C9
+:105D4000A4F80CA0012807D0022805D0032805D00C
+:105D5000042803D0FFDF0DE0207207E0697B0428F0
+:105D600001F00F0141F0800121721ED0607A20F015
+:105D700003006072A088FDF766FB054600782128C5
+:105D800027D0232800D0FFDFA87F00F003000228DF
+:105D900013D0002080F00101A0880CF03DFE2221EC
+:105DA0002846FDF7B7F914E004E0607A20F003001C
+:105DB000401CDEE7A8F8006010E00120EAE70CB123
+:105DC0006888A080287A68B301280AD002284FD0BA
+:105DD000FFDFA8F800600CB1278066800020BDE8D6
+:105DE000F09F15270F26002CE4D0A088FDF72BFB91
+:105DF000807F00F00300022808D0002080F001011D
+:105E0000A0880CF0F7FD050003D101E00120F5E7C3
+:105E1000FFDFD5F81D000622594608F04AFA84F83B
+:105E20000EA0D6E717270926002CC3D0A088FDF7BF
+:105E30000AFB8146807F00F00300022808D0002082
+:105E400080F00101A0880CF0D5FD050003D101E030
+:105E50000120F5E7FFDF6878800701D5022000E028
+:105E60000120207299F800002328B2D9272159E790
+:105E700019270E26002C9DD0A088FDF7E4FA5FEAD2
+:105E8000000900D1FFDFC4F808A0A4F80CA084F832
+:105E900008A0A07A40F00300A07299F81E10C9096A
+:105EA00061F38200A07299F81F2099F81E1012EA7F
+:105EB000D11F05D099F8201001F01F0110292BD017
+:105EC00020F00800A07299F81F10607A61F3C300F7
+:105ED0006072697A01F003010129A2D140F0040047
+:105EE000607299F81E0000F003000228E87A16D0CC
+:105EF000217B60F300012173AA7A607B62F30000CA
+:105F00006073EA7A520862F341012173A97A490861
+:105F100061F3410060735CE740F00800D2E7617B09
+:105F200060F300016173AA7A207B62F300002073A2
+:105F3000EA7A520862F341016173A97A490861F370
+:105F40004100207345E710B5FE4C30B101461022E8
+:105F500004F120001FF012FB012084F8300010BD76
+:105F600010B5044600F0D1FDF64920461022BDE8E8
+:105F7000104020311FF002BB70B5F24D06004FF00B
+:105F8000000413D0FBF79FF908B110240CE00621A0
+:105F9000304608F075F9411C05D028665FF0010015
+:105FA00085F85C0000E00724204670BD0020F7E77C
+:105FB000007810F00F0204D0012A05D0022A0CD17B
+:105FC00010E0000909D10AE00009012807D00228E1
+:105FD00005D0032803D0042801D00720704708709B
+:105FE000002070470620704705282AD2DFE800F01D
+:105FF00003070F171F00087820F0FF001EE0087845
+:1060000020F00F00401C20F0F000103016E008785F
+:1060100020F00F00401C20F0F00020300EE0087847
+:1060200020F00F00401C20F0F000303006E008782F
+:1060300020F00F00401C20F0F000403008700020DD
+:106040007047072070472DE9F041804688B00D4623
+:1060500000270846FBF784F9A8B94046FDF7F3F995
+:10606000040003D02078222815D104E043F2020076
+:1060700008B0BDE8F08145B9A07F410603D500F026
+:106080000300022801D01020F2E7A07FC10601D44E
+:10609000010702D50DB10820EAE7E17F090701D524
+:1060A0000D20E5E700F00300022805D125B12846C0
+:1060B000FEF762FF0700DBD1A07F00F0030002289B
+:1060C00008D0002080F0010140460CF093FC06004F
+:1060D00002D00FE00120F5E7A07F00F003000228C6
+:1060E0000ED0002080F00101002240460CF079FC27
+:1060F000060007D0A07F00F00300022804D009E0CA
+:106100000120EFE70420B3E725B12A4631462046B7
+:10611000FEF756FF6946304600F007FD009800B9CB
+:10612000FFDF0099022006F1E0024870C1F82480E8
+:106130004A6100220A81A27F02F00302022A1CD0D7
+:1061400001200871287800F00102087E62F3010046
+:1061500008762A78520862F3820008762A78920834
+:1061600062F3C30008762A78D20862F30410087636
+:1061700024212046FCF7CEFF33E035B30871301DF3
+:1061800088613078400908777078C0F3400048771C
+:10619000287800F00102887F62F301008877A27FEF
+:1061A000D20962F382008877E27F62F3C3008877C6
+:1061B000727862F304108877A878C87701F1210219
+:1061C00028462031FEF71DFF03E00320087105205B
+:1061D000087625212046FCF79DFFA07F20F0400097
+:1061E000A07701A900980EF0F5F8022801D000B1BF
+:1061F000FFDF38463CE72DE9FF4F534A0D4699B083
+:106200009A4607CA0AAB002783E807001998FDF7EA
+:106210001AF9060006D03078262806D008201DB0CE
+:10622000BDE8F08F43F20200F9E7B07F00F0030908
+:10623000B9F1020F0AD05DB91B98FEF79DFE002848
+:10624000EDD1B07F00F00300022801D11B9890BB74
+:10625000B07F00F00300022808D0002080F0010188
+:1062600019980CF0C7FB040003D101E00120F5E709
+:10627000FFDF852D28D007DCF5B1812D1ED0822DC2
+:106280001ED0832D08D11DE0862D1FD0882D1FD054
+:10629000892D1FD08A2D1FD00F2020710F281DD0CF
+:1062A00003F02AF9E0B101208DF83C00201D109088
+:1062B0002079B8B15BE111E00020EEE70120ECE7C6
+:1062C0000220EAE70320E8E70520E6E70620E4E706
+:1062D0000820E2E70920E0E70A20DEE707209EE742
+:1062E00011209CE7B9F1020F03D0A56F03D1A06F75
+:1062F00002E0656FFAE7606F804632D04FF0010030
+:1063000001904FF002000090214630461B9AFEF7A4
+:1063100057FE1B98007800F00101A87861F3010096
+:10632000A870B17FC90961F38200A870F17F61F3A1
+:10633000C300A870617861F30410A8702078400948
+:10634000287003E02C0200206C5A02006078C0F331
+:10635000400068701B988078E87000206871287190
+:1063600003E00220019001200090A87898F8021024
+:10637000C0F3C000C1F3C00108405FEA000B2DD09C
+:106380005046FAF7A0FF78BBDAF80C00FAF79BFF4B
+:1063900050BBDAF81C00FAF796FF28BBDAF80C00BD
+:1063A000A060DAF81C00E060607898F8012042EA0A
+:1063B000500100BF61F34100607098F80210C0B254
+:1063C00000EA111161F3000060700020207700994D
+:1063D00006F11700022908D0012107E0607898F83B
+:1063E000012002EA5001E5E732E0002104EB8101DF
+:1063F00048610199701C022901D0012100E00021AF
+:1064000004EB81014861A87800F00300012857D10E
+:1064100098F8020000F00300012851D1B9F1020FF1
+:1064200004D02A1D691D1B98FEF7EBFD287998F80A
+:10643000041008408DF83400697998F8052011405F
+:106440008DF8381008433BD05046FAF73CFF08B1AE
+:106450001020E4E60AF110010491B9F1020F17D0FF
+:106460000846002104F18C03CDE9000304F5AE7267
+:1064700002920DAB5A462046FEF70CFE0028E8D1EA
+:10648000B9F1020F08D0504608D14FF0010107E0E2
+:1064900050464FF00101E5E70498F5E74FF00001A1
+:1064A00004F1A403CDE9000304F5B072029281F077
+:1064B00001010EAB5A462046FEF7ECFD0028C8D17C
+:1064C0006078800734D4A87898F80210C0F3800070
+:1064D000C1F3800108432BD0297898F800000AAA5C
+:1064E000B9F1020F06D032F811204300DA4002F071
+:1064F00003070AE032F810204B00DA4012F00307DD
+:1065000005D0012F0BD0022F0BD0032F07D0BBF1EA
+:10651000000F0DD0012906D0042904D008E002277D
+:10652000F5E70127F3E7012801D0042800D104276B
+:10653000B07F40F08000B077F17F6BF30001F1771E
+:106540006078800706D50320A071BBF1000F0ED143
+:10655000002028E00220022F18D0012F18D0042F8D
+:1065600029D00020A071B07F20F08000B0772521D5
+:106570003046FCF7CFFD0FA904F1E0000DF00FFF4E
+:1065800010B1022800D0FFDF002048E6A071DFE74D
+:10659000A0710D2104F120001FF091F8207840F047
+:1065A0000200207001208DF85C0017AA314619986E
+:1065B00000F094FADBE70120A071D8E72DE9F04361
+:1065C00087B09046894604460025FCF73CFF06004C
+:1065D00006D03078272806D0082007B0BDE8F08321
+:1065E00043F20200F9E7B07F00F00300022809D06F
+:1065F0005FF0000080F0010120460CF0FBF9040080
+:1066000003D101E00120F5E7FFDFA7795FEA090088
+:1066100005D0012821D0B9F1020F26D110E0B8F140
+:10662000000F22D1012F05D0022F05D0032F05D056
+:10663000FFDF2DE00C252BE0012529E0022527E0D6
+:106640004046FAF740FEB0B9032F0ED11022414662
+:1066500004F11D001EF092FF1AE0012F02D0022F5C
+:1066600003D104E0B8F1000F12D00720B5E740468F
+:10667000FAF729FE08B11020AFE7102104F11D0040
+:106680001EF0FBFF0621404607F0FAFDC4F81D008E
+:106690002078252140F0020020703046FCF73AFDBA
+:1066A0002078C10713D020F00100207002208DF85F
+:1066B000000004F11D0002908DF804506946C330BB
+:1066C0000DF06DFE022803D010B1FFDF00E025774A
+:1066D000002082E730B587B00D460446FCF7B3FED4
+:1066E000A0B1807F00F00300022812D05FF000000C
+:1066F00080F0010120460CF07DF904000ED0284600
+:10670000FAF7E1FD38B1102007B030BD43F20200C6
+:10671000FAE70120ECE72078400701D40820F3E7EE
+:10672000294604F13D00202205461EF027FF20786F
+:1067300040F01000207001070FD520F008002070F5
+:1067400007208DF80000694604F1E00001950DF086
+:1067500026FE022801D000B1FFDF0020D4E770B58B
+:106760000D460646FCF76FFE18B10178272921D1A6
+:1067700002E043F2020070BD807F00F003000228B7
+:1067800008D0002080F0010130460CF033F90400FD
+:1067900003D101E00120F5E7FFDFA079022809D14C
+:1067A0006078C00706D02A4621463046FEF702FD33
+:1067B00010B10FE0082070BDB4F860000E280BD2B5
+:1067C00004F1620102231022081F0BF09AFF01213D
+:1067D00001704570002070BD112070BD70B5064677
+:1067E00014460D460846FAF76EFD18B92046FAF72A
+:1067F00090FD08B1102070BDA6F57F40FF380ED087
+:106800003046FCF720FE38B1417822464B08811C07
+:106810001846FCF7E8FD07E043F2020070BD204691
+:10682000FDF7F4FD0028F9D11021E01D0FF025FB44
+:10683000E21D294604F1170000F087F9002070BD21
+:106840002DE9F04104468AB01546884600270846DF
+:10685000FAF786FD18B92846FAF782FD10B1102024
+:106860000AB006E42046FCF7EEFD060003D03078BF
+:1068700027281AD102E043F20200F1E7B07F00F0CE
+:106880000300022808D0002080F0010120460CF00F
+:10689000B1F8040003D101E00120F5E7FFDF207823
+:1068A000400702D56078800701D40820D8E7B07F80
+:1068B00000F00300022803D0A06F03D1A16F02E013
+:1068C000606FFAE7616F407800B19DB1487810B110
+:1068D000B8F1000F0ED0ADB1EA1D06A8E16800F0D6
+:1068E00034F9102206A905F117001EF01BFE18B19D
+:1068F000042707E00720B3E71022E91D04F12D006B
+:106900001EF03CFEB8F1000F06D0102208F107017E
+:1069100004F11D001EF032FE2078252140F0020017
+:1069200020703046FCF7F6FB2078C10715D020F028
+:106930000100207002208DF8000004F11D0002907B
+:10694000103003908DF804706946B3300DF027FDC8
+:10695000022803D010B1FFDF00E0277700207FE797
+:10696000F8B515460E460746FCF76DFD040004D049
+:106970002078222804D00820F8BD43F20200F8BD98
+:10698000A07F00F00300022802D043F20500F8BD0A
+:106990003046FAF798FC18B92846FAF794FC08B183
+:1069A0001020F8BD00953288B31C21463846FEF70A
+:1069B00024FC112815D00028F3D1297C4A08A17F96
+:1069C00062F3C711A177297CE27F61F30002E277CD
+:1069D000297C890884F82010A17F21F04001A1774B
+:1069E000F8BDA17F0907FBD4D6F80200C4F8360031
+:1069F000D6F80600C4F83A003088A086102229464E
+:106A000004F124001EF0BAFD287C4108E07F61F308
+:106A10004100E077297C61F38200E077287C8008E0
+:106A200084F82100A07F40F00800A0770020D3E781
+:106A300070B50D4606460BB1072070BDFCF703FD8F
+:106A4000040007D02078222802D3A07F800604D437
+:106A5000082070BD43F2020070BDADB1294630463A
+:106A60000AF030FF02F05EFB297C4A08A17F62F346
+:106A7000C711A177297CE27F61F30002E277297CCC
+:106A8000890884F8201004E030460AF03EFF02F046
+:106A900049FBA17F21F02001A17770BD70B50D46A3
+:106AA000FCF7D1FC040005D02846FAF732FC20B1EF
+:106AB000102070BD43F2020070BD29462046FEF74B
+:106AC0004AFB002070BD04E010F8012B0AB1002041
+:106AD0007047491E89B2F7D20120704770B515463C
+:106AE000064602F009FD040000D1FFDF207820F007
+:106AF0000F00801C20F0F000203020706680286895
+:106B0000A060BDE8704002F0FABC10B5134C94F8D8
+:106B10003000002808D104F12001A1F110000DF08F
+:106B200080FC012084F8300010BD10B190F8B9202D
+:106B30002AB10A4890F8350018B1002003E0B830B7
+:106B400001E0064834300860704708B50023009320
+:106B500013460A460CF049F908BD00002C0200203B
+:106B600018B18178012938D101E0102070470188DF
+:106B700042F60112881A914231D018DC42F6010225
+:106B8000A1EB020091422AD00CDC41B3B1F5C05F09
+:106B900025D06FF4C050081821D0A0F57060FF38E0
+:106BA0001BD11CE001281AD002280AD117E0B0F549
+:106BB000807F14D008DC012811D002280FD00328D0
+:106BC0000DD0FF2809D10AE0B0F5817F07D0A0F5EC
+:106BD0008070033803D0012801D0002070470F20B7
+:106BE00070470A281FD008DC0A2818D2DFE800F016
+:106BF000191B1F1F171F231D1F21102815D008DC6C
+:106C00000B2812D00C2810D00D2816D00F2806D132
+:106C10000DE011280BD084280BD087280FD003203B
+:106C200070470020704705207047072070470F20ED
+:106C3000704704207047062070470C20704743F2CD
+:106C40000200704738B50C46050041D06946FFF791
+:106C5000AFF9002819D19DF80010607861F30200A7
+:106C600060706946681CFFF7A3F900280DD19DF8F4
+:106C70000010607861F3C5006070A978C1F341012C
+:106C8000012903D0022905D0072038BD217821F041
+:106C9000200102E0217841F020012170410704D059
+:106CA000A978C90861F386106070607810F0380F19
+:106CB00007D0A978090961F3C710607010F0380F88
+:106CC00002D16078400603D5207840F04000207063
+:106CD000002038BD70B50446002008801546606865
+:106CE000FFF7B0FF002816D12089A189884211D86A
+:106CF00060688078C0070AD0B1F5007F0AD840F2FA
+:106D00000120B1FBF0F200FB1210288007E0B1F582
+:106D1000FF7F01D90C2070BD01F2012129800020E4
+:106D200070BD10B50478137864F300031370047811
+:106D3000640864F3410313700478A40864F38203C5
+:106D400013700478E40864F3C3031370047824090F
+:106D500064F3041313700478640964F34513137027
+:106D60000078800960F38613137031B10878C10789
+:106D700001D1800701D5012000E0002060F3C71396
+:106D8000137010BD4278530702D002F0070306E0EB
+:106D900012F0380F02D0C2F3C20300E001234A7898
+:106DA00063F302024A70407810F0380F02D0C0F34B
+:106DB000C20005E0430702D000F0070000E0012018
+:106DC00060F3C5024A7070472DE9F04F95B00D0091
+:106DD000824612D0122128461EF04FFC4FF6FF7B50
+:106DE00005AA0121584607F066F8002426463746D2
+:106DF0004FF420586FF4205973E0102015B0BDE80F
+:106E0000F08F00BF9DF81E0001280AD1BDF81C10AC
+:106E100041450BD011EB09000AD001280CD0022803
+:106E20000CD0042C0ED0052C0FD10DE0012400E075
+:106E30000224BDF81A6008E0032406E00424BDF82B
+:106E40001A7002E0052400E00624BDF81A1051452E
+:106E500047D12C74BEB34FF0000810AA4FF0070AB8
+:106E6000CDE90282CDE900A80DF13C091023CDF84F
+:106E7000109042463146584607F0D0F808BBBDF89E
+:106E80003C002A46C0B210A90DF041FBC8B9AE8142
+:106E9000CFB1CDE900A80DF1080C0AAE40468CE850
+:106EA0004102132300223946584607F0B7F840B98B
+:106EB000BDF83C00F11CC01EC0B22A1D0DF027FB1E
+:106EC00010B103209AE70AE0BDF82900E881062CFA
+:106ED00005D19DF81E00A872BDF81C002881002075
+:106EE0008CE705A806F0F3FF00288BD0FFF779FEAA
+:106EF00084E72DE9F0471C46DDE90978DDF82090AC
+:106F000015460E00824600D1FFDF0CB1208818B173
+:106F1000D5B11120BDE8F087022D01D0012100E09C
+:106F2000002106F1140005F0B5FEA8F800000246A5
+:106F30003B462946504603F04EF9C9F8000008B90F
+:106F4000A41C3C600020E5E71320E3E7F0B41446FE
+:106F5000DDE904528DB1002314B1022C09D101E006
+:106F6000012306E00D7CEE0703D025F00105012387
+:106F70000D742146F0BC03F0B9BF1A80F0BC704715
+:106F80002DE9FE4F91461A881C468A468046FAB182
+:106F900002AB494603F01FF9050019D04046A61C74
+:106FA00027880BF06BFE3246072629463B460096A3
+:106FB0000BF079FA20882346CDE900504A46514625
+:106FC0004046FFF7C3FF002020800120BDE8FE8F70
+:106FD0000020FBE72DE9F04786B082460EA89046D8
+:106FE00090E8B000894604AA05A903A88DE8070027
+:106FF0001E462A4621465046FFF77BFF039901B102
+:1070000001213970002818D1F94904F1140204ABA8
+:107010000860039805998DE80700424649465046A6
+:1070200006F0EFF9A8B1092811D2DFE800F0050851
+:107030000510100A0C0C0E00002006B06AE71120A3
+:10704000FBE70720F9E70820F7E70D20F5E7032025
+:10705000F3E7BDF810100398CDE9000133462A4646
+:1070600021465046FFF772FFE6E72DE9F04389B06D
+:107070000D46DDE9108781461C461646142103A8FB
+:107080001EF01DFB012002218DF810108DF80C0060
+:107090008DF81170ADF8146064B1A278D20709D0F0
+:1070A0008DF81600E088ADF81A00A088ADF8180039
+:1070B000A068079008A80095CDE90110424603A9F1
+:1070C00048466B68FFF786FF09B0BDE8F083F0B56E
+:1070D0008BB000240646069407940727089405A859
+:1070E0000994019400970294CDE903400D461023C2
+:1070F0002246304606F092FF78B90AA806A9019404
+:1071000000970294CDE90310BDF8143000222946FF
+:10711000304606F059FD002801D0FFF762FD0BB0A4
+:10712000F0BD06F0F9BB2DE9FC410C468046002677
+:1071300002F0E2F9054620780D287DD2DFE800F064
+:10714000BC0713B325BD49496383AF959B00A8488D
+:10715000006820B1417841F010014170ADE0404637
+:1071600002F0FAF9A9E0042140460BF043FC0700C5
+:1071700000D1FFDF07F11401404605F01FFDA5BB5C
+:1071800013214046FDF71CFC97E0042140460BF01C
+:1071900031FC070000D1FFDFE088ADF800000020DF
+:1071A000B8819DF80000010704D5C00602D5A0886B
+:1071B000B88105E09DF8010040067ED5A088F881E1
+:1071C00005B9FFDF22462946404601F0BDFC0226F4
+:1071D00073E0E188ADF800109DF8011009060FD5A5
+:1071E000072803D006280AD00AE024E004214046FC
+:1071F0000BF000FC060000D1FFDFA088F081022622
+:10720000CDB9FFDF17E0042140460BF0F3FB070088
+:1072100000D1FFDF07F1140006F0B5FB90F0010F7D
+:1072200002D1E079000648D5387C022640F0020001
+:10723000387405B9FFDF00E03EE0224629464046AB
+:1072400001F082FC39E0042140460BF0D3FB017CC5
+:10725000002D01F00206C1F340016171017C21F0B3
+:1072600002010174E7D1FFDFE5E702260121404674
+:1072700002F0A4F921E0042140460BF0BBFB0546D7
+:10728000606800902089ADF80400012269464046FC
+:1072900002F0B5F9287C20F0020028740DE0002DE2
+:1072A000C9D1FFDFC7E7022600214046FBF70CF9F2
+:1072B000002DC0D1FFDFBEE7FFDF3046BDE8FC8117
+:1072C0003EB50C0009D001466B4601AA002006F02D
+:1072D00027FF20B1FFF785FC3EBD10203EBD0020FA
+:1072E0002080A0709DF8050002A900F00700FEF7BD
+:1072F0007BFE50B99DF8080020709DF8050002A99A
+:10730000C0F3C200FEF770FE08B103203EBD9DF839
+:10731000080060709DF80500C109A07861F30410B1
+:10732000A0709DF80510890961F3C300A0709DF855
+:107330000410890601D5022100E0012161F3420019
+:107340009DF8001061F30000A07000203EBD70B5F4
+:10735000144606460D4651EA040005D075B10846AC
+:10736000F9F7F5FF78B901E0072070BD29463046EE
+:1073700006F037FF10B1BDE8704032E454B120464A
+:10738000F9F7E5FF08B1102070BD21463046BDE891
+:10739000704095E7002070BD2DE9FC5F0C469046DB
+:1073A0000546002701780822007A3E46B2EB111FFD
+:1073B0007ED104F10A0100910A31821E4FF0020AC7
+:1073C00004F1080B0191092A73D2DFE802F0ECDF27
+:1073D00005F427277AA9CD00688804210BF00AFB61
+:1073E000060000D1FFDFB08920B152270726C2E096
+:1073F0009002002051271026002C7DD06888A080A4
+:107400000120A071A88900220099FFF7A0FF0028A1
+:1074100073D1A8892081288AE081D1E0B5F8129043
+:10742000072824D1E87B000621D5512709F1140053
+:1074300086B2002CE1D0A88900220099FFF787FFCF
+:1074400000285AD16888A08084F806A0A8892081E5
+:107450000120A073288A2082A4F81290A88A0090A4
+:1074600068884B46A969019A01F04BFBA8E05027B8
+:1074700009F1120086B2002C3ED0A889002259469C
+:10748000FFF765FF002838D16888A080A889E080D0
+:10749000287A072813D002202073288AE081E87B0D
+:1074A000C0096073A4F81090A88A0090688801E071
+:1074B00083E080E04B4604F11202A969D4E7012081
+:1074C000EAE7B5F81290512709F1140086B2002CB2
+:1074D00066D0688804210BF08DFA83466888A08006
+:1074E000A88900220099FFF732FF00286ED184F8A6
+:1074F00006A0A889208101E052E067E00420A07383
+:10750000288A2082A4F81290A88A009068884B46A6
+:10751000A969019A01F0F5FAA989ABF80E104FE0BC
+:107520006888FBF790FF0746688804210BF062FA31
+:10753000064607B9FFDF06B9FFDF687BC00702D048
+:107540005127142601E0502712264CB36888A080EA
+:10755000502F06D084F806A0287B594601F0E1FAA6
+:107560002EE0287BA11DF9E7FE49A88949898142BF
+:1075700005D1542706269CB16888A08020E05327B7
+:107580000BE06888A080A889E08019E06888042161
+:107590000BF030FA00B9FFDF55270826002CF0D198
+:1075A000A8F8006011E056270726002CF8D068885C
+:1075B000A080002013E0FFDF02E0012808D0FFDFF9
+:1075C000A8F800600CB1278066800020BDE8FC9F11
+:1075D00057270726002CE3D06888A080687AA0711E
+:1075E000EEE7401D20F0030009B14143091D01EB06
+:1075F0004000704713B5DB4A00201071009848B175
+:10760000002468460BF013F8002C02D1D64A0099EA
+:1076100011601CBD01240020F4E770B50D4606463C
+:1076200086B014465C2128461EF049F804B9FFDFF5
+:10763000A0786874A2782188284601F09CFA00207E
+:10764000A881E881228805F11401304605F09BFAF3
+:107650006A460121304606F02EFC19E09DF8030031
+:10766000000715D5BDF806103046FFF730FD9DF830
+:107670000300BDF8061040F010008DF80300BDF8BF
+:107680000300ADF81400FF233046059A06F074FDA0
+:10769000684606F01CFC0028E0D006B070BD10B5AE
+:1076A0000C4601F1140005F0A5FA0146627C204663
+:1076B000BDE8104001F094BA30B50446A94891B035
+:1076C0004FF6FF75C18905AA284606F0F4FB30E0A5
+:1076D0009DF81E00A0422AD001282AD1BDF81C0026
+:1076E000B0F5205F03D042F60101884221D100208D
+:1076F00002AB0AAA0CA9019083E8070007200090BA
+:10770000BDF81A1010230022284606F087FC38B96D
+:10771000BDF828000BAAC0B20CA90CF0F8FE10B1FD
+:10772000032011B030BD9DF82E00A04201D10020F1
+:10773000F7E705A806F0CBFB0028C9D00520F0E745
+:1077400070B5054604210BF055F9040000D1FFDFA8
+:1077500004F114010C46284605F030FA214628466B
+:10776000BDE8704005F031BA70B58AB00C460646E7
+:10777000FBF769FE050014D02878222827D30CB126
+:10778000A08890B101208DF80C0003208DF8100026
+:1077900000208DF8110054B1A088ADF818002068C1
+:1077A00007E043F202000AB070BD0920FBE7ADF824
+:1077B00018000590042130460BF01CF9040000D19C
+:1077C000FFDF04F1140005F02CFA000701D40820B3
+:1077D000E9E701F091FE60B108A802210094CDE92B
+:1077E000011095F8232003A930466368FFF7F2FBE8
+:1077F000D9E71120D7E72DE9F04FB2F802A0834670
+:1078000089B0154689465046FBF71DFE0746042100
+:1078100050460BF0EFF80026044605964FF002089C
+:107820000696ADF81C6007B9FFDF04B9FFDF4146DB
+:10783000504603F0C6FE50B907AA06A905A88DE870
+:1078400007004246214650466368FFF752FB454811
+:1078500007AB0660DDE9051204F11400CDF80090D5
+:10786000CDE90320CDE9013197F823205946504650
+:107870006B6805F01FFA06000AD0022E04D0032E12
+:1078800014D0042E00D0FFDF09B03046BDE8F08FE1
+:10789000BDF81C000028F7D00599CDE9001042463C
+:1078A000214650466368FFF751FBEDE7687840F0EA
+:1078B00008006870E8E72DE9F04F99B004464FF0F2
+:1078C00000082848ADF81C80ADF82080ADF8248071
+:1078D000A0F80880ADF81480ADF81880ADF82C80C1
+:1078E000ADF82880007916460D464746012808D095
+:1078F000022806D0032804D0042802D0082019B09A
+:10790000C4E72046F9F7DFFC80BB2846F9F7DBFC2B
+:1079100060BB6068F9F724FD40BB606848B16089CE
+:107920002189884202D8B1F5007F01D90C20E6E711
+:1079300080460EAA06A92846FFF7CCF90028DED11A
+:1079400068688078C0F34100022808D19DF81900CA
+:1079500010F0380F03D02869F9F7F9FC30B905A900
+:10796000206904E0900200201400002020E0FFF7CE
+:1079700069F90028C3D1206948B1607880079DF873
+:10798000150000F0380001D5F0B300E0E0BB9DF831
+:10799000140080060ED59DF8150010F0380F03D0A6
+:1079A0006068F9F7D4FC18B96068F9F7D9FC08B138
+:1079B0001020A4E70AA96069FFF744F900289ED1C6
+:1079C000606940B19DF8290000F0070101293CD110
+:1079D00010F0380F39D00BA9A069FFF733F9002850
+:1079E0008DD19DF8280080062FD49DF82C008006AC
+:1079F0002BD4A06950B19DF82D0000F0070101299A
+:107A000023D110F0380F00E01FE01ED0E06818B15D
+:107A10000078D0B11C2818D20FAA611C2046FFF7AD
+:107A200080F90121384661F30F2082468DF852100B
+:107A3000B94642F603000F46ADF850000DF13F0283
+:107A400018A928680CF082FD08B1072057E79DF8B7
+:107A5000600015A9CDF80090C01CCDE9019100F09F
+:107A6000FF0B00230BF20122514614A806F066F921
+:107A7000F0BBBDF854000C90FD492A89286900929A
+:107A8000CDE901016B89BDF838202868069906F018
+:107A900055F901007ED120784FF0020AC10601D4C9
+:107AA00080062BD5ADF80C90606950B90AA906A8DC
+:107AB000FFF768F99DF8290020F00700401C8DF8B9
+:107AC00029009DF8280008A940F0C8008DF828007A
+:107AD0008DF8527042F60210ADF8500003AACDF8AE
+:107AE00000A0CDE90121002340F2032214A800E008
+:107AF0001EE00A9906F022F901004BD1DC484D4600
+:107B000008385B460089ADF83D000FA8CDE902902A
+:107B1000CDF80490CDF810904FF007090022CDF871
+:107B20000090BDF854104FF6FF7006F04DF810B1FC
+:107B3000FFF757F8E3E69DF83C00000625D52946F7
+:107B4000012060F30F218DF852704FF42450ADF8EE
+:107B50005000ADF80C5062789DF80C00002362F3E1
+:107B600000008DF80C006278CDF800A0520862F396
+:107B700041008DF80C0003AACDE9012540F2032253
+:107B800014A806F0DBF8010004D1606888B320690E
+:107B9000A8B900E086E005A906A8FFF7F3F8607829
+:107BA000800706D49DF8150020F038008DF81500E8
+:107BB00005E09DF8140040F040008DF814008DF8A9
+:107BC000527042F60110ADF85000208940F20121B8
+:107BD000B0FBF1F201FB1202606809ABCDF8008046
+:107BE000CDE90103002314A8059906F0A7F80100C8
+:107BF00058D12078C00729D0ADF80C50A06950B9F1
+:107C00000BA906A8FFF7BEF89DF82D0020F007008D
+:107C1000401C8DF82D009DF82C008DF8527040F01E
+:107C200040008DF82C0042F60310ADF8500007A973
+:107C300003AACDF800A0CDE90121002340F20322E0
+:107C400014A80B9906F07AF801002BD1E06868B30C
+:107C50002946012060F30F218DF8527042F604107E
+:107C6000ADF85000E068002302788DF85820407885
+:107C70008DF85900E06816AA4088ADF85A00E0680F
+:107C800000798DF85C00E068C088ADF85D00CDF843
+:107C90000090CDE901254FF4027214A806F04EF8C9
+:107CA000010003D00C9800F0C7FF28E670480321BC
+:107CB0000838017156B100893080BDF82400708009
+:107CC000BDF82000B080BDF81C00F080002016E652
+:107CD00070B501258AB016460B46012802D002284D
+:107CE00016D104E08DF80E504FF4205003E08DF8CB
+:107CF0000E5042F60100ADF80C005BB10024601C90
+:107D000060F30F2404AA08A918460CF01FFC18B150
+:107D1000072048E5102046E504A99DF82020544896
+:107D2000CDE90021801E02900023214603A802F223
+:107D3000012206F003F810B1FEF753FF33E54C487B
+:107D400008380EB1C1883180057100202BE5F0B5EF
+:107D500093B0074601268DF83E6041F60100ADF86C
+:107D60003C0012AA0FA93046FFF7B2FF002848D105
+:107D70003F4C0025083CE7B31C2102A81DF09FFCE6
+:107D80009DF808008DF83E6040F020008DF8080056
+:107D900042F60520ADF83C000E959DF83A0011958D
+:107DA00020F00600801C8DF83A009DF838006A46E5
+:107DB00020F0FF008DF838009DF8390009A920F067
+:107DC000FF008DF839000420ADF82C00ADF830002C
+:107DD0000EA80A9011A80D900FA80990ADF82E508A
+:107DE00002A8FFF768FD00280BD1BDF800006081F4
+:107DF00000E008E0BDF80400A081401CE08125718E
+:107E0000002013B0F0BD6581A581BDF84800F4E7FE
+:107E10002DE9F74F1649A0B00024083917940A79C4
+:107E2000A146012A04D0022A02D0082023B02DE561
+:107E3000CA88824201D00620F8E721988A46824209
+:107E400001D10720F2E701202146ADF848004FF6A6
+:107E5000FF788DF86E0042F6020B60F30F21ADF84B
+:107E60004A80ADF86CB006918DF8724002E00000D7
+:107E7000980200201CA9ADF870401391ADF8508015
+:107E800012A806F048F800252E462F460DAB072213
+:107E900012A9404606F042F878B10A285DD195B3A0
+:107EA0008EB3ADF86450ADF866609DF85E008DF855
+:107EB000144019AC012864D06BE09DF83A001FB360
+:107EC000012859D1BDF8381059451FD118A809A962
+:107ED00001940294CDE9031007200090BDF83610FC
+:107EE00010230022404606F099F8B0BBBDF86000B0
+:107EF000042801D006284AD1BDF8241021988142D7
+:107F00003AD10F2092E73AE0012835D1BDF8380088
+:107F1000B0F5205F03D042F6010188422CD1BAF8B7
+:107F20000600BDF83610884201D1012700E0002785
+:107F300005B19EB1219881421ED118A809AA0194C9
+:107F40000294CDE90320072000900D461023002263
+:107F5000404606F063F800B902E02DE04E460BE023
+:107F6000BDF86000022801D0102810D1C0B217AAB5
+:107F700009A90CF0CCFA50B9BDF8369086E7052077
+:107F800054E705A917A8221D0CF0E0FA08B1032058
+:107F90004CE79DF814000023001DC2B28DF8142098
+:107FA00022980092CDE901401BA8069905F0C6FE73
+:107FB00010B902228AF80420FEF713FE36E710B546
+:107FC0000B46401E88B084B205AA00211846FEF771
+:107FD000A8FE00200DF1080C06AA05A901908CE866
+:107FE0000700072000900123002221464FF6FF7072
+:107FF00005F0EAFD0446BDF81800012800D0FFDFB7
+:108000002046FEF7EEFD08B010BDF0B5F74F044670
+:1080100087B038790E46032804D0042802D00820FF
+:1080200007B0F0BD04AA03A92046FEF753FE0500E1
+:10803000F6D160688078C0F3410002280AD19DF82B
+:108040000D0010F0380F05D02069F9F780F908B15C
+:108050001020E5E7208905AA21698DE807006389DA
+:10806000BDF810202068039905F068FE10B1FEF7F6
+:10807000B8FDD5E716B1BDF8140030800420387182
+:108080002846CDE7F8B50C0006460CD001464FF661
+:10809000FF7500236A46284606F042F828B100BF63
+:1080A000FEF79FFDF8BD1020F8BD69462046FEF79B
+:1080B000C9FD0028F8D1A078314600F00103284618
+:1080C000009A06F059F8EBE730B587B01446002265
+:1080D0000DF1080C05AD01928CE82C0007220092EE
+:1080E0000A46014623884FF6FF7005F06DFDBDF886
+:1080F00014102180FEF775FD07B030BD70B50D4638
+:1081000004210AF077FC040000D1FFDF294604F1C6
+:108110001400BDE8704004F07DBD70B50D4604212B
+:108120000AF068FC040000D1FFDF294604F11400C6
+:10813000BDE8704004F091BD70B50D4604210AF011
+:1081400059FC040000D1FFDF294604F11400BDE80A
+:10815000704004F0A9BD70B5054604210AF04AFC40
+:10816000040000D1FFDF214628462368BDE87040A7
+:108170000122FEF705BF70B5064604210AF03AFC5D
+:10818000040000D1FFDF04F1140004F033FD401DB2
+:1081900020F0030511E0011D00880022431821464C
+:1081A0003046FEF7EDFE00280BD0607CABB2684392
+:1081B00082B2A068011D0AF0DAFAA068418800299D
+:1081C000E9D170BD70B5054604210AF013FC040026
+:1081D00000D1FFDF214628466368BDE870400222D7
+:1081E000FEF7CEBE70B50E46054601F085F90400D7
+:1081F00000D1FFDF0120207266726580207820F0B8
+:108200000F00001D20F0F00040302070BDE87040ED
+:1082100001F075B910B50446012900D0FFDF2046F2
+:10822000BDE810400121FAF74FB92DE9F04F97B0A2
+:108230004FF0000A0C008346ADF814A0D04619D0C8
+:10824000E06830B1A068A8B10188ADF81410A0F8BA
+:1082500000A05846FBF7F7F8070043F2020961D087
+:10826000387822285CD3042158460AF0C3FB050065
+:1082700005D103E0102017B0BDE8F08FFFDF05F156
+:10828000140004F0B7FC401D20F00306A07801287C
+:1082900003D0022801D00720EDE7218807AA58461D
+:1082A00005F009FE30BB07A805F011FE10BB07A8BA
+:1082B00005F00DFE48B99DF82600012805D1BDF84E
+:1082C0002400A0F52451023902D04FF45050D2E7D7
+:1082D000E068B0B1CDE902A00720009005AACDF872
+:1082E00004A00492A2882188BDF81430584605F0F5
+:1082F0006BFC10B1FEF775FCBDE7A168BDF814007A
+:1083000008809DF81F00C00602D543F20140B2E785
+:108310000B9838B1A1780078012905D080071AD4CC
+:108320000820A8E74846A6E7C007F9D002208DF844
+:108330003C00A8684FF00009A0B1697C42887143F5
+:1083400091420FD98AB2B3B2011D0AF0C6F9804634
+:10835000A0F800A006E003208DF83C00D5F80080CE
+:108360004FF001099DF8200010F0380F00D1FFDF19
+:108370009DF820001E49C0F3C200084497F823105E
+:1083800010F8010C884201D90F2074E72088ADF85D
+:10839000400014A90095CDE90191434607220FA999
+:1083A0005846FEF717FE002891D19DF8500050B9AD
+:1083B000A078012807D1687CB3B2704382B2A86864
+:1083C000011D0AF09EF9002055E770B506461546D6
+:1083D0000C460846FEF7C4FB002805D12A46214674
+:1083E0003046BDE8704073E470BD11E59002002096
+:1083F000765A020070B51E4614460D0009D044B1ED
+:10840000616831B138B1FC49C988814203D0072085
+:1084100070BD102070BD2068FEF7A2FB0028F9D1C6
+:10842000324621462846BDE87040FFF744BA70B591
+:1084300015460C0006D038B1EF490989814203D0B6
+:10844000072070BD102070BD2068FEF789FB002852
+:10845000F9D129462046BDE87040D6E570B50646FC
+:1084600086B00D4614461046F8F753FFD0BB60683F
+:10847000F8F776FFB0BBA6F57F40FF3803D0304653
+:10848000FAF7E1FF80B128466946FEF79DFC002817
+:108490000CD19DF810100F2008293DD2DFE801F023
+:1084A00008060606060A0A0843F2020006B070BD76
+:1084B0000320FBE79DF80210012908D1BDF8001048
+:1084C000B1F5C05FF2D06FF4C052D142EED09DF84A
+:1084D000061001290DD1BDF80410A1F52851062977
+:1084E00007D200E029E0DFE801F0030304030303FF
+:1084F000DCE79DF80A1001290FD1BDF80810B1F58D
+:10850000245FD3D0A1F60211B1F50051CED00129DC
+:10851000CCD0022901D1C9E7FFDF606878B9002318
+:1085200005AA2946304605F0FBFD10B1FEF759FBC0
+:10853000BCE79DF81400800601D41020B6E76188DE
+:10854000224628466368FFF7BFFDAFE72DE9F043F9
+:10855000814687B0884614461046F8F7DAFE18B10F
+:10856000102007B0BDE8F083002306AA4146484624
+:1085700005F0D6FD18B100BFFEF733FBF1E79DF81B
+:108580001800C00602D543F20140EAE7002507279C
+:1085900005A8019500970295CDE9035062884FF632
+:1085A000FF734146484605F039FD060013D1606867
+:1085B000F8F7AFFE60B960680195CDE90250009709
+:1085C0000495238862884146484605F027FD064603
+:1085D000BDF8140020803046CEE739B1864B0A88BA
+:1085E0009B899A4202D843F2030070471DE610B5FA
+:1085F00086B0814C0423ADF81430638943B1A4895B
+:108600008C4201D2914205D943F2030006B010BD5D
+:108610000620FBE7ADF81010002100910191ADF8A4
+:10862000003002218DF8021005A9029104A90391DE
+:10863000ADF812206946FFF7F8FDE7E72DE9FC47A2
+:1086400081460D460846F8F73EFE88BB4846FAF7D5
+:10865000FAFE5FEA00080AD098F80000222829D321
+:10866000042148460AF0C6F9070005D103E043F2A9
+:108670000200BDE8FC87FFDF07F1140004F0D1FA27
+:1086800006462878012803D0022804D00720F0E706
+:10869000B0070FD502E016F01C0F0BD0A8792C1DE7
+:1086A000C00709D0E08838B1A068F8F70CFE18B10F
+:1086B0001020DEE70820DCE721882A780720B1F5C2
+:1086C000847F35D01EDC40F20315A1F20313A942CA
+:1086D00026D00EDCB1F5807FCBD003DCF9B10129C7
+:1086E00026D1C6E7A1F58073013BC2D0012B1FD173
+:1086F00013E0012BBDD0022B1AD0032BB9D0042BD1
+:1087000016D112E0A1F20912082A11D2DFE802F014
+:108710000B04041010101004ABE7022AA9D007E0E4
+:10872000012AA6D004E0320700E0F206002AA0DA0F
+:10873000CDB200F0E1FE50B198F82300CDE900057C
+:10874000FA89234639464846FEF78FFC91E7112007
+:108750008FE72DE9F04F8BB01F4615460C46834638
+:108760000026FAF770FE28B10078222805D20820EA
+:108770000BB081E543F20200FAE7B80801D0072008
+:10878000F6E7032F00D100274FF6FF79CCB1022D79
+:1087900073D32046F8F7E4FD30B904EB0508A8F1DF
+:1087A0000100F8F7DDFD08B11020E1E7AD1EAAB227
+:1087B0002146484605F08FFD38F8021C88425CD1FE
+:1087C000ADB20D49B80702D58889401C00E00120F0
+:1087D0001FFA80F8F80701D08F8900E04F4605AAFC
+:1087E0004146584605F067FB4FF0070A4FF0000975
+:1087F000DCB320460BE000009002002040881028E7
+:108800003BD8361D304486B2AE4236D2A01902881B
+:108810004245F3D351E000BF9DF8170002074CD545
+:1088200094B304EB0608361DB8F80230B6B2102B2C
+:1088300023D89A19AA4220D8B8F8002091421CD116
+:10884000C0061CD5CDE900A90DF1080C0AAAA11992
+:1088500048468CE80700B8F800100022584605F09A
+:10886000B3F920B1FEF7BDF982E726E005E0B8F8DC
+:108870000200BDF82810884201D00B2078E7B8F834
+:108880000200304486B207E0FFE7C00604D5584630
+:10889000FEF71DFC002888D19DF81700BDF81A10BE
+:1088A00020F010008DF81700BDF81700ADF800009B
+:1088B000FF235846009A05F05FFC05A805F007FB6A
+:1088C00018B9BDF81A10B942A6D9042158460AF0C1
+:1088D00091F8040000D1FFDFA2895AB1CDE900A9C7
+:1088E0004D46002321465846FEF7BFFB0028BBD16A
+:1088F000A5813DE700203BE72DE9FF4F8BB01E46E9
+:1089000017000D464FF0000412D0B00802D0072027
+:108910000FB0B1E4032E00D100265DB10846F8F790
+:1089200016FD28B93888691E0844F8F710FD08B10B
+:108930001020EDE7C64AB00701D5D18900E001213A
+:10894000F0074FF6FF7802D0D089401E00E0404685
+:1089500086B206AA0B9805F0AEFA4FF000094FF068
+:10896000070B0DF1140A38E09DF81B00000734D501
+:10897000CDF80490CDF800B0CDF80890CDE9039A79
+:10898000434600220B9805F049FB60BB05B3BDF8D8
+:1089900014103A8821442819091D8A4230D3BDF8A1
+:1089A0001E2020F8022BBDF8142020F8022BCDE960
+:1089B00000B9CDE90290CDF810A0BDF81E10BDF8A9
+:1089C000143000220B9805F029FB08B103209FE723
+:1089D000BDF814002044001D84B206A805F077FA03
+:1089E00020B10A2806D0FEF7FCF891E7BDF81E106A
+:1089F000B142B9D934B17DB13888A11C884203D2C3
+:108A00000C2085E7052083E722462946404605F0ED
+:108A100062FC014628190180A41C3C80002077E7F5
+:108A200010B50446F8F775FC08B1102010BD884851
+:108A3000C0892080002010BDF0B58BB00D460646E1
+:108A4000142103A81CF03BFE01208DF80C008DF8CA
+:108A5000100000208DF81100ADF814503046FAF7E0
+:108A6000F2FC48B10078222812D30421304609F0E4
+:108A7000C1FF040005D103E043F202000BB0F0BDDA
+:108A8000FFDF04F11400074604F0CBF8800601D4A0
+:108A90000820F3E7207C022140F00100207409A89F
+:108AA0000094CDE90110072203A930466368FEF760
+:108AB00091FA20B1217C21F001012174DEE72946E1
+:108AC0003046F9F7F2FC08A9384604F099F800B1ED
+:108AD000FFDFBDF82040172C01D2172000E0204610
+:108AE000A84201D92C4602E0172C00D217242146B7
+:108AF0003046FFF712FB21463046F9F7FCF900201B
+:108B0000BCE7F8B51C4615460E46069F0AF0A4F8C9
+:108B10002346FF1DBCB231462A46009409F08FFC63
+:108B2000F8BD70B50C4605460E2120461CF0A5FD8B
+:108B3000002020802DB1012D01D0FFDF70BD062067
+:108B400000E00520A07170BD10B54880087813467C
+:108B500020F00F00001D20F0F00080300C4608705F
+:108B60001422194604F108001CF04DFD00F0C7FC6A
+:108B70003748046010BD2DE9F047DFF8D890491D53
+:108B8000064621F0030117460C46D9F8000009F00B
+:108B90006CFD050000D1FFDF4FF000083560A5F83F
+:108BA00000802146D9F8000009F05FFD050000D1E2
+:108BB000FFDF7560A5F800807FB104FB07F1091D98
+:108BC0000BD0D9F8000009F050FD040000D1FFDF00
+:108BD000B460C4F80080BDE8F087C6F80880FAE702
+:108BE0002DE9F0411746491D21F00302194D0646B3
+:108BF00001681446286809F063FD224671682868F8
+:108C000009F05EFD3FB104FB07F2121D03D0B1680D
+:108C1000286809F055FD042009F094FE044604205C
+:108C200009F098FE201A012804D12868BDE8F04117
+:108C300009F010BDBDE8F08110B50C4605F007F94C
+:108C400000B1FFDF2046BDE81040FDF7CABF0000BD
+:108C5000900200201400002038B50C468288817BE9
+:108C600019B14189914200D90A462280C188121D5A
+:108C700090B26A4608F04FFFBDF80000032800D309
+:108C80000320C1B2208801F011F838BD38B50C4678
+:108C90008288817B19B10189914200D90A462280DC
+:108CA000C188121D90B26A4608F035FFBDF8000079
+:108CB000022800D30220C1B2208800F0F7FF401C38
+:108CC000C0B238BD2DE9FE4F82468B46F9481446A6
+:108CD0000BF10302D0E90010CDE9011022F00302EC
+:108CE00068464FF49071009209F0A1FCF24E002CFE
+:108CF00002D1F24A00999160009901440091357FB8
+:108D000005F1010504D1E8B20BF09AFB00B1FFDFD9
+:108D1000009800EB0510C01C20F0030100915CB925
+:108D2000707AB27A1044C2B200200870308C80B2DF
+:108D300004F015FF00B1FFDF0098316A084400908D
+:108D40002146684600F075FF80460098C01C20F060
+:108D500003000090B37AF27A717A04B1002009F02E
+:108D60005CFD0099084400902146684600F0A9FF88
+:108D7000D14800273D4690F801900CE0284600F0CD
+:108D80003BFF064681788088F9F74CF971786D1CB5
+:108D900000FB0177EDB24D45F0D10098C01C20F0EA
+:108DA0000300009004B100203946F9F746F9009914
+:108DB000002708440090C0483D4690F801900CE020
+:108DC000284600F019FF0646C1788088FEF709FCA6
+:108DD00071786D1C00FB0177EDB24D45F0D1009824
+:108DE000C01C20F00300009004B100203946FEF7BB
+:108DF00001FC00994FF0000908440090AE484D4630
+:108E000047780EE0284600F0F7FE0646807B30B13A
+:108E100006F1080001F019FF727800FB02996D1C41
+:108E2000EDB2BD42EED10098C01C20F003000090CE
+:108E300004B10020494601F00CFF0099084400905D
+:108E40002146684600F0AFFE0098C01D20F00700E4
+:108E50000090DAF80010814204D3A0EB0B01B1F5C9
+:108E6000803F04DB4FF00408CAF8000004E0CAF8B1
+:108E70000000B8F1000F02D04046BDE8FE8F34BBC1
+:108E80008F490020009A03F083F8FBF75CFA8A48C8
+:108E900001AA00211030F8F7E1FA00B1FFDF86489F
+:108EA000407FFEF754FF00B1FFDF83484FF4F671B7
+:108EB00040301CF004FC80480421403080F8E91167
+:108EC00080F8EA11062180F8EB11032101710020DE
+:108ED000D3E770B5784C06464034207804EB401553
+:108EE000E078083590B9A01990F8E80100280ED074
+:108EF000A0780F2800D3FFDF202128461CF0DFFBDD
+:108F0000687866F3020068700120E070284670BD42
+:108F10002DE9F04105460C460027007805219046D2
+:108F20003E46B1EB101F00D0FFDF287A50B1012878
+:108F30000ED0FFDFA8F800600CB12780668000200B
+:108F4000BDE8F0810127092674B16888A08008E097
+:108F50000227142644B16888A0802869E060A88AA6
+:108F60002082287B2072E5E7A8F80060E7E730B5AB
+:108F7000514C012000212070617020726072032228
+:108F8000A272E07221732174052121831F21618364
+:108F900060744CA161610A2121776077474D4FF4DD
+:108FA000B06020626868C11C21F00301814200D0DA
+:108FB000FFDF6868606030BD30B5404C156863689D
+:108FC00010339D4202D20420136030BD3A4B5D78CD
+:108FD0005A6802EB0512107051700320D0801720E0
+:108FE00090800120D0709070002090735878401CC1
+:108FF0005870606810306060002030BD70B5064663
+:109000002D480024457807E0204600F0F5FD017862
+:10901000B14204D0641CE4B2AC42F5D1002070BD72
+:10902000F7B5074608780C4610B3FFF7E7FF05468B
+:10903000A7F12006202F06D0052E19D2DFE806F072
+:109040000F2B2B151A0000F0E2FD0DB1697800E03E
+:109050000021401AA17880B20844FF2808D8A078DF
+:1090600030B1A088022831D202E0608817282DD2C2
+:109070000720FEBD207AE0B161881729F8D3A188C6
+:109080001729F5D3A1790029F2D0E1790029EFD091
+:10909000402804D9ECE7242F18D1207A48B1618800
+:1090A0004FF6FB70814202D8A18881420ED904207C
+:1090B000FEBD0BE07C5A0200AC030020180000202B
+:1090C000000000206E5246357800000065B9207817
+:1090D00002AA0121FFF770FF0028E9D12078FFF7ED
+:1090E0008DFF050000D1FFDF052E18D2DFE806F066
+:1090F000030B0E081100A0786870A088E8800FE0CC
+:109100006088A8800CE0A078A87009E0A078E870DA
+:1091100006E054F8020FA8606068E86000E0FFDF36
+:109120000020C5E71A2835D00DDC132832D2DFE83D
+:1091300000F01B31203131272723252D31312931F2
+:109140003131312F0F00302802D003DC1E2821D10D
+:10915000072070473A3809281CD2DFE800F0151BB9
+:109160000F1B1B1B1B1B07000020704743F2040052
+:10917000704743F202007047042070470D2070478B
+:109180000F20704708207047112070471320704748
+:10919000062070470320704710B5007800F00100EA
+:1091A00008F0ABFCBDE81040BCE710B5007818B182
+:1091B000012801D0072010BD08F0EFFCBDE81040E9
+:1091C000B0E710B5007800F0010008F09FFCBDE8A2
+:1091D0001040A7E70EB5017801F001018DF80010ED
+:1091E000417801F001018DF801100178C1F34001CF
+:1091F0008DF802104178C1F340018DF80310017819
+:1092000089088DF80410417889088DF80510817857
+:109210008DF80610C1788DF8071000798DF80800D8
+:10922000684607F095FAFFF77DFF0EBD2DE9F84F70
+:10923000DFF8F883FE4C00264FF490771FE0012002
+:1092400000F082FD0120FFF744FE05463946D8F8BC
+:10925000080009F00AFA686000B9FFDF686807F0E3
+:1092600006F9B0B12846FAF7D5FB284600F072FDA2
+:1092700028B93A466968D8F8080009F021FA94F943
+:10928000E9010428DBDA022009F05CFB074600252F
+:10929000A5E03A466968D8F8080009F011FAF2E743
+:1092A000B8F802104046491C89B2A8F80210B94229
+:1092B00001D3002141800221B8F8020009F09AFB95
+:1092C000002864D0B8F80200694608F088FBFFF770
+:1092D00029FF00B1FFDF9DF8000078B1B8F8020067
+:1092E00009F0CCFC5FEA000900D1FFDF484608F036
+:1092F0003AFF18B1B8F8020002F052F9B8F80200CB
+:1093000009F0AAFC5FEA000900D1FFDF484608F037
+:1093100022FFE0BB0321B8F8020009F06BFB5FEA13
+:10932000000B47D1FFDF45E0DBF8100010B10078FB
+:10933000FF2849D0022000F007FD0220FFF7C9FDF9
+:109340008246484609F013F8CAF8040000B9FFDF66
+:10935000DAF8040009F0DBF8002100900170B8F899
+:1093600002105046AAF8021001F01CFE484609F00F
+:10937000D0F800B9FFDF504600F0ECFC18B99AF8BD
+:109380000100000704D50098CBF8100012E024E09B
+:10939000DBF8100038B10178491C11F0FF010170B1
+:1093A00008D1FFDF06E000221146484600F0F9FB35
+:1093B00000B9FFDF94F9EA01022805DBB8F80200E2
+:1093C00001F0B5FD0028AFD194F9E901042804DBD0
+:1093D000484609F002F900B101266D1CEDB2BD420C
+:1093E00004D294F9EA010228BFF65AAF002E7FF4A6
+:1093F00022AFBDE8F84F032000F0A6BC10B58B4C9F
+:10940000E06008682061AFF2DB10F9F766FD60707C
+:1094100010BD87480021403801708448017085499B
+:109420004160704770B505464FF080500C46D0F84B
+:10943000A410491C05D1D0F8A810C9430904090C8F
+:109440000BD050F8A01F01F0010129704168216084
+:109450008068A080287830B970BD062120460CF0C5
+:109460000CFD01202870607940F0C000607170BD73
+:1094700070B54FF080540D46D4F88010491C0BD1C4
+:10948000D4F88410491C07D1D4F88810491C03D1A2
+:10949000D4F88C10491C0CD0D4F880100160D4F89A
+:1094A00084104160D4F888108160D4F88C10C160B9
+:1094B00002E010210CF0E1FCD4F89000401C0BD12C
+:1094C000D4F89400401C07D1D4F89800401C03D174
+:1094D000D4F89C00401C09D054F8900F28606068B4
+:1094E0006860A068A860E068E86070BD2846BDE8D4
+:1094F000704010210CF0C1BC4D480079E9E470B512
+:109500004B4CE07830B3207804EB4010407A00F008
+:109510000700204490F9E801002800DCFFDF2078F4
+:10952000002504EB4010407A00F00700011991F883
+:10953000E801401E81F8E8012078401CC0B220708C
+:109540000F2800D12570A078401CA0700CF08CFB77
+:10955000E57070BDFFDF70BD3EB50546032109F023
+:1095600049FA0446284609F077FB054604B9FFDFAF
+:10957000206918B10078FF2800D1FFDF01AA6946F1
+:10958000284600F00EFB60B9FFDF0AE0002202A9C6
+:10959000284600F006FB00B9FFDF9DF8080000B187
+:1095A000FFDF9DF80000411E8DF80010EED220690B
+:1095B0000199884201D1002020613EBD70B5054669
+:1095C000A0F57F400C46FF3800D1FFDF012C01D011
+:1095D000FFDF70BDFFF790FF040000D1FFDF2078B0
+:1095E00020F00F00401D20F0F0005030207065800A
+:1095F0000020207201202073BDE870407FE72DE934
+:10960000F04116460D460746FFF776FF040000D1ED
+:10961000FFDF207820F00F00401D20F0F0005030D8
+:109620002070678001202072286805E01800002063
+:10963000EC030020F81300202061A888A082267384
+:10964000BDE8F0415BE77FB5FFF7D8FC040000D12F
+:10965000FFDF02A92046FFF7FFFA054603A92046CF
+:10966000FFF714FB8DF800508DF80100BDF80800DD
+:10967000001DADF80200BDF80C00001DADF804009F
+:10968000E088ADF80600684608F01FFA002800D010
+:10969000FFDF7FBD2DE9F05FF94E8146307810B1D4
+:1096A0000820BDE8F09F4846F7F733FE08B11020C8
+:1096B000F7E7F44C207808B9FFF759FCA17A607AF3
+:1096C0004D460844C4B200F0A2FAA04207D2201AC4
+:1096D000C1B22A460020FFF76FFC0028E1D1716873
+:1096E000E848C91C002721F003017160B3463E46DB
+:1096F0003D46BA463C4690F801800AE0204600F01C
+:109700007BFA4178807B0E4410FB0155641CE4B267
+:109710007F1C4445F2D1C6EBC601DA4E0AEB870046
+:1097200000EB8100F17A00EB850000EB8100DBF8B3
+:1097300004105C464518012229464846FFF7C2FA44
+:10974000070012D00020FFF759FC05000BD005F1EF
+:109750001300616820F00300884200D0FFDF7078BA
+:10976000401E7070656038469BE7002229464846D7
+:10977000FFF7A8FA00B1FFDFD9F8000060604FF6EC
+:10978000FF7060800120207000208AE72DE9F04101
+:109790000446BB4817460E46007810B10820BDE8C5
+:1097A000F0810846F7F78FFD08B11020F7E7B54DB7
+:1097B000287808B9FFF7DBFB601E1E2807D8012CAC
+:1097C00022D13078FE281FD828770020E7E7A4F1BF
+:1097D00020001F2805D8E0B23A463146BDE8F041E6
+:1097E0001EE4A4F140001F2805D831462046BDE8FC
+:1097F000F04100F0D7BAA4F1A0001F2804D800203F
+:10980000A02C03D0A12C06D00720C8E7317801F0A6
+:1098100001016977C3E731680922F82901D38B0771
+:1098200001D01046BBE76B7C03F00303012B04D18E
+:109830006B8BD7339CB28C42F3D82962AFE72DE90A
+:10984000F04781460E460846F7F763FD48B948469B
+:10985000F7F77DFD28B909F1030020F00301494520
+:1098600002D01020BDE8F08786484FF0000A403053
+:10987000817869B14178804600EB4114083437881B
+:1098800032460021204600F073FA050004D027E09C
+:10989000A6F800A00520E5E7B9F1000F24D0308834
+:1098A000B84201D90C251FE0607800F00705284672
+:1098B00000F04AFA08EB0507324697F8E8014946F6
+:1098C000401C87F8E801204607F5F47700F050FACD
+:1098D00005463878401E3870032000F035FA2DB167
+:1098E0000C2D01D0A6F800A02846BBE76078644E96
+:1098F00000F00701012923D002290CD0032934D01C
+:10990000FFDF98F801104046491CC9B288F80110E1
+:109910000F2935D036E0616821B1000702D4608894
+:10992000FFF71AFE98F8EA014746012802D170783D
+:10993000F9F7F2FA97F9EA010428E2DBFFDFE0E742
+:10994000616821B14FF49072B06808F0B9FE98F8E0
+:10995000E9014746032802D17078F9F7DDFA97F953
+:10996000E9010428CDDBFFDFCBE7C00602D5608824
+:10997000FFF7F2FD98F9EB010628C2DBFFDFC0E735
+:1099800080F801A08178491E8170617801F007019B
+:1099900001EB080090F8E811491C80F8E811A3E7F2
+:1099A00070B50D460446F7F78EFC18B92846F7F750
+:1099B000B0FC08B1102070BD29462046BDE87040BB
+:1099C0000AF075BD70B505460AF094FDC4B228468C
+:1099D000F7F7BDFC08B1102070BD35B128782C70A8
+:1099E00018B1A04201D0072070BD2046FDF764FEEB
+:1099F000052805D10AF082FD012801D0002070BDA4
+:109A00000F2070BD70B5044615460E460846F7F7A0
+:109A10005AFC18B92846F7F77CFC08B1102070BD35
+:109A2000022C03D0102C01D0092070BD2A463146EB
+:109A300020460AF06CFD0028F7D0052070BD70B5F7
+:109A400014460D460646F7F73EFC38B92846F7F7A8
+:109A500060FC18B92046F7F77AFC08B1102070BDF9
+:109A60002246294630460AF071FD0028F7D007202B
+:109A700070BD3EB50446F7F74CFC28B110203EBD42
+:109A800018000020AC030020684606F0C8FDFFF770
+:109A900049FB0028F3D19DF806002070BDF80800AE
+:109AA0006080BDF80A00A0800020E8E770B5054698
+:109AB0000C460846F7F74BFC20B93CB12068F7F795
+:109AC00028FC08B1102070BDA08828B12146284686
+:109AD000BDE87040FDF748BE092070BD70B5054671
+:109AE0000C460846F7F7EFFB30B9681E1E2814D85D
+:109AF0002046F7F7E8FB08B1102070BD042D01D90E
+:109B0000072070BD05B9FFDFF84800EB850050F86D
+:109B1000041C2046BDE870400847A5F120001F281E
+:109B200005D821462846BDE87040FAF794BBF02DD1
+:109B300008D0F12DE4D1207808F05CF8BDE8704041
+:109B4000FFF7F0BAA068F7F7BEFB0028D4D1204693
+:109B500008F028F8F2E770B504460D460846F7F716
+:109B6000D8FB30B9601E1E2811D82846F7F7ABFB8A
+:109B700008B1102070BD012C05D0022C03D0032C9D
+:109B800001D0042C01D1062070BD072070BDA4F1C6
+:109B900020001F28F9D829462046BDE87040FAF772
+:109BA000B2BB08F0A7BA38B50446D148007B00F034
+:109BB0000105D9B904F034FB0DB1226800E00022A0
+:109BC000CC484178C06806F018FCCA481030C0780C
+:109BD0008DF8000010B1012802D004E0012000E05F
+:109BE00000208DF80000684606F093FD002D02D09D
+:109BF00020682830206038BD30B5BD4D04466878F7
+:109C0000A04200D8FFDF686800EB041030BD70B5DB
+:109C1000B74800252C46467807E02046FFF7ECFFC2
+:109C20004078641C2844C5B2E4B2B442F5D1284659
+:109C300070BD2DE9F0410C4607464FF0000800F0DA
+:109C4000DEF80646FF2801D94FF013083868C01C1B
+:109C500020F003023A6054EA080421D1A448F3B288
+:109C6000072124300CF00EFB09E0072C10D2DFE8AE
+:109C700004F0060408080A0406009F4804E09F4810
+:109C800002E09F4800E09F480CF01CFB054600E006
+:109C9000FFDFA54200D0FFDF641CE4B2072CE4D351
+:109CA000386800EB06103860404678E5021D5143E5
+:109CB000452900D245210844C01CB0FBF2F0C0B2D7
+:109CC00070472DE9FC5F064689484FF000088B4637
+:109CD0004746444690F8019022E02046FFF78CFF6B
+:109CE000050000D1FFDF687869463844C7B22846CE
+:109CF000FEF7B2FF824601A92846FEF7C7FF0346DA
+:109D0000BDF804005246001D81B2BDF80000001DE0
+:109D100080B208F0EDFE6A78641C00FB0288E4B2B1
+:109D20004C45DAD13068C01C20F003003060BBF134
+:109D3000000F00D000204246394608F0E7FE3168A7
+:109D400008443060BDE8FC9F69494031087100203B
+:109D5000C870704766494031CA782AB10A7801EB69
+:109D600042110831814201D0012070470020704724
+:109D70002DE9F04106460078154600F00F0400205A
+:109D80001080601E0F46052800D3FFDF57482A4683
+:109D9000183800EB8400394650F8043C3046BDE8E2
+:109DA000F041184770B50C46402802D0412806D132
+:109DB00020E0A07861780D18E178814201D9072070
+:109DC00070BD2078012801D9132070BDFF2D08D85F
+:109DD0000AF026FD06460BF0FFFE301A801EA84250
+:109DE00001DA122070BD4248216881602179017337
+:109DF000002070BDBDE87040084600F02BB82DE98A
+:109E0000F047DFF8EC900026344699F8090099F8FD
+:109E10000A2099F801700244D5B299F80B20104439
+:109E200000F0FF0808E02046FFF7E6FE817B40785F
+:109E300011FB0066641CE4B2BC42F4D199F809102D
+:109E400099F80A0029442944414400B101200844FA
+:109E5000304407E538B50446407800F00300012897
+:109E600003D002280BD0072038BD606858B1F7F73F
+:109E700077FAD0B96068F7F76AFA20B915E0606838
+:109E8000F7F721FA88B969462046FCF791F80028CF
+:109E9000EAD1607800F00300022808D19DF80000A4
+:109EA00028B16068F7F753FA08B1102038BD61890E
+:109EB000F8290DD8208988420AD8607800F003027A
+:109EC0000B48012A06D1D731026A89B28A4201D2EF
+:109ED000092038BD94E80E0000F1100585E80E0059
+:109EE0000AB900210183002038BD00009C5A0200FD
+:109EF000AC03002018000020574100001FAD0000F7
+:109F0000E92F0000334201002DE9F04107461446D5
+:109F10008846084601F022FD064608EB88001C2210
+:109F2000796802EBC0000D18688C58B1414638467C
+:109F300001F01CFD014678680078C200082305F195
+:109F400020000CE0E88CA8B14146384601F015FD30
+:109F50000146786808234078C20005F1240008F023
+:109F600006FC38B1062121726681D0E90010C4E9EF
+:109F7000031009E0287809280BD00520207266819B
+:109F80006868E060002028702046BDE8F04101F0DC
+:109F9000DBBC072020726681F4E72DE9F04116460C
+:109FA0000D460746406801EB85011C2202EBC1010A
+:109FB0004418204601F003FD40B10021708865F38C
+:109FC0000F2160F31F4106200CF036FA09202070A3
+:109FD000324629463846BDE8F04195E72DE9F04183
+:109FE0000E46074600241C21F07816E004EB84039B
+:109FF000726801EBC303D25C6AB1FFF77DFA05001A
+:10A0000000D1FFDF6F802A4621463046FFF7C5FFAB
+:10A010000120BDE8F081641CE4B2A042E6D8002033
+:10A02000F7E770B5064600241C21C0780AE000BF9F
+:10A0300004EB8403726801EBC303D5182A782AB1B4
+:10A04000641CE4B2A042F3D8402070BD2821284609
+:10A050001BF013FB706880892881204670BD70B5A5
+:10A06000034600201C25DC780DE000BF00EB8006D5
+:10A070005A6805EBC6063244167816B1128A8A422F
+:10A0800004D0401CC0B28442F0D8402070BDF0B56E
+:10A09000044600201C26E5780EE000BF00EB800798
+:10A0A000636806EBC7073B441F788F4202D15B7899
+:10A0B000934204D0401CC0B28542EFD84020F0BD8E
+:10A0C0000078032801D000207047012070470078F5
+:10A0D000022801D00020704701207047007807282F
+:10A0E00001D000207047012070472DE9F04106465D
+:10A0F00088461078F1781546884200D3FFDF2C7827
+:10A100001C27641CF078E4B2A04201D8201AC4B223
+:10A1100004EB8401706807EBC1010844017821B1A8
+:10A120004146884708B12C7073E72878A042E8D1EF
+:10A13000402028706DE770B514460B880122A240BC
+:10A14000134207D113430B8001230A22011D08F09B
+:10A15000D8FA047070BD2DE9FF4F81B00878DDE9B1
+:10A160000E7B9A4691460E4640072CD4019808F083
+:10A1700085FD040000D1FFDF07F1040820461FFA27
+:10A1800088F107F0C4FE050000D1FFDF2046294614
+:10A190006A4608F00EF90098A0F80370A0F805A030
+:10A1A000284608F0B4F9017869F306016BF3C7118A
+:10A1B000017020461FFA88F107F0ECFE00B9FFDFBE
+:10A1C000019806F08CF806EB0900017F491C017725
+:10A1D00005B0BDE8F08F2DE9F84F0E469A4691463E
+:10A1E0000746032108F006FC0446008DDFF8B88519
+:10A1F000002518B198F80000B0421ED1384608F08A
+:10A200003DFD070000D1FFDF09F10401384689B2A6
+:10A2100007F07DFE050010D0384629466A4608F052
+:10A22000C8F8009800210A460180817006F010F9F4
+:10A230000098C01DCAF8000021E098F80000B04264
+:10A2400016D104F1260734F8341F012000FA06F96C
+:10A2500011EA090F00D0FFDF2088012340EA09003E
+:10A2600020800A22391D384608F066FA067006E09A
+:10A27000324604F1340104F12600FFF75CFF0A21A5
+:10A2800088F800102846BDE8F88FFEB515460C4644
+:10A29000064602AB0C220621FFF79DFF002827D0BF
+:10A2A0000299607812220A70801C487008224A8045
+:10A2B000A07002982988052381806988C180A988B7
+:10A2C0000181E988418100250C20CDE900050622A5
+:10A2D00021463046FFF73FFF2946002266F31F4123
+:10A2E000F02310460BF0FEFF6078801C60700120A8
+:10A2F000FEBDFEB514460D460622064602AB1146CB
+:10A30000FFF769FF002812D0029B1320002118706C
+:10A31000A8785870022058809C800620CDE9000162
+:10A320000246052329463046FFF715FF0120FEBDF2
+:10A330002DE9FE430C46804644E002AB0E22072185
+:10A340004046FFF748FF002841D060681C2267782C
+:10A350008678BF1C06EB860102EBC1014518029806
+:10A360001421017047700A214180698A0181E98ABC
+:10A370004181A9888180A9898181304601F0EEFA66
+:10A38000029905230722C8806F70042028700025D9
+:10A390000E20CDE9000521464046FFF7DCFE2946A8
+:10A3A00066F30F2168F31F41F023002206200BF013
+:10A3B00099FF6078FD49801C607062682046921C9D
+:10A3C000FFF793FE606880784028B6D10120BDE891
+:10A3D000FE83FEB50D46064638E002AB0E2207218D
+:10A3E0003046FFF7F8FE002835D068681C23C17896
+:10A3F00001EB810203EBC20284180298152202705D
+:10A40000627842700A224280A2894281A2888281B7
+:10A41000084601F0A3FA014602988180618AC18052
+:10A42000E18A0181A088B8B10020207000210E20AF
+:10A43000CDE900010523072229463046FFF78BFEB0
+:10A440006A68DB492846D21CFFF74FFE6868C0786F
+:10A450004028C2D10120FEBD0620E6E72DE9FE43DB
+:10A460000C46814644E0204601F093FAD0B302AB9B
+:10A47000082207214846FFF7AEFE0028A7D06068F3
+:10A480001C2265780679AD1C06EB860102EBC10142
+:10A4900047180298B7F81080062101704570042112
+:10A4A0004180304601F05AFA0146029805230722FE
+:10A4B000C180A0F804807D70082038700025CDE9A7
+:10A4C000000521464846FFF746FE294666F30F2160
+:10A4D00069F31F41F023002206200BF003FF607890
+:10A4E000801C60706268B3492046121DFFF7FDFDB5
+:10A4F000606801794029B6D1012068E72DE9F34F62
+:10A5000083B00E4680E0304601F043FA002875D053
+:10A5100071681C2091F8068008EB880200EBC200ED
+:10A520000C184146304601F028FA0146A078C300D5
+:10A5300070684078C20004F1240008F034F907463E
+:10A540008088E18B401A80B2002581B3AA46218B16
+:10A55000814200D808468146024602AB0721039893
+:10A56000FFF739FE010028D0BAF1000F03D0029A9C
+:10A57000B888022510808B46E28B3968A9EB05006C
+:10A580001FFA80FA0A440398009208F077FBED1D49
+:10A59000009A59465346009507F085FFE08B5044DA
+:10A5A00080B2E083B988884209D1012508E0FFE73D
+:10A5B000801C4FF0010A80B2C9E7002008E60025A0
+:10A5C000CDE90095238A072231460398FFF7C3FDA2
+:10A5D000E089401EE0818DB1A078401CA0707068B9
+:10A5E000F178427811FB02F1CAB2816901230E3081
+:10A5F00008F087F880F800800020E08372686E49D8
+:10A600003046921DFFF771FD7068817940297FF413
+:10A610007AAF0120DCE570B5064648680D46144661
+:10A620008179402910D104EB84011C2202EBC10185
+:10A63000084401F0E5F9002806D0686829468471CD
+:10A640003046BDE8704059E770BDFEB50C46074680
+:10A65000002645E0204601F09CF9D8B360681C2232
+:10A66000417901EB810102EBC1014518688900B90C
+:10A67000FFDF02AB082207213846FFF7ACFD0028B8
+:10A6800033D00299607816220A70801C487004202A
+:10A6900048806068407901F061F90146029805231D
+:10A6A000072281806989C1800820CDE90006214602
+:10A6B0003846FFF750FD6078801C6070A889698972
+:10A6C0000844B0F5803F00D3FFDFA88969890844BA
+:10A6D000A8816E81626839492046521DFFF705FD49
+:10A6E000606841794029B5D10120FEBD30B5438C69
+:10A6F000458BC3F3C704002345B1838B641EED1A59
+:10A70000C38A6D1E1D4495FBF3F3E4B22CB100899E
+:10A7100018B1A04200D8204603444FF6FF70834290
+:10A7200000D3034613800C7030BD2DE9FC41074671
+:10A7300016460D46486802EB86011C2202EBC10159
+:10A7400044186A4601A92046FFF7D0FFA089618915
+:10A7500001448AB2BDF80010914212D0081A00D507
+:10A76000002060816868407940280AD1204601F0C5
+:10A770003DF9002805D06868294646713846FFF73C
+:10A7800064FFBDE8FC812DE9FE4F894680461546F1
+:10A790005088032108F02EF98346B8F802004028BB
+:10A7A0000ED240200DE000002C000020C1A00000CF
+:10A7B000CFA00000DDA0000001BA0000EDB900004C
+:10A7C000403880B282460146584601F0E2F800283F
+:10A7D0007ED00AEB8A001C22DBF8041002EBC000DA
+:10A7E0000C18204601F0EBF8002877D1B8F80000EB
+:10A7F000E18A88423CD8A189D1B348456ED1002670
+:10A800005146584601F0B2F8218C0F18608B48B9B8
+:10A81000B9F1020F62D3B8F804006083618A8842FC
+:10A8200026D80226A9EB06001FFA80F9B888A28B69
+:10A83000801A002814DD4946814500DA084683B2B3
+:10A8400068886968029139680A44CDE9003208F0E5
+:10A8500003FADDE90121F61D009B009607F0EFFDEC
+:10A86000A18B01EB090080B2A083618B884207D9DC
+:10A87000688803B052465946BDE8F04F01F0DDB894
+:10A880001FD14FF009002872B8F802006881D7E99B
+:10A890000001C5E90401608BA881284601F054F845
+:10A8A0005146584601F062F80146DBF804000823DF
+:10A8B0000078C20004F1200007F059FF0020A083B7
+:10A8C0006083A0890AF0FF02401EA081688800E032
+:10A8D00004E003B05946BDE8F04F26E7BDE8FE8F1F
+:10A8E0002DE9F041064615460F461C461846F6F778
+:10A8F000EAFC18B92068F6F70CFD08B1102013E443
+:10A900007168688C0978B0EBC10F01D313200BE498
+:10A910003946304601F02AF801467068082300786D
+:10A92000C20005F1200007F0ECFED4E90012C0E9F6
+:10A9300000120020E3E710B50446032108F05AF89E
+:10A940000146007800F00300022805D02046BDE84B
+:10A95000104001F1140298E48A8A2046BDE81040B4
+:10A96000C7E470B50446032108F044F805460146E3
+:10A970002046FFF773FD002816D029462046FFF732
+:10A9800064FE002810D029462046FFF722FD00284B
+:10A990000AD029462046FFF7CBFC002804D02946E0
+:10A9A0002046BDE87040A9E570BD2DE9F0410C4698
+:10A9B00080461EE0E178427811FB02F1CAB281695B
+:10A9C00001230E3007F0D3FE077860681C22C1799E
+:10A9D000491EC17107EB8701606802EBC10146188F
+:10A9E0003946204600F0D5FF18B1304600F0E0FFB0
+:10A9F00020B16068C1790029DCD180E7FEF77CFDD9
+:10AA0000050000D1FFDF0A202872384600F0A6FFBB
+:10AA100068813946204600F0B0FF0146606808238F
+:10AA20004078C20006F1240007F0A1FED0E9001032
+:10AA3000C5E90310A5F80280284600F085FFB0782C
+:10AA400000B9FFDFB078401EB07058E770B50C4613
+:10AA50000546032107F0CEFF01464068C279224433
+:10AA6000C2712846BDE870409FE72DE9FE4F82463F
+:10AA7000507814460F464FF0000800284FD00128A8
+:10AA800007D0022822D0FFDF2068B8606068F86035
+:10AA900024E702AB0E2208215046FFF79CFB00285A
+:10AAA000F2D00298152105230170217841700A2106
+:10AAB0004180C0F80480C0F80880A0F80C8062884B
+:10AAC00082810E20CDE90008082221E0A6783046D8
+:10AAD00000F044FF054606EB86012C22786802EB65
+:10AAE000C1010822465A02AB11465046FFF773FBDC
+:10AAF0000028C9D0029807210170217841700421F3
+:10AB0000418008218580C680CDE9001805230A46CA
+:10AB100039465046FFF71FFB87F80880DEE6A67827
+:10AB2000022516B1022E13D0FFDF2A1D914602AB7B
+:10AB300008215046FFF74FFB0028A5D002980121BD
+:10AB4000022E0170217841704580868002D005E098
+:10AB50000625EAE7A188C180E1880181CDE9009856
+:10AB60000523082239465046D4E710B50446032190
+:10AB700007F040FF014600F108022046BDE8104002
+:10AB800073E72DE9F05F0C4601281DD0957992F806
+:10AB90000480567905EB85011F2202EBC10121F0EB
+:10ABA000030B08EB060111FB05F14FF6FF7202EAF9
+:10ABB000C10909F1030115FB0611F94F21F0031A30
+:10ABC00040B101283DD124E06168E57891F800802A
+:10ABD0004E78DFE75946786807F047FD606000B9B6
+:10ABE000FFDF594660681AF06AFDE57051467868E3
+:10ABF00007F03BFD6168486100B9FFDF60684269AA
+:10AC000002EB09018161606880F80080606846702D
+:10AC100017E0606852464169786807F051FD5A466E
+:10AC20006168786807F04CFD032007F08BFE04464E
+:10AC3000032007F08FFE201A012802D1786807F060
+:10AC400009FD0BEB0A00BDE8F09F0246002102203F
+:10AC500097E773B5D24D0A202870009848B10024B8
+:10AC60004FEA0D0007F0E3FC002C01D10099696068
+:10AC70007CBD01240020F5E770B50C46154638214F
+:10AC800020461AF01CFD012666700A2104F11C0002
+:10AC90001AF015FD05B9FFDF297A207861F301006C
+:10ACA0002070A879002817D02A4621460020FFF7F7
+:10ACB00068FF6168402088706168C87061680871C9
+:10ACC0006168487161688871616828880881616875
+:10ACD000688848816068868170BDC878002802D085
+:10ACE000002201204DE7704770B50546002165F34D
+:10ACF0001F4100200BF0A0FB0321284607F07AFE3D
+:10AD0000040000D1FFDF21462846FFF767F900283D
+:10AD100004D0207840F010002070012070BD2DE993
+:10AD2000FF4180460E460F0CFEF7E6FB050007D0FC
+:10AD30006F800321384607F05DFE040008D106E06D
+:10AD400004B03846BDE8F0411321F9F739BEFFDF02
+:10AD50005FEA080005D0B8F1060F18D0FFDFBDE8A4
+:10AD6000FF8120782A4620F0080020700020ADF8EE
+:10AD7000020002208DF800004FF6FF70ADF80400CD
+:10AD8000ADF8060069463846F9F711FAE7E7C6F369
+:10AD9000072101EB81021C23606803EBC202805C87
+:10ADA000042803D008280AD0FFDFD8E7012000904C
+:10ADB0004FF440432A46204600F008FECFE704B097
+:10ADC0002A462046BDE8F041FFF7E7B82DE9F05FDD
+:10ADD0000027B0F80A9090460C4605463E46B9F169
+:10ADE000400F01D2402001E0A9F140001FFA80FA93
+:10ADF000287AC01E08286BD2DFE800F00D04192065
+:10AE000058363C4772271026002C6CD0D5E9030138
+:10AE1000C4E902015CE070271226002C63D00A22EC
+:10AE200005F10C0104F108001AF0EDFB50E0712768
+:10AE30000C26002C57D0E868A06049E07427102643
+:10AE40009CB3D5E90301C4E902016888032107F036
+:10AE5000D1FD8346FEF750FB02466888508051467C
+:10AE60005846FFF751F833E075270A26ECB1A88958
+:10AE700020812DE076271426BCB105F10C0004F1E9
+:10AE8000080307C883E8070022E07727102664B18B
+:10AE9000D5E90301C4E902016888032107F0AAFD8E
+:10AEA00001466888FFF781FD12E01CE07327082641
+:10AEB000CCB16888032107F09DFD01460078C006EB
+:10AEC00006D56888FFF78AF810B96888F8F786FD14
+:10AED000A8F800602CB12780A4F8069066806888E6
+:10AEE000A0800020AFE6A8F80060FAE72DE9FC4159
+:10AEF0000C461E4617468046032107F07BFD05469B
+:10AF00000A2C0AD2DFE804F0050505050505090944
+:10AF10000907042303E0062301E0FFDF0023CDE956
+:10AF20000076224629464046FFF715F929E438B550
+:10AF30000546A0F57F40FF3830D0284607F08CFE4C
+:10AF4000040000D1FFDF204607F011FA002815D0D9
+:10AF500001466A46204607F02CFA00980321B0F813
+:10AF60000540284607F046FD0546052C03D0402C39
+:10AF700005D2402404E0007A80B1002038BD403C76
+:10AF8000A4B2214600F005FD40B1686804EB8401DD
+:10AF90003E2202EBC101405A0028EFD0012038BD0B
+:10AFA0002C0000202DE9F04F054689B0408807F0BD
+:10AFB00053FE040000D1FFDF06AA2046696800F0B6
+:10AFC000C1FC069C001F34F8031F21806388638046
+:10AFD000228881B28A4205D1042B0AD0052B1DD0CC
+:10AFE000062B15D02A462046FFF7CDFB09B0BDE859
+:10AFF000F08F1646241D2A4621463046F7F73FFAC1
+:10B000000828F3D12A4621463046FCF7F4FBEDE749
+:10B010006888211D6B68FAF739FCE7E717466888EE
+:10B02000032107F0E7FC4FF000088DF80480064686
+:10B03000ADF80680042FD9D36279002AD6D02079C2
+:10B040004FF6FF794FF01C0A13282CD008DC01289A
+:10B0500078D0062847D0072875D0122874D106E08A
+:10B06000142872D0152871D016286DD1ACE10C2FA0
+:10B070006AD1307800F00301022965D140F0080060
+:10B0800030706079B07001208DF804002089ADF82F
+:10B0900008006089ADF80A00A089ADF80C00E089CD
+:10B0A000ADF80E0019E0B07890429FD130780107DA
+:10B0B0009CD5062F9AD120F0080030706888414650
+:10B0C00060F31F4100200BF0B7F902208DF8040057
+:10B0D000ADF808902089ADF80A0068882A4601A9D1
+:10B0E000F9F765F882E7082F80D12789B4F80A902C
+:10B0F000402F01D2402001E0A7F1400080B28046FD
+:10B100000146304600F045FC08B3716808EB880042
+:10B110002C2202EBC000095A4945E3D1FE4807AA98
+:10B12000D0E90210CDE9071060798DF81C0008F015
+:10B13000FF048DF81E4068883146FFF796FC2A46CA
+:10B14000214639E0B6E014E03CE039E0E6E0F248C0
+:10B15000D0E90010CDE907106079ADF820708DF8C6
+:10B160001C00ADF82290688807AA3146FFF77DFCE5
+:10B170003CE7082FB6D16089B4F80880402801D296
+:10B18000402000E0403887B23946304600F001FCEC
+:10B190000028A7D007EB870271680AEBC2000844B9
+:10B1A000028A42459ED1017808299BD14078617975
+:10B1B000884297D1F9B22A463046FEF7EEFE15E7EF
+:10B1C0000E2F07D0CDF81C80CDF8208060798DF847
+:10B1D0001C00C8E76189E7898B46B4F80C903046BB
+:10B1E000FEF73DFFABF14001402901D309204AE0C1
+:10B1F000B9F1170F01D3172F01D20B2043E04028DC
+:10B200000ED000EB800271680AEBC200084401789E
+:10B21000012903D1407861798842A9D00A2032E01F
+:10B220003046FEF7FEFE014640282BD001EB81039D
+:10B2300072680AEBC30002EB0008012288F80020C4
+:10B24000627988F80120706822894089B84200D963
+:10B250003846248A03232B72AA82EF812882A5F81C
+:10B260000C906C82084600F079FB6881A8F8149075
+:10B27000A8F81870A8F80E40A8F810B0284600F0FA
+:10B2800063FBB3E6042005212972A5F80A80E88152
+:10B2900001212973A049D1E90421CDE90721617970
+:10B2A0008DF81C10ADF81E00688807AA3146FFF71C
+:10B2B000DCFBE3E7062FE4D3B078904215D1307879
+:10B2C000010712D520F0080030706888414660F30D
+:10B2D0001F4100200BF0B0F802208DF804002089F7
+:10B2E000ADF80800ADF80A90F7E604213046FEF705
+:10B2F000CEFE04464028C4D00220830300902A4694
+:10B300002146304600F062FB4146688864F30F2115
+:10B3100060F31F4106200BF08FF867E60E2FB0D1C7
+:10B3200004213046FEF7B3FE81464028A9D04146AD
+:10B33000688869F30F2160F31F4106200BF07CF849
+:10B34000208A0790E08900907068A7894089B842F8
+:10B3500000D938468346B4F80A80208905904846CB
+:10B3600000F0FCFA6881079840B10220079B00902A
+:10B370002A464946304600F029FB37E6B8F1170F58
+:10B380001ED3172F1CD30420287200986882EF81E7
+:10B39000A5F810B0A5F80C8009EB89020AEBC200F1
+:10B3A0007168009A0C180598A4F81480A4F818B0D5
+:10B3B000E2812082284600F0C7FA0620207015E6B8
+:10B3C00001200B230090D3E7082FA6D12189304616
+:10B3D000FEF745FE074640289FD007EB87027168BD
+:10B3E0000AEBC2000844804600F0E9FA002894D134
+:10B3F0006489B8F80E002044B0F5803F05D3688812
+:10B400003A46314600F019FBF0E5002C85D0A8F84B
+:10B410000E0068883A463146FFF7FDF8082028728A
+:10B42000384600F09BFA6881AC8127E770B50D467D
+:10B430000646032107F0DEFA040004D02078000756
+:10B4400004D5112070BD43F2020070BD2A4621468A
+:10B450003046FEF71AFF18B9286860616868A06175
+:10B46000207840F008002070002070BD70B50D46B7
+:10B470000646032107F0BEFA040004D02078000736
+:10B4800004D4082070BD43F2020070BD2A46214654
+:10B490003046FEF72EFF00B9A582207820F0080084
+:10B4A0002070002070BD2DE9F04F0E4691B080460F
+:10B4B000032107F09FFA0446404607F0DFFB0746EA
+:10B4C0000020079008900990ADF830000A90029093
+:10B4D0000390049004B9FFDF0DF108091FBBFFDFE3
+:10B4E00021E038460BA9002206F004FE9DF82C004E
+:10B4F00000F07F050A2D00D3FFDF6019017F491E90
+:10B5000001779DF82C0000060DD52A460CA907A846
+:10B51000FEF711FE02E00000AC5A020019F8051017
+:10B52000491C09F80510761EF6B2DAD204F134008F
+:10B53000FA4D04F1260BDFF8E8A304F12A07069080
+:10B5400010E05846069900F06AFA064628700A2864
+:10B5500000D3FFDF5AF8261040468847E08CC05DD4
+:10B56000B04202D0208D0028EBD10A202870EC4D8B
+:10B570004E4628350EE00CA907A800F050FA044604
+:10B58000375D55F8240000B9FFDF55F8242039460F
+:10B5900040469047BDF81E000028ECD111B026E5CA
+:10B5A00010B5032107F026FA040000D1FFDF0A21BD
+:10B5B00004F11C001AF083F8207840F00400207099
+:10B5C00010BD10B50C46032107F014FA2044007F8B
+:10B5D000002800D0012010BD2DE9F84F89461546FE
+:10B5E0008246032107F006FA070004D02846F5F743
+:10B5F0006AFE40B903E043F20200BDE8F88F484616
+:10B60000F5F787FE08B11020F7E7786828B1698858
+:10B610000089814201D90920EFE7B9F800001C2414
+:10B6200018B1402809D2402008E03846FEF7F9FC5E
+:10B630008046402819D11320DFE7403880B2804689
+:10B640000146384600F0A5F948B108EB8800796852
+:10B6500004EBC000085C012803D00820CDE70520DA
+:10B66000CBE7FDF749FF06000BD008EB88007968AF
+:10B6700004EBC0000C18B9F8000020B1E88910B143
+:10B6800013E01120B9E72888172802D36888172803
+:10B6900001D20720B1E7686838B12B1D2246414628
+:10B6A0003846FFF71DF90028A7D104F10C026946BE
+:10B6B0002046FFF71BF8288860826888E082B9F886
+:10B6C000000030B102202070E889A080E889A0B194
+:10B6D0002BE003202070A889A08078688178402919
+:10B6E00005D180F8028039465046FEF721FE4046DB
+:10B6F00000F034F9A9F8000021E07868218B408936
+:10B70000884200D908462083A6F802A0042030729F
+:10B71000B9F800007081E0897082F181208B30825D
+:10B72000A08AB081304600F00FF97868C1784029CE
+:10B7300005D180F8038039465046FEF74AFE0020C6
+:10B740005BE770B50D460646032107F053F9040088
+:10B7500003D0402D04D2402503E043F2020070BD27
+:10B76000403DADB2294600F014F958B105EB850112
+:10B770001C22606802EBC101084400F020F918B1F6
+:10B78000082070BD052070BD2A462146304600F0D5
+:10B7900054F9002070BD2DE9F0410D461646804653
+:10B7A000032107F027F90446402D01D2402500E08F
+:10B7B000403DADB28CB1294600F0EBF880B105EB0D
+:10B7C00085011C22606802EBC1014718384600F071
+:10B7D000F6F838B10820BDE8F08143F20200FAE73C
+:10B7E0000520F8E733463A4629462046FFF778F821
+:10B7F0000028F0D1EAB221464046FEF796FF00202D
+:10B80000E9E72DE9F0410D4616468046032107F091
+:10B81000F1F80446402D01D2402500E0403DAFB292
+:10B8200024B13046F5F74FFD38B902E043F202008B
+:10B83000D1E73068F5F747FD08B11020CBE739466E
+:10B84000204600F0A6F860B107EB87011C22606873
+:10B8500002EBC1014518284600F0B1F818B10820E4
+:10B86000B9E70520B7E7B088A98A884201D90C203A
+:10B87000B1E76168E88C4978B0EBC10F01D31320C0
+:10B88000A9E73946204600F078F8014660680823A9
+:10B890004078C20005F1240006F033FFD6E900121B
+:10B8A000C0E90012FAB221464046FEF7B4FE00207D
+:10B8B00091E72DE9F0470D461F469046814603214A
+:10B8C00007F098F80446402D01D2402001E0A5F190
+:10B8D000400086B23CB14DB13846F5F738FD50B165
+:10B8E0001020BDE8F08743F20200FAE76068C8B1B3
+:10B8F000A0F80C8024E03146204600F04AF888B1D8
+:10B9000006EB86011C22606802EBC101451828463F
+:10B9100000F055F840B10820E3E700002C000020BB
+:10B92000C45A02000520DCE7A5F80880F2B22146DF
+:10B930004846FEF7FAFE1FB1A88969890844388095
+:10B940000020CEE706F035BD017821F00F01491C3B
+:10B9500021F0F00110310170FDF7D1BD10B50446A2
+:10B96000402800D9FFDF4034A0B210BD40684269D2
+:10B970000078484302EBC0007047C2784068037803
+:10B9800012FB03F24378406901FB032100EBC10085
+:10B990007047C2788A4209D9406801EB81011C22B4
+:10B9A00002EBC101405C08B10120704700207047E4
+:10B9B0000078062801D901207047002070470078E0
+:10B9C000062801D00120704700207047F0B401EB39
+:10B9D00081061C27446807EBC6063444049D0526EF
+:10B9E0002670E3802571F0BCFEF78EBA10B5418950
+:10B9F00011B1FFF7DDFF08B1002010BD012010BD1F
+:10BA000010B5C18C8278B1EBC20F04D9C18911B1D4
+:10BA1000FFF7CEFF08B1002010BD012010BD10B50A
+:10BA20000C4601230A22011D06F0A1FE00782188A0
+:10BA3000012282409143218010BDF0B402EB8205C7
+:10BA40001C264C6806EBC505072363554B681C791B
+:10BA5000402C03D11A71F0BCFEF700BDF0BC70475A
+:10BA600010B5EFF3108000F0010472B6F948417888
+:10BA7000491C41704078012801D10AF01DF9002CC1
+:10BA800000D162B610BD70B5F24CA07848B901255E
+:10BA9000A570FFF7E5FF0AF020F920B100200AF0B9
+:10BAA000EAF8002070BD4FF08040E570C0F8045304
+:10BAB000F7E770B5EFF3108000F0010572B6E54CC2
+:10BAC000607800B9FFDF6078401E6070607808B968
+:10BAD0000AF0F6F8002D00D162B670BDDD4810B551
+:10BAE000817821B10021C1708170FFF7E2FF002051
+:10BAF00010BD10B504460AF0F0F8D6498978084020
+:10BB000000D001202060002010BD10B5FFF7A8FF75
+:10BB10000AF0E3F802220123CE49540728B1CE48A7
+:10BB2000026023610320087202E00A72C4F8043341
+:10BB30000020887110BD2DE9F05FDFF8189342787E
+:10BB4000817889F80420002689F80510074689F8CD
+:10BB500006600078DFF804B3354620B1012811D023
+:10BB6000022811D0FFDF0AF0CAF84FF0804498B1E4
+:10BB70000AF0CCF8B0420FD130460AF0CBF80028DA
+:10BB8000FAD041E00126EEE7FFF76AFF5846016868
+:10BB9000C907FCD00226E6E70120E060C4F80451A2
+:10BBA000AF490E600107D1F84412AD4AC1F34231EA
+:10BBB00024321160AA49343108604FF0020AC4F8F7
+:10BBC00004A3A060A7480168C94341F3001101F133
+:10BBD0000108016841F01001016000E020BFD4F8C5
+:10BBE00004010028FAD030460AF094F80028FAD070
+:10BBF000B8F1000F04D19B48016821F010010160E9
+:10BC0000C4F808A3C4F8045199F805004E4688B159
+:10BC1000387878B90AF061F880460AF0F5F90146FB
+:10BC20006FF00042B8F1000F02D0C6E9032101E035
+:10BC3000C6E90312DBF80000C00701D00AF049F89A
+:10BC4000387810B13572BDE8F09F4FF01808C4F88D
+:10BC50000883C4F82C510127C4F81870D4F82C01BB
+:10BC60000028FBD0C4F80C51C4F810517948C01D0D
+:10BC70000AF062F83570FFF748FF6761784930795C
+:10BC800020310860C4F80483DDE770B5050000D1F9
+:10BC9000FFDF4FF080424FF0FF30C2F80803002171
+:10BCA000C2F80011C2F80411C2F80C11C2F8101148
+:10BCB000684C61700AF01DF810B10120A07060702E
+:10BCC00066480068C00701D00AF003F82846BDE8BE
+:10BCD000704030E75F48007A002800D001207047AC
+:10BCE0002DE9FF5F6048D0F800805F4A5F49083265
+:10BCF00011608406D4F8080100B10120D4F82411A1
+:10BD000001B101218A46D4F81C1101B101218946F3
+:10BD1000D4F8201109B1012700E00027D4F8001160
+:10BD200001B101218B46D4F8041101B10121039125
+:10BD3000D4F80C1101B101210291D4F8101101B114
+:10BD40000121444D019129780026009120B1C4F8C9
+:10BD50000861012009F08FFFBAF1000F04D0C4F888
+:10BD60002461092009F087FFB9F1000F04D0C4F85D
+:10BD70001C610A2009F07FFF27B1C4F820610B2065
+:10BD800009F079FF3348C01D09F0DEFF00B1FFDF85
+:10BD9000DFF8C4900127BBF1000F10D0C4F808737E
+:10BDA000E87818B1EE70002009F065FF287A0228C3
+:10BDB00005D1032028720221C9F8001027610398D9
+:10BDC00008B1C4F80461029850B1C4F80C61287A33
+:10BDD000032800D0FFDFC9F800602F72FFF769FE6B
+:10BDE000019838B1C4F81061287A012801D100F017
+:10BDF0005DF86761009838B12E70287A012801D16A
+:10BE0000FFF783FEFFF755FE1248C01D09F0B2FF91
+:10BE10001549091DC1F80080BDE8FF9F0D4810B508
+:10BE2000C01D09F091FF0B4940B1012008704FF08F
+:10BE3000E021C1F80002BDE8104011E6087A0128AF
+:10BE400001D1FFF762FE0348BDE81040C01D09F0B4
+:10BE500091BF00003C000020340C00400C04004066
+:10BE60001805004010ED00E010050240010000013F
+:10BE700070B5224CA07808B909F022FF012085078F
+:10BE8000A861207A002603280AD100BFD5F80C014A
+:10BE900020B9002009F03EFF0028F7D1C5F80C6159
+:10BEA00026724FF0FF30C5F8080370BD70B5134C13
+:10BEB0006079F0B1012803D0A179401E814218DADF
+:10BEC00009F00BFF05460AF09FF86179012902D9B4
+:10BED000A179491CA1710DB1216900E0E168411A05
+:10BEE000022902DA11F1020F06DC0DB1206100E037
+:10BEF000E060BDE8704008E670BD00003C00002036
+:10BF000010B5202000F07FF8202000F08DF84D497A
+:10BF1000202081F80004F5F771FA4B4908604B487E
+:10BF2000D0F8041341F00101C0F80413D0F8041351
+:10BF300041F08071C0F80413424901201C39C1F856
+:10BF4000000110BD10B5202000F05DF83E48002132
+:10BF5000C8380160001D01603D4A481E10603B4A20
+:10BF6000C2F80803384B1960C2F80001C2F860013A
+:10BF700038490860BDE81040202000F055B8344929
+:10BF80003548091F086070473149334808607047D9
+:10BF90002D48C8380160001D521E026070472C49B0
+:10BFA00001200860BFF34F8F70472DE9F041284909
+:10BFB000D0F8188028480860244CD4F800010025E7
+:10BFC000244E6F1E28B14046F5F776F940B900219E
+:10BFD00011E0D4F8600198B14046F5F76DF948B129
+:10BFE000C4F80051C4F860513760BDE8F04120202A
+:10BFF00000F01AB831684046BDE8F04119F08ABB3C
+:10C00000FFDFBDE8F08100280DDB00F01F020121F9
+:10C0100091404009800000F1E020C0F88011BFF39A
+:10C020004F8FBFF36F8F7047002809DB00F01F02AE
+:10C03000012191404009800000F1E020C0F8801209
+:10C040007047000020E000E0C80602400000024007
+:10C050001805024000040240010000010F4A126866
+:10C060000D498A420CD118470C4A12680A4B9A4271
+:10C0700006D101B509F09AFFFFF781FFBDE8014045
+:10C08000074909680958084706480749054A064B01
+:10C090007047000000000000BEBAFECA5400002035
+:10C0A000040000208013002080130020F8B51D46F6
+:10C0B000DDE906470E000AD006F0E0FD2346FF1D2D
+:10C0C000BCB231462A46009406F0EDF9F8BDD0190D
+:10C0D0002246194619F052FA2046F8BD70B50D46B1
+:10C0E0000446102119F0C9FA258117206081A07B30
+:10C0F00040F00A00A07370BD4FF6FF720A8001463F
+:10C1000002200AF099B9704700897047827BD307F3
+:10C1100001D1920703D48089088000207047052050
+:10C120007047827B920700D58181704701460020CD
+:10C13000098841F6FE52114200D00120704700B537
+:10C140000346807BC00701D0052000BD59811846F9
+:10C15000FFF7ECFFC00703D0987B40F00400987312
+:10C16000987B40F001009873002000BD827B52074D
+:10C1700000D509B14089704717207047827B61F371
+:10C18000C302827370472DE9FC5F0E4604460178B6
+:10C190009646012000FA01F14DF6FF5201EA02092C
+:10C1A00062684FF6FF7B1188594502D10920BDE82E
+:10C1B000FC9FB9F1000F05D041F6FE55294201D090
+:10C1C0000120F4E741EA090111801D0014D0002389
+:10C1D0002B7094F800C0052103221F464FF0020A7D
+:10C1E000BCF10E0F76D2DFE80CF0F909252F476479
+:10C1F0006B77479193B4D1D80420D8E76168208940
+:10C200008B7B9B0767D517284AD30B89834247D37B
+:10C210008989172901D3814242D185F800A0A5F868
+:10C2200001003280616888816068817B21F00201B1
+:10C230008173C6E0042028702089A5F80100608978
+:10C24000A5F803003180BCE0208A3188C01D1FFAA8
+:10C2500080F8414524D3062028702089A5F80100E4
+:10C260006089A5F80300A089A5F805000721208AA8
+:10C27000CDE90001636941E00CF0FF00082810D00F
+:10C28000082028702089A5F801006089A5F803001E
+:10C2900031806A1D694604F10C0008F057F910B1AD
+:10C2A0005EE01020EDE730889DF8001008443080F3
+:10C2B00087E00A2028702089A5F80100328044E038
+:10C2C0000C2028702089A5F801006089A5F80300DA
+:10C2D00031803AE082E064E02189338800EB41025A
+:10C2E0001FFA82F843453BD3B8F1050F38D30E222D
+:10C2F0002A700BEA4101CDE90010E36860882A4604
+:10C300007146FFF7D3FEA6F800805AE0402028705F
+:10C3100060893188C01C1FFA80F8414520D32878F5
+:10C32000714620F03F00123028702089A5F80100E6
+:10C330006089CDE9000260882A46E368FFF7B6FE0F
+:10C34000A6F80080287840063BD461682089888060
+:10C3500037E0A0893288401D1FFA80F8424501D29B
+:10C3600004273DE0162028702089A5F80100608987
+:10C37000A5F80300A089CDE9000160882A4671462E
+:10C380002369FFF793FEA6F80080DEE718202870E7
+:10C39000207A6870A6F800A013E061680A88920409
+:10C3A00001D405271CE0C9882289914201D00627C3
+:10C3B00016E01E21297030806068018821F4005148
+:10C3C0000180B9F1000F0BD0618878230022022090
+:10C3D00009F088FF61682078887006E033800327C1
+:10C3E0006068018821EA090101803846DFE62DE90D
+:10C3F000FF4F85B01746129C0D001E461CD03078AA
+:10C40000C10703D000F03F00192801D9012100E045
+:10C4100000212046FFF7AAFEA8420DD32088A0F5F0
+:10C420007F41FF3908D03078410601D4000605D598
+:10C43000082009B0BDE8F08F0720FAE700208DF84A
+:10C4400000008DF8010030786B1E00F03F0C0121D8
+:10C45000A81E4FF0050A4FF002094FF0030B9AB2E5
+:10C46000BCF1200F75D2DFE80CF08B10745E74689D
+:10C47000748C749C74B674BB74C974D574E274748F
+:10C4800074F274F074EF74EE748B052D78D18DF81E
+:10C490000090A0788DF804007088ADF8060030791F
+:10C4A0008DF80100707800F03F000C2829D00ADCDC
+:10C4B000A0F10200092863D2DFE800F012621562E1
+:10C4C0001A621D622000122824D004DC0E281BD022
+:10C4D0001028DBD11BE016281FD01828D6D11FE06A
+:10C4E0002078800701E020784007002848DAEFE054
+:10C4F00020780007F9E72078C006F6E72078800664
+:10C50000F3E720784006F0E720780006EDE7208882
+:10C51000C005EAE720884005E7E720880005E4E752
+:10C520002088C004E1E72078800729D5032D27D192
+:10C530008DF800B0B6F8010082E0217849071FD5D8
+:10C54000062D1DD381B27078012803D0022817D19F
+:10C5500002E0CAE0022000E0102004228DF8002052
+:10C5600072788DF80420801CB1FBF0F2ADF8062043
+:10C5700092B242438A4203D10397ADF80890A7E0F4
+:10C580007AE02078000777D598B282088DF800A06D
+:10C59000ADF80420B0EB820F6ED10297ADF8061013
+:10C5A00096E02178C90667D5022D65D381B20620B1
+:10C5B0008DF80000707802285ED300BFB1FBF0F266
+:10C5C0008DF80400ADF8062092B242438A4253D15E
+:10C5D000ADF808907BE0207880064DD5072003E079
+:10C5E000207840067FD508208DF80000A088ADF89F
+:10C5F0000400ADF80620ADF8081068E020780006C9
+:10C6000071D50920ADF804208DF80000ADF80610B2
+:10C6100002975DE02188C90565D5022D63D381B2FB
+:10C620000A208DF80000707804285CD3C6E72088C3
+:10C63000400558D5012D56D10B208DF80000A0885B
+:10C64000ADF8040044E021E026E016E0FFE7208892
+:10C65000000548D5052D46D30C208DF80000A08894
+:10C66000ADF80400B6F803006D1FADF80850ADF842
+:10C670000600ADF80AA02AE035E02088C00432D5D3
+:10C68000012D30D10D208DF8000021E0208880049C
+:10C6900029D4B6F80100E080A07B000723D5032D44
+:10C6A00021D3307800F03F001B2818D00F208DF8E0
+:10C6B0000000208840F40050A4F80000B6F8010003
+:10C6C000ADF80400ED1EADF80650ADF808B00397C4
+:10C6D00069460598F5F71EFC050008D016E00E2007
+:10C6E0008DF80000EAE7072510E008250EE0307815
+:10C6F00000F03F001B2809D01D2807D00220059913
+:10C7000009F09AFE208800F400502080A07B4007AA
+:10C7100008D52046FFF70AFDC00703D1A07B20F013
+:10C720000400A073284684E61FB5022806D1012024
+:10C730008DF8000088B26946F5F7ECFB1FBD0000DC
+:10C74000F8B51D46DDE906470E000AD006F096FA58
+:10C750002346FF1DBCB231462A46009405F0A3FED5
+:10C76000F8BDD0192246194618F008FF2046F8BD3A
+:10C770002DE9FF4F8DB09B46DDE91B57DDF87CA00E
+:10C780000C46082B05D0E06901F002F950B11020E9
+:10C79000D2E02888092140F0100028808AF8001093
+:10C7A000022617E0E16901208871E2694FF4205107
+:10C7B0009180E1698872E06942F601010181E069D6
+:10C7C000002181732888112140F0200028808AF8F8
+:10C7D0000010042638780A900A2038704FF00209B9
+:10C7E00004F118004D460C9001F095FBB04681E035
+:10C7F000BBF1100F0ED1022D0CD0A9EB0800801C4C
+:10C8000080B20221CDE9001005AB52461E990D9869
+:10C81000FFF796FFBDF816101A98814203D9F74822
+:10C8200000790F9004E003D10A9808B138702FE026
+:10C830004FF00201CDE900190DF1160352461E9981
+:10C840000D98FFF77DFF1D980088401B801B83B269
+:10C85000C6F1FF00984200D203461E990BA8D9B139
+:10C860005FF00002DDF878C0CDE9032009EB060196
+:10C8700089B2CDE901C10F980090BDF816100022D1
+:10C880000D9801F0CBFB387070B1C0B2832807D08F
+:10C89000BDF8160020833AE00AEB09018A19E1E7A6
+:10C8A000022011B0BDE8F08FBDF82C00811901F015
+:10C8B000FF08022D0DD09AF80120424506D1BDF89F
+:10C8C0002010814207D0B8F1FF0F04D09AF8018000
+:10C8D0001FE08AF80180C94800680178052902D163
+:10C8E000BDF81610818009EB08001FFA80F905EBEE
+:10C8F000080085B2DDE90C1005AB0F9A01F00EFBC4
+:10C9000028B91D980088411B4145BFF671AF022D23
+:10C9100013D0BBF1100F0CD1A9EB0800801C81B221
+:10C920000220CDE9000105AB52461E990D98FFF794
+:10C9300007FF1D980580002038700020B1E72DE921
+:10C94000F8439C46089E13460027B26B9AB3491FD2
+:10C950008CB2F18FA1F57F45FF3D05D05518AD880C
+:10C960002944891D8DB200E000252919B6F83C80C4
+:10C970000831414520D82A44BCF8011022F8021B96
+:10C98000BCF8031022F8021B984622F8024B91468D
+:10C9900006F062F94FF00C0C41464A462346CDF8AA
+:10C9A00000C005F04CFDF587B16B00202944A41DA3
+:10C9B0002144088003E001E0092700E0832738468E
+:10C9C000BDE8F88310B50B88848F9C420CD9846B2A
+:10C9D000E018048844B1848824F40044A41D23444E
+:10C9E0000B801060002010BD0A2010BD2DE9F0471B
+:10C9F0008AB00025904689468246ADF81850072730
+:10CA00004BE0059806888088000446D4A8F80060AA
+:10CA100007A8019500970295CDE903504FF40073E4
+:10CA200000223146504601F0F9FA04003CD1BDF82D
+:10CA30001800ADF82000059804888188B44216D10A
+:10CA40000A0414D401950295039521F4004100973E
+:10CA5000049541F4804342882146504601F0B4F8E1
+:10CA600004000BD10598818841F40041818005AA1A
+:10CA700008A94846FFF7A6FF0400DCD000970598F8
+:10CA800002950195039504950188BDF81C3000229C
+:10CA9000504601F099F80A2C06D105AA06A9484685
+:10CAA000FFF790FF0400ACD0ADF8185004E00598F3
+:10CAB000818821F40041818005AA06A94846FFF734
+:10CAC00081FF0028F3D00A2C03D020460AB0BDE82D
+:10CAD000F0870020FAE710B50C46896B86B051B19B
+:10CAE0000C218DF80010A18FADF80810A16B0191F9
+:10CAF0006946FAF718FB00204FF6FF71A063E18743
+:10CB0000A08706B010BD2DE9F0410D460746896BA0
+:10CB10000020069E1446002911D0012B0FD1324669
+:10CB200029463846FFF762FF002808D1002C06D0BE
+:10CB3000324629463846BDE8F04100F038BFBDE82E
+:10CB4000F0812DE9FC411446DDE9087C0E46DDE963
+:10CB50000A15521DBCF800E092B2964502D2072099
+:10CB6000BDE8FC81ACF8002017222A70A5F801600E
+:10CB7000A5F803300522CDE900423B462A46FFF7DF
+:10CB8000DFFD0020ECE770B50C4615464821204635
+:10CB900018F095FD04F1080044F81C0F00204FF632
+:10CBA000FF71E06161842084A5841720E08494F8FB
+:10CBB0002A0040F00A0084F82A0070BD4FF6FF7288
+:10CBC0000A800146032009F037BC30B585B00C4619
+:10CBD0000546FFF780FFA18E284629B101218DF877
+:10CBE00000106946FAF79FFA0020E0622063606354
+:10CBF00005B030BDB0F8400070470000580000207C
+:10CC000090F84620920703D4408808800020F3E77C
+:10CC10000620F1E790F846209207EDD5A0F84410E1
+:10CC2000EAE70146002009880A0700D5012011F033
+:10CC3000F00F01D040F00200CA0501D540F0040019
+:10CC40008A0501D540F008004A0501D540F01000E2
+:10CC50000905D1D540F02000CEE700B5034690F895
+:10CC60004600C00701D0062000BDA3F842101846B8
+:10CC7000FFF7D7FF10F03E0F05D093F8460040F0C5
+:10CC8000040083F8460013F8460F40F001001870C6
+:10CC9000002000BD90F84620520700D511B1B0F831
+:10CCA0004200A9E71720A7E710F8462F61F3C30257
+:10CCB0000270A1E72DE9FF4F9BB00E00DDE92B3498
+:10CCC000DDE92978289D24D02878C10703D000F019
+:10CCD0003F00192801D9012100E000212046FFF77B
+:10CCE000D9FFB04215D32878410600F03F010CD49B
+:10CCF0001E290CD0218811F47F6F0AD13A8842B1E5
+:10CD0000A1F57F42FF3A04D001E0122901D10006CB
+:10CD100002D504201FB0C5E5F9491D984FF0000A5F
+:10CD200008718DF818A08DF83CA00FAA0A60ADF824
+:10CD30001CA0ADF850A02978994601F03F02701F61
+:10CD40005B1C04F1180C4FF0060E4FF0040BCDF8ED
+:10CD500058C01F2A7ED2DFE802F07D7D107D267D3F
+:10CD6000AC7DF47DF37DF27DF17DF47DF07D7D7D04
+:10CD7000EF7DEE7D7D7D7D7DED0094F84610B5F86C
+:10CD80000100890701D5032E02D08DF818B022E3E7
+:10CD90004FF40061ADF85010608003218DF83C1015
+:10CDA000ADF84000D8E2052EEFD1B5F801002083A0
+:10CDB000ADF81C00B5F80310618308B1884201D9B1
+:10CDC00001207FE10020A07220814FF6FF702084B7
+:10CDD000169801F0A0F8052089F8000002200290C2
+:10CDE00083460AAB1D9A16991B9801F097F890BBE1
+:10CDF0009DF82E00012804D0022089F8010010209F
+:10CE000003E0012089F8010002200590002203A917
+:10CE10000BA807F09BFBE8BB9DF80C00059981422D
+:10CE20003DD13A88801CA2EB0B01814237DB02998D
+:10CE30000220CDE900010DF12A034A4641461B9824
+:10CE4000FFF77EFC02980BF1020B801C80B217AA40
+:10CE500003A901E0A0E228E002900BA807F076FB0E
+:10CE600002999DF80C00CDE9000117AB4A464146F6
+:10CE70001B98FFF765FC9DF80C100AAB0BEB01004B
+:10CE80001FFA80FB02981D9A084480B202901699FE
+:10CE90001B9800E003E001F041F80028B6D0BBF198
+:10CEA000020F02D0A7F800B053E20A208DF8180054
+:10CEB0004FE200210391072EFFF467AFB5F80100A0
+:10CEC0002083ADF81C00B5F80320628300283FF4EE
+:10CED00077AF90423FF674AF0120A072B5F805001D
+:10CEE00020810020A073E06900F052FD78B9E1696B
+:10CEF00001208871E2694FF420519180E1698872C4
+:10CF0000E06942F601010181E06900218173F01FAF
+:10CF100020841E98606207206084169800F0FBFF52
+:10CF2000072089F800000120049002900020ADF84D
+:10CF30002A0028E01DE2A3E13AE1EAE016E2AEE0D1
+:10CF400086E049E00298012814D0E0698079012840
+:10CF500003D1BDF82800ADF80E00049803ABCDE96D
+:10CF600000B04A4641461B98FFF7EAFB0498001DB3
+:10CF700080B20490BDF82A00ADF80C00ADF80E00A8
+:10CF8000059880B202900AAB1D9A16991B9800F082
+:10CF9000C5FF28B902983988001D05908142D1D279
+:10CFA0000298012881D0E0698079012805D0BDF878
+:10CFB0002810A1F57F40FF3803D1BDF82800ADF857
+:10CFC0000E00049803ABCDE900B04A4641461B98D9
+:10CFD000FFF7B6FB0298BBE1072E02D0152E7FF4B7
+:10CFE000D4AEB5F801102183ADF81C10B5F80320BC
+:10CFF000628300293FF4E4AE91423FF6E1AE0121A5
+:10D00000A1724FF0000BA4F808B084F80EB0052E02
+:10D0100007D0C0B2691DE26907F079FA00287FF4F1
+:10D0200044AF4FF6FF70208401A906AA14A8CDF8DA
+:10D0300000B081E885032878214600F03F031D9A5F
+:10D040001B98FFF795FB8246208BADF81C0080E112
+:10D050000120032EC3D14021ADF85010B5F80110C6
+:10D060002183ADF81C100AAAB8F1000F00D00023EC
+:10D07000CDE9020304921D98CDF804800090388811
+:10D080000022401E83B21B9800F0C8FF8DF81800E4
+:10D0900090BB0B2089F80000BDF8280037E04FF066
+:10D0A000010C052E9BD18020ADF85000B5F8011081
+:10D0B0002183B5F803002084ADF81C10B0F5007F83
+:10D0C00003D907208DF8180085E140F47C422284C2
+:10D0D0000CA8B8F1000F00D00023CDE90330CDE952
+:10D0E000018C1D9800903888401E83B21B9800F078
+:10D0F00095FF8DF8180028B18328A8D10220BDE043
+:10D10000580000200D2189F80010BDF83000401CA7
+:10D110001EE1032E04D248067FF537AE002017E14A
+:10D12000B5F80110ADF81C102878400602D58DF82E
+:10D130003CE002E007208DF83C004FF0000803209F
+:10D14000CDE902081E9BCDF810801D980193A6F131
+:10D15000030B00901FFA8BF342461B9800F034FD3E
+:10D160008DF818008DF83C80297849060DD5208867
+:10D17000C00506D5208BBDF81C10884201D1C4F82B
+:10D18000248040468DF81880E2E0832801D14FF0DA
+:10D19000020A4FF48070ADF85000BDF81C002083E7
+:10D1A000A4F820B01E986062032060841321CCE0B4
+:10D1B000052EFFF4EAADB5F80110ADF81C10A28FF2
+:10D1C00062B3A2F57F43FE3B28D008228DF83C20B5
+:10D1D0004FF0000B0523CDE9023BDDF878C0CDF818
+:10D1E00010B01D9A80B2CDF804C040F40043009204
+:10D1F000B5F803201B9800F0E7FC8DF83CB04FF425
+:10D2000000718DF81800ADF85010832810D0F8B1D7
+:10D21000A18FA1F57F40FE3807D0DCE00B228DF80E
+:10D220003C204FF6FE72A287D2E7A4F83CB0D2E0D1
+:10D2300000942B4631461E9A1B98FFF780FB8DF811
+:10D24000180008B183284BD1BDF81C00208355E796
+:10D2500000942B4631461E9A1B98FFF770FB8DF801
+:10D260001800E8BBE18FA06B0844811D8DE88203A4
+:10D270004388828801881B98FFF763FC824668E038
+:10D2800095F80180022E70D15FEA080002D0B8F153
+:10D29000010F6AD109208DF83C0007A800908DF895
+:10D2A00040804346002221461B98FFF72CFC8DF856
+:10D2B00042004FF0000B8DF843B050B9B8F1010FA8
+:10D2C00012D0B8F1000F04D1A18FA1F57F40FF3833
+:10D2D0000AD0A08F40B18DF83CB04FF4806000E0E0
+:10D2E00037E0ADF850000DE00FA91B98F9F71BFFD0
+:10D2F00082468DF83CB04FF48060ADF85000BAF132
+:10D30000020F06D0FC480068C07928B18DF81800DB
+:10D3100027E0A4F8188044E0BAF1000F03D0812080
+:10D320008DF818003DE007A80090434601222146F1
+:10D330001B98FFF7E8FB8DF8180021461B98FFF7B4
+:10D34000CAFB9DF8180020B9192189F800100120A6
+:10D3500038809DF83C0020B10FA91B98F9F7E3FE37
+:10D360008246BAF1000F33D01BE018E08DF818E0C8
+:10D3700031E02078000712D5012E10D10A208DF857
+:10D380003C00E088ADF8400003201B9909F054F8F8
+:10D390000820ADF85000C1E648067FF5F6AC4FF026
+:10D3A000040A2088BDF8501008432080BDF85000C2
+:10D3B00080050BD5A18FA1F57F40FE3806D11E98C0
+:10D3C000E06228982063A6864FF0030A5046A1E445
+:10D3D0009DF8180078B1012089F80000297889F8B3
+:10D3E0000110BDF81C10A9F802109DF8181089F85A
+:10D3F0000410052038802088BDF850108843208014
+:10D40000E4E72DE9FF4F8846087895B00121814077
+:10D410004FF20900249C0140ADF820102088DDF86F
+:10D420008890A0F57F424FF0000AFF3A06D039B14C
+:10D43000000705D5012019B0BDE8F08F0820FAE7F4
+:10D44000239E4FF0000B0EA886F800B018995D4699
+:10D450000988ADF83410A8498DF81CB0179A0A71E4
+:10D460008DF838B0086098F8000001283BD00228F9
+:10D4700009D003286FD1307820F03F001D30307084
+:10D48000B8F80400E08098F800100320022904D1C5
+:10D49000317821F03F011B31317094F846100907B3
+:10D4A00059D505ABB9F1000F13D0002102AA82E8CB
+:10D4B0000B000720CDE90009BDF83400B8F80410CE
+:10D4C000C01E83B20022159800F0A8FD0028D1D11B
+:10D4D00001E0F11CEAE7B8F80400A6F80100BDF885
+:10D4E0001400C01C04E198F805108DF81C1098F881
+:10D4F0000400012806D04FF4007A02282CD003281B
+:10D50000B8D16CE12188B8F8080011F40061ADF8D9
+:10D51000201020D017281CD3B4F84010814218D313
+:10D52000B4F84410172901D3814212D1317821F087
+:10D530003F01C91C3170A6F801000321ADF8341079
+:10D54000A4F8440094F8460020F0020084F8460055
+:10D5500065E105257EE177E1208808F1080700F400
+:10D56000FE60ADF8200010F0F00F1BD010F0C00FDF
+:10D5700003D03888228B9042EBD199B9B878C00794
+:10D5800010D0B9680720CDE902B1CDF804B0009001
+:10D59000CDF810B0FB88BA883988159800F014FBD4
+:10D5A0000028D6D12398BDF82010401C80294ED0E9
+:10D5B00006DC10290DD020290BD0402987D124E08A
+:10D5C000B1F5807F6ED051457ED0B1F5806F97D197
+:10D5D000DEE0C80601D5082000E0102082460DA933
+:10D5E00007AA0520CDE902218DF83800ADF83CB03E
+:10D5F000CDE9049608A93888CDE9000153460722F1
+:10D6000021461598FFF7B4F8A8E09DF81C200121E9
+:10D610004FF00A0A002A9BD105ABB9F1000F00D0E8
+:10D620000020CDE902100720CDE90009BDF8340043
+:10D630000493401E83B2218B0022159800F0EEFC6B
+:10D640008DF81C000B203070BDF8140020E09DF810
+:10D650001C2001214FF00C0A002A22D113ABB9F192
+:10D66000000F00D00020CDE902100720CDE900090D
+:10D670000493BDF83400228C401E83B2218B159890
+:10D6800000F0CCFC8DF81C000D203070BDF84C0073
+:10D69000401CADF8340005208DF83800208BADF823
+:10D6A0003C00BCE03888218B88427FF452AF9DF863
+:10D6B0001C004FF0120A00281CD1606AA8B1B8788B
+:10D6C000C0073FF446AF00E018E0BA680720CDE994
+:10D6D00002B2CDF804B00090CDF810B0FB88BA8843
+:10D6E000159800F071FA8DF81C001320307001209D
+:10D6F000ADF8340093E00000580000203988208BFA
+:10D700008142D2D19DF81C004FF0160A0028A06B70
+:10D7100008D0E0B34FF6FF7000215F46ADF808B0C7
+:10D72000019027E068B1B978C907BED1E18F0DAB90
+:10D730000844821D03968DE80C0243888288018884
+:10D7400009E0B878C007BCD0BA680DAB03968DE885
+:10D750000C02BB88FA881598FFF7F3F905005ED034
+:10D76000072D72D076E0019005AA02A92046FFF7A6
+:10D7700029F90146E28FBDF80800824201D0002954
+:10D78000F1D0E08FA16B084407800198E08746E064
+:10D790009DF81C004FF0180A40B1208BC8B13888A2
+:10D7A000208321461598FFF796F938E004F1180018
+:10D7B0000090237E012221461598FFF7A4F98DF8E9
+:10D7C0001C000028EDD1192030700120ADF8340084
+:10D7D000E7E7052521461598FFF77DF93AE020880F
+:10D7E00000F40070ADF8200050452DD1A08FA0F5B9
+:10D7F0007F41FE3901D006252CE0D8F808004FF013
+:10D80000160A48B1A063B8F80C10A1874FF6FF7153
+:10D81000E187A0F800B002E04FF6FF70A087BDF8E6
+:10D82000200030F47F611AD078230022032015995C
+:10D8300008F058FD98F8000020712088BDF82010ED
+:10D84000084320800EE000E007252088BDF8201066
+:10D8500088432080208810F47F6F1CD03AE0218814
+:10D86000814321809DF8380020B10EA91598F9F761
+:10D870005AFC05469DF81C000028EBD086F801A054
+:10D8800001203070208B70809DF81C0030710520C5
+:10D89000ADF83400DEE7A18EE1B118980DAB008839
+:10D8A000ADF834002398CDE90304CDE90139206BAC
+:10D8B0000090E36A179A1598FFF7FCF905460120D6
+:10D8C0008DF838000EA91598F9F72DFC00B1054622
+:10D8D000A4F834B094F8460040070AD52046FFF774
+:10D8E000A0F910F03E0F04D114F8460F20F0040008
+:10D8F00020701898BDF83410018028469BE500B5CB
+:10D9000085B0032806D102208DF8000088B2694650
+:10D91000F9F709FC05B000BD10B5384C0B7822684A
+:10D92000012B02D0022B2AD111E013780BB1052B69
+:10D9300001D10423137023688A889A802268CB88D7
+:10D94000D38022680B891381498951810DE08B882E
+:10D9500093802268CB88D38022680B8913814B89FE
+:10D9600053818B899381096911612168F9F7DBFB88
+:10D97000226800210228117003D0002800D08120E5
+:10D9800010BD832010BD806B002800D0012070479F
+:10D990008178012909D10088B0F5205F03D042F6D3
+:10D9A0000101884201D10020704707207047F0B57F
+:10D9B00087B0002415460E460746ADF8184011E022
+:10D9C00005980088288005980194811DCDE90241C1
+:10D9D000072104940091838842880188384600F02A
+:10D9E000F3F830B905AA06A93046FEF7EBFF002888
+:10D9F000E6D00A2800D1002007B0F0BD5800002072
+:10DA000010B58B7883B102789A4205D10B885BB14F
+:10DA100002E08B79091D4BB18B789A42F9D1B0F8AD
+:10DA200001300C88A342F4D1002010BD812010BD2C
+:10DA3000072826D012B1012A27D103E0497801F046
+:10DA4000070102E04978C1F3C20105291DD2DFE8D0
+:10DA500001F00318080C12000AB1032070470220DD
+:10DA6000704704280DD250B10DE0052809D2801E60
+:10DA7000022808D303E0062803D0032803D005209A
+:10DA80007047002070470F20704781207047C0B258
+:10DA900082060BD4000607D5FE48807A4143C01D9C
+:10DAA00001EBD00080B270470846704700207047F5
+:10DAB00070B513880B800B781C0625D5F54CA47A1D
+:10DAC000844204D843F010000870002070BD9568AF
+:10DAD00000F0070605EBD0052D78F54065F304133B
+:10DAE0000B701378D17803F0030341EA032140F26D
+:10DAF0000123B1FBF3F503FB15119268E41D00FB54
+:10DB0000012000EBD40070BD906870BD37B514469D
+:10DB1000BDF8041011809DF804100A061ED5C1F34B
+:10DB20000013DC49A568897A814208D8FE2811D102
+:10DB3000C91DC9085A42284617F097FD0AE005EBAF
+:10DB4000D00100F00702012508789540A8439340D2
+:10DB500018430870207820F0100020703EBD2DE999
+:10DB6000F0410746C81C0E4620F00300B04202D028
+:10DB70008620BDE8F081C74D002034462E60AF807E
+:10DB80002881AA72E8801AE0E988491CE9808106A8
+:10DB900014D4E17800F0030041EA002040F20121B2
+:10DBA000B0FBF1F201FB12012068FFF770FF298939
+:10DBB000084480B22881381A3044A0600C342078A0
+:10DBC0004107E1D40020D4E72DE9FF4F89B0164684
+:10DBD000DDE9168A0F46994623F44045084600F0D1
+:10DBE0000DFB04000FD0099804F0CAFE02902078C3
+:10DBF00000060AD5A748817A0298814205D8872075
+:10DC00000DB0BDE8F08F0120FAE7224601A9029885
+:10DC1000FFF74EFF834600208DF80C004046B8F118
+:10DC2000070F1AD001222146FFF702FF0028E7D193
+:10DC30002078400611D502208DF80C00ADF8107048
+:10DC4000BDF80400ADF81200ADF814601898ADF8F6
+:10DC50001650CDF81CA0ADF818005FEA094004D5B5
+:10DC600000252E46A84601270CE02178E07801F037
+:10DC7000030140EA012040F20121B0FBF1F28046AD
+:10DC800001FB12875FEA494009D5B84507D1A17861
+:10DC9000207901F0030140EA0120B04201D3BE42E5
+:10DCA00001D90720ACE7A8191FFA80F9B94501D9B5
+:10DCB0000D20A5E79DF80C0028B103A90998F9F7F4
+:10DCC00030FA00289CD1B84507D1A0784FEA192135
+:10DCD00061F30100A07084F804901A9800B10580E7
+:10DCE000199850EA0A0027D0199830B10BEB0600BA
+:10DCF0002A46199917F042FC0EE00BEB060857462E
+:10DD0000189E099804F0A8FF2B46F61DB5B23946B7
+:10DD10004246009504F093FB224601A90298FFF7C2
+:10DD2000C7FE9DF80400224620F010008DF8040084
+:10DD3000DDE90110FFF7EAFE002061E72DE9FF4F62
+:10DD4000DFF8509182461746B9F80610D9F800005E
+:10DD500001EB410100EB810440F20120B2FBF0F144
+:10DD600085B000FB11764D46DDF84C8031460698B3
+:10DD7000FFF78DFE29682A898B46611A0C31014410
+:10DD80001144AB8889B28B4202D8842009B038E7AD
+:10DD90000699CDB2290603D5A90601D50620F5E7D7
+:10DDA000B9F806C00CF1010C1FFA8CFCA9F806C0EA
+:10DDB000149909B1A1F800C0A90602D5C4F80880D9
+:10DDC00007E0104480B2A9F80800191A01EB0B0013
+:10DDD000A0602246FE200699FFF798FEE7702671A4
+:10DDE0002078390A61F30100320AA17840F004007A
+:10DDF00062F30101A17020709AF802006071BAF814
+:10DE00000000E08000262673280602D599F80A70E3
+:10DE100000E00127A80601D54FF000084D46002478
+:10DE20004FF007090FE0CDE902680196CDF80090A8
+:10DE30000496E9882046129B089AFFF7C5FE002841
+:10DE4000A4D1641CE4B2BC42EDD300209EE72DE9CE
+:10DE5000F047804600F0D2F9070005D0002644467E
+:10DE60000C4D40F2012919E00120BDE8F087204661
+:10DE700000F0C4F90278C17802F0030241EA0222FC
+:10DE8000B2FBF9F309FB13210068FFF700FE3044F1
+:10DE900086B201E0F8050020641CA4B2E988601E87
+:10DEA0008142E4DCA8F10100E8802889801B2881F8
+:10DEB00000203870D9E710B5144631B1491E2180D1
+:10DEC00004F05EFDA070002010BD012010BD10B553
+:10DED000D24904460088CA88904201D30A2010BD66
+:10DEE000096800EB400001EB80025079A072D088F5
+:10DEF00020819178107901F0030140EA0120A0818E
+:10DF0000A078E11CFFF7D4FD20612088401C208010
+:10DF1000E080002010BD0121018270472DE9FF4FF4
+:10DF200085B04FF6FF788246A3F8008048681F4608
+:10DF30000D4680788DF8060048680088ADF804002A
+:10DF400000208DF80A00088A0C88A04200D30446FD
+:10DF50002C8241E0288A401C2882701D6968FFF7E6
+:10DF60004FFDB8BB3988414501D1601E38806888B3
+:10DF7000A04236D3B178307901F0030140EA01299B
+:10DF800001A9701DFFF73CFD20BB298941452CD01C
+:10DF9000002231460798FFF74BFDD8B9298949453A
+:10DFA00018D1E9680391B5F80AC0D6F808B0504610
+:10DFB000CDF800C004F050FEDDF800C05A460CF168
+:10DFC000070C1FFA8CFC4B460399CDF800C004F0F7
+:10DFD00000FA50B1641CA4B2204600F00FF906000C
+:10DFE000B8D1641E2C820A20D0E67C807079B8718A
+:10DFF000F088B8803178F07801F0030140EA012020
+:10E000007881A7F80C90504604F0BAFC324607F12C
+:10E010000801FFF74DFD38610020B7E62DE9FF4FFD
+:10E0200087B081461C469246DDF860B0DDF854802A
+:10E03000089800F0E3F805000CD0484604F0A0FC76
+:10E040002978090608D57549897A814204D887203C
+:10E050000BB0D6E50120FBE7CAF309062A4601A961
+:10E06000FFF726FD0746149807281CD000222946F2
+:10E07000FFF7DEFC0028EBD12878400613D50120FD
+:10E080008DF808000898ADF80C00BDF80400ADF854
+:10E090000E00ADF81060ADF8124002A94846F9F73D
+:10E0A00040F80028D4D12978E87801F0030140EA4B
+:10E0B0000121AA78287902F0030240EA022056459D
+:10E0C00007D0B1F5007F04D9611E814201DD0B202C
+:10E0D000BEE7864201D90720BAE7801B85B2A54278
+:10E0E00000D92546BBF1000F01D0ABF800501798BE
+:10E0F00018B1B9192A4617F041FAB8F1000F0DD03E
+:10E100003E4448464446169F04F0B8FD2146FF1D94
+:10E11000BCB232462B46009404F0C5F9002097E7C4
+:10E120002DE9F04107461D461646084600F066F800
+:10E1300004000BD0384604F023FC2178090607D5EB
+:10E140003649897A814203D8872012E5012010E5FB
+:10E1500022463146FFF7ACFC65B12178E07801F04A
+:10E16000030140EA0120B0F5007F01D8012000E062
+:10E17000002028700020FCE42DE9F04107461D46F0
+:10E180001646084600F03AF804000BD0384604F072
+:10E19000F7FB2178090607D52049897A814203D8FF
+:10E1A0008720E6E40120E4E422463146FFF7AEFC96
+:10E1B000FF2D14D02178E07801F0030240EA02201C
+:10E1C00040F20122B0FBF2F302FB130015B900F29A
+:10E1D000012080B2E070000A60F30101217000208C
+:10E1E000C7E410B50C4600F009F828B1C1882180B9
+:10E1F0004079A070002010BD012010BD0749CA88D9
+:10E20000824209D340B1096800EB40006FF00B0275
+:10E2100002EB80000844704700207047F80500209A
+:10E2200010B508F0EFFAF4F741FB08F051F9BDE83A
+:10E23000104008F019BA302834BF01200020704780
+:10E24000202834BF4FF0A0420C4A012300F01F00E9
+:10E2500003FA00F0002914BFC2F80C05C2F8080543
+:10E260007047202834BF4FF0A041044900F01F0040
+:10E27000012202FA00F0C1F81805704700030050AF
+:10E2800070B50346002002466FF02F050EE09C5C3F
+:10E29000A4F130060A2E02D34FF0FF3070BD00EB20
+:10E2A000800005EB4000521C2044D2B28A42EED3DB
+:10E2B00070BD30B50A230BE0B0FBF3F403FB14048C
+:10E2C000B0FBF3F08D183034521E05F8014CD2B279
+:10E2D000002AF1D130BD30B500234FF6FF7510E0B4
+:10E2E000040A44EA002084B2C85C6040C0F303140E
+:10E2F000604005EA00344440E0B25B1C84EA401010
+:10E300009BB29342ECD330BD2DE9F041FA4B00268D
+:10E31000012793F860501C7893F864C0B8B183F873
+:10E320008D40A3F88E1083F88C2083F88A70BCF19E
+:10E33000000F0CBF83F8906083F89050EF4880681E
+:10E34000008804F089FCBDE8F04104F01FB94FF6E5
+:10E35000FF7083F88D40A3F88E0083F88C2083F83B
+:10E360008A70BCF1000F14BF83F8905083F890605E
+:10E37000BDE8F08170B5E14E0446306890F8981021
+:10E380000025012919D090F89210012924D090F885
+:10E39000681001292AD090F88A1001291CBF00209A
+:10E3A00070BD657017212170D0F88C106160B0F8D5
+:10E3B0009010218180F88A5016E065701C21217030
+:10E3C000D0F899106160D0F89D10A16090F8A1106C
+:10E3D000217380F8985007E0657007212170D0F80C
+:10E3E0009410616080F89250012070BD6570142116
+:10E3F000217000F16A012022201D17F0BFF80121D1
+:10E400002172306880F86850BB48B0F86C20A0F8E2
+:10E410009420B268537B80F8963080F89210108870
+:10E4200004F01AFC04F0C1F8DEE7B448006890F884
+:10E430006810002914BFB0F86C004FF6FF707047E9
+:10E4400070B5AE4C06462068002808BFFFDF0025E7
+:10E45000206845706660002808BFFFDF20684178AB
+:10E4600000291CBFFFDF70BDA42117F028F9206828
+:10E47000FF2101707F2180F836101321418428216B
+:10E4800080F86510012180F8581080F85D5008F080
+:10E4900082FEBDE8704008F048B8984909680978DC
+:10E4A00081420CBF0120002070479448006890F81A
+:10E4B0002200C0F3400070479048006890F82200A6
+:10E4C00000F0010070478D48006890F82200C0F30A
+:10E4D000001070472DE9F04388480024016891F846
+:10E4E0002400B1F822C0C0F38002C0F340031A44F4
+:10E4F00000F001000244CCF3001060B3BCF1130F34
+:10E5000021D00BDCBCF1100F02BF7D4830F81200A7
+:10E51000BDE8F083BCF1120F15D008E0BCF1150F77
+:10E5200009D0BCF11D0F04BF7648BDE8F083FFDFC2
+:10E530002046BDE8F0837449002031F8121012FB28
+:10E540000010BDE8F0837149002031F8121012FB71
+:10E550000010BDE8F08391F85A3091F85B002E2648
+:10E560004FF47A774FF014084FF04009022B04BFA4
+:10E570004AF2D745B5FBF7F510D0012B04BF4AF29C
+:10E580002F75B5FBF7F510D04AF62315B5FBF7F557
+:10E59000082B08BF4E4613D0042B18D02646082B54
+:10E5A0000ED0042B13D0022B49D004F12806042BE3
+:10E5B0000FD0082B1CBF4FF01908082304D00AE025
+:10E5C0004FF0140806F5A8764FF0400303E006F577
+:10E5D000A8764FF0100318FB036313FB0253C2EB42
+:10E5E00002124B4D02EB820205EB82021A441CF030
+:10E5F000010F4FF4C8734FF4BF7504BFCCF340064E
+:10E60000002E77D0CCF3400602F5A572EEB10828B3
+:10E6100004BF1E4640270CD0042804BF2E461027F6
+:10E6200007D0022807BF04F11806042704F12806C2
+:10E63000082707EB870808EB87173E441BE004F127
+:10E6400018064FF019080423C5E7082804BF1E4622
+:10E6500040270CD0042804BF2E46102707D00228DC
+:10E6600007BF04F11806042704F12806082707EB62
+:10E67000871706EB8706324402F19C0691F8652065
+:10E6800010F00C0F08BF00223244082804BF1E46B9
+:10E6900040270CD0042804BF2E46102707D002289C
+:10E6A00007BF04F11806042704F128060827C7EB62
+:10E6B000C70707EB470706EB4706324498321CF0C2
+:10E6C000010F27D0082808BF40200CD0042804BF21
+:10E6D0002B46102007D0022807BF04F1180304209E
+:10E6E00004F12803082000EB400101EB001018445E
+:10E6F00002444AE04DE000000406002060000020D3
+:10E70000285B02008E891300305B0200205B020050
+:10E71000D4FEFFFF082804BF9C4640260CD00428E6
+:10E7200004BFAC46102607D0022807BF04F1180C1E
+:10E73000042604F1280C082606EB8616898F0CEBBC
+:10E74000860C6244EB2920D944F2552C0B3101FB95
+:10E750000CF1890D082807D0042802D0022805D022
+:10E7600008E02B46102008E0402006E004F11803E2
+:10E77000042002E004F12803082000EB801003EBE2
+:10E78000800000F5A57001FB002202F26510BDE8D3
+:10E79000F08302F5A572082804BF9C4640260CD0E1
+:10E7A000042804BFAC46102607D0022807BF04F196
+:10E7B000180C042604F1280C082606EB8616B1F87E
+:10E7C00044100CEB860C6244EB29DED944F2552C44
+:10E7D0000B3101FB0CF1890D0828C5D00428C0D0ED
+:10E7E0000228C7D1C2E7FE4840F271210068806A62
+:10E7F00048437047FA48006890F83500002818BF71
+:10E800000120704710B5F74C207B022818BF032861
+:10E8100008D1207D04F115010DF0A1FC08281CBFD2
+:10E82000012010BD207B002816BF022800200120F7
+:10E83000BDE8104009F0C0B9EA4908737047E849DB
+:10E84000096881F8300070472DE9F047E44C2168F1
+:10E85000087B002816BF022800200120487301F120
+:10E860000E0109F093F92168087B022816BF0328DE
+:10E870000122002281F82F204FF0080081F82D009E
+:10E88000487B01F10E034FF001064FF0000701280D
+:10E8900004BF5B7913F0C00F0AD001F10E03012809
+:10E8A00004D1587900F0C000402801D0002000E0D9
+:10E8B000012081F82E00002A04BF91F8220010F0F8
+:10E8C000040F07D0087D01F115010DF048FC216807
+:10E8D00081F82D002068476006F0CEF92168C14D0F
+:10E8E0004FF00009886095F82D000DF054FC80462B
+:10E8F00095F82F00002818BFB8F1000F04D095F844
+:10E900002D000DF00FFA68B195F8300000281CBFFB
+:10E9100095F82E0000281DD0697B05F10E00012915
+:10E920000ED012E06E734A4605F10E01404609F022
+:10E9300082F995F82D1005F10E000DF023FD09E088
+:10E94000407900F0C000402831D0394605F10E0072
+:10E9500009F0A8F92068C77690F8220010F0040F9B
+:10E9600008BFBDE8F087002795F82D000DF08EFA5E
+:10E97000050008BFBDE8F08710210EF04CFA002812
+:10E9800018BFBDE8F08720683A4600F11C01C67642
+:10E99000284609F050F9206800F11C0160680EF06B
+:10E9A00093FE6068BDE8F04701210EF0A8BE0DF0AF
+:10E9B00026FD4A4605F10E0109F03DF9CAE7884AED
+:10E9C0001268137B0370D2F80E000860508A8880AA
+:10E9D000704778B583490446814D407B08732A68A7
+:10E9E000207810706088ADF8000080B200F001015E
+:10E9F000C0F3400341EA4301C0F3800341EA8301CD
+:10EA0000C0F3C00341EAC301C0F3001341EA03119C
+:10EA1000C0F3401341EA4311C0F3801041EA801073
+:10EA20005084E07D012808BF012607D0022808BFD6
+:10EA3000022603D0032814BFFFDF0826286880F8C9
+:10EA40005A60607E012808BF012607D0022808BF4F
+:10EA5000022603D0032814BFFFDF0826286880F8A9
+:10EA60005B60217B80F82410418C1D290CBF0021A4
+:10EA700061688162617D80F83510A17B002916BF35
+:10EA80000229002101210175D4F80F10C0F81510DA
+:10EA9000B4F81310A0F81910A17EB0F8662061F345
+:10EAA0000302A0F86620E17E012918BF002180F84A
+:10EAB0003410002078BD4A480068408CC0F3001133
+:10EAC00031B1C0F38000002804BF1F20704702E06E
+:10EAD000C0F3400109B10020704710F0010F14BFCE
+:10EAE000EE20FF2070473E480068408CC0F30011C4
+:10EAF00019B1C0F3800028B102E0C0F3400008B1B2
+:10EB000000207047012070473549002209680A66D5
+:10EB10004B8C1D2B0CBF81F8642081F8640070477A
+:10EB200000232F4A126882F859309164A2F84C00F1
+:10EB3000012082F859007047294A0023126882F8A0
+:10EB40005830A2F854000120116582F8580070472F
+:10EB50002349096881F85D0070472148006890F9F1
+:10EB60005D0070471E48006890F82200C0F3401016
+:10EB700070471B48006890F82200C0F3C00070473F
+:10EB8000012070471648006890F85B00704770B528
+:10EB900008F0EBFA08F0CAFA08F0A2F908F020FA37
+:10EBA0000F4C2068016E491C016690F83300002567
+:10EBB00030B108F0F0FA07F0B8FC206880F8335064
+:10EBC0002068457090F8371021B1BDE870400420EE
+:10EBD00009F0D7BC90F8641001B3006E814203E0E5
+:10EBE000600000200406002018D8042009F0C9FCA9
+:10EBF000206890F8220010F0010F07D0A06843228F
+:10EC00000188BDE870400120FFF77EBBBDE8704081
+:10EC100043224FF6FF710020FFF776BBBDE870403E
+:10EC2000002009F0AEBC2DE9F04782B00F468146C6
+:10EC3000FE4E4FF000083068458C15F0030F10D0E1
+:10EC400015F0010F05F0020005D0002808BF4FF0B5
+:10EC5000010806D004E0002818BF4FF0020800D1D8
+:10EC6000FFDF4FF0000A544615F0010F05F00200D7
+:10EC70000DD080B915F0040F0DD04AF00800002F18
+:10EC80001CBF40F0010040F0020440D08FE010B102
+:10EC900015F0040F0DD015F0070F10D015F0010F6F
+:10ECA00005F0020036D0002808BF15F0040F27D069
+:10ECB0003DE0002F18BF4AF0090478D134E02FB1AD
+:10ECC0004AF0080415F0200F14D070E0316805F008
+:10ECD0002002B1F84400104308BF4AF0010466D096
+:10ECE0004AF0180415F0200F61D191F85A10082944
+:10ECF00059D155E0316891F85A10082950D152E0A5
+:10ED00004AF00800002F18BF40F001044FD140F036
+:10ED100010044CE0002818BF15F0040F07D0002F96
+:10ED200018BF4AF00B0442D14AF018043FE015F036
+:10ED3000030F3BD115F0040F38D077B131684AF09A
+:10ED4000080091F85A1008290CBF40F0020420F086
+:10ED5000020415F0200F21D029E0316805F02002CF
+:10ED6000B1F84400104308BF4AF003041FD04AF032
+:10ED7000180015F0200F08D091F85A10082914BF78
+:10ED800040F0020420F0020411E091F85A20082A11
+:10ED900014BF40F0010020F00100EDE7082902D087
+:10EDA00024F0010403E044F0010400E0FFDF15F06B
+:10EDB000400F1BD0C7B93168B1F84400002804BF28
+:10EDC000488C10F0010F0BD110F0020F08BF10F0AB
+:10EDD000200F05D115F0010F08BF15F0020F03D069
+:10EDE00091F85A00082801D044F040047068A0F857
+:10EDF00000A0017821F02001017007210EF030FC05
+:10EE0000414670680EF023FE214670680EF02BFE1E
+:10EE100014F0010F0AD006230022854970680EF015
+:10EE2000FCFD3068417B70680EF05CFC14F0020F52
+:10EE300018D0D6E90010B9F1000F4FF006034FF0DB
+:10EE4000010207D01C310EF0E8FD012170680EF0C0
+:10EE500056FC07E015310EF0E0FD3068017D70686A
+:10EE60000EF04DFC14F0040F18BFFFDF14F0080F74
+:10EE700017D0CDF800A03068BDF800100223B0F81C
+:10EE80006600020962F30B01ADF800109DF8011055
+:10EE9000032260F307118DF80110694670680EF0C7
+:10EEA000BCFD012F61D13068B0F84410E9B390F88F
+:10EEB0002200C0F34000C0BB70680EF0C4FD401CCF
+:10EEC000C7B23068B0F84420B0F85610551AC7F1F0
+:10EED000FF018D42A8BF0D46AA423AD990F8220000
+:10EEE00010F0010F35D144F01004214670680EF087
+:10EEF000BAFDF81CC0B2ED1E284482B23068B0F8EA
+:10EF00006610036E090951FA83F190F85C30494F9D
+:10EF10001944BC460023E1FB07C31B096FF0240C16
+:10EF200003FB0C1180F85C1000E01EE090F85B0021
+:10EF3000012101F037F80090BDF800009DF80210A3
+:10EF4000032340EA01400190042201A970680EF0F9
+:10EF500064FD3068AAB2016C70680EF0B2FD3068D2
+:10EF6000B0F856102944A0F8561014F0400F06D0FF
+:10EF7000D6E90010012306225D310EF04EFD14F09B
+:10EF8000200F18BFFFDF0020002818BFFFDF02B0EE
+:10EF9000BDE8F0872DE9F843244C2068002808BF1D
+:10EFA000FFDF2068417839BB0178FF2924D0002693
+:10EFB00080F83160A0F85660867080F8376030467F
+:10EFC00008F022F807F0E2FC206890F95D0007F0F5
+:10EFD00082FD194807F085FD184807F0FBFF6068BF
+:10EFE00008F015F8206890F8240010F0010F06D002
+:10EFF000252007F07EFD09E00C20BDE8F88310F025
+:10F00000020F18BF262075D007F073FD206890F816
+:10F010005A10252007F078FC206880F82C6007F053
+:10F02000EDFF206890F85A10002009E060000020F1
+:10F030001206002053E4B36E1C5B0200195B020051
+:10F0400007F04BFE0F21052007F019FD206890F80E
+:10F050002E10002901BF90F82F10002990F82200EF
+:10F0600010F0040F75D005F007FE0546206829460C
+:10F07000806806F01AFBDFF83084074690FBF8F052
+:10F0800008FB10704142284605F0F7FA21688860B5
+:10F0900097FBF8F04A68104448600DF05DF80146AF
+:10F0A0002068426891426FD8C0E90165FF4D4FF07A
+:10F0B000010895F82D000DF06EF8814695F82F00A7
+:10F0C0000127002818BFB9F1000F04D095F82D00D2
+:10F0D0000CF028FEA8B195F8300000281CBF95F868
+:10F0E0002E00002825D0697B05F10E00012916D0DD
+:10F0F0001AE0FFE710F0040F14BF2720FFDF83D1D1
+:10F1000084E73A466F7305F10E01484608F093FD17
+:10F1100095F82D1005F10E000DF034F909E0407955
+:10F1200000F0C000402815D0414605F10E0008F05F
+:10F13000B9FD206890F8220010F0040F24D095F853
+:10F140002D000CF0A3FE05001ED010210DF063FE73
+:10F1500040B119E00DF053F93A4605F10E0108F0FF
+:10F160006AFDE6E720683A4600F11C01C7762846AA
+:10F1700008F061FD206800F11C0160680EF0A4FA3F
+:10F18000012160680EF0BBFA2068417B0E3007F069
+:10F190005AFC206890F8581059B3B0F85410A0F8F1
+:10F1A0004410016D016490F82210C1F30011E9B917
+:10F1B000B0F8660002210509ADF80050684606F077
+:10F1C0003DFE28B1BDF80000C0F30B00A84204D1F9
+:10F1D000BDF80000401CADF800002168BDF800003B
+:10F1E000B1F8662060F30F12A1F86620206880F85D
+:10F1F0005860206890F8591031B1B0F84C108187F0
+:10F20000816C816380F85960B0F86610026E09095C
+:10F2100051FA82F190F85C20DFF894C21144634601
+:10F220000022E1FB0C3212096FF0240302FB0311F0
+:10F2300080F85C100DF013F8032160680DF092F86F
+:10F24000216881F833000020BDE8F883994988607F
+:10F2500070472DE9F043974C83B0226892F8313023
+:10F260003BB1508C1D2808BFFFDF03B0BDE8F04361
+:10F270008DE401260027F1B1054692F85C0007F005
+:10F2800038FC206890F85B10FF2007F03DFB2068F9
+:10F290004FF4A57190F85B20002007F0E4FD206892
+:10F2A00090F8221011F0030F00F02E81002D00F0D5
+:10F2B000258100F029B992F822108046D07EC1F352
+:10F2C0000011002956D0054660680780017821F0BA
+:10F2D00020010170518C132937D01FDC102908BF81
+:10F2E000022144D0122908BF062140D0FFDF6F4D14
+:10F2F000606805F10E010EF0D9F9697B60680EF0C7
+:10F30000F1F92068418C1D2918BF152965D0B0F886
+:10F310004420016C60680EF0FEF95EE0152918BF0C
+:10F320001D29E3D14FF001010EF09AF960680178D0
+:10F3300041F020010170216885B11C310EF0C4F943
+:10F34000012160680EF0DBF9D1E700210EF088F9A9
+:10F350006068017841F020010170C8E715310EF0B6
+:10F36000B3F92068017D60680EF0C9F9BFE70EF0BF
+:10F3700077F9BCE70021FFF756FC6068C17811F00F
+:10F380003F0F2AD0017911F0100F26D00EF066F948
+:10F390002368024693F82410C1F38000C1F3400CA7
+:10F3A000604401F0010100EB010C93F82C10C1F353
+:10F3B0008000C1F34005284401F001010844ACEB92
+:10F3C0000000C1B293F85A0000F0ECFD0090032356
+:10F3D0000422694660680EF020FB2068002590F842
+:10F3E000241090F82C0021EA000212F0010F18BF3F
+:10F3F00001250ED111F0020F04D010F0020F08BF4A
+:10F40000022506D011F0040F03D010F0040F08BF3E
+:10F410000425B8F1000F2BD0012D1BD0022D08BF01
+:10F4200026201BD0042D14BFFFDF272016D0206814
+:10F4300090F85A10252007F067FA206890F82210FB
+:10F44000C1F3001169B101224FF49671002007F059
+:10F450000AFD0DE0252007F04CFBE8E707F049FB2B
+:10F46000E5E790F85A204FF49671002007F0FBFC76
+:10F47000206890F82C10294380F82C1090F8242054
+:10F4800032EA01011DD04670418C13292CD027DCB3
+:10F49000102904BF03B0BDE8F083122924D000BFB7
+:10F4A000C1F30010002807E040420F0004060020CE
+:10F4B00053E4B36E6000002018BFFFDF03B0BDE867
+:10F4C000F083418C1D2908BF80F82C70DBD0C1F37C
+:10F4D0000011002914BF80F8316080F83170D2E744
+:10F4E000152918BF1D29DBD190F85A2003B04FF021
+:10F4F0000101BDE8F043084607F092BE90F85B209A
+:10F500000121084607F08CFE2168002DC87E7CD0C2
+:10F510004A8C3D46C2F34000002808BF47F008056A
+:10F5200012F0400F18BF45F04005002819BFD1F870
+:10F530003890B1F83C80D1F84090B1F844806068D0
+:10F54000072107800EF08CF8002160680EF07FFA2A
+:10F55000294660680EF087FA15F0080F15D020686C
+:10F56000BDF800100223B0F86600020962F30B0137
+:10F57000ADF800109DF80110032260F307118DF81B
+:10F580000110694660680EF048FA60680EF024F9D0
+:10F590002168C0F1FE00B1F85620A8EB02018142BB
+:10F5A000A8BF0146CFB2D019404542D245F0100164
+:10F5B00060680EF058FA60680EF00EF92168C0F12C
+:10F5C000FE00B1F85610A8EB01018142A8BF014628
+:10F5D000CFB260680EF037FA3844421C2068B0F8A9
+:10F5E0006610036E090951FA83F190F85C30FF4D03
+:10F5F0001944AC460023E1FB05C31B096FF0240C42
+:10F6000003FB0C1180F85C1000E038E090F85B0020
+:10F61000012100F0C7FC0090BDF800009DF8021029
+:10F62000032340EA01400190042201A960680EF022
+:10F63000F4F9216891F8220010F0400F05D0012361
+:10F6400006225D3160680EF0E8F920683A46B0F8AD
+:10F65000560000EB090160680EF033FA2068B0F83C
+:10F6600056103944A0F8561008F0C1F9002818BF08
+:10F67000FFDF20684670867003B0BDE8F08301218B
+:10F68000FFF7D1FAF0E7DA4810B50068417841B9E0
+:10F690000078FF2805D000210846FFF7DAFD00209A
+:10F6A00010BD07F062FD07F041FD07F019FC07F0FF
+:10F6B00097FC0C2010BD10B5CD4C206890F82200AE
+:10F6C00010F0010F1CBFA06801884FF03C0212BF70
+:10F6D00001204FF6FF710020FEF716FE2168012081
+:10F6E00081F8370010BDC249096881F832007047BF
+:10F6F0002DE9F041002508F010FF002800F00581F9
+:10F70000BB4C2068417801270026012906D0022938
+:10F7100001D003297ED0FFDFBDE8F0818178022689
+:10F720000029418C46D0C1F34002002A08BF11F0E5
+:10F73000010F70D090F85B204FF001014FF00000F6
+:10F7400007F06EFD216891F82200C0F34000002808
+:10F7500014BF0C20222091F85B1007F0D5F8206828
+:10F76000467090F8330058B106F0CBFE206890F850
+:10F770005B0010F00C0F0CBF4020452007F001FD8E
+:10F78000206890F83400002818BF07F019FD2168A0
+:10F7900091F85B0091F8651010F00C0F08BF002184
+:10F7A000962007F055FC08F019F9002818BFFFDF74
+:10F7B000BDE8F081C1F3001282B110293FD090F86A
+:10F7C000330020B106F09DFE402007F0DAFC2068EF
+:10F7D00090F8221011F0040F36D043E090F8242066
+:10F7E00090F82C309A422AD1B0F84400002808BF83
+:10F7F00011F0010F05D111F0020F08BF11F0200F19
+:10F800007ED04FF001014FF00000FFF722FD20688D
+:10F81000418C01E040E034E011F0010F04BFC1F37E
+:10F820004001002907D1B0F85610B0F844209142A9
+:10F8300018BFBDE8F08180F83170BDE8F081BDE807
+:10F84000F0410021012004E590F83510012914BF92
+:10F850000329102545F00E0190F85A204FF00000C2
+:10F8600007F0DEFC206890F83400002818BF07F08D
+:10F87000A7FC0021962007F0EBFB20684670BDE84E
+:10F88000F081B0F85610B0F8440081423DD0BDE898
+:10F89000F04101210846DCE48178D9B1418C11F0B6
+:10F8A000010F1CD080F8687090F86A20B0F86C10D6
+:10F8B0000120FEF729FD2068467007F056FC07F08E
+:10F8C00035FC07F00DFB07F08BFBBDE8F041032092
+:10F8D00008F057BE8178BDE8F0410120B9E411F08D
+:10F8E000020F04BFFFDFBDE8F081B0F85610808F33
+:10F8F00081420AD001210846FFF7ABFC032000E05B
+:10F9000003E021684870BDE8F081BDE8F041FFF7F1
+:10F910003EB9FFF73CB910B5354C206890F834106B
+:10F9200049B1363007F05BFC18B921687F2081F8B7
+:10F93000360007F03BFC206890F8330018B107F060
+:10F940002AFC06F0F2FD08F0E8FDA8B1206890F866
+:10F950002210C1F3001179B14078022818BFFFDFEF
+:10F9600000210120FFF775FC2068417800291EBFA7
+:10F9700040780128FFDF10BDBDE81040FFF707B950
+:10F980002DE9F0471A4C0F4680462168B8F1030F65
+:10F99000488C08BFC0F3400508D000F0010591F87D
+:10F9A0003200002818BF4FF0010901D14FF00009C3
+:10F9B00007F093F80646B8F1030F0CBF4FF00208AA
+:10F9C0004FF0010835EA090008BFBDE8F08720685C
+:10F9D00090F8330090B10CF025FC38700146FF28F8
+:10F9E0000CD06068C01C0CF0F6FB03E053E4B36E6F
+:10F9F0006000002038780CF022FC06436068017833
+:10FA0000C1F3801221680B7D9A4208D10622C01CE6
+:10FA1000153115F087FD002808BF012000D0002017
+:10FA20003978FF2906D0C8B9206890F82D0088429F
+:10FA300016D113E0A0B1616811F8030BC0F3801078
+:10FA40000CF08DFB05460CF0EDFC38B128460CF0AF
+:10FA50001DFA18B110210DF0DEF908B1012000E007
+:10FA60000020216891F8221011F0040F01D0F0B1AC
+:10FA70001AE0CEB9FE4890F83500002818BF40457E
+:10FA800015D1616811F8030BC0F380100CF067FB0F
+:10FA900004460CF0C7FC38B120460CF0F7F918B159
+:10FAA00010210DF0B8F910B10120BDE8F087002059
+:10FAB000BDE8F0872DE9F04FEE4D074683B028688A
+:10FAC00000264078022818BFFFDF28684FF07F0922
+:10FAD00090F8341049B1363007F081FB002804BF9C
+:10FAE000286880F8369007F061FB68680DF0DAFD51
+:10FAF0000446002F00F0048268680DF05EFF0028C5
+:10FB000000F0FE8106F0B7FF002800F0F981FF2029
+:10FB1000DFF864B3DFF8588300274FF0010A062CA2
+:10FB200080F00082DFE804F0EFEFEF03EFF78DF8ED
+:10FB3000000069460320FFF723FF002800F0E4805F
+:10FB4000296891F8340010B191F89800D0B1286874
+:10FB5000817801294CD06868042107800DF080FD70
+:10FB600008F10E0168680DF0A1FD98F80D106868A5
+:10FB70000DF0B8FD2868828F816B68680DF0EFFD8D
+:10FB800000F04DB99DF8000081F898A00A7881F83E
+:10FB90009920FF280FD001F19B029A310CF004FB51
+:10FBA000002808BFFFDF286890F89A1041F0020192
+:10FBB00080F89A100DE068680278C2F3801281F82C
+:10FBC0009A20D0F80320C1F89B20B0F80700A1F8D4
+:10FBD0009F00286800F1A10490F836007F2808BF34
+:10FBE000FFDF286890F83610217080F83690AEE775
+:10FBF00090F822009BF80490C0F38014686864F3C6
+:10FC00008619072107800DF02BFD002168680DF093
+:10FC10001EFF494668680DF026FF0623002208F102
+:10FC20000E0168680DF0F9FE2868417B68680DF0E8
+:10FC300059FD68680DF0D0FD29688A8FC0F1FE017A
+:10FC40008A42B8BF1146CFB2BA423DD9F81EC7B2F8
+:10FC500049F0100A514668680DF005FF68680DF01C
+:10FC6000F2FE3844431C2868B0F86610026E090999
+:10FC700051FA82F190F85C20DFF800920A44C846FD
+:10FC80004FF0000CE2FB098C4FEA1C116FF0240CC2
+:10FC900001FB0C2180F85C1090F85B001A460121F2
+:10FCA00000F080F90190BDF804009DF806100323D0
+:10FCB00040EA01400290042202A968680DF0ADFEFE
+:10FCC000514668680DF0CFFE34B1D5E9001001232C
+:10FCD00006225D310DF0A1FE28683A46816B686806
+:10FCE0000DF0EFFE2868A0F85670818F8F420CBF90
+:10FCF0000121002180F8311007F079FE002818BF9B
+:10FD0000FFDF8CE007E00DE128688078002840F0F4
+:10FD1000F98000F0F5B88DF8000068680178C1F34B
+:10FD20008019D0F803100191B0F80700ADF8080071
+:10FD300069460520FFF724FE0028286873D08178E3
+:10FD4000002972D090F85BA0D5E90104D0F80F101B
+:10FD5000C4F80E10B0F813106182417D2175817DC9
+:10FD60006175B0F81710E182B0F819106180B0F831
+:10FD70001B10A180B0F81D10E18000F11F0104F1FB
+:10FD8000080015F0B0FD686890F8241001F01F011C
+:10FD9000217690F82400400984F8740184F854A076
+:10FDA00084F855A0286890F8651084F8561090F8EB
+:10FDB0005D0084F857009DF80010A86800F05BF91A
+:10FDC000022008F0DEFB6868DBF800400DF1040A51
+:10FDD000078008210DF044FC002168680DF037FE13
+:10FDE000214668680DF03FFE0623002208F10E014F
+:10FDF00068680DF012FE2868417B68680DF072FC9F
+:10FE0000494668680DF07BFC06230122514668686C
+:10FE10000DF003FE07F0EBFD002818BFFFDF032005
+:10FE20002968487070E066E0FFE76868AC684FF0EA
+:10FE300001080278617BC2F3401211406173D0F86F
+:10FE40000F10C4F80E10B0F813106182417D2175B7
+:10FE5000817D6175B0F81710E182B0F819106180EA
+:10FE6000B0F81B10A180B0F81D10E18008E0000080
+:10FE70000406002060000020145B020053E4B36E0F
+:10FE800000F11F0104F1080015F02DFD686890F8DD
+:10FE9000241001F01F01217690F82400400984F815
+:10FEA000740184F8548084F85580286890F86510AF
+:10FEB00084F8561090F85D0084F857009DF8001003
+:10FEC000A86800F0D8F8286880F868A090F86A2040
+:10FED000B0F86C100120FEF717FA2868477007F099
+:10FEE00044F907F023F906F0FBFF07F079F8012049
+:10FEF00008F047FB08E090F82200C0F3001008B1BA
+:10FF0000012601E0FEF743FE286890F8330018B19F
+:10FF100007F041F906F009FB66B100210120FFF767
+:10FF200098F910E0286890F82200C0F3001000282B
+:10FF3000E8D0E5E728688178012904D190F85B10C2
+:10FF4000FF2006F0E1FC28684178002919BF4178BC
+:10FF5000012903B0BDE8F08F4078032818BFFFDF08
+:10FF600003B0BDE8F08F70B57E4C06460D462068A4
+:10FF7000807858B106F07EFC21680346304691F83F
+:10FF80005B202946BDE8704009F0C6B806F072FC57
+:10FF900021680346304691F85A202946BDE8704052
+:10FFA00009F0BAB878B50C4600210091082804BFC2
+:10FFB0004FF4C87040210DD0042804BF4FF4BF7027
+:10FFC000102107D0022807BF01F11800042101F118
+:10FFD00028000821521D02FB010562489DF800100F
+:10FFE000006890F85C2062F3050141F040068DF84E
+:10FFF000006090F85B00012828D002282DD0082846
+:020000040001F9
+:1000000018BFFFDF2FD000BF26F080008DF8000062
+:10001000C4EB041000EB80001E2101EB800005FB07
+:1000200004045148844228BFFFDF5048A0FB04105D
+:10003000BDF80110000960F30C01ADF80110BDF826
+:1000400000009DF8021040EA014078BD9DF80200D2
+:1000500020F0E0008DF80200D6E79DF8020020F0C5
+:10006000E000203004E09DF8020020F0E000403085
+:100070008DF80200C8E72DE9F0413A4D04460E46DE
+:10008000286890F86800002818BFFFDF002728685C
+:1000900080F86A702188A0F86C106188A0F882103E
+:1000A000A188A0F88410E188A0F8861094F8741153
+:1000B00080F8881090F82F1049B1427B00F10E01B2
+:1000C000012A04D1497901F0C001402934D090F8C7
+:1000D000301041B1427B00F10E01012A04BF497981
+:1000E00011F0C00F28D000F1760015F0F3FB68681E
+:1000F000FF2E0178C1F380116176D0F80310C4F8A7
+:100100001A10B0F80700E08328681DD0C167E18BA2
+:10011000A0F8801000F17002511E30460CF044F837
+:10012000002808BFFFDF286890F86F1041F0020137
+:1001300080F86F10BDE8F081D0F80E10C0F876108E
+:10014000418AA0F87A10D2E7C767A0F88070617E74
+:1001500080F86F10D4F81A100167E18BA0F87410C2
+:10016000BDE8F08160000020C4BF03008988888852
+:100170000178406829B190F8141190F8730038B9EB
+:1001800001E001F0CDBD19B1042901D00120704773
+:100190000020704770B50C460546062102F02AFC87
+:1001A000606008B1002006E00721284602F022FC2A
+:1001B000606018B101202070002070BD022070BD69
+:1001C0002DE9FC470C4606466946FFF7E3FF002889
+:1001D0007DD19DF8000050B1FEF727F9B0427CD0E8
+:1001E000214630460AF088F9002873D12DE00DF041
+:1001F000E7FEB04271D02146304613F027FB0028BD
+:1002000068D1019D95F8D80022E0012000E000208F
+:10021000804695F837004FF0010A4FF00009F0B121
+:1002200095F8380080071AD584F8019084F800A06A
+:1002300084F80490E68095F839102172698F618105
+:10024000A98FA18185F8379044E0019D95F81401AC
+:1002500058350028DBD1E87E0028D8D0D5E73046D5
+:1002600002F00CFD070000D1FFDF384601F01CFF53
+:1002700040B184F801900F212170E680208184F83C
+:1002800004A027E0304602F0E7FC070000D1FFDFC2
+:10029000B8F1000F21D0384601F05DFFB8B19DF8EC
+:1002A000000038B90198D0F800014188B14201D16D
+:1002B00080F80090304607F0E8FB84F801900C21AC
+:1002C000217084F80490E680297F217200E004E028
+:1002D00085F81B900120BDE8FC870020FBE71CB5DA
+:1002E0006946FFF757FF00B1FFDF684601F024FDC4
+:1002F000FB4900208968A1F8DA001CBD2DE9FC410A
+:1003000004460E46062002F01DFB0546072002F0BB
+:1003100019FB2844C7B20025A8463E4417E02088B0
+:10032000401C80B22080B04202D34046A4F8008036
+:1003300080B2B84204D3B04202D20020BDE8FC81B2
+:100340006946FFF727FF0028F8D06D1CEDB2AE42DA
+:10035000E5D84FF6FF7020801220EFE738B54FF652
+:10036000FF70ADF800000DE00621BDF8000002F0BE
+:1003700053FB04460721BDF8000002F04DFB0CB111
+:1003800000B1FFDF00216846FFF7B8FF0028EBD07F
+:1003900038BD70B507F0E6FB0BF0CDFCD14C4FF645
+:1003A000FF7600256683A683CFA0257001680079BB
+:1003B000A4F14002657042F8421FA11C1071601C3C
+:1003C00013F065FB25721B2060814FF4A471A1819D
+:1003D000E08121820321A1740422E274A082E082E0
+:1003E000A4F13E00218305704680BD480C300570A5
+:1003F000A4F110000570468070BD70B5B84C16466B
+:100400000D466060217007F027FBFFF7A7FFFFF79D
+:10041000C0FF207810F0CDFFB5480EF07CFA2178AF
+:10042000606813F0D9FA20780AF0D4FE284608F064
+:1004300010FCAF48FEF704F8217860680AF042F932
+:100440003146207813F0DAFDBDE870400BF073BC44
+:1004500010B501240AB1002010BD21B1012903D03B
+:100460000024204610BD02210DF068FBF9E72DE9BC
+:10047000F047040000D1FFDF9A4802211C3081467A
+:10048000FFF73CFF00B1FFDF964D0620B5F81C805A
+:1004900002F058FA0646072002F054FA3044C6B279
+:1004A000701CC7B2A88BB04228D120460DF0FEFCCC
+:1004B000B0B1207818283FD1207901283CD1E088BC
+:1004C000062102F097FA040000D1FFDF208807F030
+:1004D000DCFA2088062102F09FFA40B3FFDF2BE010
+:1004E000287860B300266670142020702021201D1B
+:1004F00015F0E5F8022020712E701DE0B84217D1EA
+:100500002046FDF737FFD0B12078172814D1207985
+:1005100068B1E088072102F06DFA40B1008807F069
+:10052000B4FAE088072102F077FA00B1FFDF03E0B8
+:100530002146FFF745FE10B10120BDE8F0870221FA
+:100540004846FFF7DBFE10B9A98B4145AAD12046EA
+:10055000BDE8F04713F098BD10B501F089FB08B174
+:100560000C2010BD0BF03AFC002010BD10B5044665
+:10057000007818B1012801D0122010BD01F089FBCC
+:1005800020B10BF0DBFD08B10C2010BD207801F08C
+:1005900036FBE21D04F11703611CBDE810400BF0AF
+:1005A000C2BC10B5044601F063FB08B10C2010BDBD
+:1005B000207828B1012803D0FF280BD0122010BDCD
+:1005C00001F01DFB611C0BF0C9FB08B1002010BD40
+:1005D000072010BD01200BF0FBFBF7E710B50BF077
+:1005E000B0FD08B1002010BD302010BD10B504468C
+:1005F00001F04FFB08B10C2010BD20460BF09BFD15
+:10060000002010BD10B501F044FB20B10BF096FDA9
+:1006100008B10C2010BD0BF0EBFC002010BDFF2139
+:1006200081704FF6FF7181802D4949680A78827187
+:100630008A880281498841810121417000207047E8
+:100640007CB50025022A19D015DC12F10C0F15D04B
+:1006500009DC12F1280F11D012F1140F0ED012F193
+:10066000100F11D10AE012F1080F07D012F1040F98
+:1006700004D04AB902E0D31E052B05D8012806D0C4
+:10068000022808D003280AD0122528467CBD10462F
+:10069000FEF75EFAF9E710460EF0E8F8F5E70846CF
+:1006A00014466946FFF776FD08B10225EDE79DF88F
+:1006B00000000198002580F85740E6E710B5134682
+:1006C00001220CF0E5FB002010BD10B5044611F02E
+:1006D00070FC05280ED0204610F05AFE002010BDF8
+:1006E0006C000020E8070020FFFFFFFF1F00000054
+:1006F000A80600200C20F2E710B5044601F0C9FA64
+:1007000008B10C20EBE72146002007F02CFA00206E
+:10071000E5E710B5044610F0C9FE50B108F02AFD17
+:1007200038B1207808F0BBFA20780EF0DBFB00200F
+:10073000D5E70C20D3E710B5044601F0AAFA08B1BA
+:100740000C20CCE72146012007F00DFA0020C6E777
+:1007500038B504464FF6FF70ADF80000A079E17996
+:10076000884216D02079FDF766FD90B16079FDF7DB
+:1007700062FD70B10022A079114614F0B3F840B9BF
+:100780000022E079114614F0ADF810B9207A07285C
+:1007900001D9122038BD08F0FAFC60B911F009FC4B
+:1007A00048B900216846FFF7A9FD20B1204606F0B0
+:1007B00086F8002038BD0C2038BD2DE9FC41817839
+:1007C00005461A2925D00EDC16292DD2DFE801F0C6
+:1007D0002C2C2C2C2C212C2C2C2C2C2C2C2C2C2C64
+:1007E0002C2C2C2121212A291ED00BDCA1F11E0149
+:1007F0000C2919D2DFE801F0181818181818181861
+:100800001818180D3A3904290ED2DFE801F00D024C
+:100810000D022888B0F5706F06D201276946FFF7F0
+:10082000B9FC18B1022089E5122087E59DF8000087
+:1008300001F0ECF9019C08B1FC3401E004F5BC7452
+:100840009DF8000001F0E2F9019E08B1FD3601E0DB
+:1008500006F279166846FFF78BFC08B1207808B1DC
+:100860000C206BE52770A8783070684601F064FAB8
+:10087000002063E57CB50D466946FFF78BFC00263A
+:1008800018B12E602E7102207CBD9DF8000001F091
+:10089000BDF9019C9DF80000583401F0B7F90198AA
+:1008A00084F8406081682960017B297194F84010C8
+:1008B0000029F5D100207CBD70B5044691F85500A3
+:1008C00091F856300D4610F00C0F00D1002321890D
+:1008D000A0880CF0A1FC696A81421DD2401A401C1C
+:1008E000A1884008091A8AB2A2802189081A2081A9
+:1008F000668895F8541010460CF035FC864200D2FC
+:1009000030466080E68895F8551020890CF02BFC65
+:10091000864200D23046E08070BDF0B585B00D460D
+:10092000064603A9FFF736FC00282DD19DF80C00E0
+:1009300060B300220499FB20B1F84A30FB2B00D3AE
+:100940000346B1F84C40FB20FB2C00D30446DFF8F3
+:100950003CCC9CE8811000900197CDF808C0ADF820
+:100960000230ADF806406846FFF7A6FF6E80BDF87E
+:100970000400E880BDF808006881BDF80200A88086
+:10098000BDF806002881002005B0F0BD0122D1E7A6
+:100990002DE9F04186B0044600886946FFF7FAFB6E
+:1009A000002876D12189E08801F0D5F9002870D19E
+:1009B000A188608801F0CFF900286AD12189E088F8
+:1009C00001F0D7F9002864D1A188608801F0D1F93D
+:1009D00007005ED1208802A9FFF79FFF00B1FFDF6B
+:1009E000BDF8101062880920914252D3BDF80C1056
+:1009F000E28891424DD3BDF81210BDF80E20238934
+:100A00001144A2881A44914243D39DF80010019DDD
+:100A10004FF00008012640F6480041B185F8A36177
+:100A2000019991F8E61105F5D17541B91AE085F8FB
+:100A30000D61019991F8301105F5867509B13A27D4
+:100A400024E0E18869806188E9802189814200D3BE
+:100A50000146A980A188814200D20846288101224E
+:100A600001990FE0E18869806188E98021898142EC
+:100A700000D30146A980A188814200D2084628817E
+:100A8000019900222846FFF717FF2E7085F8018094
+:100A9000384606B0BDE8F0817AE710B5044601F0AB
+:100AA000F8F820B10BF04AFB08B10C2017E62078CB
+:100AB00001F0A5F8E279611C0BF0C1FC08B100203F
+:100AC0000DE602200BE610B503780446002B4068C3
+:100AD00013460A46014609D05FF001000CF0A5FB61
+:100AE0006168496A884203D90120F8E50020F5E7EA
+:100AF0000020F4E52DE9F04117468A781E4680462D
+:100B000042B11546C87838B10446690706D52AB1FE
+:100B1000012104E00725F5E70724F6E70021620735
+:100B200002D508B1012000E00020014206D00122D8
+:100B300011464046FFF7C7FF98B93BE051B100228C
+:100B400001214046FFF7BFFF58B9600732D50122A7
+:100B500011461FE058B1012200214046FFF7B3FFC4
+:100B600008B1092096E7680724D5012206E0680746
+:100B70004FEA44700AD5002813DB002201214046C9
+:100B8000FFF7A1FFB0B125F0040513E0002811DA4A
+:100B9000012200214046FFF796FF58B124F00404DB
+:100BA00008E0012211464046FFF78DFF10B125F005
+:100BB0000405F3E73D70347000206BE710B586B094
+:100BC0000446008803A9FFF7E5FA002806D1A088AB
+:100BD00030B1012804D0022802D0122006B07EE5F0
+:100BE0006B4602AA214603A8FFF784FF0028F5D12F
+:100BF0009DF80C3000220121002B049B06D083F8C5
+:100C0000AD11049B93F8FA316BBB24E083F8171104
+:100C1000049B93F83C313BB9049B93F816311BB904
+:100C2000049B93F87D300BB13A2010E0049B83F8CD
+:100C30001611049B9DF8081083F81811049B9DF869
+:100C4000001083F81911049BA188A3F81A110499C4
+:100C500081F81721C2E7049B93F8AC311BB9049BC0
+:100C600093F87D300BB13A2010E0049B83F8AC116F
+:100C7000049B9DF8081083F8AE11049B9DF80010AA
+:100C800083F8AF11049BA188A3F8B011049981F8EF
+:100C9000AD21A3E710B504460020A17801B90120D9
+:100CA000E2780AB940F0020001F06CF8002803D1A4
+:100CB0002046BDE8104081E711E570B51C460D46A1
+:100CC00018B1012801D0122070BD1946104601F05C
+:100CD00069F830B12146284601F06EF808B10020CD
+:100CE00070BD302070BD70B5044600780E460128F6
+:100CF00004D018B1022801D0032841D1607828B16E
+:100D0000012803D0022801D0032839D1E07B10B993
+:100D1000A078012834D1A07830F0050130D110F04E
+:100D2000050F2DD06289E188E0783346FFF7C5FFD3
+:100D3000002826D1A07805281ED16589A28921899D
+:100D400020793346FFF7B9FF00281AD15FF0010080
+:100D500004EB40014A8915442218D37892789342D3
+:100D60000ED1CA8889888A420AD1401CC0B20228A2
+:100D7000EED3E088A84203D3A07B08B1072801D9AD
+:100D8000122070BD002070BD10B586B0044600F082
+:100D900062FF08B10C2021E7022104F10A0001F0F2
+:100DA0001EF8A0788DF80800A0788DF80000607813
+:100DB0008DF8040020788DF80300A07B8DF80500E5
+:100DC000E07B00B101208DF80600A078C10717D0A4
+:100DD000E07800F0FBFF8DF80100E088ADF80A0034
+:100DE0006089ADF80C00A078400716D5207900F096
+:100DF000EDFF8DF802002089ADF80E00A0890AE011
+:100E000040070AD5E07800F0E1FF8DF80200E088A5
+:100E1000ADF80E006089ADF8100002A810F052FB8A
+:100E20000028B8D168460EF062F8D7E610B504463F
+:100E30000121FFF758FF002803D12046BDE81040EC
+:100E4000A2E74CE40278012A01D0BAB118E0427856
+:100E50003AB1012A05D0022A12D189B1818879B12B
+:100E600000E059B1418849B1808838B101EB810176
+:100E7000490000EB8000B1EB002F01D20020704749
+:100E80001220704770B5044600780D46012809D03D
+:100E900011F08FF8052803D010F025FA002800D0B3
+:100EA0000C2070BD0DF0F0FE88B10DF002FF0DF0CA
+:100EB000FBFF0028F5D125B160780DF08CFF0028EC
+:100EC000EFD1A1886088BDE8704010F021BB1220EE
+:100ED00070BD10B504460121FFF7B4FF002804D10E
+:100EE0002046BDE810400121CCE704E42DE9F0479D
+:100EF0000746B0F84C50FB2092460E46FB2D00D31F
+:100F00000546DFF88C86B8F80A00A84200D20546EC
+:100F100097F85510284600F08DFEB8F80C10814265
+:100F200000D208468146B7F84A40FB20FB2C00D38C
+:100F30000446B8F80E00A04200D2044697F85410B8
+:100F4000204600F077FEB8F81010814200D2084623
+:100F50004FF4A4721B2C01D0904203D11B2D25D03D
+:100F6000914523D0F580A6F808907480B080524651
+:100F700039463046FFF7A0FC01203070F0881B385E
+:100F8000E02800D9FFDF70881B38E02800D9FFDF98
+:100F9000308940F64814A0F5A470A04200D9FFDFC4
+:100FA000B088A0F5A470A04200D9FFDFBDE8F087AB
+:100FB000F0B5871FDDE9056540F67B44A74213D2F3
+:100FC0008F1FA74210D288420ED8B2F5FA7F0BD2FB
+:100FD000A3F10A00241FA04206D2521C4A43B2EBDE
+:100FE000830F01DAAE4201D90020F0BD0120F0BD2F
+:100FF0002DE9FC47477A8946044617F0050F7DD056
+:10100000F8087BD194F83A0008B9012F76D1002571
+:10101000A8462E46F90789F0010A19D0208A5146C0
+:1010200000F0C0FEF0B36089514600F0C5FEC8B3C1
+:10103000208A6189884261D8A18EE08DCDE90001C6
+:10104000238D628CA18BE08AFFF7B2FF50B301259C
+:10105000B8070ED504EB4500828EC18DCDE9001294
+:10106000038D428C818BC08AFFF7A2FFD0B1A846C6
+:101070006D1C78071ED504EB45065146308A00F0FA
+:1010800091FE78B17089514600F096FE50B1308AD9
+:10109000718988425ED8B18EF08DCDE90001338D23
+:1010A000728C00E00AE0B18BF08AFFF781FF28B173
+:1010B0002E466D1CB9F1000F03D030E03020BDE8A2
+:1010C000FC87F80707D0780705D504EB460160894F
+:1010D000498988423ED1228A01211BE0414503D043
+:1010E00004EB4100008A024404EB4100C38A868A73
+:1010F000B3422FD1838B468BB34200E02AE029D143
+:10110000438C068CB34225D1038DC08C834221D100
+:10111000491CC9B2A942E1D3608990421AD3207810
+:1011200010B1012816D10DE0A078B9F1000F07D059
+:1011300040B1012806D0022804D003280AD101E0DA
+:101140000028EED1607838B1012805D0022803D0FC
+:10115000032801D01220B2E70020B0E7002147E7C2
+:101160000178C90702D0406812F061BF12F02EBFAB
+:101170002DE9F04788B00D46AFF69422D2E90092EF
+:10118000014690462846FFF733FF06000CD100F0D9
+:1011900062FD40B9FE4F387828B90CF011FFA0F578
+:1011A0007F41FF3902D00C2008B0FFE6032105F192
+:1011B000100000F014FEF64801AA3E380190F548F0
+:1011C0000290F34806211038039007A801F0E0FBD5
+:1011D000040035D003210BF0BBFBB98AA4F84A10F8
+:1011E000FA8AA4F84C20FB7C0093BA46BB7C20888A
+:1011F00001F0BBFC00B1FFDF208806F045FC218830
+:1012000004F10E0000F04FFDE3A004F112070068A6
+:1012100000900321684604F007FE002069460A5C3E
+:101220003A54401CC0B20328F9D3A88B6080688C64
+:10123000A080288DE080687A410703D508270AE05E
+:101240000920B1E7C10701D0012704E0800701D5DB
+:10125000022700E000273A46BAF81800114610F0BD
+:10126000EBF90146A062204610F0F4F917F00C0FDC
+:1012700009D001231A46214600200BF0D6FF616AEF
+:10128000884200D90926002784F85E7084F85F70D0
+:10129000A87800F0B4FC6076D5F80300C4F81A0012
+:1012A000B5F80700E083C4F8089084F80C800120AA
+:1012B00084F80801024604F586712046FFF716FE01
+:1012C0008DF800700121684604F0AEFD9DF8000025
+:1012D00000F00701C0F3C1021144C0F340100844FC
+:1012E0008DF80000401D2076092801D208302076B4
+:1012F000002120460BF02CFB68780DF0D0FCEEBBF3
+:10130000A9782878EA1C0DF092FC48B10DF0D1FCC8
+:10131000A9782878EA1C0DF038FD060002D052E0CA
+:10132000122650E0687A00F005010020CA0700D0BC
+:1013300001208A0701D540F00200490701D540F09D
+:1013400008000DF05DFC06003DD1214603200DF0A4
+:1013500046FD060037D10DF04CFD060033D1697A09
+:1013600001F005018DF81010697AC90708D0688965
+:10137000ADF81200288AADF8140000E023E0012047
+:10138000697A8A0700D5401C490707D505EB40005C
+:101390004189ADF81610008AADF8180004A810F0C5
+:1013A00091F8064695F83A0000B101200DF03AFC9C
+:1013B0004EB90DF079FD060005D1A98F204610F039
+:1013C00023F8060008D0208806F05FFB208806215D
+:1013D00001F022FB00B1FFDF3046E5E601460020C8
+:1013E000C6E638B56A48007878B910F0E2FD0528FD
+:1013F00005D00CF0E5FDA0F57F41FF3905D068462A
+:1014000010F0C9F8040002D00CE00C2038BD0098A0
+:10141000008806F03AFB00980621008801F0FCFAEB
+:1014200000B1FFDF204638BD1CB582894189CDE976
+:1014300000120389C28881884088FFF7B9FD08B18E
+:1014400000201CBD30201CBD70B50546FFF7ECFF29
+:1014500000280ED12888062101F0CCFA040007D01C
+:1014600000F05EFC20B1D4F80001017831B901E050
+:10147000022070BDD4F84C11097809B13A2070BD32
+:1014800005218171D4F8001100200881D4F80011E1
+:10149000A8884881D4F80011E8888881D4F8001120
+:1014A0002889C881D4F80001028941898A4204D878
+:1014B0008279082A01D88A4201D3122070BD298876
+:1014C0004180D4F8001102200870002070BD3EB5A4
+:1014D00004460BF06FFCB0B12D480125A0F140028D
+:1014E0004570236842F8423F23790021137141700F
+:1014F0006946062001F007FA00B1FFDF684601F0F7
+:10150000E0F910B10EE012203EBDBDF80440029893
+:1015100080F80851684601F0D4F918B9BDF8040004
+:10152000A042F4D100203EBD70B5054600880621DA
+:1015300001F060FA040007D000F0F2FB20B1D4F80B
+:101540000011087830B901E0022070BDD4F84C01D8
+:10155000007808B13A2070BD9620005D10F0010FB0
+:1015600024D0D5F802004860D5F806008860D4F889
+:101570000001698910228181D4F8000105F10C0174
+:101580000E3004F5807413F0F9FF07E0385B0200B9
+:10159000E807002078000020112233002168032092
+:1015A0000870216828884880002070BD0C2070BD1C
+:1015B00038B504460078EF284DD86088ADF80000B3
+:1015C000009800F01DFC88B36188080708D4D4E9AE
+:1015D000012082423FD8202A3DD3B0F5804F3AD82F
+:1015E000207B18B3072836D8607B28B1012803D0A8
+:1015F000022801D003282ED14A0703D4022801D0A3
+:10160000032805D1A07B08B1012824D1480707D4BD
+:10161000607D28B1012803D0022801D003281AD107
+:10162000C806E07D03D5012815D110E013E001289C
+:1016300001D003280FD1C80609D4607E012803D049
+:10164000022801D0032806D1A07E0F2803D8E07E0F
+:1016500018B1012801D0122038BD002038BDF8B5DE
+:1016600014460D46064607F092FD08B10C20F8BD61
+:101670003046FFF79DFF0028F9D1FDF76EFA28707C
+:10168000B07554B9FF208DF8000069460020FDF7C1
+:1016900053FA69460020FDF743FA3046BDE8F840AA
+:1016A000FDF797B90022DAE770B50C46054612B18E
+:1016B0001F2907D80CE0FF2C04D8FCF704FF18B151
+:1016C0001F2C01D9122070BD2846FCF7E6FE08B198
+:1016D000002070BD422070BD10B50446408810B196
+:1016E000FDF701FA78B12078618800F00102607896
+:1016F000FFF7DAFF002805D1FDF7DDF962888242A5
+:1017000003D9072010BD122010BD10466168FDF7F7
+:1017100013FA002010BD10B50446408810B1FCF744
+:10172000C4FE70B12078618800F001026078FFF794
+:10173000BBFF002804D160886168FDF7F1F9002043
+:1017400010BD122010BD7CB504464078422501280A
+:1017500008D8A078FCF7A1FE20B120781225012836
+:1017600002D090B128467CBDFDF703FA20B1A088D5
+:101770000028F7D08028F5D8FDF702FA60B160782C
+:101780000028EFD02078012808D006F09DFA044602
+:1017900007F0BCF900287DD00C207CBDFDF732F8A5
+:1017A00010B9FDF7DFF990B307F0F1FC0028F3D191
+:1017B000FCF73BFEA0F57F41FF39EDD1FDF744F882
+:1017C000A68842F210704643A079FDF79DF9FCF718
+:1017D00073FEF8B10022072101A801F0D9F8040036
+:1017E00043D0FA480321846020460AF0B6FF204621
+:1017F000FDF72CFDF64DA88AA4F84A00E88AA4F863
+:101800004C00FCF760FE60B1288B01210DE0FFE782
+:1018100012207CBD3146002007F044FAD8B3FFDF28
+:101820004CE0FDF7AFF90146288B07F0F0FA0146CE
+:10183000A0620022204606F04AFAFCF744FEB0B946
+:10184000FDF7A0F910F00C0F11D001231A46214624
+:1018500018460BF0EAFC616A884208D90721BDF8F6
+:10186000040001F0D9F800B1FFDF09207CBDE87C5D
+:101870000090AB7CEA8AA98A208801F076F900B151
+:10188000FFDF208806F000F93146204607F00AFA0B
+:1018900018B101E008E011E0FFDF002204F5D1718A
+:1018A0002046FFF723FB09E044B1208806F0EDF85D
+:1018B0002088072101F0B0F800B1FFDF00207CBDD7
+:1018C000002140E770B50D46072101F093F80400B0
+:1018D00003D094F87B0110B10AE0022070BD94F8A7
+:1018E0006500142801D0152802D194F8C80108B168
+:1018F0000C2070BD1022294604F5BE7013F03EFE88
+:10190000012084F87B01002070BD10B5072101F093
+:1019100071F818B190F87B1111B107E0022010BDE9
+:1019200090F86510142903D0152901D00C2010BDA2
+:10193000022180F87B11002010BD2DE9FC410C46EE
+:101940004BF68032122194421DD8E4B16946FEF76D
+:1019500021FC002815D19DF8000000F057F9019EE8
+:101960009DF80000583600F051F9019DAD1C2F88FC
+:101970002246394630460AF0E6FE2888B842F6D1BB
+:101980000020BDE8FC810846FBE77CB504460088E2
+:101990006946FEF7FFFB002810D19DF8000000F01B
+:1019A00035F9019D9DF80000583500F02FF9019898
+:1019B000A27890F82C10914201D10C207CBD7F219F
+:1019C0002972A9720021E972E17880F82D1021793D
+:1019D00080F82E10A17880F82C1000207CBD1CB55A
+:1019E0000C466946FEF7D6FB00280AD19DF8000098
+:1019F00000F00CF9019890F8730000B101202070FC
+:101A000000201CBD7CB50D4614466946FEF7C2FB9E
+:101A1000002809D19DF8000000F0F8F8019890F82E
+:101A20002C00012801D00C207CBD9DF8000000F0A6
+:101A3000EDF8019890F86010297090F8610020701E
+:101A400000207CBD70B50D461646072100F0D2FF80
+:101A500018B381880124C388428804EB4104AC4256
+:101A600017D842F210746343A4106243B3FBF2F23E
+:101A7000521E94B24FF4FA72944200D91446A54211
+:101A800000D22C46491C641CB4FBF1F24A43521E9E
+:101A900091B290F8B4211AB901E0022070BD01841E
+:101AA0003180002070BD10B50C46072100F0A2FF68
+:101AB00048B180F8E74024B190F8E51009B107F08B
+:101AC000BCF9002010BD022010BD017899B1417809
+:101AD00089B141881B290ED381881B290BD3C1886A
+:101AE000022908D33A490268403941F8522F406828
+:101AF0004860002070471220704710B504460FF070
+:101B000097FD204607F052F9002010BD10B507F0F0
+:101B100050F9002010BD2DE9F04115460F4606464C
+:101B20000122114638460FF087FD04460121384650
+:101B300007F06DF9844200D2044601213046653C2D
+:101B400000F069F806460121002000F064F83044F6
+:101B500001219630844206D900F19601201AB0FB8B
+:101B6000F1F0401C81B229800020BDE8F08110B561
+:101B7000044600F08EF808B10C2010BD601C0AF07D
+:101B800039FC207800F00100FCF759FE207800F0C5
+:101B900001000DF089F8002010BD10B507F003F921
+:101BA000002010BD10B50446072000F0BDFE08B1AE
+:101BB0000C2010BD2078C00716D000226078114696
+:101BC00012F090FE30B1122010BD00006C00002019
+:101BD000E8070020A06809F0D4F86078D4F8041071
+:101BE00009F0D8F80020EFE7002009F0CAF800213A
+:101BF0000846F5E710B505F02BFB0020E4E718B127
+:101C0000022801D0012070470020704708B1002051
+:101C100070470120704710B5012904D0022905D072
+:101C2000FFDF2046D0E7C000503001E080002C30BC
+:101C300084B2F6E711F00C0F04D04FF4747101EB8D
+:101C4000801006E0022902D0C000703001E0800060
+:101C50003C3080B2704710B510F0ABF9042805D0C5
+:101C600010F0A7F9052801D00020ADE70120ABE76F
+:101C700010B5FFF7F0FF10B10DF0DAF828B907F052
+:101C800086FA20B1FCF7B6FD08B101209CE70020E0
+:101C90009AE710B5FFF7DFFF18B907F078FA0028C8
+:101CA00092D0012090E72DE9FE4300250F468046A3
+:101CB0000A260421404604F0E0F840460BF01BF8E9
+:101CC000062000F03FFE044615E06946062000F0BD
+:101CD0001AFE0AE0BDF80400B84206D002980422B9
+:101CE00041460E3013F01EFC50B1684600F0E9FD8D
+:101CF0000500EFD0641E002C06DD002DE5D005E0C8
+:101D000040460BF001F8F5E705B9FFDFD8F8000011
+:101D10000BF015F8761E01D00028CAD0BDE8FE836E
+:101D200090F8D81090F8730020B919B1042901D0A7
+:101D30000120704700207047017800290AD04168CF
+:101D400091F8E520002A05D0002281F8E5204068BE
+:101D500007F073B870471B38E12806D2B1F5A47FAD
+:101D600003D344F29020814201D912207047002011
+:101D70007047FB2802D8B1F5296F01D911207047AF
+:101D80000020704770B514460546012200F05CF84B
+:101D9000002806D121462846BDE87040002200F008
+:101DA00053B870BD042803D321B9B0F5804F01D9D1
+:101DB0000020704701207047042803D321B9B0F5F3
+:101DC000804F01D90020704701207047012802D0C0
+:101DD00018B100207047022070470120704710B5ED
+:101DE00000224FF4C84408E030F81230A34200D972
+:101DF000234620F81230521CD2B28A42F4D3E3E6D2
+:101E000080B2C1060BD401071CD481064FEAC07111
+:101E100001D5B9B900E099B1800713D410E04106AB
+:101E200010D481060ED4C1074FEA807104D0002976
+:101E300002DB400704D405E0010703D4400701D4C6
+:101E400001207047002070470AB1012200E0022201
+:101E5000024202D1C80802D109B100207047112006
+:101E60007047000030B5058825F4004421448CB249
+:101E70004FF4004194420AD2121B92B21B339A4291
+:101E800001D2A94307E005F40041214303E0A21A6F
+:101E900092B2A9431143018030BD08440830504339
+:101EA0004A31084480B2704770B51D4616460B464D
+:101EB000044629463046049AFFF7EFFF0646B34230
+:101EC00000D2FFDF2821204613F0F9FB4FF6FF7008
+:101ED000A082283EB0B265776080B0F5004F00D98F
+:101EE000FFDF618805F13C00814200D2FFDF60889E
+:101EF0000835401B343880B220801B2800D21B20BC
+:101F000020800020A07770BD8161886170472DE935
+:101F1000F05F0D46C188044600F12809008921F4CC
+:101F2000004620F4004800F062FB10B10020BDE83C
+:101F3000F09F4FF0000A4FF0010BB0450CD9617FC4
+:101F4000A8EB0600401A0838854219DC09EB0600A8
+:101F50000021058041801AE06088617F801B471A5C
+:101F6000083F0DD41B2F00DAFFDFBD4201DC2946FC
+:101F700000E0B9B2681A0204120C04D0424502DD36
+:101F800084F817A0D2E709EB06000180428084F8AC
+:101F900017B0CCE770B5044600F12802C088E37D95
+:101FA00020F400402BB110440288438813448B4234
+:101FB00001D2002070BD00258A4202D301804580F5
+:101FC00008E0891A0904090C418003D0A01D00F023
+:101FD0001EFB08E0637F00880833184481B26288E2
+:101FE000A01DFFF73FFFE575012070BD70B50346EA
+:101FF00000F12804C588808820F400462644A842C1
+:1020000002D10020188270BD98893588A84206D375
+:10201000401B75882D1A2044ADB2C01E05E02C1A55
+:10202000A5B25C7F20443044401D0C88AC4200D9EE
+:102030000D809C8924B1002414700988198270BD18
+:102040000124F9E770B5044600F12801808820F4E6
+:1020500000404518208A002825D0A189084480B274
+:10206000A08129886A881144814200D2FFDF288834
+:10207000698800260844A189884212D1A069807F1E
+:102080002871698819B1201D00F0C1FA08E0637F4A
+:1020900028880833184481B26288201DFFF7E2FEC9
+:1020A000A6812682012070BD2DE9F04141898788F3
+:1020B0000026044600F12805B94218D004F10A08A8
+:1020C00021F400402844418819B1404600F09FFAAD
+:1020D00008E0637F00880833184481B26288404674
+:1020E000FFF7C0FE761C6189B6B2B942E8D130462E
+:1020F000BDE8F0812DE9F04104460B4627892830E0
+:10210000A68827F40041B4F80A8001440D46B7427E
+:1021100001D10020ECE70AB1481D106023B1627FB5
+:10212000691D184613F02AFA2E88698804F1080000
+:1021300021B18A1996B200F06AFA06E0637F6288DC
+:102140000833991989B2FFF78DFE474501D12089DF
+:1021500060813046CCE78188C088814201D101206E
+:1021600070470020704701898088814201D1012099
+:1021700070470020704770B58588C38800F1280437
+:1021800025F4004223F4004114449D421AD083896F
+:10219000058A5E1925886388EC18A64214D313B10A
+:1021A0008B4211D30EE0437F08325C1922444088F1
+:1021B00092B2801A80B22333984201D211B103E067
+:1021C0008A4201D1002070BD012070BD2DE9F04789
+:1021D0008846C1880446008921F4004604F1280796
+:1021E00020F4004507EB060900F001FA002178BB56
+:1021F000B54204D9627FA81B801A002503E06088DD
+:10220000627F801B801A083823D4E28962B1B9F852
+:102210000020B9F802303BB1E81A2177404518DBBD
+:10222000E0893844801A09E0801A217740450ADBAA
+:10223000607FE1890830304439440844C01EA4F866
+:102240001280BDE8F087454503DB01202077E7E7F2
+:10225000FFE761820020F4E72DE9F74F044600F123
+:102260002805C088884620F4004A608A05EB0A06E3
+:1022700008B1404502D20020BDE8FE8FE08978B168
+:102280003788B6F8029007EB0901884200D0FFDFDB
+:10229000207F4FF0000B50EA090106D088B33BE0E5
+:1022A0000027A07FB9463071F2E7E18959B1607F1C
+:1022B0002944083050440844B4F81F1020F8031D86
+:1022C00094F821108170E28907EB080002EB080105
+:1022D000E1813080A6F802B002985F4650B1637F7A
+:1022E00030880833184481B26288A01DFFF7BAFD18
+:1022F000E78121E0607FE1890830504429440844A7
+:102300002DE0FFE7E089B4F81F102844C01B20F837
+:10231000031D94F82110817009EB0800E28981B255
+:1023200002EB0800E081378071800298A0B1A01D07
+:1023300000F06DF9A4F80EB0A07F401CA077A07D3E
+:1023400008B1E088A08284F816B000BFA4F812B0EB
+:1023500084F817B001208FE7E0892844C01B30F8CB
+:10236000031DA4F81F10807884F82100EEE710B553
+:10237000818800F1280321F400442344848AC28820
+:10238000A14212D0914210D0818971B9826972B193
+:102390001046FFF7E8FE50B91089283220F40040BB
+:1023A000104419790079884201D1002010BD1846E7
+:1023B00010BD00F12803407F08300844C01E1060A3
+:1023C000088808B9DB1E136008884988084480B271
+:1023D00070472DE9F04100F12806407F1C46083087
+:1023E0009046431808884D88069ADB1EA0B1C01C91
+:1023F00080B2904214D9801AA04200DB204687B2F6
+:1024000098183A46414613F08DF8002816D1E01B83
+:1024100084B2B844002005E0ED1CADB2F61EE8E73A
+:10242000101A80B20119A94206D83044224641460A
+:10243000BDE8F04113F076B84FF0FF3058E62DE9D3
+:10244000F04100F12804407F1E46083090464318B2
+:10245000002508884F88069ADB1E90B1C01C80B208
+:10246000904212D9801AB04200DB304685B29918EA
+:102470002A46404613F082F8701B86B2A84400201A
+:1024800005E0FF1CBFB2E41EEAE7101A80B2811912
+:10249000B94206D821183246404613F06FF8A81901
+:1024A00085B2284624E62DE9F04100F12804407F5A
+:1024B0001E46083090464318002508884F88069A23
+:1024C000DB1E90B1C01C80B2904212D9801AB0427B
+:1024D00000DB304685B298182A46414613F04EF884
+:1024E000701B86B2A844002005E0FF1CBFB2E41EAA
+:1024F000EAE7101A80B28119B94206D82044324660
+:10250000414613F03BF8A81985B22846F0E5401D76
+:10251000704710B5044600F12801C288808820F475
+:1025200000431944904206D0A28922B9228A12B9E6
+:10253000A28A904201D1002010BD0888498831B19B
+:10254000201D00F064F800202082012010BD637F70
+:1025500062880833184481B2201DFFF783FCF2E73C
+:102560000021C18101774182C1758175704703885F
+:102570001380C28942B1C28822F4004300F12802CC
+:102580001A440A60C08970470020704710B504469D
+:10259000808AA0F57F41FF3900D0FFDFE088A0826C
+:1025A000E08900B10120A07510BD4FF6FF71818256
+:1025B00000218175704710B50446808AA0F57F41DF
+:1025C000FF3900D1FFDFA07D28B9A088A18A884209
+:1025D00001D1002010BD012010BD8188828A914266
+:1025E00001D1807D08B1002070470120704720F4A0
+:1025F000004221F400439A4207D100F4004001F464
+:102600000041884201D0012070470020704730B55A
+:10261000044600880D4620F40040A84200D2FFDFA7
+:1026200021884FF4004088432843208030BD70B596
+:102630000C00054609D0082C00D2FFDF1DB1A1B265
+:10264000286800F044F8201D70BD0DB100202860FE
+:10265000002070BD0021026803E0938812681944CD
+:1026600089B2002AF9D100F032B870B500260D46C3
+:102670000446082900D2FFDF206808B91EE004469E
+:1026800020688188A94202D001680029F7D1818899
+:102690000646A94201D100680DE005F1080293B297
+:1026A0000022994209D32844491B02608180216895
+:1026B000096821600160206000E00026304670BD9E
+:1026C00000230B608A8002680A6001607047002363
+:1026D0004360021D018102607047F0B50F4601881A
+:1026E000408815460C181E46AC4200D3641B30448B
+:1026F000A84200D9FFDFA019A84200D9FFDF38198E
+:10270000F0BD2DE9F041884606460188408815460F
+:102710000C181F46AC4200D3641B3844A84200D9B1
+:10272000FFDFE019A84200D9FFDF708838447080CD
+:1027300008EB0400BDE8F0812DE9F0410546008872
+:102740001E461746841B8846BC4200D33C442C805E
+:1027500068883044B84200D9FFDFA019B84200D9D8
+:10276000FFDF68883044688008EB0400E2E72DE969
+:10277000F04106881D460446701980B21746884607
+:102780002080B84201D3C01B20806088A84200D2BC
+:10279000FFDF7019B84200D9FFDF6088401B6080FE
+:1027A00008EB0600C6E730B50D460188CC18944208
+:1027B00000D3A41A4088984200D8FFDF281930BD02
+:1027C0002DE9F041C84D04469046A8780E46A04237
+:1027D00000D8FFDF05EB8607B86A50F8240000B187
+:1027E000FFDFB868002816D0304600F044F90146F3
+:1027F000B868FFF73AFF05000CD0B86A082E40F819
+:10280000245000D3FFDFB9484246294650F826300D
+:10281000204698472846BDE8F0812DE9F8431E463A
+:102820008C1991460F460546FF2C00D9FFDFB145B4
+:1028300000D9FFDFE4B200954DB300208046E81CCC
+:1028400020F00300A84200D0FFDF4946DFF898924D
+:10285000684689F8001089F8017089F8024089F803
+:10286000034089F8044089F8054089F8066089F832
+:102870000770414600F008F9002142460F464B46DA
+:102880000098C01C20F00300009012B10EE001205F
+:10289000D4E703EB8106B062002005E0D6F828C03B
+:1028A0004CF82070401CC0B2A042F7D30098491CDD
+:1028B00000EB8400C9B200900829E1D3401BBDE8B9
+:1028C000F88310B50446EEF724FD08B1102010BDC2
+:1028D0002078854A618802EB800092780EE0836A56
+:1028E00053F8213043B14A1C6280A180806A50F8BD
+:1028F0002100A060002010BD491C89B28A42EED898
+:102900006180052010BD70B505460C460846EEF7FF
+:1029100000FD08B1102070BD082D01D3072070BD47
+:1029200025700020608070BD0EB56946FFF7EBFF93
+:1029300000B1FFDF6846FFF7C4FF08B100200EBDFD
+:1029400001200EBD10B50446082800D3FFDF6648FD
+:10295000005D10BD3EB5054600246946FFF7D3FF74
+:1029600018B1FFDF01E0641CE4B26846FFF7A9FF7D
+:102970000028F8D02846FFF7E5FF001BC0B23EBD97
+:1029800059498978814201D9C0B27047FF20704708
+:102990002DE9F041544B062903D007291CD19D791C
+:1029A00000E0002500244FF6FF7603EB810713F8C3
+:1029B00001C00AE06319D7F828E09BB25EF823E073
+:1029C000BEF1000F04D0641CA4B2A445F2D8334673
+:1029D00003801846B34201D100201CE7BDE8F04156
+:1029E000EEE6A0F57F43FF3B01D0082901D300208C
+:1029F0007047E5E6A0F57F42FF3A0BD0082909D2DF
+:102A0000394A9378834205D902EB8101896A51F8EA
+:102A100020007047002070472DE9F04104460D4624
+:102A2000A4F57F4143F20200FF3902D0082D01D303
+:102A30000720F0E62C494FF000088A78A242F8D926
+:102A400001EB8506B26A52F82470002FF1D02748B6
+:102A50003946203050F8252020469047B16A284654
+:102A600041F8248000F007F802463946B068FFF7C5
+:102A700027FE0020CFE61D49403131F810004FF607
+:102A8000FC71C01C084070472DE9F843164E88467B
+:102A9000054600242868C01C20F00300286020465A
+:102AA000FFF7E9FF315D4843B8F1000F01D0002284
+:102AB00000E02A680146009232B100274FEA0D007B
+:102AC000FFF7B5FD1FB106E001270020F8E706EB90
+:102AD0008401009A8A602968641C0844E4B2286072
+:102AE000082CD7D3EBE6000008080020445B020066
+:102AF00070B50E461D46114600F0D4F8044629462E
+:102B0000304600F0D8F82044001D70BD2DE9F0419A
+:102B100090460D4604004FF0000610D00027E01C40
+:102B200020F00300A04200D0FFDFDDB141460020CD
+:102B3000FFF77DFD0C3000EB850617B112E0012791
+:102B4000EDE7614F04F10C00A9003C602572606064
+:102B500000EB85002060606812F0B1FD41463868E6
+:102B6000FFF765FD3046BDE8F0812DE9FF4F564C7B
+:102B7000804681B020689A46934600B9FFDF2068FE
+:102B8000027A424503D9416851F8280020B143F246
+:102B9000020005B0BDE8F08F5146029800F082F8BF
+:102BA00086B258460E9900F086F885B27019001D5D
+:102BB00087B22068A14639460068FFF756FD040039
+:102BC0001FD0678025802946201D0E9D07465A4646
+:102BD00001230095FFF768F9208831463844012326
+:102BE000029ACDF800A0FFF75FF92088C119384696
+:102BF000FFF78AF9D9F800004168002041F8284021
+:102C0000C7E70420C5E770B52F4C0546206800B91A
+:102C1000FFDF2068017AA9420ED9426852F82510D8
+:102C200051B1002342F825304A880068FFF748FD7B
+:102C3000216800200A7A08E043F2020070BD4B6868
+:102C400053F8203033B9401CC0B28242F7D808682C
+:102C5000FFF700FD002070BD70B51B4E0546002437
+:102C6000306800B9FFDF3068017AA94204D94068B2
+:102C700050F8250000B1041D204670BD70B5124EFD
+:102C800005460024306800B9FFDF3068017AA942A8
+:102C900006D9406850F8251011B131F8040B4418DA
+:102CA000204670BD10B50A460121FFF7F6F8C01C9A
+:102CB00020F0030010BD10B50A460121FFF7EDF822
+:102CC000C01C20F0030010BD8000002070B5044639
+:102CD000C2F11005281912F051FC15F0FF0108D0BF
+:102CE000491EC9B2802060542046BDE8704012F0F1
+:102CF000C4BC70BD30B505E05B1EDBB2CC5CD55CFE
+:102D00006C40C454002BF7D130BD10B5002409E04D
+:102D10000B78521E44EA430300F8013B11F8013BD3
+:102D2000D2B2DC09002AF3D110BD2DE9F04389B0FD
+:102D30001E46DDE9107990460D00044622D0024679
+:102D40000846F949FDF7BAFC102221463846FFF73C
+:102D5000DCFFE07B000606D5F34A3946102310322B
+:102D60000846FFF7C7FF102239464846FFF7CDFF58
+:102D7000F87B000606D5EC4A494610231032084677
+:102D8000FFF7B8FF1021204612F077FC0DE0103E4F
+:102D9000B6B208EB0601102322466846FFF7AAFFE9
+:102DA000224628466946FDF789FC102EEFD818D038
+:102DB000F2B241466846FFF789FF10234A4669464A
+:102DC00004A8FFF797FF1023224604A96846FFF7DF
+:102DD00091FF224628466946FDF770FC09B0BDE820
+:102DE000F08310233A464146EAE770B59CB01E4690
+:102DF0000546134620980C468DF8080020221946F7
+:102E00000DF1090012F0BAFB202221460DF1290034
+:102E100012F0B4FB17A913A8CDE90001412302AABF
+:102E200031462846FFF781FF1CB070BD2DE9FF4FEA
+:102E30009FB014AEDDE92D5410AFBB49CDE900764B
+:102E4000202320311AA8FFF770FF4FF000088DF8FB
+:102E500008804FF001098DF8099054F8010FCDF862
+:102E60000A00A088ADF80E0014F8010C1022C0F37F
+:102E700040008DF8100055F8010FCDF81100A8881A
+:102E8000ADF8150015F8010C2C99C0F340008DF831
+:102E9000170006A8824612F071FB0AA8834610228A
+:102EA000229912F06BFBA0483523083802AA40682B
+:102EB0008DF83C80CDE900760E901AA91F98FFF797
+:102EC00034FF8DF808808DF809902068CDF80A004D
+:102ED000A088ADF80E0014F8010C1022C0F34000D9
+:102EE0008DF810002868CDF81100A888ADF81500FD
+:102EF00015F8010C2C99C0F340008DF817005046CE
+:102F000012F03CFB58461022229912F037FB8648FB
+:102F10003523083802AA40688DF83C90CDE9007648
+:102F20000E901AA92098FFF700FF23B0BDE8F08F9C
+:102F3000F0B59BB00C460546DDE922101E4617464B
+:102F4000DDE92032D0F801C0CDF808C0B0F805C0E6
+:102F5000ADF80CC00078C0F340008DF80E00D1F839
+:102F60000100CDF80F00B1F80500ADF813000878A6
+:102F70001946C0F340008DF815001088ADF8160012
+:102F800090788DF818000DF11900102212F0F6FA61
+:102F90000DF129001022314612F0F0FA0DF139003E
+:102FA0001022394612F0EAFA17A913A8CDE9000158
+:102FB000412302AA21462846FFF7B7FE1BB0F0BD09
+:102FC000F0B5A3B017460D4604461E46102202A8CF
+:102FD000289912F0D3FA06A82022394612F0CEFA28
+:102FE0000EA82022294612F0C9FA1EA91AA8CDE976
+:102FF0000001502302AA314616A8FFF796FE169844
+:10300000206023B0F0BDF0B589B00446DDE90E07BD
+:103010000D463978109EC1F340018DF800103178CB
+:103020009446C1F340018DF801101968CDF80210E3
+:103030009988ADF8061099798DF808100168CDF8D7
+:1030400009108188ADF80D1080798DF80F001023DC
+:103050006A46614604A8FFF74DFE2246284604A9A9
+:10306000FDF72CFBD6F801000090B6F80500ADF88E
+:103070000400D7F80100CDF80600B7F80500ADF858
+:103080000A000020039010236A46214604A8FFF797
+:1030900031FE2246284604A9FDF710FB09B0F0BD19
+:1030A0001FB51C6800945B68019313680293526813
+:1030B0000392024608466946FDF700FB1FBD10B5A6
+:1030C00088B004461068049050680590002006906F
+:1030D000079008466A4604A9FDF7F0FABDF800001B
+:1030E000208008B010BD1FB51288ADF800201A88E6
+:1030F000ADF8022000220192029203920246084695
+:103100006946FDF7DBFA1FBD7FB5074B1446054640
+:10311000083B9A1C6846FFF7E6FF224669462846A8
+:10312000FFF7CDFF7FBD00009C5B020070B5044639
+:1031300000780E46012813D0052802D0092813D1A3
+:103140000EE0A06861690578042003F075F9052D8B
+:103150000AD0782300220420616903F0C3F803E059
+:103160000420616903F068F931462046BDE87040EB
+:1031700001F084B810B500F12D03C2799C78411D8F
+:10318000144064F30102C271D2070DD04A795C7910
+:1031900022404A710A791B791A400A718278C978EB
+:1031A0008A4200D9817010BD00224A71F5E741784A
+:1031B000012900D00C21017070472DE9F04F93B028
+:1031C0004FF0000B0C690D468DF820B009780126F0
+:1031D0000C2017464FF00D084FF0110A4FF0080968
+:1031E0001B2975D2DFE811F01B00C20205031D0385
+:1031F0005C036F03A103B603F70318046004920491
+:103200009F04EB042905330551055C05ED053006E7
+:10321000330662067E06F8061C07E506EA0614B1C8
+:1032200020781D282AD0D5F808805FEA08004FD002
+:1032300001208DF82000686A02220D908DF824206C
+:103240000A208DF82500A8690A90A8880028EED0E9
+:1032500098F8001091B10F2910D27DD2DFE801F06B
+:103260007C1349DEFCFBFAF9F8F738089CF6F50008
+:1032700002282DD124B120780C2801D00026EEE3BD
+:103280008DF82020CAE10420696A03F0D5F8A888E7
+:103290000728EED1204600F0ECFF022809D0204696
+:1032A00000F0E7FF032807D9204600F0E2FF0728D7
+:1032B00002D20120207004E0002CB8D02078012830
+:1032C000D7D198F80400C11F0A2902D30A2061E06F
+:1032D000C3E1A070D8F80010E162B8F804102186AC
+:1032E00098F8060084F8320001202870032020702E
+:1032F00044E00728BDD1002C99D020780D28B8D102
+:1033000098F8031094F82F20C1F3C000C2F3C00254
+:10331000104201D0062000E00720890707D198F865
+:1033200005100142D2D198F806100142CED194F88E
+:10333000312098F8051020EA02021142C6D194F813
+:10334000322098F8061090430142BFD198F804004B
+:10335000C11F0A29BAD200E006E2617D81427CD811
+:10336000D8F800106160B8F80410218198F80600C0
+:10337000A072012028700E20207003208DF82000FC
+:10338000686A0D9004F12D000990601D0A900F30BD
+:103390000B9021E12875FDE3412891D1204600F0F2
+:1033A00068FF042802D1E078C00704D1204600F06D
+:1033B00060FF0F2884D1A88CD5F80C8080B24FF024
+:1033C000400BE669FFF748FC324641465B464E46F5
+:1033D000CDF80090FFF733F80B208DF82000686AD5
+:1033E0000D90E0690990002108A8FFF79FFE207862
+:1033F000042806D0A07D58B1012809D003280AD09E
+:1034000048E305202070032028708DF82060CCE16F
+:1034100084F800A032E712202070E8E11128BCD126
+:10342000204600F026FF042802D1E078C00719D01A
+:10343000204600F01EFF062805D1E078C00711D114
+:10344000A07D02280ED0204608E0CBE084E070E1A9
+:103450004FE122E102E1E8E019E0AEE100F009FF0E
+:1034600011289AD1102208F1010104F13C0012F058
+:1034700085F8607801286ED012202070E078C007AF
+:1034800060D0A07D0028C8D00128C6D05AE01128FD
+:1034900090D1204600F0EDFE082804D0204600F030
+:1034A000E8FE132886D104F16C00102208F1010116
+:1034B000064612F063F8207808280DD014202070FA
+:1034C000E178C8070DD0A07D02280AD06278022AD0
+:1034D00004D00328A1D035E00920F0E708B1012885
+:1034E00037D1C80713D0A07D02281DD0002000903E
+:1034F000D4E9062133460EA8FFF777FC10220EA967
+:1035000004F13C0012F00EF8C8B1042042E7D4E9FF
+:103510000912201D8DE8070004F12C0332460EA885
+:10352000616BFFF770FDE9E7606BC1F34401491E71
+:103530000068C84000F0010040F08000D7E7207824
+:10354000092806D185F800908DF8209032E3287084
+:10355000EBE30920FBE79CE1112899D1204600F01C
+:1035600088FE0A2802D1E078C00704D1204600F086
+:1035700080FE15288CD104F13C00102208F10101D5
+:10358000064611F0FBFF20780A2816D0162020707E
+:10359000D4E90932606B611D8DE80F0004F15C0312
+:1035A00004F16C0247310EA8FFF7C2FC10220EA9ED
+:1035B000304611F0B7FF18B1F6E20B20207071E22F
+:1035C0002046FFF7D7FDA078216A0A18C0F1100144
+:1035D000104612F052F823E3394608A8FFF7A6FD7B
+:1035E00006463BE20228B8D1204600F042FE0428FD
+:1035F00004D3204600F03DFE082809D3204600F001
+:1036000038FE0E2829D3204600F033FE122824D29B
+:10361000A07D0228A1D10E208DF82000686A0D90AF
+:1036200098F801008DF82400F0E3022895D1204697
+:1036300000F01FFE002810D0204600F01AFE0128DE
+:10364000F9D0204600F015FE0C28F4D004208DF8A7
+:10365000240098F801008DF825005EE21128FCD1C5
+:10366000002CFAD020781728F7D16178606A0229F7
+:1036700011D0002101EB4101182606EBC1011022F7
+:10368000405808F1010111F079FF0420696A00F047
+:10369000E3FD2670F2E50121ECE70B28DDD1002CDB
+:1036A000DBD020781828D8D16078616A02281CD035
+:1036B0005FF0000000EB4002102000EBC200095850
+:1036C000B8F8010008806078616A02280FD00020F5
+:1036D00000EB4002142000EBC2000958404650F8AD
+:1036E000032F0A604068486039E00120E2E70120CA
+:1036F000EEE71128B1D1002CAFD020781928ACD139
+:103700006178606A022912D05FF0000101EB41018B
+:103710001C2202EBC1011022405808F1010111F0F6
+:103720002DFF0420696A00F097FD1A20B6E0012100
+:10373000ECE7082891D1002C8FD020781A288CD162
+:10374000606A98F80120017862F347010170616AAC
+:10375000D8F8022041F8012FB8F80600888004202C
+:10376000696A00F079FD8EE2072013E638780128B7
+:1037700094D1182204F11400796811F044FFE07923
+:10378000C10894F82F0001EAD001E07861F300004D
+:10379000E070217D002974D12178032909D0C00768
+:1037A00025D0032028708DF82090686A0D90412064
+:1037B00004E3607DA178884201D90620EAE502266B
+:1037C0002671E179204621F0E001E171617A21F072
+:1037D000F0016172A17A21F0F001A172FFF7CAFC39
+:1037E0002E708DF82090686A0D900720E6E2042084
+:1037F000ADE6387805289DD18DF82000686A0D90D7
+:10380000B8680A900720ADF824000A988DF830B007
+:103810006168016021898180A17A81710420207012
+:10382000F4E23978052985D18DF82010696A0D9167
+:10383000391D09AE0EC986E80E004121ADF82410ED
+:103840008DF830B01070A88CD7F80C8080B240266C
+:10385000A769FFF713FA41463A463346C846CDF802
+:103860000090FEF720FE002108A8FFF75FFCE0783B
+:1038700020F03E00801CE0702078052802D00F2048
+:103880000CE049E1A07D20B1012802D0032802D03C
+:1038900002E10720C0E584F80080EFE42070EDE449
+:1038A000102104F15C0002F0E8FA606BB0BBA07D6F
+:1038B00018B1012801D00520FDE006202870F74846
+:1038C0006063A063BEE23878022894D1387908B1E9
+:1038D0002875B3E3A07D022802D0032805D022E09A
+:1038E000B8680028F5D060631CE06078012806D035
+:1038F000A07994F82E10012805D0E84806E0A179B7
+:1039000094F82E00F7E7B8680028E2D06063E0780A
+:10391000C00701D0012902D0E04803E003E0F868C5
+:103920000028D6D0A063062011E68DF82090696AA1
+:103930000D91E1784846C90709D06178022903D181
+:10394000A17D29B1012903D0A17D032900D0072041
+:10395000287031E138780528BBD1207807281ED09F
+:1039600084F800A005208DF82000686A0D90B868E2
+:103970000A90ADF824A08DF830B003210170E178F1
+:10398000CA070FD0A27D022A1AD000210091D4E9E3
+:10399000061204F15C03401CFFF727FA67E384F882
+:1039A0000090DFE7D4E90923211D8DE80E0004F122
+:1039B0002C0304F15C02401C616BFFF724FB56E30F
+:1039C000626BC1F34401491E1268CA4002F0010152
+:1039D00041F08001DAE738780528BDD18DF8200064
+:1039E000686A0D90B8680A90ADF824A08DF830B0E0
+:1039F000042100F8011B102204F15C0111F0BEFD4E
+:103A0000002108A8FFF792FB2078092801D0132095
+:103A100044E70A2020709CE5E078C10742D0A17DF0
+:103A2000012902D0022927D038E0617808A80129AD
+:103A300016D004F16C010091D4E9061204F15C0384
+:103A4000001DFFF7BDFA0A20287003268DF820809C
+:103A5000686A0D90002108A8FFF768FBDDE2C3E269
+:103A600004F15C010091D4E9062104F16C03001D0E
+:103A7000FFF7A6FA0026E9E7C0F3440114290DD2A6
+:103A80004FF0006101EBB0104FEAB060E070607879
+:103A9000012801D01020BFE40620FFE6607801284D
+:103AA0003FF4B8AC0A2052E5E178C90708D0A17DFF
+:103AB000012903D10B20287004202FE028702DE06D
+:103AC0000E2028706078616B012817D004F15C0328
+:103AD00004F16C020EA8FFF7E3FA2046FFF74AFB59
+:103AE000A0780EAEC0F11001304411F0C6FD0620E2
+:103AF0008DF82000686A09960D909AE004F16C0335
+:103B000004F15C020EA8FFF7CBFAE9E73978022945
+:103B100003D139790029D1D029758FE28DF82000A1
+:103B2000686A0D9058E538780728F6D1D4E909215C
+:103B30006078012809D000BF04F16C00CDE90002D3
+:103B4000029105D104F16C0304E004F15C00F5E797
+:103B500004F15C0304F14C007A680646216AFFF721
+:103B600065F96078012821D1A078216A0A18C0F18E
+:103B70001001104611F081FDD4E90923606B04F1B6
+:103B80002D018DE80F0004F15C0304F16C02314655
+:103B90000EA800E054E2FFF7CBF910220EA904F1C1
+:103BA0003C0011F0BFFC08B10B20AFE485F80080A9
+:103BB0008DF82090686A0D908DF824A00CE5387877
+:103BC0000528AAD18DF82000686A0D90B8680A907F
+:103BD000ADF824A08DF830B080F80080617801291C
+:103BE0001AD0D4E9093204F12D01A66B0392009694
+:103BF000CDE9011304F16C0304F15C0204F14C0102
+:103C0000401CFFF795F9002108A8FFF78FFA6078AC
+:103C1000012805D0152041E6D4E90923611DE4E718
+:103C20000E20287006208DF82000686ACDF824B098
+:103C30000D90A0788DF82800CEE438780328C0D104
+:103C4000E079C00770D00F202870072066E7387829
+:103C500004286BD11422391D04F1140011F0D3FC97
+:103C6000616A208CA1F80900616AA078C871E179C5
+:103C7000626A01F003011172616A627A0A73616A11
+:103C8000A07A81F82400162061E485F800A08DF860
+:103C90002090696A50460D9190E000009C5B020004
+:103CA0003878052842D1B868A8616178606A02292D
+:103CB00001D0012100E0002101EB4101142606EBB7
+:103CC000C1014058082102F0D8F86178606A0229E1
+:103CD00001D0012100E0002101EB410106EBC1010F
+:103CE000425802A8E169FFF70FFA6078626A022879
+:103CF00001D0012000E0002000EB4001102000EB8B
+:103D0000C1000223105802A90932FEF7F3FF626ACC
+:103D1000FD4B0EA80932A169FFF7E5F96178606AE9
+:103D2000022904D0012103E042E18BE0BDE0002143
+:103D300001EB4101182606EBC101A27840580EA9FB
+:103D400011F01CFC6178606A022901D0012100E0B9
+:103D5000002101EB410106EBC1014058A178084464
+:103D6000C1F1100111F089FC05208DF82000686A6E
+:103D70000D90A8690A90ADF824A08DF830B0062106
+:103D800001706278616A022A01D0012200E00022FB
+:103D900002EB420206EBC202401C8958102211F0CD
+:103DA000EDFB002108A8FFF7C1F91220C5F818B0F3
+:103DB00028708DF82090686A0D900B208DF82400F3
+:103DC0000AE43878052870D18DF82000686A0D90D3
+:103DD000B8680A900B20ADF824000A9807210170FA
+:103DE0006178626A022901D0012100E0002101EB23
+:103DF0004103102101EBC30151580988A0F80110BB
+:103E00006178626A022902D0012101E02FE10021DC
+:103E100001EB4103142101EBC30151580A6840F83A
+:103E2000032F4968416059E01920287001208DF85E
+:103E3000300077E6162028708DF830B0002108A8F1
+:103E4000FFF774F9032617E114202870B0E63878DC
+:103E500005282AD18DF82000686A0D90B8680A906C
+:103E6000ADF824A08DF830B080F800906278616AD7
+:103E70004E46022A01D0012200E0002202EB42025B
+:103E80001C2303EBC202401C8958102211F076FB60
+:103E9000002108A8FFF74AF9152028708DF8206046
+:103EA000686A0D908DF824603CE680E0387805283B
+:103EB0007DD18DF82000686A0D90B8680A90ADF841
+:103EC000249009210170616909784908417061698C
+:103ED00051F8012FC0F802208988C18020781C2861
+:103EE000A8D1A1E7E078C00702D04FF0060C01E0AE
+:103EF0004FF0070C607802280AD000BF4FF0000096
+:103F000000EB040101F1090105D04FF0010004E0CC
+:103F10004FF00100F4E74FF000000B78204413EA63
+:103F20000C030B7010F8092F02EA0C02027004D186
+:103F30004FF01B0C84F800C0D2B394F801C0BCF160
+:103F4000010F00D09BB990F800C0E0465FEACC7C3E
+:103F500004D028F001060670102606E05FEA887C8F
+:103F600005D528F00206067013262E70032694F855
+:103F700001C0BCF1020F00D092B991F800C05FEA15
+:103F8000CC7804D02CF001060E70172106E05FEA11
+:103F90008C7805D52CF002060E70192121700026B0
+:103FA0000078D0BBCAB3C3BB1C20207035E012E040
+:103FB00002E03878062841D11A2019E42078012837
+:103FC0003CD00C283AD02046FFF7F1F809208DF8B4
+:103FD0002000686A0D9031E03878052805D0062069
+:103FE000387003261820287046E005218DF820102F
+:103FF000686A0D90B8680A900220ADF8240001208C
+:104000008DF830000A980170297D4170394608A862
+:10401000FFF78CF8064618202870012E0ED02BE0F2
+:1040200001208DF82000686A0D9003208DF824008F
+:10403000287D8DF8250085F814B012E0287D80B128
+:104040001D202070172028708DF82090686A0D9030
+:1040500002208DF82400394608A8FFF767F80646C5
+:104060000AE00CB1FE2020709DF8200020B1002154
+:1040700008A8FFF75BF810E413B03046BDE8F08FF6
+:104080002DE9F04387B00C464E6900218DF80410ED
+:1040900001202578034602274FF007094FF0050C51
+:1040A00085B1012D53D0022D39D1FE2030708DF80D
+:1040B0000030606A059003208DF80400207E8DF8A2
+:1040C000050063E02179012925D002292DD003299B
+:1040D00028D0042923D1B17D022920D131780D1FA8
+:1040E000042D04D30A3D032D01D31D2917D12189A5
+:1040F000022914D38DF80470237020899DF80410D0
+:1041000088421BD2082001E0945B02008DF8000079
+:10411000606A059057E070780128EBD0052007B061
+:10412000BDE8F0831D203070E4E771780229F5D1F5
+:1041300031780C29F3D18DF80490DDE7083402F8CA
+:1041400004CB94E80B0082E80B000320E7E7157826
+:10415000052DE4D18DF800C0656A05959568029536
+:104160008DF8101094F80480B8F1010F13D0B8F155
+:10417000020F2DD0B8F1030F1CD0B8F1040FCED12F
+:10418000ADF804700E202870207E6870002168460B
+:10419000FEF7CCFF0CE0ADF804700B202870207EF9
+:1041A000002100F01F0068706846FEF7BFFF3770FF
+:1041B0000020B4E7ADF804708DF8103085F800C029
+:1041C000207E6870277011466846FEF7AFFFA6E7AD
+:1041D000ADF804902B70207F6870607F00F00100C4
+:1041E000A870A07F00F01F00E870E27F2A71C0076E
+:1041F0001CD094F8200000F00700687194F82100AA
+:1042000000F00700A87100216846FEF78FFF2868BC
+:10421000F062A8883086A87986F83200A0694078D4
+:1042200070752879B0700D203070C1E7A97169717F
+:10423000E9E700B587B004280CD101208DF8000013
+:104240008DF80400002005918DF8050001466846B0
+:10425000FEF76CFF07B000BD70B50C46054602F0D6
+:10426000EBF821462846BDE870407823002202F092
+:1042700039B808B1007870470C20704770B50C0051
+:1042800005784FF000010CD021702146F0F7D9FFDE
+:1042900069482178405D884201D1032070BD022029
+:1042A00070BDF0F7CEFF002070BD0279012A05D065
+:1042B00000220A704B78012B02D003E004207047E3
+:1042C0000A758A6102799300521C0271C150032061
+:1042D0007047F0B587B00F4605460124287905EBF5
+:1042E000800050F8046C7078411E02290AD25249AD
+:1042F0003A46083901EB8000314650F8043C284624
+:10430000984704460CB1012C11D12879401E10F0B9
+:10431000FF00287101D00324E0E70A208DF8000097
+:10432000706A0590002101966846FFF7A7FF032CED
+:10433000D4D007B02046F0BD70B515460A460446F5
+:1043400029461046FFF7C5FF064674B12078FE28BF
+:104350000BD1207C30B100202870294604F10C00DC
+:10436000FFF7B7FF2046FEF722FF304670BD7047CB
+:1043700070B50E4604467C2111F0A1F90225012EEC
+:1043800003D0022E04D0052070BD0120607000E033
+:1043900065702046FEF70BFFA575002070BD28B1A3
+:1043A000027C1AB10A4600F10C01C5E701207047F2
+:1043B00010B5044686B0042002F03EF82078FE28AE
+:1043C00006D000208DF8000069462046FFF7E7FF81
+:1043D00006B010BD7CB50E4600218DF80410417862
+:1043E000012903D0022903D0002405E0046900E07C
+:1043F00044690CB1217C89B16D4601462846FFF71E
+:1044000054FF032809D1324629462046FFF794FF7E
+:104410009DF80410002900D004207CBD04F10C0597
+:10442000EBE730B40C460146034A204630BC034B50
+:104430000C3AFEF758BE0000D85B0200945B020005
+:1044400070B50D46040011D085B12101284611F048
+:1044500014F910225449284611F090F852480121CD
+:104460000838018044804560002070BD012070BD87
+:1044700070B54D4E00240546083E10E07068AA7BDA
+:1044800000EB0410817B914208D1C17BEA7B914211
+:1044900004D10C22294611F045F830B1641C308853
+:1044A0008442EBDB4FF0FF3070BD204670BD70B52D
+:1044B0000D46060006D02DB1FFF7DAFF002803DB1A
+:1044C000401C14E0102070BD374C083C20886288E6
+:1044D000411C914201D9042070BD6168102201EB9A
+:1044E0000010314611F04AF82088401C20802870C6
+:1044F000002070BD2C480838008870472A490839C8
+:104500000888012802D0401E08800020704770B53E
+:1045100014460D0018D0BCB10021A170022802D0B1
+:10452000102811D105E0288870B10121A1701080F8
+:1045300008E02846FFF79CFF002805DB401CA07020
+:10454000A8892080002070BD012070BD70B505468F
+:1045500014460E000BD000203070A878012808D037
+:1045600005D91149A1F108010A8890420AD9012010
+:1045700070BD24B1287820702888000A507002206D
+:1045800008700FE064B14968102201EB0011204669
+:10459000103910F0F3FF287820732888000A607320
+:1045A00010203070002070BD8C0000202DE9F041FB
+:1045B00090460C4607460025FE48072F00EB88165C
+:1045C00007D2DFE807F00707070704040400012506
+:1045D00000E0FFDF06F81470002D13D0F54880309E
+:1045E00000EB880191F82700202803D006EB40005B
+:1045F000447001E081F8264006EB44022020507010
+:1046000081F82740BDE8F081F0B51F4614460E46FC
+:104610000546202A00D1FFDFE649E648803100EB5D
+:10462000871C0CEB440001EB8702202E07D00CEB1B
+:10463000460140784B784870184620210AE092F8ED
+:104640002530407882F82500F6E701460CEB410062
+:1046500005704078A142F8D192F82740202C03D071
+:104660000CEB4404637001E082F826300CEB41044B
+:104670002023637082F82710F0BD30B50D46CE4B75
+:1046800044190022181A72EB020100D2FFDFCB4856
+:10469000854200DDFFDFC9484042854200DAFFDF86
+:1046A000C548401C844207DA002C01DB204630BD9F
+:1046B000C148401C201830BDBF48C043FAE710B5C0
+:1046C00004460168407ABE4A52F82020114450B195
+:1046D0000220084420F07F40EEF7AFFA94F908106A
+:1046E000BDE81040C9E70420F3E72DE9F047B14EDB
+:1046F000803696F82D50DFF8BC9206EB850090F8D6
+:10470000264034E009EB85174FF0070817F814002E
+:10471000012806D004282ED005282ED0062800D047
+:10472000FFDF01F00AF9014607EB4400427806EB8F
+:10473000850080F8262090F82720A24202D120226E
+:1047400080F82720084601F003F92A462146012077
+:10475000FFF72CFF9B48414600EB041002682046FF
+:10476000904796F82D5006EB850090F82640202CB7
+:10477000C8D1BDE8F087022000E003208046D0E7E2
+:1047800010B58C4C2021803484F8251084F8261034
+:1047900084F82710002084F8280084F82D0084F87D
+:1047A0002E10411EA16044F8100B20746074207319
+:1047B0006073A0738449E077207508704870002109
+:1047C0007C4A103C02F81100491CC9B22029F9D3D7
+:1047D0000120EEF722F90020EEF71FF9012084F8FE
+:1047E0002200EEF765FB7948EEF777FB764CA41EC6
+:1047F00020707748EEF771FB6070BDE81040EEF76F
+:1048000099B810B5EEF7BBF86F4CA41E2078EEF700
+:104810007DFB6078EEF77AFBBDE8104001F0C5B88B
+:10482000202070472DE9F34F624C0025803404EBC3
+:10483000810A89B09AF82500202821D0691E0291AA
+:104840006049009501EB0017391D03AB07C983E8E8
+:104850000700A18BADF81C10A07F8DF81E009DF8FD
+:104860001500A046C8B10226554951F820400399C9
+:10487000A219114421F07F41019184B102210FE07E
+:104880000120EEF7CAF80020EEF7C7F8EEF795F82A
+:1048900001F08BF884F82F50A7E00426E4E700210C
+:1048A0008DF81810022801D0012820D10398011991
+:1048B0000998081A801C9DF81C1020F07F4001B157
+:1048C0000221353181420BD203208DF81500039867
+:1048D000C4F13201401A20F07F40322403900CE0F2
+:1048E00098F8240018B901F0F8F900284DD0322CBE
+:1048F00003D214B101F04DF801E001F056F8324A4C
+:10490000107820B393465278039B121B00219DF828
+:104910001840994601281BD0032819D05FF00000E9
+:104920008DF81E00002A04DD981A039001208DF8EE
+:1049300018009DF81C0000B102210398254A20F0C0
+:104940007F40039003AB099801F03BF810B110E0F1
+:104950000120E5E79DF81D0018B99BF80000032829
+:1049600012D08DF81C50CDF80C908DF818408DF8B1
+:104970001E509DF8180058B1039801238119002298
+:104980001846EEF79DF806E000200BB0BDE8F08F6A
+:104990000120EEF742F897F90C200123002001993D
+:1049A000EEF78EF8F87BC00701D0EEF772F901211F
+:1049B00012E00000500A0020FF7F841E0020A107A3
+:1049C000E85B0200500800209E0000209361010077
+:1049D000EB460100FFFF3F0088F82F108AF82850AF
+:1049E00020226946F74810F00EFE0120CDE72DE9A0
+:1049F000F05FDFF8D083064608EB860090F825507C
+:104A0000202D1FD0A8F180002C4600EB8617A0F5C2
+:104A10000079DFF8B4B305E0A24607EB4A0044781A
+:104A2000202C0AD0EEF797F809EB04135A4601211F
+:104A30001B1D00F0C6FF0028EED0AC4202D033466A
+:104A400052461EE0E14808B1AFF30080EEF783F86C
+:104A500098F82F206AB1D8F80C20411C891A090255
+:104A6000CA1701EB12610912002902DD0020BDE81E
+:104A7000F09F3146FFF7D6FE08B10120F7E7334635
+:104A80002A4620210420FFF7BFFDEFE72DE9F04182
+:104A9000CC4C2569EEF75FF8401B0002C11700EB14
+:104AA0001160001200D4FFDF94F8220000B1FFDF94
+:104AB000012784F8227094F82E00202800D1FFDF0F
+:104AC00094F82E60202084F82E00002584F82F50C2
+:104AD00084F8205084F82150BD48256000780228D1
+:104AE00033D0032831D000202077A068401C05D0A7
+:104AF0004FF0FF30A0600120EDF78FFF0020EDF7B1
+:104B00008CFFEEF788F8EEF780F8EDF756FF0FF020
+:104B100085FFB048056005604FF0E0214FF400408C
+:104B2000B846C1F88002EEF722F994F82D703846A5
+:104B3000FFF75DFF0028FAD0A248803800EB87100D
+:104B400010F81600022802D006E00120CCE73A4611
+:104B500031460620FFF72AFD84F8238004EB870006
+:104B600090F82600202804D09948801E4078EEF75F
+:104B7000D3F9207F002803D0EEF73DF8257765773D
+:104B800040E5904910B591F82D200024803901EBC3
+:104B9000821100BF11F814302BB1641CE4B2202C38
+:104BA000F8D3202010BD8C4901EB041108600020CF
+:104BB000C87321460120FFF7F9FC204610BD10B54F
+:104BC000012801D0032800D171B37E4A92F82D301C
+:104BD0007C4C0022803C04EB831300BF13F812408E
+:104BE0000CB1082010BD521CD2B2202AF6D3784A4C
+:104BF00048B1022807D0072916D2DFE801F01506D0
+:104C0000080A0C0E100000210AE01B2108E03A21DE
+:104C100006E0582104E0772102E0962100E0B5216A
+:104C200051701070002010BD072010BD684810B5ED
+:104C30004078EEF702F880B210BD10B5202811D2EE
+:104C4000604991F82D30A1F1800202EB831414F831
+:104C500010303BB191F82D3002EB831212F8102086
+:104C6000012A01D0002010BD91F82D20014600201E
+:104C7000FFF79CFC012010BD10B5EDF76CFFBDE8FF
+:104C80001040EDF7DABF2DE9F0410E464D4F0178A7
+:104C90002025803F0C4607EB831303E0254603EBFA
+:104CA00045046478944202D0202CF7D108E0202CEF
+:104CB00006D0A14206D103EB41014978017007E01B
+:104CC00000209FE403EB440003EB4501407848706B
+:104CD000424F7EB127B1002140F2DD30AFF30080BA
+:104CE0003078A04206D127B100214FF47870AFF39D
+:104CF0000080357027B1002140F2E530AFF300802D
+:104D000001207FE410B542680B689A1A1202D4178A
+:104D100002EB1462121216D4497A91B1427A82B926
+:104D20002F4A006852F82110126819441044001DDF
+:104D3000891C081A0002C11700EB1160001232280A
+:104D400001DB012010BD002010BD2DE9F047814698
+:104D50001C48214E00EB8100984690F82540202009
+:104D6000107006F50070154600EB81170BE000BFD0
+:104D700006EB04104946001DFFF7C4FF28B107EBFE
+:104D800044002C704478202CF2D1297888F8001047
+:104D900013E000BF06EB0415291D4846FFF7B2FFDC
+:104DA00068B988F80040A97B99F80A00814201D8C7
+:104DB0000020DEE407EB44004478202CEAD10120F7
+:104DC000D7E40000D00A0020FFFF3F0000000000F1
+:104DD0009E00002000F50040500800200000000068
+:104DE000E85B02002DE9FC410E4607460024FE4D1B
+:104DF00009E000BF9DF8000005EB0010816838460F
+:104E000000F0F3FD01246B4601AA31463846FFF756
+:104E10009CFF0028EED02046BDE8FC8170B504461A
+:104E2000F2480125A54300EB841100EB85104022D8
+:104E300010F0A4FBEE4E26B1002140F25F40AFF32C
+:104E40000080EA48803000EB850100EB8400D0F858
+:104E50002500C1F8250026B1002140F26340AFF3E0
+:104E60000080284670BD2DE9FC418446DF48154688
+:104E7000089C00EB85170E4617F81400012803D094
+:104E8000022801D00020C7E70B46DA4A012160461C
+:104E900000F097FDA8B101AB6A4629463046FFF7FE
+:104EA00054FF70B1D1489DF804209DF80010803067
+:104EB00000EB85068A4208D02B460520FFF7A4FBAD
+:104EC0000BE02A462146042014E0202903D007EBFA
+:104ED0004100407801E096F8250007EB4401487056
+:104EE0009DF80000202809D007EB400044702A46B6
+:104EF00021460320FFF75AFB01208DE706F8254FD6
+:104F00000120F070F3E7B84901EB0010001DFFF736
+:104F1000D6BB7CB51D46134604460E4600F108027A
+:104F200021461846EDF796FE94F908000F2804DD97
+:104F30001F3820722068401C206096B10220AE49C4
+:104F400051F82610461820686946801B20F07F40E3
+:104F5000206094F908002844C01C1F2803DA0120AF
+:104F600009E00420EBE701AAEDF774FE9DF80400C8
+:104F700010B10098401C009000992068314408440A
+:104F8000C01C20F07F4060607CBD2DE9FE430C46D4
+:104F900006460978607990722079984615465072D5
+:104FA00041B19248803090F82E1020290AD0006933
+:104FB000401D0BE0D4E90223217903B02846BDE867
+:104FC000F043A6E78D484178701D084420F07F47E4
+:104FD000217900222846A368FFF79BFF394628461F
+:104FE00000F003FDD4E9023221796846FFF791FF12
+:104FF00041462846019CFFF7F5FE2B46224600213C
+:10500000304600F0DEFC002803D13146284600F08F
+:10501000ECFCBDE8FE832DE9FE4F814600F0A1FCCB
+:1050200030B1002799F8000020B10020BDE8FE8FC4
+:105030000127F7E76D4D6E4C4FF0000A803524B123
+:10504000002140F2D640AFF3008095F82D8085F81E
+:1050500023A0002624B1002140F2DB40AFF3008002
+:105060001FB94046FFF7DAFE804624B1002140F226
+:10507000E340AFF30080EDF76EFD43466A464946D4
+:10508000FFF783FF24B1002140F2E940AFF3008035
+:1050900095F82E0020280CD029690098401A0002AB
+:1050A000C21700EB1260001203D5684600F09DFCA9
+:1050B000012624B1002140F2F340AFF3008095F8BF
+:1050C00023000028BBD124B1002140F2F940AFF306
+:1050D0000080EDF740FD6B46464A002100F071FC70
+:1050E0000028A3D027B941466846FFF77BFE064358
+:1050F00026B16846FFF7E3FAC9F8080024B1002199
+:1051000040F20C50AFF3008001208FE72DE9F04F03
+:1051100089B08B46824600F024FC344C803428B39E
+:105120009BF80000002710B1012800D0FFDF304DB0
+:1051300025B1002140F28250AFF300802A490120BE
+:1051400001EB0A18A94607905FEA090604D000217E
+:1051500040F28A50AFF30080079800F0F9FB94F812
+:105160002D50002084F8230067B119E094F82E0038
+:105170000127202800D1FFDF9BF800000028D6D0AF
+:10518000FFDFD4E72846FFF749FE054626B1002198
+:1051900040F29450AFF3008094F823000028D3D15C
+:1051A00026B1002140F29E50AFF30080EDF7D3FC12
+:1051B0002B4602AA59460790FFF7E7FE98F80F0022
+:1051C0005FEA060900F001008DF8130004D0002109
+:1051D0004FF4B560AFF300803B462A4602A9CDF8F4
+:1051E00000A007980CE0000050080020500A0020A2
+:1051F00000000000FFFF3F00E85B02009E0000206F
+:10520000FFF731FE064604EB850090F82800009079
+:10521000B9F1000F04D0002140F2AF50AFF300808D
+:1052200000F08BFB0790B9F1000F04D0002140F291
+:10523000B550AFF3008094F82300002884D1B9F171
+:10524000000F04D0002140F2BD50AFF300800DF1FB
+:10525000080C9CE80E00C8E90112C8F80C304EB3E7
+:105260005FEA090604D0002140F2CA50AFF3008083
+:105270000098B84312D094F82E0020280ED126B101
+:10528000002140F2CF50AFF300802846FFF7AFFB7C
+:1052900020B99BF80000D8B3012849D0B9F1000F1C
+:1052A00004D0002140F2EC50AFF30080284600F01B
+:1052B0003DFB01265FEA090504D0002140F2F550CC
+:1052C000AFF30080079800F043FB25B1002140F2C6
+:1052D000F950AFF300808EB194F82D0004EB8000FC
+:1052E00090F82600202809D025B100214FF4C06095
+:1052F000AFF30080F9484078EDF70EFE25B10021AC
+:1053000040F20560AFF3008009B03046BDE8F08F91
+:10531000FFE7B9F1000F04D0002140F2D750AFF3FE
+:10532000008094F82D2051460420FFF73FF9C0E794
+:10533000002E3FF409AF002140F2E250AFF30080AD
+:1053400002E72DE9F84FE64D814695F82D004FF024
+:105350000008E44C4FF0010B474624B1002140F215
+:105360001360AFF30080584600F0F2FA85F823701E
+:1053700024B100214FF4C360AFF3008095F82D00F5
+:10538000FFF74CFD064695F8230028B1002CE4D029
+:10539000002140F21E604BE024B1002140F2226067
+:1053A000AFF30080CE48803800EB861111F8190069
+:1053B000032856D1334605EB830A4A469AF825005E
+:1053C000904201D1012000E0002000900AF1250068
+:1053D0000021FFF758FC01460098014203D001224A
+:1053E0008AF82820AF77E1B324B1002140F227608A
+:1053F000AFF30080324649460120FFF7D7F89AF80C
+:1054000028A024B1002140F23260AFF3008000F008
+:1054100094FA834624B1002140F23760AFF3008054
+:1054200095F8230038B1002C97D0002140F23B6062
+:10543000AFF3008091E7BAF1000F07D095F82E0086
+:10544000202803D13046FFF7D2FAE0B124B1002181
+:1054500040F24F60AFF30080304600F067FA4FF043
+:10546000010824B100214FF4CB60AFF3008058460F
+:1054700000F06EFA24B1002140F25C60AFF30080CE
+:105480004046BDE8F88F002CF1D0002140F24A6080
+:10549000AFF30080E6E70020EDF798BA0120EDF7C2
+:1054A00095BA8E48007870472DE9F0418C4C94F8FD
+:1054B0002E0020281FD194F82D6004EB860797F862
+:1054C0002550202D00D1FFDF8549803901EB861062
+:1054D00000EB4500407807F8250F0120F87084F8AC
+:1054E0002300294684F82E50324602202234FFF74A
+:1054F0005DF80020207004E42DE9F0417A4E784CEC
+:10550000012538B1012821D0022879D003287DD087
+:10551000FFDFF0E700F03DFAFFF7C6FF207E00B1A5
+:10552000FFDF84F821500020EDF777FAA168481CCE
+:1055300004D0012300221846EDF7C2FA14F82E0F0A
+:10554000217806EB01110A68012154E0FFF7ACFF56
+:105550000120EDF762FA94F8210050B1A068401CD8
+:1055600007D014F82E0F217806EB01110A680621E6
+:1055700041E0207EDFF86481002708F1020801285D
+:1055800003D002281ED0FFDFB5E7A777EDF733FB86
+:1055900098F80000032801D165772577607D53498D
+:1055A00051F8200094F8201051B948B161680123E6
+:1055B000091A00221846EDF783FA022020769AE7AE
+:1055C000277698E784F8205000F0E3F9A07F50B1E7
+:1055D00098F8010061680123091A00221846EDF7C6
+:1055E0006FFA257600E0277614F82E0F217806EB67
+:1055F00001110A680021BDE8F041104700E005E014
+:1056000036480078BDE8F041EDF786BCFFF74CFF67
+:1056100014F82E0F217806EB01110A680521EAE73C
+:1056200010B52F4C94F82E00202800D1FFDF14F87D
+:105630002E0F21782C4A02EB01110A68BDE81040B8
+:10564000042110477CB5264C054694F82E002028EE
+:1056500000D1FFDFA068401C00D0FFDF94F82E00CF
+:10566000214901AA01EB0010694690F90C00284479
+:10567000EDF7F0FA9DF904000F2801DD012000E0AC
+:105680000020009908446168084420F07F41A1602F
+:1056900094F82100002807D002B00123BDE8704033
+:1056A00000221846EDF70CBA7CBD30B5104A0B1A33
+:1056B000541CB3EB940F1FD3451AB5EB940F1BD3B7
+:1056C000934203D9101A43185B1C15E0954211D977
+:1056D000511A0844401C43420EE000009C00002088
+:1056E000D00A00200000000050080020E85B020003
+:1056F000FF7F841EFFDF0023184630BD01230022F8
+:1057000001460220EDF7DCB90220EDF786B9EDF78E
+:1057100022BA2DE9FC47BA4C054694F82E00202801
+:1057200000D1FFDF642D58D3B64A0021521B71EB24
+:10573000010052D394F82E20A0462046DFF8C892EC
+:1057400090F82D7009EB0214D8F8000001AA284443
+:105750006946EDF77FFA9DF90400002802DD009804
+:10576000401C0090A068009962684618B21A22F0A6
+:105770007F42B2F5800F30D208EB8702444692F8A0
+:105780002520202A0AD009EB02125268101A0002C2
+:10579000C21700EB1260001288421EDBA068401C9A
+:1057A00010D0EDF7D8F9A168081A0002C11700EB74
+:1057B00011600012022810DD0120EDF72EF94FF0E4
+:1057C000FF30A06020682844206026F07F402061E0
+:1057D000012084F82300BDE8FC870020FBE72DE9C9
+:1057E000F047874C074694F82D00A4F1800606EB9D
+:1057F000801010F8170000B9FFDF94F82D50A04674
+:10580000824C24B100214FF40760AFF3008040F6D2
+:105810007C0940F6850A06EB851600BF16F81700CE
+:10582000012818D0042810D005280ED006280CD046
+:105830001CB100214846AFF3008020BF002CEDD002
+:1058400000215046AFF30080E8E72A4639460120A0
+:10585000FEF7ACFEF2E74FF0010A4FF000094546B3
+:1058600024B1002140F68C00AFF30080504600F0D8
+:105870006FF885F8239024B1002140F69100AFF332
+:10588000008095F82D00FFF7C9FA064695F8230029
+:1058900028B1002CE4D0002140F697001FE024B18D
+:1058A000002140F69B00AFF3008005EB860000F17D
+:1058B000270133463A462630FFF7E5F924B10021A7
+:1058C00040F69F00AFF3008000F037F8824695F86D
+:1058D000230038B1002CC3D0002140F6A500AFF35F
+:1058E0000080BDE785F82D60012085F82300504633
+:1058F00000F02EF8002C04D0002140F6B200AFF3E7
+:105900000080BDE8F08730B504463D480D4690F86C
+:105910002D003B49803901EB801010F8140000B9CC
+:10592000FFDF394800EB0410C57330BD344981F8FE
+:105930002D00012081F82300704710B5344808B1CC
+:10594000AFF30080EFF3108000F0010072B610BDDD
+:1059500010B5002804D12F4808B1AFF3008062B61B
+:1059600010BD2D480068C005C00D10D0103840B2E1
+:10597000002804DB00F1E02090F8000405E000F0CE
+:105980000F0000F1E02090F8140D40097047082046
+:10599000704710B51A4C94F82400002804D1F6F78B
+:1059A0005FF8012084F8240010BD10B5144C94F861
+:1059B0002400002804D0F6F77CF8002084F82400A6
+:1059C00010BD10B51C685B68241A181A24F07F44B7
+:1059D00020F07F40A14206D8B4F5800F03D2904258
+:1059E00001D8012010BD002010BDD0E90032D21A2C
+:1059F00021F07F43114421F07F41C0E9003170471D
+:105A0000D00A0020FF1FA10750080020000000005E
+:105A1000000000000000000004ED00E02DE9F0416E
+:105A2000044680074FF000054FF001060CD56B4887
+:105A3000056006600EF01BFE20B16948016841F464
+:105A40008061016024F00204E0044FF0FF3705D5C7
+:105A500064484660C0F8087324F48054600003D59D
+:105A60006148056024F08044E0050FD55F48C0F828
+:105A70000052C0F808735E490D60091D0D605C4A54
+:105A800004210C321160066124F48074A00409D54D
+:105A900058484660C0F80052C0F808735648056080
+:105AA00024F40054C4F38030C4F3C031884200D0E1
+:105AB000FFDF14F4404F14D050484660C0F808731C
+:105AC0004F488660C0F80052C0F808734D490D6019
+:105AD0000A1D16608660C0F808730D60166024F415
+:105AE000404420050AD5484846608660C0F80873DF
+:105AF000C0F848734548056024F400640EF068FF60
+:105B00004348044200D0FFDFBDE8F081F0B5002239
+:105B1000202501234FEA020420FA02F1C9072DD003
+:105B200051B2002910DB00BF4FEA51174FEA870737
+:105B300001F01F0607F1E02703FA06F6C7F88061B7
+:105B4000BFF34F8FBFF36F8F0CDB00BF4FEA5117CE
+:105B50004FEA870701F01F0607F1E02703FA06F670
+:105B6000C7F8806204DB01F1E02181F8004405E020
+:105B700001F00F0101F1E02181F8144D02F1010261
+:105B8000AA42C9D3F0BD10B5224C20600846F6F7F2
+:105B90007CF82068FFF742FF2068FFF7B7FF0EF0A0
+:105BA000FDFA00F01AF90EF013FF0EF056FEEDF7B5
+:105BB0007FF9BDE810400EF0A1BB10B5154C206870
+:105BC000FFF72CFF2068FFF7A1FF0EF001FFF6F7AB
+:105BD0004FF90020206010BD0A207047FC1F0040D4
+:105BE0003C17004000C0004004E501400080004038
+:105BF0000485004000D0004004D5004000E0004093
+:105C000000F0004000F5004000B0004008B5004042
+:105C1000FEFF0FFDA000002070B526490A680AB3F8
+:105C20000022154601244B685B1C4B600C2B00D3F3
+:105C30004D600E7904FA06F30E681E420FD0EFF3A2
+:105C4000108212F0010272B600D001220C689C434F
+:105C50000C6002B962B649680160002070BD521C38
+:105C60000C2AE0D3052070BD4FF0E0214FF48000F6
+:105C7000C1F800027047EFF3108111F0010F72B606
+:105C80004FF0010202FA00F20A48036842EA0302F6
+:105C9000026000D162B6E7E706480021016041607A
+:105CA00070470121814003480068084000D001206E
+:105CB00070470000A40000200120810708607047A1
+:105CC0000121880741600021C0F8001118480170C7
+:105CD000704717490120087070474FF08040D0F896
+:105CE0000001012803D012480078002800D00120CC
+:105CF000704710480068C00700D0012070470D4869
+:105D00000C300068C00700D00120704709481430EB
+:105D100000687047074910310A68D20306D5096840
+:105D200001F00301814201D101207047002070473A
+:105D3000AC000020080400400021017008467047B4
+:105D40000146002008707047EFF3108101F0010157
+:105D500072B60278012A01D0012200E0002201235C
+:105D6000037001B962B60AB1002070474FF40050C9
+:105D70007047E9E7EFF3108111F0010F72B64FF0B1
+:105D80000002027000D162B600207047F2E7000006
+:105D90002DE9F04115460E460446002700F0E7F8CD
+:105DA000A84215D3002341200FE000BF94F8422001
+:105DB000A25CF25494F84210491CB1FBF0F200FBD3
+:105DC00012115B1C84F84210DBB2AB42EED3012708
+:105DD00000F0D9F83846BDE8F081704910B5802050
+:105DE00081F800046E49002081F8420081F84100EA
+:105DF000433181F8420081F84100433181F842008B
+:105E000081F841006748FFF797FF6648401CFFF79D
+:105E100093FFECF7BBFFBDE8104000F0B4B84020A2
+:105E200070475F4800F0A3B80A4601465C48AFE7F8
+:105E3000402070475A48433000F099B80A4601465E
+:105E400057484330A4E7402101700020704710B547
+:105E500004465348863000F08AF82070002010BDB8
+:105E60000A4601464E4810B58630FFF791FF08B14B
+:105E7000002010BD42F2070010BD70B50C4605466B
+:105E8000412900D9FFDF48480068103840B200F0CF
+:105E900050F8C6B20D2000F04CF8C0B2864203D2D2
+:105EA000FFDF01E0ECF7C2FF224629463C48FFF73E
+:105EB0006FFF0028F6D070BD2DE9F041394F002565
+:105EC00006463F1D57F82540204600F041F810B324
+:105ED0006D1CEDB2032DF5D33148433000F038F896
+:105EE000002825D02E4800F033F8002820D02C4878
+:105EF000863000F02DF800281AD0ECF76DFF294805
+:105F0000FFF722FFB0F5005F00D0FFDFBDE8F041F2
+:105F10002448FFF72FBF94F841004121265414F87C
+:105F2000410F401CB0FBF1F201FB12002070D3E7DF
+:105F300051E7002804DB00F1E02090F8000405E0C0
+:105F400000F00F0000F1E02090F8140D40097047B8
+:105F500010F8411F4122491CB1FBF2F302FB13115F
+:105F60004078814201D1012070470020704710F82D
+:105F7000411F4078814201D3081A02E0C0F141007C
+:105F80000844C0B2704710B50648FFF7DDFE002890
+:105F900003D1BDE81040ECF70ABF10BD0DE000E0F2
+:105FA000000B0020B000002004ED00E070B5154D9E
+:105FB0002878401CC4B26878844202D0F5F7EFFF1D
+:105FC0002C7070BD2DE9F0410E4C4FF0E02600BF63
+:105FD000F5F7DAFF20BF40BF20BF677820786070F8
+:105FE000D6F80052EBF70CFA854305D1D6F8040237
+:105FF00010B92078B842EBD0F5F7C1FF0020BDE81A
+:10600000F0810000C00000202DE9F04101252803A7
+:106010004FF0E0210026C1F88001BFF34F8FBFF39E
+:106020006F8F1F4CC4F800610C2000F02CF81D4845
+:1060300001680268C94341F3001142F01002026096
+:10604000C4F804532560491C00E020BFD4F80021A7
+:10605000002AFAD019B9016821F010010160124834
+:1060600007686560C4F80853C4F800610C2000F0AC
+:106070000AF83846BDE8F08110B50446FFF7C4FFC2
+:106080002060002010BD002809DB00F01F02012164
+:1060900091404009800000F1E020C0F88012704774
+:1060A00000C0004010ED00E008C500402DE9F047B9
+:1060B000FF4C0646FF21A06800EB06121170217804
+:1060C000FF2910D04FF0080909EB011109EB061761
+:1060D0004158C05900F0F4F9002807DDA168207884
+:1060E00001EB061108702670BDE8F08794F8008077
+:1060F00045460DE0A06809EB05114158C05900F074
+:10610000DFF9002806DCA068A84600EB0810057837
+:10611000FF2DEFD1A06800EB061100EB08100D7009
+:106120000670E1E7F0B5E24B0446002001259A68CD
+:106130000C269B780CE000BF05EB0017D75DA7424B
+:1061400004D106EB0017D7598F4204D0401CC0B2CF
+:106150008342F1D8FF20F0BD70B5FFF7D8FAD44CD8
+:1061600008252278A16805EB0212895800F0A8F9E9
+:10617000012808DD2178A06805EB01114058BDE831
+:106180007040FFF7BBBAFFF78CF9BDE87040ECF741
+:10619000C3BE2DE9F041C64C2578FFF7B8FAFF2DB4
+:1061A0006ED04FF00808A26808EB0516915900F070
+:1061B00087F90228A06801DD80595DE000EB051138
+:1061C00009782170022101EB0511425C5AB1521E7F
+:1061D0004254815901F5800121F07F4181512846C7
+:1061E000FFF764FF34E00423012203EB051302EB05
+:1061F000051250F803C0875CBCF1000F10D0BCF54D
+:10620000007F10D9CCF3080250F806C00CEB423CDA
+:106210002CF07F4C40F806C0C3589A1A520A09E085
+:10622000FF2181540AE0825902EB4C3222F07F4276
+:106230008251002242542846FFF738FF0C21A06803
+:1062400001EB05114158E06850F827203846904787
+:106250002078FF2814D0FFF75AFA2278A16808EBBB
+:1062600002124546895800F02BF9012893DD217868
+:10627000A06805EB01114058BDE8F041FFF73EBAB8
+:10628000BDE8F081F0B51D4614460E460746FF2BCB
+:1062900000D3FFDFA00700D0FFDF8548FF210022E9
+:1062A000C0E90247C57006710170427082701046E5
+:1062B000012204E002EB0013401CE154C0B2A842EA
+:1062C000F8D3F0BD70B57A4C0646657820798542E2
+:1062D00000D3FFDFE06840F825606078401C607004
+:1062E000284670BD2DE9FF5F1D468B460746FF24FB
+:1062F000FFF70DFADFF8B891064699F80100B842A9
+:1063000000D8FFDF00214FF001084FF00C0A99F888
+:106310000220D9F808000EE008EB0113C35CFF2B44
+:106320000ED0BB4205D10AEB011350F803C0DC4587
+:106330000CD0491CC9B28A42EED8FF2C02D00DE025
+:106340000C46F6E799F803108A4203D1FF2004B007
+:10635000BDE8F09F1446521C89F8022008EB041196
+:106360000AEB0412475440F802B00421029B0022B9
+:10637000012B01EB04110CD040F801204FF4007800
+:1063800008234FF0020C454513D9E905C90D02D089
+:1063900002E04550F2E7414606EB413203EB0413BD
+:1063A00022F07F42C250691A0CEB0412490A815450
+:1063B0000BE005B9012506EB453103EB041321F091
+:1063C0007F41C1500CEB0411425499F80050204613
+:1063D000FFF76CFE99F80000A84201D0FFF7BCFE61
+:1063E0003846B4E770B50C460546FFF790F9064607
+:1063F00021462846FFF796FE0446FF281AD02C4D6A
+:10640000082101EB0411A8684158304600F058F803
+:1064100000F58050C11700EBD14040130221AA685B
+:1064200001EB0411515C09B100EB4120002800DCB4
+:10643000012070BD002070BD2DE9F04788468146DF
+:10644000FFF770FE0746FF281BD0194D2E78A8686D
+:106450003146344605E0BC4206D0264600EB061223
+:106460001478FF2CF7D10CE0FF2C0AD0A6420CD1F7
+:1064700000EB011000782870FF2804D0FFF76CFEB5
+:1064800003E0002030E6FFF73FF941464846FFF7BA
+:10649000A9FF0123A968024603EB0413FF20C85497
+:1064A000A878401EB84200D1A87001EB041001E0AA
+:1064B000CC0B002001EB061100780870104613E6A3
+:1064C000081A0002C11700EB1160001270470000AB
+:1064D0005E4800210170417010218170704770B5D5
+:1064E000054616460C460220ECF7F2F95749012002
+:1064F00008705749F01E086056480560001F046088
+:1065000070BD10B50220ECF7E3F950490120087086
+:1065100051480021C0F80011C0F80411C0F808115A
+:106520004E494FF40000086010BD48480178D9B1C9
+:106530004B4A4FF4000111604749D1F80031002265
+:10654000002B1CBFD1F80431002B02D0D1F8081168
+:1065500019B142704FF0100104E04FF00101417099
+:1065600040490968817002704FF00000ECF7B0B943
+:1065700010B50220ECF7ACF934480122002102707A
+:106580003548C0F80011C0F80411C0F808110260C5
+:1065900010BD2E480178002904BF407870472E486E
+:1065A000D0F80011002904BF02207047D0F8001174
+:1065B00000291CBFD0F80411002905D0D0F808012B
+:1065C000002804BF01207047002070471F4800B515
+:1065D0000278214B4078C821491EC9B282B1D3F854
+:1065E00000C1BCF1000F10D0D3F8000100281CBF7F
+:1065F000D3F8040100280BD0D3F8080150B107E00C
+:10660000022802D0012805D002E00029E4D1FFDFF2
+:10661000002000BD012000BD0C480178002904BF06
+:10662000807870470C48D0F8001100291CBFD0F8C2
+:106630000411002902D0D0F8080110B14FF0100069
+:10664000704708480068C0B270470000C2000020D0
+:1066500010F5004008F5004000F0004004F501404E
+:1066600008F5014000F400405648002101704170D7
+:10667000704770B5064614460D460120ECF728F920
+:1066800051480660001D0460001D05604F49002050
+:10669000C1F850014E49032008604F494D48086039
+:1066A000091D4E48086070BD2DE9F041054645487A
+:1066B0000C46012606704A4945EA024040F08070C7
+:1066C00008600DF0AAFF002804BF464804600027B8
+:1066D000454CC4F80471464944480860002D02BF87
+:1066E000C4F800622660BDE8F081012D18BFFFDF0D
+:1066F000C4F80072266040493E480860BDE8F08159
+:106700003048017871B13A4A384911603649D1F8B8
+:1067100004210021002A08BF417002D0374A1268C4
+:10672000427001700020ECF7D3B8264801780029A8
+:1067300004BF407870472C48D0F80401002808BFF7
+:1067400070472E480068C0B27047002808BF7047E5
+:1067500030B51C480078002808BFFFDF2248D0F879
+:106760000411002918BF30BD0224C0F80443DFF82B
+:1067700090C0DCF80010C1F30015DCF8001041F007
+:106780001001CCF80010D0F80411002904BF4FF418
+:1067900000414FF0E02206D1C2F8801220BFD0F8AD
+:1067A0000431002BF8D02DB9DCF8001021F01001D5
+:1067B000CCF80010C0F8084330BD0B4901208860B8
+:1067C00070470000C500002008F5004000100040A0
+:1067D0001CF500405011004098F501400CF00040BD
+:1067E00004F5004018F5004000F0004000000203EE
+:1067F00008F501400000020204F5014000F40040E9
+:1068000010ED00E010B5FE48002401214470047032
+:1068100044728472C17280F82540C462846380F837
+:106820003C4080F83D40FF2180F83E105F2180F819
+:106830003F1018300FF052F8F249601E0860091D31
+:106840000860091D0C60091D0860091D0C60091D08
+:106850000860091D0860091D0860091D0860091D00
+:106860000860091D0860091D0860091D0860091DF0
+:10687000086010BDE448016801F00F01032904BF5E
+:1068800001207047016801F00F01042904BF0220B4
+:106890007047016801F00F01052904D0006800F07D
+:1068A0000F00062807D1D948006810F0060F0CBF6A
+:1068B00008200420704700B5FFDF012000BD10B59F
+:1068C000CF4C0168A1614168E161007A84F8200041
+:1068D000207E48B1207FF7F7C4FCA07E011C18BFC2
+:1068E0000121207FF7F7ACFC607E002808BF10BDB7
+:1068F000607FF7F7B6FCE07E011C18BF0121607FC6
+:10690000BDE81040F7F79CBC30B5002405460129CE
+:106910000AD0022908BF4FF0807405D0042916BFA1
+:1069200008294FF0C744FFDF44F4847040F480101E
+:10693000B749086045F4403001F1040140F00070AF
+:10694000086030BD30B50024054601290AD002296F
+:1069500008BF4FF0807405D0042916BF08294FF0F6
+:10696000C744FFDF44F4847040F48010A8490860F5
+:1069700045F4403001F1040140F000700860A54882
+:10698000D0F80001002818BFFFDF30BD2DE9F0412D
+:1069900002274FF0E02801250024C8F88071BFF3DA
+:1069A0004F8FBFF36F8F9C48046005600DF05FFE52
+:1069B0009A4E18B1306840F4806030600DF02DFEC2
+:1069C00038B1306820F0770040F0880040F0004097
+:1069D00030609449924808604FF01020806CB0F10C
+:1069E000FF3F04D090490A6860F317420A608F495C
+:1069F00040F25B600860091F40F203100860081F46
+:106A00000560814903200860894805608A4A8949F0
+:106A100011608B4A89491160121F8A49116001680F
+:106A200021F440710160016841F480710160C8F88F
+:106A3000807278491020C1F80403714880F8314011
+:106A4000C462BDE8F0816E4A0368C2F802308088F3
+:106A5000D080117270476A4B10B51A7A8A4208D1F9
+:106A600001460622981C0EF05DFD002804BF01209F
+:106A700010BD002010BD624890F825007047604AA4
+:106A8000517010707047F0B50546800000F18040ED
+:106A900000F580508B88C0F820360B78D1F80110B3
+:106AA00043EA0121C0F8001605F10800012707FAA2
+:106AB00000F6654C002A04BF2068B04304D0012AC8
+:106AC00018BFFFDF206830432060206807FA05F117
+:106AD00008432060F0BD0EF0D1B8494890F832006C
+:106AE00070475A4AC178116000685949000208602D
+:106AF0007047252808BF02210ED0262808BF1A217A
+:106B00000AD0272808BF502106D00A2894BF0422A3
+:106B1000062202EB4001C9B24E4A11604E4908609C
+:106B2000704737498A7A012A49D0022A18BF70472C
+:106B30004B7E002B08BF7047012A44D0CB7E4A7F92
+:106B400013F1000C18BF4FF0010C24231844434BE1
+:106B50001860434B0020C3F84C0110028CF0010276
+:106B600040EA025040F0031291F82000830003F144
+:106B7000804303F5C043C3F810253A4A8B7F02EBEC
+:106B80008000DA0002F1804202F5F832C2F8140502
+:106B9000DFF8D4C0C2F810C5C97FCA0002F1804234
+:106BA00002F5F832C2F814052648C2F81005012093
+:106BB00000FA03F288402D491043086070470B7EAD
+:106BC000002BB9D170478B7E0A7F002B14BF4FF08A
+:106BD000010C4FF0000C1123B8E72DE9F0410D4EE8
+:106BE000804603200D46C6F8000220492048086070
+:106BF00028460EF082F80124014FB8F1000F39E069
+:106C0000DC0B0020000E0040101500401414004062
+:106C10001415004000100040FC1F00403C170040CD
+:106C20002C000089781700408C1500403815004072
+:106C30005016004000000E0408F50140408000405E
+:106C4000A4F50140101100404016004024150040FA
+:106C50001C15004008150040541500404C850040AC
+:106C600000800040006000404C81004004F501407D
+:106C70000000040404BFBC72346026D0B8F1010FD8
+:106C800023D1FE48006860B915F00C0F09D0C6F892
+:106C90000443012000F0B4FEF463346487F83C4000
+:106CA00002E0002000F0ACFE28460EF00EF90220B3
+:106CB000B8720DF0CAFC38B90DF0D9FC20B9F04813
+:106CC000016841F4C02101607460EE48C464EE487C
+:106CD00000682946BDE8F04123E72DE9F047EB4E77
+:106CE000814603200D46C6F80002DFF8A883E84875
+:106CF000C8F8000008460EF000F828460EF0E5F847
+:106D00000124E54FB9F1000F03D0B9F1010F0AD00A
+:106D100026E0BC72B86B40F48010B8634FF480106A
+:106D2000C8F800001CE00220B872B86B40F40010F4
+:106D3000B8634FF40010C8F80000D048006860B98C
+:106D400015F00C0F09D0C6F80443012000F058FEDE
+:106D5000F463346487F83C4002E0002000F050FE09
+:106D6000EBF794FF2946BDE8F047DAE62DE9F84F46
+:106D7000C64C8246032088461746C4F80002DFF856
+:106D80001493C348C9F8000010460DF0B6FFDFF8B1
+:106D90000CB3C14E0125BAF1000F04BFCBF800407F
+:106DA000B57204D0BAF1010F18BFFFDF2FD0BC4875
+:106DB000C0F80080BC49BB480860B06B40F40020BC
+:106DC000B063D4F800321021C4F808130020C4F8CE
+:106DD0000002DFF8D8C28A03CCF80020C4F8000112
+:106DE000C4F80C01C4F81001C4F80401C4F814017B
+:106DF000C4F81801AE4800680090C4F80032C9F821
+:106E00000020C4F80413BAF1010F09D01BE0384682
+:106E10000EF05BF8A748CBF800000220B072C6E77E
+:106E20009648006860B917F00C0F09D0C4F80453F5
+:106E3000012000F0E5FDE563256486F83C5002E0A2
+:106E4000002000F0DDFD4FF40020C9F800008D485F
+:106E5000C5648D480068404528BFFFDF394640467D
+:106E6000BDE8F84F5DE62DE9F0418B4C0646002564
+:106E700094F8310017468846002808BFFFDF16B196
+:106E8000012E16D021E094F83100012808D094F8A2
+:106E90003020394640460DF045FFE16A451814E0C0
+:106EA00094F830103A4640460DF07AFFE16A4518F2
+:106EB0000BE094F8310094F8301001283A4640462F
+:106EC00009D00DF095FFE16A45183A46294630464B
+:106ED000BDE8F0414AE70DF045FFE16A4518F4E7E7
+:106EE0002DE9F84F694CD4F8000220F00B09D4F8D2
+:106EF00004034FF0100AC0F30018C4F808A30026DA
+:106F0000C4F8006269486C490160634D0127A97AA1
+:106F1000012902D0022903D015E0297E11B912E01F
+:106F2000697E81B1A97FEA7F07FA01F107FA02F2CF
+:106F30001143016095F82000800000F1804000F5C9
+:106F4000C040C0F81065FF208DF80000C4F8106143
+:106F5000276104E09DF80000401E8DF800009DF8B8
+:106F6000000018B1D4F810010028F3D09DF80000FB
+:106F7000002808BFFFDFC4F81061002000F040FDCA
+:106F80006E72AE72EF72C4F80092B8F1000F18BFC3
+:106F9000C4F804A3BDE8F88FFF2008B58DF8000001
+:106FA0003A480021C0F810110121016105E000BF3D
+:106FB0009DF80010491E8DF800109DF8001019B1C1
+:106FC000D0F810110029F3D09DF80000002808BF68
+:106FD000FFDF08BD0068394920F07F400860704736
+:106FE0004FF0E0200221C0F8801100F5C070BFF31F
+:106FF0004F8FBFF36F8FC0F8001170474FF0E02143
+:107000000220C1F8000170472D49087070472D49D2
+:107010000860704770B50546EBF738FE1E4C2844F3
+:10702000E16A884298BFFFDF01202074EBF72EFE53
+:10703000144A284400216061C2F8441122490860C2
+:10704000A06B144940F48000A063D001086070BDBB
+:1070500070B5114C05461D4A0220207410680E467A
+:1070600000F00F00032808BF01223ED0106800F096
+:107070000F00042808BF022237D029E088170040FB
+:1070800068150040008000404C8500400010004022
+:107090000000040404F50140DC0B0020ACF50140C5
+:1070A0004885004048810040A8F5014008F50140AE
+:1070B000181100400410004000000E043C15004070
+:1070C000C700002004150040448500401015004012
+:1070D000106800F00F0005281BD0106800F00F00AA
+:1070E00006281CBFFFDF012213D094F8310094F86A
+:1070F0003010012815D028460DF0C1FEFF4960610F
+:107100000020C1F844016169E06A0844FC49086054
+:1071100070BDFC48006810F0060F0CBF0822042266
+:10712000E3E7334628460DF078FEE7E7F6494FF4EB
+:1071300080000860F548816B21F4800181630021A3
+:1071400001747047C20002F1804202F5F832F04B40
+:10715000C2F81035C2F8141501218140ED480160D4
+:10716000EA48826B114381637047E4480121416022
+:10717000C1600021C0F84411E1480160E348C162E8
+:107180007047E5490860E548D0F8001241F0400139
+:10719000C0F800127047E148D0F8001221F0400119
+:1071A000C0F80012DC49002008607047DB48D0F8C6
+:1071B000001221F01001C0F8001201218161704716
+:1071C000D249FF2081F83E00D4480021C0F81C11AC
+:1071D000D0F8001241F01001C0F800127047CF49FA
+:1071E00081B0D1F81C21012A0DD0C84991F83E1078
+:1071F000FF290DBF00204942017001B008BF704750
+:10720000012001B07047C64A126802F07F02524264
+:1072100002700020C1F81C01C24800680090EFE72E
+:10722000F0B517460C00064608BFFFDFB74D14F057
+:10723000010F2F731CBF012CFFDF002E0CBF01209C
+:1072400002206872EC7201281CBF0228FFDFF0BD2B
+:10725000AE4981F83F0070472DE9F84FDFF8C8A22A
+:107260009AF80000042828BFFFDFA84CDFF89882B6
+:10727000AA4D94F83C0000260127E0B1D5F804019E
+:1072800010F1000918BF4FF00109D5F810010028CE
+:1072900018BF012050EA09014FF4002B17D08021BC
+:1072A000C5F80813C8F800B084F83C6090F0010FEE
+:1072B00018BFBDE8F88FDFF84492D9F84C010028D8
+:1072C0007ED0A07A01287CD002287BD0AEE0D5F811
+:1072D0000001DFF84CA230B3C5F800616F61FF20F8
+:1072E000009002E0401E009005D0D5F81C01002857
+:1072F0000098F7D000B9FFDFDAF8000000F07F0A4D
+:1073000094F83F0050453CBF002000F079FB84F822
+:107310003EA0C5F81C61C5F808738248006800905B
+:107320002F64AF6302E0B9F1000F03D0B9F1000F91
+:107330002BD05DE0DAF8000000F07F0084F83E001A
+:10734000C5F81C6194F83D1049B194F83F10814292
+:1073500018D2002000F054FB2F64AF6312E0734991
+:10736000096894F83F308AB2090C984203D30F2A77
+:1073700006D9022904D2012000F042FB2F6401E06B
+:107380002F64AF636748006800908022C5F804232B
+:107390005A48876466490B68A1F1040CDCF800C008
+:1073A00043F698273B44634519D20A6842F21073AA
+:1073B0001A440A60C0F848615F495E48086002E00C
+:1073C00034E01CE01EE0091F5C4808605148C0F82A
+:1073D00000B0A06B40F40020A063BDE8F88F0E6001
+:1073E000C0F84861C5F80823C8F800B0C0F8486183
+:1073F0008020C5F80803C8F800B0BDE8F88F207EEB
+:1074000010B913E0607E88B1A07FE17F07FA00F039
+:1074100007FA01F10843C8F8000094F82000800042
+:1074200000F1804000F5C040C0F810653648A16BFF
+:107430000160A663217C002019B1D9F8441101290B
+:1074400000D00021A27A012A56D0022A55D000BFCE
+:10745000D5F8101101290CBF1021002141EA0008C4
+:107460003748016811F0FF0F03D0D5F81411012936
+:1074700000D0002184F83210006810F0FF0F03D014
+:10748000D5F81801012800D0002084F833002D48D9
+:10749000006884F83400FFF77CF8012818BF00204A
+:1074A00084F83500C5F80061C5F80C61C5F81061B5
+:1074B000C5F80461C5F81461C5F818612248006870
+:1074C00000900E48C0F8446120480068DFF8309012
+:1074D0000090D9F80000A062A9F104000068E06201
+:1074E0001B48016801F00F01032908BF012042D0A9
+:1074F000016801F00F012DE045E04BE00080004005
+:10750000448500401414004008F50140DC0B0020C5
+:107510000411004004F501406015004000100040D7
+:10752000481500401C110040C700002074150040A1
+:107530004885004014100040ACF5014048810040EF
+:1075400040160040101400401811004044810040D3
+:1075500010150040042908BF02200CD0016801F07A
+:107560000F01052925D0006800F00F0006281CBF78
+:10757000FFDF01201DD084F83000A07A84F83100AC
+:1075800002282BD11DE0D5F80C01012814BF0020E2
+:1075900008205DE7D5F80C01012814BF0020022067
+:1075A000F64A1268012A14BF04220022104308433D
+:1075B0004EE7F348006810F0060F0CBF08200420C7
+:1075C000D9E7607850B1EF49096809780840217817
+:1075D00031EA000008BF84F8247001D084F82460E8
+:1075E00018F0020F0AD0EBF751FBA16AE64A081A1D
+:1075F0009AF80010490852F82110884718F0010F36
+:1076000018BF4FF0000B11D0EBF740FBE16A9AF87E
+:107610000020081ADD4951F822205946904700BF42
+:107620009AF8000010F0010F2FD10CE018F0020FB3
+:1076300018BF4FF0010BE7D118F0080F18BF4FF03B
+:10764000020BE1D1ECE7DFF83CB3DBF80000007897
+:1076500000F00F00072828BF84F8256015D2DBF85A
+:107660000000062200F10901A01C0DF05BFF40B9EB
+:10767000207ADBF800100978B0EBD11F08BF012099
+:1076800001D04FF0000084F82500E17A4FF00000AF
+:1076900011F0020F1CBF18F0020F18F0040F19D1DF
+:1076A00011F0100F1CBF94F83320002A02D094F878
+:1076B00035207AB111F0080F1CBF94F82420002A5D
+:1076C00008D111F0040F02D094F8251011B118F070
+:1076D000010F01D04FF00100617A19B168B1FFF7D5
+:1076E000FFFB10E0AB48AA490160D5F8000220F08A
+:1076F0000300C5F80002E77205E001290DD0022958
+:1077000018BFFFDF10D018F0010F17D0A2489AF869
+:10771000001050F82100804756E06672E772A772A9
+:107720009621227B002006E06672E7720220A0729A
+:10773000227B96210120FFF796FBE4E718F0020F69
+:107740002DD018F0040F21D10CF07FFFF0B90CF010
+:107750008EFFD8B991480168001F0068C0F3006C23
+:10776000C0F3425500F00F03C0F30312C0F303202F
+:10777000BCF1000F0AD0002B1CBF002A002805D145
+:10778000002918BF032D38BF48F0040827EA9800E5
+:1077900083499AF8002051F82210884714E018F025
+:1077A000080F06D07F489AF8001050F82100804753
+:1077B0000AE018F0100F08BFFFDF05D07A489AF8EA
+:1077C000001050F821008047A07A022818BFBDE8B9
+:1077D000F88F207C002808BFBDE8F88F7349C1F8F6
+:1077E0004461022814D0012818BFFFDFE16A6069F4
+:1077F000884298BFFFDF6069C9F80000A06B4FF4B2
+:10780000800140F48000A06369480160BDE8F88F02
+:107810006169E06A0844EFE738B5664D0024002846
+:1078200018BFC5F800426448006864498A7A012A92
+:1078300002D0022A03D018E00A7E12B915E04A7E6F
+:107840009AB18B7F012291F81FC002FA03F302FA6A
+:107850000CF21A434F4B1A6091F82010890001F185
+:10786000804101F5C041C1F810450121FFF759F9E8
+:10787000C5F80041C5F80C41C5F81041C5F80441F0
+:10788000C5F81441C5F818414D480068009038BD4E
+:10789000012804BF28207047022804BF1820704721
+:1078A000042812BF08284FF4A870704700B5FFDF06
+:1078B000282000BD012804BF41F6A47070470228AB
+:1078C00004BF41F288307047042804BF46F2180014
+:1078D0007047082804BF47F2A030704700B5FFDFAB
+:1078E00041F6A47000BD10B502280DD0012804BFD8
+:1078F00042F6CE3010BD042817BF082843F6A44036
+:10790000FFDF41F66A0010BD0CF07AFE30B90CF0D2
+:1079100084FE002808BF41F6583001D041F264309F
+:1079200041F29A01084410BD012812BF022800202C
+:107930007047042812BF08284FF4C870704700B57C
+:10794000FFDF002000BD1B490820C1F800021149DB
+:107950000F4808601C491B480860091D1B48086047
+:107960001C491B480860091D1B48086010494FF45A
+:10797000602008601149022088727047001400409E
+:107980001414004004150040005C0200485C020032
+:107990000000040408F50140085C02005414004093
+:1079A000185C0200285C0200385C02000080004085
+:1079B00004F501400010004040850040DC0B002031
+:1079C000181100400011004098F5014014100040CB
+:1079D0001C110040A8F50140101000401948016832
+:1079E00003291BBF006802280120002070471548AA
+:1079F00001680B291BBF00680A280120002070477E
+:107A000011490968C9B9114A1149136870B123F0C5
+:107A1000820343F07D0343F0004313600A6822F0C1
+:107A2000100242F0600242F0004205E023F0004301
+:107A300013600A6822F000420A60064981F83D009E
+:107A40007047000050150040881700403C17004068
+:107A50007C170040DC0B002010B53F4822210DF0C0
+:107A60000CFE3D480024017821F010010170012135
+:107A700006F064F839494FF6FF7081F82240888497
+:107A800037490880488010BD704734498A8C82424B
+:107A900018BF7047002081F822004FF6FF708884DD
+:107AA00070472D49016070472D49088070472B4968
+:107AB0008A8CA2F57F43FF3B03D00021016008467A
+:107AC000704791F822202549012A1ABF0160012040
+:107AD00000207047214901F1220091F82220012A5B
+:107AE00004BF00207047012202701D48008888846E
+:107AF000104670471A49488070471849184B8A8CBD
+:107B00005B889A4206D191F82220002A1EBF0160AC
+:107B100001207047002070471048114A818C52881C
+:107B2000914209D14FF6FF71818410F8221F19B1DB
+:107B30000021017001207047002070470748084A63
+:107B4000818C5288914205D190F8220000281CBFF8
+:107B50000020704701207047420C00201C0C0020C0
+:107B6000C80000207047574A012340B1012818BFC0
+:107B700070471370086890608888908170475370D0
+:107B80000868C2F802008888D08070474D4A10B15A
+:107B9000012807D00EE0507860B1D2F802000860EA
+:107BA000D08804E0107828B19068086090898880B7
+:107BB0000120704700207047424910B1012803D0CE
+:107BC00006E0487810B903E0087808B10120704752
+:107BD0000020704730B58DB00C4605460D2104A835
+:107BE0000DF06DFDE0788DF81F0020798DF81E00F6
+:107BF00060798DF81D002868009068680190A86879
+:107C00000290E868039068460CF062FB20789DF8CB
+:107C10002F1088420CD160789DF82E10884207D131
+:107C2000A0789DF82D10884202BF01200DB030BD14
+:107C300000200DB030BD30B50C4605468DB04FF07C
+:107C4000030104F1030012B1FEF7F8F801E0FEF7BA
+:107C500014F960790D2120F0C00040F040006071FF
+:107C600004A80DF02CFDE0788DF81F0020798DF828
+:107C70001E0060798DF81D002868009068680190EA
+:107C8000A8680290E868039068460CF021FB9DF814
+:107C90002F0020709DF82E0060709DF82D00A070C0
+:107CA0000DB030BD10B5002904464FF0060102D0DA
+:107CB000FEF7C4F801E0FEF7E0F8607920F0C000BC
+:107CC000607110BDCC000020FE48406870472DE96F
+:107CD000F0410F46064601461446012005F0F8FA29
+:107CE000054696F85500FFF7E5FD4AF2B121084434
+:107CF0004FF47A71B0FBF1F0718840F27122514378
+:107D0000C0EB4100001BA0F2653403F03DF80028F1
+:107D100018BF1E3CAF4234BF28463846A04203D2AB
+:107D2000AF422CBF3C462C467462BDE8F0812DE981
+:107D3000FF4F95B0044690F8550089461190DDE953
+:107D4000171008431390E048002605780C2D28BF33
+:107D5000FFDFDE4F37F8158094F874510C2D28BFE3
+:107D6000FFDFDA4830F8150040441FFA80F894F835
+:107D700065000D280CBF012000200C9017980028EA
+:107D800004BF94F8140103282BD10C9848B3B4F81D
+:107D90009601484525D1D4F81C01C4F80801608833
+:107DA00040F2E2414843C4F80C01B4F86201B4F86F
+:107DB000EE100844C4F81001204602F0EFFFB4F8BA
+:107DC0009A01E08294F898016075B4F89C01608093
+:107DD000B4F89E01A080B4F8A001E080022084F8ED
+:107DE0001401D4F86C011090D4F868010F90B4F825
+:107DF000EE70B4F86001D4F85C110891179921B1C4
+:107E000094F8281151B100F0DDB804F1E8010391B4
+:107E100074310D9104F5A475091D07E004F59E71F8
+:107E20000391091D0D9104F59675091D0E91B4F885
+:107E30005810A9EB0000A9EB01010FFA80FA0FFA24
+:107E400081FBBAF1000F05DAD4F85801089001203F
+:107E5000DA461390002002909B480079E8B3F3F7CC
+:107E600039FFD0B3B4F80001022836D394F81401D6
+:107E7000022832D094F82B0178BB94F87481B8F1C1
+:107E80000C0F28BFFFDF914830F8180000F5C860DC
+:107E90001FFA80F894F8140101287DD0618840F21F
+:107EA000E24041430020B8F1000F05D0884808FBAC
+:107EB00001F1B1FBF0F0401C07EB0B01A1EB0A0252
+:107EC000D4F81C1180B2431A029902FB03110291EB
+:107ED000C4F81C01012084F82B0194F81401002837
+:107EE00074D0012800F04682022800F09481032813
+:107EF00018BFFFDF00F078820298311A0898FCF76B
+:107F0000BCFB0D99012640F2712208600E98A0F882
+:107F10000090002028702E710D980068A86061887C
+:107F2000D4F81C015143C0EB41006749A0F2353041
+:107F30000862C969814287BF03990860039801609C
+:107F40000398616A0068084400F2A510E86002F036
+:107F50001BFF10B1E8681E30E8606E71B4F8D800FD
+:107F6000A0EB090000B20028C4BF032068710C9880
+:107F70000028189800F09A82D8B100BFB4F8001118
+:107F800000290CBF0020B4F80201A4F8020194F803
+:107F90000421401C504300E019E0884209D268796E
+:107FA000401E002805DD6E71B4F80201401CA4F8E3
+:107FB00002011798002800F0A18294F828010028F7
+:107FC00000F0988219B00220BDE8F08F65E094F8C7
+:107FD0006800032857D03B4894F8551090F83000BB
+:107FE00005F023FBE18A40F27122514300EB41018D
+:107FF0000020D4F80C21B8F1000F06D0344808FB5B
+:1080000002F2B2FBF0F000F10100D4F80831D4F82C
+:108010001021A0EB030C029BC4F8080102FB0C33F7
+:108020004FF0000007D000BF294808FB01F1B1FB69
+:10803000F0F000F10100D4F81811C4F81801A0EB19
+:1080400001011944608840F2E24300FB03F34FF062
+:10805000000006D01E4808FB03F3B3FBF0F000F16C
+:10806000010007EB0B03A3EB0A03A3EB0202D4F816
+:108070001C31A2F10102A0EB030302FB03110291E8
+:10808000C4F81C0126E7E18A40F27122D4F80C0101
+:1080900001FB02F100EB4101AAE70F98002808BF9D
+:1080A000FFDF94F85510074890F8300005F0BDFA4E
+:1080B0000790E18A40F271204143079800EB4101AB
+:1080C000002007E0640C0020DC000020585C020067
+:1080D00040420F00B8F1000F07D000BFFF4808FB77
+:1080E00001F1B1FBF0F000F10100C4F81801618862
+:1080F00040F2E24001FB00F14FF0000006D0F748EB
+:1081000008FB01F1B1FBF0F000F10100C4F81C0123
+:1081100086B221464FF00100D4F828A005F0D8F827
+:10812000074694F85500FFF7C5FB4AF2B12B5844B7
+:108130004FF47A78B0FBF8F0618840F27122514335
+:10814000C0EB4100801BA0F2653602F01DFE002846
+:1081500018BF1E3EBA4534BF38465046B04203D21F
+:10816000BA452CBF56463E46666294F85500FFF766
+:10817000DBFB00F2E140B0FBF8F10F980E1894F829
+:108180005500FFF7D1FB074694F85500FFF792FB27
+:1081900038444AF2AB310844B0FBF8F1E28A40F2CD
+:1081A000712042430798D4F8187100EB4200401A3E
+:1081B000C01B3044A0F12006617D40F2E24011FB7B
+:1081C00000FA94F85500009010F00C0F0ABF0098C8
+:1081D0004EF62830FFF76EFB5844B0FBF8F000EB8A
+:1081E000470000EB0A070098FFF752FB384400F104
+:1081F0006201BB48C16194F85500FFF795FB00F29E
+:10820000E140B0FBF8F10F980844301AB0F53D7F1B
+:1082100098BFFFDF70E6E18A40F27122D4F80C01CA
+:10822000514300EB41010020B8F1000F07D000BF1F
+:10823000AA4808FB01F1B1FBF0F000F10100C4F81D
+:108240001801608840F2E24100FB01F14FF00000AC
+:1082500006D0A24808FB01F1B1FBF0F000F10100EB
+:10826000C4F81C0186B221464FF00100D4F828A0C2
+:1082700005F02EF8804694F85500FFF71BFB4AF2F4
+:10828000B12B00EB0B014FF47A70B1FBF0F0618879
+:1082900040F271225143C0EB4100801BA0F26536D1
+:1082A00002F072FD002818BF1E3EC24534BF404692
+:1082B0005046B04203D2C2452CBF5646464666627F
+:1082C0000FBB1898F8B194F855603046FFF7F2FAF2
+:1082D00000EB0B014FF47A70B1FBF0F0D4F81811F9
+:1082E000E38A084440F27122D4F80C115A4301EB9E
+:1082F00042010F1A3046FFF7CBFA1099081A38449A
+:10830000A0F120060AE0E18A40F27122D4F80C01C3
+:10831000514300EB4100D4F81811461AD4F810214B
+:10832000D4F80811D4F8180101FB020A607D40F26C
+:10833000E24110FB01F894F8557017F00C0F0ABFDA
+:1083400038464EF62830FFF7B5FA00EB0B014FF434
+:108350007A70B1FBF0F000EB4A0080443846FFF73A
+:1083600097FA404400F160015D48C161012084F842
+:108370001401C1E5618840F271225143D4F81C0117
+:10838000D4F81021C0EB410101FB0AF607EB0B0109
+:10839000891AD4F808C1D4F81831491E0CFB0232EE
+:1083A00001FB002A607D40F2E24110FB01F894F8E5
+:1083B000557017F00C0F0ABF38464EF62830FFF7FD
+:1083C00079FA4AF2B12101444FF47A70B1FBF0F02E
+:1083D00000EB4A0080443846FFF75AFA404400F167
+:1083E00060013F48C16187E5628840F27121D4F89D
+:1083F0001C015143C0EB410000FB0AF694F86400F5
+:1084000024281CBF94F8650024280BD1B4F89601E9
+:10841000A9EB000000B2002804DB94F899010028C1
+:1084200018BF1190139800B3FFB9109800281ABF15
+:108430000F980028FFDF94F8550010F00C0F14BFC0
+:108440004EF62830FFF736FA4AF2B12101444FF4D4
+:108450007A70B1FBF0F0361A94F85500FFF718FA6D
+:108460001099081A3044A0F12006D4F81C1107EB2B
+:108470000B0000FB01F7119810F00C0F0ABF1198C8
+:108480004EF62830FFF716FA4AF2B12101444FF4B4
+:108490007A70B1FBF0F000EB47071198FFF7F8F99D
+:1084A000384400F160010E48C16125E500287FF4E1
+:1084B00065AD94F8140100283FF47BAD618840F26B
+:1084C0007122D4F81C015143C0EB4101284604F04D
+:1084D000CFFD0004000C3FF46CAD03E040420F0000
+:1084E000DC0000202299002918BF0880012019B063
+:1084F000BDE8F08F94F86401FCF723FF94F8640161
+:108500002946FCF703FE20B1179880F0010084F89B
+:10851000290119B00020BDE8F08F70B5FE4C607ADB
+:1085200000281CBF002070BD94F8340038B1A16B46
+:10853000606A884203D9F7F7BEF8002070BDA06AD0
+:10854000E8B1F6F750F90546F5F7C4FF284442F2C2
+:1085500010714618FCF790FB05462946E06AFDF7C6
+:10856000A4F8E562A16A8219914224BF081AA062A8
+:1085700005D20120A062F7F79EF8002070BD01200F
+:1085800070BDF8B5E44C02460025E44E6168606AAF
+:10859000052A4ED2DFE802F003353A3D4400A07AC6
+:1085A000002760B101216846FDF748FC9DF80000F6
+:1085B00042F210710002B0FBF1F201FB1207F6F774
+:1085C00012F9C119A069FCF758F8A06125740320BD
+:1085D00060757079002814BF012003202075607A2F
+:1085E00038B9207B04F11001FCF790FD002808BF8A
+:1085F000FFDF2584FCF74AFAB079BDE8F840EAF7D6
+:108600008BBCBDE8F840002100F0C7BDC1F868018F
+:10861000F8BDD1F86801BDE8F840012100F0BDBD0A
+:1086200084F83450FCF732FAB079BDE8F840EAF744
+:1086300073BCFFDFF8BD2DE9F04FDFF8DC820446A4
+:1086400083B098F800008B4601270025B34E4FF009
+:108650000209032804BF98F80C00A04240F0E7800C
+:10866000D8F80400B06198F80000032818BFFFDFB5
+:108670000324BBF1080F80F0D680DFE80BF0040F75
+:1086800031312CD4D4CBC8F82450F6F783FC002821
+:1086900018BFFFDFB47003B0BDE8F08FF5F71AFF25
+:1086A0000446D8F81C00A04228BFC8F81C4005D2D8
+:1086B000201AFDF72EF8C8F81C4038B1F6F7E3FF92
+:1086C000002818BFFFDF03B0BDE8F08F03B0002023
+:1086D000BDE8F04F55E703B0BDE8F04FFEF7BCBD75
+:1086E00070794FF0010A002814BF0120032088F898
+:1086F000140088F8105098F8340042F2107B68B1EA
+:108700004FF47A71D8F81800FBF7B7FFC8F81800D3
+:10871000002108F1100004F0ABFC1CE001216846C8
+:10872000FDF782FB9DF800000002B0FBFBF10BFBA4
+:10873000110AF6F758F800EB0A018A46D8F8180033
+:10874000FBF79BFFC8F81800514608F1100004F031
+:108750008FFC00F1010AB8F82000411C0A293CBF37
+:108760005044A8F82000D8F8040038B1B8F8200028
+:10877000401C0A2828BF88F8159001D288F81540B7
+:1087800098F8090070BB98F8340040B1D8F8381058
+:10879000D8F82400884202D9F6F78DFF22E0D8F8F5
+:1087A000280058B3F6F71FF80446F5F793FE204467
+:1087B00000EB0B09FCF760FA04462146D8F82C00C0
+:1087C000FCF773FFC8F82C40D8F8281000EB09021A
+:1087D000914224BF081AC8F828000FD2C8F82870A0
+:1087E000F6F769FF98F80C00FCF727FA88F80050B4
+:1087F000B07903B0BDE8F04FEAF78EBB98F80C00F3
+:1088000008F11001FCF782FC002808BFFFDF03B06D
+:10881000BDE8F08F98F80C00FCF70FFA88F80050CC
+:1088200003B0BDE8F08FFFDF03B0BDE8F08F202C70
+:1088300028BFFFDFDFF8E880072138F81400FAF7D7
+:10884000D9F85FEA000A08BFFFDF202C28BFFFDF4E
+:1088500038F81400BAF80010884218BFFFDF5446F9
+:10886000C6F818A04FF0200ABBF1080F80F04A812B
+:10887000DFE80BF0049FA9A9A2F4F3F2C4F8685151
+:108880003581C4F86C5194F8290138B9FCF7F4F932
+:10889000D4F83411FCF709FF00281BDCB4F82611CA
+:1088A000B4F85800814206D1B4F8DC10081AA4F8D4
+:1088B000DE00204605E0081AA4F8DE00B4F8261110
+:1088C0002046A4F85810D4F85011C4F83411C0F858
+:1088D00058111DE0B4F82411B4F85800081AA4F88F
+:1088E000DE00B4F824112046A4F85810D4F834114E
+:1088F000C4F85011C4F85811D4F83C11C4F8E81069
+:10890000D4F84011C4F85C11B4F84411A4F8601113
+:1089100002F020F906E00000640C0020DC000020DA
+:10892000A00C0020FCF782F9804694F85500FEF771
+:10893000C1FF4AF2B12108444FF47A71B0FBF1F063
+:10894000D4F81C1140F27122084461885143C0EBF5
+:108950004100A0F1300AB8F1B70F98BF4FF0B70847
+:108960002146012004F0B4FC4044AAEB0000A0F230
+:108970001A38A2462146012004F0AAFC00F19C010D
+:10898000DAF82400884288BF451AC6F810804545A9
+:1089900028BF4546F560D4F85401A0F2A5107061D7
+:1089A000FCF750FE84F8287186F8029003B0BDE809
+:1089B000F08F02F0E4F901E0FEF74EFC84F8287134
+:1089C00003B0BDE8F08FFCF757F9D4F85821014601
+:1089D0001046FCF76AFE48B1628840F27123D4F871
+:1089E0001C115A43C1EB4201B0FBF1F094F8651041
+:1089F0000D290FD0B4F85820B4F826111318994255
+:108A0000AEBF481C401C1044A4F8260194F82A016B
+:108A100078B905E0B4F82601401CA4F8260108E066
+:108A2000B4F82601B4F8DC10884204BF401CA4F856
+:108A30002601B4F862010DF1040B401CA4F8620198
+:108A4000B4F88000B4F87E10401AB4F85810401EF4
+:108A500008441FFA80F912E046E03EE052E00023AD
+:108A60001A462046CDF800B0FFF761F9002804BF90
+:108A700003B0BDE8F08F012818BFFFDF25D0B4F8A0
+:108A80002611A9EB010000B20028E8DA082084F8DA
+:108A9000740084F87370204601F01EFE84F81451AF
+:108AA00094F864514FF6FF77202D00D3FFDF28F8AC
+:108AB000157094F86401FCF7C0F884F864A1B079EB
+:108AC00003B0BDE8F04FEAF727BAB4F82601BDF8C5
+:108AD00004100844A4F82601D1E7FEF75DFA03B0BC
+:108AE000BDE8F04FFEF7B8BB94F81401042818BF96
+:108AF000FFDF84F8145194F864514FF6FF77202D6E
+:108B0000D5D3D3E7FFDF03B0BDE8F08F10B5FA4C43
+:108B1000207850B101206072F6F7E5FD2078032837
+:108B200005D0207A002808BF10BD0C2010BD207B86
+:108B3000FCF707FC207BFCF752FE207BFCF77DF85E
+:108B4000002808BFFFDF0020207010BD2DE9F04F86
+:108B5000E94F83B0387801244FF0000840B17C72AF
+:108B60000120F6F7C0FD3878032818BF387A0DD0F9
+:108B7000DFF8889389F8034069460720F9F7C3FEB8
+:108B8000002818BFFFDF4FF6FF7440E0387BFCF78A
+:108B9000D8FB387BFCF723FE387BFCF74EF8002827
+:108BA00008BFFFDF87F80080E2E7029800281CBFBB
+:108BB00090F8141100292AD00088A0421CBFDFF8C9
+:108BC00040A34FF0200B3AD00721F9F713FF040020
+:108BD00008BFFFDF94F86401FCF701FE84F81481FC
+:108BE00094F864514FF6FF76202D28BFFFDF2AF856
+:108BF000156094F86401FCF720F884F864B16946C4
+:108C00000720F9F780FE002818BFFFDF12E0684652
+:108C1000F9F757FE0028C8D011E0029800281CBFC1
+:108C200090F81411002905D00088A0F57F41FF3984
+:108C3000CAD104E06846F9F744FE0028EDD089F86F
+:108C4000038087F8348087F80B8003B00020BDE8EC
+:108C5000F08F70B50446AB4890F80004AA4D400967
+:108C600095F800144909884218BFFFDF95F8140DE4
+:108C70004009A64991F800144909884218BFFFDF4E
+:108C80009E49002001228C7188700A7048700A7118
+:108C9000C870487198490870BDE8704056E7974918
+:108CA000087070472DE9F843934C064688462078B3
+:108CB000002867D19648FBF764FF2073202861D015
+:108CC000032766602770002565722572AEB1012109
+:108CD00006F58270FDF7D1F80620F9F733FE8146DC
+:108CE0000720F9F72FFE96F804114844B1FBF0F283
+:108CF00000FB1210401C86F80401FBF797FF40F2BE
+:108D0000F651884238BF40F2F65000F59F7086B2A7
+:108D1000F5F7E0FBE061F5F766FD4FF0010900288B
+:108D200033D084F80A90FBF7A7FF814601216846FB
+:108D3000FDF77AF89DF8000042F210710002B0FBD6
+:108D4000F1F201FB120081194846FBF796FCA06185
+:108D5000C4E90A8969484079002814BF012003202A
+:108D6000207567752574207B04F11001FCF7CEF99E
+:108D7000002808BFFFDF25840020F6F7B4FC0020A0
+:108D8000BDE8F8830C20BDE8F883FBF775FF31469A
+:108D9000FBF773FCA061A57284F83490A8F28B50A5
+:108DA000A562A063D6E7554948717047534948709A
+:108DB00070475249087170472DE9F0414F4C064603
+:108DC0002089401C2081D4E903516078D6F868716D
+:108DD00020B13A46284604F076F90546E068854217
+:108DE00005D06169281A08446061FCF72BFCE56036
+:108DF000AF4209D896F81401012805D0E078002880
+:108E000004BF0120BDE8F0810020BDE8F08110B56D
+:108E100004460846FEF74EFD4AF2B12108444FF4DD
+:108E20007A71B0FBF1F040F2E241614300F235307B
+:108E300081428CBF081A002010BD70B5044682B074
+:108E4000002084F8280194F8E600002807BF94F871
+:108E50001401032802B070BDFBF70EFFD4F85821AF
+:108E600001461046FCF721FC0028DCBF02B070BDB3
+:108E7000628840F27123D4F81C115A43C1EB4201BD
+:108E8000B0FBF1F0B4F85810401C0844A4F82401D9
+:108E9000B4F8DC00B4F82421801A00B20028DCBF4A
+:108EA00002B070BD012084F82A01B4F88000B4F843
+:108EB0007E2001AE801A401E084485B212E0009662
+:108EC000B4F82411002301222046FEF730FF0028C9
+:108ED00004BF02B070BD01281CD0022812BFFFDF02
+:108EE00002B070BDB4F82401281A00B20028BCBF3B
+:108EF00002B070BDE3E70000640C0020DC0000203D
+:108F0000A00C002001E000E00BE000E019E000E030
+:108F100037860100B4F82401BDF804100844A4F811
+:108F20002401DFE7F8B50422002506295BD2DFE83B
+:108F300001F007260319192A044680F8142107E0D6
+:108F40000446BD48C078002818BF84F814210AD010
+:108F5000FBF79CFDA4F86251B4F85800A4F8260170
+:108F600084F82A51F8BD0095B4F8DC1001230022E2
+:108F70002046FEF7DCFE002818BFFFDFE8E70321EC
+:108F800080F81411F8BD0646876AB0F81C01314616
+:108F900085B2012004F09CF9044696F85500FEF7CE
+:108FA00089FC4AF2B12108444FF47A71B0FBF1F028
+:108FB000718840F271225143C0EB4100401BA0F286
+:108FC000653501F0E1FE002818BF1E3DA74234BF01
+:108FD00020463846A84228BF2C4602D2A74228BFC6
+:108FE0003C467462F8BDFFDFF8BD2DE9F05F924E9C
+:108FF000B178022906BF31890029BDE8F09FB46924
+:10900000C4F86C0194F85500FEF742FCD4F86C11DA
+:10901000081AF1680144F160316908443061B469AB
+:1090200094F82B01002808BFBDE8F09F94F81401C4
+:10903000032818BFBDE8F09F94F8555036780C2EE1
+:1090400028BFFFDF7D4F37F8168094F874610C2E2F
+:1090500028BFFFDF37F81600404494F8748186B2C9
+:10906000B8F10C0F28BFFFDF37F8180000F5C86013
+:109070001FFA80F82846FEF70BFCD4F86C114FF06D
+:10908000000A0F1A15F00C0F0ABF28464EF62830BA
+:10909000FEF710FC4FF47A7900F2E730B0FBF9F0FC
+:1090A0003F1A2846FEF7F4FBD4F8E81015F00C0F31
+:1090B000A1EB000B0ABF28464EF62830FEF7FAFB5C
+:1090C0004AF2B1210844B0FBF9F0ABEB0000A0F18B
+:1090D00060017143B1FBF8F1292202EB50006031CD
+:1090E000A0EB510200EB5100BA4201D8B84201D8BE
+:1090F000F2F794FE608840F2E241414300202EB135
+:1091000006FB01F04E49B0FBF1F0401CC4F81C0115
+:1091100084F82BA1BDE8F09F70B50546464890F84D
+:1091200002C0BCF1020F07BF806900F5B474454866
+:1091300000F12404002904BF256070BD4FF47A7645
+:1091400001290DD002291CBFFFDF70BD1046FEF7BC
+:10915000CAFB00F2E140B0FBF6F0281A206070BDB7
+:109160001846FEF7E1FB00F2E140B0FBF6F0281AEA
+:10917000206070BD3348007800281CBF0020704775
+:1091800010B50720F9F7D0FB80F0010010BD2D4885
+:109190000078002818BF012070472DE9F843294CBA
+:1091A0000025814684F83450D4F8188084F83010B3
+:1091B000E5722570012727722946606803F0CDFA11
+:1091C0006168C1F85881267B81F86461C1F86891B3
+:1091D000C1F85C81B1F80080202E28BFFFDF1A485B
+:1091E00020F81680646884F814510023A4F86051B4
+:1091F0001A46194620460095FEF799FD002818BF2B
+:10920000FFDFC4F81051C4F8085184F81471A4F8B1
+:109210002651A4F8245184F82A51B4F85800401E6D
+:10922000A4F85800A4F86251FBF730FC024880799A
+:10923000BDE8F843E9F770BEDC000020585C02008E
+:1092400040420F00640C0020A00C0020012804D034
+:10925000022805D0032808D105E0012907D004E041
+:10926000022904D001E0042901D000207047012028
+:1092700070472DE9F0410E46044604F07CFD05469A
+:10928000204604F07CFD044604F097F8FE4F0100F0
+:1092900015D0386990F854208A4210D090F8AC313B
+:1092A0001BB190F8AE3123421FD02EB990F8513047
+:1092B000234201D18A4218D890F8AC01A8B12846BF
+:1092C00004F07BF870B1396991F85520824209D0D9
+:1092D00091F8AC0118B191F8AF01284205D091F88E
+:1092E000AC0110B10120BDE8F0810020FBE730B5F2
+:1092F000E54C85B0E06900285DD0142168460CF08B
+:10930000DEF9206990F85500FEF7D4FA4FF47A712F
+:1093100000F5FA70B0FBF1F5206990F85500FEF702
+:10932000B7FA2844ADF8060020690188ADF80010AE
+:10933000B0F85810ADF804104188ADF8021090F85C
+:109340008E0130B1A069C11C039104F0F5FB8DF8CA
+:109350001000206990F88D018DF80800E1696846D9
+:1093600088472069002180F88E1180F88D110399BB
+:10937000002920D090F88C1100291CD190F864109D
+:10938000272918D09DF81010039A002913D01378BC
+:109390000124FF2B11D0072B0DD102290BD15178BD
+:1093A000FF2908D180F88C410399C0F890119DF8ED
+:1093B000101080F88F1105B030BD1B29F2D9FAE7E3
+:1093C00070B5B14C206990F865001B2800D0FFDF14
+:1093D0002069002580F88D5090F8C00100B1FFDFB2
+:1093E000206990F88E1041B180F88E500188A0F865
+:1093F000C41180F8C2510E2108E00188A0F8C41100
+:1094000080F8C251012180F8C6110D2180F8C011E9
+:109410000088F9F721FCF9F7B9F82079E9F77CFD24
+:10942000206980F8655070BD70B5974CA0798007B1
+:109430002CD5A078002829D162692046D37801690B
+:109440000D2B01F158005FD00DDCA3F102034FF0AA
+:1094500001050B2B19D2DFE803F01A1844506127DD
+:10946000182C183A6400152B6FD008DC112B4BD048
+:10947000122B5AD0132B62D0142B06D166E0162B78
+:1094800071D0172B70D0FF2B6FD0FFDF70BD91F81C
+:1094900067200123194603F081FD0028F6D12169D8
+:1094A000082081F8670070BD1079BDE8704001F0B8
+:1094B00008BD91F86600C00700D1FFDF01F0C0FCD5
+:1094C000206910F8661F21F00101017070BD91F84C
+:1094D0006500102800D0FFDF2069112180F88D5031
+:1094E00008E091F86500142800D0FFDF20691521FD
+:1094F00080F88D5080F8651070BD91F865001528D2
+:1095000000D0FFDF172005E091F86500152800D096
+:10951000FFDF1920216981F8650070BDBDE870404A
+:109520004EE7BDE8704001F0A0BC91F86420012333
+:10953000002103F033FD00B9FFDF0E200FE011F82A
+:10954000660F20F0040008701DE00FE091F8642021
+:109550000123002103F022FD00B9FFDF1C20216957
+:1095600081F8640070BD12E01BE022E091F8660013
+:10957000C0F30110012800D0FFDF206910F8661F3A
+:1095800021F010010170BDE8704001F059BC91F864
+:1095900064200123002103F001FD00B9FFDF1F203B
+:1095A000DDE791F86500212801D000B1FFDF22201E
+:1095B000B0E7BDE8704001F04FBC3348016991F855
+:1095C0006620130702D501218170704742F008021E
+:1095D00081F866208069C07881F8C90001F027BC55
+:1095E00010B5294C21690A88A1F8042281F80202E9
+:1095F00091F8540001F009FC216981F8060291F804
+:10960000550001F002FC216981F80702012081F870
+:109610000002002081F8AC012079BDE81040E9F794
+:109620007BBCF0B4184C206900F5DA730188198509
+:10963000018E5985818E9985018FB0F84420914221
+:1096400000D31146D985828FB0F846108A4200D2E5
+:109650001146198690F855204FF0010512F00C0FB5
+:109660004FF4296203D0914200D81146198690F830
+:10967000540010F00C0F04D0988D904200D902468F
+:109680009A8583F8265001E0000100202079F0BC83
+:10969000E9F742BC10B5F84C01230921206990F884
+:1096A0006420583003F07AFC38B12169002001F8B9
+:1096B0007C0F087301F8180C10BD0120A07010BDBC
+:1096C00070B5ED4D012329462869896990F8642019
+:1096D00009790E2A01D1122903D000241C2A03D0B3
+:1096E00004E0BDE87040D5E7142902D0202A08D054
+:1096F00009E080F8644080F88840BDE8704001F0DF
+:1097000003BC162906D0262A01D1162902D0172912
+:1097100009D00CE000F8644F80F8244040782128FC
+:109720000CD01A2017E090F86520222A07D0EA69A9
+:10973000002A03D0FF2901D180F88E3112E780F88A
+:10974000654001F07DFB286980F87D4090F8AC0110
+:109750000028F3D00020BDE8704041E72DE9F84330
+:10976000C54C206990F86410202909D05FF00007EB
+:1097700090F86510222905D07FB300F1640503E05D
+:109780000127F5E700F1650510F8961F41F0040187
+:109790000170A06904F0FBFA4FF00108002608B33D
+:1097A0003946A069FFF765FDE0B16A46A169206905
+:1097B00003F012FE90B3A06904F0E7FA2169A1F862
+:1097C0009601B1F8581001F014FB40B3206928212C
+:1097D00080F8741080F8738058E0FFE70220A070D2
+:1097E000BDE8F883206990F8AC0110B11E20FFF7A6
+:1097F000F7FEAFB1A0692169C07881F8CA0008FA04
+:1098000000F1C1F3006000B9FFDF20690A2180F890
+:10981000641090F8880040B9FFDF06E009E02AE014
+:109820002E7001F00DFBFFF7C8FE206980F87D6007
+:10983000D6E7226992F8AC0170B1B2F8583092F8CC
+:109840005410B2F8B00102F5CB7203F0B7FE68B164
+:109850002169252081F86400206900F1650180F804
+:109860007D608D4212D180F865600FE00020FFF727
+:10987000B7FE2E70F0E720699DF8001080F898116F
+:109880009DF8011080F8991124202870206900F1BA
+:1098900065018D4203D1BDE8F84301F0D1BA80F8EB
+:1098A00088609DE770B5744C01230B21206990F806
+:1098B0006520583003F072FB202650BB206901233D
+:1098C000002190F86520583003F068FB0125F0B1C5
+:1098D000206990F8640024281BD0A06904F035FAB0
+:1098E000C8B1206990F8961041F0040180F89610F4
+:1098F000A1694A7902F0070280F85120097901F044
+:10990000070180F8501090F8AD311BBB06E0A57040
+:1099100028E6A67026E6BDE870404EE690F8AC3129
+:10992000C3B900F154035E788E4205D11978914293
+:1099300002D180F87D500DE000F5FD710D700288B8
+:109940004A8090F850200A7190F8510048712079AF
+:10995000E9F7E2FA2169212081F86500BDE870404D
+:1099600001F065BA70B54448006990F84E20448E05
+:10997000C38E418FB0F84050022A23D0A94200D3B1
+:1099800029460186C18FB0F84220914200D311468A
+:109990008186018FB0F84420914200D31146418660
+:1099A000818FB0F84620914200D31146C186418E86
+:1099B000A14200D90C464486C18E994200D90B467B
+:1099C000C386CFE5028E914200D31146C68F828EA8
+:1099D000964200D23246A94200D329460186B0F809
+:1099E00042108A4200D30A468286002180F84E1037
+:1099F000CFE770B5204C206990F8660010F0300F6A
+:109A000004D0A07840F00100A070ABE5A06904F09C
+:109A100081F948B32569A06904F078F92887256998
+:109A2000A06904F06FF968872569A06904F070F9EE
+:109A3000A8872569A06904F067F9E887A0794FF045
+:109A40000102800703D56069C07814280FD020690F
+:109A500090F864101C290AD090F84E10012910D0FB
+:109A600090F8A31169B909E0BDE87040A5E5206947
+:109A700080F84E2005E000000001002090F8A211BF
+:109A800031B1206910F8661F41F01001017016E035
+:109A900090F8661041F0200180F8661000F5DA7148
+:109AA00003888B86038FCB86438F0B87838F4B87EF
+:109AB000C08F888781F832202079E9F72DFABDE838
+:109AC000704001F0B4B970B5FE4C206990F8661092
+:109AD000890707D590F8642001230821583003F046
+:109AE0005DFAE8B1206990F89000800712D4A0696F
+:109AF00004F0ECF8216981F89100A06930F8052F95
+:109B0000A1F892204088A1F8940011F8900F40F03D
+:109B100002000870206990F89010C90703D00FE088
+:109B20000120A0701EE590F86600800700D5FFDFD9
+:109B3000206910F8661F41F00201017001F077F909
+:109B40002069002590F86410062906D180F8645039
+:109B500080F888502079E9F7DFF9206990F89411AE
+:109B60000429DFD180F894512079E9F7D5F92069EB
+:109B700090F864100029D5D180F88850F2E470B5CF
+:109B8000D04C01230021206990F86520583003F063
+:109B900005FA012578B9206990F86520122A0AD0C3
+:109BA00001230521583003F0F9F910B10820A07005
+:109BB000D8E4A570D6E4206990F88E0008B901F0C9
+:109BC00036F92169A069F03104F061F82169A069D2
+:109BD000C03104F067F8206990F8C80100B1FFDFD8
+:109BE00021690888A1F8CA0101F5E671A06904F0AD
+:109BF0003CF82169A06901F5EA7104F03EF820699A
+:109C000080F8C851142180F865102079BDE87040B3
+:109C1000E9F782B970B5AB4C01230021206990F8B7
+:109C20006520583003F0BAF90125A8B1A06903F006
+:109C3000E8FF98B1A0692169B0F80D00A1F896017C
+:109C4000B1F8581001F0D5F858B12069282180F8F2
+:109C5000741080F8735085E4A57083E4BDE870400B
+:109C6000ABE4A0692169027981F89821B0F8052058
+:109C7000A1F89A2103F0B8FF2169A1F89C01A0691D
+:109C800003F0B5FF2169A1F89E01A06903F0B6FFBA
+:109C90002169A1F8A0010D2081F8650062E47CB57E
+:109CA000884CA079C00738D0A06901230521C57868
+:109CB000206990F86520583003F070F968B1AD1E46
+:109CC0000A2D06D2DFE805F0090905050909050591
+:109CD0000909A07840F00800A070A07800281CD1E5
+:109CE000A06903F057FF00287AD0A0690226C57842
+:109CF0001DB1012D01D0162D18D1206990F86400F6
+:109D000003F034F990B1206990F864101F290DD048
+:109D1000202903D0162D16D0A6707CBD262180F8F0
+:109D20006410162D02D02A20FFF75AFC0C2D58D0B3
+:109D30000CDC0C2D54D2DFE805F033301D44A7A70E
+:109D4000479E57A736392020A0707CBD0120152DD5
+:109D500075D008DC112D73D0122D69D0132D64D06D
+:109D6000142D3DD178E0162D7CD0182D7DD0FF2DFF
+:109D700036D183E020690123194690F867205830D6
+:109D800003F00CF9F8B9A06903F068FF216981F8C4
+:109D90007A01072081F8670078E001F03CF975E06E
+:109DA000FFF738FF72E001F016F96FE0206990F8D4
+:109DB0006510112901D0A67068E0122180F86510A5
+:109DC00064E0FFF7DCFE61E0206990F86500172889
+:109DD000F1D101F035F821691B2081F8650055E0CB
+:109DE00052E0FFF770FE51E0206990F86600C0076E
+:109DF00003D0A07840F001001FE06946A06903F09D
+:109E00006CFF9DF8000000F02501206900F8961F06
+:109E10009DF8011001F04901417001F008F8206936
+:109E200010F8661F41F0010114E0FFF733FC2DE04C
+:109E3000216991F86610490705D5A07026E00EE06B
+:109E400016E00FE011E000F0F2FF206910F8661F45
+:109E500041F00401017019E0FFF7CBFD16E001F0BD
+:109E600087F813E0FFF71EFD10E0FFF777FC0DE029
+:109E700001F05DF80AE0FFF723FC07E0E16919B1A2
+:109E8000216981F88E0101E0FFF797FB2069F0E975
+:109E90002A12491C42F10002C0E900127CBD70B5D3
+:109EA000084CA07900074DD5A07800284AD1206938
+:109EB00090F8CC00FE2800D1FFDF2069FE2180F859
+:109EC000CC1001E00001002090F865100025192950
+:109ED00006D180F88D5000F0B3FF206980F86550FE
+:109EE000206990F864101F2902D0272921D119E098
+:109EF00090F8650003F03AF878B120692621012333
+:109F000080F8641090F865200B21583003F046F873
+:109F100078B92A20FFF764FB0BE02169202081F843
+:109F2000640006E0012180F88D1180F8645080F80B
+:109F30008850206990F86710082903D10221217008
+:109F400080F8CC10E4E4F949096991F898210AB93C
+:109F500091F8542081F8542091F899210AB991F888
+:109F6000552081F85520002802D00020FFF738BB8B
+:109F7000704770B5ED4C06460D46206990F8CC0050
+:109F8000FE2800D0FFDF2269002082F8CC6015B1E6
+:109F9000A2F88A00BCE422F8840F01201071B7E413
+:109FA00070B5E24C01230021206990F864205830FC
+:109FB00002F0F4FF00287AD0206990F8A21111B1C4
+:109FC00090F8A31139B190F8AC1100296ED090F837
+:109FD000AD1111B36AE090F8651024291BD090F8F8
+:109FE0006410242917D0002300F5CC7200F5D1713C
+:109FF00003F084F82169002081F8A20101461420B1
+:10A00000FFF7B7FF206930F8421FA0F88C10818855
+:10A01000A0F88E1050E00123E6E790F865200123B8
+:10A020000B21583002F0BAFF68BB206990F8540049
+:10A0300000F0EBFE0646206990F8550000F0E5FEC2
+:10A040000546206990F8AE113046FFF7FFF8D8B109
+:10A05000206990F8AF112846FFF7F8F8A0B12269FF
+:10A06000B2F8583092F85410B2F8B00102F5CB7241
+:10A0700003F0A4FA20B12169252081F864001BE0D7
+:10A080000020FFF7ADFA11E020690123032190F8C9
+:10A090006520583002F082FF40B920690123022177
+:10A0A00090F86520583002F079FF08B100202FE4C5
+:10A0B00000211620FFF75DFF012029E410B5E8BB61
+:10A0C0009A4C206990F86610CA0702D00121092035
+:10A0D00052E08A070AD501210C20FFF74AFF2069C8
+:10A0E00010F8901F41F00101017047E04A0702D5C6
+:10A0F0000121132040E00A0705D510F8C91F41715E
+:10A100000121072038E011F0300F3BD090F8A31167
+:10A11000A1B990F8A211E1B190F8651024292FD0CF
+:10A1200090F8641024292BD05FF0000300F5CC7266
+:10A1300000F5D17102F0E2FF206900E022E010F8A2
+:10A14000661F21F0200141F010010170002180F80C
+:10A150003C11206990F86600C00613D5FFF702FC99
+:10A1600000F0D2FE206930F8421FA0F88C108188E0
+:10A17000A0F88E1001211520FFF7FBFE012010BD75
+:10A180000123D3E7002010BD70B5684C206990F81A
+:10A19000CC10FE2978D1A178002975D190F86720DC
+:10A1A00001231946583002F0F9FE00286CD12069CD
+:10A1B00090F8781149B10021A0F8821090F8791137
+:10A1C00080F8CE10002102205BE090F8652001238A
+:10A1D0000421583002F0E2FE0546FFF76FFF002829
+:10A1E00052D1284600F07BFF00284DD12069012381
+:10A1F000002190F86420583002F0D0FE78B1206938
+:10A200000123042190F86520583002F0C7FE30B9D0
+:10A21000206990F87C0010B10021122031E0206903
+:10A2200090F864200A2A0DD0002D2DD101230021A1
+:10A23000583002F0B3FE78B1206990F894110429E7
+:10A240000AD105E010F8CA1F01710021072018E0AB
+:10A2500090F89000800718D0FFF7A2FE002813D1D5
+:10A2600020690123002190F86420583002F096FE06
+:10A27000002809D0206990F88C01002804D0002122
+:10A28000FF20BDE8704074E609E000210C20FFF7D4
+:10A2900070FE206910F8901F41F00101017041E447
+:10A2A0003EB505466846FDF702FC00B9FFDF2221F6
+:10A2B00000980BF0E2F90321009803F053FC00989A
+:10A2C000017821F010010170294603F070FC174C51
+:10A2D0000D2D43D00BDCA5F102050B2D19D2DFE8C3
+:10A2E00005F01F184A19191F185518192700152DA0
+:10A2F0005DD008DC112D28D0122D0BD0132D09D0E4
+:10A30000142D06D153E0162D2CD0172D68D0FF2D1B
+:10A3100072D0FFDFFDF7DEFB002800D1FFDF3EBD7E
+:10A320002169009891F8CE101AE000000001002089
+:10A33000E26800981178017191884171090A817170
+:10A340005188C171090A0172E4E70321009803F002
+:10A3500038FD0621009803F038FDDBE70098062160
+:10A360000171D7E70098216991F8AE21027191F847
+:10A37000AF114171CEE721690098F83103F096FCE6
+:10A3800021690098C43103F09BFCC3E7F849D1E987
+:10A390000001CDE90101206901A990F8960000F0C3
+:10A3A00025008DF80400009803F0C5FCB2E7206991
+:10A3B000B0F84410009803F095FC2069B0F8D01074
+:10A3C000009803F093FC2069B0F84010009803F067
+:10A3D00091FC2069B0F8CE10009803F08FFC99E74B
+:10A3E000216991F8AC0100280098BDD111F8542FD3
+:10A3F00002714978BDE7FFE7206990F88F21D0F816
+:10A400009011009803F0E1FB84E7DA4810B5006989
+:10A4100090F86A1041B990F8652001230621583060
+:10A4200002F0BCFD002800D0012010BD70B5D14D58
+:10A43000286990F8681039B1012905D0022906D0A1
+:10A44000032904D0FFDF06E4B0F8DC1037E090F811
+:10A450006710082936D0B0F87E10B0F880200024AC
+:10A460008B1C9A4206D3511A891E0C04240C01D06D
+:10A47000641EA4B290F87C1039B190F864200123D6
+:10A480000921583002F08AFD40B3FFF7BEFF78B1D2
+:10A4900029690020B1F87820B1F876108B1C9A4217
+:10A4A00003D3501A801E00D0401EA04200D284B2B6
+:10A4B0000CB1641EA4B22869B0F8DC102144A0F8E5
+:10A4C000D8103FE5B0F87E100329BDD330F8581FEF
+:10A4D000028D1144491CA0F8801033E50024EAE7FE
+:10A4E00070B50C4605464FF4027120460BF0E7F8B4
+:10A4F000258027E5F8F787BB2DE9F0410D46074693
+:10A500000721F8F777FA041E3CD094F8B40100262E
+:10A51000A8B16E70092028700BE0268484F8B4611D
+:10A52000D4F8B6016860D4F8BA01A860B4F8BE01E6
+:10A53000A88194F8B4010028EFD12E71BAE094F804
+:10A54000C00190B394F8C0010D2813D00E2801D09B
+:10A55000FFDFAFE02088F8F77FFB0746F8F72BF81E
+:10A5600078B96E700E20287094F8C2012871208886
+:10A57000E88014E02088F8F76FFB0746F8F71BF82F
+:10A5800010B10020BDE8F0816E700D20287094F8A5
+:10A59000C20128712088E88094F8C601287284F8E6
+:10A5A000C0613846F8F701F884E0FFE794F8F80155
+:10A5B00030B16E701020287084F8F861AF8079E0B7
+:10A5C00094F8C80190B16E700A2028702088A88085
+:10A5D000D4F8CC11C5F80610D4F8D011C5F80A107B
+:10A5E000B4F8D401E88184F8C86163E094F8D60136
+:10A5F00040B16E701A202870B4F8D801A88084F891
+:10A60000D66157E094F8F20170B16E701B2028708B
+:10A6100005E000BF84F8F261D4F8F401686094F8B2
+:10A62000F2010028F6D145E094F8DA0190B16E709D
+:10A630001520287004F5EE7707E000BF84F8DA6192
+:10A640000A223946281D0AF0DEFF94F8DA010028B4
+:10A65000F4D12FE094F8E60158B16E701D202870F7
+:10A6600084F8E6610A2204F5F471281D0AF0CBFF94
+:10A6700020E094F8FA0138B11E20287084F8FA61BD
+:10A68000D4F8FC01686015E094F8000200283FF45B
+:10A6900079AF6E701620287008E000BF84F8006261
+:10A6A000D4F802026860B4F80602288194F8000227
+:10A6B0000028F3D1012065E72E480021C161016225
+:10A6C0000846704730B52B4D0C46E860FFF7F4FFA5
+:10A6D00000B1FFDF2C7130BD002180F8641080F8DC
+:10A6E000651080F8681090F8E61009B1022100E0CA
+:10A6F0000321FEF717BC2DE9F0411E4C05462069E9
+:10A7000009B1002104E0B0F8EE10B0F8DE201144E9
+:10A71000A0F8EE1090F8781139B990F8672001236D
+:10A720001946583002F03AFC30B1206930F8821FE7
+:10A73000B0F85C2011440180206990F8883033B172
+:10A74000B0F88410B0F8DE201144A0F8841090F91D
+:10A750008C70002F06DDB0F88A10B0F8DE201144AE
+:10A76000A0F88A1001213D2635B180F8746017E009
+:10A77000705C0200000100202278022A0AD0012A1F
+:10A7800011D0A2782AB380F8731012F0140F0DD0F4
+:10A790001E2113E090F8CE20062A3CD016223AE083
+:10A7A00080F8731044E090F87A2134E0110702D564
+:10A7B00080F874603CE0910603D5232180F8741082
+:10A7C00036E0900700D1FFDF21692A2081F874006C
+:10A7D0002AE02BB1B0F88420B0F886309A4210D22B
+:10A7E000002F05DDB0F88A20B0F886309A4208D2F2
+:10A7F000B0F88230B0F88020934204D390F87831DA
+:10A800000BB1222207E090F868303BB1B0F87E30FF
+:10A81000934209D3082280F87420C1E7B0F87E2063
+:10A82000062A01D33E22F6E7206990F8731019B189
+:10A830002069BDE8F0414FE7BDE8F0410021FEF797
+:10A8400071BB2DE9F047FA4C81460D46206900881E
+:10A85000F8F714FA060000D1FFDFA0782843A070B3
+:10A86000A0794FF000058006206904D5A0F87E503D
+:10A8700080F8EC5003E030F87E1F491C0180FFF7A0
+:10A88000C4FD012740B3E088000506D5206990F893
+:10A890006A1011B1A0F876501EE02069B0F8761069
+:10A8A000491C89B2A0F87610B0F878208A4201D30A
+:10A8B000531A00E00023B4F808C00CF1050C6345FE
+:10A8C00001D880F87C70914206D3A0F8765080F8C9
+:10A8D000F8712079E8F720FBA0794FF0020810F01A
+:10A8E000600F0ED0206990F8681011B1032908D1CB
+:10A8F00002E080F8687001E080F868800121FEF7CE
+:10A9000011FB206990F86810012904D1E188C9057C
+:10A9100001D580F86880B9F1000F71D1E18889050F
+:10A9200002D5A0F8005104E0B0F80011491CA0F8CD
+:10A93000001100F09BFBFEF7DAFCFFF725FC00F0AE
+:10A9400057FF0028206902D0A0F8E05003E030F85B
+:10A95000E01F491C018000F04EFF38B1216991F8D9
+:10A96000EC00022807D8401C81F8EC00206990F820
+:10A97000EC00022804D9206920F8E05F45800573C7
+:10A9800020690123002190F86520583002F006FB71
+:10A9900020B9206990F865000C2859D1206901235D
+:10A9A000002190F86420583002F0F8FA48B320698A
+:10A9B0000123002190F86720583002F0EFFA00B32D
+:10A9C000206990F86810022942D190F8EC00C0B9D3
+:10A9D0003046F7F7C0FBA0B1216991F8CC00FE2802
+:10A9E00036D1B1F8DA00012832D981F8E570B1F832
+:10A9F0008000B1F87E20831E9A4203DB012004E030
+:10AA000032E025E0801A401E80B2B1F8E0202389B0
+:10AA10009A4201D3012202E09A1A521C92B2904249
+:10AA200000D91046012801D181F8E55091F8702134
+:10AA300092B1B1F8E220B1F872118A4201D301213A
+:10AA400002E0891A491C89B2884205D9084603E008
+:10AA50002169012081F8E5502169B1F8582010449E
+:10AA6000A1F8DC00FFF7E2FCE088C0F34021484693
+:10AA7000FFF741FE206980F8E650BDE8F047FDF79A
+:10AA80004BB86B4902468878CB78184312D10846F8
+:10AA9000006942B18979090703D590F86700082851
+:10AAA00008D001207047B0F84810028E914201D8BA
+:10AAB000FEF782B90020704770B55D4C05460E4622
+:10AAC000E0882843E080A80703D5E80700D0FFDF2F
+:10AAD0006661EA074FF000014FF001001AD0A6614D
+:10AAE000F278062A02D00B2A14D10AE0226992F8E1
+:10AAF0006530172B0ED10023E2E9283302F8370C1A
+:10AB000008E0226992F86530112B03D182F86910B0
+:10AB100082F88E00AA0718D56269D278052A02D079
+:10AB20000B2A12D10AE0216991F86520152A0CD16F
+:10AB30000022E1E92A2201F83E0C06E0206990F8A3
+:10AB40006520102A01D180F86A10280601D5082056
+:10AB5000E07078E42DE9F84F354C00254FF00108FE
+:10AB6000E580A570E5704146257061F3070220611C
+:10AB70009246814680F8E6800088F8F77FF8070063
+:10AB800000D1FFDF20690088FCF78EFF2069008874
+:10AB9000FCF7B0FF2069B0F8DA1071B190F8CC1072
+:10ABA000FE290FD190F8781191B190F86720012318
+:10ABB0001946583002F0F2F980B1206990F8CC00C3
+:10ABC000FE2805D0206990F8CC0000BFFFF768FB95
+:10ABD000206990F8E71089B1258118E02069A0F874
+:10ABE000825090F8791180F8CE1000210220FFF7F2
+:10ABF000C0F9206980F8E5500220E7E790F8B41129
+:10AC000019B9018C8288914200D881882181B0F8DD
+:10AC1000DE10491E8EB2B0F8E0103144A0F8E0100A
+:10AC200090F8E41031B1A0F8E25080F8E45006E06A
+:10AC300000010020B0F8E2103144A0F8E21030F832
+:10AC40007E1F31440180FFF7E0FB20B1206930F81E
+:10AC5000761F314401802069B0F8DA10012902D84A
+:10AC6000491CA0F8DA100EB180F8EC5090F8E5100D
+:10AC7000A1B1B0F8E000218988420FD23846F7F739
+:10AC80006AFA58B1206990F8701139B1B0F8E21041
+:10AC9000B0F87201814201D300F0B0FD206980F864
+:10ACA000E55090F865100B2901D00C2916D1B0F8A9
+:10ACB0005820B0F89631D21A12B2002A0EDBD0F822
+:10ACC0009811816090F89C110173022101F045FDFB
+:10ACD000206980F8655080F8988026E0242910D1FA
+:10ACE000B0F85810B0F89621891A09B2002908DB8B
+:10ACF00090F8AC01FFF727F9206900F8655F057649
+:10AD000013E090F86410242901D025290DD1B0F862
+:10AD10005810B0F89601081A00B2002805DB01208F
+:10AD2000FFF711F9206980F8645020690146B0F8F6
+:10AD3000DE20583001F0E9FE206990F8701109B169
+:10AD4000A0F8E250F9480090F94BFA4A49465046BB
+:10AD500000F0AEFC216A11B16078FCF7F3F92069CC
+:10AD60000123052190F86520583002F017F90028DA
+:10AD700003D0BDE8F84F00F036BABDE8F88F00F018
+:10AD80001DBDED49C8617047EB48C069002800D07F
+:10AD900001207047E84A50701162704710B50446B0
+:10ADA000B0F89C214388B0F89E11B0F8A0019A42F7
+:10ADB00005D1A388994202D1E38898420FD0238815
+:10ADC000A4F8B831A4F8BA21A4F8BC11A4F8BE01C3
+:10ADD000012084F8B401D8480079E8F79DF80121F2
+:10ADE000204601F0BAFC002004F8650F0320E07053
+:10ADF00010BD401A00B247F6FE71884201DC0028FF
+:10AE000001DC012070470020704710B5012808D0F0
+:10AE1000022808D0042808D0082806D0FFDF2046E2
+:10AE200010BD0124FBE70224F9E70324F7E7C24839
+:10AE30000021006920F88A1F8178491C81707047C1
+:10AE4000BD4800B5016911F88C0F401E40B2087072
+:10AE5000002800DAFFDF00BDB7482721006980F82D
+:10AE60006410002180F88C11704710B5B24C206935
+:10AE700090F89411042916D190F864200123002140
+:10AE8000583002F08BF800B9FFDF206990F890107D
+:10AE9000890703D4062180F8641004E0002180F8BB
+:10AEA000881080F89411206990F86600800707D513
+:10AEB000FFF7C6FF206910F8661F21F0020101703C
+:10AEC00010BD9D4910B5096991F864200A2A09D17D
+:10AED00091F8CA20824205D1002081F8640081F8EF
+:10AEE000880010BD91F86620130706D522F00800EF
+:10AEF00081F86600BDE81040A2E7FF2801D0FFDF1F
+:10AF000010BDBDE81040A7E710B58B4C05212069A6
+:10AF1000FEF708F8206990F84E10012903D0BDE82B
+:10AF20001040FEF77EBB022180F84E1010BD10B518
+:10AF3000814C206910F8961F41F004010170A0694E
+:10AF400002F041FF162806D1206990F864002028FD
+:10AF500002D0262805D010BDA06902F038FFFEF708
+:10AF60003FFB2169002081F8640081F8880010BD52
+:10AF700070B5714C01230A21206990F86420583083
+:10AF800002F00CF810B3A06902F0C4FEA8B1256964
+:10AF9000A06902F0BBFE28872569A06902F0B2FE15
+:10AFA00068872569A06902F0B3FEA8872569A069B2
+:10AFB00002F0AAFEE887FEF7D5FC2169002081F89F
+:10AFC000880081F86400BDE870409DE7A07840F0FB
+:10AFD0000100A070BDE510B5574C01230021206988
+:10AFE00090F86520583001F0D9FF30B1FFF71FFF0E
+:10AFF0002169102081F8650010BD20690123052119
+:10B0000090F86520583001F0C9FF08B1082000E031
+:10B010000120A07010BD70B5474C012300212069AC
+:10B0200090F86520583001F0B9FF012588B1A0697A
+:10B0300002F011FE2169A1F89601B1F85810FFF74E
+:10B04000D8FE40B12069282180F8741080F8735030
+:10B050007FE5A5707DE52169A06901F5CC7102F05D
+:10B06000F5FD21690B2081F8650072E510B5FEF74A
+:10B0700016FFFEF714FE304CA079400708D5A078E3
+:10B0800030B9206990F86700072801D101202070AD
+:10B09000FEF7CAF9A079C00609D5A07838B92069A9
+:10B0A00090F865100B2902D10C2180F86510E0782A
+:10B0B00000070ED520690123052190F8652058303E
+:10B0C00001F06CFF30B10820A0702169002081F8E8
+:10B0D000C00110BDBDE81040002000F093BB10B5CA
+:10B0E000154C216991F86520F8B1102A06D0142A70
+:10B0F00007D0152A22D01B2A34D122E001210B20AF
+:10B1000021E0FAF797FE0C281FD320690821F830B8
+:10B11000FAF794FE28B120690421C430FAF78EFEB4
+:10B1200000B9FFDF012104200DE010E043A8010079
+:10B1300083AA0100B9AA01000001002000F017F85D
+:10B1400003E001210620FEF714FF012010BD212A93
+:10B1500008D191F87D0038B991F8AC0110B191F89F
+:10B16000AD0108B1002010BD01211720EBE770B53B
+:10B17000174C0025206990F87B1101290AD002297B
+:10B1800025D190F88E10A9B1062180F8CE100121AA
+:10B19000022017E090F8C011002918D100F1B00387
+:10B1A00000F1F001002200F5BE7001F071FE0121F6
+:10B1B000052007E090F89600400701D5112000E037
+:10B1C0000D200121FEF7D5FE206980F87B51C0E4F7
+:10B1D0000001002030B5FA4C05462078002818BF41
+:10B1E000FFDF257230BDF6490120C87170472DE997
+:10B1F000F14FF44E30464068044600F1580990F88B
+:10B20000551001F0D2FF94F85510658E80B20829D0
+:10B210006CD001F0A8FF854238BF284600F0FF0837
+:10B22000DFF89CA3E848CAF824007768384697F806
+:10B230006AB07D8E97F8551001F0B7FF97F855105A
+:10B2400080B2082956D001F08EFF854238BF2846CB
+:10B25000BBF1000F1CBF001D80B2C0B297F85510A3
+:10B26000FBF770FB99F81200002847D009F158014C
+:10B27000D54891E80E1000F5027585E80E10D9F852
+:10B280006810C0F82112D9F86C10C0F8251200F52A
+:10B290008170FBF7BCFE307800280CBF0120002035
+:10B2A00080F00101C9480176D9E91412C0E90412FD
+:10B2B000A0F58372DAF82410FBF7DBF994F8550057
+:10B2C000012808BF00220CD0022808BF012208D0A4
+:10B2D000042808BF032204D008281ABFFFDF002279
+:10B2E000022241460120FBF7DFF90DE0042101F0C5
+:10B2F0003AFF90E7042101F036FFA6E7DAF82400D0
+:10B30000FBF785FEFBF7FCF9009850B994F855005F
+:10B3100094F8561010F00C0F08BF00219620FBF790
+:10B3200097FE94F8542001210020FBF779FF94F850
+:10B330002C00012808BFFBF743FF02208AF8000019
+:10B34000FCF74CFB002818BFFFDFBDE8F88F2DE9A4
+:10B35000F04FDFF870A28BB050469AF80020416899
+:10B360001438049091F85D0001F158050C464FF037
+:10B3700008080127AAF13406A0B3012800F00681CD
+:10B38000022800F00781032818BFFFDF00F01081BA
+:10B39000306A0423017821F008010170AA7908EAD3
+:10B3A000C202114321F004010170EA7903EA82022A
+:10B3B000114321F01001017095F80590F06AF6F73D
+:10B3C000DAFE8046FCF7BAFBB9F1020F00F000810B
+:10B3D000B9F1010F00F00081B9F1030F00F0008115
+:10B3E00000F003B9FFE72B7B4FF002094FF0000B91
+:10B3F000242B1CBF95F80DC0BCF1240F07D01F2BC8
+:10B4000018BF202B2AD0BCF1220F4DD077E091F845
+:10B41000540092B191F89811002974D0082818BFEF
+:10B42000042869D0082918BF042965D0012818BF4D
+:10B43000012953D04FF0020065E091F8FA1000297D
+:10B4400061D0082818BF042856D0082918BF04293D
+:10B4500052D0012818BF012940D0EBE7BCF1220FE0
+:10B4600022D0002A4BD091F8540091F8AE1111F07F
+:10B47000040F18BF41460CD0082818BF04283BD041
+:10B48000082918BF042937D0012818BF012925D061
+:10B49000D0E711F0010F18BF3946EDD111F0020FBE
+:10B4A00018BF4946E8D12EE04AB391F8540091F80C
+:10B4B000AE2191F8511002EA010111F0040F18BFFA
+:10B4C00041460ED0082818BF042815D0082918BFF7
+:10B4D000042911D0012818BF0129ABD14FF0010078
+:10B4E00011E011F0010F18BF3946EBD111F0020F36
+:10B4F00018BF4946E6D106E04FF0080003E091F896
+:10B5000054000428F8D001460290204601F058FE6D
+:10B5100080B2029901F027FE218E814238BF084691
+:10B52000ADF80C00A4F848000498FCF7E6FA60B106
+:10B53000B289316A42F48062B28172694FF48060EC
+:10B54000904703206871EF7022E709AA03A9F06A07
+:10B55000F6F74CFD306210B195F8351021B1049822
+:10B56000FCF79FFA6F7113E79DF8241031B9A0F82A
+:10B5700000B080F802B0012102F0F4FABDF80C101E
+:10B58000306A02F026FC85F8059001E70498FCF784
+:10B5900088FAFDE6B4F84800ADF8080009AA02A947
+:10B5A000F06AF6F723FD3062002808BFFFDFEFE600
+:10B5B0000498FCF7A2FA002808BFFFDFE8E60000C5
+:10B5C0002401002058010020E00C0020E80E00209B
+:10B5D00030EA080009D106E030EA080005D102E0AF
+:10B5E000B8F1000F01D0012100E00021306A02789B
+:10B5F00042EA01110170697C00291CBF69790129A7
+:10B600003DD005F15801FD4891E80E1000F5027893
+:10B6100088E80E10A96EC0F82112E96EC0F8251254
+:10B6200000F58170FBF7F3FC9AF8000000280CBFCE
+:10B6300001200020F2490876D5E91202C1E904028E
+:10B64000A1F5837101F58370326AFBF712F894F863
+:10B650005400012808BF00220CD0022808BF012294
+:10B6600008D0042808BF032204D008281ABFFFDF2F
+:10B6700000220222FB210020FBF716F803E0FBF773
+:10B68000C6FCFBF73DF8012194F855200846FBF76E
+:10B69000C7FD3771306A018831828078B0743770A5
+:10B6A000FCF7A5F9002818BFFFDF0BB0BDE8F08F4D
+:10B6B0002DE9F047D34C8146DDF8208020781E46E6
+:10B6C00017460D4628B9002F1CBF002EB8F1000FF9
+:10B6D00000D1FFDFC4F81C80C4E90D95C4E90576EC
+:10B6E0004FF00000E071A071E070A07020716071F7
+:10B6F000C54EA081E081307805F158072888F7F71A
+:10B70000BDFAE0622888F7F7A7FA2063FBF73EF955
+:10B7100095F95700FBF7DFF905F11200FBF75AFC2A
+:10B7200005F10E00FBF7DDF9307800280CBF03208F
+:10B730000120FBF769FCB87EFBF7DBF9FBF75EFC49
+:10B740003078002804BFFF2095F8544019D0BF7C02
+:10B750006C8E95F85510284601F027FD95F8551088
+:10B7600080B208291FD001F0FEFC014620468C4221
+:10B7700028BF0846002F1CBF001D80B2C0B295F83C
+:10B7800055402146FBF7DEF83078214680B1012094
+:10B79000FBF7A3FA7068D0F8E800FBF73BFCBDE8C4
+:10B7A000F047012023E5042101F0DDFC0146DDE73F
+:10B7B0000020FBF792FABDE8F047C8E5924800B5D3
+:10B7C00001783438007819B1022818BFFFDF00BDB6
+:10B7D000012818BFFFDF00BD8A4810B50078022895
+:10B7E00018BFFFDFBDE8104000F034BA00F032BAF5
+:10B7F0008448007970478348C078704781490120A8
+:10B80000487170472DE9F04706007F487D4D40683C
+:10B8100000F15804686A90F8019018BF012E03D116
+:10B82000296B09F069FB6870687800274FF0010800
+:10B83000A0B101283CD0022860D003281CBFFFDF44
+:10B84000BDE8F087012E08BFBDE8F087286BF6F74A
+:10B8500087FE287ABDE8F047E7F75EBB012E14D0DB
+:10B86000A86A002808BFFFDF6889C21CD5E9091053
+:10B8700009F084FEA86A686201224946286BF6F73F
+:10B88000EBFC022E08BFBDE8F087D4E91401401C90
+:10B8900041F10001C4E91401E079012801D1E77107
+:10B8A00001E084F80780287ABDE8F047E7F734BB69
+:10B8B000012E14D0A86A002808BFFFDF6889C21CC7
+:10B8C000D5E9091009F05AFEA86A686200224946C3
+:10B8D000286BF6F7C1FC022E08BFBDE8F087D4E95B
+:10B8E0001410491C40F10000C4E91410E07901284B
+:10B8F0000CBFE77184F80780BDE8F087012E06D001
+:10B90000286BF6F72DFE022E08BFBDE8F087D4E9BC
+:10B910001410491C40F10000C4E91410E07901281A
+:10B92000BFD1BCE770B5384E3046A6F1340440684C
+:10B9300000F158052078012818BFFFDFA87868B10A
+:10B940000021A970A289042042F00402A281626948
+:10B950009047307800281CBF01202871216A0322FB
+:10B96000087832EA000009D1A28912F4806F05D06C
+:10B9700042F00202A2816269022090470121002068
+:10B9800000F087F918B1BDE8704000F063B9BDE878
+:10B99000704000202BE42DE9F14F1B4E002730466C
+:10B9A000A6F134054068317800F1580A2878B84685
+:10B9B000022818BFFFDFE88940F40070E881716851
+:10B9C0003078FF2091F85410FAF7BCFF0098002857
+:10B9D0009AF8120000F00681FAF7B7FEFAF7A5FE12
+:10B9E0004FF00109E0B99AF81200C8B1686A4178CD
+:10B9F000B1B10078C0F3C00008E00000E00C002006
+:10BA0000E80E002024010020580100209AF80710B9
+:10BA1000884205D185F80290BDE8F84F00F01AB9C8
+:10BA2000686A41786981002908BFAF6203D0286B3A
+:10BA3000F6F7CCFBA862E88940F02000E881EF70BF
+:10BA40003078706800F15804834690F82C00012883
+:10BA50001AD1FBF7ABFB2146584601F05AFA98B1D0
+:10BA60003078002870680CBF00F58E7000F5F97012
+:10BA7000BBF800104180217A0171617A417180F830
+:10BA80000090287AE7F748FA686A9AF80610007872
+:10BA9000C0F3800088423BD03078706800F15804D1
+:10BAA00090F85D0000282FD002284BD067713078C5
+:10BAB00000281CBF2079002809D02771AA8939469F
+:10BAC00042F01002AA816A694FF010009047E078B6
+:10BAD000A0B1E770FCF720F8002808BFFFDF0820BE
+:10BAE000AA89002142F00802AA816A699047D4E934
+:10BAF0001202411C42F10000C4E91210A079012891
+:10BB00000CBFA77184F80690E88940F48070E88142
+:10BB1000696A9AF807300878C0F3C0029A424ED199
+:10BB20003278726800F0030002F15804012818BF4F
+:10BB300002282DD003281CBFA87940F0040012D0A1
+:10BB4000A8713CE0E86AF6F77DFA002808BFFFDF3D
+:10BB5000D4E91202411C42F10000C4E91210287A13
+:10BB6000E7F7DAF9A2E784F80290EA89484642F456
+:10BB70000062EA81AA8942F00102AA816A699047BB
+:10BB8000E079012801D1E77119E084F8079016E007
+:10BB9000487818B3E98941F40061E981A96A71B173
+:10BBA000FB2884BFA87940F01000C9D8E8790028A4
+:10BBB00008BFC84603D080206A6900219047012051
+:10BBC000009900F066F8B0B1B8F1000F1CBF00207A
+:10BBD000FFF718FEBDE8F84F00F03CB8E079012807
+:10BBE000D3D1D0E7002818BFFAF7E7FDE88940F085
+:10BBF0004000E881E3E7B8F1000F1CBF0120FFF728
+:10BC000001FEFFF7A4FBB8F1000F08BFBDE8F88FF5
+:10BC10000220BDE8F84FF5E570B50D4606463D48F3
+:10BC20003C4900784C6850B1FAF724FE034694F87A
+:10BC3000542029463046BDE87040FDF76DBAFAF74A
+:10BC400019FE034694F8542029463046BDE870405A
+:10BC500006F091B92F4910B54C68FBF786FAFBF74F
+:10BC600065FAFBF73DF9FBF7BBF9FAF749FD94F8E4
+:10BC70002C00012808BFFBF799FA274C00216269C4
+:10BC8000E0899047E269A179A07890470020207070
+:10BC900010BD70B5204C0546002908BF012D06D106
+:10BCA000E07800F10100C0B2E07001282ED8A1694F
+:10BCB00028468847002829D06179184839B1012DD4
+:10BCC00001BF41780029017811F0100F1ED0A17931
+:10BCD000E1B910490978002908BF012D01D091B1BF
+:10BCE0008DB90F49097811F0100F04BF007810F0DA
+:10BCF000100F0BD0A08948B9A06A20B9608910B193
+:10BD000011F0100F02D04FF0000070BD4FF0010095
+:10BD100070BD00005801002024010020E00C00202C
+:10BD200034010020FE498A78824286BF084490F898
+:10BD300043010020704710B540F2D311F84809F0D4
+:10BD40009CFCFF220821F74809F08FFCF6480021EF
+:10BD5000417081704FF46171818010BD2DE9F04117
+:10BD60000E46054600F0ADFBED4C102816D004EB56
+:10BD7000C00191F85A0110F0010F1CBF0120BDE86D
+:10BD8000F081607808283CBF012081F85A011CD25C
+:10BD90006078401C60700120BDE8F0816078082860
+:10BDA00013D222780127501C207004EBC20830689F
+:10BDB000C8F85401B088A8F85801102A28BFFFDF3E
+:10BDC00088F8535188F85A71E2E70020BDE8F08105
+:10BDD000D54988707047D4488078704770B4D0488F
+:10BDE00000250178491E4BB2002B46DB00EBC30156
+:10BDF00091F85A1111F0010F3BD04278D9B2521E7E
+:10BE0000427000EBC10282F85A5190F802C0002241
+:10BE1000BCF1000F0BD9841894F803618E4202D153
+:10BE2000102A26D103E0521CD2B29445F3D80278EE
+:10BE3000521ED2B202708A421BD000EBC20200EB4B
+:10BE4000C10CD2F85341CCF85341D2F85721CCF869
+:10BE50005721847890F800C00022002C09D9861858
+:10BE600096F8036166450CD1102A1CBF024482F883
+:10BE70000311591E4BB2002BB8DAAB48857070BC69
+:10BE80007047521CD2B29442E9D8F2E7A4498A78AA
+:10BE9000824286BF01EB0010C01C002070472DE9D4
+:10BEA000F04101261F4690463446002500F009FB6C
+:10BEB00010282AD09A494FF0000C01EBC00292F8EA
+:10BEC0005A2102F001058A78002A1ED901EB0C03E1
+:10BED00093F8033183421FD1BCF1100F15D0002F0E
+:10BEE00018BF87F800C0887860450ED901EB0C10A8
+:10BEF00010F1030F09D001EB0C0090F84B4190F8C2
+:10BF00003B0101280CBF0126002648EA050046EA4D
+:10BF100004010840BDE8F0810CF1010303F0FF0CBF
+:10BF20006245D3D8F1E72DE9F05F1F4690460E46F3
+:10BF3000814600F0C6FA7A4D044610283CD00146EE
+:10BF4000AB780020002B0ED92A1892F803218A42E0
+:10BF500005D110281CBF1220BDE8F09F03E0401C53
+:10BF6000C0B28342F0D8082B3FD2102C27D0AE7835
+:10BF70001022701CA87005EB061909F10300414658
+:10BF800000F06CFF09F183001022394600F066FFD3
+:10BF90001021384600F03FFF3544102185F8430159
+:10BFA000404600F038FF85F84B0185F8034100203A
+:10BFB00085F83B01BDE8F09FAB78082B15D22C78B3
+:10BFC000CA46601C287005EBC4093068C9F85401E2
+:10BFD000B0884FF0000BA9F85801102C28BFFFDFE4
+:10BFE00089F853A189F85AB1C1E70720BDE8F09F4D
+:10BFF00070B44B488178491E4BB2002BBCBF70BC5B
+:10C00000704700BF817803F0FF0C491ECAB28270EE
+:10C0100050FA83F191F8031194453ED000EB0215DC
+:10C0200000EB0C14D5F80360C4F80360D5F8076082
+:10C03000C4F80760D5F80B60C4F80B60D5F80F6042
+:10C04000C4F80F60D5F88360C4F88360D5F88760C2
+:10C05000C4F88760D5F88B60C4F88B60D5F88F5032
+:10C06000C4F88F50851800EB0C0402EB420295F8DF
+:10C0700003610CEB4C0C00EB420284F8036100EB13
+:10C080004C0CD2F80B61CCF80B61B2F80F21ACF874
+:10C090000F2195F83B2184F83B2100EBC10292F877
+:10C0A0005A2112F0010F33D190F802C00022BCF1E6
+:10C0B000000F0BD9841894F803518D4202D1102A35
+:10C0C00026D103E0521CD2B29445F3D80278521E16
+:10C0D000D2B202708A421BD000EBC20200EBC10C4C
+:10C0E000D2F85341CCF85341D2F85721CCF857211C
+:10C0F000847890F800C00022002C09D9851895F8A2
+:10C100000351654512D1102A1CBF024482F8031165
+:10C11000591E4BB2002BBFF675AF70BC70470000C4
+:10C12000100F00206C01002060010020521CD2B2D0
+:10C130009442E3D8ECE7FE4948707047FC484078E9
+:10C14000704738B14AF2B811884203D8F84988805C
+:10C150000120704700207047F5488088704710B56F
+:10C1600000F0AFF9102814D0F24A0146002092F8EE
+:10C1700002C0BCF1000F0CD9131893F803318B42A5
+:10C1800003D1102818BF10BD03E0401CC0B2844585
+:10C19000F2D8082010BDE7498A78824286BF01EBB9
+:10C1A0000010833000207047E24B93F802C08445B2
+:10C1B0009CBF00207047184490F8030103EBC000B7
+:10C1C00090F853310B70D0F854111160B0F8580149
+:10C1D000908001207047D74A114491F80321D44937
+:10C1E0000A700268C1F8062080884881704770B5DF
+:10C1F00016460C460546FAF7CEFFFAF796F9CC48F4
+:10C20000407868B1CB48817851B12A19002E0CBF13
+:10C210008330C01CFAF763F9FAF7AAF9012070BD60
+:10C22000002070BD10B5FAF7D1F9002804BFFF2037
+:10C2300010BDBDE81040FAF7EFB9FAF7C7B9BD492C
+:10C240008A7882429CBF00207047084490F803011E
+:10C2500001EBC00090F85A0100F0010070472DE991
+:10C26000F047B44E00273D46307800288CBFDFF8F9
+:10C27000C882BDE8F0870024B078002808D93119B9
+:10C2800091F80321AA4204D0611CCCB2A042F6D896
+:10C290001024A04286BF06EB0410C01C002006EB51
+:10C2A000C50999F85A1111F0010F16D050B1102C90
+:10C2B00004D0311991F83B11012903D0102100F06D
+:10C2C000AAFD50B108F8074038467B1C99F8532165
+:10C2D00009F5AA71DFB2FAF7D6FB681CC5B230784F
+:10C2E000A842C8D8BDE8F0872DE9F041914C00265E
+:10C2F0003546A07800288CBF8F4FBDE8F0816119CA
+:10C30000C0B291F80381A84286BF04EB0510C01C9F
+:10C31000002091F83B11012903D0102100F07BFD92
+:10C3200058B104EBC800BD5590F8532100F5AA712F
+:10C330003046731CDEB2FAF7A6FB681CC5B2A078C3
+:10C34000A842DCD8BDE8F08101447A4810B500EB82
+:10C3500002100A4601218330FAF7C1F8BDE8104007
+:10C36000FAF706B90A46724910B5497841B1714BDE
+:10C37000997829B10244D81CFAF7B1F8012010BD10
+:10C38000002010BD6B4A01EB410102EB4101026844
+:10C39000C1F80B218088A1F80F0170472DE9F04109
+:10C3A000644D07460024A878002898BFBDE8F081B6
+:10C3B000C0B2A04217D905EB041010F1830612D0C9
+:10C3C0001021304600F027FD68B904EB440005EB6E
+:10C3D000400808F20B113A463046FBF72CFCB8F83F
+:10C3E0000F01A8F80F01601CC4B2A878A042DFD8E2
+:10C3F000BDE8F08101461022504800F02FBD4F48A3
+:10C4000070474C498A78824203D90A1892F843212E
+:10C410000AB10020704700EB400001EB400000F241
+:10C420000B10704743498A78824206D9084490F835
+:10C430003B01002804BF01207047002070472DE910
+:10C44000F0410E46074615460621304600F0E3FC53
+:10C45000384C98B1A17871B104F59D7011F0010FBD
+:10C4600018BF00F8015FA178490804D0457000F8B2
+:10C47000025F491EFAD10120BDE8F08138463146FD
+:10C4800000F01FF8102819D0A3780021002B15D92F
+:10C49000621892F8032182420BD1102918BF082993
+:10C4A0000CD004EB010080F83B514FF00100BDE8D7
+:10C4B000F08101F10101C9B28B42E9D80020BDE849
+:10C4C000F0812DE9F0411B4D0646002428780F46E7
+:10C4D000002811D905EBC40090F85311B14206D1E0
+:10C4E0000622394600F5AA7009F01CF838B1601C24
+:10C4F000C4B22878A042EDD81020BDE8F0812046D3
+:10C50000BDE8F0810B4910B44A7801EBC003521E1C
+:10C510004A70002283F85A2191F802C0BCF1000F42
+:10C5200016D98B1893F8034184420DD1102A07E0E5
+:10C5300060010020100F00206C010020E31000209B
+:10C540001CBF10BC704703E0521CD2B29445E8D81F
+:10C550000A78521ED2B20A7082421BD001EBC2028C
+:10C5600001EBC003D2F853C1C3F853C1D2F857212D
+:10C57000C3F857218C7891F800C00022002C09D90B
+:10C580008B1893F80331634506D1102A1CBF114460
+:10C5900081F8030110BC7047521CD2B29442EFD80C
+:10C5A00010BC704770B449490D188A78521ED3B236
+:10C5B0008B7095F8032198423DD001EB001401EBFC
+:10C5C000031C00EB4000DCF80360C4F80360DCF8F7
+:10C5D0000760C4F80760DCF80B60C4F80B60DCF897
+:10C5E0000F60C4F80F60DCF88360C4F88360DCF887
+:10C5F0008760C4F88760DCF88B60C4F88B60DCF877
+:10C600008FC0C4F88FC001EB030C03EB43039CF80D
+:10C61000034101EB430385F8034101EB4000D3F8EC
+:10C620000B41C0F80B41B3F80F31A0F80F319CF863
+:10C630003B0185F83B0101EBC20090F85A0110F074
+:10C64000010F1CBF70BC704700208C78002C0DD9E6
+:10C650000B1893F803C1944504D110281CBF70BC7B
+:10C66000704703E0401CC0B28442F1D80878401EF5
+:10C67000C0B20870904204BF70BC704701EBC203A7
+:10C6800001EBC000D0F853C1C3F853C1D0F8570133
+:10C69000C3F857018C780B780020002C9CBF70BC2D
+:10C6A000704700BF01EB000C9CF803C19C4506D10C
+:10C6B00010281CBF084480F8032170BC7047401C40
+:10C6C000C0B28442EED870BC70470000100F00204A
+:10C6D00010B50A7B02F01F020A73002202768B1843
+:10C6E00093F808C00CF001034FEA5C0C0CF0010455
+:10C6F00023444FEA5C0C0CF0010423444FEA5C0C29
+:10C700000CF001041C444FEA5C0303F0010CA44448
+:10C710005B0803F00104A4445B0803F00104A44493
+:10C720000CEB530300EB020C521C8CF8133090F806
+:10C7300018C0D2B263440376052AD0D3D8B22528D4
+:10C7400088BFFFDF10BD0023C383428401EBC20218
+:10C75000521EB2FBF1F10184704770B5002504460A
+:10C7600003290DD04FF4FA4200297FD001297CD053
+:10C77000022918BF70BD0146BDE870405830A7E7D8
+:10C7800004F158068021304608F099FFB571F57123
+:10C7900035737573F573357475717576B5762120BB
+:10C7A00086F83E00492086F83F00FE2086F8740097
+:10C7B00084F82C502584012084F8540084F8550016
+:10C7C000282184F856101B21218761874FF4A4711A
+:10C7D000E187A1871B21218661864FF4A471E18640
+:10C7E000A1861B21A4F84010A4F844104FF4A471B2
+:10C7F000A4F84610A4F842101B21A4F84A10A4F88B
+:10C800004C10A4F8481060734FF448606080A4F89E
+:10C81000D850A4F8DA50A4F8DC50A4F8DE50A4F8FC
+:10C82000E050A4F8E25084F8E55084F8E750A4F80A
+:10C83000EE5084F8EC50A4F80051A4F8025184F8AA
+:10C84000A25184F8A35184F8AC5184F8AD5184F816
+:10C85000705184F8785184F87B5184F89451C4F86D
+:10C860008C51C4F8905170BD00E041E0A4F8EE5046
+:10C8700084F8E6506088FE490144B1FBF0F1A4F869
+:10C8800078104BF68031A4F87A10E388A4F87E5033
+:10C89000B4F882C0DB000CFB00FCB3FBF0F39CFBA4
+:10C8A000F0FC5B1CA4F882C09BB203FB00FC04F10B
+:10C8B0005801A4F88030BCF5C84FC4BF5B1E0B857F
+:10C8C000B2FBF0F2521CCA8500F5802202F5EE326E
+:10C8D000531EB3FBF0F20A84CB8B03FB00F2B2FBD6
+:10C8E000F0F0C883214604F15800BDE87040EFE63F
+:10C8F000B4F89C11B4F8A031B4F802C004F15800A7
+:10C90000A4F87E50B4F88240DB0004FB0CF4B3FBC7
+:10C91000F1F394FBF1F45B1C44859BB203FB01F43F
+:10C920000385B4F5C84FC4BF5B1E0385B2FBF1F2AB
+:10C93000521CC285428C01EBC202521EB2FBF1F2C4
+:10C940000284C28B02FB0CF2B2FBF1F1C18370BD19
+:10C9500070B50025044603290DD04FF4FA42002992
+:10C9600063D001297ED0022918BF70BD0146BDE801
+:10C9700070405830ACE604F158068021304608F08B
+:10C980009EFEB571F57135737573F57335747571F8
+:10C990007576B576212086F83E00492086F83F005E
+:10C9A000FE2086F8740084F82C502584012084F839
+:10C9B000540084F85500282184F856101B21218743
+:10C9C00061874FF4A471E187A1871B2121866186CD
+:10C9D0004FF4A471E186A1861B21A4F84010A4F8AD
+:10C9E00044104FF4A471A4F84610A4F842101B217F
+:10C9F000A4F84A10A4F84C10A4F848106073A4F8E6
+:10CA0000E050202084F8E20084F8D850C4F8DC50CC
+:10CA100084F80C5184F80D5184F8165184F817519C
+:10CA200084F8FC5084F8085170BD60889049014436
+:10CA3000B1FBF0F1A4F878104BF68031A4F87A102D
+:10CA4000E388A4F87E50B4F882C0DB000CFB00FC45
+:10CA50009CFBF0FCB3FBF0F304F15801A4F882C096
+:10CA60005B1C00E021E09BB203FB00FCA4F88030DB
+:10CA7000BCF5C84FC4BF5B1E0B85B2FBF0F2521C65
+:10CA8000CA8500F5802202F5EE32531EB3FBF0F2A8
+:10CA90000A84CB8B03FB00F2B2FBF0F0C883214683
+:10CAA00004F15800BDE8704012E6D4F80031B4F843
+:10CAB00002C004F158005989DB89A4F87E50B4F80B
+:10CAC0008240DB0004FB0CF4B3FBF1F394FBF1F4C4
+:10CAD0005B1C44859BB203FB01F40385B4F5C84F8E
+:10CAE000C4BF5B1E0385B2FBF1F2521CC285428CAF
+:10CAF00001EBC202521EB2FBF1F20284C28B02FBB6
+:10CB00000CF2B2FBF1F1C18370BD2DE9F003047E9C
+:10CB10000CB1252C03D9BDE8F00312207047002A80
+:10CB200002BF0020BDE8F003704791F80DC01F263A
+:10CB30000123504D4FF00008BCF1000F74D0BCF140
+:10CB4000010F1EBF1F20BDE8F0037047B0F800C002
+:10CB50000A7C8F7B91F80F907A404F7C87EA090717
+:10CB600042EA072282EA0C0C5FF000070CF0FF0992
+:10CB70004FEA1C2C99FAA9F99CFAACFC4FEA196906
+:10CB80004FEA1C6C49EA0C2C0CEB0C1C7F1C9444E7
+:10CB9000FFB21FFA8CFC032FE8D38CEA020C354F4E
+:10CBA0000022ECFB057212096FF0240502FB05C29E
+:10CBB000D2B201EBD207427602F007053F7A03FAC0
+:10CBC00005F52F4218BF82767ED104FB0CF2120CC1
+:10CBD000521CD2B25FF0000400EB040C9CF813C0AE
+:10CBE00094453CBFA2EB0C02D2B212D30D194FF008
+:10CBF000000C2D7A03FA0CF73D421CBF521ED2B234
+:10CC0000002A71D00CF1010C0CF0FF0CBCF1080FE4
+:10CC1000F0D304F1010C0CF0FF04052CDCD33046FA
+:10CC2000BDE8F0037047FFE790F819C00C7E474657
+:10CC300004FB02C20F4C4FF0000CE2FB054C4FEA24
+:10CC40001C1C6FF024040CFB0422D2B201EBD204B2
+:10CC5000427602F0070C247A03FA0CFC14EA0C0F5B
+:10CC60001FBF82764046BDE8F003704704E0000035
+:10CC7000FFDB050053E4B36E90F818C0B2FBFCF480
+:10CC80000CFB1422521CD2B25FF0000400EB040C27
+:10CC90009CF813C094453CBFA2EB0C02D2B212D355
+:10CCA0000D194FF0000C2D7A03FA0CF815EA080F55
+:10CCB0001CBF521ED2B27AB10CF1010C0CF0FF0C69
+:10CCC000BCF1080FF0D300E011E004F1010C0CF00E
+:10CCD000FF04052CDAD3A2E70CEBC40181763846B9
+:10CCE000BDE8F0037047FFE70CEBC40181764046D6
+:10CCF000BDE8F0037047FD4A016812681140FC4A24
+:10CD0000126811430160704730B4FA49F74B0024B0
+:10CD10004FF0010C0A78521CD2B20A70202A08BFC8
+:10CD20000C700D781A680CFA05F52A42F2D00978D1
+:10CD300002680CFA01F15140016030BC704770B4D8
+:10CD40006FF01F02010C02EA90251F23A1F5AA40F3
+:10CD500054381CBFA1F5AA40B0F1550009D0A1F587
+:10CD60002850AA381EBFA1F52A40B0F1AA00012020
+:10CD700000D100204FF0000C624664468CEA0106A8
+:10CD8000F6431643B6F1FF3F11D005F001064FEA16
+:10CD90005C0C4CEAC63C03F0010652086D085B08C7
+:10CDA000641C42EAC632162CE8D370BC704770BCD3
+:10CDB00000207047017931F01F0113BF00200022CD
+:10CDC0001146704710B4435C491C03F0010C5B082A
+:10CDD00003F00104A4445B0803F00104A4445B08CD
+:10CDE00003F00104A4445B0803F00104A4445B08BD
+:10CDF00003F001045B08A44403F00104A4440CEB19
+:10CE000053031A44D2B20529DDDB012A8CBF01206D
+:10CE1000002010BC704730B40022A1F1010CBCF11D
+:10CE2000000F11DD431E11F0010F08BF13F8012F91
+:10CE30005C785FEA6C0C07D013F8025F22435C78E1
+:10CE40002A43BCF1010CF7D1491E5CBF405C024390
+:10CE5000002A0CBF0120002030BC7047002A08BF08
+:10CE600070471144401E12F0010F03D011F8013D2C
+:10CE700000F8013F520808BF704700BF11F8013C9D
+:10CE8000437011F8023D00F8023F521EF6D1704780
+:10CE900070B58CB000F110041D4616460DF1FF3C34
+:10CEA0005FF0080014F8012C8CF8012014F8022D12
+:10CEB0000CF8022F401EF5D101F1100C6C460DF15B
+:10CEC0000F0108201CF8012C4A701CF8022D01F8F3
+:10CED000022F401EF6D1204607F0FAF97EB16A1EF5
+:10CEE00004F130005FF0080110F8013C537010F8B5
+:10CEF000023D02F8023F491EF6D10CB070BD089801
+:10CF00002860099868600A98A8600B98E8600CB0DF
+:10CF100070BD38B505460C466846FAF760F900283A
+:10CF200008BF38BD9DF900202272A07E607294F97E
+:10CF30000A100020511A48BF494295F82D308B4203
+:10CF4000C8BF38BDFF2B08BF38BDE17A491CC9B244
+:10CF5000E17295F82E30994203D8A17A7F2918BF43
+:10CF600038BDA2720020E072012038BD0C2818BF25
+:10CF70000B2810D00D2818BF1F280CD0202818BF50
+:10CF8000212808D0222818BF232804D024281EBF17
+:10CF90002628002070474FF0010070470C2963D20B
+:10CFA000DFE801F006090E13161B323C415C484EC7
+:10CFB000002A5BD058E0072A18BF082A56D053E051
+:10CFC0000C2A18BF0B2A51D04EE00D2A4ED04BE050
+:10CFD000A2F10F000C2849D946E023B1A2F11000BC
+:10CFE0000B2843D940E0122A18BF112A3ED090F8EE
+:10CFF000360020B1122A37D31A2A37D934E0162A3C
+:10D0000032D31A2A32D92FE0A2F10F0103292DD9E8
+:10D0100090F8360008B31B2A28D925E0002B08BF5A
+:10D02000042A21D122E013B1062A1FD01CE0012AD4
+:10D030001AD11BE01C2A1CBF1D2A1E2A16D013E081
+:10D040001F2A18BF202A11D0212A18BF222A0DD04A
+:10D05000232A1CBF242A262A08D005E013B10E2A51
+:10D0600004D001E0052A01D000207047012070475C
+:10D070002DE9F0410D4604468668F7F7CCFF58B914
+:10D08000F7F7FAFD40F23471F7F7F7FAA06020469F
+:10D09000F7F7C1FF0028F3D095B13046A168F8F743
+:10D0A00004FB00280CDD2844401EB0FBF5F707FB0D
+:10D0B00005F13046F7F7E1FAA0603846BDE8F081A7
+:10D0C0000020BDE8F08170B50446904228BF70BDD5
+:10D0D000101B642810D325188D4205D8F8F719FBCA
+:10D0E00000281CBF284670BD204670BD785C020039
+:10D0F0007C5C0200740100206420ECE710B4B1F8FD
+:10D1000002C0A0F840C0B1F806C0A0F844C0B1F811
+:10D1100004C090F85440098914F00C0F15D000BFDA
+:10D12000BCF5296F98BF4FF4296C90F8554014F066
+:10D130000C0F11D0B1F5296F98BF4FF42961A0F8F9
+:10D1400042C0A0F8461010BC7047002B1CBF1478DA
+:10D1500014F00C0FE4D1E8E7002B1CBF527812F05A
+:10D160000C0FE7D1EBE711F00C0F13D001F0040125
+:10D1700000290DBF4022102296214FF4167101F5AF
+:10D18000BC71A0EB010388428CBF93FBF2F000203E
+:10D1900080B27047022919BF6FF00D0101EBD0007A
+:10D1A0006FF00E0101EB9000F2E7C08E11F00C0F52
+:10D1B00008BF7047B0F5296F38BF4FF4296070473A
+:10D1C0000246808E11F00C0F08BF704792F8553060
+:10D1D000D18E13F00C0F04D0B1F5296F38BF4FF486
+:10D1E0002961538840F2E24C03FB0CF3528E4FF45A
+:10D1F000747C0CEB821C8C459CBF910101F5747111
+:10D20000591AA1F59671884228BF0846B0F5296FD2
+:10D2100038BF4FF429607047084418449830002AFA
+:10D2200014BF0421002108447047F0B4002A14BF41
+:10D2300008220122002B14BF0824012412F00C0F35
+:10D240008B8ECA8E25D091F85550944615F00C0F50
+:10D2500004D0BCF5296F38BF4FF4296C4D8840F2DB
+:10D26000E2466E434D8E4FF4747707EB85176745A2
+:10D270009CBF4FEA851C0CF5747CA6EB0C0CACF53E
+:10D28000967C634528BF6346B3F5296F38BF4FF4DA
+:10D29000296314F00C0F04D0B2F5296F38BF4FF496
+:10D2A00029621FFA83FC00280CBF0123002391F898
+:10D2B000560014F00C0F08BF00200CEB02010844CC
+:10D2C0009830002B14BF042100210844F0BC7047A3
+:10D2D0002DE9F00391F854200B8E12F00C0F4FF44F
+:10D2E00074771CBF07EB83139CB255D012F00C0F60
+:10D2F0008B8ECA8E4D8E91F855C021D016461CF0EB
+:10D300000C0F04D0B6F5296F38BF4FF42966B1F879
+:10D31000028040F2E24908FB09F807EB8519B145A4
+:10D3200002D8AE0106F57476A8EB0606A6F5967649
+:10D33000B34228BF3346B3F5296F38BF4FF4296392
+:10D34000A34228BF23469CB21CF00C0F1CBF07EB66
+:10D3500085139BB228D000BF1CF00C0F04D0B2F58F
+:10D36000296F38BF4FF429629A4228BF1A46002815
+:10D370000CBF0123002391F856001CF00C0F08BFCE
+:10D380000020A11808449830002B14BF042100216C
+:10D390000844BDE8F0037047022A07BF9B003C33F6
+:10D3A000DB0070339CB2A1E7BCF1020F07BFAB00FA
+:10D3B0003C33EB0070339BB2CEE710F0010F1CBF83
+:10D3C0000120704710F0020F1CBF0220704710F0C0
+:10D3D000040018BF082070472DE9F047044617469F
+:10D3E00089464FF00108084600F0C5FC054648464E
+:10D3F00000F0C5FC10F0010F18BF012625D000BFBA
+:10D4000015F0010F18BF01232AD000BF56EA03010F
+:10D4100008BF4FF0000810F0070F08BF002615F0F6
+:10D42000070F08BF002394F85400B0420CBF00203F
+:10D430003046387094F85510994208BF00237B702D
+:10D44000002808BF002B25D115E010F0020F18BFEF
+:10D450000226D5D110F0040F14BF08260026CFE70E
+:10D4600015F0020F18BF0223D0D115F0040F14BF1E
+:10D4700008230023CAE7484600F087FCB4F8581098
+:10D48000401A00B247F6FE71884201DC002801DC38
+:10D490004FF0000816B1082E0CD018E094F8540094
+:10D4A000012818BF022812D004281EBF0828FFDF59
+:10D4B000032D0CD194F8AC0148B1B4F8B0010128A7
+:10D4C00094F8540006D0082801D00820387040464F
+:10D4D000BDE8F087042818BF0420F7D1F5E701283C
+:10D4E00014BF0228704710F00C0018BF04207047CA
+:10D4F00038B4CBB2C1F3072CC1B2C0F30724012B5F
+:10D5000007D0022B09D0042B08BFBCF1040F2DD08B
+:10D5100006E0BCF1010F03D128E0BCF1020F25D0D9
+:10D52000012906D0022907D0042908BF042C1DD0E8
+:10D5300004E0012C02D119E0022C17D001EA0C0101
+:10D5400061F3070204EA030161F30F22D1B211F083
+:10D55000020F18BF022310D0C2F307218DF800304C
+:10D5600011F0020F18BF02211BD111E0214003EA84
+:10D570000C03194061F30702E6E711F0010F18BF31
+:10D580000123E9D111F0040F14BF08230023E3E7BE
+:10D5900011F0010F18BF012103D111F0040118BFD0
+:10D5A00008218DF80110082B01BF000C0128042070
+:10D5B0008DF80000BDF8000038BC70474FF0000C3B
+:10D5C000082902D0042909D011E001280FD1042034
+:10D5D000907082F803C0138001207047012806D0A4
+:10D5E0000820907082F803C013800120704700204B
+:10D5F0007047162A10D12A220C2818BF0D280FD0E8
+:10D600004FF0230C1F280DD031B10878012818BF26
+:10D61000002805D0162805D000207047012070474B
+:10D620001A70FBE783F800C0F8E7012908D0022947
+:10D630000BD0042912BF082940F6A660704707E006
+:10D64000002804BF40F2E240704740F6C410704723
+:10D6500000B5FFDF40F2E24000BD000040787047B7
+:10D6600030B50546007801F00F0220F00F0010439E
+:10D670002870092912D2DFE801F00507050705091E
+:10D68000050B0F0006240BE00C2409E0222407E020
+:10D6900001240020E87003E00E2401E00024FFDFF5
+:10D6A0006C7030BD007800F00F0070470A68C0F859
+:10D6B00003208988A0F807107047D0F803200A607B
+:10D6C000B0F80700888070470A68C0F80920898888
+:10D6D000A0F80D107047D0F809200A60B0F80D00CE
+:10D6E000888070470278402322F0400203EA8111CB
+:10D6F0001143017070470078C0F3801070470278C2
+:10D70000802322F0800203EAC111114301707047A7
+:10D710000078C009704770B514460E4605461F2AAA
+:10D7200088BFFFDF2246314605F1090007F026FFDA
+:10D73000A01D687070BD70B544780E460546062C75
+:10D7400038BFFFDFA01F84B21F2C88BF1F242246D2
+:10D7500005F10901304607F011FF204670BD70B594
+:10D7600014460E4605461F2A88BFFFDF2246314673
+:10D7700005F1090007F002FFA01D687070BD09687F
+:10D78000C0F80F1070470A88A0F8132089784175F7
+:10D79000704790F8242001F01F0122F01F0211436E
+:10D7A00080F824107047072988BF072190F82420AB
+:10D7B000E02322F0E00203EA4111114380F8241033
+:10D7C00070471F3008F08FB810B5044600F009FB11
+:10D7D000002818BF204410BDC17811F03F0F1BBFB7
+:10D7E000027912F0010F0022012211F03F0F1BBF3E
+:10D7F000037913F0020F002301231A4402EB4202C3
+:10D80000530011F03F0F1BBF027912F0080F0022E6
+:10D81000012203EB420311F03F0F1BBF027912F00C
+:10D82000040F00220122134411F03F0F1BBF0279A5
+:10D8300012F0200F0022012202EBC20203EB42038E
+:10D8400011F03F0F1BBF027912F0100F00220122CE
+:10D8500002EB42021A4411F03F0F1BBF007910F097
+:10D86000400F00200120104410F0FF0014BF0121E0
+:10D8700000210844C0B2704770B50278417802F0C8
+:10D880000F02082A4DD2DFE802F004080B4C4C4C82
+:10D890000F14881F1F280AD943E00C2907D040E045
+:10D8A000881F1F2803D93CE0881F1F2839D8012072
+:10D8B00070BD4A1EFE2A34D88446C07800258209ED
+:10D8C000032A09D000F03F04601C884204D8604657
+:10D8D000FFF782FFA04201D9284670BD9CF80300E3
+:10D8E0004FF0010610F03F0F1EBF1CF1040000783E
+:10D8F00010F0100F13D064460421604600F071FA56
+:10D90000002818BF14EB0000E6D0017801F03F01B9
+:10D910002529E1D280780221B1EB501FDCD33046BB
+:10D9200070BD002070BD70B50178012501F00F01B8
+:10D93000002404290AD007290DD008291CBF002083
+:10D9400070BD40780E2836D0204670BD4078801FCC
+:10D950001F2830D9F8E7844640789CF803108A09DC
+:10D96000032AF1D001F03F06711C8142ECD86046D9
+:10D97000FFF732FFB042E7D89CF8030010F03F0FEA
+:10D980001EBF1CF10400007810F0100F13D0664683
+:10D990000421604600F025FA002818BF16EB0000AD
+:10D9A000D2D0017801F03F012529CDD28078022123
+:10D9B000B1EB501FC8D3284670BD10B4017801F0F8
+:10D9C0000F01032920D0052921D14478B0F819107E
+:10D9D000B0F81BC0B0F81730827D222C17D1062971
+:10D9E00015D3B1F5486F98BFBCF5FA7F0FD272B16D
+:10D9F000082A98BF8A420AD28B429CBFB0F81D0009
+:10DA0000B0F5486F03D805E040780C2802D010BC70
+:10DA10000020704710BC012070472DE9F0411F46DF
+:10DA200014460D00064608BFFFDF2146304600F0D1
+:10DA3000D8F9040008BFFFDF30193A462946BDE88F
+:10DA4000F04107F09BBDC07800F03F007047C02256
+:10DA500002EA8111C27802F03F021143C17070479F
+:10DA6000C07880097047C9B201F00102C1F34003D8
+:10DA70001A4402EB4202C1F3800303EB4202C1F3FA
+:10DA8000C00302EB4302C1F3001303EB43031A4448
+:10DA9000C1F3401303EBC30302EB4302C1F3801352
+:10DAA0001A4412F0FF0202D0521CD2B20171C378A4
+:10DAB00002F03F0103F0C0031943C170511C4170D3
+:10DAC00070472DE9F0410546C078164600F03F0446
+:10DAD0001019401C0F46FF2888BFFFDF2819324667
+:10DAE0003946001D07F04AFDA019401C6870BDE8CA
+:10DAF000F081C178407801F03F01401A401E80B2A9
+:10DB0000704710B590F803C00B460CF03F01447805
+:10DB10000CF03F0CA4EB0C0CACF1010C1FFA8CF4D4
+:10DB2000944288BF14462BB10844011D2246184672
+:10DB300007F024FD204610BD4078704700B50278FC
+:10DB400001F0030322F003021A430270012914BFFB
+:10DB50000229002104D0032916BFFFDF012100BDE7
+:10DB6000417000BD00B5027801F0030322F003020A
+:10DB70001A430270012914BF0229002104D003298D
+:10DB800016BFFFDF012100BD417000BD007800F02D
+:10DB900003007047417841B1C078192803D2C04AC8
+:10DBA000105C884201D1012070470020704730B5D9
+:10DBB00001240546C17019293CBFB948445C02D311
+:10DBC000FF2918BFFFDF6C7030BD70B515460E46DB
+:10DBD00004461B2A88BFFFDF65702A463146E01CD9
+:10DBE000BDE8704007F0CABCB0F807007047B0F855
+:10DBF00009007047C172090A01737047B0F80B0041
+:10DC0000704730B4B0F80720B0F809C0B0F805305C
+:10DC10000179941F40F67A45AC4298BFBCF5FA7F73
+:10DC20000ED269B1082998BF914209D293429FBF91
+:10DC3000B0F80B00B0F5486F012030BC98BF7047BA
+:10DC4000002030BC7047001D07F04DBE021D084685
+:10DC5000114607F048BEB0F80900704700797047D8
+:10DC60000A68426049688160704742680A6080685B
+:10DC700048607047098881817047808908807047B3
+:10DC80000A68C0F80E204968C0F812107047D0F832
+:10DC90000E200A60D0F81200486070470968C0F88A
+:10DCA00016107047D0F81600086070470A68426086
+:10DCB00049688160704742680A60806848607047C0
+:10DCC0000968C1607047C068086070470079704794
+:10DCD0000A68426049688160704742680A608068EB
+:10DCE000486070470171090A417170478171090AE2
+:10DCF000C17170470172090A417270478172090A45
+:10DD0000C172704780887047C0887047008970472B
+:10DD10004089704701891B2924BF4189B1F5A47F3F
+:10DD200007D381881B2921BFC088B0F5A47F0120BB
+:10DD30007047002070470A684260496881607047F8
+:10DD400042680A60806848607047017911F0070FE7
+:10DD50001BBF407910F0070F0020012070470179A8
+:10DD600011F0070F1BBF407910F0070F00200120B2
+:10DD70007047017170470079704741717047407971
+:10DD800070478171090AC1717047C088704745A208
+:10DD900082B0D2E90012CDE900120179407901F098
+:10DDA000070269461DF80220012A07D800F0070083
+:10DDB000085C01289EBF012002B07047002002B01D
+:10DDC0007047017170470079704741717047407921
+:10DDD000704730B50C460546FB2988BFFFDF6C70E5
+:10DDE00030BDC378024613F03F0008BF70470520DE
+:10DDF000127903F03F0312F0010F36D0002914BF4F
+:10DE00000B20704712F0020F32D0012914BF801D81
+:10DE1000704700BF12F0040F2DD0022914BF401C20
+:10DE2000704700BF12F0080F28D0032914BF801CD0
+:10DE3000704700BF12F0100F23D0042914BFC01C7C
+:10DE4000704700BF12F0200F1ED005291ABF1230F4
+:10DE5000C0B2704712F0400F19D006291ABF401CFB
+:10DE6000C0B27047072918D114E00029CAD114E0C4
+:10DE70000129CFD111E00229D4D10EE00329D9D153
+:10DE80000BE00429DED108E00529E3D105E00629ED
+:10DE9000E8D102E0834288BF70470020704700004D
+:10DEA000805C020000010102010202032DE9F04141
+:10DEB000FC4E0446736893F828000127002528B11A
+:10DEC00093F8A001D8B993F84801C0B193F848017C
+:10DED00098B383F8A071D3F84C113C2269B36570F4
+:10DEE000201D07F04BFB052020702771706890F80B
+:10DEF000A011002918BF80F8485107D034E083F8FA
+:10DF0000A05103F12A014FF48E72E7E71D212A3058
+:10DF100007F0B3FB70687F2180F84510FF2180F87F
+:10DF2000381080F82B1080F83E10818E21F06001AF
+:10DF30002031818680F8285016E0FFE793F8220010
+:10DF4000012814D0187801281BD093F8500101281B
+:10DF50001CBF0020BDE8F081657018202070D3F848
+:10DF60005201606083F850510120BDE8F081657076
+:10DF700007202070586A606083F822500120BDE8B5
+:10DF8000F0816570142020702022991C201D07F05C
+:10DF9000F5FA257271680D7081F85051C248828877
+:10DFA0008284D0F86421527B80F8262080F8227089
+:10DFB000D1F864010088F4F74FFEF4F7F6FAD3E7DE
+:10DFC000B84840680178002914BF80884FF6FF7078
+:10DFD000704770B5B34C0546606890F874112046E0
+:10DFE0000629806803D0FFF73BFDB8B127E0FFF7B3
+:10DFF00037FD10BBA068FFF733FD00BB606890F8E9
+:10E00000A40110F00C0F1AD0A068C17811F03F0FD6
+:10E010001CBF007910F0100F11D00EE0616891F86C
+:10E020007401082809D025B191F83E00FF2806D0D8
+:10E0300003E091F82B00FF2801D0012070BD0020E3
+:10E0400070BDF8B5974C07460E46606890F82810EA
+:10E05000002906BF90F848110029F8BD00F13305EA
+:10E0600020787F2808BFFFDF207828707F2020706D
+:10E07000606890F89A1100F5D470085C012808BF18
+:10E08000012508D0022808BF022504D0042816BFA5
+:10E0900008280325FFDF606880F8365090F8971154
+:10E0A00080F8461090F87411072911D190F8A40156
+:10E0B000012808BF012508D0022808BF022504D086
+:10E0C000042816BF08280325FFDF606880F8375052
+:10E0D000606890F874014FF00005062804D1A0682C
+:10E0E000FFF7BEFC00283CD0606890F87411082946
+:10E0F00004BF90F8A10102280ED04FF00301A068E0
+:10E10000FFF762FB40B141780A09616881F8382065
+:10E110000088C0F30B0048870095A068FFF7C2FA9B
+:10E120006168BDF8005091F83420520962F3461539
+:10E13000ADF80050072818BFFFDF1CD0BDF8000065
+:10E1400000906068BDF8001081860421A068FFF788
+:10E150003BFB00287DD0B0F80100C004C00C79D092
+:10E16000B0E0A068C17811F03F0F1CBF007910F03B
+:10E17000100FB9D1D0E791F87401062816D00728FE
+:10E1800036D0082873D00A2818BFFFDFD6D145F053
+:10E190000A00ADF8000091F83E10FF2914BF0121DC
+:10E1A000002161F38200ADF80000C7E7A068FFF727
+:10E1B00057FC58B1012808BF45F0010046D002289D
+:10E1C00014BFFFDF45F0020040D0B7E7A068C17878
+:10E1D00011F03F0F1CBF007910F0020FAED00120EC
+:10E1E000FFF7F7FE002808BF45F004002ED0A5E792
+:10E1F000A068FFF735FCB0B1012804BF45F001006D
+:10E20000ADF800000FD0022898D145F00200ADF81B
+:10E210000000A168CA7812F03F0F1CBF097911F005
+:10E22000020F21D118E0A068C17811F03F0F1CBF88
+:10E23000007910F0020F05D1606890F83E00FF28C9
+:10E240003FF47CAFBDF8000040F00400ADF80000E2
+:10E2500074E72BE02FE00AE0616891F83E10FF2997
+:10E2600008BF20F00400F1D040F00400EEE791F880
+:10E270003E00FF281CBF45F00400ADF8000091F8F7
+:10E28000A1010228BDF800000CBF40F0080020F0FA
+:10E290000800ADF800000CBF40F0020020F00200C2
+:10E2A000D4E7000078010020F41000206068818E1F
+:10E2B00021F0600105E06068818E21F0600101F1CC
+:10E2C00040018186606890F8741106290DD190F89C
+:10E2D000A40110F00C0F08D0A068C17811F03F0F16
+:10E2E0001CBF007910F0100F10D1A068C17811F098
+:10E2F0003F0F0BD0017911F0400F07D04FF006010E
+:10E30000FFF762FA6168007881F84500606890F86C
+:10E310007401062804D00020FFF75BFE18BB04E060
+:10E32000022F18BF012FF6D1F8BDA068C17811F0F7
+:10E330003F0F33D0017911F0010F2FD0616801F147
+:10E340002C0791F8783101F12B05FF2B0CD03A46C0
+:10E3500029461846FDF728FF002808BFFFDF287868
+:10E3600040F00200287019E0FFF7C5F92870A06896
+:10E37000FFF798F9072804D23946A068FFF79DF9FE
+:10E380000CE0A068FFF78EF9072807D10021A068EC
+:10E39000FFF71AFA016839608088B8800120FFF71A
+:10E3A00018FE80BBA068C17811F03F0F2BD0017917
+:10E3B00011F0020F27D0616801F13F0591F8762135
+:10E3C0006F1E1AB1022E18BF032E08D0FFF76AF98C
+:10E3D00007280AD22946A068FFF77DF912E0D1F894
+:10E3E0005A012860B1F85E010BE0A068FFF75AF906
+:10E3F000072807D10121A068FFF7E6F90168296025
+:10E400008088A8803E70606890F87401062808BF74
+:10E41000F8BD072818BF082802D00A2806D0F8BD82
+:10E42000A068FFF71DFB022808BFF8BD606800F177
+:10E430004705A068FFF75DFB626892F83230C3F1D0
+:10E44000FF01884228BF084605D9918E21F060015E
+:10E4500001F140019186C2B203EB0501A068FFF70C
+:10E4600050FB616891F83220104481F83200F8BD09
+:10E470002DE9F047FB4D06466C6894F8280000280B
+:10E4800018BFBDE8F0871D212A34204607F0F5F8B3
+:10E4900001272770A868FFF705F920B3012827D0C6
+:10E4A00002282AD0062818BFFFDF2BD004F11D0157
+:10E4B000A868FFF740F92072686804F1020904F1C6
+:10E4C000010890F87801FF2821D04A464146FDF71F
+:10E4D0006BFE002808BFFFDF98F8000040F0020044
+:10E4E00088F8000031E0608940F013006081DDE7CA
+:10E4F000608940F015006081DEE7608940F010001F
+:10E500006081D3E7608940F012006081CEE7A8689F
+:10E51000FFF7F1F888F80000A868FFF7C3F80728AC
+:10E5200004D24946A868FFF7C8F80EE0A868FFF7CC
+:10E53000B9F8072809D10021A868FFF745F9016853
+:10E54000C9F800108088A9F80400287804F10908A7
+:10E550007F2808BFFFDF287888F800004FF07F0988
+:10E5600085F80090277300206073FF20A073A17AC4
+:10E5700011F0040F08BF20752DD0686804F115084C
+:10E5800004F1140A90F8761119B1022E18BF032E67
+:10E5900009D0A868FFF786F807280BD24146A8687B
+:10E5A000FFF799F815E0D0F85A11C8F80010B0F844
+:10E5B0005E010CE0A868FFF775F8072809D1012172
+:10E5C000A868FFF701F90168C8F800108088A8F86A
+:10E5D00004008AF8006084F81B90686890F897112E
+:10E5E000217780F82870BDE8F047062003F077BC5B
+:10E5F0002DE9F0419B4C606890F82810FF2500271A
+:10E60000A1B91D212A3007F038F860687F2180F811
+:10E61000451080F8385080F82B5080F83E50818E9D
+:10E6200021F060012031818680F82870606800F553
+:10E63000D47290F89A11895C80F8A411002003F03C
+:10E640005EF818B3F8F7DAFC6068874990F879014A
+:10E650000E5C3046F8F74DFA606880F8976190F8E4
+:10E66000A41111F00C0F0CBF25200F20F8F74CF966
+:10E67000606890F8A4110120F8F7AFFA606890F88C
+:10E680006811032918BF022910D103E0BDE8F04149
+:10E6900001F040B990F89A1100F5D470085C012897
+:10E6A00004D1012211460020F8F7BAFDF8F788FDE1
+:10E6B000606890F8A461012E07BF4FF001080321A4
+:10E6C0004FF000080521A068FDF74CFE616881F855
+:10E6D000760150B1B8F1000F18BF402623D000BF1B
+:10E6E000F7F70FFF3046F8F74CFD6068D0F87C0173
+:10E6F000F8F790FC606890F87811FF291CBF00F2D1
+:10E700009110FDF768FD6068062180F8775180F868
+:10E71000785180F8867180F8857180F8A17180F851
+:10E720007411BDE8F08116F00C0F14BF5526502669
+:10E73000D6E770B54B4C0646606800F5BA752046C2
+:10E74000806841B1D0F80510C5F81D10B0F8090077
+:10E75000A5F8210003E005F11D01FEF7AEFFA0685A
+:10E76000FEF7C9FF85F82400A0680021032E018070
+:10E7700002D0052E04D046E00321FEF771FF42E0EF
+:10E780000521FEF76DFF6068D0F8640100F10E010D
+:10E79000A068FEF7F4FF6068D0F8640100F1120190
+:10E7A000A068FEF7F0FFD4E90110D1F86421527D92
+:10E7B0008275D1F86421D28AC275120A0276D1F824
+:10E7C000642152884276120A8276D1F864219288B6
+:10E7D000C276120A0277D1F86421D2884277120AEF
+:10E7E0008277D1F864110831FEF7EBFF6068D0F84A
+:10E7F0006401017EA068FEF7CCFF606890F8AA1162
+:10E80000A068FEF7D0FF05F11D01A068FEF75CFFD0
+:10E8100095F82410A068FEF772FF606800F5AD75EA
+:10E8200090F8596190F8751191B190F86811032929
+:10E8300006D190F86111002918BF90F87A0101D132
+:10E8400090F87701FDF7DDFD00281CBF0126054685
+:10E850002946A068FEF72AFF3146A068BDE870404F
+:10E86000FEF740BF780100209C5C0200FD4949682A
+:10E8700081F87301704770B5FA4D686890F87411AB
+:10E8800002291FBF90F8741101290C2070BD00F1FE
+:10E8900066014FF00004C0F84C1180F848414FF079
+:10E8A0001D0100F12A0006F0E8FE68687F2180F86B
+:10E8B0004510FF2180F8381080F82B1080F83E10AA
+:10E8C000818E21F060012031818680F8284004701B
+:10E8D00080F8224080F85041012680F8A06190F82D
+:10E8E000760130B1F8F757FCF7F71FFE686880F83B
+:10E8F00076416868072180F8724180F8616180F88C
+:10E90000684180F8794180F8734180F8A14180F82E
+:10E910006011002070BDD34910B58860486800219F
+:10E92000A0F8A51180F8A711012180F87411FFF754
+:10E93000A2FF002818BFFFDF10BD2DE9F041C94D2F
+:10E940000446686890F87401012818BF022804D0B2
+:10E9500003281CBF0C20BDE8F081607A022823D078
+:10E96000F8F714F80220F8F74FFB686890F9730184
+:10E97000F8F7B1F8A868F8F74AFBBB48F8F72AFBA4
+:10E98000BA48F8F7AEF8686890F8591100F5AD701C
+:10E99000F8F759F80F210720F8F771F8686890F830
+:10E9A0006101F0B1FDF7A0FC6868217A00F5D4722E
+:10E9B00080F89A11217A895C80F8A4116168C0F806
+:10E9C0007C112168C0F88011627A6AB1012A23D0D3
+:10E9D0000524022A08BF80F8744175D0032A7FD02D
+:10E9E00087E0FDF73CFCDFE7A14C90F860C1002117
+:10E9F00090F87921521CA4FB02635B08A3EB83030C
+:10EA00001A4480F879212CFA02F212F0010F03D196
+:10EA1000491CC9B20329EBD3002680F8A16190F804
+:10EA20007111002904BF90F87501002848D0F6F74D
+:10EA300023F9044668682146D0F86C01F6F735FEE4
+:10EA4000DFF83082074690FBF8F008FB1070414277
+:10EA50002046F5F712FE6968C1F86C0197FBF8F0E3
+:10EA6000D1F89C211044C1F89C01FDF775FB6A6840
+:10EA7000D2F89C11884223D8C2F89C61C2F86C413C
+:10EA800092F8750100281CBF0120FDF787FC0121C9
+:10EA9000686890F87221002A1CBF90F87121002A42
+:10EAA0000ED090F8592100F5AD73012A04D15A799E
+:10EAB00002F0C002402A09D000F5AD70F9F7F2F873
+:10EAC0006968042081F8740113E009E00124FDF76E
+:10EAD00096FC6968224601F5AD71F9F7ACF8EFE7ED
+:10EAE000002918BFFFDF012000F066FF686880F88A
+:10EAF00074410020BDE8F08170B55A4C606890F810
+:10EB00007411042932D005291CBF0C2070BD90F867
+:10EB1000A1110026002900F2A51190F8A7114FEAD3
+:10EB2000511126D0002908BF012507D0012908BFAF
+:10EB3000022503D0022914BF00250825D0F8800142
+:10EB400000281CBF002000F037FF6068D0F87C016F
+:10EB5000F8F760FA606890F8681102293DD003293F
+:10EB600004BF90F8900101283BD03FE0FFF740FD43
+:10EB700044E0002908BF012507D0012908BF02256C
+:10EB800003D0022914BF00250825D0F880010028F1
+:10EB90001CBF002000F010FF6068D0F87C01F8F77F
+:10EBA00039FA606890F86811022906D0032904BF79
+:10EBB00090F89001012804D008E090F89001022814
+:10EBC00004D12A4601210020F8F72AFB60680721BA
+:10EBD00080F8A45180F885610EE090F89001022839
+:10EBE00004D12A4601210020F8F71AFB60680821A9
+:10EBF00080F8A45180F8856180F87411002070BD00
+:10EC00001849002210F0010F496802D0012281F852
+:10EC1000A82110F0080F03D01144082081F8A801A2
+:10EC2000002070470F49496881F87001704710B59E
+:10EC30000C4C636893F85831022B14BF032B002847
+:10EC40000BD100291ABF0229012000201146FDF72F
+:10EC500086FA08281CBF012010BD606890F8580192
+:10EC6000002809E078010020995C02009F5C020006
+:10EC7000ABAAAAAA40420F0016BF0228002001201A
+:10EC8000BDE81040F8F798BFFE48406890F858017A
+:10EC9000002816BF022800200120F8F78DBFF9498F
+:10ECA000496881F858017047F649496881F872014E
+:10ECB000704770B5F34C616891F85801002816BF91
+:10ECC00002280020012081F8590101F5AD71F8F703
+:10ECD0005DFF606890F85811022916BF03290121D1
+:10ECE000002180F8751190F8592100F5AD734FF0AF
+:10ECF0000005012A04BF5B7913F0C00F0AD000F5AC
+:10ED0000AD73012A04D15A7902F0C002402A01D021
+:10ED1000002200E0012280F87121002A04BF0029AE
+:10ED200070BDC0F89C51F5F7A7FF6168C1F86C0190
+:10ED300091F8750100281CBF0020FDF72FFB00266D
+:10ED4000606890F8721100291ABF90F871110029BB
+:10ED500070BD90F8592100F5AD71012A04D14979AF
+:10ED600001F0C001402906D02946BDE8704000F5F9
+:10ED7000AD70F8F797BFFDF742FB61683246BDE81A
+:10ED8000704001F5AD71F8F756BF70B5BD4D0C463A
+:10ED900000280CBF01230023696881F8613181F8E4
+:10EDA0006A014FF0080081F87A010CD1002C1ABFDB
+:10EDB000022C012000201146FDF7D1F969680828CE
+:10EDC00081F87A0101D0002070BD022C14BF032C01
+:10EDD0001220F8D170BD002818BF112070470328F9
+:10EDE000A84A526808BFC2F8641182F8680100207E
+:10EDF000704710B5A34C606890F8681103291CBFD8
+:10EE0000002180F8841101D0002010BD0123D0F82A
+:10EE100064111A460020FEF708FA6168D1F86421EF
+:10EE2000526A904294BF0120002081F88401EBE7F0
+:10EE30009448416891F86801032804D0012818BF5C
+:10EE4000022807D004E091F86A01012808BF704742
+:10EE50000020704791F86901012814BF03280120A0
+:10EE6000F6D1704770B5F8F780F9F8F75FF9F8F761
+:10EE700037F8F8F7B5F8834C0025606890F876010C
+:10EE800030B1F8F788F9F7F750FB606880F87651F1
+:10EE900060680121A0F8A55180F8A75180F874118D
+:10EEA00080F85051002070BD764810B5406800F5DC
+:10EEB000C47006F0A8F8002010BD72480121406817
+:10EEC00090F86821032A03BF80F85211D0F864211A
+:10EED0001288002218BF80F85221A0F8542180F82F
+:10EEE000501170476749496881F8AA017047017855
+:10EEF000002311F0010F634949680AD04278032AC0
+:10EF000008BFC1F8643181F86821012281F8A82185
+:10EF10001346027812F0040F0CD082784FF0000CE8
+:10EF2000032A08BFC1F864C181F868210B44082294
+:10EF300083F8A821C27881F858210279002A16BFE7
+:10EF4000022A0123002381F8613181F86921427985
+:10EF500081F86021807981F870014FF000007047DE
+:10EF60004848406800F5D27070472DE9F041454CA3
+:10EF700005460E46606890F87401032818BFFFDF4D
+:10EF8000022D1EBF032DFFDFBDE8F0814FF000070B
+:10EF90004FF00105AEB1606890F8371089B1818EED
+:10EFA00021F0600101F14001818690F8282042B9EA
+:10EFB00080F8285011F0080F14BF0720062002F037
+:10EFC0008EFF6068A0F8A57180F8A77180F8745171
+:10EFD000BDE8F08100F09EBC2DE9F047294C0646C3
+:10EFE000894660684FF00108072E90F8617138BFBC
+:10EFF000032533D3082E4FF0000088BFBDE8F0870B
+:10F00000FEF7E7FF002878D1A068C17811F03F0F24
+:10F0100012D0027912F0010F0ED061684FF0050591
+:10F0200091F87621002A18BFB9F1000F16D091F897
+:10F03000A411012909D011E011F03F0F1ABF007986
+:10F0400010F0100F002F58D151E04FF001024FF097
+:10F050000501FDF7CCF8616881F87601A1680878B0
+:10F060002944C0F3801030B1487900F0C000402836
+:10F0700008BF012000D00020616891F876110029B6
+:10F0800002E000007801002018BF002807D0FDF73B
+:10F09000C9F80146606880F8771180F8858160685A
+:10F0A00090F87711FF292BD080F878110846FDF7EA
+:10F0B000C6F840EA0705606890F87721FF2A18BF74
+:10F0C000002D10D0072E0ED3A068C17811F03F0F8D
+:10F0D00009D0017911F0020F05D00B21FDF734F9A9
+:10F0E000606880F886812846BDE8F08705E0FCF777
+:10F0F00072FE002808BFBDE8F0870120BDE8F08758
+:10F10000A36890F8612159191B78C3F3801C00F2A1
+:10F1100077136046FCF7C3FE0546CCE72DE9F041C6
+:10F12000FE4C84B0A068FEF79BFC0126002550B180
+:10F13000022501287ED002287DD0F7F7D1FE04B049
+:10F140000620BDE8F081F7F7CBFE606890F8680113
+:10F15000032800F0C480A068C17811F03F0F05D0EB
+:10F16000027912F0100F18BF012600D10026002EE0
+:10F1700014BF0822012211F03F0F43D0007932EA78
+:10F1800000013FD110F0020F06D00120FEF721FF51
+:10F19000002808BF012000D000208DF800508DF815
+:10F1A00004508DF80850FF27D0B102AA694601A883
+:10F1B00000F051FC606890F859719DF8000000283B
+:10F1C00018BF47F002070BD1A068FEF7A1FA8046EE
+:10F1D0000121A068FEF7F8FA4146F7F73CFC90B130
+:10F1E00066B1012000F0B9FB002878D03946002034
+:10F1F000FEF727FF606880F890516CE039460020E8
+:10F2000000F06CFB6BE0606890F86901032818BFA0
+:10F21000022864D19DF80400002860D09DF8000009
+:10F2200000285CD17EB1012000F097FB002856D069
+:10F23000FE2101E00CE032E00020FEF702FF6068F2
+:10F2400080F8905147E0FE21002000F047FB46E0A7
+:10F25000F7F746FEA0681821C27812F03F0F3ED0A3
+:10F26000027991433BD10421FEF7AEFA616891F82F
+:10F270006821032A01BF8078B5EB501F91F8840103
+:10F2800000282CD04FF0010000F067FB38B3FF21BD
+:10F290000120FEF7D6FE606880F890611BE0F7F76A
+:10F2A0001FFE606890F86801032818D0A068182134
+:10F2B000C27812F03F0F12D0007931EA00000ED16F
+:10F2C000012000F04AFB50B1FF210220FEF7B9FEF9
+:10F2D000606880F8905104B00320BDE8F08104B06C
+:10F2E0000620BDE8F081F0B58C4C074683B060681D
+:10F2F0006D460078002818BFFFDF002661688E7019
+:10F30000D1F8640102888A8042884A8382888A838D
+:10F31000C088C88381F8206047B10121A068FEF74A
+:10F3200053FA0546A0680078C10907E06946A0685D
+:10F33000FEF7C3F9A0680078C0F380116068012768
+:10F3400090F87521002A18BF002904D06A7902F0CC
+:10F35000C002402A26D090F87221002A18BF002946
+:10F3600003D0697911F0C00F1CD000F10E0006F037
+:10F37000B1FA616891F87801FF2819D001F108020B
+:10F38000C91DFCF711FF002808BFFFDF6068C179C5
+:10F3900041F00201C171D0F891114161B0F89511AD
+:10F3A000018310E02968C0F80E10A9884182E0E7C7
+:10F3B000D1F86401427ECA71D0F81A208A60C08BED
+:10F3C00088814E610E8360680770D0F8642190F8E0
+:10F3D000731182F85710D0F864010088F3F73CFCF1
+:10F3E000F3F7D4F803B0F0BD2DE9F0414B4C0546DE
+:10F3F00001276068002690F86811012918BF0229CA
+:10F4000002D0032918BFFFDF55B1A068FEF734FA18
+:10F4100018B9A068FEF787FA10B100F0C6FB2DE01E
+:10F42000606890F874017F25801F062828BFBDE81A
+:10F43000F081DFE800F003191930443E3748F7F750
+:10F44000CEFE002808BF2570F7F7B0FE606890F880
+:10F45000760130B1F7F79FFEF7F767F8606880F83C
+:10F460007661F7F73DFD20E02C48F7F7B8FE00285D
+:10F4700008BF2570F7F79AFE00F07DFB102880F09A
+:10F480004481DFE800F036B9C2C6F7F712CFF6F7CD
+:10F49000F7F7249F386C2148F7F7A1FE002808BF32
+:10F4A0002570F7F783FEF7F71BFDBDE8F041FFF786
+:10F4B0009FB81A48F7F793FE30B9257004E0174853
+:10F4C000F7F78DFE0028F8D0F7F770FE9DE00320D7
+:10F4D00002F015F9002874D000210320FFF729F964
+:10F4E000012211461046F7F79BFE61680C2081F857
+:10F4F0007401BDE8F081606800F5BA75042002F07F
+:10F50000FEF800285DD00E202870012002F0E7FCF4
+:10F51000A06861680078C0F3401001E07801002025
+:10F5200081F8990100210520FFF703F9F749A06848
+:10F530004FF0200CD1F864210378527B23F0200394
+:10F540000CEA42121A430270D1F8640195F8253092
+:10F55000427B1A4042732820D1F864112DE0062026
+:10F5600002F0CDF8002850D0E84D0F2085F8740146
+:10F57000022002F0B4FC6068012190F8A421084642
+:10F58000F7F74EFEA06861680078C0F3401081F87C
+:10F59000990101210520FFF7CCF8D5F864014773E4
+:10F5A000A068017821F020010170F8F720FA002806
+:10F5B00018BFFFDF2820D5F8641181F85600BDE898
+:10F5C000F08122E0052002F09AF8F0B10121032039
+:10F5D000FFF7AFF8F8F70BFA002818BFFFDF6068F5
+:10F5E000012190F8A4210846F7F71AFE61680D2062
+:10F5F00081F87401BDE8F0816068A0F8A56180F829
+:10F60000A76180F87471BDE8F081BDE8F04100F0B9
+:10F6100081B96168032081F87401BDE8F0410820D8
+:10F6200002F05DBC606890F8A711490908BF012588
+:10F6300007D0012908BF022503D0022914BF0025E5
+:10F640000825D0F8800100281CBF002000F0B4F984
+:10F650006068D0F87C01F7F7DDFC606890F868110D
+:10F66000022908D0032904BF90F89001012806D090
+:10F670000AE010E049E090F89001022804D12A46FF
+:10F6800001210020F7F7CCFD6068072180F8A45124
+:10F6900080F8856135E0606890F8A711490908BFD6
+:10F6A000012507D0012908BF022503D0022914BF74
+:10F6B00000250825D0F8800100281CBF002000F09C
+:10F6C0007BF96068D0F87C01F7F7A4FC606890F8DB
+:10F6D0006811022906D0032904BF90F8900101287F
+:10F6E00004D008E090F89001022804D12A460121B4
+:10F6F0000020F7F795FD6068082180F8A45180F894
+:10F70000856180F87411BDE8F081FFDFBDE8F0810C
+:10F7100070B57F4C606890F8743100210C2B38D0A4
+:10F7200001220D2B40D00E2B55D00F2B1CBFFFDF1D
+:10F7300070BD042002F0D3FB606890F8A4110E2085
+:10F74000F7F7E2F8606890F8A40110F00C0F14BF0E
+:10F75000282100219620F7F77BFCF7F731FD606840
+:10F76000052190F8A451A068FCF7FCFD616881F8C0
+:10F77000760148B115F00C0F0CBF50255525F6F752
+:10F78000C0FE2846F7F7FDFC61680B2081F8740184
+:10F7900070BDF7F715FD00219620F7F759FC616859
+:10F7A000092081F8740170BD90F8A411FF20F7F7CB
+:10F7B000ABF8606890F8A40110F00C0F14BF28217A
+:10F7C00000219620F7F744FCF7F7FAFC61680A205D
+:10F7D00081F8740170BDA0F8A51180F8A71180F818
+:10F7E00074210020FFF77FFDBDE87040032002F088
+:10F7F00076BB70B5464C606890F874117F25891F00
+:10F80000062928BF70BDDFE801F017321D033D1146
+:10F810003F48F7F7E4FC002808BF2570F7F7C6FC5F
+:10F82000F7F75EFBBDE87040FEF7E2BE3848F7F739
+:10F83000D6FC60BB25702AE03548F7F7D0FCD8B974
+:10F84000257019E090F8371089B1818E012221F0DE
+:10F8500060014031818690F8283043B980F8282033
+:10F8600011F0080F14BF0720062002F038FB2848CB
+:10F87000F7F7B5FC0028E3D0F7F798FCBDE8704037
+:10F8800000F048B82248F7F7AAFC0028D2D0F7F7D2
+:10F890008DFC6068002100F5C47005F065FBBDE8D3
+:10F8A000704000F037B870B5194C06460D46012976
+:10F8B00008D0606890F8A4213046BDE87040134637
+:10F8C00002F059BBF6F7D6FF61680346304691F85F
+:10F8D000A4212946BDE8704002F04DBB10B5FEF7EB
+:10F8E000B0FB0B48406890F82810002918BF10BDE5
+:10F8F000012280F8282090F8340010F0080F14BF7F
+:10F9000007200620BDE8104002F0E9BAF4100020FC
+:10F910007801002070B5F7F728FCF7F707FCF7F738
+:10F92000DFFAF7F75DFBFE4C0025606890F8760182
+:10F9300030B1F7F730FCF6F7F8FD606880F87651E3
+:10F940006068022180F87411A0F8A55180F8A751D1
+:10F95000BDE87040002002F0C2BA70B5F04D064616
+:10F960000421A868FDF730FF0446686890F8280075
+:10F97000A0B901F0A7FE217811F0800F14BF4FF459
+:10F9800096711E21B4F80120C2F30C0212FB01F1A2
+:10F990000A1AB2F5877F28BF814201D2002070BDCC
+:10F9A00068682188A0F8A511A17880F8A7113046D1
+:10F9B000BDE8704001F0A3BE2DE9F041D84C0746E8
+:10F9C000606800F2A51690F8A701400908BF01255C
+:10F9D00007D0012808BF022503D0022814BF002544
+:10F9E0000825F7F70BFB307800F03F063046F7F7B5
+:10F9F00080F8606880F8976190F8900102280CBF49
+:10FA00004020FF202946F6F77FFF27B12946012035
+:10FA1000F7F763F906E060682A46D0F88011012004
+:10FA2000F7F7A4F9F7F7CCFB0521A068FCF79AFCDF
+:10FA30006168002881F8760108BFBDE8F08115F003
+:10FA40000C0F0CBF50245524F6F75BFD2046BDE893
+:10FA5000F041F7F796BB2DE9F74FB14C00259146E1
+:10FA600060688A4690F8750100280CBF4FF00108C5
+:10FA70004FF00008A0680178CE090121FDF7A4FE2F
+:10FA800036B1407900F0C000402808BF012600D000
+:10FA90000026606890F87611002963D090F868110C
+:10FAA0004FF0000B03291ED190F86111002918BFF7
+:10FAB00090F87A7117D0FF2F18BF082F22D0384640
+:10FAC000FCF730F9002818BF4FF00108002E49D08C
+:10FAD000606890F88601D0B1FCF7AFFB054660681E
+:10FAE00080F886B13EE0A168CA7812F03F0F19BFD6
+:10FAF000097911F0010F90F82B10FF2918BF90F829
+:10FB00007771D8D176B390F8850170B12AE0384684
+:10FB1000FCF741FB05460121A068FDF755FE0146B3
+:10FB20002846F8F757F805461CE0A068C17811F0A0
+:10FB30003F0F05D0017911F0010F18BF0B2101D142
+:10FB40004FF005014FF00002FCF751FB616881F8AE
+:10FB5000760138B1FCF766FBFF2803D06168012508
+:10FB600081F877018AF800500098067089F80080C3
+:10FB700003B0BDE8F08F6A4810B5406890F83710C0
+:10FB800089B1818E012221F060014031818690F897
+:10FB9000283043B980F8282011F0080F14BF07203F
+:10FBA000062002F09CF9022010BD2DE9F04F5C4DBB
+:10FBB00083B00024686890F874017F27801F264670
+:10FBC0004FF00108062880F04082DFE800F00308CB
+:10FBD0000893FEFD00F01EFC044600F037BA5048C2
+:10FBE000F7F7FDFA002808BF2F70F7F7DFFAA868CB
+:10FBF000FDF758FD044607286AD1A868FDF730FFD5
+:10FC0000696891F89021824262D191F874010628C6
+:10FC100004D1A868FDF724FF002836D0686890F862
+:10FC20007411082904BF90F8A101022813D04FF0E5
+:10FC30000301A868FDF7C8FD002849D0696843782A
+:10FC400091F83820B2EB131F42D10088498FC0F3DE
+:10FC50000B0088423CD100212046FFF7BDF9B0B32C
+:10FC60008DF800608DF804608DF80860A868FF24A6
+:10FC7000C17811F03F0F1CBF007910F0020F1CD0AB
+:10FC80000120FEF7A6F950B117E0A868C17811F07D
+:10FC90003F0F1CBF007910F0100FBFD1DBE702AAA5
+:10FCA000694601A8FFF7D7FE686890F859419DF8AA
+:10FCB0000000002818BF44F0020423469DF80820E5
+:10FCC0009DF804109DF8000000F012FA02E0FFE732
+:10FCD000FFF751FF0446686890F87601002800F0AD
+:10FCE000B581F7F758FAF6F720FC686880F8766176
+:10FCF00000F0ACB9A868FDF7D5FC8146A968686832
+:10FD0000CA7890F891319A4224D10A7990F89231C8
+:10FD10009A421FD14A7990F893319A421AD101E060
+:10FD2000780100208A7990F894319A4212D1CA79E8
+:10FD300090F895319A420DD10A7A90F896319A420C
+:10FD400008D1097890F89801C1F38011814208BF69
+:10FD5000012400D00024F7F7C3F8FB48F7F73FFA77
+:10FD6000002808BF2F70F7F721FAB9F1040F76D1F8
+:10FD7000002C74D0686890F8481100296FD190F871
+:10FD8000281021B190F8341011F0100F67D0D0F87E
+:10FD90004C411D21204605F070FC84F80080686805
+:10FDA00004F1020A04F1010990F87801FF2810D04B
+:10FDB00052464946FCF7F8F9002808BFFFDF99F8DA
+:10FDC000000040F0020001E04CE0FFE089F8000094
+:10FDD0001DE0A868FDF78FFC89F80000A868FDF712
+:10FDE00061FC072804D25146A868FDF766FC0EE0C6
+:10FDF000A868FDF757FC072809D10021A868FDF77E
+:10FE0000E3FC0168CAF800108088AAF8040004F135
+:10FE10001D01A868FDF78FFC2072287804F10909FC
+:10FE20007F2808BFFFDF287889F800002F706868F6
+:10FE3000618990F8A12162F3000141F01A0161810A
+:10FE400084F80C806673FF21A1732175E77690F822
+:10FE50009711217780F84881072002F040F80624A6
+:10FE600000F0F4B84FF00208B748F7F7B8F90028E7
+:10FE700008BF2F70F7F79AF9A868FDF713FC04463E
+:10FE8000A868FDF7EDFD082C08BF00287ED1A86802
+:10FE90004FF00301C27812F03F0F77D0007931EABA
+:10FEA000000073D1686800F5BA7790F86101002806
+:10FEB00014BFBE79FE784FF00009B87878B1FCF72E
+:10FEC000B1F90446FF280AD00146A868401DFCF796
+:10FED00082F9B4420CBF4FF001094FF00009002134
+:10FEE000A868FDF771FC062207F11D0105F01AFB59
+:10FEF00040B9A868FDF7FFFB97F82410884208BFB7
+:10FF0000012000D0002059EA00095DD0686800F5A2
+:10FF1000AD7490F859A1787838B13046FCF771FA91
+:10FF200000281CBF04464FF0010A0027A86801788A
+:10FF30004FEAD11B0121FDF747FCBBF1000F07D0B1
+:10FF4000407900F0C000402808BF4FF0010B01D0FD
+:10FF50004FF0000B0121A868FDF736FC0622214670
+:10FF600005F0E0FA30B9A868FDF7D2FB504508BFAC
+:10FF7000012401D04FF000043BEA040018BFFF2E1B
+:10FF80000FD03046FCF707F9060000E01CE008D06F
+:10FF90000121A868FDF718FC01463046F7F71AFE64
+:10FFA000074644EA070019EA000F0DD068680121EE
+:10FFB00000F5C47004F0D8FF4FF001084046FFF789
+:10FFC00092F9052001F08BFF44463FE002245E4891
+:10FFD000F7F705F9002808BF2F70F7F7E7F8A868CA
+:10FFE000FDF760FB0646A868FDF73AFD072E08BF3F
+:10FFF00000282BD1A8684FF00101C27812F03F0F02
+:020000040002F8
+:1000000024D00279914321D1696801F5BA760021A3
+:10001000FDF7DAFB062206F11D0105F083FAA8B907
+:10002000A868FDF768FB96F8241088420ED168682E
+:10003000012100F5C47004F097FFFF21022000F0B9
+:1000400009F8002818BF032400E0FFDF03B02046B2
+:10005000BDE8F08F2DE9F0413B4C02460025606879
+:1000600090F8A1310BB3A0684FF000064FF00107E4
+:10007000C37813F03F0F1CBF007910F0100F1BD096
+:100080000020FDF7DEFF606890F83400C0F34110F7
+:1000900002281BD00220FFF760FC88B160680125B0
+:1000A00080F89061F6F71CFF1FE0002A14BF0223BE
+:1000B000012380F8A131D6E71046FDF7C2FF05E025
+:1000C0006068818E21F0600140318186606890F81F
+:1000D000281051B980F8287090F8340010F0080FFB
+:1000E00014BF0720062001F0FAFE2846BDE8F08183
+:1000F0002DE9F047144C05461F4690460E46A06871
+:10010000FDF7AEFC002800F0D180012805D00228C0
+:1001100000F00E81BDE8F0472DE5A0680921C27806
+:1001200012F03F0F00F042810279914340F03E818E
+:10013000616891F86811032908D012F0020F08BF16
+:10014000FF211BD075B118E0780100200021FDF7D8
+:100150003BFB61680622D1F864111A3105F0E2F91F
+:1001600050BB1EE0FDF7D4FA05460121A068FDF75B
+:100170002BFB2946F6F76FFC18B13946012000F039
+:1001800039B9606890F86901032818BF022840F067
+:100190000D81002E1CBFFE21012040F02B8100F0BC
+:1001A00005B9A068FDF7A7FA6168D1F86411497E26
+:1001B000884208BF012600D00026A068C17811F04F
+:1001C0003F0F05D0017911F0020F01D05DB338E087
+:1001D000616891F86A21012A01D0A6B119E0C6B977
+:1001E0000021FDF7F1FA61680268D1F86411C1F8E5
+:1001F0001A208088C883A068FDF77DFA6168D1F86D
+:100200006411487605E091F8770191F87A118842F7
+:100210004BD1606800F5C47004F0EAFE002844D0B9
+:100220000F20BDE8F087B8F1000F0CD0FDF770FA91
+:1002300005460121A068FDF7C7FA2946F6F70BFC31
+:1002400008B1012200E00022616891F86A010128EA
+:1002500007D040B92EB991F8773191F87A118B42D5
+:1002600001D1012100E000210A421ED0012808BF6F
+:10027000002E13D14FF00001A068FDF7A5FA6168C8
+:100280000268D1F86411C1F81A208088C883A06878
+:10029000FDF731FA6168D1F864114876606800F5BD
+:1002A000C47004F0A5FE0028BAD17FE06068A846BB
+:1002B0004FF0020990F8680103282AD0A068C1789D
+:1002C00011F03F0F1BBF007910F0020F002001203A
+:1002D0004FF0FF05A8B14FF00100FDF77AFE0028AE
+:1002E00004BF3D46B8F1000F0BD1A068FDF710FA2E
+:1002F00007460121A068FDF767FA3946F6F7ABFB20
+:1003000050B129460020FFF7A5FE002818BF4FF086
+:1003100003094846BDE8F087606890F86901032842
+:1003200018BF0228F5D1002E18BFFE25E9D1F0E74D
+:10033000626892F86831032B38D0A0684FF0090C3E
+:10034000C17811F03F0F31D001793CEA010C2DD179
+:10035000022B01F0020105D0002908BFFF2147D080
+:10036000CDB344E009B135B113E002F5C47004F037
+:100370003FFEA0B91AE0B8F1000F1AD0FDF7C8F996
+:1003800005460121A068FDF71FFA2946F6F763FB31
+:1003900078B1606800F5C47004F02AFE30B13946C7
+:1003A0000220FDF74EFE0D20BDE8F0870220BDE8DB
+:1003B000F087606890F86901032818BF0228F5D11A
+:1003C000002EF3D04FF0FE014FF00200FFF786FA47
+:1003D0000220BDE8F087FFE7FDF79AF90546012105
+:1003E000A068FDF7F1F92946F6F735FB28B1394643
+:1003F0005FF00200FFF772FAD8E7606890F86901D1
+:10040000032818BF0228D1D1002E1CBFFE210220D4
+:10041000F0D1CBE72DE9F84F0027D048F6F7DFFE03
+:10042000CE4C002804BF7F202070F6F7BFFEA068E6
+:10043000FDF738F980460121FEF7CEFD61684FF0E7
+:10044000000B91F8A421012A13D0042A1CBF082A0A
+:10045000FFDF00F07781606890F8760130B1F6F741
+:100460009AFEF6F762F8606880F876B13846BDE823
+:10047000F88F0125BA4EB8F1080F19D2DFE808F05D
+:1004800024860418181811FD0546F6F729FD002DDD
+:100490007AD0606890F86801012818BF022858D007
+:1004A00072E028B191F86801022805D0012850D0E7
+:1004B000F6F716FD0627CEE7FF20FDF7D9FF6068A7
+:1004C0000C2780F8A1B1C6E70027002800F02081A2
+:1004D00091F86801022834D001283AD00328BAD113
+:1004E000A068D1F86421C37892F81AC0634521D17D
+:1004F000037992F81BC063451CD1437992F81CC064
+:10050000634517D1837992F81DC0634512D1C37931
+:1005100092F81EC063450DD1037A92F81FC063455F
+:1005200008D1037892F819C0C3F38013634508BF5C
+:10053000012300D0002391F86A1101290DD0D3B115
+:10054000E4E0FF20FDF794FF60680C2780F8A151DC
+:1005500081E7FF20FDF78CFF16E0002B71D102F13F
+:100560001A01FDF7AAF8A068FDF7C5F86168D1F88F
+:1005700064114876CAE096F87A0108287CD096F88B
+:10058000771181425DD0C3E0062764E7054691F804
+:10059000750100280CBF4FF001094FF0000900273A
+:1005A000A06810F8092BD20907D0407900F0C000EC
+:1005B000402808BF4FF0010A01D04FF0000A91F81F
+:1005C0006801032806D191F86101002818BF91F84D
+:1005D0007A0101D191F877010090FBF7DCFD5FEA29
+:1005E00000082AD00098FBF79DFB002818BF4FF0A9
+:1005F0000109BAF1000F20D0A06800F109014046BE
+:10060000F7F7E8FA0700606890F8598118BF48F0DA
+:100610000208606890F86811032913D0F6F760FCAF
+:10062000002DB1D0F6F727FA00280CBF002F404666
+:1006300072D000BFFDF71CFFA6E7606890F85981F3
+:10064000E7E763E0A168D0F86401CA78837E9A4244
+:100650001FD10A79C37E9A421BD14A79037F9A42FD
+:1006600017D18A79437F9A4213D1CA79837F9A42FC
+:100670000FD10A7AC37F01E04AE05BE09A4208D1D9
+:100680000978407EC1F38011814208BF4FF0010814
+:1006900001D04FF0000896F87701082806D096F8A8
+:1006A0007A11884208BF4FF0010A01D04FF0000ACA
+:1006B0002FB9B9F1000F04D0F6F7DDF908B1012028
+:1006C00000E000204DB196F86A11012903D021B94C
+:1006D00058EA0A0101D0012100E00021084217D0A8
+:1006E000606890F86A11012908BFB8F1000F0DD1B8
+:1006F000D0F8640100F11A01A068FCF7DEFFA068E1
+:10070000FCF7F9FF6168D1F8641148760E27A2E67C
+:10071000F6F7E6FB38E7FFE7606890F86901032821
+:1007200018BF02287FF430AFBAF1000F18BFFE20C7
+:1007300080D129E791F87011002918BF00283FF4F3
+:10074000B7AE06E0B8F1070F7FF4B2AE00283FF471
+:10075000AFAEFEF7E3FC07467DE60000780100201F
+:10076000F4100020D0F8E81049B1D0E93B231A4436
+:100770008B691A448A61D0E93912D16003E0F74AE3
+:10078000D0F8E4101162D0E9391009B1086170475E
+:100790000028FCD00021816170472DE9FF4F0646FB
+:1007A0000C46488883B040F2E24148430190E08A19
+:1007B000002500FB01FA94F8640090460D2822D031
+:1007C0000C2820D024281ED094F8650024281AD0A4
+:1007D00000208346069818B10121204603F000F955
+:1007E00094F8541094F85500009094F8D8200F46CF
+:1007F0004FF47A794AB1012A61D0022A44D0032AFF
+:100800005DD0FFDFB5E00120E3E7B8F1000F00D1D4
+:10081000FFDFD24814F8541F243090F83800FCF75A
+:1008200004FF01902078F7F75EF84D4600F2E730BC
+:10083000B0FBF5F1DFF82493D9F80C0001EB0008C8
+:100840002078F7F750F8014614F85409022816D01A
+:10085000012816D040F6340008444AF2EF0108445B
+:10086000B0FBF5F10198D9F81C20411A514402EB74
+:1008700008000D18012084F8D8002D1D78E02846C6
+:10088000EAE74FF4C860E7E7DFF8D092A8F101008B
+:10089000D9F80810014300D1FFDFB148B8F1000FCB
+:1008A000016801EB0A0506D0D9F8080000F22330F0
+:1008B000A84200D9FFDF032084F8D80058E094F85C
+:1008C0006420019D242A05D094F86530242B01D0A2
+:1008D000252A3AD1B4F85820B4F8F830D21A521C6C
+:1008E00012B2002A31DB94F8FA2072B3174694F85A
+:1008F000FB2002B110460090022916D0012916D023
+:1009000040F6340049F608528118022F12D0012F08
+:1009100012D040F634001044814210D9081A00F574
+:10092000FA70B0FBF9F005440FE04846EAE74FF4EF
+:10093000C860E7E74846EEE74FF4C860EBE7401AC7
+:1009400000F5FA70B0FBF9F02D1AB8F1000F0FD0D6
+:10095000DFF80882D8F8080018B9B8F8020000B12A
+:10096000FFDFD8F8080000F22330A84200D9FFDFEB
+:1009700005B9FFDF2946D4F8DC00F3F77EFEC4F8A2
+:10098000DC00B060002030704FF0010886F8048071
+:10099000204603F080F8ABF10101084202D186F84D
+:1009A000058005E094F8D80001282FD0032070714D
+:1009B000606A3946009A01F026FBF060069830EA3A
+:1009C0000B0020D029463046FCF752FB87B2204668
+:1009D00003F061F8B8420FD8074686F8058005FB9A
+:1009E00007F1D4F8DC00F3F748FEB0602946304642
+:1009F000FCF73EFB384487B23946204602F0F0FF50
+:100A0000B068C4F8DC0007B0BDE8F08F0220CEE784
+:100A10002DE9F04106460C46012001F0D6FAC5B298
+:100A20000B2001F0D2FAC0B2854200D0FFDF0025D2
+:100A3000082C7DD2DFE804F00461696965C98E96EF
+:100A4000304601F0D6FA0621F1F7D4FF040000D1B8
+:100A5000FFDF304601F0CDFA2188884200D0FFDF69
+:100A600094F8D80000B9FFDF204602F060FE3B4E4C
+:100A700021460020B5607580F561FCF729FC00F186
+:100A80009807606AB84217D994F85500F6F712FF34
+:100A9000014694F854004FF47A72022828D00128B5
+:100AA00028D040F6340008444AF247310844B0FBED
+:100AB000F2F1606A0844C51B214600203561FCF74D
+:100AC00007FC618840F2E24251439830081AA0F2D4
+:100AD0002330706194F8552094F85410606A01F046
+:100AE00092FAA0F29310B061BDE8F041F4F7AABD0C
+:100AF0001046D8E74FF4C860D5E7BDE8F04102F0F2
+:100B000080BEBDE8F041F6F7A7BB6FF0040001F02E
+:100B10005CFAC4B2192001F058FAC0B2844200D085
+:100B2000FFDF304601F065FA0621F1F763FF00E0D0
+:100B30004BE0040000D1FFDF304601F05AFA218873
+:100B4000884200D0FFDF2046BDE8F04101220021AD
+:100B500001F076BAF6F720FAD3E70000A0120020E1
+:100B600088010020304601F044FA0621F1F742FFE7
+:100B7000040000D1FFDF304601F03BFA21888842B3
+:100B800000D0FFDF94F8D800042800D0FFDF84F8FD
+:100B9000D85094F8E2504FF6FF76202D00D3FFDFB7
+:100BA000FB4820F8156094F8E200F4F746F800B925
+:100BB000FFDF202084F8E2002046FFF7D3FDF54850
+:100BC0000078BDE8F041E2F7A7B9FFDFBDE8F081AA
+:100BD00070B5EF4C0025483C84F82C50E07868B1A3
+:100BE000E570FEF76AF92078042803D0A06AFFF7C1
+:100BF000B9FDA562E7480078E2F78EF9BDE87040DC
+:100C000001F02FBA70B5E24C0146483C206AF4F777
+:100C10004CFD6568A27890FBF5F172B140F271224B
+:100C2000B5FBF2F292B2E36B01FB02F6B34202D9DA
+:100C300001FB123200E00022E2634D43002800DA9B
+:100C4000FFDF2946206AF3F718FD206270BD2DE909
+:100C5000F05FFEF785F98246CD486C3800F1240834
+:100C600081684646D8F81C00F3F707FD0146306A54
+:100C7000F4F71BFD4FF00009074686F839903C4613
+:100C80004FF423754E461CE00AEB06000079F6F798
+:100C900011FE4AF2B12101444FF47A70B1FBF0F138
+:100CA00008EB86024046926811448C4207D3641ACE
+:100CB00090F83910A4F52374491C88F83910761C73
+:100CC000F6B298F83A00B042DED8002C0FDD98F862
+:100CD0003910404608EB81018968A14207D241687A
+:100CE000C91BA94200D90D466C4288F8399098F882
+:100CF0003960C3460AEB060898F80400F6F7DAFDF7
+:100D000001464AF2B12001444FF47A7AB1FBFAF27B
+:100D100098F80410082909D0042909D000201318D4
+:100D200004290AD0082908D0252007E0082000E07F
+:100D3000022000EB40002830F1E70F20401D4FF467
+:100D4000A872082913D0042914D0022915D04FF015
+:100D5000080C282210FB0C20184462190BEB8603A8
+:100D600002449868D84682420BD8791925E04FF0A2
+:100D7000400CEFE74FF0100CECE74FF0040C18229A
+:100D8000E8E798F8392098F83A604046B24210D225
+:100D9000521C88F839203C1B986862198418084650
+:100DA000F6F788FD4AF2B1210144B1FBFAF00119CE
+:100DB00003E080F83990D8F80410D8F82000BDE896
+:100DC000F05FF3F75ABC2DE9FE4F14460546FEF7D7
+:100DD000C7F8DFF8BCB10290ABF1480B58469BF85E
+:100DE00039604FF0000A0BEB86018968CBF84010A0
+:100DF000ECB3044600780027042827D0052840D00B
+:100E0000FFDFA0463946A069F3F737FC0746F3F742
+:100E100033FF81463946D8F80440F4F746FC401EBB
+:100E200090FBF4F0C14361433846F3F726FC0146DA
+:100E3000C8F820004846F4F738FC002800DDFFDF42
+:100E4000012088F8140088F813008FE0D4F8189077
+:100E5000D4F8048001F06FF9070010D0387800B999
+:100E6000FFDF796978684A460844414600E00EE0B1
+:100E700001F049F907464045C3D9FFDFC1E75746AE
+:100E8000BFE7A06A01F0FAF840F6B837B9E7016A9F
+:100E90000BEB46000191C08D08B35C46DBF81800EF
+:100EA000FFF7B0FE6168206AF3F7E7FB074684F8B6
+:100EB00039A0019CD8462046DBF81810F4F7F5FB62
+:100EC000814639462046F4F7F0FBD8F80420B9FBF8
+:100ED000F2F3B0FBF2F0834243D0012142E0F3F79A
+:100EE000CBFEFFF78FFEFFF7B2FE9BF83910DBF861
+:100EF00004900BEB81010746896800913946DBF8C5
+:100F00002000F4F7D2FB00248046484504DB98FB20
+:100F1000F9F404FB09F41BE0002059469BF8392042
+:100F200008E000BF01EB800304F523749B68401CBC
+:100F30001C44C0B28242F5D852B10120F6F7BAFC87
+:100F40004AF2B12101444FF47A70B1FBF0F004444D
+:100F50000099A8EB04000C1A00D5FFDFCBF8404045
+:100F6000A7E7002188F8141088F813A09BF8020066
+:100F70005C46B8B13946206AF4F797FB0146E26B4C
+:100F800040F2712042438A4206D2C4F840A009E0F0
+:100F90000C13002084010020206C511A884200D3D9
+:100FA00008462064AF6085F800A001202871029FE8
+:100FB00094F839003F1DC05DF6F77CFC4AF23B51C6
+:100FC00001444FF47A70B1FBF0F0216CFB3008441F
+:100FD000E8602078042808D194F8390004EB400038
+:100FE000C08D0A2801D2032000E00220687104EBC2
+:100FF0004600C08DC0B128466168FCF739F882B25E
+:101000000020761C0CE000BF04EB4003B042D98DF9
+:10101000114489B2D98501D3491CD985401CC0B27D
+:1010200094F83A108142EFD2A868A061E06194F888
+:10103000390004EB4000C18D491CC18594F839008A
+:10104000C05D082803D0042803D000210BE008214C
+:1010500000E0022101EB410128314FF4A872082879
+:1010600004D0042802D0022807D028220A440428E9
+:1010700005D0082803D0252102E01822F6E70F2129
+:10108000491D08280CD004280CD002280CD00820B8
+:1010900011FB0020216C884208D20120BDE8FE8FA0
+:1010A0004020F5E71020F3E70420F1E70020F5E702
+:1010B00070B5FB4C061D14F8392F905DF6F7FAFB5E
+:1010C0004FF47A7100F2E730B0FBF1F0D4F807107A
+:1010D00045182078805DF6F7DBFB2178895D0829CB
+:1010E00003D0042903D000220BE0082200E00222F2
+:1010F00002EB420228324FF4A873082904D00429D5
+:1011000002D0022907D028231344042905D0082936
+:1011100003D0252202E01823F6E70F22521D0829EA
+:101120000AD004290AD002290AD0082112FB013171
+:10113000081A281A293070BD4021F7E71021F5E779
+:101140000421F3E7FEB504460F46012000F03DFF01
+:10115000C5B20B2000F039FFC0B2854200D0FFDFDE
+:1011600001260025CE48082F50D2DFE807F00430D2
+:101170004747434F4F4C0446467406744078002856
+:1011800019D1FDF7EDFE009594F839108DF808108F
+:101190004188C90410D0606C019003208DF80900CB
+:1011A000BF4824388560C56125746846FDF7C5FBD6
+:1011B000002800D0FFDFFEBDFFF77AFF0190207D01
+:1011C00010B18DF80950EBE78DF80960E8E70446A7
+:1011D000407840B1207C08B9FDF744FE6574BDE855
+:1011E000FE40F3F753BCA674FDF786FC0028E2D05E
+:1011F000FFDFFEBDBDE8FE40F6F72EB82046BDE895
+:10120000FE4000F0A1BFBDE8FE40E1E4FFDFFEBD0F
+:10121000A34950B101228A704A6840F27123B2FB9F
+:10122000F3F202EB0010C86370470020887070472B
+:101230002DE9F05F894640F27121994E484300251F
+:101240000446706090462F46D0074AF2B12A4FF408
+:101250007A7B0FD0B9F800004843B0600120F6F760
+:1012600029FB00EB0A01B1FBFBF0241AB76801254A
+:10127000A4F523745FEA087016D539F8151040F20A
+:101280007120414306EB85080820C8F80810F6F7DE
+:1012900011FB00EB0A01B1FBFBF0241AD8F808009F
+:1012A000A4F5237407446D1CA7421AD9002D18D049
+:1012B000391BB1FBF5F0B268101AB1FBF5F205FB72
+:1012C0001212801AB060012009E000BFB1FBF5F3F3
+:1012D00006EB80029468E31A401CC0B29360A842F7
+:1012E000F4D3BDE8F09F2DE9F0416D4C0026207845
+:1012F000042804D02078052801D00C2066E40120C1
+:101300006070607C002538B1EFF3108010F0010FA1
+:1013100072B610D001270FE0FDF722FE074694F8C1
+:101320002400F4F70EF87888C00411D000210320BF
+:10133000FDF71BFE0CE00027607C38B1A07C28B1D3
+:10134000FDF790FD6574A574F3F7A0FB07B962B6CD
+:1013500094F82400F4F743FA94F82C0030B184F8A0
+:101360002C502078052800D0FFDF0C26657000F097
+:1013700078FE30462AE44A4810B5007808B1FFF7F5
+:10138000B2FF00F011FF464900202439086210BD69
+:1013900010B5444C58B1012807D0FFDFA06841F6D2
+:1013A0006A01884200D3FFDF10BD40F6C410A06080
+:1013B000F4E73C4908B508703949002008704870C6
+:1013C00081F82C00C87008744874887420228862E0
+:1013D00081F82420243948704FF6FF7211F16C0116
+:1013E00021F81020401CC0B22028F9D30020FFF7BC
+:1013F000CFFFFFF7C0FF1020ADF8000001226946C3
+:101400000420FFF715FF08BD7FB5254C05460E46A5
+:10141000207810B10C2004B070BD95F8552095F8D7
+:101420005410686A00F002FFC5F8EC00A56295F858
+:10143000D80000B1FFDF1A4900202439C861052116
+:101440002170607084F82C00014604E004EB410236
+:10145000491CD085C9B294F83A208A42F6D284F861
+:1014600039003046FFF7D4FE0F48F3F78AFB84F8C3
+:101470002400202800D1FFDFF3F7FEFBA06194F8E1
+:10148000241001226846FFF79EFC00B9FFDF94F8A4
+:1014900024006946F3F73AFE00B9FFDF0020BAE7FF
+:1014A000C41200208401002045110200F84810B544
+:1014B000007808B1002010BD0620F1F735FA80F061
+:1014C000010010BDF8B5F24D0446287800B1FFDFE9
+:1014D0000020009023780246DE0701466B4605D0C7
+:1014E0006088A188ADF800100122114626787607A1
+:1014F00006D5E088248923F8114042F00802491CEF
+:10150000491E85F83A101946FFF792FE0020F8BDF3
+:101510001FB511B1112004B010BDDD4C217809B107
+:101520000C20F8E70022627004212170114604E0CB
+:1015300004EB4103491CDA85C9B294F83A308B4276
+:10154000F6D284F83920FFF763FED248F3F719FB8F
+:1015500084F82400202800D1FFDF00F0ECFD10B15A
+:10156000F3F78AFB05E0F3F787FB40F6B831F3F7B2
+:1015700084F8A06194F8241001226846FFF723FC48
+:1015800000B9FFDF94F824006946F3F7BFFD00B906
+:10159000FFDF0020BFE770B5BD4CA16A0160FFF717
+:1015A000A2FE050002D1A06AFFF7DCF80020A062CD
+:1015B000284670BD7FB5B64C2178052901D00C2096
+:1015C00029E7B3492439C860A06A00B9FFDFA06ADF
+:1015D00090F8D80000B1FFDFA06A90F8E200202860
+:1015E00000D0FFDFAC48F3F7CCFAA16A054620280B
+:1015F00081F8E2000E8800D3FFDFA548483020F8CC
+:101600001560A06A90F8E200202800D1FFDF0023D7
+:1016100001226846A16AFFF7C0F8A06A694690F8FF
+:10162000E200F3F773FD00B9FFDF0020A062F2E6ED
+:10163000974924394870704710B540F2E24300FBE7
+:1016400003F4002000F0F2FD844201D9201A10BDFD
+:10165000002010BD70B50D46064601460020FBF780
+:1016600037FE044696F85500F6F724F9014696F839
+:1016700054004FF47A72022815D0012815D040F694
+:10168000340008444AF247310844B0FBF2F1708854
+:1016900040F271225043C1EB4000A0F22330A5423A
+:1016A00006D2214605E01046EBE74FF4C860E8E7B4
+:1016B0002946814204D2A54201D2204600E02846B4
+:1016C000706270BD70B5F5F7D5F80446F6F7E0F82E
+:1016D00001466F48243882684068101A0E18204668
+:1016E00000F06AFC05462046F6F7E4F8281A4FF4A5
+:1016F0007A7100F2E730B0FBF1F0304470BD70B5A4
+:101700000546FDF72DFC6249007824398C68983431
+:10171000072D30D2DFE805F0043434252C343400B2
+:1017200014214FF4A873042810D00822082809D0E7
+:101730002A2102280FD011FB024000222823D118B1
+:10174000441819E0402211FB0240F8E7102211FB77
+:1017500002402E22F3E7042211FB0240002218234C
+:10176000EDE7282100F040FC044404F5317403E067
+:1017700004F5B07400E0FFDF4548006CA04201D9D9
+:10178000012070BD002070BD70B5414C243C6078D4
+:1017900070B1D4E904512846A268FBF794FC20619B
+:1017A000A84205D0A169401B0844A061F3F74AFF95
+:1017B0002169A068884201D8207808B1002070BD56
+:1017C000012070BD2DE9F04F054685B016460F4645
+:1017D0001C461846F6F75CF805EB4701471820460B
+:1017E00000F0EAFB4AF2C5714FF47A7908444D469D
+:1017F000B0FBF5F0384400F16008254824388068D3
+:10180000304404902046F6F743F8A8EB0007204642
+:1018100000F0D2FB06462046F6F74CF8301AB0FB33
+:10182000F5F03A1A182128254FF4C8764FF4BF77FF
+:101830004FF0020B082C34D0042C2FD00020022CA7
+:1018400032D0082310F1280003EB830C0CEB831338
+:10185000184402444FF0000A082C2DD0042C26D046
+:101860000020022C2DD0082100F5B07001EB0111F1
+:101870002944884232D2082C2AD0042C25D00020BA
+:10188000022C28D00821283001EB011134E000009F
+:10189000C412002045110200110A0200384610232C
+:1018A000D2E730464023CFE704231830CCE73D464B
+:1018B00040F2EE301021D9E735464FF43560402133
+:1018C000D4E70D460421B430D0E738461021DBE7D9
+:1018D00030464021D8E704211830D5E7082C4FD0F6
+:1018E000042C4AD00020022C4DD0082110F12800F1
+:1018F000C1EBC10303EB4111084415182821204610
+:1019000000F072FB05EB4000082C42D0042C3DD0C7
+:101910000026022C3FD0082116F1280601EB811188
+:1019200006EB810146180120FC4D8DF804008DF86E
+:1019300000A08DF805B0E86906F227260499F2F7B1
+:101940009CFECDE902062046F5F7B4FF4AF23B5172
+:101950000144B1FBF9F0301AFB3828640298C5F84D
+:101960004480E86195F824006946F3F7CFFB00282E
+:1019700000D1FFDF05B0BDE8F08F38461021B7E792
+:1019800030464021B4E704211830B1E73E4610212B
+:10199000C4E74021C2E704211836BFE72DE9FE4F16
+:1019A00004461D46174688464FF0010A1846F5F7CB
+:1019B0006FFFDA4E0146243EB068021907EB48007B
+:1019C00010440F18284600F0F7FA4FF47A7B00F61F
+:1019D000FB01D846B1FBF8F0384400F12009284655
+:1019E000F5F756FFB1680246A9EB0100001B861A05
+:1019F000284600F0E1FA07462846F5F75BFF381A5B
+:101A0000B0FBF8F0311A182628234FF4C8774FF4AA
+:101A1000BF78082D2CD0042D27D00020022D2AD0ED
+:101A20000822283002EB820C0CEB82121044014495
+:101A3000082D28D0042D21D00020022D28D01E46AC
+:101A4000082200F5B07000BF02EB0212324490424F
+:101A50002AD2082D22D0042D1DD00020022D20D006
+:101A60000822283002EB02122CE040461022D9E76F
+:101A700038464022D6E704221830D3E7464640F2E3
+:101A8000EE301022E0E73E464FF435604022DBE7BF
+:101A90000422B430D8E740461022E3E7384640221B
+:101AA000E0E704221830DDE7082D4DD0042D48D0A2
+:101AB0000020022D4BD0082210F12800C2EBC203F7
+:101AC00003EB421210440E182821284600F08CFA2D
+:101AD00006EB4000082D40D0042D3BD00027022DFE
+:101AE0003DD0082117F1280701EB811107EB810197
+:101AF000451805F596750C98F5F7DCFE4AF23B5152
+:101B00000144B1FBFBF0854EFB30A6F12407316C9C
+:101B100004F1FB020844B9684B191A44824228D9DF
+:101B2000621911440D1AFB35E1F7B0F8B9680844A1
+:101B300061190844B0F1807F36D2642D12D264203E
+:101B400011E040461022B9E738464022B6E70422A9
+:101B50001830B3E747461021C6E74021C4E7042107
+:101B60001837C1E72846F3F7D4FDE8B1306C2844B4
+:101B70003064E1F78BF8B968293821440844CDE98D
+:101B8000000996F839008DF8080002208DF8090048
+:101B90006846FCF7D2FE00B1FFDFFCF7ADFF00B1F5
+:101BA000FFDF5046BDE8FE8F4FF0000AF9E71FB592
+:101BB00000F042FB594C607880B994F82410002260
+:101BC0006846FFF700F938B194F824006946F3F746
+:101BD0009DFA18B9FFDF01E00120E070F2F756FF2F
+:101BE00000206074A0741FBD2DE9F84FFDF7B8F90F
+:101BF0000646451CC07840090CD001280CD00228AC
+:101C00000CD000202978824608064FF4967407D439
+:101C10001E2006E00120F5E70220F3E70820F1E7A7
+:101C20002046B5F80120C2F30C0212FB00F7C809E8
+:101C300001D010B103E01E2401E0FFDF0024FFF714
+:101C400041FDA7EB00092878B77909EB0408C0F338
+:101C5000801010B120B1322504E04FF4FA7501E094
+:101C6000FFDF00250C2F00D3FFDF2D482D4A30F871
+:101C70001700291801FB0821501CB1FBF0F5F4F7FF
+:101C8000F9FDF5F717FE4FF47A7100F27160B0FBC1
+:101C9000F1F1A9EB0100471BA7F15900103FB0F586
+:101CA000237F11D31D4E717829B902465346294628
+:101CB0002046FFF787FD00F0BFFAF2F7E7FE0020AD
+:101CC0007074B074BDE8F88F3078009053462246A7
+:101CD00029463846FFF762FE0028F3D10121022091
+:101CE000FDF743F9BDE8F84F61E710B50446012957
+:101CF00003D10A482438007830B1042084F8D80091
+:101D0000BDE81040F2F7C2BE00220121204600F0DB
+:101D100097F934F8580F401C2080F1E7C4120020D6
+:101D2000A45C02003F420F002DE9F0410746FDF799
+:101D300017F9050000D1FFDF29783846FBF775FC5D
+:101D4000F84C0146A4F12406E069B268024467B386
+:101D50002878082803D0042803D000270BE00823A4
+:101D600000E0022303EB430728374FF4A873082849
+:101D700004D0042802D002280FD028233B4408288E
+:101D80000DD004280DD002280DD00820C0EBC007CC
+:101D900007EB40101844983009E01823EEE7402084
+:101DA000F4E71020F2E70420F0E74FF4FC70104451
+:101DB000471828783F1DF5F77DFD024628784FF437
+:101DC0007A7102281DD001281DD040F6340010443D
+:101DD0004AF2EF021044B0FBF1F03A1AA06A40F266
+:101DE000E241B0464788D8304F43316A81420DD036
+:101DF0003946606B00F087F90646B84207D9FFDF25
+:101E000005E00846E3E74FF4C860E0E70026C6486F
+:101E10008068864207D2A16A40F271224888424314
+:101E200006EB420604E040F2E240B6FBF0F0A16AA5
+:101E3000C882A06A297880F85410297880F8551053
+:101E400005214175C08A6FF41C71484306EB4000C0
+:101E500040F63541C8F81C00B0EB410F00D3FFDF5E
+:101E6000BDE8F08110B5052937D2DFE801F005099A
+:101E7000030D3100002100E00121BDE8104034E7EE
+:101E8000032180F8D81010BD0446408840F2E2419A
+:101E90004843A549091D0860D4F800010089E08283
+:101EA000D4F8000180796075D4F800014089608021
+:101EB000D4F800018089A080D4F80001C089E080B6
+:101EC0002046A16AFFF7C6FB022084F8D80010BDA7
+:101ED000816ABDE81040FFF7BDBBFFDF10BD70B5E4
+:101EE000904C243C0928A1683FD2DFE800F0050BA4
+:101EF0000B15131538380800BDE8704057E6BDE8EB
+:101F0000704071E6022803D00020BDE870400BE766
+:101F10000120FAE7E16070BD032802D005281CD03B
+:101F200000E0E1605FF0000600F086F97D4D0120E1
+:101F300085F82C0085F83860A86AE9690026C0F8A1
+:101F4000DC1080F8D860E068FFF734FB00B1FFDFF9
+:101F5000F2F79CFD6E74AE7470BD0126E4E7724822
+:101F60000078BDE87040E0F7D7BFFFDF70BD6D4976
+:101F700024394860704770B56A4D0446243DB1B1BC
+:101F80004FF47A76012903D0022905D0FFDF70BD16
+:101F90001846F5F7C9FC05E06888401C68801046C3
+:101FA000F5F7A1FC00F2E730B0FBF6F0201AA860CC
+:101FB00070BD5C4800787047082803D0042801D021
+:101FC000F5F778BC4EF628307047002804DB00F1A6
+:101FD000E02090F8000405E000F00F0000F1E020A0
+:101FE00090F8140D4009704710F00C0000D008461E
+:101FF000704710B50446202800D3FFDF4948483019
+:1020000030F8140010BD70B505460C461046F5F7C3
+:1020100051FC4FF47A71022C0DD0012C0DD040F6FA
+:10202000340210444AF247321044B0FBF1F0284425
+:1020300000F2931070BD0A46F3E74FF4C862F0E770
+:102040001FB513460A46044601466846FEF7A5FB3F
+:1020500094F8E2006946F3F759F8002800D1FFDF51
+:102060001FBD70B52F4C0025257094F82400F2F7A1
+:10207000E4FD00B9FFDF84F8245070BD2DE9F04184
+:10208000050000D1FFDF274A0024243AD5F8EC6090
+:102090002046631E116A08E08869B04203D3984263
+:1020A00001D203460C460846C9680029F4D104B998
+:1020B00004460021C5F8E840D835C4B1E068E560C1
+:1020C000E86000B105612E698846A96156B1B06922
+:1020D00030B16F69B84200D2FFDFB069C01BA861A0
+:1020E000C6F818800F4D5CB1207820B902E0E96095
+:1020F0001562E8E7FFDF6169606808446863AFE67E
+:10210000C5F83480ACE610B50C4601461046F3F72E
+:10211000CCFA00280ADA211A491EB1FBF4F101FBBE
+:10212000040010BDC41200208401002090FBF4F1D3
+:1021300001FB1400F5E74648016A002001E008466B
+:10214000C9680029FBD170477FB504466FF00400D1
+:10215000FFF73BFFC5B21920FFF737FFC0B285423A
+:1021600000D0FFDFFCF7FCFE4088C00407D001214F
+:102170000320FCF7FAFE37480078E0F7CDFE002296
+:1021800021466846FEF71FFE38B169462046F2F741
+:10219000BDFF002800D1FFDF7FBD2D490120243184
+:1021A000C870FEF715FD7FBD2DE9FE43284D0120C7
+:1021B000287000264FF6FF7420E00621F0F71AFC85
+:1021C000070000D1FFDF97F8E200D837F3F707FBED
+:1021D00007F80A6BA14617F8E289B8F1200F00D37F
+:1021E000FFDF1B4A6C3222F8189097F8E200F2F7F2
+:1021F00024FD00B9FFDF202087F8E20069460620B1
+:10220000F0F781FB50B1FFDF08E0029830B190F8A1
+:10221000D81019B10088A042CFD104E06846F0F789
+:1022200050FB0028F1D02E70BDE8FE8310B5FFF7FB
+:10223000EAFE00F5C87074E705480021243090F8E4
+:10224000392000EB4200C18502480078E0F764BE07
+:10225000A012002084010020012804D0022805D00B
+:10226000032808D105E0012907D004E0022904D0A1
+:1022700001E0042901D00020704701207047FE488A
+:10228000806890F8881029B1B0F88410B0F88620E2
+:10229000914215D290F88C1029B1B0F88A10B0F89C
+:1022A000862091420CD2B0F88220B0F880108A4289
+:1022B00006D290F86820B0F87E001AB1884203D3A5
+:1022C000012070470628FBD2002070472DE9F0411D
+:1022D000E94D0746A86800F1580490F8FC0030B9B1
+:1022E000E27B002301212046FAF758FE10B1608DF1
+:1022F000401C608501263D21AFB92878022808D00E
+:1023000001280AD06878C8B110F0140F09D01E2037
+:1023100039E0162037E0E6763EE0A86890F8FE0047
+:1023200031E0020701D52177F5E7810701D02A20A6
+:1023300029E0800600D4FFDF232024E094F8300059
+:1023400028B1A08D411CA185E18D884213D294F85B
+:10235000340028B1608E411C6186E18D88420AD22A
+:10236000618D208D814203D3AA6892F8FC2012B9B6
+:10237000E28D914201D3222005E0217C29B1E18C3C
+:10238000814207D308202077C5E7E08C062801D3D7
+:102390003E20F8E7E07EB0B1002020736073207427
+:1023A0000221A868FFF75EFDA86890F8CC1001290B
+:1023B00004D1D0F804110878401E0870E878BDE810
+:1023C000F041E0F7A9BDA868BDE8F0410021FFF7A2
+:1023D00049BDA9490C28896881F8CC0014D013287C
+:1023E00012D0182810D0002211280ED007280BD0A8
+:1023F00015280AD0012807D0002805D0022803D0CC
+:1024000021F8842F012008717047A1F88A207047B5
+:1024100010B5994CA1680A88A1F8462181F84401B9
+:1024200091F8540001F073FBA16881F8480191F81C
+:10243000550001F06CFBA16881F84901012081F889
+:102440004201002081F81601E078BDE81040E0F775
+:1024500063BD70B5884C00231946A06890F86420CD
+:102460005830FAF79BFD00283DD0A06890F808117D
+:102470000025C9B3A1690978B1BB90F86500FAF7E6
+:1024800075FD88BBA168B1F858000A282DD905222E
+:102490000831E06903F046F810B3A068D0F80411E1
+:1024A000087858B10522491CE06903F03BF8002880
+:1024B00019D1A068D0F80401007840B9A068E1699A
+:1024C000D0F804010A68C0F8012009794171A068B8
+:1024D000D0F804110878401C08700120FFF779FF3C
+:1024E000A06880F8085170BDFFE7A06890F80C1153
+:1024F00011B190F80D11B9B390F816110029F2D06E
+:1025000090F817110029EED190F86500FAF72EFD2A
+:102510000028E8D1A06890F8540001F0F8FA0646C7
+:10252000A06890F8550001F0F2FA0546A06890F80E
+:1025300018113046FFF790FE90B3A06890F819117B
+:102540002846FFF789FE58B3A268B2F8583092F8CF
+:102550005410B2F81A01F832FBF730F818B3A1683A
+:10256000252081F86400BEE7FFE790F86510242974
+:1025700017D090F86410242913D0002300F1FA0238
+:1025800000F58671FAF7BAFDA06880F80C5130F8B2
+:10259000421FA0F88C108188A0F88E10142007E04C
+:1025A00005E00123EAE7BDE87040002030E716208F
+:1025B000BDE870400DE710B5F3F73CFC0C2813D3D1
+:1025C0002D4C0821A068D0F800011E30F3F736FC2E
+:1025D00028B1A0680421C030F3F730FC00B9FFDF58
+:1025E000BDE810400320F4E610BD10B5224CA068F1
+:1025F000D0F800110A78002A1FD049880288914239
+:102600001BD190F86420002319465830FAF7C6FC15
+:10261000002812D0A068D0F800110978022907D04C
+:1026200003290BD0042917D0052906D108200DE075
+:1026300090F86500FAF79AFC40B110BD90F8691067
+:1026400039B190F86A0000B9FFDF0A20BDE81040F8
+:10265000BFE6BDE81040AEE790F890008007ECD1EF
+:102660000C20FFF7B6FEA068002120F8841F01218E
+:102670000171017B02E000009001002041F00101A6
+:10268000017310BD70B5FE4CA268556DFAF730FFAE
+:10269000EBB2C1B200228B4203D0A36883F8FA10D8
+:1026A00002E0A16881F8FA20C5F30721C0F30720F2
+:1026B000814203D0A16881F8FB0014E7A06880F88C
+:1026C000FB2010E770B5EE48806890F84E20448EED
+:1026D000C38E418FB0F84050022A23D0A94200D3C4
+:1026E00029460186C18FB0F84220914200D311469D
+:1026F0008186018FB0F84420914200D31146418673
+:10270000818FB0F84620914200D31146C186418E98
+:10271000A14200D90C464486C18E994200D90B468D
+:10272000C386E0E6028E914200D31146C68F828EA8
+:10273000964200D23246A94200D329460186B0F81B
+:1027400042108A4200D30A468286002180F84E1049
+:10275000CFE770B5CA4CA06890F8CC10FE2955D1CF
+:102760006178002952D190F8672000230121583068
+:10277000FAF714FC002849D1A06890F8FC1009B1C0
+:10278000022037E090F86420002319465830FAF709
+:1027900005FC28B1A06890F87C0008B1122029E05F
+:1027A000A068002590F86420122A1DD004DC032ABA
+:1027B00023D0112A04D119E0182A1AD0232A26D0AE
+:1027C000002304215830FAF7E9FB00281ED1A06845
+:1027D00090F86510192970D020DC01292AD002292F
+:1027E00035D0032932D120E00B2003E0BDE8704052
+:1027F000E1E60620BDE87040EBE510F8CA1F017164
+:102800000720FFF7E6FDA06880F864506BE618200B
+:10281000FFF7DFFDA068A0F8845064E61D2918D0FA
+:102820001E2916D0212964D148E010F8C91F417132
+:1028300007206EE00C20FFF7CCFDA06820F88A5F2F
+:10284000817941F00101817100F8255C51E013208C
+:102850002AE090F80D217ABB90F80C21AAB1242926
+:1028600011D090F8641024290DD0002300F1FA0251
+:1028700000F58671FAF742FCA0681E2180F8651009
+:1028800080F80C5103E00123F0E71E2931D1FFF756
+:1028900019FF01F04EF9A06830F8421FA0F88C1023
+:1028A0008188A0F88E101520FFF793FDA068A0F88E
+:1028B0008A5000BF80F865501BE029E090F87D1039
+:1028C00049B100F8FA5F45701820FFF782FDA06853
+:1028D000A0F88A500DE090F8171151B990F8161130
+:1028E00039B1016DD0F81801FFF7CCFE1820FFF7C1
+:1028F00070FDA06890F8CC00FE2887D1FFF775FE28
+:10290000A06890F8CC00FE2887D1BDE87040A0E513
+:102910001120FFF75EFDA068CCE7594A01299268B3
+:1029200019D0002302290FD003291ED010B301288B
+:102930002BD0032807D192F86400132803D016285F
+:1029400001D0182804D1704792F8CC000028FAD0A2
+:10295000D2F8000117E092F8CC000128F3D0D2F8A9
+:1029600004110878401E0870704792F8CC000328C4
+:10297000EED17047D2F80001B2F858108288891A57
+:1029800009B20029F5DB03707047B2F85800B2F8BD
+:102990000A11401A00B20028F6DBD2F804010178CF
+:1029A000491E0170704770B5044690F86400002518
+:1029B0000C2810D00D282ED1D4F80011B4F85800EE
+:1029C0008988401C884226D1D4F84C012C4E0178CD
+:1029D00011B3FFDF42E0B4F85800B4F80A11401C0C
+:1029E000884218D1D4F80401D0F80110A1604079D0
+:1029F000207302212046F9F7ABFFD4F804010078D8
+:102A000000B9FFDF0121FE20FFF787FF84F8645043
+:102A1000012084F8980066E52188C180D4F800017F
+:102A2000D4F84C1140890881D4F80001D4F84C1135
+:102A300080894881D4F80001D4F84C11C08988817C
+:102A4000D4F84C010571D4F84C1109200870D4F861
+:102A50004C1120884880F078E0F75EFA012120468A
+:102A6000F9F776FF03212046FFF7FCF9B068D0F8AC
+:102A700000010078022800D0FFDF0221FE2001E0E3
+:102A800090010020FFF749FF84F864502BE52DE901
+:102A9000F041002603270125FE4CD4F808C088B178
+:102AA0002069C0788CF8CA0005FA00F0C0F3C05065
+:102AB00000B9FFDFA06800F8647F068480F8245026
+:102AC000BDE8F08100239CF8652019460CF1580000
+:102AD000FAF764FA70B160780028F1D12069C17802
+:102AE000A06880F8C91080F86570A0F88A6080F846
+:102AF0008C50E5E76570E3E7F0B5E64C002385B060
+:102B0000A068194690F865205830FAF747FA012571
+:102B100080B1A06890F8640023280ED024280CD03F
+:102B20006846F4F7EAFF68B1009801A9C0788DF80B
+:102B3000040008E0657005B0F0BD607840F020004A
+:102B40006070F8E70021A06803AB162290F86400DB
+:102B5000FAF74FFD002670B1A0689DF80C201621F1
+:102B600000F8F42F4170192100F88F1C00F8685C00
+:102B700020F86A6CDFE72069FBF7E7F878B1216994
+:102B8000087900F00702A06880F85020497901F028
+:102B9000070180F8511090F817310BBB03E00020BB
+:102BA000FFF775FFC7E790F81631CBB900F1540372
+:102BB0005F78974205D11A788A4202D180F87D5019
+:102BC0000EE000F59F71028821F8022990F850204C
+:102BD0000A7190F8510048710D70E078E0F79CF9A7
+:102BE000A068212180F8651080F88C50A0F88A60D8
+:102BF000A1E770B5A74C00231946A06890F865209E
+:102C00005830FAF7CBF928B32069FBF783F830B3D3
+:102C1000A5682069FBF77AF82887A5682069FBF783
+:102C200071F86887A5682069FBF772F8A887A5681E
+:102C30002069FBF769F8E887A068012590F864101F
+:102C40001C2910D090F84E10012912D090F80D11C7
+:102C500079B90BE0607840F00100607043E4BDE8B2
+:102C60007040002013E780F84E5002E090F80C11FD
+:102C700019B11E2180F8651012E01D2180F8651041
+:102C800000F58E710288CA82028F0A83428F4A83BE
+:102C9000828F8A83C08FC8830D75E078E0F73CF996
+:102CA000A068002120F88A1F85701CE410B5794CBB
+:102CB00000230921A06890F864205830FAF76EF9D3
+:102CC00048B16078002805D1A16801F87C0F08732D
+:102CD00001F8180C10BD0120607010BD7CB56D4C62
+:102CE00000230721A06890F864205830FAF756F9BD
+:102CF00038B36078002826D169462069FBF720F8B0
+:102D00009DF80000002500F02501A06880F89610CD
+:102D10009DF8011001F0490180F8971080F8885063
+:102D2000D0F8001100884988814200D0FFDFA068F8
+:102D3000D0F800110D70D0F84C110A7822B1FFDFE5
+:102D400016E0012060707CBD30F8D02BCA80C16FC6
+:102D50000D71C16F009A8A60019ACA60C26F082122
+:102D6000117030F8D01CC06F4180E078E0F7D4F8E3
+:102D7000A06880F864507CBD70B5464C00231946AD
+:102D8000A06890F865205830FAF708F9012540B995
+:102D9000A0680023082190F864205830FAF7FEF864
+:102DA00010B36078002820D1A06890F890008007C8
+:102DB00012D42069FAF78AFFA16881F8910020698E
+:102DC00030F8052FA1F892204088A1F8940011F85E
+:102DD000900F40F002000870A0684FF0000690F8D5
+:102DE0009010C90702D011E0657066E490F8652084
+:102DF000002319465830FAF7D1F800B9FFDFA06870
+:102E000080F8655080F88C50A0F88A60A06890F82F
+:102E10006410012906D180F8646080F88860E07849
+:102E2000E0F77AF8A168D1F80001098842888A425F
+:102E3000DBD101780429D8D10670E078E0F76CF88E
+:102E4000A06890F864100029CFD180F8886034E43D
+:102E500070B5104DA86890F864101A2902D00220AD
+:102E600068702AE469780029FBD1002480F88D403D
+:102E700080F88840D0F8001100884988814200D04D
+:102E8000FFDFA868D0F800110C70D0F84C110A7858
+:102E900022B101E090010020FFDF25E090F88E20B4
+:102EA00072B180F88E400288CA80D0F84C110C7143
+:102EB000D0F84C210E2111700188D0F84C010DE0A2
+:102EC00030F8D02BCA80C16F0C71C26F0121117212
+:102ED000C26F0D21117030F8D01CC06F418000F01E
+:102EE000A2FEE878E0F718F8A86880F8644018E4D3
+:102EF00070B5FA4CA16891F86420162A01D0132A03
+:102F000002D191F88E2012B10220607009E462783B
+:102F1000002AFBD181F8C800002581F88D5081F886
+:102F20008850D1F8000109884088884200D0FFDF2E
+:102F3000A068D0F800010078032800D0FFDF03214B
+:102F4000FE20FFF7EAFCA068D0F84C110A780AB11D
+:102F5000FFDF14E030F8C82BCA8010F8081BC26FDE
+:102F60001171C16F0D72C26F0D21117030F8D01C3C
+:102F7000C06F418000F057FEE078DFF7CDFFA0681A
+:102F800080F8645042E470B5D44C09210023A06855
+:102F900090F864205830FAF701F8002518B120693C
+:102FA000007912281ED0A0680A21002390F864201E
+:102FB0005830F9F7F3FF18B120690079142814D0BC
+:102FC0002069007916281AD1A06890F864101F298A
+:102FD00015D180F8645080F88850BDE870401A2000
+:102FE000FFF716BABDE8704060E6A06800F8645FBD
+:102FF000058480F82450BDE8704000F09ABD05E4D7
+:1030000070B5B64C2079C00773D020690023052124
+:10301000C578A06890F864205830F9F7BFFF98B1E0
+:10302000062D11D006DC022D0ED0042D0CD0052D5E
+:1030300006D109E00B2D07D00D2D05D0112D03D0A1
+:10304000607840F0080060706078002851D12069F5
+:10305000FAF7A0FD00287ED0206900250226C1785D
+:10306000891E162977D2DFE801F00B763437472224
+:10307000764D76254A457676763A53506A6D70736A
+:10308000A0680023012190F867205830F9F786FFE7
+:1030900008BB2069FAF7E2FDA16881F8FE0007206D
+:1030A00081F8670081F88C5081F8885056E0FFF76E
+:1030B0006AFF53E0A06890F864100F2901D0667091
+:1030C0004CE0617839B980F86950122180F86410B9
+:1030D00044E000F0D3FD41E000F0AFFD3EE0FAF740
+:1030E00072FE03283AD12069FAF771FEFFF700FF5C
+:1030F00034E03BE00079F9E7FFF7AAFE2EE0FFF7A6
+:103100003BFE2BE0FFF7EAFD28E0FFF7CFFD25E0CF
+:10311000A0680023194690F865205830F9F73EFF63
+:10312000012110B16078C8B901E0617016E0A068B3
+:1031300020F88A5F817000F8256C0FE00BE0FFF744
+:1031400058FD0BE000F03CFD08E0FFF7D5FC05E082
+:1031500000F002FD02E00020FFF799FCA268F2E90E
+:103160002A01401C41F10001C2E9000153E42DE9AC
+:10317000F0415A4C2079800741D5607800283ED133
+:10318000E06801270026C17820461929856805F1E5
+:1031900058006FD2DFE801F04B3E0D6FC1C1801CBB
+:1031A00034C1556287C1C1C1C1BE8B9598A4B0C15D
+:1031B000BA0095F8672000230121F9F7EFFE0028F7
+:1031C0001DD1A068082180F8671080F8886090E021
+:1031D000002395F865201946F9F7E0FE10B1A068C4
+:1031E00080F88C60A0680023194690F8642058305D
+:1031F000F9F7D4FE002802D0A06880F888605FE468
+:10320000002395F864201946F9F7C8FE00B9FFDFDE
+:10321000042008E0002395F864201946F9F7BEFE63
+:1032200000B9FFDF0C20A16881F8640048E40023A6
+:1032300095F864201946F9F7B1FE00B9FFDF0D20BB
+:10324000F1E7002395F864201946F9F7A7FE00B9C5
+:10325000FFDFA0680F2180F88D7008E095F864000A
+:10326000122800D0FFDFA068112180F88E7080F84E
+:10327000641025E451E0002395F864201946F9F71D
+:103280008DFE20B9A06890F88E0000B9FFDFA0681D
+:10329000132180F88D70EAE795F86400182800D0B3
+:1032A000FFDF1A20BFE7BDE8F04100F066BD002354
+:1032B00095F864201946F9F771FE00B9FFDF052083
+:1032C000B1E785F88C6014E4002395F86420194672
+:1032D000F9F764FE00B9FFDF1C20A4E7900100208D
+:1032E000002395F865201946F9F758FE00B9FFDF6D
+:1032F000A06880F88C6082E7002395F86420194666
+:10330000F9F74CFE00B9FFDF1F208CE7BDE8F04164
+:1033100000F0FBBC85F86560D3E7FFDF6FE710B511
+:10332000F74C6078002837D1207940070FD5A06886
+:1033300090F86400032800D1FFDFA06890F86710C0
+:10334000072904D101212170002180F86710FFF7BF
+:103350000EFF00F0B8FCFFF753FEA078000716D56B
+:10336000A0680023052190F864205830F9F716FE74
+:1033700050B108206070A068D0F84C1108780D2872
+:1033800000D10020087002E00020F8F73BFAA068A6
+:10339000BDE81040FFF707BB10BD2DE9F041D84C48
+:1033A00007464FF000056078084360702079810679
+:1033B0002046806802D5A0F87E5004E0B0F87E1068
+:1033C000491CA0F87E1000F01AFD0126F8B1A08873
+:1033D000000506D5A06890F86A1011B1A0F87650E3
+:1033E00015E0A068B0F87610491CA0F8761000F03F
+:1033F000F5FCA068B0F87610B0F87820914206D3BA
+:10340000A0F8765080F82261E078DFF785FD20791A
+:1034100010F0600F08D0A06890F8681021B980F80B
+:1034200068600121FEF71EFD1FB9FFF778FFFFF767
+:1034300090F93846FEF74AFFBDE8F041F4F76CBB5F
+:10344000AF4A51789378194313D1114601288968FE
+:1034500008D01079400703D591F86700072808D0F5
+:1034600001207047B1F84800098E884201D8FEF764
+:103470008BB900207047A249C2788968012A06D01A
+:103480005AB1182A08D1B1F8F810FAF77ABCB1F895
+:103490000A114172090A81727047D1F800118988B6
+:1034A0004173090A8173704770B5954C05460E4605
+:1034B000A0882843A080A80703D5E80700D0FFDF35
+:1034C000E660E80700D02661A80719D5F07806283D
+:1034D00002D00B2814D10BE0A06890F864101829D2
+:1034E0000ED10021E0E92A11012100F83E1C07E07D
+:1034F000A06890F86410122902D1002180F86A10A7
+:10350000280601D50820A07068050AD5A068828821
+:10351000B0F85810304600F081FC3046BDE87040ED
+:10352000A9E762E43EB505466846F4F7C0FA00B97B
+:10353000FFDF2221009802F0A0F803210098FAF79B
+:1035400011FB0098017821F0100101702946FAF76B
+:103550002EFB6B4C192D71D2DFE805F020180D3EC3
+:10356000C8C8C91266C8C9C959C8C8C8C8BBC9C96A
+:1035700071718AC89300A168009891F8FD1003E06A
+:10358000A168009891F8CE100171B0E0A068D0F861
+:1035900004110098491CFAF756FBA8E0A1680098AE
+:1035A000D1F8002192790271D1F80021128942717B
+:1035B000120A8271D1F800215289C271120A027274
+:1035C000D1F8002192894272120A8272D1F8001158
+:1035D000C989FAF70FFB8AE0A068D0F800110098BB
+:1035E000091DFAF73DFBA068D0F8001100980C31D6
+:1035F000FAF740FBA068D0F8001100981E31FAF7E6
+:103600003FFBA1680098C031FAF748FB6FE06269A0
+:1036100000981178017191884171090A817151886E
+:10362000C171090A017262E03649D1E90001CDE9B0
+:10363000010101A90098FAF74BFB58E056E0A06899
+:10364000B0F840100098FAF755FBA068B0F8CE101B
+:103650000098FAF753FBA068B0F844100098FAF706
+:1036600041FBA068B0F8D0100098FAF73FFB3EE0AD
+:10367000A268009892F81811017192F8191141711D
+:1036800035E0A06890F8FB00F9F729FF01460098A3
+:10369000FAF773FBA06890F8FA0000F033FA70B103
+:1036A000A06890F8540000F02DFA40B1A06890F89E
+:1036B000FA1090F85400814201D0002002E0A06886
+:1036C00090F8FA00F9F70BFF01460098FAF751FB62
+:1036D0000DE0A06890F8F5100098FAF772FBA0686A
+:1036E00090F8F4100098FAF770FB00E0FFDFF4F7B1
+:1036F000F1F900B9FFDF0098FFF7BDFE3EBD000005
+:1037000090010020BC5C0200F948806890F8FA1033
+:1037100009B990F8541080F8541090F8FB1009B9CA
+:1037200090F8551080F855100020FEF771BEF8B5DE
+:10373000EF4E00250446B060B5807570B5703570E9
+:103740000088F4F7B1F9B0680088F4F7D3F9B4F859
+:10375000E000B168401C82B201F15800F9F7D5F9D8
+:1037600000B1FFDF94F86500242809D1B4F858109F
+:10377000B4F8F800081A00B2002801DB707830B104
+:1037800094F8640024280AD0252808D015E0FFF713
+:10379000BBFF84F86550B16881F87D500DE0B4F846
+:1037A0005810B4F8F800081A00B2002805DB707849
+:1037B00018B9FFF7A9FF84F86450A4F8E050FEF7A9
+:1037C0005EFD00281CD1B06890F8CC00FE2801D026
+:1037D000FFF7A8FEC7480090C74BC84A21462846B5
+:1037E000F7F766FFB0680023052190F86420583091
+:1037F000F9F7D4FB002803D0BDE8F840F7F7F3BC95
+:10380000F8BD10B5FEF73BFD20B10020BDE810402B
+:103810000146C2E5BDE81040F7F7D0BF70B50C46D1
+:10382000064615464FF4A871204601F048FF268051
+:1038300005B9FFDF2868C4F800016868C4F804010E
+:10384000A868C4F84C0191E4EFF7DDB92DE9F04127
+:103850000D4607460621EFF7CDF8041E3DD0D4F8FB
+:103860004C110026087858B14A8821888A4207D12D
+:1038700009280FD00E2819D00D2826D008283ED0B0
+:1038800094F82201D0B36E701020287084F8226161
+:10389000AF809FE06E7009202870D4F84C01416819
+:1038A00069608168A9608089A88133E00846EFF7E4
+:1038B000D3F90746EEF77FFE70B96E700E202870C0
+:1038C000D4F84C014068686011E00846EFF7C4F98D
+:1038D0000746EEF770FE08B1002090E46E700D20F0
+:1038E0002870D4F84C014168696000892881D4F8B7
+:1038F0004C0106703846EEF758FE6BE00EE06E7035
+:1039000008202870D4F84C01416869608168A9607A
+:10391000C068E860D4F84C0106705BE094F82401BC
+:10392000A0B16E70152028700BE000BF84F82461F0
+:10393000D4F826016860D4F82A01A860B4F82E01F2
+:10394000A88194F824010028F0D143E094F83001D4
+:1039500070B16E701D20287084F83061D4F8320187
+:103960006860D4F83601A860B4F83A01A88131E063
+:1039700094F83C0140B16E701E20287084F83C61C0
+:10398000D4F83E01686025E094F81C0170B16E70B7
+:103990001B20287005E000BF84F81C61D4F81E01CC
+:1039A000686094F81C010028F6D113E094F84201F5
+:1039B000002892D06E701620287007E084F84261CB
+:1039C000D4F844016860B4F84801288194F84201B1
+:1039D0000028F3D1012012E4454A5061D1707047AC
+:1039E00070B50D4604464EE0B4F8E000401CA4F863
+:1039F000E000B4F87E00401CA4F87E00204600F0F1
+:103A0000FEF9B8B1B4F87600401CA4F87600204660
+:103A100000F0E4F9B4F87600B4F87810884209D3DD
+:103A20000020A4F87600012084F822013048C078F4
+:103A3000DFF772FA94F8880020B1B4F88400401CD3
+:103A4000A4F8840094F88C0020B1B4F88A00401CDB
+:103A5000A4F88A0094F8FC0040B994F86720002389
+:103A6000012104F15800F9F799FA20B1B4F8820065
+:103A7000401CA4F882002046FEF795FFB4F85800D9
+:103A8000401CA4F858006D1EADB2ADD249E5184AED
+:103A9000C2E90601704770B50446B0F87E0094F89C
+:103AA0006810D1B1B4F880100D1A2D1F94F87C0065
+:103AB00040B194F864200023092104F15800F9F77B
+:103AC0006DFA70B1B4F87660204600F098F938B11C
+:103AD000B4F87800801B001F03E0C0F10205E5E7A1
+:103AE0002846A84200DA0546002D09DC002018E52A
+:103AF000900100209B33020041340200A9340200EF
+:103B0000A8B20EE510F00C0000D00120704710B5EF
+:103B1000012808D0022808D0042808D0082806D098
+:103B2000FFDF204610BD0124FBE70224F9E7032450
+:103B3000F7E710B5EF4C0421A068FEF793F9A068F1
+:103B400090F84E10012903D0BDE8104000F098B95C
+:103B5000022180F84E1010BD70B5E64CA06890F8B8
+:103B600064001F2804D0607840F001006070D8E441
+:103B70002069FAF7F4F8D8B1206901220179407977
+:103B800001F0070161F30705294600F0070060F323
+:103B90000F21A06880F888200022A0F8842023222A
+:103BA00000F8642FD0F8B400BDE87040FEF76ABD9D
+:103BB0000120FEF76CFFBDE870401E20FEF728BC18
+:103BC00070B5CC4C00230A21A06890F864205830CE
+:103BD000F9F7E4F910B32069FAF79CF8A8B1A568E1
+:103BE0002069FAF793F82887A5682069FAF78AF818
+:103BF0006887A5682069FAF78BF8A887A568206907
+:103C0000FAF782F8E887FEF75DFDA168002081F8E9
+:103C1000880081F86400BDE870408AE7607840F071
+:103C2000010060707DE4B34810B580680088EFF74C
+:103C300013F8BDE81040EEF7A9BC10B5AD4CA36871
+:103C400093F86400162802D00220607010BD6078DE
+:103C50000028FBD1D3F80001002200F11E010E3034
+:103C6000B033F9F715F9A0680021C0E92811012146
+:103C700080F86910182180F8641010BD10B59D4CB3
+:103C8000A06890F86410132902D00220607010BD63
+:103C900061780029FBD1D0F8001100884988814261
+:103CA00000D0FFDFA068D0F8001120692631FAF7B4
+:103CB00002F8A1682069C431FAF705F8A168162056
+:103CC00081F8640010BD10B58A4C207900071BD51F
+:103CD0006078002818D1A068002190F8CC00FEF789
+:103CE0001CFEA06890F8CC00FE2800D1FFDFA06881
+:103CF000FE2180F8CC1090F86710082904D1022129
+:103D00002170002180F8671010BD70B5794D242115
+:103D10000024A86890F86520212A05D090F8642036
+:103D2000232A18D0FFDF8EE590F8FA2012B990F818
+:103D3000FB202AB180F86510A86880F88C4082E5E5
+:103D400000F8654F047690F8B1000028F4D0002008
+:103D5000FEF75EFBF0E790F8FA2012B990F8FB202E
+:103D60002AB180F86410A86880F888406BE580F874
+:103D700064400020FEF74CFBF5E770B55D4C002574
+:103D8000A068D0F8001103884A889A4218D10978AF
+:103D9000042915D190F86420002319465830F9F70A
+:103DA000FDF800B9FFDFA06890F89010890703D4F0
+:103DB000012180F8641003E000F8885F806F0570CF
+:103DC000A0680023194690F865205830F9F7E6F806
+:103DD000002802D0A06880F88C5034E5B0F8782034
+:103DE000B0F876108A4201D3511A00E0002182888F
+:103DF000521D8A4202D3012180F87C10704710B511
+:103E000090F86A1041B990F86420002306215830D8
+:103E1000F9F7C4F8002800D0012010BD70B5114496
+:103E2000344D891D8CB2C078A968012806D040B1F4
+:103E3000182805D191F8FA0038B109E0A1F80A4133
+:103E400001E5D1F800018480FDE491F8FB1091B107
+:103E5000FFF758FE80B1A86890F85400FFF752FEB3
+:103E600050B1A86890F8FA1090F85420914203D00D
+:103E700090F8FB0000B90024A868A0F8F840E2E43C
+:103E80002DE9F0411B4DA86800F58E740188618111
+:103E9000018EA181818EE181018FB0F84420914291
+:103EA00000D311462182828FB0F846108A4200D298
+:103EB0001146618290F85500FFF724FE4FF4296700
+:103EC00028B1608A3E46B84200D906466682A86894
+:103ED00090F85400FFF716FE20B1E089B84200D9EF
+:103EE0000746E78101202072E878BDE8F041DFF75E
+:103EF00013B800009001002070B58D4C0829207A7D
+:103F000062D2DFE801F0041959592561615978B18D
+:103F1000F2F73CFD01210846F2F7DFFEF3F713FD4F
+:103F20000020A072F2F7E5FDBDE87040F3F766B837
+:103F3000BDE87040F0F7AABDD4E90001F0F79DFBA1
+:103F40002060A07A401CC0B2A07228281CD370BD8B
+:103F5000A07A0025401EC6B2E0683044F3F73FF96E
+:103F600010B9E1687F208855A07A272828BF01254D
+:103F70002846F3F751FCA07A282809D2401CC0B289
+:103F8000A072282828BF70BDBDE87040F2F7B1BD0F
+:103F9000207A00281CBF012000F085F8F2F7A0FF6E
+:103FA000F3F71EF80120E07262480078DEF7B4FFF4
+:103FB000BDE87040F0F76ABD002808BF70BD002062
+:103FC000BDE8704000F06FB8FFDF70BD10B5584C11
+:103FD000207A002804BF0C2010BD00202072E0725F
+:103FE000607AF1F7AEF9607AF1F7F9FB607AF0F7F1
+:103FF00024FE00280CBF1F20002010BD002270B539
+:104000004B4C06460D46207A68B12272E272607A05
+:10401000F1F797F9607AF1F7E2FB607AF0F70DFEBD
+:10402000002808BFFFDF4348E560067070BD70B52B
+:10403000050007D0A5F5E8503F494C3881429CBFA8
+:10404000122070BD3A4CE068002804BF092070BD02
+:10405000207A00281CBF0C2070BD3848F0F791FD75
+:104060006072202804BF1F2070BDF0F705FE20609D
+:10407000002D1CBF284420600120656020720020B4
+:1040800000F011F8002070BD2949CA7A002A04BF47
+:10409000002070471F22027000224270CB684360EC
+:1040A000CA72012070472DE9F04184B00746F0F74D
+:1040B000E3FD1F4D8046414668682C6800EB800098
+:1040C00046002046F1F7F1FAB04206DB6868811B32
+:1040D0004046F0F7D2FA0446286040F23476214692
+:1040E0004046F1F7E2FAB04204DA31464046F0F7D2
+:1040F000C4FA044600208DF800004FF4DD60039000
+:1041000004208DF80500002F14BF012003208DF836
+:10411000040068460294F0F77EFF687A6946F0F77B
+:10412000F5FF002808BFFFDF04B0BDE8F081000004
+:104130004C130020B0010020B5EB3C00F93E02001A
+:104140002DE9F0410C4612490D68114A1149083217
+:104150001160A0F12001312901D301200CE0412898
+:1041600010D040CC0C4F94E80E0007EB8000241FC9
+:1041700050F8807C3046B84720600548001D056037
+:10418000BDE8F0812046DDF743F8F5E706207047EB
+:104190001005024001000001C45C020010B5534844
+:1041A000F1F7CAFD00B1FFDF5048401CF1F7C4FD34
+:1041B000002800D0FFDF10BD2DE9F14F4C4ED6F89E
+:1041C00000B001274948F1F7BFFDDFF8208128B989
+:1041D0005FF0000708F10100F1F7CCFD454C002528
+:1041E0004FF0030901206060C4F80051C4F8045185
+:1041F000009931602060DFF800A118E0DAF80000D3
+:10420000C00614D50E2000F064F8EFF3108010F013
+:10421000010072B600D00120C4F80493D4F8001154
+:1042200019B9D4F8041101B920BF00B962B6D4F8A5
+:10423000000118B9D4F804010028DFD0D4F8040133
+:104240000028CFD137B1C6F800B008F10100F1F76E
+:104250007BFD11E008F10100F1F776FD0028B9D1EE
+:10426000C4F80893C4F80451C4F800510E2000F0BB
+:1042700030F81E48F1F77EFD0020BDE8F88F2DE9EB
+:10428000F0438DB00D46064600240DF110090DF1E6
+:10429000200817E004EB4407102255F82710684661
+:1042A00001F06CF905EB870710224846796801F0A8
+:1042B00065F96846FFF780FF10224146B86801F0B3
+:1042C0005DF9641CB442E5DB0DB00020BDE8F0836D
+:1042D00072E7002809DB00F01F020121914040092C
+:1042E000800000F1E020C0F880127047B10100208A
+:1042F00004E5004000E0004010ED00E0B14900207E
+:104300000870704770B5B04D01232B60AF4B1C682F
+:10431000002CFCD0002407E00E6806601E68002E0A
+:10432000FCD0001D091D641C9442F5D300202860B8
+:1043300018680028FCD070BD70B5A24E0446A44D8C
+:104340003078022800D0FFDFAC4200D3FFDF716974
+:10435000A048012903D847F23052944201DD0322DC
+:104360004271491C7161291BC1609A497078F0F74C
+:10437000CDFE002800D1FFDF70BD70B5914C0D4619
+:104380006178884200D0FFDF914E082D4BD2DFE8E4
+:1043900005F04A041E2D4A4A4A382078022800D0E7
+:1043A000FFDF03202070A078012801D020B108E0B1
+:1043B000A06800F039FE04E004F1080007C8FFF728
+:1043C000A1FF05202070BDE87040F0F75FBBF0F75B
+:1043D00053FC01466068F1F768F9B04202D26169A6
+:1043E00002290BD30320F1F746FC12E0F0F744FC5E
+:1043F00001466068F1F759F9B042F3D2BDE8704068
+:104400009AE7207802280AD0052806D0FFDF04208A
+:104410002070BDE8704000F0CAB8022000E0032020
+:10442000F1F729FCF3E7FFDF70BD70B50546F0F743
+:1044300023FC644C60602078012800D0FFDF6549D0
+:10444000012008700020087104208D6048716048C8
+:10445000C860022020706078F0F758FE002800D174
+:10446000FFDF70BD10B5574C207838B90220F1F746
+:1044700018FC18B90320F1F714FC08B1112010BD85
+:104480005548F0F77EFB6070202804D00120207092
+:104490000020606110BD032010BD2DE9F0471446D7
+:1044A000054600EB84000E46A0F1040800F0CFFDA5
+:1044B00007464FF0805001694F4306EB8401091F06
+:1044C000B14201D2012100E0002189461CB10069FE
+:1044D000B4EB900F02D90920BDE8F0872846DCF73D
+:1044E000EBFE90B9A84510D3BD4205D2B84503D222
+:1044F00045EA0600800701D01020EDE73046DCF7E2
+:10450000DBFE10B9B9F1000F01D00F20E4E733480A
+:1045100033490068884205D0224631462846FFF7D5
+:10452000F1FE14E0FFF79EFF0028D5D125480021B9
+:104530008560C0E90364817000F06FF810B14FF43A
+:10454000A97000E0292060431830FFF76EFF0020BB
+:10455000C2E770B505464FF0805004696C432046B1
+:10456000DCF7AAFE08B10F2070BD00F070FDA84274
+:1045700001D8102070BD194819490068884203D03D
+:10458000204600F051FD10E0FFF76CFF0028F1D14C
+:104590000C4801218460817000F03FF808B1114897
+:1045A00000E011481830FFF740FF002070BD10B543
+:1045B000044C6078F0F741FB00B9FFDF0020207069
+:1045C00010BD0000B401002004E5014000E40140FA
+:1045D000105C0C005C1300207B43020054000020A0
+:1045E000BEBAFECA645E0100084C01004FF0805064
+:1045F000D0F830010A2801D0002070470120704710
+:1046000000B5FFF7F3FF20B14FF08050D0F8340130
+:1046100008B1002000BD012000BD4FF08050D0F84F
+:104620003011062905D0D0F83001401C01D00020FF
+:104630007047012070474FF08050D0F830010828B3
+:1046400001D0002070470120704700B5FFF7E5FF5B
+:1046500048B14FF08050D0F83411062905D3D0F876
+:104660003401401C01D0002000BD012000BD00B578
+:10467000FFF7D3FF58B14FF08050D0F8341106291E
+:1046800005D3D0F83401401C01D0012000BD00202A
+:1046900000BD00007B49096801600020704779492E
+:1046A00008600020704701218A0720B1012804D04A
+:1046B00042F204007047916700E0D1670020704724
+:1046C00071490120086042F20600704708B50423D2
+:1046D0006D4A1907103230B1C1F80433106840F048
+:1046E000010010600BE0106820F001001060C1F8BC
+:1046F00008330020C1F808016448006800900020D9
+:1047000008BD011F0B2909D85F4910310A6822F042
+:104710001E0242EA400008600020704742F2050095
+:1047200070470F2809D8584910310A6822F470627E
+:1047300042EA002008600020704742F205007047FE
+:10474000000100F18040C0F804190020704700010A
+:1047500000F18040C0F8081900207047000100F106
+:104760008040D0F80009086000207047012801D976
+:1047700007207047464A52F8200002680A43026048
+:1047800000207047012801D907207047404A52F89D
+:10479000200002688A43026000207047012801D986
+:1047A000072070473A4A52F820000068086000204D
+:1047B0007047020037494FF0000003D0012A01D0B2
+:1047C000072070470A607047020033494FF000002D
+:1047D00003D0012A01D0072070470A60704708B54E
+:1047E0004FF40072510510B1C1F8042308E0C1F87C
+:1047F00008230020C1F8240124481C3000680090E0
+:10480000002008BD08B58022D10510B1C1F80423ED
+:1048100008E0C1F808230020C1F81C011B4814302F
+:1048200000680090002008BD08B54FF48072910523
+:1048300010B1C1F8042308E0C1F808230020C1F832
+:1048400020011248183000680090002008BD0D4972
+:10485000383109680160002070474FF08041002026
+:10486000C1F80801C1F82401C1F81C01C1F82001F8
+:104870004FF0E020802180F800140121C0F80011E1
+:10488000704700000004004000050040080100409F
+:10489000885D020078050040800500406249634B56
+:1048A0000A6863499A42096801D1C1F310010160A5
+:1048B000002070475C495D4B0A685D49091D9A42BA
+:1048C00001D1C0F310000860002070475649574BD3
+:1048D0000A68574908319A4201D1C0F310000860B4
+:1048E0000020704730B5504B504D1C6842F2080311
+:1048F000AC4202D0142802D203E0112801D318469A
+:1049000030BDC3004B481844C0F81015C0F814253A
+:10491000002030BD4449454B0A6842F209019A42E1
+:1049200002D0062802D203E0042801D308467047CB
+:10493000404A012142F83010002070473A493B4B71
+:104940000A6842F209019A4202D0062802D203E024
+:10495000042801D308467047364A012102EBC00003
+:1049600041600020704770B52F4A304E314C1568B9
+:1049700042F2090304EB8002B54204D0062804D2B7
+:10498000C2F8001807E0042801D3184670BDC1F32F
+:104990001000C2F80008002070BD70B5224A234EF6
+:1049A000244C156842F2090304EB8002B54204D09E
+:1049B000062804D2D2F8000807E0042801D31846DC
+:1049C00070BDD2F80008C0F310000860002070BD70
+:1049D000174910B50831184808601120154A002100
+:1049E00002EBC003C3F81015C3F81415401C1428BB
+:1049F000F6D3002006E0042804D302EB8003C3F8BA
+:104A0000001807E002EB8003D3F80048C4F3100459
+:104A1000C3F80048401C0628EDD310BD04490648E1
+:104A2000083108607047000054000020BEBAFECA7A
+:104A300000F5014000F001400000FEFF834B1B68C1
+:104A400003B19847BFF34F8F81480168814A01F451
+:104A5000E06111430160BFF34F8F00BFFDE710B568
+:104A6000EFF3108010F0010F72B601D0012400E0C6
+:104A7000002400F0E1F850B1DCF7BEFCEFF7C1FE16
+:104A8000F1F79BF8E7F75EFA73490020086004B974
+:104A900062B6002010BD2DE9F0410C460546EFF34B
+:104AA000108010F0010F72B601D0012600E0002640
+:104AB00000F0C2F820B106B962B60820BDE8F08166
+:104AC000DCF78EFBDCF79CFC024600200123470943
+:104AD000BF0007F1E02700F01F01D7F80071CF40B9
+:104AE000F9071BD0202803D222FA00F1C90727D1E9
+:104AF00041B2002904DB01F1E02191F8001405E046
+:104B000001F00F0101F1E02191F8141D4909082974
+:104B100016D203FA01F717F0EC0F11D0401C6428ED
+:104B2000D5D3E7F7EDF94D4A4D490020E7F730FAC4
+:104B300049494C4808602046DCF7C5FB60B904E0F1
+:104B400006B962B641F20100B8E7404804602DB1F1
+:104B50002846DCF705FC18B110242CE0424D19E082
+:104B60002878022802D94FF4805424E00724002832
+:104B7000687801D0F8B908E0E8B120281BD8A878F7
+:104B8000212818D8012816D001E0A87898B9E8782B
+:104B90000B2810D83549802081F8140DDCF730FC43
+:104BA0002946F0F7F0FFEFF7EBFD00F083FA284617
+:104BB000DCF7F4FB044606B962B61CB1FFF74FFF01
+:104BC00020467BE7002079E710B5044600F034F872
+:104BD00000B101202070002010BD25490860002090
+:104BE000704770B50C4623490D682249224E0831A2
+:104BF0000E60102807D011280CD012280FD01328CF
+:104C000011D0012013E0D4E90001FFF744FF35463D
+:104C100020600DE0FFF723FF0025206008E02068FA
+:104C2000FFF7D2FF03E012492068086000202060EF
+:104C30001048001D056070BD07480A490068884299
+:104C400001D101207047002070470000CC010020F6
+:104C50000CED00E00400FA0554000020F8130020D9
+:104C600000000020BEBAFECA905D02000BE000E02A
+:104C700004000020100502400100000100B59B491E
+:104C800002282ED021DC10F10C0F08BFF42028D010
+:104C90000FDC10F1280F08BFD82022D010F1140F1C
+:104CA00008BFEC201DD010F1100F08BFF02018D065
+:104CB00021E010F1080F08BFF82012D010F1040F06
+:104CC0000CBFFC2000280CD015E0A0F10300062842
+:104CD00011D2DFE800F00E0C0A080503082000E0FE
+:104CE0000720086000BD0620FBE70520F9E7042047
+:104CF000F7E70320F5E7FFDF00BD00B57C49012899
+:104D000008BF03200CD0022808BF042008D00428C4
+:104D100008BF062004D0082816BFFFDF052000BD0D
+:104D2000086000BD70B505460C4616461046F2F701
+:104D3000C1FD022C08BF4FF47A7105D0012C0CBFC5
+:104D40004FF4C86140F6340144183046F2F7ECFDE8
+:104D5000204449F6797108444FF47A71B0FBF1F0C0
+:104D6000281A70BD70B505460C460846F2F7BBFD23
+:104D7000022C08BF40F24C4105D0012C0CBF40F67C
+:104D800034014FF4AF5149F6CA62511A08444FF446
+:104D90007A7100F2E140B0FBF1F0281A801E70BD7C
+:104DA00070B5064615460C460846F2F79CFD022DE6
+:104DB00008BF4FF47A7105D0012D0CBF4FF4C861C4
+:104DC00040F63401022C08BF40F24C4205D0012CC1
+:104DD0000CBF40F634024FF4AF52891A084449F62A
+:104DE000FC6108444FF47A71B0FBF1F0301A70BDE9
+:104DF00070B504460E460846F2F75CFD054630469F
+:104E0000F2F792FD28444AF2AB3108444FF47A712C
+:104E1000B0FBF1F0201A801E70BD2DE9F04107466D
+:104E20001E460D4614461046082A16BF04284EF6A4
+:104E30002830F2F73FFD07EB4701C1EBC71100EB4C
+:104E4000C100022D08BF40F24C4105D0012D0CBF1E
+:104E500040F634014FF4AF5147182846F2F743FDAE
+:104E6000381A4FF47A7100F6B730B0FBF1F52046EE
+:104E7000F2F70EFD28443044401DBDE8F08170B5C6
+:104E8000054614460E460846F2F714FD05EB4502AA
+:104E9000C2EBC512C0EBC2053046F2F745FD2D1A34
+:104EA0002046082C16BF04284EF62830F2F702FDE3
+:104EB00028444FF47A7100F6B730B0FBF1F5204684
+:104EC000F2F7E6FC2844401D70BD0A49082818BFC7
+:104ED0000428086803BF20F46C5040F4444040F0BC
+:104EE000004020F000400860704700000C150040B2
+:104EF00010150040401700402DE9FE430C46804647
+:104F0000F8F744FE074698F80160204601A96A4672
+:104F1000EDF72DFB05000DD0012F02D00320BDE8D9
+:104F2000FE83204602AA0199EDF743FA0298B0F8F1
+:104F300003000AE0022F14D1042E12D3B8F80300A4
+:104F4000BDF80020011D914204D8001D80B2A919AE
+:104F5000814202D14FF00000E1E702D24FF00100A0
+:104F6000DDE74FF00200DAE7C2790D2341B342BB1F
+:104F70008188012904D94908818004BF01228280E7
+:104F80000168012918BF002930D001686FEA0101CA
+:104F9000C1EBC10202EB011281796FEA010101EB61
+:104FA0008103C3EB811111444FEA91420160818872
+:104FB000B2FBF1F301FB132181714FF0010102E01B
+:104FC0001AB14FF00001C17170478188FF2908D2E2
+:104FD0004FF6FF7202EA41018180FF2984BFFF2260
+:104FE00082800168012918BF0029CED10360CCE777
+:104FF000817931B1491E11F0FF0181711CBF002080
+:1050000070470120704710B50121C1718171818005
+:1050100004460421F0F712FF002818BF10BD2068D5
+:10502000401C206010BD00000B4A022111600B499A
+:105030000B68002BFCD0084B1B1D1860086800286B
+:10504000FCD00020106008680028FCD070474FF0AA
+:10505000805040697047000004E5014000E40140D1
+:1050600002000B464FF00000014620D0012A04D078
+:10507000022A04D0032A0DD103E0012002E002201D
+:1050800015E00320072B05D2DFE803F00406080A29
+:105090000C0E100007207047012108E0022106E0F5
+:1050A000032104E0042102E0052100E00621EFF7DE
+:1050B00086BD0000F9480521817000210170417012
+:1050C0007047F7490A78012A05D0CA681044C860B9
+:1050D0004038F0F7B7BA8A6810448860F8E70028CB
+:1050E00019D00378EF49F04A13B1012B0ED011E02B
+:1050F0000379012B00D06BB943790BB1012B09D196
+:105100008368643B8B4205D2C0680EE00379012BB3
+:1051100002D00BB10020704743790BB1012BF9D1BC
+:10512000C368643B8B42F5D280689042F2D801207C
+:105130007047DB4910B501220A700279A2B1002242
+:105140000A71427992B104224A718268D34C523278
+:105150008A60C0681434C8606060EFF78DFDCF4985
+:1051600020600220887010BD0322E9E70322EBE7EC
+:1051700070B5CB4D044600202870207988B10020FE
+:105180002871607978B10420C44E6871A168F06814
+:10519000EFF773FAA860E0685230E8600320B0705F
+:1051A00070BD0120ECE70320EEE72DE9F041054654
+:1051B0000226F0F773F9006800B1FFDFB74C012752
+:1051C0003DB12878B0B1012805D0022810D00328BD
+:1051D00013D027710CE06868C82807D3F0F799FA54
+:1051E00020B16868FFF76DFF012603E0002601E0AB
+:1051F00000F05EF93046BDE8F08120780028F7D154
+:105200006868FFF76CFF0028E3D06868017879B11F
+:10521000A078042800D0FFDF01216868FFF7A8FF0D
+:105220009F49E078EFF772FF0028E1D1FFDFDFE769
+:10523000FFF77FFF6770DBE72DE9F047974C884663
+:10524000E178884200D0FFDFDFF850920025012787
+:10525000934E09F11409B8F1080F75D2DFE808F090
+:10526000040C28527A808D95A078032802D0022859
+:1052700000D0FFDFBDE8F087A078032802D0022825
+:1052800000D0FFDF0420A07025712078002878D19D
+:10529000FFF717FF3078012806D0B068E06000F013
+:1052A00027F92061002060E0E078EFF72CFEF5E7B9
+:1052B000A078032802D0022800D0FFDF2078002841
+:1052C0006DD1A078032816D0EFF7D6FC01464F46E3
+:1052D000D9F80000F0F7E9F900280EDB796881427F
+:1052E0000BDB081AF0606E49E078EFF70FFF00283B
+:1052F000C0D1FFDFBEE7042028E00420F0F7BBFCAC
+:10530000A570B7E7A078032802D0022800D0FFDFFD
+:10531000207888BBA078032817D0EFF7ADFC0146B2
+:105320004F46D9F80000F0F7C0F90028E5DB7968AE
+:105330008142E2DB081AF0605949E078EFF7E6FEB7
+:10534000002897D1FFDF95E740E00520F0F793FCB8
+:10535000A7708FE7A078042800D0FFDF022004E0C8
+:10536000A078042800D0FFDF0120A1688847FFF75C
+:105370001CFF054630E004E011E0A078042800D0CE
+:10538000FFDFBDE8F04700F093B8A078042804D010
+:10539000617809B1022800D0FFDF207818B1BDE89C
+:1053A000F04700F08EB8207920B10620F0F763FCBA
+:1053B0002571CDE7607838B13949E078EFF7A6FE7E
+:1053C00000B9FFDF657055E70720BFE7FFDF51E752
+:1053D0003DB1012D03D0FFDF022DF9D14AE70420B2
+:1053E000C3E70320C1E770B5050004D02B4CA078BB
+:1053F000052806D101E0102070BD0820F0F751FC0F
+:1054000008B1112070BD2948EFF7BBFBE0702028E0
+:1054100006D00121F0F777FA0020A560A07070BDDA
+:10542000032070BD1D4810B5017809B1112010BDD1
+:105430008178052906D0012906D029B10121017002
+:10544000002010BD0F2010BD00F03BF8F8E770B54C
+:10545000124C0546A07808B1012809D155B128465B
+:10546000FFF73DFE40B1287840B1A078012809D06F
+:105470000F2070BD102070BD072070BD2846FFF7BB
+:1054800058FE03E000212846FFF772FE0449E07849
+:10549000EFF73CFE00B9FFDF002070BDD001002017
+:1054A0006C1300203D860100FF1FA1073952020046
+:1054B0000A4810B5006900F013F8BDE81040EFF796
+:1054C000E5BA064810B5C078EFF7B7FB00B9FFDFC3
+:1054D0000820F0F7D0FBBDE81040EBE5D00100203C
+:1054E0000C490A6848F202139A4302430A60704763
+:1054F000084A116848F2021301EA03009943116057
+:1055000070470246044B10201344FC2B01D8116055
+:1055100000207047C80602400018FEBF7047704761
+:105520007047704740EA010310B59B070FD1042A6A
+:105530000DD310C808C9121F9C42F8D020BA19BA5E
+:10554000884201D9012010BD4FF0FF3010BD1AB1C3
+:10555000D30703D0521C07E0002010BD10F8013B18
+:1055600011F8014B1B1B07D110F8013B11F8014B3F
+:105570001B1B01D1921EF1D1184610BD032A40F227
+:10558000308010F0030C00F0158011F8013BBCF1E5
+:10559000020F624498BF11F801CB00F8013B38BFFD
+:1055A00011F8013BA2F1040298BF00F801CB38BF0B
+:1055B00000F8013B11F0030300F02580083AC0F029
+:1055C000088051F8043B083A51F804CBA0E80810D1
+:1055D000F5E7121D5CBF51F8043B40F8043BAFF304
+:1055E0000080D20724BF11F8013B11F801CB48BF5E
+:1055F00011F8012B24BF00F8013B00F801CB48BF94
+:1056000000F8012B704710B5203AC0F00B80B1E8CC
+:105610001850203AA0E81850B1E81850A0E81850E7
+:10562000BFF4F5AF5FEA027C24BFB1E81850A0E8F0
+:10563000185044BF18C918C0BDE810405FEA827C0A
+:1056400024BF51F8043B40F8043B08BF7047D20721
+:1056500028BF31F8023B48BF11F8012B28BF20F8C2
+:10566000023B48BF00F8012B704702F0FF0343EAFA
+:10567000032242EA024200F002B84FF0000204297D
+:10568000C0F0128010F0030C00F01B80CCF1040C71
+:10569000BCF1020F18BF00F8012BA8BF20F8022BA5
+:1056A000A1EB0C0100F00DB85FEAC17C24BF00F84B
+:1056B000012B00F8012B48BF00F8012B70474FF079
+:1056C000000200B5134694469646203922BFA0E852
+:1056D0000C50A0E80C50B1F12001BFF4F7AF09075E
+:1056E00028BFA0E80C5048BF0CC05DF804EB89004F
+:1056F00028BF40F8042B08BF704748BF20F8022B92
+:1057000011F0804F18BF00F8012B704770477047A9
+:1057100070477047FEDF18490978F9B904207146CF
+:1057200008421BD10699154A914217DC06990229B5
+:1057300014DB02394878DF2810D10878FE2807D01A
+:10574000FF280BD14FF001004FF000020C4B18471F
+:1057500041F201000099019A094B1847094B002BAF
+:1057600002D01B68DB6818474FF0FF3071464FF0DE
+:105770000002034B1847000028ED00E00060020023
+:105780003D4A020004000020174818497047FFF7FF
+:10579000FBFFDBF713FD00BD154816490968884279
+:1057A00003D1154A13605B68184700BD20BFFDE7B1
+:1057B0000F4810490968884210D1104B18684FF003
+:1057C000FF318842F2D080F308884FF020218842D0
+:1057D00004DD0B48026803210A4302600948804740
+:1057E00009488047FFDF000080130020801300205D
+:1057F00000100000000000200400002000600200F3
+:1058000014090040C52F000099570200042071467A
+:10581000084202D0EFF3098101E0EFF308818869C3
+:1058200002380078102813DB20280FDB2C280BDB34
+:105830000A4A12680A4B9A4203D1602804DB094ADB
+:105840001047022008607047074A1047074A104770
+:10585000074A12682C3212681047000054000020DA
+:10586000BEBAFECA0514000041410200E34B02002B
+:10587000040000200D4B0E4908470E4B0C49084709
+:105880000D4B0B4908470D4B094908470C4B08497C
+:1058900008470C4B064908470B4B054908470B4B7B
+:1058A000034908470A4B024908470000E1BC0000D1
+:1058B0005DC00000552D0000CF2B00005D2B0000C7
+:1058C000F72D0000211400001B2900004D2F0000BF
+:1058D000C911000000210160818070470021016032
+:1058E0004160017270470A6802600B79037170476A
+:1058F000959600003F980000A1990000059A0000CD
+:105900003F9A0000739A0000AD9A0000DD9A0000F3
+:10591000579B00008D970000C5990000A71200005A
+:10592000C14300000D44000073440000FF44000028
+:1059300023460000E546000017470000EF4700003F
+:1059400087480000DB480000C1490000E149000031
+:10595000C3160000E7160000171600006B160000C3
+:1059600019170000AD17000047600000F761000044
+:10597000BD650000D56600005F670000DD670000C0
+:105980004168000061690000316A00009D6A000002
+:10599000034A0000094A0000134A00007B4A000045
+:1059A000A74A0000634C00008D4C0000C54C00006D
+:1059B0002F4D0000194E00002F4E00003144000012
+:1059C000A7120000A7120000A7120000A7120000F3
+:1059D000A7120000A7120000A7120000A3250000D4
+:1059E000292600004526000061260000EF27000060
+:1059F0008B26000095260000D7260000F92600001F
+:105A0000D527000017280000A7120000A7120000E9
+:105A1000CB830000EB830000F58300002F8400009F
+:105A20005D8400004D850000DB850000EF850000EF
+:105A30003D86000053870000F9880000218A00009D
+:105A40004F730000398A0000A7120000A71200005F
+:105A5000D9B5000043B7000097B7000003B80000B5
+:105A6000B3B80000010000000000000010011001A8
+:105A70003A0200001A02000405060000FFFFFFFFC3
+:105A80000000FFFFCDAD0000233D000049210000D4
+:105A900099730000118F000000000000D5910000F4
+:105AA00099910000C3910000AB910000000002003A
+:105AB00000000000000200000000000000010000E3
+:105AC000000000007781000057810000C5810000C0
+:105AD00025250000E72400000725000037A9000065
+:105AE00063A900006BAB000041590000E581000094
+:105AF0000000000015820000732500000000000077
+:105B000000000000000000004DAA0000000000009E
+:105B1000D55900000300000001555555D6BE898EA9
+:105B200000006306630C631200000703AB054F0817
+:105B3000000053044308330C00000000900A0000EA
+:105B4000900A0000C3560000C35600009D430000A9
+:105B500079AC00001B7600005B2000001D380200BD
+:105B6000E1A401000157000001570000BF430000FD
+:105B7000DBAC00009F760000CD2000004938020019
+:105B8000F5A4010070017001400038005C002400A1
+:105B90005001080200000300656C74620000000000
+:105BA000000000000000000000000000870000006E
+:105BB000000000000000000000000000BE83605AEA
+:105BC000DB0B376038A5F5AA9183886C01000000D3
+:105BD000BB31010081400100000000010206030406
+:105BE00005000000070000000000000006000000A3
+:105BF0000A0000003200000073000000B400000042
+:105C0000EB8F01006F1F020017F90000D9B70100E8
+:105C1000F3F70100D9B70100B5FA000097B9010008
+:105C2000E9F3010097B90100F1F6000025B9010080
+:105C300011F7010025B9010013F90000EDB70100CB
+:105C4000D5EF0100EDB7010067FF000019BC0100AE
+:105C5000A7F8010019BC0100F401FA0096006400E5
+:105C60004B0032001E0014000A0005000200010073
+:105C70000049000000000000AAAED7AB154120107B
+:105C80000C0802170D010102090901010602091899
+:105C9000180301010909030305555555252627D683
+:105CA000BE898E00F401FA00960064004B003200B9
+:105CB0001E0014000A000500020001002549000032
+:105CC000000000009D480200B5480200CD480200D7
+:105CD000E5480200154902003D49020067490200FB
+:105CE0009B490200534502009B4402008D41020083
+:105CF00003550200395D0100495D0100755D010039
+:105D0000475E01004F5E0100615E0100A746020090
+:105D1000C1460200954602009F460200CD460200A1
+:105D20000347020023470200414702004F47020099
+:105D30005D4702006D470200854702009D47020053
+:105D4000B3470200C94702000000000087BA000004
+:105D5000DDBA0000F3BA000061500200B941020050
+:105D60007F420200E7530200255402004F54020014
+:105D7000195C010079600100DF470200054802005C
+:105D8000294802004F4802001C0500402005004041
+:105D900000100200B45D020008000020E4010000D1
+:105DA00044110000E85D0200EC01002094110000A5
+:105DB000A0110000011413F8130240200B20040668
+:105DC000441A0102228C2720FB349B5F8012800240
+:105DD0001E101B430B5419042A8608019F0916CB79
+:085DE000327F0B6CF410C000CF
+:02000004000FEB
+:104000000000042019A00F0041A00F0043A00F00E2
+:1040100045A00F0047A00F0049A00F0000000000BE
+:10402000000000000000000000000000754C0F00C0
+:104030004DA00F00000000004FA00F00F1480F003E
+:10404000ED4D0F0053A00F0053A00F0053A00F0021
+:1040500053A00F0053A00F0053A00F0053A00F0058
+:1040600053A00F0053A00F0053A00F0053A00F0048
+:1040700053A00F0053A00F0053A00F0053A00F0038
+:1040800053A00F001D700F0053A00F0053A00F008E
+:10409000D9700F0053A00F003D470F0053A00F0031
+:1040A00053A00F0053A00F0053A00F0053A00F0008
+:1040B00053A00F0053A00F000000000000000000FC
+:1040C00053A00F0053A00F0053A00F0053A00F00E8
+:1040D00053A00F0053A00F0053A00F00E5890F005D
+:1040E00053A00F0053A00F0053A00F0000000000CA
+:1040F0000000000053A00F000000000053A00F00BC
+:1041000000000000000000000000000000000000AF
+:10411000000000000000000000000000000000009F
+:10412000000000000000000000000000000000008F
+:10413000000000000000000000000000000000007F
+:10414000000000000000000000000000000000006F
+:10415000000000000000000000000000000000005F
+:10416000000000000000000000000000000000004F
+:10417000000000000000000000000000000000003F
+:10418000000000000000000000000000000000002F
+:10419000000000000000000000000000000000001F
+:1041A000000000000000000000000000000000000F
+:1041B00000000000000000000000000000000000FF
+:1041C00000000000000000000000000000000000EF
+:1041D00000000000000000000000000000000000DF
+:1041E00000000000000000000000000000000000CF
+:1041F00000000000000000000000000000000000BF
+:1042000010B5054C237833B9044B13B10448AFF310
+:1042100000800123237010BD5481002000000000A5
+:1042200000B00F0008B5034B1BB103490348AFF3BF
+:10423000008008BD000000005881002000B00F0081
+:10424000154B002B08BF134B9D46A3F5803A002168
+:104250008B460F461348144A121A00F063F80F4BAE
+:10426000002B00D098470E4B002B00D09847002021
+:10427000002104000D000D48002802D00C48AFF3C7
+:10428000008000F02BF82000290000F0A7F800F0D3
+:1042900011F800BF0000080000000420000000002A
+:1042A000000000005481002008C800200000000029
+:1042B0000000000008B5074B044613B10021AFF31E
+:1042C0000080054B1868836A03B19847204600F0C8
+:1042D00031F800BF00000000BCAC0F0070B50D4D00
+:1042E0000D4C641BA4100026A64209D10B4D0C4CAA
+:1042F00006F0D8FC641BA4100026A64205D170BDB0
+:1043000055F8043B98470136EEE755F8043B9847CB
+:104310000136F2E74C8100204C8100204C810020C6
+:104320005081002002440346934200D1704703F8B5
+:10433000011BF9E7FEE700BFBFF34F8F0549064BAE
+:10434000CA6802F4E0621343CB60BFF34F8F00BF33
+:10435000FDE700BF00ED00E00400FA054BDF704709
+:1043600010DF704711DF704713DF704718DF7047A9
+:1043700060DF704769DF704761DF704708B5034B46
+:104380001B68DB0700D500BEFFF7D6FFF0ED00E0AD
+:10439000014B1878704700BF718100201FB50023C2
+:1043A000CDE901330393684602230093FFF7DEFF54
+:1043B00005B05DF804FB08B5032000F05FFB4FF487
+:1043C0006D2000F06BFD43F20803186800F066FDF5
+:1043D0000420BDE8084000F051BB00002DE9F04783
+:1043E0004FF0804386B0D3F81C95D3F81C25A9F173
+:1043F000B10467426741B12A00F02781D3F81C4518
+:10440000A4F1A800444244419A4D9B4E04F001039C
+:104410002B704FF08043D3F81C857CB9B8F14E0F58
+:104420000CD0D3F81C25572A08D032681168934A5B
+:10443000914209D1D3F80034D90705D54FF0804314
+:104440000022C3F81C2501248D4B8E4AC3F8402559
+:104450008D4B1B68B3F5742F02D0002003F0F6F8E3
+:1044600000F070FA00F078FE002000F007FB00F08A
+:10447000E7FE78B1052000F001FB00F0F3FE08B183
+:1044800003F0E4F800F014FF08B103F0DFF80620B1
+:1044900000F0F4FA1CB9232000F06AF904462B78E6
+:1044A000002B40F0D480232000F062F910B11220DC
+:1044B00000F05EF900F0010043F20803287018686C
+:1044C00000F092FD824644B938B133686B4A1A60F5
+:1044D0006E4B6F4843F001039847336800221A601F
+:1044E0001CB9BAF1000F40F091802C78002C00F03C
+:1044F000B480082000F0C2FAB9F1B10F01D0FFF783
+:104500004DFF4FF47420FFF72FFF08B103F09EF822
+:10451000604B61491868019001A8FFF721FF08B1BD
+:1045200003F094F85D4991F816335A09EC231341CE
+:10453000DA0708D55A4B9A68002A00F08A801A6870
+:1045400042F480021A600C22564B029300210DEBBC
+:104550000200FFF7E7FE40F20113029A039303A95A
+:104560004020FFF707FF08B103F070F80C2200218C
+:104570000DEB0200FFF7D6FE9DF80C30029A43F0D7
+:10458000010303A9A0208DF80C30FFF7F3FE08B15A
+:1045900003F05CF80C2200210DEB0200FFF7C2FED5
+:1045A00001238DF80C30029AF72303A92320ADF8DC
+:1045B0000E30FFF7DFFE08B103F048F80C220021AF
+:1045C0000DEB0200FFF7AEFE01238DF80C308DF8E5
+:1045D0000E30029A062303A92020ADF81030FFF711
+:1045E000C9FE08B103F032F802A8FFF7C1FE08B116
+:1045F00003F02CF827460021287800F0C5FD08B10B
+:1046000003F024F82B7893B3FFF7ACFE232000F0DF
+:10461000AFF828B9122000F0ABF808B1FFF7CBFED5
+:1046200000F09AFA43F20803186800F0DDFC50B17C
+:1046300000F006FE38B90FB9FFF7B0FE43F20803E9
+:10464000186800F0D5FDFFF777FE0124DCE60120B5
+:1046500030E74FF480030B6075E7022000F00EFA9C
+:10466000A8F14E035842584103F09AFCC3E703F007
+:1046700003FDCBE77181002064800020D51A5A0029
+:1046800000A000400002060014100010D0AC0F0083
+:104690000048E801C0AC0F007D430F0000E100E0DE
+:1046A000ECC600200080002010B5FEB04FF4FA7375
+:1046B0000DF1020101A8ADF80230FFF75DFE0446DE
+:1046C00040B9BDF80430102B07D0112B0CD001A835
+:1046D00001F076F820467EB010BD054B01221A701D
+:1046E000072000F0CBF9F2E7014B18700820F8E73B
+:1046F0007081002013B501A8FFF730FE044660B9B1
+:10470000019801F08DFF019B0A2B09D0092B09D0DC
+:104710000B2B02D1012004F0C5FA204602B010BDD7
+:104720002046F8E70220F6E708B5FFF7BDFF0528A9
+:10473000FBD1FFF7DFFF0528F7D108BD0021024AB2
+:10474000084602F0EBBE00BF29470F001F2884BFB8
+:1047500000F01F00044B054A98BF4FF0A04300F53E
+:10476000E07043F820207047000300500C00030065
+:104770001F288ABF064B4FF0A04300F01F00D3F85C
+:10478000103523FA00F0C04300F00100704700BF6D
+:104790000003005000234FF0FF328360C0F8003563
+:1047A000C0F86025C0F86425C0F86825C0F86C25FD
+:1047B00040F2FF32C0F80435C0F80825C0F80C35C7
+:1047C000C0F81035C0F81435C0F82035C0F82435CD
+:1047D000704700001B4B00221F2930B5C3F800258D
+:1047E0008BBF01F01F030B46174A4FF0A04203F5A1
+:1047F000E074032542F82450012404FA03F3C2F8BC
+:104800000C3500F5AC700F4B002243F82010FF214F
+:10481000C3F804250220C3F808150421C3F80C15B9
+:10482000C3F810050948C3F81425C3F82005C3F8D8
+:104830002415C3F82825C3F82C25C3F80045C3F870
+:10484000102130BD00C001400003005068830020EB
+:104850000148FFF79FBF00BF00C00140074B23F88E
+:104860001010074B00221A6082B01B680193019B55
+:10487000044B01221A6002B0704700BF6883002019
+:1048800010C1014008C0014010B5164B1C68164B02
+:104890001B68B4FBF3F1580803FB1142824288BF46
+:1048A0009A1A4F215143B1FBF0F1C1F1FF0189B2D6
+:1048B0000020FFF7D3FF0D4B1A68B4FBF2F150084C
+:1048C00002FB1143834288BFD31A8F215943B1FBA6
+:1048D000F0F1C1F1FF0189B20120BDE81040FFF7FE
+:1048E000BDBF00BF64830020A4830020AC830020F0
+:1048F000024A136801331360FFF7C6BF64830020C8
+:104900000F4B00221421C3F80C25C3F80425C3F86B
+:104910000815C3F81425C3F81025C3F82825C3F8D3
+:104920002C250922C3F860254FF0FF32C3F8642517
+:10493000C3F86825C3F86C250122C3F80025704729
+:104940000010024038B54FF0804301240025DC60A0
+:104950002320C3F818559C60FFF7F8FE1220FFF7DC
+:10496000F5FE184B4FF4C8502343984721212846A1
+:10497000FFF730FF22212046FFF72CFFFFF7C0FF93
+:10498000114A1E21082002F0A5FD08B102F05EFECA
+:1049900002F008FD0D490E4BE02081F823001B6852
+:1049A0004FF47A72B3FBF2F3013BB3F1807F07D28D
+:1049B000084A5360002381F82300936007231360A3
+:1049C00038BD00BFE0AC0F007481002000ED00E0B6
+:1049D0003081002010E000E0F0B585B043788DF81C
+:1049E000043083788DF80530214903788DF806303E
+:1049F00001AD082248F20D0648F20607A2F10803AD
+:104A000015F801CB9BB280241CEA040F14BF30467A
+:104A1000384621F81300581C80B290424FEA5404E3
+:104A200024D1083292B2202AE8D102339BB24FF44B
+:104A300000420A8621F813200E4B1A22C3F82015D3
+:104A4000C3F8242503F5887300221A601A680292BD
+:104A5000029A094A012111601A68002AFCD000223A
+:104A60001A601B680393039B05B0F0BD0346CBE7B8
+:104A700070830020001002400810024037B5234C1C
+:104A8000002225680095019208281AD8DFE800F076
+:104A90000C050C19191308292D004FF47F430093BE
+:104AA0001B4B40F6B8320BE04FF47F030093184BDA
+:104AB0004FF4967204E04FF47F030193144B642289
+:104AC0001A60009B1349019A0B40009392B10A406F
+:104AD000114B019201221A7001A8FFF77DFF03B06C
+:104AE00030BDFF2300930D4BDBE74FF0FF13009326
+:104AF0000A4BDDE79D4202D023606846EDE7064B96
+:104B00001B78002BEBD00148E7E700BFA88300200B
+:104B1000A483002004040400B0830020AC830020A0
+:104B200013B50B4C0023ADF804308DF8063044F07B
+:104B300001044FF44860A04701A8FFF74DFF4FF470
+:104B40004860A0470348FFF725FE02B010BD00BF34
+:104B5000E0AC0F000010024008B50E4B00221A60B6
+:104B6000FFF776FEFFF7DCFF0B4B4FF40032C3F884
+:104B7000802003F1C04303F53C534FF48032C3F867
+:104B80004823C3F8082301225A609A604FF08043FB
+:104B9000DA6008BD10E000E000E100E038B50C4C40
+:104BA00021684B1C054612D04FF48052094805F08D
+:104BB000D3FB48B115B1206800F070F94FF4806262
+:104BC0000449206800F082F94FF0FF33236038BDBC
+:104BD00068800020B48300202DE9F0410F4E9046FC
+:104BE00020F47F64326824F00F04A24205460F4689
+:104BF00009D01846FFF7D2FF4FF4805221460848EB
+:104C0000346005F0B7FB0648C5F30B05424639464C
+:104C10002844BDE8F04105F0ADBB00BF688000202E
+:104C2000B483002038B50C46F8B90968D9B1104AE8
+:104C3000914215460CD0531A3B2B12D93C222846E0
+:104C400005F098FB04E0C85CD05413F1FF33FAD2AE
+:104C500000223C21064802F041FD0023A887236082
+:104C600038BD3D23F1E70E23F9E70123F7E700BF45
+:104C7000807F00206FF00203064A9E4502D1EFF3C9
+:104C8000098101E0EFF308818869A0F10200007852
+:104C9000104700BF254C0F0038B50546A8B10D4C94
+:104CA00000223C21204602F019FDA38F83420ED141
+:104CB000224604F13C0152F8040B45F8040B8A42E9
+:104CC000F9D10133A387002038BD0E20FCE70B206B
+:104CD000FAE700BF807F00200B2970B50446154617
+:104CE00030D90389053300EB43030144CA1AD2B219
+:104CF000012A27D98B4225D81946134805F03AFBDB
+:104D00002388522B06D1AB0711D062884CF668631A
+:104D10009A420CD00F2014E034F8022B824204D0C7
+:104D20002E88964203F1010308D1002009E0218971
+:104D300000230A344FF6FE7043F20C059942EBD87B
+:104D40000B2070BD0920FCE7B493002008B50022B9
+:104D500002F0C4FC044A5178137843EA01239842D4
+:104D600014BF0B20002008BDB493002000F1804345
+:104D70001A68002A1BBF0022012000201A60704719
+:104D80000F4B1A78D2B902784FF08041C2F340023B
+:104D9000C1F88025027802F00102C1F87825094A9D
+:104DA0001168C90706D4E02182F800130121C2F876
+:104DB0008011116001221A70034870470348704740
+:104DC000E8C6002000E100E00000AD0B0C00AD0BD8
+:104DD000014B02681A607047C89300204FF080436F
+:104DE0004FF46072C3F804237047000010B54FF011
+:104DF0008043D3F80443620707D54FF48470FFF76C
+:104E0000B5FF10B11E4B1B689847A30608D54FF499
+:104E10008A70FFF7ABFF18B11A4B00201B68984748
+:104E2000600608D54FF48C70FFF7A0FF18B1154B42
+:104E300001201B689847210608D54FF48E70FFF7B4
+:104E400095FF18B1104B00201B689847E20508D564
+:104E50004FF49070FFF78AFF18B10B4B01201B68CD
+:104E60009847A3050AD54FF49270FFF77FFF28B14A
+:104E7000054B02201B68BDE81040184710BD00BF5D
+:104E8000C0930020C4930020C8930020024AD2F8A7
+:104E90000034002BFBD0704700E001400A4908B500
+:104EA0000223C1F80435BFF36F8FBFF34F8FC1F8F2
+:104EB0000805FFF7EBFF0023C1F80435BFF36F8F40
+:104EC000BFF34F8F08BD00BF00E001400E4B10B58F
+:104ED0000124C3F80445BFF36F8FBFF34F8F01EB7D
+:104EE0008204401AA14208D1074B0022C3F80425CE
+:104EF000BFF36F8FBFF34F8F10BD431851F8042BD2
+:104F00001A60FFF7C3FFEDE700E0014011DF7047D3
+:104F100013DF7047064B1878012803D1012904BF1D
+:104F20000221197012B1104602F090BB704700BF09
+:104F3000F893002070B5124C124D134ED4F8003483
+:104F40007BB1C4F80056C4F80456C4F80856C4F837
+:104F50000C56C4F81056C4F81456C4F81856C4F8C1
+:104F60001C5602F041FB05F051F820B104F062F844
+:104F7000002004F07DFB3378023B022BDED870BDAD
+:104F8000000001403546526EF893002008B5FFF747
+:104F9000FFF988B11C21114801F0DCFB08B102F0D7
+:104FA00055FB00231C220E490C4801F0C3FB98B1AD
+:104FB000BDE8084002F04ABB4FF47F20FFF76EFFC8
+:104FC000072207494FF47F20FFF780FF054B1A782F
+:104FD000012A04BF02221A7008BD00BFF09300200E
+:104FE000FC930020F893002007B50368013303D138
+:104FF000002003B05DF804FB01A800F087F9019BD5
+:105000001A88012AF4D1588830B1996843F208030C
+:105010000022186802F062FB019B5B881B1A584251
+:105020005841E6E784B02DE9F34108AC84E80F006D
+:105030009DF82040BDF822800B9D01A8DDE909768E
+:1050400000F064F954B9384B0122FF21A3F8028023
+:105050009D601A809980354B1A7012E0012C17D18F
+:10506000314BBA192A449A60A5221A80FF229A80ED
+:105070000C9AA3F80280C3E903765D619A612B4B19
+:105080001C70FFF783FF02B0BDE8F04104B0704729
+:10509000032C0FD1019A244B1188198051889268F2
+:1050A0009A60C3E90376AA2259809A805D611F4BFA
+:1050B0000122D1E7022C15D1019A1B4B1188A52999
+:1050C0000AD100229A60FF221A60FF229A800022F1
+:1050D000C3E903225A61EAE719805188926859802E
+:1050E0009A60F2E7052C0ED1FFF752F940B100F0BB
+:1050F00041FD08B102F0AAFA0C4B03221A70C2E774
+:1051000000F0FAF9F5E7042C08D1074B00229A6069
+:10511000FF221A60019A92889A80B2E7062CB2D1D7
+:10512000024B0422EAE700BFFC930020F893002022
+:1051300000B5084B1B7889B043B905238DF80C30B6
+:10514000079B009303AB0FCBFFF76CFF09B05DF833
+:1051500004FB00BFEC9300201FB50023CDE9023310
+:10516000074B019301F0B0FA30B906494FF47F23A1
+:1051700001A84B6001F0CAFA05B05DF804FB00BF5E
+:10518000154F0F00F093002070B505460E4600F055
+:105190007FFF044628B935B100F048FC0446FFF70C
+:1051A000C9FE204670BDBEB10D4B0E4A0E481D70A3
+:1051B000294602F027F94FF400444FF4FA70002119
+:1051C0004FF47A720023E4FB060104F043FF2A4601
+:1051D0000146064802F028F900F06AF9DEE700BF50
+:1051E000EC93002031510F00E8AC0F00CC9300206D
+:1051F00038B5FFF78BFE08B102F028FA0F490D68A9
+:105200000023012404FA03F22A4207D05A0903F0CA
+:105210001F00203204FA00F041F822000133302B45
+:10522000F0D143F208042068FFF772FE08B102F0E3
+:105230000DFA2068BDE8384000F08CB800E100E0CD
+:1052400007B501A800F062F8019B1A88A52A07D0CB
+:105250009888A0F1AA035842584103B05DF804FBB6
+:105260000120FAE710B501F035F9A8B10E4B0F484F
+:1052700043F00103984701F0ADF808B102F0E6F9F8
+:1052800001F028F908B102F0E1F901F0EBF8044669
+:1052900038B102F0DBF904E001F0FEF80446002822
+:1052A000E4D1204610BD00BFF0AC0F0000A86100A3
+:1052B00000B589B003AB142200211846FFF732F87D
+:1052C00002228DF80C20002200920FC8FFF7AAFEE0
+:1052D000FFF730FE002009B05DF804FB13B504466B
+:1052E00001A800F013F8019B1A8822805A88628076
+:1052F0009A68A2609A88A280DA68E2601A692261DC
+:105300005A6962619B69A36102B010BD014B0360E1
+:10531000704700BF00F00F00F0B50346186880F337
+:1053200008885868FF2464B2EFF30585002D01D189
+:10533000A64600472546064621273FBAF0B400247A
+:10534000002500260027F0B4F92040B2004700BF36
+:10535000F0BD00BFFFF7E0BF73B500230DF1020100
+:1053600001A8ADF80230019302F0EEFDF8B9019CFE
+:1053700025785DB3174B93F83020032A28D00C26EC
+:1053800006FB00F29958E9B998189D5093F830201F
+:105390000132D2B283F83020BDF802300E4A9B08A9
+:1053A000013B043443608460084602F0B7F8019B77
+:1053B00033B128B1184602F0E3FD08B102F046F916
+:1053C00002B070BD01300428DAD1F0E70720EEE723
+:1053D0000420ECE71894002021540F0010B50C2392
+:1053E0000B4A4343D418D15881B192F83010A068C9
+:1053F0000139C9B282F830100021D150C4E901113D
+:10540000043802F0BDFD08B102F020F9002010BD03
+:105410001894002011B1084602F018B97047000036
+:10542000214B70B50122214E1A7096F8303003B925
+:1054300070BD1E4C0025236883B1013B042B07D8A7
+:10544000DFE803F01C0612032800204600F0C0FE2F
+:10545000E8B2FFF7C3FF08B102F0F8F80135042DF8
+:1054600004F10C04E7D1E0E7A3686360204600F094
+:1054700059FE0028ECD002F0E9F8E9E7204600F0F8
+:105480002FFF00F00BFF08B102F0E0F80520FFF756
+:10549000F5FADDE700F054FF00F076FF0620BDE8E6
+:1054A0007040FFF7EBBA00BFEC9300201894002087
+:1054B00008B50E4B002283F8302011460132042A31
+:1054C0001960C3E9011103F10C03F7D1084800F09A
+:1054D00023FE02F0D1FC08B102F0B8F8054802F052
+:1054E000B7FC08B102F0B2F8002008BD1894002003
+:1054F00015540F0059530F0008B50020FFF76EFF39
+:105500000120FFF76BFF0220FFF768FF0320FFF782
+:1055100065FFBDE8084002F0F7BC006870476CDF2B
+:1055200070476DDF70476EDF70476FDF704772DF67
+:10553000704773DF704774DF704776DF704777DF3F
+:1055400070477ADF70477CDF70477FDF704786DF08
+:1055500070478FDF704790DF7047AFDF7047B0DF75
+:105560007047B1DF7047B2DF7047B5DF704764DF67
+:10557000704766DF70470C2813D8DFE800F014127C
+:105580001212121209120712120D0B00022070479C
+:105590000320704704207047042914BF062005200B
+:1055A0007047062070470120704702F04FB810B5D1
+:1055B000044608460321FFF7DEFF0321024620468A
+:1055C00001F05EFA18B1BDE8104002F03FB810BD1E
+:1055D000032810B50B46144620D0042825D169B104
+:1055E000124B18884FF6FF7398421ED01321FFF715
+:1055F000A4FFD0B1BDE8104002F028B8104602F078
+:10560000C9F808B102F022F8094B1B689C420CD182
+:1056100001220321074801F033FAEAE70121184685
+:10562000FFF7A9FF01210246F4E710BD6E800020BC
+:105630000C950020BC940020F8B50A4CA3889E1855
+:105640001D2E15460DDC2768FE1802F1010C07F827
+:1056500003C07070B01C04F08DFEA28802322A4490
+:10566000A280F8BD6C940020F0B54A4D2C7893B020
+:10567000002C40F08A80484E102221463046FEF72A
+:1056800051FE464B3360182221460CA8FEF74AFE15
+:1056900028230E93424B1B7801278DF8307006AEFD
+:1056A000002B74D021463F4C102202A8FEF73AFE90
+:1056B000102202A9E01D04F04FFE002867D03A48EE
+:1056C00039460460FFF72FFF08B101F0BFFF374BE9
+:1056D000374603F1100C186859683A4603C208337C
+:1056E00063451746F7D12068A2880A903048A3790D
+:1056F000ADF82C20002101228DF82E300660FFF736
+:1057000014FF08B101F0A2FF03238DF844300423F5
+:105710008DF8063041F23053ADF80830254B324653
+:105720009B798DF80A300DF1070102A8FFF71FFFE2
+:10573000012210460DF10601FFF77EFF1E4804F01E
+:1057400061FE1D49C2B20920FFF776FF10223146E3
+:105750000620FFF771FF0CAA0F491848FFF7E7FE74
+:1057600008B101F073FF154C042221780120FFF7E6
+:10577000E6FE08B101F06AFF01212078FFF7D9FEAB
+:1057800008B101F063FF01232B7013B0F0BD0623B5
+:10579000BEE700BFF09400206C9400204C940020E1
+:1057A000B89400207C940020089500208394002069
+:1057B000EC940020BC940020F6AC0F006C8000201C
+:1057C000F0B504460146B1B08E4801F08DF923884A
+:1057D000212B00F0048142D8112B00F09C8007D8C7
+:1057E000012B00F0BE80102B00F08E8031B0F0BD98
+:1057F000142B00F0D4801A2B5BD0132BF6D1824BE4
+:1058000003AC9A79186899888DF822200790DA1DE0
+:10581000ADF820101733264610685168254603C599
+:1058200008329A422C46F7D1784B09AA03F118079F
+:10583000154618685968144603C40833BB4222460B
+:10584000F7D1186820607248724A008810AB852131
+:10585000CDE91456FFF779FE0028C7D0B5E0512BEB
+:1058600000F085801ED8232B00F0B280262BBDD1FE
+:10587000237A012BBAD1684B00221A70674B196842
+:1058800001391960002969D110AB14221846FEF7BE
+:1058900049FD05228DF84020149A00920FC8FFF7A9
+:1058A000C1FBA3E7552B00F0A380562B4CD0522B05
+:1058B0009CD1574B1C884FF6FF75AC4200F084809A
+:1058C000574B1B78002B79D00123082255492046DD
+:1058D000FFF747FE002878D1024601460223204602
+:1058E000FFF73FFE002870D12A460C212046FFF723
+:1058F00034FE43F2020398423FF478AF08283FF4A5
+:1059000075AF1128A8D171E7414BA2881A80424B8C
+:1059100000221A706AE78023ADF824303C4C3F4BDC
+:10592000208832221A6010A9012309AAFFF71BFE62
+:1059300008B101F08BFE3C4B1B780BB9FFF794FECE
+:105940004FF6FF73238051E7A379002B7FF44EAF0E
+:105950002F4B13211888FFF7F0FD7DE7FFF784FE3A
+:1059600044E72B4B00211888FFF703FE74E7A37967
+:10597000002B3FF43BAFA27B043A022A3FF636AF3E
+:10598000022B18BF01238DF840304FF4C173ADF8DE
+:1059900044301F4B10A91888FFF7E1FD5CE71A4A55
+:1059A000258A518D02F1180000238D420CBF01465B
+:1059B00019460732A088FFF7CAFD4DE71A46194677
+:1059C0002046FFF7CEFD47E7082001F03FFE0DE738
+:1059D0000F4B002211461888FFF7BDFD3CE700235E
+:1059E000ADF840300A4B10A91888FFF7B2FDFDE66C
+:1059F000E188074BF72928BFF7211888FFF7B5FD85
+:105A00002AE700BFBC9400207C94002094940020DE
+:105A10006E800020FE940020F09400207080002012
+:105A2000B8940020B09400200395002030B5434A7C
+:105A3000434800231370434A95B0137000F06CFB89
+:105A400001F068FE0446002861D13F48FFF724F9C1
+:105A500000285FD13D4B01221A7011233C488DF87C
+:105A6000043004F0CFFC3A4982B201A8FFF76BFD85
+:105A700008B101F0EBFD0822002104A8FEF752FC5A
+:105A8000344A4FF0C87304A8CDE90423FFF759FD49
+:105A900008B101F0DBFD00210C2201A8FEF742FC59
+:105AA0000823ADF804302C4B029301A92B4B2C4852
+:105AB000039300F067FE08B101F0C8FD294D4022B4
+:105AC000002104A8FEF72EFC284604F09BFC059557
+:105AD000254DADF81000284604F094FC0795234DA1
+:105AE000ADF81800284604F08DFC1123ADF8300005
+:105AF00004A8ADF84C300D9501F00CF91C4B302288
+:105B00001A7007225A7010229A70FFF7ADFD2046D6
+:105B100015B030BD04A8FFF704FD08B101F096FDF3
+:105B20009DF8113004A801338DF81130FFF7F7FC10
+:105B3000002892D001F08AFD8FE700BF0395002076
+:105B4000D1550F00FD9400207C940020B8940020D3
+:105B5000F6AC0F0008001800C55B0F00AB550F0036
+:105B6000BC940020FDAC0F0006AD0F0016AD0F0079
+:105B7000FE94002010B50F4B01221A700E4B1888AE
+:105B80004FF6FF73984207D01321FFF7D6FC08B1F8
+:105B900001F05CFD002010BD084C2278002AF9D0ED
+:105BA000074B1878FFF7C7FC08B101F04FFD002341
+:105BB0002370EFE7039500206E800020F094002012
+:105BC0006C800020F0B50B7889B005460C46092B97
+:105BD00023D8DFE813F02B00330042000A0018003E
+:105BE0002400FE00070145000C0100F0A9FB042180
+:105BF000FFF7C1FC04210246284600F041FF60B1D6
+:105C000001F024FD09E0FFF7B5FF08B101F01EFD2A
+:105C100000F0BAFB08B100F0CFFB09B0F0BDFFF710
+:105C2000A9FF0028F7D001F011FDF4E7724B012223
+:105C30001A704B681A78714B1A70EEE76E4B022699
+:105C40001E704B681B78012BE7D100F027FB314613
+:105C5000FFF791FC02463146CEE7674B0322EBE7A4
+:105C60000520FEF70BFF644B1E78022E2AD0032E70
+:105C70004FD0012ED1D104AB102218460021FEF7DF
+:105C800051FB5E4A237A12788DF81020002203928D
+:105C90000C2B4FF00302CDE90120DCD163681846DC
+:105CA000FFF73BFC0590181DFFF737FC069003F14A
+:105CB0000800FFF732FC079001A800F033FA002833
+:105CC000ABD0C4E7237A13F0030010D0C0F1040274
+:105CD0001A44D2B219464FF0000C67684E1C07F800
+:105CE00001C0F1B29142F8D11B1A0433237201238F
+:105CF000049363680693237A04A89B08059300F035
+:105D0000EFFA002889D00221FFF735FC0221024674
+:105D100072E7207A830702D0324631466CE7384E6C
+:105D20000190314601F00CFD014618B12846FFF7FD
+:105D30003EFC72E76168019A306804F01BFB019831
+:105D400001F064FD01460028F0D101A9304601F0C0
+:105D50006DFD01460028E9D104230493019B9B08B3
+:105D6000059304A83368069300F032FA074640B959
+:105D7000244A237A11680B441360234B32681A605B
+:105D80004BE709281BD11F4B217A1A68114419606F
+:105D90001E4B1B78002B3FF440AF1D4C2388013B6A
+:105DA0009BB22380002B7FF438AF284600F02EFEF4
+:105DB00008B101F04BFC174B1B8823802DE730689E
+:105DC00001F0E8FC014610B12846FFF7F0FB394628
+:105DD000ACE70E4B01221A700E4A8B8813800C4AD6
+:105DE00013801AE7094A002313700A4AF8E7054BA3
+:105DF000196800F0CFFD02E7FD9400200495002013
+:105E000010950020F49400200C950020FC940020B4
+:105E1000FA940020F894002018DF70470129F8B5A3
+:105E20000D4614461F4607D0032912D014B320464E
+:105E3000BDE8F84001F00ABC0F4B1B78052BF5D1EB
+:105E40000E4B1B68002BF1D03A46214604209847A0
+:105E5000ECE7094E3378022BE8D1094B5B68984791
+:105E6000064B35701E68002EE0D03A462146284683
+:105E7000B047DBE7F8BD00BF1C950020149500205B
+:105E80004095002000B5084B89B001221A70052307
+:105E90008DF80C30079B009303AB0FCBFFF7C2F8D4
+:105EA00009B05DF804FB00BF1D95002000B589B066
+:105EB00003238DF80C300A4B1B88ADF80E30094BCC
+:105EC0005A6804929A68DB680693079B00930592D0
+:105ED00003AB0FCBFFF7A6F8002009B05DF804FB79
+:105EE0004C9500209895002000B589B001238DF8CD
+:105EF0000C300B4B1B88ADF80E3043F208031A68C8
+:105F0000084B596804919968DB68069305910092E3
+:105F100003AB0FCBFFF786F8002009B05DF804FB58
+:105F20004C9500209895002000B589B003AB142251
+:105F300000211846FEF7F6F904228DF80C20002205
+:105F400000920FC8FFF76EF809B05DF804FB00007F
+:105F500030B589B003AC142200212046FEF7E2F9E7
+:105F6000094B1B88ADF80E30084BDB680693002503
+:105F7000079B8DF80C50009394E80F00FFF752F840
+:105F8000284609B030BD00BF4C95002098950020F0
+:105F9000174B73B5174C1C60174B02221A70FEF793
+:105FA000F7F9164B48B11968204600F0D3FBB0B1A1
+:105FB00002B0BDE8704001F049BB1B681D0BC3F384
+:105FC0000B0303B10135002443F20806A54208D1B2
+:105FD000002300931A4603210648FFF71FFF02B073
+:105FE00070BD306800EB0430FEF758FF0134EDE778
+:105FF000B0950020A89500201C9500205095002009
+:1060000010B50B4B1B788BB90A4801F053FA08B155
+:1060100001F01CFB00224FF41601064801F004FABF
+:10602000044608B101F012FB204610BD0824FBE72E
+:106030001D950020209500207FB50C4603210546C4
+:10604000CDE900109608684602940396FFF7E4FE37
+:10605000D8B1B4F5805F11D801236846CDE9003589
+:10606000CDE90246FFF7D8FE78B903236846CDE9AB
+:106070000035CDE90246FFF7CFFE06E01A46E11AE9
+:10608000E81AFFF7D9FF0028E6D004B070BD000081
+:10609000F0B585B0174B0193174B184F184E0024DD
+:1060A0001C70184B394601A8CDE902441C8000F051
+:1060B0002DFB054618B13470284605B0F0BD43F2FB
+:1060C000080301461B68104A10487B6001F09AF9EA
+:1060D00008B101F0BBFA00224FF416010C4801F0A0
+:1060E000A3F908B101F0B2FA0A4B00221A600123A9
+:1060F0003370E1E71D5E0F0094950020A895002005
+:106100001C9500204C950020855E0F0028AD0F00E7
+:106110002095002018950020014B1860704700BFA3
+:106120001495002070B54368204C0FCB84E80F0015
+:106130002278510701D5930731D163689E072ED18C
+:10614000A1688D072BD1E068840728D10B44184E35
+:106150000344B1F5304F336023D843F20801096896
+:10616000C1F56D218B421CD8124D134B2B60D1070A
+:10617000124B6B600ED5124BAB60124B1B78012B90
+:1061800011D1FFF73DFF044610B92B6830689847DE
+:10619000204670BD93074CBF0B4B0C4BECE706241D
+:1061A000F6E70C24F4E70824F2E700BF98950020F6
+:1061B0005095002040950020915F0F00295F0F004F
+:1061C000E95E0F001C950020AD5E0F00515F0F00CF
+:1061D0002DE9F3478046002850D083689B074FD1B4
+:1061E0002A4B1B78052B4DD1294F4568294E3B681A
+:1061F0003268AD002B449342B94607D94FF0FF33C4
+:106200003B600C24204602B0BDE8F087FFF7F8FEA3
+:1062100004460028F6D1D8F80880DFF87CA0FEF705
+:10622000B7F848B13B68DAF800002A46414600F06A
+:1062300081FAA0B10446E5E743F20803D9F800006B
+:106240001F682A46234641463844FEF7C5FC0095A0
+:10625000434622460121DAF80000FFF7DFFDD9F8B6
+:1062600000301D443368C9F800509D420CD1FEF740
+:106270008FF80028C6D1FEF791FCC3E70E24C1E7D2
+:106280001024BFE70824BDE70924BBE71C950020C4
+:106290001895002050950020B095002070B50B4B4C
+:1062A0001D6885B90A4E3378042B0CD1094C0A4B72
+:1062B00021781A780948FEF70FFD10B905233370CD
+:1062C00070BD2570FCE70820FAE700BF1895002094
+:1062D0001C9500209495002098950020549500204E
+:1062E000F8B5134B1A78032A074603D0042A03D0C3
+:1062F000082419E004221A700E4B1B68002BF7D1FA
+:10630000FFF77EFE044678B90B4E7D683378AD000A
+:106310005A19402A0AD80948B9682A46184404F08C
+:1063200029F833781D4435702046F8BD0924FBE771
+:106330001C9500201895002094950020549500206D
+:1063400038B50D4C2378052B14D10C4B0C4D1A6825
+:106350002B689A420ED106232370FFF751FE40B9F5
+:10636000084B29681B685868FEF7F0FC08B907233A
+:10637000237038BD0820FCE71C95002018950020EC
+:1063800050950020B095002010B5084B1B78072BC6
+:106390000AD1074801F08EF808B101F057F9054B12
+:1063A000BDE810409B681847082010BD1C950020D0
+:1063B000209500204095002000B589B006238DF877
+:1063C0000C30079B009303AB0FCBFEF72BFE09B0FD
+:1063D0005DF804FB10B58CB005A8FEF77FFF089AA6
+:1063E000002A3BD00B9C02F58053A3422AD91C49BA
+:1063F000A4F5805301EA530343F2080109688A4275
+:1064000008D85800121A00F580512044FFF714FEF6
+:106410000CB010BD03F580500121CDE90110CDE98C
+:10642000030101A8FFF7F8FC0028F1D14FF48050D8
+:10643000CDE9020001A801910491FFF7EDFC0028CD
+:10644000E6D1DEE70123CDE9013492084FF4805311
+:1064500001A803930492FFF7DFFCD9E71046D7E7C2
+:1064600000F0FFFF00B58DB005A8FEF737FF0998D3
+:1064700060B1089B6BB943F208031B6880080022D7
+:10648000039001A8CDE90123FFF7C6FC0DB05DF82C
+:1064900004FB0B9A1344F1E700B58DB005A8FEF795
+:1064A0001DFF099878B1089B83B943F208031B6864
+:1064B0000393800803214FF47422049001A8CDE9CE
+:1064C0000112FFF7A9FC0DB05DF804FB0B9A134411
+:1064D000EEE7000030B58DB005A8FEF7FFFE089886
+:1064E000A8B10B9C00F58053A34212D943F20803D4
+:1064F0001B68984219D80E4BA4F5805203EA520348
+:106500005D00421B05F580516019FFF795FD0DB048
+:1065100030BD800803224FF48053049001A8CDE9D8
+:1065200001230394FFF778FCF1E70E20EFE700BFAB
+:1065300000F0FFFF29DF704728DF704737B54B6851
+:10654000CA6800930C46054B53F822504B6914F867
+:106550000C1B02462046A84703B030BDB49500206E
+:1065600038B5184C2378182202FB03431A795D6969
+:10657000012A03D0032A19D00F2038BD124A996985
+:1065800010689A68DB680003121AB2F5805F1D4438
+:10659000014438BF9208284428BF4FF48062FFF7B7
+:1065A000C9FF0028E9D10123A370E6E74FF080532B
+:1065B0001869054B80B2B5FBF0F518682844FFF761
+:1065C000BBFFEEE7C4950020BC96002070B5134DCC
+:1065D0006C780A2C1FD02E783444E4B2092C84BF86
+:1065E0000A3CE4B2182606FB0454A261207103C9D8
+:1065F000A360049BE360AB7804F1100282E803001F
+:1066000023B100206B7801336B7070BDFFF7A8FFDA
+:106610001128F7D1F5E70420F7E700BFC495002063
+:10662000F8B527498B780C462BB1002602288E70CE
+:1066300002D003283AD0F8BD0D78224A182101FB78
+:106640000541136889680133B1EB033F13601BD820
+:1066500063781660013B63706B1CDBB2182704265D
+:10666000092B17FB056188BFA5F109032144002010
+:106670002370FFF763FF07FB05430022C3E90462B1
+:106680001A719A609A61DA606378002BD3D0A3788C
+:10669000002BD0D1FFF764FF0028CCD01128CAD03E
+:1066A0002178182303FB0141043105E00B781822FF
+:1066B00002FB031104310D20BDE8F840FFF73EBF97
+:1066C000C4950020BC9600200C4B00221A600C4B95
+:1066D0000A201A809A70042101381A719A60C3E95D
+:1066E00004129A61DA6003F11803F5D1054B1860C2
+:1066F000054BC3E90000C3E902007047BC960020C7
+:10670000C4950020B8960020B4950020074A13686D
+:10671000042B1FBF0B60591C1160054A1DBF016887
+:1067200042F8231000201846704700BFB89600209A
+:10673000B495002013B5CC180C43A40708D10093DE
+:1067400013460A4601460120FFF740FF02B010BD84
+:106750001020FBE707B500220B46009201460320FC
+:10676000FFF734FF03B05DF804FBA8DF7047AADF32
+:106770007047ADDF7047AEDF7047B0DF704762DF54
+:10678000704700002DE9F0470F4694B005460028F9
+:1067900000F0F980002900F0F6804B68002B00F033
+:1067A000F2804FF6FF730380784B04AA03F1100CBC
+:1067B000164618685968144603C4083363452246D0
+:1067C000F7D141F230530DF10A013046ADF80830EF
+:1067D000FFF7D5FF0446002840F0D1802A1D02A90A
+:1067E0000120FFF7C2FF0446002840F0C8809DF852
+:1067F0000A30AB7101461C220DA8FDF793FD9DF8F0
+:1068000034300E9443F004038DF8343001AEAB798C
+:106810008DF80E30214641F2325303223046CDE945
+:106820001044CDE91244ADF80C30FDF77BFD9DF826
+:10683000063023F01F0343F00303214614224FF4D4
+:10684000885A08A88DF80630ADF804A00DF10C08A0
+:10685000FDF768FD4FF0140905F1080308AA0DA91A
+:10686000A8880A940C94CDE90886ADF82C90FFF71F
+:106870007EFF0446002840F0828001461C220DA8BD
+:10688000FDF750FD9DF834300E9423F0180343F0CB
+:1068900018038DF83430AB798DF80E30214641F273
+:1068A000315303223046CDE91044CDE91244ADF80E
+:1068B0000C30FDF737FD9DF80630ADF804A023F04D
+:1068C0001F0343F0130321464A4608A88DF80630FB
+:1068D000FDF728FD1723ADF82C3008AA05F11003A9
+:1068E0000DA9A8880A940C94CDE90886FFF73FFF0C
+:1068F0000446002843D101461C220DA8FDF712FDD5
+:106900009DF834300E9443F002038DF83430AB79A7
+:106910008DF80E30214641F2345303223046CDE942
+:106920001044CDE91244ADF80C30FDF7FBFC112307
+:10693000ADF804309DF8063023F01F0343F0030345
+:1069400021464A4608A88DF80630FDF7EBFC0223E5
+:106950000A93ADF82C3008AA05F120030DA9A888E8
+:106960000C97CDE90886FFF702FF044638B97B682B
+:10697000AB62BB6803B1EB62054B01221A70204683
+:1069800014B0BDE8F0870E24F9E700BF2CAD0F006E
+:10699000C096002070B5054686B070B302884FF6E9
+:1069A000FF739A422BD0174B1B7843B3164C10221F
+:1069B000080AE170207121FA02F0090E072301266E
+:1069C0006071A17102A800216370ADF806302270D9
+:1069D000A670FDF7A7FC2B8AADF808300023ADF8B0
+:1069E0000C3002A90DF1060328888DF80A60CDE964
+:1069F0000434FFF7C0FE06B070BD0E20FBE7082090
+:106A0000F9E700BFC0960020C196002030B50546CA
+:106A100087B060B302884FF6FF739A4229D0164BB5
+:106A20001B7833B3154C112323700B0A6170A370CC
+:106A30000B0C090EE370217105230021102202A81E
+:106A4000ADF80630FDF76EFC2B8AADF80830012357
+:106A50008DF80A300023ADF80C3002A90DF10603C1
+:106A60002888CDE90434FFF786FE07B030BD0E203C
+:106A7000FBE70820F9E700BFC0960020C196002080
+:106A800030B5044687B038B300884FF6FF7398429C
+:106A900024D0134B1B780BB3124D102369700321C4
+:106AA000ADF80610AA7000211A4602A82B70FDF757
+:106AB00039FC238AADF8083001238DF80A30002311
+:106AC000ADF80C3002A90DF106032088CDE904359C
+:106AD000FFF751FE07B030BD0E20FBE70820F9E7B5
+:106AE000C0960020C196002070B50D4688B00446BF
+:106AF00040B139B1826A2AB10B88112B59D003D821
+:106B0000102B43D008B070BD502B42D0512BF9D17F
+:106B10008B79022BF6D10A89038A9A42F2D18B7BB8
+:106B2000043B022BEED99DF8163043F001038DF89B
+:106B300016300B8AADF818304B8AADF81A300226A1
+:106B400001F114030822002101A807938DF81060B9
+:106B5000FDF7E8FB01AAA18A20880196CDF808D0AC
+:106B6000FFF707FE034638B3E36A03B1984740F2E4
+:106B7000FD1304A92088ADF81430FFF7FEFD0028AE
+:106B8000C0D0E36A002BBDD09847BBE78B88238039
+:106B9000B8E7C98803899942B4D108238DF8103029
+:106BA000123535F8023C8DF81830059504A9904748
+:106BB000A8E74FF6FF73EAE79DF800202088D20788
+:106BC000D5D504A9ADF81430FFF7D7FD0028D8D1EA
+:106BD000297D4B1E072B41D8DFE803F0041A232739
+:106BE000292B3E2D00238DF804306B8A012B05D80C
+:106BF000062201212046FFF743FFC0E70123153598
+:106C00008DF80C300295A36A01A92046984779E7D0
+:106C10006A8A01239A428DF80430F0D806220221B4
+:106C2000E8E702238DF80430EDE70323FAE70423B5
+:106C3000F8E70523F6E76B8A022B02D80322082126
+:106C4000D8E7AA7D6B7D43EA0223002BADF808301C
+:106C50000CBF07230623E5E70923E3E70322C9E77F
+:106C6000A8DF7047AADF70472DE9F04180468EB05B
+:106C700015461F460E4611B9084600F0E7FC15B947
+:106C8000284600F0E3FC1C220DEB02000021FDF77A
+:106C900049FB9DF81C30ADF80480002443F002034A
+:106CA0008DF81C3021460123032268468DF80630FA
+:106CB0000894CDE90A44CDE90C44FDF733FB3B7859
+:106CC0008DF800307B788DF801309DF8023023F08C
+:106CD0001F0343F002032146142202A88DF802305C
+:106CE000FDF720FB0A48CDF80CD001AB029302AAB5
+:106CF000149B0088ADF8105007A9ADF81240ADF80C
+:106D000014500696FFF7AEFF0EB0BDE8F08100BF4D
+:106D10000097002030B587B041F60A0304465C4A6C
+:106D2000ADF80C30012003A98DF80E00FFF798FF95
+:106D30000546002849D12288002A49D1228952B12A
+:106D4000544B0093E16804F13C0342F62420FFF722
+:106D50008BFF002847D1228A52B14F4B00936169C3
+:106D600004F13C0342F62520FFF77EFF00283AD1CC
+:106D7000228B52B1494B0093E16904F13C0342F686
+:106D80002720FFF771FF00282DD1228C4AB1444BF8
+:106D90000093616A04F13C0342F62620FFF764FF8A
+:106DA00008BB228D4AB13F4B0093E16A04F13C03DA
+:106DB00042F62820FFF758FFA8B9236BABB9616BE7
+:106DC000002938D1A36B002B42D1284607B030BD33
+:106DD000354B0093616804F13C0342F62920FFF72C
+:106DE00043FF0028AAD00546EFE71A688DF8102067
+:106DF0001A68120A8DF811205A888DF81220DA7854
+:106E00008DF813205A688DF814209B688DF8153082
+:106E10001A0A1B0C8DF81730244B8DF8162000939E
+:106E2000082204F13C0304A942F62320FFF71CFFCB
+:106E30000028C4D0D7E71E4B0A790093096804F1F3
+:106E40003C0342F62A20FFF70FFF0028BAD0CAE71A
+:106E50001A788DF810205A888DF81120120A8DF8B2
+:106E600012209A888DF81320120A8DF81420DB88DE
+:106E70008DF815301B0A8DF816300E4B0093072243
+:106E800004F13C0304A942F65020FFF7EDFEAAE707
+:106E900000970020E0960020F8960020D096002071
+:106EA000C896002002970020D89600200A9700205C
+:106EB000F0960020E8960020094A53789178013333
+:106EC000DBB2994208BF0023117899421FBF0370BB
+:106ED0005078182303FB002014BF043000207047B3
+:106EE00014970020082910B5044602D0002000F0B5
+:106EF000ADFBD4E90030BDE81040184773B5054636
+:106F000000240DF107000E468DF8074000F0ACFBA1
+:106F10000DF10600FFF7D0FF90B10670094B9DF808
+:106F2000062045605A709DF8070000F0C1FB24B9A7
+:106F3000054B4FF48012C3F80021204602B070BD0B
+:106F40000424F0E71497002000E100E0204B2149E1
+:106F50001A682F2300BF00BF00BF00BF00BF00BFE3
+:106F600000BF00BF8A422FD000BF00BF00BF00BFDC
+:106F700000BF00BF00BF00BF00BF00BF00BF00BF19
+:106F800000BF00BF00BF00BF00BF00BF00BF00BF09
+:106F900000BF00BF00BF00BF00BF00BF00BF00BFF9
+:106FA00000BF00BF00BF00BF00BF00BF00BF00BFE9
+:106FB00000BF00BF00BF00BF00BF00BF00BF00BFD9
+:106FC00000BF00BF00BF00BF013BC3D1704700BF7F
+:106FD000308100200024F4000C4B0D484FF40032A7
+:106FE00010B5C3F8802001244FF48033C0F8483333
+:106FF000C0F808334460FFF7A9FF064B8460002007
+:107000001860FFF7A3FF044B187010BD00E100E00B
+:107010000010014030980020219800202DE9F34114
+:107020002549264B0025C1F84051C1F84451C1F80B
+:107030004851C1F84C51C1F80051C1F804511B68C6
+:10704000002B34D0D1F804451D49DFF88880096849
+:10705000641A24F07F442F461A68A24212D8A41A58
+:1070600015441A7CDE6962B15A691F7400929B69EB
+:10707000019342460821684600F050FA08B100F03A
+:10708000E5FABEB90F4A104B11781B788B4205D137
+:107090000133DBB2022B08BF0023137012780B4BB5
+:1070A00043F822500A4B4FF48012C3F8002102B07B
+:1070B000BDE8F0813346CFE700100140349800204E
+:1070C000309800202D9800202C9800202498002033
+:1070D00000E100E0E56E0F002DE9F04FA64AA74958
+:1070E00013780978A64C994285B03CD00133DBB2C5
+:1070F000022B08BF00231370A2491278A24B0F681D
+:1071000053F822003B1823F07F4300220B602368D2
+:1071100015461646944613B942B1236006E0196835
+:1071200081420ED902B12360091A19600127236830
+:107130000293DFF85C9200230193BDB9DFF85CA2F3
+:1071400068E0401A0E44D968C3F800C0D3F81CE0C8
+:1071500031B1BA1922F07F42C3E90121DD611D4638
+:1071600001227346D7E700252F46E0E72846ED6960
+:10717000844A43681268DFF828E2D0F808C0991AF8
+:1071800021F07F41714500F2A58061440160012238
+:10719000027422680023C0E90133C361002A40F071
+:1071A000A3802060C9E75A1C9AF80210D2B291421B
+:1071B0008AF8002004BF00228AF80020182202FB6F
+:1071C00003A31A799868022A1CD0032A12D0012A34
+:1071D00020D1027CF2B9D96841601E6986605E697F
+:1071E000C6609B698361694B1B78002B18BF1146F1
+:1071F0004160BDE7002223681146002B66D14AB1E9
+:10720000236007E0226893469046BBF1000F57D1F8
+:10721000002303749AF800309AF801209A42C2D1F0
+:10722000019A236822B9029A9A4201D1002F41D0D3
+:10723000002B7BD0D3F80090554C524BD4F804650A
+:107240001868544F351A3B7825F07F4503359BB9B4
+:107250004FF48033C4F84433C4F804334E4B4FF436
+:1072600000324FF00108C3F880211A60C4F8008092
+:10727000FFF76CFE87F80080A9452CBF48444019F1
+:1072800020F07F40C4F84005D4F804359B1B23F060
+:107290007F43801B033320F07F4083420AD9D4F818
+:1072A0000435C4F84035FFF751FE3B4B4FF4003234
+:1072B000C3F80021354B00221A7005B0BDE8F08FED
+:1072C000584536D0D846DBF81CB09EE71974012229
+:1072D000DB6992E7D31A23F07F43634534BFACEBFD
+:1072E00003030023036052E70168136899421BD827
+:1072F000591A1160C26154E7A1EB0C01D3F81CC00C
+:107300001A46BCF1000F0AD06346D3F800C08C4582
+:10731000F2D3ACEB010CC3F800C09C4613460160ED
+:10732000C0F81CC0D86108E71346EEE7FFF754FE2B
+:10733000C0E740450FD1D169216061B9DFF844E071
+:1073400003920123C9F80830CEF800100F490B70E2
+:10735000FFF7FCFD039ADBF81C10DBF80030C8F8DF
+:107360001C1011B10E6833440B60019923689A42D6
+:1073700018BF012101914BE72C9800202D98002087
+:107380003498002030980020249800202098002075
+:10739000001001402198002000E100E01497002037
+:1073A000FEFF7F0008B5FFF717FE104B00200B22F1
+:1073B00018809A700E4B18600E4B18700E4B187098
+:1073C0000E4B4FF48012E021C3F8802183F8141390
+:1073D0001A6002F18042A2F56F22C2F8080583F814
+:1073E0001113074BD2F804251A6008BD149700202A
+:1073F000349800202C9800202D98002000E100E017
+:1074000030980020074B9B784BB132B128B103680C
+:10741000187C20B959745A617047072070470820BA
+:10742000704700BF149700202DE9F7431E4FBB782B
+:1074300005460E469046A3B398B304292FD9436955
+:107440007BB3437C0024012B0DF107000CBF894660
+:10745000A1468DF8074000F007F90DF10600FFF78F
+:107460002BFDD0B101230370104B4560D3F80435D8
+:10747000C0E90498C0E902369DF806307B709DF89B
+:10748000070000F015F924B9094B4FF48012C3F836
+:107490000021204603B0BDE8F0830424EFE7072471
+:1074A000F7E70824F5E700BF14970020001001401B
+:1074B00000E100E0064A92783AB130B1426922B167
+:1074C000002202740221FFF719BD0820704700BF97
+:1074D0001497002030B54C1CE40012F00303A4B252
+:1074E0000ED1084D2A602244074C2260074A1370CF
+:1074F000074A1370074A1080074A1846118030BDAA
+:107500000720FCE7409800203C9800203898002095
+:107510004898002044980020469800202DE9F34721
+:107520002B4D2B888B4206460C4617464CD34FF00A
+:1075300000080DF107008DF8078000F095F8254B45
+:10754000254A18781178CBB2244909888B4238BF74
+:107550000133C0B238BF5FFA83F840452ED092F8AD
+:1075600000801378DBB2994286BF0133DBB200237F
+:1075700013709DF8070000F09BF84FF6FF739845D5
+:1075800024D0DFF860A0DAF800304FEAC80903EB36
+:10759000090243F83870A6B19CB1114B28881B68CA
+:1075A000224608FB0030314602F0E4FEDAF80030F3
+:1075B0004B4400209C8002B0BDE8F0874FF6FF7876
+:1075C000D7E700209080F6E70920F4E70420F2E7EF
+:1075D00044980020489800203898002046980020C1
+:1075E0003C98002040980020F8B5124C124D2646D9
+:1075F00022782B789A4200D1F8BD23780F48104AA0
+:10760000078812680F48DBB219B202EBC10C0068A0
+:1076100052F83120BCF8041003FB070090470A4AD7
+:1076200023781288DBB29A4286BF0133DBB2002393
+:107630003370DDE7489800203898002044980020F7
+:10764000409800203C980020469800201FB500215B
+:10765000CDE9021001AA44F20100ADF80410FCF7D4
+:107660008DFE05B05DF804FB70B5EFF3108672B6C1
+:107670000C4A946801239CB993600B4B0B4DD3F8D3
+:10768000801029401160C3F88050D3F884105160F5
+:107690004FF0FF32C3F88420047006B962B670BDA3
+:1076A0000370FAE7ECC6002000E100E0FC06FFBD35
+:1076B00010B5084B9A685AB150B9EFF3108172B601
+:1076C000054A1C6814605C685460986001B962B631
+:1076D00010BD00BFECC6002000E100E02AB1138815
+:1076E0000144884204D1184670474FF6FF73F7E70C
+:1076F0005BBA10F8012B9BB25A40C2F303135340FC
+:1077000083EA03331BB25A0102F4FF5253409BB287
+:10771000E7E70000064B074A00201870064B1A6086
+:107720000822C3E90120C3E90300C3E9050070474B
+:10773000499800204C9800202CAB00200020704776
+:1077400030B5F9B1124B5C6800220A60E4B1B0F5C3
+:10775000167F1BD8D8681D680130013CD8601869B5
+:107760005C604FF4177404FB00540C60012101FAB3
+:1077700000F49969013000F0070021431861996114
+:10778000104630BD0E20FCE70420FAE70C20F8E795
+:107790002CAB0020F0B51C4B996899B35D691E684D
+:1077A0006C1A04F0070422464FF4177707FB026CAB
+:1077B000604511D1012000FA02F59869684098618E
+:1077C00000205E68D3F818C04FF0010E7244002507
+:1077D0000E4402F007020AE0013202F0070295426D
+:1077E000E4D11020EDE749B10139144601250EFA24
+:1077F00004F414EA0C0FA6EB0107F4D00DB1C3E9B1
+:107800000171F0BD0420FCE72CAB0020064A13698F
+:107810001268013B4FF4177103F0070301FB0323C8
+:10782000C3F85802002070472CAB002030B5C0B11F
+:10783000B9B10E4BDA68B2B1013ADA609A681D68E4
+:1078400001329A605A694FF4177404FB02540460C1
+:107850000132D4F85802086002F007025A61002091
+:1078600030BD0E20FCE70420FAE700BF2CAB00205F
+:107870003FB40C49086890B10B4B1C687CB10B4AB3
+:107880001568CDE9025000238DF804300B601360B9
+:1078900004AB13E90700234604B030BC184704B01A
+:1078A00030BC704750AB002054AB002060AB0020D0
+:1078B000DC2810B509D0DD2810D0C02816D1FFF77C
+:1078C000D7FF0E4B0E4A1A6010BD0E4A0E4B1968B8
+:1078D0001368581C1060C022CA54F2E7094A0A4BC8
+:1078E00019681368581C1060DB22F5E7064B054A3F
+:1078F000196813685C1C1460C854E2E774800020A7
+:1079000051790F0050AB002060AB0020C02802BFAF
+:10791000014B024A1A6070477480002051790F00B1
+:10792000014608B5002001F08FFE00280CBF04209E
+:10793000002008BD08B5DB20FFF7F2FF10B9024BAD
+:10794000024A1A6008BD00BF78800020D9790F0074
+:10795000C02810B409D0DB280BD0094B094A19689C
+:1079600013685C1C1460C85406E05DF8044BFFF714
+:107970007FBF054B054A1A605DF8044B704700BF96
+:1079800060AB002050AB002074800020B1780F0065
+:1079900010B5064A064C12682368D05CFFF7C0FF9A
+:1079A00010B923680133236010BD00BF64AB002011
+:1079B00058AB002008B5C020FFF7B2FF28B9034B31
+:1079C0001B6813B9024B034A1A6008BD58AB00206C
+:1079D0007880002091790F0010B50C4A0C4C126889
+:1079E0002368D35CC02B03D0DB2B0DD0042010BD4B
+:1079F000DC20FFF795FF0028F9D12368054A013301
+:107A00002360054B1A60F2E7DD20F2E764AB00204B
+:107A100058AB002091790F00788000207FB5134C7F
+:107A2000134D144E002001F0EFFDE8B1226852B171
+:107A300029683368994206D2002001F0EFFD0E4B11
+:107A40001B689847EEE70D4B1B686BB10292084A22
+:107A50000221126803928DF8041004AA12E90700AB
+:107A600004B0BDE87040184704B070BD60AB0020A2
+:107A700050AB00204CAB00207480002054AB0020A1
+:107A8000014B18600020704754AB0020034B1A785C
+:107A90000AB901221A700020704700BF48AB0020CD
+:107AA000014B00201870704748AB00202DE9F04FC3
+:107AB00085B000284FD0294F3B78012B07D0022BEF
+:107AC0000CBF04250825284605B0BDE8F08F244CDE
+:107AD000244A254E254DDFF8A0A0DFF8A0B01160A4
+:107AE0000023236002233B70214B30602B609146C2
+:107AF00098462268D9F800309A4215D3C5F800801C
+:107B0000FFF758FF054608BB1A4B1B6801223A7065
+:107B1000E3B18DF80420326802922268039204AA2D
+:107B200012E907009847CEE7336822689A5CC02ABA
+:107B300003D022689B5CDB2B04D12B68534508BF24
+:107B4000C5F800B02B689847042801D10025BAE792
+:107B50001128CED1FAE71025B5E700BF48AB0020C9
+:107B600058AB00205CAB002064AB00207880002084
+:107B7000B5790F0054AB002091790F0035790F00D3
+:107B8000054B064A1860064B1960064B002018602A
+:107B9000054B1A60704700BF60AB00200D790F00E5
+:107BA0004CAB002050AB002074800020064B0748EF
+:107BB0001B68DB00DBB20022037004215B424270D1
+:107BC0008270C370FFF772BF90AB002068AB0020DB
+:107BD00070B52D4C2D4E024625462378012B14D02E
+:107BE00013B1022B20D070BD002AFCD12848FFF72A
+:107BF00061FC08B1FFF72AFD264B1B68002BF2D071
+:107C0000254ABDE8704010781847012AEBD1316849
+:107C1000224B06311868FFF749FF08B1FFF716FD40
+:107C200002232B700022D8E7022A19D0032A0ED093
+:107C3000002AD8D11A4B16481A6041F67F21FFF767
+:107C4000F3FB0028CFD0BDE87040FFF7FFBC154A1A
+:107C50001368013303F00703136000232370E1E787
+:107C60000F4A1368052B0AD001331360074B1968BC
+:107C70000A4B06311868BDE87040FFF717BF064B86
+:107C800001221A70E9E700BFB4AB0020A8AB0020C6
+:107C90006CAB0020A4AB0020ACAB0020BCAB002040
+:107CA000B0AB002094AB0020F0B585B004AB03E985
+:107CB00007009DF80400032878D8DFE800F00802E8
+:107CC000A7AA012005B0BDE8F040FFF781BF039EE1
+:107CD000564C032E40F28680029D6B7813F00F0203
+:107CE00069D00E2A7ED1042E59D02A78500656D556
+:107CF000110654D51A44AB781A44EB781A4412F0A2
+:107D0000FF024CD1B71E39462846FFF7E7FCEB19B6
+:107D10005A78EB5D43EA0223984240D144492A78DD
+:107D20000B6802F00702D8B282422BD1013303F074
+:107D300007030B60FFF73AFF3E4B012230461A70F3
+:107D4000FFF764FD08B1FFF781FC38494FF4167066
+:107D5000FFF7F6FC002862D0042802D00020FFF7CD
+:107D600075FC35480521FFF70BFF08B1FFF76EFCE6
+:107D7000324B1B68002B56D04FF0000005B0BDE819
+:107D8000F04018474FF416712068FFF7F9FE08B16C
+:107D9000FFF75CFC05B0BDE8F040FFF707BF2068C7
+:107DA0004FF41671FFF7ECFE00283CD005B0BDE89B
+:107DB000F040FFF74BBC2978AA780B441344EA78CB
+:107DC000134413F0FF030DD11D4A12680132C1F3B1
+:107DD000C20102F00702914204D11A4A0320137033
+:107DE000FFF7F6FE25681DB14FF416712846D9E756
+:107DF0000E494FF41670FFF7A3FC60B1042802D0BF
+:107E00002846FFF723FC0C480521CBE705210A484B
+:107E1000C8E70320CAE720684FF41671C2E720685C
+:107E20004FF416719FE705B0F0BD00BFB8AB00205E
+:107E300090AB00208CAB002098AB0020A0AB0020C2
+:107E400094AB0020ACAB00200220FFF7C1BE0000C5
+:107E5000074B10B5044618600648FFF711FE08B13D
+:107E6000FFF7F4FB002C0CBF0E20002010BD00BF5C
+:107E7000A0AB0020A97C0F00184A1948002310B5B8
+:107E80001360184A1360184A1360184A1370184A8E
+:107E90001370184B184A01211960184B1960184BC0
+:107EA0001970FFF7AFFA08B1032010BDFFF732FCDD
+:107EB0000028FAD1FFF7EAFD0028F6D1114C4FF463
+:107EC00016702146FFF73CFC0028EDD120684FF4E6
+:107ED0001671BDE81040FFF753BE00BFBCAB0020D9
+:107EE0003CAD0F00A8AB0020B0AB00208CAB002055
+:107EF000B4AB002090AB0020497E0F0094AB002073
+:107F0000ACAB0020B8AB00200C4A08B500231360CE
+:107F10000B4A1360FFF712FC08B1FFF797FBFFF75E
+:107F2000BFFD08B1FFF792FB0648FFF7C3FA04282C
+:107F300002D10020FFF78AFB002008BDA4AB00207F
+:107F4000A0AB00206CAB002037B50D46044698B1BD
+:107F500091B10A4B19780022019259B101A91A7006
+:107F6000FFF764FC019B063B2B80236804332360EE
+:107F700003B030BD0420FBE70E20F9E78CAB0020F6
+:107F80000438FFF707BC4DDF70474EDF70474FDF07
+:107F9000704750DF704743DF704712DF70470000C3
+:107FA00010B52F4B88B0402283F8272304460023C6
+:107FB0000DF107008DF80730FFF7EFFF9DF8073050
+:107FC000002B3BD00120FFF7E0FF0120FFF7DBFF94
+:107FD0000120FFF7DCFF02A8FFF7DBFF029BDA07B7
+:107FE00002D5002000F05EFE029B9B0702D5022016
+:107FF00000F058FE5CB11B4B2A229A720022DA7202
+:10800000194B1A79013A1A715A88173A5A804FF067
+:10801000805316495A6E1B6E03A802F0D3F9144917
+:1080200003AB1022013A13F8010B21F8020B12F0F6
+:10803000FF02F7D101F0DCFF08B010BD01A88DF8F8
+:108040000430FCF79DFE0B4B039303A8FCF7C0FE26
+:10805000FCF7C4FE4FF08043D3F838340293BDE7F9
+:1080600000E100E0FA80002098800020F0AD0F00D1
+:108070000E810020A58C0F0008B5134AD2F80035F8
+:108080000BB30023C2F80435BFF36F8FBFF34F8FDC
+:108090000E498020C1F88400D2F80013C2F80813FA
+:1080A000C2F80035BFF36F8FBFF34F8FFFF773FF39
+:1080B0001846FFF76AFF1846FFF765FF1846BDE848
+:1080C0000840FFF764BF08BD0070024000E100E017
+:1080D0000120FCF7D3BC0220FCF7D0BC38B50D461C
+:1080E0000446002110461A46FCF71CF92A781E2A7D
+:1080F00004D801239340074A134208D100232022C9
+:108100000521204601F0B2FC4FF0FF3038BD0020C1
+:10811000FCE700BF01000048F8B5069E14460D4676
+:108120003246002118461F46FCF7FCF86CB10A4B9A
+:108130001B68DB0700D500BE4FF0FF300AE0284681
+:1081400000F088F8013504F50074B44207EB04012F
+:10815000F5D32046F8BD00BFF0ED00E02DE9F04179
+:10816000069E0C4F0D4698460024B44208EB0401CD
+:108170000ED23B460022284600F03AF9002803DCE4
+:1081800006D03046BDE8F081013504F50074ECE717
+:108190002046F7E7C0AB002030B5104D2B6889B002
+:1081A000CBB16A68934216D8062003ACFCF766FC94
+:1081B000142200212046FCF7B5F800238DF80C307E
+:1081C000ADF80E302B681B020693079B009394E8D2
+:1081D0000F00FCF727FF09B030BD00BFC0AB002087
+:1081E0004FF4FA530B604FF4007313807047000094
+:1081F00013B5104C2368BBB943F208031868FCF7A9
+:10820000F3FEA0B101A8FDF781F8019B9B6813F074
+:10821000FF0F1CBF23F0FF0303F580735A1E0332C8
+:1082200088BF4FF407232360206802B010BD4FF4CD
+:108230008073F8E7E4AC002010B50023934200DB24
+:1082400010BD0C781CB10131C4540133F6E7202471
+:10825000FAE700002DE9F0410C4605464FF40072A4
+:1082600000212046FCF75EF865B93E225A492046B7
+:1082700002F080F8552384F8FE31AA2384F8FF31F8
+:10828000BDE8F081402D32D86B1E1F2B88BFA5F1B1
+:1082900021030BB31D02C3EBC35305F5807604EB3A
+:1082A0004324032D05F1010712D9FFF7A1FFC0F305
+:1082B00016200330A8420BD3FFF79AFFC0F3162015
+:1082C0000330A84214BFBBB24FF6FF7324F8153039
+:1082D000BE423D46E5D1D3E7F822227004F1090100
+:1082E0002246FF209142D5D002F8010FFAE7442D33
+:1082F00039D8413D07D120460B223849FFF79CFF72
+:108300002823E3722034364B2E014FF0640803EB30
+:1083100005250027022EB3DC0B2229462046FFF755
+:108320008BFF4F230F202A226FF06B016374E374DD
+:108330006376B31C84F80D80A073E1732274A27479
+:1083400027756775A075E17522766383E86830B19B
+:1083500002F058F8E061013620341035DAE7FFF713
+:1083600047FF4000F6E7A5F14502012A0DD81C4B56
+:1083700003EB0213DD68284602F044F82946024662
+:108380002046BDE8F04101F0F5BF05F2192636029E
+:10839000B6F52D2FBFF474AF124B236003F11443D5
+:1083A00003F52C1303F602336360473D0E4BC4F80C
+:1083B000FC316561FFF71CFF4FF40053000A4FF4D6
+:1083C0008072A360094BA061E6602261E3613146DF
+:1083D00004F12000D5E700BFFBAD0F0026AE0F0073
+:1083E000B8AE0F005546320A306FB10A4028A5AD2D
+:1083F00038B51D460A68354B9A420C4662D103F1E6
+:1084000014434A6803F52C1303F602339A4259D1F8
+:10841000D1F8FC212E4B9A4254D18B689A0451D545
+:10842000C9692C4A91424DD1DB071DD42369B3F5AC
+:10843000807F19D8E26812F0FF0F15D1B2F5183F0E
+:1084400012D31344B3F52D2F0ED8234B1A7822B133
+:10845000002205201A70FCF711FB01232269E06855
+:1084600004F12001FCF7B8FB15B94FF4007038BDDA
+:10847000A369002BF9D02A68934207D040F6D301B4
+:108480008B4200D80AB14FF0FF332B60636940F68E
+:10849000D3029342E9D803F0070105EBD30301228D
+:1084A0008A40197AD2B2114204D168680A43013075
+:1084B0001A726860D5E900329A42D6D30120FCF7DF
+:1084C0006DFBD2E74FF0FF30D1E700BF5546320ACF
+:1084D000306FB10A4028A5AD2E810020BFF34F8F29
+:1084E0000549064BCA6802F4E0621343CB60BFF350
+:1084F0004F8F00BFFDE700BF00ED00E00400FA056C
+:10850000054B1B68082B01BF044B1868B0FA80F0BC
+:10851000400918BF002070473001001034010010DE
+:1085200008B54FF080430022C3F80C21C3F8102196
+:10853000C3F838254FF0805203F54043D2F80414B5
+:10854000C3F82015D2F80814C3F82415D2F80C1477
+:10855000C3F82815D2F81014C3F82C15D2F8141447
+:10856000C3F83015D2F81814C3F83415D2F81C1417
+:10857000C3F84015D2F82014C3F84415D2F82414D7
+:10858000C3F84815D2F82814C3F84C15D2F82C14A7
+:10859000C3F85015D2F83014C3F85415D2F8341477
+:1085A000C3F86015D2F83814C3F86415D2F83C1437
+:1085B000C3F86815D2F84014C3F86C15D2F84424F7
+:1085C000C3F87025FFF79CFF10B1444B444A1A6072
+:1085D000FFF796FF18B1434BFB22C3F81825FFF7AE
+:1085E0008FFF48B14049414B0A681B6822F00F02D7
+:1085F00003F00F0313430B60FFF782FF18B13C4BEE
+:108600004FF400721A604FF08043D3F80024D10772
+:1086100044BF6FF00102C3F80024364AD2F8883014
+:1086200043F47003C2F88830BFF34F8FBFF36F8FEE
+:108630004FF01023D3F80C22D2071ED52E4B012267
+:10864000C3F80425D3F80024002AFBD04FF01022F1
+:10865000D2F80C3223F00103C2F80C32264B1A4632
+:10866000D3F800140029FBD00021C3F80415D2F878
+:108670000034002BFBD0FFF731FFD3F80022002A93
+:1086800003DBD3F80432002B23DA1B4B0122C3F89F
+:108690000425D3F80024002AFBD04FF01022122129
+:1086A000C2F80012D3F80024002AFBD04FF01023A8
+:1086B0001222C3F80422104B1A46D3F800140029E2
+:1086C000FBD00021C3F80415D2F80034002BFBD0F6
+:1086D000D1E70A4B0A4A1A6008BD00BF8C56004019
+:1086E0004881030000F00040E40E004058020010F2
+:1086F0004096024000ED00E000E0014030810020A3
+:108700000090D003064B93F8C0202AB9054B1B6894
+:10871000DB0704D500BE7047002283F8C0207047F5
+:10872000E8AC0020F0ED00E00D4B93F8C0200146CE
+:1087300062B10C4A5268C2F308021AB101220A4817
+:1087400000F0AEBE93F8C020002AFBD1012283F8CE
+:10875000C0200A60BFF36F8FBFF34F8F704700BF19
+:10876000E8AC002000ED00E029870F00F8B50F49C4
+:108770000F4E00F59473182551F8234045431423F8
+:1087800003FB00137259C3F80027E4B2C3F804478F
+:10879000084B03EB8000FFF7C7FF73597719234499
+:1087A0007351FB881C44A4B2FC80F8BD00700240E9
+:1087B000E8AC00202870024010B4104B182101FBD7
+:1087C00000314A8A0B8ACC689B1A0A7D9BB293427D
+:1087D00028BF13461422424302F1804202F51C32A4
+:1087E000C2F80046C2F804362344CB60044B5DF85F
+:1087F000044B03EB8000FFF797BF00BFE8AC0020FD
+:108800000470024001207047014B80225A6070477B
+:1088100000E100E0024B8022C3F88420704700BFD3
+:1088200000E100E07047704710B58878097900F0E2
+:108830007F0318240C22C0095C4302FB0044114A48
+:1088400022441172012202FA03F40F4978B90C3361
+:1088500002FA03F3C1F80433D1F814352343C1F805
+:108860001435BFF36F8FBFF34F8F012010BD02335C
+:1088700002FA03F3C1F80433D1F810352343C1F8E9
+:108880001035EEE7E8AC002000700240F7B51D4659
+:1088900001F07F001823CE091B4C0F4603FB00F1AB
+:1088A0000C2303FB0613E118E25000238D80CB80DC
+:1088B00078B975B91548FFF737FFFFF723FF009523
+:1088C0002B462A463946284600F0A0FD012003B079
+:1088D000F0BDAEB9182303FB0044637A13B1FFF770
+:1088E00045FFF3E70A4B30B90122DA64BFF36F8F1B
+:1088F000BFF34F8FEAE700F5947043F82060F5E787
+:10890000FFF75AFFE2E700BFE8AC002050700240DA
+:108910000070024091B1CA0901F07F03084A0BBF01
+:1089200003F5887303F5847302EB830352F8230085
+:1089300008BF5868003018BF0120704708467047CC
+:108940000070024011F07F0F064B0BBF012241F473
+:1089500080715A65C3F81815BFF36F8FBFF34F8F3F
+:10896000704700BF007002404B0606D0034BC3F8AF
+:108970001815BFF36F8FBFF34F8F70470070024021
+:1089800011F07F000DD018235843C9090C2303FBB5
+:108990000101044801448888CB88984294BF002094
+:1089A00001207047E8AC002010B50022114693006A
+:1089B00003F1804303F51C330132082A59609962A0
+:1089C000F5D1064B064C5962C42299642046002119
+:1089D000FBF7A8FC40232375237210BD00700240F2
+:1089E000E8AC00202DE9F04F854B864AD3F8000310
+:1089F000002387B01C4601251E4605FA03F10142FB
+:108A000009D052F8237037B10C4342F82360BFF30A
+:108A10006F8FBFF34F8F0133192BEED1E50706D5CA
+:108A2000FFF7C2FF01221146002000F0C3FC764B85
+:108A300023400BB1FFF766FE20022BD5704BD3F815
+:108A40008014C9B28DF81010D3F88424D2B28DF8F6
+:108A50001120D3F888048DF81200D3F88C048DF817
+:108A60001300D3F890048DF81400D3F894048DF813
+:108A70001500D3F898048DF81600D3F89C348DF8BF
+:108A80001730490601D1052A04D0012204A900208B
+:108A900000F0A3FC5D4FDFF868A13E460025B84614
+:108AA0004FF001094FF0140B05F10C0309FA03F321
+:108AB0002342E9B219D00BFB05A30020D3F8082705
+:108AC000182303FB0583D2B2587296F808C0944568
+:108AD0007BD1DB88B2889A4277D9002D70D1CAF851
+:108AE0004C90BFF36F8FBFF34F8F0135082D06F108
+:108AF0001806D9D1464B2340002B57D0404BD3F812
+:108B00006C94C3F86C94BFF36F8FBFF34F8F14F462
+:108B1000806607D0D3F88064D3F880341A06C6F391
+:108B2000C0165FD50023DFF8E4A0039300254FF0C3
+:108B3000010B0BFA05F313EA090FE8B201D1A5B94D
+:108B40009EB12F4B142202FB0533D3F804261823C1
+:108B500003FB0583598A0A4492B25A825A8ABAF8A8
+:108B60001010914240D9FFF727FE0135082D0AF178
+:108B7000180ADED1002501264FF0180A05F110036E
+:108B800006FA03F313EA090FE8B202D14DB9039BC9
+:108B90003BB10AFB0583B988DA8891422ED9FFF7E9
+:108BA000E5FD0135082D07F11807E7D1A30204D52B
+:108BB00001220321002000F0FDFB07B0BDE8F08F8B
+:108BC00005F594734AF823008BE7182303FB05830C
+:108BD000DA88B280DA88CDF800900023184600F0D9
+:108BE00015FC82E701239EE75A8ACDF800B00023E6
+:108BF00040F08001184600F009FCB6E75E72D0E74D
+:108C00000070024000710240FCFB1F00E8AC002035
+:108C100000040001084B1B68082B06D1074B18689D
+:108C2000431E012B03D80120704700207047C31E4C
+:108C300058425841704700BF300100103401001005
+:108C400042DF704743DF704744DF704712DF7047F1
+:108C500007B500230DF107008DF80730FFF7F6FF89
+:108C60009DF80700003018BF012003B05DF804FB39
+:108C700007B5FFF7EDFF48B101A8FFF7E5FF019841
+:108C8000003018BF012003B05DF804FB4FF08043B3
+:108C9000D3F80C0400F00110A0F101135842584120
+:108CA000F1E70000012813B5024600F09F8000287C
+:108CB00053D0022840F09380614BD3F80024120572
+:108CC000FBD54FF40062C3F80024BFF36F8FBFF3EE
+:108CD0004F8F5C4B00211960BFF36F8FBFF34F8F35
+:108CE000594A106803F58E2303F21443002878D103
+:108CF00049F27531116018601160FFF78BFF40B1C8
+:108D00001068524B00286ED149F27531116018601D
+:108D100011604C4B40F2E3721A60043340221A6037
+:108D2000BFF36F8FBFF34F8FA3F604038022484930
+:108D3000C3F81C25C3F804134649C1F884214A60CE
+:108D40001A46FFF795FF0028FBD00123C2F804352F
+:108D5000BFF36F8FBFF34F8F41E0394BD3F800253E
+:108D6000002A3CD14FF40062C3F80024BFF36F8F98
+:108D7000BFF34F8FFFF74EFF334B40B11868334AB4
+:108D8000032100BB49F27530186011601860186843
+:108D9000314AC021C8B949F27530186011601860B5
+:108DA000274B0122C3F80025BFF36F8FBFF34F8F0E
+:108DB000FFF75EFF98B9FFF74BFF40B102B0BDE887
+:108DC0001040FFF73DBF1160E1E71160E8E7234B7A
+:108DD00018601B680193019B4FF080431A6002B03A
+:108DE00010BD196089E700221A6092E7144BD3F88E
+:108DF00000150029F3D00021C3F80415BFF36F8FCD
+:108E0000BFF34F8F13488024C0F88440D3F8000389
+:108E1000C3F80803C3F80015BFF36F8FBFF34F8F7C
+:108E2000FFF716FF48B1FFF70DFF012202210020D6
+:108E300002B0BDE8104000F0BDBA094B1A60F4E77B
+:108E4000007002400078024000EC064014ED06403D
+:108E50000514C00100E100E014EC064000010040F0
+:108E600004000040C3809DF800300372002343815A
+:108E7000016083818280C3810120704710B5044660
+:108E8000084663899BB2ABB1E2882368E18902FBA3
+:108E9000013101F06FFAE389A1885A1CB2FBF1F3AA
+:108EA00001FB13239BB2E3816389013B9BB2638186
+:108EB000012010BD1846FCE72DE9F0414489A4B219
+:108EC00005468846164684B143899A4288BF46893A
+:108ED0004FF0000788BFB6B2BCB2A64205D94146E2
+:108EE0002846FFF7CBFF013710B92046BDE8F081D7
+:108EF000EB889844F0E710B5438982889A4204468B
+:108F000001D1007AD8B1E2882368A08902FB003041
+:108F100001F030FAA389A1885A1CB2FBF1F301FBDE
+:108F200013239BB2A3816389994215BF6389A389E7
+:108F300001339BB216BF9BB2E3816381012010BD58
+:108F40002DE9F04107460E46144652B190460025E1
+:108F50004545ACB205D031463846FFF7CCFF013568
+:108F600010B92046BDE8F081FB881E44F0E70023DD
+:108F700043818381C38101207047000038B50E4DC5
+:108F80000446212200212846FBF7CCF91022FF21BC
+:108F9000681CFBF7C7F91022FF2105F11100FBF750
+:108FA000C1F9204600F0AEFA204600F0BFFB204693
+:108FB000BDE8384000F06EBDACAD002070B5054690
+:108FC0000E4614462AB90378012B02D11046FFF74A
+:108FD00021FC3146281DFFF78EFF06462CB92B7861
+:108FE000012B02D12046FFF70FFC304670BD000078
+:108FF00010B50D4C201DFFF7BAFF0C4B1C6000F0A4
+:1090000069FB00F03FFD0020FFF7FCFB044630B990
+:10901000074B1B68DB0700D500BE204610BD0020B3
+:10902000FFF7F2FBF9E700BF34810020D0AD00204C
+:10903000F0ED00E02DE9F04F85B000F0E7FF0028EB
+:1090400000F04781DFF8D492AE4ECA46D9F800400E
+:109050002378012B02D10020FFF7DCFB01A9201DA2
+:10906000FFF70CFF2378012B054602D10020FFF704
+:10907000CBFB002D00F02D819DF80530013B072B27
+:1090800000F2658101A252F823F000BFEF920F00B9
+:1090900021930F004D900F004F930F004F930F003F
+:1090A000AD900F009F920F0041930F0000209DF89C
+:1090B000044000F03DFA9DF8082012F07F0540F0D2
+:1090C000AC809DF80930053B042B00F2C880DFE836
+:1090D00003F0037AC69F0D0002A9204600F01DFA96
+:1090E0009DF80A102046FFF79DFBAFE79DF80A5058
+:1090F000854F29462046FFF796FB844B3D701B6841
+:109100005B685BB93268D50701D4002300E000BE7C
+:109110001A4602A9204600F011FA97E75A8803F18F
+:10912000090503EB020B5D4505D3794B002BECD011
+:10913000FEF7CEFFE9E76B780B2B02D12B781D44AD
+:10914000F1E7042B0ED16B79022B04D0082B09D147
+:109150004FF0010801E04FF00008AB783B445A782B
+:10916000FF2A04D03368D807CFD500BECDE783F8F7
+:1091700001804FF00003ADF80230664B03EB48135B
+:109180000DF102029B682946204698470028E9D045
+:10919000BDF802000828E5D92A46002351780529A0
+:1091A00009D192F802C00CF07F0107EB410101EBFD
+:1091B000DC1181F8118011780B449BB298420A446B
+:1091C000ECD80544AFE7BDF80A301A0A022A0CD0E1
+:1091D000032A11D0012A03D14C4B1B681A68D2B95B
+:1091E0009DF8040000F096F930E7484B1B685A6878
+:1091F0005388002B8DD1F3E7474A9189DBB299421E
+:10920000EED9926852F82320002AE9D01378F0E7CB
+:1092100001233D4A7DE712237BE702F01F02012A6A
+:1092200014D19DF80C20384B13445B78012BD7D810
+:10923000384D05EB4315286900F07AF9EB6802A96F
+:109240002046984700287FF401AFC9E7022D06D1D8
+:109250009DF80920012A12D032B1032A19D03368AF
+:10926000D907BDD500BEBBE79DF80C102046FFF71F
+:1092700051FB2B46ADF802000DF1020249E79DF8C3
+:109280000C102046FFF770FB02A9204600F045F9BC
+:10929000DCE69DF80C102046FFF754FBF4E79DF840
+:1092A000081011F07F0207D1039B9DF809209DF85B
+:1092B000040000F06DF9C9E6134B03EB420303EB26
+:1092C000D1135A7C012A07D90E4B1B68DA0700D547
+:1092D00000BE05B0BDE8F08F0E4B9DF8040003EB17
+:1092E00042139DF809205C69039BA047AEE69DF8F8
+:1092F0000400FFF743FEDAF800000430FFF737FE02
+:10930000A4E600BFF0ED00E0ACAD002048810020F5
+:10931000D1800F005CAF0F007C800020D0AD00201A
+:109320009DF80400FFF72AFEDAF800000430FFF78A
+:109330001EFE0A4B002B3FF489AEFEF7CCFE85E6FD
+:10934000029B002B3FF482AE039898477EE6336879
+:10935000DB077FF57BAE00BE78E600BFD7800F004D
+:1093600010B54378013B04460A46072B1DD8DFE8B9
+:1093700003F004041C1C1C040B040C4B0146BDE848
+:1093800010401868FFF71ABE0379590601D18368A7
+:109390005BB1064B21461868FFF710FE637923B1D5
+:1093A000034B1B68DB0700D500BE10BDD0AD00200D
+:1093B000F0ED00E01FB500238DF804008DF80510D6
+:1093C00001A81146CDF80630CDF80A30ADF80E30C0
+:1093D000FFF7C6FF05B05DF804FB1FB50023144678
+:1093E0000822CDF80630CDF80A30ADF80E308DF8F1
+:1093F000040006230DEB02008DF8053000F0BAFFE3
+:10940000214601A8FFF7ACFF04B010BD1FB5002432
+:109410008DF804000720CDF806408DF805008DF882
+:10942000081001A89DF81810ADF80A4003928DF8B5
+:109430000930FFF795FF04B010BD00002DE9F84397
+:10944000089D07460C469046994602266378052BF0
+:1094500004D1E17801F00301414506D00F4B1B68B0
+:10946000DA0700D500BE002009E021463846FFF7A4
+:10947000DBF930B9094B1B68DB07F4D500BEBDE84A
+:10948000F883A178CB0914BF297089F800102378DC
+:10949000012E1C44F3D00126D8E700BFF0ED00E018
+:1094A0001FB500230193CDE902010823114601A84D
+:1094B0008DF80530FFF754FF05B05DF804FB0000A0
+:1094C00070B50E49CB898C89E41AA4B291F90030A9
+:1094D000402C28BF4024002B05460CDA8968084838
+:1094E000224600F047FF802123462846044ABDE873
+:1094F0007040FFF7CBB90021F6E700BFD4AD0020E4
+:10950000B8C70020142200210148FAF70BBF00BFA2
+:10951000D4AD00200021FFF715BA91F90030002BDF
+:109520004FF000031A46ACBF80211946FFF7AEB9D1
+:10953000014B1861704700BFD4AD0020F8B5124D43
+:109540000C46074608684968AA602E4603C6E188AB
+:10955000994228BF1946A9810021E98162B15BB116
+:109560003846FFF7ADFF28B9084B1B68DB0708D466
+:10957000002000E00120F8BD21463846FFF7CDFF6E
+:10958000F1E700BEF7E700BFD4AD0020F0ED00E04A
+:1095900070B51A4C1E4694F90030002B054604DBCA
+:1095A00032461749A06800F0E5FEA368E28933441B
+:1095B0003244A360A38992B29342E28101D03F2E4C
+:1095C00016D8236953B90D492846FFF7A6FF68B995
+:1095D0000C4B1B68DB070FD4002070BD07492846E1
+:1095E00098470028EFD12846FFF794FF0120F4E7C1
+:1095F0002846FFF765FFEAE700BEEEE7D4AD00209E
+:10960000B8C70020F0ED00E0034A4FF40B6303FB02
+:109610000020408B704700BFE8AD002007B5094A25
+:109620004FF40B6303FB00200DF107011030FFF72F
+:1096300025FC20B19DF8070003B05DF804FBFF2076
+:10964000FAE700BFE8AD002007B5084A8DF807101B
+:109650004FF40B6303FB00200DF1070101222030C2
+:10966000FFF76EFC03B05DF804FB00BFE8AD00201F
+:109670002DE9F041154F4FF40B6444433E1900208F
+:10968000B178FFF77DF9804610B10020BDE8F08188
+:1096900004F507653D4404F1200040222946384482
+:1096A000FFF70AFC034608B90120EFE73279D20739
+:1096B000EBD52A46B1784046FFF7E8F80028F3D109
+:1096C000034B1B68DB07E0D500BEDFE7E8AD0020F9
+:1096D000F0ED00E073B5144C4FF40B62002120460E
+:1096E000FAF720FEFF2363714FF442430125E38024
+:1096F00008230026237304F130012B4600954FF414
+:10970000806204F1100025816681FFF7ABFB0096B3
+:109710002B464FF4806204F5866104F12000FFF7C8
+:10972000A1FB02B070BD00BFE8AD002010B5084C31
+:10973000052200212046FAF7F5FD04F11000FFF79D
+:1097400016FC04F12000BDE81040FFF710BC00BF7C
+:10975000E8AD0020F7B58B79022B0746154607D0F8
+:109760002B4B1B68DB0700D500BE002003B0F0BD0B
+:10977000CB79073BDBB2F72BF2D9264EB378002B1F
+:10978000EED18B7833700C7809230C44138005E0FC
+:1097900023782A8813442B8023781C446378242B55
+:1097A000F6D0052B12D121463846FFF73DF828B9EF
+:1097B000174B1B68DA07D8D500BED7E7A3787370BC
+:1097C00023782A8813442B8023781C446378042B45
+:1097D00014D163790A2B11D123782A8813442B8062
+:1097E00021780D4B00930222013321443846FFF7C4
+:1097F00025FE0028DCD02B880E332B804023074A1F
+:10980000F1783846FFF742F80028AFD1D0E700BF23
+:10981000F0ED00E0E8AD0020EAAD002018B6002031
+:1098200008B50B7803F06003202B0AD14B78202B6E
+:1098300005D1054B1BB105490020AFF30080012085
+:1098400000E0002008BD00BF00000000EEAD0020D9
+:1098500010B50B7803F06003202B0C4607D0124B99
+:10986000186810F0010001D000BE002010BD4B7838
+:10987000202BFAD3212B11D9222BF6D10B4B4A885E
+:109880001A71FFF74AFE0A4B63B161880020C1F3E9
+:10989000400201F00101AFF3008003E00723054A15
+:1098A000FFF74CFE0120E1E7F0ED00E0E8AD00201D
+:1098B00000000000EEAD00202DE9F8431C4CE278DA
+:1098C0008A42074602D00120BDE8F883DFF8709095
+:1098D0002546E61804F11008B54215D1154B2BB1F9
+:1098E000638B9BB213B10020FEF798F84023124A15
+:1098F000E1783846FEF7CAFF0028E4D10F4B1B6819
+:10990000DB07E1D500BEDFE705F503614046FFF761
+:10991000F2FAB9F1000F09D06379FF2B06D095F860
+:109920003018994202D10020AFF300800135D3E70F
+:10993000E8AD00201D7A0F0018B60020F0ED00E021
+:109940000000000038B5174B174C0546A3B1607BEB
+:10995000AFF3008080B9A368A362012384F82C30A0
+:1099600042F2077384F83E00A38794F82F1028462C
+:10997000BDE83840FEF7E6BFA26BA36894F82F104D
+:109980009B1AB3F5805F28BF4FF480539BB2074A00
+:109990002846FEF77BFF20B9054B1B68DB0700D587
+:1099A00000BE38BD0000000098C6002098B6002018
+:1099B000F0ED00E07FB52A4C022204F116010646C4
+:1099C00003A8A56800F0D6FCBDF80C2052BA92B2EC
+:1099D00004F11101B5FBF2F503A8042200F0CAFC62
+:1099E000A06BA36803991B1AB3F5805F28BF4FF4DF
+:1099F0008053AAB209BAB0FBF2F5009302FB15023C
+:109A0000184B607B2944FEF787FB031E94F82E1049
+:109A100011DAA368A26B9B1AA362012384F82C308D
+:109A200042F20503A3873046002384F83E30FEF758
+:109A300089FF04B070BD05D100931A463046FFF788
+:109A4000E5FCF6E79BB2074A3046FEF71FFF002809
+:109A5000EFD1054B1B68DB07EBD500BEE9E700BF84
+:109A600098C6002098B60020F0ED00E0044880F889
+:109A70003C1080F83D2080F83E300120704700BF48
+:109A800098C60020402200210148FAF74BBC00BFD5
+:109A900098C60020402200210148FAF743BC00BFCD
+:109AA00098C60020F7B58B79062B06460C4617465C
+:109AB00002D1CB79502B08D0144B1B68DA0702D4A3
+:109AC000002003B0F0BD00BEFAE7114D097805F1A2
+:109AD0002E030093022205F12F032144FFF7AEFC71
+:109AE00028B90A4B1B68DB07EAD500BEE9E7A37873
+:109AF00085F82D3017233B802A461F2395F82F1019
+:109B00003046FEF7C3FE0028DBD1EAE7F0ED00E0C7
+:109B100098C600200B7803F06003202B07B507D010
+:109B20000D4B186810F001000AD000BE002007E0BD
+:109B30004B78FE2B07D0FF2BF8D1FFF7EEFC01206E
+:109B400003B05DF804FB00238DF807300DF1070228
+:109B50000123FFF7F3FCF2E7F0ED00E0012070478E
+:109B6000F0B5C37B1A2B8DB00D4600F0818007D86D
+:109B7000032B00F09580122B43D04FF0FF301BE0F9
+:109B8000232B1BD0252BF8D10DF1060202A9407B17
+:109B9000FEF726FBBDF80610029A0B02013A12BA34
+:109BA00003F47F0343EA0163039203A908222846D2
+:109BB000049300F0DFFB08200DB0F0BD0023CDE9D9
+:109BC0000333059308238DF80F300DF106020223AD
+:109BD00002A9407B8DF81430FEF702FB029B1BBAF2
+:109BE0000493BDF80630DAB21B0A43EA02230C22C2
+:109BF0000DEB02012846ADF8163000F0BBFB0C203F
+:109C0000DAE73B4C3B4B206861680022CDE9033228
+:109C100005AB07AA03C3174604F1090311341868FA
+:109C20005968164603C60833A3423246F7D118686E
+:109C30001B793371002330600822ADF829308DF88C
+:109C40002B302B492C4B0B9305A800F0E3FB102283
+:109C50002A49384600F0DEFB042229490BA800F00F
+:109C6000D9FB242203A9284600F084FB2420A3E783
+:109C700003230393234B8BB1407BAFF300809DF80C
+:109C80000E3080F0010060F3C713042203A92846B8
+:109C90008DF80E3000F06EFB04208DE70120EEE71A
+:109CA000194C1222002103A8FAF73CFBF02394F888
+:109CB0003C208DF80C300A238DF813304FF0000350
+:109CC00062F303038DF80E3094F83D308DF81830B0
+:109CD000122294F83E308DF8193003A9284600F07E
+:109CE00049FB0023A38784F83E30122064E700BFBD
+:109CF0009CAF0F0000800202312E3000B5AF0F0084
+:109D0000C6AF0F000000000098C600202DE9FF41FB
+:109D1000AD4C94F8308006461D46B8F1000F13D0C4
+:109D2000B8F1010F00F0978094F83030022B0FD17A
+:109D300094F82E103046FEF7EDFD002800F00B8160
+:109D4000002300931A46F2E094F82F308B4201D0A2
+:109D500001200CE02AB91F2D03D125689B4B9D42A1
+:109D600008D09B4B1B68D90700D500BE002004B06B
+:109D7000BDE8F081974B23626368A568C4E90932A6
+:109D8000E37B4FF00108282B84F83080C4E90D52A2
+:109D900003D13046FFF70EFEC6E72A2B03D130462B
+:109DA000FFF7D0FDC0E7B5B92B4604F10F01607B8A
+:109DB000FEF794F90223002884F83030B8BF42F24D
+:109DC00005036563BDBF84F82C80A38784F83E50EB
+:109DD00084F82C50A8E794F90C30002B0BDB7E4A5A
+:109DE000ABB2FEF753FD00289ED1794B1B68DB0711
+:109DF000BCD500BEBBE74FF4805277492046FFF741
+:109E0000AFFE002805DAA38E734A7449607BFEF723
+:109E100065F900284FF000020BDDA36860639842EB
+:109E200084F82C209DD883B26B4A94F82E103046CB
+:109E3000D7E7012384F82C30022384F8303094F8DB
+:109E40002E10626342F205033046A38784F83E2059
+:109E5000FEF778FD68E794F90C30002B17DBE37B05
+:109E60002A2B1ED05C4AA38E607B04F10F01FEF703
+:109E700035F900284FF00003BFBF42F2050284F815
+:109E80002C80A28784F83E30A8BF84F82C30A36BC6
+:109E90001D44636BA5639D424FD3022384F8303089
+:109EA00042E7022204F1160103A8A76800F062FA53
+:109EB000BDF80C2052BA92B204F11101B7FBF2F7CF
+:109EC00003A8042200F056FA0399D4F838C000958C
+:109ED000BAB2414FBCFBF2F009BA014402FB10C216
+:109EE0003B46607BFEF73AF9011E0FDAA368A26BCE
+:109EF00084F82C809B1AA362022384F8303042F24B
+:109F00000503A387002384F83E300DE78D42BEDDB4
+:109F10000029A5EB010507DDA36B2A460B44384653
+:109F20003944A36300F034FA002300932A4694F8DE
+:109F30002F103046FFF76AFA0AE7E37B282B3FF43D
+:109F400028AF2A2B3FF42BAF214B1B68DA077FF594
+:109F5000EBAE00BEE8E694F82F103046FEF7DAFCD0
+:109F600000287FF4EDAE84F830000D231C4A94F8ED
+:109F70002E103046FEF78AFC00283FF436AFE37B14
+:109F8000282B0FD1174B13B1607BAFF300801F2339
+:109F90000D4A94F82F103046FEF778FC00287FF425
+:109FA000D7AE22E72A2B06D10F4B002BEFD0607BD8
+:109FB000FEF7F2F8EBE70D4B002BE8D00749607B8A
+:109FC000AFF30080E3E700BF98C60020555342433B
+:109FD000F0ED00E05553425398B60020A7C600208C
+:109FE000B8C600200000000099810F0000000000AA
+:109FF00038B5054D2C7824B9FEF7FAFF08B10123D6
+:10A000002B70204638BD00BFD8C60020014B187801
+:10A01000704700BFD8C600200649074A074B9B1A65
+:10A0200003DD043BC858D050FBDCFEF779FAFAF7A1
+:10A0300007F900000CB00F000080002054810020C0
+:10A04000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7E8
+:10A05000FEE7FEE753B94AB9002908BF00281CBF34
+:10A060004FF0FF314FF0FF3000F074B9ADF1080C44
+:10A070006DE904CE00F006F8DDF804E0DDE9022326
+:10A0800004B070472DE9F047089E04468846002B2F
+:10A0900040F085808A42154648D9B2FA82F24AB128
+:10A0A000C2F1200701FA02F320FA07F7954047EAC8
+:10A0B000030894404FEA154E230CB8FBFEF71FFA35
+:10A0C00085FC0EFB178843EA084307FB0CF1994215
+:10A0D00009D9EB1807F1FF3080F0E380994240F294
+:10A0E000E080023F2B445B1AA4B2B3FBFEF00EFBF0
+:10A0F000103344EA034400FB0CFCA44509D92C1995
+:10A1000000F1FF3380F0CB80A44540F2C8800238D4
+:10A110002C4440EA0740A4EB0C0400271EB1D440B5
+:10A120000023C6E900433946BDE8F087002A53D032
+:10A13000B2FA82F2002A40F0B680491B4FEA154E6F
+:10A140001FFA85F80127B1FBFEFC230C0EFB1C1146
+:10A1500043EA014308FB0CF1994207D9EB180CF1D3
+:10A16000FF3002D2994200F2EC808446591AA3B221
+:10A17000B1FBFEF00EFB101443EA044408FB00F8A8
+:10A18000A04507D92C1900F1FF3302D2A04500F2F7
+:10A19000DC801846A4EB080440EA0C40BEE78B4282
+:10A1A00008D9002E78D00027C6E900013846394684
+:10A1B000BDE8F087B3FA83F77FB98B4202D38242BE
+:10A1C00000F2BD80841A61EB030301209846002E43
+:10A1D000A9D0C6E90048A6E7FFDEC7F12005BB40CD
+:10A1E00022FA05FC4CEA030C01FA07F420FA05F800
+:10A1F00021FA05F34FEA1C4E48EA0404B3FBFEF9CA
+:10A20000210C0EFB19331FFA8CF841EA034309FBBA
+:10A2100008FA9A4502FA07F200FA07F10BD91CEB8B
+:10A22000030309F1FF3080F088809A4540F2858071
+:10A23000A9F102096344A3EB0A03A4B2B3FBFEF045
+:10A240000EFB103344EA034400FB08F8A04508D98C
+:10A250001CEB040400F1FF336BD2A04569D902382E
+:10A26000644440EA0940A4EB0804A0FB02894C4581
+:10A27000C6464B4654D351D0002E69D0B1EB0E02E6
+:10A2800064EB030404FA05F522FA07F3FC401D43CE
+:10A29000C6E90054002746E73746304643E71846EC
+:10A2A00037E707461FE7C2F1200320FA03F795407E
+:10A2B00001FA02F021FA03F34FEA154E3843010C7C
+:10A2C000B3FBFEF71FFA85F80EFB173341EA034193
+:10A2D00007FB08F38B4204FA02F407D9691807F167
+:10A2E000FF3C28D28B4226D9023F2944CB1A81B2A7
+:10A2F000B3FBFEF00EFB103341EA034100FB08F311
+:10A300008B4207D9691800F1FF3C10D28B420ED95D
+:10A3100002382944C91A40EA074714E74145ABD23D
+:10A32000B8EB020E69EB0C0201381346A4E7604655
+:10A33000F0E7184695E76746D8E781467BE7384659
+:10A3400045E7ACF1020C2B4410E702382C4421E71E
+:10A350003746E8E6704700BF30B501390024A24215
+:10A3600001D1002005E0035D01340D5DAB42F6D064
+:10A37000581B30BD0A44914200F1FF3300D17047B1
+:10A3800010B511F8014B03F8014F9142F9D110BDFE
+:10A39000884210B501EB020302D983421C4607D85C
+:10A3A000421E994208D011F8014B02F8014FF8E71C
+:10A3B00083189A1A9A4200D110BD14F8011D03F8AF
+:10A3C000011DF7E70EB400B59CB01DAB02900690DE
+:10A3D0006FF00041094807910491094953F8042B93
+:10A3E00005910068019302A900F082F8029B002207
+:10A3F0001A701CB05DF804EB03B0704700800020B9
+:10A400000802FFFF034613F8012B002AFBD1181A9C
+:10A410000138704710B50139034632B111F8014FC8
+:10A4200003F8014B013A002CF7D11A440021934262
+:10A4300000D110BD03F8011BF9E72DE9F0478E6844
+:10A440009E4282460C469146984638D8B1F80CC0D8
+:10A450001CF4906F31D062692568096902EB4202F1
+:10A460006F1A02EBD272013355103B449D4238BF44
+:10A470001D461CF4806F30D0294600F05FFB064675
+:10A4800050B90C23CAF80030A38943F04003A381DC
+:10A490004FF0FF30BDE8F0873A462169FFF76AFFC9
+:10A4A000A38923F4906343F08003A381266165614F
+:10A4B0003E44ED1B2660A5604646464500D946460B
+:10A4C000324649462068FFF763FFA3689B1BA360E1
+:10A4D00023681E4426600020DCE72A4600F088FB43
+:10A4E00006460028E2D12169504600F0D9FAC8E7B3
+:10A4F0002DE9F04F1E468B891B069DB007460D4681
+:10A5000014460ED50B6963B9402100F017FB286093
+:10A51000286120B90C233B604FF0FF30C9E0402395
+:10A520006B610023099320238DF82930DFF89C917B
+:10A53000039630238DF82A304FF0010A23461E4639
+:10A5400013F8012B0AB1252AF9D1B6EB040B0BD075
+:10A550005B46224629463846FFF76FFF013000F080
+:10A56000A380099B5B4409933378002B00F09C8007
+:10A5700000234FF0FF32CDE9052301360493079302
+:10A580008DF853301A933446052214F8011B4F48B6
+:10A5900000F036FA049BC0B9D90644BF20228DF8DA
+:10A5A00053201A0744BF2B228DF8532032782A2AD1
+:10A5B00013D0079A344600200A26214611F8013BA1
+:10A5C000303B092B4BD970B914E0A0EB09000AFA13
+:10A5D00000F0184304902646D5E7039A111D12682F
+:10A5E0000391002A01DB079204E0524243F0020388
+:10A5F0000792049323782E2B0CD163782A2B33D126
+:10A60000039B1A1D1B680392002BB8BF4FF0FF334A
+:10A61000023405932E4E21780322304600F0F0F9E3
+:10A6200038B14023801B03FA00F0049B034301343C
+:10A63000049314F8011B27488DF82810062200F017
+:10A64000DFF9002838D0244B13BB039B073323F0DA
+:10A65000070308330393099B434409936EE706FB02
+:10A66000023201200C46A8E7002301340593194665
+:10A670000A26204610F8012B303A092A03D9002B6C
+:10A68000C8D00591C6E706FB012101230446F0E787
+:10A6900003AB00932A46114B04A93846AFF3008060
+:10A6A000B0F1FF3F8046D6D1AB895B063FF534AFB2
+:10A6B00009981DB0BDE8F08F03AB00932A46074B05
+:10A6C00004A9384600F082F8EAE700BFCAAF0F00DD
+:10A6D000D0AF0F00D4AF0F00000000003BA40F006C
+:10A6E0002DE9F04791461F468A680B69DDF8208006
+:10A6F0009342B8BF1346C9F8003091F8432006468C
+:10A700000C4612B10133C9F800302368990642BFE4
+:10A71000D9F800300233C9F80030256815F0060575
+:10A7200007D104F1190AE368D9F800209B1AAB425B
+:10A7300028DC94F843302268003318BF01239206C6
+:10A740002DD404F1430239463046C047013020D0B1
+:10A750002368E568D9F8002003F00603042B08BF3E
+:10A76000AD1AA36822690CBF25EAE575002593425E
+:10A77000C4BF9B1AED184FF000091A344D451AD189
+:10A78000002008E00123524639463046C0470130D8
+:10A7900003D14FF0FF30BDE8F0870135C3E7E11882
+:10A7A0005A1C302081F84300224494F8451082F866
+:10A7B00043100233C5E70123224639463046C047DD
+:10A7C0000130E6D009F10109D8E700002DE9F04396
+:10A7D00006460C4601F14300097E85B06E29984675
+:10A7E00017460C9B00F0BA8024D8632939D00AD8C8
+:10A7F000002900F0C380582900F0918004F142053F
+:10A8000084F8421035E0642901D06929F6D1256821
+:10A810001A6815F0800F02F104012CD0126819603B
+:10A82000002A03DA2D23524284F84330DFF8BCC1FA
+:10A830000A233FE0732900F0A58008D86F2921D0B2
+:10A840007029DBD1226842F02002226003E07529E2
+:10A8500018D07829D2D1782284F84520DFF890C129
+:10A8600061E01A68111D1960136884F8423004F120
+:10A870004205012393E01268196015F0400F18BFDC
+:10A8800012B2CDE7D4F800C01A681CF0800F02F1B4
+:10A8900004051D6001D0126803E01CF0400FFAD0DF
+:10A8A0001288DFF848C16F290CBF08230A23002152
+:10A8B00084F843106568A560002DA2BF216821F0CF
+:10A8C000040121600AB9002D46D00546B2FBF3F120
+:10A8D00003FB112E93421CF80EE005F801ED39D967
+:10A8E000082B0BD12368DA0708D5236962689A42DE
+:10A8F000DEBF302305F8013C05F1FF35401B206128
+:10A90000CDF800803B4603AA21463046FFF7E8FE1B
+:10A91000013049D14FF0FF3005B0BDE8F083DFF8DA
+:10A92000CCC084F845101D68216855F8042B1D60C3
+:10A930000D060BD5CD0744BF41F0200121601AB9A7
+:10A94000236823F0200323601023B0E74B0648BFA1
+:10A9500092B2EFE70A46B9E70546C1E71A68D4F8AC
+:10A9600000C06169151D1D601CF0800F136801D0C7
+:10A97000196003E01CF0400FFAD019800023236116
+:10A980000546BDE71A68111D196015686268002147
+:10A99000284600F035F808B1401B60606368236109
+:10A9A000002384F84330ABE723692A463946304612
+:10A9B000C0470130AED023689B0713D4E068039BE7
+:10A9C0009842B8BF1846A7E701234A4639463046A1
+:10A9D000C04701309ED00135E368039A9B1AAB4211
+:10A9E000F2DCEBE7002504F11909F5E7DBAF0F0016
+:10A9F000ECAF0F00000000000000000000000000AD
+:10AA000001F0FF01102A2BDB10F0070F08D010F81F
+:10AA1000013B013A8B422DD010F0070F42B3F6D123
+:10AA2000F0B441EA012141EA014122F007047FF03C
+:10AA300000070023F0E80256083C85EA010586EA93
+:10AA4000010685FA47F5A3FA87F586FA47F6A5FACF
+:10AA500087F68EB9EED1F0BC01F0FF0102F00702DB
+:10AA600032B110F8013B013A83EA010313B1F8D186
+:10AA70000020704701387047002D06BF3546033867
+:10AA8000073815F0010F07D1013015F4807F02BFA0
+:10AA9000013015F4C03F0130F0BC0138704700BFF1
+:10AAA00038B50546002945D051F8043C0C1F002B51
+:10AAB000B8BFE41800F0D2F81F4A1368104633B943
+:10AAC000636014602846BDE8384000F0CDB8A3426A
+:10AAD0000CD921686218934204BF1A685B686360EE
+:10AAE00004BF521822600460ECE713465A680AB1AA
+:10AAF000A242FAD919685818A0420BD12068014423
+:10AB0000581882421960DDD1106852685A600144B9
+:10AB10001960D7E702D90C232B60D3E720682118EE
+:10AB20008A4204BF11685268626004BF091821603C
+:10AB30005C60C7E738BD00BFDCC60020F8B5CD1C9F
+:10AB400025F0030508350C2D38BF0C25002D0646D1
+:10AB500001DBA94203D90C2333600020F8BD00F0CB
+:10AB60007DF821490A6814469CB9204F3B6823B9F7
+:10AB70002146304600F062F838602946304600F041
+:10AB80005DF8431C23D10C233360304600F06CF891
+:10AB9000E3E723685B1B17D40B2B03D923601C440A
+:10ABA000256004E06368A2420CBF0B60536030462E
+:10ABB00000F05AF804F10B00231D20F00700C21A20
+:10ABC000CCD01B1AA350C9E722466468CCE7C41C4A
+:10ABD00024F00304A042E3D0211A304600F02EF8FE
+:10ABE0000130DDD1CFE700BFDCC60020E0C6002089
+:10ABF000F8B5074614460E4621B91146BDE8F8409F
+:10AC0000FFF79CBF22B9FFF74BFF25462846F8BD4A
+:10AC100000F030F8A0420FD221463846FFF78EFFF1
+:10AC200005460028F2D031462246FFF7A3FB314605
+:10AC30003846FFF735FFE9E73546E7E738B5064C14
+:10AC4000002305460846236000F01EF8431C02D18D
+:10AC5000236803B12B6038BDF8C70020014800F01D
+:10AC600011B800BF00C80020014800F00CB800BFB8
+:10AC700000C8002051F8043C181F002BBCBF0B5823
+:10AC8000C018704770477047044A05491368002B85
+:10AC900008BF0B461844106018467047E4C60020F1
+:10ACA00008C80020F8B500BFF8BC08BC9E46704735
+:10ACB000F8B500BFF8BC08BC9E4670470480002071
+:10ACC0000010020000000000000000000000000072
+:10ACD0000338FDD8704700000000000000000000AD
+:10ACE0000338FDD870470000CC930020000000001E
+:10ACF0000338FDD870474E65634446550043414DC7
+:10AD00004926436F2E004E6563746973206E524668
+:10AD1000353238343000362E322E30207331343014
+:10AD200020362E312E3100002095002023D1BCEAA0
+:10AD30005F782315DEEF1212000000006CAB0020DC
+:10AD400004030904280341006400610066007200E6
+:10AD5000750069007400200049006E0064007500F1
+:10AD60007300740072006900650073002E034200D6
+:10AD70006C00750065006600720075006900740063
+:10AD800020006E00520046003500320038003400CA
+:10AD900030002000440046005500220342006C00B1
+:10ADA000750065006600720075006900740020007F
+:10ADB000530065007200690061006C001C034200D2
+:10ADC0006C00750065006600720075006900740013
+:10ADD000200055004600320040AD0F0044AD0F008A
+:10ADE0006CAD0F000C8100209AAD0F00BCAD0F00C0
+:10ADF0002530386C582530386C5800EB3C9055465F
+:10AE000032205546322000020101000240003E1F60
+:10AE1000F820000100010000000000000000008098
+:10AE20000029420042004E435453383430424F4FC1
+:10AE30005446415431362020203C21646F6374799C
+:10AE400070652068746D6C3E0A3C68746D6C3E3CA5
+:10AE5000626F64793E3C7363726970743E0A6C6F12
+:10AE6000636174696F6E2E7265706C616365282210
+:10AE700068747470733A2F2F6769746875622E63F3
+:10AE80006F6D2F63616D692F41726475696E6F43D9
+:10AE90006F72652D6E5246353222293B0A3C2F7364
+:10AEA00063726970743E3C2F626F64793E3C2F6818
+:10AEB000746D6C3E0A000000494E464F5F554632A5
+:10AEC00054585400E8AE0F00494E44455820202005
+:10AED00048544D0039AE0F0043555252454E542050
+:10AEE000554632000000000055463220426F6F7414
+:10AEF0006C6F6164657220362E322E3020207331E3
+:10AF0000343020362E312E310D0A4D6F64656C3A87
+:10AF10002043414D49204E6563746973206E52464B
+:10AF200035323834300D0A426F6172642D49443A2B
+:10AF3000206E524635323834302D4E656374697355
+:10AF40002D726576440D0A446174653A205365702C
+:10AF500020313020323031390D0A0000020000006B
+:10AF6000D5960F0055970F0051980F0021980F00AC
+:10AF7000B9980F00000000002D970F000800000096
+:10AF8000859A0F00A59A0F00159B0F005D9B0F007F
+:10AF90000D9D0F0000000000959A0F00416461664E
+:10AFA000727569740046656174686572353238344B
+:10AFB000300000000046656174686572206E52467C
+:10AFC000353238343000312E3000232D302B200024
+:10AFD000686C4C0065666745464700303132333453
+:10AFE00035363738394142434445460030313233F3
+:10AFF00034353637383961626364656600000000B5
+:10B00000000000003C92FF7F01000000048000204F
+:10B010000000000000000000000000000000000030
+:10B020000000000000000000000000000000000020
+:10B030000000000000000000000000000000000010
+:10B040000000000000000000000000000000000000
+:10B0500000000000000000000000000000000000F0
+:10B0600000000000000000000000000000000000E0
+:10B070007C7F0020FFFFFFFFFF00FFFF320000008A
+:10B080000D790F0091790F00FA8000209880002040
+:10B09000D8AD0F0006000000000000000000000016
+:10B0A00000000000090262000301008032080B006A
+:10B0B0000202020100090400000102020104052449
+:10B0C00000200105240100010424020205240600D9
+:10B0D000010705810308001009040100020A0000AD
+:10B0E0000007050202400000070582024000000937
+:10B0F000040200020806500507050302400001078C
+:10B1000005830240000112010002EF0201409A2370
+:10B1100029000001010203012203000000000000D9
+:10B12000000000000000000000000000000000001F
+:10B130000000000000000000000001000090D003AB
+:10B1400001000000F8C6002010000C000000000004
+:10B15000000000007C80002025420F0001420F000B
+:020000041000EA
+:0810140000400F0000E00F0096
+:00000001FF
diff --git a/bootloader/nectis_nrf52840/nectis_nrf52840_bootloader-7.0.0_s140_6.1.1.hex b/bootloader/nectis_nrf52840/nectis_nrf52840_bootloader-7.0.0_s140_6.1.1.hex
new file mode 100644
index 000000000..72de72dea
--- /dev/null
+++ b/bootloader/nectis_nrf52840/nectis_nrf52840_bootloader-7.0.0_s140_6.1.1.hex
@@ -0,0 +1,11510 @@
+:020000040000FA
+:1000000000040020810A000015070000610A0000BA
+:100010001F07000029070000330700000000000050
+:10002000000000000000000000000000A50A000021
+:100030003D070000000000004707000051070000D6
+:100040005B070000650700006F07000079070000EC
+:10005000830700008D07000097070000A10700003C
+:10006000AB070000B5070000BF070000C90700008C
+:10007000D3070000DD070000E7070000F1070000DC
+:10008000FB070000050800000F0800001908000029
+:10009000230800002D080000370800004108000078
+:1000A0004B080000550800005F08000069080000C8
+:1000B000730800007D080000870800009108000018
+:1000C0009B080000A5080000AF080000B908000068
+:1000D000C3080000CD080000D7080000E1080000B8
+:1000E000EB080000F5080000FF0800000909000007
+:1000F000130900001D090000270900003109000054
+:100100003B0900001FB500F003F88DE80F001FBD8C
+:1001100000F0ACBC40F6FC7108684FF01022401CA7
+:1001200008D00868401C09D00868401C04D0086842
+:1001300000F037BA9069F5E79069F9E7704770B554
+:100140000B46010B184400F6FF70040B4FF0805073
+:100150000022090303692403406943431D1B104621
+:1001600000F048FA29462046BDE8704000F042BA47
+:10017000F0B54FF6FF734FF4B4751A466E1E11E0DA
+:10018000A94201D3344600E00C46091B30F8027B3B
+:10019000641E3B441A44F9D19CB204EB134394B25D
+:1001A00004EB12420029EBD198B200EB134002EBB2
+:1001B000124140EA0140F0BDF34992B00446D1E952
+:1001C0000001CDE91001FF224021684600F0F4FB58
+:1001D00094E80F008DE80F00684610A902E004C8FB
+:1001E00041F8042D8842FAD110216846FFF7C0FF7C
+:1001F0001090AA208DF8440000F099F9FFF78AFFCB
+:1002000040F6FC7420684FF01025401C0FD0206889
+:1002100010226946803000F078F92068401C08D030
+:100220002068082210A900F070F900F061F9A869AF
+:10023000EEE7A869F5E74FF080500369406940F6A2
+:10024000FC71434308684FF01022401C06D0086838
+:1002500000F58050834203D2092070479069F7E788
+:100260000868401C04D00868401C03D00020704778
+:100270009069F9E70420704770B504460068C34DE3
+:10028000072876D2DFE800F033041929631E250021
+:10029000D4E9026564682946304600F062F92A46CE
+:1002A0002146304600F031F9AA002146304600F0E0
+:1002B00057FB002800D0032070BD00F009FC4FF46C
+:1002C000805007E0201D00F040F90028F4D100F034
+:1002D000FFFB60682860002070BD241D94E80700C3
+:1002E000920000F03DFB0028F6D00E2070BDFFF715
+:1002F000A2FF0028FAD1D4E901034FF0805100EBAE
+:10030000830208694D69684382420ED840F6F8704E
+:1003100005684FF010226D1C09D0056805EB8305B8
+:100320000B6949694B439D4203D9092070BD55694A
+:10033000F4E70168491C03D00068401C02D003E0C8
+:100340005069FAE70F2070BD2046FFF735FFFFF731
+:1003500072FF0028F7D1201D00F0F7F80028F2D135
+:1003600060680028F0D100F0E2F8FFF7D3FE00F05B
+:10037000BFF8072070BD10B50C46182802D0012028
+:10038000086010BD2068FFF777FF206010BD41684E
+:10039000054609B1012700E0002740F6F8742068FF
+:1003A0004FF01026401C2BD02068AA68920000F065
+:1003B000D7FA38B3A86881002068401C27D020688D
+:1003C000FFF7BDFED7B12068401C22D026684FF051
+:1003D0008050AC686D68016942695143A9420DD9EA
+:1003E000016940694143A14208D92146304600F0E5
+:1003F000B8F822462946304600F087F800F078F831
+:100400007069D2E700F093F8FFF784FEF6E77069B1
+:10041000D6E77669DBE740F6FC7420684FF01026DB
+:10042000401C23D02068401C0CD02068401C1FD0EA
+:100430002568206805F18005401C1BD027683879A5
+:10044000AA2819D040F6F8700168491C42D001680A
+:10045000491C45D00168491C3ED001680968491C07
+:100460003ED00168491C39D000683EE0B069DAE747
+:10047000B569DEE7B769E2E710212846FFF778FEA5
+:100480003968814222D12068401C05D0D4F8001080
+:1004900001F18002C03107E0B169F9E730B108CA63
+:1004A00051F8040D984201D1012000E000208A4259
+:1004B000F4D158B1286810B1042803D0FEE72846CB
+:1004C000FFF765FF3149686808600EE0FFF722FE1C
+:1004D00000F00EF87169BBE77169BFE7706904E06D
+:1004E0004FF480500168491C01D000F0CBFAFEE7C0
+:1004F000BFF34F8F26480168264A01F4E06111439B
+:100500000160BFF34F8F00BFFDE72DE9F0411746B3
+:100510000D460646002406E03046296800F054F8EF
+:10052000641C2D1D361DBC42F6D3BDE8F08140F69B
+:10053000FC700168491C04D0D0F800004FF48051D1
+:10054000FDE54FF010208069F8E74FF080510A690F
+:10055000496900684A43824201D810207047002050
+:10056000704770B50C4605464FF4806608E0284693
+:1005700000F017F8B44205D3A4F5806405F5805562
+:10058000002CF4D170BD0000F40A0000000000202F
+:100590000CED00E00400FA05144801680029FCD0C5
+:1005A0007047134A0221116010490B68002BFCD0E0
+:1005B0000F4B1B1D186008680028FCD0002010603D
+:1005C00008680028FCD07047094B10B501221A605A
+:1005D000064A1468002CFCD0016010680028FCD08A
+:1005E0000020186010680028FCD010BD00E4014015
+:1005F00004E5014070B50C46054600F073F810B9EB
+:1006000000F07EF828B121462846BDE8704000F091
+:1006100007B821462846BDE8704000F037B8000012
+:100620007FB5002200920192029203920A0B000B06
+:100630006946012302440AE0440900F01F0651F80C
+:10064000245003FA06F6354341F82450401C8242F8
+:10065000F2D80D490868009A10430860081D016827
+:10066000019A1143016000F03DF800280AD00649C4
+:1006700010310868029A10430860091D0868039A3F
+:10068000104308607FBD00000006004030B50F4CED
+:10069000002200BF04EB0213D3F800582DB9D3F8A1
+:1006A000045815B9D3F808581DB1521C082AF1D3C3
+:1006B00030BD082AFCD204EB0212C2F80008C3F8CD
+:1006C00004180220C3F8080830BD000000E0014013
+:1006D0004FF08050D0F83001082801D0002070473A
+:1006E000012070474FF08050D0F83011062905D016
+:1006F000D0F83001401C01D0002070470120704725
+:100700004FF08050D0F830010A2801D00020704707
+:100710000120704708208F490968095808471020B0
+:100720008C4909680958084714208A4909680958FA
+:100730000847182087490968095808473020854923
+:100740000968095808473820824909680958084744
+:100750003C20804909680958084740207D490968BC
+:100760000958084744207B49096809580847482028
+:1007700078490968095808474C207649096809589A
+:10078000084750207349096809580847542071499F
+:1007900009680958084758206E49096809580847E8
+:1007A0005C206C4909680958084760206949096854
+:1007B00009580847642067490968095808476820AC
+:1007C00064490968095808476C2062490968095852
+:1007D000084770205F4909680958084774205D4937
+:1007E00009680958084778205A490968095808478C
+:1007F0007C205849096809580847802055490968EC
+:10080000095808478420534909680958084788202F
+:1008100050490968095808478C204E490968095809
+:10082000084790204B4909680958084794204949CE
+:10083000096809580847982046490968095808472F
+:100840009C204449096809580847A0204149096883
+:1008500009580847A4203F49096809580847A820B3
+:100860003C49096809580847AC203A4909680958C1
+:100870000847B0203749096809580847B420354966
+:10088000096809580847B8203249096809580847D3
+:10089000BC203049096809580847C0202D4909681B
+:1008A00009580847C4202B49096809580847C82037
+:1008B0002849096809580847CC2026490968095879
+:1008C0000847D0202349096809580847D4202149FE
+:1008D000096809580847D8201E4909680958084777
+:1008E000DC201C49096809580847E02019490968B3
+:1008F00009580847E4201749096809580847E820BB
+:100900001449096809580847EC2012490968095830
+:100910000847F0200F49096809580847F4200D4995
+:10092000096809580847F8200A490968095808471A
+:10093000FC2008490968095808475FF48070054998
+:10094000096809580847000003480449024A034B54
+:100950007047000000000020000B0000000B0000AA
+:1009600040EA010310B59B070FD1042A0DD310C82C
+:1009700008C9121F9C42F8D020BA19BA884201D97E
+:10098000012010BD4FF0FF3010BD1AB1D30703D0C6
+:10099000521C07E0002010BD10F8013B11F8014B7C
+:1009A0001B1B07D110F8013B11F8014B1B1B01D198
+:1009B000921EF1D1184610BD02F0FF0343EA032254
+:1009C00042EA024200F005B87047704770474FF0A6
+:1009D00000020429C0F0128010F0030C00F01B800C
+:1009E000CCF1040CBCF1020F18BF00F8012BA8BF1A
+:1009F00020F8022BA1EB0C0100F00DB85FEAC17CDE
+:100A000024BF00F8012B00F8012B48BF00F8012B90
+:100A100070474FF0000200B51346944696462039C1
+:100A200022BFA0E80C50A0E80C50B1F12001BFF4A7
+:100A3000F7AF090728BFA0E80C5048BF0CC05DF80D
+:100A400004EB890028BF40F8042B08BF704748BF5B
+:100A500020F8022B11F0804F18BF00F8012B7047CF
+:100A6000014B1B68DB6818470000002009480A4951
+:100A70007047FFF7FBFFFFF745FB00BD20BFFDE719
+:100A8000064B1847064A1060016881F308884068E1
+:100A900000470000000B0000000B000017040000DE
+:100AA000000000201EF0040F0CBFEFF30881EFF3ED
+:100AB0000981886902380078182803D100E0000015
+:100AC000074A1047074A12682C3212681047000084
+:100AD00000B5054B1B68054A9B58984700BD0000B0
+:100AE0007703000000000020F00A0000040000006E
+:100AF000001000000000000000FFFFFF0090D00386
+:1010000080130020B157020069C00000175702008A
+:1010100069C0000069C0000069C000000000000055
+:101020000000000000000000000000000D58020059
+:1010300069C000000000000069C0000069C0000035
+:10104000755802007B58020069C0000069C00000AA
+:1010500069C0000069C0000069C0000069C00000EC
+:101060008158020069C0000069C000008758020072
+:1010700069C000008D580200935802009958020080
+:1010800069C0000069C0000069C0000069C00000BC
+:1010900069C0000069C0000069C0000069C00000AC
+:1010A00069C000009F58020069C0000069C00000CC
+:1010B00069C0000069C0000069C0000069C000008C
+:1010C000A558020069C0000069C0000069C00000A6
+:1010D00069C0000069C0000069C0000069C000006C
+:1010E00069C0000069C0000069C0000069C000005C
+:1010F00069C0000069C0000069C0000069C000004C
+:1011000069C0000069C0000000F002F824F03FFB55
+:101110000AA090E8000C82448344AAF10107DA4552
+:1011200001D124F034FBAFF2090EBAE80F0013F03E
+:10113000010F18BFFB1A43F001031847584C020077
+:10114000784C02000A444FF0000C10F8013B13F0F9
+:10115000070408BF10F8014B1D1108BF10F8015B10
+:10116000641E05D010F8016B641E01F8016BF9D103
+:1011700013F0080F1EBF10F8014BAD1C0C1B09D15A
+:101180006D1E58BF01F801CBFAD505E014F8016BCC
+:1011900001F8016B6D1EF9D59142D6D3704700005E
+:1011A0000023002400250026103A28BF78C1FBD870
+:1011B000520728BF30C148BF0B6070471FB500F011
+:1011C0003DF88DE80F001FBD1EF0040F0CBFEFF3BC
+:1011D0000880EFF30980014A10470000ABBF000010
+:1011E000F0B44046494652465B460FB402A0013077
+:1011F00001B50648004700BF01BC86460FBC8046CB
+:10120000894692469B46F0BC7047000009110000D9
+:101210008269034981614FF001001044704700006A
+:101220002512000001B41EB400B514F0CBFE01B4C9
+:101230000198864601BC01B01EBD000024F0A4BA8E
+:1012400070B51A4C054609202070A01C00F0D1F89A
+:101250005920A08029462046BDE8704008F0CEB84D
+:1012600008F0D7B870B50C461149097829B1A0F13A
+:1012700060015E2908D3012013E0602804D06928AA
+:1012800002D043F201000CE020CC0A4E94E80E009C
+:1012900006EB8000A0F58050241FD0F8806E284611
+:1012A000B047206070BD012070470000080000209A
+:1012B00018000020F05802003249884201D2012073
+:1012C00070470020704770B50446A0F500002E4E10
+:1012D000B0F1786F02D23444A4F500042948844266
+:1012E00001D2012500E0002500F043F848B125B9FE
+:1012F000B44204D32548006808E0012070BD0020F6
+:1013000070BD002DF9D1B442F9D321488442F6D200
+:10131000F3E710B50446A0F50000B0F1786F03D2F2
+:1013200019480444A4F5000400F023F84FF080416C
+:1013300030B11648006804E08C4204D2012003E07A
+:1013400013488442F8D2002080F0010010BD10B58F
+:1013500020B1FFF7DEFF08B1012010BD002010BD55
+:1013600010B520B1FFF7AFFF08B1012010BD00207C
+:1013700010BD084808490068884201D10120704723
+:101380000020704700600200000000201C000020C8
+:101390000800002054000020BEBAFECA10B5044662
+:1013A0000021012000F03DF800210B2000F039F869
+:1013B0000421192000F035F804210D2000F031F847
+:1013C00004210E2000F02DF804210F2000F029F850
+:1013D0000421C84300F025F80621162000F021F86A
+:1013E0000621152000F01DF82046FFF729FF0020F8
+:1013F00010BDB62101807047FFF732BF114870471A
+:1014000010487047104A10B514680F4B0F4A083344
+:101410001A60FFF727FF0C48001D046010BD7047DD
+:1014200070474907090E002804DB00F1E02080F82E
+:101430000014704700F00F0000F1E02080F8141D48
+:101440007047000003F9004210050240010000014E
+:10145000FE48002101604160018170472DE9F7439A
+:10146000044692B091464068FFF771FF40B1606852
+:10147000FFF776FF20B9607800F00300022801D062
+:10148000012000E00020F14E30724846FFF71BFFBC
+:1014900018B1102015B0BDE8F0834946012001F0D5
+:1014A0008EFE0028F6D101258DF842504FF4C05031
+:1014B000ADF84000002210A9284606F009FC0028DB
+:1014C000E8D18DF842504FF428504FF00008ADF8A5
+:1014D000400047461C216846CDF81C8024F0EFF8F8
+:1014E0009DF81C0008AA20F00F00401C20F0F0001E
+:1014F00010308DF81C0020788DF81D0061789DF863
+:101500001E0061F3420040F001008DF81E009DF8BE
+:1015100000000AA940F002008DF800002089ADF813
+:101520003000ADF83270608907AFADF834000B972A
+:10153000606810AC0E900A94684606F0BCF900286A
+:10154000A8D1BDF8200030808DF8425042F601202D
+:10155000ADF840009DF81E0008AA20F00600801C8F
+:1015600020F001008DF81E000220ADF83000ADF82B
+:10157000340013A80E900AA9684606F09CF90028CA
+:1015800088D1BDF820007080311D484600F033F945
+:10159000002887D18DF8425042F6A620ADF84000D1
+:1015A0001C216846CDF81C8024F089F89DF81C00A9
+:1015B000ADF8345020F00F00401C20F0F000103047
+:1015C0008DF81C009DF81D0008AA20F0FF008DF882
+:1015D0001D009DF81E000AA920F0060040F0010041
+:1015E000801C8DF81E009DF800008DF8445040F0DE
+:1015F00002008DF80000CDE90A4711A80E90ADF861
+:101600003050684606F057F9002899D1BDF82000FF
+:10161000F08000203EE73EB504460820ADF800000B
+:101620002046FFF750FE08B110203EBD21460120A4
+:1016300001F0C5FD0028F8D12088ADF804006088CD
+:10164000ADF80600A088ADF80800E088ADF80A0003
+:101650007E4801AB6A468088002106F035FDBDF862
+:1016600000100829E1D003203EBD1FB5044600202C
+:1016700002900820ADF80800CDF80CD02046FFF706
+:1016800022FE10B1102004B010BD704802AA81885B
+:101690004FF6FF7006F05AFF0028F4D1BDF808108D
+:1016A000082901D00320EEE7BDF800102180BDF825
+:1016B00002106180BDF80410A180BDF80610E18021
+:1016C000E1E701B582B00220ADF800005F4802AB4F
+:1016D0006A464088002106F0F7FCBDF80010022998
+:1016E00000D003200EBD1CB5002100910221ADF8F1
+:1016F00000100190FFF70DFE08B110201CBD5348EB
+:101700006A4641884FF6FF7006F020FFBDF80010D2
+:101710000229F3D003201CBDFEB54C4C06461546ED
+:10172000207A0F46C00705D00846FFF7CCFD18B158
+:101730001020FEBD0F20FEBDF82D01D90C20FEBDEE
+:101740003046FFF7C0FD18BB208801A905F0B8FDA1
+:101750000028F4D130788DF80500208801A906F022
+:1017600091FC0028EBD100909DF800009DF8051039
+:1017700040F002008DF80000090703D040F0080097
+:101780008DF800002088694606F019FC0028D6D1A3
+:10179000ADF8085020883B4602AA002106F094FCD0
+:1017A000BDF80810A942CAD00320FEBD7CB505468D
+:1017B0000020009001900888ADF800000C462846F3
+:1017C0000195FFF7C4FD18B92046FFF7A2FD08B147
+:1017D00010207CBD15B1BDF8000050B11B486A4611
+:1017E00001884FF6FF7006F0B1FEBDF800102180B1
+:1017F0007CBD0C207CBD30B593B0044600200D4666
+:101800000090142101A823F05AFF1C2108A823F0FE
+:1018100056FF9DF80000CDF808D020F00F00401CC6
+:1018200020F0F00010308DF800009DF8010020F04D
+:10183000FF008DF801009DF8200040F002008DF8B7
+:10184000200001208DF8460002E000002002002068
+:1018500042F60420ADF8440011A801902088ADF8AC
+:101860003C006088ADF83E00A088ADF84000E088FC
+:10187000ADF842009DF8020006AA20F00600801C88
+:1018800020F001008DF802000820ADF80C00ADF842
+:1018900010000FA8059001A908A806F00CF8002870
+:1018A00003D1BDF818002880002013B030BD00001F
+:1018B000F0B5007B059F1E4614460D46012800D05A
+:1018C000FFDF0C2030803A203880002C08D0287AA6
+:1018D000032806D0287B012800D0FFDF1720608175
+:1018E000F0BDA889FBE72DE9F04786B0144691F8D2
+:1018F0000C900E9A0D46B9F1010F0BD01021007B10
+:101900002E8A8846052807D0062833D0FFDF06B088
+:10191000BDE8F0870221F2E7E8890C2100EB4000E6
+:1019200001EB4000188033201080002CEFD0E889B4
+:10193000608100271AE00096688808F1020301AA76
+:10194000696900F084FF06EB0800801C07EB470183
+:1019500086B204EB4102BDF8040090810DF106014E
+:1019600040460E3212F0D3FD7F1CBFB26089B842F0
+:10197000E1D8CCE734201080E889B9F1010F11D00B
+:10198000122148430E301880002CC0D0E8896081B5
+:101990004846B9F1010F00D00220207300270DF155
+:1019A000040A1FE00621ECE70096688808F10203AC
+:1019B00001AA696900F04BFF06EB0800801C86B2A3
+:1019C000B9F1010F12D007EBC70004EB4000BDF8DE
+:1019D0000410C18110220AF10201103023F0CEFD63
+:1019E0007F1CBFB26089B842DED890E707EB4701A1
+:1019F00004EB4102BDF80400D0810AF10201404627
+:101A0000103212F084FDEBE72DE9F0470E4688B066
+:101A100090F80CC096F80C80378AF5890C20109944
+:101A200002F10C044FF0000ABCF1030F08D0BCF126
+:101A3000040F3ED0BCF1070F7DD0FFDF08B067E791
+:101A400005EB850C00EB4C00188031200880002A43
+:101A5000F4D0A8F1060000F0FF09558125E0182117
+:101A600001A823F02CFE00977088434601AA7169F3
+:101A700000F0EDFEBDF804002080BDF80600E08017
+:101A8000BDF808002081A21C0DF10A01484612F0A1
+:101A90003EFDB9F1000F00D018B184F804A0A4F8FD
+:101AA00002A007EB080087B20A346D1EADB2D6D291
+:101AB000C4E705EB850C00EB4C0018803220088051
+:101AC000002ABBD0A8F1050000F0FF09558137E0DE
+:101AD00000977088434601AA716900F0B8FE9DF82E
+:101AE0000600BDF80410E1802179420860F300018E
+:101AF00062F34101820862F38201C20862F3C3010A
+:101B0000020962F30411420962F34511820962F38A
+:101B100086112171C0096071BDF80700208122463D
+:101B20000DF10901484612F0F2FC18B184F802A048
+:101B3000A4F800A000E007E007EB080087B20A3431
+:101B40006D1EADB2C4D279E7A8F1020084B205FBE4
+:101B500008F000F10E0CA3F800C035230B80002A1A
+:101B6000A6D055819481009783B270880E32716936
+:101B700000F06DFE62E72DE9F84F1E460A9D0C4607
+:101B800081462AB1607A00F58070D080E0891081AA
+:101B900099F80C000C274FF000084FF00E0A0D28A2
+:101BA00073D2DFE800F09E070E1C28303846556AD5
+:101BB00073737300214648460095FFF779FEBDE830
+:101BC000F88F207B9146082802D0032800D0FFDF41
+:101BD000378030200AE000BFA9F80A80EFE7207BB9
+:101BE0009146042800D0FFDF378031202880B9F1EA
+:101BF000000FF1D1E3E7207B9146042800D0FFDFFE
+:101C000037803220F2E7207B9146022800D0FFDFA8
+:101C100037803320EAE7207B1746022800D0FFDF19
+:101C20003420A6F800A02880002FC8D0A7F80A808A
+:101C3000C5E7207B1746042800D0FFDF3520A6F833
+:101C400000A02880002FBAD04046A7F80A8012E0F2
+:101C5000207B1746052802D0062800D0FFDF102081
+:101C6000308036202880002FA9D0E0897881A7F81D
+:101C70000E80B9F80E00B881A1E7207B91460728B5
+:101C800000D0FFDF37803720B0E72AE04FF01200A6
+:101C900018804FF038001700288090D0E0897881B4
+:101CA000A7F80E80A7F8108099F80C000A2805D034
+:101CB0000B2809D00C280DD0FFDF80E7207B0A28F5
+:101CC00000D0FFDF01200AE0207B0B2800D0FFDFDF
+:101CD000042004E0207B0C2800D0FFDF05203873AF
+:101CE0006DE7FFDF6BE770B50C46054601F0ABFB17
+:101CF00020B10078222804D2082070BD43F20200EF
+:101D000070BD0521284610F075FE206008B1002046
+:101D100070BD032070BD30B44880087820F00F00FB
+:101D2000C01C20F0F000903001F8080B1DCA81E8BB
+:101D30001D0030BC07F0E3BB2DE9FF4784B000274E
+:101D40008246029707989046894612300AF0DCF9DD
+:101D5000401D20F00306079828B907A95046FFF751
+:101D6000C2FF002854D1B9F1000F05D00798017BBC
+:101D700019BB052504681BE098F80000092803D06A
+:101D80000D2812D0FFDF46E0079903254868B0B35D
+:101D9000497B42887143914239D98AB2B3B2011D5D
+:101DA00010F09BFC0446078002E0079C04250834E1
+:101DB0000CB1208810B1032D29D02CE00798012107
+:101DC00012300AF0D3F9ADF80C00024602AB2946F6
+:101DD000504608F000FA070001D1A01C02900798B5
+:101DE0003A461230C8F80400A8F802A003A94046F9
+:101DF000029B0AF0C8F9D8B10A2817D200E006E021
+:101E0000DFE800F007091414100B0D14141213204E
+:101E100014E6002012E6112010E608200EE643F238
+:101E200003000BE6072009E60D2007E6032005E680
+:101E3000BDF80C002346CDE900702A4650460799AC
+:101E400000F015FD57B9032D08D10798B3B2417BB7
+:101E5000406871438AB2011D10F053FCB9F1000FC4
+:101E6000D7D0079981F80C90D3E72DE9FE4F914622
+:101E70001A881C468A468046FAB102AB494608F0E9
+:101E8000AAF9050019D04046A61C278810F0F6FED6
+:101E90003246072629463B46009610F004FB208870
+:101EA0002346CDE900504A465146404600F0DFFC4B
+:101EB000002020800120BDE8FE8F0020FBE710B548
+:101EC00086B01C46AAB104238DF800301388ADF803
+:101ED00008305288ADF80A208A788DF80E200988DB
+:101EE000ADF80C1000236A462146FFF725FF06B027
+:101EF00010BD1020FBE770B50D46052110F07AFDEE
+:101F0000040000D1FFDF294604F11200BDE8704053
+:101F10000AF015B92DE9F8430D468046002607F072
+:101F2000EBFA04462878102878D2DFE800F0773BF7
+:101F30003453313112313131083131313131287975
+:101F4000001FC0B2022801D0102810D114BBFFDF3F
+:101F500035E004B9FFDF0521404610F04BFD007B62
+:101F6000032806D004280BD0072828D0FFDF072637
+:101F700055E02879801FC0B2022820D050B1F6E782
+:101F80002879401FC0B2022819D0102817D0EEE7D8
+:101F900004B9FFDF13E004B9FFDF287901280ED16F
+:101FA000172137E00521404610F024FD070000D13D
+:101FB000FFDF07F1120140460AF09EF82CB12A46D5
+:101FC00021464046FFF7A7FE29E01321404602F0D4
+:101FD000F7FC24E004B9FFDF0521404610F00AFDBC
+:101FE000060000D1FFDF694606F112000AF08EF804
+:101FF000060000D0FFDFA988172901D2172200E0D0
+:102000000A46BDF80000824202D9014602E005E01E
+:102010001729C5D3404600F03AFCD0E7FFDF304631
+:10202000BDE8F883401D20F0030219B102FB01F066
+:10203000001D00E000201044704713B5009848B11F
+:102040000024684610F0F3FA002C02D1F74A0099F8
+:1020500011601CBD01240020F4E72DE9F0470C4677
+:1020600015462421204623F02AFB05B9FFDFA87876
+:1020700060732888DFF8B4A3401D20F00301AF7817
+:102080008946DAF8000010F0F0FA060000D1FFDF10
+:102090004FF000082660A6F8008077B109FB07F131
+:1020A000091D0AD0DAF8000010F0DFFA060000D1AE
+:1020B000FFDF6660C6F8008001E0C4F8048029886C
+:1020C00004F11200BDE8F0470AF008B82DE9F04726
+:1020D000804601F112000D4681460AF015F8401DB8
+:1020E000D24F20F003026E7B14462968386810F046
+:1020F000E7FA3EB104FB06F2121D03D069683868A6
+:1021000010F0DEFA052010F01DFC0446052010F04A
+:1021100021FC201A012802D1386810F09BFA4946A8
+:102120004046BDE8F04709F0EEBF70B50546052111
+:1021300010F060FC040000D1FFDF04F1120128461A
+:10214000BDE8704009F0D8BF2DE9F04F91B04FF0D5
+:10215000000BADF834B0ADF804B047880C46054626
+:1021600092460521384610F045FC060000D1FFDFFD
+:1021700024B1A780A4F806B0A4F808B029780922F1
+:102180000B20B2EB111F7DD12A7A04F11001382700
+:102190004FF00C084FF001090391102A73D2DFE8C9
+:1021A00002F072F2F1F07F08D2888D9F3DDBF3EEF2
+:1021B000B6B6307B022800D0FFDFA88908EBC0014B
+:1021C000ADF804103021ADF83410002C25D060811A
+:1021D000B5F80E9000271DE004EBC708317C88F8A5
+:1021E0000E10F189A8F80C10CDF80090688804232F
+:1021F00004AA296900F02BFBBDF81010A8F81010F4
+:1022000009F10400BDF812107F1C1FFA80F9A8F82C
+:102210001210BFB26089B842DED80DE1307B0228CF
+:1022200000D0FFDFE98908EBC100ADF804003020E1
+:10223000ADF83400287B0A90001FC0B20F90002C2C
+:10224000EBD06181B5F81090002725E0CDF8009023
+:102250006888696903AA0A9B00F0F9FA0A9804EBF6
+:10226000C70848441FFA80F908F10C0204A90F9826
+:1022700012F04DF918B188F80EB0A8F80CB0BDF8FE
+:102280000C1001E0D4E0CFE0A8F81010BDF80E105B
+:102290007F1CA8F81210BFB26089B842D6D8CBE034
+:1022A0000DA8009001AB224629463046FFF71BFBE4
+:1022B000C2E0307B082805D0FFDF03E0307B082830
+:1022C00000D0FFDFE8891030ADF804003620ADF80B
+:1022D0003400002C3FD0A9896181F189A18127E0D8
+:1022E000307B092800D0FFDFA88900F10C01ADF890
+:1022F00004103721ADF83410002C2CD06081E8890F
+:102300000090AB89688804F10C02296956E0E889DD
+:102310003921103080B2ADF80400ADF83410002C33
+:1023200074D0A9896181287A0E280AD002212173EC
+:10233000E989E181288A0090EB8968886969039AB4
+:102340003CE00121F3E70DA8009001AB22462946AD
+:102350003046FFF759FB6FE0307B0A2800D0FFDFE3
+:102360001220ADF80400ADF834704CB3A989618136
+:10237000A4F810B0A4F80EB084F80C905CE020E053
+:1023800002E031E039E042E0307B0B2800D0FFDF93
+:10239000288AADF834701230ADF8040084B10421FD
+:1023A0002173A9896181E989E181298A2182688A69
+:1023B00000902B8A688804F11202696900F047FADC
+:1023C0003AE0307B0C2800D0FFDF1220ADF804008B
+:1023D000ADF834703CB305212173A4F80AB0A4F819
+:1023E0000EB0A4F810B027E00DA8009001AB224673
+:1023F00029463046FFF75CFA1EE00DA8009001ABBD
+:10240000224629463046FFF7B6FB15E034E03B2173
+:10241000ADF80400ADF8341074B3A4F80690A4F835
+:1024200008B084F80AB007E0FFDF05E010000020E4
+:10243000297A012917D0FFDFBDF80400AAF80000AF
+:102440006CB1BDF834002080BDF804006080BDF898
+:102450003400392803D03C2801D086F80CB011B0E4
+:102460000020BDE8F08F3C21ADF80400ADF8341039
+:1024700014B1697AA172DFE7AAF80000EFE72DE94D
+:10248000F84356880F46804615460521304610F021
+:10249000B1FA040000D1FFDF123400943B464146FC
+:1024A00030466A6809F0A3FFBAE570B50D4605210C
+:1024B00010F0A0FA040000D1FFDF294604F1120059
+:1024C000BDE8704009F02DBE70B50D46052110F035
+:1024D00091FA040000D1FFDF294604F11200BDE8A3
+:1024E000704009F04BBE70B50546052110F082FA28
+:1024F000040000D1FFDF04F1080321462846BDE8AF
+:1025000070400422B1E470B50546052110F072FA5E
+:10251000040000D1FFDF214628462368BDE8704053
+:102520000522A2E470B50646052110F063FA040006
+:1025300000D1FFDF04F1120009F0E6FD401D20F09C
+:10254000030511E0011D008803224318214630468F
+:10255000FFF78BFC00280BD0607BABB2684382B2E4
+:102560006068011D10F003F9606841880029E9D115
+:1025700070BD70B50E46054606F0BEFF040000D1E2
+:10258000FFDF0120207266726580207820F00F0046
+:10259000C01C20F0F00030302070BDE8704006F024
+:1025A000AEBF2DE9F0438BB00D461446814606A917
+:1025B000FFF799FB002814D14FF6FF7601274FF45F
+:1025C00020588CB103208DF800001020ADF81000C9
+:1025D00007A8059007AA204604A911F0B7FF78B113
+:1025E00007200BB0BDE8F0830820ADF808508DF847
+:1025F0000E708DF80000ADF80A60ADF80C800CE0AC
+:102600000698A17801742188C1818DF80E70ADF80B
+:102610000850ADF80C80ADF80A606A4602214846C1
+:10262000069BFFF789FBDCE708B501228DF8022045
+:1026300042F60202ADF800200A4603236946FFF77E
+:102640003EFC08BD08B501228DF8022042F60302C7
+:10265000ADF800200A4604236946FFF730FC08BDA8
+:1026600000B587B079B102228DF800200A88ADF854
+:1026700008204988ADF80A1000236A460521FFF7B3
+:102680005BFB07B000BD1020FBE709B1072316E490
+:102690000720704770B588B00D461446064606A957
+:1026A000FFF721FB00280ED17CB10620ADF80850C1
+:1026B0008DF80000ADF80A40069B6A460821DC81CF
+:1026C0003046FFF739FB08B070BD05208DF80000DB
+:1026D000ADF80850F0E700B587B059B107238DF881
+:1026E0000030ADF80820039100236A460921FFF766
+:1026F00023FBC6E71020C4E770B588B00C46064639
+:10270000002506A9FFF7EFFA0028DCD10698012181
+:10271000123009F02BFD9CB12178062921D2DFE887
+:1027200001F0200505160318801E80B2C01EE28845
+:1027300080B20AB1A3681BB1824203D90C20C2E760
+:102740001020C0E7042904D0A08850B901E0062079
+:10275000B9E7012913D0022905D004291CD0052985
+:102760002AD00720AFE709208DF800006088ADF877
+:102770000800E088ADF80A00A068039023E00A2072
+:102780008DF800006088ADF80800E088ADF80A0018
+:10279000A0680A25039016E00B208DF800006088E1
+:1027A000ADF80800A088ADF80A00E088ADF80C008C
+:1027B000A0680B25049006E00C208DF800006078DE
+:1027C0008DF808000C256A4629463046069BFFF71F
+:1027D000B3FA78E700B587B00D228DF80020ADF888
+:1027E000081000236A461946FFF7A6FA49E700B524
+:1027F00087B071B102228DF800200A88ADF8082058
+:102800004988ADF80A1000236A460621FFF794FABA
+:1028100037E7102035E770B586B0064601200D4633
+:10282000ADF808108DF80000014600236A463046D6
+:10283000FFF782FA040008D12946304605F05EFC15
+:102840000021304605F078FC204606B070BDF8B592
+:102850001C4615460E46069F10F0FEF92346FF1D46
+:10286000BCB231462A4600940FF0E9FDF8BD30B401
+:102870001146DDE902423CB1032903D0002330BCFC
+:1028800008F034BB0123FAE71A8030BC704770B5FA
+:102890000C460546FFF72FFB2146284605F03DFC78
+:1028A0002846BDE87040012105F046BC4FF0E0220B
+:1028B0004FF400400021C2F88001BFF34F8FBFF3F7
+:1028C0006F8F1748016001601649900208607047D9
+:1028D000134900B500220A600A60124B4FF0607283
+:1028E0001A60002808BF00BD0F4A104BDFF840C037
+:1028F00001280CD002281CBFFFDF00BD03200860A8
+:102900001A604FF4000000BFCCF8000000BD0220A8
+:1029100008601A604FF04070F6E700B5FFDF00BDB9
+:1029200000F5004008F50140A002002014F5004029
+:1029300004F5014070B50B2000F0BDF9082000F04F
+:10294000BAF900210B2000F0D4F90021082000F092
+:10295000D0F9F44C01256560A5600020C4F8400161
+:10296000C4F84401C4F848010B2000F0B5F9082070
+:1029700000F0B2F90B2000F091F9256070BD10B5A0
+:102980000B2000F098F9082000F095F9E5480121A6
+:1029900041608160E4490A68002AFCD10021C0F846
+:1029A0004011C0F84411C0F848110B2000F094F910
+:1029B000BDE81040082000F08FB910B50B2000F0E2
+:1029C0008BF9BDE81040082000F086B900B530B1A1
+:1029D000012806D0022806D0FFDF002000BDD34822
+:1029E00000BDD34800BDD248001D00BD70B5D1491F
+:1029F0004FF000400860D04DC00BC5F80803CF4829
+:102A000000240460C5F840410820C43500F053F9A3
+:102A1000C5F83C41CA48047070BD08B5C14A0021E0
+:102A200028B1012811D002281CD0FFDF08BD4FF4C7
+:102A30008030C2F80803C2F84803BB483C3001604C
+:102A4000C2F84011BDE80840D0E74FF40030C2F8AA
+:102A50000803C2F84803B44840300160C2F844118A
+:102A6000B3480CE04FF48020C2F80803C2F84803D2
+:102A7000AD4844300160C2F84811AD48001D0068FF
+:102A8000009008BD70B516460D460446022800D9D0
+:102A9000FFDF0022A348012304F110018B4000EB6B
+:102AA0008401C1F8405526B1C1F84021C0F8043373
+:102AB00003E0C0F80833C1F84021C0F8443370BDCA
+:102AC0002DE9F0411D46144630B1012833D00228CB
+:102AD00038D0FFDFBDE8F081891E002221F07F4160
+:102AE0001046FFF7CFFF012D23D00020944D924FC9
+:102AF000012668703E61914900203C39086002203F
+:102B0000091D08608D490420303908608B483D3428
+:102B1000046008206C6000F0DFF83004C7F804039C
+:102B2000082000F0BBF88349F007091F08602E70E9
+:102B3000D0E70120DAE7012B02D00022012005E0D6
+:102B40000122FBE7012B04D000220220BDE8F04166
+:102B500098E70122F9E774480068704770B500F003
+:102B6000D8F8704C0546D4F840010026012809D158
+:102B7000D4F80803C00305D54FF48030C4F8080327
+:102B8000C4F84061D4F8440101280CD1D4F80803FA
+:102B9000800308D54FF40030C4F80803C4F844613A
+:102BA000012012F0A9FCD4F8480101280CD1D4F876
+:102BB0000803400308D54FF48020C4F80803C4F884
+:102BC0004861022012F098FC5E48056070BD70B547
+:102BD00000F09FF85A4D0446287850B1FFF706FFE1
+:102BE000687818B10020687012F086FC55480460BF
+:102BF00070BD0320F8E74FF0E0214FF40010C1F85A
+:102C000000027047152000F067B84B4901200861A9
+:102C1000082000F061B848494FF47C10C1F808035F
+:102C20000020024601EB8003C3F84025C3F8402191
+:102C3000401CC0B20628F5D37047410A43F609523A
+:102C40005143C0F3080010FB02F000F5807001EB67
+:102C50005020704710B5430B48F2376463431B0C98
+:102C60005C020C60384C03FB0400384B4CF2F72438
+:102C700043435B0D13FB04F404EB402000F580702C
+:102C80004012107008681844086010BD2C48406855
+:102C9000704729490120C1F800027047002809DB6C
+:102CA00000F01F02012191404009800000F1E02066
+:102CB000C0F80011704700280DDB00F01F02012151
+:102CC00091404009800000F1E020C0F88011BFF37E
+:102CD0004F8FBFF36F8F7047002809DB00F01F0292
+:102CE000012191404009800000F1E020C0F88012ED
+:102CF00070474907090E002804DB00F1E02080F846
+:102D00000014704700F00F0000F1E02080F8141D5F
+:102D100070470C48001F00680A4A0D49121D1160D7
+:102D20007047000000B0004004B500404081004002
+:102D300044B1004008F5014000800040408500405B
+:102D40003400002014050240F7C2FFFF6F0C0100A1
+:102D5000010000010A4810B5046809490948083112
+:102D6000086012F05DFC0648001D046010BD0649B5
+:102D7000002008604FF0E0210220C1F88002704777
+:102D80001005024001000001FC1F004010B50D209D
+:102D900000F077F8C4B26FF0040000F072F8C0B22F
+:102DA000844200D0FFDF3E490120086010BD70B5AD
+:102DB0000D2000F048F83B4C0020C4F8000101252C
+:102DC000C4F804530D2000F04FF825604FF0E021C7
+:102DD0006014C1F8000170BD10B50D2000F033F88B
+:102DE0003048012141600021C0F80011BDE81040C9
+:102DF0000D2000F039B82C4810B504682A492B483A
+:102E0000083108602749D1F80001012804D0FFDF0C
+:102E10002548001D046010BD2148001D00680022E7
+:102E2000C0B2C1F8002113F047F8F1E710B51D4812
+:102E3000D0F800110029FBD0FFF7DDFFBDE81040FE
+:102E40000D2000F011B800280DDB00F01F02012159
+:102E500091404009800000F1E020C0F88011BFF3EC
+:102E60004F8FBFF36F8F7047002809DB00F01F0200
+:102E7000012191404009800000F1E020C0F880125B
+:102E80007047002804DB00F1E02090F8000405E022
+:102E900000F00F0000F1E02090F8140D4009704799
+:102EA00004D5004000D000401005024001000001A0
+:102EB0004FF0E0214FF00070C1F8800101F5C071C2
+:102EC000BFF34F8FBFF36F8FC1F80001384B8022E3
+:102ED00083F8002441F8800C704700B502460420B6
+:102EE000344903E001EBC0031B792BB1401EC0B293
+:102EF000F8D2FFDFFF2000BD41F8302001EBC00118
+:102F000000224A718A7101220A7100BD294A0021FA
+:102F100002EBC0000171704710B50446042800D3CD
+:102F2000FFDF244800EBC4042079012800D0FFDF34
+:102F30006079A179401CC0B2814200D060714FF02D
+:102F4000E0214FF00070C1F8000210BD2DE9F04102
+:102F500019480568184919480831086014480426BA
+:102F600090F80004134F4009154C042818D0FFDFD7
+:102F700016E0217807EBC1000279012A08D14279D5
+:102F800083799A4204D04279827157F831008047A0
+:102F90002078401CC0B22070042801D3002020708B
+:102FA000761EF6B2E5D20448001D0560BDE8F0814A
+:102FB00019E000E0D80500201005024001000001E2
+:102FC000500000200548064A0168914201D10021C5
+:102FD000016004490120086070470000540000208F
+:102FE000BEBAFECA40E5014070B50C46054609F080
+:102FF0009BFB21462846BDE870400AF080BC704724
+:103000002CFFFFFFDBE5B15100600200B600FFFFBF
+:103010008C00000069915B00935FFEEDA0843C731F
+:10302000F87462145E06C0CB72F2136030B5F84DCE
+:103030000446062CA9780ED2DFE804F0030E0E0E2B
+:103040000509FFDF08E0022906D0FFDF04E00329BD
+:1030500002D0FFDF00E0FFDFAC7030BD30B50446CA
+:103060001038EB4D07280CD2DFE800F0040C060CFA
+:103070000C0C0C00FFDF05E0287E112802D0FFDFDA
+:1030800000E0FFDF2C7630BD2DE9F04111F0C8FBE8
+:10309000044612F0A1FD201AC5B206200FF052FC22
+:1030A000044606200FF056FC211AD94C207E122827
+:1030B00018D000200F1807200FF044FC0646072008
+:1030C0000FF048FC301A3918207E13280CD000204D
+:1030D0000144A078042809D000200844281AC0B26E
+:1030E000BDE8F0810120E5E70120F1E70120F4E7E8
+:1030F000C74810B590F825004108C54800F12600E2
+:1031000005D00DF018FBBDE8104006F00BB80DF02F
+:10311000F3FAF8E730B50446A1F120000D460A287D
+:103120004AD2DFE800F005070C1C2328353A3F445B
+:10313000FFDF42E0207820283FD1FFDF3DE0B448A8
+:103140008178052939D0007E122836D020782428AD
+:1031500033D0252831D023282FD0FFDF2DE0207851
+:1031600022282AD0232828D8FFDF26E0207822280A
+:1031700023D0FFDF21E0207822281ED024281CD075
+:1031800026281AD0272818D0292816D0FFDF14E0C7
+:103190002078252811D0FFDF0FE0207825280CD0DB
+:1031A000FFDF0AE02078252807D0FFDF05E0207840
+:1031B000282802D0FFDF00E0FFDF257030BD1FB5FB
+:1031C00004466A46002001F03CFEB4B1BDF802207E
+:1031D0004FF6FF700621824201D1ADF80210BDF812
+:1031E0000420824201D1ADF80410BDF808108142DC
+:1031F00003D14FF44860ADF8080068460EF014F9AA
+:1032000005F090FF04B010BD70B514460D4606469B
+:10321000FEF759F858B90DB1A54201D90C2070BD7F
+:10322000002408E056F82400FEF74DF808B11020FD
+:1032300070BD641CE4B2AC42F4D3002070BD2DE933
+:10324000F04105461F4690460E4600240068FEF7F2
+:1032500087F830B9A98828680844401EFEF780F82E
+:1032600008B110203CE728680028A88802D0B8429E
+:1032700002D850E00028F5D0092031E72968085D20
+:10328000B8B1671CCA5D152A2ED03CDC152A3AD28B
+:10329000DFE802F03912222228282A2A313139396E
+:1032A00039393939393939392200085D30BB641C64
+:1032B000A4B2A242F9D833E00228DDD1A01C085CF8
+:1032C00088F80000072801D2400701D40A2007E748
+:1032D000307840F0010015E0C143C90707E001283C
+:1032E00007D010E00620FBE60107A1F1805100297C
+:1032F000F5D01846F4E63078810701D50B20EFE6CB
+:1033000040F0020030702868005D384484B2A8881C
+:10331000A04202D2B0E74FF4485382B2A242ADD8E5
+:103320000020DDE610B5027843F2022354080122A2
+:10333000022C12D003DC3CB1012C16D106E0032C88
+:1033400010D07F2C11D112E0002011E080790324ED
+:10335000B4EB901F09D10A700BE08079B2EB901F9B
+:1033600003D1F8E780798009F5D0184610BDFF2019
+:103370000870002010BD08B500208DF8000024481A
+:1033800090F82E1049B190F82F0002280ED0032893
+:103390000ED0FFDF9DF8000008BD1D4869462530AE
+:1033A00001F09EFD0028F5D0FFDFF3E7032000E0E9
+:1033B00001208DF80000EDE738B50C46054669465A
+:1033C00001F08EFD00280DD19DF80010207861F3EA
+:1033D0004700207055F8010FC4F80100A888A4F830
+:1033E0000500002038BD38B51378A8B1022813D0E5
+:1033F000FF281AD007A46D46246800944C7905EB89
+:103400009414247864F347031370032809D00FE061
+:10341000EC0100200302FF0123F0FE0313700228D9
+:10342000F3D1D8B240F0010005E043F0FE00107087
+:10343000107820F0010010700868C2F80100888838
+:10344000A2F8050038BD02210FF0D4BA38B50C46F9
+:103450000978222901D2082038BDADF800008DF886
+:10346000022068460DF0A9F905F05CFE050003D1C5
+:1034700021212046FFF74EFE284638BD1CB500200E
+:103480008DF80000CDF80100ADF80500FB4890F87C
+:103490002E00022801D0012000E000208DF8070056
+:1034A00068460DF0FAFA002800D0FFDF1CBD0022AC
+:1034B0000A80437892B263F3451222F040020A80F8
+:1034C00000780C282BD2DFE800F02A06090E11162E
+:1034D000191C1F220C2742F0110009E042F01D00C8
+:1034E00008800020704742F0110012E042F0100006
+:1034F00040F00200F4E742F01000F1E742F0010072
+:10350000EEE742F0010004E042F00200E8E742F09A
+:10351000020040F00400E3E742F00400E0E7072087
+:1035200070472DE9FF478AB00025BDF82C60824620
+:103530001C4691468DF81C50700703D56068FDF756
+:10354000C2FE68B9CD4F4FF0010897F82E0058B170
+:1035500097F82F00022807D16068FDF701FF18B126
+:1035600010200EB0BDE8F087300702D5A089802872
+:103570003ED8700705D4B9F1000F02D097F82400A7
+:10358000A0B3E07DC0F300108DF81B00627D072022
+:10359000032162B3012A2DD0022AE2D0042AE0D10D
+:1035A0008DF81710F00628D4A27D07202AB3012A2F
+:1035B00023D0022A24D0042AD3D18DF8191000BFB9
+:1035C0008DF81590606810B307A9FFF7ABFE0028CF
+:1035D000C7D19DF81C00FF2816D0606850F8011F65
+:1035E000CDF80F108088ADF8130014E000E001E082
+:1035F0000720B6E78DF81780D4E78DF81980DFE74C
+:1036000002208DF81900DBE743F20220A9E7CDF88C
+:103610000F50ADF81350E07B40B9207C30B9607C8E
+:1036200020B9A07C10B9E07CC00601D0062098E744
+:103630008DF800A0BDF82C00ADF80200A068019044
+:10364000A068029004F10F0001F03EFC8DF80C0020
+:10365000FFF791FE8DF80D009DF81C008DF80E000F
+:103660008DF816508DF81850E07D08A900F00F0075
+:103670008DF81A0068460EF015F805F053FD70E756
+:10368000F0B58FB000258DF830508DF814508DF8BE
+:10369000345006468DF828500195029503950495FF
+:1036A00019B10FC901AC84E80F00744CA07805284B
+:1036B00001D004280CD101986168884200D120B95A
+:1036C0000398E168884203D110B108200FB0F0BD23
+:1036D000207DC00601D51F2700E0FF273B460DAA2D
+:1036E00005A903A8FFF7ABFD0028EFD1A08AC10709
+:1036F00002D0C00600D4EE273B460AAA0CA901A8B6
+:10370000FFF79DFD0028E1D19DF81400C00701D00E
+:103710000A20DBE7A08A410708D4A17D31B19DF8DA
+:103720002810890702D043F20120CFE79DF8281026
+:10373000C90709D0400707D4208818B144F2506166
+:10374000884201D90720C1E78DF818508DF819601B
+:10375000BDF80800ADF81A000198079006A80DF012
+:10376000BBFF05F0DFFC0028B0D18DF820508DF8AC
+:103770002160BDF81000ADF822000398099008A858
+:103780000DF0C9FF05F0CEFC00289FD101AD241D2E
+:1037900095E80F0084E80F00002097E770B586B029
+:1037A0000D46040005D0FDF7DBFD20B1102006B06A
+:1037B00070BD0820FBE72078C107A98802D0FF2947
+:1037C00002D303E01F2901D20920F0E7800763D468
+:1037D000FFF75AFC38B12178C1F3C100012804D0A9
+:1037E000032802D005E01320E1E7244890F82400E4
+:1037F000C8B1C8074FF001064FF0000502D08DF8A0
+:103800000F6001E08DF80F50FFF7B5FD8DF8000057
+:1038100020786946C0F3C1008DF8010060788DF80A
+:103820000250C20801D00720C1E730B3C20701D05F
+:103830008DF80260820705D59DF8022042F0020251
+:103840008DF80220400705D59DF8020040F00400E5
+:103850008DF80200002022780B18C2F38002DA7083
+:1038600001EB40026388D380401CA388C0B253811F
+:103870000228F0D3207A78B905E001E0EC010020BD
+:103880008DF80260E6E7607A30B9A07A20B9E07A74
+:1038900010B9207BC00601D0062088E704F108009B
+:1038A00001F012FB8DF80E0068460DF0BFFA05F02E
+:1038B00039FC002889D18DF810608DF81150E0880E
+:1038C000ADF81200ADF8145004A80DF002FB05F09D
+:1038D00029FC002888D12078C00701D0152000E0FD
+:1038E0001320FFF7BBFB002061E72DE9FF47022013
+:1038F000FB4E8DF804000027708EADF80600B84628
+:1039000043F202094CE001A80EF0DBFF050006D0EF
+:10391000708EA8B3A6F83280ADF806803EE0039C16
+:10392000A07F01072DD504F124000090A28EBDF8E0
+:103930000800214604F1360301F05FFC050005D0C4
+:103940004D452AD0112D3CD0FFDF3AE0A07F20F07A
+:103950000801E07F420862F3C711A177810861F393
+:103960000000E07794F8210000F01F0084F82000A8
+:103970002078282826D129212046FFF7CBFB21E0FB
+:1039800014E040070AD5BDF8080004F10E0101F06B
+:10399000B1FA05000DD04D4510D100257F1CFFB2B6
+:1039A00002200EF0CFFF401CB842ACD8052D11D03C
+:1039B00008E0A07F20F00400A07703E0112D00D0E4
+:1039C000FFDF0025BDF806007086052D04D02846CF
+:1039D00004B0C7E5A6F832800020F9E770B50646C6
+:1039E000FFF731FD054605F087FD040000D1FFDF3C
+:1039F0006680207820F00F00801C20F0F00020303E
+:103A000020700320207295F83E006072BDE870407F
+:103A100005F075BD2DE9F04786B0040000D1FFDF49
+:103A20002078AF4D20F00F00801C20F0F0007030A7
+:103A3000207060680178491F1B2933D2DFE801F04C
+:103A4000FE32323255FD320EFDFD42FC323232780A
+:103A5000FCFCFBFA3232FCFCF9F8FC00C68830466C
+:103A6000FFF7F1FC0546304607F03EF9E0B160682B
+:103A7000007A85F83E0021212846FFF74BFB3046AF
+:103A8000FEF753FB304603F05BFE3146012012F097
+:103A9000D3FCA87F20F01000A877FFF726FF0028AE
+:103AA00000D0FFDF06B05DE5207820F0F000203088
+:103AB00020700320207266806068007A607205F0D2
+:103AC0001EFDD8E7C5882846FFF7BDFC00B9FFDF1B
+:103AD00060680079012800D0FFDF6068017A06B0D5
+:103AE0002846BDE8F04707F0DEBCC6883046FFF741
+:103AF000AAFC050000D1FFDF05F001FD606831463A
+:103B00000089288160684089688160688089A8810F
+:103B1000012012F091FC0020A875A87F00F003009E
+:103B20000228BFD1FFF7E1FE0028BBD0FFDFB9E7D5
+:103B300000790228B6D000B1FFDF05F0E0FC66682E
+:103B4000B6F806A0307A361D012806D0687E814678
+:103B500005F054FA070003D101E0E878F7E7FFDF4A
+:103B60000022022150460EF03CFF040000D1FFDF8E
+:103B700022212046FFF7CEFA3079012800D002201A
+:103B8000A17F804668F30101A177308B2081708B83
+:103B90006081B08BA08184F822908DF80880B8688D
+:103BA0000090F86801906A46032150460EF019FF14
+:103BB00000B9FFDFB888ADF81000B8788DF81200B2
+:103BC00004AA052150460EF00CFF00B9FFDFB888AB
+:103BD000ADF80C00F8788DF80E0003AA04215046C9
+:103BE0000EF0FFFE00B9FFDF062106F1120001F022
+:103BF0009FF940B37079800700D5FFDF7179E07DD0
+:103C000061F34700E075D6F80600A0617089A083D3
+:103C1000062106F10C0001F08BF9F0B195F82500B2
+:103C20004108607861F347006070D5F8260006E02F
+:103C30003EE036E06DE055E04AE02CE040E0C4F8BC
+:103C40000200688D12E0E07D20F0FE00801CE0752F
+:103C5000D6F81200A061F08AD9E7607820F0FE0063
+:103C6000801C6070F068C4F80200308AE080B8F10F
+:103C7000010F04D0B8F1020F05D0FFDF12E70320D7
+:103C8000FFF7D4F90EE7287E122800D0FFDF1120BD
+:103C9000FFF7E4F906E706B02046BDE8F04701F07B
+:103CA00035BD05F02CFC15F8300F40F0020005E0A2
+:103CB00005F025FC15F8300F40F004002870F1E6FF
+:103CC000287E132809D01528D8D11620FFF7C6F969
+:103CD00006B0BDE8F04705F012BC1420F6E700007E
+:103CE000EC010020A978052909D00429C6D105F0E6
+:103CF00006FC022006B0BDE8F047FFF797B900794F
+:103D00000028BBD0E87801F0C6F805F0F8FB0320E6
+:103D1000F0E7287E122802D1687E01F0BCF811205D
+:103D2000D4E72DE9F047054600784FF00008000978
+:103D3000DFF8C0A891460C464646012875D00228F7
+:103D400074D007280AD00A2871D0FFDFA9F80060D4
+:103D500014B1A4F800806680002003E4696801279C
+:103D600004F108000A784FF0020C4FF6FF73172A8F
+:103D70007ED00EDC142A32D006DC052A68D0092A4F
+:103D800010D0102A75D120E0152A73D0162AF9D147
+:103D9000F8E0183A082A6CD2DFE802F0F36B6B0AFD
+:103DA000CAF2DFF1C8884FF01208102621468DE1D3
+:103DB0004FF01C080A26BCB38888A0806868807908
+:103DC00020726868C0796072C0E74FF01B08142643
+:103DD00054B30320207268688088A080B6E70A790F
+:103DE0003C2AB3D00D1D4FF010082C26E4B1698891
+:103DF000A180298B6182298B2182698BA182A98B69
+:103E0000E1826B790246A91D1846FFF7ECFA297981
+:103E1000002001290CD084F80FC0FF212176E06139
+:103E200020626062A06291E70FE02EE151E18CE137
+:103E3000E77320760AF1040090E80E00DAF810002B
+:103E4000C4E90930C4E9071280E7A9F8006083E7F4
+:103E50002C264FF01D08002CF7D00546A380887B48
+:103E60002A880F1D60F300022A80887B400802E048
+:103E70009DE007E1BEE060F341022A80887B800874
+:103E800060F382022A80887BB91CC00860F3C302F9
+:103E90002A80B87A0011401C60F3041202F07F00FF
+:103EA00028807878AA1CFFF79EFA387D05F1090270
+:103EB00007F11501FFF797FA387B01F048F82874ED
+:103EC000787B01F044F86874F87EA874787AE87416
+:103ED000387F2875B87B6875388AE882DAF81C0064
+:103EE000A861B87A524697F808A0C0F34111012999
+:103EF00004D0108C504503D2824609E0FFDF10E069
+:103F0000022903D0288820F0600009E0504504D140
+:103F1000288820F06000403002E0288840F06000EF
+:103F20002880A4F824A0524607F11D01A86996E054
+:103F300011264FF02008002C87D0A380686804F178
+:103F40000A02007920726868007B607269688B1DC4
+:103F500048791946FFF747FAF8E60A264FF0210894
+:103F6000002CE9D08888A080686880792072686811
+:103F7000C07960729AF8301021F004019FE065E08A
+:103F80004CE06FE00B264FF02208002CD4D0C888FC
+:103F9000A0806868007920726868007A00F0D7FF16
+:103FA00060726868407A00F0D2FFA072CEE61C26EC
+:103FB0004FF02608002CBFD0A3806868407960725B
+:103FC0006868007AA0720AF1040090E80E00DAF83E
+:103FD0001000C4E90530C4E90312686800793C2880
+:103FE00003D0432803D0FFDFB0E62772AEE684F8A3
+:103FF00008C0ABE610264FF02408002C9CD088881F
+:10400000A0806868807920816868807A60816868AB
+:104010000089A08168688089E08197E610264FF0CA
+:104020002308002C88D08888A0806868C0882081F8
+:1040300068680089608168684089A08168688089B3
+:10404000E0819AF8301021F0020138E030264FF07C
+:104050002508002C85D0A38069682822496821F0B2
+:104060008DFA73E614264FF01B08002C8ED0A38027
+:10407000686800790128BAD02772DAE90710C4E924
+:10408000031063E64A46214660E0287A012803D0FF
+:10409000022817D0FFDF59E610264FF01F08002C2A
+:1040A00089D06888A080A8892081E8896081288AD1
+:1040B000A081688AE0819AF8301021F001018AF825
+:1040C000301043E64FF012081026688800F01DFFFC
+:1040D0003CE6287AC8B3012838D0022836D0032815
+:1040E00001D0FFDF32E609264FF01108002C85D001
+:1040F0006F883846FFF7A7F990F822A0A780687A62
+:104100002072042138460EF087FC052138460EF057
+:1041100083FC002138460EF07FFC012138460EF06A
+:104120007BFC032138460EF077FC022138460EF066
+:1041300073FC062138460EF06FFC072138460EF05E
+:104140006BFC504600F0A7FE00E6FFE72846BDE8FE
+:10415000F04701F065BC70B5012803D0052800D0F8
+:10416000FFDF70BD8DB22846FFF76DF9040000D166
+:10417000FFDF20782128F4D005F0BEF980B1017866
+:1041800021F00F01891C21F0F00110310170022192
+:10419000017245800020A075BDE8704005F0AFB900
+:1041A00021462846BDE870401322FFF74FB92DE99C
+:1041B000F04116460C00804600D1FFDF307820F039
+:1041C0000F00801C20F0F0001030307020780128A3
+:1041D00004D0022818D0FFDFBDE8F0814046FFF789
+:1041E00032F9050000D1FFDF0320A87505F087F93B
+:1041F00094E80F00083686E80F00FE4810F8301FDC
+:1042000041F001010170E7E74046FFF71CF90500A6
+:1042100000D1FFDFA1884FF6FF700027814202D155
+:10422000E288824203D0814201D1E08840B105F0AA
+:1042300066F994E80F00083686E80F00AF75CBE703
+:10424000A87D0128C8D178230022414612F04AF8FF
+:104250000220A875C0E738B505460C460846FDF7AC
+:1042600032F818BB203D062D4AD2DFE805F0031BCB
+:10427000373C42300021052012F0B4F808B111207B
+:1042800038BDA01C0DF023F904F04CFF050038D117
+:10429000002208231146052012F024F8052830D00A
+:1042A000FFDF2EE06068FDF752F808B1102038BD3E
+:1042B000618820886A460DF0C5FB04F033FF0500D5
+:1042C0001FD16068E8B1BDF80010018019E0A07846
+:1042D00000F0010120880DF0E6FB0EE0206801F0FF
+:1042E0004BFE05460DE0207800F001000CF0EDF9E2
+:1042F00003E0618820880DF020FB04F013FFF0E755
+:104300000725284638BD70B505460C460846FDF71A
+:1043100000F808B1102070BD202D07D0212D0DD040
+:10432000222D0BD0252D09D0072070BD2088A11C7F
+:104330000CF0A0FABDE8704004F0F4BE062070BD99
+:10434000AC482530704708B53421AA4821F0B7F9A8
+:104350000120FEF76BFE1120FEF780FEA54968469E
+:10436000263105F05FF8A3489DF8002010F8251FBE
+:1043700062F3470121F001010170002141724FF405
+:104380006171A0F8071002218172FEF7B1FE00B141
+:10439000FFDFFDF75DF801F084F908BD10B50C46AC
+:1043A0004021204621F069F9A07F20F00300A0778A
+:1043B000202020700020A07584F8230010BD7047D5
+:1043C0002DE9FC410746FCF77EFF10B11020BDE847
+:1043D000FC81884E06F12501D6F825000090B6F83C
+:1043E0002950ADF8045096F82B408DF80640384619
+:1043F000FEF7E2FF0028EAD1FEF77AFE0028E6D0B9
+:10440000009946F8251FB580B471E0E710B5044661
+:10441000FCF77FFF08B1102010BD76487549224691
+:1044200090F8250026314008FEF7DDFF002010BD82
+:104430003EB504460D460846FCF76BFF08B1102058
+:104440003EBD14B143F204003EBD6A4880780528A1
+:1044500003D0042801D008203EBD694602A80AF016
+:10446000AEFA2A4669469DF80800FEF7BCFF002018
+:104470003EBDFEB50D4604004FF0000711D00822E6
+:10448000FEF7C2FE002811D1002608E054F82600ED
+:104490006946FEF747FF002808D1761CF6B2AE4207
+:1044A000F4D30CF059F810B143F20320FEBD514E85
+:1044B00086F824700CB300271BE000BF54F82700D7
+:1044C00002A9FEF72FFF00B1FFDF9DF808008DF86D
+:1044D000000054F8270050F8011FCDF80110808823
+:1044E000ADF8050068460CF05CF800B1FFDF7F1CFA
+:1044F000FFB2AF42E2D386F824500020FEBD2DE982
+:10450000F0478AB01546894604001ED00F4608229F
+:104510002946FEF779FE002811D1002613E000BFDE
+:1045200054F826006946103000F0DAFC002806D165
+:104530003FB157F82600FCF7C6FE10B110200AB0B4
+:104540000BE4761CF6B2AE42EAD30026A5F10108D0
+:104550001CE000BF06F1010A0AF0FF0712E000BFED
+:1045600054F82600017C4A0854F827100B7CB2EB63
+:10457000530F05D106221130113120F0D3FF58B16D
+:104580007F1CFFB2AF42EBD30AF0FF064645E1DBEA
+:104590004E4624B1012003E043F20520CFE700207E
+:1045A0000CF024F810B90CF02DF810B143F20420EF
+:1045B000C5E774B300270DF1170828E054F8270069
+:1045C0006946103000F08CFC00B1FFDF54F8270082
+:1045D000102250F8111FCDF801108088ADF80500A9
+:1045E00054F827100DF1070020F0C8FFAEB156F8BF
+:1045F000271001E0EC0100201022404620F0BEFF11
+:1046000068460BF0B3FF00B1FFDF7F1CFFB2AF4283
+:10461000D4D3FEF733FF002091E7404601F0A0FC21
+:10462000EEE730B585B00446FCF74DFE18B960687A
+:10463000FCF796FE10B1102005B030BD60884AF23C
+:10464000B811884206D82078F84D28B1012806D044
+:10465000022804D00720EFE7FEF74AFD18E0607853
+:10466000022804D0032802D043F20220E4E785F8B0
+:104670002F00C1B200200090ADF8040002292CD018
+:10468000032927D0FFDF68460CF055F804F04AFDF7
+:104690000028D1D1606801F056FC207858B1012083
+:1046A0008DF800000DF1010001F05AFC68460DF094
+:1046B0005EFA00B1FFDF207885F82E00FEF7DEFEFF
+:1046C000608860B1A88580B20BF088FF00B1FFDF81
+:1046D0000020B1E78DF80500D5E74020FAE74FF458
+:1046E0006170EFE710B50446FCF713FE20B960686F
+:1046F00038B1FCF72CFE08B1102010BD606801F045
+:104700002FFCCA4830F82C1F6180C1786170807816
+:104710002070002010BD2DE9F84314468946064656
+:10472000FCF7F7FDA0B94846FCF71AFE80B9204611
+:10473000FCF716FE60B9BD4DA878012800D13CB148
+:104740003178FF2906D049B143F20400BDE8F8836F
+:104750001020FBE7012801D00420F7E7CCB305289F
+:1047600011D004280FD069462046FEF7A0FE00288D
+:10477000ECD1217D49B1012909D0022909D00329B1
+:1047800009D00720E2E70820E0E7024604E0012222
+:1047900002E0022200E00322804623461746002062
+:1047A0000099FEF7BEFE0028D0D1A0892880A07B0A
+:1047B000E875BDF80000A882AF75BDF800100907C4
+:1047C00001D5A18931B1A1892980C00704D0032076
+:1047D00003E006E08021F7E70220FEF727FC86F8D9
+:1047E00000804946BDE8F8430020FEF749BF7CB58C
+:1047F0008E4C05460E46A078022803D0032801D02F
+:1048000008207CBD15B143F204007CBD07200EF0EA
+:10481000A1F810B9A078032806D0FEF735FC28B11E
+:10482000A078032804D009E012207CBD13207CBDB1
+:10483000304600F013FB0028F9D1E670FEF79BFD2F
+:1048400009F0FAFF01208DF800008DF801008DF8C5
+:1048500002502088ADF80400E07D8DF8060068461F
+:104860000DF02EF804F05EFC0028E0D1A0780328BB
+:1048700004D00420FEF7DAFB00207CBDE07800F0D5
+:10488000FDFA0520F6E71CB510B143F204001CBD8B
+:10489000664CA078042803D0052801D008201CBD50
+:1048A00000208DF8000001218DF801108DF8020024
+:1048B00068460DF005F804F035FC0028EFD1A0782B
+:1048C000052805D05FF00200FEF7B0FB00201CBDFC
+:1048D000E07800F0E0FA0320F6E72DE9FC4180469D
+:1048E0000E4603250846FCF73BFD002866D14046EE
+:1048F000FEF7A9FD040004D02078222804D2082065
+:1049000065E543F2020062E5A07F00F003073EB1D7
+:10491000012F0CD000203146FEF751FC0500EFD1ED
+:10492000012F06D0022F1AD0FFDF28464FE50120C5
+:10493000F1E7A07D3146022801D011B107E0112036
+:1049400045E56846FCF791FE0028D9D16946404606
+:1049500006F06CFD0500E8D10120A075E5E7A07D1B
+:10496000032804D1314890F83000C00701D02EB39D
+:104970000EE026B1A07F40071ED4002100E00121F7
+:10498000404606F073FD0500CFD1A075002ECCD0B7
+:104990003146404600F0AEFA05461128C5D1A07F49
+:1049A0004107C2D4316844F80E1F7168616040F05D
+:1049B000040020740025B8E71125B6E7102006E5AD
+:1049C00070B50C460546FEF73EFD010005D02246B7
+:1049D0002846BDE87040FEF739BD43F2020070BDC5
+:1049E00010B5012807D1114B9B78012B00D011B1D4
+:1049F00043F2040010BD0BF023FEBDE8104004F0AC
+:104A000091BB012300F051BA00231A46194600F069
+:104A10004CBA70B506460C460846FCF754FC18B96B
+:104A20002068FCF776FC18B1102070BDEC01002066
+:104A3000F84D2A7E112A04D0132A00D33EB1082053
+:104A4000F3E721463046FEF7A9FE60B1EDE7092005
+:104A5000132A0DD0142A0BD0A188FF29E5D31520E5
+:104A6000FEF7FCFA0020D4E90012C5E90712DCE7E2
+:104A7000A1881F29D9D31320F2E71CB5E548007E91
+:104A8000132801D208201CBD00208DF800006846C4
+:104A90000CF01FFA04F046FB0028F4D11120FEF7B9
+:104AA000DDFA00201CBD2DE9F04FDFF868A3814638
+:104AB00091B09AF818009B4615460C46132803D36C
+:104AC000FFF7DBFF00281FD12046FCF7FCFBE8BB0B
+:104AD0002846FCF7F8FBC8BB20784FF00107C00759
+:104AE0004FF0000102D08DF83A7001E08DF83A10D5
+:104AF00020788846C0F3C1008DF8000060788DF8FA
+:104B00000910C10803D0072011B0BDE8F08FB0B381
+:104B1000C10701D08DF80970810705D59DF80910EE
+:104B200041F002018DF80910400705D59DF80900F4
+:104B300040F004008DF809009DF80900810703D5B5
+:104B400040F001008DF80900002000E015E06E46FD
+:104B500006EB400162884A81401CA288C0B20A82EA
+:104B60000328F5D32078C0F3C100012825D00328FD
+:104B700023D04846FCF7A7FB28B11020C4E7FFE785
+:104B80008DF80970D8E799F80000400808D001288E
+:104B900009D0022807D0032805D043F20220B3E74A
+:104BA0008DF8028001E08DF80270484650F8011F30
+:104BB000CDF803108088ADF80700FEF7DCFB8DF818
+:104BC00001000021424606EB41002B88C3826B881E
+:104BD0008383AB884384EB880385491CC285C9B2B3
+:104BE00082860329EFD3E088ADF83C0068460CF0DC
+:104BF000B5FA002887D19AF818005546112801D037
+:104C0000082081E706200DF0A5FE38B12078C0F31A
+:104C1000C100012804D0032802D006E0122073E767
+:104C200095F8240000283FF46EAFFEF72DFA022815
+:104C300001D2132068E7584600F010F900289DD1F2
+:104C400085F819B068460CF0C9FB04F06BFA040053
+:104C500094D1687E00F012F91220FEF7FFF9204689
+:104C600052E770B56B4D287E122801D00820DCE693
+:104C70000CF0B7FB04F056FA040005D1687E00F092
+:104C80000AF91120FEF7EAF92046CEE670B506468D
+:104C900015460C460846FCF73CFB18B92846FCF7BD
+:104CA00038FB08B11020C0E62A46214630460CF0F9
+:104CB000A9FE04F037FA0028F5D121787F29F2D136
+:104CC0000520B2E67CB505460C460846FCF7FBFA23
+:104CD00008B110207CBD2846FEF7B5FB20B1007856
+:104CE000222804D208207CBD43F202007CBD494842
+:104CF00090F83000400701D511207CBD2078C00815
+:104D000002D16078C00801D007207CBDADF800500A
+:104D100020788DF8020060788DF803000220ADF84D
+:104D2000040068460BF0B6FF04F0FCF97CBD70B5DA
+:104D300086B014460D460646FEF785FB28B100787E
+:104D4000222805D2082006B06FE643F20200FAE7F7
+:104D50002846FCF705FB20B944B12046FCF7F7FADA
+:104D600008B11020EFE700202060A080294890F8CB
+:104D70003000800701D51120E5E703A930460BF08C
+:104D8000CCFD10B104F0CEF9DDE7ADF80060BDF860
+:104D90001400ADF80200BDF81600ADF80400BDF82F
+:104DA0001000BDF81210ADF80600ADF808107DB186
+:104DB000298809B1ADF80610698809B1ADF802106B
+:104DC000A98809B1ADF80810E98809B1ADF8041057
+:104DD000DCB1BDF80610814201D9081A2080BDF867
+:104DE0000210BDF81400814201D9081A6080BDF894
+:104DF0000800BDF80410BDF816200144BDF81200EB
+:104E00001044814201D9081AA08068460BF044FE84
+:104E1000B8E70000EC0100201CB554490968CDE951
+:104E2000001068460CF09CF904F07CF91CBD1CB520
+:104E300000200090019068460CF092F904F072F99D
+:104E40001CBD10800888508048889080C8881081D8
+:104E50008888D080002050819081704710B504462A
+:104E600004F0CCF830B1407830B1204604F0EBFBD0
+:104E7000002010BD052010BD122010BD10B504F09B
+:104E8000BDF8040000D1FFDF607800B9FFDF607873
+:104E9000401E607010BD10B504F0B0F8040000D1E1
+:104EA000FFDF6078401C607010BD1CB5ADF80000DD
+:104EB0008DF802308DF803108DF8042068460CF050
+:104EC00064FD04F02FF91CBD0CB529A2D2E9001233
+:104ED000CDE900120079694601EB501000780CBD55
+:104EE0000278520804D0012A02D043F2022070470F
+:104EF000FEF718BA1FB56A46FFF7A3FF68460CF025
+:104F0000A3FA04F00FF904B010BD70B50C0006460A
+:104F10000DD0FEF798FA050000D1FFDFA6802889A2
+:104F20002081288960816889A081A889E0817CE549
+:104F300010B500231A4603E0845C2343521CD2B20E
+:104F40008A42F9D30BB1002010BD012010BD00B57D
+:104F500040B1012805D0022803D0032804D0FFDF88
+:104F6000002000BDFF2000BD042000BD645A0200E7
+:104F7000070605040302010010B50446FCF7A3F977
+:104F800008B1102010BD2078C0F30210042807D803
+:104F90006078072804D3A178102901D8814201D272
+:104FA000072010BDE078410706D421794A0703D4D1
+:104FB000000701D4080701D5062010BD002010BD50
+:104FC00010B513785C08837F64F3C7138377137875
+:104FD0009C08C37F64F30003C3771078C309487843
+:104FE00063F34100487013781C090B7864F347138E
+:104FF0000B701378DB0863F3000048705078487139
+:1050000010BD10B5C4780B7864F300030B70C4783E
+:10501000640864F341030B70C478A40864F382034A
+:105020000B70C478E40864F3C3030B700379117840
+:1050300063F30001117003795B0863F341011170A0
+:1050400003799B0863F3820111700079C00860F353
+:10505000C301117010BD70B514460D46064604F02C
+:105060004BFA80B10178182221F00F01891C21F040
+:10507000F001A03100F8081B214620F0C4FABDE879
+:10508000704004F03CBA29463046BDE87040132217
+:10509000FEF7DCB92DE9F047064608A8894690E8F6
+:1050A00030041F4690461421284620F008FB0021BA
+:1050B000CAF80010B8F1000F03D0B9F1000F03D106
+:1050C00014E03878C00711D02068FCF722F9C0BB83
+:1050D000B8F1000F07D12068123028602068143022
+:1050E00068602068A8602168CAF8001038788007D6
+:1050F00024D56068FCF72BF918BBB9F1000F21D05B
+:10510000FFF71EF90168C6F868118188A6F86C11CE
+:10511000807986F86E0101F0F8FCF94FEF60626863
+:1051200062B196F8680106F2691140081032FEF784
+:105130005AF910223946606820F020FA0020BDE8B4
+:10514000F08706E0606820B1E8606068C6F8640136
+:10515000F4E71020F3E730B5054608780C4620F058
+:105160000F00401C20F0F001103121700020607011
+:1051700095F8230030B104280FD0052811D0062857
+:1051800014D0FFDF20780121B1EB101F04D295F875
+:10519000200000F01F00607030BD21F0F0002030D2
+:1051A00002E021F0F00030302070EBE721F0F00059
+:1051B0004030F9E7F0B591B0022715460C46064697
+:1051C0003A46ADF80870092103AB05F004F80490E5
+:1051D000002810D004208DF804008DF80170E03410
+:1051E000099605948DF818500AA968460FF0F2F850
+:1051F00000B1FFDF012011B0F0BD10B588B00C4642
+:105200000A99ADF80000C3B11868CDF802005868DB
+:10521000CDF80600ADF80A20102203A820F0AEF960
+:1052200068460CF081F903F07DFF002803D1A17FCF
+:1052300041F01001A17708B010BD0020CDF80200A8
+:10524000E6E72DE9F84F0646808A0D4680B2824691
+:10525000FEF7F9F804463078DFF8A48200274FF013
+:105260000209A8F120080F2870D2DFE800F06FF2E1
+:105270003708387D8CC8F1F0EFF35FF3F300A07FBF
+:1052800000F00300022809D05FF0000080F0010167
+:1052900050460DF0AFFB050003D101E00120F5E71A
+:1052A000FFDF98F85C10C90702D0D8F860000BE067
+:1052B000032105F11D0010F0E0FDD5F81D00914916
+:1052C000B0FBF1F201FB1200C5F81D0070686867C1
+:1052D000B068A8672078252800D0FFDFCAE0A07F4B
+:1052E00000F00300022809D05FF0000080F0010107
+:1052F00050460DF07FFB060003D101E00120F5E7E9
+:10530000FFDF3078810702D52178252904D040F0CD
+:1053100001003070BDE8F88F85F80090307F28716B
+:1053200006F11D002D36C5E90206F3E7A07F00F067
+:105330000300022808D0002080F0010150460DF043
+:1053400059FB040004D102E00120F5E7A7E1FFDFEB
+:105350002078C10604D5072028703D346C60D9E759
+:1053600040F008002070D5E7E07F000700D5FFDFA0
+:10537000307CB28800F0010301B05046BDE8F04F28
+:10538000092105F0B3BD04B9FFDF716821B1102216
+:1053900004F1240020F0F2F828212046FDF7BAFE9F
+:1053A000A07F00F0030002280ED104F124000023A6
+:1053B00000901A4621465046FFF71FFF112807D0DC
+:1053C00029212046FDF7A6FE307A84F82000A1E7C7
+:1053D000A07F000700D5FFDF14F81E0F40F0080083
+:1053E0002070E782A761E761C109607861F341003D
+:1053F000014660F382016170307AE0708AE7A07F35
+:1054000000F00300022809D05FF0000080F00101E5
+:1054100050460DF0EFFA040003D101E00120F5E75A
+:10542000FFDF022104F1850010F027FD0420287021
+:1054300004F5B4706860B4F88500288230481038EC
+:105440007C346C61C5E9028064E703E024E15BE041
+:105450002DE015E0A07F00F00300022807D0002017
+:1054600080F0010150460DF0C5FA18B901E00120A5
+:10547000F6E7FFDF324621465046BDE8F84FEAE541
+:1054800004B9FFDF20782128A1D93079012803D180
+:10549000E07F40F00800E077324621465046FFF7B3
+:1054A000DAFD2046BDE8F84F2321FDF733BE3279FF
+:1054B000AA8005F108030921504604F08CFEE8603B
+:1054C00010B10520287025E7A07F00F00300022816
+:1054D00008D0002080F0010150460DF08BFA040046
+:1054E00003D101E00120F5E7FFDF04F162010223AF
+:1054F0001022081F0DF005F907703179417009E796
+:105500004C02002040420F00A07F00F00300022860
+:1055100008D0002080F0010150460DF06BFA050024
+:1055200003D101E00120F5E7FFDF95F8840000F0EA
+:10553000030001287AD1A07F00F00307E07F10F07C
+:10554000010602D0022F04D133E095F8A000C00775
+:105550002BD0D5F8601121B395F88320087C62F335
+:1055600087000874A17FCA09D5F8601162F3410071
+:105570000874D5F8601166F300000874AEB1D5F870
+:105580006001102204F1240188351FF0F7FF287E06
+:1055900040F001002876287820F0010005F88809FD
+:1055A00000E016B1022F04D02DE095F88800C00766
+:1055B00027D0D5F85C1121B395F88320087C62F3DD
+:1055C00087000874A17FCA09D5F85C1162F3410015
+:1055D0000874D5F85C1166F3000008748EB1D5F834
+:1055E0005C01102204F1240188351FF0C7FF2878E0
+:1055F00040F0010005F8180B287820F0010005F8AC
+:10560000A009022F44D0002000EB400005EBC000B1
+:1056100090F88800800709D595F87C00D5F86421BA
+:10562000400805F17D011032FDF7DDFE8DF8009098
+:1056300095F884006A4600F003008DF8010095F8A3
+:1056400088108DF8021095F8A0008DF8030021460F
+:10565000504601F043FA2078252805D0212807D0AC
+:10566000FFDF2078222803D922212046FDF752FDB2
+:10567000A07F00F0030002280CD0002080F0010180
+:1056800050460DF0C9F900283FF44FAEFFDF41E668
+:105690000120B9E70120F1E7706847703AE6FFDFC3
+:1056A00038E670B5FE4C002584F85C5025660EF097
+:1056B0005EFE04F11001204603F0DAFE84F830505B
+:1056C00070BD70B50D46FDF7BEFE040000D1FFDFD2
+:1056D0004FF4B87128461FF0F2FF04F1240028614E
+:1056E000A07F00F00300022808D0012105F1E000AE
+:1056F0000EF03EFE002800D0FFDF70BD0221F5E76E
+:105700000A46014602F1E0000EF052BE70B50546B1
+:10571000406886B001780A2906D00D2933D00E29B9
+:105720002FD0FFDF06B070BD86883046FDF78BFEB8
+:10573000040000D1FFDF20782128F3D028281BD1D6
+:10574000686802210E3001F0BEF9A8B1686808212E
+:10575000801D01F0B8F978B104F1240130460CF055
+:10576000B1F803F0DFFC00B1FFDF06B02046BDE872
+:1057700070402921FDF7CEBC06B0BDE8704003F0B3
+:10578000BEBE012101726868C6883046FDF75BFE27
+:10579000040000D1FFDFA07F00F00301022902D145
+:1057A00020F01000A077207821280AD06868017ABC
+:1057B00009B1007980B1A07F00F00300022862D017
+:1057C000FFDFA07F00F003000228ABD1FEF78DF8C9
+:1057D0000028A7D0FFDFA5E703F091FEA17F080610
+:1057E0002BD5E07FC00705D094F8200000F01F0003
+:1057F000102820D05FF0050084F8230020782928A5
+:105800001DD02428DDD13146042010F015FE2221C0
+:105810002046FDF77FFCA07F00F00300022830D077
+:105820005FF0000080F0010130460DF0F5F800282F
+:10583000C7D0FFDFC5E70620DEE70420DCE701F084
+:105840000300022808D0002080F0010130460DF04E
+:10585000D1F8050003D101E00120F5E7FFDF2521A4
+:105860002046FDF757FC03208DF80000694605F13E
+:10587000E0000EF094FD0228A3D00028A1D0FFDFA5
+:105880009FE70120CEE703F03AFE9AE72DE9F043C7
+:1058900087B09946164688460746FDF7D4FD0400B2
+:1058A0004BD02078222848D3232846D0E07F000719
+:1058B00043D4A07F00F00300022809D05FF000006D
+:1058C00080F0010138460DF095F8050002D00CE09B
+:1058D0000120F5E7A07F00F00300022805D0012198
+:1058E000002238460DF07DF805466946284601F04D
+:1058F0001CF9009800B9FFDF45B10098E03505615B
+:105900002078222806D0242804D007E0009900201F
+:10591000086103E025212046FDF7FCFB00980121EA
+:1059200041704762868001A9C0E902890EF052FDEC
+:10593000022802D0002800D0FFDF07B0BDE8F083C6
+:1059400070B586B00546FDF77EFD017822291ED987
+:10595000807F00F00300022808D0002080F00101C1
+:1059600028460DF047F804002FD101E00120F5E7AB
+:10597000FFDF2AE0B4F85E0004F1620630440178EB
+:10598000427829B121462846FFF714FCB0B9C9E690
+:10599000ADF804200921284602AB04F01CFC03905A
+:1059A0000028F4D005208DF80000694604F1E000DD
+:1059B0000EF0F5FC022801D000B1FFDF0223102217
+:1059C000314604F15E000CF0D2FEB4F8600000280D
+:1059D000D0D1A7E610B586B00446FDF734FD0178B6
+:1059E00022291BD9807F00F00300022808D0002064
+:1059F00080F0010120460CF0FDFF040003D101E01E
+:105A00000120F5E7FFDF06208DF80000694604F16C
+:105A1000E0000EF0C4FC002800D0FFDF06B010BD8F
+:105A20002DE9F05F05460C460027007890460109F5
+:105A30003E4604F1080BBA4602297DD0072902D060
+:105A40000A2909D146E0686801780A2905D00D299C
+:105A500030D00E292ED0FFDFBBE114271C26002CEE
+:105A60006BD08088A080FDF7EEFC5FEA000900D1D2
+:105A7000FFDF99F817005A46400809F11801FDF7B1
+:105A8000B2FC6868C0892082696851F8060FC4F8C2
+:105A900012004868C4F81600A07E20F0060001E05D
+:105AA0002C02002040F00100A07699F81E0040F082
+:105AB00020014DE01A270A26002CD1D0C088A080F2
+:105AC000FDF7C1FC050000D1FFDF59462846FFF76E
+:105AD00042FB7EE10CB1A88BA080287A0B287DD0F8
+:105AE00006DC01287BD0022808D0032804D135E049
+:105AF0000D2875D00E2874D0FFDF6AE11E27092615
+:105B0000002CADD0A088FDF79EFC5FEA000900D113
+:105B1000FFDF287B00F003000128207A1BD020F053
+:105B200001002072297B890861F341002072297BE2
+:105B3000C90861F3820001E041E1F2E02072297BB3
+:105B4000090961F3C300207299F81E0040F040017A
+:105B500089F81E103DE140F00100E2E713270D2611
+:105B6000002CAAD0A088FDF76EFC8146807F00F053
+:105B70000300022808D0002080F00101A0880CF06A
+:105B800039FF050003D101E00120F5E7FFDF99F8B7
+:105B90001E0000F00302022A50D0686F817801F0E5
+:105BA00003010129217A4BD021F001012172837870
+:105BB0009B0863F3410121728378DB0863F3820160
+:105BC000217283781B0963F3C3012172037863F3A5
+:105BD00006112172437863F3C71103E061E0A9E085
+:105BE00090E0A1E0217284F809A0C178A172022A94
+:105BF00029D00279E17A62F30001E1720279520858
+:105C000062F34101E1720279920862F38201E1726A
+:105C10000279D20862F3C301E1724279217B62F317
+:105C2000000121734279520862F3410121734279E4
+:105C3000920862F382012173407928E0A86FADE7F2
+:105C400041F00101B2E74279E17A62F30001E172C9
+:105C50004279520862F34101E1724279920862F39B
+:105C60008201E1724279D20862F3C301E1720279E2
+:105C7000217B62F3000121730279520862F3410132
+:105C800021730279920862F3820121730079C008BE
+:105C900060F3C301217399F80000232831D926212C
+:105CA00040E018271026E4B3A088FDF7CCFB83461C
+:105CB000807F00F00300022809D0002080F001015D
+:105CC000A0880CF097FE5FEA000903D101E00120F3
+:105CD000F4E7FFDFE868A06099F8000040F00401F5
+:105CE00089F8001099F80100800708D50120207379
+:105CF0009BF8000023286CD92721584651E084F8EE
+:105D00000CA066E015270F265CB1A088FDF79BFB71
+:105D1000814606225946E86808F0CBFA0120A073B4
+:105D2000A0E041E048463CE016270926E4B3287B82
+:105D300020724EE0287B19270E26ACB3C4F808A0C9
+:105D4000A4F80CA0012807D0022805D0032805D00C
+:105D5000042803D0FFDF0DE0207207E0697B0428F0
+:105D600001F00F0141F0800121721ED0607A20F015
+:105D700003006072A088FDF766FB054600782128C5
+:105D800027D0232800D0FFDFA87F00F003000228DF
+:105D900013D0002080F00101A0880CF03DFE2221EC
+:105DA0002846FDF7B7F914E004E0607A20F003001C
+:105DB000401CDEE7A8F8006010E00120EAE70CB123
+:105DC0006888A080287A68B301280AD002284FD0BA
+:105DD000FFDFA8F800600CB1278066800020BDE8D6
+:105DE000F09F15270F26002CE4D0A088FDF72BFB91
+:105DF000807F00F00300022808D0002080F001011D
+:105E0000A0880CF0F7FD050003D101E00120F5E7C3
+:105E1000FFDFD5F81D000622594608F04AFA84F83B
+:105E20000EA0D6E717270926002CC3D0A088FDF7BF
+:105E30000AFB8146807F00F00300022808D0002082
+:105E400080F00101A0880CF0D5FD050003D101E030
+:105E50000120F5E7FFDF6878800701D5022000E028
+:105E60000120207299F800002328B2D9272159E790
+:105E700019270E26002C9DD0A088FDF7E4FA5FEAD2
+:105E8000000900D1FFDFC4F808A0A4F80CA084F832
+:105E900008A0A07A40F00300A07299F81E10C9096A
+:105EA00061F38200A07299F81F2099F81E1012EA7F
+:105EB000D11F05D099F8201001F01F0110292BD017
+:105EC00020F00800A07299F81F10607A61F3C300F7
+:105ED0006072697A01F003010129A2D140F0040047
+:105EE000607299F81E0000F003000228E87A16D0CC
+:105EF000217B60F300012173AA7A607B62F30000CA
+:105F00006073EA7A520862F341012173A97A490861
+:105F100061F3410060735CE740F00800D2E7617B09
+:105F200060F300016173AA7A207B62F300002073A2
+:105F3000EA7A520862F341016173A97A490861F370
+:105F40004100207345E710B5FE4C30B101461022E8
+:105F500004F120001FF012FB012084F8300010BD76
+:105F600010B5044600F0D1FDF64920461022BDE8E8
+:105F7000104020311FF002BB70B5F24D06004FF00B
+:105F8000000413D0FBF79FF908B110240CE00621A0
+:105F9000304608F075F9411C05D028665FF0010015
+:105FA00085F85C0000E00724204670BD0020F7E77C
+:105FB000007810F00F0204D0012A05D0022A0CD17B
+:105FC00010E0000909D10AE00009012807D00228E1
+:105FD00005D0032803D0042801D00720704708709B
+:105FE000002070470620704705282AD2DFE800F01D
+:105FF00003070F171F00087820F0FF001EE0087845
+:1060000020F00F00401C20F0F000103016E008785F
+:1060100020F00F00401C20F0F00020300EE0087847
+:1060200020F00F00401C20F0F000303006E008782F
+:1060300020F00F00401C20F0F000403008700020DD
+:106040007047072070472DE9F041804688B00D4623
+:1060500000270846FBF784F9A8B94046FDF7F3F995
+:10606000040003D02078222815D104E043F2020076
+:1060700008B0BDE8F08145B9A07F410603D500F026
+:106080000300022801D01020F2E7A07FC10601D44E
+:10609000010702D50DB10820EAE7E17F090701D524
+:1060A0000D20E5E700F00300022805D125B12846C0
+:1060B000FEF762FF0700DBD1A07F00F0030002289B
+:1060C00008D0002080F0010140460CF093FC06004F
+:1060D00002D00FE00120F5E7A07F00F003000228C6
+:1060E0000ED0002080F00101002240460CF079FC27
+:1060F000060007D0A07F00F00300022804D009E0CA
+:106100000120EFE70420B3E725B12A4631462046B7
+:10611000FEF756FF6946304600F007FD009800B9CB
+:10612000FFDF0099022006F1E0024870C1F82480E8
+:106130004A6100220A81A27F02F00302022A1CD0D7
+:1061400001200871287800F00102087E62F3010046
+:1061500008762A78520862F3820008762A78920834
+:1061600062F3C30008762A78D20862F30410087636
+:1061700024212046FCF7CEFF33E035B30871301DF3
+:1061800088613078400908777078C0F3400048771C
+:10619000287800F00102887F62F301008877A27FEF
+:1061A000D20962F382008877E27F62F3C3008877C6
+:1061B000727862F304108877A878C87701F1210219
+:1061C00028462031FEF71DFF03E00320087105205B
+:1061D000087625212046FCF79DFFA07F20F0400097
+:1061E000A07701A900980EF0F5F8022801D000B1BF
+:1061F000FFDF38463CE72DE9FF4F534A0D4699B083
+:106200009A4607CA0AAB002783E807001998FDF7EA
+:106210001AF9060006D03078262806D008201DB0CE
+:10622000BDE8F08F43F20200F9E7B07F00F0030908
+:10623000B9F1020F0AD05DB91B98FEF79DFE002848
+:10624000EDD1B07F00F00300022801D11B9890BB74
+:10625000B07F00F00300022808D0002080F0010188
+:1062600019980CF0C7FB040003D101E00120F5E709
+:10627000FFDF852D28D007DCF5B1812D1ED0822DC2
+:106280001ED0832D08D11DE0862D1FD0882D1FD054
+:10629000892D1FD08A2D1FD00F2020710F281DD0CF
+:1062A00003F02AF9E0B101208DF83C00201D109088
+:1062B0002079B8B15BE111E00020EEE70120ECE7C6
+:1062C0000220EAE70320E8E70520E6E70620E4E706
+:1062D0000820E2E70920E0E70A20DEE707209EE742
+:1062E00011209CE7B9F1020F03D0A56F03D1A06F75
+:1062F00002E0656FFAE7606F804632D04FF0010030
+:1063000001904FF002000090214630461B9AFEF7A4
+:1063100057FE1B98007800F00101A87861F3010096
+:10632000A870B17FC90961F38200A870F17F61F3A1
+:10633000C300A870617861F30410A8702078400948
+:10634000287003E02C0200206C5A02006078C0F331
+:10635000400068701B988078E87000206871287190
+:1063600003E00220019001200090A87898F8021024
+:10637000C0F3C000C1F3C00108405FEA000B2DD09C
+:106380005046FAF7A0FF78BBDAF80C00FAF79BFF4B
+:1063900050BBDAF81C00FAF796FF28BBDAF80C00BD
+:1063A000A060DAF81C00E060607898F8012042EA0A
+:1063B000500100BF61F34100607098F80210C0B254
+:1063C00000EA111161F3000060700020207700994D
+:1063D00006F11700022908D0012107E0607898F83B
+:1063E000012002EA5001E5E732E0002104EB8101DF
+:1063F00048610199701C022901D0012100E00021AF
+:1064000004EB81014861A87800F00300012857D10E
+:1064100098F8020000F00300012851D1B9F1020FF1
+:1064200004D02A1D691D1B98FEF7EBFD287998F80A
+:10643000041008408DF83400697998F8052011405F
+:106440008DF8381008433BD05046FAF73CFF08B1AE
+:106450001020E4E60AF110010491B9F1020F17D0FF
+:106460000846002104F18C03CDE9000304F5AE7267
+:1064700002920DAB5A462046FEF70CFE0028E8D1EA
+:10648000B9F1020F08D0504608D14FF0010107E0E2
+:1064900050464FF00101E5E70498F5E74FF00001A1
+:1064A00004F1A403CDE9000304F5B072029281F077
+:1064B00001010EAB5A462046FEF7ECFD0028C8D17C
+:1064C0006078800734D4A87898F80210C0F3800070
+:1064D000C1F3800108432BD0297898F800000AAA5C
+:1064E000B9F1020F06D032F811204300DA4002F071
+:1064F00003070AE032F810204B00DA4012F00307DD
+:1065000005D0012F0BD0022F0BD0032F07D0BBF1EA
+:10651000000F0DD0012906D0042904D008E002277D
+:10652000F5E70127F3E7012801D0042800D104276B
+:10653000B07F40F08000B077F17F6BF30001F1771E
+:106540006078800706D50320A071BBF1000F0ED143
+:10655000002028E00220022F18D0012F18D0042F8D
+:1065600029D00020A071B07F20F08000B0772521D5
+:106570003046FCF7CFFD0FA904F1E0000DF00FFF4E
+:1065800010B1022800D0FFDF002048E6A071DFE74D
+:10659000A0710D2104F120001FF091F8207840F047
+:1065A0000200207001208DF85C0017AA314619986E
+:1065B00000F094FADBE70120A071D8E72DE9F04361
+:1065C00087B09046894604460025FCF73CFF06004C
+:1065D00006D03078272806D0082007B0BDE8F08321
+:1065E00043F20200F9E7B07F00F00300022809D06F
+:1065F0005FF0000080F0010120460CF0FBF9040080
+:1066000003D101E00120F5E7FFDFA7795FEA090088
+:1066100005D0012821D0B9F1020F26D110E0B8F140
+:10662000000F22D1012F05D0022F05D0032F05D056
+:10663000FFDF2DE00C252BE0012529E0022527E0D6
+:106640004046FAF740FEB0B9032F0ED11022414662
+:1066500004F11D001EF092FF1AE0012F02D0022F5C
+:1066600003D104E0B8F1000F12D00720B5E740468F
+:10667000FAF729FE08B11020AFE7102104F11D0040
+:106680001EF0FBFF0621404607F0FAFDC4F81D008E
+:106690002078252140F0020020703046FCF73AFDBA
+:1066A0002078C10713D020F00100207002208DF85F
+:1066B000000004F11D0002908DF804506946C330BB
+:1066C0000DF06DFE022803D010B1FFDF00E025774A
+:1066D000002082E730B587B00D460446FCF7B3FED4
+:1066E000A0B1807F00F00300022812D05FF000000C
+:1066F00080F0010120460CF07DF904000ED0284600
+:10670000FAF7E1FD38B1102007B030BD43F20200C6
+:10671000FAE70120ECE72078400701D40820F3E7EE
+:10672000294604F13D00202205461EF027FF20786F
+:1067300040F01000207001070FD520F008002070F5
+:1067400007208DF80000694604F1E00001950DF086
+:1067500026FE022801D000B1FFDF0020D4E770B58B
+:106760000D460646FCF76FFE18B10178272921D1A6
+:1067700002E043F2020070BD807F00F003000228B7
+:1067800008D0002080F0010130460CF033F90400FD
+:1067900003D101E00120F5E7FFDFA079022809D14C
+:1067A0006078C00706D02A4621463046FEF702FD33
+:1067B00010B10FE0082070BDB4F860000E280BD2B5
+:1067C00004F1620102231022081F0BF09AFF01213D
+:1067D00001704570002070BD112070BD70B5064677
+:1067E00014460D460846FAF76EFD18B92046FAF72A
+:1067F00090FD08B1102070BDA6F57F40FF380ED087
+:106800003046FCF720FE38B1417822464B08811C07
+:106810001846FCF7E8FD07E043F2020070BD204691
+:10682000FDF7F4FD0028F9D11021E01D0FF025FB44
+:10683000E21D294604F1170000F087F9002070BD21
+:106840002DE9F04104468AB01546884600270846DF
+:10685000FAF786FD18B92846FAF782FD10B1102024
+:106860000AB006E42046FCF7EEFD060003D03078BF
+:1068700027281AD102E043F20200F1E7B07F00F0CE
+:106880000300022808D0002080F0010120460CF00F
+:10689000B1F8040003D101E00120F5E7FFDF207823
+:1068A000400702D56078800701D40820D8E7B07F80
+:1068B00000F00300022803D0A06F03D1A16F02E013
+:1068C000606FFAE7616F407800B19DB1487810B110
+:1068D000B8F1000F0ED0ADB1EA1D06A8E16800F0D6
+:1068E00034F9102206A905F117001EF01BFE18B19D
+:1068F000042707E00720B3E71022E91D04F12D006B
+:106900001EF03CFEB8F1000F06D0102208F107017E
+:1069100004F11D001EF032FE2078252140F0020017
+:1069200020703046FCF7F6FB2078C10715D020F028
+:106930000100207002208DF8000004F11D0002907B
+:10694000103003908DF804706946B3300DF027FDC8
+:10695000022803D010B1FFDF00E0277700207FE797
+:10696000F8B515460E460746FCF76DFD040004D049
+:106970002078222804D00820F8BD43F20200F8BD98
+:10698000A07F00F00300022802D043F20500F8BD0A
+:106990003046FAF798FC18B92846FAF794FC08B183
+:1069A0001020F8BD00953288B31C21463846FEF70A
+:1069B00024FC112815D00028F3D1297C4A08A17F96
+:1069C00062F3C711A177297CE27F61F30002E277CD
+:1069D000297C890884F82010A17F21F04001A1774B
+:1069E000F8BDA17F0907FBD4D6F80200C4F8360031
+:1069F000D6F80600C4F83A003088A086102229464E
+:106A000004F124001EF0BAFD287C4108E07F61F308
+:106A10004100E077297C61F38200E077287C8008E0
+:106A200084F82100A07F40F00800A0770020D3E781
+:106A300070B50D4606460BB1072070BDFCF703FD8F
+:106A4000040007D02078222802D3A07F800604D437
+:106A5000082070BD43F2020070BDADB1294630463A
+:106A60000AF030FF02F05EFB297C4A08A17F62F346
+:106A7000C711A177297CE27F61F30002E277297CCC
+:106A8000890884F8201004E030460AF03EFF02F046
+:106A900049FBA17F21F02001A17770BD70B50D46A3
+:106AA000FCF7D1FC040005D02846FAF732FC20B1EF
+:106AB000102070BD43F2020070BD29462046FEF74B
+:106AC0004AFB002070BD04E010F8012B0AB1002041
+:106AD0007047491E89B2F7D20120704770B515463C
+:106AE000064602F009FD040000D1FFDF207820F007
+:106AF0000F00801C20F0F000203020706680286895
+:106B0000A060BDE8704002F0FABC10B5134C94F8D8
+:106B10003000002808D104F12001A1F110000DF08F
+:106B200080FC012084F8300010BD10B190F8B9202D
+:106B30002AB10A4890F8350018B1002003E0B830B7
+:106B400001E0064834300860704708B50023009320
+:106B500013460A460CF049F908BD00002C0200203B
+:106B600018B18178012938D101E0102070470188DF
+:106B700042F60112881A914231D018DC42F6010225
+:106B8000A1EB020091422AD00CDC41B3B1F5C05F09
+:106B900025D06FF4C050081821D0A0F57060FF38E0
+:106BA0001BD11CE001281AD002280AD117E0B0F549
+:106BB000807F14D008DC012811D002280FD00328D0
+:106BC0000DD0FF2809D10AE0B0F5817F07D0A0F5EC
+:106BD0008070033803D0012801D0002070470F20B7
+:106BE00070470A281FD008DC0A2818D2DFE800F016
+:106BF000191B1F1F171F231D1F21102815D008DC6C
+:106C00000B2812D00C2810D00D2816D00F2806D132
+:106C10000DE011280BD084280BD087280FD003203B
+:106C200070470020704705207047072070470F20ED
+:106C3000704704207047062070470C20704743F2CD
+:106C40000200704738B50C46050041D06946FFF791
+:106C5000AFF9002819D19DF80010607861F30200A7
+:106C600060706946681CFFF7A3F900280DD19DF8F4
+:106C70000010607861F3C5006070A978C1F341012C
+:106C8000012903D0022905D0072038BD217821F041
+:106C9000200102E0217841F020012170410704D059
+:106CA000A978C90861F386106070607810F0380F19
+:106CB00007D0A978090961F3C710607010F0380F88
+:106CC00002D16078400603D5207840F04000207063
+:106CD000002038BD70B50446002008801546606865
+:106CE000FFF7B0FF002816D12089A189884211D86A
+:106CF00060688078C0070AD0B1F5007F0AD840F2FA
+:106D00000120B1FBF0F200FB1210288007E0B1F582
+:106D1000FF7F01D90C2070BD01F2012129800020E4
+:106D200070BD10B50478137864F300031370047811
+:106D3000640864F3410313700478A40864F38203C5
+:106D400013700478E40864F3C3031370047824090F
+:106D500064F3041313700478640964F34513137027
+:106D60000078800960F38613137031B10878C10789
+:106D700001D1800701D5012000E0002060F3C71396
+:106D8000137010BD4278530702D002F0070306E0EB
+:106D900012F0380F02D0C2F3C20300E001234A7898
+:106DA00063F302024A70407810F0380F02D0C0F34B
+:106DB000C20005E0430702D000F0070000E0012018
+:106DC00060F3C5024A7070472DE9F04F95B00D0091
+:106DD000824612D0122128461EF04FFC4FF6FF7B50
+:106DE00005AA0121584607F066F8002426463746D2
+:106DF0004FF420586FF4205973E0102015B0BDE80F
+:106E0000F08F00BF9DF81E0001280AD1BDF81C10AC
+:106E100041450BD011EB09000AD001280CD0022803
+:106E20000CD0042C0ED0052C0FD10DE0012400E075
+:106E30000224BDF81A6008E0032406E00424BDF82B
+:106E40001A7002E0052400E00624BDF81A1051452E
+:106E500047D12C74BEB34FF0000810AA4FF0070AB8
+:106E6000CDE90282CDE900A80DF13C091023CDF84F
+:106E7000109042463146584607F0D0F808BBBDF89E
+:106E80003C002A46C0B210A90DF041FBC8B9AE8142
+:106E9000CFB1CDE900A80DF1080C0AAE40468CE850
+:106EA0004102132300223946584607F0B7F840B98B
+:106EB000BDF83C00F11CC01EC0B22A1D0DF027FB1E
+:106EC00010B103209AE70AE0BDF82900E881062CFA
+:106ED00005D19DF81E00A872BDF81C002881002075
+:106EE0008CE705A806F0F3FF00288BD0FFF779FEAA
+:106EF00084E72DE9F0471C46DDE90978DDF82090AC
+:106F000015460E00824600D1FFDF0CB1208818B173
+:106F1000D5B11120BDE8F087022D01D0012100E09C
+:106F2000002106F1140005F0B5FEA8F800000246A5
+:106F30003B462946504603F04EF9C9F8000008B90F
+:106F4000A41C3C600020E5E71320E3E7F0B41446FE
+:106F5000DDE904528DB1002314B1022C09D101E006
+:106F6000012306E00D7CEE0703D025F00105012387
+:106F70000D742146F0BC03F0B9BF1A80F0BC704715
+:106F80002DE9FE4F91461A881C468A468046FAB182
+:106F900002AB494603F01FF9050019D04046A61C74
+:106FA00027880BF06BFE3246072629463B460096A3
+:106FB0000BF079FA20882346CDE900504A46514625
+:106FC0004046FFF7C3FF002020800120BDE8FE8F70
+:106FD0000020FBE72DE9F04786B082460EA89046D8
+:106FE00090E8B000894604AA05A903A88DE8070027
+:106FF0001E462A4621465046FFF77BFF039901B102
+:1070000001213970002818D1F94904F1140204ABA8
+:107010000860039805998DE80700424649465046A6
+:1070200006F0EFF9A8B1092811D2DFE800F0050851
+:107030000510100A0C0C0E00002006B06AE71120A3
+:10704000FBE70720F9E70820F7E70D20F5E7032025
+:10705000F3E7BDF810100398CDE9000133462A4646
+:1070600021465046FFF772FFE6E72DE9F04389B06D
+:107070000D46DDE9108781461C461646142103A8FB
+:107080001EF01DFB012002218DF810108DF80C0060
+:107090008DF81170ADF8146064B1A278D20709D0F0
+:1070A0008DF81600E088ADF81A00A088ADF8180039
+:1070B000A068079008A80095CDE90110424603A9F1
+:1070C00048466B68FFF786FF09B0BDE8F083F0B56E
+:1070D0008BB000240646069407940727089405A859
+:1070E0000994019400970294CDE903400D461023C2
+:1070F0002246304606F092FF78B90AA806A9019404
+:1071000000970294CDE90310BDF8143000222946FF
+:10711000304606F059FD002801D0FFF762FD0BB0A4
+:10712000F0BD06F0F9BB2DE9FC410C468046002677
+:1071300002F0E2F9054620780D287DD2DFE800F064
+:10714000BC0713B325BD49496383AF959B00A8488D
+:10715000006820B1417841F010014170ADE0404637
+:1071600002F0FAF9A9E0042140460BF043FC0700C5
+:1071700000D1FFDF07F11401404605F01FFDA5BB5C
+:1071800013214046FDF71CFC97E0042140460BF01C
+:1071900031FC070000D1FFDFE088ADF800000020DF
+:1071A000B8819DF80000010704D5C00602D5A0886B
+:1071B000B88105E09DF8010040067ED5A088F881E1
+:1071C00005B9FFDF22462946404601F0BDFC0226F4
+:1071D00073E0E188ADF800109DF8011009060FD5A5
+:1071E000072803D006280AD00AE024E004214046FC
+:1071F0000BF000FC060000D1FFDFA088F081022622
+:10720000CDB9FFDF17E0042140460BF0F3FB070088
+:1072100000D1FFDF07F1140006F0B5FB90F0010F7D
+:1072200002D1E079000648D5387C022640F0020001
+:10723000387405B9FFDF00E03EE0224629464046AB
+:1072400001F082FC39E0042140460BF0D3FB017CC5
+:10725000002D01F00206C1F340016171017C21F0B3
+:1072600002010174E7D1FFDFE5E702260121404674
+:1072700002F0A4F921E0042140460BF0BBFB0546D7
+:10728000606800902089ADF80400012269464046FC
+:1072900002F0B5F9287C20F0020028740DE0002DE2
+:1072A000C9D1FFDFC7E7022600214046FBF70CF9F2
+:1072B000002DC0D1FFDFBEE7FFDF3046BDE8FC8117
+:1072C0003EB50C0009D001466B4601AA002006F02D
+:1072D00027FF20B1FFF785FC3EBD10203EBD0020FA
+:1072E0002080A0709DF8050002A900F00700FEF7BD
+:1072F0007BFE50B99DF8080020709DF8050002A99A
+:10730000C0F3C200FEF770FE08B103203EBD9DF839
+:10731000080060709DF80500C109A07861F30410B1
+:10732000A0709DF80510890961F3C300A0709DF855
+:107330000410890601D5022100E0012161F3420019
+:107340009DF8001061F30000A07000203EBD70B5F4
+:10735000144606460D4651EA040005D075B10846AC
+:10736000F9F7F5FF78B901E0072070BD29463046EE
+:1073700006F037FF10B1BDE8704032E454B120464A
+:10738000F9F7E5FF08B1102070BD21463046BDE891
+:10739000704095E7002070BD2DE9FC5F0C469046DB
+:1073A0000546002701780822007A3E46B2EB111FFD
+:1073B0007ED104F10A0100910A31821E4FF0020AC7
+:1073C00004F1080B0191092A73D2DFE802F0ECDF27
+:1073D00005F427277AA9CD00688804210BF00AFB61
+:1073E000060000D1FFDFB08920B152270726C2E096
+:1073F0009002002051271026002C7DD06888A080A4
+:107400000120A071A88900220099FFF7A0FF0028A1
+:1074100073D1A8892081288AE081D1E0B5F8129043
+:10742000072824D1E87B000621D5512709F1140053
+:1074300086B2002CE1D0A88900220099FFF787FFCF
+:1074400000285AD16888A08084F806A0A8892081E5
+:107450000120A073288A2082A4F81290A88A0090A4
+:1074600068884B46A969019A01F04BFBA8E05027B8
+:1074700009F1120086B2002C3ED0A889002259469C
+:10748000FFF765FF002838D16888A080A889E080D0
+:10749000287A072813D002202073288AE081E87B0D
+:1074A000C0096073A4F81090A88A0090688801E071
+:1074B00083E080E04B4604F11202A969D4E7012081
+:1074C000EAE7B5F81290512709F1140086B2002CB2
+:1074D00066D0688804210BF08DFA83466888A08006
+:1074E000A88900220099FFF732FF00286ED184F8A6
+:1074F00006A0A889208101E052E067E00420A07383
+:10750000288A2082A4F81290A88A009068884B46A6
+:10751000A969019A01F0F5FAA989ABF80E104FE0BC
+:107520006888FBF790FF0746688804210BF062FA31
+:10753000064607B9FFDF06B9FFDF687BC00702D048
+:107540005127142601E0502712264CB36888A080EA
+:10755000502F06D084F806A0287B594601F0E1FAA6
+:107560002EE0287BA11DF9E7FE49A88949898142BF
+:1075700005D1542706269CB16888A08020E05327B7
+:107580000BE06888A080A889E08019E06888042161
+:107590000BF030FA00B9FFDF55270826002CF0D198
+:1075A000A8F8006011E056270726002CF8D068885C
+:1075B000A080002013E0FFDF02E0012808D0FFDFF9
+:1075C000A8F800600CB1278066800020BDE8FC9F11
+:1075D00057270726002CE3D06888A080687AA0711E
+:1075E000EEE7401D20F0030009B14143091D01EB06
+:1075F0004000704713B5DB4A00201071009848B175
+:10760000002468460BF013F8002C02D1D64A0099EA
+:1076100011601CBD01240020F4E770B50D4606463C
+:1076200086B014465C2128461EF049F804B9FFDFF5
+:10763000A0786874A2782188284601F09CFA00207E
+:10764000A881E881228805F11401304605F09BFAF3
+:107650006A460121304606F02EFC19E09DF8030031
+:10766000000715D5BDF806103046FFF730FD9DF830
+:107670000300BDF8061040F010008DF80300BDF8BF
+:107680000300ADF81400FF233046059A06F074FDA0
+:10769000684606F01CFC0028E0D006B070BD10B5AE
+:1076A0000C4601F1140005F0A5FA0146627C204663
+:1076B000BDE8104001F094BA30B50446A94891B035
+:1076C0004FF6FF75C18905AA284606F0F4FB30E0A5
+:1076D0009DF81E00A0422AD001282AD1BDF81C0026
+:1076E000B0F5205F03D042F60101884221D100208D
+:1076F00002AB0AAA0CA9019083E8070007200090BA
+:10770000BDF81A1010230022284606F087FC38B96D
+:10771000BDF828000BAAC0B20CA90CF0F8FE10B1FD
+:10772000032011B030BD9DF82E00A04201D10020F1
+:10773000F7E705A806F0CBFB0028C9D00520F0E745
+:1077400070B5054604210BF055F9040000D1FFDFA8
+:1077500004F114010C46284605F030FA214628466B
+:10776000BDE8704005F031BA70B58AB00C460646E7
+:10777000FBF769FE050014D02878222827D30CB126
+:10778000A08890B101208DF80C0003208DF8100026
+:1077900000208DF8110054B1A088ADF818002068C1
+:1077A00007E043F202000AB070BD0920FBE7ADF824
+:1077B00018000590042130460BF01CF9040000D19C
+:1077C000FFDF04F1140005F02CFA000701D40820B3
+:1077D000E9E701F091FE60B108A802210094CDE92B
+:1077E000011095F8232003A930466368FFF7F2FBE8
+:1077F000D9E71120D7E72DE9F04FB2F802A0834670
+:1078000089B0154689465046FBF71DFE0746042100
+:1078100050460BF0EFF80026044605964FF002089C
+:107820000696ADF81C6007B9FFDF04B9FFDF4146DB
+:10783000504603F0C6FE50B907AA06A905A88DE870
+:1078400007004246214650466368FFF752FB454811
+:1078500007AB0660DDE9051204F11400CDF80090D5
+:10786000CDE90320CDE9013197F823205946504650
+:107870006B6805F01FFA06000AD0022E04D0032E12
+:1078800014D0042E00D0FFDF09B03046BDE8F08FE1
+:10789000BDF81C000028F7D00599CDE9001042463C
+:1078A000214650466368FFF751FBEDE7687840F0EA
+:1078B00008006870E8E72DE9F04F99B004464FF0F2
+:1078C00000082848ADF81C80ADF82080ADF8248071
+:1078D000A0F80880ADF81480ADF81880ADF82C80C1
+:1078E000ADF82880007916460D464746012808D095
+:1078F000022806D0032804D0042802D0082019B09A
+:10790000C4E72046F9F7DFFC80BB2846F9F7DBFC2B
+:1079100060BB6068F9F724FD40BB606848B16089CE
+:107920002189884202D8B1F5007F01D90C20E6E711
+:1079300080460EAA06A92846FFF7CCF90028DED11A
+:1079400068688078C0F34100022808D19DF81900CA
+:1079500010F0380F03D02869F9F7F9FC30B905A900
+:10796000206904E0900200201400002020E0FFF7CE
+:1079700069F90028C3D1206948B1607880079DF873
+:10798000150000F0380001D5F0B300E0E0BB9DF831
+:10799000140080060ED59DF8150010F0380F03D0A6
+:1079A0006068F9F7D4FC18B96068F9F7D9FC08B138
+:1079B0001020A4E70AA96069FFF744F900289ED1C6
+:1079C000606940B19DF8290000F0070101293CD110
+:1079D00010F0380F39D00BA9A069FFF733F9002850
+:1079E0008DD19DF8280080062FD49DF82C008006AC
+:1079F0002BD4A06950B19DF82D0000F0070101299A
+:107A000023D110F0380F00E01FE01ED0E06818B15D
+:107A10000078D0B11C2818D20FAA611C2046FFF7AD
+:107A200080F90121384661F30F2082468DF852100B
+:107A3000B94642F603000F46ADF850000DF13F0283
+:107A400018A928680CF082FD08B1072057E79DF8B7
+:107A5000600015A9CDF80090C01CCDE9019100F09F
+:107A6000FF0B00230BF20122514614A806F066F921
+:107A7000F0BBBDF854000C90FD492A89286900929A
+:107A8000CDE901016B89BDF838202868069906F018
+:107A900055F901007ED120784FF0020AC10601D4C9
+:107AA00080062BD5ADF80C90606950B90AA906A8DC
+:107AB000FFF768F99DF8290020F00700401C8DF8B9
+:107AC00029009DF8280008A940F0C8008DF828007A
+:107AD0008DF8527042F60210ADF8500003AACDF8AE
+:107AE00000A0CDE90121002340F2032214A800E008
+:107AF0001EE00A9906F022F901004BD1DC484D4600
+:107B000008385B460089ADF83D000FA8CDE902902A
+:107B1000CDF80490CDF810904FF007090022CDF871
+:107B20000090BDF854104FF6FF7006F04DF810B1FC
+:107B3000FFF757F8E3E69DF83C00000625D52946F7
+:107B4000012060F30F218DF852704FF42450ADF8EE
+:107B50005000ADF80C5062789DF80C00002362F3E1
+:107B600000008DF80C006278CDF800A0520862F396
+:107B700041008DF80C0003AACDE9012540F2032253
+:107B800014A806F0DBF8010004D1606888B320690E
+:107B9000A8B900E086E005A906A8FFF7F3F8607829
+:107BA000800706D49DF8150020F038008DF81500E8
+:107BB00005E09DF8140040F040008DF814008DF8A9
+:107BC000527042F60110ADF85000208940F20121B8
+:107BD000B0FBF1F201FB1202606809ABCDF8008046
+:107BE000CDE90103002314A8059906F0A7F80100C8
+:107BF00058D12078C00729D0ADF80C50A06950B9F1
+:107C00000BA906A8FFF7BEF89DF82D0020F007008D
+:107C1000401C8DF82D009DF82C008DF8527040F01E
+:107C200040008DF82C0042F60310ADF8500007A973
+:107C300003AACDF800A0CDE90121002340F20322E0
+:107C400014A80B9906F07AF801002BD1E06868B30C
+:107C50002946012060F30F218DF8527042F604107E
+:107C6000ADF85000E068002302788DF85820407885
+:107C70008DF85900E06816AA4088ADF85A00E0680F
+:107C800000798DF85C00E068C088ADF85D00CDF843
+:107C90000090CDE901254FF4027214A806F04EF8C9
+:107CA000010003D00C9800F0C7FF28E670480321BC
+:107CB0000838017156B100893080BDF82400708009
+:107CC000BDF82000B080BDF81C00F080002016E652
+:107CD00070B501258AB016460B46012802D002284D
+:107CE00016D104E08DF80E504FF4205003E08DF8CB
+:107CF0000E5042F60100ADF80C005BB10024601C90
+:107D000060F30F2404AA08A918460CF01FFC18B150
+:107D1000072048E5102046E504A99DF82020544896
+:107D2000CDE90021801E02900023214603A802F223
+:107D3000012206F003F810B1FEF753FF33E54C487B
+:107D400008380EB1C1883180057100202BE5F0B5EF
+:107D500093B0074601268DF83E6041F60100ADF86C
+:107D60003C0012AA0FA93046FFF7B2FF002848D105
+:107D70003F4C0025083CE7B31C2102A81DF09FFCE6
+:107D80009DF808008DF83E6040F020008DF8080056
+:107D900042F60520ADF83C000E959DF83A0011958D
+:107DA00020F00600801C8DF83A009DF838006A46E5
+:107DB00020F0FF008DF838009DF8390009A920F067
+:107DC000FF008DF839000420ADF82C00ADF830002C
+:107DD0000EA80A9011A80D900FA80990ADF82E508A
+:107DE00002A8FFF768FD00280BD1BDF800006081F4
+:107DF00000E008E0BDF80400A081401CE08125718E
+:107E0000002013B0F0BD6581A581BDF84800F4E7FE
+:107E10002DE9F74F1649A0B00024083917940A79C4
+:107E2000A146012A04D0022A02D0082023B02DE561
+:107E3000CA88824201D00620F8E721988A46824209
+:107E400001D10720F2E701202146ADF848004FF6A6
+:107E5000FF788DF86E0042F6020B60F30F21ADF84B
+:107E60004A80ADF86CB006918DF8724002E00000D7
+:107E7000980200201CA9ADF870401391ADF8508015
+:107E800012A806F048F800252E462F460DAB072213
+:107E900012A9404606F042F878B10A285DD195B3A0
+:107EA0008EB3ADF86450ADF866609DF85E008DF855
+:107EB000144019AC012864D06BE09DF83A001FB360
+:107EC000012859D1BDF8381059451FD118A809A962
+:107ED00001940294CDE9031007200090BDF83610FC
+:107EE00010230022404606F099F8B0BBBDF86000B0
+:107EF000042801D006284AD1BDF8241021988142D7
+:107F00003AD10F2092E73AE0012835D1BDF8380088
+:107F1000B0F5205F03D042F6010188422CD1BAF8B7
+:107F20000600BDF83610884201D1012700E0002785
+:107F300005B19EB1219881421ED118A809AA0194C9
+:107F40000294CDE90320072000900D461023002263
+:107F5000404606F063F800B902E02DE04E460BE023
+:107F6000BDF86000022801D0102810D1C0B217AAB5
+:107F700009A90CF0CCFA50B9BDF8369086E7052077
+:107F800054E705A917A8221D0CF0E0FA08B1032058
+:107F90004CE79DF814000023001DC2B28DF8142098
+:107FA00022980092CDE901401BA8069905F0C6FE73
+:107FB00010B902228AF80420FEF713FE36E710B546
+:107FC0000B46401E88B084B205AA00211846FEF771
+:107FD000A8FE00200DF1080C06AA05A901908CE866
+:107FE0000700072000900123002221464FF6FF7072
+:107FF00005F0EAFD0446BDF81800012800D0FFDFB7
+:108000002046FEF7EEFD08B010BDF0B5F74F044670
+:1080100087B038790E46032804D0042802D00820FF
+:1080200007B0F0BD04AA03A92046FEF753FE0500E1
+:10803000F6D160688078C0F3410002280AD19DF82B
+:108040000D0010F0380F05D02069F9F780F908B15C
+:108050001020E5E7208905AA21698DE807006389DA
+:10806000BDF810202068039905F068FE10B1FEF7F6
+:10807000B8FDD5E716B1BDF8140030800420387182
+:108080002846CDE7F8B50C0006460CD001464FF661
+:10809000FF7500236A46284606F042F828B100BF63
+:1080A000FEF79FFDF8BD1020F8BD69462046FEF79B
+:1080B000C9FD0028F8D1A078314600F00103284618
+:1080C000009A06F059F8EBE730B587B01446002265
+:1080D0000DF1080C05AD01928CE82C0007220092EE
+:1080E0000A46014623884FF6FF7005F06DFDBDF886
+:1080F00014102180FEF775FD07B030BD70B50D4638
+:1081000004210AF077FC040000D1FFDF294604F1C6
+:108110001400BDE8704004F07DBD70B50D4604212B
+:108120000AF068FC040000D1FFDF294604F11400C6
+:10813000BDE8704004F091BD70B50D4604210AF011
+:1081400059FC040000D1FFDF294604F11400BDE80A
+:10815000704004F0A9BD70B5054604210AF04AFC40
+:10816000040000D1FFDF214628462368BDE87040A7
+:108170000122FEF705BF70B5064604210AF03AFC5D
+:10818000040000D1FFDF04F1140004F033FD401DB2
+:1081900020F0030511E0011D00880022431821464C
+:1081A0003046FEF7EDFE00280BD0607CABB2684392
+:1081B00082B2A068011D0AF0DAFAA068418800299D
+:1081C000E9D170BD70B5054604210AF013FC040026
+:1081D00000D1FFDF214628466368BDE870400222D7
+:1081E000FEF7CEBE70B50E46054601F085F90400D7
+:1081F00000D1FFDF0120207266726580207820F0B8
+:108200000F00001D20F0F00040302070BDE87040ED
+:1082100001F075B910B50446012900D0FFDF2046F2
+:10822000BDE810400121FAF74FB92DE9F04F97B0A2
+:108230004FF0000A0C008346ADF814A0D04619D0C8
+:10824000E06830B1A068A8B10188ADF81410A0F8BA
+:1082500000A05846FBF7F7F8070043F2020961D087
+:10826000387822285CD3042158460AF0C3FB050065
+:1082700005D103E0102017B0BDE8F08FFFDF05F156
+:10828000140004F0B7FC401D20F00306A07801287C
+:1082900003D0022801D00720EDE7218807AA58461D
+:1082A00005F009FE30BB07A805F011FE10BB07A8BA
+:1082B00005F00DFE48B99DF82600012805D1BDF84E
+:1082C0002400A0F52451023902D04FF45050D2E7D7
+:1082D000E068B0B1CDE902A00720009005AACDF872
+:1082E00004A00492A2882188BDF81430584605F0F5
+:1082F0006BFC10B1FEF775FCBDE7A168BDF814007A
+:1083000008809DF81F00C00602D543F20140B2E785
+:108310000B9838B1A1780078012905D080071AD4CC
+:108320000820A8E74846A6E7C007F9D002208DF844
+:108330003C00A8684FF00009A0B1697C42887143F5
+:1083400091420FD98AB2B3B2011D0AF0C6F9804634
+:10835000A0F800A006E003208DF83C00D5F80080CE
+:108360004FF001099DF8200010F0380F00D1FFDF19
+:108370009DF820001E49C0F3C200084497F823105E
+:1083800010F8010C884201D90F2074E72088ADF85D
+:10839000400014A90095CDE90191434607220FA999
+:1083A0005846FEF717FE002891D19DF8500050B9AD
+:1083B000A078012807D1687CB3B2704382B2A86864
+:1083C000011D0AF09EF9002055E770B506461546D6
+:1083D0000C460846FEF7C4FB002805D12A46214674
+:1083E0003046BDE8704073E470BD11E59002002096
+:1083F000765A020070B51E4614460D0009D044B1ED
+:10840000616831B138B1FC49C988814203D0072085
+:1084100070BD102070BD2068FEF7A2FB0028F9D1C6
+:10842000324621462846BDE87040FFF744BA70B591
+:1084300015460C0006D038B1EF490989814203D0B6
+:10844000072070BD102070BD2068FEF789FB002852
+:10845000F9D129462046BDE87040D6E570B50646FC
+:1084600086B00D4614461046F8F753FFD0BB60683F
+:10847000F8F776FFB0BBA6F57F40FF3803D0304653
+:10848000FAF7E1FF80B128466946FEF79DFC002817
+:108490000CD19DF810100F2008293DD2DFE801F023
+:1084A00008060606060A0A0843F2020006B070BD76
+:1084B0000320FBE79DF80210012908D1BDF8001048
+:1084C000B1F5C05FF2D06FF4C052D142EED09DF84A
+:1084D000061001290DD1BDF80410A1F52851062977
+:1084E00007D200E029E0DFE801F0030304030303FF
+:1084F000DCE79DF80A1001290FD1BDF80810B1F58D
+:10850000245FD3D0A1F60211B1F50051CED00129DC
+:10851000CCD0022901D1C9E7FFDF606878B9002318
+:1085200005AA2946304605F0FBFD10B1FEF759FBC0
+:10853000BCE79DF81400800601D41020B6E76188DE
+:10854000224628466368FFF7BFFDAFE72DE9F043F9
+:10855000814687B0884614461046F8F7DAFE18B10F
+:10856000102007B0BDE8F083002306AA4146484624
+:1085700005F0D6FD18B100BFFEF733FBF1E79DF81B
+:108580001800C00602D543F20140EAE7002507279C
+:1085900005A8019500970295CDE9035062884FF632
+:1085A000FF734146484605F039FD060013D1606867
+:1085B000F8F7AFFE60B960680195CDE90250009709
+:1085C0000495238862884146484605F027FD064603
+:1085D000BDF8140020803046CEE739B1864B0A88BA
+:1085E0009B899A4202D843F2030070471DE610B5FA
+:1085F00086B0814C0423ADF81430638943B1A4895B
+:108600008C4201D2914205D943F2030006B010BD5D
+:108610000620FBE7ADF81010002100910191ADF8A4
+:10862000003002218DF8021005A9029104A90391DE
+:10863000ADF812206946FFF7F8FDE7E72DE9FC47A2
+:1086400081460D460846F8F73EFE88BB4846FAF7D5
+:10865000FAFE5FEA00080AD098F80000222829D321
+:10866000042148460AF0C6F9070005D103E043F2A9
+:108670000200BDE8FC87FFDF07F1140004F0D1FA27
+:1086800006462878012803D0022804D00720F0E706
+:10869000B0070FD502E016F01C0F0BD0A8792C1DE7
+:1086A000C00709D0E08838B1A068F8F70CFE18B10F
+:1086B0001020DEE70820DCE721882A780720B1F5C2
+:1086C000847F35D01EDC40F20315A1F20313A942CA
+:1086D00026D00EDCB1F5807FCBD003DCF9B10129C7
+:1086E00026D1C6E7A1F58073013BC2D0012B1FD173
+:1086F00013E0012BBDD0022B1AD0032BB9D0042BD1
+:1087000016D112E0A1F20912082A11D2DFE802F014
+:108710000B04041010101004ABE7022AA9D007E0E4
+:10872000012AA6D004E0320700E0F206002AA0DA0F
+:10873000CDB200F0E1FE50B198F82300CDE900057C
+:10874000FA89234639464846FEF78FFC91E7112007
+:108750008FE72DE9F04F8BB01F4615460C46834638
+:108760000026FAF770FE28B10078222805D20820EA
+:108770000BB081E543F20200FAE7B80801D0072008
+:10878000F6E7032F00D100274FF6FF79CCB1022D79
+:1087900073D32046F8F7E4FD30B904EB0508A8F1DF
+:1087A0000100F8F7DDFD08B11020E1E7AD1EAAB227
+:1087B0002146484605F08FFD38F8021C88425CD1FE
+:1087C000ADB20D49B80702D58889401C00E00120F0
+:1087D0001FFA80F8F80701D08F8900E04F4605AAFC
+:1087E0004146584605F067FB4FF0070A4FF0000975
+:1087F000DCB320460BE000009002002040881028E7
+:108800003BD8361D304486B2AE4236D2A01902881B
+:108810004245F3D351E000BF9DF8170002074CD545
+:1088200094B304EB0608361DB8F80230B6B2102B2C
+:1088300023D89A19AA4220D8B8F8002091421CD116
+:10884000C0061CD5CDE900A90DF1080C0AAAA11992
+:1088500048468CE80700B8F800100022584605F09A
+:10886000B3F920B1FEF7BDF982E726E005E0B8F8DC
+:108870000200BDF82810884201D00B2078E7B8F834
+:108880000200304486B207E0FFE7C00604D5584630
+:10889000FEF71DFC002888D19DF81700BDF81A10BE
+:1088A00020F010008DF81700BDF81700ADF800009B
+:1088B000FF235846009A05F05FFC05A805F007FB6A
+:1088C00018B9BDF81A10B942A6D9042158460AF0C1
+:1088D00091F8040000D1FFDFA2895AB1CDE900A9C7
+:1088E0004D46002321465846FEF7BFFB0028BBD16A
+:1088F000A5813DE700203BE72DE9FF4F8BB01E46E9
+:1089000017000D464FF0000412D0B00802D0072027
+:108910000FB0B1E4032E00D100265DB10846F8F790
+:1089200016FD28B93888691E0844F8F710FD08B10B
+:108930001020EDE7C64AB00701D5D18900E001213A
+:10894000F0074FF6FF7802D0D089401E00E0404685
+:1089500086B206AA0B9805F0AEFA4FF000094FF068
+:10896000070B0DF1140A38E09DF81B00000734D501
+:10897000CDF80490CDF800B0CDF80890CDE9039A79
+:10898000434600220B9805F049FB60BB05B3BDF8D8
+:1089900014103A8821442819091D8A4230D3BDF8A1
+:1089A0001E2020F8022BBDF8142020F8022BCDE960
+:1089B00000B9CDE90290CDF810A0BDF81E10BDF8A9
+:1089C000143000220B9805F029FB08B103209FE723
+:1089D000BDF814002044001D84B206A805F077FA03
+:1089E00020B10A2806D0FEF7FCF891E7BDF81E106A
+:1089F000B142B9D934B17DB13888A11C884203D2C3
+:108A00000C2085E7052083E722462946404605F0ED
+:108A100062FC014628190180A41C3C80002077E7F5
+:108A200010B50446F8F775FC08B1102010BD884851
+:108A3000C0892080002010BDF0B58BB00D460646E1
+:108A4000142103A81CF03BFE01208DF80C008DF8CA
+:108A5000100000208DF81100ADF814503046FAF7E0
+:108A6000F2FC48B10078222812D30421304609F0E4
+:108A7000C1FF040005D103E043F202000BB0F0BDDA
+:108A8000FFDF04F11400074604F0CBF8800601D4A0
+:108A90000820F3E7207C022140F00100207409A89F
+:108AA0000094CDE90110072203A930466368FEF760
+:108AB00091FA20B1217C21F001012174DEE72946E1
+:108AC0003046F9F7F2FC08A9384604F099F800B1ED
+:108AD000FFDFBDF82040172C01D2172000E0204610
+:108AE000A84201D92C4602E0172C00D217242146B7
+:108AF0003046FFF712FB21463046F9F7FCF900201B
+:108B0000BCE7F8B51C4615460E46069F0AF0A4F8C9
+:108B10002346FF1DBCB231462A46009409F08FFC63
+:108B2000F8BD70B50C4605460E2120461CF0A5FD8B
+:108B3000002020802DB1012D01D0FFDF70BD062067
+:108B400000E00520A07170BD10B54880087813467C
+:108B500020F00F00001D20F0F00080300C4608705F
+:108B60001422194604F108001CF04DFD00F0C7FC6A
+:108B70003748046010BD2DE9F047DFF8D890491D53
+:108B8000064621F0030117460C46D9F8000009F00B
+:108B90006CFD050000D1FFDF4FF000083560A5F83F
+:108BA00000802146D9F8000009F05FFD050000D1E2
+:108BB000FFDF7560A5F800807FB104FB07F1091D98
+:108BC0000BD0D9F8000009F050FD040000D1FFDF00
+:108BD000B460C4F80080BDE8F087C6F80880FAE702
+:108BE0002DE9F0411746491D21F00302194D0646B3
+:108BF00001681446286809F063FD224671682868F8
+:108C000009F05EFD3FB104FB07F2121D03D0B1680D
+:108C1000286809F055FD042009F094FE044604205C
+:108C200009F098FE201A012804D12868BDE8F04117
+:108C300009F010BDBDE8F08110B50C4605F007F94C
+:108C400000B1FFDF2046BDE81040FDF7CABF0000BD
+:108C5000900200201400002038B50C468288817BE9
+:108C600019B14189914200D90A462280C188121D5A
+:108C700090B26A4608F04FFFBDF80000032800D309
+:108C80000320C1B2208801F011F838BD38B50C4678
+:108C90008288817B19B10189914200D90A462280DC
+:108CA000C188121D90B26A4608F035FFBDF8000079
+:108CB000022800D30220C1B2208800F0F7FF401C38
+:108CC000C0B238BD2DE9FE4F82468B46F9481446A6
+:108CD0000BF10302D0E90010CDE9011022F00302EC
+:108CE00068464FF49071009209F0A1FCF24E002CFE
+:108CF00002D1F24A00999160009901440091357FB8
+:108D000005F1010504D1E8B20BF09AFB00B1FFDFD9
+:108D1000009800EB0510C01C20F0030100915CB925
+:108D2000707AB27A1044C2B200200870308C80B2DF
+:108D300004F015FF00B1FFDF0098316A084400908D
+:108D40002146684600F075FF80460098C01C20F060
+:108D500003000090B37AF27A717A04B1002009F02E
+:108D60005CFD0099084400902146684600F0A9FF88
+:108D7000D14800273D4690F801900CE0284600F0CD
+:108D80003BFF064681788088F9F74CF971786D1CB5
+:108D900000FB0177EDB24D45F0D10098C01C20F0EA
+:108DA0000300009004B100203946F9F746F9009914
+:108DB000002708440090C0483D4690F801900CE020
+:108DC000284600F019FF0646C1788088FEF709FCA6
+:108DD00071786D1C00FB0177EDB24D45F0D1009824
+:108DE000C01C20F00300009004B100203946FEF7BB
+:108DF00001FC00994FF0000908440090AE484D4630
+:108E000047780EE0284600F0F7FE0646807B30B13A
+:108E100006F1080001F019FF727800FB02996D1C41
+:108E2000EDB2BD42EED10098C01C20F003000090CE
+:108E300004B10020494601F00CFF0099084400905D
+:108E40002146684600F0AFFE0098C01D20F00700E4
+:108E50000090DAF80010814204D3A0EB0B01B1F5C9
+:108E6000803F04DB4FF00408CAF8000004E0CAF8B1
+:108E70000000B8F1000F02D04046BDE8FE8F34BBC1
+:108E80008F490020009A03F083F8FBF75CFA8A48C8
+:108E900001AA00211030F8F7E1FA00B1FFDF86489F
+:108EA000407FFEF754FF00B1FFDF83484FF4F671B7
+:108EB00040301CF004FC80480421403080F8E91167
+:108EC00080F8EA11062180F8EB11032101710020DE
+:108ED000D3E770B5784C06464034207804EB401553
+:108EE000E078083590B9A01990F8E80100280ED074
+:108EF000A0780F2800D3FFDF202128461CF0DFFBDD
+:108F0000687866F3020068700120E070284670BD42
+:108F10002DE9F04105460C460027007805219046D2
+:108F20003E46B1EB101F00D0FFDF287A50B1012878
+:108F30000ED0FFDFA8F800600CB12780668000200B
+:108F4000BDE8F0810127092674B16888A08008E097
+:108F50000227142644B16888A0802869E060A88AA6
+:108F60002082287B2072E5E7A8F80060E7E730B5AB
+:108F7000514C012000212070617020726072032228
+:108F8000A272E07221732174052121831F21618364
+:108F900060744CA161610A2121776077474D4FF4DD
+:108FA000B06020626868C11C21F00301814200D0DA
+:108FB000FFDF6868606030BD30B5404C156863689D
+:108FC00010339D4202D20420136030BD3A4B5D78CD
+:108FD0005A6802EB0512107051700320D0801720E0
+:108FE00090800120D0709070002090735878401CC1
+:108FF0005870606810306060002030BD70B5064663
+:109000002D480024457807E0204600F0F5FD017862
+:10901000B14204D0641CE4B2AC42F5D1002070BD72
+:10902000F7B5074608780C4610B3FFF7E7FF05468B
+:10903000A7F12006202F06D0052E19D2DFE806F072
+:109040000F2B2B151A0000F0E2FD0DB1697800E03E
+:109050000021401AA17880B20844FF2808D8A078DF
+:1090600030B1A088022831D202E0608817282DD2C2
+:109070000720FEBD207AE0B161881729F8D3A188C6
+:109080001729F5D3A1790029F2D0E1790029EFD091
+:10909000402804D9ECE7242F18D1207A48B1618800
+:1090A0004FF6FB70814202D8A18881420ED904207C
+:1090B000FEBD0BE07C5A0200AC030020180000202B
+:1090C000000000206E5246357800000065B9207817
+:1090D00002AA0121FFF770FF0028E9D12078FFF7ED
+:1090E0008DFF050000D1FFDF052E18D2DFE806F066
+:1090F000030B0E081100A0786870A088E8800FE0CC
+:109100006088A8800CE0A078A87009E0A078E870DA
+:1091100006E054F8020FA8606068E86000E0FFDF36
+:109120000020C5E71A2835D00DDC132832D2DFE83D
+:1091300000F01B31203131272723252D31312931F2
+:109140003131312F0F00302802D003DC1E2821D10D
+:10915000072070473A3809281CD2DFE800F0151BB9
+:109160000F1B1B1B1B1B07000020704743F2040052
+:10917000704743F202007047042070470D2070478B
+:109180000F20704708207047112070471320704748
+:10919000062070470320704710B5007800F00100EA
+:1091A00008F0ABFCBDE81040BCE710B5007818B182
+:1091B000012801D0072010BD08F0EFFCBDE81040E9
+:1091C000B0E710B5007800F0010008F09FFCBDE8A2
+:1091D0001040A7E70EB5017801F001018DF80010ED
+:1091E000417801F001018DF801100178C1F34001CF
+:1091F0008DF802104178C1F340018DF80310017819
+:1092000089088DF80410417889088DF80510817857
+:109210008DF80610C1788DF8071000798DF80800D8
+:10922000684607F095FAFFF77DFF0EBD2DE9F84F70
+:10923000DFF8F883FE4C00264FF490771FE0012002
+:1092400000F082FD0120FFF744FE05463946D8F8BC
+:10925000080009F00AFA686000B9FFDF686807F0E3
+:1092600006F9B0B12846FAF7D5FB284600F072FDA2
+:1092700028B93A466968D8F8080009F021FA94F943
+:10928000E9010428DBDA022009F05CFB074600252F
+:10929000A5E03A466968D8F8080009F011FAF2E743
+:1092A000B8F802104046491C89B2A8F80210B94229
+:1092B00001D3002141800221B8F8020009F09AFB95
+:1092C000002864D0B8F80200694608F088FBFFF770
+:1092D00029FF00B1FFDF9DF8000078B1B8F8020067
+:1092E00009F0CCFC5FEA000900D1FFDF484608F036
+:1092F0003AFF18B1B8F8020002F052F9B8F80200CB
+:1093000009F0AAFC5FEA000900D1FFDF484608F037
+:1093100022FFE0BB0321B8F8020009F06BFB5FEA13
+:10932000000B47D1FFDF45E0DBF8100010B10078FB
+:10933000FF2849D0022000F007FD0220FFF7C9FDF9
+:109340008246484609F013F8CAF8040000B9FFDF66
+:10935000DAF8040009F0DBF8002100900170B8F899
+:1093600002105046AAF8021001F01CFE484609F00F
+:10937000D0F800B9FFDF504600F0ECFC18B99AF8BD
+:109380000100000704D50098CBF8100012E024E09B
+:10939000DBF8100038B10178491C11F0FF010170B1
+:1093A00008D1FFDF06E000221146484600F0F9FB35
+:1093B00000B9FFDF94F9EA01022805DBB8F80200E2
+:1093C00001F0B5FD0028AFD194F9E901042804DBD0
+:1093D000484609F002F900B101266D1CEDB2BD420C
+:1093E00004D294F9EA010228BFF65AAF002E7FF4A6
+:1093F00022AFBDE8F84F032000F0A6BC10B58B4C9F
+:10940000E06008682061AFF2DB10F9F766FD60707C
+:1094100010BD87480021403801708448017085499B
+:109420004160704770B505464FF080500C46D0F84B
+:10943000A410491C05D1D0F8A810C9430904090C8F
+:109440000BD050F8A01F01F0010129704168216084
+:109450008068A080287830B970BD062120460CF0C5
+:109460000CFD01202870607940F0C000607170BD73
+:1094700070B54FF080540D46D4F88010491C0BD1C4
+:10948000D4F88410491C07D1D4F88810491C03D1A2
+:10949000D4F88C10491C0CD0D4F880100160D4F89A
+:1094A00084104160D4F888108160D4F88C10C160B9
+:1094B00002E010210CF0E1FCD4F89000401C0BD12C
+:1094C000D4F89400401C07D1D4F89800401C03D174
+:1094D000D4F89C00401C09D054F8900F28606068B4
+:1094E0006860A068A860E068E86070BD2846BDE8D4
+:1094F000704010210CF0C1BC4D480079E9E470B512
+:109500004B4CE07830B3207804EB4010407A00F008
+:109510000700204490F9E801002800DCFFDF2078F4
+:10952000002504EB4010407A00F00700011991F883
+:10953000E801401E81F8E8012078401CC0B220708C
+:109540000F2800D12570A078401CA0700CF08CFB77
+:10955000E57070BDFFDF70BD3EB50546032109F023
+:1095600049FA0446284609F077FB054604B9FFDFAF
+:10957000206918B10078FF2800D1FFDF01AA6946F1
+:10958000284600F00EFB60B9FFDF0AE0002202A9C6
+:10959000284600F006FB00B9FFDF9DF8080000B187
+:1095A000FFDF9DF80000411E8DF80010EED220690B
+:1095B0000199884201D1002020613EBD70B5054669
+:1095C000A0F57F400C46FF3800D1FFDF012C01D011
+:1095D000FFDF70BDFFF790FF040000D1FFDF2078B0
+:1095E00020F00F00401D20F0F0005030207065800A
+:1095F0000020207201202073BDE870407FE72DE934
+:10960000F04116460D460746FFF776FF040000D1ED
+:10961000FFDF207820F00F00401D20F0F0005030D8
+:109620002070678001202072286805E01800002063
+:10963000EC030020F81300202061A888A082267384
+:10964000BDE8F0415BE77FB5FFF7D8FC040000D12F
+:10965000FFDF02A92046FFF7FFFA054603A92046CF
+:10966000FFF714FB8DF800508DF80100BDF80800DD
+:10967000001DADF80200BDF80C00001DADF804009F
+:10968000E088ADF80600684608F01FFA002800D010
+:10969000FFDF7FBD2DE9F05FF94E8146307810B1D4
+:1096A0000820BDE8F09F4846F7F733FE08B11020C8
+:1096B000F7E7F44C207808B9FFF759FCA17A607AF3
+:1096C0004D460844C4B200F0A2FAA04207D2201AC4
+:1096D000C1B22A460020FFF76FFC0028E1D1716873
+:1096E000E848C91C002721F003017160B3463E46DB
+:1096F0003D46BA463C4690F801800AE0204600F01C
+:109700007BFA4178807B0E4410FB0155641CE4B267
+:109710007F1C4445F2D1C6EBC601DA4E0AEB870046
+:1097200000EB8100F17A00EB850000EB8100DBF8B3
+:1097300004105C464518012229464846FFF7C2FA44
+:10974000070012D00020FFF759FC05000BD005F1EF
+:109750001300616820F00300884200D0FFDF7078BA
+:10976000401E7070656038469BE7002229464846D7
+:10977000FFF7A8FA00B1FFDFD9F8000060604FF6EC
+:10978000FF7060800120207000208AE72DE9F04101
+:109790000446BB4817460E46007810B10820BDE8C5
+:1097A000F0810846F7F78FFD08B11020F7E7B54DB7
+:1097B000287808B9FFF7DBFB601E1E2807D8012CAC
+:1097C00022D13078FE281FD828770020E7E7A4F1BF
+:1097D00020001F2805D8E0B23A463146BDE8F041E6
+:1097E0001EE4A4F140001F2805D831462046BDE8FC
+:1097F000F04100F0D7BAA4F1A0001F2804D800203F
+:10980000A02C03D0A12C06D00720C8E7317801F0A6
+:1098100001016977C3E731680922F82901D38B0771
+:1098200001D01046BBE76B7C03F00303012B04D18E
+:109830006B8BD7339CB28C42F3D82962AFE72DE90A
+:10984000F04781460E460846F7F763FD48B948469B
+:10985000F7F77DFD28B909F1030020F00301494520
+:1098600002D01020BDE8F08786484FF0000A403053
+:10987000817869B14178804600EB4114083437881B
+:1098800032460021204600F073FA050004D027E09C
+:10989000A6F800A00520E5E7B9F1000F24D0308834
+:1098A000B84201D90C251FE0607800F00705284672
+:1098B00000F04AFA08EB0507324697F8E8014946F6
+:1098C000401C87F8E801204607F5F47700F050FACD
+:1098D00005463878401E3870032000F035FA2DB167
+:1098E0000C2D01D0A6F800A02846BBE76078644E96
+:1098F00000F00701012923D002290CD0032934D01C
+:10990000FFDF98F801104046491CC9B288F80110E1
+:109910000F2935D036E0616821B1000702D4608894
+:10992000FFF71AFE98F8EA014746012802D170783D
+:10993000F9F7F2FA97F9EA010428E2DBFFDFE0E742
+:10994000616821B14FF49072B06808F0B9FE98F8E0
+:10995000E9014746032802D17078F9F7DDFA97F953
+:10996000E9010428CDDBFFDFCBE7C00602D5608824
+:10997000FFF7F2FD98F9EB010628C2DBFFDFC0E735
+:1099800080F801A08178491E8170617801F007019B
+:1099900001EB080090F8E811491C80F8E811A3E7F2
+:1099A00070B50D460446F7F78EFC18B92846F7F750
+:1099B000B0FC08B1102070BD29462046BDE87040BB
+:1099C0000AF075BD70B505460AF094FDC4B228468C
+:1099D000F7F7BDFC08B1102070BD35B128782C70A8
+:1099E00018B1A04201D0072070BD2046FDF764FEEB
+:1099F000052805D10AF082FD012801D0002070BDA4
+:109A00000F2070BD70B5044615460E460846F7F7A0
+:109A10005AFC18B92846F7F77CFC08B1102070BD35
+:109A2000022C03D0102C01D0092070BD2A463146EB
+:109A300020460AF06CFD0028F7D0052070BD70B5F7
+:109A400014460D460646F7F73EFC38B92846F7F7A8
+:109A500060FC18B92046F7F77AFC08B1102070BDF9
+:109A60002246294630460AF071FD0028F7D007202B
+:109A700070BD3EB50446F7F74CFC28B110203EBD42
+:109A800018000020AC030020684606F0C8FDFFF770
+:109A900049FB0028F3D19DF806002070BDF80800AE
+:109AA0006080BDF80A00A0800020E8E770B5054698
+:109AB0000C460846F7F74BFC20B93CB12068F7F795
+:109AC00028FC08B1102070BDA08828B12146284686
+:109AD000BDE87040FDF748BE092070BD70B5054671
+:109AE0000C460846F7F7EFFB30B9681E1E2814D85D
+:109AF0002046F7F7E8FB08B1102070BD042D01D90E
+:109B0000072070BD05B9FFDFF84800EB850050F86D
+:109B1000041C2046BDE870400847A5F120001F281E
+:109B200005D821462846BDE87040FAF794BBF02DD1
+:109B300008D0F12DE4D1207808F05CF8BDE8704041
+:109B4000FFF7F0BAA068F7F7BEFB0028D4D1204693
+:109B500008F028F8F2E770B504460D460846F7F716
+:109B6000D8FB30B9601E1E2811D82846F7F7ABFB8A
+:109B700008B1102070BD012C05D0022C03D0032C9D
+:109B800001D0042C01D1062070BD072070BDA4F1C6
+:109B900020001F28F9D829462046BDE87040FAF772
+:109BA000B2BB08F0A7BA38B50446D148007B00F034
+:109BB0000105D9B904F034FB0DB1226800E00022A0
+:109BC000CC484178C06806F018FCCA481030C0780C
+:109BD0008DF8000010B1012802D004E0012000E05F
+:109BE00000208DF80000684606F093FD002D02D09D
+:109BF00020682830206038BD30B5BD4D04466878F7
+:109C0000A04200D8FFDF686800EB041030BD70B5DB
+:109C1000B74800252C46467807E02046FFF7ECFFC2
+:109C20004078641C2844C5B2E4B2B442F5D1284659
+:109C300070BD2DE9F0410C4607464FF0000800F0DA
+:109C4000DEF80646FF2801D94FF013083868C01C1B
+:109C500020F003023A6054EA080421D1A448F3B288
+:109C6000072124300CF00EFB09E0072C10D2DFE8AE
+:109C700004F0060408080A0406009F4804E09F4810
+:109C800002E09F4800E09F480CF01CFB054600E006
+:109C9000FFDFA54200D0FFDF641CE4B2072CE4D351
+:109CA000386800EB06103860404678E5021D5143E5
+:109CB000452900D245210844C01CB0FBF2F0C0B2D7
+:109CC00070472DE9FC5F064689484FF000088B4637
+:109CD0004746444690F8019022E02046FFF78CFF6B
+:109CE000050000D1FFDF687869463844C7B22846CE
+:109CF000FEF7B2FF824601A92846FEF7C7FF0346DA
+:109D0000BDF804005246001D81B2BDF80000001DE0
+:109D100080B208F0EDFE6A78641C00FB0288E4B2B1
+:109D20004C45DAD13068C01C20F003003060BBF134
+:109D3000000F00D000204246394608F0E7FE3168A7
+:109D400008443060BDE8FC9F69494031087100203B
+:109D5000C870704766494031CA782AB10A7801EB69
+:109D600042110831814201D0012070470020704724
+:109D70002DE9F04106460078154600F00F0400205A
+:109D80001080601E0F46052800D3FFDF57482A4683
+:109D9000183800EB8400394650F8043C3046BDE8E2
+:109DA000F041184770B50C46402802D0412806D132
+:109DB00020E0A07861780D18E178814201D9072070
+:109DC00070BD2078012801D9132070BDFF2D08D85F
+:109DD0000AF026FD06460BF0FFFE301A801EA84250
+:109DE00001DA122070BD4248216881602179017337
+:109DF000002070BDBDE87040084600F02BB82DE98A
+:109E0000F047DFF8EC900026344699F8090099F8FD
+:109E10000A2099F801700244D5B299F80B20104439
+:109E200000F0FF0808E02046FFF7E6FE817B40785F
+:109E300011FB0066641CE4B2BC42F4D199F809102D
+:109E400099F80A0029442944414400B101200844FA
+:109E5000304407E538B50446407800F00300012897
+:109E600003D002280BD0072038BD606858B1F7F73F
+:109E700077FAD0B96068F7F76AFA20B915E0606838
+:109E8000F7F721FA88B969462046FCF791F80028CF
+:109E9000EAD1607800F00300022808D19DF80000A4
+:109EA00028B16068F7F753FA08B1102038BD61890E
+:109EB000F8290DD8208988420AD8607800F003027A
+:109EC0000B48012A06D1D731026A89B28A4201D2EF
+:109ED000092038BD94E80E0000F1100585E80E0059
+:109EE0000AB900210183002038BD00009C5A0200FD
+:109EF000AC03002018000020574100001FAD0000F7
+:109F0000E92F0000334201002DE9F04107461446D5
+:109F10008846084601F022FD064608EB88001C2210
+:109F2000796802EBC0000D18688C58B1414638467C
+:109F300001F01CFD014678680078C200082305F195
+:109F400020000CE0E88CA8B14146384601F015FD30
+:109F50000146786808234078C20005F1240008F023
+:109F600006FC38B1062121726681D0E90010C4E9EF
+:109F7000031009E0287809280BD00520207266819B
+:109F80006868E060002028702046BDE8F04101F0DC
+:109F9000DBBC072020726681F4E72DE9F04116460C
+:109FA0000D460746406801EB85011C2202EBC1010A
+:109FB0004418204601F003FD40B10021708865F38C
+:109FC0000F2160F31F4106200CF036FA09202070A3
+:109FD000324629463846BDE8F04195E72DE9F04183
+:109FE0000E46074600241C21F07816E004EB84039B
+:109FF000726801EBC303D25C6AB1FFF77DFA05001A
+:10A0000000D1FFDF6F802A4621463046FFF7C5FFAB
+:10A010000120BDE8F081641CE4B2A042E6D8002033
+:10A02000F7E770B5064600241C21C0780AE000BF9F
+:10A0300004EB8403726801EBC303D5182A782AB1B4
+:10A04000641CE4B2A042F3D8402070BD2821284609
+:10A050001BF013FB706880892881204670BD70B5A5
+:10A06000034600201C25DC780DE000BF00EB8006D5
+:10A070005A6805EBC6063244167816B1128A8A422F
+:10A0800004D0401CC0B28442F0D8402070BDF0B56E
+:10A09000044600201C26E5780EE000BF00EB800798
+:10A0A000636806EBC7073B441F788F4202D15B7899
+:10A0B000934204D0401CC0B28542EFD84020F0BD8E
+:10A0C0000078032801D000207047012070470078F5
+:10A0D000022801D00020704701207047007807282F
+:10A0E00001D000207047012070472DE9F04106465D
+:10A0F00088461078F1781546884200D3FFDF2C7827
+:10A100001C27641CF078E4B2A04201D8201AC4B223
+:10A1100004EB8401706807EBC1010844017821B1A8
+:10A120004146884708B12C7073E72878A042E8D1EF
+:10A13000402028706DE770B514460B880122A240BC
+:10A14000134207D113430B8001230A22011D08F09B
+:10A15000D8FA047070BD2DE9FF4F81B00878DDE9B1
+:10A160000E7B9A4691460E4640072CD4019808F083
+:10A1700085FD040000D1FFDF07F1040820461FFA27
+:10A1800088F107F0C4FE050000D1FFDF2046294614
+:10A190006A4608F00EF90098A0F80370A0F805A030
+:10A1A000284608F0B4F9017869F306016BF3C7118A
+:10A1B000017020461FFA88F107F0ECFE00B9FFDFBE
+:10A1C000019806F08CF806EB0900017F491C017725
+:10A1D00005B0BDE8F08F2DE9F84F0E469A4691463E
+:10A1E0000746032108F006FC0446008DDFF8B88519
+:10A1F000002518B198F80000B0421ED1384608F08A
+:10A200003DFD070000D1FFDF09F10401384689B2A6
+:10A2100007F07DFE050010D0384629466A4608F052
+:10A22000C8F8009800210A460180817006F010F9F4
+:10A230000098C01DCAF8000021E098F80000B04264
+:10A2400016D104F1260734F8341F012000FA06F96C
+:10A2500011EA090F00D0FFDF2088012340EA09003E
+:10A2600020800A22391D384608F066FA067006E09A
+:10A27000324604F1340104F12600FFF75CFF0A21A5
+:10A2800088F800102846BDE8F88FFEB515460C4644
+:10A29000064602AB0C220621FFF79DFF002827D0BF
+:10A2A0000299607812220A70801C487008224A8045
+:10A2B000A07002982988052381806988C180A988B7
+:10A2C0000181E988418100250C20CDE900050622A5
+:10A2D00021463046FFF73FFF2946002266F31F4123
+:10A2E000F02310460BF0FEFF6078801C60700120A8
+:10A2F000FEBDFEB514460D460622064602AB1146CB
+:10A30000FFF769FF002812D0029B1320002118706C
+:10A31000A8785870022058809C800620CDE9000162
+:10A320000246052329463046FFF715FF0120FEBDF2
+:10A330002DE9FE430C46804644E002AB0E22072185
+:10A340004046FFF748FF002841D060681C2267782C
+:10A350008678BF1C06EB860102EBC1014518029806
+:10A360001421017047700A214180698A0181E98ABC
+:10A370004181A9888180A9898181304601F0EEFA66
+:10A38000029905230722C8806F70042028700025D9
+:10A390000E20CDE9000521464046FFF7DCFE2946A8
+:10A3A00066F30F2168F31F41F023002206200BF013
+:10A3B00099FF6078FD49801C607062682046921C9D
+:10A3C000FFF793FE606880784028B6D10120BDE891
+:10A3D000FE83FEB50D46064638E002AB0E2207218D
+:10A3E0003046FFF7F8FE002835D068681C23C17896
+:10A3F00001EB810203EBC20284180298152202705D
+:10A40000627842700A224280A2894281A2888281B7
+:10A41000084601F0A3FA014602988180618AC18052
+:10A42000E18A0181A088B8B10020207000210E20AF
+:10A43000CDE900010523072229463046FFF78BFEB0
+:10A440006A68DB492846D21CFFF74FFE6868C0786F
+:10A450004028C2D10120FEBD0620E6E72DE9FE43DB
+:10A460000C46814644E0204601F093FAD0B302AB9B
+:10A47000082207214846FFF7AEFE0028A7D06068F3
+:10A480001C2265780679AD1C06EB860102EBC10142
+:10A4900047180298B7F81080062101704570042112
+:10A4A0004180304601F05AFA0146029805230722FE
+:10A4B000C180A0F804807D70082038700025CDE9A7
+:10A4C000000521464846FFF746FE294666F30F2160
+:10A4D00069F31F41F023002206200BF003FF607890
+:10A4E000801C60706268B3492046121DFFF7FDFDB5
+:10A4F000606801794029B6D1012068E72DE9F34F62
+:10A5000083B00E4680E0304601F043FA002875D053
+:10A5100071681C2091F8068008EB880200EBC200ED
+:10A520000C184146304601F028FA0146A078C300D5
+:10A5300070684078C20004F1240008F034F907463E
+:10A540008088E18B401A80B2002581B3AA46218B16
+:10A55000814200D808468146024602AB0721039893
+:10A56000FFF739FE010028D0BAF1000F03D0029A9C
+:10A57000B888022510808B46E28B3968A9EB05006C
+:10A580001FFA80FA0A440398009208F077FBED1D49
+:10A59000009A59465346009507F085FFE08B5044DA
+:10A5A00080B2E083B988884209D1012508E0FFE73D
+:10A5B000801C4FF0010A80B2C9E7002008E60025A0
+:10A5C000CDE90095238A072231460398FFF7C3FDA2
+:10A5D000E089401EE0818DB1A078401CA0707068B9
+:10A5E000F178427811FB02F1CAB2816901230E3081
+:10A5F00008F087F880F800800020E08372686E49D8
+:10A600003046921DFFF771FD7068817940297FF413
+:10A610007AAF0120DCE570B5064648680D46144661
+:10A620008179402910D104EB84011C2202EBC10185
+:10A63000084401F0E5F9002806D0686829468471CD
+:10A640003046BDE8704059E770BDFEB50C46074680
+:10A65000002645E0204601F09CF9D8B360681C2232
+:10A66000417901EB810102EBC1014518688900B90C
+:10A67000FFDF02AB082207213846FFF7ACFD0028B8
+:10A6800033D00299607816220A70801C487004202A
+:10A6900048806068407901F061F90146029805231D
+:10A6A000072281806989C1800820CDE90006214602
+:10A6B0003846FFF750FD6078801C6070A889698972
+:10A6C0000844B0F5803F00D3FFDFA88969890844BA
+:10A6D000A8816E81626839492046521DFFF705FD49
+:10A6E000606841794029B5D10120FEBD30B5438C69
+:10A6F000458BC3F3C704002345B1838B641EED1A59
+:10A70000C38A6D1E1D4495FBF3F3E4B22CB100899E
+:10A7100018B1A04200D8204603444FF6FF70834290
+:10A7200000D3034613800C7030BD2DE9FC41074671
+:10A7300016460D46486802EB86011C2202EBC10159
+:10A7400044186A4601A92046FFF7D0FFA089618915
+:10A7500001448AB2BDF80010914212D0081A00D507
+:10A76000002060816868407940280AD1204601F0C5
+:10A770003DF9002805D06868294646713846FFF73C
+:10A7800064FFBDE8FC812DE9FE4F894680461546F1
+:10A790005088032108F02EF98346B8F802004028BB
+:10A7A0000ED240200DE000002C000020C1A00000CF
+:10A7B000CFA00000DDA0000001BA0000EDB900004C
+:10A7C000403880B282460146584601F0E2F800283F
+:10A7D0007ED00AEB8A001C22DBF8041002EBC000DA
+:10A7E0000C18204601F0EBF8002877D1B8F80000EB
+:10A7F000E18A88423CD8A189D1B348456ED1002670
+:10A800005146584601F0B2F8218C0F18608B48B9B8
+:10A81000B9F1020F62D3B8F804006083618A8842FC
+:10A8200026D80226A9EB06001FFA80F9B888A28B69
+:10A83000801A002814DD4946814500DA084683B2B3
+:10A8400068886968029139680A44CDE9003208F0E5
+:10A8500003FADDE90121F61D009B009607F0EFFDEC
+:10A86000A18B01EB090080B2A083618B884207D9DC
+:10A87000688803B052465946BDE8F04F01F0DDB894
+:10A880001FD14FF009002872B8F802006881D7E99B
+:10A890000001C5E90401608BA881284601F054F845
+:10A8A0005146584601F062F80146DBF804000823DF
+:10A8B0000078C20004F1200007F059FF0020A083B7
+:10A8C0006083A0890AF0FF02401EA081688800E032
+:10A8D00004E003B05946BDE8F04F26E7BDE8FE8F1F
+:10A8E0002DE9F041064615460F461C461846F6F778
+:10A8F000EAFC18B92068F6F70CFD08B1102013E443
+:10A900007168688C0978B0EBC10F01D313200BE498
+:10A910003946304601F02AF801467068082300786D
+:10A92000C20005F1200007F0ECFED4E90012C0E9F6
+:10A9300000120020E3E710B50446032108F05AF89E
+:10A940000146007800F00300022805D02046BDE84B
+:10A95000104001F1140298E48A8A2046BDE81040B4
+:10A96000C7E470B50446032108F044F805460146E3
+:10A970002046FFF773FD002816D029462046FFF732
+:10A9800064FE002810D029462046FFF722FD00284B
+:10A990000AD029462046FFF7CBFC002804D02946E0
+:10A9A0002046BDE87040A9E570BD2DE9F0410C4698
+:10A9B00080461EE0E178427811FB02F1CAB281695B
+:10A9C00001230E3007F0D3FE077860681C22C1799E
+:10A9D000491EC17107EB8701606802EBC10146188F
+:10A9E0003946204600F0D5FF18B1304600F0E0FFB0
+:10A9F00020B16068C1790029DCD180E7FEF77CFDD9
+:10AA0000050000D1FFDF0A202872384600F0A6FFBB
+:10AA100068813946204600F0B0FF0146606808238F
+:10AA20004078C20006F1240007F0A1FED0E9001032
+:10AA3000C5E90310A5F80280284600F085FFB0782C
+:10AA400000B9FFDFB078401EB07058E770B50C4613
+:10AA50000546032107F0CEFF01464068C279224433
+:10AA6000C2712846BDE870409FE72DE9FE4F82463F
+:10AA7000507814460F464FF0000800284FD00128A8
+:10AA800007D0022822D0FFDF2068B8606068F86035
+:10AA900024E702AB0E2208215046FFF79CFB00285A
+:10AAA000F2D00298152105230170217841700A2106
+:10AAB0004180C0F80480C0F80880A0F80C8062884B
+:10AAC00082810E20CDE90008082221E0A6783046D8
+:10AAD00000F044FF054606EB86012C22786802EB65
+:10AAE000C1010822465A02AB11465046FFF773FBDC
+:10AAF0000028C9D0029807210170217841700421F3
+:10AB0000418008218580C680CDE9001805230A46CA
+:10AB100039465046FFF71FFB87F80880DEE6A67827
+:10AB2000022516B1022E13D0FFDF2A1D914602AB7B
+:10AB300008215046FFF74FFB0028A5D002980121BD
+:10AB4000022E0170217841704580868002D005E098
+:10AB50000625EAE7A188C180E1880181CDE9009856
+:10AB60000523082239465046D4E710B50446032190
+:10AB700007F040FF014600F108022046BDE8104002
+:10AB800073E72DE9F05F0C4601281DD0957992F806
+:10AB90000480567905EB85011F2202EBC10121F0EB
+:10ABA000030B08EB060111FB05F14FF6FF7202EAF9
+:10ABB000C10909F1030115FB0611F94F21F0031A30
+:10ABC00040B101283DD124E06168E57891F800802A
+:10ABD0004E78DFE75946786807F047FD606000B9B6
+:10ABE000FFDF594660681AF06AFDE57051467868E3
+:10ABF00007F03BFD6168486100B9FFDF60684269AA
+:10AC000002EB09018161606880F80080606846702D
+:10AC100017E0606852464169786807F051FD5A466E
+:10AC20006168786807F04CFD032007F08BFE04464E
+:10AC3000032007F08FFE201A012802D1786807F060
+:10AC400009FD0BEB0A00BDE8F09F0246002102203F
+:10AC500097E773B5D24D0A202870009848B10024B8
+:10AC60004FEA0D0007F0E3FC002C01D10099696068
+:10AC70007CBD01240020F5E770B50C46154638214F
+:10AC800020461AF01CFD012666700A2104F11C0002
+:10AC90001AF015FD05B9FFDF297A207861F301006C
+:10ACA0002070A879002817D02A4621460020FFF7F7
+:10ACB00068FF6168402088706168C87061680871C9
+:10ACC0006168487161688871616828880881616875
+:10ACD000688848816068868170BDC878002802D085
+:10ACE000002201204DE7704770B50546002165F34D
+:10ACF0001F4100200BF0A0FB0321284607F07AFE3D
+:10AD0000040000D1FFDF21462846FFF767F900283D
+:10AD100004D0207840F010002070012070BD2DE993
+:10AD2000FF4180460E460F0CFEF7E6FB050007D0FC
+:10AD30006F800321384607F05DFE040008D106E06D
+:10AD400004B03846BDE8F0411321F9F739BEFFDF02
+:10AD50005FEA080005D0B8F1060F18D0FFDFBDE8A4
+:10AD6000FF8120782A4620F0080020700020ADF8EE
+:10AD7000020002208DF800004FF6FF70ADF80400CD
+:10AD8000ADF8060069463846F9F711FAE7E7C6F369
+:10AD9000072101EB81021C23606803EBC202805C87
+:10ADA000042803D008280AD0FFDFD8E7012000904C
+:10ADB0004FF440432A46204600F008FECFE704B097
+:10ADC0002A462046BDE8F041FFF7E7B82DE9F05FDD
+:10ADD0000027B0F80A9090460C4605463E46B9F169
+:10ADE000400F01D2402001E0A9F140001FFA80FA93
+:10ADF000287AC01E08286BD2DFE800F00D04192065
+:10AE000058363C4772271026002C6CD0D5E9030138
+:10AE1000C4E902015CE070271226002C63D00A22EC
+:10AE200005F10C0104F108001AF0EDFB50E0712768
+:10AE30000C26002C57D0E868A06049E07427102643
+:10AE40009CB3D5E90301C4E902016888032107F036
+:10AE5000D1FD8346FEF750FB02466888508051467C
+:10AE60005846FFF751F833E075270A26ECB1A88958
+:10AE700020812DE076271426BCB105F10C0004F1E9
+:10AE8000080307C883E8070022E07727102664B18B
+:10AE9000D5E90301C4E902016888032107F0AAFD8E
+:10AEA00001466888FFF781FD12E01CE07327082641
+:10AEB000CCB16888032107F09DFD01460078C006EB
+:10AEC00006D56888FFF78AF810B96888F8F786FD14
+:10AED000A8F800602CB12780A4F8069066806888E6
+:10AEE000A0800020AFE6A8F80060FAE72DE9FC4159
+:10AEF0000C461E4617468046032107F07BFD05469B
+:10AF00000A2C0AD2DFE804F0050505050505090944
+:10AF10000907042303E0062301E0FFDF0023CDE956
+:10AF20000076224629464046FFF715F929E438B550
+:10AF30000546A0F57F40FF3830D0284607F08CFE4C
+:10AF4000040000D1FFDF204607F011FA002815D0D9
+:10AF500001466A46204607F02CFA00980321B0F813
+:10AF60000540284607F046FD0546052C03D0402C39
+:10AF700005D2402404E0007A80B1002038BD403C76
+:10AF8000A4B2214600F005FD40B1686804EB8401DD
+:10AF90003E2202EBC101405A0028EFD0012038BD0B
+:10AFA0002C0000202DE9F04F054689B0408807F0BD
+:10AFB00053FE040000D1FFDF06AA2046696800F0B6
+:10AFC000C1FC069C001F34F8031F21806388638046
+:10AFD000228881B28A4205D1042B0AD0052B1DD0CC
+:10AFE000062B15D02A462046FFF7CDFB09B0BDE859
+:10AFF000F08F1646241D2A4621463046F7F73FFAC1
+:10B000000828F3D12A4621463046FCF7F4FBEDE749
+:10B010006888211D6B68FAF739FCE7E717466888EE
+:10B02000032107F0E7FC4FF000088DF80480064686
+:10B03000ADF80680042FD9D36279002AD6D02079C2
+:10B040004FF6FF794FF01C0A13282CD008DC01289A
+:10B0500078D0062847D0072875D0122874D106E08A
+:10B06000142872D0152871D016286DD1ACE10C2FA0
+:10B070006AD1307800F00301022965D140F0080060
+:10B0800030706079B07001208DF804002089ADF82F
+:10B0900008006089ADF80A00A089ADF80C00E089CD
+:10B0A000ADF80E0019E0B07890429FD130780107DA
+:10B0B0009CD5062F9AD120F0080030706888414650
+:10B0C00060F31F4100200BF0B7F902208DF8040057
+:10B0D000ADF808902089ADF80A0068882A4601A9D1
+:10B0E000F9F765F882E7082F80D12789B4F80A902C
+:10B0F000402F01D2402001E0A7F1400080B28046FD
+:10B100000146304600F045FC08B3716808EB880042
+:10B110002C2202EBC000095A4945E3D1FE4807AA98
+:10B12000D0E90210CDE9071060798DF81C0008F015
+:10B13000FF048DF81E4068883146FFF796FC2A46CA
+:10B14000214639E0B6E014E03CE039E0E6E0F248C0
+:10B15000D0E90010CDE907106079ADF820708DF8C6
+:10B160001C00ADF82290688807AA3146FFF77DFCE5
+:10B170003CE7082FB6D16089B4F80880402801D296
+:10B18000402000E0403887B23946304600F001FCEC
+:10B190000028A7D007EB870271680AEBC2000844B9
+:10B1A000028A42459ED1017808299BD14078617975
+:10B1B000884297D1F9B22A463046FEF7EEFE15E7EF
+:10B1C0000E2F07D0CDF81C80CDF8208060798DF847
+:10B1D0001C00C8E76189E7898B46B4F80C903046BB
+:10B1E000FEF73DFFABF14001402901D309204AE0C1
+:10B1F000B9F1170F01D3172F01D20B2043E04028DC
+:10B200000ED000EB800271680AEBC200084401789E
+:10B21000012903D1407861798842A9D00A2032E01F
+:10B220003046FEF7FEFE014640282BD001EB81039D
+:10B2300072680AEBC30002EB0008012288F80020C4
+:10B24000627988F80120706822894089B84200D963
+:10B250003846248A03232B72AA82EF812882A5F81C
+:10B260000C906C82084600F079FB6881A8F8149075
+:10B27000A8F81870A8F80E40A8F810B0284600F0FA
+:10B2800063FBB3E6042005212972A5F80A80E88152
+:10B2900001212973A049D1E90421CDE90721617970
+:10B2A0008DF81C10ADF81E00688807AA3146FFF71C
+:10B2B000DCFBE3E7062FE4D3B078904215D1307879
+:10B2C000010712D520F0080030706888414660F30D
+:10B2D0001F4100200BF0B0F802208DF804002089F7
+:10B2E000ADF80800ADF80A90F7E604213046FEF705
+:10B2F000CEFE04464028C4D00220830300902A4694
+:10B300002146304600F062FB4146688864F30F2115
+:10B3100060F31F4106200BF08FF867E60E2FB0D1C7
+:10B3200004213046FEF7B3FE81464028A9D04146AD
+:10B33000688869F30F2160F31F4106200BF07CF849
+:10B34000208A0790E08900907068A7894089B842F8
+:10B3500000D938468346B4F80A80208905904846CB
+:10B3600000F0FCFA6881079840B10220079B00902A
+:10B370002A464946304600F029FB37E6B8F1170F58
+:10B380001ED3172F1CD30420287200986882EF81E7
+:10B39000A5F810B0A5F80C8009EB89020AEBC200F1
+:10B3A0007168009A0C180598A4F81480A4F818B0D5
+:10B3B000E2812082284600F0C7FA0620207015E6B8
+:10B3C00001200B230090D3E7082FA6D12189304616
+:10B3D000FEF745FE074640289FD007EB87027168BD
+:10B3E0000AEBC2000844804600F0E9FA002894D134
+:10B3F0006489B8F80E002044B0F5803F05D3688812
+:10B400003A46314600F019FBF0E5002C85D0A8F84B
+:10B410000E0068883A463146FFF7FDF8082028728A
+:10B42000384600F09BFA6881AC8127E770B50D467D
+:10B430000646032107F0DEFA040004D02078000756
+:10B4400004D5112070BD43F2020070BD2A4621468A
+:10B450003046FEF71AFF18B9286860616868A06175
+:10B46000207840F008002070002070BD70B50D46B7
+:10B470000646032107F0BEFA040004D02078000736
+:10B4800004D4082070BD43F2020070BD2A46214654
+:10B490003046FEF72EFF00B9A582207820F0080084
+:10B4A0002070002070BD2DE9F04F0E4691B080460F
+:10B4B000032107F09FFA0446404607F0DFFB0746EA
+:10B4C0000020079008900990ADF830000A90029093
+:10B4D0000390049004B9FFDF0DF108091FBBFFDFE3
+:10B4E00021E038460BA9002206F004FE9DF82C004E
+:10B4F00000F07F050A2D00D3FFDF6019017F491E90
+:10B5000001779DF82C0000060DD52A460CA907A846
+:10B51000FEF711FE02E00000AC5A020019F8051017
+:10B52000491C09F80510761EF6B2DAD204F134008F
+:10B53000FA4D04F1260BDFF8E8A304F12A07069080
+:10B5400010E05846069900F06AFA064628700A2864
+:10B5500000D3FFDF5AF8261040468847E08CC05DD4
+:10B56000B04202D0208D0028EBD10A202870EC4D8B
+:10B570004E4628350EE00CA907A800F050FA044604
+:10B58000375D55F8240000B9FFDF55F8242039460F
+:10B5900040469047BDF81E000028ECD111B026E5CA
+:10B5A00010B5032107F026FA040000D1FFDF0A21BD
+:10B5B00004F11C001AF083F8207840F00400207099
+:10B5C00010BD10B50C46032107F014FA2044007F8B
+:10B5D000002800D0012010BD2DE9F84F89461546FE
+:10B5E0008246032107F006FA070004D02846F5F743
+:10B5F0006AFE40B903E043F20200BDE8F88F484616
+:10B60000F5F787FE08B11020F7E7786828B1698858
+:10B610000089814201D90920EFE7B9F800001C2414
+:10B6200018B1402809D2402008E03846FEF7F9FC5E
+:10B630008046402819D11320DFE7403880B2804689
+:10B640000146384600F0A5F948B108EB8800796852
+:10B6500004EBC000085C012803D00820CDE70520DA
+:10B66000CBE7FDF749FF06000BD008EB88007968AF
+:10B6700004EBC0000C18B9F8000020B1E88910B143
+:10B6800013E01120B9E72888172802D36888172803
+:10B6900001D20720B1E7686838B12B1D2246414628
+:10B6A0003846FFF71DF90028A7D104F10C026946BE
+:10B6B0002046FFF71BF8288860826888E082B9F886
+:10B6C000000030B102202070E889A080E889A0B194
+:10B6D0002BE003202070A889A08078688178402919
+:10B6E00005D180F8028039465046FEF721FE4046DB
+:10B6F00000F034F9A9F8000021E07868218B408936
+:10B70000884200D908462083A6F802A0042030729F
+:10B71000B9F800007081E0897082F181208B30825D
+:10B72000A08AB081304600F00FF97868C1784029CE
+:10B7300005D180F8038039465046FEF74AFE0020C6
+:10B740005BE770B50D460646032107F053F9040088
+:10B7500003D0402D04D2402503E043F2020070BD27
+:10B76000403DADB2294600F014F958B105EB850112
+:10B770001C22606802EBC101084400F020F918B1F6
+:10B78000082070BD052070BD2A462146304600F0D5
+:10B7900054F9002070BD2DE9F0410D461646804653
+:10B7A000032107F027F90446402D01D2402500E08F
+:10B7B000403DADB28CB1294600F0EBF880B105EB0D
+:10B7C00085011C22606802EBC1014718384600F071
+:10B7D000F6F838B10820BDE8F08143F20200FAE73C
+:10B7E0000520F8E733463A4629462046FFF778F821
+:10B7F0000028F0D1EAB221464046FEF796FF00202D
+:10B80000E9E72DE9F0410D4616468046032107F091
+:10B81000F1F80446402D01D2402500E0403DAFB292
+:10B8200024B13046F5F74FFD38B902E043F202008B
+:10B83000D1E73068F5F747FD08B11020CBE739466E
+:10B84000204600F0A6F860B107EB87011C22606873
+:10B8500002EBC1014518284600F0B1F818B10820E4
+:10B86000B9E70520B7E7B088A98A884201D90C203A
+:10B87000B1E76168E88C4978B0EBC10F01D31320C0
+:10B88000A9E73946204600F078F8014660680823A9
+:10B890004078C20005F1240006F033FFD6E900121B
+:10B8A000C0E90012FAB221464046FEF7B4FE00207D
+:10B8B00091E72DE9F0470D461F469046814603214A
+:10B8C00007F098F80446402D01D2402001E0A5F190
+:10B8D000400086B23CB14DB13846F5F738FD50B165
+:10B8E0001020BDE8F08743F20200FAE76068C8B1B3
+:10B8F000A0F80C8024E03146204600F04AF888B1D8
+:10B9000006EB86011C22606802EBC101451828463F
+:10B9100000F055F840B10820E3E700002C000020BB
+:10B92000C45A02000520DCE7A5F80880F2B22146DF
+:10B930004846FEF7FAFE1FB1A88969890844388095
+:10B940000020CEE706F035BD017821F00F01491C3B
+:10B9500021F0F00110310170FDF7D1BD10B50446A2
+:10B96000402800D9FFDF4034A0B210BD40684269D2
+:10B970000078484302EBC0007047C2784068037803
+:10B9800012FB03F24378406901FB032100EBC10085
+:10B990007047C2788A4209D9406801EB81011C22B4
+:10B9A00002EBC101405C08B10120704700207047E4
+:10B9B0000078062801D901207047002070470078E0
+:10B9C000062801D00120704700207047F0B401EB39
+:10B9D00081061C27446807EBC6063444049D0526EF
+:10B9E0002670E3802571F0BCFEF78EBA10B5418950
+:10B9F00011B1FFF7DDFF08B1002010BD012010BD1F
+:10BA000010B5C18C8278B1EBC20F04D9C18911B1D4
+:10BA1000FFF7CEFF08B1002010BD012010BD10B50A
+:10BA20000C4601230A22011D06F0A1FE00782188A0
+:10BA3000012282409143218010BDF0B402EB8205C7
+:10BA40001C264C6806EBC505072363554B681C791B
+:10BA5000402C03D11A71F0BCFEF700BDF0BC70475A
+:10BA600010B5EFF3108000F0010472B6F948417888
+:10BA7000491C41704078012801D10AF01DF9002CC1
+:10BA800000D162B610BD70B5F24CA07848B901255E
+:10BA9000A570FFF7E5FF0AF020F920B100200AF0B9
+:10BAA000EAF8002070BD4FF08040E570C0F8045304
+:10BAB000F7E770B5EFF3108000F0010572B6E54CC2
+:10BAC000607800B9FFDF6078401E6070607808B968
+:10BAD0000AF0F6F8002D00D162B670BDDD4810B551
+:10BAE000817821B10021C1708170FFF7E2FF002051
+:10BAF00010BD10B504460AF0F0F8D6498978084020
+:10BB000000D001202060002010BD10B5FFF7A8FF75
+:10BB10000AF0E3F802220123CE49540728B1CE48A7
+:10BB2000026023610320087202E00A72C4F8043341
+:10BB30000020887110BD2DE9F05FDFF8189342787E
+:10BB4000817889F80420002689F80510074689F8CD
+:10BB500006600078DFF804B3354620B1012811D023
+:10BB6000022811D0FFDF0AF0CAF84FF0804498B1E4
+:10BB70000AF0CCF8B0420FD130460AF0CBF80028DA
+:10BB8000FAD041E00126EEE7FFF76AFF5846016868
+:10BB9000C907FCD00226E6E70120E060C4F80451A2
+:10BBA000AF490E600107D1F84412AD4AC1F34231EA
+:10BBB00024321160AA49343108604FF0020AC4F8F7
+:10BBC00004A3A060A7480168C94341F3001101F133
+:10BBD0000108016841F01001016000E020BFD4F8C5
+:10BBE00004010028FAD030460AF094F80028FAD070
+:10BBF000B8F1000F04D19B48016821F010010160E9
+:10BC0000C4F808A3C4F8045199F805004E4688B159
+:10BC1000387878B90AF061F880460AF0F5F90146FB
+:10BC20006FF00042B8F1000F02D0C6E9032101E035
+:10BC3000C6E90312DBF80000C00701D00AF049F89A
+:10BC4000387810B13572BDE8F09F4FF01808C4F88D
+:10BC50000883C4F82C510127C4F81870D4F82C01BB
+:10BC60000028FBD0C4F80C51C4F810517948C01D0D
+:10BC70000AF062F83570FFF748FF6761784930795C
+:10BC800020310860C4F80483DDE770B5050000D1F9
+:10BC9000FFDF4FF080424FF0FF30C2F80803002171
+:10BCA000C2F80011C2F80411C2F80C11C2F8101148
+:10BCB000684C61700AF01DF810B10120A07060702E
+:10BCC00066480068C00701D00AF003F82846BDE8BE
+:10BCD000704030E75F48007A002800D001207047AC
+:10BCE0002DE9FF5F6048D0F800805F4A5F49083265
+:10BCF00011608406D4F8080100B10120D4F82411A1
+:10BD000001B101218A46D4F81C1101B101218946F3
+:10BD1000D4F8201109B1012700E00027D4F8001160
+:10BD200001B101218B46D4F8041101B10121039125
+:10BD3000D4F80C1101B101210291D4F8101101B114
+:10BD40000121444D019129780026009120B1C4F8C9
+:10BD50000861012009F08FFFBAF1000F04D0C4F888
+:10BD60002461092009F087FFB9F1000F04D0C4F85D
+:10BD70001C610A2009F07FFF27B1C4F820610B2065
+:10BD800009F079FF3348C01D09F0DEFF00B1FFDF85
+:10BD9000DFF8C4900127BBF1000F10D0C4F808737E
+:10BDA000E87818B1EE70002009F065FF287A0228C3
+:10BDB00005D1032028720221C9F8001027610398D9
+:10BDC00008B1C4F80461029850B1C4F80C61287A33
+:10BDD000032800D0FFDFC9F800602F72FFF769FE6B
+:10BDE000019838B1C4F81061287A012801D100F017
+:10BDF0005DF86761009838B12E70287A012801D16A
+:10BE0000FFF783FEFFF755FE1248C01D09F0B2FF91
+:10BE10001549091DC1F80080BDE8FF9F0D4810B508
+:10BE2000C01D09F091FF0B4940B1012008704FF08F
+:10BE3000E021C1F80002BDE8104011E6087A0128AF
+:10BE400001D1FFF762FE0348BDE81040C01D09F0B4
+:10BE500091BF00003C000020340C00400C04004066
+:10BE60001805004010ED00E010050240010000013F
+:10BE700070B5224CA07808B909F022FF012085078F
+:10BE8000A861207A002603280AD100BFD5F80C014A
+:10BE900020B9002009F03EFF0028F7D1C5F80C6159
+:10BEA00026724FF0FF30C5F8080370BD70B5134C13
+:10BEB0006079F0B1012803D0A179401E814218DADF
+:10BEC00009F00BFF05460AF09FF86179012902D9B4
+:10BED000A179491CA1710DB1216900E0E168411A05
+:10BEE000022902DA11F1020F06DC0DB1206100E037
+:10BEF000E060BDE8704008E670BD00003C00002036
+:10BF000010B5202000F07FF8202000F08DF84D497A
+:10BF1000202081F80004F5F771FA4B4908604B487E
+:10BF2000D0F8041341F00101C0F80413D0F8041351
+:10BF300041F08071C0F80413424901201C39C1F856
+:10BF4000000110BD10B5202000F05DF83E48002132
+:10BF5000C8380160001D01603D4A481E10603B4A20
+:10BF6000C2F80803384B1960C2F80001C2F860013A
+:10BF700038490860BDE81040202000F055B8344929
+:10BF80003548091F086070473149334808607047D9
+:10BF90002D48C8380160001D521E026070472C49B0
+:10BFA00001200860BFF34F8F70472DE9F041284909
+:10BFB000D0F8188028480860244CD4F800010025E7
+:10BFC000244E6F1E28B14046F5F776F940B900219E
+:10BFD00011E0D4F8600198B14046F5F76DF948B129
+:10BFE000C4F80051C4F860513760BDE8F04120202A
+:10BFF00000F01AB831684046BDE8F04119F08ABB3C
+:10C00000FFDFBDE8F08100280DDB00F01F020121F9
+:10C0100091404009800000F1E020C0F88011BFF39A
+:10C020004F8FBFF36F8F7047002809DB00F01F02AE
+:10C03000012191404009800000F1E020C0F8801209
+:10C040007047000020E000E0C80602400000024007
+:10C050001805024000040240010000010F4A126866
+:10C060000D498A420CD118470C4A12680A4B9A4271
+:10C0700006D101B509F09AFFFFF781FFBDE8014045
+:10C08000074909680958084706480749054A064B01
+:10C090007047000000000000BEBAFECA5400002035
+:10C0A000040000208013002080130020F8B51D46F6
+:10C0B000DDE906470E000AD006F0E0FD2346FF1D2D
+:10C0C000BCB231462A46009406F0EDF9F8BDD0190D
+:10C0D0002246194619F052FA2046F8BD70B50D46B1
+:10C0E0000446102119F0C9FA258117206081A07B30
+:10C0F00040F00A00A07370BD4FF6FF720A8001463F
+:10C1000002200AF099B9704700897047827BD307F3
+:10C1100001D1920703D48089088000207047052050
+:10C120007047827B920700D58181704701460020CD
+:10C13000098841F6FE52114200D00120704700B537
+:10C140000346807BC00701D0052000BD59811846F9
+:10C15000FFF7ECFFC00703D0987B40F00400987312
+:10C16000987B40F001009873002000BD827B52074D
+:10C1700000D509B14089704717207047827B61F371
+:10C18000C302827370472DE9FC5F0E4604460178B6
+:10C190009646012000FA01F14DF6FF5201EA02092C
+:10C1A00062684FF6FF7B1188594502D10920BDE82E
+:10C1B000FC9FB9F1000F05D041F6FE55294201D090
+:10C1C0000120F4E741EA090111801D0014D0002389
+:10C1D0002B7094F800C0052103221F464FF0020A7D
+:10C1E000BCF10E0F76D2DFE80CF0F909252F476479
+:10C1F0006B77479193B4D1D80420D8E76168208940
+:10C200008B7B9B0767D517284AD30B89834247D37B
+:10C210008989172901D3814242D185F800A0A5F868
+:10C2200001003280616888816068817B21F00201B1
+:10C230008173C6E0042028702089A5F80100608978
+:10C24000A5F803003180BCE0208A3188C01D1FFAA8
+:10C2500080F8414524D3062028702089A5F80100E4
+:10C260006089A5F80300A089A5F805000721208AA8
+:10C27000CDE90001636941E00CF0FF00082810D00F
+:10C28000082028702089A5F801006089A5F803001E
+:10C2900031806A1D694604F10C0008F057F910B1AD
+:10C2A0005EE01020EDE730889DF8001008443080F3
+:10C2B00087E00A2028702089A5F80100328044E038
+:10C2C0000C2028702089A5F801006089A5F80300DA
+:10C2D00031803AE082E064E02189338800EB41025A
+:10C2E0001FFA82F843453BD3B8F1050F38D30E222D
+:10C2F0002A700BEA4101CDE90010E36860882A4604
+:10C300007146FFF7D3FEA6F800805AE0402028705F
+:10C3100060893188C01C1FFA80F8414520D32878F5
+:10C32000714620F03F00123028702089A5F80100E6
+:10C330006089CDE9000260882A46E368FFF7B6FE0F
+:10C34000A6F80080287840063BD461682089888060
+:10C3500037E0A0893288401D1FFA80F8424501D29B
+:10C3600004273DE0162028702089A5F80100608987
+:10C37000A5F80300A089CDE9000160882A4671462E
+:10C380002369FFF793FEA6F80080DEE718202870E7
+:10C39000207A6870A6F800A013E061680A88920409
+:10C3A00001D405271CE0C9882289914201D00627C3
+:10C3B00016E01E21297030806068018821F4005148
+:10C3C0000180B9F1000F0BD0618878230022022090
+:10C3D00009F088FF61682078887006E033800327C1
+:10C3E0006068018821EA090101803846DFE62DE90D
+:10C3F000FF4F85B01746129C0D001E461CD03078AA
+:10C40000C10703D000F03F00192801D9012100E045
+:10C4100000212046FFF7AAFEA8420DD32088A0F5F0
+:10C420007F41FF3908D03078410601D4000605D598
+:10C43000082009B0BDE8F08F0720FAE700208DF84A
+:10C4400000008DF8010030786B1E00F03F0C0121D8
+:10C45000A81E4FF0050A4FF002094FF0030B9AB2E5
+:10C46000BCF1200F75D2DFE80CF08B10745E74689D
+:10C47000748C749C74B674BB74C974D574E274748F
+:10C4800074F274F074EF74EE748B052D78D18DF81E
+:10C490000090A0788DF804007088ADF8060030791F
+:10C4A0008DF80100707800F03F000C2829D00ADCDC
+:10C4B000A0F10200092863D2DFE800F012621562E1
+:10C4C0001A621D622000122824D004DC0E281BD022
+:10C4D0001028DBD11BE016281FD01828D6D11FE06A
+:10C4E0002078800701E020784007002848DAEFE054
+:10C4F00020780007F9E72078C006F6E72078800664
+:10C50000F3E720784006F0E720780006EDE7208882
+:10C51000C005EAE720884005E7E720880005E4E752
+:10C520002088C004E1E72078800729D5032D27D192
+:10C530008DF800B0B6F8010082E0217849071FD5D8
+:10C54000062D1DD381B27078012803D0022817D19F
+:10C5500002E0CAE0022000E0102004228DF8002052
+:10C5600072788DF80420801CB1FBF0F2ADF8062043
+:10C5700092B242438A4203D10397ADF80890A7E0F4
+:10C580007AE02078000777D598B282088DF800A06D
+:10C59000ADF80420B0EB820F6ED10297ADF8061013
+:10C5A00096E02178C90667D5022D65D381B20620B1
+:10C5B0008DF80000707802285ED300BFB1FBF0F266
+:10C5C0008DF80400ADF8062092B242438A4253D15E
+:10C5D000ADF808907BE0207880064DD5072003E079
+:10C5E000207840067FD508208DF80000A088ADF89F
+:10C5F0000400ADF80620ADF8081068E020780006C9
+:10C6000071D50920ADF804208DF80000ADF80610B2
+:10C6100002975DE02188C90565D5022D63D381B2FB
+:10C620000A208DF80000707804285CD3C6E72088C3
+:10C63000400558D5012D56D10B208DF80000A0885B
+:10C64000ADF8040044E021E026E016E0FFE7208892
+:10C65000000548D5052D46D30C208DF80000A08894
+:10C66000ADF80400B6F803006D1FADF80850ADF842
+:10C670000600ADF80AA02AE035E02088C00432D5D3
+:10C68000012D30D10D208DF8000021E0208880049C
+:10C6900029D4B6F80100E080A07B000723D5032D44
+:10C6A00021D3307800F03F001B2818D00F208DF8E0
+:10C6B0000000208840F40050A4F80000B6F8010003
+:10C6C000ADF80400ED1EADF80650ADF808B00397C4
+:10C6D00069460598F5F71EFC050008D016E00E2007
+:10C6E0008DF80000EAE7072510E008250EE0307815
+:10C6F00000F03F001B2809D01D2807D00220059913
+:10C7000009F09AFE208800F400502080A07B4007AA
+:10C7100008D52046FFF70AFDC00703D1A07B20F013
+:10C720000400A073284684E61FB5022806D1012024
+:10C730008DF8000088B26946F5F7ECFB1FBD0000DC
+:10C74000F8B51D46DDE906470E000AD006F096FA58
+:10C750002346FF1DBCB231462A46009405F0A3FED5
+:10C76000F8BDD0192246194618F008FF2046F8BD3A
+:10C770002DE9FF4F8DB09B46DDE91B57DDF87CA00E
+:10C780000C46082B05D0E06901F002F950B11020E9
+:10C79000D2E02888092140F0100028808AF8001093
+:10C7A000022617E0E16901208871E2694FF4205107
+:10C7B0009180E1698872E06942F601010181E069D6
+:10C7C000002181732888112140F0200028808AF8F8
+:10C7D0000010042638780A900A2038704FF00209B9
+:10C7E00004F118004D460C9001F095FBB04681E035
+:10C7F000BBF1100F0ED1022D0CD0A9EB0800801C4C
+:10C8000080B20221CDE9001005AB52461E990D9869
+:10C81000FFF796FFBDF816101A98814203D9F74822
+:10C8200000790F9004E003D10A9808B138702FE026
+:10C830004FF00201CDE900190DF1160352461E9981
+:10C840000D98FFF77DFF1D980088401B801B83B269
+:10C85000C6F1FF00984200D203461E990BA8D9B139
+:10C860005FF00002DDF878C0CDE9032009EB060196
+:10C8700089B2CDE901C10F980090BDF816100022D1
+:10C880000D9801F0CBFB387070B1C0B2832807D08F
+:10C89000BDF8160020833AE00AEB09018A19E1E7A6
+:10C8A000022011B0BDE8F08FBDF82C00811901F015
+:10C8B000FF08022D0DD09AF80120424506D1BDF89F
+:10C8C0002010814207D0B8F1FF0F04D09AF8018000
+:10C8D0001FE08AF80180C94800680178052902D163
+:10C8E000BDF81610818009EB08001FFA80F905EBEE
+:10C8F000080085B2DDE90C1005AB0F9A01F00EFBC4
+:10C9000028B91D980088411B4145BFF671AF022D23
+:10C9100013D0BBF1100F0CD1A9EB0800801C81B221
+:10C920000220CDE9000105AB52461E990D98FFF794
+:10C9300007FF1D980580002038700020B1E72DE921
+:10C94000F8439C46089E13460027B26B9AB3491FD2
+:10C950008CB2F18FA1F57F45FF3D05D05518AD880C
+:10C960002944891D8DB200E000252919B6F83C80C4
+:10C970000831414520D82A44BCF8011022F8021B96
+:10C98000BCF8031022F8021B984622F8024B91468D
+:10C9900006F062F94FF00C0C41464A462346CDF8AA
+:10C9A00000C005F04CFDF587B16B00202944A41DA3
+:10C9B0002144088003E001E0092700E0832738468E
+:10C9C000BDE8F88310B50B88848F9C420CD9846B2A
+:10C9D000E018048844B1848824F40044A41D23444E
+:10C9E0000B801060002010BD0A2010BD2DE9F0471B
+:10C9F0008AB00025904689468246ADF81850072730
+:10CA00004BE0059806888088000446D4A8F80060AA
+:10CA100007A8019500970295CDE903504FF40073E4
+:10CA200000223146504601F0F9FA04003CD1BDF82D
+:10CA30001800ADF82000059804888188B44216D10A
+:10CA40000A0414D401950295039521F4004100973E
+:10CA5000049541F4804342882146504601F0B4F8E1
+:10CA600004000BD10598818841F40041818005AA1A
+:10CA700008A94846FFF7A6FF0400DCD000970598F8
+:10CA800002950195039504950188BDF81C3000229C
+:10CA9000504601F099F80A2C06D105AA06A9484685
+:10CAA000FFF790FF0400ACD0ADF8185004E00598F3
+:10CAB000818821F40041818005AA06A94846FFF734
+:10CAC00081FF0028F3D00A2C03D020460AB0BDE82D
+:10CAD000F0870020FAE710B50C46896B86B051B19B
+:10CAE0000C218DF80010A18FADF80810A16B0191F9
+:10CAF0006946FAF718FB00204FF6FF71A063E18743
+:10CB0000A08706B010BD2DE9F0410D460746896BA0
+:10CB10000020069E1446002911D0012B0FD1324669
+:10CB200029463846FFF762FF002808D1002C06D0BE
+:10CB3000324629463846BDE8F04100F038BFBDE82E
+:10CB4000F0812DE9FC411446DDE9087C0E46DDE963
+:10CB50000A15521DBCF800E092B2964502D2072099
+:10CB6000BDE8FC81ACF8002017222A70A5F801600E
+:10CB7000A5F803300522CDE900423B462A46FFF7DF
+:10CB8000DFFD0020ECE770B50C4615464821204635
+:10CB900018F095FD04F1080044F81C0F00204FF632
+:10CBA000FF71E06161842084A5841720E08494F8FB
+:10CBB0002A0040F00A0084F82A0070BD4FF6FF7288
+:10CBC0000A800146032009F037BC30B585B00C4619
+:10CBD0000546FFF780FFA18E284629B101218DF877
+:10CBE00000106946FAF79FFA0020E0622063606354
+:10CBF00005B030BDB0F8400070470000580000207C
+:10CC000090F84620920703D4408808800020F3E77C
+:10CC10000620F1E790F846209207EDD5A0F84410E1
+:10CC2000EAE70146002009880A0700D5012011F033
+:10CC3000F00F01D040F00200CA0501D540F0040019
+:10CC40008A0501D540F008004A0501D540F01000E2
+:10CC50000905D1D540F02000CEE700B5034690F895
+:10CC60004600C00701D0062000BDA3F842101846B8
+:10CC7000FFF7D7FF10F03E0F05D093F8460040F0C5
+:10CC8000040083F8460013F8460F40F001001870C6
+:10CC9000002000BD90F84620520700D511B1B0F831
+:10CCA0004200A9E71720A7E710F8462F61F3C30257
+:10CCB0000270A1E72DE9FF4F9BB00E00DDE92B3498
+:10CCC000DDE92978289D24D02878C10703D000F019
+:10CCD0003F00192801D9012100E000212046FFF77B
+:10CCE000D9FFB04215D32878410600F03F010CD49B
+:10CCF0001E290CD0218811F47F6F0AD13A8842B1E5
+:10CD0000A1F57F42FF3A04D001E0122901D10006CB
+:10CD100002D504201FB0C5E5F9491D984FF0000A5F
+:10CD200008718DF818A08DF83CA00FAA0A60ADF824
+:10CD30001CA0ADF850A02978994601F03F02701F61
+:10CD40005B1C04F1180C4FF0060E4FF0040BCDF8ED
+:10CD500058C01F2A7ED2DFE802F07D7D107D267D3F
+:10CD6000AC7DF47DF37DF27DF17DF47DF07D7D7D04
+:10CD7000EF7DEE7D7D7D7D7DED0094F84610B5F86C
+:10CD80000100890701D5032E02D08DF818B022E3E7
+:10CD90004FF40061ADF85010608003218DF83C1015
+:10CDA000ADF84000D8E2052EEFD1B5F801002083A0
+:10CDB000ADF81C00B5F80310618308B1884201D9B1
+:10CDC00001207FE10020A07220814FF6FF702084B7
+:10CDD000169801F0A0F8052089F8000002200290C2
+:10CDE00083460AAB1D9A16991B9801F097F890BBE1
+:10CDF0009DF82E00012804D0022089F8010010209F
+:10CE000003E0012089F8010002200590002203A917
+:10CE10000BA807F09BFBE8BB9DF80C00059981422D
+:10CE20003DD13A88801CA2EB0B01814237DB02998D
+:10CE30000220CDE900010DF12A034A4641461B9824
+:10CE4000FFF77EFC02980BF1020B801C80B217AA40
+:10CE500003A901E0A0E228E002900BA807F076FB0E
+:10CE600002999DF80C00CDE9000117AB4A464146F6
+:10CE70001B98FFF765FC9DF80C100AAB0BEB01004B
+:10CE80001FFA80FB02981D9A084480B202901699FE
+:10CE90001B9800E003E001F041F80028B6D0BBF198
+:10CEA000020F02D0A7F800B053E20A208DF8180054
+:10CEB0004FE200210391072EFFF467AFB5F80100A0
+:10CEC0002083ADF81C00B5F80320628300283FF4EE
+:10CED00077AF90423FF674AF0120A072B5F805001D
+:10CEE00020810020A073E06900F052FD78B9E1696B
+:10CEF00001208871E2694FF420519180E1698872C4
+:10CF0000E06942F601010181E06900218173F01FAF
+:10CF100020841E98606207206084169800F0FBFF52
+:10CF2000072089F800000120049002900020ADF84D
+:10CF30002A0028E01DE2A3E13AE1EAE016E2AEE0D1
+:10CF400086E049E00298012814D0E0698079012840
+:10CF500003D1BDF82800ADF80E00049803ABCDE96D
+:10CF600000B04A4641461B98FFF7EAFB0498001DB3
+:10CF700080B20490BDF82A00ADF80C00ADF80E00A8
+:10CF8000059880B202900AAB1D9A16991B9800F082
+:10CF9000C5FF28B902983988001D05908142D1D279
+:10CFA0000298012881D0E0698079012805D0BDF878
+:10CFB0002810A1F57F40FF3803D1BDF82800ADF857
+:10CFC0000E00049803ABCDE900B04A4641461B98D9
+:10CFD000FFF7B6FB0298BBE1072E02D0152E7FF4B7
+:10CFE000D4AEB5F801102183ADF81C10B5F80320BC
+:10CFF000628300293FF4E4AE91423FF6E1AE0121A5
+:10D00000A1724FF0000BA4F808B084F80EB0052E02
+:10D0100007D0C0B2691DE26907F079FA00287FF4F1
+:10D0200044AF4FF6FF70208401A906AA14A8CDF8DA
+:10D0300000B081E885032878214600F03F031D9A5F
+:10D040001B98FFF795FB8246208BADF81C0080E112
+:10D050000120032EC3D14021ADF85010B5F80110C6
+:10D060002183ADF81C100AAAB8F1000F00D00023EC
+:10D07000CDE9020304921D98CDF804800090388811
+:10D080000022401E83B21B9800F0C8FF8DF81800E4
+:10D0900090BB0B2089F80000BDF8280037E04FF066
+:10D0A000010C052E9BD18020ADF85000B5F8011081
+:10D0B0002183B5F803002084ADF81C10B0F5007F83
+:10D0C00003D907208DF8180085E140F47C422284C2
+:10D0D0000CA8B8F1000F00D00023CDE90330CDE952
+:10D0E000018C1D9800903888401E83B21B9800F078
+:10D0F00095FF8DF8180028B18328A8D10220BDE043
+:10D10000580000200D2189F80010BDF83000401CA7
+:10D110001EE1032E04D248067FF537AE002017E14A
+:10D12000B5F80110ADF81C102878400602D58DF82E
+:10D130003CE002E007208DF83C004FF0000803209F
+:10D14000CDE902081E9BCDF810801D980193A6F131
+:10D15000030B00901FFA8BF342461B9800F034FD3E
+:10D160008DF818008DF83C80297849060DD5208867
+:10D17000C00506D5208BBDF81C10884201D1C4F82B
+:10D18000248040468DF81880E2E0832801D14FF0DA
+:10D19000020A4FF48070ADF85000BDF81C002083E7
+:10D1A000A4F820B01E986062032060841321CCE0B4
+:10D1B000052EFFF4EAADB5F80110ADF81C10A28FF2
+:10D1C00062B3A2F57F43FE3B28D008228DF83C20B5
+:10D1D0004FF0000B0523CDE9023BDDF878C0CDF818
+:10D1E00010B01D9A80B2CDF804C040F40043009204
+:10D1F000B5F803201B9800F0E7FC8DF83CB04FF425
+:10D2000000718DF81800ADF85010832810D0F8B1D7
+:10D21000A18FA1F57F40FE3807D0DCE00B228DF80E
+:10D220003C204FF6FE72A287D2E7A4F83CB0D2E0D1
+:10D2300000942B4631461E9A1B98FFF780FB8DF811
+:10D24000180008B183284BD1BDF81C00208355E796
+:10D2500000942B4631461E9A1B98FFF770FB8DF801
+:10D260001800E8BBE18FA06B0844811D8DE88203A4
+:10D270004388828801881B98FFF763FC824668E038
+:10D2800095F80180022E70D15FEA080002D0B8F153
+:10D29000010F6AD109208DF83C0007A800908DF895
+:10D2A00040804346002221461B98FFF72CFC8DF856
+:10D2B00042004FF0000B8DF843B050B9B8F1010FA8
+:10D2C00012D0B8F1000F04D1A18FA1F57F40FF3833
+:10D2D0000AD0A08F40B18DF83CB04FF4806000E0E0
+:10D2E00037E0ADF850000DE00FA91B98F9F71BFFD0
+:10D2F00082468DF83CB04FF48060ADF85000BAF132
+:10D30000020F06D0FC480068C07928B18DF81800DB
+:10D3100027E0A4F8188044E0BAF1000F03D0812080
+:10D320008DF818003DE007A80090434601222146F1
+:10D330001B98FFF7E8FB8DF8180021461B98FFF7B4
+:10D34000CAFB9DF8180020B9192189F800100120A6
+:10D3500038809DF83C0020B10FA91B98F9F7E3FE37
+:10D360008246BAF1000F33D01BE018E08DF818E0C8
+:10D3700031E02078000712D5012E10D10A208DF857
+:10D380003C00E088ADF8400003201B9909F054F8F8
+:10D390000820ADF85000C1E648067FF5F6AC4FF026
+:10D3A000040A2088BDF8501008432080BDF85000C2
+:10D3B00080050BD5A18FA1F57F40FE3806D11E98C0
+:10D3C000E06228982063A6864FF0030A5046A1E445
+:10D3D0009DF8180078B1012089F80000297889F8B3
+:10D3E0000110BDF81C10A9F802109DF8181089F85A
+:10D3F0000410052038802088BDF850108843208014
+:10D40000E4E72DE9FF4F8846087895B00121814077
+:10D410004FF20900249C0140ADF820102088DDF86F
+:10D420008890A0F57F424FF0000AFF3A06D039B14C
+:10D43000000705D5012019B0BDE8F08F0820FAE7F4
+:10D44000239E4FF0000B0EA886F800B018995D4699
+:10D450000988ADF83410A8498DF81CB0179A0A71E4
+:10D460008DF838B0086098F8000001283BD00228F9
+:10D4700009D003286FD1307820F03F001D30307084
+:10D48000B8F80400E08098F800100320022904D1C5
+:10D49000317821F03F011B31317094F846100907B3
+:10D4A00059D505ABB9F1000F13D0002102AA82E8CB
+:10D4B0000B000720CDE90009BDF83400B8F80410CE
+:10D4C000C01E83B20022159800F0A8FD0028D1D11B
+:10D4D00001E0F11CEAE7B8F80400A6F80100BDF885
+:10D4E0001400C01C04E198F805108DF81C1098F881
+:10D4F0000400012806D04FF4007A02282CD003281B
+:10D50000B8D16CE12188B8F8080011F40061ADF8D9
+:10D51000201020D017281CD3B4F84010814218D313
+:10D52000B4F84410172901D3814212D1317821F087
+:10D530003F01C91C3170A6F801000321ADF8341079
+:10D54000A4F8440094F8460020F0020084F8460055
+:10D5500065E105257EE177E1208808F1080700F400
+:10D56000FE60ADF8200010F0F00F1BD010F0C00FDF
+:10D5700003D03888228B9042EBD199B9B878C00794
+:10D5800010D0B9680720CDE902B1CDF804B0009001
+:10D59000CDF810B0FB88BA883988159800F014FBD4
+:10D5A0000028D6D12398BDF82010401C80294ED0E9
+:10D5B00006DC10290DD020290BD0402987D124E08A
+:10D5C000B1F5807F6ED051457ED0B1F5806F97D197
+:10D5D000DEE0C80601D5082000E0102082460DA933
+:10D5E00007AA0520CDE902218DF83800ADF83CB03E
+:10D5F000CDE9049608A93888CDE9000153460722F1
+:10D6000021461598FFF7B4F8A8E09DF81C200121E9
+:10D610004FF00A0A002A9BD105ABB9F1000F00D0E8
+:10D620000020CDE902100720CDE90009BDF8340043
+:10D630000493401E83B2218B0022159800F0EEFC6B
+:10D640008DF81C000B203070BDF8140020E09DF810
+:10D650001C2001214FF00C0A002A22D113ABB9F192
+:10D66000000F00D00020CDE902100720CDE900090D
+:10D670000493BDF83400228C401E83B2218B159890
+:10D6800000F0CCFC8DF81C000D203070BDF84C0073
+:10D69000401CADF8340005208DF83800208BADF823
+:10D6A0003C00BCE03888218B88427FF452AF9DF863
+:10D6B0001C004FF0120A00281CD1606AA8B1B8788B
+:10D6C000C0073FF446AF00E018E0BA680720CDE994
+:10D6D00002B2CDF804B00090CDF810B0FB88BA8843
+:10D6E000159800F071FA8DF81C001320307001209D
+:10D6F000ADF8340093E00000580000203988208BFA
+:10D700008142D2D19DF81C004FF0160A0028A06B70
+:10D7100008D0E0B34FF6FF7000215F46ADF808B0C7
+:10D72000019027E068B1B978C907BED1E18F0DAB90
+:10D730000844821D03968DE80C0243888288018884
+:10D7400009E0B878C007BCD0BA680DAB03968DE885
+:10D750000C02BB88FA881598FFF7F3F905005ED034
+:10D76000072D72D076E0019005AA02A92046FFF7A6
+:10D7700029F90146E28FBDF80800824201D0002954
+:10D78000F1D0E08FA16B084407800198E08746E064
+:10D790009DF81C004FF0180A40B1208BC8B13888A2
+:10D7A000208321461598FFF796F938E004F1180018
+:10D7B0000090237E012221461598FFF7A4F98DF8E9
+:10D7C0001C000028EDD1192030700120ADF8340084
+:10D7D000E7E7052521461598FFF77DF93AE020880F
+:10D7E00000F40070ADF8200050452DD1A08FA0F5B9
+:10D7F0007F41FE3901D006252CE0D8F808004FF013
+:10D80000160A48B1A063B8F80C10A1874FF6FF7153
+:10D81000E187A0F800B002E04FF6FF70A087BDF8E6
+:10D82000200030F47F611AD078230022032015995C
+:10D8300008F058FD98F8000020712088BDF82010ED
+:10D84000084320800EE000E007252088BDF8201066
+:10D8500088432080208810F47F6F1CD03AE0218814
+:10D86000814321809DF8380020B10EA91598F9F761
+:10D870005AFC05469DF81C000028EBD086F801A054
+:10D8800001203070208B70809DF81C0030710520C5
+:10D89000ADF83400DEE7A18EE1B118980DAB008839
+:10D8A000ADF834002398CDE90304CDE90139206BAC
+:10D8B0000090E36A179A1598FFF7FCF905460120D6
+:10D8C0008DF838000EA91598F9F72DFC00B1054622
+:10D8D000A4F834B094F8460040070AD52046FFF774
+:10D8E000A0F910F03E0F04D114F8460F20F0040008
+:10D8F00020701898BDF83410018028469BE500B5CB
+:10D9000085B0032806D102208DF8000088B2694650
+:10D91000F9F709FC05B000BD10B5384C0B7822684A
+:10D92000012B02D0022B2AD111E013780BB1052B69
+:10D9300001D10423137023688A889A802268CB88D7
+:10D94000D38022680B891381498951810DE08B882E
+:10D9500093802268CB88D38022680B8913814B89FE
+:10D9600053818B899381096911612168F9F7DBFB88
+:10D97000226800210228117003D0002800D08120E5
+:10D9800010BD832010BD806B002800D0012070479F
+:10D990008178012909D10088B0F5205F03D042F6D3
+:10D9A0000101884201D10020704707207047F0B57F
+:10D9B00087B0002415460E460746ADF8184011E022
+:10D9C00005980088288005980194811DCDE90241C1
+:10D9D000072104940091838842880188384600F02A
+:10D9E000F3F830B905AA06A93046FEF7EBFF002888
+:10D9F000E6D00A2800D1002007B0F0BD5800002072
+:10DA000010B58B7883B102789A4205D10B885BB14F
+:10DA100002E08B79091D4BB18B789A42F9D1B0F8AD
+:10DA200001300C88A342F4D1002010BD812010BD2C
+:10DA3000072826D012B1012A27D103E0497801F046
+:10DA4000070102E04978C1F3C20105291DD2DFE8D0
+:10DA500001F00318080C12000AB1032070470220DD
+:10DA6000704704280DD250B10DE0052809D2801E60
+:10DA7000022808D303E0062803D0032803D005209A
+:10DA80007047002070470F20704781207047C0B258
+:10DA900082060BD4000607D5FE48807A4143C01D9C
+:10DAA00001EBD00080B270470846704700207047F5
+:10DAB00070B513880B800B781C0625D5F54CA47A1D
+:10DAC000844204D843F010000870002070BD9568AF
+:10DAD00000F0070605EBD0052D78F54065F304133B
+:10DAE0000B701378D17803F0030341EA032140F26D
+:10DAF0000123B1FBF3F503FB15119268E41D00FB54
+:10DB0000012000EBD40070BD906870BD37B514469D
+:10DB1000BDF8041011809DF804100A061ED5C1F34B
+:10DB20000013DC49A568897A814208D8FE2811D102
+:10DB3000C91DC9085A42284617F097FD0AE005EBAF
+:10DB4000D00100F00702012508789540A8439340D2
+:10DB500018430870207820F0100020703EBD2DE999
+:10DB6000F0410746C81C0E4620F00300B04202D028
+:10DB70008620BDE8F081C74D002034462E60AF807E
+:10DB80002881AA72E8801AE0E988491CE9808106A8
+:10DB900014D4E17800F0030041EA002040F20121B2
+:10DBA000B0FBF1F201FB12012068FFF770FF298939
+:10DBB000084480B22881381A3044A0600C342078A0
+:10DBC0004107E1D40020D4E72DE9FF4F89B0164684
+:10DBD000DDE9168A0F46994623F44045084600F0D1
+:10DBE0000DFB04000FD0099804F0CAFE02902078C3
+:10DBF00000060AD5A748817A0298814205D8872075
+:10DC00000DB0BDE8F08F0120FAE7224601A9029885
+:10DC1000FFF74EFF834600208DF80C004046B8F118
+:10DC2000070F1AD001222146FFF702FF0028E7D193
+:10DC30002078400611D502208DF80C00ADF8107048
+:10DC4000BDF80400ADF81200ADF814601898ADF8F6
+:10DC50001650CDF81CA0ADF818005FEA094004D5B5
+:10DC600000252E46A84601270CE02178E07801F037
+:10DC7000030140EA012040F20121B0FBF1F28046AD
+:10DC800001FB12875FEA494009D5B84507D1A17861
+:10DC9000207901F0030140EA0120B04201D3BE42E5
+:10DCA00001D90720ACE7A8191FFA80F9B94501D9B5
+:10DCB0000D20A5E79DF80C0028B103A90998F9F7F4
+:10DCC00030FA00289CD1B84507D1A0784FEA192135
+:10DCD00061F30100A07084F804901A9800B10580E7
+:10DCE000199850EA0A0027D0199830B10BEB0600BA
+:10DCF0002A46199917F042FC0EE00BEB060857462E
+:10DD0000189E099804F0A8FF2B46F61DB5B23946B7
+:10DD10004246009504F093FB224601A90298FFF7C2
+:10DD2000C7FE9DF80400224620F010008DF8040084
+:10DD3000DDE90110FFF7EAFE002061E72DE9FF4F62
+:10DD4000DFF8509182461746B9F80610D9F800005E
+:10DD500001EB410100EB810440F20120B2FBF0F144
+:10DD600085B000FB11764D46DDF84C8031460698B3
+:10DD7000FFF78DFE29682A898B46611A0C31014410
+:10DD80001144AB8889B28B4202D8842009B038E7AD
+:10DD90000699CDB2290603D5A90601D50620F5E7D7
+:10DDA000B9F806C00CF1010C1FFA8CFCA9F806C0EA
+:10DDB000149909B1A1F800C0A90602D5C4F80880D9
+:10DDC00007E0104480B2A9F80800191A01EB0B0013
+:10DDD000A0602246FE200699FFF798FEE7702671A4
+:10DDE0002078390A61F30100320AA17840F004007A
+:10DDF00062F30101A17020709AF802006071BAF814
+:10DE00000000E08000262673280602D599F80A70E3
+:10DE100000E00127A80601D54FF000084D46002478
+:10DE20004FF007090FE0CDE902680196CDF80090A8
+:10DE30000496E9882046129B089AFFF7C5FE002841
+:10DE4000A4D1641CE4B2BC42EDD300209EE72DE9CE
+:10DE5000F047804600F0D2F9070005D0002644467E
+:10DE60000C4D40F2012919E00120BDE8F087204661
+:10DE700000F0C4F90278C17802F0030241EA0222FC
+:10DE8000B2FBF9F309FB13210068FFF700FE3044F1
+:10DE900086B201E0F8050020641CA4B2E988601E87
+:10DEA0008142E4DCA8F10100E8802889801B2881F8
+:10DEB00000203870D9E710B5144631B1491E2180D1
+:10DEC00004F05EFDA070002010BD012010BD10B553
+:10DED000D24904460088CA88904201D30A2010BD66
+:10DEE000096800EB400001EB80025079A072D088F5
+:10DEF00020819178107901F0030140EA0120A0818E
+:10DF0000A078E11CFFF7D4FD20612088401C208010
+:10DF1000E080002010BD0121018270472DE9FF4FF4
+:10DF200085B04FF6FF788246A3F8008048681F4608
+:10DF30000D4680788DF8060048680088ADF804002A
+:10DF400000208DF80A00088A0C88A04200D30446FD
+:10DF50002C8241E0288A401C2882701D6968FFF7E6
+:10DF60004FFDB8BB3988414501D1601E38806888B3
+:10DF7000A04236D3B178307901F0030140EA01299B
+:10DF800001A9701DFFF73CFD20BB298941452CD01C
+:10DF9000002231460798FFF74BFDD8B9298949453A
+:10DFA00018D1E9680391B5F80AC0D6F808B0504610
+:10DFB000CDF800C004F050FEDDF800C05A460CF168
+:10DFC000070C1FFA8CFC4B460399CDF800C004F0F7
+:10DFD00000FA50B1641CA4B2204600F00FF906000C
+:10DFE000B8D1641E2C820A20D0E67C807079B8718A
+:10DFF000F088B8803178F07801F0030140EA012020
+:10E000007881A7F80C90504604F0BAFC324607F12C
+:10E010000801FFF74DFD38610020B7E62DE9FF4FFD
+:10E0200087B081461C469246DDF860B0DDF854802A
+:10E03000089800F0E3F805000CD0484604F0A0FC76
+:10E040002978090608D57549897A814204D887203C
+:10E050000BB0D6E50120FBE7CAF309062A4601A961
+:10E06000FFF726FD0746149807281CD000222946F2
+:10E07000FFF7DEFC0028EBD12878400613D50120FD
+:10E080008DF808000898ADF80C00BDF80400ADF854
+:10E090000E00ADF81060ADF8124002A94846F9F73D
+:10E0A00040F80028D4D12978E87801F0030140EA4B
+:10E0B0000121AA78287902F0030240EA022056459D
+:10E0C00007D0B1F5007F04D9611E814201DD0B202C
+:10E0D000BEE7864201D90720BAE7801B85B2A54278
+:10E0E00000D92546BBF1000F01D0ABF800501798BE
+:10E0F00018B1B9192A4617F041FAB8F1000F0DD03E
+:10E100003E4448464446169F04F0B8FD2146FF1D94
+:10E11000BCB232462B46009404F0C5F9002097E7C4
+:10E120002DE9F04107461D461646084600F066F800
+:10E1300004000BD0384604F023FC2178090607D5EB
+:10E140003649897A814203D8872012E5012010E5FB
+:10E1500022463146FFF7ACFC65B12178E07801F04A
+:10E16000030140EA0120B0F5007F01D8012000E062
+:10E17000002028700020FCE42DE9F04107461D46F0
+:10E180001646084600F03AF804000BD0384604F072
+:10E19000F7FB2178090607D52049897A814203D8FF
+:10E1A0008720E6E40120E4E422463146FFF7AEFC96
+:10E1B000FF2D14D02178E07801F0030240EA02201C
+:10E1C00040F20122B0FBF2F302FB130015B900F29A
+:10E1D000012080B2E070000A60F30101217000208C
+:10E1E000C7E410B50C4600F009F828B1C1882180B9
+:10E1F0004079A070002010BD012010BD0749CA88D9
+:10E20000824209D340B1096800EB40006FF00B0275
+:10E2100002EB80000844704700207047F80500209A
+:10E2200010B508F0EFFAF4F741FB08F051F9BDE83A
+:10E23000104008F019BA302834BF01200020704780
+:10E24000202834BF4FF0A0420C4A012300F01F00E9
+:10E2500003FA00F0002914BFC2F80C05C2F8080543
+:10E260007047202834BF4FF0A041044900F01F0040
+:10E27000012202FA00F0C1F81805704700030050AF
+:10E2800070B50346002002466FF02F050EE09C5C3F
+:10E29000A4F130060A2E02D34FF0FF3070BD00EB20
+:10E2A000800005EB4000521C2044D2B28A42EED3DB
+:10E2B00070BD30B50A230BE0B0FBF3F403FB14048C
+:10E2C000B0FBF3F08D183034521E05F8014CD2B279
+:10E2D000002AF1D130BD30B500234FF6FF7510E0B4
+:10E2E000040A44EA002084B2C85C6040C0F303140E
+:10E2F000604005EA00344440E0B25B1C84EA401010
+:10E300009BB29342ECD330BD2DE9F041FA4B00268D
+:10E31000012793F860501C7893F864C0B8B183F873
+:10E320008D40A3F88E1083F88C2083F88A70BCF19E
+:10E33000000F0CBF83F8906083F89050EF4880681E
+:10E34000008804F089FCBDE8F04104F01FB94FF6E5
+:10E35000FF7083F88D40A3F88E0083F88C2083F83B
+:10E360008A70BCF1000F14BF83F8905083F890605E
+:10E37000BDE8F08170B5E14E0446306890F8981021
+:10E380000025012919D090F89210012924D090F885
+:10E39000681001292AD090F88A1001291CBF00209A
+:10E3A00070BD657017212170D0F88C106160B0F8D5
+:10E3B0009010218180F88A5016E065701C21217030
+:10E3C000D0F899106160D0F89D10A16090F8A1106C
+:10E3D000217380F8985007E0657007212170D0F80C
+:10E3E0009410616080F89250012070BD6570142116
+:10E3F000217000F16A012022201D17F0BFF80121D1
+:10E400002172306880F86850BB48B0F86C20A0F8E2
+:10E410009420B268537B80F8963080F89210108870
+:10E4200004F01AFC04F0C1F8DEE7B448006890F884
+:10E430006810002914BFB0F86C004FF6FF707047E9
+:10E4400070B5AE4C06462068002808BFFFDF0025E7
+:10E45000206845706660002808BFFFDF20684178AB
+:10E4600000291CBFFFDF70BDA42117F028F9206828
+:10E47000FF2101707F2180F836101321418428216B
+:10E4800080F86510012180F8581080F85D5008F080
+:10E4900082FEBDE8704008F048B8984909680978DC
+:10E4A00081420CBF0120002070479448006890F81A
+:10E4B0002200C0F3400070479048006890F82200A6
+:10E4C00000F0010070478D48006890F82200C0F30A
+:10E4D000001070472DE9F04388480024016891F846
+:10E4E0002400B1F822C0C0F38002C0F340031A44F4
+:10E4F00000F001000244CCF3001060B3BCF1130F34
+:10E5000021D00BDCBCF1100F02BF7D4830F81200A7
+:10E51000BDE8F083BCF1120F15D008E0BCF1150F77
+:10E5200009D0BCF11D0F04BF7648BDE8F083FFDFC2
+:10E530002046BDE8F0837449002031F8121012FB28
+:10E540000010BDE8F0837149002031F8121012FB71
+:10E550000010BDE8F08391F85A3091F85B002E2648
+:10E560004FF47A774FF014084FF04009022B04BFA4
+:10E570004AF2D745B5FBF7F510D0012B04BF4AF29C
+:10E580002F75B5FBF7F510D04AF62315B5FBF7F557
+:10E59000082B08BF4E4613D0042B18D02646082B54
+:10E5A0000ED0042B13D0022B49D004F12806042BE3
+:10E5B0000FD0082B1CBF4FF01908082304D00AE025
+:10E5C0004FF0140806F5A8764FF0400303E006F577
+:10E5D000A8764FF0100318FB036313FB0253C2EB42
+:10E5E00002124B4D02EB820205EB82021A441CF030
+:10E5F000010F4FF4C8734FF4BF7504BFCCF340064E
+:10E60000002E77D0CCF3400602F5A572EEB10828B3
+:10E6100004BF1E4640270CD0042804BF2E461027F6
+:10E6200007D0022807BF04F11806042704F12806C2
+:10E63000082707EB870808EB87173E441BE004F127
+:10E6400018064FF019080423C5E7082804BF1E4622
+:10E6500040270CD0042804BF2E46102707D00228DC
+:10E6600007BF04F11806042704F12806082707EB62
+:10E67000871706EB8706324402F19C0691F8652065
+:10E6800010F00C0F08BF00223244082804BF1E46B9
+:10E6900040270CD0042804BF2E46102707D002289C
+:10E6A00007BF04F11806042704F128060827C7EB62
+:10E6B000C70707EB470706EB4706324498321CF0C2
+:10E6C000010F27D0082808BF40200CD0042804BF21
+:10E6D0002B46102007D0022807BF04F1180304209E
+:10E6E00004F12803082000EB400101EB001018445E
+:10E6F00002444AE04DE000000406002060000020D3
+:10E70000285B02008E891300305B0200205B020050
+:10E71000D4FEFFFF082804BF9C4640260CD00428E6
+:10E7200004BFAC46102607D0022807BF04F1180C1E
+:10E73000042604F1280C082606EB8616898F0CEBBC
+:10E74000860C6244EB2920D944F2552C0B3101FB95
+:10E750000CF1890D082807D0042802D0022805D022
+:10E7600008E02B46102008E0402006E004F11803E2
+:10E77000042002E004F12803082000EB801003EBE2
+:10E78000800000F5A57001FB002202F26510BDE8D3
+:10E79000F08302F5A572082804BF9C4640260CD0E1
+:10E7A000042804BFAC46102607D0022807BF04F196
+:10E7B000180C042604F1280C082606EB8616B1F87E
+:10E7C00044100CEB860C6244EB29DED944F2552C44
+:10E7D0000B3101FB0CF1890D0828C5D00428C0D0ED
+:10E7E0000228C7D1C2E7FE4840F271210068806A62
+:10E7F00048437047FA48006890F83500002818BF71
+:10E800000120704710B5F74C207B022818BF032861
+:10E8100008D1207D04F115010DF0A1FC08281CBFD2
+:10E82000012010BD207B002816BF022800200120F7
+:10E83000BDE8104009F0C0B9EA4908737047E849DB
+:10E84000096881F8300070472DE9F047E44C2168F1
+:10E85000087B002816BF022800200120487301F120
+:10E860000E0109F093F92168087B022816BF0328DE
+:10E870000122002281F82F204FF0080081F82D009E
+:10E88000487B01F10E034FF001064FF0000701280D
+:10E8900004BF5B7913F0C00F0AD001F10E03012809
+:10E8A00004D1587900F0C000402801D0002000E0D9
+:10E8B000012081F82E00002A04BF91F8220010F0F8
+:10E8C000040F07D0087D01F115010DF048FC216807
+:10E8D00081F82D002068476006F0CEF92168C14D0F
+:10E8E0004FF00009886095F82D000DF054FC80462B
+:10E8F00095F82F00002818BFB8F1000F04D095F844
+:10E900002D000DF00FFA68B195F8300000281CBFFB
+:10E9100095F82E0000281DD0697B05F10E00012915
+:10E920000ED012E06E734A4605F10E01404609F022
+:10E9300082F995F82D1005F10E000DF023FD09E088
+:10E94000407900F0C000402831D0394605F10E0072
+:10E9500009F0A8F92068C77690F8220010F0040F9B
+:10E9600008BFBDE8F087002795F82D000DF08EFA5E
+:10E97000050008BFBDE8F08710210EF04CFA002812
+:10E9800018BFBDE8F08720683A4600F11C01C67642
+:10E99000284609F050F9206800F11C0160680EF06B
+:10E9A00093FE6068BDE8F04701210EF0A8BE0DF0AF
+:10E9B00026FD4A4605F10E0109F03DF9CAE7884AED
+:10E9C0001268137B0370D2F80E000860508A8880AA
+:10E9D000704778B583490446814D407B08732A68A7
+:10E9E000207810706088ADF8000080B200F001015E
+:10E9F000C0F3400341EA4301C0F3800341EA8301CD
+:10EA0000C0F3C00341EAC301C0F3001341EA03119C
+:10EA1000C0F3401341EA4311C0F3801041EA801073
+:10EA20005084E07D012808BF012607D0022808BFD6
+:10EA3000022603D0032814BFFFDF0826286880F8C9
+:10EA40005A60607E012808BF012607D0022808BF4F
+:10EA5000022603D0032814BFFFDF0826286880F8A9
+:10EA60005B60217B80F82410418C1D290CBF0021A4
+:10EA700061688162617D80F83510A17B002916BF35
+:10EA80000229002101210175D4F80F10C0F81510DA
+:10EA9000B4F81310A0F81910A17EB0F8662061F345
+:10EAA0000302A0F86620E17E012918BF002180F84A
+:10EAB0003410002078BD4A480068408CC0F3001133
+:10EAC00031B1C0F38000002804BF1F20704702E06E
+:10EAD000C0F3400109B10020704710F0010F14BFCE
+:10EAE000EE20FF2070473E480068408CC0F30011C4
+:10EAF00019B1C0F3800028B102E0C0F3400008B1B2
+:10EB000000207047012070473549002209680A66D5
+:10EB10004B8C1D2B0CBF81F8642081F8640070477A
+:10EB200000232F4A126882F859309164A2F84C00F1
+:10EB3000012082F859007047294A0023126882F8A0
+:10EB40005830A2F854000120116582F8580070472F
+:10EB50002349096881F85D0070472148006890F9F1
+:10EB60005D0070471E48006890F82200C0F3401016
+:10EB700070471B48006890F82200C0F3C00070473F
+:10EB8000012070471648006890F85B00704770B528
+:10EB900008F0EBFA08F0CAFA08F0A2F908F020FA37
+:10EBA0000F4C2068016E491C016690F83300002567
+:10EBB00030B108F0F0FA07F0B8FC206880F8335064
+:10EBC0002068457090F8371021B1BDE870400420EE
+:10EBD00009F0D7BC90F8641001B3006E814203E0E5
+:10EBE000600000200406002018D8042009F0C9FCA9
+:10EBF000206890F8220010F0010F07D0A06843228F
+:10EC00000188BDE870400120FFF77EBBBDE8704081
+:10EC100043224FF6FF710020FFF776BBBDE870403E
+:10EC2000002009F0AEBC2DE9F04782B00F468146C6
+:10EC3000FE4E4FF000083068458C15F0030F10D0E1
+:10EC400015F0010F05F0020005D0002808BF4FF0B5
+:10EC5000010806D004E0002818BF4FF0020800D1D8
+:10EC6000FFDF4FF0000A544615F0010F05F00200D7
+:10EC70000DD080B915F0040F0DD04AF00800002F18
+:10EC80001CBF40F0010040F0020440D08FE010B102
+:10EC900015F0040F0DD015F0070F10D015F0010F6F
+:10ECA00005F0020036D0002808BF15F0040F27D069
+:10ECB0003DE0002F18BF4AF0090478D134E02FB1AD
+:10ECC0004AF0080415F0200F14D070E0316805F008
+:10ECD0002002B1F84400104308BF4AF0010466D096
+:10ECE0004AF0180415F0200F61D191F85A10082944
+:10ECF00059D155E0316891F85A10082950D152E0A5
+:10ED00004AF00800002F18BF40F001044FD140F036
+:10ED100010044CE0002818BF15F0040F07D0002F96
+:10ED200018BF4AF00B0442D14AF018043FE015F036
+:10ED3000030F3BD115F0040F38D077B131684AF09A
+:10ED4000080091F85A1008290CBF40F0020420F086
+:10ED5000020415F0200F21D029E0316805F02002CF
+:10ED6000B1F84400104308BF4AF003041FD04AF032
+:10ED7000180015F0200F08D091F85A10082914BF78
+:10ED800040F0020420F0020411E091F85A20082A11
+:10ED900014BF40F0010020F00100EDE7082902D087
+:10EDA00024F0010403E044F0010400E0FFDF15F06B
+:10EDB000400F1BD0C7B93168B1F84400002804BF28
+:10EDC000488C10F0010F0BD110F0020F08BF10F0AB
+:10EDD000200F05D115F0010F08BF15F0020F03D069
+:10EDE00091F85A00082801D044F040047068A0F857
+:10EDF00000A0017821F02001017007210EF030FC05
+:10EE0000414670680EF023FE214670680EF02BFE1E
+:10EE100014F0010F0AD006230022854970680EF015
+:10EE2000FCFD3068417B70680EF05CFC14F0020F52
+:10EE300018D0D6E90010B9F1000F4FF006034FF0DB
+:10EE4000010207D01C310EF0E8FD012170680EF0C0
+:10EE500056FC07E015310EF0E0FD3068017D70686A
+:10EE60000EF04DFC14F0040F18BFFFDF14F0080F74
+:10EE700017D0CDF800A03068BDF800100223B0F81C
+:10EE80006600020962F30B01ADF800109DF8011055
+:10EE9000032260F307118DF80110694670680EF0C7
+:10EEA000BCFD012F61D13068B0F84410E9B390F88F
+:10EEB0002200C0F34000C0BB70680EF0C4FD401CCF
+:10EEC000C7B23068B0F84420B0F85610551AC7F1F0
+:10EED000FF018D42A8BF0D46AA423AD990F8220000
+:10EEE00010F0010F35D144F01004214670680EF087
+:10EEF000BAFDF81CC0B2ED1E284482B23068B0F8EA
+:10EF00006610036E090951FA83F190F85C30494F9D
+:10EF10001944BC460023E1FB07C31B096FF0240C16
+:10EF200003FB0C1180F85C1000E01EE090F85B0021
+:10EF3000012101F037F80090BDF800009DF80210A3
+:10EF4000032340EA01400190042201A970680EF0F9
+:10EF500064FD3068AAB2016C70680EF0B2FD3068D2
+:10EF6000B0F856102944A0F8561014F0400F06D0FF
+:10EF7000D6E90010012306225D310EF04EFD14F09B
+:10EF8000200F18BFFFDF0020002818BFFFDF02B0EE
+:10EF9000BDE8F0872DE9F843244C2068002808BF1D
+:10EFA000FFDF2068417839BB0178FF2924D0002693
+:10EFB00080F83160A0F85660867080F8376030467F
+:10EFC00008F022F807F0E2FC206890F95D0007F0F5
+:10EFD00082FD194807F085FD184807F0FBFF6068BF
+:10EFE00008F015F8206890F8240010F0010F06D002
+:10EFF000252007F07EFD09E00C20BDE8F88310F025
+:10F00000020F18BF262075D007F073FD206890F816
+:10F010005A10252007F078FC206880F82C6007F053
+:10F02000EDFF206890F85A10002009E060000020F1
+:10F030001206002053E4B36E1C5B0200195B020051
+:10F0400007F04BFE0F21052007F019FD206890F80E
+:10F050002E10002901BF90F82F10002990F82200EF
+:10F0600010F0040F75D005F007FE0546206829460C
+:10F07000806806F01AFBDFF83084074690FBF8F052
+:10F0800008FB10704142284605F0F7FA21688860B5
+:10F0900097FBF8F04A68104448600DF05DF80146AF
+:10F0A0002068426891426FD8C0E90165FF4D4FF07A
+:10F0B000010895F82D000DF06EF8814695F82F00A7
+:10F0C0000127002818BFB9F1000F04D095F82D00D2
+:10F0D0000CF028FEA8B195F8300000281CBF95F868
+:10F0E0002E00002825D0697B05F10E00012916D0DD
+:10F0F0001AE0FFE710F0040F14BF2720FFDF83D1D1
+:10F1000084E73A466F7305F10E01484608F093FD17
+:10F1100095F82D1005F10E000DF034F909E0407955
+:10F1200000F0C000402815D0414605F10E0008F05F
+:10F13000B9FD206890F8220010F0040F24D095F853
+:10F140002D000CF0A3FE05001ED010210DF063FE73
+:10F1500040B119E00DF053F93A4605F10E0108F0FF
+:10F160006AFDE6E720683A4600F11C01C7762846AA
+:10F1700008F061FD206800F11C0160680EF0A4FA3F
+:10F18000012160680EF0BBFA2068417B0E3007F069
+:10F190005AFC206890F8581059B3B0F85410A0F8F1
+:10F1A0004410016D016490F82210C1F30011E9B917
+:10F1B000B0F8660002210509ADF80050684606F077
+:10F1C0003DFE28B1BDF80000C0F30B00A84204D1F9
+:10F1D000BDF80000401CADF800002168BDF800003B
+:10F1E000B1F8662060F30F12A1F86620206880F85D
+:10F1F0005860206890F8591031B1B0F84C108187F0
+:10F20000816C816380F85960B0F86610026E09095C
+:10F2100051FA82F190F85C20DFF894C21144634601
+:10F220000022E1FB0C3212096FF0240302FB0311F0
+:10F2300080F85C100DF013F8032160680DF092F86F
+:10F24000216881F833000020BDE8F883994988607F
+:10F2500070472DE9F043974C83B0226892F8313023
+:10F260003BB1508C1D2808BFFFDF03B0BDE8F04361
+:10F270008DE401260027F1B1054692F85C0007F005
+:10F2800038FC206890F85B10FF2007F03DFB2068F9
+:10F290004FF4A57190F85B20002007F0E4FD206892
+:10F2A00090F8221011F0030F00F02E81002D00F0D5
+:10F2B000258100F029B992F822108046D07EC1F352
+:10F2C0000011002956D0054660680780017821F0BA
+:10F2D00020010170518C132937D01FDC102908BF81
+:10F2E000022144D0122908BF062140D0FFDF6F4D14
+:10F2F000606805F10E010EF0D9F9697B60680EF0C7
+:10F30000F1F92068418C1D2918BF152965D0B0F886
+:10F310004420016C60680EF0FEF95EE0152918BF0C
+:10F320001D29E3D14FF001010EF09AF960680178D0
+:10F3300041F020010170216885B11C310EF0C4F943
+:10F34000012160680EF0DBF9D1E700210EF088F9A9
+:10F350006068017841F020010170C8E715310EF0B6
+:10F36000B3F92068017D60680EF0C9F9BFE70EF0BF
+:10F3700077F9BCE70021FFF756FC6068C17811F00F
+:10F380003F0F2AD0017911F0100F26D00EF066F948
+:10F390002368024693F82410C1F38000C1F3400CA7
+:10F3A000604401F0010100EB010C93F82C10C1F353
+:10F3B0008000C1F34005284401F001010844ACEB92
+:10F3C0000000C1B293F85A0000F0ECFD0090032356
+:10F3D0000422694660680EF020FB2068002590F842
+:10F3E000241090F82C0021EA000212F0010F18BF3F
+:10F3F00001250ED111F0020F04D010F0020F08BF4A
+:10F40000022506D011F0040F03D010F0040F08BF3E
+:10F410000425B8F1000F2BD0012D1BD0022D08BF01
+:10F4200026201BD0042D14BFFFDF272016D0206814
+:10F4300090F85A10252007F067FA206890F82210FB
+:10F44000C1F3001169B101224FF49671002007F059
+:10F450000AFD0DE0252007F04CFBE8E707F049FB2B
+:10F46000E5E790F85A204FF49671002007F0FBFC76
+:10F47000206890F82C10294380F82C1090F8242054
+:10F4800032EA01011DD04670418C13292CD027DCB3
+:10F49000102904BF03B0BDE8F083122924D000BFB7
+:10F4A000C1F30010002807E040420F0004060020CE
+:10F4B00053E4B36E6000002018BFFFDF03B0BDE867
+:10F4C000F083418C1D2908BF80F82C70DBD0C1F37C
+:10F4D0000011002914BF80F8316080F83170D2E744
+:10F4E000152918BF1D29DBD190F85A2003B04FF021
+:10F4F0000101BDE8F043084607F092BE90F85B209A
+:10F500000121084607F08CFE2168002DC87E7CD0C2
+:10F510004A8C3D46C2F34000002808BF47F008056A
+:10F5200012F0400F18BF45F04005002819BFD1F870
+:10F530003890B1F83C80D1F84090B1F844806068D0
+:10F54000072107800EF08CF8002160680EF07FFA2A
+:10F55000294660680EF087FA15F0080F15D020686C
+:10F56000BDF800100223B0F86600020962F30B0137
+:10F57000ADF800109DF80110032260F307118DF81B
+:10F580000110694660680EF048FA60680EF024F9D0
+:10F590002168C0F1FE00B1F85620A8EB02018142BB
+:10F5A000A8BF0146CFB2D019404542D245F0100164
+:10F5B00060680EF058FA60680EF00EF92168C0F12C
+:10F5C000FE00B1F85610A8EB01018142A8BF014628
+:10F5D000CFB260680EF037FA3844421C2068B0F8A9
+:10F5E0006610036E090951FA83F190F85C30FF4D03
+:10F5F0001944AC460023E1FB05C31B096FF0240C42
+:10F6000003FB0C1180F85C1000E038E090F85B0020
+:10F61000012100F0C7FC0090BDF800009DF8021029
+:10F62000032340EA01400190042201A960680EF022
+:10F63000F4F9216891F8220010F0400F05D0012361
+:10F6400006225D3160680EF0E8F920683A46B0F8AD
+:10F65000560000EB090160680EF033FA2068B0F83C
+:10F6600056103944A0F8561008F0C1F9002818BF08
+:10F67000FFDF20684670867003B0BDE8F08301218B
+:10F68000FFF7D1FAF0E7DA4810B50068417841B9E0
+:10F690000078FF2805D000210846FFF7DAFD00209A
+:10F6A00010BD07F062FD07F041FD07F019FC07F0FF
+:10F6B00097FC0C2010BD10B5CD4C206890F82200AE
+:10F6C00010F0010F1CBFA06801884FF03C0212BF70
+:10F6D00001204FF6FF710020FEF716FE2168012081
+:10F6E00081F8370010BDC249096881F832007047BF
+:10F6F0002DE9F041002508F010FF002800F00581F9
+:10F70000BB4C2068417801270026012906D0022938
+:10F7100001D003297ED0FFDFBDE8F0818178022689
+:10F720000029418C46D0C1F34002002A08BF11F0E5
+:10F73000010F70D090F85B204FF001014FF00000F6
+:10F7400007F06EFD216891F82200C0F34000002808
+:10F7500014BF0C20222091F85B1007F0D5F8206828
+:10F76000467090F8330058B106F0CBFE206890F850
+:10F770005B0010F00C0F0CBF4020452007F001FD8E
+:10F78000206890F83400002818BF07F019FD2168A0
+:10F7900091F85B0091F8651010F00C0F08BF002184
+:10F7A000962007F055FC08F019F9002818BFFFDF74
+:10F7B000BDE8F081C1F3001282B110293FD090F86A
+:10F7C000330020B106F09DFE402007F0DAFC2068EF
+:10F7D00090F8221011F0040F36D043E090F8242066
+:10F7E00090F82C309A422AD1B0F84400002808BF83
+:10F7F00011F0010F05D111F0020F08BF11F0200F19
+:10F800007ED04FF001014FF00000FFF722FD20688D
+:10F81000418C01E040E034E011F0010F04BFC1F37E
+:10F820004001002907D1B0F85610B0F844209142A9
+:10F8300018BFBDE8F08180F83170BDE8F081BDE807
+:10F84000F0410021012004E590F83510012914BF92
+:10F850000329102545F00E0190F85A204FF00000C2
+:10F8600007F0DEFC206890F83400002818BF07F08D
+:10F87000A7FC0021962007F0EBFB20684670BDE84E
+:10F88000F081B0F85610B0F8440081423DD0BDE898
+:10F89000F04101210846DCE48178D9B1418C11F0B6
+:10F8A000010F1CD080F8687090F86A20B0F86C10D6
+:10F8B0000120FEF729FD2068467007F056FC07F08E
+:10F8C00035FC07F00DFB07F08BFBBDE8F041032092
+:10F8D00008F057BE8178BDE8F0410120B9E411F08D
+:10F8E000020F04BFFFDFBDE8F081B0F85610808F33
+:10F8F00081420AD001210846FFF7ABFC032000E05B
+:10F9000003E021684870BDE8F081BDE8F041FFF7F1
+:10F910003EB9FFF73CB910B5354C206890F834106B
+:10F9200049B1363007F05BFC18B921687F2081F8B7
+:10F93000360007F03BFC206890F8330018B107F060
+:10F940002AFC06F0F2FD08F0E8FDA8B1206890F866
+:10F950002210C1F3001179B14078022818BFFFDFEF
+:10F9600000210120FFF775FC2068417800291EBFA7
+:10F9700040780128FFDF10BDBDE81040FFF707B950
+:10F980002DE9F0471A4C0F4680462168B8F1030F65
+:10F99000488C08BFC0F3400508D000F0010591F87D
+:10F9A0003200002818BF4FF0010901D14FF00009C3
+:10F9B00007F093F80646B8F1030F0CBF4FF00208AA
+:10F9C0004FF0010835EA090008BFBDE8F08720685C
+:10F9D00090F8330090B10CF025FC38700146FF28F8
+:10F9E0000CD06068C01C0CF0F6FB03E053E4B36E6F
+:10F9F0006000002038780CF022FC06436068017833
+:10FA0000C1F3801221680B7D9A4208D10622C01CE6
+:10FA1000153115F087FD002808BF012000D0002017
+:10FA20003978FF2906D0C8B9206890F82D0088429F
+:10FA300016D113E0A0B1616811F8030BC0F3801078
+:10FA40000CF08DFB05460CF0EDFC38B128460CF0AF
+:10FA50001DFA18B110210DF0DEF908B1012000E007
+:10FA60000020216891F8221011F0040F01D0F0B1AC
+:10FA70001AE0CEB9FE4890F83500002818BF40457E
+:10FA800015D1616811F8030BC0F380100CF067FB0F
+:10FA900004460CF0C7FC38B120460CF0F7F918B159
+:10FAA00010210DF0B8F910B10120BDE8F087002059
+:10FAB000BDE8F0872DE9F04FEE4D074683B028688A
+:10FAC00000264078022818BFFFDF28684FF07F0922
+:10FAD00090F8341049B1363007F081FB002804BF9C
+:10FAE000286880F8369007F061FB68680DF0DAFD51
+:10FAF0000446002F00F0048268680DF05EFF0028C5
+:10FB000000F0FE8106F0B7FF002800F0F981FF2029
+:10FB1000DFF864B3DFF8588300274FF0010A062CA2
+:10FB200080F00082DFE804F0EFEFEF03EFF78DF8ED
+:10FB3000000069460320FFF723FF002800F0E4805F
+:10FB4000296891F8340010B191F89800D0B1286874
+:10FB5000817801294CD06868042107800DF080FD70
+:10FB600008F10E0168680DF0A1FD98F80D106868A5
+:10FB70000DF0B8FD2868828F816B68680DF0EFFD8D
+:10FB800000F04DB99DF8000081F898A00A7881F83E
+:10FB90009920FF280FD001F19B029A310CF004FB51
+:10FBA000002808BFFFDF286890F89A1041F0020192
+:10FBB00080F89A100DE068680278C2F3801281F82C
+:10FBC0009A20D0F80320C1F89B20B0F80700A1F8D4
+:10FBD0009F00286800F1A10490F836007F2808BF34
+:10FBE000FFDF286890F83610217080F83690AEE775
+:10FBF00090F822009BF80490C0F38014686864F3C6
+:10FC00008619072107800DF02BFD002168680DF093
+:10FC10001EFF494668680DF026FF0623002208F102
+:10FC20000E0168680DF0F9FE2868417B68680DF0E8
+:10FC300059FD68680DF0D0FD29688A8FC0F1FE017A
+:10FC40008A42B8BF1146CFB2BA423DD9F81EC7B2F8
+:10FC500049F0100A514668680DF005FF68680DF01C
+:10FC6000F2FE3844431C2868B0F86610026E090999
+:10FC700051FA82F190F85C20DFF800920A44C846FD
+:10FC80004FF0000CE2FB098C4FEA1C116FF0240CC2
+:10FC900001FB0C2180F85C1090F85B001A460121F2
+:10FCA00000F080F90190BDF804009DF806100323D0
+:10FCB00040EA01400290042202A968680DF0ADFEFE
+:10FCC000514668680DF0CFFE34B1D5E9001001232C
+:10FCD00006225D310DF0A1FE28683A46816B686806
+:10FCE0000DF0EFFE2868A0F85670818F8F420CBF90
+:10FCF0000121002180F8311007F079FE002818BF9B
+:10FD0000FFDF8CE007E00DE128688078002840F0F4
+:10FD1000F98000F0F5B88DF8000068680178C1F34B
+:10FD20008019D0F803100191B0F80700ADF8080071
+:10FD300069460520FFF724FE0028286873D08178E3
+:10FD4000002972D090F85BA0D5E90104D0F80F101B
+:10FD5000C4F80E10B0F813106182417D2175817DC9
+:10FD60006175B0F81710E182B0F819106180B0F831
+:10FD70001B10A180B0F81D10E18000F11F0104F1FB
+:10FD8000080015F0B0FD686890F8241001F01F011C
+:10FD9000217690F82400400984F8740184F854A076
+:10FDA00084F855A0286890F8651084F8561090F8EB
+:10FDB0005D0084F857009DF80010A86800F05BF91A
+:10FDC000022008F0DEFB6868DBF800400DF1040A51
+:10FDD000078008210DF044FC002168680DF037FE13
+:10FDE000214668680DF03FFE0623002208F10E014F
+:10FDF00068680DF012FE2868417B68680DF072FC9F
+:10FE0000494668680DF07BFC06230122514668686C
+:10FE10000DF003FE07F0EBFD002818BFFFDF032005
+:10FE20002968487070E066E0FFE76868AC684FF0EA
+:10FE300001080278617BC2F3401211406173D0F86F
+:10FE40000F10C4F80E10B0F813106182417D2175B7
+:10FE5000817D6175B0F81710E182B0F819106180EA
+:10FE6000B0F81B10A180B0F81D10E18008E0000080
+:10FE70000406002060000020145B020053E4B36E0F
+:10FE800000F11F0104F1080015F02DFD686890F8DD
+:10FE9000241001F01F01217690F82400400984F815
+:10FEA000740184F8548084F85580286890F86510AF
+:10FEB00084F8561090F85D0084F857009DF8001003
+:10FEC000A86800F0D8F8286880F868A090F86A2040
+:10FED000B0F86C100120FEF717FA2868477007F099
+:10FEE00044F907F023F906F0FBFF07F079F8012049
+:10FEF00008F047FB08E090F82200C0F3001008B1BA
+:10FF0000012601E0FEF743FE286890F8330018B19F
+:10FF100007F041F906F009FB66B100210120FFF767
+:10FF200098F910E0286890F82200C0F3001000282B
+:10FF3000E8D0E5E728688178012904D190F85B10C2
+:10FF4000FF2006F0E1FC28684178002919BF4178BC
+:10FF5000012903B0BDE8F08F4078032818BFFFDF08
+:10FF600003B0BDE8F08F70B57E4C06460D462068A4
+:10FF7000807858B106F07EFC21680346304691F83F
+:10FF80005B202946BDE8704009F0C6B806F072FC57
+:10FF900021680346304691F85A202946BDE8704052
+:10FFA00009F0BAB878B50C4600210091082804BFC2
+:10FFB0004FF4C87040210DD0042804BF4FF4BF7027
+:10FFC000102107D0022807BF01F11800042101F118
+:10FFD00028000821521D02FB010562489DF800100F
+:10FFE000006890F85C2062F3050141F040068DF84E
+:10FFF000006090F85B00012828D002282DD0082846
+:020000040001F9
+:1000000018BFFFDF2FD000BF26F080008DF8000062
+:10001000C4EB041000EB80001E2101EB800005FB07
+:1000200004045148844228BFFFDF5048A0FB04105D
+:10003000BDF80110000960F30C01ADF80110BDF826
+:1000400000009DF8021040EA014078BD9DF80200D2
+:1000500020F0E0008DF80200D6E79DF8020020F0C5
+:10006000E000203004E09DF8020020F0E000403085
+:100070008DF80200C8E72DE9F0413A4D04460E46DE
+:10008000286890F86800002818BFFFDF002728685C
+:1000900080F86A702188A0F86C106188A0F882103E
+:1000A000A188A0F88410E188A0F8861094F8741153
+:1000B00080F8881090F82F1049B1427B00F10E01B2
+:1000C000012A04D1497901F0C001402934D090F8C7
+:1000D000301041B1427B00F10E01012A04BF497981
+:1000E00011F0C00F28D000F1760015F0F3FB68681E
+:1000F000FF2E0178C1F380116176D0F80310C4F8A7
+:100100001A10B0F80700E08328681DD0C167E18BA2
+:10011000A0F8801000F17002511E30460CF044F837
+:10012000002808BFFFDF286890F86F1041F0020137
+:1001300080F86F10BDE8F081D0F80E10C0F876108E
+:10014000418AA0F87A10D2E7C767A0F88070617E74
+:1001500080F86F10D4F81A100167E18BA0F87410C2
+:10016000BDE8F08160000020C4BF03008988888852
+:100170000178406829B190F8141190F8730038B9EB
+:1001800001E001F0CDBD19B1042901D00120704773
+:100190000020704770B50C460546062102F02AFC87
+:1001A000606008B1002006E00721284602F022FC2A
+:1001B000606018B101202070002070BD022070BD69
+:1001C0002DE9FC470C4606466946FFF7E3FF002889
+:1001D0007DD19DF8000050B1FEF727F9B0427CD0E8
+:1001E000214630460AF088F9002873D12DE00DF041
+:1001F000E7FEB04271D02146304613F027FB0028BD
+:1002000068D1019D95F8D80022E0012000E000208F
+:10021000804695F837004FF0010A4FF00009F0B121
+:1002200095F8380080071AD584F8019084F800A06A
+:1002300084F80490E68095F839102172698F618105
+:10024000A98FA18185F8379044E0019D95F81401AC
+:1002500058350028DBD1E87E0028D8D0D5E73046D5
+:1002600002F00CFD070000D1FFDF384601F01CFF53
+:1002700040B184F801900F212170E680208184F83C
+:1002800004A027E0304602F0E7FC070000D1FFDFC2
+:10029000B8F1000F21D0384601F05DFFB8B19DF8EC
+:1002A000000038B90198D0F800014188B14201D16D
+:1002B00080F80090304607F0E8FB84F801900C21AC
+:1002C000217084F80490E680297F217200E004E028
+:1002D00085F81B900120BDE8FC870020FBE71CB5DA
+:1002E0006946FFF757FF00B1FFDF684601F024FDC4
+:1002F000FB4900208968A1F8DA001CBD2DE9FC410A
+:1003000004460E46062002F01DFB0546072002F0BB
+:1003100019FB2844C7B20025A8463E4417E02088B0
+:10032000401C80B22080B04202D34046A4F8008036
+:1003300080B2B84204D3B04202D20020BDE8FC81B2
+:100340006946FFF727FF0028F8D06D1CEDB2AE42DA
+:10035000E5D84FF6FF7020801220EFE738B54FF652
+:10036000FF70ADF800000DE00621BDF8000002F0BE
+:1003700053FB04460721BDF8000002F04DFB0CB111
+:1003800000B1FFDF00216846FFF7B8FF0028EBD07F
+:1003900038BD70B507F0E6FB0BF0CDFCD14C4FF645
+:1003A000FF7600256683A683CFA0257001680079BB
+:1003B000A4F14002657042F8421FA11C1071601C3C
+:1003C00013F065FB25721B2060814FF4A471A1819D
+:1003D000E08121820321A1740422E274A082E082E0
+:1003E000A4F13E00218305704680BD480C300570A5
+:1003F000A4F110000570468070BD70B5B84C16466B
+:100400000D466060217007F027FBFFF7A7FFFFF79D
+:10041000C0FF207810F0CDFFB5480EF07CFA2178AF
+:10042000606813F0D9FA20780AF0D4FE284608F064
+:1004300010FCAF48FEF704F8217860680AF042F932
+:100440003146207813F0DAFDBDE870400BF073BC44
+:1004500010B501240AB1002010BD21B1012903D03B
+:100460000024204610BD02210DF068FBF9E72DE9BC
+:10047000F047040000D1FFDF9A4802211C3081467A
+:10048000FFF73CFF00B1FFDF964D0620B5F81C805A
+:1004900002F058FA0646072002F054FA3044C6B279
+:1004A000701CC7B2A88BB04228D120460DF0FEFCCC
+:1004B000B0B1207818283FD1207901283CD1E088BC
+:1004C000062102F097FA040000D1FFDF208807F030
+:1004D000DCFA2088062102F09FFA40B3FFDF2BE010
+:1004E000287860B300266670142020702021201D1B
+:1004F00015F0E5F8022020712E701DE0B84217D1EA
+:100500002046FDF737FFD0B12078172814D1207985
+:1005100068B1E088072102F06DFA40B1008807F069
+:10052000B4FAE088072102F077FA00B1FFDF03E0B8
+:100530002146FFF745FE10B10120BDE8F0870221FA
+:100540004846FFF7DBFE10B9A98B4145AAD12046EA
+:10055000BDE8F04713F098BD10B501F089FB08B174
+:100560000C2010BD0BF03AFC002010BD10B5044665
+:10057000007818B1012801D0122010BD01F089FBCC
+:1005800020B10BF0DBFD08B10C2010BD207801F08C
+:1005900036FBE21D04F11703611CBDE810400BF0AF
+:1005A000C2BC10B5044601F063FB08B10C2010BDBD
+:1005B000207828B1012803D0FF280BD0122010BDCD
+:1005C00001F01DFB611C0BF0C9FB08B1002010BD40
+:1005D000072010BD01200BF0FBFBF7E710B50BF077
+:1005E000B0FD08B1002010BD302010BD10B504468C
+:1005F00001F04FFB08B10C2010BD20460BF09BFD15
+:10060000002010BD10B501F044FB20B10BF096FDA9
+:1006100008B10C2010BD0BF0EBFC002010BDFF2139
+:1006200081704FF6FF7181802D4949680A78827187
+:100630008A880281498841810121417000207047E8
+:100640007CB50025022A19D015DC12F10C0F15D04B
+:1006500009DC12F1280F11D012F1140F0ED012F193
+:10066000100F11D10AE012F1080F07D012F1040F98
+:1006700004D04AB902E0D31E052B05D8012806D0C4
+:10068000022808D003280AD0122528467CBD10462F
+:10069000FEF75EFAF9E710460EF0E8F8F5E70846CF
+:1006A00014466946FFF776FD08B10225EDE79DF88F
+:1006B00000000198002580F85740E6E710B5134682
+:1006C00001220CF0E5FB002010BD10B5044611F02E
+:1006D00070FC05280ED0204610F05AFE002010BDF8
+:1006E0006C000020E8070020FFFFFFFF1F00000054
+:1006F000A80600200C20F2E710B5044601F0C9FA64
+:1007000008B10C20EBE72146002007F02CFA00206E
+:10071000E5E710B5044610F0C9FE50B108F02AFD17
+:1007200038B1207808F0BBFA20780EF0DBFB00200F
+:10073000D5E70C20D3E710B5044601F0AAFA08B1BA
+:100740000C20CCE72146012007F00DFA0020C6E777
+:1007500038B504464FF6FF70ADF80000A079E17996
+:10076000884216D02079FDF766FD90B16079FDF7DB
+:1007700062FD70B10022A079114614F0B3F840B9BF
+:100780000022E079114614F0ADF810B9207A07285C
+:1007900001D9122038BD08F0FAFC60B911F009FC4B
+:1007A00048B900216846FFF7A9FD20B1204606F0B0
+:1007B00086F8002038BD0C2038BD2DE9FC41817839
+:1007C00005461A2925D00EDC16292DD2DFE801F0C6
+:1007D0002C2C2C2C2C212C2C2C2C2C2C2C2C2C2C64
+:1007E0002C2C2C2121212A291ED00BDCA1F11E0149
+:1007F0000C2919D2DFE801F0181818181818181861
+:100800001818180D3A3904290ED2DFE801F00D024C
+:100810000D022888B0F5706F06D201276946FFF7F0
+:10082000B9FC18B1022089E5122087E59DF8000087
+:1008300001F0ECF9019C08B1FC3401E004F5BC7452
+:100840009DF8000001F0E2F9019E08B1FD3601E0DB
+:1008500006F279166846FFF78BFC08B1207808B1DC
+:100860000C206BE52770A8783070684601F064FAB8
+:10087000002063E57CB50D466946FFF78BFC00263A
+:1008800018B12E602E7102207CBD9DF8000001F091
+:10089000BDF9019C9DF80000583401F0B7F90198AA
+:1008A00084F8406081682960017B297194F84010C8
+:1008B0000029F5D100207CBD70B5044691F85500A3
+:1008C00091F856300D4610F00C0F00D1002321890D
+:1008D000A0880CF0A1FC696A81421DD2401A401C1C
+:1008E000A1884008091A8AB2A2802189081A2081A9
+:1008F000668895F8541010460CF035FC864200D2FC
+:1009000030466080E68895F8551020890CF02BFC65
+:10091000864200D23046E08070BDF0B585B00D460D
+:10092000064603A9FFF736FC00282DD19DF80C00E0
+:1009300060B300220499FB20B1F84A30FB2B00D3AE
+:100940000346B1F84C40FB20FB2C00D30446DFF8F3
+:100950003CCC9CE8811000900197CDF808C0ADF820
+:100960000230ADF806406846FFF7A6FF6E80BDF87E
+:100970000400E880BDF808006881BDF80200A88086
+:10098000BDF806002881002005B0F0BD0122D1E7A6
+:100990002DE9F04186B0044600886946FFF7FAFB6E
+:1009A000002876D12189E08801F0D5F9002870D19E
+:1009B000A188608801F0CFF900286AD12189E088F8
+:1009C00001F0D7F9002864D1A188608801F0D1F93D
+:1009D00007005ED1208802A9FFF79FFF00B1FFDF6B
+:1009E000BDF8101062880920914252D3BDF80C1056
+:1009F000E28891424DD3BDF81210BDF80E20238934
+:100A00001144A2881A44914243D39DF80010019DDD
+:100A10004FF00008012640F6480041B185F8A36177
+:100A2000019991F8E61105F5D17541B91AE085F8FB
+:100A30000D61019991F8301105F5867509B13A27D4
+:100A400024E0E18869806188E9802189814200D3BE
+:100A50000146A980A188814200D20846288101224E
+:100A600001990FE0E18869806188E98021898142EC
+:100A700000D30146A980A188814200D2084628817E
+:100A8000019900222846FFF717FF2E7085F8018094
+:100A9000384606B0BDE8F0817AE710B5044601F0AB
+:100AA000F8F820B10BF04AFB08B10C2017E62078CB
+:100AB00001F0A5F8E279611C0BF0C1FC08B100203F
+:100AC0000DE602200BE610B503780446002B4068C3
+:100AD00013460A46014609D05FF001000CF0A5FB61
+:100AE0006168496A884203D90120F8E50020F5E7EA
+:100AF0000020F4E52DE9F04117468A781E4680462D
+:100B000042B11546C87838B10446690706D52AB1FE
+:100B1000012104E00725F5E70724F6E70021620735
+:100B200002D508B1012000E00020014206D00122D8
+:100B300011464046FFF7C7FF98B93BE051B100228C
+:100B400001214046FFF7BFFF58B9600732D50122A7
+:100B500011461FE058B1012200214046FFF7B3FFC4
+:100B600008B1092096E7680724D5012206E0680746
+:100B70004FEA44700AD5002813DB002201214046C9
+:100B8000FFF7A1FFB0B125F0040513E0002811DA4A
+:100B9000012200214046FFF796FF58B124F00404DB
+:100BA00008E0012211464046FFF78DFF10B125F005
+:100BB0000405F3E73D70347000206BE710B586B094
+:100BC0000446008803A9FFF7E5FA002806D1A088AB
+:100BD00030B1012804D0022802D0122006B07EE5F0
+:100BE0006B4602AA214603A8FFF784FF0028F5D12F
+:100BF0009DF80C3000220121002B049B06D083F8C5
+:100C0000AD11049B93F8FA316BBB24E083F8171104
+:100C1000049B93F83C313BB9049B93F816311BB904
+:100C2000049B93F87D300BB13A2010E0049B83F8CD
+:100C30001611049B9DF8081083F81811049B9DF869
+:100C4000001083F81911049BA188A3F81A110499C4
+:100C500081F81721C2E7049B93F8AC311BB9049BC0
+:100C600093F87D300BB13A2010E0049B83F8AC116F
+:100C7000049B9DF8081083F8AE11049B9DF80010AA
+:100C800083F8AF11049BA188A3F8B011049981F8EF
+:100C9000AD21A3E710B504460020A17801B90120D9
+:100CA000E2780AB940F0020001F06CF8002803D1A4
+:100CB0002046BDE8104081E711E570B51C460D46A1
+:100CC00018B1012801D0122070BD1946104601F05C
+:100CD00069F830B12146284601F06EF808B10020CD
+:100CE00070BD302070BD70B5044600780E460128F6
+:100CF00004D018B1022801D0032841D1607828B16E
+:100D0000012803D0022801D0032839D1E07B10B993
+:100D1000A078012834D1A07830F0050130D110F04E
+:100D2000050F2DD06289E188E0783346FFF7C5FFD3
+:100D3000002826D1A07805281ED16589A28921899D
+:100D400020793346FFF7B9FF00281AD15FF0010080
+:100D500004EB40014A8915442218D37892789342D3
+:100D60000ED1CA8889888A420AD1401CC0B20228A2
+:100D7000EED3E088A84203D3A07B08B1072801D9AD
+:100D8000122070BD002070BD10B586B0044600F082
+:100D900062FF08B10C2021E7022104F10A0001F0F2
+:100DA0001EF8A0788DF80800A0788DF80000607813
+:100DB0008DF8040020788DF80300A07B8DF80500E5
+:100DC000E07B00B101208DF80600A078C10717D0A4
+:100DD000E07800F0FBFF8DF80100E088ADF80A0034
+:100DE0006089ADF80C00A078400716D5207900F096
+:100DF000EDFF8DF802002089ADF80E00A0890AE011
+:100E000040070AD5E07800F0E1FF8DF80200E088A5
+:100E1000ADF80E006089ADF8100002A810F052FB8A
+:100E20000028B8D168460EF062F8D7E610B504463F
+:100E30000121FFF758FF002803D12046BDE81040EC
+:100E4000A2E74CE40278012A01D0BAB118E0427856
+:100E50003AB1012A05D0022A12D189B1818879B12B
+:100E600000E059B1418849B1808838B101EB810176
+:100E7000490000EB8000B1EB002F01D20020704749
+:100E80001220704770B5044600780D46012809D03D
+:100E900011F08FF8052803D010F025FA002800D0B3
+:100EA0000C2070BD0DF0F0FE88B10DF002FF0DF0CA
+:100EB000FBFF0028F5D125B160780DF08CFF0028EC
+:100EC000EFD1A1886088BDE8704010F021BB1220EE
+:100ED00070BD10B504460121FFF7B4FF002804D10E
+:100EE0002046BDE810400121CCE704E42DE9F0479D
+:100EF0000746B0F84C50FB2092460E46FB2D00D31F
+:100F00000546DFF88C86B8F80A00A84200D20546EC
+:100F100097F85510284600F08DFEB8F80C10814265
+:100F200000D208468146B7F84A40FB20FB2C00D38C
+:100F30000446B8F80E00A04200D2044697F85410B8
+:100F4000204600F077FEB8F81010814200D2084623
+:100F50004FF4A4721B2C01D0904203D11B2D25D03D
+:100F6000914523D0F580A6F808907480B080524651
+:100F700039463046FFF7A0FC01203070F0881B385E
+:100F8000E02800D9FFDF70881B38E02800D9FFDF98
+:100F9000308940F64814A0F5A470A04200D9FFDFC4
+:100FA000B088A0F5A470A04200D9FFDFBDE8F087AB
+:100FB000F0B5871FDDE9056540F67B44A74213D2F3
+:100FC0008F1FA74210D288420ED8B2F5FA7F0BD2FB
+:100FD000A3F10A00241FA04206D2521C4A43B2EBDE
+:100FE000830F01DAAE4201D90020F0BD0120F0BD2F
+:100FF0002DE9FC47477A8946044617F0050F7DD056
+:10100000F8087BD194F83A0008B9012F76D1002571
+:10101000A8462E46F90789F0010A19D0208A5146C0
+:1010200000F0C0FEF0B36089514600F0C5FEC8B3C1
+:10103000208A6189884261D8A18EE08DCDE90001C6
+:10104000238D628CA18BE08AFFF7B2FF50B301259C
+:10105000B8070ED504EB4500828EC18DCDE9001294
+:10106000038D428C818BC08AFFF7A2FFD0B1A846C6
+:101070006D1C78071ED504EB45065146308A00F0FA
+:1010800091FE78B17089514600F096FE50B1308AD9
+:10109000718988425ED8B18EF08DCDE90001338D23
+:1010A000728C00E00AE0B18BF08AFFF781FF28B173
+:1010B0002E466D1CB9F1000F03D030E03020BDE8A2
+:1010C000FC87F80707D0780705D504EB460160894F
+:1010D000498988423ED1228A01211BE0414503D043
+:1010E00004EB4100008A024404EB4100C38A868A73
+:1010F000B3422FD1838B468BB34200E02AE029D143
+:10110000438C068CB34225D1038DC08C834221D100
+:10111000491CC9B2A942E1D3608990421AD3207810
+:1011200010B1012816D10DE0A078B9F1000F07D059
+:1011300040B1012806D0022804D003280AD101E0DA
+:101140000028EED1607838B1012805D0022803D0FC
+:10115000032801D01220B2E70020B0E7002147E7C2
+:101160000178C90702D0406812F061BF12F02EBFAB
+:101170002DE9F04788B00D46AFF69422D2E90092EF
+:10118000014690462846FFF733FF06000CD100F0D9
+:1011900062FD40B9FE4F387828B90CF011FFA0F578
+:1011A0007F41FF3902D00C2008B0FFE6032105F192
+:1011B000100000F014FEF64801AA3E380190F548F0
+:1011C0000290F34806211038039007A801F0E0FBD5
+:1011D000040035D003210BF0BBFBB98AA4F84A10F8
+:1011E000FA8AA4F84C20FB7C0093BA46BB7C20888A
+:1011F00001F0BBFC00B1FFDF208806F045FC218830
+:1012000004F10E0000F04FFDE3A004F112070068A6
+:1012100000900321684604F007FE002069460A5C3E
+:101220003A54401CC0B20328F9D3A88B6080688C64
+:10123000A080288DE080687A410703D508270AE05E
+:101240000920B1E7C10701D0012704E0800701D5DB
+:10125000022700E000273A46BAF81800114610F0BD
+:10126000EBF90146A062204610F0F4F917F00C0FDC
+:1012700009D001231A46214600200BF0D6FF616AEF
+:10128000884200D90926002784F85E7084F85F70D0
+:10129000A87800F0B4FC6076D5F80300C4F81A0012
+:1012A000B5F80700E083C4F8089084F80C800120AA
+:1012B00084F80801024604F586712046FFF716FE01
+:1012C0008DF800700121684604F0AEFD9DF8000025
+:1012D00000F00701C0F3C1021144C0F340100844FC
+:1012E0008DF80000401D2076092801D208302076B4
+:1012F000002120460BF02CFB68780DF0D0FCEEBBF3
+:10130000A9782878EA1C0DF092FC48B10DF0D1FCC8
+:10131000A9782878EA1C0DF038FD060002D052E0CA
+:10132000122650E0687A00F005010020CA0700D0BC
+:1013300001208A0701D540F00200490701D540F09D
+:1013400008000DF05DFC06003DD1214603200DF0A4
+:1013500046FD060037D10DF04CFD060033D1697A09
+:1013600001F005018DF81010697AC90708D0688965
+:10137000ADF81200288AADF8140000E023E0012047
+:10138000697A8A0700D5401C490707D505EB40005C
+:101390004189ADF81610008AADF8180004A810F0C5
+:1013A00091F8064695F83A0000B101200DF03AFC9C
+:1013B0004EB90DF079FD060005D1A98F204610F039
+:1013C00023F8060008D0208806F05FFB208806215D
+:1013D00001F022FB00B1FFDF3046E5E601460020C8
+:1013E000C6E638B56A48007878B910F0E2FD0528FD
+:1013F00005D00CF0E5FDA0F57F41FF3905D068462A
+:1014000010F0C9F8040002D00CE00C2038BD0098A0
+:10141000008806F03AFB00980621008801F0FCFAEB
+:1014200000B1FFDF204638BD1CB582894189CDE976
+:1014300000120389C28881884088FFF7B9FD08B18E
+:1014400000201CBD30201CBD70B50546FFF7ECFF29
+:1014500000280ED12888062101F0CCFA040007D01C
+:1014600000F05EFC20B1D4F80001017831B901E050
+:10147000022070BDD4F84C11097809B13A2070BD32
+:1014800005218171D4F8001100200881D4F80011E1
+:10149000A8884881D4F80011E8888881D4F8001120
+:1014A0002889C881D4F80001028941898A4204D878
+:1014B0008279082A01D88A4201D3122070BD298876
+:1014C0004180D4F8001102200870002070BD3EB5A4
+:1014D00004460BF06FFCB0B12D480125A0F140028D
+:1014E0004570236842F8423F23790021137141700F
+:1014F0006946062001F007FA00B1FFDF684601F0F7
+:10150000E0F910B10EE012203EBDBDF80440029893
+:1015100080F80851684601F0D4F918B9BDF8040004
+:10152000A042F4D100203EBD70B5054600880621DA
+:1015300001F060FA040007D000F0F2FB20B1D4F80B
+:101540000011087830B901E0022070BDD4F84C01D8
+:10155000007808B13A2070BD9620005D10F0010FB0
+:1015600024D0D5F802004860D5F806008860D4F889
+:101570000001698910228181D4F8000105F10C0174
+:101580000E3004F5807413F0F9FF07E0385B0200B9
+:10159000E807002078000020112233002168032092
+:1015A0000870216828884880002070BD0C2070BD1C
+:1015B00038B504460078EF284DD86088ADF80000B3
+:1015C000009800F01DFC88B36188080708D4D4E9AE
+:1015D000012082423FD8202A3DD3B0F5804F3AD82F
+:1015E000207B18B3072836D8607B28B1012803D0A8
+:1015F000022801D003282ED14A0703D4022801D0A3
+:10160000032805D1A07B08B1012824D1480707D4BD
+:10161000607D28B1012803D0022801D003281AD107
+:10162000C806E07D03D5012815D110E013E001289C
+:1016300001D003280FD1C80609D4607E012803D049
+:10164000022801D0032806D1A07E0F2803D8E07E0F
+:1016500018B1012801D0122038BD002038BDF8B5DE
+:1016600014460D46064607F092FD08B10C20F8BD61
+:101670003046FFF79DFF0028F9D1FDF76EFA28707C
+:10168000B07554B9FF208DF8000069460020FDF7C1
+:1016900053FA69460020FDF743FA3046BDE8F840AA
+:1016A000FDF797B90022DAE770B50C46054612B18E
+:1016B0001F2907D80CE0FF2C04D8FCF704FF18B151
+:1016C0001F2C01D9122070BD2846FCF7E6FE08B198
+:1016D000002070BD422070BD10B50446408810B196
+:1016E000FDF701FA78B12078618800F00102607896
+:1016F000FFF7DAFF002805D1FDF7DDF962888242A5
+:1017000003D9072010BD122010BD10466168FDF7F7
+:1017100013FA002010BD10B50446408810B1FCF744
+:10172000C4FE70B12078618800F001026078FFF794
+:10173000BBFF002804D160886168FDF7F1F9002043
+:1017400010BD122010BD7CB504464078422501280A
+:1017500008D8A078FCF7A1FE20B120781225012836
+:1017600002D090B128467CBDFDF703FA20B1A088D5
+:101770000028F7D08028F5D8FDF702FA60B160782C
+:101780000028EFD02078012808D006F09DFA044602
+:1017900007F0BCF900287DD00C207CBDFDF732F8A5
+:1017A00010B9FDF7DFF990B307F0F1FC0028F3D191
+:1017B000FCF73BFEA0F57F41FF39EDD1FDF744F882
+:1017C000A68842F210704643A079FDF79DF9FCF718
+:1017D00073FEF8B10022072101A801F0D9F8040036
+:1017E00043D0FA480321846020460AF0B6FF204621
+:1017F000FDF72CFDF64DA88AA4F84A00E88AA4F863
+:101800004C00FCF760FE60B1288B01210DE0FFE782
+:1018100012207CBD3146002007F044FAD8B3FFDF28
+:101820004CE0FDF7AFF90146288B07F0F0FA0146CE
+:10183000A0620022204606F04AFAFCF744FEB0B946
+:10184000FDF7A0F910F00C0F11D001231A46214624
+:1018500018460BF0EAFC616A884208D90721BDF8F6
+:10186000040001F0D9F800B1FFDF09207CBDE87C5D
+:101870000090AB7CEA8AA98A208801F076F900B151
+:10188000FFDF208806F000F93146204607F00AFA0B
+:1018900018B101E008E011E0FFDF002204F5D1718A
+:1018A0002046FFF723FB09E044B1208806F0EDF85D
+:1018B0002088072101F0B0F800B1FFDF00207CBDD7
+:1018C000002140E770B50D46072101F093F80400B0
+:1018D00003D094F87B0110B10AE0022070BD94F8A7
+:1018E0006500142801D0152802D194F8C80108B168
+:1018F0000C2070BD1022294604F5BE7013F03EFE88
+:10190000012084F87B01002070BD10B5072101F093
+:1019100071F818B190F87B1111B107E0022010BDE9
+:1019200090F86510142903D0152901D00C2010BDA2
+:10193000022180F87B11002010BD2DE9FC410C46EE
+:101940004BF68032122194421DD8E4B16946FEF76D
+:1019500021FC002815D19DF8000000F057F9019EE8
+:101960009DF80000583600F051F9019DAD1C2F88FC
+:101970002246394630460AF0E6FE2888B842F6D1BB
+:101980000020BDE8FC810846FBE77CB504460088E2
+:101990006946FEF7FFFB002810D19DF8000000F01B
+:1019A00035F9019D9DF80000583500F02FF9019898
+:1019B000A27890F82C10914201D10C207CBD7F219F
+:1019C0002972A9720021E972E17880F82D1021793D
+:1019D00080F82E10A17880F82C1000207CBD1CB55A
+:1019E0000C466946FEF7D6FB00280AD19DF8000098
+:1019F00000F00CF9019890F8730000B101202070FC
+:101A000000201CBD7CB50D4614466946FEF7C2FB9E
+:101A1000002809D19DF8000000F0F8F8019890F82E
+:101A20002C00012801D00C207CBD9DF8000000F0A6
+:101A3000EDF8019890F86010297090F8610020701E
+:101A400000207CBD70B50D461646072100F0D2FF80
+:101A500018B381880124C388428804EB4104AC4256
+:101A600017D842F210746343A4106243B3FBF2F23E
+:101A7000521E94B24FF4FA72944200D91446A54211
+:101A800000D22C46491C641CB4FBF1F24A43521E9E
+:101A900091B290F8B4211AB901E0022070BD01841E
+:101AA0003180002070BD10B50C46072100F0A2FF68
+:101AB00048B180F8E74024B190F8E51009B107F08B
+:101AC000BCF9002010BD022010BD017899B1417809
+:101AD00089B141881B290ED381881B290BD3C1886A
+:101AE000022908D33A490268403941F8522F406828
+:101AF0004860002070471220704710B504460FF070
+:101B000097FD204607F052F9002010BD10B507F0F0
+:101B100050F9002010BD2DE9F04115460F4606464C
+:101B20000122114638460FF087FD04460121384650
+:101B300007F06DF9844200D2044601213046653C2D
+:101B400000F069F806460121002000F064F83044F6
+:101B500001219630844206D900F19601201AB0FB8B
+:101B6000F1F0401C81B229800020BDE8F08110B561
+:101B7000044600F08EF808B10C2010BD601C0AF07D
+:101B800039FC207800F00100FCF759FE207800F0C5
+:101B900001000DF089F8002010BD10B507F003F921
+:101BA000002010BD10B50446072000F0BDFE08B1AE
+:101BB0000C2010BD2078C00716D000226078114696
+:101BC00012F090FE30B1122010BD00006C00002019
+:101BD000E8070020A06809F0D4F86078D4F8041071
+:101BE00009F0D8F80020EFE7002009F0CAF800213A
+:101BF0000846F5E710B505F02BFB0020E4E718B127
+:101C0000022801D0012070470020704708B1002051
+:101C100070470120704710B5012904D0022905D072
+:101C2000FFDF2046D0E7C000503001E080002C30BC
+:101C300084B2F6E711F00C0F04D04FF4747101EB8D
+:101C4000801006E0022902D0C000703001E0800060
+:101C50003C3080B2704710B510F0ABF9042805D0C5
+:101C600010F0A7F9052801D00020ADE70120ABE76F
+:101C700010B5FFF7F0FF10B10DF0DAF828B907F052
+:101C800086FA20B1FCF7B6FD08B101209CE70020E0
+:101C90009AE710B5FFF7DFFF18B907F078FA0028C8
+:101CA00092D0012090E72DE9FE4300250F468046A3
+:101CB0000A260421404604F0E0F840460BF01BF8E9
+:101CC000062000F03FFE044615E06946062000F0BD
+:101CD0001AFE0AE0BDF80400B84206D002980422B9
+:101CE00041460E3013F01EFC50B1684600F0E9FD8D
+:101CF0000500EFD0641E002C06DD002DE5D005E0C8
+:101D000040460BF001F8F5E705B9FFDFD8F8000011
+:101D10000BF015F8761E01D00028CAD0BDE8FE836E
+:101D200090F8D81090F8730020B919B1042901D0A7
+:101D30000120704700207047017800290AD04168CF
+:101D400091F8E520002A05D0002281F8E5204068BE
+:101D500007F073B870471B38E12806D2B1F5A47FAD
+:101D600003D344F29020814201D912207047002011
+:101D70007047FB2802D8B1F5296F01D911207047AF
+:101D80000020704770B514460546012200F05CF84B
+:101D9000002806D121462846BDE87040002200F008
+:101DA00053B870BD042803D321B9B0F5804F01D9D1
+:101DB0000020704701207047042803D321B9B0F5F3
+:101DC000804F01D90020704701207047012802D0C0
+:101DD00018B100207047022070470120704710B5ED
+:101DE00000224FF4C84408E030F81230A34200D972
+:101DF000234620F81230521CD2B28A42F4D3E3E6D2
+:101E000080B2C1060BD401071CD481064FEAC07111
+:101E100001D5B9B900E099B1800713D410E04106AB
+:101E200010D481060ED4C1074FEA807104D0002976
+:101E300002DB400704D405E0010703D4400701D4C6
+:101E400001207047002070470AB1012200E0022201
+:101E5000024202D1C80802D109B100207047112006
+:101E60007047000030B5058825F4004421448CB249
+:101E70004FF4004194420AD2121B92B21B339A4291
+:101E800001D2A94307E005F40041214303E0A21A6F
+:101E900092B2A9431143018030BD08440830504339
+:101EA0004A31084480B2704770B51D4616460B464D
+:101EB000044629463046049AFFF7EFFF0646B34230
+:101EC00000D2FFDF2821204613F0F9FB4FF6FF7008
+:101ED000A082283EB0B265776080B0F5004F00D98F
+:101EE000FFDF618805F13C00814200D2FFDF60889E
+:101EF0000835401B343880B220801B2800D21B20BC
+:101F000020800020A07770BD8161886170472DE935
+:101F1000F05F0D46C188044600F12809008921F4CC
+:101F2000004620F4004800F062FB10B10020BDE83C
+:101F3000F09F4FF0000A4FF0010BB0450CD9617FC4
+:101F4000A8EB0600401A0838854219DC09EB0600A8
+:101F50000021058041801AE06088617F801B471A5C
+:101F6000083F0DD41B2F00DAFFDFBD4201DC2946FC
+:101F700000E0B9B2681A0204120C04D0424502DD36
+:101F800084F817A0D2E709EB06000180428084F8AC
+:101F900017B0CCE770B5044600F12802C088E37D95
+:101FA00020F400402BB110440288438813448B4234
+:101FB00001D2002070BD00258A4202D301804580F5
+:101FC00008E0891A0904090C418003D0A01D00F023
+:101FD0001EFB08E0637F00880833184481B26288E2
+:101FE000A01DFFF73FFFE575012070BD70B50346EA
+:101FF00000F12804C588808820F400462644A842C1
+:1020000002D10020188270BD98893588A84206D375
+:10201000401B75882D1A2044ADB2C01E05E02C1A55
+:10202000A5B25C7F20443044401D0C88AC4200D9EE
+:102030000D809C8924B1002414700988198270BD18
+:102040000124F9E770B5044600F12801808820F4E6
+:1020500000404518208A002825D0A189084480B274
+:10206000A08129886A881144814200D2FFDF288834
+:10207000698800260844A189884212D1A069807F1E
+:102080002871698819B1201D00F0C1FA08E0637F4A
+:1020900028880833184481B26288201DFFF7E2FEC9
+:1020A000A6812682012070BD2DE9F04141898788F3
+:1020B0000026044600F12805B94218D004F10A08A8
+:1020C00021F400402844418819B1404600F09FFAAD
+:1020D00008E0637F00880833184481B26288404674
+:1020E000FFF7C0FE761C6189B6B2B942E8D130462E
+:1020F000BDE8F0812DE9F04104460B4627892830E0
+:10210000A68827F40041B4F80A8001440D46B7427E
+:1021100001D10020ECE70AB1481D106023B1627FB5
+:10212000691D184613F02AFA2E88698804F1080000
+:1021300021B18A1996B200F06AFA06E0637F6288DC
+:102140000833991989B2FFF78DFE474501D12089DF
+:1021500060813046CCE78188C088814201D101206E
+:1021600070470020704701898088814201D1012099
+:1021700070470020704770B58588C38800F1280437
+:1021800025F4004223F4004114449D421AD083896F
+:10219000058A5E1925886388EC18A64214D313B10A
+:1021A0008B4211D30EE0437F08325C1922444088F1
+:1021B00092B2801A80B22333984201D211B103E067
+:1021C0008A4201D1002070BD012070BD2DE9F04789
+:1021D0008846C1880446008921F4004604F1280796
+:1021E00020F4004507EB060900F001FA002178BB56
+:1021F000B54204D9627FA81B801A002503E06088DD
+:10220000627F801B801A083823D4E28962B1B9F852
+:102210000020B9F802303BB1E81A2177404518DBBD
+:10222000E0893844801A09E0801A217740450ADBAA
+:10223000607FE1890830304439440844C01EA4F866
+:102240001280BDE8F087454503DB01202077E7E7F2
+:10225000FFE761820020F4E72DE9F74F044600F123
+:102260002805C088884620F4004A608A05EB0A06E3
+:1022700008B1404502D20020BDE8FE8FE08978B168
+:102280003788B6F8029007EB0901884200D0FFDFDB
+:10229000207F4FF0000B50EA090106D088B33BE0E5
+:1022A0000027A07FB9463071F2E7E18959B1607F1C
+:1022B0002944083050440844B4F81F1020F8031D86
+:1022C00094F821108170E28907EB080002EB080105
+:1022D000E1813080A6F802B002985F4650B1637F7A
+:1022E00030880833184481B26288A01DFFF7BAFD18
+:1022F000E78121E0607FE1890830504429440844A7
+:102300002DE0FFE7E089B4F81F102844C01B20F837
+:10231000031D94F82110817009EB0800E28981B255
+:1023200002EB0800E081378071800298A0B1A01D07
+:1023300000F06DF9A4F80EB0A07F401CA077A07D3E
+:1023400008B1E088A08284F816B000BFA4F812B0EB
+:1023500084F817B001208FE7E0892844C01B30F8CB
+:10236000031DA4F81F10807884F82100EEE710B553
+:10237000818800F1280321F400442344848AC28820
+:10238000A14212D0914210D0818971B9826972B193
+:102390001046FFF7E8FE50B91089283220F40040BB
+:1023A000104419790079884201D1002010BD1846E7
+:1023B00010BD00F12803407F08300844C01E1060A3
+:1023C000088808B9DB1E136008884988084480B271
+:1023D00070472DE9F04100F12806407F1C46083087
+:1023E0009046431808884D88069ADB1EA0B1C01C91
+:1023F00080B2904214D9801AA04200DB204687B2F6
+:1024000098183A46414613F08DF8002816D1E01B83
+:1024100084B2B844002005E0ED1CADB2F61EE8E73A
+:10242000101A80B20119A94206D83044224641460A
+:10243000BDE8F04113F076B84FF0FF3058E62DE9D3
+:10244000F04100F12804407F1E46083090464318B2
+:10245000002508884F88069ADB1E90B1C01C80B208
+:10246000904212D9801AB04200DB304685B29918EA
+:102470002A46404613F082F8701B86B2A84400201A
+:1024800005E0FF1CBFB2E41EEAE7101A80B2811912
+:10249000B94206D821183246404613F06FF8A81901
+:1024A00085B2284624E62DE9F04100F12804407F5A
+:1024B0001E46083090464318002508884F88069A23
+:1024C000DB1E90B1C01C80B2904212D9801AB0427B
+:1024D00000DB304685B298182A46414613F04EF884
+:1024E000701B86B2A844002005E0FF1CBFB2E41EAA
+:1024F000EAE7101A80B28119B94206D82044324660
+:10250000414613F03BF8A81985B22846F0E5401D76
+:10251000704710B5044600F12801C288808820F475
+:1025200000431944904206D0A28922B9228A12B9E6
+:10253000A28A904201D1002010BD0888498831B19B
+:10254000201D00F064F800202082012010BD637F70
+:1025500062880833184481B2201DFFF783FCF2E73C
+:102560000021C18101774182C1758175704703885F
+:102570001380C28942B1C28822F4004300F12802CC
+:102580001A440A60C08970470020704710B504469D
+:10259000808AA0F57F41FF3900D0FFDFE088A0826C
+:1025A000E08900B10120A07510BD4FF6FF71818256
+:1025B00000218175704710B50446808AA0F57F41DF
+:1025C000FF3900D1FFDFA07D28B9A088A18A884209
+:1025D00001D1002010BD012010BD8188828A914266
+:1025E00001D1807D08B1002070470120704720F4A0
+:1025F000004221F400439A4207D100F4004001F464
+:102600000041884201D0012070470020704730B55A
+:10261000044600880D4620F40040A84200D2FFDFA7
+:1026200021884FF4004088432843208030BD70B596
+:102630000C00054609D0082C00D2FFDF1DB1A1B265
+:10264000286800F044F8201D70BD0DB100202860FE
+:10265000002070BD0021026803E0938812681944CD
+:1026600089B2002AF9D100F032B870B500260D46C3
+:102670000446082900D2FFDF206808B91EE004469E
+:1026800020688188A94202D001680029F7D1818899
+:102690000646A94201D100680DE005F1080293B297
+:1026A0000022994209D32844491B02608180216895
+:1026B000096821600160206000E00026304670BD9E
+:1026C00000230B608A8002680A6001607047002363
+:1026D0004360021D018102607047F0B50F4601881A
+:1026E000408815460C181E46AC4200D3641B30448B
+:1026F000A84200D9FFDFA019A84200D9FFDF38198E
+:10270000F0BD2DE9F041884606460188408815460F
+:102710000C181F46AC4200D3641B3844A84200D9B1
+:10272000FFDFE019A84200D9FFDF708838447080CD
+:1027300008EB0400BDE8F0812DE9F0410546008872
+:102740001E461746841B8846BC4200D33C442C805E
+:1027500068883044B84200D9FFDFA019B84200D9D8
+:10276000FFDF68883044688008EB0400E2E72DE969
+:10277000F04106881D460446701980B21746884607
+:102780002080B84201D3C01B20806088A84200D2BC
+:10279000FFDF7019B84200D9FFDF6088401B6080FE
+:1027A00008EB0600C6E730B50D460188CC18944208
+:1027B00000D3A41A4088984200D8FFDF281930BD02
+:1027C0002DE9F041C84D04469046A8780E46A04237
+:1027D00000D8FFDF05EB8607B86A50F8240000B187
+:1027E000FFDFB868002816D0304600F044F90146F3
+:1027F000B868FFF73AFF05000CD0B86A082E40F819
+:10280000245000D3FFDFB9484246294650F826300D
+:10281000204698472846BDE8F0812DE9F8431E463A
+:102820008C1991460F460546FF2C00D9FFDFB145B4
+:1028300000D9FFDFE4B200954DB300208046E81CCC
+:1028400020F00300A84200D0FFDF4946DFF898924D
+:10285000684689F8001089F8017089F8024089F803
+:10286000034089F8044089F8054089F8066089F832
+:102870000770414600F008F9002142460F464B46DA
+:102880000098C01C20F00300009012B10EE001205F
+:10289000D4E703EB8106B062002005E0D6F828C03B
+:1028A0004CF82070401CC0B2A042F7D30098491CDD
+:1028B00000EB8400C9B200900829E1D3401BBDE8B9
+:1028C000F88310B50446EEF724FD08B1102010BDC2
+:1028D0002078854A618802EB800092780EE0836A56
+:1028E00053F8213043B14A1C6280A180806A50F8BD
+:1028F0002100A060002010BD491C89B28A42EED898
+:102900006180052010BD70B505460C460846EEF7FF
+:1029100000FD08B1102070BD082D01D3072070BD47
+:1029200025700020608070BD0EB56946FFF7EBFF93
+:1029300000B1FFDF6846FFF7C4FF08B100200EBDFD
+:1029400001200EBD10B50446082800D3FFDF6648FD
+:10295000005D10BD3EB5054600246946FFF7D3FF74
+:1029600018B1FFDF01E0641CE4B26846FFF7A9FF7D
+:102970000028F8D02846FFF7E5FF001BC0B23EBD97
+:1029800059498978814201D9C0B27047FF20704708
+:102990002DE9F041544B062903D007291CD19D791C
+:1029A00000E0002500244FF6FF7603EB810713F8C3
+:1029B00001C00AE06319D7F828E09BB25EF823E073
+:1029C000BEF1000F04D0641CA4B2A445F2D8334673
+:1029D00003801846B34201D100201CE7BDE8F04156
+:1029E000EEE6A0F57F43FF3B01D0082901D300208C
+:1029F0007047E5E6A0F57F42FF3A0BD0082909D2DF
+:102A0000394A9378834205D902EB8101896A51F8EA
+:102A100020007047002070472DE9F04104460D4624
+:102A2000A4F57F4143F20200FF3902D0082D01D303
+:102A30000720F0E62C494FF000088A78A242F8D926
+:102A400001EB8506B26A52F82470002FF1D02748B6
+:102A50003946203050F8252020469047B16A284654
+:102A600041F8248000F007F802463946B068FFF7C5
+:102A700027FE0020CFE61D49403131F810004FF607
+:102A8000FC71C01C084070472DE9F843164E88467B
+:102A9000054600242868C01C20F00300286020465A
+:102AA000FFF7E9FF315D4843B8F1000F01D0002284
+:102AB00000E02A680146009232B100274FEA0D007B
+:102AC000FFF7B5FD1FB106E001270020F8E706EB90
+:102AD0008401009A8A602968641C0844E4B2286072
+:102AE000082CD7D3EBE6000008080020445B020066
+:102AF00070B50E461D46114600F0D4F8044629462E
+:102B0000304600F0D8F82044001D70BD2DE9F0419A
+:102B100090460D4604004FF0000610D00027E01C40
+:102B200020F00300A04200D0FFDFDDB141460020CD
+:102B3000FFF77DFD0C3000EB850617B112E0012791
+:102B4000EDE7614F04F10C00A9003C602572606064
+:102B500000EB85002060606812F0B1FD41463868E6
+:102B6000FFF765FD3046BDE8F0812DE9FF4F564C7B
+:102B7000804681B020689A46934600B9FFDF2068FE
+:102B8000027A424503D9416851F8280020B143F246
+:102B9000020005B0BDE8F08F5146029800F082F8BF
+:102BA00086B258460E9900F086F885B27019001D5D
+:102BB00087B22068A14639460068FFF756FD040039
+:102BC0001FD0678025802946201D0E9D07465A4646
+:102BD00001230095FFF768F9208831463844012326
+:102BE000029ACDF800A0FFF75FF92088C119384696
+:102BF000FFF78AF9D9F800004168002041F8284021
+:102C0000C7E70420C5E770B52F4C0546206800B91A
+:102C1000FFDF2068017AA9420ED9426852F82510D8
+:102C200051B1002342F825304A880068FFF748FD7B
+:102C3000216800200A7A08E043F2020070BD4B6868
+:102C400053F8203033B9401CC0B28242F7D808682C
+:102C5000FFF700FD002070BD70B51B4E0546002437
+:102C6000306800B9FFDF3068017AA94204D94068B2
+:102C700050F8250000B1041D204670BD70B5124EFD
+:102C800005460024306800B9FFDF3068017AA942A8
+:102C900006D9406850F8251011B131F8040B4418DA
+:102CA000204670BD10B50A460121FFF7F6F8C01C9A
+:102CB00020F0030010BD10B50A460121FFF7EDF822
+:102CC000C01C20F0030010BD8000002070B5044639
+:102CD000C2F11005281912F051FC15F0FF0108D0BF
+:102CE000491EC9B2802060542046BDE8704012F0F1
+:102CF000C4BC70BD30B505E05B1EDBB2CC5CD55CFE
+:102D00006C40C454002BF7D130BD10B5002409E04D
+:102D10000B78521E44EA430300F8013B11F8013BD3
+:102D2000D2B2DC09002AF3D110BD2DE9F04389B0FD
+:102D30001E46DDE9107990460D00044622D0024679
+:102D40000846F949FDF7BAFC102221463846FFF73C
+:102D5000DCFFE07B000606D5F34A3946102310322B
+:102D60000846FFF7C7FF102239464846FFF7CDFF58
+:102D7000F87B000606D5EC4A494610231032084677
+:102D8000FFF7B8FF1021204612F077FC0DE0103E4F
+:102D9000B6B208EB0601102322466846FFF7AAFFE9
+:102DA000224628466946FDF789FC102EEFD818D038
+:102DB000F2B241466846FFF789FF10234A4669464A
+:102DC00004A8FFF797FF1023224604A96846FFF7DF
+:102DD00091FF224628466946FDF770FC09B0BDE820
+:102DE000F08310233A464146EAE770B59CB01E4690
+:102DF0000546134620980C468DF8080020221946F7
+:102E00000DF1090012F0BAFB202221460DF1290034
+:102E100012F0B4FB17A913A8CDE90001412302AABF
+:102E200031462846FFF781FF1CB070BD2DE9FF4FEA
+:102E30009FB014AEDDE92D5410AFBB49CDE900764B
+:102E4000202320311AA8FFF770FF4FF000088DF8FB
+:102E500008804FF001098DF8099054F8010FCDF862
+:102E60000A00A088ADF80E0014F8010C1022C0F37F
+:102E700040008DF8100055F8010FCDF81100A8881A
+:102E8000ADF8150015F8010C2C99C0F340008DF831
+:102E9000170006A8824612F071FB0AA8834610228A
+:102EA000229912F06BFBA0483523083802AA40682B
+:102EB0008DF83C80CDE900760E901AA91F98FFF797
+:102EC00034FF8DF808808DF809902068CDF80A004D
+:102ED000A088ADF80E0014F8010C1022C0F34000D9
+:102EE0008DF810002868CDF81100A888ADF81500FD
+:102EF00015F8010C2C99C0F340008DF817005046CE
+:102F000012F03CFB58461022229912F037FB8648FB
+:102F10003523083802AA40688DF83C90CDE9007648
+:102F20000E901AA92098FFF700FF23B0BDE8F08F9C
+:102F3000F0B59BB00C460546DDE922101E4617464B
+:102F4000DDE92032D0F801C0CDF808C0B0F805C0E6
+:102F5000ADF80CC00078C0F340008DF80E00D1F839
+:102F60000100CDF80F00B1F80500ADF813000878A6
+:102F70001946C0F340008DF815001088ADF8160012
+:102F800090788DF818000DF11900102212F0F6FA61
+:102F90000DF129001022314612F0F0FA0DF139003E
+:102FA0001022394612F0EAFA17A913A8CDE9000158
+:102FB000412302AA21462846FFF7B7FE1BB0F0BD09
+:102FC000F0B5A3B017460D4604461E46102202A8CF
+:102FD000289912F0D3FA06A82022394612F0CEFA28
+:102FE0000EA82022294612F0C9FA1EA91AA8CDE976
+:102FF0000001502302AA314616A8FFF796FE169844
+:10300000206023B0F0BDF0B589B00446DDE90E07BD
+:103010000D463978109EC1F340018DF800103178CB
+:103020009446C1F340018DF801101968CDF80210E3
+:103030009988ADF8061099798DF808100168CDF8D7
+:1030400009108188ADF80D1080798DF80F001023DC
+:103050006A46614604A8FFF74DFE2246284604A9A9
+:10306000FDF72CFBD6F801000090B6F80500ADF88E
+:103070000400D7F80100CDF80600B7F80500ADF858
+:103080000A000020039010236A46214604A8FFF797
+:1030900031FE2246284604A9FDF710FB09B0F0BD19
+:1030A0001FB51C6800945B68019313680293526813
+:1030B0000392024608466946FDF700FB1FBD10B5A6
+:1030C00088B004461068049050680590002006906F
+:1030D000079008466A4604A9FDF7F0FABDF800001B
+:1030E000208008B010BD1FB51288ADF800201A88E6
+:1030F000ADF8022000220192029203920246084695
+:103100006946FDF7DBFA1FBD7FB5074B1446054640
+:10311000083B9A1C6846FFF7E6FF224669462846A8
+:10312000FFF7CDFF7FBD00009C5B020070B5044639
+:1031300000780E46012813D0052802D0092813D1A3
+:103140000EE0A06861690578042003F075F9052D8B
+:103150000AD0782300220420616903F0C3F803E059
+:103160000420616903F068F931462046BDE87040EB
+:1031700001F084B810B500F12D03C2799C78411D8F
+:10318000144064F30102C271D2070DD04A795C7910
+:1031900022404A710A791B791A400A718278C978EB
+:1031A0008A4200D9817010BD00224A71F5E741784A
+:1031B000012900D00C21017070472DE9F04F93B028
+:1031C0004FF0000B0C690D468DF820B009780126F0
+:1031D0000C2017464FF00D084FF0110A4FF0080968
+:1031E0001B2975D2DFE811F01B00C20205031D0385
+:1031F0005C036F03A103B603F70318046004920491
+:103200009F04EB042905330551055C05ED053006E7
+:10321000330662067E06F8061C07E506EA0614B1C8
+:1032200020781D282AD0D5F808805FEA08004FD002
+:1032300001208DF82000686A02220D908DF824206C
+:103240000A208DF82500A8690A90A8880028EED0E9
+:1032500098F8001091B10F2910D27DD2DFE801F06B
+:103260007C1349DEFCFBFAF9F8F738089CF6F50008
+:1032700002282DD124B120780C2801D00026EEE3BD
+:103280008DF82020CAE10420696A03F0D5F8A888E7
+:103290000728EED1204600F0ECFF022809D0204696
+:1032A00000F0E7FF032807D9204600F0E2FF0728D7
+:1032B00002D20120207004E0002CB8D02078012830
+:1032C000D7D198F80400C11F0A2902D30A2061E06F
+:1032D000C3E1A070D8F80010E162B8F804102186AC
+:1032E00098F8060084F8320001202870032020702E
+:1032F00044E00728BDD1002C99D020780D28B8D102
+:1033000098F8031094F82F20C1F3C000C2F3C00254
+:10331000104201D0062000E00720890707D198F865
+:1033200005100142D2D198F806100142CED194F88E
+:10333000312098F8051020EA02021142C6D194F813
+:10334000322098F8061090430142BFD198F804004B
+:10335000C11F0A29BAD200E006E2617D81427CD811
+:10336000D8F800106160B8F80410218198F80600C0
+:10337000A072012028700E20207003208DF82000FC
+:10338000686A0D9004F12D000990601D0A900F30BD
+:103390000B9021E12875FDE3412891D1204600F0F2
+:1033A00068FF042802D1E078C00704D1204600F06D
+:1033B00060FF0F2884D1A88CD5F80C8080B24FF024
+:1033C000400BE669FFF748FC324641465B464E46F5
+:1033D000CDF80090FFF733F80B208DF82000686AD5
+:1033E0000D90E0690990002108A8FFF79FFE207862
+:1033F000042806D0A07D58B1012809D003280AD09E
+:1034000048E305202070032028708DF82060CCE16F
+:1034100084F800A032E712202070E8E11128BCD126
+:10342000204600F026FF042802D1E078C00719D01A
+:10343000204600F01EFF062805D1E078C00711D114
+:10344000A07D02280ED0204608E0CBE084E070E1A9
+:103450004FE122E102E1E8E019E0AEE100F009FF0E
+:1034600011289AD1102208F1010104F13C0012F058
+:1034700085F8607801286ED012202070E078C007AF
+:1034800060D0A07D0028C8D00128C6D05AE01128FD
+:1034900090D1204600F0EDFE082804D0204600F030
+:1034A000E8FE132886D104F16C00102208F1010116
+:1034B000064612F063F8207808280DD014202070FA
+:1034C000E178C8070DD0A07D02280AD06278022AD0
+:1034D00004D00328A1D035E00920F0E708B1012885
+:1034E00037D1C80713D0A07D02281DD0002000903E
+:1034F000D4E9062133460EA8FFF777FC10220EA967
+:1035000004F13C0012F00EF8C8B1042042E7D4E9FF
+:103510000912201D8DE8070004F12C0332460EA885
+:10352000616BFFF770FDE9E7606BC1F34401491E71
+:103530000068C84000F0010040F08000D7E7207824
+:10354000092806D185F800908DF8209032E3287084
+:10355000EBE30920FBE79CE1112899D1204600F01C
+:1035600088FE0A2802D1E078C00704D1204600F086
+:1035700080FE15288CD104F13C00102208F10101D5
+:10358000064611F0FBFF20780A2816D0162020707E
+:10359000D4E90932606B611D8DE80F0004F15C0312
+:1035A00004F16C0247310EA8FFF7C2FC10220EA9ED
+:1035B000304611F0B7FF18B1F6E20B20207071E22F
+:1035C0002046FFF7D7FDA078216A0A18C0F1100144
+:1035D000104612F052F823E3394608A8FFF7A6FD7B
+:1035E00006463BE20228B8D1204600F042FE0428FD
+:1035F00004D3204600F03DFE082809D3204600F001
+:1036000038FE0E2829D3204600F033FE122824D29B
+:10361000A07D0228A1D10E208DF82000686A0D90AF
+:1036200098F801008DF82400F0E3022895D1204697
+:1036300000F01FFE002810D0204600F01AFE0128DE
+:10364000F9D0204600F015FE0C28F4D004208DF8A7
+:10365000240098F801008DF825005EE21128FCD1C5
+:10366000002CFAD020781728F7D16178606A0229F7
+:1036700011D0002101EB4101182606EBC1011022F7
+:10368000405808F1010111F079FF0420696A00F047
+:10369000E3FD2670F2E50121ECE70B28DDD1002CDB
+:1036A000DBD020781828D8D16078616A02281CD035
+:1036B0005FF0000000EB4002102000EBC200095850
+:1036C000B8F8010008806078616A02280FD00020F5
+:1036D00000EB4002142000EBC2000958404650F8AD
+:1036E000032F0A604068486039E00120E2E70120CA
+:1036F000EEE71128B1D1002CAFD020781928ACD139
+:103700006178606A022912D05FF0000101EB41018B
+:103710001C2202EBC1011022405808F1010111F0F6
+:103720002DFF0420696A00F097FD1A20B6E0012100
+:10373000ECE7082891D1002C8FD020781A288CD162
+:10374000606A98F80120017862F347010170616AAC
+:10375000D8F8022041F8012FB8F80600888004202C
+:10376000696A00F079FD8EE2072013E638780128B7
+:1037700094D1182204F11400796811F044FFE07923
+:10378000C10894F82F0001EAD001E07861F300004D
+:10379000E070217D002974D12178032909D0C00768
+:1037A00025D0032028708DF82090686A0D90412064
+:1037B00004E3607DA178884201D90620EAE502266B
+:1037C0002671E179204621F0E001E171617A21F072
+:1037D000F0016172A17A21F0F001A172FFF7CAFC39
+:1037E0002E708DF82090686A0D900720E6E2042084
+:1037F000ADE6387805289DD18DF82000686A0D90D7
+:10380000B8680A900720ADF824000A988DF830B007
+:103810006168016021898180A17A81710420207012
+:10382000F4E23978052985D18DF82010696A0D9167
+:10383000391D09AE0EC986E80E004121ADF82410ED
+:103840008DF830B01070A88CD7F80C8080B240266C
+:10385000A769FFF713FA41463A463346C846CDF802
+:103860000090FEF720FE002108A8FFF75FFCE0783B
+:1038700020F03E00801CE0702078052802D00F2048
+:103880000CE049E1A07D20B1012802D0032802D03C
+:1038900002E10720C0E584F80080EFE42070EDE449
+:1038A000102104F15C0002F0E8FA606BB0BBA07D6F
+:1038B00018B1012801D00520FDE006202870F74846
+:1038C0006063A063BEE23878022894D1387908B1E9
+:1038D0002875B3E3A07D022802D0032805D022E09A
+:1038E000B8680028F5D060631CE06078012806D035
+:1038F000A07994F82E10012805D0E84806E0A179B7
+:1039000094F82E00F7E7B8680028E2D06063E0780A
+:10391000C00701D0012902D0E04803E003E0F868C5
+:103920000028D6D0A063062011E68DF82090696AA1
+:103930000D91E1784846C90709D06178022903D181
+:10394000A17D29B1012903D0A17D032900D0072041
+:10395000287031E138780528BBD1207807281ED09F
+:1039600084F800A005208DF82000686A0D90B868E2
+:103970000A90ADF824A08DF830B003210170E178F1
+:10398000CA070FD0A27D022A1AD000210091D4E9E3
+:10399000061204F15C03401CFFF727FA67E384F882
+:1039A0000090DFE7D4E90923211D8DE80E0004F122
+:1039B0002C0304F15C02401C616BFFF724FB56E30F
+:1039C000626BC1F34401491E1268CA4002F0010152
+:1039D00041F08001DAE738780528BDD18DF8200064
+:1039E000686A0D90B8680A90ADF824A08DF830B0E0
+:1039F000042100F8011B102204F15C0111F0BEFD4E
+:103A0000002108A8FFF792FB2078092801D0132095
+:103A100044E70A2020709CE5E078C10742D0A17DF0
+:103A2000012902D0022927D038E0617808A80129AD
+:103A300016D004F16C010091D4E9061204F15C0384
+:103A4000001DFFF7BDFA0A20287003268DF820809C
+:103A5000686A0D90002108A8FFF768FBDDE2C3E269
+:103A600004F15C010091D4E9062104F16C03001D0E
+:103A7000FFF7A6FA0026E9E7C0F3440114290DD2A6
+:103A80004FF0006101EBB0104FEAB060E070607879
+:103A9000012801D01020BFE40620FFE6607801284D
+:103AA0003FF4B8AC0A2052E5E178C90708D0A17DFF
+:103AB000012903D10B20287004202FE028702DE06D
+:103AC0000E2028706078616B012817D004F15C0328
+:103AD00004F16C020EA8FFF7E3FA2046FFF74AFB59
+:103AE000A0780EAEC0F11001304411F0C6FD0620E2
+:103AF0008DF82000686A09960D909AE004F16C0335
+:103B000004F15C020EA8FFF7CBFAE9E73978022945
+:103B100003D139790029D1D029758FE28DF82000A1
+:103B2000686A0D9058E538780728F6D1D4E909215C
+:103B30006078012809D000BF04F16C00CDE90002D3
+:103B4000029105D104F16C0304E004F15C00F5E797
+:103B500004F15C0304F14C007A680646216AFFF721
+:103B600065F96078012821D1A078216A0A18C0F18E
+:103B70001001104611F081FDD4E90923606B04F1B6
+:103B80002D018DE80F0004F15C0304F16C02314655
+:103B90000EA800E054E2FFF7CBF910220EA904F1C1
+:103BA0003C0011F0BFFC08B10B20AFE485F80080A9
+:103BB0008DF82090686A0D908DF824A00CE5387877
+:103BC0000528AAD18DF82000686A0D90B8680A907F
+:103BD000ADF824A08DF830B080F80080617801291C
+:103BE0001AD0D4E9093204F12D01A66B0392009694
+:103BF000CDE9011304F16C0304F15C0204F14C0102
+:103C0000401CFFF795F9002108A8FFF78FFA6078AC
+:103C1000012805D0152041E6D4E90923611DE4E718
+:103C20000E20287006208DF82000686ACDF824B098
+:103C30000D90A0788DF82800CEE438780328C0D104
+:103C4000E079C00770D00F202870072066E7387829
+:103C500004286BD11422391D04F1140011F0D3FC97
+:103C6000616A208CA1F80900616AA078C871E179C5
+:103C7000626A01F003011172616A627A0A73616A11
+:103C8000A07A81F82400162061E485F800A08DF860
+:103C90002090696A50460D9190E000009C5B020004
+:103CA0003878052842D1B868A8616178606A02292D
+:103CB00001D0012100E0002101EB4101142606EBB7
+:103CC000C1014058082102F0D8F86178606A0229E1
+:103CD00001D0012100E0002101EB410106EBC1010F
+:103CE000425802A8E169FFF70FFA6078626A022879
+:103CF00001D0012000E0002000EB4001102000EB8B
+:103D0000C1000223105802A90932FEF7F3FF626ACC
+:103D1000FD4B0EA80932A169FFF7E5F96178606AE9
+:103D2000022904D0012103E042E18BE0BDE0002143
+:103D300001EB4101182606EBC101A27840580EA9FB
+:103D400011F01CFC6178606A022901D0012100E0B9
+:103D5000002101EB410106EBC1014058A178084464
+:103D6000C1F1100111F089FC05208DF82000686A6E
+:103D70000D90A8690A90ADF824A08DF830B0062106
+:103D800001706278616A022A01D0012200E00022FB
+:103D900002EB420206EBC202401C8958102211F0CD
+:103DA000EDFB002108A8FFF7C1F91220C5F818B0F3
+:103DB00028708DF82090686A0D900B208DF82400F3
+:103DC0000AE43878052870D18DF82000686A0D90D3
+:103DD000B8680A900B20ADF824000A9807210170FA
+:103DE0006178626A022901D0012100E0002101EB23
+:103DF0004103102101EBC30151580988A0F80110BB
+:103E00006178626A022902D0012101E02FE10021DC
+:103E100001EB4103142101EBC30151580A6840F83A
+:103E2000032F4968416059E01920287001208DF85E
+:103E3000300077E6162028708DF830B0002108A8F1
+:103E4000FFF774F9032617E114202870B0E63878DC
+:103E500005282AD18DF82000686A0D90B8680A906C
+:103E6000ADF824A08DF830B080F800906278616AD7
+:103E70004E46022A01D0012200E0002202EB42025B
+:103E80001C2303EBC202401C8958102211F076FB60
+:103E9000002108A8FFF74AF9152028708DF8206046
+:103EA000686A0D908DF824603CE680E0387805283B
+:103EB0007DD18DF82000686A0D90B8680A90ADF841
+:103EC000249009210170616909784908417061698C
+:103ED00051F8012FC0F802208988C18020781C2861
+:103EE000A8D1A1E7E078C00702D04FF0060C01E0AE
+:103EF0004FF0070C607802280AD000BF4FF0000096
+:103F000000EB040101F1090105D04FF0010004E0CC
+:103F10004FF00100F4E74FF000000B78204413EA63
+:103F20000C030B7010F8092F02EA0C02027004D186
+:103F30004FF01B0C84F800C0D2B394F801C0BCF160
+:103F4000010F00D09BB990F800C0E0465FEACC7C3E
+:103F500004D028F001060670102606E05FEA887C8F
+:103F600005D528F00206067013262E70032694F855
+:103F700001C0BCF1020F00D092B991F800C05FEA15
+:103F8000CC7804D02CF001060E70172106E05FEA11
+:103F90008C7805D52CF002060E70192121700026B0
+:103FA0000078D0BBCAB3C3BB1C20207035E012E040
+:103FB00002E03878062841D11A2019E42078012837
+:103FC0003CD00C283AD02046FFF7F1F809208DF8B4
+:103FD0002000686A0D9031E03878052805D0062069
+:103FE000387003261820287046E005218DF820102F
+:103FF000686A0D90B8680A900220ADF8240001208C
+:104000008DF830000A980170297D4170394608A862
+:10401000FFF78CF8064618202870012E0ED02BE0F2
+:1040200001208DF82000686A0D9003208DF824008F
+:10403000287D8DF8250085F814B012E0287D80B128
+:104040001D202070172028708DF82090686A0D9030
+:1040500002208DF82400394608A8FFF767F80646C5
+:104060000AE00CB1FE2020709DF8200020B1002154
+:1040700008A8FFF75BF810E413B03046BDE8F08FF6
+:104080002DE9F04387B00C464E6900218DF80410ED
+:1040900001202578034602274FF007094FF0050C51
+:1040A00085B1012D53D0022D39D1FE2030708DF80D
+:1040B0000030606A059003208DF80400207E8DF8A2
+:1040C000050063E02179012925D002292DD003299B
+:1040D00028D0042923D1B17D022920D131780D1FA8
+:1040E000042D04D30A3D032D01D31D2917D12189A5
+:1040F000022914D38DF80470237020899DF80410D0
+:1041000088421BD2082001E0945B02008DF8000079
+:10411000606A059057E070780128EBD0052007B061
+:10412000BDE8F0831D203070E4E771780229F5D1F5
+:1041300031780C29F3D18DF80490DDE7083402F8CA
+:1041400004CB94E80B0082E80B000320E7E7157826
+:10415000052DE4D18DF800C0656A05959568029536
+:104160008DF8101094F80480B8F1010F13D0B8F155
+:10417000020F2DD0B8F1030F1CD0B8F1040FCED12F
+:10418000ADF804700E202870207E6870002168460B
+:10419000FEF7CCFF0CE0ADF804700B202870207EF9
+:1041A000002100F01F0068706846FEF7BFFF3770FF
+:1041B0000020B4E7ADF804708DF8103085F800C029
+:1041C000207E6870277011466846FEF7AFFFA6E7AD
+:1041D000ADF804902B70207F6870607F00F00100C4
+:1041E000A870A07F00F01F00E870E27F2A71C0076E
+:1041F0001CD094F8200000F00700687194F82100AA
+:1042000000F00700A87100216846FEF78FFF2868BC
+:10421000F062A8883086A87986F83200A0694078D4
+:1042200070752879B0700D203070C1E7A97169717F
+:10423000E9E700B587B004280CD101208DF8000013
+:104240008DF80400002005918DF8050001466846B0
+:10425000FEF76CFF07B000BD70B50C46054602F0D6
+:10426000EBF821462846BDE870407823002202F092
+:1042700039B808B1007870470C20704770B50C0051
+:1042800005784FF000010CD021702146F0F7D9FFDE
+:1042900069482178405D884201D1032070BD022029
+:1042A00070BDF0F7CEFF002070BD0279012A05D065
+:1042B00000220A704B78012B02D003E004207047E3
+:1042C0000A758A6102799300521C0271C150032061
+:1042D0007047F0B587B00F4605460124287905EBF5
+:1042E000800050F8046C7078411E02290AD25249AD
+:1042F0003A46083901EB8000314650F8043C284624
+:10430000984704460CB1012C11D12879401E10F0B9
+:10431000FF00287101D00324E0E70A208DF8000097
+:10432000706A0590002101966846FFF7A7FF032CED
+:10433000D4D007B02046F0BD70B515460A460446F5
+:1043400029461046FFF7C5FF064674B12078FE28BF
+:104350000BD1207C30B100202870294604F10C00DC
+:10436000FFF7B7FF2046FEF722FF304670BD7047CB
+:1043700070B50E4604467C2111F0A1F90225012EEC
+:1043800003D0022E04D0052070BD0120607000E033
+:1043900065702046FEF70BFFA575002070BD28B1A3
+:1043A000027C1AB10A4600F10C01C5E701207047F2
+:1043B00010B5044686B0042002F03EF82078FE28AE
+:1043C00006D000208DF8000069462046FFF7E7FF81
+:1043D00006B010BD7CB50E4600218DF80410417862
+:1043E000012903D0022903D0002405E0046900E07C
+:1043F00044690CB1217C89B16D4601462846FFF71E
+:1044000054FF032809D1324629462046FFF794FF7E
+:104410009DF80410002900D004207CBD04F10C0597
+:10442000EBE730B40C460146034A204630BC034B50
+:104430000C3AFEF758BE0000D85B0200945B020005
+:1044400070B50D46040011D085B12101284611F048
+:1044500014F910225449284611F090F852480121CD
+:104460000838018044804560002070BD012070BD87
+:1044700070B54D4E00240546083E10E07068AA7BDA
+:1044800000EB0410817B914208D1C17BEA7B914211
+:1044900004D10C22294611F045F830B1641C308853
+:1044A0008442EBDB4FF0FF3070BD204670BD70B52D
+:1044B0000D46060006D02DB1FFF7DAFF002803DB1A
+:1044C000401C14E0102070BD374C083C20886288E6
+:1044D000411C914201D9042070BD6168102201EB9A
+:1044E0000010314611F04AF82088401C20802870C6
+:1044F000002070BD2C480838008870472A490839C8
+:104500000888012802D0401E08800020704770B53E
+:1045100014460D0018D0BCB10021A170022802D0B1
+:10452000102811D105E0288870B10121A1701080F8
+:1045300008E02846FFF79CFF002805DB401CA07020
+:10454000A8892080002070BD012070BD70B505468F
+:1045500014460E000BD000203070A878012808D037
+:1045600005D91149A1F108010A8890420AD9012010
+:1045700070BD24B1287820702888000A507002206D
+:1045800008700FE064B14968102201EB0011204669
+:10459000103910F0F3FF287820732888000A607320
+:1045A00010203070002070BD8C0000202DE9F041FB
+:1045B00090460C4607460025FE48072F00EB88165C
+:1045C00007D2DFE807F00707070704040400012506
+:1045D00000E0FFDF06F81470002D13D0F54880309E
+:1045E00000EB880191F82700202803D006EB40005B
+:1045F000447001E081F8264006EB44022020507010
+:1046000081F82740BDE8F081F0B51F4614460E46FC
+:104610000546202A00D1FFDFE649E648803100EB5D
+:10462000871C0CEB440001EB8702202E07D00CEB1B
+:10463000460140784B784870184620210AE092F8ED
+:104640002530407882F82500F6E701460CEB410062
+:1046500005704078A142F8D192F82740202C03D071
+:104660000CEB4404637001E082F826300CEB41044B
+:104670002023637082F82710F0BD30B50D46CE4B75
+:1046800044190022181A72EB020100D2FFDFCB4856
+:10469000854200DDFFDFC9484042854200DAFFDF86
+:1046A000C548401C844207DA002C01DB204630BD9F
+:1046B000C148401C201830BDBF48C043FAE710B5C0
+:1046C00004460168407ABE4A52F82020114450B195
+:1046D0000220084420F07F40EEF7AFFA94F908106A
+:1046E000BDE81040C9E70420F3E72DE9F047B14EDB
+:1046F000803696F82D50DFF8BC9206EB850090F8D6
+:10470000264034E009EB85174FF0070817F814002E
+:10471000012806D004282ED005282ED0062800D047
+:10472000FFDF01F00AF9014607EB4400427806EB8F
+:10473000850080F8262090F82720A24202D120226E
+:1047400080F82720084601F003F92A462146012077
+:10475000FFF72CFF9B48414600EB041002682046FF
+:10476000904796F82D5006EB850090F82640202CB7
+:10477000C8D1BDE8F087022000E003208046D0E7E2
+:1047800010B58C4C2021803484F8251084F8261034
+:1047900084F82710002084F8280084F82D0084F87D
+:1047A0002E10411EA16044F8100B20746074207319
+:1047B0006073A0738449E077207508704870002109
+:1047C0007C4A103C02F81100491CC9B22029F9D3D7
+:1047D0000120EEF722F90020EEF71FF9012084F8FE
+:1047E0002200EEF765FB7948EEF777FB764CA41EC6
+:1047F00020707748EEF771FB6070BDE81040EEF76F
+:1048000099B810B5EEF7BBF86F4CA41E2078EEF700
+:104810007DFB6078EEF77AFBBDE8104001F0C5B88B
+:10482000202070472DE9F34F624C0025803404EBC3
+:10483000810A89B09AF82500202821D0691E0291AA
+:104840006049009501EB0017391D03AB07C983E8E8
+:104850000700A18BADF81C10A07F8DF81E009DF8FD
+:104860001500A046C8B10226554951F820400399C9
+:10487000A219114421F07F41019184B102210FE07E
+:104880000120EEF7CAF80020EEF7C7F8EEF795F82A
+:1048900001F08BF884F82F50A7E00426E4E700210C
+:1048A0008DF81810022801D0012820D10398011991
+:1048B0000998081A801C9DF81C1020F07F4001B157
+:1048C0000221353181420BD203208DF81500039867
+:1048D000C4F13201401A20F07F40322403900CE0F2
+:1048E00098F8240018B901F0F8F900284DD0322CBE
+:1048F00003D214B101F04DF801E001F056F8324A4C
+:10490000107820B393465278039B121B00219DF828
+:104910001840994601281BD0032819D05FF00000E9
+:104920008DF81E00002A04DD981A039001208DF8EE
+:1049300018009DF81C0000B102210398254A20F0C0
+:104940007F40039003AB099801F03BF810B110E0F1
+:104950000120E5E79DF81D0018B99BF80000032829
+:1049600012D08DF81C50CDF80C908DF818408DF8B1
+:104970001E509DF8180058B1039801238119002298
+:104980001846EEF79DF806E000200BB0BDE8F08F6A
+:104990000120EEF742F897F90C200123002001993D
+:1049A000EEF78EF8F87BC00701D0EEF772F901211F
+:1049B00012E00000500A0020FF7F841E0020A107A3
+:1049C000E85B0200500800209E0000209361010077
+:1049D000EB460100FFFF3F0088F82F108AF82850AF
+:1049E00020226946F74810F00EFE0120CDE72DE9A0
+:1049F000F05FDFF8D083064608EB860090F825507C
+:104A0000202D1FD0A8F180002C4600EB8617A0F5C2
+:104A10000079DFF8B4B305E0A24607EB4A0044781A
+:104A2000202C0AD0EEF797F809EB04135A4601211F
+:104A30001B1D00F0C6FF0028EED0AC4202D033466A
+:104A400052461EE0E14808B1AFF30080EEF783F86C
+:104A500098F82F206AB1D8F80C20411C891A090255
+:104A6000CA1701EB12610912002902DD0020BDE81E
+:104A7000F09F3146FFF7D6FE08B10120F7E7334635
+:104A80002A4620210420FFF7BFFDEFE72DE9F04182
+:104A9000CC4C2569EEF75FF8401B0002C11700EB14
+:104AA0001160001200D4FFDF94F8220000B1FFDF94
+:104AB000012784F8227094F82E00202800D1FFDF0F
+:104AC00094F82E60202084F82E00002584F82F50C2
+:104AD00084F8205084F82150BD48256000780228D1
+:104AE00033D0032831D000202077A068401C05D0A7
+:104AF0004FF0FF30A0600120EDF78FFF0020EDF7B1
+:104B00008CFFEEF788F8EEF780F8EDF756FF0FF020
+:104B100085FFB048056005604FF0E0214FF400408C
+:104B2000B846C1F88002EEF722F994F82D703846A5
+:104B3000FFF75DFF0028FAD0A248803800EB87100D
+:104B400010F81600022802D006E00120CCE73A4611
+:104B500031460620FFF72AFD84F8238004EB870006
+:104B600090F82600202804D09948801E4078EEF75F
+:104B7000D3F9207F002803D0EEF73DF8257765773D
+:104B800040E5904910B591F82D200024803901EBC3
+:104B9000821100BF11F814302BB1641CE4B2202C38
+:104BA000F8D3202010BD8C4901EB041108600020CF
+:104BB000C87321460120FFF7F9FC204610BD10B54F
+:104BC000012801D0032800D171B37E4A92F82D301C
+:104BD0007C4C0022803C04EB831300BF13F812408E
+:104BE0000CB1082010BD521CD2B2202AF6D3784A4C
+:104BF00048B1022807D0072916D2DFE801F01506D0
+:104C0000080A0C0E100000210AE01B2108E03A21DE
+:104C100006E0582104E0772102E0962100E0B5216A
+:104C200051701070002010BD072010BD684810B5ED
+:104C30004078EEF702F880B210BD10B5202811D2EE
+:104C4000604991F82D30A1F1800202EB831414F831
+:104C500010303BB191F82D3002EB831212F8102086
+:104C6000012A01D0002010BD91F82D20014600201E
+:104C7000FFF79CFC012010BD10B5EDF76CFFBDE8FF
+:104C80001040EDF7DABF2DE9F0410E464D4F0178A7
+:104C90002025803F0C4607EB831303E0254603EBFA
+:104CA00045046478944202D0202CF7D108E0202CEF
+:104CB00006D0A14206D103EB41014978017007E01B
+:104CC00000209FE403EB440003EB4501407848706B
+:104CD000424F7EB127B1002140F2DD30AFF30080BA
+:104CE0003078A04206D127B100214FF47870AFF39D
+:104CF0000080357027B1002140F2E530AFF300802D
+:104D000001207FE410B542680B689A1A1202D4178A
+:104D100002EB1462121216D4497A91B1427A82B926
+:104D20002F4A006852F82110126819441044001DDF
+:104D3000891C081A0002C11700EB1160001232280A
+:104D400001DB012010BD002010BD2DE9F047814698
+:104D50001C48214E00EB8100984690F82540202009
+:104D6000107006F50070154600EB81170BE000BFD0
+:104D700006EB04104946001DFFF7C4FF28B107EBFE
+:104D800044002C704478202CF2D1297888F8001047
+:104D900013E000BF06EB0415291D4846FFF7B2FFDC
+:104DA00068B988F80040A97B99F80A00814201D8C7
+:104DB0000020DEE407EB44004478202CEAD10120F7
+:104DC000D7E40000D00A0020FFFF3F0000000000F1
+:104DD0009E00002000F50040500800200000000068
+:104DE000E85B02002DE9FC410E4607460024FE4D1B
+:104DF00009E000BF9DF8000005EB0010816838460F
+:104E000000F0F3FD01246B4601AA31463846FFF756
+:104E10009CFF0028EED02046BDE8FC8170B504461A
+:104E2000F2480125A54300EB841100EB85104022D8
+:104E300010F0A4FBEE4E26B1002140F25F40AFF32C
+:104E40000080EA48803000EB850100EB8400D0F858
+:104E50002500C1F8250026B1002140F26340AFF3E0
+:104E60000080284670BD2DE9FC418446DF48154688
+:104E7000089C00EB85170E4617F81400012803D094
+:104E8000022801D00020C7E70B46DA4A012160461C
+:104E900000F097FDA8B101AB6A4629463046FFF7FE
+:104EA00054FF70B1D1489DF804209DF80010803067
+:104EB00000EB85068A4208D02B460520FFF7A4FBAD
+:104EC0000BE02A462146042014E0202903D007EBFA
+:104ED0004100407801E096F8250007EB4401487056
+:104EE0009DF80000202809D007EB400044702A46B6
+:104EF00021460320FFF75AFB01208DE706F8254FD6
+:104F00000120F070F3E7B84901EB0010001DFFF736
+:104F1000D6BB7CB51D46134604460E4600F108027A
+:104F200021461846EDF796FE94F908000F2804DD97
+:104F30001F3820722068401C206096B10220AE49C4
+:104F400051F82610461820686946801B20F07F40E3
+:104F5000206094F908002844C01C1F2803DA0120AF
+:104F600009E00420EBE701AAEDF774FE9DF80400C8
+:104F700010B10098401C009000992068314408440A
+:104F8000C01C20F07F4060607CBD2DE9FE430C46D4
+:104F900006460978607990722079984615465072D5
+:104FA00041B19248803090F82E1020290AD0006933
+:104FB000401D0BE0D4E90223217903B02846BDE867
+:104FC000F043A6E78D484178701D084420F07F47E4
+:104FD000217900222846A368FFF79BFF394628461F
+:104FE00000F003FDD4E9023221796846FFF791FF12
+:104FF00041462846019CFFF7F5FE2B46224600213C
+:10500000304600F0DEFC002803D13146284600F08F
+:10501000ECFCBDE8FE832DE9FE4F814600F0A1FCCB
+:1050200030B1002799F8000020B10020BDE8FE8FC4
+:105030000127F7E76D4D6E4C4FF0000A803524B123
+:10504000002140F2D640AFF3008095F82D8085F81E
+:1050500023A0002624B1002140F2DB40AFF3008002
+:105060001FB94046FFF7DAFE804624B1002140F226
+:10507000E340AFF30080EDF76EFD43466A464946D4
+:10508000FFF783FF24B1002140F2E940AFF3008035
+:1050900095F82E0020280CD029690098401A0002AB
+:1050A000C21700EB1260001203D5684600F09DFCA9
+:1050B000012624B1002140F2F340AFF3008095F8BF
+:1050C00023000028BBD124B1002140F2F940AFF306
+:1050D0000080EDF740FD6B46464A002100F071FC70
+:1050E0000028A3D027B941466846FFF77BFE064358
+:1050F00026B16846FFF7E3FAC9F8080024B1002199
+:1051000040F20C50AFF3008001208FE72DE9F04F03
+:1051100089B08B46824600F024FC344C803428B39E
+:105120009BF80000002710B1012800D0FFDF304DB0
+:1051300025B1002140F28250AFF300802A490120BE
+:1051400001EB0A18A94607905FEA090604D000217E
+:1051500040F28A50AFF30080079800F0F9FB94F812
+:105160002D50002084F8230067B119E094F82E0038
+:105170000127202800D1FFDF9BF800000028D6D0AF
+:10518000FFDFD4E72846FFF749FE054626B1002198
+:1051900040F29450AFF3008094F823000028D3D15C
+:1051A00026B1002140F29E50AFF30080EDF7D3FC12
+:1051B0002B4602AA59460790FFF7E7FE98F80F0022
+:1051C0005FEA060900F001008DF8130004D0002109
+:1051D0004FF4B560AFF300803B462A4602A9CDF8F4
+:1051E00000A007980CE0000050080020500A0020A2
+:1051F00000000000FFFF3F00E85B02009E0000206F
+:10520000FFF731FE064604EB850090F82800009079
+:10521000B9F1000F04D0002140F2AF50AFF300808D
+:1052200000F08BFB0790B9F1000F04D0002140F291
+:10523000B550AFF3008094F82300002884D1B9F171
+:10524000000F04D0002140F2BD50AFF300800DF1FB
+:10525000080C9CE80E00C8E90112C8F80C304EB3E7
+:105260005FEA090604D0002140F2CA50AFF3008083
+:105270000098B84312D094F82E0020280ED126B101
+:10528000002140F2CF50AFF300802846FFF7AFFB7C
+:1052900020B99BF80000D8B3012849D0B9F1000F1C
+:1052A00004D0002140F2EC50AFF30080284600F01B
+:1052B0003DFB01265FEA090504D0002140F2F550CC
+:1052C000AFF30080079800F043FB25B1002140F2C6
+:1052D000F950AFF300808EB194F82D0004EB8000FC
+:1052E00090F82600202809D025B100214FF4C06095
+:1052F000AFF30080F9484078EDF70EFE25B10021AC
+:1053000040F20560AFF3008009B03046BDE8F08F91
+:10531000FFE7B9F1000F04D0002140F2D750AFF3FE
+:10532000008094F82D2051460420FFF73FF9C0E794
+:10533000002E3FF409AF002140F2E250AFF30080AD
+:1053400002E72DE9F84FE64D814695F82D004FF024
+:105350000008E44C4FF0010B474624B1002140F215
+:105360001360AFF30080584600F0F2FA85F823701E
+:1053700024B100214FF4C360AFF3008095F82D00F5
+:10538000FFF74CFD064695F8230028B1002CE4D029
+:10539000002140F21E604BE024B1002140F2226067
+:1053A000AFF30080CE48803800EB861111F8190069
+:1053B000032856D1334605EB830A4A469AF825005E
+:1053C000904201D1012000E0002000900AF1250068
+:1053D0000021FFF758FC01460098014203D001224A
+:1053E0008AF82820AF77E1B324B1002140F227608A
+:1053F000AFF30080324649460120FFF7D7F89AF80C
+:1054000028A024B1002140F23260AFF3008000F008
+:1054100094FA834624B1002140F23760AFF3008054
+:1054200095F8230038B1002C97D0002140F23B6062
+:10543000AFF3008091E7BAF1000F07D095F82E0086
+:10544000202803D13046FFF7D2FAE0B124B1002181
+:1054500040F24F60AFF30080304600F067FA4FF043
+:10546000010824B100214FF4CB60AFF3008058460F
+:1054700000F06EFA24B1002140F25C60AFF30080CE
+:105480004046BDE8F88F002CF1D0002140F24A6080
+:10549000AFF30080E6E70020EDF798BA0120EDF7C2
+:1054A00095BA8E48007870472DE9F0418C4C94F8FD
+:1054B0002E0020281FD194F82D6004EB860797F862
+:1054C0002550202D00D1FFDF8549803901EB861062
+:1054D00000EB4500407807F8250F0120F87084F8AC
+:1054E0002300294684F82E50324602202234FFF74A
+:1054F0005DF80020207004E42DE9F0417A4E784CEC
+:10550000012538B1012821D0022879D003287DD087
+:10551000FFDFF0E700F03DFAFFF7C6FF207E00B1A5
+:10552000FFDF84F821500020EDF777FAA168481CCE
+:1055300004D0012300221846EDF7C2FA14F82E0F0A
+:10554000217806EB01110A68012154E0FFF7ACFF56
+:105550000120EDF762FA94F8210050B1A068401CD8
+:1055600007D014F82E0F217806EB01110A680621E6
+:1055700041E0207EDFF86481002708F1020801285D
+:1055800003D002281ED0FFDFB5E7A777EDF733FB86
+:1055900098F80000032801D165772577607D53498D
+:1055A00051F8200094F8201051B948B161680123E6
+:1055B000091A00221846EDF783FA022020769AE7AE
+:1055C000277698E784F8205000F0E3F9A07F50B1E7
+:1055D00098F8010061680123091A00221846EDF7C6
+:1055E0006FFA257600E0277614F82E0F217806EB67
+:1055F00001110A680021BDE8F041104700E005E014
+:1056000036480078BDE8F041EDF786BCFFF74CFF67
+:1056100014F82E0F217806EB01110A680521EAE73C
+:1056200010B52F4C94F82E00202800D1FFDF14F87D
+:105630002E0F21782C4A02EB01110A68BDE81040B8
+:10564000042110477CB5264C054694F82E002028EE
+:1056500000D1FFDFA068401C00D0FFDF94F82E00CF
+:10566000214901AA01EB0010694690F90C00284479
+:10567000EDF7F0FA9DF904000F2801DD012000E0AC
+:105680000020009908446168084420F07F41A1602F
+:1056900094F82100002807D002B00123BDE8704033
+:1056A00000221846EDF70CBA7CBD30B5104A0B1A33
+:1056B000541CB3EB940F1FD3451AB5EB940F1BD3B7
+:1056C000934203D9101A43185B1C15E0954211D977
+:1056D000511A0844401C43420EE000009C00002088
+:1056E000D00A00200000000050080020E85B020003
+:1056F000FF7F841EFFDF0023184630BD01230022F8
+:1057000001460220EDF7DCB90220EDF786B9EDF78E
+:1057100022BA2DE9FC47BA4C054694F82E00202801
+:1057200000D1FFDF642D58D3B64A0021521B71EB24
+:10573000010052D394F82E20A0462046DFF8C892EC
+:1057400090F82D7009EB0214D8F8000001AA284443
+:105750006946EDF77FFA9DF90400002802DD009804
+:10576000401C0090A068009962684618B21A22F0A6
+:105770007F42B2F5800F30D208EB8702444692F8A0
+:105780002520202A0AD009EB02125268101A0002C2
+:10579000C21700EB1260001288421EDBA068401C9A
+:1057A00010D0EDF7D8F9A168081A0002C11700EB74
+:1057B00011600012022810DD0120EDF72EF94FF0E4
+:1057C000FF30A06020682844206026F07F402061E0
+:1057D000012084F82300BDE8FC870020FBE72DE9C9
+:1057E000F047874C074694F82D00A4F1800606EB9D
+:1057F000801010F8170000B9FFDF94F82D50A04674
+:10580000824C24B100214FF40760AFF3008040F6D2
+:105810007C0940F6850A06EB851600BF16F81700CE
+:10582000012818D0042810D005280ED006280CD046
+:105830001CB100214846AFF3008020BF002CEDD002
+:1058400000215046AFF30080E8E72A4639460120A0
+:10585000FEF7ACFEF2E74FF0010A4FF000094546B3
+:1058600024B1002140F68C00AFF30080504600F0D8
+:105870006FF885F8239024B1002140F69100AFF332
+:10588000008095F82D00FFF7C9FA064695F8230029
+:1058900028B1002CE4D0002140F697001FE024B18D
+:1058A000002140F69B00AFF3008005EB860000F17D
+:1058B000270133463A462630FFF7E5F924B10021A7
+:1058C00040F69F00AFF3008000F037F8824695F86D
+:1058D000230038B1002CC3D0002140F6A500AFF35F
+:1058E0000080BDE785F82D60012085F82300504633
+:1058F00000F02EF8002C04D0002140F6B200AFF3E7
+:105900000080BDE8F08730B504463D480D4690F86C
+:105910002D003B49803901EB801010F8140000B9CC
+:10592000FFDF394800EB0410C57330BD344981F8FE
+:105930002D00012081F82300704710B5344808B1CC
+:10594000AFF30080EFF3108000F0010072B610BDDD
+:1059500010B5002804D12F4808B1AFF3008062B61B
+:1059600010BD2D480068C005C00D10D0103840B2E1
+:10597000002804DB00F1E02090F8000405E000F0CE
+:105980000F0000F1E02090F8140D40097047082046
+:10599000704710B51A4C94F82400002804D1F6F78B
+:1059A0005FF8012084F8240010BD10B5144C94F861
+:1059B0002400002804D0F6F77CF8002084F82400A6
+:1059C00010BD10B51C685B68241A181A24F07F44B7
+:1059D00020F07F40A14206D8B4F5800F03D2904258
+:1059E00001D8012010BD002010BDD0E90032D21A2C
+:1059F00021F07F43114421F07F41C0E9003170471D
+:105A0000D00A0020FF1FA10750080020000000005E
+:105A1000000000000000000004ED00E02DE9F0416E
+:105A2000044680074FF000054FF001060CD56B4887
+:105A3000056006600EF01BFE20B16948016841F464
+:105A40008061016024F00204E0044FF0FF3705D5C7
+:105A500064484660C0F8087324F48054600003D59D
+:105A60006148056024F08044E0050FD55F48C0F828
+:105A70000052C0F808735E490D60091D0D605C4A54
+:105A800004210C321160066124F48074A00409D54D
+:105A900058484660C0F80052C0F808735648056080
+:105AA00024F40054C4F38030C4F3C031884200D0E1
+:105AB000FFDF14F4404F14D050484660C0F808731C
+:105AC0004F488660C0F80052C0F808734D490D6019
+:105AD0000A1D16608660C0F808730D60166024F415
+:105AE000404420050AD5484846608660C0F80873DF
+:105AF000C0F848734548056024F400640EF068FF60
+:105B00004348044200D0FFDFBDE8F081F0B5002239
+:105B1000202501234FEA020420FA02F1C9072DD003
+:105B200051B2002910DB00BF4FEA51174FEA870737
+:105B300001F01F0607F1E02703FA06F6C7F88061B7
+:105B4000BFF34F8FBFF36F8F0CDB00BF4FEA5117CE
+:105B50004FEA870701F01F0607F1E02703FA06F670
+:105B6000C7F8806204DB01F1E02181F8004405E020
+:105B700001F00F0101F1E02181F8144D02F1010261
+:105B8000AA42C9D3F0BD10B5224C20600846F6F7F2
+:105B90007CF82068FFF742FF2068FFF7B7FF0EF0A0
+:105BA000FDFA00F01AF90EF013FF0EF056FEEDF7B5
+:105BB0007FF9BDE810400EF0A1BB10B5154C206870
+:105BC000FFF72CFF2068FFF7A1FF0EF001FFF6F7AB
+:105BD0004FF90020206010BD0A207047FC1F0040D4
+:105BE0003C17004000C0004004E501400080004038
+:105BF0000485004000D0004004D5004000E0004093
+:105C000000F0004000F5004000B0004008B5004042
+:105C1000FEFF0FFDA000002070B526490A680AB3F8
+:105C20000022154601244B685B1C4B600C2B00D3F3
+:105C30004D600E7904FA06F30E681E420FD0EFF3A2
+:105C4000108212F0010272B600D001220C689C434F
+:105C50000C6002B962B649680160002070BD521C38
+:105C60000C2AE0D3052070BD4FF0E0214FF48000F6
+:105C7000C1F800027047EFF3108111F0010F72B606
+:105C80004FF0010202FA00F20A48036842EA0302F6
+:105C9000026000D162B6E7E706480021016041607A
+:105CA00070470121814003480068084000D001206E
+:105CB00070470000A40000200120810708607047A1
+:105CC0000121880741600021C0F8001118480170C7
+:105CD000704717490120087070474FF08040D0F896
+:105CE0000001012803D012480078002800D00120CC
+:105CF000704710480068C00700D0012070470D4869
+:105D00000C300068C00700D00120704709481430EB
+:105D100000687047074910310A68D20306D5096840
+:105D200001F00301814201D101207047002070473A
+:105D3000AC000020080400400021017008467047B4
+:105D40000146002008707047EFF3108101F0010157
+:105D500072B60278012A01D0012200E0002201235C
+:105D6000037001B962B60AB1002070474FF40050C9
+:105D70007047E9E7EFF3108111F0010F72B64FF0B1
+:105D80000002027000D162B600207047F2E7000006
+:105D90002DE9F04115460E460446002700F0E7F8CD
+:105DA000A84215D3002341200FE000BF94F8422001
+:105DB000A25CF25494F84210491CB1FBF0F200FBD3
+:105DC00012115B1C84F84210DBB2AB42EED3012708
+:105DD00000F0D9F83846BDE8F081704910B5802050
+:105DE00081F800046E49002081F8420081F84100EA
+:105DF000433181F8420081F84100433181F842008B
+:105E000081F841006748FFF797FF6648401CFFF79D
+:105E100093FFECF7BBFFBDE8104000F0B4B84020A2
+:105E200070475F4800F0A3B80A4601465C48AFE7F8
+:105E3000402070475A48433000F099B80A4601465E
+:105E400057484330A4E7402101700020704710B547
+:105E500004465348863000F08AF82070002010BDB8
+:105E60000A4601464E4810B58630FFF791FF08B14B
+:105E7000002010BD42F2070010BD70B50C4605466B
+:105E8000412900D9FFDF48480068103840B200F0CF
+:105E900050F8C6B20D2000F04CF8C0B2864203D2D2
+:105EA000FFDF01E0ECF7C2FF224629463C48FFF73E
+:105EB0006FFF0028F6D070BD2DE9F041394F002565
+:105EC00006463F1D57F82540204600F041F810B324
+:105ED0006D1CEDB2032DF5D33148433000F038F896
+:105EE000002825D02E4800F033F8002820D02C4878
+:105EF000863000F02DF800281AD0ECF76DFF294805
+:105F0000FFF722FFB0F5005F00D0FFDFBDE8F041F2
+:105F10002448FFF72FBF94F841004121265414F87C
+:105F2000410F401CB0FBF1F201FB12002070D3E7DF
+:105F300051E7002804DB00F1E02090F8000405E0C0
+:105F400000F00F0000F1E02090F8140D40097047B8
+:105F500010F8411F4122491CB1FBF2F302FB13115F
+:105F60004078814201D1012070470020704710F82D
+:105F7000411F4078814201D3081A02E0C0F141007C
+:105F80000844C0B2704710B50648FFF7DDFE002890
+:105F900003D1BDE81040ECF70ABF10BD0DE000E0F2
+:105FA000000B0020B000002004ED00E070B5154D9E
+:105FB0002878401CC4B26878844202D0F5F7EFFF1D
+:105FC0002C7070BD2DE9F0410E4C4FF0E02600BF63
+:105FD000F5F7DAFF20BF40BF20BF677820786070F8
+:105FE000D6F80052EBF70CFA854305D1D6F8040237
+:105FF00010B92078B842EBD0F5F7C1FF0020BDE81A
+:10600000F0810000C00000202DE9F04101252803A7
+:106010004FF0E0210026C1F88001BFF34F8FBFF39E
+:106020006F8F1F4CC4F800610C2000F02CF81D4845
+:1060300001680268C94341F3001142F01002026096
+:10604000C4F804532560491C00E020BFD4F80021A7
+:10605000002AFAD019B9016821F010010160124834
+:1060600007686560C4F80853C4F800610C2000F0AC
+:106070000AF83846BDE8F08110B50446FFF7C4FFC2
+:106080002060002010BD002809DB00F01F02012164
+:1060900091404009800000F1E020C0F88012704774
+:1060A00000C0004010ED00E008C500402DE9F047B9
+:1060B000FF4C0646FF21A06800EB06121170217804
+:1060C000FF2910D04FF0080909EB011109EB061761
+:1060D0004158C05900F0F4F9002807DDA168207884
+:1060E00001EB061108702670BDE8F08794F8008077
+:1060F00045460DE0A06809EB05114158C05900F074
+:10610000DFF9002806DCA068A84600EB0810057837
+:10611000FF2DEFD1A06800EB061100EB08100D7009
+:106120000670E1E7F0B5E24B0446002001259A68CD
+:106130000C269B780CE000BF05EB0017D75DA7424B
+:1061400004D106EB0017D7598F4204D0401CC0B2CF
+:106150008342F1D8FF20F0BD70B5FFF7D8FAD44CD8
+:1061600008252278A16805EB0212895800F0A8F9E9
+:10617000012808DD2178A06805EB01114058BDE831
+:106180007040FFF7BBBAFFF78CF9BDE87040ECF741
+:10619000C3BE2DE9F041C64C2578FFF7B8FAFF2DB4
+:1061A0006ED04FF00808A26808EB0516915900F070
+:1061B00087F90228A06801DD80595DE000EB051138
+:1061C00009782170022101EB0511425C5AB1521E7F
+:1061D0004254815901F5800121F07F4181512846C7
+:1061E000FFF764FF34E00423012203EB051302EB05
+:1061F000051250F803C0875CBCF1000F10D0BCF54D
+:10620000007F10D9CCF3080250F806C00CEB423CDA
+:106210002CF07F4C40F806C0C3589A1A520A09E085
+:10622000FF2181540AE0825902EB4C3222F07F4276
+:106230008251002242542846FFF738FF0C21A06803
+:1062400001EB05114158E06850F827203846904787
+:106250002078FF2814D0FFF75AFA2278A16808EBBB
+:1062600002124546895800F02BF9012893DD217868
+:10627000A06805EB01114058BDE8F041FFF73EBAB8
+:10628000BDE8F081F0B51D4614460E460746FF2BCB
+:1062900000D3FFDFA00700D0FFDF8548FF210022E9
+:1062A000C0E90247C57006710170427082701046E5
+:1062B000012204E002EB0013401CE154C0B2A842EA
+:1062C000F8D3F0BD70B57A4C0646657820798542E2
+:1062D00000D3FFDFE06840F825606078401C607004
+:1062E000284670BD2DE9FF5F1D468B460746FF24FB
+:1062F000FFF70DFADFF8B891064699F80100B842A9
+:1063000000D8FFDF00214FF001084FF00C0A99F888
+:106310000220D9F808000EE008EB0113C35CFF2B44
+:106320000ED0BB4205D10AEB011350F803C0DC4587
+:106330000CD0491CC9B28A42EED8FF2C02D00DE025
+:106340000C46F6E799F803108A4203D1FF2004B007
+:10635000BDE8F09F1446521C89F8022008EB041196
+:106360000AEB0412475440F802B00421029B0022B9
+:10637000012B01EB04110CD040F801204FF4007800
+:1063800008234FF0020C454513D9E905C90D02D089
+:1063900002E04550F2E7414606EB413203EB0413BD
+:1063A00022F07F42C250691A0CEB0412490A815450
+:1063B0000BE005B9012506EB453103EB041321F091
+:1063C0007F41C1500CEB0411425499F80050204613
+:1063D000FFF76CFE99F80000A84201D0FFF7BCFE61
+:1063E0003846B4E770B50C460546FFF790F9064607
+:1063F00021462846FFF796FE0446FF281AD02C4D6A
+:10640000082101EB0411A8684158304600F058F803
+:1064100000F58050C11700EBD14040130221AA685B
+:1064200001EB0411515C09B100EB4120002800DCB4
+:10643000012070BD002070BD2DE9F04788468146DF
+:10644000FFF770FE0746FF281BD0194D2E78A8686D
+:106450003146344605E0BC4206D0264600EB061223
+:106460001478FF2CF7D10CE0FF2C0AD0A6420CD1F7
+:1064700000EB011000782870FF2804D0FFF76CFEB5
+:1064800003E0002030E6FFF73FF941464846FFF7BA
+:10649000A9FF0123A968024603EB0413FF20C85497
+:1064A000A878401EB84200D1A87001EB041001E0AA
+:1064B000CC0B002001EB061100780870104613E6A3
+:1064C000081A0002C11700EB1160001270470000AB
+:1064D0005E4800210170417010218170704770B5D5
+:1064E000054616460C460220ECF7F2F95749012002
+:1064F00008705749F01E086056480560001F046088
+:1065000070BD10B50220ECF7E3F950490120087086
+:1065100051480021C0F80011C0F80411C0F808115A
+:106520004E494FF40000086010BD48480178D9B1C9
+:106530004B4A4FF4000111604749D1F80031002265
+:10654000002B1CBFD1F80431002B02D0D1F8081168
+:1065500019B142704FF0100104E04FF00101417099
+:1065600040490968817002704FF00000ECF7B0B943
+:1065700010B50220ECF7ACF934480122002102707A
+:106580003548C0F80011C0F80411C0F808110260C5
+:1065900010BD2E480178002904BF407870472E486E
+:1065A000D0F80011002904BF02207047D0F8001174
+:1065B00000291CBFD0F80411002905D0D0F808012B
+:1065C000002804BF01207047002070471F4800B515
+:1065D0000278214B4078C821491EC9B282B1D3F854
+:1065E00000C1BCF1000F10D0D3F8000100281CBF7F
+:1065F000D3F8040100280BD0D3F8080150B107E00C
+:10660000022802D0012805D002E00029E4D1FFDFF2
+:10661000002000BD012000BD0C480178002904BF06
+:10662000807870470C48D0F8001100291CBFD0F8C2
+:106630000411002902D0D0F8080110B14FF0100069
+:10664000704708480068C0B270470000C2000020D0
+:1066500010F5004008F5004000F0004004F501404E
+:1066600008F5014000F400405648002101704170D7
+:10667000704770B5064614460D460120ECF728F920
+:1066800051480660001D0460001D05604F49002050
+:10669000C1F850014E49032008604F494D48086039
+:1066A000091D4E48086070BD2DE9F041054645487A
+:1066B0000C46012606704A4945EA024040F08070C7
+:1066C00008600DF0AAFF002804BF464804600027B8
+:1066D000454CC4F80471464944480860002D02BF87
+:1066E000C4F800622660BDE8F081012D18BFFFDF0D
+:1066F000C4F80072266040493E480860BDE8F08159
+:106700003048017871B13A4A384911603649D1F8B8
+:1067100004210021002A08BF417002D0374A1268C4
+:10672000427001700020ECF7D3B8264801780029A8
+:1067300004BF407870472C48D0F80401002808BFF7
+:1067400070472E480068C0B27047002808BF7047E5
+:1067500030B51C480078002808BFFFDF2248D0F879
+:106760000411002918BF30BD0224C0F80443DFF82B
+:1067700090C0DCF80010C1F30015DCF8001041F007
+:106780001001CCF80010D0F80411002904BF4FF418
+:1067900000414FF0E02206D1C2F8801220BFD0F8AD
+:1067A0000431002BF8D02DB9DCF8001021F01001D5
+:1067B000CCF80010C0F8084330BD0B4901208860B8
+:1067C00070470000C500002008F5004000100040A0
+:1067D0001CF500405011004098F501400CF00040BD
+:1067E00004F5004018F5004000F0004000000203EE
+:1067F00008F501400000020204F5014000F40040E9
+:1068000010ED00E010B5FE48002401214470047032
+:1068100044728472C17280F82540C462846380F837
+:106820003C4080F83D40FF2180F83E105F2180F819
+:106830003F1018300FF052F8F249601E0860091D31
+:106840000860091D0C60091D0860091D0C60091D08
+:106850000860091D0860091D0860091D0860091D00
+:106860000860091D0860091D0860091D0860091DF0
+:10687000086010BDE448016801F00F01032904BF5E
+:1068800001207047016801F00F01042904BF0220B4
+:106890007047016801F00F01052904D0006800F07D
+:1068A0000F00062807D1D948006810F0060F0CBF6A
+:1068B00008200420704700B5FFDF012000BD10B59F
+:1068C000CF4C0168A1614168E161007A84F8200041
+:1068D000207E48B1207FF7F7C4FCA07E011C18BFC2
+:1068E0000121207FF7F7ACFC607E002808BF10BDB7
+:1068F000607FF7F7B6FCE07E011C18BF0121607FC6
+:10690000BDE81040F7F79CBC30B5002405460129CE
+:106910000AD0022908BF4FF0807405D0042916BFA1
+:1069200008294FF0C744FFDF44F4847040F480101E
+:10693000B749086045F4403001F1040140F00070AF
+:10694000086030BD30B50024054601290AD002296F
+:1069500008BF4FF0807405D0042916BF08294FF0F6
+:10696000C744FFDF44F4847040F48010A8490860F5
+:1069700045F4403001F1040140F000700860A54882
+:10698000D0F80001002818BFFFDF30BD2DE9F0412D
+:1069900002274FF0E02801250024C8F88071BFF3DA
+:1069A0004F8FBFF36F8F9C48046005600DF05FFE52
+:1069B0009A4E18B1306840F4806030600DF02DFEC2
+:1069C00038B1306820F0770040F0880040F0004097
+:1069D00030609449924808604FF01020806CB0F10C
+:1069E000FF3F04D090490A6860F317420A608F495C
+:1069F00040F25B600860091F40F203100860081F46
+:106A00000560814903200860894805608A4A8949F0
+:106A100011608B4A89491160121F8A49116001680F
+:106A200021F440710160016841F480710160C8F88F
+:106A3000807278491020C1F80403714880F8314011
+:106A4000C462BDE8F0816E4A0368C2F802308088F3
+:106A5000D080117270476A4B10B51A7A8A4208D1F9
+:106A600001460622981C0EF05DFD002804BF01209F
+:106A700010BD002010BD624890F825007047604AA4
+:106A8000517010707047F0B50546800000F18040ED
+:106A900000F580508B88C0F820360B78D1F80110B3
+:106AA00043EA0121C0F8001605F10800012707FAA2
+:106AB00000F6654C002A04BF2068B04304D0012AC8
+:106AC00018BFFFDF206830432060206807FA05F117
+:106AD00008432060F0BD0EF0D1B8494890F832006C
+:106AE00070475A4AC178116000685949000208602D
+:106AF0007047252808BF02210ED0262808BF1A217A
+:106B00000AD0272808BF502106D00A2894BF0422A3
+:106B1000062202EB4001C9B24E4A11604E4908609C
+:106B2000704737498A7A012A49D0022A18BF70472C
+:106B30004B7E002B08BF7047012A44D0CB7E4A7F92
+:106B400013F1000C18BF4FF0010C24231844434BE1
+:106B50001860434B0020C3F84C0110028CF0010276
+:106B600040EA025040F0031291F82000830003F144
+:106B7000804303F5C043C3F810253A4A8B7F02EBEC
+:106B80008000DA0002F1804202F5F832C2F8140502
+:106B9000DFF8D4C0C2F810C5C97FCA0002F1804234
+:106BA00002F5F832C2F814052648C2F81005012093
+:106BB00000FA03F288402D491043086070470B7EAD
+:106BC000002BB9D170478B7E0A7F002B14BF4FF08A
+:106BD000010C4FF0000C1123B8E72DE9F0410D4EE8
+:106BE000804603200D46C6F8000220492048086070
+:106BF00028460EF082F80124014FB8F1000F39E069
+:106C0000DC0B0020000E0040101500401414004062
+:106C10001415004000100040FC1F00403C170040CD
+:106C20002C000089781700408C1500403815004072
+:106C30005016004000000E0408F50140408000405E
+:106C4000A4F50140101100404016004024150040FA
+:106C50001C15004008150040541500404C850040AC
+:106C600000800040006000404C81004004F501407D
+:106C70000000040404BFBC72346026D0B8F1010FD8
+:106C800023D1FE48006860B915F00C0F09D0C6F892
+:106C90000443012000F0B4FEF463346487F83C4000
+:106CA00002E0002000F0ACFE28460EF00EF90220B3
+:106CB000B8720DF0CAFC38B90DF0D9FC20B9F04813
+:106CC000016841F4C02101607460EE48C464EE487C
+:106CD00000682946BDE8F04123E72DE9F047EB4E77
+:106CE000814603200D46C6F80002DFF8A883E84875
+:106CF000C8F8000008460EF000F828460EF0E5F847
+:106D00000124E54FB9F1000F03D0B9F1010F0AD00A
+:106D100026E0BC72B86B40F48010B8634FF480106A
+:106D2000C8F800001CE00220B872B86B40F40010F4
+:106D3000B8634FF40010C8F80000D048006860B98C
+:106D400015F00C0F09D0C6F80443012000F058FEDE
+:106D5000F463346487F83C4002E0002000F050FE09
+:106D6000EBF794FF2946BDE8F047DAE62DE9F84F46
+:106D7000C64C8246032088461746C4F80002DFF856
+:106D80001493C348C9F8000010460DF0B6FFDFF8B1
+:106D90000CB3C14E0125BAF1000F04BFCBF800407F
+:106DA000B57204D0BAF1010F18BFFFDF2FD0BC4875
+:106DB000C0F80080BC49BB480860B06B40F40020BC
+:106DC000B063D4F800321021C4F808130020C4F8CE
+:106DD0000002DFF8D8C28A03CCF80020C4F8000112
+:106DE000C4F80C01C4F81001C4F80401C4F814017B
+:106DF000C4F81801AE4800680090C4F80032C9F821
+:106E00000020C4F80413BAF1010F09D01BE0384682
+:106E10000EF05BF8A748CBF800000220B072C6E77E
+:106E20009648006860B917F00C0F09D0C4F80453F5
+:106E3000012000F0E5FDE563256486F83C5002E0A2
+:106E4000002000F0DDFD4FF40020C9F800008D485F
+:106E5000C5648D480068404528BFFFDF394640467D
+:106E6000BDE8F84F5DE62DE9F0418B4C0646002564
+:106E700094F8310017468846002808BFFFDF16B196
+:106E8000012E16D021E094F83100012808D094F8A2
+:106E90003020394640460DF045FFE16A451814E0C0
+:106EA00094F830103A4640460DF07AFFE16A4518F2
+:106EB0000BE094F8310094F8301001283A4640462F
+:106EC00009D00DF095FFE16A45183A46294630464B
+:106ED000BDE8F0414AE70DF045FFE16A4518F4E7E7
+:106EE0002DE9F84F694CD4F8000220F00B09D4F8D2
+:106EF00004034FF0100AC0F30018C4F808A30026DA
+:106F0000C4F8006269486C490160634D0127A97AA1
+:106F1000012902D0022903D015E0297E11B912E01F
+:106F2000697E81B1A97FEA7F07FA01F107FA02F2CF
+:106F30001143016095F82000800000F1804000F5C9
+:106F4000C040C0F81065FF208DF80000C4F8106143
+:106F5000276104E09DF80000401E8DF800009DF8B8
+:106F6000000018B1D4F810010028F3D09DF80000FB
+:106F7000002808BFFFDFC4F81061002000F040FDCA
+:106F80006E72AE72EF72C4F80092B8F1000F18BFC3
+:106F9000C4F804A3BDE8F88FFF2008B58DF8000001
+:106FA0003A480021C0F810110121016105E000BF3D
+:106FB0009DF80010491E8DF800109DF8001019B1C1
+:106FC000D0F810110029F3D09DF80000002808BF68
+:106FD000FFDF08BD0068394920F07F400860704736
+:106FE0004FF0E0200221C0F8801100F5C070BFF31F
+:106FF0004F8FBFF36F8FC0F8001170474FF0E02143
+:107000000220C1F8000170472D49087070472D49D2
+:107010000860704770B50546EBF738FE1E4C2844F3
+:10702000E16A884298BFFFDF01202074EBF72EFE53
+:10703000144A284400216061C2F8441122490860C2
+:10704000A06B144940F48000A063D001086070BDBB
+:1070500070B5114C05461D4A0220207410680E467A
+:1070600000F00F00032808BF01223ED0106800F096
+:107070000F00042808BF022237D029E088170040FB
+:1070800068150040008000404C8500400010004022
+:107090000000040404F50140DC0B0020ACF50140C5
+:1070A0004885004048810040A8F5014008F50140AE
+:1070B000181100400410004000000E043C15004070
+:1070C000C700002004150040448500401015004012
+:1070D000106800F00F0005281BD0106800F00F00AA
+:1070E00006281CBFFFDF012213D094F8310094F86A
+:1070F0003010012815D028460DF0C1FEFF4960610F
+:107100000020C1F844016169E06A0844FC49086054
+:1071100070BDFC48006810F0060F0CBF0822042266
+:10712000E3E7334628460DF078FEE7E7F6494FF4EB
+:1071300080000860F548816B21F4800181630021A3
+:1071400001747047C20002F1804202F5F832F04B40
+:10715000C2F81035C2F8141501218140ED480160D4
+:10716000EA48826B114381637047E4480121416022
+:10717000C1600021C0F84411E1480160E348C162E8
+:107180007047E5490860E548D0F8001241F0400139
+:10719000C0F800127047E148D0F8001221F0400119
+:1071A000C0F80012DC49002008607047DB48D0F8C6
+:1071B000001221F01001C0F8001201218161704716
+:1071C000D249FF2081F83E00D4480021C0F81C11AC
+:1071D000D0F8001241F01001C0F800127047CF49FA
+:1071E00081B0D1F81C21012A0DD0C84991F83E1078
+:1071F000FF290DBF00204942017001B008BF704750
+:10720000012001B07047C64A126802F07F02524264
+:1072100002700020C1F81C01C24800680090EFE72E
+:10722000F0B517460C00064608BFFFDFB74D14F057
+:10723000010F2F731CBF012CFFDF002E0CBF01209C
+:1072400002206872EC7201281CBF0228FFDFF0BD2B
+:10725000AE4981F83F0070472DE9F84FDFF8C8A22A
+:107260009AF80000042828BFFFDFA84CDFF89882B6
+:10727000AA4D94F83C0000260127E0B1D5F804019E
+:1072800010F1000918BF4FF00109D5F810010028CE
+:1072900018BF012050EA09014FF4002B17D08021BC
+:1072A000C5F80813C8F800B084F83C6090F0010FEE
+:1072B00018BFBDE8F88FDFF84492D9F84C010028D8
+:1072C0007ED0A07A01287CD002287BD0AEE0D5F811
+:1072D0000001DFF84CA230B3C5F800616F61FF20F8
+:1072E000009002E0401E009005D0D5F81C01002857
+:1072F0000098F7D000B9FFDFDAF8000000F07F0A4D
+:1073000094F83F0050453CBF002000F079FB84F822
+:107310003EA0C5F81C61C5F808738248006800905B
+:107320002F64AF6302E0B9F1000F03D0B9F1000F91
+:107330002BD05DE0DAF8000000F07F0084F83E001A
+:10734000C5F81C6194F83D1049B194F83F10814292
+:1073500018D2002000F054FB2F64AF6312E0734991
+:10736000096894F83F308AB2090C984203D30F2A77
+:1073700006D9022904D2012000F042FB2F6401E06B
+:107380002F64AF636748006800908022C5F804232B
+:107390005A48876466490B68A1F1040CDCF800C008
+:1073A00043F698273B44634519D20A6842F21073AA
+:1073B0001A440A60C0F848615F495E48086002E00C
+:1073C00034E01CE01EE0091F5C4808605148C0F82A
+:1073D00000B0A06B40F40020A063BDE8F88F0E6001
+:1073E000C0F84861C5F80823C8F800B0C0F8486183
+:1073F0008020C5F80803C8F800B0BDE8F88F207EEB
+:1074000010B913E0607E88B1A07FE17F07FA00F039
+:1074100007FA01F10843C8F8000094F82000800042
+:1074200000F1804000F5C040C0F810653648A16BFF
+:107430000160A663217C002019B1D9F8441101290B
+:1074400000D00021A27A012A56D0022A55D000BFCE
+:10745000D5F8101101290CBF1021002141EA0008C4
+:107460003748016811F0FF0F03D0D5F81411012936
+:1074700000D0002184F83210006810F0FF0F03D014
+:10748000D5F81801012800D0002084F833002D48D9
+:10749000006884F83400FFF77CF8012818BF00204A
+:1074A00084F83500C5F80061C5F80C61C5F81061B5
+:1074B000C5F80461C5F81461C5F818612248006870
+:1074C00000900E48C0F8446120480068DFF8309012
+:1074D0000090D9F80000A062A9F104000068E06201
+:1074E0001B48016801F00F01032908BF012042D0A9
+:1074F000016801F00F012DE045E04BE00080004005
+:10750000448500401414004008F50140DC0B0020C5
+:107510000411004004F501406015004000100040D7
+:10752000481500401C110040C700002074150040A1
+:107530004885004014100040ACF5014048810040EF
+:1075400040160040101400401811004044810040D3
+:1075500010150040042908BF02200CD0016801F07A
+:107560000F01052925D0006800F00F0006281CBF78
+:10757000FFDF01201DD084F83000A07A84F83100AC
+:1075800002282BD11DE0D5F80C01012814BF0020E2
+:1075900008205DE7D5F80C01012814BF0020022067
+:1075A000F64A1268012A14BF04220022104308433D
+:1075B0004EE7F348006810F0060F0CBF08200420C7
+:1075C000D9E7607850B1EF49096809780840217817
+:1075D00031EA000008BF84F8247001D084F82460E8
+:1075E00018F0020F0AD0EBF751FBA16AE64A081A1D
+:1075F0009AF80010490852F82110884718F0010F36
+:1076000018BF4FF0000B11D0EBF740FBE16A9AF87E
+:107610000020081ADD4951F822205946904700BF42
+:107620009AF8000010F0010F2FD10CE018F0020FB3
+:1076300018BF4FF0010BE7D118F0080F18BF4FF03B
+:10764000020BE1D1ECE7DFF83CB3DBF80000007897
+:1076500000F00F00072828BF84F8256015D2DBF85A
+:107660000000062200F10901A01C0DF05BFF40B9EB
+:10767000207ADBF800100978B0EBD11F08BF012099
+:1076800001D04FF0000084F82500E17A4FF00000AF
+:1076900011F0020F1CBF18F0020F18F0040F19D1DF
+:1076A00011F0100F1CBF94F83320002A02D094F878
+:1076B00035207AB111F0080F1CBF94F82420002A5D
+:1076C00008D111F0040F02D094F8251011B118F070
+:1076D000010F01D04FF00100617A19B168B1FFF7D5
+:1076E000FFFB10E0AB48AA490160D5F8000220F08A
+:1076F0000300C5F80002E77205E001290DD0022958
+:1077000018BFFFDF10D018F0010F17D0A2489AF869
+:10771000001050F82100804756E06672E772A772A9
+:107720009621227B002006E06672E7720220A0729A
+:10773000227B96210120FFF796FBE4E718F0020F69
+:107740002DD018F0040F21D10CF07FFFF0B90CF010
+:107750008EFFD8B991480168001F0068C0F3006C23
+:10776000C0F3425500F00F03C0F30312C0F303202F
+:10777000BCF1000F0AD0002B1CBF002A002805D145
+:10778000002918BF032D38BF48F0040827EA9800E5
+:1077900083499AF8002051F82210884714E018F025
+:1077A000080F06D07F489AF8001050F82100804753
+:1077B0000AE018F0100F08BFFFDF05D07A489AF8EA
+:1077C000001050F821008047A07A022818BFBDE8B9
+:1077D000F88F207C002808BFBDE8F88F7349C1F8F6
+:1077E0004461022814D0012818BFFFDFE16A6069F4
+:1077F000884298BFFFDF6069C9F80000A06B4FF4B2
+:10780000800140F48000A06369480160BDE8F88F02
+:107810006169E06A0844EFE738B5664D0024002846
+:1078200018BFC5F800426448006864498A7A012A92
+:1078300002D0022A03D018E00A7E12B915E04A7E6F
+:107840009AB18B7F012291F81FC002FA03F302FA6A
+:107850000CF21A434F4B1A6091F82010890001F185
+:10786000804101F5C041C1F810450121FFF759F9E8
+:10787000C5F80041C5F80C41C5F81041C5F80441F0
+:10788000C5F81441C5F818414D480068009038BD4E
+:10789000012804BF28207047022804BF1820704721
+:1078A000042812BF08284FF4A870704700B5FFDF06
+:1078B000282000BD012804BF41F6A47070470228AB
+:1078C00004BF41F288307047042804BF46F2180014
+:1078D0007047082804BF47F2A030704700B5FFDFAB
+:1078E00041F6A47000BD10B502280DD0012804BFD8
+:1078F00042F6CE3010BD042817BF082843F6A44036
+:10790000FFDF41F66A0010BD0CF07AFE30B90CF0D2
+:1079100084FE002808BF41F6583001D041F264309F
+:1079200041F29A01084410BD012812BF022800202C
+:107930007047042812BF08284FF4C870704700B57C
+:10794000FFDF002000BD1B490820C1F800021149DB
+:107950000F4808601C491B480860091D1B48086047
+:107960001C491B480860091D1B48086010494FF45A
+:10797000602008601149022088727047001400409E
+:107980001414004004150040005C0200485C020032
+:107990000000040408F50140085C02005414004093
+:1079A000185C0200285C0200385C02000080004085
+:1079B00004F501400010004040850040DC0B002031
+:1079C000181100400011004098F5014014100040CB
+:1079D0001C110040A8F50140101000401948016832
+:1079E00003291BBF006802280120002070471548AA
+:1079F00001680B291BBF00680A280120002070477E
+:107A000011490968C9B9114A1149136870B123F0C5
+:107A1000820343F07D0343F0004313600A6822F0C1
+:107A2000100242F0600242F0004205E023F0004301
+:107A300013600A6822F000420A60064981F83D009E
+:107A40007047000050150040881700403C17004068
+:107A50007C170040DC0B002010B53F4822210DF0C0
+:107A60000CFE3D480024017821F010010170012135
+:107A700006F064F839494FF6FF7081F82240888497
+:107A800037490880488010BD704734498A8C82424B
+:107A900018BF7047002081F822004FF6FF708884DD
+:107AA00070472D49016070472D49088070472B4968
+:107AB0008A8CA2F57F43FF3B03D00021016008467A
+:107AC000704791F822202549012A1ABF0160012040
+:107AD00000207047214901F1220091F82220012A5B
+:107AE00004BF00207047012202701D48008888846E
+:107AF000104670471A49488070471849184B8A8CBD
+:107B00005B889A4206D191F82220002A1EBF0160AC
+:107B100001207047002070471048114A818C52881C
+:107B2000914209D14FF6FF71818410F8221F19B1DB
+:107B30000021017001207047002070470748084A63
+:107B4000818C5288914205D190F8220000281CBFF8
+:107B50000020704701207047420C00201C0C0020C0
+:107B6000C80000207047574A012340B1012818BFC0
+:107B700070471370086890608888908170475370D0
+:107B80000868C2F802008888D08070474D4A10B15A
+:107B9000012807D00EE0507860B1D2F802000860EA
+:107BA000D08804E0107828B19068086090898880B7
+:107BB0000120704700207047424910B1012803D0CE
+:107BC00006E0487810B903E0087808B10120704752
+:107BD0000020704730B58DB00C4605460D2104A835
+:107BE0000DF06DFDE0788DF81F0020798DF81E00F6
+:107BF00060798DF81D002868009068680190A86879
+:107C00000290E868039068460CF062FB20789DF8CB
+:107C10002F1088420CD160789DF82E10884207D131
+:107C2000A0789DF82D10884202BF01200DB030BD14
+:107C300000200DB030BD30B50C4605468DB04FF07C
+:107C4000030104F1030012B1FEF7F8F801E0FEF7BA
+:107C500014F960790D2120F0C00040F040006071FF
+:107C600004A80DF02CFDE0788DF81F0020798DF828
+:107C70001E0060798DF81D002868009068680190EA
+:107C8000A8680290E868039068460CF021FB9DF814
+:107C90002F0020709DF82E0060709DF82D00A070C0
+:107CA0000DB030BD10B5002904464FF0060102D0DA
+:107CB000FEF7C4F801E0FEF7E0F8607920F0C000BC
+:107CC000607110BDCC000020FE48406870472DE96F
+:107CD000F0410F46064601461446012005F0F8FA29
+:107CE000054696F85500FFF7E5FD4AF2B121084434
+:107CF0004FF47A71B0FBF1F0718840F27122514378
+:107D0000C0EB4100001BA0F2653403F03DF80028F1
+:107D100018BF1E3CAF4234BF28463846A04203D2AB
+:107D2000AF422CBF3C462C467462BDE8F0812DE981
+:107D3000FF4F95B0044690F8550089461190DDE953
+:107D4000171008431390E048002605780C2D28BF33
+:107D5000FFDFDE4F37F8158094F874510C2D28BFE3
+:107D6000FFDFDA4830F8150040441FFA80F894F835
+:107D700065000D280CBF012000200C9017980028EA
+:107D800004BF94F8140103282BD10C9848B3B4F81D
+:107D90009601484525D1D4F81C01C4F80801608833
+:107DA00040F2E2414843C4F80C01B4F86201B4F86F
+:107DB000EE100844C4F81001204602F0EFFFB4F8BA
+:107DC0009A01E08294F898016075B4F89C01608093
+:107DD000B4F89E01A080B4F8A001E080022084F8ED
+:107DE0001401D4F86C011090D4F868010F90B4F825
+:107DF000EE70B4F86001D4F85C110891179921B1C4
+:107E000094F8281151B100F0DDB804F1E8010391B4
+:107E100074310D9104F5A475091D07E004F59E71F8
+:107E20000391091D0D9104F59675091D0E91B4F885
+:107E30005810A9EB0000A9EB01010FFA80FA0FFA24
+:107E400081FBBAF1000F05DAD4F85801089001203F
+:107E5000DA461390002002909B480079E8B3F3F7CC
+:107E600039FFD0B3B4F80001022836D394F81401D6
+:107E7000022832D094F82B0178BB94F87481B8F1C1
+:107E80000C0F28BFFFDF914830F8180000F5C860DC
+:107E90001FFA80F894F8140101287DD0618840F21F
+:107EA000E24041430020B8F1000F05D0884808FBAC
+:107EB00001F1B1FBF0F0401C07EB0B01A1EB0A0252
+:107EC000D4F81C1180B2431A029902FB03110291EB
+:107ED000C4F81C01012084F82B0194F81401002837
+:107EE00074D0012800F04682022800F09481032813
+:107EF00018BFFFDF00F078820298311A0898FCF76B
+:107F0000BCFB0D99012640F2712208600E98A0F882
+:107F10000090002028702E710D980068A86061887C
+:107F2000D4F81C015143C0EB41006749A0F2353041
+:107F30000862C969814287BF03990860039801609C
+:107F40000398616A0068084400F2A510E86002F036
+:107F50001BFF10B1E8681E30E8606E71B4F8D800FD
+:107F6000A0EB090000B20028C4BF032068710C9880
+:107F70000028189800F09A82D8B100BFB4F8001118
+:107F800000290CBF0020B4F80201A4F8020194F803
+:107F90000421401C504300E019E0884209D268796E
+:107FA000401E002805DD6E71B4F80201401CA4F8E3
+:107FB00002011798002800F0A18294F828010028F7
+:107FC00000F0988219B00220BDE8F08F65E094F8C7
+:107FD0006800032857D03B4894F8551090F83000BB
+:107FE00005F023FBE18A40F27122514300EB41018D
+:107FF0000020D4F80C21B8F1000F06D0344808FB5B
+:1080000002F2B2FBF0F000F10100D4F80831D4F82C
+:108010001021A0EB030C029BC4F8080102FB0C33F7
+:108020004FF0000007D000BF294808FB01F1B1FB69
+:10803000F0F000F10100D4F81811C4F81801A0EB19
+:1080400001011944608840F2E24300FB03F34FF062
+:10805000000006D01E4808FB03F3B3FBF0F000F16C
+:10806000010007EB0B03A3EB0A03A3EB0202D4F816
+:108070001C31A2F10102A0EB030302FB03110291E8
+:10808000C4F81C0126E7E18A40F27122D4F80C0101
+:1080900001FB02F100EB4101AAE70F98002808BF9D
+:1080A000FFDF94F85510074890F8300005F0BDFA4E
+:1080B0000790E18A40F271204143079800EB4101AB
+:1080C000002007E0640C0020DC000020585C020067
+:1080D00040420F00B8F1000F07D000BFFF4808FB77
+:1080E00001F1B1FBF0F000F10100C4F81801618862
+:1080F00040F2E24001FB00F14FF0000006D0F748EB
+:1081000008FB01F1B1FBF0F000F10100C4F81C0123
+:1081100086B221464FF00100D4F828A005F0D8F827
+:10812000074694F85500FFF7C5FB4AF2B12B5844B7
+:108130004FF47A78B0FBF8F0618840F27122514335
+:10814000C0EB4100801BA0F2653602F01DFE002846
+:1081500018BF1E3EBA4534BF38465046B04203D21F
+:10816000BA452CBF56463E46666294F85500FFF766
+:10817000DBFB00F2E140B0FBF8F10F980E1894F829
+:108180005500FFF7D1FB074694F85500FFF792FB27
+:1081900038444AF2AB310844B0FBF8F1E28A40F2CD
+:1081A000712042430798D4F8187100EB4200401A3E
+:1081B000C01B3044A0F12006617D40F2E24011FB7B
+:1081C00000FA94F85500009010F00C0F0ABF0098C8
+:1081D0004EF62830FFF76EFB5844B0FBF8F000EB8A
+:1081E000470000EB0A070098FFF752FB384400F104
+:1081F0006201BB48C16194F85500FFF795FB00F29E
+:10820000E140B0FBF8F10F980844301AB0F53D7F1B
+:1082100098BFFFDF70E6E18A40F27122D4F80C01CA
+:10822000514300EB41010020B8F1000F07D000BF1F
+:10823000AA4808FB01F1B1FBF0F000F10100C4F81D
+:108240001801608840F2E24100FB01F14FF00000AC
+:1082500006D0A24808FB01F1B1FBF0F000F10100EB
+:10826000C4F81C0186B221464FF00100D4F828A0C2
+:1082700005F02EF8804694F85500FFF71BFB4AF2F4
+:10828000B12B00EB0B014FF47A70B1FBF0F0618879
+:1082900040F271225143C0EB4100801BA0F26536D1
+:1082A00002F072FD002818BF1E3EC24534BF404692
+:1082B0005046B04203D2C2452CBF5646464666627F
+:1082C0000FBB1898F8B194F855603046FFF7F2FAF2
+:1082D00000EB0B014FF47A70B1FBF0F0D4F81811F9
+:1082E000E38A084440F27122D4F80C115A4301EB9E
+:1082F00042010F1A3046FFF7CBFA1099081A38449A
+:10830000A0F120060AE0E18A40F27122D4F80C01C3
+:10831000514300EB4100D4F81811461AD4F810214B
+:10832000D4F80811D4F8180101FB020A607D40F26C
+:10833000E24110FB01F894F8557017F00C0F0ABFDA
+:1083400038464EF62830FFF7B5FA00EB0B014FF434
+:108350007A70B1FBF0F000EB4A0080443846FFF73A
+:1083600097FA404400F160015D48C161012084F842
+:108370001401C1E5618840F271225143D4F81C0117
+:10838000D4F81021C0EB410101FB0AF607EB0B0109
+:10839000891AD4F808C1D4F81831491E0CFB0232EE
+:1083A00001FB002A607D40F2E24110FB01F894F8E5
+:1083B000557017F00C0F0ABF38464EF62830FFF7FD
+:1083C00079FA4AF2B12101444FF47A70B1FBF0F02E
+:1083D00000EB4A0080443846FFF75AFA404400F167
+:1083E00060013F48C16187E5628840F27121D4F89D
+:1083F0001C015143C0EB410000FB0AF694F86400F5
+:1084000024281CBF94F8650024280BD1B4F89601E9
+:10841000A9EB000000B2002804DB94F899010028C1
+:1084200018BF1190139800B3FFB9109800281ABF15
+:108430000F980028FFDF94F8550010F00C0F14BFC0
+:108440004EF62830FFF736FA4AF2B12101444FF4D4
+:108450007A70B1FBF0F0361A94F85500FFF718FA6D
+:108460001099081A3044A0F12006D4F81C1107EB2B
+:108470000B0000FB01F7119810F00C0F0ABF1198C8
+:108480004EF62830FFF716FA4AF2B12101444FF4B4
+:108490007A70B1FBF0F000EB47071198FFF7F8F99D
+:1084A000384400F160010E48C16125E500287FF4E1
+:1084B00065AD94F8140100283FF47BAD618840F26B
+:1084C0007122D4F81C015143C0EB4101284604F04D
+:1084D000CFFD0004000C3FF46CAD03E040420F0000
+:1084E000DC0000202299002918BF0880012019B063
+:1084F000BDE8F08F94F86401FCF723FF94F8640161
+:108500002946FCF703FE20B1179880F0010084F89B
+:10851000290119B00020BDE8F08F70B5FE4C607ADB
+:1085200000281CBF002070BD94F8340038B1A16B46
+:10853000606A884203D9F7F7BEF8002070BDA06AD0
+:10854000E8B1F6F750F90546F5F7C4FF284442F2C2
+:1085500010714618FCF790FB05462946E06AFDF7C6
+:10856000A4F8E562A16A8219914224BF081AA062A8
+:1085700005D20120A062F7F79EF8002070BD01200F
+:1085800070BDF8B5E44C02460025E44E6168606AAF
+:10859000052A4ED2DFE802F003353A3D4400A07AC6
+:1085A000002760B101216846FDF748FC9DF80000F6
+:1085B00042F210710002B0FBF1F201FB1207F6F774
+:1085C00012F9C119A069FCF758F8A06125740320BD
+:1085D00060757079002814BF012003202075607A2F
+:1085E00038B9207B04F11001FCF790FD002808BF8A
+:1085F000FFDF2584FCF74AFAB079BDE8F840EAF7D6
+:108600008BBCBDE8F840002100F0C7BDC1F868018F
+:10861000F8BDD1F86801BDE8F840012100F0BDBD0A
+:1086200084F83450FCF732FAB079BDE8F840EAF744
+:1086300073BCFFDFF8BD2DE9F04FDFF8DC820446A4
+:1086400083B098F800008B4601270025B34E4FF009
+:108650000209032804BF98F80C00A04240F0E7800C
+:10866000D8F80400B06198F80000032818BFFFDFB5
+:108670000324BBF1080F80F0D680DFE80BF0040F75
+:1086800031312CD4D4CBC8F82450F6F783FC002821
+:1086900018BFFFDFB47003B0BDE8F08FF5F71AFF25
+:1086A0000446D8F81C00A04228BFC8F81C4005D2D8
+:1086B000201AFDF72EF8C8F81C4038B1F6F7E3FF92
+:1086C000002818BFFFDF03B0BDE8F08F03B0002023
+:1086D000BDE8F04F55E703B0BDE8F04FFEF7BCBD75
+:1086E00070794FF0010A002814BF0120032088F898
+:1086F000140088F8105098F8340042F2107B68B1EA
+:108700004FF47A71D8F81800FBF7B7FFC8F81800D3
+:10871000002108F1100004F0ABFC1CE001216846C8
+:10872000FDF782FB9DF800000002B0FBFBF10BFBA4
+:10873000110AF6F758F800EB0A018A46D8F8180033
+:10874000FBF79BFFC8F81800514608F1100004F031
+:108750008FFC00F1010AB8F82000411C0A293CBF37
+:108760005044A8F82000D8F8040038B1B8F8200028
+:10877000401C0A2828BF88F8159001D288F81540B7
+:1087800098F8090070BB98F8340040B1D8F8381058
+:10879000D8F82400884202D9F6F78DFF22E0D8F8F5
+:1087A000280058B3F6F71FF80446F5F793FE204467
+:1087B00000EB0B09FCF760FA04462146D8F82C00C0
+:1087C000FCF773FFC8F82C40D8F8281000EB09021A
+:1087D000914224BF081AC8F828000FD2C8F82870A0
+:1087E000F6F769FF98F80C00FCF727FA88F80050B4
+:1087F000B07903B0BDE8F04FEAF78EBB98F80C00F3
+:1088000008F11001FCF782FC002808BFFFDF03B06D
+:10881000BDE8F08F98F80C00FCF70FFA88F80050CC
+:1088200003B0BDE8F08FFFDF03B0BDE8F08F202C70
+:1088300028BFFFDFDFF8E880072138F81400FAF7D7
+:10884000D9F85FEA000A08BFFFDF202C28BFFFDF4E
+:1088500038F81400BAF80010884218BFFFDF5446F9
+:10886000C6F818A04FF0200ABBF1080F80F04A812B
+:10887000DFE80BF0049FA9A9A2F4F3F2C4F8685151
+:108880003581C4F86C5194F8290138B9FCF7F4F932
+:10889000D4F83411FCF709FF00281BDCB4F82611CA
+:1088A000B4F85800814206D1B4F8DC10081AA4F8D4
+:1088B000DE00204605E0081AA4F8DE00B4F8261110
+:1088C0002046A4F85810D4F85011C4F83411C0F858
+:1088D00058111DE0B4F82411B4F85800081AA4F88F
+:1088E000DE00B4F824112046A4F85810D4F834114E
+:1088F000C4F85011C4F85811D4F83C11C4F8E81069
+:10890000D4F84011C4F85C11B4F84411A4F8601113
+:1089100002F020F906E00000640C0020DC000020DA
+:10892000A00C0020FCF782F9804694F85500FEF771
+:10893000C1FF4AF2B12108444FF47A71B0FBF1F063
+:10894000D4F81C1140F27122084461885143C0EBF5
+:108950004100A0F1300AB8F1B70F98BF4FF0B70847
+:108960002146012004F0B4FC4044AAEB0000A0F230
+:108970001A38A2462146012004F0AAFC00F19C010D
+:10898000DAF82400884288BF451AC6F810804545A9
+:1089900028BF4546F560D4F85401A0F2A5107061D7
+:1089A000FCF750FE84F8287186F8029003B0BDE809
+:1089B000F08F02F0E4F901E0FEF74EFC84F8287134
+:1089C00003B0BDE8F08FFCF757F9D4F85821014601
+:1089D0001046FCF76AFE48B1628840F27123D4F871
+:1089E0001C115A43C1EB4201B0FBF1F094F8651041
+:1089F0000D290FD0B4F85820B4F826111318994255
+:108A0000AEBF481C401C1044A4F8260194F82A016B
+:108A100078B905E0B4F82601401CA4F8260108E066
+:108A2000B4F82601B4F8DC10884204BF401CA4F856
+:108A30002601B4F862010DF1040B401CA4F8620198
+:108A4000B4F88000B4F87E10401AB4F85810401EF4
+:108A500008441FFA80F912E046E03EE052E00023AD
+:108A60001A462046CDF800B0FFF761F9002804BF90
+:108A700003B0BDE8F08F012818BFFFDF25D0B4F8A0
+:108A80002611A9EB010000B20028E8DA082084F8DA
+:108A9000740084F87370204601F01EFE84F81451AF
+:108AA00094F864514FF6FF77202D00D3FFDF28F8AC
+:108AB000157094F86401FCF7C0F884F864A1B079EB
+:108AC00003B0BDE8F04FEAF727BAB4F82601BDF8C5
+:108AD00004100844A4F82601D1E7FEF75DFA03B0BC
+:108AE000BDE8F04FFEF7B8BB94F81401042818BF96
+:108AF000FFDF84F8145194F864514FF6FF77202D6E
+:108B0000D5D3D3E7FFDF03B0BDE8F08F10B5FA4C43
+:108B1000207850B101206072F6F7E5FD2078032837
+:108B200005D0207A002808BF10BD0C2010BD207B86
+:108B3000FCF707FC207BFCF752FE207BFCF77DF85E
+:108B4000002808BFFFDF0020207010BD2DE9F04F86
+:108B5000E94F83B0387801244FF0000840B17C72AF
+:108B60000120F6F7C0FD3878032818BF387A0DD0F9
+:108B7000DFF8889389F8034069460720F9F7C3FEB8
+:108B8000002818BFFFDF4FF6FF7440E0387BFCF78A
+:108B9000D8FB387BFCF723FE387BFCF74EF8002827
+:108BA00008BFFFDF87F80080E2E7029800281CBFBB
+:108BB00090F8141100292AD00088A0421CBFDFF8C9
+:108BC00040A34FF0200B3AD00721F9F713FF040020
+:108BD00008BFFFDF94F86401FCF701FE84F81481FC
+:108BE00094F864514FF6FF76202D28BFFFDF2AF856
+:108BF000156094F86401FCF720F884F864B16946C4
+:108C00000720F9F780FE002818BFFFDF12E0684652
+:108C1000F9F757FE0028C8D011E0029800281CBFC1
+:108C200090F81411002905D00088A0F57F41FF3984
+:108C3000CAD104E06846F9F744FE0028EDD089F86F
+:108C4000038087F8348087F80B8003B00020BDE8EC
+:108C5000F08F70B50446AB4890F80004AA4D400967
+:108C600095F800144909884218BFFFDF95F8140DE4
+:108C70004009A64991F800144909884218BFFFDF4E
+:108C80009E49002001228C7188700A7048700A7118
+:108C9000C870487198490870BDE8704056E7974918
+:108CA000087070472DE9F843934C064688462078B3
+:108CB000002867D19648FBF764FF2073202861D015
+:108CC000032766602770002565722572AEB1012109
+:108CD00006F58270FDF7D1F80620F9F733FE8146DC
+:108CE0000720F9F72FFE96F804114844B1FBF0F283
+:108CF00000FB1210401C86F80401FBF797FF40F2BE
+:108D0000F651884238BF40F2F65000F59F7086B2A7
+:108D1000F5F7E0FBE061F5F766FD4FF0010900288B
+:108D200033D084F80A90FBF7A7FF814601216846FB
+:108D3000FDF77AF89DF8000042F210710002B0FBD6
+:108D4000F1F201FB120081194846FBF796FCA06185
+:108D5000C4E90A8969484079002814BF012003202A
+:108D6000207567752574207B04F11001FCF7CEF99E
+:108D7000002808BFFFDF25840020F6F7B4FC0020A0
+:108D8000BDE8F8830C20BDE8F883FBF775FF31469A
+:108D9000FBF773FCA061A57284F83490A8F28B50A5
+:108DA000A562A063D6E7554948717047534948709A
+:108DB00070475249087170472DE9F0414F4C064603
+:108DC0002089401C2081D4E903516078D6F868716D
+:108DD00020B13A46284604F076F90546E068854217
+:108DE00005D06169281A08446061FCF72BFCE56036
+:108DF000AF4209D896F81401012805D0E078002880
+:108E000004BF0120BDE8F0810020BDE8F08110B56D
+:108E100004460846FEF74EFD4AF2B12108444FF4DD
+:108E20007A71B0FBF1F040F2E241614300F235307B
+:108E300081428CBF081A002010BD70B5044682B074
+:108E4000002084F8280194F8E600002807BF94F871
+:108E50001401032802B070BDFBF70EFFD4F85821AF
+:108E600001461046FCF721FC0028DCBF02B070BDB3
+:108E7000628840F27123D4F81C115A43C1EB4201BD
+:108E8000B0FBF1F0B4F85810401C0844A4F82401D9
+:108E9000B4F8DC00B4F82421801A00B20028DCBF4A
+:108EA00002B070BD012084F82A01B4F88000B4F843
+:108EB0007E2001AE801A401E084485B212E0009662
+:108EC000B4F82411002301222046FEF730FF0028C9
+:108ED00004BF02B070BD01281CD0022812BFFFDF02
+:108EE00002B070BDB4F82401281A00B20028BCBF3B
+:108EF00002B070BDE3E70000640C0020DC0000203D
+:108F0000A00C002001E000E00BE000E019E000E030
+:108F100037860100B4F82401BDF804100844A4F811
+:108F20002401DFE7F8B50422002506295BD2DFE83B
+:108F300001F007260319192A044680F8142107E0D6
+:108F40000446BD48C078002818BF84F814210AD010
+:108F5000FBF79CFDA4F86251B4F85800A4F8260170
+:108F600084F82A51F8BD0095B4F8DC1001230022E2
+:108F70002046FEF7DCFE002818BFFFDFE8E70321EC
+:108F800080F81411F8BD0646876AB0F81C01314616
+:108F900085B2012004F09CF9044696F85500FEF7CE
+:108FA00089FC4AF2B12108444FF47A71B0FBF1F028
+:108FB000718840F271225143C0EB4100401BA0F286
+:108FC000653501F0E1FE002818BF1E3DA74234BF01
+:108FD00020463846A84228BF2C4602D2A74228BFC6
+:108FE0003C467462F8BDFFDFF8BD2DE9F05F924E9C
+:108FF000B178022906BF31890029BDE8F09FB46924
+:10900000C4F86C0194F85500FEF742FCD4F86C11DA
+:10901000081AF1680144F160316908443061B469AB
+:1090200094F82B01002808BFBDE8F09F94F81401C4
+:10903000032818BFBDE8F09F94F8555036780C2EE1
+:1090400028BFFFDF7D4F37F8168094F874610C2E2F
+:1090500028BFFFDF37F81600404494F8748186B2C9
+:10906000B8F10C0F28BFFFDF37F8180000F5C86013
+:109070001FFA80F82846FEF70BFCD4F86C114FF06D
+:10908000000A0F1A15F00C0F0ABF28464EF62830BA
+:10909000FEF710FC4FF47A7900F2E730B0FBF9F0FC
+:1090A0003F1A2846FEF7F4FBD4F8E81015F00C0F31
+:1090B000A1EB000B0ABF28464EF62830FEF7FAFB5C
+:1090C0004AF2B1210844B0FBF9F0ABEB0000A0F18B
+:1090D00060017143B1FBF8F1292202EB50006031CD
+:1090E000A0EB510200EB5100BA4201D8B84201D8BE
+:1090F000F2F794FE608840F2E241414300202EB135
+:1091000006FB01F04E49B0FBF1F0401CC4F81C0115
+:1091100084F82BA1BDE8F09F70B50546464890F84D
+:1091200002C0BCF1020F07BF806900F5B474454866
+:1091300000F12404002904BF256070BD4FF47A7645
+:1091400001290DD002291CBFFFDF70BD1046FEF7BC
+:10915000CAFB00F2E140B0FBF6F0281A206070BDB7
+:109160001846FEF7E1FB00F2E140B0FBF6F0281AEA
+:10917000206070BD3348007800281CBF0020704775
+:1091800010B50720F9F7D0FB80F0010010BD2D4885
+:109190000078002818BF012070472DE9F843294CBA
+:1091A0000025814684F83450D4F8188084F83010B3
+:1091B000E5722570012727722946606803F0CDFA11
+:1091C0006168C1F85881267B81F86461C1F86891B3
+:1091D000C1F85C81B1F80080202E28BFFFDF1A485B
+:1091E00020F81680646884F814510023A4F86051B4
+:1091F0001A46194620460095FEF799FD002818BF2B
+:10920000FFDFC4F81051C4F8085184F81471A4F8B1
+:109210002651A4F8245184F82A51B4F85800401E6D
+:10922000A4F85800A4F86251FBF730FC024880799A
+:10923000BDE8F843E9F770BEDC000020585C02008E
+:1092400040420F00640C0020A00C0020012804D034
+:10925000022805D0032808D105E0012907D004E041
+:10926000022904D001E0042901D000207047012028
+:1092700070472DE9F0410E46044604F07CFD05469A
+:10928000204604F07CFD044604F097F8FE4F0100F0
+:1092900015D0386990F854208A4210D090F8AC313B
+:1092A0001BB190F8AE3123421FD02EB990F8513047
+:1092B000234201D18A4218D890F8AC01A8B12846BF
+:1092C00004F07BF870B1396991F85520824209D0D9
+:1092D00091F8AC0118B191F8AF01284205D091F88E
+:1092E000AC0110B10120BDE8F0810020FBE730B5F2
+:1092F000E54C85B0E06900285DD0142168460CF08B
+:10930000DEF9206990F85500FEF7D4FA4FF47A712F
+:1093100000F5FA70B0FBF1F5206990F85500FEF702
+:10932000B7FA2844ADF8060020690188ADF80010AE
+:10933000B0F85810ADF804104188ADF8021090F85C
+:109340008E0130B1A069C11C039104F0F5FB8DF8CA
+:109350001000206990F88D018DF80800E1696846D9
+:1093600088472069002180F88E1180F88D110399BB
+:10937000002920D090F88C1100291CD190F864109D
+:10938000272918D09DF81010039A002913D01378BC
+:109390000124FF2B11D0072B0DD102290BD15178BD
+:1093A000FF2908D180F88C410399C0F890119DF8ED
+:1093B000101080F88F1105B030BD1B29F2D9FAE7E3
+:1093C00070B5B14C206990F865001B2800D0FFDF14
+:1093D0002069002580F88D5090F8C00100B1FFDFB2
+:1093E000206990F88E1041B180F88E500188A0F865
+:1093F000C41180F8C2510E2108E00188A0F8C41100
+:1094000080F8C251012180F8C6110D2180F8C011E9
+:109410000088F9F721FCF9F7B9F82079E9F77CFD24
+:10942000206980F8655070BD70B5974CA0798007B1
+:109430002CD5A078002829D162692046D37801690B
+:109440000D2B01F158005FD00DDCA3F102034FF0AA
+:1094500001050B2B19D2DFE803F01A1844506127DD
+:10946000182C183A6400152B6FD008DC112B4BD048
+:10947000122B5AD0132B62D0142B06D166E0162B78
+:1094800071D0172B70D0FF2B6FD0FFDF70BD91F81C
+:1094900067200123194603F081FD0028F6D12169D8
+:1094A000082081F8670070BD1079BDE8704001F0B8
+:1094B00008BD91F86600C00700D1FFDF01F0C0FCD5
+:1094C000206910F8661F21F00101017070BD91F84C
+:1094D0006500102800D0FFDF2069112180F88D5031
+:1094E00008E091F86500142800D0FFDF20691521FD
+:1094F00080F88D5080F8651070BD91F865001528D2
+:1095000000D0FFDF172005E091F86500152800D096
+:10951000FFDF1920216981F8650070BDBDE870404A
+:109520004EE7BDE8704001F0A0BC91F86420012333
+:10953000002103F033FD00B9FFDF0E200FE011F82A
+:10954000660F20F0040008701DE00FE091F8642021
+:109550000123002103F022FD00B9FFDF1C20216957
+:1095600081F8640070BD12E01BE022E091F8660013
+:10957000C0F30110012800D0FFDF206910F8661F3A
+:1095800021F010010170BDE8704001F059BC91F864
+:1095900064200123002103F001FD00B9FFDF1F203B
+:1095A000DDE791F86500212801D000B1FFDF22201E
+:1095B000B0E7BDE8704001F04FBC3348016991F855
+:1095C0006620130702D501218170704742F008021E
+:1095D00081F866208069C07881F8C90001F027BC55
+:1095E00010B5294C21690A88A1F8042281F80202E9
+:1095F00091F8540001F009FC216981F8060291F804
+:10960000550001F002FC216981F80702012081F870
+:109610000002002081F8AC012079BDE81040E9F794
+:109620007BBCF0B4184C206900F5DA730188198509
+:10963000018E5985818E9985018FB0F84420914221
+:1096400000D31146D985828FB0F846108A4200D2E5
+:109650001146198690F855204FF0010512F00C0FB5
+:109660004FF4296203D0914200D81146198690F830
+:10967000540010F00C0F04D0988D904200D902468F
+:109680009A8583F8265001E0000100202079F0BC83
+:10969000E9F742BC10B5F84C01230921206990F884
+:1096A0006420583003F07AFC38B12169002001F8B9
+:1096B0007C0F087301F8180C10BD0120A07010BDBC
+:1096C00070B5ED4D012329462869896990F8642019
+:1096D00009790E2A01D1122903D000241C2A03D0B3
+:1096E00004E0BDE87040D5E7142902D0202A08D054
+:1096F00009E080F8644080F88840BDE8704001F0DF
+:1097000003BC162906D0262A01D1162902D0172912
+:1097100009D00CE000F8644F80F8244040782128FC
+:109720000CD01A2017E090F86520222A07D0EA69A9
+:10973000002A03D0FF2901D180F88E3112E780F88A
+:10974000654001F07DFB286980F87D4090F8AC0110
+:109750000028F3D00020BDE8704041E72DE9F84330
+:10976000C54C206990F86410202909D05FF00007EB
+:1097700090F86510222905D07FB300F1640503E05D
+:109780000127F5E700F1650510F8961F41F0040187
+:109790000170A06904F0FBFA4FF00108002608B33D
+:1097A0003946A069FFF765FDE0B16A46A169206905
+:1097B00003F012FE90B3A06904F0E7FA2169A1F862
+:1097C0009601B1F8581001F014FB40B3206928212C
+:1097D00080F8741080F8738058E0FFE70220A070D2
+:1097E000BDE8F883206990F8AC0110B11E20FFF7A6
+:1097F000F7FEAFB1A0692169C07881F8CA0008FA04
+:1098000000F1C1F3006000B9FFDF20690A2180F890
+:10981000641090F8880040B9FFDF06E009E02AE014
+:109820002E7001F00DFBFFF7C8FE206980F87D6007
+:10983000D6E7226992F8AC0170B1B2F8583092F8CC
+:109840005410B2F8B00102F5CB7203F0B7FE68B164
+:109850002169252081F86400206900F1650180F804
+:109860007D608D4212D180F865600FE00020FFF727
+:10987000B7FE2E70F0E720699DF8001080F898116F
+:109880009DF8011080F8991124202870206900F1BA
+:1098900065018D4203D1BDE8F84301F0D1BA80F8EB
+:1098A00088609DE770B5744C01230B21206990F806
+:1098B0006520583003F072FB202650BB206901233D
+:1098C000002190F86520583003F068FB0125F0B1C5
+:1098D000206990F8640024281BD0A06904F035FAB0
+:1098E000C8B1206990F8961041F0040180F89610F4
+:1098F000A1694A7902F0070280F85120097901F044
+:10990000070180F8501090F8AD311BBB06E0A57040
+:1099100028E6A67026E6BDE870404EE690F8AC3129
+:10992000C3B900F154035E788E4205D11978914293
+:1099300002D180F87D500DE000F5FD710D700288B8
+:109940004A8090F850200A7190F8510048712079AF
+:10995000E9F7E2FA2169212081F86500BDE870404D
+:1099600001F065BA70B54448006990F84E20448E05
+:10997000C38E418FB0F84050022A23D0A94200D3B1
+:1099800029460186C18FB0F84220914200D311468A
+:109990008186018FB0F84420914200D31146418660
+:1099A000818FB0F84620914200D31146C186418E86
+:1099B000A14200D90C464486C18E994200D90B467B
+:1099C000C386CFE5028E914200D31146C68F828EA8
+:1099D000964200D23246A94200D329460186B0F809
+:1099E00042108A4200D30A468286002180F84E1037
+:1099F000CFE770B5204C206990F8660010F0300F6A
+:109A000004D0A07840F00100A070ABE5A06904F09C
+:109A100081F948B32569A06904F078F92887256998
+:109A2000A06904F06FF968872569A06904F070F9EE
+:109A3000A8872569A06904F067F9E887A0794FF045
+:109A40000102800703D56069C07814280FD020690F
+:109A500090F864101C290AD090F84E10012910D0FB
+:109A600090F8A31169B909E0BDE87040A5E5206947
+:109A700080F84E2005E000000001002090F8A211BF
+:109A800031B1206910F8661F41F01001017016E035
+:109A900090F8661041F0200180F8661000F5DA7148
+:109AA00003888B86038FCB86438F0B87838F4B87EF
+:109AB000C08F888781F832202079E9F72DFABDE838
+:109AC000704001F0B4B970B5FE4C206990F8661092
+:109AD000890707D590F8642001230821583003F046
+:109AE0005DFAE8B1206990F89000800712D4A0696F
+:109AF00004F0ECF8216981F89100A06930F8052F95
+:109B0000A1F892204088A1F8940011F8900F40F03D
+:109B100002000870206990F89010C90703D00FE088
+:109B20000120A0701EE590F86600800700D5FFDFD9
+:109B3000206910F8661F41F00201017001F077F909
+:109B40002069002590F86410062906D180F8645039
+:109B500080F888502079E9F7DFF9206990F89411AE
+:109B60000429DFD180F894512079E9F7D5F92069EB
+:109B700090F864100029D5D180F88850F2E470B5CF
+:109B8000D04C01230021206990F86520583003F063
+:109B900005FA012578B9206990F86520122A0AD0C3
+:109BA00001230521583003F0F9F910B10820A07005
+:109BB000D8E4A570D6E4206990F88E0008B901F0C9
+:109BC00036F92169A069F03104F061F82169A069D2
+:109BD000C03104F067F8206990F8C80100B1FFDFD8
+:109BE00021690888A1F8CA0101F5E671A06904F0AD
+:109BF0003CF82169A06901F5EA7104F03EF820699A
+:109C000080F8C851142180F865102079BDE87040B3
+:109C1000E9F782B970B5AB4C01230021206990F8B7
+:109C20006520583003F0BAF90125A8B1A06903F006
+:109C3000E8FF98B1A0692169B0F80D00A1F896017C
+:109C4000B1F8581001F0D5F858B12069282180F8F2
+:109C5000741080F8735085E4A57083E4BDE870400B
+:109C6000ABE4A0692169027981F89821B0F8052058
+:109C7000A1F89A2103F0B8FF2169A1F89C01A0691D
+:109C800003F0B5FF2169A1F89E01A06903F0B6FFBA
+:109C90002169A1F8A0010D2081F8650062E47CB57E
+:109CA000884CA079C00738D0A06901230521C57868
+:109CB000206990F86520583003F070F968B1AD1E46
+:109CC0000A2D06D2DFE805F0090905050909050591
+:109CD0000909A07840F00800A070A07800281CD1E5
+:109CE000A06903F057FF00287AD0A0690226C57842
+:109CF0001DB1012D01D0162D18D1206990F86400F6
+:109D000003F034F990B1206990F864101F290DD048
+:109D1000202903D0162D16D0A6707CBD262180F8F0
+:109D20006410162D02D02A20FFF75AFC0C2D58D0B3
+:109D30000CDC0C2D54D2DFE805F033301D44A7A70E
+:109D4000479E57A736392020A0707CBD0120152DD5
+:109D500075D008DC112D73D0122D69D0132D64D06D
+:109D6000142D3DD178E0162D7CD0182D7DD0FF2DFF
+:109D700036D183E020690123194690F867205830D6
+:109D800003F00CF9F8B9A06903F068FF216981F8C4
+:109D90007A01072081F8670078E001F03CF975E06E
+:109DA000FFF738FF72E001F016F96FE0206990F8D4
+:109DB0006510112901D0A67068E0122180F86510A5
+:109DC00064E0FFF7DCFE61E0206990F86500172889
+:109DD000F1D101F035F821691B2081F8650055E0CB
+:109DE00052E0FFF770FE51E0206990F86600C0076E
+:109DF00003D0A07840F001001FE06946A06903F09D
+:109E00006CFF9DF8000000F02501206900F8961F06
+:109E10009DF8011001F04901417001F008F8206936
+:109E200010F8661F41F0010114E0FFF733FC2DE04C
+:109E3000216991F86610490705D5A07026E00EE06B
+:109E400016E00FE011E000F0F2FF206910F8661F45
+:109E500041F00401017019E0FFF7CBFD16E001F0BD
+:109E600087F813E0FFF71EFD10E0FFF777FC0DE029
+:109E700001F05DF80AE0FFF723FC07E0E16919B1A2
+:109E8000216981F88E0101E0FFF797FB2069F0E975
+:109E90002A12491C42F10002C0E900127CBD70B5D3
+:109EA000084CA07900074DD5A07800284AD1206938
+:109EB00090F8CC00FE2800D1FFDF2069FE2180F859
+:109EC000CC1001E00001002090F865100025192950
+:109ED00006D180F88D5000F0B3FF206980F86550FE
+:109EE000206990F864101F2902D0272921D119E098
+:109EF00090F8650003F03AF878B120692621012333
+:109F000080F8641090F865200B21583003F046F873
+:109F100078B92A20FFF764FB0BE02169202081F843
+:109F2000640006E0012180F88D1180F8645080F80B
+:109F30008850206990F86710082903D10221217008
+:109F400080F8CC10E4E4F949096991F898210AB93C
+:109F500091F8542081F8542091F899210AB991F888
+:109F6000552081F85520002802D00020FFF738BB8B
+:109F7000704770B5ED4C06460D46206990F8CC0050
+:109F8000FE2800D0FFDF2269002082F8CC6015B1E6
+:109F9000A2F88A00BCE422F8840F01201071B7E413
+:109FA00070B5E24C01230021206990F864205830FC
+:109FB00002F0F4FF00287AD0206990F8A21111B1C4
+:109FC00090F8A31139B190F8AC1100296ED090F837
+:109FD000AD1111B36AE090F8651024291BD090F8F8
+:109FE0006410242917D0002300F5CC7200F5D1713C
+:109FF00003F084F82169002081F8A20101461420B1
+:10A00000FFF7B7FF206930F8421FA0F88C10818855
+:10A01000A0F88E1050E00123E6E790F865200123B8
+:10A020000B21583002F0BAFF68BB206990F8540049
+:10A0300000F0EBFE0646206990F8550000F0E5FEC2
+:10A040000546206990F8AE113046FFF7FFF8D8B109
+:10A05000206990F8AF112846FFF7F8F8A0B12269FF
+:10A06000B2F8583092F85410B2F8B00102F5CB7241
+:10A0700003F0A4FA20B12169252081F864001BE0D7
+:10A080000020FFF7ADFA11E020690123032190F8C9
+:10A090006520583002F082FF40B920690123022177
+:10A0A00090F86520583002F079FF08B100202FE4C5
+:10A0B00000211620FFF75DFF012029E410B5E8BB61
+:10A0C0009A4C206990F86610CA0702D00121092035
+:10A0D00052E08A070AD501210C20FFF74AFF2069C8
+:10A0E00010F8901F41F00101017047E04A0702D5C6
+:10A0F0000121132040E00A0705D510F8C91F41715E
+:10A100000121072038E011F0300F3BD090F8A31167
+:10A11000A1B990F8A211E1B190F8651024292FD0CF
+:10A1200090F8641024292BD05FF0000300F5CC7266
+:10A1300000F5D17102F0E2FF206900E022E010F8A2
+:10A14000661F21F0200141F010010170002180F80C
+:10A150003C11206990F86600C00613D5FFF702FC99
+:10A1600000F0D2FE206930F8421FA0F88C108188E0
+:10A17000A0F88E1001211520FFF7FBFE012010BD75
+:10A180000123D3E7002010BD70B5684C206990F81A
+:10A19000CC10FE2978D1A178002975D190F86720DC
+:10A1A00001231946583002F0F9FE00286CD12069CD
+:10A1B00090F8781149B10021A0F8821090F8791137
+:10A1C00080F8CE10002102205BE090F8652001238A
+:10A1D0000421583002F0E2FE0546FFF76FFF002829
+:10A1E00052D1284600F07BFF00284DD12069012381
+:10A1F000002190F86420583002F0D0FE78B1206938
+:10A200000123042190F86520583002F0C7FE30B9D0
+:10A21000206990F87C0010B10021122031E0206903
+:10A2200090F864200A2A0DD0002D2DD101230021A1
+:10A23000583002F0B3FE78B1206990F894110429E7
+:10A240000AD105E010F8CA1F01710021072018E0AB
+:10A2500090F89000800718D0FFF7A2FE002813D1D5
+:10A2600020690123002190F86420583002F096FE06
+:10A27000002809D0206990F88C01002804D0002122
+:10A28000FF20BDE8704074E609E000210C20FFF7D4
+:10A2900070FE206910F8901F41F00101017041E447
+:10A2A0003EB505466846FDF702FC00B9FFDF2221F6
+:10A2B00000980BF0E2F90321009803F053FC00989A
+:10A2C000017821F010010170294603F070FC174C51
+:10A2D0000D2D43D00BDCA5F102050B2D19D2DFE8C3
+:10A2E00005F01F184A19191F185518192700152DA0
+:10A2F0005DD008DC112D28D0122D0BD0132D09D0E4
+:10A30000142D06D153E0162D2CD0172D68D0FF2D1B
+:10A3100072D0FFDFFDF7DEFB002800D1FFDF3EBD7E
+:10A320002169009891F8CE101AE000000001002089
+:10A33000E26800981178017191884171090A817170
+:10A340005188C171090A0172E4E70321009803F002
+:10A3500038FD0621009803F038FDDBE70098062160
+:10A360000171D7E70098216991F8AE21027191F847
+:10A37000AF114171CEE721690098F83103F096FCE6
+:10A3800021690098C43103F09BFCC3E7F849D1E987
+:10A390000001CDE90101206901A990F8960000F0C3
+:10A3A00025008DF80400009803F0C5FCB2E7206991
+:10A3B000B0F84410009803F095FC2069B0F8D01074
+:10A3C000009803F093FC2069B0F84010009803F067
+:10A3D00091FC2069B0F8CE10009803F08FFC99E74B
+:10A3E000216991F8AC0100280098BDD111F8542FD3
+:10A3F00002714978BDE7FFE7206990F88F21D0F816
+:10A400009011009803F0E1FB84E7DA4810B5006989
+:10A4100090F86A1041B990F8652001230621583060
+:10A4200002F0BCFD002800D0012010BD70B5D14D58
+:10A43000286990F8681039B1012905D0022906D0A1
+:10A44000032904D0FFDF06E4B0F8DC1037E090F811
+:10A450006710082936D0B0F87E10B0F880200024AC
+:10A460008B1C9A4206D3511A891E0C04240C01D06D
+:10A47000641EA4B290F87C1039B190F864200123D6
+:10A480000921583002F08AFD40B3FFF7BEFF78B1D2
+:10A4900029690020B1F87820B1F876108B1C9A4217
+:10A4A00003D3501A801E00D0401EA04200D284B2B6
+:10A4B0000CB1641EA4B22869B0F8DC102144A0F8E5
+:10A4C000D8103FE5B0F87E100329BDD330F8581FEF
+:10A4D000028D1144491CA0F8801033E50024EAE7FE
+:10A4E00070B50C4605464FF4027120460BF0E7F8B4
+:10A4F000258027E5F8F787BB2DE9F0410D46074693
+:10A500000721F8F777FA041E3CD094F8B40100262E
+:10A51000A8B16E70092028700BE0268484F8B4611D
+:10A52000D4F8B6016860D4F8BA01A860B4F8BE01E6
+:10A53000A88194F8B4010028EFD12E71BAE094F804
+:10A54000C00190B394F8C0010D2813D00E2801D09B
+:10A55000FFDFAFE02088F8F77FFB0746F8F72BF81E
+:10A5600078B96E700E20287094F8C2012871208886
+:10A57000E88014E02088F8F76FFB0746F8F71BF82F
+:10A5800010B10020BDE8F0816E700D20287094F8A5
+:10A59000C20128712088E88094F8C601287284F8E6
+:10A5A000C0613846F8F701F884E0FFE794F8F80155
+:10A5B00030B16E701020287084F8F861AF8079E0B7
+:10A5C00094F8C80190B16E700A2028702088A88085
+:10A5D000D4F8CC11C5F80610D4F8D011C5F80A107B
+:10A5E000B4F8D401E88184F8C86163E094F8D60136
+:10A5F00040B16E701A202870B4F8D801A88084F891
+:10A60000D66157E094F8F20170B16E701B2028708B
+:10A6100005E000BF84F8F261D4F8F401686094F8B2
+:10A62000F2010028F6D145E094F8DA0190B16E709D
+:10A630001520287004F5EE7707E000BF84F8DA6192
+:10A640000A223946281D0AF0DEFF94F8DA010028B4
+:10A65000F4D12FE094F8E60158B16E701D202870F7
+:10A6600084F8E6610A2204F5F471281D0AF0CBFF94
+:10A6700020E094F8FA0138B11E20287084F8FA61BD
+:10A68000D4F8FC01686015E094F8000200283FF45B
+:10A6900079AF6E701620287008E000BF84F8006261
+:10A6A000D4F802026860B4F80602288194F8000227
+:10A6B0000028F3D1012065E72E480021C161016225
+:10A6C0000846704730B52B4D0C46E860FFF7F4FFA5
+:10A6D00000B1FFDF2C7130BD002180F8641080F8DC
+:10A6E000651080F8681090F8E61009B1022100E0CA
+:10A6F0000321FEF717BC2DE9F0411E4C05462069E9
+:10A7000009B1002104E0B0F8EE10B0F8DE201144E9
+:10A71000A0F8EE1090F8781139B990F8672001236D
+:10A720001946583002F03AFC30B1206930F8821FE7
+:10A73000B0F85C2011440180206990F8883033B172
+:10A74000B0F88410B0F8DE201144A0F8841090F91D
+:10A750008C70002F06DDB0F88A10B0F8DE201144AE
+:10A76000A0F88A1001213D2635B180F8746017E009
+:10A77000705C0200000100202278022A0AD0012A1F
+:10A7800011D0A2782AB380F8731012F0140F0DD0F4
+:10A790001E2113E090F8CE20062A3CD016223AE083
+:10A7A00080F8731044E090F87A2134E0110702D564
+:10A7B00080F874603CE0910603D5232180F8741082
+:10A7C00036E0900700D1FFDF21692A2081F874006C
+:10A7D0002AE02BB1B0F88420B0F886309A4210D22B
+:10A7E000002F05DDB0F88A20B0F886309A4208D2F2
+:10A7F000B0F88230B0F88020934204D390F87831DA
+:10A800000BB1222207E090F868303BB1B0F87E30FF
+:10A81000934209D3082280F87420C1E7B0F87E2063
+:10A82000062A01D33E22F6E7206990F8731019B189
+:10A830002069BDE8F0414FE7BDE8F0410021FEF797
+:10A8400071BB2DE9F047FA4C81460D46206900881E
+:10A85000F8F714FA060000D1FFDFA0782843A070B3
+:10A86000A0794FF000058006206904D5A0F87E503D
+:10A8700080F8EC5003E030F87E1F491C0180FFF7A0
+:10A88000C4FD012740B3E088000506D5206990F893
+:10A890006A1011B1A0F876501EE02069B0F8761069
+:10A8A000491C89B2A0F87610B0F878208A4201D30A
+:10A8B000531A00E00023B4F808C00CF1050C6345FE
+:10A8C00001D880F87C70914206D3A0F8765080F8C9
+:10A8D000F8712079E8F720FBA0794FF0020810F01A
+:10A8E000600F0ED0206990F8681011B1032908D1CB
+:10A8F00002E080F8687001E080F868800121FEF7CE
+:10A9000011FB206990F86810012904D1E188C9057C
+:10A9100001D580F86880B9F1000F71D1E18889050F
+:10A9200002D5A0F8005104E0B0F80011491CA0F8CD
+:10A93000001100F09BFBFEF7DAFCFFF725FC00F0AE
+:10A9400057FF0028206902D0A0F8E05003E030F85B
+:10A95000E01F491C018000F04EFF38B1216991F8D9
+:10A96000EC00022807D8401C81F8EC00206990F820
+:10A97000EC00022804D9206920F8E05F45800573C7
+:10A9800020690123002190F86520583002F006FB71
+:10A9900020B9206990F865000C2859D1206901235D
+:10A9A000002190F86420583002F0F8FA48B320698A
+:10A9B0000123002190F86720583002F0EFFA00B32D
+:10A9C000206990F86810022942D190F8EC00C0B9D3
+:10A9D0003046F7F7C0FBA0B1216991F8CC00FE2802
+:10A9E00036D1B1F8DA00012832D981F8E570B1F832
+:10A9F0008000B1F87E20831E9A4203DB012004E030
+:10AA000032E025E0801A401E80B2B1F8E0202389B0
+:10AA10009A4201D3012202E09A1A521C92B2904249
+:10AA200000D91046012801D181F8E55091F8702134
+:10AA300092B1B1F8E220B1F872118A4201D301213A
+:10AA400002E0891A491C89B2884205D9084603E008
+:10AA50002169012081F8E5502169B1F8582010449E
+:10AA6000A1F8DC00FFF7E2FCE088C0F34021484693
+:10AA7000FFF741FE206980F8E650BDE8F047FDF79A
+:10AA80004BB86B4902468878CB78184312D10846F8
+:10AA9000006942B18979090703D590F86700082851
+:10AAA00008D001207047B0F84810028E914201D8BA
+:10AAB000FEF782B90020704770B55D4C05460E4622
+:10AAC000E0882843E080A80703D5E80700D0FFDF2F
+:10AAD0006661EA074FF000014FF001001AD0A6614D
+:10AAE000F278062A02D00B2A14D10AE0226992F8E1
+:10AAF0006530172B0ED10023E2E9283302F8370C1A
+:10AB000008E0226992F86530112B03D182F86910B0
+:10AB100082F88E00AA0718D56269D278052A02D079
+:10AB20000B2A12D10AE0216991F86520152A0CD16F
+:10AB30000022E1E92A2201F83E0C06E0206990F8A3
+:10AB40006520102A01D180F86A10280601D5082056
+:10AB5000E07078E42DE9F84F354C00254FF00108FE
+:10AB6000E580A570E5704146257061F3070220611C
+:10AB70009246814680F8E6800088F8F77FF8070063
+:10AB800000D1FFDF20690088FCF78EFF2069008874
+:10AB9000FCF7B0FF2069B0F8DA1071B190F8CC1072
+:10ABA000FE290FD190F8781191B190F86720012318
+:10ABB0001946583002F0F2F980B1206990F8CC00C3
+:10ABC000FE2805D0206990F8CC0000BFFFF768FB95
+:10ABD000206990F8E71089B1258118E02069A0F874
+:10ABE000825090F8791180F8CE1000210220FFF7F2
+:10ABF000C0F9206980F8E5500220E7E790F8B41129
+:10AC000019B9018C8288914200D881882181B0F8DD
+:10AC1000DE10491E8EB2B0F8E0103144A0F8E0100A
+:10AC200090F8E41031B1A0F8E25080F8E45006E06A
+:10AC300000010020B0F8E2103144A0F8E21030F832
+:10AC40007E1F31440180FFF7E0FB20B1206930F81E
+:10AC5000761F314401802069B0F8DA10012902D84A
+:10AC6000491CA0F8DA100EB180F8EC5090F8E5100D
+:10AC7000A1B1B0F8E000218988420FD23846F7F739
+:10AC80006AFA58B1206990F8701139B1B0F8E21041
+:10AC9000B0F87201814201D300F0B0FD206980F864
+:10ACA000E55090F865100B2901D00C2916D1B0F8A9
+:10ACB0005820B0F89631D21A12B2002A0EDBD0F822
+:10ACC0009811816090F89C110173022101F045FDFB
+:10ACD000206980F8655080F8988026E0242910D1FA
+:10ACE000B0F85810B0F89621891A09B2002908DB8B
+:10ACF00090F8AC01FFF727F9206900F8655F057649
+:10AD000013E090F86410242901D025290DD1B0F862
+:10AD10005810B0F89601081A00B2002805DB01208F
+:10AD2000FFF711F9206980F8645020690146B0F8F6
+:10AD3000DE20583001F0E9FE206990F8701109B169
+:10AD4000A0F8E250F9480090F94BFA4A49465046BB
+:10AD500000F0AEFC216A11B16078FCF7F3F92069CC
+:10AD60000123052190F86520583002F017F90028DA
+:10AD700003D0BDE8F84F00F036BABDE8F88F00F018
+:10AD80001DBDED49C8617047EB48C069002800D07F
+:10AD900001207047E84A50701162704710B50446B0
+:10ADA000B0F89C214388B0F89E11B0F8A0019A42F7
+:10ADB00005D1A388994202D1E38898420FD0238815
+:10ADC000A4F8B831A4F8BA21A4F8BC11A4F8BE01C3
+:10ADD000012084F8B401D8480079E8F79DF80121F2
+:10ADE000204601F0BAFC002004F8650F0320E07053
+:10ADF00010BD401A00B247F6FE71884201DC0028FF
+:10AE000001DC012070470020704710B5012808D0F0
+:10AE1000022808D0042808D0082806D0FFDF2046E2
+:10AE200010BD0124FBE70224F9E70324F7E7C24839
+:10AE30000021006920F88A1F8178491C81707047C1
+:10AE4000BD4800B5016911F88C0F401E40B2087072
+:10AE5000002800DAFFDF00BDB7482721006980F82D
+:10AE60006410002180F88C11704710B5B24C206935
+:10AE700090F89411042916D190F864200123002140
+:10AE8000583002F08BF800B9FFDF206990F890107D
+:10AE9000890703D4062180F8641004E0002180F8BB
+:10AEA000881080F89411206990F86600800707D513
+:10AEB000FFF7C6FF206910F8661F21F0020101703C
+:10AEC00010BD9D4910B5096991F864200A2A09D17D
+:10AED00091F8CA20824205D1002081F8640081F8EF
+:10AEE000880010BD91F86620130706D522F00800EF
+:10AEF00081F86600BDE81040A2E7FF2801D0FFDF1F
+:10AF000010BDBDE81040A7E710B58B4C05212069A6
+:10AF1000FEF708F8206990F84E10012903D0BDE82B
+:10AF20001040FEF77EBB022180F84E1010BD10B518
+:10AF3000814C206910F8961F41F004010170A0694E
+:10AF400002F041FF162806D1206990F864002028FD
+:10AF500002D0262805D010BDA06902F038FFFEF708
+:10AF60003FFB2169002081F8640081F8880010BD52
+:10AF700070B5714C01230A21206990F86420583083
+:10AF800002F00CF810B3A06902F0C4FEA8B1256964
+:10AF9000A06902F0BBFE28872569A06902F0B2FE15
+:10AFA00068872569A06902F0B3FEA8872569A069B2
+:10AFB00002F0AAFEE887FEF7D5FC2169002081F89F
+:10AFC000880081F86400BDE870409DE7A07840F0FB
+:10AFD0000100A070BDE510B5574C01230021206988
+:10AFE00090F86520583001F0D9FF30B1FFF71FFF0E
+:10AFF0002169102081F8650010BD20690123052119
+:10B0000090F86520583001F0C9FF08B1082000E031
+:10B010000120A07010BD70B5474C012300212069AC
+:10B0200090F86520583001F0B9FF012588B1A0697A
+:10B0300002F011FE2169A1F89601B1F85810FFF74E
+:10B04000D8FE40B12069282180F8741080F8735030
+:10B050007FE5A5707DE52169A06901F5CC7102F05D
+:10B06000F5FD21690B2081F8650072E510B5FEF74A
+:10B0700016FFFEF714FE304CA079400708D5A078E3
+:10B0800030B9206990F86700072801D101202070AD
+:10B09000FEF7CAF9A079C00609D5A07838B92069A9
+:10B0A00090F865100B2902D10C2180F86510E0782A
+:10B0B00000070ED520690123052190F8652058303E
+:10B0C00001F06CFF30B10820A0702169002081F8E8
+:10B0D000C00110BDBDE81040002000F093BB10B5CA
+:10B0E000154C216991F86520F8B1102A06D0142A70
+:10B0F00007D0152A22D01B2A34D122E001210B20AF
+:10B1000021E0FAF797FE0C281FD320690821F830B8
+:10B11000FAF794FE28B120690421C430FAF78EFEB4
+:10B1200000B9FFDF012104200DE010E043A8010079
+:10B1300083AA0100B9AA01000001002000F017F85D
+:10B1400003E001210620FEF714FF012010BD212A93
+:10B1500008D191F87D0038B991F8AC0110B191F89F
+:10B16000AD0108B1002010BD01211720EBE770B53B
+:10B17000174C0025206990F87B1101290AD002297B
+:10B1800025D190F88E10A9B1062180F8CE100121AA
+:10B19000022017E090F8C011002918D100F1B00387
+:10B1A00000F1F001002200F5BE7001F071FE0121F6
+:10B1B000052007E090F89600400701D5112000E037
+:10B1C0000D200121FEF7D5FE206980F87B51C0E4F7
+:10B1D0000001002030B5FA4C05462078002818BF41
+:10B1E000FFDF257230BDF6490120C87170472DE997
+:10B1F000F14FF44E30464068044600F1580990F88B
+:10B20000551001F0D2FF94F85510658E80B20829D0
+:10B210006CD001F0A8FF854238BF284600F0FF0837
+:10B22000DFF89CA3E848CAF824007768384697F806
+:10B230006AB07D8E97F8551001F0B7FF97F855105A
+:10B2400080B2082956D001F08EFF854238BF2846CB
+:10B25000BBF1000F1CBF001D80B2C0B297F85510A3
+:10B26000FBF770FB99F81200002847D009F158014C
+:10B27000D54891E80E1000F5027585E80E10D9F852
+:10B280006810C0F82112D9F86C10C0F8251200F52A
+:10B290008170FBF7BCFE307800280CBF0120002035
+:10B2A00080F00101C9480176D9E91412C0E90412FD
+:10B2B000A0F58372DAF82410FBF7DBF994F8550057
+:10B2C000012808BF00220CD0022808BF012208D0A4
+:10B2D000042808BF032204D008281ABFFFDF002279
+:10B2E000022241460120FBF7DFF90DE0042101F0C5
+:10B2F0003AFF90E7042101F036FFA6E7DAF82400D0
+:10B30000FBF785FEFBF7FCF9009850B994F855005F
+:10B3100094F8561010F00C0F08BF00219620FBF790
+:10B3200097FE94F8542001210020FBF779FF94F850
+:10B330002C00012808BFFBF743FF02208AF8000019
+:10B34000FCF74CFB002818BFFFDFBDE8F88F2DE9A4
+:10B35000F04FDFF870A28BB050469AF80020416899
+:10B360001438049091F85D0001F158050C464FF037
+:10B3700008080127AAF13406A0B3012800F00681CD
+:10B38000022800F00781032818BFFFDF00F01081BA
+:10B39000306A0423017821F008010170AA7908EAD3
+:10B3A000C202114321F004010170EA7903EA82022A
+:10B3B000114321F01001017095F80590F06AF6F73D
+:10B3C000DAFE8046FCF7BAFBB9F1020F00F000810B
+:10B3D000B9F1010F00F00081B9F1030F00F0008115
+:10B3E00000F003B9FFE72B7B4FF002094FF0000B91
+:10B3F000242B1CBF95F80DC0BCF1240F07D01F2BC8
+:10B4000018BF202B2AD0BCF1220F4DD077E091F845
+:10B41000540092B191F89811002974D0082818BFEF
+:10B42000042869D0082918BF042965D0012818BF4D
+:10B43000012953D04FF0020065E091F8FA1000297D
+:10B4400061D0082818BF042856D0082918BF04293D
+:10B4500052D0012818BF012940D0EBE7BCF1220FE0
+:10B4600022D0002A4BD091F8540091F8AE1111F07F
+:10B47000040F18BF41460CD0082818BF04283BD041
+:10B48000082918BF042937D0012818BF012925D061
+:10B49000D0E711F0010F18BF3946EDD111F0020FBE
+:10B4A00018BF4946E8D12EE04AB391F8540091F80C
+:10B4B000AE2191F8511002EA010111F0040F18BFFA
+:10B4C00041460ED0082818BF042815D0082918BFF7
+:10B4D000042911D0012818BF0129ABD14FF0010078
+:10B4E00011E011F0010F18BF3946EBD111F0020F36
+:10B4F00018BF4946E6D106E04FF0080003E091F896
+:10B5000054000428F8D001460290204601F058FE6D
+:10B5100080B2029901F027FE218E814238BF084691
+:10B52000ADF80C00A4F848000498FCF7E6FA60B106
+:10B53000B289316A42F48062B28172694FF48060EC
+:10B54000904703206871EF7022E709AA03A9F06A07
+:10B55000F6F74CFD306210B195F8351021B1049822
+:10B56000FCF79FFA6F7113E79DF8241031B9A0F82A
+:10B5700000B080F802B0012102F0F4FABDF80C101E
+:10B58000306A02F026FC85F8059001E70498FCF784
+:10B5900088FAFDE6B4F84800ADF8080009AA02A947
+:10B5A000F06AF6F723FD3062002808BFFFDFEFE600
+:10B5B0000498FCF7A2FA002808BFFFDFE8E60000C5
+:10B5C0002401002058010020E00C0020E80E00209B
+:10B5D00030EA080009D106E030EA080005D102E0AF
+:10B5E000B8F1000F01D0012100E00021306A02789B
+:10B5F00042EA01110170697C00291CBF69790129A7
+:10B600003DD005F15801FD4891E80E1000F5027893
+:10B6100088E80E10A96EC0F82112E96EC0F8251254
+:10B6200000F58170FBF7F3FC9AF8000000280CBFCE
+:10B6300001200020F2490876D5E91202C1E904028E
+:10B64000A1F5837101F58370326AFBF712F894F863
+:10B650005400012808BF00220CD0022808BF012294
+:10B6600008D0042808BF032204D008281ABFFFDF2F
+:10B6700000220222FB210020FBF716F803E0FBF773
+:10B68000C6FCFBF73DF8012194F855200846FBF76E
+:10B69000C7FD3771306A018831828078B0743770A5
+:10B6A000FCF7A5F9002818BFFFDF0BB0BDE8F08F4D
+:10B6B0002DE9F047D34C8146DDF8208020781E46E6
+:10B6C00017460D4628B9002F1CBF002EB8F1000FF9
+:10B6D00000D1FFDFC4F81C80C4E90D95C4E90576EC
+:10B6E0004FF00000E071A071E070A07020716071F7
+:10B6F000C54EA081E081307805F158072888F7F71A
+:10B70000BDFAE0622888F7F7A7FA2063FBF73EF955
+:10B7100095F95700FBF7DFF905F11200FBF75AFC2A
+:10B7200005F10E00FBF7DDF9307800280CBF03208F
+:10B730000120FBF769FCB87EFBF7DBF9FBF75EFC49
+:10B740003078002804BFFF2095F8544019D0BF7C02
+:10B750006C8E95F85510284601F027FD95F8551088
+:10B7600080B208291FD001F0FEFC014620468C4221
+:10B7700028BF0846002F1CBF001D80B2C0B295F83C
+:10B7800055402146FBF7DEF83078214680B1012094
+:10B79000FBF7A3FA7068D0F8E800FBF73BFCBDE8C4
+:10B7A000F047012023E5042101F0DDFC0146DDE73F
+:10B7B0000020FBF792FABDE8F047C8E5924800B5D3
+:10B7C00001783438007819B1022818BFFFDF00BDB6
+:10B7D000012818BFFFDF00BD8A4810B50078022895
+:10B7E00018BFFFDFBDE8104000F034BA00F032BAF5
+:10B7F0008448007970478348C078704781490120A8
+:10B80000487170472DE9F04706007F487D4D40683C
+:10B8100000F15804686A90F8019018BF012E03D116
+:10B82000296B09F069FB6870687800274FF0010800
+:10B83000A0B101283CD0022860D003281CBFFFDF44
+:10B84000BDE8F087012E08BFBDE8F087286BF6F74A
+:10B8500087FE287ABDE8F047E7F75EBB012E14D0DB
+:10B86000A86A002808BFFFDF6889C21CD5E9091053
+:10B8700009F084FEA86A686201224946286BF6F73F
+:10B88000EBFC022E08BFBDE8F087D4E91401401C90
+:10B8900041F10001C4E91401E079012801D1E77107
+:10B8A00001E084F80780287ABDE8F047E7F734BB69
+:10B8B000012E14D0A86A002808BFFFDF6889C21CC7
+:10B8C000D5E9091009F05AFEA86A686200224946C3
+:10B8D000286BF6F7C1FC022E08BFBDE8F087D4E95B
+:10B8E0001410491C40F10000C4E91410E07901284B
+:10B8F0000CBFE77184F80780BDE8F087012E06D001
+:10B90000286BF6F72DFE022E08BFBDE8F087D4E9BC
+:10B910001410491C40F10000C4E91410E07901281A
+:10B92000BFD1BCE770B5384E3046A6F1340440684C
+:10B9300000F158052078012818BFFFDFA87868B10A
+:10B940000021A970A289042042F00402A281626948
+:10B950009047307800281CBF01202871216A0322FB
+:10B96000087832EA000009D1A28912F4806F05D06C
+:10B9700042F00202A2816269022090470121002068
+:10B9800000F087F918B1BDE8704000F063B9BDE878
+:10B99000704000202BE42DE9F14F1B4E002730466C
+:10B9A000A6F134054068317800F1580A2878B84685
+:10B9B000022818BFFFDFE88940F40070E881716851
+:10B9C0003078FF2091F85410FAF7BCFF0098002857
+:10B9D0009AF8120000F00681FAF7B7FEFAF7A5FE12
+:10B9E0004FF00109E0B99AF81200C8B1686A4178CD
+:10B9F000B1B10078C0F3C00008E00000E00C002006
+:10BA0000E80E002024010020580100209AF80710B9
+:10BA1000884205D185F80290BDE8F84F00F01AB9C8
+:10BA2000686A41786981002908BFAF6203D0286B3A
+:10BA3000F6F7CCFBA862E88940F02000E881EF70BF
+:10BA40003078706800F15804834690F82C00012883
+:10BA50001AD1FBF7ABFB2146584601F05AFA98B1D0
+:10BA60003078002870680CBF00F58E7000F5F97012
+:10BA7000BBF800104180217A0171617A417180F830
+:10BA80000090287AE7F748FA686A9AF80610007872
+:10BA9000C0F3800088423BD03078706800F15804D1
+:10BAA00090F85D0000282FD002284BD067713078C5
+:10BAB00000281CBF2079002809D02771AA8939469F
+:10BAC00042F01002AA816A694FF010009047E078B6
+:10BAD000A0B1E770FCF720F8002808BFFFDF0820BE
+:10BAE000AA89002142F00802AA816A699047D4E934
+:10BAF0001202411C42F10000C4E91210A079012891
+:10BB00000CBFA77184F80690E88940F48070E88142
+:10BB1000696A9AF807300878C0F3C0029A424ED199
+:10BB20003278726800F0030002F15804012818BF4F
+:10BB300002282DD003281CBFA87940F0040012D0A1
+:10BB4000A8713CE0E86AF6F77DFA002808BFFFDF3D
+:10BB5000D4E91202411C42F10000C4E91210287A13
+:10BB6000E7F7DAF9A2E784F80290EA89484642F456
+:10BB70000062EA81AA8942F00102AA816A699047BB
+:10BB8000E079012801D1E77119E084F8079016E007
+:10BB9000487818B3E98941F40061E981A96A71B173
+:10BBA000FB2884BFA87940F01000C9D8E8790028A4
+:10BBB00008BFC84603D080206A6900219047012051
+:10BBC000009900F066F8B0B1B8F1000F1CBF00207A
+:10BBD000FFF718FEBDE8F84F00F03CB8E079012807
+:10BBE000D3D1D0E7002818BFFAF7E7FDE88940F085
+:10BBF0004000E881E3E7B8F1000F1CBF0120FFF728
+:10BC000001FEFFF7A4FBB8F1000F08BFBDE8F88FF5
+:10BC10000220BDE8F84FF5E570B50D4606463D48F3
+:10BC20003C4900784C6850B1FAF724FE034694F87A
+:10BC3000542029463046BDE87040FDF76DBAFAF74A
+:10BC400019FE034694F8542029463046BDE870405A
+:10BC500006F091B92F4910B54C68FBF786FAFBF74F
+:10BC600065FAFBF73DF9FBF7BBF9FAF749FD94F8E4
+:10BC70002C00012808BFFBF799FA274C00216269C4
+:10BC8000E0899047E269A179A07890470020207070
+:10BC900010BD70B5204C0546002908BF012D06D106
+:10BCA000E07800F10100C0B2E07001282ED8A1694F
+:10BCB00028468847002829D06179184839B1012DD4
+:10BCC00001BF41780029017811F0100F1ED0A17931
+:10BCD000E1B910490978002908BF012D01D091B1BF
+:10BCE0008DB90F49097811F0100F04BF007810F0DA
+:10BCF000100F0BD0A08948B9A06A20B9608910B193
+:10BD000011F0100F02D04FF0000070BD4FF0010095
+:10BD100070BD00005801002024010020E00C00202C
+:10BD200034010020FE498A78824286BF084490F898
+:10BD300043010020704710B540F2D311F84809F0D4
+:10BD40009CFCFF220821F74809F08FFCF6480021EF
+:10BD5000417081704FF46171818010BD2DE9F04117
+:10BD60000E46054600F0ADFBED4C102816D004EB56
+:10BD7000C00191F85A0110F0010F1CBF0120BDE86D
+:10BD8000F081607808283CBF012081F85A011CD25C
+:10BD90006078401C60700120BDE8F0816078082860
+:10BDA00013D222780127501C207004EBC20830689F
+:10BDB000C8F85401B088A8F85801102A28BFFFDF3E
+:10BDC00088F8535188F85A71E2E70020BDE8F08105
+:10BDD000D54988707047D4488078704770B4D0488F
+:10BDE00000250178491E4BB2002B46DB00EBC30156
+:10BDF00091F85A1111F0010F3BD04278D9B2521E7E
+:10BE0000427000EBC10282F85A5190F802C0002241
+:10BE1000BCF1000F0BD9841894F803618E4202D153
+:10BE2000102A26D103E0521CD2B29445F3D80278EE
+:10BE3000521ED2B202708A421BD000EBC20200EB4B
+:10BE4000C10CD2F85341CCF85341D2F85721CCF869
+:10BE50005721847890F800C00022002C09D9861858
+:10BE600096F8036166450CD1102A1CBF024482F883
+:10BE70000311591E4BB2002BB8DAAB48857070BC69
+:10BE80007047521CD2B29442E9D8F2E7A4498A78AA
+:10BE9000824286BF01EB0010C01C002070472DE9D4
+:10BEA000F04101261F4690463446002500F009FB6C
+:10BEB00010282AD09A494FF0000C01EBC00292F8EA
+:10BEC0005A2102F001058A78002A1ED901EB0C03E1
+:10BED00093F8033183421FD1BCF1100F15D0002F0E
+:10BEE00018BF87F800C0887860450ED901EB0C10A8
+:10BEF00010F1030F09D001EB0C0090F84B4190F8C2
+:10BF00003B0101280CBF0126002648EA050046EA4D
+:10BF100004010840BDE8F0810CF1010303F0FF0CBF
+:10BF20006245D3D8F1E72DE9F05F1F4690460E46F3
+:10BF3000814600F0C6FA7A4D044610283CD00146EE
+:10BF4000AB780020002B0ED92A1892F803218A42E0
+:10BF500005D110281CBF1220BDE8F09F03E0401C53
+:10BF6000C0B28342F0D8082B3FD2102C27D0AE7835
+:10BF70001022701CA87005EB061909F10300414658
+:10BF800000F06CFF09F183001022394600F066FFD3
+:10BF90001021384600F03FFF3544102185F8430159
+:10BFA000404600F038FF85F84B0185F8034100203A
+:10BFB00085F83B01BDE8F09FAB78082B15D22C78B3
+:10BFC000CA46601C287005EBC4093068C9F85401E2
+:10BFD000B0884FF0000BA9F85801102C28BFFFDFE4
+:10BFE00089F853A189F85AB1C1E70720BDE8F09F4D
+:10BFF00070B44B488178491E4BB2002BBCBF70BC5B
+:10C00000704700BF817803F0FF0C491ECAB28270EE
+:10C0100050FA83F191F8031194453ED000EB0215DC
+:10C0200000EB0C14D5F80360C4F80360D5F8076082
+:10C03000C4F80760D5F80B60C4F80B60D5F80F6042
+:10C04000C4F80F60D5F88360C4F88360D5F88760C2
+:10C05000C4F88760D5F88B60C4F88B60D5F88F5032
+:10C06000C4F88F50851800EB0C0402EB420295F8DF
+:10C0700003610CEB4C0C00EB420284F8036100EB13
+:10C080004C0CD2F80B61CCF80B61B2F80F21ACF874
+:10C090000F2195F83B2184F83B2100EBC10292F877
+:10C0A0005A2112F0010F33D190F802C00022BCF1E6
+:10C0B000000F0BD9841894F803518D4202D1102A35
+:10C0C00026D103E0521CD2B29445F3D80278521E16
+:10C0D000D2B202708A421BD000EBC20200EBC10C4C
+:10C0E000D2F85341CCF85341D2F85721CCF857211C
+:10C0F000847890F800C00022002C09D9851895F8A2
+:10C100000351654512D1102A1CBF024482F8031165
+:10C11000591E4BB2002BBFF675AF70BC70470000C4
+:10C12000100F00206C01002060010020521CD2B2D0
+:10C130009442E3D8ECE7FE4948707047FC484078E9
+:10C14000704738B14AF2B811884203D8F84988805C
+:10C150000120704700207047F5488088704710B56F
+:10C1600000F0AFF9102814D0F24A0146002092F8EE
+:10C1700002C0BCF1000F0CD9131893F803318B42A5
+:10C1800003D1102818BF10BD03E0401CC0B2844585
+:10C19000F2D8082010BDE7498A78824286BF01EBB9
+:10C1A0000010833000207047E24B93F802C08445B2
+:10C1B0009CBF00207047184490F8030103EBC000B7
+:10C1C00090F853310B70D0F854111160B0F8580149
+:10C1D000908001207047D74A114491F80321D44937
+:10C1E0000A700268C1F8062080884881704770B5DF
+:10C1F00016460C460546FAF7CEFFFAF796F9CC48F4
+:10C20000407868B1CB48817851B12A19002E0CBF13
+:10C210008330C01CFAF763F9FAF7AAF9012070BD60
+:10C22000002070BD10B5FAF7D1F9002804BFFF2037
+:10C2300010BDBDE81040FAF7EFB9FAF7C7B9BD492C
+:10C240008A7882429CBF00207047084490F803011E
+:10C2500001EBC00090F85A0100F0010070472DE991
+:10C26000F047B44E00273D46307800288CBFDFF8F9
+:10C27000C882BDE8F0870024B078002808D93119B9
+:10C2800091F80321AA4204D0611CCCB2A042F6D896
+:10C290001024A04286BF06EB0410C01C002006EB51
+:10C2A000C50999F85A1111F0010F16D050B1102C90
+:10C2B00004D0311991F83B11012903D0102100F06D
+:10C2C000AAFD50B108F8074038467B1C99F8532165
+:10C2D00009F5AA71DFB2FAF7D6FB681CC5B230784F
+:10C2E000A842C8D8BDE8F0872DE9F041914C00265E
+:10C2F0003546A07800288CBF8F4FBDE8F0816119CA
+:10C30000C0B291F80381A84286BF04EB0510C01C9F
+:10C31000002091F83B11012903D0102100F07BFD92
+:10C3200058B104EBC800BD5590F8532100F5AA712F
+:10C330003046731CDEB2FAF7A6FB681CC5B2A078C3
+:10C34000A842DCD8BDE8F08101447A4810B500EB82
+:10C3500002100A4601218330FAF7C1F8BDE8104007
+:10C36000FAF706B90A46724910B5497841B1714BDE
+:10C37000997829B10244D81CFAF7B1F8012010BD10
+:10C38000002010BD6B4A01EB410102EB4101026844
+:10C39000C1F80B218088A1F80F0170472DE9F04109
+:10C3A000644D07460024A878002898BFBDE8F081B6
+:10C3B000C0B2A04217D905EB041010F1830612D0C9
+:10C3C0001021304600F027FD68B904EB440005EB6E
+:10C3D000400808F20B113A463046FBF72CFCB8F83F
+:10C3E0000F01A8F80F01601CC4B2A878A042DFD8E2
+:10C3F000BDE8F08101461022504800F02FBD4F48A3
+:10C4000070474C498A78824203D90A1892F843212E
+:10C410000AB10020704700EB400001EB400000F241
+:10C420000B10704743498A78824206D9084490F835
+:10C430003B01002804BF01207047002070472DE910
+:10C44000F0410E46074615460621304600F0E3FC53
+:10C45000384C98B1A17871B104F59D7011F0010FBD
+:10C4600018BF00F8015FA178490804D0457000F8B2
+:10C47000025F491EFAD10120BDE8F08138463146FD
+:10C4800000F01FF8102819D0A3780021002B15D92F
+:10C49000621892F8032182420BD1102918BF082993
+:10C4A0000CD004EB010080F83B514FF00100BDE8D7
+:10C4B000F08101F10101C9B28B42E9D80020BDE849
+:10C4C000F0812DE9F0411B4D0646002428780F46E7
+:10C4D000002811D905EBC40090F85311B14206D1E0
+:10C4E0000622394600F5AA7009F01CF838B1601C24
+:10C4F000C4B22878A042EDD81020BDE8F0812046D3
+:10C50000BDE8F0810B4910B44A7801EBC003521E1C
+:10C510004A70002283F85A2191F802C0BCF1000F42
+:10C5200016D98B1893F8034184420DD1102A07E0E5
+:10C5300060010020100F00206C010020E31000209B
+:10C540001CBF10BC704703E0521CD2B29445E8D81F
+:10C550000A78521ED2B20A7082421BD001EBC2028C
+:10C5600001EBC003D2F853C1C3F853C1D2F857212D
+:10C57000C3F857218C7891F800C00022002C09D90B
+:10C580008B1893F80331634506D1102A1CBF114460
+:10C5900081F8030110BC7047521CD2B29442EFD80C
+:10C5A00010BC704770B449490D188A78521ED3B236
+:10C5B0008B7095F8032198423DD001EB001401EBFC
+:10C5C000031C00EB4000DCF80360C4F80360DCF8F7
+:10C5D0000760C4F80760DCF80B60C4F80B60DCF897
+:10C5E0000F60C4F80F60DCF88360C4F88360DCF887
+:10C5F0008760C4F88760DCF88B60C4F88B60DCF877
+:10C600008FC0C4F88FC001EB030C03EB43039CF80D
+:10C61000034101EB430385F8034101EB4000D3F8EC
+:10C620000B41C0F80B41B3F80F31A0F80F319CF863
+:10C630003B0185F83B0101EBC20090F85A0110F074
+:10C64000010F1CBF70BC704700208C78002C0DD9E6
+:10C650000B1893F803C1944504D110281CBF70BC7B
+:10C66000704703E0401CC0B28442F1D80878401EF5
+:10C67000C0B20870904204BF70BC704701EBC203A7
+:10C6800001EBC000D0F853C1C3F853C1D0F8570133
+:10C69000C3F857018C780B780020002C9CBF70BC2D
+:10C6A000704700BF01EB000C9CF803C19C4506D10C
+:10C6B00010281CBF084480F8032170BC7047401C40
+:10C6C000C0B28442EED870BC70470000100F00204A
+:10C6D00010B50A7B02F01F020A73002202768B1843
+:10C6E00093F808C00CF001034FEA5C0C0CF0010455
+:10C6F00023444FEA5C0C0CF0010423444FEA5C0C29
+:10C700000CF001041C444FEA5C0303F0010CA44448
+:10C710005B0803F00104A4445B0803F00104A44493
+:10C720000CEB530300EB020C521C8CF8133090F806
+:10C7300018C0D2B263440376052AD0D3D8B22528D4
+:10C7400088BFFFDF10BD0023C383428401EBC20218
+:10C75000521EB2FBF1F10184704770B5002504460A
+:10C7600003290DD04FF4FA4200297FD001297CD053
+:10C77000022918BF70BD0146BDE870405830A7E7D8
+:10C7800004F158068021304608F099FFB571F57123
+:10C7900035737573F573357475717576B5762120BB
+:10C7A00086F83E00492086F83F00FE2086F8740097
+:10C7B00084F82C502584012084F8540084F8550016
+:10C7C000282184F856101B21218761874FF4A4711A
+:10C7D000E187A1871B21218661864FF4A471E18640
+:10C7E000A1861B21A4F84010A4F844104FF4A471B2
+:10C7F000A4F84610A4F842101B21A4F84A10A4F88B
+:10C800004C10A4F8481060734FF448606080A4F89E
+:10C81000D850A4F8DA50A4F8DC50A4F8DE50A4F8FC
+:10C82000E050A4F8E25084F8E55084F8E750A4F80A
+:10C83000EE5084F8EC50A4F80051A4F8025184F8AA
+:10C84000A25184F8A35184F8AC5184F8AD5184F816
+:10C85000705184F8785184F87B5184F89451C4F86D
+:10C860008C51C4F8905170BD00E041E0A4F8EE5046
+:10C8700084F8E6506088FE490144B1FBF0F1A4F869
+:10C8800078104BF68031A4F87A10E388A4F87E5033
+:10C89000B4F882C0DB000CFB00FCB3FBF0F39CFBA4
+:10C8A000F0FC5B1CA4F882C09BB203FB00FC04F10B
+:10C8B0005801A4F88030BCF5C84FC4BF5B1E0B857F
+:10C8C000B2FBF0F2521CCA8500F5802202F5EE326E
+:10C8D000531EB3FBF0F20A84CB8B03FB00F2B2FBD6
+:10C8E000F0F0C883214604F15800BDE87040EFE63F
+:10C8F000B4F89C11B4F8A031B4F802C004F15800A7
+:10C90000A4F87E50B4F88240DB0004FB0CF4B3FBC7
+:10C91000F1F394FBF1F45B1C44859BB203FB01F43F
+:10C920000385B4F5C84FC4BF5B1E0385B2FBF1F2AB
+:10C93000521CC285428C01EBC202521EB2FBF1F2C4
+:10C940000284C28B02FB0CF2B2FBF1F1C18370BD19
+:10C9500070B50025044603290DD04FF4FA42002992
+:10C9600063D001297ED0022918BF70BD0146BDE801
+:10C9700070405830ACE604F158068021304608F08B
+:10C980009EFEB571F57135737573F57335747571F8
+:10C990007576B576212086F83E00492086F83F005E
+:10C9A000FE2086F8740084F82C502584012084F839
+:10C9B000540084F85500282184F856101B21218743
+:10C9C00061874FF4A471E187A1871B2121866186CD
+:10C9D0004FF4A471E186A1861B21A4F84010A4F8AD
+:10C9E00044104FF4A471A4F84610A4F842101B217F
+:10C9F000A4F84A10A4F84C10A4F848106073A4F8E6
+:10CA0000E050202084F8E20084F8D850C4F8DC50CC
+:10CA100084F80C5184F80D5184F8165184F817519C
+:10CA200084F8FC5084F8085170BD60889049014436
+:10CA3000B1FBF0F1A4F878104BF68031A4F87A102D
+:10CA4000E388A4F87E50B4F882C0DB000CFB00FC45
+:10CA50009CFBF0FCB3FBF0F304F15801A4F882C096
+:10CA60005B1C00E021E09BB203FB00FCA4F88030DB
+:10CA7000BCF5C84FC4BF5B1E0B85B2FBF0F2521C65
+:10CA8000CA8500F5802202F5EE32531EB3FBF0F2A8
+:10CA90000A84CB8B03FB00F2B2FBF0F0C883214683
+:10CAA00004F15800BDE8704012E6D4F80031B4F843
+:10CAB00002C004F158005989DB89A4F87E50B4F80B
+:10CAC0008240DB0004FB0CF4B3FBF1F394FBF1F4C4
+:10CAD0005B1C44859BB203FB01F40385B4F5C84F8E
+:10CAE000C4BF5B1E0385B2FBF1F2521CC285428CAF
+:10CAF00001EBC202521EB2FBF1F20284C28B02FBB6
+:10CB00000CF2B2FBF1F1C18370BD2DE9F003047E9C
+:10CB10000CB1252C03D9BDE8F00312207047002A80
+:10CB200002BF0020BDE8F003704791F80DC01F263A
+:10CB30000123504D4FF00008BCF1000F74D0BCF140
+:10CB4000010F1EBF1F20BDE8F0037047B0F800C002
+:10CB50000A7C8F7B91F80F907A404F7C87EA090717
+:10CB600042EA072282EA0C0C5FF000070CF0FF0992
+:10CB70004FEA1C2C99FAA9F99CFAACFC4FEA196906
+:10CB80004FEA1C6C49EA0C2C0CEB0C1C7F1C9444E7
+:10CB9000FFB21FFA8CFC032FE8D38CEA020C354F4E
+:10CBA0000022ECFB057212096FF0240502FB05C29E
+:10CBB000D2B201EBD207427602F007053F7A03FAC0
+:10CBC00005F52F4218BF82767ED104FB0CF2120CC1
+:10CBD000521CD2B25FF0000400EB040C9CF813C0AE
+:10CBE00094453CBFA2EB0C02D2B212D30D194FF008
+:10CBF000000C2D7A03FA0CF73D421CBF521ED2B234
+:10CC0000002A71D00CF1010C0CF0FF0CBCF1080FE4
+:10CC1000F0D304F1010C0CF0FF04052CDCD33046FA
+:10CC2000BDE8F0037047FFE790F819C00C7E474657
+:10CC300004FB02C20F4C4FF0000CE2FB054C4FEA24
+:10CC40001C1C6FF024040CFB0422D2B201EBD204B2
+:10CC5000427602F0070C247A03FA0CFC14EA0C0F5B
+:10CC60001FBF82764046BDE8F003704704E0000035
+:10CC7000FFDB050053E4B36E90F818C0B2FBFCF480
+:10CC80000CFB1422521CD2B25FF0000400EB040C27
+:10CC90009CF813C094453CBFA2EB0C02D2B212D355
+:10CCA0000D194FF0000C2D7A03FA0CF815EA080F55
+:10CCB0001CBF521ED2B27AB10CF1010C0CF0FF0C69
+:10CCC000BCF1080FF0D300E011E004F1010C0CF00E
+:10CCD000FF04052CDAD3A2E70CEBC40181763846B9
+:10CCE000BDE8F0037047FFE70CEBC40181764046D6
+:10CCF000BDE8F0037047FD4A016812681140FC4A24
+:10CD0000126811430160704730B4FA49F74B0024B0
+:10CD10004FF0010C0A78521CD2B20A70202A08BFC8
+:10CD20000C700D781A680CFA05F52A42F2D00978D1
+:10CD300002680CFA01F15140016030BC704770B4D8
+:10CD40006FF01F02010C02EA90251F23A1F5AA40F3
+:10CD500054381CBFA1F5AA40B0F1550009D0A1F587
+:10CD60002850AA381EBFA1F52A40B0F1AA00012020
+:10CD700000D100204FF0000C624664468CEA0106A8
+:10CD8000F6431643B6F1FF3F11D005F001064FEA16
+:10CD90005C0C4CEAC63C03F0010652086D085B08C7
+:10CDA000641C42EAC632162CE8D370BC704770BCD3
+:10CDB00000207047017931F01F0113BF00200022CD
+:10CDC0001146704710B4435C491C03F0010C5B082A
+:10CDD00003F00104A4445B0803F00104A4445B08CD
+:10CDE00003F00104A4445B0803F00104A4445B08BD
+:10CDF00003F001045B08A44403F00104A4440CEB19
+:10CE000053031A44D2B20529DDDB012A8CBF01206D
+:10CE1000002010BC704730B40022A1F1010CBCF11D
+:10CE2000000F11DD431E11F0010F08BF13F8012F91
+:10CE30005C785FEA6C0C07D013F8025F22435C78E1
+:10CE40002A43BCF1010CF7D1491E5CBF405C024390
+:10CE5000002A0CBF0120002030BC7047002A08BF08
+:10CE600070471144401E12F0010F03D011F8013D2C
+:10CE700000F8013F520808BF704700BF11F8013C9D
+:10CE8000437011F8023D00F8023F521EF6D1704780
+:10CE900070B58CB000F110041D4616460DF1FF3C34
+:10CEA0005FF0080014F8012C8CF8012014F8022D12
+:10CEB0000CF8022F401EF5D101F1100C6C460DF15B
+:10CEC0000F0108201CF8012C4A701CF8022D01F8F3
+:10CED000022F401EF6D1204607F0FAF97EB16A1EF5
+:10CEE00004F130005FF0080110F8013C537010F8B5
+:10CEF000023D02F8023F491EF6D10CB070BD089801
+:10CF00002860099868600A98A8600B98E8600CB0DF
+:10CF100070BD38B505460C466846FAF760F900283A
+:10CF200008BF38BD9DF900202272A07E607294F97E
+:10CF30000A100020511A48BF494295F82D308B4203
+:10CF4000C8BF38BDFF2B08BF38BDE17A491CC9B244
+:10CF5000E17295F82E30994203D8A17A7F2918BF43
+:10CF600038BDA2720020E072012038BD0C2818BF25
+:10CF70000B2810D00D2818BF1F280CD0202818BF50
+:10CF8000212808D0222818BF232804D024281EBF17
+:10CF90002628002070474FF0010070470C2963D20B
+:10CFA000DFE801F006090E13161B323C415C484EC7
+:10CFB000002A5BD058E0072A18BF082A56D053E051
+:10CFC0000C2A18BF0B2A51D04EE00D2A4ED04BE050
+:10CFD000A2F10F000C2849D946E023B1A2F11000BC
+:10CFE0000B2843D940E0122A18BF112A3ED090F8EE
+:10CFF000360020B1122A37D31A2A37D934E0162A3C
+:10D0000032D31A2A32D92FE0A2F10F0103292DD9E8
+:10D0100090F8360008B31B2A28D925E0002B08BF5A
+:10D02000042A21D122E013B1062A1FD01CE0012AD4
+:10D030001AD11BE01C2A1CBF1D2A1E2A16D013E081
+:10D040001F2A18BF202A11D0212A18BF222A0DD04A
+:10D05000232A1CBF242A262A08D005E013B10E2A51
+:10D0600004D001E0052A01D000207047012070475C
+:10D070002DE9F0410D4604468668F7F7CCFF58B914
+:10D08000F7F7FAFD40F23471F7F7F7FAA06020469F
+:10D09000F7F7C1FF0028F3D095B13046A168F8F743
+:10D0A00004FB00280CDD2844401EB0FBF5F707FB0D
+:10D0B00005F13046F7F7E1FAA0603846BDE8F081A7
+:10D0C0000020BDE8F08170B50446904228BF70BDD5
+:10D0D000101B642810D325188D4205D8F8F719FBCA
+:10D0E00000281CBF284670BD204670BD785C020039
+:10D0F0007C5C0200740100206420ECE710B4B1F8FD
+:10D1000002C0A0F840C0B1F806C0A0F844C0B1F811
+:10D1100004C090F85440098914F00C0F15D000BFDA
+:10D12000BCF5296F98BF4FF4296C90F8554014F066
+:10D130000C0F11D0B1F5296F98BF4FF42961A0F8F9
+:10D1400042C0A0F8461010BC7047002B1CBF1478DA
+:10D1500014F00C0FE4D1E8E7002B1CBF527812F05A
+:10D160000C0FE7D1EBE711F00C0F13D001F0040125
+:10D1700000290DBF4022102296214FF4167101F5AF
+:10D18000BC71A0EB010388428CBF93FBF2F000203E
+:10D1900080B27047022919BF6FF00D0101EBD0007A
+:10D1A0006FF00E0101EB9000F2E7C08E11F00C0F52
+:10D1B00008BF7047B0F5296F38BF4FF4296070473A
+:10D1C0000246808E11F00C0F08BF704792F8553060
+:10D1D000D18E13F00C0F04D0B1F5296F38BF4FF486
+:10D1E0002961538840F2E24C03FB0CF3528E4FF45A
+:10D1F000747C0CEB821C8C459CBF910101F5747111
+:10D20000591AA1F59671884228BF0846B0F5296FD2
+:10D2100038BF4FF429607047084418449830002AFA
+:10D2200014BF0421002108447047F0B4002A14BF41
+:10D2300008220122002B14BF0824012412F00C0F35
+:10D240008B8ECA8E25D091F85550944615F00C0F50
+:10D2500004D0BCF5296F38BF4FF4296C4D8840F2DB
+:10D26000E2466E434D8E4FF4747707EB85176745A2
+:10D270009CBF4FEA851C0CF5747CA6EB0C0CACF53E
+:10D28000967C634528BF6346B3F5296F38BF4FF4DA
+:10D29000296314F00C0F04D0B2F5296F38BF4FF496
+:10D2A00029621FFA83FC00280CBF0123002391F898
+:10D2B000560014F00C0F08BF00200CEB02010844CC
+:10D2C0009830002B14BF042100210844F0BC7047A3
+:10D2D0002DE9F00391F854200B8E12F00C0F4FF44F
+:10D2E00074771CBF07EB83139CB255D012F00C0F60
+:10D2F0008B8ECA8E4D8E91F855C021D016461CF0EB
+:10D300000C0F04D0B6F5296F38BF4FF42966B1F879
+:10D31000028040F2E24908FB09F807EB8519B145A4
+:10D3200002D8AE0106F57476A8EB0606A6F5967649
+:10D33000B34228BF3346B3F5296F38BF4FF4296392
+:10D34000A34228BF23469CB21CF00C0F1CBF07EB66
+:10D3500085139BB228D000BF1CF00C0F04D0B2F58F
+:10D36000296F38BF4FF429629A4228BF1A46002815
+:10D370000CBF0123002391F856001CF00C0F08BFCE
+:10D380000020A11808449830002B14BF042100216C
+:10D390000844BDE8F0037047022A07BF9B003C33F6
+:10D3A000DB0070339CB2A1E7BCF1020F07BFAB00FA
+:10D3B0003C33EB0070339BB2CEE710F0010F1CBF83
+:10D3C0000120704710F0020F1CBF0220704710F0C0
+:10D3D000040018BF082070472DE9F047044617469F
+:10D3E00089464FF00108084600F0C5FC054648464E
+:10D3F00000F0C5FC10F0010F18BF012625D000BFBA
+:10D4000015F0010F18BF01232AD000BF56EA03010F
+:10D4100008BF4FF0000810F0070F08BF002615F0F6
+:10D42000070F08BF002394F85400B0420CBF00203F
+:10D430003046387094F85510994208BF00237B702D
+:10D44000002808BF002B25D115E010F0020F18BFEF
+:10D450000226D5D110F0040F14BF08260026CFE70E
+:10D4600015F0020F18BF0223D0D115F0040F14BF1E
+:10D4700008230023CAE7484600F087FCB4F8581098
+:10D48000401A00B247F6FE71884201DC002801DC38
+:10D490004FF0000816B1082E0CD018E094F8540094
+:10D4A000012818BF022812D004281EBF0828FFDF59
+:10D4B000032D0CD194F8AC0148B1B4F8B0010128A7
+:10D4C00094F8540006D0082801D00820387040464F
+:10D4D000BDE8F087042818BF0420F7D1F5E701283C
+:10D4E00014BF0228704710F00C0018BF04207047CA
+:10D4F00038B4CBB2C1F3072CC1B2C0F30724012B5F
+:10D5000007D0022B09D0042B08BFBCF1040F2DD08B
+:10D5100006E0BCF1010F03D128E0BCF1020F25D0D9
+:10D52000012906D0022907D0042908BF042C1DD0E8
+:10D5300004E0012C02D119E0022C17D001EA0C0101
+:10D5400061F3070204EA030161F30F22D1B211F083
+:10D55000020F18BF022310D0C2F307218DF800304C
+:10D5600011F0020F18BF02211BD111E0214003EA84
+:10D570000C03194061F30702E6E711F0010F18BF31
+:10D580000123E9D111F0040F14BF08230023E3E7BE
+:10D5900011F0010F18BF012103D111F0040118BFD0
+:10D5A00008218DF80110082B01BF000C0128042070
+:10D5B0008DF80000BDF8000038BC70474FF0000C3B
+:10D5C000082902D0042909D011E001280FD1042034
+:10D5D000907082F803C0138001207047012806D0A4
+:10D5E0000820907082F803C013800120704700204B
+:10D5F0007047162A10D12A220C2818BF0D280FD0E8
+:10D600004FF0230C1F280DD031B10878012818BF26
+:10D61000002805D0162805D000207047012070474B
+:10D620001A70FBE783F800C0F8E7012908D0022947
+:10D630000BD0042912BF082940F6A660704707E006
+:10D64000002804BF40F2E240704740F6C410704723
+:10D6500000B5FFDF40F2E24000BD000040787047B7
+:10D6600030B50546007801F00F0220F00F0010439E
+:10D670002870092912D2DFE801F00507050705091E
+:10D68000050B0F0006240BE00C2409E0222407E020
+:10D6900001240020E87003E00E2401E00024FFDFF5
+:10D6A0006C7030BD007800F00F0070470A68C0F859
+:10D6B00003208988A0F807107047D0F803200A607B
+:10D6C000B0F80700888070470A68C0F80920898888
+:10D6D000A0F80D107047D0F809200A60B0F80D00CE
+:10D6E000888070470278402322F0400203EA8111CB
+:10D6F0001143017070470078C0F3801070470278C2
+:10D70000802322F0800203EAC111114301707047A7
+:10D710000078C009704770B514460E4605461F2AAA
+:10D7200088BFFFDF2246314605F1090007F026FFDA
+:10D73000A01D687070BD70B544780E460546062C75
+:10D7400038BFFFDFA01F84B21F2C88BF1F242246D2
+:10D7500005F10901304607F011FF204670BD70B594
+:10D7600014460E4605461F2A88BFFFDF2246314673
+:10D7700005F1090007F002FFA01D687070BD09687F
+:10D78000C0F80F1070470A88A0F8132089784175F7
+:10D79000704790F8242001F01F0122F01F0211436E
+:10D7A00080F824107047072988BF072190F82420AB
+:10D7B000E02322F0E00203EA4111114380F8241033
+:10D7C00070471F3008F08FB810B5044600F009FB11
+:10D7D000002818BF204410BDC17811F03F0F1BBFB7
+:10D7E000027912F0010F0022012211F03F0F1BBF3E
+:10D7F000037913F0020F002301231A4402EB4202C3
+:10D80000530011F03F0F1BBF027912F0080F0022E6
+:10D81000012203EB420311F03F0F1BBF027912F00C
+:10D82000040F00220122134411F03F0F1BBF0279A5
+:10D8300012F0200F0022012202EBC20203EB42038E
+:10D8400011F03F0F1BBF027912F0100F00220122CE
+:10D8500002EB42021A4411F03F0F1BBF007910F097
+:10D86000400F00200120104410F0FF0014BF0121E0
+:10D8700000210844C0B2704770B50278417802F0C8
+:10D880000F02082A4DD2DFE802F004080B4C4C4C82
+:10D890000F14881F1F280AD943E00C2907D040E045
+:10D8A000881F1F2803D93CE0881F1F2839D8012072
+:10D8B00070BD4A1EFE2A34D88446C07800258209ED
+:10D8C000032A09D000F03F04601C884204D8604657
+:10D8D000FFF782FFA04201D9284670BD9CF80300E3
+:10D8E0004FF0010610F03F0F1EBF1CF1040000783E
+:10D8F00010F0100F13D064460421604600F071FA56
+:10D90000002818BF14EB0000E6D0017801F03F01B9
+:10D910002529E1D280780221B1EB501FDCD33046BB
+:10D9200070BD002070BD70B50178012501F00F01B8
+:10D93000002404290AD007290DD008291CBF002083
+:10D9400070BD40780E2836D0204670BD4078801FCC
+:10D950001F2830D9F8E7844640789CF803108A09DC
+:10D96000032AF1D001F03F06711C8142ECD86046D9
+:10D97000FFF732FFB042E7D89CF8030010F03F0FEA
+:10D980001EBF1CF10400007810F0100F13D0664683
+:10D990000421604600F025FA002818BF16EB0000AD
+:10D9A000D2D0017801F03F012529CDD28078022123
+:10D9B000B1EB501FC8D3284670BD10B4017801F0F8
+:10D9C0000F01032920D0052921D14478B0F819107E
+:10D9D000B0F81BC0B0F81730827D222C17D1062971
+:10D9E00015D3B1F5486F98BFBCF5FA7F0FD272B16D
+:10D9F000082A98BF8A420AD28B429CBFB0F81D0009
+:10DA0000B0F5486F03D805E040780C2802D010BC70
+:10DA10000020704710BC012070472DE9F0411F46DF
+:10DA200014460D00064608BFFFDF2146304600F0D1
+:10DA3000D8F9040008BFFFDF30193A462946BDE88F
+:10DA4000F04107F09BBDC07800F03F007047C02256
+:10DA500002EA8111C27802F03F021143C17070479F
+:10DA6000C07880097047C9B201F00102C1F34003D8
+:10DA70001A4402EB4202C1F3800303EB4202C1F3FA
+:10DA8000C00302EB4302C1F3001303EB43031A4448
+:10DA9000C1F3401303EBC30302EB4302C1F3801352
+:10DAA0001A4412F0FF0202D0521CD2B20171C378A4
+:10DAB00002F03F0103F0C0031943C170511C4170D3
+:10DAC00070472DE9F0410546C078164600F03F0446
+:10DAD0001019401C0F46FF2888BFFFDF2819324667
+:10DAE0003946001D07F04AFDA019401C6870BDE8CA
+:10DAF000F081C178407801F03F01401A401E80B2A9
+:10DB0000704710B590F803C00B460CF03F01447805
+:10DB10000CF03F0CA4EB0C0CACF1010C1FFA8CF4D4
+:10DB2000944288BF14462BB10844011D2246184672
+:10DB300007F024FD204610BD4078704700B50278FC
+:10DB400001F0030322F003021A430270012914BFFB
+:10DB50000229002104D0032916BFFFDF012100BDE7
+:10DB6000417000BD00B5027801F0030322F003020A
+:10DB70001A430270012914BF0229002104D003298D
+:10DB800016BFFFDF012100BD417000BD007800F02D
+:10DB900003007047417841B1C078192803D2C04AC8
+:10DBA000105C884201D1012070470020704730B5D9
+:10DBB00001240546C17019293CBFB948445C02D311
+:10DBC000FF2918BFFFDF6C7030BD70B515460E46DB
+:10DBD00004461B2A88BFFFDF65702A463146E01CD9
+:10DBE000BDE8704007F0CABCB0F807007047B0F855
+:10DBF00009007047C172090A01737047B0F80B0041
+:10DC0000704730B4B0F80720B0F809C0B0F805305C
+:10DC10000179941F40F67A45AC4298BFBCF5FA7F73
+:10DC20000ED269B1082998BF914209D293429FBF91
+:10DC3000B0F80B00B0F5486F012030BC98BF7047BA
+:10DC4000002030BC7047001D07F04DBE021D084685
+:10DC5000114607F048BEB0F80900704700797047D8
+:10DC60000A68426049688160704742680A6080685B
+:10DC700048607047098881817047808908807047B3
+:10DC80000A68C0F80E204968C0F812107047D0F832
+:10DC90000E200A60D0F81200486070470968C0F88A
+:10DCA00016107047D0F81600086070470A68426086
+:10DCB00049688160704742680A60806848607047C0
+:10DCC0000968C1607047C068086070470079704794
+:10DCD0000A68426049688160704742680A608068EB
+:10DCE000486070470171090A417170478171090AE2
+:10DCF000C17170470172090A417270478172090A45
+:10DD0000C172704780887047C0887047008970472B
+:10DD10004089704701891B2924BF4189B1F5A47F3F
+:10DD200007D381881B2921BFC088B0F5A47F0120BB
+:10DD30007047002070470A684260496881607047F8
+:10DD400042680A60806848607047017911F0070FE7
+:10DD50001BBF407910F0070F0020012070470179A8
+:10DD600011F0070F1BBF407910F0070F00200120B2
+:10DD70007047017170470079704741717047407971
+:10DD800070478171090AC1717047C088704745A208
+:10DD900082B0D2E90012CDE900120179407901F098
+:10DDA000070269461DF80220012A07D800F0070083
+:10DDB000085C01289EBF012002B07047002002B01D
+:10DDC0007047017170470079704741717047407921
+:10DDD000704730B50C460546FB2988BFFFDF6C70E5
+:10DDE00030BDC378024613F03F0008BF70470520DE
+:10DDF000127903F03F0312F0010F36D0002914BF4F
+:10DE00000B20704712F0020F32D0012914BF801D81
+:10DE1000704700BF12F0040F2DD0022914BF401C20
+:10DE2000704700BF12F0080F28D0032914BF801CD0
+:10DE3000704700BF12F0100F23D0042914BFC01C7C
+:10DE4000704700BF12F0200F1ED005291ABF1230F4
+:10DE5000C0B2704712F0400F19D006291ABF401CFB
+:10DE6000C0B27047072918D114E00029CAD114E0C4
+:10DE70000129CFD111E00229D4D10EE00329D9D153
+:10DE80000BE00429DED108E00529E3D105E00629ED
+:10DE9000E8D102E0834288BF70470020704700004D
+:10DEA000805C020000010102010202032DE9F04141
+:10DEB000FC4E0446736893F828000127002528B11A
+:10DEC00093F8A001D8B993F84801C0B193F848017C
+:10DED00098B383F8A071D3F84C113C2269B36570F4
+:10DEE000201D07F04BFB052020702771706890F80B
+:10DEF000A011002918BF80F8485107D034E083F8FA
+:10DF0000A05103F12A014FF48E72E7E71D212A3058
+:10DF100007F0B3FB70687F2180F84510FF2180F87F
+:10DF2000381080F82B1080F83E10818E21F06001AF
+:10DF30002031818680F8285016E0FFE793F8220010
+:10DF4000012814D0187801281BD093F8500101281B
+:10DF50001CBF0020BDE8F081657018202070D3F848
+:10DF60005201606083F850510120BDE8F081657076
+:10DF700007202070586A606083F822500120BDE8B5
+:10DF8000F0816570142020702022991C201D07F05C
+:10DF9000F5FA257271680D7081F85051C248828877
+:10DFA0008284D0F86421527B80F8262080F8227089
+:10DFB000D1F864010088F4F74FFEF4F7F6FAD3E7DE
+:10DFC000B84840680178002914BF80884FF6FF7078
+:10DFD000704770B5B34C0546606890F874112046E0
+:10DFE0000629806803D0FFF73BFDB8B127E0FFF7B3
+:10DFF00037FD10BBA068FFF733FD00BB606890F8E9
+:10E00000A40110F00C0F1AD0A068C17811F03F0FD6
+:10E010001CBF007910F0100F11D00EE0616891F86C
+:10E020007401082809D025B191F83E00FF2806D0D8
+:10E0300003E091F82B00FF2801D0012070BD0020E3
+:10E0400070BDF8B5974C07460E46606890F82810EA
+:10E05000002906BF90F848110029F8BD00F13305EA
+:10E0600020787F2808BFFFDF207828707F2020706D
+:10E07000606890F89A1100F5D470085C012808BF18
+:10E08000012508D0022808BF022504D0042816BFA5
+:10E0900008280325FFDF606880F8365090F8971154
+:10E0A00080F8461090F87411072911D190F8A40156
+:10E0B000012808BF012508D0022808BF022504D086
+:10E0C000042816BF08280325FFDF606880F8375052
+:10E0D000606890F874014FF00005062804D1A0682C
+:10E0E000FFF7BEFC00283CD0606890F87411082946
+:10E0F00004BF90F8A10102280ED04FF00301A068E0
+:10E10000FFF762FB40B141780A09616881F8382065
+:10E110000088C0F30B0048870095A068FFF7C2FA9B
+:10E120006168BDF8005091F83420520962F3461539
+:10E13000ADF80050072818BFFFDF1CD0BDF8000065
+:10E1400000906068BDF8001081860421A068FFF788
+:10E150003BFB00287DD0B0F80100C004C00C79D092
+:10E16000B0E0A068C17811F03F0F1CBF007910F03B
+:10E17000100FB9D1D0E791F87401062816D00728FE
+:10E1800036D0082873D00A2818BFFFDFD6D145F053
+:10E190000A00ADF8000091F83E10FF2914BF0121DC
+:10E1A000002161F38200ADF80000C7E7A068FFF727
+:10E1B00057FC58B1012808BF45F0010046D002289D
+:10E1C00014BFFFDF45F0020040D0B7E7A068C17878
+:10E1D00011F03F0F1CBF007910F0020FAED00120EC
+:10E1E000FFF7F7FE002808BF45F004002ED0A5E792
+:10E1F000A068FFF735FCB0B1012804BF45F001006D
+:10E20000ADF800000FD0022898D145F00200ADF81B
+:10E210000000A168CA7812F03F0F1CBF097911F005
+:10E22000020F21D118E0A068C17811F03F0F1CBF88
+:10E23000007910F0020F05D1606890F83E00FF28C9
+:10E240003FF47CAFBDF8000040F00400ADF80000E2
+:10E2500074E72BE02FE00AE0616891F83E10FF2997
+:10E2600008BF20F00400F1D040F00400EEE791F880
+:10E270003E00FF281CBF45F00400ADF8000091F8F7
+:10E28000A1010228BDF800000CBF40F0080020F0FA
+:10E290000800ADF800000CBF40F0020020F00200C2
+:10E2A000D4E7000078010020F41000206068818E1F
+:10E2B00021F0600105E06068818E21F0600101F1CC
+:10E2C00040018186606890F8741106290DD190F89C
+:10E2D000A40110F00C0F08D0A068C17811F03F0F16
+:10E2E0001CBF007910F0100F10D1A068C17811F098
+:10E2F0003F0F0BD0017911F0400F07D04FF006010E
+:10E30000FFF762FA6168007881F84500606890F86C
+:10E310007401062804D00020FFF75BFE18BB04E060
+:10E32000022F18BF012FF6D1F8BDA068C17811F0F7
+:10E330003F0F33D0017911F0010F2FD0616801F147
+:10E340002C0791F8783101F12B05FF2B0CD03A46C0
+:10E3500029461846FDF728FF002808BFFFDF287868
+:10E3600040F00200287019E0FFF7C5F92870A06896
+:10E37000FFF798F9072804D23946A068FFF79DF9FE
+:10E380000CE0A068FFF78EF9072807D10021A068EC
+:10E39000FFF71AFA016839608088B8800120FFF71A
+:10E3A00018FE80BBA068C17811F03F0F2BD0017917
+:10E3B00011F0020F27D0616801F13F0591F8762135
+:10E3C0006F1E1AB1022E18BF032E08D0FFF76AF98C
+:10E3D00007280AD22946A068FFF77DF912E0D1F894
+:10E3E0005A012860B1F85E010BE0A068FFF75AF906
+:10E3F000072807D10121A068FFF7E6F90168296025
+:10E400008088A8803E70606890F87401062808BF74
+:10E41000F8BD072818BF082802D00A2806D0F8BD82
+:10E42000A068FFF71DFB022808BFF8BD606800F177
+:10E430004705A068FFF75DFB626892F83230C3F1D0
+:10E44000FF01884228BF084605D9918E21F060015E
+:10E4500001F140019186C2B203EB0501A068FFF70C
+:10E4600050FB616891F83220104481F83200F8BD09
+:10E470002DE9F047FB4D06466C6894F8280000280B
+:10E4800018BFBDE8F0871D212A34204607F0F5F8B3
+:10E4900001272770A868FFF705F920B3012827D0C6
+:10E4A00002282AD0062818BFFFDF2BD004F11D0157
+:10E4B000A868FFF740F92072686804F1020904F1C6
+:10E4C000010890F87801FF2821D04A464146FDF71F
+:10E4D0006BFE002808BFFFDF98F8000040F0020044
+:10E4E00088F8000031E0608940F013006081DDE7CA
+:10E4F000608940F015006081DEE7608940F010001F
+:10E500006081D3E7608940F012006081CEE7A8689F
+:10E51000FFF7F1F888F80000A868FFF7C3F80728AC
+:10E5200004D24946A868FFF7C8F80EE0A868FFF7CC
+:10E53000B9F8072809D10021A868FFF745F9016853
+:10E54000C9F800108088A9F80400287804F10908A7
+:10E550007F2808BFFFDF287888F800004FF07F0988
+:10E5600085F80090277300206073FF20A073A17AC4
+:10E5700011F0040F08BF20752DD0686804F115084C
+:10E5800004F1140A90F8761119B1022E18BF032E67
+:10E5900009D0A868FFF786F807280BD24146A8687B
+:10E5A000FFF799F815E0D0F85A11C8F80010B0F844
+:10E5B0005E010CE0A868FFF775F8072809D1012172
+:10E5C000A868FFF701F90168C8F800108088A8F86A
+:10E5D00004008AF8006084F81B90686890F897112E
+:10E5E000217780F82870BDE8F047062003F077BC5B
+:10E5F0002DE9F0419B4C606890F82810FF2500271A
+:10E60000A1B91D212A3007F038F860687F2180F811
+:10E61000451080F8385080F82B5080F83E50818E9D
+:10E6200021F060012031818680F82870606800F553
+:10E63000D47290F89A11895C80F8A411002003F03C
+:10E640005EF818B3F8F7DAFC6068874990F879014A
+:10E650000E5C3046F8F74DFA606880F8976190F8E4
+:10E66000A41111F00C0F0CBF25200F20F8F74CF966
+:10E67000606890F8A4110120F8F7AFFA606890F88C
+:10E680006811032918BF022910D103E0BDE8F04149
+:10E6900001F040B990F89A1100F5D470085C012897
+:10E6A00004D1012211460020F8F7BAFDF8F788FDE1
+:10E6B000606890F8A461012E07BF4FF001080321A4
+:10E6C0004FF000080521A068FDF74CFE616881F855
+:10E6D000760150B1B8F1000F18BF402623D000BF1B
+:10E6E000F7F70FFF3046F8F74CFD6068D0F87C0173
+:10E6F000F8F790FC606890F87811FF291CBF00F2D1
+:10E700009110FDF768FD6068062180F8775180F868
+:10E71000785180F8867180F8857180F8A17180F851
+:10E720007411BDE8F08116F00C0F14BF5526502669
+:10E73000D6E770B54B4C0646606800F5BA752046C2
+:10E74000806841B1D0F80510C5F81D10B0F8090077
+:10E75000A5F8210003E005F11D01FEF7AEFFA0685A
+:10E76000FEF7C9FF85F82400A0680021032E018070
+:10E7700002D0052E04D046E00321FEF771FF42E0EF
+:10E780000521FEF76DFF6068D0F8640100F10E010D
+:10E79000A068FEF7F4FF6068D0F8640100F1120190
+:10E7A000A068FEF7F0FFD4E90110D1F86421527D92
+:10E7B0008275D1F86421D28AC275120A0276D1F824
+:10E7C000642152884276120A8276D1F864219288B6
+:10E7D000C276120A0277D1F86421D2884277120AEF
+:10E7E0008277D1F864110831FEF7EBFF6068D0F84A
+:10E7F0006401017EA068FEF7CCFF606890F8AA1162
+:10E80000A068FEF7D0FF05F11D01A068FEF75CFFD0
+:10E8100095F82410A068FEF772FF606800F5AD75EA
+:10E8200090F8596190F8751191B190F86811032929
+:10E8300006D190F86111002918BF90F87A0101D132
+:10E8400090F87701FDF7DDFD00281CBF0126054685
+:10E850002946A068FEF72AFF3146A068BDE870404F
+:10E86000FEF740BF780100209C5C0200FD4949682A
+:10E8700081F87301704770B5FA4D686890F87411AB
+:10E8800002291FBF90F8741101290C2070BD00F1FE
+:10E8900066014FF00004C0F84C1180F848414FF079
+:10E8A0001D0100F12A0006F0E8FE68687F2180F86B
+:10E8B0004510FF2180F8381080F82B1080F83E10AA
+:10E8C000818E21F060012031818680F8284004701B
+:10E8D00080F8224080F85041012680F8A06190F82D
+:10E8E000760130B1F8F757FCF7F71FFE686880F83B
+:10E8F00076416868072180F8724180F8616180F88C
+:10E90000684180F8794180F8734180F8A14180F82E
+:10E910006011002070BDD34910B58860486800219F
+:10E92000A0F8A51180F8A711012180F87411FFF754
+:10E93000A2FF002818BFFFDF10BD2DE9F041C94D2F
+:10E940000446686890F87401012818BF022804D0B2
+:10E9500003281CBF0C20BDE8F081607A022823D078
+:10E96000F8F714F80220F8F74FFB686890F9730184
+:10E97000F8F7B1F8A868F8F74AFBBB48F8F72AFBA4
+:10E98000BA48F8F7AEF8686890F8591100F5AD701C
+:10E99000F8F759F80F210720F8F771F8686890F830
+:10E9A0006101F0B1FDF7A0FC6868217A00F5D4722E
+:10E9B00080F89A11217A895C80F8A4116168C0F806
+:10E9C0007C112168C0F88011627A6AB1012A23D0D3
+:10E9D0000524022A08BF80F8744175D0032A7FD02D
+:10E9E00087E0FDF73CFCDFE7A14C90F860C1002117
+:10E9F00090F87921521CA4FB02635B08A3EB83030C
+:10EA00001A4480F879212CFA02F212F0010F03D196
+:10EA1000491CC9B20329EBD3002680F8A16190F804
+:10EA20007111002904BF90F87501002848D0F6F74D
+:10EA300023F9044668682146D0F86C01F6F735FEE4
+:10EA4000DFF83082074690FBF8F008FB1070414277
+:10EA50002046F5F712FE6968C1F86C0197FBF8F0E3
+:10EA6000D1F89C211044C1F89C01FDF775FB6A6840
+:10EA7000D2F89C11884223D8C2F89C61C2F86C413C
+:10EA800092F8750100281CBF0120FDF787FC0121C9
+:10EA9000686890F87221002A1CBF90F87121002A42
+:10EAA0000ED090F8592100F5AD73012A04D15A799E
+:10EAB00002F0C002402A09D000F5AD70F9F7F2F873
+:10EAC0006968042081F8740113E009E00124FDF76E
+:10EAD00096FC6968224601F5AD71F9F7ACF8EFE7ED
+:10EAE000002918BFFFDF012000F066FF686880F88A
+:10EAF00074410020BDE8F08170B55A4C606890F810
+:10EB00007411042932D005291CBF0C2070BD90F867
+:10EB1000A1110026002900F2A51190F8A7114FEAD3
+:10EB2000511126D0002908BF012507D0012908BFAF
+:10EB3000022503D0022914BF00250825D0F8800142
+:10EB400000281CBF002000F037FF6068D0F87C016F
+:10EB5000F8F760FA606890F8681102293DD003293F
+:10EB600004BF90F8900101283BD03FE0FFF740FD43
+:10EB700044E0002908BF012507D0012908BF02256C
+:10EB800003D0022914BF00250825D0F880010028F1
+:10EB90001CBF002000F010FF6068D0F87C01F8F77F
+:10EBA00039FA606890F86811022906D0032904BF79
+:10EBB00090F89001012804D008E090F89001022814
+:10EBC00004D12A4601210020F8F72AFB60680721BA
+:10EBD00080F8A45180F885610EE090F89001022839
+:10EBE00004D12A4601210020F8F71AFB60680821A9
+:10EBF00080F8A45180F8856180F87411002070BD00
+:10EC00001849002210F0010F496802D0012281F852
+:10EC1000A82110F0080F03D01144082081F8A801A2
+:10EC2000002070470F49496881F87001704710B59E
+:10EC30000C4C636893F85831022B14BF032B002847
+:10EC40000BD100291ABF0229012000201146FDF72F
+:10EC500086FA08281CBF012010BD606890F8580192
+:10EC6000002809E078010020995C02009F5C020006
+:10EC7000ABAAAAAA40420F0016BF0228002001201A
+:10EC8000BDE81040F8F798BFFE48406890F858017A
+:10EC9000002816BF022800200120F8F78DBFF9498F
+:10ECA000496881F858017047F649496881F872014E
+:10ECB000704770B5F34C616891F85801002816BF91
+:10ECC00002280020012081F8590101F5AD71F8F703
+:10ECD0005DFF606890F85811022916BF03290121D1
+:10ECE000002180F8751190F8592100F5AD734FF0AF
+:10ECF0000005012A04BF5B7913F0C00F0AD000F5AC
+:10ED0000AD73012A04D15A7902F0C002402A01D021
+:10ED1000002200E0012280F87121002A04BF0029AE
+:10ED200070BDC0F89C51F5F7A7FF6168C1F86C0190
+:10ED300091F8750100281CBF0020FDF72FFB00266D
+:10ED4000606890F8721100291ABF90F871110029BB
+:10ED500070BD90F8592100F5AD71012A04D14979AF
+:10ED600001F0C001402906D02946BDE8704000F5F9
+:10ED7000AD70F8F797BFFDF742FB61683246BDE81A
+:10ED8000704001F5AD71F8F756BF70B5BD4D0C463A
+:10ED900000280CBF01230023696881F8613181F8E4
+:10EDA0006A014FF0080081F87A010CD1002C1ABFDB
+:10EDB000022C012000201146FDF7D1F969680828CE
+:10EDC00081F87A0101D0002070BD022C14BF032C01
+:10EDD0001220F8D170BD002818BF112070470328F9
+:10EDE000A84A526808BFC2F8641182F8680100207E
+:10EDF000704710B5A34C606890F8681103291CBFD8
+:10EE0000002180F8841101D0002010BD0123D0F82A
+:10EE100064111A460020FEF708FA6168D1F86421EF
+:10EE2000526A904294BF0120002081F88401EBE7F0
+:10EE30009448416891F86801032804D0012818BF5C
+:10EE4000022807D004E091F86A01012808BF704742
+:10EE50000020704791F86901012814BF03280120A0
+:10EE6000F6D1704770B5F8F780F9F8F75FF9F8F761
+:10EE700037F8F8F7B5F8834C0025606890F876010C
+:10EE800030B1F8F788F9F7F750FB606880F87651F1
+:10EE900060680121A0F8A55180F8A75180F874118D
+:10EEA00080F85051002070BD764810B5406800F5DC
+:10EEB000C47006F0A8F8002010BD72480121406817
+:10EEC00090F86821032A03BF80F85211D0F864211A
+:10EED0001288002218BF80F85221A0F8542180F82F
+:10EEE000501170476749496881F8AA017047017855
+:10EEF000002311F0010F634949680AD04278032AC0
+:10EF000008BFC1F8643181F86821012281F8A82185
+:10EF10001346027812F0040F0CD082784FF0000CE8
+:10EF2000032A08BFC1F864C181F868210B44082294
+:10EF300083F8A821C27881F858210279002A16BFE7
+:10EF4000022A0123002381F8613181F86921427985
+:10EF500081F86021807981F870014FF000007047DE
+:10EF60004848406800F5D27070472DE9F041454CA3
+:10EF700005460E46606890F87401032818BFFFDF4D
+:10EF8000022D1EBF032DFFDFBDE8F0814FF000070B
+:10EF90004FF00105AEB1606890F8371089B1818EED
+:10EFA00021F0600101F14001818690F8282042B9EA
+:10EFB00080F8285011F0080F14BF0720062002F037
+:10EFC0008EFF6068A0F8A57180F8A77180F8745171
+:10EFD000BDE8F08100F09EBC2DE9F047294C0646C3
+:10EFE000894660684FF00108072E90F8617138BFBC
+:10EFF000032533D3082E4FF0000088BFBDE8F0870B
+:10F00000FEF7E7FF002878D1A068C17811F03F0F24
+:10F0100012D0027912F0010F0ED061684FF0050591
+:10F0200091F87621002A18BFB9F1000F16D091F897
+:10F03000A411012909D011E011F03F0F1ABF007986
+:10F0400010F0100F002F58D151E04FF001024FF097
+:10F050000501FDF7CCF8616881F87601A1680878B0
+:10F060002944C0F3801030B1487900F0C000402836
+:10F0700008BF012000D00020616891F876110029B6
+:10F0800002E000007801002018BF002807D0FDF73B
+:10F09000C9F80146606880F8771180F8858160685A
+:10F0A00090F87711FF292BD080F878110846FDF7EA
+:10F0B000C6F840EA0705606890F87721FF2A18BF74
+:10F0C000002D10D0072E0ED3A068C17811F03F0F8D
+:10F0D00009D0017911F0020F05D00B21FDF734F9A9
+:10F0E000606880F886812846BDE8F08705E0FCF777
+:10F0F00072FE002808BFBDE8F0870120BDE8F08758
+:10F10000A36890F8612159191B78C3F3801C00F2A1
+:10F1100077136046FCF7C3FE0546CCE72DE9F041C6
+:10F12000FE4C84B0A068FEF79BFC0126002550B180
+:10F13000022501287ED002287DD0F7F7D1FE04B049
+:10F140000620BDE8F081F7F7CBFE606890F8680113
+:10F15000032800F0C480A068C17811F03F0F05D0EB
+:10F16000027912F0100F18BF012600D10026002EE0
+:10F1700014BF0822012211F03F0F43D0007932EA78
+:10F1800000013FD110F0020F06D00120FEF721FF51
+:10F19000002808BF012000D000208DF800508DF815
+:10F1A00004508DF80850FF27D0B102AA694601A883
+:10F1B00000F051FC606890F859719DF8000000283B
+:10F1C00018BF47F002070BD1A068FEF7A1FA8046EE
+:10F1D0000121A068FEF7F8FA4146F7F73CFC90B130
+:10F1E00066B1012000F0B9FB002878D03946002034
+:10F1F000FEF727FF606880F890516CE039460020E8
+:10F2000000F06CFB6BE0606890F86901032818BFA0
+:10F21000022864D19DF80400002860D09DF8000009
+:10F2200000285CD17EB1012000F097FB002856D069
+:10F23000FE2101E00CE032E00020FEF702FF6068F2
+:10F2400080F8905147E0FE21002000F047FB46E0A7
+:10F25000F7F746FEA0681821C27812F03F0F3ED0A3
+:10F26000027991433BD10421FEF7AEFA616891F82F
+:10F270006821032A01BF8078B5EB501F91F8840103
+:10F2800000282CD04FF0010000F067FB38B3FF21BD
+:10F290000120FEF7D6FE606880F890611BE0F7F76A
+:10F2A0001FFE606890F86801032818D0A068182134
+:10F2B000C27812F03F0F12D0007931EA00000ED16F
+:10F2C000012000F04AFB50B1FF210220FEF7B9FEF9
+:10F2D000606880F8905104B00320BDE8F08104B06C
+:10F2E0000620BDE8F081F0B58C4C074683B060681D
+:10F2F0006D460078002818BFFFDF002661688E7019
+:10F30000D1F8640102888A8042884A8382888A838D
+:10F31000C088C88381F8206047B10121A068FEF74A
+:10F3200053FA0546A0680078C10907E06946A0685D
+:10F33000FEF7C3F9A0680078C0F380116068012768
+:10F3400090F87521002A18BF002904D06A7902F0CC
+:10F35000C002402A26D090F87221002A18BF002946
+:10F3600003D0697911F0C00F1CD000F10E0006F037
+:10F37000B1FA616891F87801FF2819D001F108020B
+:10F38000C91DFCF711FF002808BFFFDF6068C179C5
+:10F3900041F00201C171D0F891114161B0F89511AD
+:10F3A000018310E02968C0F80E10A9884182E0E7C7
+:10F3B000D1F86401427ECA71D0F81A208A60C08BED
+:10F3C00088814E610E8360680770D0F8642190F8E0
+:10F3D000731182F85710D0F864010088F3F73CFCF1
+:10F3E000F3F7D4F803B0F0BD2DE9F0414B4C0546DE
+:10F3F00001276068002690F86811012918BF0229CA
+:10F4000002D0032918BFFFDF55B1A068FEF734FA18
+:10F4100018B9A068FEF787FA10B100F0C6FB2DE01E
+:10F42000606890F874017F25801F062828BFBDE81A
+:10F43000F081DFE800F003191930443E3748F7F750
+:10F44000CEFE002808BF2570F7F7B0FE606890F880
+:10F45000760130B1F7F79FFEF7F767F8606880F83C
+:10F460007661F7F73DFD20E02C48F7F7B8FE00285D
+:10F4700008BF2570F7F79AFE00F07DFB102880F09A
+:10F480004481DFE800F036B9C2C6F7F712CFF6F7CD
+:10F49000F7F7249F386C2148F7F7A1FE002808BF32
+:10F4A0002570F7F783FEF7F71BFDBDE8F041FFF786
+:10F4B0009FB81A48F7F793FE30B9257004E0174853
+:10F4C000F7F78DFE0028F8D0F7F770FE9DE00320D7
+:10F4D00002F015F9002874D000210320FFF729F964
+:10F4E000012211461046F7F79BFE61680C2081F857
+:10F4F0007401BDE8F081606800F5BA75042002F07F
+:10F50000FEF800285DD00E202870012002F0E7FCF4
+:10F51000A06861680078C0F3401001E07801002025
+:10F5200081F8990100210520FFF703F9F749A06848
+:10F530004FF0200CD1F864210378527B23F0200394
+:10F540000CEA42121A430270D1F8640195F8253092
+:10F55000427B1A4042732820D1F864112DE0062026
+:10F5600002F0CDF8002850D0E84D0F2085F8740146
+:10F57000022002F0B4FC6068012190F8A421084642
+:10F58000F7F74EFEA06861680078C0F3401081F87C
+:10F59000990101210520FFF7CCF8D5F864014773E4
+:10F5A000A068017821F020010170F8F720FA002806
+:10F5B00018BFFFDF2820D5F8641181F85600BDE898
+:10F5C000F08122E0052002F09AF8F0B10121032039
+:10F5D000FFF7AFF8F8F70BFA002818BFFFDF6068F5
+:10F5E000012190F8A4210846F7F71AFE61680D2062
+:10F5F00081F87401BDE8F0816068A0F8A56180F829
+:10F60000A76180F87471BDE8F081BDE8F04100F0B9
+:10F6100081B96168032081F87401BDE8F0410820D8
+:10F6200002F05DBC606890F8A711490908BF012588
+:10F6300007D0012908BF022503D0022914BF0025E5
+:10F640000825D0F8800100281CBF002000F0B4F984
+:10F650006068D0F87C01F7F7DDFC606890F868110D
+:10F66000022908D0032904BF90F89001012806D090
+:10F670000AE010E049E090F89001022804D12A46FF
+:10F6800001210020F7F7CCFD6068072180F8A45124
+:10F6900080F8856135E0606890F8A711490908BFD6
+:10F6A000012507D0012908BF022503D0022914BF74
+:10F6B00000250825D0F8800100281CBF002000F09C
+:10F6C0007BF96068D0F87C01F7F7A4FC606890F8DB
+:10F6D0006811022906D0032904BF90F8900101287F
+:10F6E00004D008E090F89001022804D12A460121B4
+:10F6F0000020F7F795FD6068082180F8A45180F894
+:10F70000856180F87411BDE8F081FFDFBDE8F0810C
+:10F7100070B57F4C606890F8743100210C2B38D0A4
+:10F7200001220D2B40D00E2B55D00F2B1CBFFFDF1D
+:10F7300070BD042002F0D3FB606890F8A4110E2085
+:10F74000F7F7E2F8606890F8A40110F00C0F14BF0E
+:10F75000282100219620F7F77BFCF7F731FD606840
+:10F76000052190F8A451A068FCF7FCFD616881F8C0
+:10F77000760148B115F00C0F0CBF50255525F6F752
+:10F78000C0FE2846F7F7FDFC61680B2081F8740184
+:10F7900070BDF7F715FD00219620F7F759FC616859
+:10F7A000092081F8740170BD90F8A411FF20F7F7CB
+:10F7B000ABF8606890F8A40110F00C0F14BF28217A
+:10F7C00000219620F7F744FCF7F7FAFC61680A205D
+:10F7D00081F8740170BDA0F8A51180F8A71180F818
+:10F7E00074210020FFF77FFDBDE87040032002F088
+:10F7F00076BB70B5464C606890F874117F25891F00
+:10F80000062928BF70BDDFE801F017321D033D1146
+:10F810003F48F7F7E4FC002808BF2570F7F7C6FC5F
+:10F82000F7F75EFBBDE87040FEF7E2BE3848F7F739
+:10F83000D6FC60BB25702AE03548F7F7D0FCD8B974
+:10F84000257019E090F8371089B1818E012221F0DE
+:10F8500060014031818690F8283043B980F8282033
+:10F8600011F0080F14BF0720062002F038FB2848CB
+:10F87000F7F7B5FC0028E3D0F7F798FCBDE8704037
+:10F8800000F048B82248F7F7AAFC0028D2D0F7F7D2
+:10F890008DFC6068002100F5C47005F065FBBDE8D3
+:10F8A000704000F037B870B5194C06460D46012976
+:10F8B00008D0606890F8A4213046BDE87040134637
+:10F8C00002F059BBF6F7D6FF61680346304691F85F
+:10F8D000A4212946BDE8704002F04DBB10B5FEF7EB
+:10F8E000B0FB0B48406890F82810002918BF10BDE5
+:10F8F000012280F8282090F8340010F0080F14BF7F
+:10F9000007200620BDE8104002F0E9BAF4100020FC
+:10F910007801002070B5F7F728FCF7F707FCF7F738
+:10F92000DFFAF7F75DFBFE4C0025606890F8760182
+:10F9300030B1F7F730FCF6F7F8FD606880F87651E3
+:10F940006068022180F87411A0F8A55180F8A751D1
+:10F95000BDE87040002002F0C2BA70B5F04D064616
+:10F960000421A868FDF730FF0446686890F8280075
+:10F97000A0B901F0A7FE217811F0800F14BF4FF459
+:10F9800096711E21B4F80120C2F30C0212FB01F1A2
+:10F990000A1AB2F5877F28BF814201D2002070BDCC
+:10F9A00068682188A0F8A511A17880F8A7113046D1
+:10F9B000BDE8704001F0A3BE2DE9F041D84C0746E8
+:10F9C000606800F2A51690F8A701400908BF01255C
+:10F9D00007D0012808BF022503D0022814BF002544
+:10F9E0000825F7F70BFB307800F03F063046F7F7B5
+:10F9F00080F8606880F8976190F8900102280CBF49
+:10FA00004020FF202946F6F77FFF27B12946012035
+:10FA1000F7F763F906E060682A46D0F88011012004
+:10FA2000F7F7A4F9F7F7CCFB0521A068FCF79AFCDF
+:10FA30006168002881F8760108BFBDE8F08115F003
+:10FA40000C0F0CBF50245524F6F75BFD2046BDE893
+:10FA5000F041F7F796BB2DE9F74FB14C00259146E1
+:10FA600060688A4690F8750100280CBF4FF00108C5
+:10FA70004FF00008A0680178CE090121FDF7A4FE2F
+:10FA800036B1407900F0C000402808BF012600D000
+:10FA90000026606890F87611002963D090F868110C
+:10FAA0004FF0000B03291ED190F86111002918BFF7
+:10FAB00090F87A7117D0FF2F18BF082F22D0384640
+:10FAC000FCF730F9002818BF4FF00108002E49D08C
+:10FAD000606890F88601D0B1FCF7AFFB054660681E
+:10FAE00080F886B13EE0A168CA7812F03F0F19BFD6
+:10FAF000097911F0010F90F82B10FF2918BF90F829
+:10FB00007771D8D176B390F8850170B12AE0384684
+:10FB1000FCF741FB05460121A068FDF755FE0146B3
+:10FB20002846F8F757F805461CE0A068C17811F0A0
+:10FB30003F0F05D0017911F0010F18BF0B2101D142
+:10FB40004FF005014FF00002FCF751FB616881F8AE
+:10FB5000760138B1FCF766FBFF2803D06168012508
+:10FB600081F877018AF800500098067089F80080C3
+:10FB700003B0BDE8F08F6A4810B5406890F83710C0
+:10FB800089B1818E012221F060014031818690F897
+:10FB9000283043B980F8282011F0080F14BF07203F
+:10FBA000062002F09CF9022010BD2DE9F04F5C4DBB
+:10FBB00083B00024686890F874017F27801F264670
+:10FBC0004FF00108062880F04082DFE800F00308CB
+:10FBD0000893FEFD00F01EFC044600F037BA5048C2
+:10FBE000F7F7FDFA002808BF2F70F7F7DFFAA868CB
+:10FBF000FDF758FD044607286AD1A868FDF730FFD5
+:10FC0000696891F89021824262D191F874010628C6
+:10FC100004D1A868FDF724FF002836D0686890F862
+:10FC20007411082904BF90F8A101022813D04FF0E5
+:10FC30000301A868FDF7C8FD002849D0696843782A
+:10FC400091F83820B2EB131F42D10088498FC0F3DE
+:10FC50000B0088423CD100212046FFF7BDF9B0B32C
+:10FC60008DF800608DF804608DF80860A868FF24A6
+:10FC7000C17811F03F0F1CBF007910F0020F1CD0AB
+:10FC80000120FEF7A6F950B117E0A868C17811F07D
+:10FC90003F0F1CBF007910F0100FBFD1DBE702AAA5
+:10FCA000694601A8FFF7D7FE686890F859419DF8AA
+:10FCB0000000002818BF44F0020423469DF80820E5
+:10FCC0009DF804109DF8000000F012FA02E0FFE732
+:10FCD000FFF751FF0446686890F87601002800F0AD
+:10FCE000B581F7F758FAF6F720FC686880F8766176
+:10FCF00000F0ACB9A868FDF7D5FC8146A968686832
+:10FD0000CA7890F891319A4224D10A7990F89231C8
+:10FD10009A421FD14A7990F893319A421AD101E060
+:10FD2000780100208A7990F894319A4212D1CA79E8
+:10FD300090F895319A420DD10A7A90F896319A420C
+:10FD400008D1097890F89801C1F38011814208BF69
+:10FD5000012400D00024F7F7C3F8FB48F7F73FFA77
+:10FD6000002808BF2F70F7F721FAB9F1040F76D1F8
+:10FD7000002C74D0686890F8481100296FD190F871
+:10FD8000281021B190F8341011F0100F67D0D0F87E
+:10FD90004C411D21204605F070FC84F80080686805
+:10FDA00004F1020A04F1010990F87801FF2810D04B
+:10FDB00052464946FCF7F8F9002808BFFFDF99F8DA
+:10FDC000000040F0020001E04CE0FFE089F8000094
+:10FDD0001DE0A868FDF78FFC89F80000A868FDF712
+:10FDE00061FC072804D25146A868FDF766FC0EE0C6
+:10FDF000A868FDF757FC072809D10021A868FDF77E
+:10FE0000E3FC0168CAF800108088AAF8040004F135
+:10FE10001D01A868FDF78FFC2072287804F10909FC
+:10FE20007F2808BFFFDF287889F800002F706868F6
+:10FE3000618990F8A12162F3000141F01A0161810A
+:10FE400084F80C806673FF21A1732175E77690F822
+:10FE50009711217780F84881072002F040F80624A6
+:10FE600000F0F4B84FF00208B748F7F7B8F90028E7
+:10FE700008BF2F70F7F79AF9A868FDF713FC04463E
+:10FE8000A868FDF7EDFD082C08BF00287ED1A86802
+:10FE90004FF00301C27812F03F0F77D0007931EABA
+:10FEA000000073D1686800F5BA7790F86101002806
+:10FEB00014BFBE79FE784FF00009B87878B1FCF72E
+:10FEC000B1F90446FF280AD00146A868401DFCF796
+:10FED00082F9B4420CBF4FF001094FF00009002134
+:10FEE000A868FDF771FC062207F11D0105F01AFB59
+:10FEF00040B9A868FDF7FFFB97F82410884208BFB7
+:10FF0000012000D0002059EA00095DD0686800F5A2
+:10FF1000AD7490F859A1787838B13046FCF771FA91
+:10FF200000281CBF04464FF0010A0027A86801788A
+:10FF30004FEAD11B0121FDF747FCBBF1000F07D0B1
+:10FF4000407900F0C000402808BF4FF0010B01D0FD
+:10FF50004FF0000B0121A868FDF736FC0622214670
+:10FF600005F0E0FA30B9A868FDF7D2FB504508BFAC
+:10FF7000012401D04FF000043BEA040018BFFF2E1B
+:10FF80000FD03046FCF707F9060000E01CE008D06F
+:10FF90000121A868FDF718FC01463046F7F71AFE64
+:10FFA000074644EA070019EA000F0DD068680121EE
+:10FFB00000F5C47004F0D8FF4FF001084046FFF789
+:10FFC00092F9052001F08BFF44463FE002245E4891
+:10FFD000F7F705F9002808BF2F70F7F7E7F8A868CA
+:10FFE000FDF760FB0646A868FDF73AFD072E08BF3F
+:10FFF00000282BD1A8684FF00101C27812F03F0F02
+:020000040002F8
+:1000000024D00279914321D1696801F5BA760021A3
+:10001000FDF7DAFB062206F11D0105F083FAA8B907
+:10002000A868FDF768FB96F8241088420ED168682E
+:10003000012100F5C47004F097FFFF21022000F0B9
+:1000400009F8002818BF032400E0FFDF03B02046B2
+:10005000BDE8F08F2DE9F0413B4C02460025606879
+:1000600090F8A1310BB3A0684FF000064FF00107E4
+:10007000C37813F03F0F1CBF007910F0100F1BD096
+:100080000020FDF7DEFF606890F83400C0F34110F7
+:1000900002281BD00220FFF760FC88B160680125B0
+:1000A00080F89061F6F71CFF1FE0002A14BF0223BE
+:1000B000012380F8A131D6E71046FDF7C2FF05E025
+:1000C0006068818E21F0600140318186606890F81F
+:1000D000281051B980F8287090F8340010F0080FFB
+:1000E00014BF0720062001F0FAFE2846BDE8F08183
+:1000F0002DE9F047144C05461F4690460E46A06871
+:10010000FDF7AEFC002800F0D180012805D00228C0
+:1001100000F00E81BDE8F0472DE5A0680921C27806
+:1001200012F03F0F00F042810279914340F03E818E
+:10013000616891F86811032908D012F0020F08BF16
+:10014000FF211BD075B118E0780100200021FDF7D8
+:100150003BFB61680622D1F864111A3105F0E2F91F
+:1001600050BB1EE0FDF7D4FA05460121A068FDF75B
+:100170002BFB2946F6F76FFC18B13946012000F039
+:1001800039B9606890F86901032818BF022840F067
+:100190000D81002E1CBFFE21012040F02B8100F0BC
+:1001A00005B9A068FDF7A7FA6168D1F86411497E26
+:1001B000884208BF012600D00026A068C17811F04F
+:1001C0003F0F05D0017911F0020F01D05DB338E087
+:1001D000616891F86A21012A01D0A6B119E0C6B977
+:1001E0000021FDF7F1FA61680268D1F86411C1F8E5
+:1001F0001A208088C883A068FDF77DFA6168D1F86D
+:100200006411487605E091F8770191F87A118842F7
+:100210004BD1606800F5C47004F0EAFE002844D0B9
+:100220000F20BDE8F087B8F1000F0CD0FDF770FA91
+:1002300005460121A068FDF7C7FA2946F6F70BFC31
+:1002400008B1012200E00022616891F86A010128EA
+:1002500007D040B92EB991F8773191F87A118B42D5
+:1002600001D1012100E000210A421ED0012808BF6F
+:10027000002E13D14FF00001A068FDF7A5FA6168C8
+:100280000268D1F86411C1F81A208088C883A06878
+:10029000FDF731FA6168D1F864114876606800F5BD
+:1002A000C47004F0A5FE0028BAD17FE06068A846BB
+:1002B0004FF0020990F8680103282AD0A068C1789D
+:1002C00011F03F0F1BBF007910F0020F002001203A
+:1002D0004FF0FF05A8B14FF00100FDF77AFE0028AE
+:1002E00004BF3D46B8F1000F0BD1A068FDF710FA2E
+:1002F00007460121A068FDF767FA3946F6F7ABFB20
+:1003000050B129460020FFF7A5FE002818BF4FF086
+:1003100003094846BDE8F087606890F86901032842
+:1003200018BF0228F5D1002E18BFFE25E9D1F0E74D
+:10033000626892F86831032B38D0A0684FF0090C3E
+:10034000C17811F03F0F31D001793CEA010C2DD179
+:10035000022B01F0020105D0002908BFFF2147D080
+:10036000CDB344E009B135B113E002F5C47004F037
+:100370003FFEA0B91AE0B8F1000F1AD0FDF7C8F996
+:1003800005460121A068FDF71FFA2946F6F763FB31
+:1003900078B1606800F5C47004F02AFE30B13946C7
+:1003A0000220FDF74EFE0D20BDE8F0870220BDE8DB
+:1003B000F087606890F86901032818BF0228F5D11A
+:1003C000002EF3D04FF0FE014FF00200FFF786FA47
+:1003D0000220BDE8F087FFE7FDF79AF90546012105
+:1003E000A068FDF7F1F92946F6F735FB28B1394643
+:1003F0005FF00200FFF772FAD8E7606890F86901D1
+:10040000032818BF0228D1D1002E1CBFFE210220D4
+:10041000F0D1CBE72DE9F84F0027D048F6F7DFFE03
+:10042000CE4C002804BF7F202070F6F7BFFEA068E6
+:10043000FDF738F980460121FEF7CEFD61684FF0E7
+:10044000000B91F8A421012A13D0042A1CBF082A0A
+:10045000FFDF00F07781606890F8760130B1F6F741
+:100460009AFEF6F762F8606880F876B13846BDE823
+:10047000F88F0125BA4EB8F1080F19D2DFE808F05D
+:1004800024860418181811FD0546F6F729FD002DDD
+:100490007AD0606890F86801012818BF022858D007
+:1004A00072E028B191F86801022805D0012850D0E7
+:1004B000F6F716FD0627CEE7FF20FDF7D9FF6068A7
+:1004C0000C2780F8A1B1C6E70027002800F02081A2
+:1004D00091F86801022834D001283AD00328BAD113
+:1004E000A068D1F86421C37892F81AC0634521D17D
+:1004F000037992F81BC063451CD1437992F81CC064
+:10050000634517D1837992F81DC0634512D1C37931
+:1005100092F81EC063450DD1037A92F81FC063455F
+:1005200008D1037892F819C0C3F38013634508BF5C
+:10053000012300D0002391F86A1101290DD0D3B115
+:10054000E4E0FF20FDF794FF60680C2780F8A151DC
+:1005500081E7FF20FDF78CFF16E0002B71D102F13F
+:100560001A01FDF7AAF8A068FDF7C5F86168D1F88F
+:1005700064114876CAE096F87A0108287CD096F88B
+:10058000771181425DD0C3E0062764E7054691F804
+:10059000750100280CBF4FF001094FF0000900273A
+:1005A000A06810F8092BD20907D0407900F0C000EC
+:1005B000402808BF4FF0010A01D04FF0000A91F81F
+:1005C0006801032806D191F86101002818BF91F84D
+:1005D0007A0101D191F877010090FBF7DCFD5FEA29
+:1005E00000082AD00098FBF79DFB002818BF4FF0A9
+:1005F0000109BAF1000F20D0A06800F109014046BE
+:10060000F7F7E8FA0700606890F8598118BF48F0DA
+:100610000208606890F86811032913D0F6F760FCAF
+:10062000002DB1D0F6F727FA00280CBF002F404666
+:1006300072D000BFFDF71CFFA6E7606890F85981F3
+:10064000E7E763E0A168D0F86401CA78837E9A4244
+:100650001FD10A79C37E9A421BD14A79037F9A42FD
+:1006600017D18A79437F9A4213D1CA79837F9A42FC
+:100670000FD10A7AC37F01E04AE05BE09A4208D1D9
+:100680000978407EC1F38011814208BF4FF0010814
+:1006900001D04FF0000896F87701082806D096F8A8
+:1006A0007A11884208BF4FF0010A01D04FF0000ACA
+:1006B0002FB9B9F1000F04D0F6F7DDF908B1012028
+:1006C00000E000204DB196F86A11012903D021B94C
+:1006D00058EA0A0101D0012100E00021084217D0A8
+:1006E000606890F86A11012908BFB8F1000F0DD1B8
+:1006F000D0F8640100F11A01A068FCF7DEFFA068E1
+:10070000FCF7F9FF6168D1F8641148760E27A2E67C
+:10071000F6F7E6FB38E7FFE7606890F86901032821
+:1007200018BF02287FF430AFBAF1000F18BFFE20C7
+:1007300080D129E791F87011002918BF00283FF4F3
+:10074000B7AE06E0B8F1070F7FF4B2AE00283FF471
+:10075000AFAEFEF7E3FC07467DE60000780100201F
+:10076000F4100020D0F8E81049B1D0E93B231A4436
+:100770008B691A448A61D0E93912D16003E0F74AE3
+:10078000D0F8E4101162D0E9391009B1086170475E
+:100790000028FCD00021816170472DE9FF4F0646FB
+:1007A0000C46488883B040F2E24148430190E08A19
+:1007B000002500FB01FA94F8640090460D2822D031
+:1007C0000C2820D024281ED094F8650024281AD0A4
+:1007D00000208346069818B10121204603F000F955
+:1007E00094F8541094F85500009094F8D8200F46CF
+:1007F0004FF47A794AB1012A61D0022A44D0032AFF
+:100800005DD0FFDFB5E00120E3E7B8F1000F00D1D4
+:10081000FFDFD24814F8541F243090F83800FCF75A
+:1008200004FF01902078F7F75EF84D4600F2E730BC
+:10083000B0FBF5F1DFF82493D9F80C0001EB0008C8
+:100840002078F7F750F8014614F85409022816D01A
+:10085000012816D040F6340008444AF2EF0108445B
+:10086000B0FBF5F10198D9F81C20411A514402EB74
+:1008700008000D18012084F8D8002D1D78E02846C6
+:10088000EAE74FF4C860E7E7DFF8D092A8F101008B
+:10089000D9F80810014300D1FFDFB148B8F1000FCB
+:1008A000016801EB0A0506D0D9F8080000F22330F0
+:1008B000A84200D9FFDF032084F8D80058E094F85C
+:1008C0006420019D242A05D094F86530242B01D0A2
+:1008D000252A3AD1B4F85820B4F8F830D21A521C6C
+:1008E00012B2002A31DB94F8FA2072B3174694F85A
+:1008F000FB2002B110460090022916D0012916D023
+:1009000040F6340049F608528118022F12D0012F08
+:1009100012D040F634001044814210D9081A00F574
+:10092000FA70B0FBF9F005440FE04846EAE74FF4EF
+:10093000C860E7E74846EEE74FF4C860EBE7401AC7
+:1009400000F5FA70B0FBF9F02D1AB8F1000F0FD0D6
+:10095000DFF80882D8F8080018B9B8F8020000B12A
+:10096000FFDFD8F8080000F22330A84200D9FFDFEB
+:1009700005B9FFDF2946D4F8DC00F3F77EFEC4F8A2
+:10098000DC00B060002030704FF0010886F8048071
+:10099000204603F080F8ABF10101084202D186F84D
+:1009A000058005E094F8D80001282FD0032070714D
+:1009B000606A3946009A01F026FBF060069830EA3A
+:1009C0000B0020D029463046FCF752FB87B2204668
+:1009D00003F061F8B8420FD8074686F8058005FB9A
+:1009E00007F1D4F8DC00F3F748FEB0602946304642
+:1009F000FCF73EFB384487B23946204602F0F0FF50
+:100A0000B068C4F8DC0007B0BDE8F08F0220CEE784
+:100A10002DE9F04106460C46012001F0D6FAC5B298
+:100A20000B2001F0D2FAC0B2854200D0FFDF0025D2
+:100A3000082C7DD2DFE804F00461696965C98E96EF
+:100A4000304601F0D6FA0621F1F7D4FF040000D1B8
+:100A5000FFDF304601F0CDFA2188884200D0FFDF69
+:100A600094F8D80000B9FFDF204602F060FE3B4E4C
+:100A700021460020B5607580F561FCF729FC00F186
+:100A80009807606AB84217D994F85500F6F712FF34
+:100A9000014694F854004FF47A72022828D00128B5
+:100AA00028D040F6340008444AF247310844B0FBED
+:100AB000F2F1606A0844C51B214600203561FCF74D
+:100AC00007FC618840F2E24251439830081AA0F2D4
+:100AD0002330706194F8552094F85410606A01F046
+:100AE00092FAA0F29310B061BDE8F041F4F7AABD0C
+:100AF0001046D8E74FF4C860D5E7BDE8F04102F0F2
+:100B000080BEBDE8F041F6F7A7BB6FF0040001F02E
+:100B10005CFAC4B2192001F058FAC0B2844200D085
+:100B2000FFDF304601F065FA0621F1F763FF00E0D0
+:100B30004BE0040000D1FFDF304601F05AFA218873
+:100B4000884200D0FFDF2046BDE8F04101220021AD
+:100B500001F076BAF6F720FAD3E70000A0120020E1
+:100B600088010020304601F044FA0621F1F742FFE7
+:100B7000040000D1FFDF304601F03BFA21888842B3
+:100B800000D0FFDF94F8D800042800D0FFDF84F8FD
+:100B9000D85094F8E2504FF6FF76202D00D3FFDFB7
+:100BA000FB4820F8156094F8E200F4F746F800B925
+:100BB000FFDF202084F8E2002046FFF7D3FDF54850
+:100BC0000078BDE8F041E2F7A7B9FFDFBDE8F081AA
+:100BD00070B5EF4C0025483C84F82C50E07868B1A3
+:100BE000E570FEF76AF92078042803D0A06AFFF7C1
+:100BF000B9FDA562E7480078E2F78EF9BDE87040DC
+:100C000001F02FBA70B5E24C0146483C206AF4F777
+:100C10004CFD6568A27890FBF5F172B140F271224B
+:100C2000B5FBF2F292B2E36B01FB02F6B34202D9DA
+:100C300001FB123200E00022E2634D43002800DA9B
+:100C4000FFDF2946206AF3F718FD206270BD2DE909
+:100C5000F05FFEF785F98246CD486C3800F1240834
+:100C600081684646D8F81C00F3F707FD0146306A54
+:100C7000F4F71BFD4FF00009074686F839903C4613
+:100C80004FF423754E461CE00AEB06000079F6F798
+:100C900011FE4AF2B12101444FF47A70B1FBF0F138
+:100CA00008EB86024046926811448C4207D3641ACE
+:100CB00090F83910A4F52374491C88F83910761C73
+:100CC000F6B298F83A00B042DED8002C0FDD98F862
+:100CD0003910404608EB81018968A14207D241687A
+:100CE000C91BA94200D90D466C4288F8399098F882
+:100CF0003960C3460AEB060898F80400F6F7DAFDF7
+:100D000001464AF2B12001444FF47A7AB1FBFAF27B
+:100D100098F80410082909D0042909D000201318D4
+:100D200004290AD0082908D0252007E0082000E07F
+:100D3000022000EB40002830F1E70F20401D4FF467
+:100D4000A872082913D0042914D0022915D04FF015
+:100D5000080C282210FB0C20184462190BEB8603A8
+:100D600002449868D84682420BD8791925E04FF0A2
+:100D7000400CEFE74FF0100CECE74FF0040C18229A
+:100D8000E8E798F8392098F83A604046B24210D225
+:100D9000521C88F839203C1B986862198418084650
+:100DA000F6F788FD4AF2B1210144B1FBFAF00119CE
+:100DB00003E080F83990D8F80410D8F82000BDE896
+:100DC000F05FF3F75ABC2DE9FE4F14460546FEF7D7
+:100DD000C7F8DFF8BCB10290ABF1480B58469BF85E
+:100DE00039604FF0000A0BEB86018968CBF84010A0
+:100DF000ECB3044600780027042827D0052840D00B
+:100E0000FFDFA0463946A069F3F737FC0746F3F742
+:100E100033FF81463946D8F80440F4F746FC401EBB
+:100E200090FBF4F0C14361433846F3F726FC0146DA
+:100E3000C8F820004846F4F738FC002800DDFFDF42
+:100E4000012088F8140088F813008FE0D4F8189077
+:100E5000D4F8048001F06FF9070010D0387800B999
+:100E6000FFDF796978684A460844414600E00EE0B1
+:100E700001F049F907464045C3D9FFDFC1E75746AE
+:100E8000BFE7A06A01F0FAF840F6B837B9E7016A9F
+:100E90000BEB46000191C08D08B35C46DBF81800EF
+:100EA000FFF7B0FE6168206AF3F7E7FB074684F8B6
+:100EB00039A0019CD8462046DBF81810F4F7F5FB62
+:100EC000814639462046F4F7F0FBD8F80420B9FBF8
+:100ED000F2F3B0FBF2F0834243D0012142E0F3F79A
+:100EE000CBFEFFF78FFEFFF7B2FE9BF83910DBF861
+:100EF00004900BEB81010746896800913946DBF8C5
+:100F00002000F4F7D2FB00248046484504DB98FB20
+:100F1000F9F404FB09F41BE0002059469BF8392042
+:100F200008E000BF01EB800304F523749B68401CBC
+:100F30001C44C0B28242F5D852B10120F6F7BAFC87
+:100F40004AF2B12101444FF47A70B1FBF0F004444D
+:100F50000099A8EB04000C1A00D5FFDFCBF8404045
+:100F6000A7E7002188F8141088F813A09BF8020066
+:100F70005C46B8B13946206AF4F797FB0146E26B4C
+:100F800040F2712042438A4206D2C4F840A009E0F0
+:100F90000C13002084010020206C511A884200D3D9
+:100FA00008462064AF6085F800A001202871029FE8
+:100FB00094F839003F1DC05DF6F77CFC4AF23B51C6
+:100FC00001444FF47A70B1FBF0F0216CFB3008441F
+:100FD000E8602078042808D194F8390004EB400038
+:100FE000C08D0A2801D2032000E00220687104EBC2
+:100FF0004600C08DC0B128466168FCF739F882B25E
+:101000000020761C0CE000BF04EB4003B042D98DF9
+:10101000114489B2D98501D3491CD985401CC0B27D
+:1010200094F83A108142EFD2A868A061E06194F888
+:10103000390004EB4000C18D491CC18594F839008A
+:10104000C05D082803D0042803D000210BE008214C
+:1010500000E0022101EB410128314FF4A872082879
+:1010600004D0042802D0022807D028220A440428E9
+:1010700005D0082803D0252102E01822F6E70F2129
+:10108000491D08280CD004280CD002280CD00820B8
+:1010900011FB0020216C884208D20120BDE8FE8FA0
+:1010A0004020F5E71020F3E70420F1E70020F5E702
+:1010B00070B5FB4C061D14F8392F905DF6F7FAFB5E
+:1010C0004FF47A7100F2E730B0FBF1F0D4F807107A
+:1010D00045182078805DF6F7DBFB2178895D0829CB
+:1010E00003D0042903D000220BE0082200E00222F2
+:1010F00002EB420228324FF4A873082904D00429D5
+:1011000002D0022907D028231344042905D0082936
+:1011100003D0252202E01823F6E70F22521D0829EA
+:101120000AD004290AD002290AD0082112FB013171
+:10113000081A281A293070BD4021F7E71021F5E779
+:101140000421F3E7FEB504460F46012000F03DFF01
+:10115000C5B20B2000F039FFC0B2854200D0FFDFDE
+:1011600001260025CE48082F50D2DFE807F00430D2
+:101170004747434F4F4C0446467406744078002856
+:1011800019D1FDF7EDFE009594F839108DF808108F
+:101190004188C90410D0606C019003208DF80900CB
+:1011A000BF4824388560C56125746846FDF7C5FBD6
+:1011B000002800D0FFDFFEBDFFF77AFF0190207D01
+:1011C00010B18DF80950EBE78DF80960E8E70446A7
+:1011D000407840B1207C08B9FDF744FE6574BDE855
+:1011E000FE40F3F753BCA674FDF786FC0028E2D05E
+:1011F000FFDFFEBDBDE8FE40F6F72EB82046BDE895
+:10120000FE4000F0A1BFBDE8FE40E1E4FFDFFEBD0F
+:10121000A34950B101228A704A6840F27123B2FB9F
+:10122000F3F202EB0010C86370470020887070472B
+:101230002DE9F05F894640F27121994E484300251F
+:101240000446706090462F46D0074AF2B12A4FF408
+:101250007A7B0FD0B9F800004843B0600120F6F760
+:1012600029FB00EB0A01B1FBFBF0241AB76801254A
+:10127000A4F523745FEA087016D539F8151040F20A
+:101280007120414306EB85080820C8F80810F6F7DE
+:1012900011FB00EB0A01B1FBFBF0241AD8F808009F
+:1012A000A4F5237407446D1CA7421AD9002D18D049
+:1012B000391BB1FBF5F0B268101AB1FBF5F205FB72
+:1012C0001212801AB060012009E000BFB1FBF5F3F3
+:1012D00006EB80029468E31A401CC0B29360A842F7
+:1012E000F4D3BDE8F09F2DE9F0416D4C0026207845
+:1012F000042804D02078052801D00C2066E40120C1
+:101300006070607C002538B1EFF3108010F0010FA1
+:1013100072B610D001270FE0FDF722FE074694F8C1
+:101320002400F4F70EF87888C00411D000210320BF
+:10133000FDF71BFE0CE00027607C38B1A07C28B1D3
+:10134000FDF790FD6574A574F3F7A0FB07B962B6CD
+:1013500094F82400F4F743FA94F82C0030B184F8A0
+:101360002C502078052800D0FFDF0C26657000F097
+:1013700078FE30462AE44A4810B5007808B1FFF7F5
+:10138000B2FF00F011FF464900202439086210BD69
+:1013900010B5444C58B1012807D0FFDFA06841F6D2
+:1013A0006A01884200D3FFDF10BD40F6C410A06080
+:1013B000F4E73C4908B508703949002008704870C6
+:1013C00081F82C00C87008744874887420228862E0
+:1013D00081F82420243948704FF6FF7211F16C0116
+:1013E00021F81020401CC0B22028F9D30020FFF7BC
+:1013F000CFFFFFF7C0FF1020ADF8000001226946C3
+:101400000420FFF715FF08BD7FB5254C05460E46A5
+:10141000207810B10C2004B070BD95F8552095F8D7
+:101420005410686A00F002FFC5F8EC00A56295F858
+:10143000D80000B1FFDF1A4900202439C861052116
+:101440002170607084F82C00014604E004EB410236
+:10145000491CD085C9B294F83A208A42F6D284F861
+:1014600039003046FFF7D4FE0F48F3F78AFB84F8C3
+:101470002400202800D1FFDFF3F7FEFBA06194F8E1
+:10148000241001226846FFF79EFC00B9FFDF94F8A4
+:1014900024006946F3F73AFE00B9FFDF0020BAE7FF
+:1014A000C41200208401002045110200F84810B544
+:1014B000007808B1002010BD0620F1F735FA80F061
+:1014C000010010BDF8B5F24D0446287800B1FFDFE9
+:1014D0000020009023780246DE0701466B4605D0C7
+:1014E0006088A188ADF800100122114626787607A1
+:1014F00006D5E088248923F8114042F00802491CEF
+:10150000491E85F83A101946FFF792FE0020F8BDF3
+:101510001FB511B1112004B010BDDD4C217809B107
+:101520000C20F8E70022627004212170114604E0CB
+:1015300004EB4103491CDA85C9B294F83A308B4276
+:10154000F6D284F83920FFF763FED248F3F719FB8F
+:1015500084F82400202800D1FFDF00F0ECFD10B15A
+:10156000F3F78AFB05E0F3F787FB40F6B831F3F7B2
+:1015700084F8A06194F8241001226846FFF723FC48
+:1015800000B9FFDF94F824006946F3F7BFFD00B906
+:10159000FFDF0020BFE770B5BD4CA16A0160FFF717
+:1015A000A2FE050002D1A06AFFF7DCF80020A062CD
+:1015B000284670BD7FB5B64C2178052901D00C2096
+:1015C00029E7B3492439C860A06A00B9FFDFA06ADF
+:1015D00090F8D80000B1FFDFA06A90F8E200202860
+:1015E00000D0FFDFAC48F3F7CCFAA16A054620280B
+:1015F00081F8E2000E8800D3FFDFA548483020F8CC
+:101600001560A06A90F8E200202800D1FFDF0023D7
+:1016100001226846A16AFFF7C0F8A06A694690F8FF
+:10162000E200F3F773FD00B9FFDF0020A062F2E6ED
+:10163000974924394870704710B540F2E24300FBE7
+:1016400003F4002000F0F2FD844201D9201A10BDFD
+:10165000002010BD70B50D46064601460020FBF780
+:1016600037FE044696F85500F6F724F9014696F839
+:1016700054004FF47A72022815D0012815D040F694
+:10168000340008444AF247310844B0FBF2F1708854
+:1016900040F271225043C1EB4000A0F22330A5423A
+:1016A00006D2214605E01046EBE74FF4C860E8E7B4
+:1016B0002946814204D2A54201D2204600E02846B4
+:1016C000706270BD70B5F5F7D5F80446F6F7E0F82E
+:1016D00001466F48243882684068101A0E18204668
+:1016E00000F06AFC05462046F6F7E4F8281A4FF4A5
+:1016F0007A7100F2E730B0FBF1F0304470BD70B5A4
+:101700000546FDF72DFC6249007824398C68983431
+:10171000072D30D2DFE805F0043434252C343400B2
+:1017200014214FF4A873042810D00822082809D0E7
+:101730002A2102280FD011FB024000222823D118B1
+:10174000441819E0402211FB0240F8E7102211FB77
+:1017500002402E22F3E7042211FB0240002218234C
+:10176000EDE7282100F040FC044404F5317403E067
+:1017700004F5B07400E0FFDF4548006CA04201D9D9
+:10178000012070BD002070BD70B5414C243C6078D4
+:1017900070B1D4E904512846A268FBF794FC20619B
+:1017A000A84205D0A169401B0844A061F3F74AFF95
+:1017B0002169A068884201D8207808B1002070BD56
+:1017C000012070BD2DE9F04F054685B016460F4645
+:1017D0001C461846F6F75CF805EB4701471820460B
+:1017E00000F0EAFB4AF2C5714FF47A7908444D469D
+:1017F000B0FBF5F0384400F16008254824388068D3
+:10180000304404902046F6F743F8A8EB0007204642
+:1018100000F0D2FB06462046F6F74CF8301AB0FB33
+:10182000F5F03A1A182128254FF4C8764FF4BF77FF
+:101830004FF0020B082C34D0042C2FD00020022CA7
+:1018400032D0082310F1280003EB830C0CEB831338
+:10185000184402444FF0000A082C2DD0042C26D046
+:101860000020022C2DD0082100F5B07001EB0111F1
+:101870002944884232D2082C2AD0042C25D00020BA
+:10188000022C28D00821283001EB011134E000009F
+:10189000C412002045110200110A0200384610232C
+:1018A000D2E730464023CFE704231830CCE73D464B
+:1018B00040F2EE301021D9E735464FF43560402133
+:1018C000D4E70D460421B430D0E738461021DBE7D9
+:1018D00030464021D8E704211830D5E7082C4FD0F6
+:1018E000042C4AD00020022C4DD0082110F12800F1
+:1018F000C1EBC10303EB4111084415182821204610
+:1019000000F072FB05EB4000082C42D0042C3DD0C7
+:101910000026022C3FD0082116F1280601EB811188
+:1019200006EB810146180120FC4D8DF804008DF86E
+:1019300000A08DF805B0E86906F227260499F2F7B1
+:101940009CFECDE902062046F5F7B4FF4AF23B5172
+:101950000144B1FBF9F0301AFB3828640298C5F84D
+:101960004480E86195F824006946F3F7CFFB00282E
+:1019700000D1FFDF05B0BDE8F08F38461021B7E792
+:1019800030464021B4E704211830B1E73E4610212B
+:10199000C4E74021C2E704211836BFE72DE9FE4F16
+:1019A00004461D46174688464FF0010A1846F5F7CB
+:1019B0006FFFDA4E0146243EB068021907EB48007B
+:1019C00010440F18284600F0F7FA4FF47A7B00F61F
+:1019D000FB01D846B1FBF8F0384400F12009284655
+:1019E000F5F756FFB1680246A9EB0100001B861A05
+:1019F000284600F0E1FA07462846F5F75BFF381A5B
+:101A0000B0FBF8F0311A182628234FF4C8774FF4AA
+:101A1000BF78082D2CD0042D27D00020022D2AD0ED
+:101A20000822283002EB820C0CEB82121044014495
+:101A3000082D28D0042D21D00020022D28D01E46AC
+:101A4000082200F5B07000BF02EB0212324490424F
+:101A50002AD2082D22D0042D1DD00020022D20D006
+:101A60000822283002EB02122CE040461022D9E76F
+:101A700038464022D6E704221830D3E7464640F2E3
+:101A8000EE301022E0E73E464FF435604022DBE7BF
+:101A90000422B430D8E740461022E3E7384640221B
+:101AA000E0E704221830DDE7082D4DD0042D48D0A2
+:101AB0000020022D4BD0082210F12800C2EBC203F7
+:101AC00003EB421210440E182821284600F08CFA2D
+:101AD00006EB4000082D40D0042D3BD00027022DFE
+:101AE0003DD0082117F1280701EB811107EB810197
+:101AF000451805F596750C98F5F7DCFE4AF23B5152
+:101B00000144B1FBFBF0854EFB30A6F12407316C9C
+:101B100004F1FB020844B9684B191A44824228D9DF
+:101B2000621911440D1AFB35E1F7B0F8B9680844A1
+:101B300061190844B0F1807F36D2642D12D264203E
+:101B400011E040461022B9E738464022B6E70422A9
+:101B50001830B3E747461021C6E74021C4E7042107
+:101B60001837C1E72846F3F7D4FDE8B1306C2844B4
+:101B70003064E1F78BF8B968293821440844CDE98D
+:101B8000000996F839008DF8080002208DF8090048
+:101B90006846FCF7D2FE00B1FFDFFCF7ADFF00B1F5
+:101BA000FFDF5046BDE8FE8F4FF0000AF9E71FB592
+:101BB00000F042FB594C607880B994F82410002260
+:101BC0006846FFF700F938B194F824006946F3F746
+:101BD0009DFA18B9FFDF01E00120E070F2F756FF2F
+:101BE00000206074A0741FBD2DE9F84FFDF7B8F90F
+:101BF0000646451CC07840090CD001280CD00228AC
+:101C00000CD000202978824608064FF4967407D439
+:101C10001E2006E00120F5E70220F3E70820F1E7A7
+:101C20002046B5F80120C2F30C0212FB00F7C809E8
+:101C300001D010B103E01E2401E0FFDF0024FFF714
+:101C400041FDA7EB00092878B77909EB0408C0F338
+:101C5000801010B120B1322504E04FF4FA7501E094
+:101C6000FFDF00250C2F00D3FFDF2D482D4A30F871
+:101C70001700291801FB0821501CB1FBF0F5F4F7FF
+:101C8000F9FDF5F717FE4FF47A7100F27160B0FBC1
+:101C9000F1F1A9EB0100471BA7F15900103FB0F586
+:101CA000237F11D31D4E717829B902465346294628
+:101CB0002046FFF787FD00F0BFFAF2F7E7FE0020AD
+:101CC0007074B074BDE8F88F3078009053462246A7
+:101CD00029463846FFF762FE0028F3D10121022091
+:101CE000FDF743F9BDE8F84F61E710B50446012957
+:101CF00003D10A482438007830B1042084F8D80091
+:101D0000BDE81040F2F7C2BE00220121204600F0DB
+:101D100097F934F8580F401C2080F1E7C4120020D6
+:101D2000A45C02003F420F002DE9F0410746FDF799
+:101D300017F9050000D1FFDF29783846FBF775FC5D
+:101D4000F84C0146A4F12406E069B268024467B386
+:101D50002878082803D0042803D000270BE00823A4
+:101D600000E0022303EB430728374FF4A873082849
+:101D700004D0042802D002280FD028233B4408288E
+:101D80000DD004280DD002280DD00820C0EBC007CC
+:101D900007EB40101844983009E01823EEE7402084
+:101DA000F4E71020F2E70420F0E74FF4FC70104451
+:101DB000471828783F1DF5F77DFD024628784FF437
+:101DC0007A7102281DD001281DD040F6340010443D
+:101DD0004AF2EF021044B0FBF1F03A1AA06A40F266
+:101DE000E241B0464788D8304F43316A81420DD036
+:101DF0003946606B00F087F90646B84207D9FFDF25
+:101E000005E00846E3E74FF4C860E0E70026C6486F
+:101E10008068864207D2A16A40F271224888424314
+:101E200006EB420604E040F2E240B6FBF0F0A16AA5
+:101E3000C882A06A297880F85410297880F8551053
+:101E400005214175C08A6FF41C71484306EB4000C0
+:101E500040F63541C8F81C00B0EB410F00D3FFDF5E
+:101E6000BDE8F08110B5052937D2DFE801F005099A
+:101E7000030D3100002100E00121BDE8104034E7EE
+:101E8000032180F8D81010BD0446408840F2E2419A
+:101E90004843A549091D0860D4F800010089E08283
+:101EA000D4F8000180796075D4F800014089608021
+:101EB000D4F800018089A080D4F80001C089E080B6
+:101EC0002046A16AFFF7C6FB022084F8D80010BDA7
+:101ED000816ABDE81040FFF7BDBBFFDF10BD70B5E4
+:101EE000904C243C0928A1683FD2DFE800F0050BA4
+:101EF0000B15131538380800BDE8704057E6BDE8EB
+:101F0000704071E6022803D00020BDE870400BE766
+:101F10000120FAE7E16070BD032802D005281CD03B
+:101F200000E0E1605FF0000600F086F97D4D0120E1
+:101F300085F82C0085F83860A86AE9690026C0F8A1
+:101F4000DC1080F8D860E068FFF734FB00B1FFDFF9
+:101F5000F2F79CFD6E74AE7470BD0126E4E7724822
+:101F60000078BDE87040E0F7D7BFFFDF70BD6D4976
+:101F700024394860704770B56A4D0446243DB1B1BC
+:101F80004FF47A76012903D0022905D0FFDF70BD16
+:101F90001846F5F7C9FC05E06888401C68801046C3
+:101FA000F5F7A1FC00F2E730B0FBF6F0201AA860CC
+:101FB00070BD5C4800787047082803D0042801D021
+:101FC000F5F778BC4EF628307047002804DB00F1A6
+:101FD000E02090F8000405E000F00F0000F1E020A0
+:101FE00090F8140D4009704710F00C0000D008461E
+:101FF000704710B50446202800D3FFDF4948483019
+:1020000030F8140010BD70B505460C461046F5F7C3
+:1020100051FC4FF47A71022C0DD0012C0DD040F6FA
+:10202000340210444AF247321044B0FBF1F0284425
+:1020300000F2931070BD0A46F3E74FF4C862F0E770
+:102040001FB513460A46044601466846FEF7A5FB3F
+:1020500094F8E2006946F3F759F8002800D1FFDF51
+:102060001FBD70B52F4C0025257094F82400F2F7A1
+:10207000E4FD00B9FFDF84F8245070BD2DE9F04184
+:10208000050000D1FFDF274A0024243AD5F8EC6090
+:102090002046631E116A08E08869B04203D3984263
+:1020A00001D203460C460846C9680029F4D104B998
+:1020B00004460021C5F8E840D835C4B1E068E560C1
+:1020C000E86000B105612E698846A96156B1B06922
+:1020D00030B16F69B84200D2FFDFB069C01BA861A0
+:1020E000C6F818800F4D5CB1207820B902E0E96095
+:1020F0001562E8E7FFDF6169606808446863AFE67E
+:10210000C5F83480ACE610B50C4601461046F3F72E
+:10211000CCFA00280ADA211A491EB1FBF4F101FBBE
+:10212000040010BDC41200208401002090FBF4F1D3
+:1021300001FB1400F5E74648016A002001E008466B
+:10214000C9680029FBD170477FB504466FF00400D1
+:10215000FFF73BFFC5B21920FFF737FFC0B285423A
+:1021600000D0FFDFFCF7FCFE4088C00407D001214F
+:102170000320FCF7FAFE37480078E0F7CDFE002296
+:1021800021466846FEF71FFE38B169462046F2F741
+:10219000BDFF002800D1FFDF7FBD2D490120243184
+:1021A000C870FEF715FD7FBD2DE9FE43284D0120C7
+:1021B000287000264FF6FF7420E00621F0F71AFC85
+:1021C000070000D1FFDF97F8E200D837F3F707FBED
+:1021D00007F80A6BA14617F8E289B8F1200F00D37F
+:1021E000FFDF1B4A6C3222F8189097F8E200F2F7F2
+:1021F00024FD00B9FFDF202087F8E20069460620B1
+:10220000F0F781FB50B1FFDF08E0029830B190F8A1
+:10221000D81019B10088A042CFD104E06846F0F789
+:1022200050FB0028F1D02E70BDE8FE8310B5FFF7FB
+:10223000EAFE00F5C87074E705480021243090F8E4
+:10224000392000EB4200C18502480078E0F764BE07
+:10225000A012002084010020012804D0022805D00B
+:10226000032808D105E0012907D004E0022904D0A1
+:1022700001E0042901D00020704701207047FE488A
+:10228000806890F8881029B1B0F88410B0F88620E2
+:10229000914215D290F88C1029B1B0F88A10B0F89C
+:1022A000862091420CD2B0F88220B0F880108A4289
+:1022B00006D290F86820B0F87E001AB1884203D3A5
+:1022C000012070470628FBD2002070472DE9F0411D
+:1022D000E94D0746A86800F1580490F8FC0030B9B1
+:1022E000E27B002301212046FAF758FE10B1608DF1
+:1022F000401C608501263D21AFB92878022808D00E
+:1023000001280AD06878C8B110F0140F09D01E2037
+:1023100039E0162037E0E6763EE0A86890F8FE0047
+:1023200031E0020701D52177F5E7810701D02A20A6
+:1023300029E0800600D4FFDF232024E094F8300059
+:1023400028B1A08D411CA185E18D884213D294F85B
+:10235000340028B1608E411C6186E18D88420AD22A
+:10236000618D208D814203D3AA6892F8FC2012B9B6
+:10237000E28D914201D3222005E0217C29B1E18C3C
+:10238000814207D308202077C5E7E08C062801D3D7
+:102390003E20F8E7E07EB0B1002020736073207427
+:1023A0000221A868FFF75EFDA86890F8CC1001290B
+:1023B00004D1D0F804110878401E0870E878BDE810
+:1023C000F041E0F7A9BDA868BDE8F0410021FFF7A2
+:1023D00049BDA9490C28896881F8CC0014D013287C
+:1023E00012D0182810D0002211280ED007280BD0A8
+:1023F00015280AD0012807D0002805D0022803D0CC
+:1024000021F8842F012008717047A1F88A207047B5
+:1024100010B5994CA1680A88A1F8462181F84401B9
+:1024200091F8540001F073FBA16881F8480191F81C
+:10243000550001F06CFBA16881F84901012081F889
+:102440004201002081F81601E078BDE81040E0F775
+:1024500063BD70B5884C00231946A06890F86420CD
+:102460005830FAF79BFD00283DD0A06890F808117D
+:102470000025C9B3A1690978B1BB90F86500FAF7E6
+:1024800075FD88BBA168B1F858000A282DD905222E
+:102490000831E06903F046F810B3A068D0F80411E1
+:1024A000087858B10522491CE06903F03BF8002880
+:1024B00019D1A068D0F80401007840B9A068E1699A
+:1024C000D0F804010A68C0F8012009794171A068B8
+:1024D000D0F804110878401C08700120FFF779FF3C
+:1024E000A06880F8085170BDFFE7A06890F80C1153
+:1024F00011B190F80D11B9B390F816110029F2D06E
+:1025000090F817110029EED190F86500FAF72EFD2A
+:102510000028E8D1A06890F8540001F0F8FA0646C7
+:10252000A06890F8550001F0F2FA0546A06890F80E
+:1025300018113046FFF790FE90B3A06890F819117B
+:102540002846FFF789FE58B3A268B2F8583092F8CF
+:102550005410B2F81A01F832FBF730F818B3A1683A
+:10256000252081F86400BEE7FFE790F86510242974
+:1025700017D090F86410242913D0002300F1FA0238
+:1025800000F58671FAF7BAFDA06880F80C5130F8B2
+:10259000421FA0F88C108188A0F88E10142007E04C
+:1025A00005E00123EAE7BDE87040002030E716208F
+:1025B000BDE870400DE710B5F3F73CFC0C2813D3D1
+:1025C0002D4C0821A068D0F800011E30F3F736FC2E
+:1025D00028B1A0680421C030F3F730FC00B9FFDF58
+:1025E000BDE810400320F4E610BD10B5224CA068F1
+:1025F000D0F800110A78002A1FD049880288914239
+:102600001BD190F86420002319465830FAF7C6FC15
+:10261000002812D0A068D0F800110978022907D04C
+:1026200003290BD0042917D0052906D108200DE075
+:1026300090F86500FAF79AFC40B110BD90F8691067
+:1026400039B190F86A0000B9FFDF0A20BDE81040F8
+:10265000BFE6BDE81040AEE790F890008007ECD1EF
+:102660000C20FFF7B6FEA068002120F8841F01218E
+:102670000171017B02E000009001002041F00101A6
+:10268000017310BD70B5FE4CA268556DFAF730FFAE
+:10269000EBB2C1B200228B4203D0A36883F8FA10D8
+:1026A00002E0A16881F8FA20C5F30721C0F30720F2
+:1026B000814203D0A16881F8FB0014E7A06880F88C
+:1026C000FB2010E770B5EE48806890F84E20448EED
+:1026D000C38E418FB0F84050022A23D0A94200D3C4
+:1026E00029460186C18FB0F84220914200D311469D
+:1026F0008186018FB0F84420914200D31146418673
+:10270000818FB0F84620914200D31146C186418E98
+:10271000A14200D90C464486C18E994200D90B468D
+:10272000C386E0E6028E914200D31146C68F828EA8
+:10273000964200D23246A94200D329460186B0F81B
+:1027400042108A4200D30A468286002180F84E1049
+:10275000CFE770B5CA4CA06890F8CC10FE2955D1CF
+:102760006178002952D190F8672000230121583068
+:10277000FAF714FC002849D1A06890F8FC1009B1C0
+:10278000022037E090F86420002319465830FAF709
+:1027900005FC28B1A06890F87C0008B1122029E05F
+:1027A000A068002590F86420122A1DD004DC032ABA
+:1027B00023D0112A04D119E0182A1AD0232A26D0AE
+:1027C000002304215830FAF7E9FB00281ED1A06845
+:1027D00090F86510192970D020DC01292AD002292F
+:1027E00035D0032932D120E00B2003E0BDE8704052
+:1027F000E1E60620BDE87040EBE510F8CA1F017164
+:102800000720FFF7E6FDA06880F864506BE618200B
+:10281000FFF7DFFDA068A0F8845064E61D2918D0FA
+:102820001E2916D0212964D148E010F8C91F417132
+:1028300007206EE00C20FFF7CCFDA06820F88A5F2F
+:10284000817941F00101817100F8255C51E013208C
+:102850002AE090F80D217ABB90F80C21AAB1242926
+:1028600011D090F8641024290DD0002300F1FA0251
+:1028700000F58671FAF742FCA0681E2180F8651009
+:1028800080F80C5103E00123F0E71E2931D1FFF756
+:1028900019FF01F04EF9A06830F8421FA0F88C1023
+:1028A0008188A0F88E101520FFF793FDA068A0F88E
+:1028B0008A5000BF80F865501BE029E090F87D1039
+:1028C00049B100F8FA5F45701820FFF782FDA06853
+:1028D000A0F88A500DE090F8171151B990F8161130
+:1028E00039B1016DD0F81801FFF7CCFE1820FFF7C1
+:1028F00070FDA06890F8CC00FE2887D1FFF775FE28
+:10290000A06890F8CC00FE2887D1BDE87040A0E513
+:102910001120FFF75EFDA068CCE7594A01299268B3
+:1029200019D0002302290FD003291ED010B301288B
+:102930002BD0032807D192F86400132803D016285F
+:1029400001D0182804D1704792F8CC000028FAD0A2
+:10295000D2F8000117E092F8CC000128F3D0D2F8A9
+:1029600004110878401E0870704792F8CC000328C4
+:10297000EED17047D2F80001B2F858108288891A57
+:1029800009B20029F5DB03707047B2F85800B2F8BD
+:102990000A11401A00B20028F6DBD2F804010178CF
+:1029A000491E0170704770B5044690F86400002518
+:1029B0000C2810D00D282ED1D4F80011B4F85800EE
+:1029C0008988401C884226D1D4F84C012C4E0178CD
+:1029D00011B3FFDF42E0B4F85800B4F80A11401C0C
+:1029E000884218D1D4F80401D0F80110A1604079D0
+:1029F000207302212046F9F7ABFFD4F804010078D8
+:102A000000B9FFDF0121FE20FFF787FF84F8645043
+:102A1000012084F8980066E52188C180D4F800017F
+:102A2000D4F84C1140890881D4F80001D4F84C1135
+:102A300080894881D4F80001D4F84C11C08988817C
+:102A4000D4F84C010571D4F84C1109200870D4F861
+:102A50004C1120884880F078E0F75EFA012120468A
+:102A6000F9F776FF03212046FFF7FCF9B068D0F8AC
+:102A700000010078022800D0FFDF0221FE2001E0E3
+:102A800090010020FFF749FF84F864502BE52DE901
+:102A9000F041002603270125FE4CD4F808C088B178
+:102AA0002069C0788CF8CA0005FA00F0C0F3C05065
+:102AB00000B9FFDFA06800F8647F068480F8245026
+:102AC000BDE8F08100239CF8652019460CF1580000
+:102AD000FAF764FA70B160780028F1D12069C17802
+:102AE000A06880F8C91080F86570A0F88A6080F846
+:102AF0008C50E5E76570E3E7F0B5E64C002385B060
+:102B0000A068194690F865205830FAF747FA012571
+:102B100080B1A06890F8640023280ED024280CD03F
+:102B20006846F4F7EAFF68B1009801A9C0788DF80B
+:102B3000040008E0657005B0F0BD607840F020004A
+:102B40006070F8E70021A06803AB162290F86400DB
+:102B5000FAF74FFD002670B1A0689DF80C201621F1
+:102B600000F8F42F4170192100F88F1C00F8685C00
+:102B700020F86A6CDFE72069FBF7E7F878B1216994
+:102B8000087900F00702A06880F85020497901F028
+:102B9000070180F8511090F817310BBB03E00020BB
+:102BA000FFF775FFC7E790F81631CBB900F1540372
+:102BB0005F78974205D11A788A4202D180F87D5019
+:102BC0000EE000F59F71028821F8022990F850204C
+:102BD0000A7190F8510048710D70E078E0F79CF9A7
+:102BE000A068212180F8651080F88C50A0F88A60D8
+:102BF000A1E770B5A74C00231946A06890F865209E
+:102C00005830FAF7CBF928B32069FBF783F830B3D3
+:102C1000A5682069FBF77AF82887A5682069FBF783
+:102C200071F86887A5682069FBF772F8A887A5681E
+:102C30002069FBF769F8E887A068012590F864101F
+:102C40001C2910D090F84E10012912D090F80D11C7
+:102C500079B90BE0607840F00100607043E4BDE8B2
+:102C60007040002013E780F84E5002E090F80C11FD
+:102C700019B11E2180F8651012E01D2180F8651041
+:102C800000F58E710288CA82028F0A83428F4A83BE
+:102C9000828F8A83C08FC8830D75E078E0F73CF996
+:102CA000A068002120F88A1F85701CE410B5794CBB
+:102CB00000230921A06890F864205830FAF76EF9D3
+:102CC00048B16078002805D1A16801F87C0F08732D
+:102CD00001F8180C10BD0120607010BD7CB56D4C62
+:102CE00000230721A06890F864205830FAF756F9BD
+:102CF00038B36078002826D169462069FBF720F8B0
+:102D00009DF80000002500F02501A06880F89610CD
+:102D10009DF8011001F0490180F8971080F8885063
+:102D2000D0F8001100884988814200D0FFDFA068F8
+:102D3000D0F800110D70D0F84C110A7822B1FFDFE5
+:102D400016E0012060707CBD30F8D02BCA80C16FC6
+:102D50000D71C16F009A8A60019ACA60C26F082122
+:102D6000117030F8D01CC06F4180E078E0F7D4F8E3
+:102D7000A06880F864507CBD70B5464C00231946AD
+:102D8000A06890F865205830FAF708F9012540B995
+:102D9000A0680023082190F864205830FAF7FEF864
+:102DA00010B36078002820D1A06890F890008007C8
+:102DB00012D42069FAF78AFFA16881F8910020698E
+:102DC00030F8052FA1F892204088A1F8940011F85E
+:102DD000900F40F002000870A0684FF0000690F8D5
+:102DE0009010C90702D011E0657066E490F8652084
+:102DF000002319465830FAF7D1F800B9FFDFA06870
+:102E000080F8655080F88C50A0F88A60A06890F82F
+:102E10006410012906D180F8646080F88860E07849
+:102E2000E0F77AF8A168D1F80001098842888A425F
+:102E3000DBD101780429D8D10670E078E0F76CF88E
+:102E4000A06890F864100029CFD180F8886034E43D
+:102E500070B5104DA86890F864101A2902D00220AD
+:102E600068702AE469780029FBD1002480F88D403D
+:102E700080F88840D0F8001100884988814200D04D
+:102E8000FFDFA868D0F800110C70D0F84C110A7858
+:102E900022B101E090010020FFDF25E090F88E20B4
+:102EA00072B180F88E400288CA80D0F84C110C7143
+:102EB000D0F84C210E2111700188D0F84C010DE0A2
+:102EC00030F8D02BCA80C16F0C71C26F0121117212
+:102ED000C26F0D21117030F8D01CC06F418000F01E
+:102EE000A2FEE878E0F718F8A86880F8644018E4D3
+:102EF00070B5FA4CA16891F86420162A01D0132A03
+:102F000002D191F88E2012B10220607009E462783B
+:102F1000002AFBD181F8C800002581F88D5081F886
+:102F20008850D1F8000109884088884200D0FFDF2E
+:102F3000A068D0F800010078032800D0FFDF03214B
+:102F4000FE20FFF7EAFCA068D0F84C110A780AB11D
+:102F5000FFDF14E030F8C82BCA8010F8081BC26FDE
+:102F60001171C16F0D72C26F0D21117030F8D01C3C
+:102F7000C06F418000F057FEE078DFF7CDFFA0681A
+:102F800080F8645042E470B5D44C09210023A06855
+:102F900090F864205830FAF701F8002518B120693C
+:102FA000007912281ED0A0680A21002390F864201E
+:102FB0005830F9F7F3FF18B120690079142814D0BC
+:102FC0002069007916281AD1A06890F864101F298A
+:102FD00015D180F8645080F88850BDE870401A2000
+:102FE000FFF716BABDE8704060E6A06800F8645FBD
+:102FF000058480F82450BDE8704000F09ABD05E4D7
+:1030000070B5B64C2079C00773D020690023052124
+:10301000C578A06890F864205830F9F7BFFF98B1E0
+:10302000062D11D006DC022D0ED0042D0CD0052D5E
+:1030300006D109E00B2D07D00D2D05D0112D03D0A1
+:10304000607840F0080060706078002851D12069F5
+:10305000FAF7A0FD00287ED0206900250226C1785D
+:10306000891E162977D2DFE801F00B763437472224
+:10307000764D76254A457676763A53506A6D70736A
+:10308000A0680023012190F867205830F9F786FFE7
+:1030900008BB2069FAF7E2FDA16881F8FE0007206D
+:1030A00081F8670081F88C5081F8885056E0FFF76E
+:1030B0006AFF53E0A06890F864100F2901D0667091
+:1030C0004CE0617839B980F86950122180F86410B9
+:1030D00044E000F0D3FD41E000F0AFFD3EE0FAF740
+:1030E00072FE03283AD12069FAF771FEFFF700FF5C
+:1030F00034E03BE00079F9E7FFF7AAFE2EE0FFF7A6
+:103100003BFE2BE0FFF7EAFD28E0FFF7CFFD25E0CF
+:10311000A0680023194690F865205830F9F73EFF63
+:10312000012110B16078C8B901E0617016E0A068B3
+:1031300020F88A5F817000F8256C0FE00BE0FFF744
+:1031400058FD0BE000F03CFD08E0FFF7D5FC05E082
+:1031500000F002FD02E00020FFF799FCA268F2E90E
+:103160002A01401C41F10001C2E9000153E42DE9AC
+:10317000F0415A4C2079800741D5607800283ED133
+:10318000E06801270026C17820461929856805F1E5
+:1031900058006FD2DFE801F04B3E0D6FC1C1801CBB
+:1031A00034C1556287C1C1C1C1BE8B9598A4B0C15D
+:1031B000BA0095F8672000230121F9F7EFFE0028F7
+:1031C0001DD1A068082180F8671080F8886090E021
+:1031D000002395F865201946F9F7E0FE10B1A068C4
+:1031E00080F88C60A0680023194690F8642058305D
+:1031F000F9F7D4FE002802D0A06880F888605FE468
+:10320000002395F864201946F9F7C8FE00B9FFDFDE
+:10321000042008E0002395F864201946F9F7BEFE63
+:1032200000B9FFDF0C20A16881F8640048E40023A6
+:1032300095F864201946F9F7B1FE00B9FFDF0D20BB
+:10324000F1E7002395F864201946F9F7A7FE00B9C5
+:10325000FFDFA0680F2180F88D7008E095F864000A
+:10326000122800D0FFDFA068112180F88E7080F84E
+:10327000641025E451E0002395F864201946F9F71D
+:103280008DFE20B9A06890F88E0000B9FFDFA0681D
+:10329000132180F88D70EAE795F86400182800D0B3
+:1032A000FFDF1A20BFE7BDE8F04100F066BD002354
+:1032B00095F864201946F9F771FE00B9FFDF052083
+:1032C000B1E785F88C6014E4002395F86420194672
+:1032D000F9F764FE00B9FFDF1C20A4E7900100208D
+:1032E000002395F865201946F9F758FE00B9FFDF6D
+:1032F000A06880F88C6082E7002395F86420194666
+:10330000F9F74CFE00B9FFDF1F208CE7BDE8F04164
+:1033100000F0FBBC85F86560D3E7FFDF6FE710B511
+:10332000F74C6078002837D1207940070FD5A06886
+:1033300090F86400032800D1FFDFA06890F86710C0
+:10334000072904D101212170002180F86710FFF7BF
+:103350000EFF00F0B8FCFFF753FEA078000716D56B
+:10336000A0680023052190F864205830F9F716FE74
+:1033700050B108206070A068D0F84C1108780D2872
+:1033800000D10020087002E00020F8F73BFAA068A6
+:10339000BDE81040FFF707BB10BD2DE9F041D84C48
+:1033A00007464FF000056078084360702079810679
+:1033B0002046806802D5A0F87E5004E0B0F87E1068
+:1033C000491CA0F87E1000F01AFD0126F8B1A08873
+:1033D000000506D5A06890F86A1011B1A0F87650E3
+:1033E00015E0A068B0F87610491CA0F8761000F03F
+:1033F000F5FCA068B0F87610B0F87820914206D3BA
+:10340000A0F8765080F82261E078DFF785FD20791A
+:1034100010F0600F08D0A06890F8681021B980F80B
+:1034200068600121FEF71EFD1FB9FFF778FFFFF767
+:1034300090F93846FEF74AFFBDE8F041F4F76CBB5F
+:10344000AF4A51789378194313D1114601288968FE
+:1034500008D01079400703D591F86700072808D0F5
+:1034600001207047B1F84800098E884201D8FEF764
+:103470008BB900207047A249C2788968012A06D01A
+:103480005AB1182A08D1B1F8F810FAF77ABCB1F895
+:103490000A114172090A81727047D1F800118988B6
+:1034A0004173090A8173704770B5954C05460E4605
+:1034B000A0882843A080A80703D5E80700D0FFDF35
+:1034C000E660E80700D02661A80719D5F07806283D
+:1034D00002D00B2814D10BE0A06890F864101829D2
+:1034E0000ED10021E0E92A11012100F83E1C07E07D
+:1034F000A06890F86410122902D1002180F86A10A7
+:10350000280601D50820A07068050AD5A068828821
+:10351000B0F85810304600F081FC3046BDE87040ED
+:10352000A9E762E43EB505466846F4F7C0FA00B97B
+:10353000FFDF2221009802F0A0F803210098FAF79B
+:1035400011FB0098017821F0100101702946FAF76B
+:103550002EFB6B4C192D71D2DFE805F020180D3EC3
+:10356000C8C8C91266C8C9C959C8C8C8C8BBC9C96A
+:1035700071718AC89300A168009891F8FD1003E06A
+:10358000A168009891F8CE100171B0E0A068D0F861
+:1035900004110098491CFAF756FBA8E0A1680098AE
+:1035A000D1F8002192790271D1F80021128942717B
+:1035B000120A8271D1F800215289C271120A027274
+:1035C000D1F8002192894272120A8272D1F8001158
+:1035D000C989FAF70FFB8AE0A068D0F800110098BB
+:1035E000091DFAF73DFBA068D0F8001100980C31D6
+:1035F000FAF740FBA068D0F8001100981E31FAF7E6
+:103600003FFBA1680098C031FAF748FB6FE06269A0
+:1036100000981178017191884171090A817151886E
+:10362000C171090A017262E03649D1E90001CDE9B0
+:10363000010101A90098FAF74BFB58E056E0A06899
+:10364000B0F840100098FAF755FBA068B0F8CE101B
+:103650000098FAF753FBA068B0F844100098FAF706
+:1036600041FBA068B0F8D0100098FAF73FFB3EE0AD
+:10367000A268009892F81811017192F8191141711D
+:1036800035E0A06890F8FB00F9F729FF01460098A3
+:10369000FAF773FBA06890F8FA0000F033FA70B103
+:1036A000A06890F8540000F02DFA40B1A06890F89E
+:1036B000FA1090F85400814201D0002002E0A06886
+:1036C00090F8FA00F9F70BFF01460098FAF751FB62
+:1036D0000DE0A06890F8F5100098FAF772FBA0686A
+:1036E00090F8F4100098FAF770FB00E0FFDFF4F7B1
+:1036F000F1F900B9FFDF0098FFF7BDFE3EBD000005
+:1037000090010020BC5C0200F948806890F8FA1033
+:1037100009B990F8541080F8541090F8FB1009B9CA
+:1037200090F8551080F855100020FEF771BEF8B5DE
+:10373000EF4E00250446B060B5807570B5703570E9
+:103740000088F4F7B1F9B0680088F4F7D3F9B4F859
+:10375000E000B168401C82B201F15800F9F7D5F9D8
+:1037600000B1FFDF94F86500242809D1B4F858109F
+:10377000B4F8F800081A00B2002801DB707830B104
+:1037800094F8640024280AD0252808D015E0FFF713
+:10379000BBFF84F86550B16881F87D500DE0B4F846
+:1037A0005810B4F8F800081A00B2002805DB707849
+:1037B00018B9FFF7A9FF84F86450A4F8E050FEF7A9
+:1037C0005EFD00281CD1B06890F8CC00FE2801D026
+:1037D000FFF7A8FEC7480090C74BC84A21462846B5
+:1037E000F7F766FFB0680023052190F86420583091
+:1037F000F9F7D4FB002803D0BDE8F840F7F7F3BC95
+:10380000F8BD10B5FEF73BFD20B10020BDE810402B
+:103810000146C2E5BDE81040F7F7D0BF70B50C46D1
+:10382000064615464FF4A871204601F048FF268051
+:1038300005B9FFDF2868C4F800016868C4F804010E
+:10384000A868C4F84C0191E4EFF7DDB92DE9F04127
+:103850000D4607460621EFF7CDF8041E3DD0D4F8FB
+:103860004C110026087858B14A8821888A4207D12D
+:1038700009280FD00E2819D00D2826D008283ED0B0
+:1038800094F82201D0B36E701020287084F8226161
+:10389000AF809FE06E7009202870D4F84C01416819
+:1038A00069608168A9608089A88133E00846EFF7E4
+:1038B000D3F90746EEF77FFE70B96E700E202870C0
+:1038C000D4F84C014068686011E00846EFF7C4F98D
+:1038D0000746EEF770FE08B1002090E46E700D20F0
+:1038E0002870D4F84C014168696000892881D4F8B7
+:1038F0004C0106703846EEF758FE6BE00EE06E7035
+:1039000008202870D4F84C01416869608168A9607A
+:10391000C068E860D4F84C0106705BE094F82401BC
+:10392000A0B16E70152028700BE000BF84F82461F0
+:10393000D4F826016860D4F82A01A860B4F82E01F2
+:10394000A88194F824010028F0D143E094F83001D4
+:1039500070B16E701D20287084F83061D4F8320187
+:103960006860D4F83601A860B4F83A01A88131E063
+:1039700094F83C0140B16E701E20287084F83C61C0
+:10398000D4F83E01686025E094F81C0170B16E70B7
+:103990001B20287005E000BF84F81C61D4F81E01CC
+:1039A000686094F81C010028F6D113E094F84201F5
+:1039B000002892D06E701620287007E084F84261CB
+:1039C000D4F844016860B4F84801288194F84201B1
+:1039D0000028F3D1012012E4454A5061D1707047AC
+:1039E00070B50D4604464EE0B4F8E000401CA4F863
+:1039F000E000B4F87E00401CA4F87E00204600F0F1
+:103A0000FEF9B8B1B4F87600401CA4F87600204660
+:103A100000F0E4F9B4F87600B4F87810884209D3DD
+:103A20000020A4F87600012084F822013048C078F4
+:103A3000DFF772FA94F8880020B1B4F88400401CD3
+:103A4000A4F8840094F88C0020B1B4F88A00401CDB
+:103A5000A4F88A0094F8FC0040B994F86720002389
+:103A6000012104F15800F9F799FA20B1B4F8820065
+:103A7000401CA4F882002046FEF795FFB4F85800D9
+:103A8000401CA4F858006D1EADB2ADD249E5184AED
+:103A9000C2E90601704770B50446B0F87E0094F89C
+:103AA0006810D1B1B4F880100D1A2D1F94F87C0065
+:103AB00040B194F864200023092104F15800F9F77B
+:103AC0006DFA70B1B4F87660204600F098F938B11C
+:103AD000B4F87800801B001F03E0C0F10205E5E7A1
+:103AE0002846A84200DA0546002D09DC002018E52A
+:103AF000900100209B33020041340200A9340200EF
+:103B0000A8B20EE510F00C0000D00120704710B5EF
+:103B1000012808D0022808D0042808D0082806D098
+:103B2000FFDF204610BD0124FBE70224F9E7032450
+:103B3000F7E710B5EF4C0421A068FEF793F9A068F1
+:103B400090F84E10012903D0BDE8104000F098B95C
+:103B5000022180F84E1010BD70B5E64CA06890F8B8
+:103B600064001F2804D0607840F001006070D8E441
+:103B70002069FAF7F4F8D8B1206901220179407977
+:103B800001F0070161F30705294600F0070060F323
+:103B90000F21A06880F888200022A0F8842023222A
+:103BA00000F8642FD0F8B400BDE87040FEF76ABD9D
+:103BB0000120FEF76CFFBDE870401E20FEF728BC18
+:103BC00070B5CC4C00230A21A06890F864205830CE
+:103BD000F9F7E4F910B32069FAF79CF8A8B1A568E1
+:103BE0002069FAF793F82887A5682069FAF78AF818
+:103BF0006887A5682069FAF78BF8A887A568206907
+:103C0000FAF782F8E887FEF75DFDA168002081F8E9
+:103C1000880081F86400BDE870408AE7607840F071
+:103C2000010060707DE4B34810B580680088EFF74C
+:103C300013F8BDE81040EEF7A9BC10B5AD4CA36871
+:103C400093F86400162802D00220607010BD6078DE
+:103C50000028FBD1D3F80001002200F11E010E3034
+:103C6000B033F9F715F9A0680021C0E92811012146
+:103C700080F86910182180F8641010BD10B59D4CB3
+:103C8000A06890F86410132902D00220607010BD63
+:103C900061780029FBD1D0F8001100884988814261
+:103CA00000D0FFDFA068D0F8001120692631FAF7B4
+:103CB00002F8A1682069C431FAF705F8A168162056
+:103CC00081F8640010BD10B58A4C207900071BD51F
+:103CD0006078002818D1A068002190F8CC00FEF789
+:103CE0001CFEA06890F8CC00FE2800D1FFDFA06881
+:103CF000FE2180F8CC1090F86710082904D1022129
+:103D00002170002180F8671010BD70B5794D242115
+:103D10000024A86890F86520212A05D090F8642036
+:103D2000232A18D0FFDF8EE590F8FA2012B990F818
+:103D3000FB202AB180F86510A86880F88C4082E5E5
+:103D400000F8654F047690F8B1000028F4D0002008
+:103D5000FEF75EFBF0E790F8FA2012B990F8FB202E
+:103D60002AB180F86410A86880F888406BE580F874
+:103D700064400020FEF74CFBF5E770B55D4C002574
+:103D8000A068D0F8001103884A889A4218D10978AF
+:103D9000042915D190F86420002319465830F9F70A
+:103DA000FDF800B9FFDFA06890F89010890703D4F0
+:103DB000012180F8641003E000F8885F806F0570CF
+:103DC000A0680023194690F865205830F9F7E6F806
+:103DD000002802D0A06880F88C5034E5B0F8782034
+:103DE000B0F876108A4201D3511A00E0002182888F
+:103DF000521D8A4202D3012180F87C10704710B511
+:103E000090F86A1041B990F86420002306215830D8
+:103E1000F9F7C4F8002800D0012010BD70B5114496
+:103E2000344D891D8CB2C078A968012806D040B1F4
+:103E3000182805D191F8FA0038B109E0A1F80A4133
+:103E400001E5D1F800018480FDE491F8FB1091B107
+:103E5000FFF758FE80B1A86890F85400FFF752FEB3
+:103E600050B1A86890F8FA1090F85420914203D00D
+:103E700090F8FB0000B90024A868A0F8F840E2E43C
+:103E80002DE9F0411B4DA86800F58E740188618111
+:103E9000018EA181818EE181018FB0F84420914291
+:103EA00000D311462182828FB0F846108A4200D298
+:103EB0001146618290F85500FFF724FE4FF4296700
+:103EC00028B1608A3E46B84200D906466682A86894
+:103ED00090F85400FFF716FE20B1E089B84200D9EF
+:103EE0000746E78101202072E878BDE8F041DFF75E
+:103EF00013B800009001002070B58D4C0829207A7D
+:103F000062D2DFE801F0041959592561615978B18D
+:103F1000F2F73CFD01210846F2F7DFFEF3F713FD4F
+:103F20000020A072F2F7E5FDBDE87040F3F766B837
+:103F3000BDE87040F0F7AABDD4E90001F0F79DFBA1
+:103F40002060A07A401CC0B2A07228281CD370BD8B
+:103F5000A07A0025401EC6B2E0683044F3F73FF96E
+:103F600010B9E1687F208855A07A272828BF01254D
+:103F70002846F3F751FCA07A282809D2401CC0B289
+:103F8000A072282828BF70BDBDE87040F2F7B1BD0F
+:103F9000207A00281CBF012000F085F8F2F7A0FF6E
+:103FA000F3F71EF80120E07262480078DEF7B4FFF4
+:103FB000BDE87040F0F76ABD002808BF70BD002062
+:103FC000BDE8704000F06FB8FFDF70BD10B5584C11
+:103FD000207A002804BF0C2010BD00202072E0725F
+:103FE000607AF1F7AEF9607AF1F7F9FB607AF0F7F1
+:103FF00024FE00280CBF1F20002010BD002270B539
+:104000004B4C06460D46207A68B12272E272607A05
+:10401000F1F797F9607AF1F7E2FB607AF0F70DFEBD
+:10402000002808BFFFDF4348E560067070BD70B52B
+:10403000050007D0A5F5E8503F494C3881429CBFA8
+:10404000122070BD3A4CE068002804BF092070BD02
+:10405000207A00281CBF0C2070BD3848F0F791FD75
+:104060006072202804BF1F2070BDF0F705FE20609D
+:10407000002D1CBF284420600120656020720020B4
+:1040800000F011F8002070BD2949CA7A002A04BF47
+:10409000002070471F22027000224270CB684360EC
+:1040A000CA72012070472DE9F04184B00746F0F74D
+:1040B000E3FD1F4D8046414668682C6800EB800098
+:1040C00046002046F1F7F1FAB04206DB6868811B32
+:1040D0004046F0F7D2FA0446286040F23476214692
+:1040E0004046F1F7E2FAB04204DA31464046F0F7D2
+:1040F000C4FA044600208DF800004FF4DD60039000
+:1041000004208DF80500002F14BF012003208DF836
+:10411000040068460294F0F77EFF687A6946F0F77B
+:10412000F5FF002808BFFFDF04B0BDE8F081000004
+:104130004C130020B0010020B5EB3C00F93E02001A
+:104140002DE9F0410C4612490D68114A1149083217
+:104150001160A0F12001312901D301200CE0412898
+:1041600010D040CC0C4F94E80E0007EB8000241FC9
+:1041700050F8807C3046B84720600548001D056037
+:10418000BDE8F0812046DDF743F8F5E706207047EB
+:104190001005024001000001C45C020010B5534844
+:1041A000F1F7CAFD00B1FFDF5048401CF1F7C4FD34
+:1041B000002800D0FFDF10BD2DE9F14F4C4ED6F89E
+:1041C00000B001274948F1F7BFFDDFF8208128B989
+:1041D0005FF0000708F10100F1F7CCFD454C002528
+:1041E0004FF0030901206060C4F80051C4F8045185
+:1041F000009931602060DFF800A118E0DAF80000D3
+:10420000C00614D50E2000F064F8EFF3108010F013
+:10421000010072B600D00120C4F80493D4F8001154
+:1042200019B9D4F8041101B920BF00B962B6D4F8A5
+:10423000000118B9D4F804010028DFD0D4F8040133
+:104240000028CFD137B1C6F800B008F10100F1F76E
+:104250007BFD11E008F10100F1F776FD0028B9D1EE
+:10426000C4F80893C4F80451C4F800510E2000F0BB
+:1042700030F81E48F1F77EFD0020BDE8F88F2DE9EB
+:10428000F0438DB00D46064600240DF110090DF1E6
+:10429000200817E004EB4407102255F82710684661
+:1042A00001F06CF905EB870710224846796801F0A8
+:1042B00065F96846FFF780FF10224146B86801F0B3
+:1042C0005DF9641CB442E5DB0DB00020BDE8F0836D
+:1042D00072E7002809DB00F01F020121914040092C
+:1042E000800000F1E020C0F880127047B10100208A
+:1042F00004E5004000E0004010ED00E0B14900207E
+:104300000870704770B5B04D01232B60AF4B1C682F
+:10431000002CFCD0002407E00E6806601E68002E0A
+:10432000FCD0001D091D641C9442F5D300202860B8
+:1043300018680028FCD070BD70B5A24E0446A44D8C
+:104340003078022800D0FFDFAC4200D3FFDF716974
+:10435000A048012903D847F23052944201DD0322DC
+:104360004271491C7161291BC1609A497078F0F74C
+:10437000CDFE002800D1FFDF70BD70B5914C0D4619
+:104380006178884200D0FFDF914E082D4BD2DFE8E4
+:1043900005F04A041E2D4A4A4A382078022800D0E7
+:1043A000FFDF03202070A078012801D020B108E0B1
+:1043B000A06800F039FE04E004F1080007C8FFF728
+:1043C000A1FF05202070BDE87040F0F75FBBF0F75B
+:1043D00053FC01466068F1F768F9B04202D26169A6
+:1043E00002290BD30320F1F746FC12E0F0F744FC5E
+:1043F00001466068F1F759F9B042F3D2BDE8704068
+:104400009AE7207802280AD0052806D0FFDF04208A
+:104410002070BDE8704000F0CAB8022000E0032020
+:10442000F1F729FCF3E7FFDF70BD70B50546F0F743
+:1044300023FC644C60602078012800D0FFDF6549D0
+:10444000012008700020087104208D6048716048C8
+:10445000C860022020706078F0F758FE002800D174
+:10446000FFDF70BD10B5574C207838B90220F1F746
+:1044700018FC18B90320F1F714FC08B1112010BD85
+:104480005548F0F77EFB6070202804D00120207092
+:104490000020606110BD032010BD2DE9F0471446D7
+:1044A000054600EB84000E46A0F1040800F0CFFDA5
+:1044B00007464FF0805001694F4306EB8401091F06
+:1044C000B14201D2012100E0002189461CB10069FE
+:1044D000B4EB900F02D90920BDE8F0872846DCF73D
+:1044E000EBFE90B9A84510D3BD4205D2B84503D222
+:1044F00045EA0600800701D01020EDE73046DCF7E2
+:10450000DBFE10B9B9F1000F01D00F20E4E733480A
+:1045100033490068884205D0224631462846FFF7D5
+:10452000F1FE14E0FFF79EFF0028D5D125480021B9
+:104530008560C0E90364817000F06FF810B14FF43A
+:10454000A97000E0292060431830FFF76EFF0020BB
+:10455000C2E770B505464FF0805004696C432046B1
+:10456000DCF7AAFE08B10F2070BD00F070FDA84274
+:1045700001D8102070BD194819490068884203D03D
+:10458000204600F051FD10E0FFF76CFF0028F1D14C
+:104590000C4801218460817000F03FF808B1114897
+:1045A00000E011481830FFF740FF002070BD10B543
+:1045B000044C6078F0F741FB00B9FFDF0020207069
+:1045C00010BD0000B401002004E5014000E40140FA
+:1045D000105C0C005C1300207B43020054000020A0
+:1045E000BEBAFECA645E0100084C01004FF0805064
+:1045F000D0F830010A2801D0002070470120704710
+:1046000000B5FFF7F3FF20B14FF08050D0F8340130
+:1046100008B1002000BD012000BD4FF08050D0F84F
+:104620003011062905D0D0F83001401C01D00020FF
+:104630007047012070474FF08050D0F830010828B3
+:1046400001D0002070470120704700B5FFF7E5FF5B
+:1046500048B14FF08050D0F83411062905D3D0F876
+:104660003401401C01D0002000BD012000BD00B578
+:10467000FFF7D3FF58B14FF08050D0F8341106291E
+:1046800005D3D0F83401401C01D0012000BD00202A
+:1046900000BD00007B49096801600020704779492E
+:1046A00008600020704701218A0720B1012804D04A
+:1046B00042F204007047916700E0D1670020704724
+:1046C00071490120086042F20600704708B50423D2
+:1046D0006D4A1907103230B1C1F80433106840F048
+:1046E000010010600BE0106820F001001060C1F8BC
+:1046F00008330020C1F808016448006800900020D9
+:1047000008BD011F0B2909D85F4910310A6822F042
+:104710001E0242EA400008600020704742F2050095
+:1047200070470F2809D8584910310A6822F470627E
+:1047300042EA002008600020704742F205007047FE
+:10474000000100F18040C0F804190020704700010A
+:1047500000F18040C0F8081900207047000100F106
+:104760008040D0F80009086000207047012801D976
+:1047700007207047464A52F8200002680A43026048
+:1047800000207047012801D907207047404A52F89D
+:10479000200002688A43026000207047012801D986
+:1047A000072070473A4A52F820000068086000204D
+:1047B0007047020037494FF0000003D0012A01D0B2
+:1047C000072070470A607047020033494FF000002D
+:1047D00003D0012A01D0072070470A60704708B54E
+:1047E0004FF40072510510B1C1F8042308E0C1F87C
+:1047F00008230020C1F8240124481C3000680090E0
+:10480000002008BD08B58022D10510B1C1F80423ED
+:1048100008E0C1F808230020C1F81C011B4814302F
+:1048200000680090002008BD08B54FF48072910523
+:1048300010B1C1F8042308E0C1F808230020C1F832
+:1048400020011248183000680090002008BD0D4972
+:10485000383109680160002070474FF08041002026
+:10486000C1F80801C1F82401C1F81C01C1F82001F8
+:104870004FF0E020802180F800140121C0F80011E1
+:10488000704700000004004000050040080100409F
+:10489000885D020078050040800500406249634B56
+:1048A0000A6863499A42096801D1C1F310010160A5
+:1048B000002070475C495D4B0A685D49091D9A42BA
+:1048C00001D1C0F310000860002070475649574BD3
+:1048D0000A68574908319A4201D1C0F310000860B4
+:1048E0000020704730B5504B504D1C6842F2080311
+:1048F000AC4202D0142802D203E0112801D318469A
+:1049000030BDC3004B481844C0F81015C0F814253A
+:10491000002030BD4449454B0A6842F209019A42E1
+:1049200002D0062802D203E0042801D308467047CB
+:10493000404A012142F83010002070473A493B4B71
+:104940000A6842F209019A4202D0062802D203E024
+:10495000042801D308467047364A012102EBC00003
+:1049600041600020704770B52F4A304E314C1568B9
+:1049700042F2090304EB8002B54204D0062804D2B7
+:10498000C2F8001807E0042801D3184670BDC1F32F
+:104990001000C2F80008002070BD70B5224A234EF6
+:1049A000244C156842F2090304EB8002B54204D09E
+:1049B000062804D2D2F8000807E0042801D31846DC
+:1049C00070BDD2F80008C0F310000860002070BD70
+:1049D000174910B50831184808601120154A002100
+:1049E00002EBC003C3F81015C3F81415401C1428BB
+:1049F000F6D3002006E0042804D302EB8003C3F8BA
+:104A0000001807E002EB8003D3F80048C4F3100459
+:104A1000C3F80048401C0628EDD310BD04490648E1
+:104A2000083108607047000054000020BEBAFECA7A
+:104A300000F5014000F001400000FEFF834B1B68C1
+:104A400003B19847BFF34F8F81480168814A01F451
+:104A5000E06111430160BFF34F8F00BFFDE710B568
+:104A6000EFF3108010F0010F72B601D0012400E0C6
+:104A7000002400F0E1F850B1DCF7BEFCEFF7C1FE16
+:104A8000F1F79BF8E7F75EFA73490020086004B974
+:104A900062B6002010BD2DE9F0410C460546EFF34B
+:104AA000108010F0010F72B601D0012600E0002640
+:104AB00000F0C2F820B106B962B60820BDE8F08166
+:104AC000DCF78EFBDCF79CFC024600200123470943
+:104AD000BF0007F1E02700F01F01D7F80071CF40B9
+:104AE000F9071BD0202803D222FA00F1C90727D1E9
+:104AF00041B2002904DB01F1E02191F8001405E046
+:104B000001F00F0101F1E02191F8141D4909082974
+:104B100016D203FA01F717F0EC0F11D0401C6428ED
+:104B2000D5D3E7F7EDF94D4A4D490020E7F730FAC4
+:104B300049494C4808602046DCF7C5FB60B904E0F1
+:104B400006B962B641F20100B8E7404804602DB1F1
+:104B50002846DCF705FC18B110242CE0424D19E082
+:104B60002878022802D94FF4805424E00724002832
+:104B7000687801D0F8B908E0E8B120281BD8A878F7
+:104B8000212818D8012816D001E0A87898B9E8782B
+:104B90000B2810D83549802081F8140DDCF730FC43
+:104BA0002946F0F7F0FFEFF7EBFD00F083FA284617
+:104BB000DCF7F4FB044606B962B61CB1FFF74FFF01
+:104BC00020467BE7002079E710B5044600F034F872
+:104BD00000B101202070002010BD25490860002090
+:104BE000704770B50C4623490D682249224E0831A2
+:104BF0000E60102807D011280CD012280FD01328CF
+:104C000011D0012013E0D4E90001FFF744FF35463D
+:104C100020600DE0FFF723FF0025206008E02068FA
+:104C2000FFF7D2FF03E012492068086000202060EF
+:104C30001048001D056070BD07480A490068884299
+:104C400001D101207047002070470000CC010020F6
+:104C50000CED00E00400FA0554000020F8130020D9
+:104C600000000020BEBAFECA905D02000BE000E02A
+:104C700004000020100502400100000100B59B491E
+:104C800002282ED021DC10F10C0F08BFF42028D010
+:104C90000FDC10F1280F08BFD82022D010F1140F1C
+:104CA00008BFEC201DD010F1100F08BFF02018D065
+:104CB00021E010F1080F08BFF82012D010F1040F06
+:104CC0000CBFFC2000280CD015E0A0F10300062842
+:104CD00011D2DFE800F00E0C0A080503082000E0FE
+:104CE0000720086000BD0620FBE70520F9E7042047
+:104CF000F7E70320F5E7FFDF00BD00B57C49012899
+:104D000008BF03200CD0022808BF042008D00428C4
+:104D100008BF062004D0082816BFFFDF052000BD0D
+:104D2000086000BD70B505460C4616461046F2F701
+:104D3000C1FD022C08BF4FF47A7105D0012C0CBFC5
+:104D40004FF4C86140F6340144183046F2F7ECFDE8
+:104D5000204449F6797108444FF47A71B0FBF1F0C0
+:104D6000281A70BD70B505460C460846F2F7BBFD23
+:104D7000022C08BF40F24C4105D0012C0CBF40F67C
+:104D800034014FF4AF5149F6CA62511A08444FF446
+:104D90007A7100F2E140B0FBF1F0281A801E70BD7C
+:104DA00070B5064615460C460846F2F79CFD022DE6
+:104DB00008BF4FF47A7105D0012D0CBF4FF4C861C4
+:104DC00040F63401022C08BF40F24C4205D0012CC1
+:104DD0000CBF40F634024FF4AF52891A084449F62A
+:104DE000FC6108444FF47A71B0FBF1F0301A70BDE9
+:104DF00070B504460E460846F2F75CFD054630469F
+:104E0000F2F792FD28444AF2AB3108444FF47A712C
+:104E1000B0FBF1F0201A801E70BD2DE9F04107466D
+:104E20001E460D4614461046082A16BF04284EF6A4
+:104E30002830F2F73FFD07EB4701C1EBC71100EB4C
+:104E4000C100022D08BF40F24C4105D0012D0CBF1E
+:104E500040F634014FF4AF5147182846F2F743FDAE
+:104E6000381A4FF47A7100F6B730B0FBF1F52046EE
+:104E7000F2F70EFD28443044401DBDE8F08170B5C6
+:104E8000054614460E460846F2F714FD05EB4502AA
+:104E9000C2EBC512C0EBC2053046F2F745FD2D1A34
+:104EA0002046082C16BF04284EF62830F2F702FDE3
+:104EB00028444FF47A7100F6B730B0FBF1F5204684
+:104EC000F2F7E6FC2844401D70BD0A49082818BFC7
+:104ED0000428086803BF20F46C5040F4444040F0BC
+:104EE000004020F000400860704700000C150040B2
+:104EF00010150040401700402DE9FE430C46804647
+:104F0000F8F744FE074698F80160204601A96A4672
+:104F1000EDF72DFB05000DD0012F02D00320BDE8D9
+:104F2000FE83204602AA0199EDF743FA0298B0F8F1
+:104F300003000AE0022F14D1042E12D3B8F80300A4
+:104F4000BDF80020011D914204D8001D80B2A919AE
+:104F5000814202D14FF00000E1E702D24FF00100A0
+:104F6000DDE74FF00200DAE7C2790D2341B342BB1F
+:104F70008188012904D94908818004BF01228280E7
+:104F80000168012918BF002930D001686FEA0101CA
+:104F9000C1EBC10202EB011281796FEA010101EB61
+:104FA0008103C3EB811111444FEA91420160818872
+:104FB000B2FBF1F301FB132181714FF0010102E01B
+:104FC0001AB14FF00001C17170478188FF2908D2E2
+:104FD0004FF6FF7202EA41018180FF2984BFFF2260
+:104FE00082800168012918BF0029CED10360CCE777
+:104FF000817931B1491E11F0FF0181711CBF002080
+:1050000070470120704710B50121C1718171818005
+:1050100004460421F0F712FF002818BF10BD2068D5
+:10502000401C206010BD00000B4A022111600B499A
+:105030000B68002BFCD0084B1B1D1860086800286B
+:10504000FCD00020106008680028FCD070474FF0AA
+:10505000805040697047000004E5014000E40140D1
+:1050600002000B464FF00000014620D0012A04D078
+:10507000022A04D0032A0DD103E0012002E002201D
+:1050800015E00320072B05D2DFE803F00406080A29
+:105090000C0E100007207047012108E0022106E0F5
+:1050A000032104E0042102E0052100E00621EFF7DE
+:1050B00086BD0000F9480521817000210170417012
+:1050C0007047F7490A78012A05D0CA681044C860B9
+:1050D0004038F0F7B7BA8A6810448860F8E70028CB
+:1050E00019D00378EF49F04A13B1012B0ED011E02B
+:1050F0000379012B00D06BB943790BB1012B09D196
+:105100008368643B8B4205D2C0680EE00379012BB3
+:1051100002D00BB10020704743790BB1012BF9D1BC
+:10512000C368643B8B42F5D280689042F2D801207C
+:105130007047DB4910B501220A700279A2B1002242
+:105140000A71427992B104224A718268D34C523278
+:105150008A60C0681434C8606060EFF78DFDCF4985
+:1051600020600220887010BD0322E9E70322EBE7EC
+:1051700070B5CB4D044600202870207988B10020FE
+:105180002871607978B10420C44E6871A168F06814
+:10519000EFF773FAA860E0685230E8600320B0705F
+:1051A00070BD0120ECE70320EEE72DE9F041054654
+:1051B0000226F0F773F9006800B1FFDFB74C012752
+:1051C0003DB12878B0B1012805D0022810D00328BD
+:1051D00013D027710CE06868C82807D3F0F799FA54
+:1051E00020B16868FFF76DFF012603E0002601E0AB
+:1051F00000F05EF93046BDE8F08120780028F7D154
+:105200006868FFF76CFF0028E3D06868017879B11F
+:10521000A078042800D0FFDF01216868FFF7A8FF0D
+:105220009F49E078EFF772FF0028E1D1FFDFDFE769
+:10523000FFF77FFF6770DBE72DE9F047974C884663
+:10524000E178884200D0FFDFDFF850920025012787
+:10525000934E09F11409B8F1080F75D2DFE808F090
+:10526000040C28527A808D95A078032802D0022859
+:1052700000D0FFDFBDE8F087A078032802D0022825
+:1052800000D0FFDF0420A07025712078002878D19D
+:10529000FFF717FF3078012806D0B068E06000F013
+:1052A00027F92061002060E0E078EFF72CFEF5E7B9
+:1052B000A078032802D0022800D0FFDF2078002841
+:1052C0006DD1A078032816D0EFF7D6FC01464F46E3
+:1052D000D9F80000F0F7E9F900280EDB796881427F
+:1052E0000BDB081AF0606E49E078EFF70FFF00283B
+:1052F000C0D1FFDFBEE7042028E00420F0F7BBFCAC
+:10530000A570B7E7A078032802D0022800D0FFDFFD
+:10531000207888BBA078032817D0EFF7ADFC0146B2
+:105320004F46D9F80000F0F7C0F90028E5DB7968AE
+:105330008142E2DB081AF0605949E078EFF7E6FEB7
+:10534000002897D1FFDF95E740E00520F0F793FCB8
+:10535000A7708FE7A078042800D0FFDF022004E0C8
+:10536000A078042800D0FFDF0120A1688847FFF75C
+:105370001CFF054630E004E011E0A078042800D0CE
+:10538000FFDFBDE8F04700F093B8A078042804D010
+:10539000617809B1022800D0FFDF207818B1BDE89C
+:1053A000F04700F08EB8207920B10620F0F763FCBA
+:1053B0002571CDE7607838B13949E078EFF7A6FE7E
+:1053C00000B9FFDF657055E70720BFE7FFDF51E752
+:1053D0003DB1012D03D0FFDF022DF9D14AE70420B2
+:1053E000C3E70320C1E770B5050004D02B4CA078BB
+:1053F000052806D101E0102070BD0820F0F751FC0F
+:1054000008B1112070BD2948EFF7BBFBE0702028E0
+:1054100006D00121F0F777FA0020A560A07070BDDA
+:10542000032070BD1D4810B5017809B1112010BDD1
+:105430008178052906D0012906D029B10121017002
+:10544000002010BD0F2010BD00F03BF8F8E770B54C
+:10545000124C0546A07808B1012809D155B128465B
+:10546000FFF73DFE40B1287840B1A078012809D06F
+:105470000F2070BD102070BD072070BD2846FFF7BB
+:1054800058FE03E000212846FFF772FE0449E07849
+:10549000EFF73CFE00B9FFDF002070BDD001002017
+:1054A0006C1300203D860100FF1FA1073952020046
+:1054B0000A4810B5006900F013F8BDE81040EFF796
+:1054C000E5BA064810B5C078EFF7B7FB00B9FFDFC3
+:1054D0000820F0F7D0FBBDE81040EBE5D00100203C
+:1054E0000C490A6848F202139A4302430A60704763
+:1054F000084A116848F2021301EA03009943116057
+:1055000070470246044B10201344FC2B01D8116055
+:1055100000207047C80602400018FEBF7047704761
+:105520007047704740EA010310B59B070FD1042A6A
+:105530000DD310C808C9121F9C42F8D020BA19BA5E
+:10554000884201D9012010BD4FF0FF3010BD1AB1C3
+:10555000D30703D0521C07E0002010BD10F8013B18
+:1055600011F8014B1B1B07D110F8013B11F8014B3F
+:105570001B1B01D1921EF1D1184610BD032A40F227
+:10558000308010F0030C00F0158011F8013BBCF1E5
+:10559000020F624498BF11F801CB00F8013B38BFFD
+:1055A00011F8013BA2F1040298BF00F801CB38BF0B
+:1055B00000F8013B11F0030300F02580083AC0F029
+:1055C000088051F8043B083A51F804CBA0E80810D1
+:1055D000F5E7121D5CBF51F8043B40F8043BAFF304
+:1055E0000080D20724BF11F8013B11F801CB48BF5E
+:1055F00011F8012B24BF00F8013B00F801CB48BF94
+:1056000000F8012B704710B5203AC0F00B80B1E8CC
+:105610001850203AA0E81850B1E81850A0E81850E7
+:10562000BFF4F5AF5FEA027C24BFB1E81850A0E8F0
+:10563000185044BF18C918C0BDE810405FEA827C0A
+:1056400024BF51F8043B40F8043B08BF7047D20721
+:1056500028BF31F8023B48BF11F8012B28BF20F8C2
+:10566000023B48BF00F8012B704702F0FF0343EAFA
+:10567000032242EA024200F002B84FF0000204297D
+:10568000C0F0128010F0030C00F01B80CCF1040C71
+:10569000BCF1020F18BF00F8012BA8BF20F8022BA5
+:1056A000A1EB0C0100F00DB85FEAC17C24BF00F84B
+:1056B000012B00F8012B48BF00F8012B70474FF079
+:1056C000000200B5134694469646203922BFA0E852
+:1056D0000C50A0E80C50B1F12001BFF4F7AF09075E
+:1056E00028BFA0E80C5048BF0CC05DF804EB89004F
+:1056F00028BF40F8042B08BF704748BF20F8022B92
+:1057000011F0804F18BF00F8012B704770477047A9
+:1057100070477047FEDF18490978F9B904207146CF
+:1057200008421BD10699154A914217DC06990229B5
+:1057300014DB02394878DF2810D10878FE2807D01A
+:10574000FF280BD14FF001004FF000020C4B18471F
+:1057500041F201000099019A094B1847094B002BAF
+:1057600002D01B68DB6818474FF0FF3071464FF0DE
+:105770000002034B1847000028ED00E00060020023
+:105780003D4A020004000020174818497047FFF7FF
+:10579000FBFFDBF713FD00BD154816490968884279
+:1057A00003D1154A13605B68184700BD20BFFDE7B1
+:1057B0000F4810490968884210D1104B18684FF003
+:1057C000FF318842F2D080F308884FF020218842D0
+:1057D00004DD0B48026803210A4302600948804740
+:1057E00009488047FFDF000080130020801300205D
+:1057F00000100000000000200400002000600200F3
+:1058000014090040C52F000099570200042071467A
+:10581000084202D0EFF3098101E0EFF308818869C3
+:1058200002380078102813DB20280FDB2C280BDB34
+:105830000A4A12680A4B9A4203D1602804DB094ADB
+:105840001047022008607047074A1047074A104770
+:10585000074A12682C3212681047000054000020DA
+:10586000BEBAFECA0514000041410200E34B02002B
+:10587000040000200D4B0E4908470E4B0C49084709
+:105880000D4B0B4908470D4B094908470C4B08497C
+:1058900008470C4B064908470B4B054908470B4B7B
+:1058A000034908470A4B024908470000E1BC0000D1
+:1058B0005DC00000552D0000CF2B00005D2B0000C7
+:1058C000F72D0000211400001B2900004D2F0000BF
+:1058D000C911000000210160818070470021016032
+:1058E0004160017270470A6802600B79037170476A
+:1058F000959600003F980000A1990000059A0000CD
+:105900003F9A0000739A0000AD9A0000DD9A0000F3
+:10591000579B00008D970000C5990000A71200005A
+:10592000C14300000D44000073440000FF44000028
+:1059300023460000E546000017470000EF4700003F
+:1059400087480000DB480000C1490000E149000031
+:10595000C3160000E7160000171600006B160000C3
+:1059600019170000AD17000047600000F761000044
+:10597000BD650000D56600005F670000DD670000C0
+:105980004168000061690000316A00009D6A000002
+:10599000034A0000094A0000134A00007B4A000045
+:1059A000A74A0000634C00008D4C0000C54C00006D
+:1059B0002F4D0000194E00002F4E00003144000012
+:1059C000A7120000A7120000A7120000A7120000F3
+:1059D000A7120000A7120000A7120000A3250000D4
+:1059E000292600004526000061260000EF27000060
+:1059F0008B26000095260000D7260000F92600001F
+:105A0000D527000017280000A7120000A7120000E9
+:105A1000CB830000EB830000F58300002F8400009F
+:105A20005D8400004D850000DB850000EF850000EF
+:105A30003D86000053870000F9880000218A00009D
+:105A40004F730000398A0000A7120000A71200005F
+:105A5000D9B5000043B7000097B7000003B80000B5
+:105A6000B3B80000010000000000000010011001A8
+:105A70003A0200001A02000405060000FFFFFFFFC3
+:105A80000000FFFFCDAD0000233D000049210000D4
+:105A900099730000118F000000000000D5910000F4
+:105AA00099910000C3910000AB910000000002003A
+:105AB00000000000000200000000000000010000E3
+:105AC000000000007781000057810000C5810000C0
+:105AD00025250000E72400000725000037A9000065
+:105AE00063A900006BAB000041590000E581000094
+:105AF0000000000015820000732500000000000077
+:105B000000000000000000004DAA0000000000009E
+:105B1000D55900000300000001555555D6BE898EA9
+:105B200000006306630C631200000703AB054F0817
+:105B3000000053044308330C00000000900A0000EA
+:105B4000900A0000C3560000C35600009D430000A9
+:105B500079AC00001B7600005B2000001D380200BD
+:105B6000E1A401000157000001570000BF430000FD
+:105B7000DBAC00009F760000CD2000004938020019
+:105B8000F5A4010070017001400038005C002400A1
+:105B90005001080200000300656C74620000000000
+:105BA000000000000000000000000000870000006E
+:105BB000000000000000000000000000BE83605AEA
+:105BC000DB0B376038A5F5AA9183886C01000000D3
+:105BD000BB31010081400100000000010206030406
+:105BE00005000000070000000000000006000000A3
+:105BF0000A0000003200000073000000B400000042
+:105C0000EB8F01006F1F020017F90000D9B70100E8
+:105C1000F3F70100D9B70100B5FA000097B9010008
+:105C2000E9F3010097B90100F1F6000025B9010080
+:105C300011F7010025B9010013F90000EDB70100CB
+:105C4000D5EF0100EDB7010067FF000019BC0100AE
+:105C5000A7F8010019BC0100F401FA0096006400E5
+:105C60004B0032001E0014000A0005000200010073
+:105C70000049000000000000AAAED7AB154120107B
+:105C80000C0802170D010102090901010602091899
+:105C9000180301010909030305555555252627D683
+:105CA000BE898E00F401FA00960064004B003200B9
+:105CB0001E0014000A000500020001002549000032
+:105CC000000000009D480200B5480200CD480200D7
+:105CD000E5480200154902003D49020067490200FB
+:105CE0009B490200534502009B4402008D41020083
+:105CF00003550200395D0100495D0100755D010039
+:105D0000475E01004F5E0100615E0100A746020090
+:105D1000C1460200954602009F460200CD460200A1
+:105D20000347020023470200414702004F47020099
+:105D30005D4702006D470200854702009D47020053
+:105D4000B3470200C94702000000000087BA000004
+:105D5000DDBA0000F3BA000061500200B941020050
+:105D60007F420200E7530200255402004F54020014
+:105D7000195C010079600100DF470200054802005C
+:105D8000294802004F4802001C0500402005004041
+:105D900000100200B45D020008000020E4010000D1
+:105DA00044110000E85D0200EC01002094110000A5
+:105DB000A0110000011413F8130240200B20040668
+:105DC000441A0102228C2720FB349B5F8012800240
+:105DD0001E101B430B5419042A8608019F0916CB79
+:085DE000327F0B6CF410C000CF
+:02000004000FEB
+:104000000000042029A00F0051A00F0053A00F00B2
+:1040100055A00F0057A00F0059A00F00000000008E
+:10402000000000000000000000000000194C0F001C
+:104030005DA00F00000000005FA00F0085480F008A
+:10404000514D0F0063A00F0063A00F0063A00F008D
+:1040500063A00F0063A00F0063A00F0063A00F0018
+:1040600063A00F0063A00F0063A00F0063A00F0008
+:1040700063A00F0063A00F0063A00F0063A00F00F8
+:1040800063A00F00156B0F0063A00F0063A00F006B
+:10409000D16B0F0063A00F00D1460F0063A00F008B
+:1040A00063A00F0063A00F0063A00F0063A00F00C8
+:1040B00063A00F0063A00F000000000000000000DC
+:1040C00063A00F0063A00F0063A00F0063A00F00A8
+:1040D00063A00F0063A00F0063A00F00DD840F003A
+:1040E00063A00F0063A00F0063A00F00000000009A
+:1040F0000000000063A00F000000000063A00F009C
+:1041000000000000000000000000000000000000AF
+:10411000000000000000000000000000000000009F
+:10412000000000000000000000000000000000008F
+:10413000000000000000000000000000000000007F
+:10414000000000000000000000000000000000006F
+:10415000000000000000000000000000000000005F
+:10416000000000000000000000000000000000004F
+:10417000000000000000000000000000000000003F
+:10418000000000000000000000000000000000002F
+:10419000000000000000000000000000000000001F
+:1041A000000000000000000000000000000000000F
+:1041B00000000000000000000000000000000000FF
+:1041C00000000000000000000000000000000000EF
+:1041D00000000000000000000000000000000000DF
+:1041E00000000000000000000000000000000000CF
+:1041F00000000000000000000000000000000000BF
+:1042000010B5054C237833B9044B13B10448AFF310
+:1042100000800123237010BD688100200000000091
+:1042200088B40F0008B5034B1BB103490348AFF333
+:10423000008008BD000000006C81002088B40F00E1
+:10424000154B002B08BF134B9D46A3F5803A002168
+:104250008B460F461348144A121A00F063F80F4BAE
+:10426000002B00D098470E4B002B00D09847002021
+:10427000002104000D000D48002802D00C48AFF3C7
+:10428000008000F02BF82000290000F0A3F800F0D7
+:1042900011F800BF0000080000000420000000002A
+:1042A000000000006881002048DC002000000000C1
+:1042B0000000000008B5074B044613B10021AFF31E
+:1042C0000080054B1868836A03B19847204600F0C8
+:1042D00031F800BF0000000000AE0F0070B50D4DBA
+:1042E0000D4C641BA4100026A64209D10B4D0C4CAA
+:1042F00006F07AFD641BA4100026A64205D170BD0D
+:1043000055F8043B98470136EEE755F8043B9847CB
+:104310000136F2E76081002060810020608100208A
+:104320006481002002440346934200D1704703F8A1
+:10433000011BF9E7FEE700BFBFF34F8F0549064BAE
+:10434000CA6802F4E0621343CB60BFF34F8F00BF33
+:10435000FDE700BF00ED00E00400FA054BDF704709
+:1043600010DF704711DF704713DF704718DF7047A9
+:1043700061DF704708B5034B1B68DB0700D500BE43
+:10438000FFF7DAFFF0ED00E0014B1878704700BF4F
+:10439000858100201FB50023CDE9013303936846D2
+:1043A00002230093FFF7E2FF05B05DF804FB08B5B8
+:1043B000032000F02DFB4FF46D2000F021FD43F2AF
+:1043C0000803186800F01CFD0420BDE8084000F058
+:1043D0001FBB00002DE9F3478949002005F068FC68
+:1043E0004FF08043D3F81C95D3F81C25A9F1B100F8
+:1043F00047424741B12A00F0DF80D3F81C35A3F1D2
+:1044000064014B424B417F4D2B704FF08043D3F8FA
+:104410001C35642B00F0D2804FF080432C78D3F809
+:104420001C85794E84B9B8F14E0F0DD0D3F81C25F8
+:10443000572A09D032681168744A91420AD1D3F8D8
+:10444000004414F0010405D04FF080430022C3F86B
+:104450001C2501246E4B4FF4E022C3F840256D4B20
+:104460001B68B3F5742F02D0002002F06BFE00F041
+:1044700033FA00F02BFE002000F0CAFA00F0ACFE88
+:1044800078B1052000F0C4FA00F0B8FE08B102F0DF
+:1044900059FE00F0D9FE08B102F054FE062000F0EB
+:1044A000B7FA1CB9232000F02DF904462B78002B15
+:1044B00040F08F80232000F025F910B1122000F089
+:1044C00021F900F0010043F208032870186800F099
+:1044D00045FD824644B938B133684C4A1A604E4BA8
+:1044E0004E4843F001039847336800221A6014B91C
+:1044F000BAF1000F3CD12C78002C70D0082000F0CD
+:1045000087FAB9F1B10F01D0FFF744FF4FF47420DF
+:10451000FFF72AFF08B102F015FE414B4149186828
+:10452000019001A8FFF71CFF08B102F00BFE3E4905
+:1045300091F816335A09EC231341DA0707D53B4BA0
+:104540009A68002A47D01A6842F480021A60274607
+:104550000021287800F0D2FD08B102F0F3FD2878A0
+:10456000002846D03249002005F0A2FBFFF7FAFEF2
+:10457000232000F0C7F828B9122000F0C3F808B1D2
+:10458000FFF715FF00F0B2FA43F20803186800F0D5
+:10459000E5FC78B100F020FE60B90FB9FFF7FAFE34
+:1045A00043F2080423492268002005F02EFD20680C
+:1045B00000F0E4FDFFF7C0FE012324E74FF41834B8
+:1045C000204604F5805400F01BFCB4F52D2FF7D1E4
+:1045D00022E7012075E74FF480030B60B7E7022064
+:1045E00000F016FAA8F14E035842584103F054FA6D
+:1045F000AEE7114905F05CFB03F0BAFAB8E700BF7B
+:1046000016AE0F008581002064800020D51A5A0064
+:1046100000A000401410001010AE0F000048E80188
+:1046200004AE0F0075430F0000E100E0B4DA002093
+:104630002FAE0F0052AE0F0046AE0F0010B5FEB009
+:104640004FF4FA730DF1020101A8ADF80230FFF743
+:104650008FFE044640B9BDF80430102B07D0112B53
+:104660000CD001A801F00EF820467EB010BD054B1D
+:1046700001221A70072000F0CBF9F2E7014B187005
+:104680000820F8E78481002013B501A8FFF766FE33
+:10469000044660B9019801F0FBFF019B0A2B09D089
+:1046A000092B09D00B2B02D1012004F077F820460A
+:1046B00002B010BD2046F8E70220F6E708B5FFF784
+:1046C000BDFF0528FBD1FFF7DFFF0528F7D108BDA7
+:1046D0000021024A084602F09DBC00BFBD460F0003
+:1046E0001F2884BF00F01F00044B054A98BF4FF0FD
+:1046F000A04300F5E07043F820207047000300500D
+:104700000C0003001F288ABF064B4FF0A04300F0A7
+:104710001F00D3F8103523FA00F0C04300F0010069
+:10472000704700BF0003005000234FF0FF3283604A
+:10473000C0F80035C0F86025C0F86425C0F86825C9
+:10474000C0F86C2540F2FF32C0F80435C0F80825E7
+:10475000C0F80C35C0F81035C0F81435C0F8203555
+:10476000C0F82435704700001B4B00221F2930B5CC
+:10477000C3F800258BBF01F01F030B46174A4FF00B
+:10478000A04203F5E074032542F82450012404FA02
+:1047900003F3C2F80C3500F5AC700F4B002243F860
+:1047A0002010FF21C3F804250220C3F808150421B6
+:1047B000C3F80C15C3F810050948C3F81425C3F84D
+:1047C0002005C3F82415C3F82825C3F82C25C3F801
+:1047D0000045C3F8102130BD00C001400003005067
+:1047E0007C8300200148FFF79FBF00BF00C001404D
+:1047F000074B23F81010074B00221A6082B01B6889
+:104800000193019B044B01221A6002B0704700BF64
+:104810007C83002010C1014008C0014010B5164B38
+:104820001C68164B1B68B4FBF3F1580803FB1142DC
+:10483000824288BF9A1A4F215143B1FBF0F1C1F176
+:10484000FF0189B20020FFF7D3FF0D4B1A68B4FBBC
+:10485000F2F1500802FB1143834288BFD31A8F2123
+:104860005943B1FBF0F1C1F1FF0189B20120BDE86C
+:104870001040FFF7BDBF00BF78830020B883002041
+:10488000C0830020024A136801331360FFF7C6BFDC
+:10489000788300200F4B00221421C3F80C25C3F8A5
+:1048A0000425C3F80815C3F81425C3F81025C3F868
+:1048B0002825C3F82C250922C3F860254FF0FF32C4
+:1048C000C3F86425C3F86825C3F86C250122C3F832
+:1048D000002570470010024038B54FF08043012496
+:1048E0000025DC602320C3F818559C60FFF7F8FE14
+:1048F0001220FFF7F5FE184B4FF4C850234398479A
+:1049000021212846FFF730FF22212046FFF72CFF08
+:10491000FFF7C0FF114A1E21082002F057FB08B123
+:1049200002F010FC02F0BAFA0D490E4BE02081F8BB
+:1049300023001B684FF47A72B3FBF2F3013BB3F12F
+:10494000807F07D2084A5360002381F823009360D8
+:104950000723136038BD00BF80AE0F0088810020A0
+:1049600000ED00E04481002010E000E0F0B585B0EB
+:1049700043788DF8043083788DF805302149037829
+:104980008DF8063001AD082248F20D0648F2060700
+:10499000A2F1080315F801CB9BB280241CEA040F96
+:1049A00014BF3046384621F81300581C80B290429C
+:1049B0004FEA540424D1083292B2202AE8D10233BB
+:1049C0009BB24FF400420A8621F813200E4B1A22A4
+:1049D000C3F82015C3F8242503F5887300221A6054
+:1049E0001A680292029A094A012111601A68002A83
+:1049F000FCD000221A601B680393039B05B0F0BD36
+:104A00000346CBE7848300200010024008100240D8
+:104A100037B5234C002225680095019208281AD842
+:104A2000DFE800F00C050C19191308292D004FF4CC
+:104A30007F4300931B4B40F6B8320BE04FF47F03EB
+:104A40000093184B4FF4967204E04FF47F030193E8
+:104A5000144B64221A60009B1349019A0B40009387
+:104A600092B10A40114B019201221A7001A8FFF77E
+:104A70007DFF03B030BDFF2300930D4BDBE74FF00C
+:104A8000FF1300930A4BDDE79D4202D02360684686
+:104A9000EDE7064B1B78002BEBD00148E7E700BFA2
+:104AA000BC830020B883002004040400C4830020D9
+:104AB000C083002013B50B4C0023ADF804308DF8F3
+:104AC000063044F001044FF44860A04701A8FFF706
+:104AD0004DFF4FF44860A0470348FFF725FE02B0A2
+:104AE00010BD00BF80AE0F000010024008B50E4B95
+:104AF00000221A60FFF776FEFFF7DCFF0B4B4FF446
+:104B00000032C3F8802003F1C04303F53C534FF457
+:104B10008032C3F84823C3F8082301225A609A6000
+:104B20004FF08043DA6008BD10E000E000E100E0F3
+:104B300038B50C4C21684B1C054612D04FF48052FE
+:104B4000094805F025FC48B115B1206800F058F976
+:104B50004FF480620449206800F078F94FF0FF3389
+:104B6000236038BD68800020C88300202DE9F84309
+:104B700020F47F6424F00F04104E05460F46904643
+:104B80000F4922460020994605F03FFA3368A342B8
+:104B900009D04846FFF7CCFF4FF480522146094820
+:104BA000346005F003FC0748C5F30B05424639465F
+:104BB0002844BDE8F84305F0F9BB00BF6880002039
+:104BC00086AE0F00C883002038B50C46F8B90968D6
+:104BD000D9B1104A914215460CD0531A3B2B12D929
+:104BE0003C22284605F0E2FB04E0C85CD05413F1F7
+:104BF000FF33FAD200223C21064802F0EBFA0023F0
+:104C0000A887236038BD3D23F1E70E23F9E7012390
+:104C1000F7E700BF807F00206FF00203064A9E4541
+:104C200002D1EFF3098101E0EFF308818869A0F177
+:104C300002000078104700BFC94B0F000B2970B568
+:104C40000446154630D90389053300EB430301447C
+:104C5000CA1AD2B2012A27D98B4225D8194613483D
+:104C600005F0A4FB2388522B06D1AB0711D0628834
+:104C70004CF668639A420CD00F2014E034F8022BF3
+:104C8000824204D02E88964203F1010308D100200D
+:104C900009E0218900230A344FF6FE7043F20C0527
+:104CA0009942EBD80B2070BD0920FCE7C893002087
+:104CB00008B5002202F08EFA044A5178137843EACC
+:104CC0000123984214BF0B20002008BDC893002088
+:104CD00000F180431A68002A1BBF00220120002037
+:104CE0001A6070470F4B1A78D2B902784FF08041A2
+:104CF000C2F34002C1F88025027802F00102C1F837
+:104D00007825094A1168C90706D4E02182F8001302
+:104D10000121C2F88011116001221A700348704706
+:104D200003487047B0DA002000E100E00000AD0B5E
+:104D30000C00AD0B014B02681A607047DC93002039
+:104D40004FF080434FF46072C3F8042370470000B3
+:104D500010B54FF08043D3F80443620707D54FF4F2
+:104D60008470FFF7B5FF10B11E4B1B689847A30670
+:104D700008D54FF48A70FFF7ABFF18B11A4B00202B
+:104D80001B689847600608D54FF48C70FFF7A0FFAA
+:104D900018B1154B01201B689847210608D54FF420
+:104DA0008E70FFF795FF18B1104B00201B689847D5
+:104DB000E20508D54FF49070FFF78AFF18B10B4B4E
+:104DC00001201B689847A3050AD54FF49270FFF79E
+:104DD0007FFF28B1054B02201B68BDE81040184733
+:104DE00010BD00BFD4930020D8930020DC93002096
+:104DF000024AD2F80034002BFBD0704700E001409B
+:104E000010B50F490446002004F052FF22460D4918
+:104E1000002005F0FAF80C490223C1F80435BFF36D
+:104E20006F8FBFF34F8FC1F80845FFF7E1FF0023F5
+:104E3000C1F80435BFF36F8FBFF34F8F10BD00BFB4
+:104E400095AE0F00ACAE0F0000E0014070B5064615
+:104E50000C4600201249154604F02AFF1149002093
+:104E600004F026FF104B0122C3F80425BFF36F8F17
+:104E7000BFF34F8F04EB8505361BAC4208D10A4BBC
+:104E80000022C3F80425BFF36F8FBFF34F8F70BDAF
+:104E9000331954F8042B1A60FFF7AAFFEDE700BF9F
+:104EA000BBAE0F00EFAE0F0000E0014011DF704716
+:104EB00013DF7047064B1878012803D1012904BF7E
+:104EC0000221197012B1104602F03CB9704700BFC0
+:104ED0000C94002070B5124C124D134ED4F80034CF
+:104EE0007BB1C4F80056C4F80456C4F80856C4F898
+:104EF0000C56C4F81056C4F81456C4F81856C4F822
+:104F00001C5602F0EDF804F0FDFD20B103F00EFE9A
+:104F1000002004F029F93378023B022BDED870BD63
+:104F2000000001403546526E0C94002008B5FFF792
+:104F30002BFA4FF47F20FFF763FF072205494FF458
+:104F40007F20FFF783FF044B1A78012A04BF022257
+:104F50001A7008BD109400200C94002007B5036857
+:104F6000013303D1002003B05DF804FB01A800F079
+:104F700099F9019B1A88012AF4D1588830B19968AF
+:104F800043F208030022186802F024F9019B5B88B1
+:104F90001B1A58425841E6E784B02DE9F34108ACAA
+:104FA00084E80F009DF82040BDF822800B9D01A8E9
+:104FB000DDE9097600F076F954B9384B0122FF217A
+:104FC000A3F802809D601A809980354B1A7012E018
+:104FD000012C17D1314BBA192A449A60A5221A80A4
+:104FE000FF229A800C9AA3F80280C3E903765D61E0
+:104FF0009A612B4B1C70FFF799FF02B0BDE8F0419E
+:1050000004B07047032C0FD1019A244B11881980EA
+:10501000518892689A60C3E90376AA2259809A80DF
+:105020005D611F4B0122D1E7022C15D1019A1B4B68
+:105030001188A5290AD100229A60FF221A60FF2256
+:105040009A800022C3E903225A61EAE71980518855
+:10505000926859809A60F2E7052C0ED1FFF794F917
+:1050600040B100F045FC08B102F06CF80C4B032293
+:105070001A70C2E700F00CFAF5E7042C08D1074BD0
+:1050800000229A60FF221A60019A92889A80B2E701
+:10509000062CB2D1024B0422EAE700BF1094002094
+:1050A0000C94002000B5084B1B7889B043B9052348
+:1050B0008DF80C30079B009303AB0FCBFFF76CFF11
+:1050C00009B05DF804FB00BF009400201FB5002369
+:1050D000CDE90233074B019301F02EFB30B90649AD
+:1050E0004FF47F2301A84B6001F048FB05B05DF849
+:1050F00004FB00BFB54E0F000494002070B50546B8
+:105100000E460020174904F0D3FD01F007F80446CD
+:1051100030B93DB100F008FE134B022204461A706C
+:10512000204670BDBEB1114B114A12481D70294670
+:1051300001F0E4FE4FF400444FF4FA7000214FF404
+:105140007A720023E4FB060104F08CFF2A46014634
+:10515000094801F0E5FE00F077F90446FFF7BAFED2
+:10516000DEE700BF30AF0F000C9400200094002059
+:10517000A5500F0008AF0F00E093002038B5144988
+:10518000002004F095FDFFF791FE08B101F0DAFF71
+:1051900010490D680023012404FA03F22A4207D0C3
+:1051A0005A0903F01F00203204FA00F041F82200EF
+:1051B0000133302BF0D143F208042068FFF778FE6A
+:1051C00008B101F0BFFF2068BDE8384000F08EB89C
+:1051D0000CAF0F0000E100E007B501A800F062F895
+:1051E000019B1A88A52A07D09888A0F1AA035842E3
+:1051F000584103B05DF804FB0120FAE710B501F057
+:10520000A1F9A8B10E4B0F4843F00103984701F0F4
+:1052100019F908B101F096FF01F094F908B101F015
+:1052200091FF01F057F9044638B101F08BFF04E01B
+:1052300001F06AF904460028E4D1204610BD00BF01
+:1052400050AF0F0000A8610000B589B003AB142275
+:1052500000211846FFF766F802228DF80C20002284
+:1052600000920FC8FFF798FEFFF734FE002009B048
+:105270005DF804FB13B5044601A800F013F8019B88
+:105280001A8822805A8862809A68A2609A88A280CE
+:10529000DA68E2601A6922615A6962619B69A361F6
+:1052A00002B010BD014B0360704700BF00F00F005B
+:1052B000F0B50346186880F308885868FF2464B284
+:1052C000EFF30585002D01D1A64600472546064689
+:1052D00021273FBAF0B40024002500260027F0B4AF
+:1052E000F92040B2004700BFF0BD00BFFFF7E0BFAC
+:1052F00073B500230DF1020101A8ADF8023001934E
+:1053000002F09EFBF8B9019C25785DB3174B93F82A
+:105310003020032A28D00C2606FB00F29958E9B960
+:1053200098189D5093F830200132D2B283F8302083
+:10533000BDF802300E4A9B08013B04344360846090
+:10534000084601F067FE019B33B128B1184602F010
+:1053500093FB08B101F0F6FE02B070BD01300428E5
+:10536000DAD1F0E70720EEE70420ECE72C940020E8
+:10537000B9530F0010B50C230B4A4343D418D1582E
+:1053800081B192F83010A0680139C9B282F83010AA
+:105390000021D150C4E90111043802F06DFB08B1BD
+:1053A00001F0D0FE002010BD2C94002011B1084661
+:1053B00001F0C8BE70470000214B70B50122214E9C
+:1053C0001A7096F8303003B970BD1E4C0025236862
+:1053D00083B1013B042B07D8DFE803F01C0612035E
+:1053E0002800204600F03AFFE8B2FFF7C3FF08B1FB
+:1053F00001F0A8FE0135042D04F10C04E7D1E0E72B
+:10540000A3686360204600F0D3FE0028ECD001F0D2
+:1054100099FEE9E7204600F0A9FF00F085FF08B1FA
+:1054200001F090FE0520FFF7F3FADDE700F0CEFF74
+:1054300000F0F0FF0620BDE87040FFF7E9BA00BFBA
+:10544000009400202C94002008B50E4B002283F815
+:10545000302011460132042A1960C3E9011103F119
+:105460000C03F7D1084800F09DFE02F081FA08B164
+:1054700001F068FE054802F067FA08B101F062FE2B
+:10548000002008BD2C940020AD530F00F1520F00F6
+:1054900008B50020FFF76EFF0120FFF76BFF022029
+:1054A000FFF768FF0320FFF765FFBDE8084002F043
+:1054B000A7BA6EDF70476FDF704772DF704773DF28
+:1054C000704774DF704776DF704777DF70477FDFA4
+:1054D000704786DF70478FDF704790DF7047AFDF20
+:1054E0007047B0DF7047B1DF7047B2DF7047B5DF9C
+:1054F000704764DF704766DF70470000F8B50A4CFC
+:10550000A3889E181D2E15460DDC2768FE1802F193
+:10551000010C07F803C07070B01C04F047FFA288AC
+:1055200002322A44A280F8BD80940020F0B54A4D92
+:105530002C7893B0002C40F08A80484E10222146EF
+:105540003046FEF7EFFE464B3360182221460CA88A
+:10555000FEF7E8FE28230E93424B1B7801278DF8B7
+:10556000307006AE002B74D021463F4C102202A8AA
+:10557000FEF7D8FE102202A9E01D04F009FF002862
+:1055800067D03A4839460460FFF793FF08B101F04D
+:10559000D9FD374B374603F1100C186859683A4665
+:1055A00003C2083363451746F7D12068A2880A90E2
+:1055B0003048A379ADF82C20002101228DF82E303F
+:1055C0000660FFF778FF08B101F0BCFD03238DF8FA
+:1055D000443004238DF8063041F23053ADF80830E2
+:1055E000254B32469B798DF80A300DF1070102A850
+:1055F000FFF77FFF012210460DF10601FFF77EFF46
+:105600001E4804F0DBFF1D49C2B20920FFF776FFF8
+:10561000102231460620FFF771FF0CAA0F491848E7
+:10562000FFF74BFF08B101F08DFD154C04222178E6
+:105630000120FFF74AFF08B101F084FD0121207825
+:10564000FFF73DFF08B101F07DFD01232B7013B082
+:10565000F0BD0623BEE700BF049500208094002023
+:1056600060940020CC940020909400200C950020A1
+:105670009794002000950020D094002056AF0F0092
+:105680006C800020F0B504460146B1B08E4801F0B0
+:10569000D3F82388212B00F0048142D8112B00F08D
+:1056A0009C8007D8012B00F0BE80102B00F08E806C
+:1056B00031B0F0BD142B00F0D4801A2B5BD0132B2B
+:1056C000F6D1824B03AC9A79186899888DF822201C
+:1056D0000790DA1DADF82010173326461068516880
+:1056E000254603C508329A422C46F7D1784B09AAC1
+:1056F00003F11807154618685968144603C408339F
+:10570000BB422246F7D1186820607248724A00886E
+:1057100010AB8521CDE91456FFF7D9FE0028C7D07C
+:10572000B5E0512B00F085801ED8232B00F0B2800D
+:10573000262BBDD1237A012BBAD1684B00221A70D7
+:10574000674B196801391960002969D110AB14221F
+:105750001846FEF7E7FD05228DF84020149A0092C6
+:105760000FC8FFF719FCA3E7552B00F0A380562BB9
+:105770004CD0522B9CD1574B1C884FF6FF75AC4236
+:1057800000F08480574B1B78002B79D0012308222E
+:1057900055492046FFF7A7FE002878D1024601466A
+:1057A00002232046FFF79FFE002870D12A460C21D5
+:1057B0002046FFF794FE43F2020398423FF478AF8D
+:1057C00008283FF475AF1128A8D171E7414BA28892
+:1057D0001A80424B00221A706AE78023ADF8243009
+:1057E0003C4C3F4B208832221A6010A9012309AAA1
+:1057F000FFF77BFE08B101F0A5FC3C4B1B780BB911
+:10580000FFF794FE4FF6FF73238051E7A379002B37
+:105810007FF44EAF2F4B13211888FFF754FE7DE71E
+:10582000FFF784FE44E72B4B00211888FFF763FE47
+:1058300074E7A379002B3FF43BAFA27B043A022A22
+:105840003FF636AF022B18BF01238DF840304FF4DE
+:10585000C173ADF844301F4B10A91888FFF741FE03
+:105860005CE71A4A258A518D02F1180000238D4207
+:105870000CBF014619460732A088FFF72AFE4DE704
+:105880001A4619462046FFF72EFE47E7082001F08A
+:1058900059FC0DE70F4B002211461888FFF71DFE3B
+:1058A0003CE70023ADF840300A4B10A91888FFF7F9
+:1058B00012FEFDE6E188074BF72928BFF72118887B
+:1058C000FFF715FE2AE700BFD09400209094002037
+:1058D000A89400206E8000200595002004950020EB
+:1058E00070800020CC940020C49400200A950020F1
+:1058F00010B50F4B01221A700E4B18884FF6FF732C
+:10590000984207D01321FFF7DEFD08B101F01AFC21
+:10591000002010BD084C2278002AF9D0074B1878D7
+:10592000FFF7CFFD08B101F00DFC00232370EFE776
+:105930000A9500206E800020049500206C800020D5
+:1059400011DF70471F2886BF00F01F00044A4FF088
+:10595000A042012303FA00F0C2F80C05704700BF13
+:10596000000300501F4B204A1B6800BF00BF00BF50
+:1059700000BF00BF00BF00BF00BF93422FD000BFD9
+:1059800000BF00BF00BF00BF00BF00BF00BF00BF1F
+:1059900000BF00BF00BF00BF00BF00BF00BF00BF0F
+:1059A00000BF00BF00BF00BF00BF00BF00BF00BFFF
+:1059B00000BF00BF00BF00BF00BF00BF00BF00BFEF
+:1059C00000BF00BF00BF00BF00BF00BF00BF00BFDF
+:1059D00000BF00BF00BF00BF00BF00BF00BF013855
+:1059E000C3D17047448100200024F4001F2886BFE3
+:1059F00000F01F00044B4FF0A04300F5E0700322BD
+:105A000043F82020704700BF000300501F2886BFC6
+:105A100000F01F00044A4FF0A042012303FA00F0F7
+:105A2000C2F80805704700BF000300501D4B00225C
+:105A300070B51D4CC3F8002520681C4D1C4EFFF7A7
+:105A4000E5FF2068FFF7D2FF1A490868FFF7DEFF7D
+:105A50000B681F2B86BF03F01F03174A4FF0A042AD
+:105A600003F5E073042042F823002868FFF7CEFF17
+:105A70002868FFF7BBFF3068FFF7C8FF3068FFF703
+:105A8000B5FF084B0A682D682068C3F80855C3F8AD
+:105A90000C05C3F810250022C3F85425074AC3F8A3
+:105AA000242570BD003000407C80002080800020D4
+:105AB00084800020788000200003005000093D0011
+:105AC000074B0122C3F800250022C3F8082103F583
+:105AD000847382B01B680193019B02B0704700BFC2
+:105AE00000300040084B094AC3F81C0582B0116819
+:105AF0000029FCD0D3F81805002313601368019324
+:105B0000019BC0B202B07047003000400831004035
+:105B100010B5064C01462068FFF714FF0846FFF752
+:105B2000E1FF2068FFF772FF012010BD8480002094
+:105B3000F8B5114C074620680D461646FFF702FFE0
+:105B40000320FFF7CFFFC7F30740FFF7CBFFC7F3F3
+:105B50000720FFF7C7FFF8B2FFF7C4FF2E44B54296
+:105B600004D12068FFF752FF0120F8BDFF20FFF7A6
+:105B7000B9FF05F8010BF2E784800020F8B50C4C62
+:105B8000074620680D461646FFF7DCFE3846FFF74D
+:105B9000A9FF2E44B54204D12068FFF737FF01204A
+:105BA000F8BDFF20FFF79EFF05F8010BF2E700BFED
+:105BB0008480002007B501220DF107010520FFF7C1
+:105BC000DDFF9DF8070003B05DF804FB08B5FFF7A3
+:105BD000F1FF8307FBD108BD70B5144605460E469C
+:105BE000FFF7F4FF630A6A0A0649002004F00DFA81
+:105BF000224631462846FFF79BFF002814BF204667
+:105C0000002070BD91B00F0008B5FFF7D3FFC307A8
+:105C1000FBD46620FFF77CFF9920FFF779FF1E2059
+:105C2000FFF7A0FE0420FFF773FFBDE80840FFF771
+:105C3000CDBF000010B588B005A909220020FFF7EC
+:105C4000CBFF9DF8183002939DF8173001939DF813
+:105C500016309DF8142000930A499DF81530002055
+:105C600004F0D3F905A804F07FFB0749044600209F
+:105C700004F01EF822460549002004F0C6F920462B
+:105C800008B010BD75B00F006CB00F008EB00F00E3
+:105C90002DE9F041470ADFF88880ADF5067D04461E
+:105CA0000137002501264FF4007206A97002FFF7A4
+:105CB00093FF06AB05F50072AC4207D9D8F8001087
+:105CC00013F8010B48550135AA42F5D1BE4206F141
+:105CD000010320D31149002003F0EAFF104B19689B
+:105CE00008194B7810F8014C0A78059410F8024C0A
+:105CF000049410F8034C039410F8040C0290C87834
+:105D00000190897800910020064904F07EF90DF594
+:105D1000067DBDE8F0811E46C5E700BF5DAF0F0000
+:105D200010A5002077AF0F002DE9F74F4C494D4FDC
+:105D30004D4C002003F0BCFFFFF778FE4B490020DC
+:105D400003F0B6FFFFF7BCFE4949002003F0B0FFA7
+:105D5000FFF75AFF4749002003F0AAFF6420FFF72E
+:105D600001FEFFF733FFFFF765FF4249386000206F
+:105D700003F09EFF256865B9386804F0F9FA3A68BF
+:105D800020602946FEF7CEFA206810B93A4903F0A0
+:105D90008FFF3868DFF800B1FFF77AFFFFF7D0FD1B
+:105DA0000026B0463D68B54211D8206818B104F00D
+:105DB000E7FA00232360314B31490024C3F8004542
+:105DC000204603F075FF204603B0BDE8F08FAD1B01
+:105DD000B5F5007F08F5183A28BF4FF400752AF48E
+:105DE0007F692B4629F00F0932462649002004F02E
+:105DF0000CF94A465946002004F007F9224B1A686C
+:105E00004A450BD00020FEF793FE1F4B1F48C3F8F6
+:105E100000904FF40072494604F0C8FADFF86C9025
+:105E20001B494FF48053CDE900834A464FF41833A1
+:105E3000002004F0EAF8C8F30B024A441549002098
+:105E400004F0E3F821682A4631445046FEF7FEFF8D
+:105E50000A20A844FFF786FD06F50076A2E700BFFA
+:105E6000A3AF0F0014A5002010A50020DAAF0F008B
+:105E7000F8AF0F006CB00F0008B00F00003000400A
+:105E80005DB00F0018B00F00748000201095002046
+:105E900045B00F0057B00F0086AE0F0018DF7047F7
+:105EA0000129F8B50D4614461F4607D0032912D024
+:105EB00014B32046BDE8F84001F044B90F4B1B78FD
+:105EC000052BF5D10E4B1B68002BF1D03A4621462D
+:105ED00004209847ECE7094E3378022BE8D1094BB0
+:105EE0005B689847064B35701E68002EE0D03A4636
+:105EF00021462846B047DBE7F8BD00BF20A50020BB
+:105F000018A5002044A5002000B5084B89B0012247
+:105F10001A7005238DF80C30079B009303AB0FCB51
+:105F2000FFF73AF809B05DF804FB00BF21A5002097
+:105F300000B589B003238DF80C300A4B1B88ADF8EF
+:105F40000E30094B5A6804929A68DB680693079BE7
+:105F50000093059203AB0FCBFFF71EF8002009B0AA
+:105F60005DF804FB50A500209CA5002000B589B079
+:105F700001238DF80C300B4B1B88ADF80E3043F22B
+:105F800008031A68084B596804919968DB680693FE
+:105F90000591009203AB0FCBFEF7FEFF002009B086
+:105FA0005DF804FB50A500209CA5002000B589B039
+:105FB00003AB142200211846FEF7B4F904228DF831
+:105FC0000C20002200920FC8FEF7E6FF09B05DF832
+:105FD00004FB000030B589B003AC14220021204638
+:105FE000FEF7A0F9094B1B88ADF80E30084BDB68B3
+:105FF00006930025079B8DF80C50009394E80F0042
+:10600000FEF7CAFF284609B030BD00BF50A50020EA
+:106010009CA50020194B1A4A73B51A60194B02222D
+:106020001A70FEF7B1F9184B1B681D0BC3F30B0375
+:10603000B0B103B10135002443F20806AC4208D1E7
+:10604000002300931A4603210D48FFF729FF02B0F1
+:1060500070BD306800EB0430FEF7D2FE0134EDE78E
+:1060600003B10135002443F20806A542E8D03068A8
+:1060700000EB0430FEF7C4FE0134F6E7B4A50020BF
+:10608000ACA5002020A5002054A5002010B50B4B86
+:106090001B788BB90A4800F089FF08B101F052F86B
+:1060A00000224FF41601064800F03AFF044608B1FA
+:1060B00001F048F8204610BD0824FBE721A5002088
+:1060C00024A500207FB50C4603210546CDE900102C
+:1060D0009608684602940396FFF7E0FED8B1B4F53F
+:1060E000805F11D801236846CDE90035CDE902462D
+:1060F000FFF7D4FE78B903236846CDE90035CDE932
+:106100000246FFF7CBFE06E01A46E11AE81AFFF74F
+:10611000D9FF0028E6D004B070BD0000F0B585B00E
+:10612000174B0193174B184F184E00241C70184B37
+:10613000394601A8CDE902441C8000F01FFB05464A
+:1061400018B13470284605B0F0BD43F2080301468B
+:106150001B68104A10487B6000F0D0FE08B100F0C8
+:10616000F1FF00224FF416010C4800F0D9FE08B1EF
+:1061700000F0E8FF0A4B00221A6001233370E1E7C8
+:10618000A15E0F0098A50020ACA5002020A500204E
+:1061900050A50020095F0F009CB00F0024A500202F
+:1061A0001CA50020014B1860704700BF18A50020F7
+:1061B00070B54368204C0FCB84E80F00227851075C
+:1061C00001D5930731D163689E072ED1A1688D0751
+:1061D0002BD1E068840728D10B44184E0344B1F555
+:1061E000304F336023D843F208010968C1F56D21AF
+:1061F0008B421CD8124D134B2B60D107124B6B6096
+:106200000ED5124BAB60124B1B78012B11D1FFF74F
+:106210003DFF044610B92B6830689847204670BD92
+:1062200093074CBF0B4B0C4BECE70624F6E70C2412
+:10623000F4E70824F2E700BF9CA5002054A5002045
+:1062400044A5002015600F00AD5F0F006D5F0F00CB
+:1062500020A50020315F0F00D55F0F002DE9F34727
+:106260008046002850D083689B074FD12A4B1B786B
+:10627000052B4DD1294F4568294E3B683268AD004A
+:106280002B449342B94607D94FF0FF333B600C24AF
+:10629000204602B0BDE8F087FFF7F8FE044600286C
+:1062A000F6D1D8F80880DFF87CA0FEF76DF848B189
+:1062B0003B68DAF800002A46414600F073FAA0B1C4
+:1062C0000446E5E743F20803D9F800001F682A46B0
+:1062D000234641463844FEF749FC00954346224692
+:1062E0000121DAF80000FFF7DBFDD9F800301D448A
+:1062F0003368C9F800509D420CD1FEF745F80028DC
+:10630000C6D1FEF715FCC3E70E24C1E71024BFE792
+:106310000824BDE70924BBE720A500201CA5002018
+:1063200054A50020B4A5002070B50B4B1D6885B99D
+:106330000A4E3378042B0CD1094C0A4B21781A7879
+:106340000948FEF77BFC10B90523337070BD25703A
+:10635000FCE70820FAE700BF1CA5002020A50020CC
+:1063600098A500209CA5002058A50020F8B5134B47
+:106370001A78032A074603D0042A03D0082419E018
+:1063800004221A700E4B1B68002BF7D1FFF77EFE1C
+:10639000044678B90B4E7D683378AD005A19402A0F
+:1063A0000AD80948B9682A46184403F0FFFF337831
+:1063B0001D4435702046F8BD0924FBE720A50020C8
+:1063C0001CA5002098A5002058A5002038B50D4C2C
+:1063D0002378052B14D10C4B0C4D1A682B689A426C
+:1063E0000ED106232370FFF751FE40B9084B2968F0
+:1063F0001B685868FEF75CFC08B90723237038BD9A
+:106400000820FCE720A500201CA5002054A50020A2
+:10641000B4A5002010B5084B1B78072B0AD10748FC
+:1064200000F0C4FD08B100F08DFE054BBDE8104042
+:106430009B681847082010BD20A5002024A5002037
+:1064400044A5002010B58CB005A8FEF713FF089AEC
+:10645000002A3BD00B9C02F58053A3422AD91C4949
+:10646000A4F5805301EA530343F2080109688A4204
+:1064700008D85800121A00F580512044FFF722FE78
+:106480000CB010BD03F580500121CDE90110CDE91C
+:10649000030101A8FFF702FD0028F1D14FF480505D
+:1064A000CDE9020001A801910491FFF7F7FC002853
+:1064B000E6D1DEE70123CDE9013492084FF48053A1
+:1064C00001A803930492FFF7E9FCD9E71046D7E748
+:1064D00000F0FFFF00B58DB005A8FEF7CBFE0998D0
+:1064E00060B1089B6BB943F208031B688008002267
+:1064F000039001A8CDE90123FFF7D0FC0DB05DF8B2
+:1065000004FB0B9A1344F1E700B58DB005A8FEF724
+:10651000B1FE099878B1089B83B943F208031B6860
+:106520000393800803214FF47422049001A8CDE95D
+:106530000112FFF7B3FC0DB05DF804FB0B9A134496
+:10654000EEE7000030B58DB005A8FEF793FE089881
+:10655000A8B10B9C00F58053A34212D943F2080363
+:106560001B68984219D80E4BA4F5805203EA5203D7
+:106570005D00421B05F580516019FFF7A3FD0DB0CA
+:1065800030BD800803224FF48053049001A8CDE968
+:1065900001230394FFF782FCF1E70E20EFE700BF31
+:1065A00000F0FFFF29DF704728DF704737B54B68E1
+:1065B000CA6800930C46054B53F822504B6914F8F7
+:1065C0000C1B02462046A84703B030BDB8A50020EA
+:1065D00038B5184C2378182202FB03431A795D69F9
+:1065E000012A03D0032A19D00F2038BD124A996915
+:1065F00010689A68DB680003121AB2F5805F1D44C8
+:10660000014438BF9208284428BF4FF48062FFF746
+:10661000C9FF0028E9D10123A370E6E74FF08053BA
+:106620001869054B80B2B5FBF0F518682844FFF7F0
+:10663000BBFFEEE7C8A50020C0A6002070B5134D33
+:106640006C780A2C1FD02E783444E4B2092C84BF15
+:106650000A3CE4B2182606FB0454A261207103C967
+:10666000A360049BE360AB7804F1100282E80300AE
+:1066700023B100206B7801336B7070BDFFF7A8FF6A
+:106680001128F7D1F5E70420F7E700BFC8A50020DF
+:10669000F8B527498B780C462BB1002602288E705E
+:1066A00002D003283AD0F8BD0D78224A182101FB08
+:1066B0000541136889680133B1EB033F13601BD8B0
+:1066C00063781660013B63706B1CDBB218270426ED
+:1066D000092B17FB056188BFA5F1090321440020A0
+:1066E0002370FFF763FF07FB05430022C3E9046241
+:1066F0001A719A609A61DA606378002BD3D0A3781C
+:10670000002BD0D1FFF764FF0028CCD01128CAD0CD
+:106710002178182303FB0141043105E00B7818228E
+:1067200002FB031104310D20BDE8F840FFF73EBF26
+:10673000C8A50020C0A600200C4B00221A600C4BFC
+:106740000A201A809A70042101381A719A60C3E9EC
+:1067500004129A61DA6003F11803F5D1054B186051
+:10676000054BC3E90000C3E902007047C0A6002042
+:10677000C8A50020BCA60020B8A50020074A1368C1
+:10678000042B1FBF0B60591C1160054A1DBF016817
+:1067900042F8231000201846704700BFBCA6002016
+:1067A000B8A5002013B5CC180C43A40708D100935A
+:1067B00013460A4601460120FFF740FF02B010BD14
+:1067C0001020FBE7ADDF7047AEDF7047B0DF7047EA
+:1067D00030B5044687B038B300884FF6FF7398424F
+:1067E00024D0134B1B780BB3124D10236970032177
+:1067F000ADF80610AA7000211A4602A82B70FDF70A
+:1068000091FD238AADF8083001238DF80A3000236A
+:10681000ADF80C3002A90DF106032088CDE904354E
+:10682000FFF7D2FF07B030BD0E20FBE70820F9E7E5
+:10683000C4A60020C5A6002070B50D4688B0044649
+:1068400040B139B1826A2AB10B88112B59D003D8D3
+:10685000102B43D008B070BD502B42D0512BF9D132
+:106860008B79022BF6D10A89038A9A42F2D18B7B6B
+:10687000043B022BEED99DF8163043F001038DF84E
+:1068800016300B8AADF818304B8AADF81A30022654
+:1068900001F114030822002101A807938DF810606C
+:1068A000FDF740FD01AAA18A20880196CDF808D005
+:1068B000FFF788FF034638B3E36A03B1984740F215
+:1068C000FD1304A92088ADF81430FFF77FFF0028DE
+:1068D000C0D0E36A002BBDD09847BBE78B882380EC
+:1068E000B8E7C98803899942B4D108238DF81030DC
+:1068F000123535F8023C8DF81830059504A99047FB
+:10690000A8E74FF6FF73EAE79DF800202088D2073A
+:10691000D5D504A9ADF81430FFF758FF0028D8D119
+:10692000297D4B1E072B41D8DFE803F0041A2327EB
+:10693000292B3E2D00238DF804306B8A012B05D8BE
+:10694000062201212046FFF743FFC0E7012315354A
+:106950008DF80C300295A36A01A92046984779E783
+:106960006A8A01239A428DF80430F0D80622022167
+:10697000E8E702238DF80430EDE70323FAE7042368
+:10698000F8E70523F6E76B8A022B02D803220821D9
+:10699000D8E7AA7D6B7D43EA0223002BADF80830CF
+:1069A0000CBF07230623E5E70923E3E70322C9E732
+:1069B000094A537891780133DBB2994208BF00232A
+:1069C000117899421FBF03705078182303FB0020F1
+:1069D00014BF043000207047CCA60020082910B551
+:1069E000044602D0002000F0ADFBD4E90030BDE841
+:1069F0001040184773B5054600240DF107000E46F8
+:106A00008DF8074000F0ACFB0DF10600FFF7D0FF5A
+:106A100090B10670094B9DF8062045605A709DF8AC
+:106A2000070000F0C1FB24B9054B4FF48012C3F8F6
+:106A30000021204602B070BD0424F0E7CCA600205F
+:106A400000E100E0204B21491A682F2300BF00BF5E
+:106A500000BF00BF00BF00BF00BF00BF8A422FD0F1
+:106A600000BF00BF00BF00BF00BF00BF00BF00BF2E
+:106A700000BF00BF00BF00BF00BF00BF00BF00BF1E
+:106A800000BF00BF00BF00BF00BF00BF00BF00BF0E
+:106A900000BF00BF00BF00BF00BF00BF00BF00BFFE
+:106AA00000BF00BF00BF00BF00BF00BF00BF00BFEE
+:106AB00000BF00BF00BF00BF00BF00BF00BF00BFDE
+:106AC000013BC3D1704700BF448100200024F40083
+:106AD0000C4B0D484FF4003210B5C3F88020012450
+:106AE0004FF48033C0F84833C0F808334460FFF7F0
+:106AF000A9FF064B846000201860FFF7A3FF044B3A
+:106B0000187010BD00E100E000100140E8A700206F
+:106B1000D9A700202DE9F3412549264B0025C1F8CE
+:106B20004051C1F84451C1F84851C1F84C51C1F825
+:106B30000051C1F804511B68002B34D0D1F8044532
+:106B40001D49DFF888800968641A24F07F442F46C5
+:106B50001A68A24212D8A41A15441A7CDE6962B1DE
+:106B60005A691F7400929B69019342460821684646
+:106B700000F050FA08B100F0E5FABEB90F4A104B28
+:106B800011781B788B4205D10133DBB2022B08BF91
+:106B90000023137012780B4B43F822500A4B4FF42A
+:106BA0008012C3F8002102B0BDE8F0813346CFE780
+:106BB00000100140ECA70020E8A70020E5A7002076
+:106BC000E4A70020DCA7002000E100E0DD690F0061
+:106BD0002DE9F04FA64AA74913780978A64C9942A7
+:106BE00085B03CD00133DBB2022B08BF0023137009
+:106BF000A2491278A24B0F6853F822003B1823F0E9
+:106C00007F4300220B60236815461646944613B94D
+:106C100042B1236006E0196881420ED902B12360B7
+:106C2000091A1960012723680293DFF85C92002398
+:106C30000193BDB9DFF85CA268E0401A0E44D96840
+:106C4000C3F800C0D3F81CE031B1BA1922F07F427A
+:106C5000C3E90121DD611D4601227346D7E7002506
+:106C60002F46E0E72846ED69844A43681268DFF85A
+:106C700028E2D0F808C0991A21F07F41714500F24E
+:106C8000A580614401600122027422680023C0E9EA
+:106C90000133C361002A40F0A3802060C9E75A1C79
+:106CA0009AF80210D2B291428AF8002004BF002262
+:106CB0008AF80020182202FB03A31A799868022A96
+:106CC0001CD0032A12D0012A20D1027CF2B9D96843
+:106CD00041601E6986605E69C6609B698361694B1D
+:106CE0001B78002B18BF11464160BDE700222368C6
+:106CF0001146002B66D14AB1236007E02268934613
+:106D00009046BBF1000F57D1002303749AF800306E
+:106D10009AF801209A42C2D1019A236822B9029AB4
+:106D20009A4201D1002F41D0002B7BD0D3F80090A4
+:106D3000554C524BD4F804651868544F351A3B78BB
+:106D400025F07F4503359BB94FF48033C4F84433B5
+:106D5000C4F804334E4B4FF400324FF00108C3F82F
+:106D600080211A60C4F80080FFF76CFE87F800806D
+:106D7000A9452CBF4844401920F07F40C4F8400585
+:106D8000D4F804359B1B23F07F43801B033320F092
+:106D90007F4083420AD9D4F80435C4F84035FFF760
+:106DA00051FE3B4B4FF40032C3F80021354B00221B
+:106DB0001A7005B0BDE8F08F584536D0D846DBF8DC
+:106DC0001CB09EE719740122DB6992E7D31A23F005
+:106DD0007F43634534BFACEB03030023036052E7FA
+:106DE0000168136899421BD8591A1160C26154E7AF
+:106DF000A1EB0C01D3F81CC01A46BCF1000F0AD05D
+:106E00006346D3F800C08C45F2D3ACEB010CC3F859
+:106E100000C09C4613460160C0F81CC0D86108E75A
+:106E20001346EEE7FFF754FEC0E740450FD1D169A6
+:106E3000216061B9DFF844E003920123C9F808300A
+:106E4000CEF800100F490B70FFF7FCFD039ADBF83A
+:106E50001C10DBF80030C8F81C1011B10E68334468
+:106E60000B60019923689A4218BF012101914BE7F9
+:106E7000E4A70020E5A70020ECA70020E8A7002059
+:106E8000DCA70020D8A7002000100140D9A70020CF
+:106E900000E100E0CCA60020FEFF7F0008B5FFF770
+:106EA00017FE104B00200B2218809A700E4B1860B2
+:106EB0000E4B18700E4B18700E4B4FF48012E021E1
+:106EC000C3F8802183F814131A6002F18042A2F5FE
+:106ED0006F22C2F8080583F81113074BD2F8042576
+:106EE0001A6008BDCCA60020ECA70020E4A7002073
+:106EF000E5A7002000E100E0E8A70020074B9B7811
+:106F00004BB132B128B10368187C20B959745A6169
+:106F10007047072070470820704700BFCCA60020AC
+:106F20002DE9F7431E4FBB7805460E469046A3B3A6
+:106F300098B304292FD943697BB3437C0024012BE8
+:106F40000DF107000CBF8946A1468DF8074000F0FF
+:106F500007F90DF10600FFF72BFDD0B101230370F7
+:106F6000104B4560D3F80435C0E90498C0E90236F7
+:106F70009DF806307B709DF8070000F015F924B9E4
+:106F8000094B4FF48012C3F80021204603B0BDE83E
+:106F9000F0830424EFE70724F7E70824F5E700BFB0
+:106FA000CCA600200010014000E100E0064A9278E3
+:106FB0003AB130B1426922B1002202740221FFF7D6
+:106FC00019BD0820704700BFCCA6002030B54C1C6E
+:106FD000E40012F00303A4B20ED1084D2A6022444B
+:106FE000074C2260074A1370074A1370074A108043
+:106FF000074A1846118030BD0720FCE7F8A700209B
+:10700000F4A70020F0A7002000A80020FCA7002083
+:10701000FEA700202DE9F3472B4D2B888B42064617
+:107020000C4617464CD34FF000080DF107008DF8C1
+:10703000078000F095F8254B254A18781178CBB2D7
+:10704000244909888B4238BF0133C0B238BF5FFA88
+:1070500083F840452ED092F800801378DBB2994235
+:1070600086BF0133DBB2002313709DF8070000F0E8
+:107070009BF84FF6FF73984524D0DFF860A0DAF84C
+:1070800000304FEAC80903EB090243F83870A6B193
+:107090009CB1114B28881B68224608FB0030314602
+:1070A00003F084F9DAF800304B4400209C8002B0F1
+:1070B000BDE8F0874FF6FF78D7E700209080F6E72D
+:1070C0000920F4E70420F2E7FCA7002000A8002034
+:1070D000F0A70020FEA70020F4A70020F8A70020BA
+:1070E000F8B5124C124D264622782B789A4200D1E0
+:1070F000F8BD23780F48104A078812680F48DBB2A2
+:1071000019B202EBC10C006852F83120BCF804102F
+:1071100003FB070090470A4A23781288DBB29A42A1
+:1071200086BF0133DBB200233370DDE700A8002007
+:10713000F0A70020FCA70020F8A70020F4A700205B
+:10714000FEA700201FB50021CDE9021001AA44F2DC
+:107150000100ADF80410FDF70DF905B05DF804FB72
+:1071600070B5EFF3108672B60C4A946801239CB98F
+:1071700093600B4B0B4DD3F8801029401160C3F87E
+:107180008050D3F8841051604FF0FF32C3F8842050
+:10719000047006B962B670BD0370FAE7B4DA002075
+:1071A00000E100E0FC06FFBD10B5084B9A685AB13B
+:1071B00050B9EFF3108172B6054A1C6814605C6820
+:1071C0005460986001B962B610BD00BFB4DA002007
+:1071D00000E100E02AB113880144884204D1184636
+:1071E00070474FF6FF73F7E75BBA10F8012B9BB2BD
+:1071F0005A40C2F30313534083EA03331BB25A01CC
+:1072000002F4FF5253409BB2E7E70000064B074AE7
+:1072100000201870064B1A600822C3E90120C3E958
+:107220000300C3E90500704701A8002004A800205E
+:10723000E4BA00200020704730B5F9B1124B5C6809
+:1072400000220A60E4B1B0F5167F1BD8D8681D682B
+:107250000130013CD86018695C604FF4177404FB7E
+:1072600000540C60012101FA00F49969013000F02A
+:107270000700214318619961104630BD0E20FCE7DC
+:107280000420FAE70C20F8E7E4BA0020F0B51C4B24
+:10729000996899B35D691E686C1A04F00704224668
+:1072A0004FF4177707FB026C604511D1012000FAFB
+:1072B00002F598696840986100205E68D3F818C0AC
+:1072C0004FF0010E724400250E4402F007020AE05E
+:1072D000013202F007029542E4D11020EDE749B1F6
+:1072E0000139144601250EFA04F414EA0C0FA6EB3A
+:1072F0000107F4D00DB1C3E90171F0BD0420FCE732
+:10730000E4BA0020064A13691268013B4FF4177172
+:1073100003F0070301FB0323C3F858020020704762
+:10732000E4BA002030B5C0B1B9B10E4BDA68B2B1E1
+:10733000013ADA609A681D6801329A605A694FF41E
+:10734000177404FB025404600132D4F85802086038
+:1073500002F007025A61002030BD0E20FCE7042035
+:10736000FAE700BFE4BA00203FB40C49086890B1C6
+:107370000B4B1C687CB10B4A1568CDE90250002309
+:107380008DF804300B60136004AB13E9070023464B
+:1073900004B030BC184704B030BC704708BB0020B4
+:1073A0000CBB002018BB0020DC2810B509D0DD285C
+:1073B00010D0C02816D1FFF7D7FF0E4B0E4A1A6027
+:1073C00010BD0E4A0E4B19681368581C1060C0227D
+:1073D000CA54F2E7094A0A4B19681368581C10602E
+:1073E000DB22F5E7064B054A196813685C1C14603C
+:1073F000C854E2E78880002049740F0008BB0020D1
+:1074000018BB0020C02802BF014B024A1A60704717
+:107410008880002049740F00014608B5002001F063
+:107420008FFE00280CBF0420002008BD08B5DB201B
+:10743000FFF7F2FF10B9024B024A1A6008BD00BF05
+:107440008C800020D1740F00C02810B409D0DB2834
+:107450000BD0094B094A196813685C1C1460C854A6
+:1074600006E05DF8044BFFF77FBF054B054A1A6045
+:107470005DF8044B704700BF18BB002008BB00201C
+:1074800088800020A9730F0010B5064A064C1268C8
+:107490002368D05CFFF7C0FF10B923680133236075
+:1074A00010BD00BF1CBB002010BB002008B5C020D1
+:1074B000FFF7B2FF28B9034B1B6813B9024B034A0D
+:1074C0001A6008BD10BB00208C80002089740F005A
+:1074D00010B50C4A0C4C12682368D35CC02B03D047
+:1074E000DB2B0DD0042010BDDC20FFF795FF00281A
+:1074F000F9D12368054A01332360054B1A60F2E78E
+:10750000DD20F2E71CBB002010BB002089740F00B7
+:107510008C8000207FB5134C134D144E002001F0D9
+:10752000EFFDE8B1226852B129683368994206D26A
+:10753000002001F0EFFD0E4B1B689847EEE70D4B66
+:107540001B686BB10292084A0221126803928DF8FF
+:10755000041004AA12E9070004B0BDE870401847FF
+:1075600004B070BD18BB002008BB002004BB002085
+:10757000888000200CBB0020014B18600020704761
+:107580000CBB0020034B1A780AB901221A700020A4
+:10759000704700BF00BB0020014B002018707047EF
+:1075A00000BB00202DE9F04F85B000284FD0294FB7
+:1075B0003B78012B07D0022B0CBF04250825284659
+:1075C00005B0BDE8F08F244C244A254E254DDFF848
+:1075D000A0A0DFF8A0B011600023236002233B705D
+:1075E000214B30602B60914698462268D9F80030D4
+:1075F0009A4215D3C5F80080FFF758FF054608BB2F
+:107600001A4B1B6801223A70E3B18DF804203268EE
+:1076100002922268039204AA12E907009847CEE773
+:10762000336822689A5CC02A03D022689B5CDB2BFB
+:1076300004D12B68534508BFC5F800B02B689847A4
+:10764000042801D10025BAE71128CED1FAE7102588
+:10765000B5E700BF00BB002010BB002014BB00201A
+:107660001CBB00208C800020AD740F000CBB0020E0
+:1076700089740F002D740F00054B064A1860064BE5
+:107680001960064B00201860054B1A60704700BF58
+:1076900018BB002005740F0004BB002008BB0020AD
+:1076A00088800020064B07481B68DB00DBB2002205
+:1076B000037004215B4242708270C370FFF772BF97
+:1076C00048BB002020BB002070B52D4C2D4E02463B
+:1076D00025462378012B14D013B1022B20D070BD86
+:1076E000002AFCD12848FFF761FC08B1FFF72AFD0A
+:1076F000264B1B68002BF2D0254ABDE8704010785D
+:107700001847012AEBD13168224B06311868FFF780
+:1077100049FF08B1FFF716FD02232B700022D8E7BE
+:10772000022A19D0032A0ED0002AD8D11A4B1648A3
+:107730001A6041F67F21FFF7F3FB0028CFD0BDE8A8
+:107740007040FFF7FFBC154A1368013303F00703CD
+:10775000136000232370E1E70F4A1368052B0AD05A
+:1077600001331360074B19680A4B06311868BDE8EE
+:107770007040FFF717BF064B01221A70E9E700BF00
+:107780006CBB002060BB002024BB00205CBB002041
+:1077900064BB002074BB002068BB00204CBB0020F1
+:1077A000F0B585B004AB03E907009DF80400032899
+:1077B00078D8DFE800F00802A7AA012005B0BDE8EC
+:1077C000F040FFF781BF039E564C032E40F28680A7
+:1077D000029D6B7813F00F0269D00E2A7ED1042E21
+:1077E00059D02A78500656D5110654D51A44AB788C
+:1077F0001A44EB781A4412F0FF024CD1B71E3946F6
+:107800002846FFF7E7FCEB195A78EB5D43EA0223C1
+:10781000984240D144492A780B6802F00702D8B256
+:1078200082422BD1013303F007030B60FFF73AFFCD
+:107830003E4B012230461A70FFF764FD08B1FFF796
+:1078400081FC38494FF41670FFF7F6FC002862D02F
+:10785000042802D00020FFF775FC35480521FFF70A
+:107860000BFF08B1FFF76EFC324B1B68002B56D0A4
+:107870004FF0000005B0BDE8F04018474FF4167116
+:107880002068FFF7F9FE08B1FFF75CFC05B0BDE822
+:10789000F040FFF707BF20684FF41671FFF7ECFECA
+:1078A00000283CD005B0BDE8F040FFF74BBC29787C
+:1078B000AA780B441344EA78134413F0FF030DD164
+:1078C0001D4A12680132C1F3C20102F0070291425F
+:1078D00004D11A4A03201370FFF7F6FE25681DB184
+:1078E0004FF416712846D9E70E494FF41670FFF78A
+:1078F000A3FC60B1042802D02846FFF723FC0C4803
+:107900000521CBE705210A48C8E70320CAE720681C
+:107910004FF41671C2E720684FF416719FE705B067
+:10792000F0BD00BF70BB002048BB002044BB00205E
+:1079300050BB002058BB00204CBB002064BB002083
+:107940000220FFF7C1BE0000074B10B504461860C7
+:107950000648FFF711FE08B1FFF7F4FB002C0CBF3F
+:107960000E20002010BD00BF58BB0020A1770F00E3
+:10797000184A1948002310B51360184A1360184AB2
+:107980001360184A1370184A1370184B184A0121D3
+:107990001960184B1960184B1970FFF7AFFA08B14E
+:1079A000032010BDFFF732FC0028FAD1FFF7EAFDF3
+:1079B0000028F6D1114C4FF416702146FFF73CFC1D
+:1079C0000028EDD120684FF41671BDE81040FFF794
+:1079D00053BE00BF74BB0020A0B00F0060BB0020EE
+:1079E00068BB002044BB00206CBB002048BB0020CB
+:1079F00041790F004CBB002064BB002070BB00200D
+:107A00000C4A08B5002313600B4A1360FFF712FC01
+:107A100008B1FFF797FBFFF7BFFD08B1FFF792FB37
+:107A20000648FFF7C3FA042802D10020FFF78AFBBB
+:107A3000002008BD5CBB002058BB002024BB0020F8
+:107A400037B50D46044698B191B10A4B197800221A
+:107A5000019259B101A91A70FFF764FC019B063B22
+:107A60002B8023680433236003B030BD0420FBE780
+:107A70000E20F9E744BB00200438FFF707BC4DDFB8
+:107A800070474EDF70474FDF704750DF704743DF6E
+:107A9000704712DF7047000010B52F4B88B04022AE
+:107AA00083F82723044600230DF107008DF80730E3
+:107AB000FFF7EFFF9DF80730002B3BD00120FFF7C9
+:107AC000E0FF0120FFF7DBFF0120FFF7DCFF02A84A
+:107AD000FFF7DBFF029BDA0702D5002000F05EFE15
+:107AE000029B9B0702D5022000F058FE5CB11B4BA5
+:107AF0002A229A720022DA72194B1A79013A1A7103
+:107B00005A88173A5A804FF0805316495A6E1B6EA6
+:107B100003A802F02BFD144903AB1022013A13F81D
+:107B2000010B21F8020B12F0FF02F7D101F0DCFF8C
+:107B300008B010BD01A88DF80430FDF7D3F80B4B49
+:107B4000039303A8FDF7F6F8FDF7FAF84FF080432A
+:107B5000D3F838340293BDE700E100E00E81002045
+:107B6000AC80002054B10F00228100209D870F00BF
+:107B700008B5134AD2F800350BB30023C2F8043518
+:107B8000BFF36F8FBFF34F8F0E498020C1F8840081
+:107B9000D2F80013C2F80813C2F80035BFF36F8F94
+:107BA000BFF34F8FFFF773FF1846FFF76AFF1846C2
+:107BB000FFF765FF1846BDE80840FFF764BF08BD42
+:107BC0000070024000E100E00120FCF721BF02202C
+:107BD000FCF71EBF38B50D460446002110461A4674
+:107BE000FCF7A0FB2A781E2A04D801239340074AF9
+:107BF000134208D1002320220521204601F0B2FCC7
+:107C00004FF0FF3038BD0020FCE700BF0100004806
+:107C1000F8B5069E14460D463246002118461F460A
+:107C2000FCF780FB6CB10A4B1B68DB0700D500BE7C
+:107C30004FF0FF300AE0284600F088F8013504F5DF
+:107C40000074B44207EB0401F5D32046F8BD00BF31
+:107C5000F0ED00E02DE9F041069E0C4F0D469846F0
+:107C60000024B44208EB04010ED23B460022284611
+:107C700000F03AF9002803DC06D03046BDE8F08178
+:107C8000013504F50074ECE72046F7E778BB0020E7
+:107C900030B5104D2B6889B0CBB16A68934216D8C5
+:107CA000062003ACFCF7B4FE142200212046FCF7AA
+:107CB00039FB00238DF80C30ADF80E302B681B0219
+:107CC0000693079B009394E80F00FDF765F909B050
+:107CD00030BD00BF78BB00204FF4FA530B604FF467
+:107CE000007313807047000013B5104C2368BBB9B4
+:107CF00043F208031868FDF731F9A0B101A8FDF7B8
+:107D0000D1FA019B9B6813F0FF0F1CBF23F0FF0308
+:107D100003F580735A1E033288BF4FF40723236094
+:107D2000206802B010BD4FF48073F8E79CBC0020BF
+:107D300010B50023934200DB10BD0C781CB101315B
+:107D4000C4540133F6E72024FAE700002DE9F0419E
+:107D50000C4605464FF4007200212046FCF7E2FA7B
+:107D600065B93E225A49204602F020FB552384F88B
+:107D7000FE31AA2384F8FF31BDE8F081402D32D8CE
+:107D80006B1E1F2B88BFA5F121030BB31D02C3EB94
+:107D9000C35305F5807604EB4324032D05F1010759
+:107DA00012D9FFF7A1FFC0F316200330A8420BD36E
+:107DB000FFF79AFFC0F316200330A84214BFBBB2EE
+:107DC0004FF6FF7324F81530BE423D46E5D1D3E7A8
+:107DD000F822227004F109012246FF209142D5D0F9
+:107DE00002F8010FFAE7442D39D8413D07D120466A
+:107DF0000B223849FFF79CFF2823E3722034364BCF
+:107E00002E01002703EB05254FF07008022EB3DC8E
+:107E10000B2229462046FFF78BFF4F232A226FF0C3
+:107E20006B016374E3746376B31C677384F80E802C
+:107E3000E1732274A2742775677584F81680E17562
+:107E400022766383E86830B102F0B8FBE061013666
+:107E500020341035DAE7FFF747FF4000F6E7A5F1D9
+:107E60004502012A0DD81C4B03EB0213DD6828469E
+:107E700002F0A4FB294602462046BDE8F04102F08C
+:107E800095BA05F219263602B6F52D2FBFF474AF58
+:107E9000124B236003F1144303F52C1303F6023352
+:107EA0006360473D0E4BC4F8FC316561FFF71CFF72
+:107EB0004FF40053000A4FF48072A360094BA06195
+:107EC000E6602261E361314604F12000D5E700BF9E
+:107ED0005FB10F008AB10F001CB20F005546320A85
+:107EE000306FB10A4028A5AD38B51D460A68354B3C
+:107EF0009A420C4662D103F114434A6803F52C13ED
+:107F000003F602339A4259D1D1F8FC212E4B9A4202
+:107F100054D18B689A0451D5C9692C4A91424DD1EC
+:107F2000DB071DD42369B3F5807F19D8E26812F00E
+:107F3000FF0F15D1B2F5183F12D31344B3F52D2F0F
+:107F40000ED8234B1A7822B1002205201A70FCF7B4
+:107F50005FFD01232269E06804F12001FCF706FEC1
+:107F600015B94FF4007038BDA369002BF9D02A6809
+:107F7000934207D040F6D3018B4200D80AB14FF0AC
+:107F8000FF332B60636940F6D3029342E9D803F0D4
+:107F9000070105EBD30301228A40197AD2B21142BC
+:107FA00004D168680A4301301A726860D5E900326A
+:107FB0009A42D6D30120FCF7BBFDD2E74FF0FF3049
+:107FC000D1E700BF5546320A306FB10A4028A5AD4F
+:107FD00042810020BFF34F8F0549064BCA6802F467
+:107FE000E0621343CB60BFF34F8F00BFFDE700BFDC
+:107FF00000ED00E00400FA05054B1B68082B01BFEB
+:10800000044B1868B0FA80F0400918BF0020704790
+:10801000300100103401001008B54FF080430022F9
+:10802000C3F80C21C3F81021C3F838254FF0805253
+:1080300003F54043D2F80414C3F82015D2F808140D
+:10804000C3F82415D2F80C14C3F82815D2F810146C
+:10805000C3F82C15D2F81414C3F83015D2F818143C
+:10806000C3F83415D2F81C14C3F84015D2F8201404
+:10807000C3F84415D2F82414C3F84815D2F82814CC
+:10808000C3F84C15D2F82C14C3F85015D2F830149C
+:10809000C3F85415D2F83414C3F86015D2F8381464
+:1080A000C3F86415D2F83C14C3F86815D2F840142C
+:1080B000C3F86C15D2F84424C3F87025FFF79CFF71
+:1080C00010B1444B444A1A60FFF796FF18B1434B76
+:1080D000FB22C3F81825FFF78FFF48B14049414BF9
+:1080E0000A681B6822F00F0203F00F0313430B60B2
+:1080F000FFF782FF18B13C4B4FF400721A604FF04B
+:108100008043D3F80024D10744BF6FF00102C3F8C5
+:108110000024364AD2F8883043F47003C2F888301D
+:10812000BFF34F8FBFF36F8F4FF01023D3F80C22A4
+:10813000D2071ED52E4B0122C3F80425D3F8002404
+:10814000002AFBD04FF01022D2F80C3223F00103AA
+:10815000C2F80C32264B1A46D3F800140029FBD083
+:108160000021C3F80415D2F80034002BFBD0FFF730
+:1081700031FFD3F80022002A03DBD3F80432002BAE
+:1081800023DA1B4B0122C3F80425D3F80024002A6C
+:10819000FBD04FF010221221C2F80012D3F80024B5
+:1081A000002AFBD04FF010231222C3F80422104BF8
+:1081B0001A46D3F800140029FBD00021C3F8041597
+:1081C000D2F80034002BFBD0D1E70A4B0A4A1A60E0
+:1081D00008BD00BF8C5600404881030000F00040FD
+:1081E000E40E0040580200104096024000ED00E00E
+:1081F00000E00140448100200090D003064B93F83A
+:10820000C0202AB9054B1B68DB0704D500BE7047A8
+:10821000002283F8C0207047A0BC0020F0ED00E0F1
+:108220000D4B93F8C020014662B10C4A5268C2F36C
+:1082300008021AB101220A4800F0AEBE93F8C0202D
+:10824000002AFBD1012283F8C0200A60BFF36F8FA0
+:10825000BFF34F8F704700BFA0BC002000ED00E0CF
+:1082600021820F00F8B50F490F4E00F594731825C1
+:1082700051F823404543142303FB00137259C3F8FC
+:108280000027E4B2C3F80447084B03EB8000FFF774
+:10829000C7FF7359771923447351FB881C44A4B258
+:1082A000FC80F8BD00700240A0BC00202870024095
+:1082B00010B4104B182101FB00314A8A0B8ACC689C
+:1082C0009B1A0A7D9BB2934228BF13461422424355
+:1082D00002F1804202F51C32C2F80046C2F80436B0
+:1082E0002344CB60044B5DF8044B03EB8000FFF7A5
+:1082F00097BF00BFA0BC002004700240012070475F
+:10830000014B80225A60704700E100E0024B80225E
+:10831000C3F88420704700BF00E100E07047704759
+:1083200010B58878097900F07F0318240C22C00961
+:108330005C4302FB0044114A22441172012202FAFA
+:1083400003F40F4978B90C3302FA03F3C1F804338C
+:10835000D1F814352343C1F81435BFF36F8FBFF341
+:108360004F8F012010BD023302FA03F3C1F804332A
+:10837000D1F810352343C1F81035EEE7A0BC00203A
+:1083800000700240F7B51D4601F07F001823CE09AA
+:108390001B4C0F4603FB00F10C2303FB0613E118F3
+:1083A000E25000238D80CB8078B975B91548FFF76E
+:1083B00037FFFFF723FF00952B462A46394628460C
+:1083C00000F0A0FD012003B0F0BDAEB9182303FBFF
+:1083D0000044637A13B1FFF745FFF3E70A4B30B966
+:1083E0000122DA64BFF36F8FBFF34F8FEAE700F526
+:1083F000947043F82060F5E7FFF75AFFE2E700BF0B
+:10840000A0BC0020507002400070024091B1CA0927
+:1084100001F07F03084A0BBF03F5887303F58473EB
+:1084200002EB830352F8230008BF5868003018BFDE
+:1084300001207047084670470070024011F07F0F1E
+:10844000064B0BBF012241F480715A65C3F8181521
+:10845000BFF36F8FBFF34F8F704700BF00700240B4
+:108460004B0606D0034BC3F81815BFF36F8FBFF34D
+:108470004F8F70470070024011F07F000DD018231D
+:108480005843C9090C2303FB0101044801448888AF
+:10849000CB88984294BF002001207047A0BC0020E8
+:1084A00010B500221146930003F1804303F51C33FD
+:1084B0000132082A59609962F5D1064B064C59627F
+:1084C000C422996420460021FBF72CFF402323752A
+:1084D000237210BD00700240A0BC00202DE9F04FB7
+:1084E000854B864AD3F80003002387B01C4601253C
+:1084F0001E4605FA03F1014209D052F8237037B144
+:108500000C4342F82360BFF36F8FBFF34F8F0133EB
+:10851000192BEED1E50706D5FFF7C2FF0122114660
+:10852000002000F0C3FC764B23400BB1FFF766FE42
+:1085300020022BD5704BD3F88014C9B28DF81010DF
+:10854000D3F88424D2B28DF81120D3F888048DF8A2
+:108550001200D3F88C048DF81300D3F890048DF832
+:108560001400D3F894048DF81500D3F898048DF80E
+:108570001600D3F89C348DF81730490601D1052A2E
+:1085800004D0012204A9002000F0A3FC5D4FDFF815
+:1085900068A13E460025B8464FF001094FF0140B84
+:1085A00005F10C0309FA03F32342E9B219D00BFBDE
+:1085B00005A30020D3F80827182303FB0583D2B2B4
+:1085C000587296F808C094457BD1DB88B2889A42ED
+:1085D00077D9002D70D1CAF84C90BFF36F8FBFF3DD
+:1085E0004F8F0135082D06F11806D9D1464B23408F
+:1085F000002B57D0404BD3F86C94C3F86C94BFF366
+:108600006F8FBFF34F8F14F4806607D0D3F8806468
+:10861000D3F880341A06C6F3C0165FD50023DFF8FE
+:10862000E4A0039300254FF0010B0BFA05F313EAC6
+:10863000090FE8B201D1A5B99EB12F4B142202FB5C
+:108640000533D3F80426182303FB0583598A0A440B
+:1086500092B25A825A8ABAF81010914240D9FFF762
+:1086600027FE0135082D0AF1180ADED10025012662
+:108670004FF0180A05F1100306FA03F313EA090F85
+:10868000E8B202D14DB9039B3BB10AFB0583B9881F
+:10869000DA8891422ED9FFF7E5FD0135082D07F163
+:1086A0001807E7D1A30204D501220321002000F01E
+:1086B000FDFB07B0BDE8F08F05F594734AF8230081
+:1086C0008BE7182303FB0583DA88B280DA88CDF8BC
+:1086D00000900023184600F015FC82E701239EE776
+:1086E0005A8ACDF800B0002340F08001184600F00F
+:1086F00009FCB6E75E72D0E70070024000710240EC
+:10870000FCFB1F00A0BC002000040001084B1B68FC
+:10871000082B06D1074B1868431E012B03D80120F4
+:10872000704700207047C31E58425841704700BF31
+:10873000300100103401001042DF704743DF704702
+:1087400044DF704712DF704707B500230DF10700C3
+:108750008DF80730FFF7F6FF9DF80700003018BFCF
+:10876000012003B05DF804FB07B5FFF7EDFF48B14A
+:1087700001A8FFF7E5FF0198003018BF012003B002
+:108780005DF804FB4FF08043D3F80C0400F00110B7
+:10879000A0F1011358425841F1E70000012813B538
+:1087A000024600F09F80002853D0022840F09380BA
+:1087B000614BD3F800241205FBD54FF40062C3F8D7
+:1087C0000024BFF36F8FBFF34F8F5C4B0021196004
+:1087D000BFF36F8FBFF34F8F594A106803F58E2395
+:1087E00003F21443002878D149F275311160186002
+:1087F0001160FFF78BFF40B11068524B00286ED11B
+:1088000049F275311160186011604C4B40F2E3720F
+:108810001A60043340221A60BFF36F8FBFF34F8F8B
+:10882000A3F6040380224849C3F81C25C3F80413A7
+:108830004649C1F884214A601A46FFF795FF00288F
+:10884000FBD00123C2F80435BFF36F8FBFF34F8F06
+:1088500041E0394BD3F80025002A3CD14FF40062A7
+:10886000C3F80024BFF36F8FBFF34F8FFFF74EFFA6
+:10887000334B40B11868334A032100BB49F27530CD
+:108880001860116018601868314AC021C8B949F2EF
+:108890007530186011601860274B0122C3F800255D
+:1088A000BFF36F8FBFF34F8FFFF75EFF98B9FFF7EE
+:1088B0004BFF40B102B0BDE81040FFF73DBF116073
+:1088C000E1E71160E8E7234B18601B680193019B07
+:1088D0004FF080431A6002B010BD196089E7002292
+:1088E0001A6092E7144BD3F800150029F3D0002149
+:1088F000C3F80415BFF36F8FBFF34F8F1348802465
+:10890000C0F88440D3F80003C3F80803C3F8001587
+:10891000BFF36F8FBFF34F8FFFF716FF48B1FFF71D
+:108920000DFF01220221002002B0BDE8104000F03E
+:10893000BDBA094B1A60F4E70070024000780240AB
+:1089400000EC064014ED06400514C00100E100E013
+:1089500014EC06400001004004000040C3809DF874
+:108960000030037200234381016083818280C381D0
+:108970000120704710B50446084663899BB2ABB12D
+:10898000E2882368E18902FB013101F00FFDE389F0
+:10899000A1885A1CB2FBF1F301FB13239BB2E381C4
+:1089A0006389013B9BB26381012010BD1846FCE73F
+:1089B0002DE9F0414489A4B205468846164684B1A3
+:1089C00043899A4288BF46894FF0000788BFB6B2F4
+:1089D000BCB2A64205D941462846FFF7CBFF013776
+:1089E00010B92046BDE8F081EB889844F0E710B557
+:1089F000438982889A42044601D1007AD8B1E2883C
+:108A00002368A08902FB003001F0D0FCA389A18873
+:108A10005A1CB2FBF1F301FB13239BB2A3816389C0
+:108A2000994215BF6389A38901339BB216BF9BB2DC
+:108A3000E3816381012010BD2DE9F04107460E4618
+:108A4000144652B1904600254545ACB205D031469A
+:108A50003846FFF7CCFF013510B92046BDE8F0815C
+:108A6000FB881E44F0E7002343818381C3810120FA
+:108A70007047000038B50E4D0446212200212846DB
+:108A8000FBF750FC1022FF21681CFBF74BFC102267
+:108A9000FF2105F11100FBF745FC204600F0AEFA7E
+:108AA000204600F0BFFB2046BDE8384000F06EBD18
+:108AB00064BD002070B505460E4614462AB90378F9
+:108AC000012B02D11046FFF721FC3146281DFFF78C
+:108AD0008EFF06462CB92B78012B02D12046FFF7DA
+:108AE0000FFC304670BD000010B50D4C201DFFF787
+:108AF000BAFF0C4B1C6000F069FB00F03FFD00204A
+:108B0000FFF7FCFB044630B9074B1B68DB0700D5B9
+:108B100000BE204610BD0020FFF7F2FBF9E700BFC2
+:108B20004881002088BD0020F0ED00E02DE9F04FE5
+:108B300085B000F0E7FF002800F04781DFF8D4920D
+:108B4000AE4ECA46D9F800402378012B02D100204E
+:108B5000FFF7DCFB01A9201DFFF70CFF2378012B99
+:108B6000054602D10020FFF7CBFB002D00F02D8140
+:108B70009DF80530013B072B00F2658101A252F8F8
+:108B800023F000BFE78D0F00198E0F00458B0F00FB
+:108B9000478E0F00478E0F00A58B0F00978D0F009B
+:108BA000398E0F0000209DF8044000F03DFA9DF83A
+:108BB000082012F07F0540F0AC809DF80930053B9D
+:108BC000042B00F2C880DFE803F0037AC69F0D0093
+:108BD00002A9204600F01DFA9DF80A102046FFF772
+:108BE0009DFBAFE79DF80A50854F29462046FFF7C9
+:108BF00096FB844B3D701B685B685BB93268D50798
+:108C000001D4002300E000BE1A4602A9204600F06D
+:108C100011FA97E75A8803F1090503EB020B5D454A
+:108C200005D3794B002BECD0FEF7CEFFE9E76B784C
+:108C30000B2B02D12B781D44F1E7042B0ED16B795D
+:108C4000022B04D0082B09D14FF0010801E04FF0AE
+:108C50000008AB783B445A78FF2A04D03368D80721
+:108C6000CFD500BECDE783F801804FF00003ADF80B
+:108C70000230664B03EB48130DF102029B68294654
+:108C8000204698470028E9D0BDF802000828E5D919
+:108C90002A4600235178052909D192F802C00CF028
+:108CA0007F0107EB410101EBDC1181F811801178A4
+:108CB0000B449BB298420A44ECD80544AFE7BDF898
+:108CC0000A301A0A022A0CD0032A11D0012A03D131
+:108CD0004C4B1B681A68D2B99DF8040000F096F955
+:108CE00030E7484B1B685A685388002B8DD1F3E757
+:108CF000474A9189DBB29942EED9926852F8232013
+:108D0000002AE9D01378F0E701233D4A7DE71223DA
+:108D10007BE702F01F02012A14D19DF80C20384B8A
+:108D200013445B78012BD7D8384D05EB43152869E0
+:108D300000F07AF9EB6802A92046984700287FF4F2
+:108D400001AFC9E7022D06D19DF80920012A12D0F2
+:108D500032B1032A19D03368D907BDD500BEBBE7AD
+:108D60009DF80C102046FFF751FB2B46ADF8020092
+:108D70000DF1020249E79DF80C102046FFF770FB49
+:108D800002A9204600F045F9DCE69DF80C102046CB
+:108D9000FFF754FBF4E79DF8081011F07F0207D1AC
+:108DA000039B9DF809209DF8040000F06DF9C9E6C9
+:108DB000134B03EB420303EBD1135A7C012A07D96F
+:108DC0000E4B1B68DA0700D500BE05B0BDE8F08F7A
+:108DD0000E4B9DF8040003EB42139DF809205C69DB
+:108DE000039BA047AEE69DF80400FFF743FEDAF8C8
+:108DF00000000430FFF737FEA4E600BFF0ED00E00E
+:108E000064BD00205C810020C97B0F00C0B20F0050
+:108E10009080002088BD00209DF80400FFF72AFE06
+:108E2000DAF800000430FFF71EFE0A4B002B3FF477
+:108E300089AEFEF7CCFE85E6029B002B3FF482AEA6
+:108E4000039898477EE63368DB077FF57BAE00BE6C
+:108E500078E600BFCF7B0F0010B54378013B044696
+:108E60000A46072B1DD8DFE803F004041C1C1C0471
+:108E70000B040C4B0146BDE810401868FFF71ABE02
+:108E80000379590601D183685BB1064B2146186806
+:108E9000FFF710FE637923B1034B1B68DB0700D596
+:108EA00000BE10BD88BD0020F0ED00E01FB500231E
+:108EB0008DF804008DF8051001A81146CDF8063094
+:108EC000CDF80A30ADF80E30FFF7C6FF05B05DF8FB
+:108ED00004FB1FB5002314460822CDF80630CDF858
+:108EE0000A30ADF80E308DF8040006230DEB0200B9
+:108EF0008DF8053001F05AFA214601A8FFF7ACFFC2
+:108F000004B010BD1FB500248DF804000720CDF873
+:108F100006408DF805008DF8081001A89DF818107E
+:108F2000ADF80A4003928DF80930FFF795FF04B0C1
+:108F300010BD00002DE9F843089D07460C469046F9
+:108F4000994602266378052B04D1E17801F00301EC
+:108F5000414506D00F4B1B68DA0700D500BE002044
+:108F600009E021463846FFF7DBF930B9094B1B68A9
+:108F7000DB07F4D500BEBDE8F883A178CB0914BFA8
+:108F8000297089F800102378012E1C44F3D00126A3
+:108F9000D8E700BFF0ED00E01FB500230193CDE955
+:108FA00002010823114601A88DF80530FFF754FF90
+:108FB00005B05DF804FB000070B50E49CB898C89C3
+:108FC000E41AA4B291F90030402C28BF4024002BB1
+:108FD00005460CDA89680848224601F0E7F9802145
+:108FE00023462846044ABDE87040FFF7CBB900216C
+:108FF000F6E700BF8CBD002080DB0020142200219A
+:109000000148FBF78FB900BF8CBD00200021FFF79E
+:1090100015BA91F90030002B4FF000031A46ACBF8F
+:1090200080211946FFF7AEB9014B1861704700BFA8
+:109030008CBD0020F8B5124D0C46074608684968FB
+:10904000AA602E4603C6E188994228BF1946A98125
+:109050000021E98162B15BB13846FFF7ADFF28B965
+:10906000084B1B68DB0708D4002000E00120F8BD96
+:1090700021463846FFF7CDFFF1E700BEF7E700BF16
+:109080008CBD0020F0ED00E070B51A4C1E4694F93E
+:109090000030002B054604DB32461749A06801F07A
+:1090A00085F9A368E28933443244A360A38992B26C
+:1090B0009342E28101D03F2E16D8236953B90D495E
+:1090C0002846FFF7A6FF68B90C4B1B68DB070FD4D7
+:1090D000002070BD0749284698470028EFD1284650
+:1090E000FFF794FF0120F4E72846FFF765FFEAE762
+:1090F00000BEEEE78CBD002080DB0020F0ED00E03C
+:10910000034A4FF40B6303FB0020408B704700BF02
+:10911000A0BD002007B5094A4FF40B6303FB0020F4
+:109120000DF107011030FFF725FC20B19DF8070075
+:1091300003B05DF804FBFF20FAE700BFA0BD0020EC
+:1091400007B5084A8DF807104FF40B6303FB0020A6
+:109150000DF1070101222030FFF76EFC03B05DF82E
+:1091600004FB00BFA0BD00202DE9F041154F4FF4D6
+:109170000B6444433E190020B178FFF77DF9804627
+:1091800010B10020BDE8F08104F507653D4404F10D
+:109190002000402229463844FFF70AFC034608B95C
+:1091A0000120EFE73279D207EBD52A46B178404665
+:1091B000FFF7E8F80028F3D1034B1B68DB07E0D585
+:1091C00000BEDFE7A0BD0020F0ED00E073B5144C59
+:1091D0004FF40B6200212046FBF7A4F8FF236371D4
+:1091E0004FF442430125E38008230026237304F152
+:1091F00030012B4600954FF4806204F11000258168
+:109200006681FFF7ABFB00962B464FF4806204F5B6
+:10921000866104F12000FFF7A1FB02B070BD00BF22
+:10922000A0BD002010B5084C052200212046FBF708
+:1092300079F804F11000FFF716FC04F12000BDE8F6
+:109240001040FFF710BC00BFA0BD0020F7B58B7920
+:10925000022B0746154607D02B4B1B68DB0700D5B2
+:1092600000BE002003B0F0BDCB79073BDBB2F72B8B
+:10927000F2D9264EB378002BEED18B7833700C7870
+:1092800009230C44138005E023782A8813442B809B
+:1092900023781C446378242BF6D0052B12D1214669
+:1092A0003846FFF73DF828B9174B1B68DA07D8D5C1
+:1092B00000BED7E7A378737023782A8813442B80E5
+:1092C00023781C446378042B14D163790A2B11D1C1
+:1092D00023782A8813442B8021780D4B0093022297
+:1092E000013321443846FFF725FE0028DCD02B88C7
+:1092F0000E332B804023074AF1783846FFF742F8B7
+:109300000028AFD1D0E700BFF0ED00E0A0BD002005
+:10931000A2BD0020D0C5002008B50B7803F0600383
+:10932000202B0AD14B78202B05D1054B1BB10549C9
+:109330000020AFF30080012000E0002008BD00BF46
+:1093400000000000A6BD002010B50B7803F06003FC
+:10935000202B0C4607D0124B186810F0010001D0EA
+:1093600000BE002010BD4B78202BFAD3212B11D941
+:10937000222BF6D10B4B4A881A71FFF74AFE0A4B93
+:1093800063B161880020C1F3400201F00101AFF335
+:10939000008003E00723054AFFF74CFE0120E1E7C8
+:1093A000F0ED00E0A0BD002000000000A6BD002000
+:1093B0002DE9F8431C4CE2788A42074602D001208E
+:1093C000BDE8F883DFF870902546E61804F1100830
+:1093D000B54215D1154B2BB1638B9BB213B1002055
+:1093E000FEF798F84023124AE1783846FEF7CAFFA4
+:1093F0000028E4D10F4B1B68DB07E1D500BEDFE797
+:1094000005F503614046FFF7F2FAB9F1000F09D004
+:109410006379FF2B06D095F83018994202D10020CD
+:10942000AFF300800135D3E7A0BD002015750F0014
+:10943000D0C50020F0ED00E00000000038B5174B6B
+:10944000174C0546A3B1607BAFF3008080B9A368D9
+:10945000A362012384F82C3042F2077384F83E00A3
+:10946000A38794F82F102846BDE83840FEF7E6BFE2
+:10947000A26BA36894F82F109B1AB3F5805F28BFE6
+:109480004FF480539BB2074A2846FEF77BFF20B972
+:10949000054B1B68DB0700D500BE38BD000000008F
+:1094A00050D6002050C60020F0ED00E07FB52A4CD9
+:1094B000022204F11601064603A8A56800F076FF13
+:1094C000BDF80C2052BA92B204F11101B5FBF2F5CD
+:1094D00003A8042200F06AFFA06BA36803991B1A7B
+:1094E000B3F5805F28BF4FF48053AAB209BAB0FB2E
+:1094F000F2F5009302FB1502184B607B2944FEF73E
+:1095000087FB031E94F82E1011DAA368A26B9B1A36
+:10951000A362012384F82C3042F20503A38730466E
+:10952000002384F83E30FEF789FF04B070BD05D1FA
+:1095300000931A463046FFF7E5FCF6E79BB2074A70
+:109540003046FEF71FFF0028EFD1054B1B68DB07F5
+:10955000EBD500BEE9E700BF50D6002050C6002082
+:10956000F0ED00E0044880F83C1080F83D2080F8E1
+:109570003E300120704700BF50D60020402200211D
+:109580000148FAF7CFBE00BF50D60020402200218C
+:109590000148FAF7C7BE00BF50D60020F7B58B7957
+:1095A000062B06460C46174602D1CB79502B08D025
+:1095B000144B1B68DA0702D4002003B0F0BD00BED4
+:1095C000FAE7114D097805F12E030093022205F107
+:1095D0002F032144FFF7AEFC28B90A4B1B68DB07B9
+:1095E000EAD500BEE9E7A37885F82D3017233B8044
+:1095F0002A461F2395F82F103046FEF7C3FE002899
+:10960000DBD1EAE7F0ED00E050D600200B7803F064
+:109610006003202B07B507D00D4B186810F0010030
+:109620000AD000BE002007E04B78FE2B07D0FF2BAE
+:10963000F8D1FFF7EEFC012003B05DF804FB002336
+:109640008DF807300DF107020123FFF7F3FCF2E775
+:10965000F0ED00E001207047F0B5C37B1A2B8DB010
+:109660000D4600F0818007D8032B00F09580122B67
+:1096700043D04FF0FF301BE0232B1BD0252BF8D11C
+:109680000DF1060202A9407BFEF726FBBDF806108D
+:10969000029A0B02013A12BA03F47F0343EA016310
+:1096A000039203A908222846049300F07FFE0820B5
+:1096B0000DB0F0BD0023CDE90333059308238DF8E9
+:1096C0000F300DF10602022302A9407B8DF8143001
+:1096D000FEF702FB029B1BBA0493BDF80630DAB218
+:1096E0001B0A43EA02230C220DEB02012846ADF8C7
+:1096F000163000F05BFE0C20DAE73B4C3B4B206859
+:1097000061680022CDE9033205AB07AA03C31746FF
+:1097100004F10903113418685968164603C6083362
+:10972000A3423246F7D118681B79337100233060A9
+:109730000822ADF829308DF82B302B492C4B0B9398
+:1097400005A800F043FF10222A49384600F03EFFEA
+:10975000042229490BA800F039FF242203A9284636
+:1097600000F024FE2420A3E703230393234B8BB1B3
+:10977000407BAFF300809DF80E3080F0010060F375
+:10978000C713042203A928468DF80E3000F00EFE00
+:1097900004208DE70120EEE7194C1222002103A8D6
+:1097A000FAF7C0FDF02394F83C208DF80C300A2322
+:1097B0008DF813304FF0000362F303038DF80E3081
+:1097C00094F83D308DF81830122294F83E308DF820
+:1097D000193003A9284600F0E9FD0023A38784F887
+:1097E0003E30122064E700BF00B30F000080020289
+:1097F000312E300019B30F002AB30F000000000013
+:1098000050D600202DE9FF41AD4C94F8308006463B
+:109810001D46B8F1000F13D0B8F1010F00F097808A
+:1098200094F83030022B0FD194F82E103046FEF70A
+:10983000EDFD002800F00B81002300931A46F2E0B2
+:1098400094F82F308B4201D001200CE02AB91F2D53
+:1098500003D125689B4B9D4208D09B4B1B68D907C1
+:1098600000D500BE002004B0BDE8F081974B236214
+:109870006368A568C4E90932E37B4FF00108282B2F
+:1098800084F83080C4E90D5203D13046FFF70EFE54
+:10989000C6E72A2B03D13046FFF7D0FDC0E7B5B9A4
+:1098A0002B4604F10F01607BFEF794F90223002898
+:1098B00084F83030B8BF42F205036563BDBF84F859
+:1098C0002C80A38784F83E5084F82C50A8E794F9A4
+:1098D0000C30002B0BDB7E4AABB2FEF753FD0028A9
+:1098E0009ED1794B1B68DB07BCD500BEBBE74FF4AC
+:1098F000805277492046FFF7AFFE002805DAA38E95
+:10990000734A7449607BFEF765F900284FF0000246
+:109910000BDDA3686063984284F82C209DD883B245
+:109920006B4A94F82E103046D7E7012384F82C3088
+:10993000022384F8303094F82E10626342F205035B
+:109940003046A38784F83E20FEF778FD68E794F957
+:109950000C30002B17DBE37B2A2B1ED05C4AA38E36
+:10996000607B04F10F01FEF735F900284FF000038A
+:10997000BFBF42F2050284F82C80A28784F83E30F3
+:10998000A8BF84F82C30A36B1D44636BA5639D4274
+:109990004FD3022384F8303042E7022204F116014B
+:1099A00003A8A76800F002FDBDF80C2052BA92B2DD
+:1099B00004F11101B7FBF2F703A8042200F0F6FC52
+:1099C0000399D4F838C00095BAB2414FBCFBF2F00D
+:1099D00009BA014402FB10C23B46607BFEF73AF92C
+:1099E000011E0FDAA368A26B84F82C809B1AA36275
+:1099F000022384F8303042F20503A387002384F861
+:109A00003E300DE78D42BEDD0029A5EB010507DDE7
+:109A1000A36B2A460B4438463944A36300F0D4FCB8
+:109A2000002300932A4694F82F103046FFF76AFA75
+:109A30000AE7E37B282B3FF428AF2A2B3FF42BAF18
+:109A4000214B1B68DA077FF5EBAE00BEE8E694F821
+:109A50002F103046FEF7DAFC00287FF4EDAE84F8D4
+:109A600030000D231C4A94F82E103046FEF78AFC75
+:109A700000283FF436AFE37B282B0FD1174B13B1EF
+:109A8000607BAFF300801F230D4A94F82F103046FF
+:109A9000FEF778FC00287FF4D7AE22E72A2B06D108
+:109AA0000F4B002BEFD0607BFEF7F2F8EBE70D4B8E
+:109AB000002BE8D00749607BAFF30080E3E700BFED
+:109AC00050D6002055534243F0ED00E05553425329
+:109AD00050C600205FD6002070D600200000000095
+:109AE000917C0F000000000038B5054D2C7824B99A
+:109AF000FEF7FAFF08B101232B70204638BD00BFE6
+:109B000090D60020014B1878704700BF90D60020F7
+:109B10000369C1688B429DBF8268D21802F1FF328F
+:109B200003F1FF3394BF501A581A70472DE9F041E2
+:109B3000D0E9027405463E1B4068964220448846A0
+:109B4000144404D900F032FCEC60BDE8F0813246E8
+:109B5000E41B00F02BFC224608EB06016868F1E7E5
+:109B60002DE9F843C5680646894617464FF00008B8
+:109B70003469B3687068A54228BFE418013C621BD1
+:109B80005C1BBC4228BF3C46944228BF1446494651
+:109B90002844224600F00AFCB3682544AB4208BFC3
+:109BA00000253F1BA044A144F560E1D14046BDE83B
+:109BB000F883000010B5114C114AA2610223C4E9D8
+:109BC0000433104BE361A2644FF480630E4A2362B6
+:109BD000E264002310220D49A362E01D6362E36288
+:109BE000A3656365E365226500F0E0FC0849204653
+:109BF00000F0DCFC2023A37110BD00BFC0DB0020FF
+:109C00002EB30F00A1D6002091D6002037B30F004D
+:109C10003BB30F00F8B5184C182300FB033503FBCA
+:109C200000402544C46A012C0F46164611D024B1C9
+:109C3000022C1BD000242046F8BD2846FFF768FF01
+:109C4000B042F8D3324639462846FFF76FFF344614
+:109C5000F1E72846FFF75CFF8642344628BF0446FA
+:109C6000224639462846FFF761FFE4E72846BDE86B
+:109C7000F840FFF775BF00BFC0DB0020F8B50B4B05
+:109C80001B7805460E4617460BB9FFF793FFEFF317
+:109C900011844FF0200181F311883A46314628465D
+:109CA000FFF7B8FF84F31188F8BD00BFC0DB0020C8
+:109CB00038B5054608460C4600F080FC21460246B1
+:109CC0002846BDE83840FFF7D9BF10B58268044682
+:109CD0004068531C834205D820688154A360E36820
+:109CE0000133E360D4E901329A420BD12168206943
+:109CF000FFF7C4FFA368984215BF4FF0FF3300235E
+:109D0000E360A36010BD00002DE9F84F9A46DDE93D
+:109D10000A439046064689460A460127424513D221
+:109D2000574538BF574613F0010B01D184B90024C1
+:109D3000F368002B48DB0125BAF1010F1FD90AF1A6
+:109D4000FF3A08FB05F5F7E7B2FBF8F20137E5E764
+:109D50009B0712D5BAF1000F0CBF30252025A74272
+:109D6000E6D229463046FFF7B0FFF368002B04F136
+:109D7000FF34DDDB002CF2D1D9E72025EFE7B9FB7A
+:109D8000F5F39845DDD9DFF848A0B9FBF5F3304687
+:109D90001AF8031005FB1399FFF797FFF368002BE0
+:109DA00003DBB5FBF8F3454510D2BBF1000F0BD038
+:109DB00054B1A74208D220213046FFF786FFF3684E
+:109DC000002B04F1FF34F3DABDE8F88F1D46DCE721
+:109DD00042B30F002DE9F04F9BB00AAB0E4605933E
+:109DE00040210023CDE90613CDE908300390154644
+:109DF0004FF00A0916F8011B39B9089B002B00F334
+:109E0000F98008981BB0BDE8F08F25294CD14FF0A0
+:109E1000000B09E02D2B04D0302B0DD14BF0020BA1
+:109E200001E04BF0010B0E46314611F8013B2B2BA4
+:109E30000FD0EFD8232B0FD00024314611F8013B6F
+:109E4000A3F1300009280AD809FB0434303C0E463F
+:109E5000F3E74BF0040BE6E74BF0080BE3E72E2BA0
+:109E60000FD10E464FF0000A304610F8011BA1F149
+:109E70003007092F07D809FB0A13A3F1300A064659
+:109E8000F2E74FF0000A304610F8011B01F0FB0723
+:109E9000682F0646F8D0642926D009D8582916D04C
+:109EA00063291CD025290AD105A8FFF70EFF06E07B
+:109EB000732900F0878006D8702900F09380089BF2
+:109EC000002B97DA99E7752973D07829F7D129689B
+:109ED000CDE9004B081D28605346102270E02B6826
+:109EE0001A1D2A601978DFE72968081D28600F68A5
+:109EF00087EAE771A1EBE7714FF00108092936DC29
+:109F0000D04538BFD0462CB1002F02DB1BF0040F28
+:109F100000D0013C1BF0020F02D0BAF1000F04D0B8
+:109F20001BF0010F01D13CBB002408990029C6DBBE
+:109F3000002F2DDA7F422D2105A8FFF7C6FE0899D4
+:109F40000029BCDB0BF00301022904D1BAF1000F98
+:109F500001D114BB002408990029B0DBCDE9004BE6
+:109F600053460A22394605A8FFF7CEFEA7E7B1FB04
+:109F7000F9F108F10108C1E7A045D6D2202105A8D2
+:109F8000FFF7A3FE0899002904F1FF34CBDACCE7F0
+:109F90001BF0040FD3D02B21CEE7A045DBD230211C
+:109FA00005A8FFF792FE0899002904F1FF34D0DAE2
+:109FB000D1E72968CDE9004B081D286053460A22E5
+:109FC0000968D0E72B681A1D2A601C6814F8011B69
+:109FD00000293FF474AF05A8FFF777FE089B002B1C
+:109FE000F4DA6CE729680B1D2B6000220823CDE909
+:109FF000003272E7079A1AB10AA90398FFF73EFEEA
+:10A00000DDE9072313440893FBE60EB403B503AB65
+:10A0100001AA53F8041B0193FFF7DCFE02B05DF8C0
+:10A0200004EB03B0704700000649074A074B9B1A30
+:10A0300003DD043BC858D050FBDCFDF7EDFFFAF719
+:10A04000FFF8000094B40F00008000206881002019
+:10A05000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7D8
+:10A06000FEE7FEE753B94AB9002908BF00281CBF24
+:10A070004FF0FF314FF0FF3000F074B9ADF1080C34
+:10A080006DE904CE00F006F8DDF804E0DDE9022316
+:10A0900004B070472DE9F047089E04468846002B1F
+:10A0A00040F085808A42154648D9B2FA82F24AB118
+:10A0B000C2F1200701FA02F320FA07F7954047EAB8
+:10A0C000030894404FEA154E230CB8FBFEF71FFA25
+:10A0D00085FC0EFB178843EA084307FB0CF1994205
+:10A0E00009D9EB1807F1FF3080F0E380994240F284
+:10A0F000E080023F2B445B1AA4B2B3FBFEF00EFBE0
+:10A10000103344EA034400FB0CFCA44509D92C1984
+:10A1100000F1FF3380F0CB80A44540F2C8800238C4
+:10A120002C4440EA0740A4EB0C0400271EB1D440A5
+:10A130000023C6E900433946BDE8F087002A53D022
+:10A14000B2FA82F2002A40F0B680491B4FEA154E5F
+:10A150001FFA85F80127B1FBFEFC230C0EFB1C1136
+:10A1600043EA014308FB0CF1994207D9EB180CF1C3
+:10A17000FF3002D2994200F2EC808446591AA3B211
+:10A18000B1FBFEF00EFB101443EA044408FB00F898
+:10A19000A04507D92C1900F1FF3302D2A04500F2E7
+:10A1A000DC801846A4EB080440EA0C40BEE78B4272
+:10A1B00008D9002E78D00027C6E900013846394674
+:10A1C000BDE8F087B3FA83F77FB98B4202D38242AE
+:10A1D00000F2BD80841A61EB030301209846002E33
+:10A1E000A9D0C6E90048A6E7FFDEC7F12005BB40BD
+:10A1F00022FA05FC4CEA030C01FA07F420FA05F8F0
+:10A2000021FA05F34FEA1C4E48EA0404B3FBFEF9B9
+:10A21000210C0EFB19331FFA8CF841EA034309FBAA
+:10A2200008FA9A4502FA07F200FA07F10BD91CEB7B
+:10A23000030309F1FF3080F088809A4540F2858061
+:10A24000A9F102096344A3EB0A03A4B2B3FBFEF035
+:10A250000EFB103344EA034400FB08F8A04508D97C
+:10A260001CEB040400F1FF336BD2A04569D902381E
+:10A27000644440EA0940A4EB0804A0FB02894C4571
+:10A28000C6464B4654D351D0002E69D0B1EB0E02D6
+:10A2900064EB030404FA05F522FA07F3FC401D43BE
+:10A2A000C6E90054002746E73746304643E71846DC
+:10A2B00037E707461FE7C2F1200320FA03F795406E
+:10A2C00001FA02F021FA03F34FEA154E3843010C6C
+:10A2D000B3FBFEF71FFA85F80EFB173341EA034183
+:10A2E00007FB08F38B4204FA02F407D9691807F157
+:10A2F000FF3C28D28B4226D9023F2944CB1A81B297
+:10A30000B3FBFEF00EFB103341EA034100FB08F300
+:10A310008B4207D9691800F1FF3C10D28B420ED94D
+:10A3200002382944C91A40EA074714E74145ABD22D
+:10A33000B8EB020E69EB0C0201381346A4E7604645
+:10A34000F0E7184695E76746D8E781467BE7384649
+:10A3500045E7ACF1020C2B4410E702382C4421E70E
+:10A360003746E8E6704700BF0A22002100F0BAB97C
+:10A37000024B0146186800F08FB800BF0080002033
+:10A38000024B0146186800F039B800BF0080002079
+:10A3900030B501390024A24201D1002005E0035D5F
+:10A3A00001340D5DAB42F6D0581B30BD0A449142DA
+:10A3B00000F1FF3300D1704710B511F8014B03F8DD
+:10A3C000014F9142F9D110BD884210B501EB020353
+:10A3D00002D983421C4607D8421E994208D011F880
+:10A3E000014B02F8014FF8E783189A1A9A4200D1FC
+:10A3F00010BD14F8011D03F8011DF7E738B5054637
+:10A40000002945D051F8043C0C1F002BB8BFE418BC
+:10A4100000F072F91F4A1368104633B96360146084
+:10A420002846BDE8384000F06DB9A3420CD9216838
+:10A430006218934204BF1A685B68636004BF5218D5
+:10A4400022600460ECE713465A680AB1A242FAD9C6
+:10A4500019685818A0420BD120680144581882424C
+:10A460001960DDD1106852685A6001441960D7E75D
+:10A4700002D90C232B60D3E7206821188A4204BF3D
+:10A4800011685268626004BF091821605C60C7E708
+:10A4900038BD00BFA4DA0020F8B5CD1C25F00305B7
+:10A4A00008350C2D38BF0C25002D064601DBA942CE
+:10A4B00003D90C2333600020F8BD00F01DF92149B9
+:10A4C0000A6814469CB9204F3B6823B921463046A0
+:10A4D00000F03CF838602946304600F037F8431C5D
+:10A4E00023D10C233360304600F00CF9E3E72368F6
+:10A4F0005B1B17D40B2B03D923601C44256004E09D
+:10A500006368A2420CBF0B605360304600F0FAF85B
+:10A5100004F10B00231D20F00700C21ACCD01B1A37
+:10A52000A350C9E722466468CCE7C41C24F00304A6
+:10A53000A042E3D0211A304600F008F80130DDD106
+:10A54000CFE700BFA4DA0020A8DA002038B5064C17
+:10A55000002305460846236000F038FC431C02D166
+:10A56000236803B12B6038BD38DC00200EB400B581
+:10A570009CB01DAB029006906FF000410948079116
+:10A580000491094953F8042B05910068019302A92D
+:10A5900000F01AF9029B00221A701CB05DF804EB5F
+:10A5A00003B07047008000200802FFFF034611F847
+:10A5B000012B03F8012B002AF9D17047034613F849
+:10A5C000012B002AFBD1181A0138704710B5013948
+:10A5D000034632B111F8014F03F8014B013A002C48
+:10A5E000F7D11A440021934200D110BD03F8011B9A
+:10A5F000F9E700002DE9F047394F86460846054641
+:10A6000015F8014BE65D16F0080634D12D2C34D137
+:10A610002C784FF00108851C002B5CD0102B09D141
+:10A62000302C07D1287800F0DF0058284ED16C7804
+:10A6300010230235B8F1000F14BF4FF0004C6FF03B
+:10A64000004C0027BCFBF3F9384603FB19CAA4F100
+:10A650003006092E18D83446A34224DD7E1C07D0CC
+:10A6600081451DD301D1A2451ADB00FB0340012720
+:10A6700015F8014BEBE72846C1E72B2C08BF2C78D7
+:10A68000B04608BF851CC7E7A4F14106192E01D8C2
+:10A69000373CE1E7A4F16106192E04D8573CDBE70B
+:10A6A0004FF0FF37E4E77B1C06D12223CEF80030C1
+:10A6B000604642B9BDE8F087B8F1000F00D04042D3
+:10A6C000002AF7D007B1691E1160F3E73024002B90
+:10A6D000B0D10823AEE7302CA4D00A23AAE700BFEC
+:10A6E00053B30F0013460A46014602480068FFF7BD
+:10A6F00081BF00BF00800020014800F0E7BA00BF22
+:10A7000040DC0020014800F0E2BA00BF40DC00203D
+:10A710002DE9F0478E689E4282460C469146984647
+:10A7200038D8B1F80CC01CF4906F31D0626925683C
+:10A73000096902EB42026F1A02EBD2720133551023
+:10A740003B449D4238BF1D461CF4806F30D02946E3
+:10A75000FFF7A2FE064650B90C23CAF80030A389C1
+:10A7600043F04003A3814FF0FF30BDE8F0873A4645
+:10A770002169FFF71BFEA38923F4906343F0800354
+:10A78000A381266165613E44ED1B2660A5604646B7
+:10A79000464500D94646324649462068FFF714FE32
+:10A7A000A3689B1BA36023681E4426600020DCE78F
+:10A7B0002A4600F0DDFA06460028E2D1216950461B
+:10A7C000FFF71CFEC8E700002DE9F04F1E468B89FD
+:10A7D0001B069DB007460D4614460ED50B6963B99E
+:10A7E0004021FFF759FE2860286120B90C233B6007
+:10A7F0004FF0FF30C9E040236B6100230993202311
+:10A800008DF82930DFF89C91039630238DF82A309B
+:10A810004FF0010A23461E4613F8012B0AB1252AE0
+:10A82000F9D1B6EB040B0BD05B46224629463846DD
+:10A83000FFF76EFF013000F0A380099B5B44099392
+:10A840003378002B00F09C8000234FF0FF32CDE9DD
+:10A8500005230136049307938DF853301A93344639
+:10A86000052214F8011B4F4800F032FA049BC0B9CE
+:10A87000D90644BF20228DF853201A0744BF2B224B
+:10A880008DF8532032782A2A13D0079A34460020B4
+:10A890000A26214611F8013B303B092B4BD970B9F0
+:10A8A00014E0A0EB09000AFA00F0184304902646D1
+:10A8B000D5E7039A111D12680391002A01DB079264
+:10A8C00004E0524243F002030792049323782E2BB4
+:10A8D0000CD163782A2B33D1039B1A1D1B6803927A
+:10A8E000002BB8BF4FF0FF33023405932E4E217872
+:10A8F0000322304600F0ECF938B14023801B03FA04
+:10A9000000F0049B03430134049314F8011B27480F
+:10A910008DF82810062200F0DBF9002838D0244BEF
+:10A9200013BB039B073323F0070308330393099BEF
+:10A93000434409936EE706FB023201200C46A8E768
+:10A9400000230134059319460A26204610F8012BEE
+:10A95000303A092A03D9002BC8D00591C6E706FB77
+:10A96000012101230446F0E703AB00932A46114B73
+:10A9700004A93846AFF30080B0F1FF3F8046D6D13E
+:10A98000AB895B063FF534AF09981DB0BDE8F08F89
+:10A9900003AB00932A46074B04A9384600F082F81F
+:10A9A000EAE700BF53B40F0059B40F005DB40F00C5
+:10A9B0000000000011A70F002DE9F04791461F4647
+:10A9C0008A680B69DDF820809342B8BF1346C9F846
+:10A9D000003091F8432006460C4612B10133C9F805
+:10A9E00000302368990642BFD9F800300233C9F815
+:10A9F0000030256815F0060507D104F1190AE3684F
+:10AA0000D9F800209B1AAB4228DC94F84330226826
+:10AA1000003318BF012392062DD404F143023946B6
+:10AA20003046C047013020D02368E568D9F80020BF
+:10AA300003F00603042B08BFAD1AA36822690CBFFC
+:10AA400025EAE57500259342C4BF9B1AED184FF027
+:10AA500000091A344D451AD1002008E0012352465E
+:10AA600039463046C047013003D14FF0FF30BDE8D2
+:10AA7000F0870135C3E7E1185A1C302081F8430004
+:10AA8000224494F8451082F843100233C5E70123AD
+:10AA9000224639463046C0470130E6D009F1010967
+:10AAA000D8E700002DE9F04306460C4601F14300CB
+:10AAB000097E85B06E29984617460C9B00F0BA8037
+:10AAC00024D8632939D00AD8002900F0C380582936
+:10AAD00000F0918004F1420584F8421035E06429C9
+:10AAE00001D06929F6D125681A6815F0800F02F1A6
+:10AAF00004012CD012681960002A03DA2D23524277
+:10AB000084F84330DFF8BCC10A233FE0732900F02A
+:10AB1000A58008D86F2921D07029DBD1226842F0A6
+:10AB20002002226003E0752918D07829D2D178223A
+:10AB300084F84520DFF890C161E01A68111D1960A2
+:10AB4000136884F8423004F14205012393E012684F
+:10AB5000196015F0400F18BF12B2CDE7D4F800C04D
+:10AB60001A681CF0800F02F104051D6001D0126804
+:10AB700003E01CF0400FFAD01288DFF848C16F29BB
+:10AB80000CBF08230A23002184F843106568A560E0
+:10AB9000002DA2BF216821F0040121600AB9002D17
+:10ABA00046D00546B2FBF3F103FB112E93421CF88D
+:10ABB0000EE005F801ED39D9082B0BD12368DA072F
+:10ABC00008D5236962689A42DEBF302305F8013C4C
+:10ABD00005F1FF35401B2061CDF800803B4603AAFC
+:10ABE00021463046FFF7E8FE013049D14FF0FF30F3
+:10ABF00005B0BDE8F083DFF8CCC084F845101D68CF
+:10AC0000216855F8042B1D600D060BD5CD0744BFF8
+:10AC100041F0200121601AB9236823F0200323604A
+:10AC20001023B0E74B0648BF92B2EFE70A46B9E7F8
+:10AC30000546C1E71A68D4F800C06169151D1D609A
+:10AC40001CF0800F136801D0196003E01CF0400F66
+:10AC5000FAD01980002323610546BDE71A68111D4B
+:10AC60001960156862680021284600F031F808B1C3
+:10AC7000401B606063682361002384F84330ABE7C6
+:10AC800023692A4639463046C0470130AED0236892
+:10AC90009B0713D4E068039B9842B8BF1846A7E708
+:10ACA00001234A4639463046C04701309ED001351F
+:10ACB000E368039A9B1AAB42F2DCEBE7002504F150
+:10ACC0001909F5E764B40F0075B40F0070477047B9
+:10ACD00001F0FF01102A2BDB10F0070F08D010F84D
+:10ACE000013B013A8B422DD010F0070F42B3F6D151
+:10ACF000F0B441EA012141EA014122F007047FF06A
+:10AD000000070023F0E80256083C85EA010586EAC0
+:10AD1000010685FA47F5A3FA87F586FA47F6A5FAFC
+:10AD200087F68EB9EED1F0BC01F0FF0102F0070208
+:10AD300032B110F8013B013A83EA010313B1F8D1B3
+:10AD40000020704701387047002D06BF3546033894
+:10AD5000073815F0010F07D1013015F4807F02BFCD
+:10AD6000013015F4C03F0130F0BC0138704700BF1E
+:10AD7000F8B5074614460E4621B91146BDE8F8401D
+:10AD8000FFF78ABB22B9FFF739FB25462846F8BDF5
+:10AD900000F014F8A0420FD221463846FFF77CFBA2
+:10ADA00005460028F2D031462246FFF7FFFA314629
+:10ADB0003846FFF723FBE9E73546E7E751F8043C5F
+:10ADC000181F002BBCBF0B58C0187047044A054918
+:10ADD0001368002B08BF0B461844106018467047D4
+:10ADE000ACDA002048DC0020F8B500BFF8BC08BC95
+:10ADF0009E467047F8B500BFF8BC08BC9E46704739
+:10AE0000048000200010020000000000000000008C
+:10AE10000338FDD870476D61696E28766F696429C3
+:10AE2000206861732073746172746564210A006D17
+:10AE300061696E3A2069662028205F6F74615F64E3
+:10AE4000667520290A006D61696E3A20656C73652C
+:10AE50000A004446555F42414E4B5F305F524547C2
+:10AE6000494F4E5F53544152543A20307825780A66
+:10AE700000000000000000000000000000000000D2
+:10AE80000338FDD870476E6577416464723A2030AC
+:10AE90007825780A006E72665F6E766D635F70610A
+:10AEA00067655F657261736528290A006164647271
+:10AEB0006573733A20307825780A002A2A2A2A2ACC
+:10AEC0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AE2
+:10AED0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AD2
+:10AEE0002A2A2A2A2A2A2A2A2A2A2A2A2A0A006EC8
+:10AEF00072665F6E766D635F77726974655F776F98
+:10AF000072647328290A0000E0930020626F6F7456
+:10AF10006C6F616465723A20626F6F746C6F61640C
+:10AF200065725F6170705F737461727428290A00C2
+:10AF3000626F6F746C6F616465725F6466755F7376
+:10AF40007461727428290A000000000000000000EB
+:10AF50000338FDD870474E656344465500636F70F3
+:10AF6000795F6170705F746F5F6D637528696E746F
+:10AF7000206C656E290A0025303278202530327821
+:10AF800020253032782025303278203A2025303282
+:10AF900078202530327820253032782025303278DC
+:10AFA0000A0A006466755F7472616E73706F727402
+:10AFB0005F6C74656D3A206466755F7472616E7360
+:10AFC000706F72745F6C74656D5F757064617465C9
+:10AFD0005F737461727428290A0053504920696EA6
+:10AFE000697469616C697A6174696F6E20686173F4
+:10AFF00020646F6E652E0A005350492068617320EB
+:10B00000626567756E2E0A006D616C6C6F6328292E
+:10B01000206572726F720A00746F74616C206461D3
+:10B020007461206C656E6774683A20307825782CDE
+:10B030002077726974655F6C656E6774683A20305A
+:10B040007825780A00307825782C20307825782CDF
+:10B0500020307825782C20307825780A0053504904
+:10B060002068617320656E6465642E0A0A00257885
+:10B0700000203A20002530327820253032782025F3
+:10B08000303278202530327820253032780025641F
+:10B09000002825752C202575290A000024A50020EC
+:10B0A00024BB00200403090428034100640061005C
+:10B0B00066007200750069007400200049006E008F
+:10B0C000640075007300740072006900650073000D
+:10B0D0002E0342006C00750065006600720075006A
+:10B0E0006900740020006E005200460035003200F6
+:10B0F0003800340030002000440046005500220390
+:10B1000042006C0075006500660072007500690001
+:10B1100074002000530065007200690061006C003B
+:10B120001C0342006C00750065006600720075002B
+:10B13000690074002000550046003200A4B00F00E2
+:10B14000A8B00F00D0B00F0020810020FEB00F008B
+:10B1500020B10F002530386C582530386C5800EB82
+:10B160003C90554632205546322000020101000233
+:10B1700040003E1FF8200001000100000000000018
+:10B18000000000800029420042004E4354533834EE
+:10B1900030424F4F5446415431362020203C2164E8
+:10B1A0006F63747970652068746D6C3E0A3C6874D6
+:10B1B0006D6C3E3C626F64793E3C7363726970747F
+:10B1C0003E0A6C6F636174696F6E2E7265706C619C
+:10B1D0006365282268747470733A2F2F67697468E6
+:10B1E00075622E636F6D2F63616D692F4172647597
+:10B1F000696E6F436F72652D6E5246353222293B60
+:10B200000A3C2F7363726970743E3C2F626F6479DD
+:10B210003E3C2F68746D6C3E0A000000494E464F5C
+:10B220005F554632545854004CB20F00494E4445C5
+:10B230005820202048544D009DB10F0043555252D4
+:10B24000454E54205546320000000000554632203D
+:10B25000426F6F746C6F6164657220372E302E30D0
+:10B2600020207331343020362E312E310D0A4D6FAF
+:10B2700064656C3A2043414D49204E65637469739F
+:10B28000206E524635323834300D0A426F61726496
+:10B290002D49443A206E524635323834302D4E65B1
+:10B2A000637469732D726576440D0A446174653A5E
+:10B2B0002053657020313020323031390D0A0000C2
+:10B2C00002000000CD910F004D920F0049930F0036
+:10B2D00019930F00B1930F000000000025920F009A
+:10B2E000080000007D950F009D950F000D960F0042
+:10B2F00055960F0005980F00000000008D950F0077
+:10B30000416461667275697400466561746865724E
+:10B31000353238343000000000466561746865726B
+:10B32000206E5246353238343000312E30005465AC
+:10B33000726D696E616C0052545400534547474525
+:10B340005200303132333435363738394142434494
+:10B3500045460020202020202020202028282828A2
+:10B3600028202020202020202020202020202020D5
+:10B370002020208810101010101010101010101025
+:10B380001010100404040404040404040410101035
+:10B3900010101010414141414141010101010101E1
+:10B3A000010101010101010101010101010110106F
+:10B3B00010101010424242424242020202020202B5
+:10B3C0000202020202020202020202020202101041
+:10B3D000101020000000000000000000000000002D
+:10B3E000000000000000000000000000000000005D
+:10B3F000000000000000000000000000000000004D
+:10B40000000000000000000000000000000000003C
+:10B41000000000000000000000000000000000002C
+:10B42000000000000000000000000000000000001C
+:10B43000000000000000000000000000000000000C
+:10B4400000000000000000000000000000000000FC
+:10B45000000000232D302B2000686C4C00656667CF
+:10B46000454647003031323334353637383941427A
+:10B47000434445460030313233343536373839614C
+:10B48000626364656600000000000000B48DFF7F09
+:10B490000100000004800020000000000000000007
+:10B4A000000000000000000000000000000000009C
+:10B4B000000000000000000000000000000000008C
+:10B4C000000000000000000000000000000000007C
+:10B4D000000000000000000000000000000000006C
+:10B4E000000000000000000000000000000000005C
+:10B4F00000000000000000007C7F0020FFFFFFFF35
+:10B50000FF00FFFF32000000FFFFFFFF15000000FB
+:10B5100014000000130000001800000005740F0064
+:10B5200089740F000E810020AC8000203CB10F0018
+:10B530000600000000000000000000000000000005
+:10B54000090262000301008032080B0002020201BE
+:10B550000009040000010202010405240020010585
+:10B5600024010001042402020524060001070581CC
+:10B570000308001009040100020A00000007050288
+:10B580000240000007058202400000090402000298
+:10B590000806500507050302400001070583024025
+:10B5A000000112010002EF0201409A23290000016C
+:10B5B000010203012203000000000000000000005F
+:10B5C000000000000000000000000000000000007B
+:10B5D00000000000000001000090D0030100000006
+:10B5E000C0DA002010000C00000000000000000085
+:0CB5F0009080002025420F0001420F0057
+:020000041000EA
+:0810140000400F0000E00F0096
+:00000001FF
diff --git a/cores/nRF5/Arduino.h b/cores/nRF5/Arduino.h
index 5497dbbd7..beb0bd55f 100644
--- a/cores/nRF5/Arduino.h
+++ b/cores/nRF5/Arduino.h
@@ -29,11 +29,11 @@ extern "C"{
#define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (SystemCoreClock / 1000L) )
#define microsecondsToClockCycles(a) ( (a) * (SystemCoreClock / 1000000L) )
-void yield( void ) ;
+void yield(void);
/* sketch */
-void setup( void ) ;
-void loop( void ) ;
+void setup(void);
+void loop(void);
void suspendLoop(void);
@@ -48,6 +48,7 @@ void suspendLoop(void);
// The following headers are for C++ only compilation
#ifdef __cplusplus
+
#include "WCharacter.h"
#include "WString.h"
#include "Tone.h"
@@ -85,6 +86,8 @@ void suspendLoop(void);
#undef abs
#endif // abs
+// #define min(a, b) ((a)<(b)?(a):(b))
+// #define max(a, b) ((a)>(b)?(a):(b))
#ifdef __cplusplus
template
auto min(const T& a, const L& b) -> decltype((b < a) ? b : a)
@@ -113,7 +116,7 @@ void suspendLoop(void);
#endif
#define abs(x) ((x)>0?(x):-(x))
-#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
+#define constrain(amt, low, high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
#define radians(deg) ((deg)*DEG_TO_RAD)
#define degrees(rad) ((rad)*RAD_TO_DEG)
diff --git a/cores/nRF5/Client.h b/cores/nRF5/Client.h
index b8e5d935f..8f3705e9d 100644
--- a/cores/nRF5/Client.h
+++ b/cores/nRF5/Client.h
@@ -19,27 +19,28 @@
#ifndef client_h
#define client_h
+
#include "Print.h"
#include "Stream.h"
#include "IPAddress.h"
class Client : public Stream {
-
-public:
- virtual int connect(IPAddress ip, uint16_t port) =0;
- virtual int connect(const char *host, uint16_t port) =0;
- virtual size_t write(uint8_t) =0;
- virtual size_t write(const uint8_t *buf, size_t size) =0;
- virtual int available() = 0;
- virtual int read() = 0;
- virtual int read(uint8_t *buf, size_t size) = 0;
- virtual int peek() = 0;
- virtual void flush() = 0;
- virtual void stop() = 0;
- virtual uint8_t connected() = 0;
- virtual operator bool() = 0;
-protected:
- uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); };
+
+ public:
+ virtual int connect(IPAddress ip, uint16_t port) = 0;
+ virtual int connect(const char *host, uint16_t port) = 0;
+ virtual size_t write(uint8_t) = 0;
+ virtual size_t write(const uint8_t *buf, size_t size) = 0;
+ virtual int available() = 0;
+ virtual int read() = 0;
+ virtual int read(uint8_t *buf, size_t size) = 0;
+ virtual int peek() = 0;
+ virtual void flush() = 0;
+ virtual void stop() = 0;
+ virtual uint8_t connected() = 0;
+ virtual operator bool() = 0;
+ protected:
+ uint8_t *rawIPAddress(IPAddress &addr) { return addr.raw_address(); };
};
#endif
diff --git a/cores/nRF5/HardwarePWM.cpp b/cores/nRF5/HardwarePWM.cpp
index 881c054df..23cc751a0 100644
--- a/cores/nRF5/HardwarePWM.cpp
+++ b/cores/nRF5/HardwarePWM.cpp
@@ -45,41 +45,37 @@ HardwarePWM HwPWM2(NRF_PWM2);
HardwarePWM HwPWM3(NRF_PWM3);
#endif
-HardwarePWM* HwPWMx[] =
-{
- &HwPWM0, &HwPWM1, &HwPWM2
+HardwarePWM *HwPWMx[] =
+ {
+ &HwPWM0, &HwPWM1, &HwPWM2
#ifdef NRF_PWM3
- ,&HwPWM3
+ ,&HwPWM3
#endif
-};
-
-HardwarePWM::HardwarePWM(NRF_PWM_Type* pwm)
-{
- _pwm = pwm;
- arrclr(_seq0);
-
- _max_value = 255;
- _clock_div = PWM_PRESCALER_PRESCALER_DIV_1; // 16 Mhz
-
- // FIXME workaround to fix bootloader 0.2.6 does not clean up PSEL[1] of PWM0
- _pwm->PSEL.OUT[1] = 0xFFFFFFFFUL;
+ };
+
+HardwarePWM::HardwarePWM(NRF_PWM_Type *pwm) {
+ _pwm = pwm;
+ arrclr(_seq0);
+
+ _max_value = 255;
+ _clock_div = PWM_PRESCALER_PRESCALER_DIV_1; // 16 Mhz
+
+ // FIXME workaround to fix bootloader 0.2.6 does not clean up PSEL[1] of PWM0
+ _pwm->PSEL.OUT[1] = 0xFFFFFFFFUL;
}
-void HardwarePWM::setResolution(uint8_t bitnum)
-{
- setMaxValue( bit(min8(bitnum, 15)) -1 );
+void HardwarePWM::setResolution(uint8_t bitnum) {
+ setMaxValue(bit(min8(bitnum, 15)) - 1);
}
-void HardwarePWM::setMaxValue(uint16_t value)
-{
- _max_value = value;
- _pwm->COUNTERTOP = value;
+void HardwarePWM::setMaxValue(uint16_t value) {
+ _max_value = value;
+ _pwm->COUNTERTOP = value;
}
-void HardwarePWM::setClockDiv(uint8_t div)
-{
- _clock_div = min8(div, PWM_PRESCALER_PRESCALER_DIV_128);
- _pwm->PRESCALER = _clock_div;
+void HardwarePWM::setClockDiv(uint8_t div) {
+ _clock_div = min8(div, PWM_PRESCALER_PRESCALER_DIV_128);
+ _pwm->PRESCALER = _clock_div;
}
/**
@@ -87,134 +83,124 @@ void HardwarePWM::setClockDiv(uint8_t div)
* @param pin Pin to add
* @return true if add succeeded, or pin is already added
*/
-bool HardwarePWM::addPin(uint8_t pin)
-{
- // succeed if pin is already configured
- if ( pin2channel(pin) >= 0 ) return true;
-
- int ch = -1;
-
- // find free slot which is not connected
- for(int i=0; iPSEL.OUT[i] & PWM_PSEL_OUT_CONNECT_Msk )
- {
- ch = i;
- break;
+bool HardwarePWM::addPin(uint8_t pin) {
+ // succeed if pin is already configured
+ if (pin2channel(pin) >= 0)
+ return true;
+
+ int ch = -1;
+
+ // find free slot which is not connected
+ for (int i = 0; i < MAX_CHANNELS; i++) {
+ if (_pwm->PSEL.OUT[i] & PWM_PSEL_OUT_CONNECT_Msk) {
+ ch = i;
+ break;
+ }
}
- }
- VERIFY ( ch >= 0 );
-
- pinMode(pin, OUTPUT);
- digitalWrite(pin, LOW);
-
- // Must disable before changing PSEL
- if ( enabled() )
- {
- _pwm->ENABLE = 0;
- _pwm->PSEL.OUT[ch] = g_ADigitalPinMap[pin];
- _pwm->ENABLE = 1;
- _start();
- }else
- {
- _pwm->PSEL.OUT[ch] = g_ADigitalPinMap[pin];
- }
-
- return true;
+ VERIFY (ch >= 0);
+
+ pinMode(pin, OUTPUT);
+ digitalWrite(pin, LOW);
+
+ // Must disable before changing PSEL
+ if (enabled()) {
+ _pwm->ENABLE = 0;
+ _pwm->PSEL.OUT[ch] = g_ADigitalPinMap[pin];
+ _pwm->ENABLE = 1;
+ _start();
+ } else {
+ _pwm->PSEL.OUT[ch] = g_ADigitalPinMap[pin];
+ }
+
+ return true;
}
-bool HardwarePWM::removePin(uint8_t pin)
-{
- int ch = pin2channel(pin);
- VERIFY( ch >= 0 );
-
- bool const en = enabled();
-
- // Must disable before changing PSEL
- if ( en ) _pwm->ENABLE = 0;
-
- _pwm->PSEL.OUT[ch] = 0xFFFFFFFFUL;
- _seq0[ch] = 0;
-
- if ( en ) _pwm->ENABLE = 1;
-
- return true;
+bool HardwarePWM::removePin(uint8_t pin) {
+ int ch = pin2channel(pin);
+ VERIFY(ch >= 0);
+
+ bool const en = enabled();
+
+ // Must disable before changing PSEL
+ if (en)
+ _pwm->ENABLE = 0;
+
+ _pwm->PSEL.OUT[ch] = 0xFFFFFFFFUL;
+ _seq0[ch] = 0;
+
+ if (en)
+ _pwm->ENABLE = 1;
+
+ return true;
}
-bool HardwarePWM::enabled (void)
-{
- return _pwm->ENABLE;
+bool HardwarePWM::enabled(void) {
+ return _pwm->ENABLE;
}
-void HardwarePWM::begin(void)
-{
- // Initialize Registers
- _pwm->MODE = PWM_MODE_UPDOWN_Up;
- _pwm->COUNTERTOP = _max_value; // default is 255 (8 bit), can be configured before begin()
- _pwm->PRESCALER = _clock_div;
- _pwm->DECODER = PWM_DECODER_LOAD_Individual;
- _pwm->LOOP = 0;
-
- _pwm->SEQ[0].PTR = (uint32_t) _seq0;
- _pwm->SEQ[0].CNT = MAX_CHANNELS; // default mode is Individual --> count must be 4
- _pwm->SEQ[0].REFRESH = 0;
- _pwm->SEQ[0].ENDDELAY = 0;
-
- _pwm->SEQ[1].PTR = 0;
- _pwm->SEQ[1].CNT = 0;
- _pwm->SEQ[1].REFRESH = 0;
- _pwm->SEQ[1].ENDDELAY = 0;
-
- _pwm->ENABLE = 1;
+void HardwarePWM::begin(void) {
+ // Initialize Registers
+ _pwm->MODE = PWM_MODE_UPDOWN_Up;
+ _pwm->COUNTERTOP = _max_value; // default is 255 (8 bit), can be configured before begin()
+ _pwm->PRESCALER = _clock_div;
+ _pwm->DECODER = PWM_DECODER_LOAD_Individual;
+ _pwm->LOOP = 0;
+
+ _pwm->SEQ[0].PTR = (uint32_t) _seq0;
+ _pwm->SEQ[0].CNT = MAX_CHANNELS; // default mode is Individual --> count must be 4
+ _pwm->SEQ[0].REFRESH = 0;
+ _pwm->SEQ[0].ENDDELAY = 0;
+
+ _pwm->SEQ[1].PTR = 0;
+ _pwm->SEQ[1].CNT = 0;
+ _pwm->SEQ[1].REFRESH = 0;
+ _pwm->SEQ[1].ENDDELAY = 0;
+
+ _pwm->ENABLE = 1;
}
-void HardwarePWM::_start(void)
-{
- // update sequence count (depending on mode)
- // _pwm->SEQ[0].CNT = MAX_CHANNELS;
-
- // start sequence
- _pwm->TASKS_SEQSTART[0] = 1;
+void HardwarePWM::_start(void) {
+ // update sequence count (depending on mode)
+ // _pwm->SEQ[0].CNT = MAX_CHANNELS;
+
+ // start sequence
+ _pwm->TASKS_SEQSTART[0] = 1;
}
-void HardwarePWM::stop(void)
-{
- _pwm->ENABLE = 0;
+void HardwarePWM::stop(void) {
+ _pwm->ENABLE = 0;
}
-bool HardwarePWM::writeChannel(uint8_t ch, uint16_t value, bool inverted )
-{
- VERIFY( ch < MAX_CHANNELS );
-
- _seq0[ch] = value | (inverted ? 0 : bit(15));
-
- // Start PWM if not already
- if ( !enabled() ) begin();
-
- _start();
-
- return true;
+bool HardwarePWM::writeChannel(uint8_t ch, uint16_t value, bool inverted) {
+ VERIFY(ch < MAX_CHANNELS);
+
+ _seq0[ch] = value | (inverted ? 0 : bit(15));
+
+ // Start PWM if not already
+ if (!enabled())
+ begin();
+
+ _start();
+
+ return true;
}
-bool HardwarePWM::writePin(uint8_t pin, uint16_t value, bool inverted)
-{
- int ch = pin2channel(pin);
- VERIFY( ch >= 0 );
-
- return writeChannel(ch, value, inverted);
+bool HardwarePWM::writePin(uint8_t pin, uint16_t value, bool inverted) {
+ int ch = pin2channel(pin);
+ VERIFY(ch >= 0);
+
+ return writeChannel(ch, value, inverted);
}
-uint16_t HardwarePWM::readPin(uint8_t pin)
-{
- int ch = pin2channel(pin);
- VERIFY( ch >= 0, 0);
-
- return readChannel(ch);
+uint16_t HardwarePWM::readPin(uint8_t pin) {
+ int ch = pin2channel(pin);
+ VERIFY(ch >= 0, 0);
+
+ return readChannel(ch);
}
-uint16_t HardwarePWM::readChannel(uint8_t ch)
-{
- // remove inverted bit
- return (_seq0[ch] & 0x7FFF);
+uint16_t HardwarePWM::readChannel(uint8_t ch) {
+ // remove inverted bit
+ return (_seq0[ch] & 0x7FFF);
}
diff --git a/cores/nRF5/HardwarePWM.h b/cores/nRF5/HardwarePWM.h
index bf2691e3f..40826cc43 100644
--- a/cores/nRF5/HardwarePWM.h
+++ b/cores/nRF5/HardwarePWM.h
@@ -45,57 +45,54 @@
#define HWPWM_MODULE_NUM 3
#endif
-class HardwarePWM
-{
- private:
+class HardwarePWM {
+ private:
enum { MAX_CHANNELS = 4 }; // Max channel per group
- NRF_PWM_Type* _pwm;
-
+ NRF_PWM_Type *_pwm;
+
uint16_t _seq0[MAX_CHANNELS];
-
- uint16_t _max_value;
- uint8_t _clock_div;
-
+
+ uint16_t _max_value;
+ uint8_t _clock_div;
+
void _start(void);
-
- public:
- HardwarePWM(NRF_PWM_Type* pwm);
-
+
+ public:
+ HardwarePWM(NRF_PWM_Type *pwm);
+
// Configure
void setResolution(uint8_t bitnum); // set max value by 2^bitnum - 1
void setMaxValue(uint16_t value); // set max value
-
+
void setClockDiv(uint8_t div); // value is PWM_PRESCALER_PRESCALER_DIV_x, DIV1 is 16Mhz
-
- bool addPin (uint8_t pin);
- bool removePin (uint8_t pin);
-
- int pin2channel(uint8_t pin)
- {
- pin = g_ADigitalPinMap[pin];
- for(int i=0; iPSEL.OUT[i] == pin ) return i;
- }
- return (-1);
+
+ bool addPin(uint8_t pin);
+ bool removePin(uint8_t pin);
+
+ int pin2channel(uint8_t pin) {
+ pin = g_ADigitalPinMap[pin];
+ for (int i = 0; i < MAX_CHANNELS; i++) {
+ if (_pwm->PSEL.OUT[i] == pin)
+ return i;
+ }
+ return (-1);
}
-
- bool checkPin(uint8_t pin)
- {
- return pin2channel(pin) >= 0;
+
+ bool checkPin(uint8_t pin) {
+ return pin2channel(pin) >= 0;
}
-
- void begin (void);
- bool enabled (void);
- void stop (void);
-
+
+ void begin(void);
+ bool enabled(void);
+ void stop(void);
+
// Generate PWM
- bool writePin (uint8_t pin, uint16_t value, bool inverted = false);
- bool writeChannel(uint8_t ch , uint16_t value, bool inverted = false);
-
+ bool writePin(uint8_t pin, uint16_t value, bool inverted = false);
+ bool writeChannel(uint8_t ch, uint16_t value, bool inverted = false);
+
// Read current set value
- uint16_t readPin (uint8_t pin);
- uint16_t readChannel (uint8_t ch);
+ uint16_t readPin(uint8_t pin);
+ uint16_t readChannel(uint8_t ch);
};
extern HardwarePWM HwPWM0;
@@ -106,6 +103,6 @@ extern HardwarePWM HwPWM2;
extern HardwarePWM HwPWM3;
#endif
-extern HardwarePWM* HwPWMx[];
+extern HardwarePWM *HwPWMx[];
#endif /* HARDWAREPWM_H_ */
diff --git a/cores/nRF5/HardwareSerial.h b/cores/nRF5/HardwareSerial.h
index 50bb338a8..fa399b966 100644
--- a/cores/nRF5/HardwareSerial.h
+++ b/cores/nRF5/HardwareSerial.h
@@ -19,6 +19,8 @@
#ifndef HardwareSerial_h
#define HardwareSerial_h
+#include "Arduino.h"
+
#include
#include
@@ -72,6 +74,15 @@ class HardwareSerial : public Stream
virtual size_t write(const uint8_t *buffer, size_t size) = 0;
using Print::write; // pull in write(str) from Print
virtual operator bool() = 0;
+
+ unsigned long _TxTimeout;
+ int _RxBufferCapacity;
+
+ using Print::write; // pull in write(str) and write(buf, size) from Print
+
+ void setReadBufferSize(int size);
+ unsigned long getWriteTimeout() const;
+ void setWriteTimeout(unsigned long timeout);
};
extern void serialEventRun(void) __attribute__((weak));
diff --git a/cores/nRF5/IPAddress.cpp b/cores/nRF5/IPAddress.cpp
index 3b93b38f2..d88cf762b 100644
--- a/cores/nRF5/IPAddress.cpp
+++ b/cores/nRF5/IPAddress.cpp
@@ -20,63 +20,52 @@
#include
#include
-IPAddress::IPAddress()
-{
+IPAddress::IPAddress() {
_address.dword = 0;
}
-IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet)
-{
+IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) {
_address.bytes[0] = first_octet;
_address.bytes[1] = second_octet;
_address.bytes[2] = third_octet;
_address.bytes[3] = fourth_octet;
}
-IPAddress::IPAddress(uint32_t address)
-{
+IPAddress::IPAddress(uint32_t address) {
_address.dword = address;
}
-IPAddress::IPAddress(const uint8_t *address)
-{
+IPAddress::IPAddress(const uint8_t *address) {
memcpy(_address.bytes, address, sizeof(_address.bytes));
}
-bool IPAddress::fromString(const char *address)
-{
+bool IPAddress::fromString(const char *address) {
// TODO: add support for "a", "a.b", "a.b.c" formats
-
+
uint16_t acc = 0; // Accumulator
uint8_t dots = 0;
-
- while (*address)
- {
+
+ while (*address) {
char c = *address++;
- if (c >= '0' && c <= '9')
- {
+ if (c >= '0' && c <= '9') {
acc = acc * 10 + (c - '0');
if (acc > 255) {
// Value out of [0..255] range
return false;
}
- }
- else if (c == '.')
- {
+ } else if (c == '.') {
if (dots == 3) {
// Too much dots (there must be 3 dots)
return false;
}
_address.bytes[dots++] = acc;
acc = 0;
- }
- else
- {
+ } else {
// Invalid char
return false;
}
}
-
+
if (dots != 3) {
// Too few dots (there must be 3 dots)
return false;
@@ -85,28 +74,23 @@ bool IPAddress::fromString(const char *address)
return true;
}
-IPAddress& IPAddress::operator=(const uint8_t *address)
-{
+IPAddress &IPAddress::operator=(const uint8_t *address) {
memcpy(_address.bytes, address, sizeof(_address.bytes));
return *this;
}
-IPAddress& IPAddress::operator=(uint32_t address)
-{
+IPAddress &IPAddress::operator=(uint32_t address) {
_address.dword = address;
return *this;
}
-bool IPAddress::operator==(const uint8_t* addr) const
-{
+bool IPAddress::operator==(const uint8_t *addr) const {
return memcmp(addr, _address.bytes, sizeof(_address.bytes)) == 0;
}
-size_t IPAddress::printTo(Print& p) const
-{
+size_t IPAddress::printTo(Print &p) const {
size_t n = 0;
- for (int i =0; i < 3; i++)
- {
+ for (int i = 0; i < 3; i++) {
n += p.print(_address.bytes[i], DEC);
n += p.print('.');
}
diff --git a/cores/nRF5/IPAddress.h b/cores/nRF5/IPAddress.h
index d762f2c02..77505f543 100644
--- a/cores/nRF5/IPAddress.h
+++ b/cores/nRF5/IPAddress.h
@@ -27,52 +27,57 @@
// A class to make it easier to handle and pass around IP addresses
class IPAddress : public Printable {
-private:
+ private:
union {
- uint8_t bytes[4]; // IPv4 address
- uint32_t dword;
+ uint8_t bytes[4]; // IPv4 address
+ uint32_t dword;
} _address;
-
+
// Access the raw byte array containing the address. Because this returns a pointer
// to the internal structure rather than a copy of the address this function should only
// be used when you know that the usage of the returned uint8_t* will be transient and not
// stored.
- uint8_t* raw_address() { return _address.bytes; };
-
-public:
+ uint8_t *raw_address() { return _address.bytes; };
+
+ public:
// Constructors
IPAddress();
IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet);
IPAddress(uint32_t address);
IPAddress(const uint8_t *address);
-
+
bool fromString(const char *address);
bool fromString(const String &address) { return fromString(address.c_str()); }
-
+
// Overloaded cast operator to allow IPAddress objects to be used where a pointer
// to a four-byte uint8_t array is expected
operator uint32_t() const { return _address.dword; };
- bool operator==(const IPAddress& addr) const { return _address.dword == addr._address.dword; };
- bool operator==(const uint8_t* addr) const;
-
+ bool operator==(const IPAddress &addr) const { return _address.dword == addr._address.dword; };
+ bool operator==(const uint8_t *addr) const;
+
// Overloaded index operator to allow getting and setting individual octets of the address
uint8_t operator[](int index) const { return _address.bytes[index]; };
- uint8_t& operator[](int index) { return _address.bytes[index]; };
-
+ uint8_t &operator[](int index) { return _address.bytes[index]; };
+
// Overloaded copy operators to allow initialisation of IPAddress objects from other types
- IPAddress& operator=(const uint8_t *address);
- IPAddress& operator=(uint32_t address);
-
- virtual size_t printTo(Print& p) const;
-
+ IPAddress &operator=(const uint8_t *address);
+ IPAddress &operator=(uint32_t address);
+
+ virtual size_t printTo(Print &p) const;
+
friend class EthernetClass;
+
friend class UDP;
+
friend class Client;
+
friend class Server;
+
friend class DhcpClass;
+
friend class DNSClient;
};
-const IPAddress INADDR_NONE(0,0,0,0);
+const IPAddress INADDR_NONE(0, 0, 0, 0);
#endif
diff --git a/cores/nRF5/Print.cpp b/cores/nRF5/Print.cpp
index de6e1a122..8f1d98d00 100644
--- a/cores/nRF5/Print.cpp
+++ b/cores/nRF5/Print.cpp
@@ -28,239 +28,219 @@
// Public Methods //////////////////////////////////////////////////////////////
/* default implementation: may be overridden */
-size_t Print::write(const uint8_t *buffer, size_t size)
-{
- size_t n = 0;
- while (size--) {
- if (write(*buffer++)) n++;
- else break;
- }
- return n;
+size_t Print::write(const uint8_t *buffer, size_t size) {
+ size_t n = 0;
+ while (size--) {
+ if (write(*buffer++))
+ n++;
+ else
+ break;
+ }
+ return n;
}
-size_t Print::print(const __FlashStringHelper *ifsh)
-{
- return print(reinterpret_cast(ifsh));
+size_t Print::print(const __FlashStringHelper *ifsh) {
+ return print(reinterpret_cast(ifsh));
}
-size_t Print::print(const String &s)
-{
- return write(s.c_str(), s.length());
+size_t Print::print(const String &s) {
+ return write(s.c_str(), s.length());
}
-size_t Print::print(const char str[])
-{
- return write(str);
+size_t Print::print(const char str[]) {
+ return write(str);
}
-size_t Print::print(char c)
-{
- return write(c);
+size_t Print::print(char c) {
+ return write(c);
}
-size_t Print::print(unsigned char b, int base)
-{
- return print((unsigned long) b, base);
+size_t Print::print(unsigned char b, int base) {
+ return print((unsigned long) b, base);
}
-size_t Print::print(int n, int base)
-{
- return print((long) n, base);
+size_t Print::print(int n, int base) {
+ return print((long) n, base);
}
-size_t Print::print(unsigned int n, int base)
-{
- return print((unsigned long) n, base);
+size_t Print::print(unsigned int n, int base) {
+ return print((unsigned long) n, base);
}
-size_t Print::print(long n, int base)
-{
- if (base == 0) {
- return write(n);
- } else if (base == 10) {
- if (n < 0) {
- int t = print('-');
- n = -n;
- return printNumber(n, 10) + t;
+size_t Print::print(long n, int base) {
+ if (base == 0) {
+ return write(n);
+ } else if (base == 10) {
+ if (n < 0) {
+ int t = print('-');
+ n = -n;
+ return printNumber(n, 10) + t;
+ }
+ return printNumber(n, 10);
+ } else {
+ return printNumber(n, base);
}
- return printNumber(n, 10);
- } else {
- return printNumber(n, base);
- }
}
-size_t Print::print(unsigned long n, int base)
-{
- if (base == 0) return write(n);
- else return printNumber(n, base);
+size_t Print::print(unsigned long n, int base) {
+ if (base == 0)
+ return write(n);
+ else
+ return printNumber(n, base);
}
-size_t Print::print(double n, int digits)
-{
- return printFloat(n, digits);
+size_t Print::print(double n, int digits) {
+ return printFloat(n, digits);
}
-size_t Print::println(const __FlashStringHelper *ifsh)
-{
- size_t n = print(ifsh);
- n += println();
- return n;
+size_t Print::println(const __FlashStringHelper *ifsh) {
+ size_t n = print(ifsh);
+ n += println();
+ return n;
}
-size_t Print::print(const Printable& x)
-{
- return x.printTo(*this);
+size_t Print::print(const Printable &x) {
+ return x.printTo(*this);
}
-size_t Print::println(void)
-{
- return write("\r\n");
+size_t Print::println(void) {
+ return write("\r\n");
}
-size_t Print::println(const String &s)
-{
- size_t n = print(s);
- n += println();
- return n;
+size_t Print::println(const String &s) {
+ size_t n = print(s);
+ n += println();
+ return n;
}
-size_t Print::println(const char c[])
-{
- size_t n = print(c);
- n += println();
- return n;
+size_t Print::println(const char c[]) {
+ size_t n = print(c);
+ n += println();
+ return n;
}
-size_t Print::println(char c)
-{
- size_t n = print(c);
- n += println();
- return n;
+size_t Print::println(char c) {
+ size_t n = print(c);
+ n += println();
+ return n;
}
-size_t Print::println(unsigned char b, int base)
-{
- size_t n = print(b, base);
- n += println();
- return n;
+size_t Print::println(unsigned char b, int base) {
+ size_t n = print(b, base);
+ n += println();
+ return n;
}
-size_t Print::println(int num, int base)
-{
- size_t n = print(num, base);
- n += println();
- return n;
+size_t Print::println(int num, int base) {
+ size_t n = print(num, base);
+ n += println();
+ return n;
}
-size_t Print::println(unsigned int num, int base)
-{
- size_t n = print(num, base);
- n += println();
- return n;
+size_t Print::println(unsigned int num, int base) {
+ size_t n = print(num, base);
+ n += println();
+ return n;
}
-size_t Print::println(long num, int base)
-{
- size_t n = print(num, base);
- n += println();
- return n;
+size_t Print::println(long num, int base) {
+ size_t n = print(num, base);
+ n += println();
+ return n;
}
-size_t Print::println(unsigned long num, int base)
-{
- size_t n = print(num, base);
- n += println();
- return n;
+size_t Print::println(unsigned long num, int base) {
+ size_t n = print(num, base);
+ n += println();
+ return n;
}
-size_t Print::println(double num, int digits)
-{
- size_t n = print(num, digits);
- n += println();
- return n;
+size_t Print::println(double num, int digits) {
+ size_t n = print(num, digits);
+ n += println();
+ return n;
}
-size_t Print::println(const Printable& x)
-{
- size_t n = print(x);
- n += println();
- return n;
+size_t Print::println(const Printable &x) {
+ size_t n = print(x);
+ n += println();
+ return n;
}
-size_t Print::printf(const char * format, ...)
-{
- char buf[256];
- int len;
-
- va_list ap;
- va_start(ap, format);
-
- len = vsnprintf(buf, 256, format, ap);
- this->write(buf, len);
-
- va_end(ap);
- return len;
+size_t Print::printf(const char *format, ...) {
+ char buf[256];
+ int len;
+
+ va_list ap;
+ va_start(ap, format);
+
+ len = vsnprintf(buf, 256, format, ap);
+ this->write(buf, len);
+
+ va_end(ap);
+ return len;
}
// Private Methods /////////////////////////////////////////////////////////////
-size_t Print::printNumber(unsigned long n, uint8_t base)
-{
- char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte.
- char *str = &buf[sizeof(buf) - 1];
-
- *str = '\0';
-
- // prevent crash if called with base == 1
- if (base < 2) base = 10;
-
- do {
- char c = n % base;
- n /= base;
-
- *--str = c < 10 ? c + '0' : c + 'A' - 10;
- } while(n);
-
- return write(str);
-}
-
-size_t Print::printFloat(double number, uint8_t digits)
-{
- char buf[256];
- size_t s=0;
-
- s = snprintf(buf, 256, "%.*f", digits, number);
- s = write(buf, s);
- return s;
-}
-
-size_t Print::printBuffer(uint8_t const buffer[], int len, char delim, int byteline)
-{
- if (buffer == NULL || len == 0) return 0;
-
- for(int i=0; iprintf("%02X", buffer[i]);
- }
-
- return (len*3 - 1);
-}
-
-size_t Print::printBufferReverse(uint8_t const buffer[], int len, char delim, int byteline)
-{
- if (buffer == NULL || len == 0) return 0;
-
- for(int i=0; iprintf("%02X", buffer[len-1-i]);
- }
-
- return (len*3 - 1);
+size_t Print::printNumber(unsigned long n, uint8_t base) {
+ char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte.
+ char *str = &buf[sizeof(buf) - 1];
+
+ *str = '\0';
+
+ // prevent crash if called with base == 1
+ if (base < 2)
+ base = 10;
+
+ do {
+ char c = n % base;
+ n /= base;
+
+ *--str = c < 10 ? c + '0' : c + 'A' - 10;
+ } while (n);
+
+ return write(str);
+}
+
+size_t Print::printFloat(double number, uint8_t digits) {
+ char buf[256];
+ size_t s = 0;
+
+ s = snprintf(buf, 256, "%.*f", digits, number);
+ s = write(buf, s);
+ return s;
+}
+
+size_t Print::printBuffer(uint8_t const buffer[], int len, char delim, int byteline) {
+ if (buffer == NULL || len == 0)
+ return 0;
+
+ for (int i = 0; i < len; i++) {
+ if (i != 0)
+ print(delim);
+ if (byteline && (i % byteline == 0))
+ println();
+
+ this->printf("%02X", buffer[i]);
+ }
+
+ return (len * 3 - 1);
+}
+
+size_t Print::printBufferReverse(uint8_t const buffer[], int len, char delim, int byteline) {
+ if (buffer == NULL || len == 0)
+ return 0;
+
+ for (int i = 0; i < len; i++) {
+ if (i != 0)
+ print(delim);
+ if (byteline && (i % byteline == 0))
+ println();
+
+ this->printf("%02X", buffer[len - 1 - i]);
+ }
+
+ return (len * 3 - 1);
}
diff --git a/cores/nRF5/Print.h b/cores/nRF5/Print.h
index a9a8f865e..9745c75ea 100644
--- a/cores/nRF5/Print.h
+++ b/cores/nRF5/Print.h
@@ -31,29 +31,29 @@
#define OCT 8
#define BIN 2
-class Print
-{
- private:
+class Print {
+ private:
int write_error;
size_t printNumber(unsigned long, uint8_t);
size_t printFloat(double, uint8_t);
- protected:
+ protected:
void setWriteError(int err = 1) { write_error = err; }
- public:
+ public:
Print() : write_error(0) {}
-
+
int getWriteError() { return write_error; }
void clearWriteError() { setWriteError(0); }
-
+
virtual size_t write(uint8_t) = 0;
virtual size_t write(const uint8_t *buffer, size_t size);
-
+
size_t write(const char *str) {
- if (str == NULL) return 0;
- return write((const uint8_t *)str, strlen(str));
+ if (str == NULL)
+ return 0;
+ return write((const uint8_t *) str, strlen(str));
}
size_t write(const char *buffer, size_t size) {
- return write((const uint8_t *)buffer, size);
+ return write((const uint8_t *) buffer, size);
}
// default to zero, meaning "a single write may block"
@@ -70,8 +70,8 @@ class Print
size_t print(long, int = DEC);
size_t print(unsigned long, int = DEC);
size_t print(double, int = 2);
- size_t print(const Printable&);
-
+ size_t print(const Printable &);
+
size_t println(const __FlashStringHelper *);
size_t println(const String &s);
size_t println(const char[]);
@@ -82,21 +82,19 @@ class Print
size_t println(long, int = DEC);
size_t println(unsigned long, int = DEC);
size_t println(double, int = 2);
- size_t println(const Printable&);
+ size_t println(const Printable &);
size_t println(void);
-
- size_t printf(const char * format, ...);
-
- size_t printBuffer(uint8_t const buffer[], int len, char delim=' ', int byteline = 0);
- size_t printBuffer(char const buffer[], int size, char delim=' ', int byteline = 0)
- {
- return printBuffer((uint8_t const*) buffer, size, delim, byteline);
+
+ size_t printf(const char *format, ...);
+
+ size_t printBuffer(uint8_t const buffer[], int len, char delim = ' ', int byteline = 0);
+ size_t printBuffer(char const buffer[], int size, char delim = ' ', int byteline = 0) {
+ return printBuffer((uint8_t const *) buffer, size, delim, byteline);
}
-
- size_t printBufferReverse(uint8_t const buffer[], int len, char delim=' ', int byteline = 0);
- size_t printBufferReverse(char const buffer[], int size, char delim=' ', int byteline = 0)
- {
- return printBufferReverse((uint8_t const*) buffer, size, delim, byteline);
+
+ size_t printBufferReverse(uint8_t const buffer[], int len, char delim = ' ', int byteline = 0);
+ size_t printBufferReverse(char const buffer[], int size, char delim = ' ', int byteline = 0) {
+ return printBufferReverse((uint8_t const *) buffer, size, delim, byteline);
}
};
diff --git a/cores/nRF5/Printable.h b/cores/nRF5/Printable.h
index d1c95991f..20186684c 100644
--- a/cores/nRF5/Printable.h
+++ b/cores/nRF5/Printable.h
@@ -29,10 +29,9 @@ class Print;
Print::print and Print::println methods.
*/
-class Printable
-{
- public:
- virtual size_t printTo(Print& p) const = 0;
+class Printable {
+ public:
+ virtual size_t printTo(Print &p) const = 0;
};
#endif
diff --git a/cores/nRF5/RingBuffer.cpp b/cores/nRF5/RingBuffer.cpp
index d877a6e30..c6b4d6ac0 100644
--- a/cores/nRF5/RingBuffer.cpp
+++ b/cores/nRF5/RingBuffer.cpp
@@ -19,68 +19,59 @@
#include "RingBuffer.h"
#include
-RingBuffer::RingBuffer( void )
-{
- memset( _aucBuffer, 0, SERIAL_BUFFER_SIZE ) ;
+RingBuffer::RingBuffer(void) {
+ memset(_aucBuffer, 0, SERIAL_BUFFER_SIZE);
clear();
}
-void RingBuffer::store_char( uint8_t c )
-{
- int i = nextIndex(_iHead);
-
- // if we should be storing the received character into the location
- // just before the tail (meaning that the head would advance to the
- // current location of the tail), we're about to overflow the buffer
- // and so we don't write the character or advance the head.
- if ( i != _iTail )
- {
- _aucBuffer[_iHead] = c ;
- _iHead = i ;
- }
+void RingBuffer::store_char(uint8_t c) {
+ int i = nextIndex(_iHead);
+
+ // if we should be storing the received character into the location
+ // just before the tail (meaning that the head would advance to the
+ // current location of the tail), we're about to overflow the buffer
+ // and so we don't write the character or advance the head.
+ if (i != _iTail) {
+ _aucBuffer[_iHead] = c;
+ _iHead = i;
+ }
}
-void RingBuffer::clear()
-{
- _iHead = 0;
- _iTail = 0;
+void RingBuffer::clear() {
+ _iHead = 0;
+ _iTail = 0;
}
-int RingBuffer::read_char()
-{
- if(_iTail == _iHead)
- return -1;
-
- uint8_t value = _aucBuffer[_iTail];
- _iTail = nextIndex(_iTail);
-
- return value;
+int RingBuffer::read_char() {
+ if (_iTail == _iHead)
+ return -1;
+
+ uint8_t value = _aucBuffer[_iTail];
+ _iTail = nextIndex(_iTail);
+
+ return value;
}
-int RingBuffer::available()
-{
- int delta = _iHead - _iTail;
-
- if(delta < 0)
- return SERIAL_BUFFER_SIZE + delta;
- else
- return delta;
+int RingBuffer::available() {
+ int delta = _iHead - _iTail;
+
+ if (delta < 0)
+ return SERIAL_BUFFER_SIZE + delta;
+ else
+ return delta;
}
-int RingBuffer::peek()
-{
- if(_iTail == _iHead)
- return -1;
-
- return _aucBuffer[_iTail];
+int RingBuffer::peek() {
+ if (_iTail == _iHead)
+ return -1;
+
+ return _aucBuffer[_iTail];
}
-int RingBuffer::nextIndex(int index)
-{
- return (uint32_t)(index + 1) % SERIAL_BUFFER_SIZE;
+int RingBuffer::nextIndex(int index) {
+ return (uint32_t)(index + 1) % SERIAL_BUFFER_SIZE;
}
-bool RingBuffer::isFull()
-{
- return (nextIndex(_iHead) == _iTail);
+bool RingBuffer::isFull() {
+ return (nextIndex(_iHead) == _iTail);
}
diff --git a/cores/nRF5/RingBuffer.h b/cores/nRF5/RingBuffer.h
index e212e6b60..cf7ff43aa 100644
--- a/cores/nRF5/RingBuffer.h
+++ b/cores/nRF5/RingBuffer.h
@@ -25,26 +25,25 @@
// using a ring buffer (I think), in which head is the index of the location
// to which to write the next incoming character and tail is the index of the
// location from which to read.
-#define SERIAL_BUFFER_SIZE 64
-
-class RingBuffer
-{
- public:
- uint8_t _aucBuffer[SERIAL_BUFFER_SIZE] ;
- int _iHead ;
- int _iTail ;
-
- public:
- RingBuffer( void ) ;
- void store_char( uint8_t c ) ;
- void clear();
- int read_char();
- int available();
- int peek();
- bool isFull();
-
- private:
- int nextIndex(int index);
-} ;
+#define SERIAL_BUFFER_SIZE 128
+
+class RingBuffer {
+ public:
+ uint8_t _aucBuffer[SERIAL_BUFFER_SIZE];
+ int _iHead;
+ int _iTail;
+
+ public:
+ RingBuffer(void);
+ void store_char(uint8_t c);
+ void clear();
+ int read_char();
+ int available();
+ int peek();
+ bool isFull();
+
+ private:
+ int nextIndex(int index);
+};
#endif /* _RING_BUFFER_ */
diff --git a/cores/nRF5/Server.h b/cores/nRF5/Server.h
index 69e3e39fe..9021f6948 100644
--- a/cores/nRF5/Server.h
+++ b/cores/nRF5/Server.h
@@ -23,8 +23,8 @@
#include "Print.h"
class Server : public Print {
-public:
- virtual void begin() =0;
+ public:
+ virtual void begin() = 0;
};
#endif
diff --git a/cores/nRF5/Stream.cpp b/cores/nRF5/Stream.cpp
index 21c65d723..2e3f96710 100644
--- a/cores/nRF5/Stream.cpp
+++ b/cores/nRF5/Stream.cpp
@@ -55,32 +55,35 @@ int Stream::timedPeek()
// returns peek of the next digit in the stream or -1 if timeout
// discards non-numeric characters
-int Stream::peekNextDigit(LookaheadMode lookahead, bool detectDecimal)
-{
- int c;
- while (1) {
- c = timedPeek();
-
- if( c < 0 ||
- c == '-' ||
- (c >= '0' && c <= '9') ||
- (detectDecimal && c == '.')) return c;
-
- switch( lookahead ){
- case SKIP_NONE: return -1; // Fail code.
- case SKIP_WHITESPACE:
- switch( c ){
- case ' ':
- case '\t':
- case '\r':
- case '\n': break;
- default: return -1; // Fail code.
- }
- case SKIP_ALL:
- break;
+int Stream::peekNextDigit(LookaheadMode lookahead, bool detectDecimal) {
+ int c;
+ while (1) {
+ c = timedPeek();
+
+ if (c < 0 ||
+ c == '-' ||
+ (c >= '0' && c <= '9') ||
+ (detectDecimal && c == '.'))
+ return c;
+
+ switch (lookahead) {
+ case SKIP_NONE:
+ return -1; // Fail code.
+ case SKIP_WHITESPACE:
+ switch (c) {
+ case ' ':
+ case '\t':
+ case '\r':
+ case '\n':
+ break;
+ default:
+ return -1; // Fail code.
+ }
+ case SKIP_ALL:
+ break;
+ }
+ read(); // discard non-numeric
}
- read(); // discard non-numeric
- }
}
// Public Methods
@@ -88,40 +91,37 @@ int Stream::peekNextDigit(LookaheadMode lookahead, bool detectDecimal)
void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait
{
- _timeout = timeout;
+ _timeout = timeout;
}
- // find returns true if the target string is found
-bool Stream::find(char *target)
-{
- return findUntil(target, strlen(target), NULL, 0);
+// find returns true if the target string is found
+bool Stream::find(char *target) {
+ return findUntil(target, strlen(target), NULL, 0);
}
// reads data from the stream until the target string of given length is found
// returns true if target string is found, false if timed out
-bool Stream::find(char *target, size_t length)
-{
- return findUntil(target, length, NULL, 0);
+bool Stream::find(char *target, size_t length) {
+ return findUntil(target, length, NULL, 0);
}
// as find but search ends if the terminator string is found
-bool Stream::findUntil(char *target, char *terminator)
-{
- return findUntil(target, strlen(target), terminator, strlen(terminator));
+bool Stream::findUntil(char *target, char *terminator) {
+ return findUntil(target, strlen(target), terminator, strlen(terminator));
}
// reads data from the stream until the target string of the given length is found
// search terminated if the terminator string is found
// returns true if target string is found, false if terminated or timed out
-bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen)
-{
- if (terminator == NULL) {
- MultiTarget t[1] = {{target, targetLen, 0}};
- return findMulti(t, 1) == 0 ? true : false;
- } else {
- MultiTarget t[2] = {{target, targetLen, 0}, {terminator, termLen, 0}};
- return findMulti(t, 2) == 0 ? true : false;
- }
+bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) {
+ if (terminator == NULL) {
+ MultiTarget t[1] = {{target, targetLen, 0}};
+ return findMulti(t, 1) == 0 ? true : false;
+ } else {
+ MultiTarget t[2] = {{target, targetLen, 0},
+ {terminator, termLen, 0}};
+ return findMulti(t, 2) == 0 ? true : false;
+ }
}
// returns the first valid (long) integer value from the current position.
@@ -129,71 +129,65 @@ bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t
// See LookaheadMode enumeration at the top of the file.
// Lookahead is terminated by the first character that is not a valid part of an integer.
// Once parsing commences, 'ignore' will be skipped in the stream.
-long Stream::parseInt(LookaheadMode lookahead, char ignore)
-{
- bool isNegative = false;
- long value = 0;
- int c;
-
- c = peekNextDigit(lookahead, false);
- // ignore non numeric leading characters
- if(c < 0)
- return 0; // zero returned if timeout
-
- do{
- if(c == ignore)
- ; // ignore this character
- else if(c == '-')
- isNegative = true;
- else if(c >= '0' && c <= '9') // is c a digit?
- value = value * 10 + c - '0';
- read(); // consume the character we got with peek
- c = timedPeek();
- }
- while( (c >= '0' && c <= '9') || c == ignore );
-
- if(isNegative)
- value = -value;
- return value;
+long Stream::parseInt(LookaheadMode lookahead, char ignore) {
+ bool isNegative = false;
+ long value = 0;
+ int c;
+
+ c = peekNextDigit(lookahead, false);
+ // ignore non numeric leading characters
+ if (c < 0)
+ return 0; // zero returned if timeout
+
+ do {
+ if (c == ignore); // ignore this character
+ else if (c == '-')
+ isNegative = true;
+ else if (c >= '0' && c <= '9') // is c a digit?
+ value = value * 10 + c - '0';
+ read(); // consume the character we got with peek
+ c = timedPeek();
+ } while ((c >= '0' && c <= '9') || c == ignore);
+
+ if (isNegative)
+ value = -value;
+ return value;
}
// as parseInt but returns a floating point value
-float Stream::parseFloat(LookaheadMode lookahead, char ignore)
-{
- bool isNegative = false;
- bool isFraction = false;
- long value = 0;
- int c;
- float fraction = 1.0;
-
- c = peekNextDigit(lookahead, true);
+float Stream::parseFloat(LookaheadMode lookahead, char ignore) {
+ bool isNegative = false;
+ bool isFraction = false;
+ long value = 0;
+ int c;
+ float fraction = 1.0;
+
+ c = peekNextDigit(lookahead, true);
// ignore non numeric leading characters
- if(c < 0)
- return 0; // zero returned if timeout
-
- do{
- if(c == ignore)
- ; // ignore
- else if(c == '-')
- isNegative = true;
- else if (c == '.')
- isFraction = true;
- else if(c >= '0' && c <= '9') { // is c a digit?
- value = value * 10 + c - '0';
- if(isFraction)
- fraction *= 0.1;
- }
- read(); // consume the character we got with peek
- c = timedPeek();
- }
- while( (c >= '0' && c <= '9') || (c == '.' && !isFraction) || c == ignore );
-
- if(isNegative)
- value = -value;
- if(isFraction)
- return value * fraction;
- else
- return value;
+ if (c < 0)
+ return 0; // zero returned if timeout
+
+ do {
+ if (c == ignore); // ignore
+ else if (c == '-')
+ isNegative = true;
+ else if (c == '.')
+ isFraction = true;
+ else if (c >= '0' && c <= '9') { // is c a digit?
+ value = value * 10 + c - '0';
+ if (isFraction)
+ fraction *= 0.1;
+ }
+ read(); // consume the character we got with peek
+ c = timedPeek();
+ } while ((c >= '0' && c <= '9') || (c == '.' && !isFraction) || c == ignore);
+
+ if (isNegative)
+ value = -value;
+ if (isFraction)
+ return value * fraction;
+ else
+ return value;
}
// read characters from stream into buffer
@@ -201,16 +195,16 @@ float Stream::parseFloat(LookaheadMode lookahead, char ignore)
// returns the number of characters placed in the buffer
// the buffer is NOT null terminated.
//
-size_t Stream::readBytes(char *buffer, size_t length)
-{
- size_t count = 0;
- while (count < length) {
- int c = timedRead();
- if (c < 0) break;
- *buffer++ = (char)c;
- count++;
- }
- return count;
+size_t Stream::readBytes(char *buffer, size_t length) {
+ size_t count = 0;
+ while (count < length) {
+ int c = timedRead();
+ if (c < 0)
+ break;
+ *buffer++ = (char) c;
+ count++;
+ }
+ return count;
}
@@ -218,104 +212,101 @@ size_t Stream::readBytes(char *buffer, size_t length)
// terminates if length characters have been read, timeout, or if the terminator character detected
// returns the number of characters placed in the buffer (0 means no valid data found)
-size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length)
-{
- if (length < 1) return 0;
- size_t index = 0;
- while (index < length) {
- int c = timedRead();
- if (c < 0 || c == terminator) break;
- *buffer++ = (char)c;
- index++;
- }
- return index; // return number of characters, not including null terminator
-}
-
-String Stream::readString()
-{
- String ret;
- int c = timedRead();
- while (c >= 0)
- {
- ret += (char)c;
- c = timedRead();
- }
- return ret;
+size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) {
+ if (length < 1)
+ return 0;
+ size_t index = 0;
+ while (index < length) {
+ int c = timedRead();
+ if (c < 0 || c == terminator)
+ break;
+ *buffer++ = (char) c;
+ index++;
+ }
+ return index; // return number of characters, not including null terminator
}
-String Stream::readStringUntil(char terminator)
-{
- String ret;
- int c = timedRead();
- while (c >= 0 && c != terminator)
- {
- ret += (char)c;
- c = timedRead();
- }
- return ret;
+String Stream::readString() {
+ String ret;
+ int c = timedRead();
+ while (c >= 0) {
+ ret += (char) c;
+ c = timedRead();
+ }
+ return ret;
}
-int Stream::findMulti( struct Stream::MultiTarget *targets, int tCount) {
- // any zero length target string automatically matches and would make
- // a mess of the rest of the algorithm.
- for (struct MultiTarget *t = targets; t < targets+tCount; ++t) {
- if (t->len <= 0)
- return t - targets;
- }
-
- while (1) {
+String Stream::readStringUntil(char terminator) {
+ String ret;
int c = timedRead();
- if (c < 0)
- return -1;
-
- for (struct MultiTarget *t = targets; t < targets+tCount; ++t) {
- // the simple case is if we match, deal with that first.
- if (c == t->str[t->index]) {
- if (++t->index == t->len)
- return t - targets;
- else
- continue;
- }
-
- // if not we need to walk back and see if we could have matched further
- // down the stream (ie '1112' doesn't match the first position in '11112'
- // but it will match the second position so we can't just reset the current
- // index to 0 when we find a mismatch.
- if (t->index == 0)
- continue;
-
- int origIndex = t->index;
- do {
- --t->index;
- // first check if current char works against the new current index
- if (c != t->str[t->index])
- continue;
-
- // if it's the only char then we're good, nothing more to check
- if (t->index == 0) {
- t->index++;
- break;
- }
-
- // otherwise we need to check the rest of the found string
- int diff = origIndex - t->index;
- size_t i;
- for (i = 0; i < t->index; ++i) {
- if (t->str[i] != t->str[i + diff])
- break;
- }
+ while (c >= 0 && c != terminator) {
+ ret += (char) c;
+ c = timedRead();
+ }
+ return ret;
+}
- // if we successfully got through the previous loop then our current
- // index is good.
- if (i == t->index) {
- t->index++;
- break;
+int Stream::findMulti(struct Stream::MultiTarget *targets, int tCount) {
+ // any zero length target string automatically matches and would make
+ // a mess of the rest of the algorithm.
+ for (struct MultiTarget *t = targets; t < targets + tCount; ++t) {
+ if (t->len <= 0)
+ return t - targets;
+ }
+
+ while (1) {
+ int c = timedRead();
+ if (c < 0)
+ return -1;
+
+ for (struct MultiTarget *t = targets; t < targets + tCount; ++t) {
+ // the simple case is if we match, deal with that first.
+ if (c == t->str[t->index]) {
+ if (++t->index == t->len)
+ return t - targets;
+ else
+ continue;
+ }
+
+ // if not we need to walk back and see if we could have matched further
+ // down the stream (ie '1112' doesn't match the first position in '11112'
+ // but it will match the second position so we can't just reset the current
+ // index to 0 when we find a mismatch.
+ if (t->index == 0)
+ continue;
+
+ int origIndex = t->index;
+ do {
+ --t->index;
+ // first check if current char works against the new current index
+ if (c != t->str[t->index])
+ continue;
+
+ // if it's the only char then we're good, nothing more to check
+ if (t->index == 0) {
+ t->index++;
+ break;
+ }
+
+ // otherwise we need to check the rest of the found string
+ int diff = origIndex - t->index;
+ size_t i;
+ for (i = 0; i < t->index; ++i) {
+ if (t->str[i] != t->str[i + diff])
+ break;
+ }
+
+ // if we successfully got through the previous loop then our current
+ // index is good.
+ if (i == t->index) {
+ t->index++;
+ break;
+ }
+
+ // otherwise we just try the next index
+ } while (t->index);
}
-
- // otherwise we just try the next index
- } while (t->index);
}
- }
- // unreachable
- return -1;
+ // unreachable
+ return -1;
}
diff --git a/cores/nRF5/Stream.h b/cores/nRF5/Stream.h
index 684aa7eb5..b2f56d214 100644
--- a/cores/nRF5/Stream.h
+++ b/cores/nRF5/Stream.h
@@ -38,7 +38,7 @@ readBytesBetween( pre_string, terminator, buffer, length)
// This enumeration provides the lookahead options for parseInt(), parseFloat()
// The rules set out here are used until either the first valid character is found
// or a time out occurs due to lack of input.
-enum LookaheadMode{
+enum LookaheadMode {
SKIP_ALL, // All invalid characters are ignored.
SKIP_NONE, // Nothing is skipped, and the stream is not touched unless the first waiting character is valid.
SKIP_WHITESPACE // Only tabs, spaces, line feeds & carriage returns are skipped.
@@ -46,83 +46,89 @@ enum LookaheadMode{
#define NO_IGNORE_CHAR '\x01' // a char not found in a valid ASCII numeric field
-class Stream : public Print
-{
- protected:
+class Stream : public Print {
+ protected:
unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read
unsigned long _startMillis; // used for timeout measurement
int timedRead(); // private method to read stream with timeout
int timedPeek(); // private method to peek stream with timeout
- int peekNextDigit(LookaheadMode lookahead, bool detectDecimal); // returns the next numeric digit in the stream or -1 if timeout
-
- public:
+ int peekNextDigit(LookaheadMode lookahead,
+ bool detectDecimal); // returns the next numeric digit in the stream or -1 if timeout
+
+ public:
virtual int available() = 0;
virtual int read() = 0;
virtual int peek() = 0;
virtual void flush() = 0;
-
- Stream() {_timeout=1000;}
+
+ Stream() { _timeout = 1000; }
// parsing methods
-
- void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second
-
- bool find(char *target); // reads data from the stream until the target string is found
- bool find(uint8_t *target) { return find ((char *)target); }
- // returns true if target string is found, false if timed out (see setTimeout)
-
- bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found
- bool find(uint8_t *target, size_t length) { return find ((char *)target, length); }
- // returns true if target string is found, false if timed out
-
- bool find(char target) { return find (&target, 1); }
-
- bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found
- bool findUntil(uint8_t *target, char *terminator) { return findUntil((char *)target, terminator); }
-
- bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found
- bool findUntil(uint8_t *target, size_t targetLen, char *terminate, size_t termLen) {return findUntil((char *)target, targetLen, terminate, termLen); }
-
- long parseInt(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR);
- // returns the first valid (long) integer value from the current position.
- // lookahead determines how parseInt looks ahead in the stream.
- // See LookaheadMode enumeration at the top of the file.
- // Lookahead is terminated by the first character that is not a valid part of an integer.
- // Once parsing commences, 'ignore' will be skipped in the stream.
-
- float parseFloat(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR);
- // float version of parseInt
-
- size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer
- size_t readBytes( uint8_t *buffer, size_t length) { return readBytes((char *)buffer, length); }
- // terminates if length characters have been read or timeout (see setTimeout)
- // returns the number of characters placed in the buffer (0 means no valid data found)
-
- size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character
- size_t readBytesUntil( char terminator, uint8_t *buffer, size_t length) { return readBytesUntil(terminator, (char *)buffer, length); }
- // terminates if length characters have been read, timeout, or if the terminator character detected
- // returns the number of characters placed in the buffer (0 means no valid data found)
-
- // Arduino String functions to be added here
- String readString();
- String readStringUntil(char terminator);
-
- protected:
- long parseInt(char ignore) { return parseInt(SKIP_ALL, ignore); }
- float parseFloat(char ignore) { return parseFloat(SKIP_ALL, ignore); }
- // These overload exists for compatibility with any class that has derived
- // Stream and used parseFloat/Int with a custom ignore character. To keep
- // the public API simple, these overload remains protected.
-
- struct MultiTarget {
- const char *str; // string you're searching for
- size_t len; // length of string you're searching for
- size_t index; // index used by the search routine.
- };
-
- // This allows you to search for an arbitrary number of strings.
- // Returns index of the target that is found first or -1 if timeout occurs.
- int findMulti(struct MultiTarget *targets, int tCount);
+
+ void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second
+
+ bool find(char *target); // reads data from the stream until the target string is found
+ bool find(uint8_t *target) { return find((char *) target); }
+ // returns true if target string is found, false if timed out (see setTimeout)
+
+ bool
+ find(char *target, size_t length); // reads data from the stream until the target string of given length is found
+ bool find(uint8_t *target, size_t length) { return find((char *) target, length); }
+ // returns true if target string is found, false if timed out
+
+ bool find(char target) { return find(&target, 1); }
+
+ bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found
+ bool findUntil(uint8_t *target, char *terminator) { return findUntil((char *) target, terminator); }
+
+ bool findUntil(char *target, size_t targetLen, char *terminate,
+ size_t termLen); // as above but search ends if the terminate string is found
+ bool findUntil(uint8_t *target, size_t targetLen, char *terminate, size_t termLen) {
+ return findUntil((char *) target, targetLen, terminate, termLen);
+ }
+
+ long parseInt(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR);
+ // returns the first valid (long) integer value from the current position.
+ // lookahead determines how parseInt looks ahead in the stream.
+ // See LookaheadMode enumeration at the top of the file.
+ // Lookahead is terminated by the first character that is not a valid part of an integer.
+ // Once parsing commences, 'ignore' will be skipped in the stream.
+
+ float parseFloat(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR);
+ // float version of parseInt
+
+ size_t readBytes(char *buffer, size_t length); // read chars from stream into buffer
+ size_t readBytes(uint8_t *buffer, size_t length) { return readBytes((char *) buffer, length); }
+ // terminates if length characters have been read or timeout (see setTimeout)
+ // returns the number of characters placed in the buffer (0 means no valid data found)
+
+ size_t readBytesUntil(char terminator, char *buffer, size_t length); // as readBytes with terminator character
+ size_t readBytesUntil(char terminator, uint8_t *buffer, size_t length) {
+ return readBytesUntil(terminator, (char *) buffer, length);
+ }
+ // terminates if length characters have been read, timeout, or if the terminator character detected
+ // returns the number of characters placed in the buffer (0 means no valid data found)
+
+ // Arduino String functions to be added here
+ String readString();
+ String readStringUntil(char terminator);
+
+ protected:
+ long parseInt(char ignore) { return parseInt(SKIP_ALL, ignore); }
+ float parseFloat(char ignore) { return parseFloat(SKIP_ALL, ignore); }
+ // These overload exists for compatibility with any class that has derived
+ // Stream and used parseFloat/Int with a custom ignore character. To keep
+ // the public API simple, these overload remains protected.
+
+ struct MultiTarget {
+ const char *str; // string you're searching for
+ size_t len; // length of string you're searching for
+ size_t index; // index used by the search routine.
+ };
+
+ // This allows you to search for an arbitrary number of strings.
+ // Returns index of the target that is found first or -1 if timeout occurs.
+ int findMulti(struct MultiTarget *targets, int tCount);
};
#undef NO_IGNORE_CHAR
diff --git a/cores/nRF5/Uart.cpp b/cores/nRF5/Uart.cpp
index f87f7a99f..843ed6157 100644
--- a/cores/nRF5/Uart.cpp
+++ b/cores/nRF5/Uart.cpp
@@ -1,17 +1,14 @@
/*
Copyright (c) 2015 Arduino LLC. All right reserved.
Copyright (c) 2016 Sandeep Mistry All right reserved.
-
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
-
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
-
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@@ -67,6 +64,20 @@ void Uart::setPins(uint8_t pin_rx, uint8_t pin_tx)
uc_pinTX = g_ADigitalPinMap[pin_tx];
}
+void Uart::setPins(uint8_t pin_rx, uint8_t pin_tx, uint8_t _pinCTS, uint8_t _pinRTS) {
+ uc_pinRX = pin_rx;
+ uc_pinTX = pin_tx;
+ uc_pinCTS = _pinCTS;
+ uc_pinRTS = _pinRTS;
+}
+
+void Uart::getPins() {
+ Serial.printf("uc_pinRX: %u\n", (long unsigned int) uc_pinRX);
+ Serial.printf("uc_pinTX: %u\n", (long unsigned int) uc_pinTX);
+ Serial.printf("uc_pinCTS: %u\n", (long unsigned int) uc_pinCTS);
+ Serial.printf("uc_pinRTS: %u\n", (long unsigned int) uc_pinRTS);
+}
+
void Uart::begin(unsigned long baudrate)
{
begin(baudrate, (uint16_t)SERIAL_8N1);
@@ -267,4 +278,3 @@ extern "C"
}
}
#endif
-
diff --git a/cores/nRF5/Uart.h b/cores/nRF5/Uart.h
index a0003411a..7b35fc218 100644
--- a/cores/nRF5/Uart.h
+++ b/cores/nRF5/Uart.h
@@ -1,17 +1,14 @@
/*
Copyright (c) 2015 Arduino LLC. All right reserved.
Copyright (c) 2016 Sandeep Mistry All right reserved.
-
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
-
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
-
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@@ -24,7 +21,6 @@
#include "HardwareSerial.h"
#include "RingBuffer.h"
#include "rtos.h"
-#include "variant.h"
#include
@@ -35,6 +31,9 @@ class Uart : public HardwareSerial
Uart(NRF_UARTE_Type *_nrfUart, IRQn_Type _IRQn, uint8_t _pinRX, uint8_t _pinTX, uint8_t _pinCTS, uint8_t _pinRTS);
void setPins(uint8_t pin_rx, uint8_t pin_tx);
+ void setPins(uint8_t pin_rx, uint8_t pin_tx, uint8_t _pinCTS, uint8_t _pinRTS);
+ void getPins();
+
void begin(unsigned long baudRate);
void begin(unsigned long baudrate, uint16_t config);
void end();
@@ -93,7 +92,7 @@ class Uart : public HardwareSerial
#define SERIAL_PORT_MONITOR Serial
#define SERIAL_PORT_HARDWARE Serial
-#else
+#else // ARDUINO_NECTIS
#define SERIAL_PORT_MONITOR Serial
#define SERIAL_PORT_USBVIRTUAL Serial
diff --git a/cores/nRF5/Udp.h b/cores/nRF5/Udp.h
index 94ae28849..269ed4673 100644
--- a/cores/nRF5/Udp.h
+++ b/cores/nRF5/Udp.h
@@ -39,50 +39,51 @@
#include
class UDP : public Stream {
-
-public:
- virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use
- virtual void stop() =0; // Finish with the UDP socket
-
- // Sending UDP packets
-
- // Start building up a packet to send to the remote host specific in ip and port
- // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port
- virtual int beginPacket(IPAddress ip, uint16_t port) =0;
- // Start building up a packet to send to the remote host specific in host and port
- // Returns 1 if successful, 0 if there was a problem resolving the hostname or port
- virtual int beginPacket(const char *host, uint16_t port) =0;
- // Finish off this packet and send it
- // Returns 1 if the packet was sent successfully, 0 if there was an error
- virtual int endPacket() =0;
- // Write a single byte into the packet
- virtual size_t write(uint8_t) =0;
- // Write size bytes from buffer into the packet
- virtual size_t write(const uint8_t *buffer, size_t size) =0;
-
- // Start processing the next available incoming packet
- // Returns the size of the packet in bytes, or 0 if no packets are available
- virtual int parsePacket() =0;
- // Number of bytes remaining in the current packet
- virtual int available() =0;
- // Read a single byte from the current packet
- virtual int read() =0;
- // Read up to len bytes from the current packet and place them into buffer
- // Returns the number of bytes read, or 0 if none are available
- virtual int read(unsigned char* buffer, size_t len) =0;
- // Read up to len characters from the current packet and place them into buffer
- // Returns the number of characters read, or 0 if none are available
- virtual int read(char* buffer, size_t len) =0;
- // Return the next byte from the current packet without moving on to the next byte
- virtual int peek() =0;
- virtual void flush() =0; // Finish reading the current packet
-
- // Return the IP address of the host who sent the current incoming packet
- virtual IPAddress remoteIP() =0;
- // Return the port of the host who sent the current incoming packet
- virtual uint16_t remotePort() =0;
-protected:
- uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); };
+
+ public:
+ virtual uint8_t begin(
+ uint16_t) = 0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use
+ virtual void stop() = 0; // Finish with the UDP socket
+
+ // Sending UDP packets
+
+ // Start building up a packet to send to the remote host specific in ip and port
+ // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port
+ virtual int beginPacket(IPAddress ip, uint16_t port) = 0;
+ // Start building up a packet to send to the remote host specific in host and port
+ // Returns 1 if successful, 0 if there was a problem resolving the hostname or port
+ virtual int beginPacket(const char *host, uint16_t port) = 0;
+ // Finish off this packet and send it
+ // Returns 1 if the packet was sent successfully, 0 if there was an error
+ virtual int endPacket() = 0;
+ // Write a single byte into the packet
+ virtual size_t write(uint8_t) = 0;
+ // Write size bytes from buffer into the packet
+ virtual size_t write(const uint8_t *buffer, size_t size) = 0;
+
+ // Start processing the next available incoming packet
+ // Returns the size of the packet in bytes, or 0 if no packets are available
+ virtual int parsePacket() = 0;
+ // Number of bytes remaining in the current packet
+ virtual int available() = 0;
+ // Read a single byte from the current packet
+ virtual int read() = 0;
+ // Read up to len bytes from the current packet and place them into buffer
+ // Returns the number of bytes read, or 0 if none are available
+ virtual int read(unsigned char *buffer, size_t len) = 0;
+ // Read up to len characters from the current packet and place them into buffer
+ // Returns the number of characters read, or 0 if none are available
+ virtual int read(char *buffer, size_t len) = 0;
+ // Return the next byte from the current packet without moving on to the next byte
+ virtual int peek() = 0;
+ virtual void flush() = 0; // Finish reading the current packet
+
+ // Return the IP address of the host who sent the current incoming packet
+ virtual IPAddress remoteIP() = 0;
+ // Return the port of the host who sent the current incoming packet
+ virtual uint16_t remotePort() = 0;
+ protected:
+ uint8_t *rawIPAddress(IPAddress &addr) { return addr.raw_address(); };
};
#endif
diff --git a/cores/nRF5/WCharacter.h b/cores/nRF5/WCharacter.h
index c0cbec7ae..7a804fb55 100644
--- a/cores/nRF5/WCharacter.h
+++ b/cores/nRF5/WCharacter.h
@@ -48,109 +48,95 @@ inline int toUpperCase(int c)__attribute__((always_inline));
// Checks for an alphanumeric character.
// It is equivalent to (isalpha(c) || isdigit(c)).
-inline boolean isAlphaNumeric(int c)
-{
- return ( isalnum(c) == 0 ? false : true);
+inline boolean isAlphaNumeric(int c) {
+ return (isalnum(c) == 0 ? false : true);
}
// Checks for an alphabetic character.
// It is equivalent to (isupper(c) || islower(c)).
-inline boolean isAlpha(int c)
-{
- return ( isalpha(c) == 0 ? false : true);
+inline boolean isAlpha(int c) {
+ return (isalpha(c) == 0 ? false : true);
}
// Checks whether c is a 7-bit unsigned char value
// that fits into the ASCII character set.
-inline boolean isAscii(int c)
-{
+inline boolean isAscii(int c) {
/* return ( isascii(c) == 0 ? false : true); */
- return ( (c & ~0x7f) != 0 ? false : true);
+ return ((c & ~0x7f) != 0 ? false : true);
}
// Checks for a blank character, that is, a space or a tab.
-inline boolean isWhitespace(int c)
-{
- return ( isblank (c) == 0 ? false : true);
+inline boolean isWhitespace(int c) {
+ return (isblank(c) == 0 ? false : true);
}
// Checks for a control character.
-inline boolean isControl(int c)
-{
- return ( iscntrl (c) == 0 ? false : true);
+inline boolean isControl(int c) {
+ return (iscntrl(c) == 0 ? false : true);
}
// Checks for a digit (0 through 9).
-inline boolean isDigit(int c)
-{
- return ( isdigit (c) == 0 ? false : true);
+inline boolean isDigit(int c) {
+ return (isdigit(c) == 0 ? false : true);
}
// Checks for any printable character except space.
-inline boolean isGraph(int c)
-{
- return ( isgraph (c) == 0 ? false : true);
+inline boolean isGraph(int c) {
+ return (isgraph(c) == 0 ? false : true);
}
// Checks for a lower-case character.
-inline boolean isLowerCase(int c)
-{
- return (islower (c) == 0 ? false : true);
+inline boolean isLowerCase(int c) {
+ return (islower(c) == 0 ? false : true);
}
// Checks for any printable character including space.
-inline boolean isPrintable(int c)
-{
- return ( isprint (c) == 0 ? false : true);
+inline boolean isPrintable(int c) {
+ return (isprint(c) == 0 ? false : true);
}
// Checks for any printable character which is not a space
// or an alphanumeric character.
-inline boolean isPunct(int c)
-{
- return ( ispunct (c) == 0 ? false : true);
+inline boolean isPunct(int c) {
+ return (ispunct(c) == 0 ? false : true);
}
// Checks for white-space characters. For the avr-libc library,
// these are: space, formfeed ('\f'), newline ('\n'), carriage
// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v').
-inline boolean isSpace(int c)
-{
- return ( isspace (c) == 0 ? false : true);
+inline boolean isSpace(int c) {
+ return (isspace(c) == 0 ? false : true);
}
// Checks for an uppercase letter.
-inline boolean isUpperCase(int c)
-{
- return ( isupper (c) == 0 ? false : true);
+inline boolean isUpperCase(int c) {
+ return (isupper(c) == 0 ? false : true);
}
// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7
// 8 9 a b c d e f A B C D E F.
-inline boolean isHexadecimalDigit(int c)
-{
- return ( isxdigit (c) == 0 ? false : true);
+inline boolean isHexadecimalDigit(int c) {
+ return (isxdigit(c) == 0 ? false : true);
}
// Converts c to a 7-bit unsigned char value that fits into the
// ASCII character set, by clearing the high-order bits.
-inline int toAscii(int c)
-{
+inline int toAscii(int c) {
/* return toascii (c); */
- return (c & 0x7f);
+ return (c & 0x7f);
}
@@ -160,16 +146,14 @@ inline int toAscii(int c)
// characters.
// Converts the letter c to lower case, if possible.
-inline int toLowerCase(int c)
-{
- return tolower (c);
+inline int toLowerCase(int c) {
+ return tolower(c);
}
// Converts the letter c to upper case, if possible.
-inline int toUpperCase(int c)
-{
- return toupper (c);
+inline int toUpperCase(int c) {
+ return toupper(c);
}
#ifdef __cplusplus
diff --git a/cores/nRF5/WInterrupts.c b/cores/nRF5/WInterrupts.c
index dce18ca71..55e8ac2f3 100644
--- a/cores/nRF5/WInterrupts.c
+++ b/cores/nRF5/WInterrupts.c
@@ -1,17 +1,14 @@
/*
Copyright (c) 2015 Arduino LLC. All right reserved.
Copyright (c) 2016 Sandeep Mistry All right reserved.
-
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
-
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
-
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@@ -103,7 +100,7 @@ int attachInterrupt(uint32_t pin, voidFuncPtr callback, uint32_t mode)
NRF_GPIOTE->CONFIG[ch] &= ~(GPIOTE_CONFIG_PORT_PIN_Msk | GPIOTE_CONFIG_POLARITY_Msk);
NRF_GPIOTE->CONFIG[ch] |= ((pin << GPIOTE_CONFIG_PSEL_Pos) & GPIOTE_CONFIG_PORT_PIN_Msk) |
- ((polarity << GPIOTE_CONFIG_POLARITY_Pos) & GPIOTE_CONFIG_POLARITY_Msk);
+ ((polarity << GPIOTE_CONFIG_POLARITY_Pos) & GPIOTE_CONFIG_POLARITY_Msk);
NRF_GPIOTE->CONFIG[ch] |= GPIOTE_CONFIG_MODE_Event;
@@ -157,13 +154,13 @@ void GPIOTE_IRQHandler()
// Adafruit defer callback to non-isr if configured so
ada_callback(NULL, 0, callbacksInt[ch]);
}else{
- callbacksInt[ch]();
+ callbacksInt[ch]();
}
}
- *(uint32_t *)((uint32_t)NRF_GPIOTE + event) = 0;
+ *(uint32_t *)((uint32_t)NRF_GPIOTE + event) = 0;
#if __CORTEX_M == 0x04
- volatile uint32_t dummy = *((volatile uint32_t *)((uint32_t)NRF_GPIOTE + event));
+ volatile uint32_t dummy = *((volatile uint32_t *)((uint32_t)NRF_GPIOTE + event));
(void)dummy;
#endif
}
diff --git a/cores/nRF5/WMath.cpp b/cores/nRF5/WMath.cpp
index 55caddd62..006485ef8 100644
--- a/cores/nRF5/WMath.cpp
+++ b/cores/nRF5/WMath.cpp
@@ -17,52 +17,44 @@
*/
extern "C" {
- #include "stdlib.h"
- #include "stdint.h"
+#include "stdlib.h"
+#include "stdint.h"
}
+
#include "WMath.h"
-extern void randomSeed( uint32_t dwSeed )
-{
- if ( dwSeed != 0 )
- {
- srand( dwSeed ) ;
- }
+extern void randomSeed(uint32_t dwSeed) {
+ if (dwSeed != 0) {
+ srand(dwSeed);
+ }
}
-extern long random( long howbig )
-{
- if ( howbig == 0 )
- {
- return 0 ;
- }
-
- return rand() % howbig;
+extern long random(long howbig) {
+ if (howbig == 0) {
+ return 0;
+ }
+
+ return rand() % howbig;
}
-extern long random( long howsmall, long howbig )
-{
- if (howsmall >= howbig)
- {
- return howsmall;
- }
-
- long diff = howbig - howsmall;
-
- return random(diff) + howsmall;
+extern long random(long howsmall, long howbig) {
+ if (howsmall >= howbig) {
+ return howsmall;
+ }
+
+ long diff = howbig - howsmall;
+
+ return random(diff) + howsmall;
}
-extern long map(long x, long in_min, long in_max, long out_min, long out_max)
-{
- return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
+extern long map(long x, long in_min, long in_max, long out_min, long out_max) {
+ return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
-extern uint16_t makeWord( uint16_t w )
-{
- return w ;
+extern uint16_t makeWord(uint16_t w) {
+ return w;
}
-extern uint16_t makeWord( uint8_t h, uint8_t l )
-{
- return (h << 8) | l ;
+extern uint16_t makeWord(uint8_t h, uint8_t l) {
+ return (h << 8) | l;
}
diff --git a/cores/nRF5/WMath.h b/cores/nRF5/WMath.h
index 1893955cb..3b1ccfe92 100644
--- a/cores/nRF5/WMath.h
+++ b/cores/nRF5/WMath.h
@@ -19,13 +19,13 @@
#ifndef _WIRING_MATH_
#define _WIRING_MATH_
-extern long random( long ) ;
-extern long random( long, long ) ;
-extern void randomSeed( uint32_t dwSeed ) ;
-extern long map( long, long, long, long, long ) ;
+extern long random(long);
+extern long random(long, long);
+extern void randomSeed(uint32_t dwSeed);
+extern long map(long, long, long, long, long);
-extern uint16_t makeWord( uint16_t w ) ;
-extern uint16_t makeWord( uint8_t h, uint8_t l ) ;
+extern uint16_t makeWord(uint16_t w);
+extern uint16_t makeWord(uint8_t h, uint8_t l);
#define word(...) makeWord(__VA_ARGS__)
diff --git a/cores/nRF5/WString.cpp b/cores/nRF5/WString.cpp
index a6432f2a7..d10c6022a 100644
--- a/cores/nRF5/WString.cpp
+++ b/cores/nRF5/WString.cpp
@@ -27,721 +27,720 @@
/* Constructors */
/*********************************************/
-String::String(const char *cstr)
-{
- init();
- if (cstr) copy(cstr, strlen(cstr));
+String::String(const char *cstr) {
+ init();
+ if (cstr)
+ copy(cstr, strlen(cstr));
}
-String::String(const String &value)
-{
- init();
- *this = value;
+String::String(const String &value) {
+ init();
+ *this = value;
}
-String::String(const __FlashStringHelper *pstr)
-{
- init();
- *this = pstr;
+String::String(const __FlashStringHelper *pstr) {
+ init();
+ *this = pstr;
}
#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
String::String(String &&rval)
{
- init();
- move(rval);
+ init();
+ move(rval);
}
String::String(StringSumHelper &&rval)
{
- init();
- move(rval);
+ init();
+ move(rval);
}
#endif
-String::String(char c)
-{
- init();
- char buf[2];
- buf[0] = c;
- buf[1] = 0;
- *this = buf;
+String::String(char c) {
+ init();
+ char buf[2];
+ buf[0] = c;
+ buf[1] = 0;
+ *this = buf;
}
-String::String(unsigned char value, unsigned char base)
-{
- init();
- char buf[1 + 8 * sizeof(unsigned char)];
- utoa(value, buf, base);
- *this = buf;
+String::String(unsigned char value, unsigned char base) {
+ init();
+ char buf[1 + 8 * sizeof(unsigned char)];
+ utoa(value, buf, base);
+ *this = buf;
}
-String::String(int value, unsigned char base)
-{
- init();
- char buf[2 + 8 * sizeof(int)];
- itoa(value, buf, base);
- *this = buf;
+String::String(int value, unsigned char base) {
+ init();
+ char buf[2 + 8 * sizeof(int)];
+ itoa(value, buf, base);
+ *this = buf;
}
-String::String(unsigned int value, unsigned char base)
-{
- init();
- char buf[1 + 8 * sizeof(unsigned int)];
- utoa(value, buf, base);
- *this = buf;
+String::String(unsigned int value, unsigned char base) {
+ init();
+ char buf[1 + 8 * sizeof(unsigned int)];
+ utoa(value, buf, base);
+ *this = buf;
}
-String::String(long value, unsigned char base)
-{
- init();
- char buf[2 + 8 * sizeof(long)];
- ltoa(value, buf, base);
- *this = buf;
+String::String(long value, unsigned char base) {
+ init();
+ char buf[2 + 8 * sizeof(long)];
+ ltoa(value, buf, base);
+ *this = buf;
}
-String::String(unsigned long value, unsigned char base)
-{
- init();
- char buf[1 + 8 * sizeof(unsigned long)];
- ultoa(value, buf, base);
- *this = buf;
+String::String(unsigned long value, unsigned char base) {
+ init();
+ char buf[1 + 8 * sizeof(unsigned long)];
+ ultoa(value, buf, base);
+ *this = buf;
}
-String::String(float value, unsigned char decimalPlaces)
-{
- init();
- char buf[33];
- *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf);
+String::String(float value, unsigned char decimalPlaces) {
+ init();
+ char buf[33];
+ *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf);
}
-String::String(double value, unsigned char decimalPlaces)
-{
- init();
- char buf[33];
- *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf);
+String::String(double value, unsigned char decimalPlaces) {
+ init();
+ char buf[33];
+ *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf);
}
-String::~String()
-{
- free(buffer);
+String::~String() {
+ free(buffer);
}
/*********************************************/
/* Memory Management */
/*********************************************/
-inline void String::init(void)
-{
- buffer = NULL;
- capacity = 0;
- len = 0;
+inline void String::init(void) {
+ buffer = NULL;
+ capacity = 0;
+ len = 0;
}
-void String::invalidate(void)
-{
- if (buffer) free(buffer);
- buffer = NULL;
- capacity = len = 0;
+void String::invalidate(void) {
+ if (buffer)
+ free(buffer);
+ buffer = NULL;
+ capacity = len = 0;
}
-unsigned char String::reserve(unsigned int size)
-{
- if (buffer && capacity >= size) return 1;
- if (changeBuffer(size)) {
- if (len == 0) buffer[0] = 0;
- return 1;
- }
- return 0;
+unsigned char String::reserve(unsigned int size) {
+ if (buffer && capacity >= size)
+ return 1;
+ if (changeBuffer(size)) {
+ if (len == 0)
+ buffer[0] = 0;
+ return 1;
+ }
+ return 0;
}
-unsigned char String::changeBuffer(unsigned int maxStrLen)
-{
- char *newbuffer = (char *)realloc(buffer, maxStrLen + 1);
- if (newbuffer) {
- buffer = newbuffer;
- capacity = maxStrLen;
- return 1;
- }
- return 0;
+unsigned char String::changeBuffer(unsigned int maxStrLen) {
+ char *newbuffer = (char *) realloc(buffer, maxStrLen + 1);
+ if (newbuffer) {
+ buffer = newbuffer;
+ capacity = maxStrLen;
+ return 1;
+ }
+ return 0;
}
/*********************************************/
/* Copy and Move */
/*********************************************/
-String & String::copy(const char *cstr, unsigned int length)
-{
- if (!reserve(length)) {
- invalidate();
- return *this;
- }
- len = length;
- strcpy(buffer, cstr);
- return *this;
+String &String::copy(const char *cstr, unsigned int length) {
+ if (!reserve(length)) {
+ invalidate();
+ return *this;
+ }
+ len = length;
+ strcpy(buffer, cstr);
+ return *this;
}
-String & String::copy(const __FlashStringHelper *pstr, unsigned int length)
-{
- if (!reserve(length)) {
- invalidate();
- return *this;
- }
- len = length;
- strcpy_P(buffer, (PGM_P)pstr);
- return *this;
+String &String::copy(const __FlashStringHelper *pstr, unsigned int length) {
+ if (!reserve(length)) {
+ invalidate();
+ return *this;
+ }
+ len = length;
+ strcpy_P(buffer, (PGM_P) pstr);
+ return *this;
}
#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
void String::move(String &rhs)
{
- if (buffer) {
- if (capacity >= rhs.len) {
- strcpy(buffer, rhs.buffer);
- len = rhs.len;
- rhs.len = 0;
- return;
- } else {
- free(buffer);
- }
- }
- buffer = rhs.buffer;
- capacity = rhs.capacity;
- len = rhs.len;
- rhs.buffer = NULL;
- rhs.capacity = 0;
- rhs.len = 0;
+ if (buffer) {
+ if (capacity >= rhs.len) {
+ strcpy(buffer, rhs.buffer);
+ len = rhs.len;
+ rhs.len = 0;
+ return;
+ } else {
+ free(buffer);
+ }
+ }
+ buffer = rhs.buffer;
+ capacity = rhs.capacity;
+ len = rhs.len;
+ rhs.buffer = NULL;
+ rhs.capacity = 0;
+ rhs.len = 0;
}
#endif
-String & String::operator = (const String &rhs)
-{
- if (this == &rhs) return *this;
-
- if (rhs.buffer) copy(rhs.buffer, rhs.len);
- else invalidate();
-
- return *this;
+String &String::operator=(const String &rhs) {
+ if (this == &rhs)
+ return *this;
+
+ if (rhs.buffer)
+ copy(rhs.buffer, rhs.len);
+ else
+ invalidate();
+
+ return *this;
}
#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
String & String::operator = (String &&rval)
{
- if (this != &rval) move(rval);
- return *this;
+ if (this != &rval) move(rval);
+ return *this;
}
String & String::operator = (StringSumHelper &&rval)
{
- if (this != &rval) move(rval);
- return *this;
+ if (this != &rval) move(rval);
+ return *this;
}
#endif
-String & String::operator = (const char *cstr)
-{
- if (cstr) copy(cstr, strlen(cstr));
- else invalidate();
-
- return *this;
+String &String::operator=(const char *cstr) {
+ if (cstr)
+ copy(cstr, strlen(cstr));
+ else
+ invalidate();
+
+ return *this;
}
-String & String::operator = (const __FlashStringHelper *pstr)
-{
- if (pstr) copy(pstr, strlen_P((PGM_P)pstr));
- else invalidate();
-
- return *this;
+String &String::operator=(const __FlashStringHelper *pstr) {
+ if (pstr)
+ copy(pstr, strlen_P((PGM_P) pstr));
+ else
+ invalidate();
+
+ return *this;
}
/*********************************************/
/* concat */
/*********************************************/
-unsigned char String::concat(const String &s)
-{
- return concat(s.buffer, s.len);
+unsigned char String::concat(const String &s) {
+ return concat(s.buffer, s.len);
}
-unsigned char String::concat(const char *cstr, unsigned int length)
-{
- unsigned int newlen = len + length;
- if (!cstr) return 0;
- if (length == 0) return 1;
- if (!reserve(newlen)) return 0;
- strcpy(buffer + len, cstr);
- len = newlen;
- return 1;
+unsigned char String::concat(const char *cstr, unsigned int length) {
+ unsigned int newlen = len + length;
+ if (!cstr)
+ return 0;
+ if (length == 0)
+ return 1;
+ if (!reserve(newlen))
+ return 0;
+ strcpy(buffer + len, cstr);
+ len = newlen;
+ return 1;
}
-unsigned char String::concat(const char *cstr)
-{
- if (!cstr) return 0;
- return concat(cstr, strlen(cstr));
+unsigned char String::concat(const char *cstr) {
+ if (!cstr)
+ return 0;
+ return concat(cstr, strlen(cstr));
}
-unsigned char String::concat(char c)
-{
- char buf[2];
- buf[0] = c;
- buf[1] = 0;
- return concat(buf, 1);
+unsigned char String::concat(char c) {
+ char buf[2];
+ buf[0] = c;
+ buf[1] = 0;
+ return concat(buf, 1);
}
-unsigned char String::concat(unsigned char num)
-{
- char buf[1 + 3 * sizeof(unsigned char)];
- itoa(num, buf, 10);
- return concat(buf, strlen(buf));
+unsigned char String::concat(unsigned char num) {
+ char buf[1 + 3 * sizeof(unsigned char)];
+ itoa(num, buf, 10);
+ return concat(buf, strlen(buf));
}
-unsigned char String::concat(int num)
-{
- char buf[2 + 3 * sizeof(int)];
- itoa(num, buf, 10);
- return concat(buf, strlen(buf));
+unsigned char String::concat(int num) {
+ char buf[2 + 3 * sizeof(int)];
+ itoa(num, buf, 10);
+ return concat(buf, strlen(buf));
}
-unsigned char String::concat(unsigned int num)
-{
- char buf[1 + 3 * sizeof(unsigned int)];
- utoa(num, buf, 10);
- return concat(buf, strlen(buf));
+unsigned char String::concat(unsigned int num) {
+ char buf[1 + 3 * sizeof(unsigned int)];
+ utoa(num, buf, 10);
+ return concat(buf, strlen(buf));
}
-unsigned char String::concat(long num)
-{
- char buf[2 + 3 * sizeof(long)];
- ltoa(num, buf, 10);
- return concat(buf, strlen(buf));
+unsigned char String::concat(long num) {
+ char buf[2 + 3 * sizeof(long)];
+ ltoa(num, buf, 10);
+ return concat(buf, strlen(buf));
}
-unsigned char String::concat(unsigned long num)
-{
- char buf[1 + 3 * sizeof(unsigned long)];
- ultoa(num, buf, 10);
- return concat(buf, strlen(buf));
+unsigned char String::concat(unsigned long num) {
+ char buf[1 + 3 * sizeof(unsigned long)];
+ ultoa(num, buf, 10);
+ return concat(buf, strlen(buf));
}
-unsigned char String::concat(float num)
-{
- char buf[20];
- char* string = dtostrf(num, 4, 2, buf);
- return concat(string, strlen(string));
+unsigned char String::concat(float num) {
+ char buf[20];
+ char *string = dtostrf(num, 4, 2, buf);
+ return concat(string, strlen(string));
}
-unsigned char String::concat(double num)
-{
- char buf[20];
- char* string = dtostrf(num, 4, 2, buf);
- return concat(string, strlen(string));
+unsigned char String::concat(double num) {
+ char buf[20];
+ char *string = dtostrf(num, 4, 2, buf);
+ return concat(string, strlen(string));
}
-unsigned char String::concat(const __FlashStringHelper * str)
-{
- if (!str) return 0;
- int length = strlen_P((const char *) str);
- if (length == 0) return 1;
- unsigned int newlen = len + length;
- if (!reserve(newlen)) return 0;
- strcpy_P(buffer + len, (const char *) str);
- len = newlen;
- return 1;
+unsigned char String::concat(const __FlashStringHelper *str) {
+ if (!str)
+ return 0;
+ int length = strlen_P((const char *) str);
+ if (length == 0)
+ return 1;
+ unsigned int newlen = len + length;
+ if (!reserve(newlen))
+ return 0;
+ strcpy_P(buffer + len, (const char *) str);
+ len = newlen;
+ return 1;
}
/*********************************************/
/* Concatenate */
/*********************************************/
-StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(rhs.buffer, rhs.len)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, const String &rhs) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(rhs.buffer, rhs.len))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, const char *cstr) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!cstr || !a.concat(cstr, strlen(cstr)))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, char c)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(c)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, char c) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(c))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(num)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, unsigned char num) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(num))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, int num)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(num)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, int num) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(num))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(num)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, unsigned int num) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(num))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, long num)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(num)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, long num) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(num))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(num)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, unsigned long num) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(num))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, float num)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(num)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, float num) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(num))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, double num)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(num)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, double num) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(num))
+ a.invalidate();
+ return a;
}
-StringSumHelper & operator + (const StringSumHelper &lhs, const __FlashStringHelper *rhs)
-{
- StringSumHelper &a = const_cast(lhs);
- if (!a.concat(rhs)) a.invalidate();
- return a;
+StringSumHelper &operator+(const StringSumHelper &lhs, const __FlashStringHelper *rhs) {
+ StringSumHelper &a = const_cast(lhs);
+ if (!a.concat(rhs))
+ a.invalidate();
+ return a;
}
/*********************************************/
/* Comparison */
/*********************************************/
-int String::compareTo(const String &s) const
-{
- if (!buffer || !s.buffer) {
- if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer;
- if (buffer && len > 0) return *(unsigned char *)buffer;
- return 0;
- }
- return strcmp(buffer, s.buffer);
+int String::compareTo(const String &s) const {
+ if (!buffer || !s.buffer) {
+ if (s.buffer && s.len > 0)
+ return 0 - *(unsigned char *) s.buffer;
+ if (buffer && len > 0)
+ return *(unsigned char *) buffer;
+ return 0;
+ }
+ return strcmp(buffer, s.buffer);
}
-unsigned char String::equals(const String &s2) const
-{
- return (len == s2.len && compareTo(s2) == 0);
+unsigned char String::equals(const String &s2) const {
+ return (len == s2.len && compareTo(s2) == 0);
}
-unsigned char String::equals(const char *cstr) const
-{
- if (len == 0) return (cstr == NULL || *cstr == 0);
- if (cstr == NULL) return buffer[0] == 0;
- return strcmp(buffer, cstr) == 0;
+unsigned char String::equals(const char *cstr) const {
+ if (len == 0)
+ return (cstr == NULL || *cstr == 0);
+ if (cstr == NULL)
+ return buffer[0] == 0;
+ return strcmp(buffer, cstr) == 0;
}
-unsigned char String::operator<(const String &rhs) const
-{
- return compareTo(rhs) < 0;
+unsigned char String::operator<(const String &rhs) const {
+ return compareTo(rhs) < 0;
}
-unsigned char String::operator>(const String &rhs) const
-{
- return compareTo(rhs) > 0;
+unsigned char String::operator>(const String &rhs) const {
+ return compareTo(rhs) > 0;
}
-unsigned char String::operator<=(const String &rhs) const
-{
- return compareTo(rhs) <= 0;
+unsigned char String::operator<=(const String &rhs) const {
+ return compareTo(rhs) <= 0;
}
-unsigned char String::operator>=(const String &rhs) const
-{
- return compareTo(rhs) >= 0;
+unsigned char String::operator>=(const String &rhs) const {
+ return compareTo(rhs) >= 0;
}
-unsigned char String::equalsIgnoreCase( const String &s2 ) const
-{
- if (this == &s2) return 1;
- if (len != s2.len) return 0;
- if (len == 0) return 1;
- const char *p1 = buffer;
- const char *p2 = s2.buffer;
- while (*p1) {
- if (tolower(*p1++) != tolower(*p2++)) return 0;
- }
- return 1;
-}
-
-unsigned char String::startsWith( const String &s2 ) const
-{
- if (len < s2.len) return 0;
- return startsWith(s2, 0);
+unsigned char String::equalsIgnoreCase(const String &s2) const {
+ if (this == &s2)
+ return 1;
+ if (len != s2.len)
+ return 0;
+ if (len == 0)
+ return 1;
+ const char *p1 = buffer;
+ const char *p2 = s2.buffer;
+ while (*p1) {
+ if (tolower(*p1++) != tolower(*p2++))
+ return 0;
+ }
+ return 1;
}
-unsigned char String::startsWith( const String &s2, unsigned int offset ) const
-{
- if (offset > len - s2.len || !buffer || !s2.buffer) return 0;
- return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0;
+unsigned char String::startsWith(const String &s2) const {
+ if (len < s2.len)
+ return 0;
+ return startsWith(s2, 0);
}
-unsigned char String::endsWith( const String &s2 ) const
-{
- if ( len < s2.len || !buffer || !s2.buffer) return 0;
- return strcmp(&buffer[len - s2.len], s2.buffer) == 0;
+unsigned char String::startsWith(const String &s2, unsigned int offset) const {
+ if (offset > len - s2.len || !buffer || !s2.buffer)
+ return 0;
+ return strncmp(&buffer[offset], s2.buffer, s2.len) == 0;
+}
+
+unsigned char String::endsWith(const String &s2) const {
+ if (len < s2.len || !buffer || !s2.buffer)
+ return 0;
+ return strcmp(&buffer[len - s2.len], s2.buffer) == 0;
}
/*********************************************/
/* Character Access */
/*********************************************/
-char String::charAt(unsigned int loc) const
-{
- return operator[](loc);
+char String::charAt(unsigned int loc) const {
+ return operator[](loc);
}
-void String::setCharAt(unsigned int loc, char c)
-{
- if (loc < len) buffer[loc] = c;
+void String::setCharAt(unsigned int loc, char c) {
+ if (loc < len)
+ buffer[loc] = c;
}
-char & String::operator[](unsigned int index)
-{
- static char dummy_writable_char;
- if (index >= len || !buffer) {
- dummy_writable_char = 0;
- return dummy_writable_char;
- }
- return buffer[index];
+char &String::operator[](unsigned int index) {
+ static char dummy_writable_char;
+ if (index >= len || !buffer) {
+ dummy_writable_char = 0;
+ return dummy_writable_char;
+ }
+ return buffer[index];
}
-char String::operator[]( unsigned int index ) const
-{
- if (index >= len || !buffer) return 0;
- return buffer[index];
+char String::operator[](unsigned int index) const {
+ if (index >= len || !buffer)
+ return 0;
+ return buffer[index];
}
-void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const
-{
- if (!bufsize || !buf) return;
- if (index >= len) {
- buf[0] = 0;
- return;
- }
- unsigned int n = bufsize - 1;
- if (n > len - index) n = len - index;
- strncpy((char *)buf, buffer + index, n);
- buf[n] = 0;
+void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const {
+ if (!bufsize || !buf)
+ return;
+ if (index >= len) {
+ buf[0] = 0;
+ return;
+ }
+ unsigned int n = bufsize - 1;
+ if (n > len - index)
+ n = len - index;
+ strncpy((char *) buf, buffer + index, n);
+ buf[n] = 0;
}
/*********************************************/
/* Search */
/*********************************************/
-int String::indexOf(char c) const
-{
- return indexOf(c, 0);
-}
-
-int String::indexOf( char ch, unsigned int fromIndex ) const
-{
- if (fromIndex >= len) return -1;
- const char* temp = strchr(buffer + fromIndex, ch);
- if (temp == NULL) return -1;
- return temp - buffer;
-}
-
-int String::indexOf(const String &s2) const
-{
- return indexOf(s2, 0);
-}
-
-int String::indexOf(const String &s2, unsigned int fromIndex) const
-{
- if (fromIndex >= len) return -1;
- const char *found = strstr(buffer + fromIndex, s2.buffer);
- if (found == NULL) return -1;
- return found - buffer;
-}
-
-int String::lastIndexOf( char theChar ) const
-{
- return lastIndexOf(theChar, len - 1);
-}
-
-int String::lastIndexOf(char ch, unsigned int fromIndex) const
-{
- if (fromIndex >= len) return -1;
- char tempchar = buffer[fromIndex + 1];
- buffer[fromIndex + 1] = '\0';
- char* temp = strrchr( buffer, ch );
- buffer[fromIndex + 1] = tempchar;
- if (temp == NULL) return -1;
- return temp - buffer;
-}
-
-int String::lastIndexOf(const String &s2) const
-{
- return lastIndexOf(s2, len - s2.len);
-}
-
-int String::lastIndexOf(const String &s2, unsigned int fromIndex) const
-{
- if (s2.len == 0 || len == 0 || s2.len > len) return -1;
- if (fromIndex >= len) fromIndex = len - 1;
- int found = -1;
- for (char *p = buffer; p <= buffer + fromIndex; p++) {
- p = strstr(p, s2.buffer);
- if (!p) break;
- if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer;
- }
- return found;
-}
-
-String String::substring(unsigned int left, unsigned int right) const
-{
- if (left > right) {
- unsigned int temp = right;
- right = left;
- left = temp;
- }
- String out;
- if (left >= len) return out;
- if (right > len) right = len;
- char temp = buffer[right]; // save the replaced character
- buffer[right] = '\0';
- out = buffer + left; // pointer arithmetic
- buffer[right] = temp; //restore character
- return out;
+int String::indexOf(char c) const {
+ return indexOf(c, 0);
+}
+
+int String::indexOf(char ch, unsigned int fromIndex) const {
+ if (fromIndex >= len)
+ return -1;
+ const char *temp = strchr(buffer + fromIndex, ch);
+ if (temp == NULL)
+ return -1;
+ return temp - buffer;
+}
+
+int String::indexOf(const String &s2) const {
+ return indexOf(s2, 0);
+}
+
+int String::indexOf(const String &s2, unsigned int fromIndex) const {
+ if (fromIndex >= len)
+ return -1;
+ const char *found = strstr(buffer + fromIndex, s2.buffer);
+ if (found == NULL)
+ return -1;
+ return found - buffer;
+}
+
+int String::lastIndexOf(char theChar) const {
+ return lastIndexOf(theChar, len - 1);
+}
+
+int String::lastIndexOf(char ch, unsigned int fromIndex) const {
+ if (fromIndex >= len)
+ return -1;
+ char tempchar = buffer[fromIndex + 1];
+ buffer[fromIndex + 1] = '\0';
+ char *temp = strrchr(buffer, ch);
+ buffer[fromIndex + 1] = tempchar;
+ if (temp == NULL)
+ return -1;
+ return temp - buffer;
+}
+
+int String::lastIndexOf(const String &s2) const {
+ return lastIndexOf(s2, len - s2.len);
+}
+
+int String::lastIndexOf(const String &s2, unsigned int fromIndex) const {
+ if (s2.len == 0 || len == 0 || s2.len > len)
+ return -1;
+ if (fromIndex >= len)
+ fromIndex = len - 1;
+ int found = -1;
+ for (char *p = buffer; p <= buffer + fromIndex; p++) {
+ p = strstr(p, s2.buffer);
+ if (!p)
+ break;
+ if ((unsigned int) (p - buffer) <= fromIndex)
+ found = p - buffer;
+ }
+ return found;
+}
+
+String String::substring(unsigned int left, unsigned int right) const {
+ if (left > right) {
+ unsigned int temp = right;
+ right = left;
+ left = temp;
+ }
+ String out;
+ if (left >= len)
+ return out;
+ if (right > len)
+ right = len;
+ char temp = buffer[right]; // save the replaced character
+ buffer[right] = '\0';
+ out = buffer + left; // pointer arithmetic
+ buffer[right] = temp; //restore character
+ return out;
}
/*********************************************/
/* Modification */
/*********************************************/
-void String::replace(char find, char replace)
-{
- if (!buffer) return;
- for (char *p = buffer; *p; p++) {
- if (*p == find) *p = replace;
- }
-}
-
-void String::replace(const String& find, const String& replace)
-{
- if (len == 0 || find.len == 0) return;
- int diff = replace.len - find.len;
- char *readFrom = buffer;
- char *foundAt;
- if (diff == 0) {
- while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
- memcpy(foundAt, replace.buffer, replace.len);
- readFrom = foundAt + replace.len;
- }
- } else if (diff < 0) {
- char *writeTo = buffer;
- while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
- unsigned int n = foundAt - readFrom;
- memcpy(writeTo, readFrom, n);
- writeTo += n;
- memcpy(writeTo, replace.buffer, replace.len);
- writeTo += replace.len;
- readFrom = foundAt + find.len;
- len += diff;
- }
- strcpy(writeTo, readFrom);
- } else {
- unsigned int size = len; // compute size needed for result
- while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
- readFrom = foundAt + find.len;
- size += diff;
- }
- if (size == len) return;
- if (size > capacity && !changeBuffer(size)) return; // XXX: tell user!
- int index = len - 1;
- while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) {
- readFrom = buffer + index + find.len;
- memmove(readFrom + diff, readFrom, len - (readFrom - buffer));
- len += diff;
- buffer[len] = 0;
- memcpy(buffer + index, replace.buffer, replace.len);
- index--;
- }
- }
-}
-
-void String::remove(unsigned int index){
- // Pass the biggest integer as the count. The remove method
- // below will take care of truncating it at the end of the
- // string.
- remove(index, (unsigned int)-1);
-}
-
-void String::remove(unsigned int index, unsigned int count){
- if (index >= len) { return; }
- if (count <= 0) { return; }
- if (count > len - index) { count = len - index; }
- char *writeTo = buffer + index;
- len = len - count;
- strncpy(writeTo, buffer + index + count,len - index);
- buffer[len] = 0;
-}
-
-void String::toLowerCase(void)
-{
- if (!buffer) return;
- for (char *p = buffer; *p; p++) {
- *p = tolower(*p);
- }
-}
-
-void String::toUpperCase(void)
-{
- if (!buffer) return;
- for (char *p = buffer; *p; p++) {
- *p = toupper(*p);
- }
-}
-
-void String::trim(void)
-{
- if (!buffer || len == 0) return;
- char *begin = buffer;
- while (isspace(*begin)) begin++;
- char *end = buffer + len - 1;
- while (isspace(*end) && end >= begin) end--;
- len = end + 1 - begin;
- if (begin > buffer) memcpy(buffer, begin, len);
- buffer[len] = 0;
+void String::replace(char find, char replace) {
+ if (!buffer)
+ return;
+ for (char *p = buffer; *p; p++) {
+ if (*p == find)
+ *p = replace;
+ }
+}
+
+void String::replace(const String &find, const String &replace) {
+ if (len == 0 || find.len == 0)
+ return;
+ int diff = replace.len - find.len;
+ char *readFrom = buffer;
+ char *foundAt;
+ if (diff == 0) {
+ while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
+ memcpy(foundAt, replace.buffer, replace.len);
+ readFrom = foundAt + replace.len;
+ }
+ } else if (diff < 0) {
+ char *writeTo = buffer;
+ while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
+ unsigned int n = foundAt - readFrom;
+ memcpy(writeTo, readFrom, n);
+ writeTo += n;
+ memcpy(writeTo, replace.buffer, replace.len);
+ writeTo += replace.len;
+ readFrom = foundAt + find.len;
+ len += diff;
+ }
+ strcpy(writeTo, readFrom);
+ } else {
+ unsigned int size = len; // compute size needed for result
+ while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
+ readFrom = foundAt + find.len;
+ size += diff;
+ }
+ if (size == len)
+ return;
+ if (size > capacity && !changeBuffer(size))
+ return; // XXX: tell user!
+ int index = len - 1;
+ while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) {
+ readFrom = buffer + index + find.len;
+ memmove(readFrom + diff, readFrom, len - (readFrom - buffer));
+ len += diff;
+ buffer[len] = 0;
+ memcpy(buffer + index, replace.buffer, replace.len);
+ index--;
+ }
+ }
+}
+
+void String::remove(unsigned int index) {
+ // Pass the biggest integer as the count. The remove method
+ // below will take care of truncating it at the end of the
+ // string.
+ remove(index, (unsigned int) -1);
+}
+
+void String::remove(unsigned int index, unsigned int count) {
+ if (index >= len) {
+ return;
+ }
+ if (count <= 0) {
+ return;
+ }
+ if (count > len - index) {
+ count = len - index;
+ }
+ char *writeTo = buffer + index;
+ len = len - count;
+ strncpy(writeTo, buffer + index + count, len - index);
+ buffer[len] = 0;
+}
+
+void String::toLowerCase(void) {
+ if (!buffer)
+ return;
+ for (char *p = buffer; *p; p++) {
+ *p = tolower(*p);
+ }
+}
+
+void String::toUpperCase(void) {
+ if (!buffer)
+ return;
+ for (char *p = buffer; *p; p++) {
+ *p = toupper(*p);
+ }
+}
+
+void String::trim(void) {
+ if (!buffer || len == 0)
+ return;
+ char *begin = buffer;
+ while (isspace(*begin))
+ begin++;
+ char *end = buffer + len - 1;
+ while (isspace(*end) && end >= begin)
+ end--;
+ len = end + 1 - begin;
+ if (begin > buffer)
+ memcpy(buffer, begin, len);
+ buffer[len] = 0;
}
/*********************************************/
/* Parsing / Conversion */
/*********************************************/
-long String::toInt(void) const
-{
- if (buffer) return atol(buffer);
- return 0;
+long String::toInt(void) const {
+ if (buffer)
+ return atol(buffer);
+ return 0;
}
-float String::toFloat(void) const
-{
- if (buffer) return float(atof(buffer));
- return 0;
+float String::toFloat(void) const {
+ if (buffer)
+ return float(atof(buffer));
+ return 0;
}
diff --git a/cores/nRF5/WString.h b/cores/nRF5/WString.h
index 5618c0c57..92a354253 100644
--- a/cores/nRF5/WString.h
+++ b/cores/nRF5/WString.h
@@ -44,180 +44,180 @@ class StringSumHelper;
// The string class
class String
{
- // use a function pointer to allow for "if (s)" without the
- // complications of an operator bool(). for more information, see:
- // http://www.artima.com/cppsource/safebool.html
- typedef void (String::*StringIfHelperType)() const;
- void StringIfHelper() const {}
+ // use a function pointer to allow for "if (s)" without the
+ // complications of an operator bool(). for more information, see:
+ // http://www.artima.com/cppsource/safebool.html
+ typedef void (String::*StringIfHelperType)() const;
+ void StringIfHelper() const {}
public:
- // constructors
- // creates a copy of the initial value.
- // if the initial value is null or invalid, or if memory allocation
- // fails, the string will be marked as invalid (i.e. "if (s)" will
- // be false).
- String(const char *cstr = "");
- String(const String &str);
- String(const __FlashStringHelper *str);
- #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
- String(String &&rval);
- String(StringSumHelper &&rval);
- #endif
- explicit String(char c);
- explicit String(unsigned char, unsigned char base=10);
- explicit String(int, unsigned char base=10);
- explicit String(unsigned int, unsigned char base=10);
- explicit String(long, unsigned char base=10);
- explicit String(unsigned long, unsigned char base=10);
- explicit String(float, unsigned char decimalPlaces=2);
- explicit String(double, unsigned char decimalPlaces=2);
- ~String(void);
-
- // memory management
- // return true on success, false on failure (in which case, the string
- // is left unchanged). reserve(0), if successful, will validate an
- // invalid string (i.e., "if (s)" will be true afterwards)
- unsigned char reserve(unsigned int size);
- inline unsigned int length(void) const {return len;}
-
- // creates a copy of the assigned value. if the value is null or
- // invalid, or if the memory allocation fails, the string will be
- // marked as invalid ("if (s)" will be false).
- String & operator = (const String &rhs);
- String & operator = (const char *cstr);
- String & operator = (const __FlashStringHelper *str);
- #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
- String & operator = (String &&rval);
- String & operator = (StringSumHelper &&rval);
- #endif
-
- // concatenate (works w/ built-in types)
-
- // returns true on success, false on failure (in which case, the string
- // is left unchanged). if the argument is null or invalid, the
- // concatenation is considered unsucessful.
- unsigned char concat(const String &str);
- unsigned char concat(const char *cstr);
- unsigned char concat(char c);
- unsigned char concat(unsigned char c);
- unsigned char concat(int num);
- unsigned char concat(unsigned int num);
- unsigned char concat(long num);
- unsigned char concat(unsigned long num);
- unsigned char concat(float num);
- unsigned char concat(double num);
- unsigned char concat(const __FlashStringHelper * str);
-
- // if there's not enough memory for the concatenated value, the string
- // will be left unchanged (but this isn't signalled in any way)
- String & operator += (const String &rhs) {concat(rhs); return (*this);}
- String & operator += (const char *cstr) {concat(cstr); return (*this);}
- String & operator += (char c) {concat(c); return (*this);}
- String & operator += (unsigned char num) {concat(num); return (*this);}
- String & operator += (int num) {concat(num); return (*this);}
- String & operator += (unsigned int num) {concat(num); return (*this);}
- String & operator += (long num) {concat(num); return (*this);}
- String & operator += (unsigned long num) {concat(num); return (*this);}
- String & operator += (float num) {concat(num); return (*this);}
- String & operator += (double num) {concat(num); return (*this);}
- String & operator += (const __FlashStringHelper *str){concat(str); return (*this);}
-
- friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, char c);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, int num);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, long num);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, float num);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, double num);
- friend StringSumHelper & operator + (const StringSumHelper &lhs, const __FlashStringHelper *rhs);
-
- // comparison (only works w/ Strings and "strings")
- operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; }
- int compareTo(const String &s) const;
- unsigned char equals(const String &s) const;
- unsigned char equals(const char *cstr) const;
- unsigned char operator == (const String &rhs) const {return equals(rhs);}
- unsigned char operator == (const char *cstr) const {return equals(cstr);}
- unsigned char operator != (const String &rhs) const {return !equals(rhs);}
- unsigned char operator != (const char *cstr) const {return !equals(cstr);}
- unsigned char operator < (const String &rhs) const;
- unsigned char operator > (const String &rhs) const;
- unsigned char operator <= (const String &rhs) const;
- unsigned char operator >= (const String &rhs) const;
- unsigned char equalsIgnoreCase(const String &s) const;
- unsigned char startsWith( const String &prefix) const;
- unsigned char startsWith(const String &prefix, unsigned int offset) const;
- unsigned char endsWith(const String &suffix) const;
-
- // character acccess
- char charAt(unsigned int index) const;
- void setCharAt(unsigned int index, char c);
- char operator [] (unsigned int index) const;
- char& operator [] (unsigned int index);
- void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const;
- void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const
- {getBytes((unsigned char *)buf, bufsize, index);}
- const char * c_str() const { return buffer; }
-
- // search
- int indexOf( char ch ) const;
- int indexOf( char ch, unsigned int fromIndex ) const;
- int indexOf( const String &str ) const;
- int indexOf( const String &str, unsigned int fromIndex ) const;
- int lastIndexOf( char ch ) const;
- int lastIndexOf( char ch, unsigned int fromIndex ) const;
- int lastIndexOf( const String &str ) const;
- int lastIndexOf( const String &str, unsigned int fromIndex ) const;
- String substring( unsigned int beginIndex ) const { return substring(beginIndex, len); };
- String substring( unsigned int beginIndex, unsigned int endIndex ) const;
-
- // modification
- void replace(char find, char replace);
- void replace(const String& find, const String& replace);
- void remove(unsigned int index);
- void remove(unsigned int index, unsigned int count);
- void toLowerCase(void);
- void toUpperCase(void);
- void trim(void);
-
- // parsing/conversion
- long toInt(void) const;
- float toFloat(void) const;
+ // constructors
+ // creates a copy of the initial value.
+ // if the initial value is null or invalid, or if memory allocation
+ // fails, the string will be marked as invalid (i.e. "if (s)" will
+ // be false).
+ String(const char *cstr = "");
+ String(const String &str);
+ String(const __FlashStringHelper *str);
+ #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
+ String(String &&rval);
+ String(StringSumHelper &&rval);
+ #endif
+ explicit String(char c);
+ explicit String(unsigned char, unsigned char base=10);
+ explicit String(int, unsigned char base=10);
+ explicit String(unsigned int, unsigned char base=10);
+ explicit String(long, unsigned char base=10);
+ explicit String(unsigned long, unsigned char base=10);
+ explicit String(float, unsigned char decimalPlaces=2);
+ explicit String(double, unsigned char decimalPlaces=2);
+ ~String(void);
+
+ // memory management
+ // return true on success, false on failure (in which case, the string
+ // is left unchanged). reserve(0), if successful, will validate an
+ // invalid string (i.e., "if (s)" will be true afterwards)
+ unsigned char reserve(unsigned int size);
+ inline unsigned int length(void) const {return len;}
+
+ // creates a copy of the assigned value. if the value is null or
+ // invalid, or if the memory allocation fails, the string will be
+ // marked as invalid ("if (s)" will be false).
+ String & operator = (const String &rhs);
+ String & operator = (const char *cstr);
+ String & operator = (const __FlashStringHelper *str);
+ #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
+ String & operator = (String &&rval);
+ String & operator = (StringSumHelper &&rval);
+ #endif
+
+ // concatenate (works w/ built-in types)
+
+ // returns true on success, false on failure (in which case, the string
+ // is left unchanged). if the argument is null or invalid, the
+ // concatenation is considered unsucessful.
+ unsigned char concat(const String &str);
+ unsigned char concat(const char *cstr);
+ unsigned char concat(char c);
+ unsigned char concat(unsigned char c);
+ unsigned char concat(int num);
+ unsigned char concat(unsigned int num);
+ unsigned char concat(long num);
+ unsigned char concat(unsigned long num);
+ unsigned char concat(float num);
+ unsigned char concat(double num);
+ unsigned char concat(const __FlashStringHelper * str);
+
+ // if there's not enough memory for the concatenated value, the string
+ // will be left unchanged (but this isn't signalled in any way)
+ String & operator += (const String &rhs) {concat(rhs); return (*this);}
+ String & operator += (const char *cstr) {concat(cstr); return (*this);}
+ String & operator += (char c) {concat(c); return (*this);}
+ String & operator += (unsigned char num) {concat(num); return (*this);}
+ String & operator += (int num) {concat(num); return (*this);}
+ String & operator += (unsigned int num) {concat(num); return (*this);}
+ String & operator += (long num) {concat(num); return (*this);}
+ String & operator += (unsigned long num) {concat(num); return (*this);}
+ String & operator += (float num) {concat(num); return (*this);}
+ String & operator += (double num) {concat(num); return (*this);}
+ String & operator += (const __FlashStringHelper *str){concat(str); return (*this);}
+
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, char c);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, int num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, long num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, float num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, double num);
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, const __FlashStringHelper *rhs);
+
+ // comparison (only works w/ Strings and "strings")
+ operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; }
+ int compareTo(const String &s) const;
+ unsigned char equals(const String &s) const;
+ unsigned char equals(const char *cstr) const;
+ unsigned char operator == (const String &rhs) const {return equals(rhs);}
+ unsigned char operator == (const char *cstr) const {return equals(cstr);}
+ unsigned char operator != (const String &rhs) const {return !equals(rhs);}
+ unsigned char operator != (const char *cstr) const {return !equals(cstr);}
+ unsigned char operator < (const String &rhs) const;
+ unsigned char operator > (const String &rhs) const;
+ unsigned char operator <= (const String &rhs) const;
+ unsigned char operator >= (const String &rhs) const;
+ unsigned char equalsIgnoreCase(const String &s) const;
+ unsigned char startsWith( const String &prefix) const;
+ unsigned char startsWith(const String &prefix, unsigned int offset) const;
+ unsigned char endsWith(const String &suffix) const;
+
+ // character acccess
+ char charAt(unsigned int index) const;
+ void setCharAt(unsigned int index, char c);
+ char operator [] (unsigned int index) const;
+ char& operator [] (unsigned int index);
+ void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const;
+ void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const
+ {getBytes((unsigned char *)buf, bufsize, index);}
+ const char * c_str() const { return buffer; }
+
+ // search
+ int indexOf( char ch ) const;
+ int indexOf( char ch, unsigned int fromIndex ) const;
+ int indexOf( const String &str ) const;
+ int indexOf( const String &str, unsigned int fromIndex ) const;
+ int lastIndexOf( char ch ) const;
+ int lastIndexOf( char ch, unsigned int fromIndex ) const;
+ int lastIndexOf( const String &str ) const;
+ int lastIndexOf( const String &str, unsigned int fromIndex ) const;
+ String substring( unsigned int beginIndex ) const { return substring(beginIndex, len); };
+ String substring( unsigned int beginIndex, unsigned int endIndex ) const;
+
+ // modification
+ void replace(char find, char replace);
+ void replace(const String& find, const String& replace);
+ void remove(unsigned int index);
+ void remove(unsigned int index, unsigned int count);
+ void toLowerCase(void);
+ void toUpperCase(void);
+ void trim(void);
+
+ // parsing/conversion
+ long toInt(void) const;
+ float toFloat(void) const;
protected:
- char *buffer; // the actual char array
- unsigned int capacity; // the array length minus one (for the '\0')
- unsigned int len; // the String length (not counting the '\0')
+ char *buffer; // the actual char array
+ unsigned int capacity; // the array length minus one (for the '\0')
+ unsigned int len; // the String length (not counting the '\0')
protected:
- void init(void);
- void invalidate(void);
- unsigned char changeBuffer(unsigned int maxStrLen);
- unsigned char concat(const char *cstr, unsigned int length);
-
- // copy and move
- String & copy(const char *cstr, unsigned int length);
- String & copy(const __FlashStringHelper *pstr, unsigned int length);
- #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
- void move(String &rhs);
- #endif
+ void init(void);
+ void invalidate(void);
+ unsigned char changeBuffer(unsigned int maxStrLen);
+ unsigned char concat(const char *cstr, unsigned int length);
+
+ // copy and move
+ String & copy(const char *cstr, unsigned int length);
+ String & copy(const __FlashStringHelper *pstr, unsigned int length);
+ #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
+ void move(String &rhs);
+ #endif
};
class StringSumHelper : public String
{
public:
- StringSumHelper(const String &s) : String(s) {}
- StringSumHelper(const char *p) : String(p) {}
- StringSumHelper(char c) : String(c) {}
- StringSumHelper(unsigned char num) : String(num) {}
- StringSumHelper(int num) : String(num) {}
- StringSumHelper(unsigned int num) : String(num) {}
- StringSumHelper(long num) : String(num) {}
- StringSumHelper(unsigned long num) : String(num) {}
- StringSumHelper(float num) : String(num) {}
- StringSumHelper(double num) : String(num) {}
+ StringSumHelper(const String &s) : String(s) {}
+ StringSumHelper(const char *p) : String(p) {}
+ StringSumHelper(char c) : String(c) {}
+ StringSumHelper(unsigned char num) : String(num) {}
+ StringSumHelper(int num) : String(num) {}
+ StringSumHelper(unsigned int num) : String(num) {}
+ StringSumHelper(long num) : String(num) {}
+ StringSumHelper(unsigned long num) : String(num) {}
+ StringSumHelper(float num) : String(num) {}
+ StringSumHelper(double num) : String(num) {}
};
#endif // __cplusplus
diff --git a/cores/nRF5/WVariant.h b/cores/nRF5/WVariant.h
index 48784355f..c8dcd7509 100644
--- a/cores/nRF5/WVariant.h
+++ b/cores/nRF5/WVariant.h
@@ -29,7 +29,7 @@
extern "C" {
#endif
-extern const uint32_t g_ADigitalPinMap[] ;
+extern const uint32_t g_ADigitalPinMap[];
#ifdef __cplusplus
} // extern "C"
diff --git a/cores/nRF5/abi.cpp b/cores/nRF5/abi.cpp
index 46ab252ca..3506d3b14 100644
--- a/cores/nRF5/abi.cpp
+++ b/cores/nRF5/abi.cpp
@@ -22,15 +22,13 @@ extern "C" void __cxa_pure_virtual(void) __attribute__ ((__noreturn__));
extern "C" void __cxa_deleted_virtual(void) __attribute__ ((__noreturn__));
void __cxa_pure_virtual(void) {
- // We might want to write some diagnostics to uart in this case
- //std::terminate();
- while (1)
- ;
+ // We might want to write some diagnostics to uart in this case
+ //std::terminate();
+ while (1);
}
void __cxa_deleted_virtual(void) {
- // We might want to write some diagnostics to uart in this case
- //std::terminate();
- while (1)
- ;
+ // We might want to write some diagnostics to uart in this case
+ //std::terminate();
+ while (1);
}
diff --git a/cores/nRF5/common_func.h b/cores/nRF5/common_func.h
index be9a868e6..70eb1a941 100644
--- a/cores/nRF5/common_func.h
+++ b/cores/nRF5/common_func.h
@@ -38,7 +38,7 @@
#define _COMMON_FUNC_H_
#ifdef __cplusplus
- extern "C" {
+extern "C" {
#endif
#define COMMENT_OUT(x)
@@ -52,12 +52,12 @@
#define __swap32(x) __REV(x) ///< built-in function to swap Endian of 32-bit number
#define __swap16(u16) ((uint16_t) __REV16(u16)) ///< built-in function to swap Endian of 16-bit number
-#define maxof(a,b) \
+#define maxof(a, b) \
({ typeof (a) _a = (a); \
typeof (b) _b = (b); \
_a > _b ? _a : _b; })
-#define minof(a,b) \
+#define minof(a, b) \
({ typeof (a) _a = (a); \
typeof (b) _b = (b); \
_a < _b ? _a : _b; })
@@ -70,16 +70,16 @@
* Nth position is the same as the number of arguments
* - ##__VA_ARGS__ is used to deal with 0 paramerter (swallows comma)
*------------------------------------------------------------------*/
-#define VA_ARGS_NUM(...) NARG_(_0, ##__VA_ARGS__,_RSEQ_N())
+#define VA_ARGS_NUM(...) NARG_(_0, ##__VA_ARGS__,_RSEQ_N())
#define NARG_(...) _GET_NTH_ARG(__VA_ARGS__)
-#define _GET_NTH_ARG( \
- _1, _2, _3, _4, _5, _6, _7, _8, _9,_10, \
- _11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \
- _21,_22,_23,_24,_25,_26,_27,_28,_29,_30, \
- _31,_32,_33,_34,_35,_36,_37,_38,_39,_40, \
- _41,_42,_43,_44,_45,_46,_47,_48,_49,_50, \
- _51,_52,_53,_54,_55,_56,_57,_58,_59,_60, \
- _61,_62,_63,N,...) N
+#define _GET_NTH_ARG(\
+ _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
+ _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, \
+ _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, \
+ _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, \
+ _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, \
+ _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, \
+ _61, _62, _63, N, ...) N
#define _RSEQ_N() \
62,61,60, \
59,58,57,56,55,54,53,52,51,50, \
@@ -196,93 +196,81 @@ const char* dbg_err_str(int32_t err_id); // TODO move to other place
// INLINE FUNCTION
//--------------------------------------------------------------------+
/// Checks is all values in the supplied array are zero
-static inline bool mem_test_zero(void const* buffer, uint32_t size)
-{
- uint8_t const* p_mem = (uint8_t const*) buffer;
- for(uint32_t i=0; i y) ? x : y; }
+static inline uint8_t max8(uint8_t x, uint8_t y) { return (x > y) ? x : y; }
static inline uint16_t max16(uint16_t x, uint16_t y) { return (x > y) ? x : y; }
static inline uint32_t max32(uint32_t x, uint32_t y) { return (x > y) ? x : y; }
//------------- Conversion -------------//
/// form an uint32_t from 4 x uint8_t
-static inline uint32_t u32_from_u8(uint8_t b1, uint8_t b2, uint8_t b3, uint8_t b4)
-{
- return (b1 << 24) + (b2 << 16) + (b3 << 8) + b4;
+static inline uint32_t u32_from_u8(uint8_t b1, uint8_t b2, uint8_t b3, uint8_t b4) {
+ return (b1 << 24) + (b2 << 16) + (b3 << 8) + b4;
}
-static inline uint16_t u32_high_u16(uint32_t u32)
-{
- return (uint16_t) ((u32 >> 16) & 0xffff);
+static inline uint16_t u32_high_u16(uint32_t u32) {
+ return (uint16_t)((u32 >> 16) & 0xffff);
}
-static inline uint16_t u32_low_u16(uint32_t u32)
-{
- return (uint16_t) (u32 & 0xffff);
+static inline uint16_t u32_low_u16(uint32_t u32) {
+ return (uint16_t)(u32 & 0xffff);
}
-static inline uint16_t u16_from_u8(uint8_t b1, uint8_t b2)
-{
- return (b1 << 8) + b2;
+static inline uint16_t u16_from_u8(uint8_t b1, uint8_t b2) {
+ return (b1 << 8) + b2;
}
-static inline uint8_t u16_high_u8(uint16_t u16)
-{
- return (uint8_t) ((u16 >> 8) & 0x00ff);
+static inline uint8_t u16_high_u8(uint16_t u16) {
+ return (uint8_t)((u16 >> 8) & 0x00ff);
}
-static inline uint8_t u16_low_u8(uint16_t u16)
-{
- return (uint8_t) (u16 & 0x00ff);
+static inline uint8_t u16_low_u8(uint16_t u16) {
+ return (uint8_t)(u16 & 0x00ff);
}
//------------- Align -------------//
-static inline uint32_t align32 (uint32_t value)
-{
- return (value & 0xFFFFFFE0UL);
+static inline uint32_t align32(uint32_t value) {
+ return (value & 0xFFFFFFE0UL);
}
-static inline uint32_t align16 (uint32_t value)
-{
- return (value & 0xFFFFFFF0UL);
+static inline uint32_t align16(uint32_t value) {
+ return (value & 0xFFFFFFF0UL);
}
-static inline uint32_t align4 (uint32_t value)
-{
- return (value & 0xFFFFFFFCUL);
+static inline uint32_t align4(uint32_t value) {
+ return (value & 0xFFFFFFFCUL);
}
-static inline uint32_t align_n (uint32_t alignment, uint32_t value)
-{
- return value & (~(alignment-1));
+static inline uint32_t align_n(uint32_t alignment, uint32_t value) {
+ return value & (~(alignment - 1));
}
-static inline uint32_t align4k (uint32_t value)
-{
- return (value & 0xFFFFF000UL);
+static inline uint32_t align4k(uint32_t value) {
+ return (value & 0xFFFFF000UL);
}
-static inline uint32_t offset4k(uint32_t value)
-{
- return (value & 0xFFFUL);
+static inline uint32_t offset4k(uint32_t value) {
+ return (value & 0xFFFUL);
}
//------------- Mathematics -------------//
-static inline bool is_within(uint32_t lower, uint32_t value, uint32_t upper)
-{
- return (lower <= value) && (value <= upper);
+static inline bool is_within(uint32_t lower, uint32_t value, uint32_t upper) {
+ return (lower <= value) && (value <= upper);
}
#ifdef __cplusplus
- }
+}
#endif
#endif /* _COMMON_FUNC_H_ */
diff --git a/cores/nRF5/compiler_macro.h b/cores/nRF5/compiler_macro.h
index 698717ae0..5713df009 100644
--- a/cores/nRF5/compiler_macro.h
+++ b/cores/nRF5/compiler_macro.h
@@ -2,16 +2,12 @@
/*!
@file compiler_macro.h
@author hathach (tinyusb.org)
-
@section LICENSE
-
Software License Agreement (BSD License)
-
Copyright (c) 2013, K. Townsend (microBuilder.eu)
Copyright (c) 2018, Adafruit Industries (adafruit.com)
-
- All rights reserved.
+ All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
@@ -22,7 +18,6 @@
3. Neither the name of the copyright holders nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
@@ -45,4 +40,3 @@
#define ATTR_WEAK TU_ATTR_WEAK
#endif /* _COMPILER_MACRO_H_ */
-
diff --git a/cores/nRF5/delay.c b/cores/nRF5/delay.c
index f96d50588..5242a78b6 100644
--- a/cores/nRF5/delay.c
+++ b/cores/nRF5/delay.c
@@ -25,19 +25,16 @@
extern "C" {
#endif
-uint32_t millis( void )
-{
- return tick2ms(xTaskGetTickCount());
+uint32_t millis(void) {
+ return tick2ms(xTaskGetTickCount());
}
-uint32_t micros( void )
-{
- return tick2us(xTaskGetTickCount());
+uint32_t micros(void) {
+ return tick2us(xTaskGetTickCount());
}
-void delay( uint32_t ms )
-{
- uint32_t ticks = ms2tick(ms);
+void delay(uint32_t ms) {
+ uint32_t ticks = ms2tick(ms);
#ifdef USE_TINYUSB
// Take chance to flush usb cdc
@@ -49,21 +46,19 @@ void delay( uint32_t ms )
ticks -= flush_tick;
#endif
-
- vTaskDelay(ticks);
+
+ vTaskDelay(ticks);
}
-void dwt_enable(void)
-{
- CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; /* Global Enable for DWT */
- DWT->CYCCNT = 0; /* Reset the counter */
- DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; /* Enable cycle counter */
+void dwt_enable(void) {
+ CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; /* Global Enable for DWT */
+ DWT->CYCCNT = 0; /* Reset the counter */
+ DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; /* Enable cycle counter */
}
-void dwt_disable(void)
-{
- DWT->CTRL &= ~DWT_CTRL_CYCCNTENA_Msk;
- CoreDebug->DEMCR &= ~CoreDebug_DEMCR_TRCENA_Msk;
+void dwt_disable(void) {
+ DWT->CTRL &= ~DWT_CTRL_CYCCNTENA_Msk;
+ CoreDebug->DEMCR &= ~CoreDebug_DEMCR_TRCENA_Msk;
}
diff --git a/cores/nRF5/delay.h b/cores/nRF5/delay.h
index f25809f79..5234d0475 100644
--- a/cores/nRF5/delay.h
+++ b/cores/nRF5/delay.h
@@ -25,7 +25,6 @@ extern "C" {
#include
#include "nrfx.h"
-#include "variant.h"
/**
* \brief Returns the number of milliseconds since the Arduino board began running the current program.
@@ -34,7 +33,7 @@ extern "C" {
*
* \return Number of milliseconds since the program started (uint32_t)
*/
-extern uint32_t millis( void ) ;
+extern uint32_t millis(void);
/**
* \brief Returns the number of microseconds since the Arduino board began running the current program.
@@ -46,7 +45,7 @@ extern uint32_t millis( void ) ;
*
* \note There are 1,000 microseconds in a millisecond and 1,000,000 microseconds in a second.
*/
-extern uint32_t micros( void ) ;
+extern uint32_t micros(void);
/**
* \brief Pauses the program for the amount of time (in miliseconds) specified as parameter.
@@ -54,17 +53,16 @@ extern uint32_t micros( void ) ;
*
* \param dwMs the number of milliseconds to pause (uint32_t)
*/
-extern void delay( uint32_t dwMs );
+extern void delay(uint32_t dwMs);
/**
* \brief Pauses the program for the amount of time (in microseconds) specified as parameter.
*
* \param dwUs the number of microseconds to pause (uint32_t)
*/
-static __inline__ void delayMicroseconds( uint32_t ) __attribute__((always_inline, unused)) ;
-static __inline__ void delayMicroseconds( uint32_t usec )
-{
- nrfx_coredep_delay_us(usec);
+static __inline__ void delayMicroseconds(uint32_t) __attribute__((always_inline, unused));
+static __inline__ void delayMicroseconds(uint32_t usec) {
+ nrfx_coredep_delay_us(usec);
}
/**
diff --git a/cores/nRF5/hooks.c b/cores/nRF5/hooks.c
index f00bbb244..471f61524 100644
--- a/cores/nRF5/hooks.c
+++ b/cores/nRF5/hooks.c
@@ -26,7 +26,7 @@
* real cooperative scheduler.
*/
static void __empty() {
- // Empty
+ // Empty
}
void yield(void) __attribute__ ((weak, alias("__empty")));
@@ -39,8 +39,8 @@ void vApplicationIdleHook( void ) __attribute__ ((weak, alias("__empty")));
* handler provided by Arduino.
*/
static int __false() {
- // Return false
- return 0;
+ // Return false
+ return 0;
}
int sysTickHook(void) __attribute__ ((weak, alias("__false")));
@@ -52,9 +52,8 @@ int sysTickHook(void) __attribute__ ((weak, alias("__false")));
* Default action is halting.
*/
static void __halt() {
- // Halts
- while (1)
- ;
+ // Halts
+ while (1);
}
void svcHook(void) __attribute__ ((weak, alias("__halt")));
void pendSVHook(void) __attribute__ ((weak, alias("__halt")));
diff --git a/cores/nRF5/itoa.c b/cores/nRF5/itoa.c
index 608145e6d..d62307ba8 100644
--- a/cores/nRF5/itoa.c
+++ b/cores/nRF5/itoa.c
@@ -23,92 +23,81 @@
extern "C" {
#endif
-extern char* ltoa( long value, char *string, int radix )
-{
- char tmp[33];
- char *tp = tmp;
- long i;
- unsigned long v;
- int sign;
- char *sp;
-
- if ( string == NULL )
- {
- return 0 ;
- }
-
- if (radix > 36 || radix <= 1)
- {
- return 0 ;
- }
-
- sign = (radix == 10 && value < 0);
- if (sign)
- {
- v = -value;
- }
- else
- {
- v = (unsigned long)value;
- }
-
- while (v || tp == tmp)
- {
- i = v % radix;
- v = v / radix;
- if (i < 10)
- *tp++ = i+'0';
- else
- *tp++ = i + 'a' - 10;
- }
-
- sp = string;
-
- if (sign)
- *sp++ = '-';
- while (tp > tmp)
- *sp++ = *--tp;
- *sp = 0;
-
- return string;
+extern char *ltoa(long value, char *string, int radix) {
+ char tmp[33];
+ char *tp = tmp;
+ long i;
+ unsigned long v;
+ int sign;
+ char *sp;
+
+ if (string == NULL) {
+ return 0;
+ }
+
+ if (radix > 36 || radix <= 1) {
+ return 0;
+ }
+
+ sign = (radix == 10 && value < 0);
+ if (sign) {
+ v = -value;
+ } else {
+ v = (unsigned long) value;
+ }
+
+ while (v || tp == tmp) {
+ i = v % radix;
+ v = v / radix;
+ if (i < 10)
+ *tp++ = i + '0';
+ else
+ *tp++ = i + 'a' - 10;
+ }
+
+ sp = string;
+
+ if (sign)
+ *sp++ = '-';
+ while (tp > tmp)
+ *sp++ = *--tp;
+ *sp = 0;
+
+ return string;
}
-extern char* ultoa( unsigned long value, char *string, int radix )
-{
- char tmp[33];
- char *tp = tmp;
- long i;
- unsigned long v = value;
- char *sp;
-
- if ( string == NULL )
- {
- return 0;
- }
-
- if (radix > 36 || radix <= 1)
- {
- return 0;
- }
-
- while (v || tp == tmp)
- {
- i = v % radix;
- v = v / radix;
- if (i < 10)
- *tp++ = i+'0';
- else
- *tp++ = i + 'a' - 10;
- }
-
- sp = string;
-
-
- while (tp > tmp)
- *sp++ = *--tp;
- *sp = 0;
-
- return string;
+extern char *ultoa(unsigned long value, char *string, int radix) {
+ char tmp[33];
+ char *tp = tmp;
+ long i;
+ unsigned long v = value;
+ char *sp;
+
+ if (string == NULL) {
+ return 0;
+ }
+
+ if (radix > 36 || radix <= 1) {
+ return 0;
+ }
+
+ while (v || tp == tmp) {
+ i = v % radix;
+ v = v / radix;
+ if (i < 10)
+ *tp++ = i + '0';
+ else
+ *tp++ = i + 'a' - 10;
+ }
+
+ sp = string;
+
+
+ while (tp > tmp)
+ *sp++ = *--tp;
+ *sp = 0;
+
+ return string;
}
#ifdef __cplusplus
diff --git a/cores/nRF5/itoa.h b/cores/nRF5/itoa.h
index ba0010adf..69e85b9eb 100644
--- a/cores/nRF5/itoa.h
+++ b/cores/nRF5/itoa.h
@@ -22,8 +22,8 @@
extern "C"{
#endif
-extern char* ltoa( long value, char *string, int radix ) ;
-extern char* ultoa( unsigned long value, char *string, int radix ) ;
+extern char *ltoa(long value, char *string, int radix);
+extern char *ultoa(unsigned long value, char *string, int radix);
#ifdef __cplusplus
} // extern "C"
diff --git a/cores/nRF5/main.cpp b/cores/nRF5/main.cpp
index 62f3ca308..b37c6f2bd 100644
--- a/cores/nRF5/main.cpp
+++ b/cores/nRF5/main.cpp
@@ -14,6 +14,7 @@
*/
#define ARDUINO_MAIN
+
#include "Arduino.h"
// DEBUG Level 1
@@ -29,13 +30,13 @@ void Bluefruit_printInfo() {}
#include "SEGGER_SYSVIEW.h"
#endif
-static TaskHandle_t _loopHandle;
+static TaskHandle_t _loopHandle;
// Weak empty variant initialization function.
// May be redefined by variant files.
void initVariant() __attribute__((weak));
-void initVariant() { }
+void initVariant() {}
#define LOOP_STACK_SZ (256*4)
#define CALLBACK_STACK_SZ (256*3)
@@ -81,7 +82,7 @@ int main( void )
#endif
#if CFG_DEBUG >= 3
- SEGGER_SYSVIEW_Conf();
+ SEGGER_SYSVIEW_Conf();
#endif
// Create a task for loop()
@@ -98,24 +99,21 @@ int main( void )
return 0;
}
-void suspendLoop(void)
-{
- vTaskSuspend(_loopHandle);
+void suspendLoop(void) {
+ vTaskSuspend(_loopHandle);
}
extern "C"
{
// nanolib printf() retarget
-int _write (int fd, const void *buf, size_t count)
-{
- (void) fd;
-
- if ( Serial )
- {
- return Serial.write( (const uint8_t *) buf, count);
- }
- return 0;
+int _write(int fd, const void *buf, size_t count) {
+ (void) fd;
+
+ if (Serial) {
+ return Serial.write((const uint8_t *) buf, count);
+ }
+ return 0;
}
}
diff --git a/cores/nRF5/new.cpp b/cores/nRF5/new.cpp
index c646576ad..067844680 100644
--- a/cores/nRF5/new.cpp
+++ b/cores/nRF5/new.cpp
@@ -24,19 +24,19 @@
#include
void *operator new(size_t size) {
- return rtos_malloc(size);
+ return rtos_malloc(size);
}
void *operator new[](size_t size) {
- return rtos_malloc(size);
+ return rtos_malloc(size);
}
-void operator delete(void * ptr) {
- rtos_free(ptr);
+void operator delete(void *ptr) {
+ rtos_free(ptr);
}
-void operator delete[](void * ptr) {
- rtos_free(ptr);
+void operator delete[](void *ptr) {
+ rtos_free(ptr);
}
void operator delete(void * ptr, unsigned int) {
diff --git a/cores/nRF5/nordic/nrfx/mdk/nrf.h b/cores/nRF5/nordic/nrfx/mdk/nrf.h
index a60b47eba..07b5d9d9e 100644
--- a/cores/nRF5/nordic/nrfx/mdk/nrf.h
+++ b/cores/nRF5/nordic/nrfx/mdk/nrf.h
@@ -1,21 +1,15 @@
/*
-
Copyright (c) 2010 - 2018, Nordic Semiconductor ASA All rights reserved.
-
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
-
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-
3. Neither the name of Nordic Semiconductor ASA nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE
@@ -27,38 +21,37 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-
*/
#ifndef NRF_H
#define NRF_H
/* MDK version */
-#define MDK_MAJOR_VERSION 8
-#define MDK_MINOR_VERSION 24
-#define MDK_MICRO_VERSION 1
+#define MDK_MAJOR_VERSION 8
+#define MDK_MINOR_VERSION 24
+#define MDK_MICRO_VERSION 1
/* Redefine "old" too-generic name NRF52 to NRF52832_XXAA to keep backwards compatibility. */
#if defined (NRF52)
- #ifndef NRF52832_XXAA
+#ifndef NRF52832_XXAA
#define NRF52832_XXAA
#endif
#endif
/* Define NRF52_SERIES for common use in nRF52 series devices. Only if not previously defined. */
#if defined (NRF52810_XXAA) || defined (NRF52811_XXAA) || defined (NRF52832_XXAA) || defined (NRF52832_XXAB) || defined (NRF52840_XXAA)
- #ifndef NRF52_SERIES
+#ifndef NRF52_SERIES
#define NRF52_SERIES
#endif
#endif
/* Define NRF91_SERIES for common use in nRF91 series devices. */
#if defined (NRF9160_XXAA)
- #ifndef NRF91_SERIES
+#ifndef NRF91_SERIES
#define NRF91_SERIES
#endif
#endif
-
+
//#if defined(_WIN32)
// /* Do not include nrf specific files when building for PC host */
//#elif defined(__unix)
@@ -67,45 +60,44 @@ POSSIBILITY OF SUCH DAMAGE.
// /* Do not include nrf specific files when building for PC host */
//#else
- /* Device selection for device includes. */
- #if defined (NRF51)
- #include "nrf51.h"
+/* Device selection for device includes. */
+#if defined (NRF51)
+#include "nrf51.h"
#include "nrf51_bitfields.h"
#include "nrf51_deprecated.h"
-
- #elif defined (NRF52810_XXAA)
- #include "nrf52810.h"
+
+#elif defined (NRF52810_XXAA)
+#include "nrf52810.h"
#include "nrf52810_bitfields.h"
#include "nrf51_to_nrf52810.h"
#include "nrf52_to_nrf52810.h"
- #elif defined (NRF52811_XXAA)
- #include "nrf52811.h"
- #include "nrf52811_bitfields.h"
+#elif defined (NRF52811_XXAA)
+#include "nrf52811.h"
+ #include "nrf52811_bitfields.h"
#include "nrf51_to_nrf52810.h"
#include "nrf52_to_nrf52810.h"
- #include "nrf52810_to_nrf52811.h"
- #elif defined (NRF52832_XXAA) || defined (NRF52832_XXAB)
- #include "nrf52.h"
+ #include "nrf52810_to_nrf52811.h"
+#elif defined (NRF52832_XXAA) || defined (NRF52832_XXAB)
+#include "nrf52.h"
#include "nrf52_bitfields.h"
#include "nrf51_to_nrf52.h"
#include "nrf52_name_change.h"
- #elif defined (NRF52840_XXAA)
- #include "nrf52840.h"
+#elif defined (NRF52840_XXAA)
+#include "nrf52840.h"
#include "nrf52840_bitfields.h"
#include "nrf51_to_nrf52840.h"
#include "nrf52_to_nrf52840.h"
-
- #elif defined (NRF9160_XXAA)
- #include "nrf9160.h"
+
+#elif defined (NRF9160_XXAA)
+#include "nrf9160.h"
#include "nrf9160_bitfields.h"
-
- #else
- #error "Device must be defined. See nrf.h."
- #endif /* NRF51, NRF52810_XXAA, NRF52832_XXAA, NRF52832_XXAB, NRF52840_XXAA */
- #include "compiler_abstraction.h"
+#else
+ #error "Device must be defined. See nrf.h."
+#endif /* NRF51, NRF52810_XXAA, NRF52832_XXAA, NRF52832_XXAB, NRF52840_XXAA */
+
+#include "compiler_abstraction.h"
//#endif /* _WIN32 || __unix || __APPLE__ */
#endif /* NRF_H */
-
diff --git a/cores/nRF5/pulse.c b/cores/nRF5/pulse.c
index f930a9802..f32dc3f94 100644
--- a/cores/nRF5/pulse.c
+++ b/cores/nRF5/pulse.c
@@ -21,55 +21,54 @@
#include
// See pulse_asm.S
-extern unsigned long countPulseASM(const volatile uint32_t *port, uint32_t bit, uint32_t stateMask, unsigned long maxloops);
+extern unsigned long
+countPulseASM(const volatile uint32_t *port, uint32_t bit, uint32_t stateMask, unsigned long maxloops);
-unsigned long countPulseASM(const volatile uint32_t *port, uint32_t bit, uint32_t stateMask, unsigned long maxloops)
-{
- unsigned long width = 0;
-
- // wait for any previous pulse to end
- while ((*port & bit) == stateMask)
- if (--maxloops == 0)
- return 0;
-
- // wait for the pulse to start
- while ((*port & bit) != stateMask)
- if (--maxloops == 0)
- return 0;
-
- // wait for the pulse to stop
- while ((*port & bit) == stateMask) {
- if (++width == maxloops)
- return 0;
- }
- return width;
+unsigned long countPulseASM(const volatile uint32_t *port, uint32_t bit, uint32_t stateMask, unsigned long maxloops) {
+ unsigned long width = 0;
+
+ // wait for any previous pulse to end
+ while ((*port & bit) == stateMask)
+ if (--maxloops == 0)
+ return 0;
+
+ // wait for the pulse to start
+ while ((*port & bit) != stateMask)
+ if (--maxloops == 0)
+ return 0;
+
+ // wait for the pulse to stop
+ while ((*port & bit) == stateMask) {
+ if (++width == maxloops)
+ return 0;
+ }
+ return width;
}
/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH
* or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds
* to 3 minutes in length, but must be called at least a few dozen microseconds
* before the start of the pulse. */
-uint32_t pulseIn(uint32_t pin, uint32_t state, uint32_t timeout)
-{
- // cache the port and bit of the pin in order to speed up the
- // pulse width measuring loop and achieve finer resolution. calling
- // digitalRead() instead yields much coarser resolution.
- // PinDescription p = g_APinDescription[pin];
- uint32_t bit = digitalPinToBitMask(pin); //p.ulPin;
- uint32_t stateMask = state ? bit : 0;
-
- // convert the timeout from microseconds to a number of times through
- // the initial loop; it takes (roughly) 13 clock cycles per iteration.
- uint32_t maxloops = microsecondsToClockCycles(timeout) / 13;
-
- uint32_t width = countPulseASM(portInputRegister(digitalPinToPort(pin)), bit, stateMask, maxloops);
-
- // convert the reading to microseconds. The loop has been determined
- // to be 13 clock cycles long and have about 16 clocks between the edge
- // and the start of the loop. There will be some error introduced by
- // the interrupt handlers.
- if (width)
- return clockCyclesToMicroseconds(width * 13 + 16);
- else
- return 0;
+uint32_t pulseIn(uint32_t pin, uint32_t state, uint32_t timeout) {
+ // cache the port and bit of the pin in order to speed up the
+ // pulse width measuring loop and achieve finer resolution. calling
+ // digitalRead() instead yields much coarser resolution.
+ // PinDescription p = g_APinDescription[pin];
+ uint32_t bit = digitalPinToBitMask(pin); //p.ulPin;
+ uint32_t stateMask = state ? bit : 0;
+
+ // convert the timeout from microseconds to a number of times through
+ // the initial loop; it takes (roughly) 13 clock cycles per iteration.
+ uint32_t maxloops = microsecondsToClockCycles(timeout) / 13;
+
+ uint32_t width = countPulseASM(portInputRegister(digitalPinToPort(pin)), bit, stateMask, maxloops);
+
+ // convert the reading to microseconds. The loop has been determined
+ // to be 13 clock cycles long and have about 16 clocks between the edge
+ // and the start of the loop. There will be some error introduced by
+ // the interrupt handlers.
+ if (width)
+ return clockCyclesToMicroseconds(width * 13 + 16);
+ else
+ return 0;
}
diff --git a/cores/nRF5/rtos.cpp b/cores/nRF5/rtos.cpp
index 2dc052ca8..b311ce634 100644
--- a/cores/nRF5/rtos.cpp
+++ b/cores/nRF5/rtos.cpp
@@ -96,49 +96,49 @@ void vApplicationMallocFailedHook(void)
/* configSUPPORT_STATIC_ALLOCATION is set to 1, so the application must provide an
* implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
* used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- Note that, as the array is necessarily of type StackType_t,
- configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
+void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer,
+ uint32_t *pulIdleTaskStackSize) {
+ /* If the buffers to be provided to the Idle task are declared inside this
+ * function then they must be declared static - otherwise they will be allocated on
+ * the stack and so not exists after this function exits. */
+ static StaticTask_t xIdleTaskTCB;
+ static StackType_t uxIdleTaskStack[configMINIMAL_STACK_SIZE];
+
+ /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
+ state will be stored. */
+ *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
+
+ /* Pass out the array that will be used as the Idle task's stack. */
+ *ppxIdleTaskStackBuffer = uxIdleTaskStack;
+
+ /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
+ Note that, as the array is necessarily of type StackType_t,
+ configMINIMAL_STACK_SIZE is specified in words, not bytes. */
+ *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
}
/* configSUPPORT_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
* application must provide an implementation of vApplicationGetTimerTaskMemory()
* to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- Note that, as the array is necessarily of type StackType_t,
- configTIMER_TASK_STACK_DEPTH is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
+void vApplicationGetTimerTaskMemory(StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer,
+ uint32_t *pulTimerTaskStackSize) {
+ /* If the buffers to be provided to the Timer task are declared inside this
+ * function then they must be declared static - otherwise they will be allocated on
+ * the stack and so not exists after this function exits. */
+ static StaticTask_t xTimerTaskTCB;
+ static StackType_t uxTimerTaskStack[configTIMER_TASK_STACK_DEPTH];
+
+ /* Pass out a pointer to the StaticTask_t structure in which the Timer
+ task's state will be stored. */
+ *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
+
+ /* Pass out the array that will be used as the Timer task's stack. */
+ *ppxTimerTaskStackBuffer = uxTimerTaskStack;
+
+ /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
+ Note that, as the array is necessarily of type StackType_t,
+ configTIMER_TASK_STACK_DEPTH is specified in words, not bytes. */
+ *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
}
} // extern C
diff --git a/cores/nRF5/rtos.h b/cores/nRF5/rtos.h
index 86e7b0b29..86b37e96a 100644
--- a/cores/nRF5/rtos.h
+++ b/cores/nRF5/rtos.h
@@ -51,13 +51,12 @@
#include "semphr.h"
#define DELAY_FOREVER portMAX_DELAY
-enum
-{
- TASK_PRIO_LOWEST = 0, // Idle task, should not be used
- TASK_PRIO_LOW = 1, // Loop
- TASK_PRIO_NORMAL = 2, // Timer Task, Callback Task
- TASK_PRIO_HIGH = 3, // Bluefruit Task
- TASK_PRIO_HIGHEST = 4,
+enum {
+ TASK_PRIO_LOWEST = 0, // Idle task, should not be used
+ TASK_PRIO_LOW = 1, // Loop
+ TASK_PRIO_NORMAL = 2, // Timer Task, Callback Task
+ TASK_PRIO_HIGH = 3, // Bluefruit Task
+ TASK_PRIO_HIGHEST = 4,
};
#define ms2tick pdMS_TO_TICKS
@@ -68,14 +67,12 @@ enum
#define malloc_type(type) rtos_malloc( sizeof(type) )
#define rtos_malloc_type(_type) (_type*) rtos_malloc(sizeof(_type))
-static inline void* rtos_malloc(size_t _size)
-{
- return (xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED) ? malloc(_size) : pvPortMalloc(_size);
+static inline void *rtos_malloc(size_t _size) {
+ return (xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED) ? malloc(_size) : pvPortMalloc(_size);
}
-static inline void rtos_free( void *pv )
-{
- return (xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED) ? free(pv) : vPortFree(pv);
+static inline void rtos_free(void *pv) {
+ return (xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED) ? free(pv) : vPortFree(pv);
}
// Visible only with C++
diff --git a/cores/nRF5/syscall_newlib.c b/cores/nRF5/syscall_newlib.c
new file mode 100644
index 000000000..f0bc0d55a
--- /dev/null
+++ b/cores/nRF5/syscall_newlib.c
@@ -0,0 +1,83 @@
+/**************************************************************************/
+/*!
+ @file syscall_newlib.c
+ @author hathach (tinyusb.org)
+
+ @section LICENSE
+
+ Software License Agreement (BSD License)
+
+ Copyright (c) 2018, Adafruit Industries (adafruit.com)
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holders nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/**************************************************************************/
+
+#include
+#include
+#include
+
+#include "Arduino.h"
+
+// TODO linker provide end symbol is enough for nanolib's sbrk()
+// Verify this later with upgrade toolchain in the next release
+
+// defined in linker script
+extern unsigned char __HeapBase[];
+extern unsigned char __HeapLimit[];
+
+static unsigned char *sbrk_heap_top = __HeapBase;
+
+//volatile uint32_t first_sbrk = 0;
+//volatile uint32_t last_sbrk = 0;
+
+caddr_t _sbrk(int incr) {
+ unsigned char *prev_heap;
+
+ if (sbrk_heap_top + incr > __HeapLimit) {
+ /* Out of dynamic memory heap space */
+ errno = ENOMEM;
+ return (caddr_t) - 1;
+ }
+
+ prev_heap = sbrk_heap_top;
+
+// if ( !first_sbrk) first_sbrk = sbrk_heap_top;
+// last_sbrk = sbrk_heap_top;
+
+ sbrk_heap_top += incr;
+
+ return (caddr_t) prev_heap;
+}
+
+void __malloc_lock(struct _reent *ptr) {
+ (void) ptr;
+ vTaskSuspendAll();
+}
+
+void __malloc_unlock(struct _reent *ptr) {
+ (void) ptr;
+ xTaskResumeAll();
+}
+
diff --git a/cores/nRF5/sysview/SEGGER/SEGGER_RTT_Conf.h b/cores/nRF5/sysview/SEGGER/SEGGER_RTT_Conf.h
new file mode 100644
index 000000000..aef3b4053
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/SEGGER_RTT_Conf.h
@@ -0,0 +1,242 @@
+/*********************************************************************
+* SEGGER MICROCONTROLLER GmbH & Co. KG *
+* Solutions for real time microcontroller applications *
+**********************************************************************
+* *
+* (c) 2014 - 2016 SEGGER Microcontroller GmbH & Co. KG *
+* *
+* www.segger.com Support: support@segger.com *
+* *
+**********************************************************************
+* *
+* SEGGER RTT * Real Time Transfer for embedded targets *
+* *
+**********************************************************************
+* *
+* All rights reserved. *
+* *
+* * This software may in its unmodified form be freely redistributed *
+* in source form. *
+* * The source code may be modified, provided the source code *
+* retains the above copyright notice, this list of conditions and *
+* the following disclaimer. *
+* * Modified versions of this software in source or linkable form *
+* may not be distributed without prior consent of SEGGER. *
+* * This software may only be used for communication with SEGGER *
+* J-Link debug probes. *
+* *
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
+* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+* DAMAGE. *
+* *
+**********************************************************************
+* *
+* RTT version: 5.12e *
+* *
+**********************************************************************
+----------------------------------------------------------------------
+File : SEGGER_RTT_Conf.h
+Purpose : Implementation of SEGGER real-time transfer (RTT) which
+ allows real-time communication on targets which support
+ debugger memory accesses while the CPU is running.
+---------------------------END-OF-HEADER------------------------------
+*/
+
+#ifndef SEGGER_RTT_CONF_H
+#define SEGGER_RTT_CONF_H
+
+#ifdef __ICCARM__
+ #include
+#endif
+
+/*********************************************************************
+*
+* Defines, configurable
+*
+**********************************************************************
+*/
+
+#define SEGGER_RTT_MAX_NUM_UP_BUFFERS (2) // Max. number of up-buffers (T->H) available on this target (Default: 2)
+#define SEGGER_RTT_MAX_NUM_DOWN_BUFFERS (2) // Max. number of down-buffers (H->T) available on this target (Default: 2)
+
+#define BUFFER_SIZE_UP (1024) // Size of the buffer for terminal output of target, up to host (Default: 1k)
+#define BUFFER_SIZE_DOWN (16) // Size of the buffer for terminal input to target from host (Usually keyboard input) (Default: 16)
+
+#define SEGGER_RTT_PRINTF_BUFFER_SIZE (64u) // Size of buffer for RTT printf to bulk-send chars via RTT (Default: 64)
+
+#define SEGGER_RTT_MODE_DEFAULT SEGGER_RTT_MODE_NO_BLOCK_SKIP // Mode for pre-initialized terminal channel (buffer 0)
+
+//
+// Target is not allowed to perform other RTT operations while string still has not been stored completely.
+// Otherwise we would probably end up with a mixed string in the buffer.
+// If using RTT from within interrupts, multiple tasks or multi processors, define the SEGGER_RTT_LOCK() and SEGGER_RTT_UNLOCK() function here.
+//
+// SEGGER_RTT_MAX_INTERRUPT_PRIORITY can be used in the sample lock routines on Cortex-M3/4.
+// Make sure to mask all interrupts which can send RTT data, i.e. generate SystemView events, or cause task switches.
+// When high-priority interrupts must not be masked while sending RTT data, SEGGER_RTT_MAX_INTERRUPT_PRIORITY needs to be adjusted accordingly.
+// (Higher priority = lower priority number)
+// Default value for embOS: 128u
+// Default configuration in FreeRTOS: configMAX_SYSCALL_INTERRUPT_PRIORITY: ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
+// In case of doubt mask all interrupts: 0u
+//
+
+#define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20) // Interrupt priority to lock on SEGGER_RTT_LOCK on Cortex-M3/4 (Default: 0x20)
+
+/*********************************************************************
+*
+* RTT lock configuration for SEGGER Embedded Studio,
+* Rowley CrossStudio and GCC
+*/
+#if (defined __SES_ARM) || (defined __CROSSWORKS_ARM) || (defined __GNUC__)
+ #ifdef __ARM_ARCH_6M__
+ #define SEGGER_RTT_LOCK() { \
+ unsigned int LockState; \
+ __asm volatile ("mrs %0, primask \n\t" \
+ "mov r1, $1 \n\t" \
+ "msr primask, r1 \n\t" \
+ : "=r" (LockState) \
+ : \
+ : "r1" \
+ );
+
+ #define SEGGER_RTT_UNLOCK() __asm volatile ("msr primask, %0 \n\t" \
+ : \
+ : "r" (LockState) \
+ : \
+ ); \
+ }
+
+ #elif (defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__))
+ #ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY
+ #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20)
+ #endif
+ #define SEGGER_RTT_LOCK() { \
+ unsigned int LockState; \
+ __asm volatile ("mrs %0, basepri \n\t" \
+ "mov r1, %1 \n\t" \
+ "msr basepri, r1 \n\t" \
+ : "=r" (LockState) \
+ : "i"(SEGGER_RTT_MAX_INTERRUPT_PRIORITY) \
+ : "r1" \
+ );
+
+ #define SEGGER_RTT_UNLOCK() __asm volatile ("msr basepri, %0 \n\t" \
+ : \
+ : "r" (LockState) \
+ : \
+ ); \
+ }
+
+ #elif defined(__ARM_ARCH_7A__)
+ #define SEGGER_RTT_LOCK() { \
+ unsigned int LockState; \
+ __asm volatile ("mrs r1, CPSR \n\t" \
+ "mov %0, r1 \n\t" \
+ "orr r1, r1, #0xC0 \n\t" \
+ "msr CPSR_c, r1 \n\t" \
+ : "=r" (LockState) \
+ : \
+ : "r1" \
+ );
+
+ #define SEGGER_RTT_UNLOCK() __asm volatile ("mov r0, %0 \n\t" \
+ "mrs r1, CPSR \n\t" \
+ "bic r1, r1, #0xC0 \n\t" \
+ "and r0, r0, #0xC0 \n\t" \
+ "orr r1, r1, r0 \n\t" \
+ "msr CPSR_c, r1 \n\t" \
+ : \
+ : "r" (LockState) \
+ : "r0", "r1" \
+ ); \
+ }
+#else
+ #define SEGGER_RTT_LOCK()
+ #define SEGGER_RTT_UNLOCK()
+ #endif
+#endif
+
+/*********************************************************************
+*
+* RTT lock configuration for IAR EWARM
+*/
+#ifdef __ICCARM__
+ #if (defined (__ARM6M__) && (__CORE__ == __ARM6M__))
+ #define SEGGER_RTT_LOCK() { \
+ unsigned int LockState; \
+ LockState = __get_PRIMASK(); \
+ __set_PRIMASK(1);
+
+ #define SEGGER_RTT_UNLOCK() __set_PRIMASK(LockState); \
+ }
+ #elif ((defined (__ARM7EM__) && (__CORE__ == __ARM7EM__)) || (defined (__ARM7M__) && (__CORE__ == __ARM7M__)))
+ #ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY
+ #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20)
+ #endif
+ #define SEGGER_RTT_LOCK() { \
+ unsigned int LockState; \
+ LockState = __get_BASEPRI(); \
+ __set_BASEPRI(SEGGER_RTT_MAX_INTERRUPT_PRIORITY);
+
+ #define SEGGER_RTT_UNLOCK() __set_BASEPRI(LockState); \
+ }
+ #endif
+#endif
+
+/*********************************************************************
+*
+* RTT lock configuration for KEIL ARM
+*/
+#ifdef __CC_ARM
+ #if (defined __TARGET_ARCH_6S_M)
+ #define SEGGER_RTT_LOCK() { \
+ unsigned int LockState; \
+ register unsigned char PRIMASK __asm( "primask"); \
+ LockState = PRIMASK; \
+ PRIMASK = 1u; \
+ __schedule_barrier();
+
+ #define SEGGER_RTT_UNLOCK() PRIMASK = LockState; \
+ __schedule_barrier(); \
+ }
+ #elif (defined(__TARGET_ARCH_7_M) || defined(__TARGET_ARCH_7E_M))
+ #ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY
+ #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20)
+ #endif
+ #define SEGGER_RTT_LOCK() { \
+ unsigned int LockState; \
+ register unsigned char BASEPRI __asm( "basepri"); \
+ LockState = BASEPRI; \
+ BASEPRI = SEGGER_RTT_MAX_INTERRUPT_PRIORITY; \
+ __schedule_barrier();
+
+ #define SEGGER_RTT_UNLOCK() BASEPRI = LockState; \
+ __schedule_barrier(); \
+ }
+ #endif
+#endif
+
+/*********************************************************************
+*
+* RTT lock configuration fallback
+*/
+#ifndef SEGGER_RTT_LOCK
+ #define SEGGER_RTT_LOCK() // Lock RTT (nestable) (i.e. disable interrupts)
+#endif
+
+#ifndef SEGGER_RTT_UNLOCK
+ #define SEGGER_RTT_UNLOCK() // Unlock RTT (nestable) (i.e. enable previous interrupt lock state)
+#endif
+
+#endif
+/*************************** End of file ****************************/
diff --git a/cores/nRF5/sysview/SEGGER/SEGGER_RTT_SES.c b/cores/nRF5/sysview/SEGGER/SEGGER_RTT_SES.c
new file mode 100644
index 000000000..dc6d478be
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/SEGGER_RTT_SES.c
@@ -0,0 +1,78 @@
+/*********************************************************************
+* SEGGER MICROCONTROLLER GmbH & Co. KG *
+* Solutions for real time microcontroller applications *
+**********************************************************************
+* *
+* (c) 2014 - 2015 SEGGER Microcontroller GmbH & Co. KG *
+* *
+* www.segger.com Support: support@segger.com *
+* *
+**********************************************************************
+* *
+* All rights reserved. *
+* *
+* * This software may in its unmodified form be freely redistributed *
+* in source form. *
+* * The source code may be modified, provided the source code *
+* retains the above copyright notice, this list of conditions and *
+* the following disclaimer. *
+* * Modified versions of this software in source or linkable form *
+* may not be distributed without prior consent of SEGGER. *
+* * This software may only be used for communication with SEGGER *
+* J-Link debug probes. *
+* *
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
+* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+* DAMAGE. *
+* *
+**********************************************************************
+-------- END-OF-HEADER ---------------------------------------------
+File : SEGGER_RTT_Syscalls_SES.c
+Purpose : Reimplementation of printf, puts and
+ implementation of __putchar and __getchar using RTT in SES.
+ To use RTT for printf output, include this file in your
+ application.
+----------------------------------------------------------------------
+*/
+#include "SEGGER_RTT.h"
+
+#include "__libc.h"
+
+#include
+#include
+
+int printf(const char *fmt,...) {
+ char buffer[128];
+ va_list args;
+ va_start (args, fmt);
+ int n = vsnprintf(buffer, sizeof(buffer), fmt, args);
+ SEGGER_RTT_Write(0, buffer, n);
+ va_end(args);
+ return n;
+}
+
+int puts(const char *s) {
+ return SEGGER_RTT_WriteString(0, s);
+}
+
+int __putchar(int x, __printf_tag_ptr ctx) {
+ (void)ctx;
+ SEGGER_RTT_Write(0, (char *)&x, 1);
+ return x;
+}
+
+int __getchar() {
+ return SEGGER_RTT_WaitKey();
+}
+
+/****** End Of File *************************************************/
diff --git a/cores/nRF5/sysview/SEGGER/SEGGER_RTT_printf.c b/cores/nRF5/sysview/SEGGER/SEGGER_RTT_printf.c
index 32da3305f..0590de4a7 100644
--- a/cores/nRF5/sysview/SEGGER/SEGGER_RTT_printf.c
+++ b/cores/nRF5/sysview/SEGGER/SEGGER_RTT_printf.c
@@ -1,504 +1,504 @@
-/*********************************************************************
-* SEGGER Microcontroller GmbH *
-* The Embedded Experts *
-**********************************************************************
-* *
-* (c) 1995 - 2019 SEGGER Microcontroller GmbH *
-* *
-* www.segger.com Support: support@segger.com *
-* *
-**********************************************************************
-* *
-* SEGGER SystemView * Real-time application analysis *
-* *
-**********************************************************************
-* *
-* All rights reserved. *
-* *
-* SEGGER strongly recommends to not make any changes *
-* to or modify the source code of this software in order to stay *
-* compatible with the SystemView and RTT protocol, and J-Link. *
-* *
-* Redistribution and use in source and binary forms, with or *
-* without modification, are permitted provided that the following *
-* condition is met: *
-* *
-* o Redistributions of source code must retain the above copyright *
-* notice, this condition and the following disclaimer. *
-* *
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
-* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
-* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
-* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
-* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
-* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
-* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
-* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
-* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
-* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
-* DAMAGE. *
-* *
-**********************************************************************
-* *
-* SystemView version: 3.10 *
-* *
-**********************************************************************
----------------------------END-OF-HEADER------------------------------
-File : SEGGER_RTT_printf.c
-Purpose : Replacement for printf to write formatted data via RTT
-Revision: $Rev: 16733 $
-----------------------------------------------------------------------
-*/
-#include "SEGGER_RTT.h"
-#include "SEGGER_RTT_Conf.h"
-
-/*********************************************************************
-*
-* Defines, configurable
-*
-**********************************************************************
-*/
-
-#ifndef SEGGER_RTT_PRINTF_BUFFER_SIZE
- #define SEGGER_RTT_PRINTF_BUFFER_SIZE (64)
-#endif
-
-#include
-#include
-
-
-#define FORMAT_FLAG_LEFT_JUSTIFY (1u << 0)
-#define FORMAT_FLAG_PAD_ZERO (1u << 1)
-#define FORMAT_FLAG_PRINT_SIGN (1u << 2)
-#define FORMAT_FLAG_ALTERNATE (1u << 3)
-
-/*********************************************************************
-*
-* Types
-*
-**********************************************************************
-*/
-
-typedef struct {
- char* pBuffer;
- unsigned BufferSize;
- unsigned Cnt;
-
- int ReturnValue;
-
- unsigned RTTBufferIndex;
-} SEGGER_RTT_PRINTF_DESC;
-
-/*********************************************************************
-*
-* Function prototypes
-*
-**********************************************************************
-*/
-
-/*********************************************************************
-*
-* Static code
-*
-**********************************************************************
-*/
-/*********************************************************************
-*
-* _StoreChar
-*/
-static void _StoreChar(SEGGER_RTT_PRINTF_DESC * p, char c) {
- unsigned Cnt;
-
- Cnt = p->Cnt;
- if ((Cnt + 1u) <= p->BufferSize) {
- *(p->pBuffer + Cnt) = c;
- p->Cnt = Cnt + 1u;
- p->ReturnValue++;
- }
- //
- // Write part of string, when the buffer is full
- //
- if (p->Cnt == p->BufferSize) {
- if (SEGGER_RTT_Write(p->RTTBufferIndex, p->pBuffer, p->Cnt) != p->Cnt) {
- p->ReturnValue = -1;
- } else {
- p->Cnt = 0u;
- }
- }
-}
-
-/*********************************************************************
-*
-* _PrintUnsigned
-*/
-static void _PrintUnsigned(SEGGER_RTT_PRINTF_DESC * pBufferDesc, unsigned v, unsigned Base, unsigned NumDigits, unsigned FieldWidth, unsigned FormatFlags) {
- static const char _aV2C[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
- unsigned Div;
- unsigned Digit;
- unsigned Number;
- unsigned Width;
- char c;
-
- Number = v;
- Digit = 1u;
- //
- // Get actual field width
- //
- Width = 1u;
- while (Number >= Base) {
- Number = (Number / Base);
- Width++;
- }
- if (NumDigits > Width) {
- Width = NumDigits;
- }
- //
- // Print leading chars if necessary
- //
- if ((FormatFlags & FORMAT_FLAG_LEFT_JUSTIFY) == 0u) {
- if (FieldWidth != 0u) {
- if (((FormatFlags & FORMAT_FLAG_PAD_ZERO) == FORMAT_FLAG_PAD_ZERO) && (NumDigits == 0u)) {
- c = '0';
- } else {
- c = ' ';
- }
- while ((FieldWidth != 0u) && (Width < FieldWidth)) {
- FieldWidth--;
- _StoreChar(pBufferDesc, c);
- if (pBufferDesc->ReturnValue < 0) {
- break;
- }
- }
- }
- }
- if (pBufferDesc->ReturnValue >= 0) {
- //
- // Compute Digit.
- // Loop until Digit has the value of the highest digit required.
- // Example: If the output is 345 (Base 10), loop 2 times until Digit is 100.
- //
- while (1) {
- if (NumDigits > 1u) { // User specified a min number of digits to print? => Make sure we loop at least that often, before checking anything else (> 1 check avoids problems with NumDigits being signed / unsigned)
- NumDigits--;
- } else {
- Div = v / Digit;
- if (Div < Base) { // Is our divider big enough to extract the highest digit from value? => Done
- break;
- }
- }
- Digit *= Base;
- }
- //
- // Output digits
- //
- do {
- Div = v / Digit;
- v -= Div * Digit;
- _StoreChar(pBufferDesc, _aV2C[Div]);
- if (pBufferDesc->ReturnValue < 0) {
- break;
- }
- Digit /= Base;
- } while (Digit);
- //
- // Print trailing spaces if necessary
- //
- if ((FormatFlags & FORMAT_FLAG_LEFT_JUSTIFY) == FORMAT_FLAG_LEFT_JUSTIFY) {
- if (FieldWidth != 0u) {
- while ((FieldWidth != 0u) && (Width < FieldWidth)) {
- FieldWidth--;
- _StoreChar(pBufferDesc, ' ');
- if (pBufferDesc->ReturnValue < 0) {
- break;
- }
- }
- }
- }
- }
-}
-
-/*********************************************************************
-*
-* _PrintInt
-*/
-static void _PrintInt(SEGGER_RTT_PRINTF_DESC * pBufferDesc, int v, unsigned Base, unsigned NumDigits, unsigned FieldWidth, unsigned FormatFlags) {
- unsigned Width;
- int Number;
-
- Number = (v < 0) ? -v : v;
-
- //
- // Get actual field width
- //
- Width = 1u;
- while (Number >= (int)Base) {
- Number = (Number / (int)Base);
- Width++;
- }
- if (NumDigits > Width) {
- Width = NumDigits;
- }
- if ((FieldWidth > 0u) && ((v < 0) || ((FormatFlags & FORMAT_FLAG_PRINT_SIGN) == FORMAT_FLAG_PRINT_SIGN))) {
- FieldWidth--;
- }
-
- //
- // Print leading spaces if necessary
- //
- if ((((FormatFlags & FORMAT_FLAG_PAD_ZERO) == 0u) || (NumDigits != 0u)) && ((FormatFlags & FORMAT_FLAG_LEFT_JUSTIFY) == 0u)) {
- if (FieldWidth != 0u) {
- while ((FieldWidth != 0u) && (Width < FieldWidth)) {
- FieldWidth--;
- _StoreChar(pBufferDesc, ' ');
- if (pBufferDesc->ReturnValue < 0) {
- break;
- }
- }
- }
- }
- //
- // Print sign if necessary
- //
- if (pBufferDesc->ReturnValue >= 0) {
- if (v < 0) {
- v = -v;
- _StoreChar(pBufferDesc, '-');
- } else if ((FormatFlags & FORMAT_FLAG_PRINT_SIGN) == FORMAT_FLAG_PRINT_SIGN) {
- _StoreChar(pBufferDesc, '+');
- } else {
-
- }
- if (pBufferDesc->ReturnValue >= 0) {
- //
- // Print leading zeros if necessary
- //
- if (((FormatFlags & FORMAT_FLAG_PAD_ZERO) == FORMAT_FLAG_PAD_ZERO) && ((FormatFlags & FORMAT_FLAG_LEFT_JUSTIFY) == 0u) && (NumDigits == 0u)) {
- if (FieldWidth != 0u) {
- while ((FieldWidth != 0u) && (Width < FieldWidth)) {
- FieldWidth--;
- _StoreChar(pBufferDesc, '0');
- if (pBufferDesc->ReturnValue < 0) {
- break;
- }
- }
- }
- }
- if (pBufferDesc->ReturnValue >= 0) {
- //
- // Print number without sign
- //
- _PrintUnsigned(pBufferDesc, (unsigned)v, Base, NumDigits, FieldWidth, FormatFlags);
- }
- }
- }
-}
-
-/*********************************************************************
-*
-* Public code
-*
-**********************************************************************
-*/
-/*********************************************************************
-*
-* SEGGER_RTT_vprintf
-*
-* Function description
-* Stores a formatted string in SEGGER RTT control block.
-* This data is read by the host.
-*
-* Parameters
-* BufferIndex Index of "Up"-buffer to be used. (e.g. 0 for "Terminal")
-* sFormat Pointer to format string
-* pParamList Pointer to the list of arguments for the format string
-*
-* Return values
-* >= 0: Number of bytes which have been stored in the "Up"-buffer.
-* < 0: Error
-*/
-int SEGGER_RTT_vprintf(unsigned BufferIndex, const char * sFormat, va_list * pParamList) {
- char c;
- SEGGER_RTT_PRINTF_DESC BufferDesc;
- int v;
- unsigned NumDigits;
- unsigned FormatFlags;
- unsigned FieldWidth;
- char acBuffer[SEGGER_RTT_PRINTF_BUFFER_SIZE];
-
- BufferDesc.pBuffer = acBuffer;
- BufferDesc.BufferSize = SEGGER_RTT_PRINTF_BUFFER_SIZE;
- BufferDesc.Cnt = 0u;
- BufferDesc.RTTBufferIndex = BufferIndex;
- BufferDesc.ReturnValue = 0;
-
- do {
- c = *sFormat;
- sFormat++;
- if (c == 0u) {
- break;
- }
- if (c == '%') {
- //
- // Filter out flags
- //
- FormatFlags = 0u;
- v = 1;
- do {
- c = *sFormat;
- switch (c) {
- case '-': FormatFlags |= FORMAT_FLAG_LEFT_JUSTIFY; sFormat++; break;
- case '0': FormatFlags |= FORMAT_FLAG_PAD_ZERO; sFormat++; break;
- case '+': FormatFlags |= FORMAT_FLAG_PRINT_SIGN; sFormat++; break;
- case '#': FormatFlags |= FORMAT_FLAG_ALTERNATE; sFormat++; break;
- default: v = 0; break;
- }
- } while (v);
- //
- // filter out field with
- //
- FieldWidth = 0u;
- do {
- c = *sFormat;
- if ((c < '0') || (c > '9')) {
- break;
- }
- sFormat++;
- FieldWidth = (FieldWidth * 10u) + ((unsigned)c - '0');
- } while (1);
-
- //
- // Filter out precision (number of digits to display)
- //
- NumDigits = 0u;
- c = *sFormat;
- if (c == '.') {
- sFormat++;
- do {
- c = *sFormat;
- if ((c < '0') || (c > '9')) {
- break;
- }
- sFormat++;
- NumDigits = NumDigits * 10u + ((unsigned)c - '0');
- } while (1);
- }
- //
- // Filter out length modifier
- //
- c = *sFormat;
- do {
- if ((c == 'l') || (c == 'h')) {
- sFormat++;
- c = *sFormat;
- } else {
- break;
- }
- } while (1);
- //
- // Handle specifiers
- //
- switch (c) {
- case 'c': {
- char c0;
- v = va_arg(*pParamList, int);
- c0 = (char)v;
- _StoreChar(&BufferDesc, c0);
- break;
- }
- case 'd':
- v = va_arg(*pParamList, int);
- _PrintInt(&BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags);
- break;
- case 'u':
- v = va_arg(*pParamList, int);
- _PrintUnsigned(&BufferDesc, (unsigned)v, 10u, NumDigits, FieldWidth, FormatFlags);
- break;
- case 'x':
- case 'X':
- v = va_arg(*pParamList, int);
- _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, NumDigits, FieldWidth, FormatFlags);
- break;
- case 's':
- {
- const char * s = va_arg(*pParamList, const char *);
- do {
- c = *s;
- s++;
- if (c == '\0') {
- break;
- }
- _StoreChar(&BufferDesc, c);
- } while (BufferDesc.ReturnValue >= 0);
- }
- break;
- case 'p':
- v = va_arg(*pParamList, int);
- _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, 8u, 8u, 0u);
- break;
- case '%':
- _StoreChar(&BufferDesc, '%');
- break;
- default:
- break;
- }
- sFormat++;
- } else {
- _StoreChar(&BufferDesc, c);
- }
- } while (BufferDesc.ReturnValue >= 0);
-
- if (BufferDesc.ReturnValue > 0) {
- //
- // Write remaining data, if any
- //
- if (BufferDesc.Cnt != 0u) {
- SEGGER_RTT_Write(BufferIndex, acBuffer, BufferDesc.Cnt);
- }
- BufferDesc.ReturnValue += (int)BufferDesc.Cnt;
- }
- return BufferDesc.ReturnValue;
-}
-
-/*********************************************************************
-*
-* SEGGER_RTT_printf
-*
-* Function description
-* Stores a formatted string in SEGGER RTT control block.
-* This data is read by the host.
-*
-* Parameters
-* BufferIndex Index of "Up"-buffer to be used. (e.g. 0 for "Terminal")
-* sFormat Pointer to format string, followed by the arguments for conversion
-*
-* Return values
-* >= 0: Number of bytes which have been stored in the "Up"-buffer.
-* < 0: Error
-*
-* Notes
-* (1) Conversion specifications have following syntax:
-* %[flags][FieldWidth][.Precision]ConversionSpecifier
-* (2) Supported flags:
-* -: Left justify within the field width
-* +: Always print sign extension for signed conversions
-* 0: Pad with 0 instead of spaces. Ignored when using '-'-flag or precision
-* Supported conversion specifiers:
-* c: Print the argument as one char
-* d: Print the argument as a signed integer
-* u: Print the argument as an unsigned integer
-* x: Print the argument as an hexadecimal integer
-* s: Print the string pointed to by the argument
-* p: Print the argument as an 8-digit hexadecimal integer. (Argument shall be a pointer to void.)
-*/
-int SEGGER_RTT_printf(unsigned BufferIndex, const char * sFormat, ...) {
- int r;
- va_list ParamList;
-
- va_start(ParamList, sFormat);
- r = SEGGER_RTT_vprintf(BufferIndex, sFormat, &ParamList);
- va_end(ParamList);
- return r;
-}
-/*************************** End of file ****************************/
+/*********************************************************************
+* SEGGER Microcontroller GmbH *
+* The Embedded Experts *
+**********************************************************************
+* *
+* (c) 1995 - 2019 SEGGER Microcontroller GmbH *
+* *
+* www.segger.com Support: support@segger.com *
+* *
+**********************************************************************
+* *
+* SEGGER SystemView * Real-time application analysis *
+* *
+**********************************************************************
+* *
+* All rights reserved. *
+* *
+* SEGGER strongly recommends to not make any changes *
+* to or modify the source code of this software in order to stay *
+* compatible with the SystemView and RTT protocol, and J-Link. *
+* *
+* Redistribution and use in source and binary forms, with or *
+* without modification, are permitted provided that the following *
+* condition is met: *
+* *
+* o Redistributions of source code must retain the above copyright *
+* notice, this condition and the following disclaimer. *
+* *
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
+* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+* DAMAGE. *
+* *
+**********************************************************************
+* *
+* SystemView version: 3.10 *
+* *
+**********************************************************************
+---------------------------END-OF-HEADER------------------------------
+File : SEGGER_RTT_printf.c
+Purpose : Replacement for printf to write formatted data via RTT
+Revision: $Rev: 16733 $
+----------------------------------------------------------------------
+*/
+#include "SEGGER_RTT.h"
+#include "SEGGER_RTT_Conf.h"
+
+/*********************************************************************
+*
+* Defines, configurable
+*
+**********************************************************************
+*/
+
+#ifndef SEGGER_RTT_PRINTF_BUFFER_SIZE
+ #define SEGGER_RTT_PRINTF_BUFFER_SIZE (64)
+#endif
+
+#include
+#include
+
+
+#define FORMAT_FLAG_LEFT_JUSTIFY (1u << 0)
+#define FORMAT_FLAG_PAD_ZERO (1u << 1)
+#define FORMAT_FLAG_PRINT_SIGN (1u << 2)
+#define FORMAT_FLAG_ALTERNATE (1u << 3)
+
+/*********************************************************************
+*
+* Types
+*
+**********************************************************************
+*/
+
+typedef struct {
+ char* pBuffer;
+ unsigned BufferSize;
+ unsigned Cnt;
+
+ int ReturnValue;
+
+ unsigned RTTBufferIndex;
+} SEGGER_RTT_PRINTF_DESC;
+
+/*********************************************************************
+*
+* Function prototypes
+*
+**********************************************************************
+*/
+
+/*********************************************************************
+*
+* Static code
+*
+**********************************************************************
+*/
+/*********************************************************************
+*
+* _StoreChar
+*/
+static void _StoreChar(SEGGER_RTT_PRINTF_DESC * p, char c) {
+ unsigned Cnt;
+
+ Cnt = p->Cnt;
+ if ((Cnt + 1u) <= p->BufferSize) {
+ *(p->pBuffer + Cnt) = c;
+ p->Cnt = Cnt + 1u;
+ p->ReturnValue++;
+ }
+ //
+ // Write part of string, when the buffer is full
+ //
+ if (p->Cnt == p->BufferSize) {
+ if (SEGGER_RTT_Write(p->RTTBufferIndex, p->pBuffer, p->Cnt) != p->Cnt) {
+ p->ReturnValue = -1;
+ } else {
+ p->Cnt = 0u;
+ }
+ }
+}
+
+/*********************************************************************
+*
+* _PrintUnsigned
+*/
+static void _PrintUnsigned(SEGGER_RTT_PRINTF_DESC * pBufferDesc, unsigned v, unsigned Base, unsigned NumDigits, unsigned FieldWidth, unsigned FormatFlags) {
+ static const char _aV2C[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
+ unsigned Div;
+ unsigned Digit;
+ unsigned Number;
+ unsigned Width;
+ char c;
+
+ Number = v;
+ Digit = 1u;
+ //
+ // Get actual field width
+ //
+ Width = 1u;
+ while (Number >= Base) {
+ Number = (Number / Base);
+ Width++;
+ }
+ if (NumDigits > Width) {
+ Width = NumDigits;
+ }
+ //
+ // Print leading chars if necessary
+ //
+ if ((FormatFlags & FORMAT_FLAG_LEFT_JUSTIFY) == 0u) {
+ if (FieldWidth != 0u) {
+ if (((FormatFlags & FORMAT_FLAG_PAD_ZERO) == FORMAT_FLAG_PAD_ZERO) && (NumDigits == 0u)) {
+ c = '0';
+ } else {
+ c = ' ';
+ }
+ while ((FieldWidth != 0u) && (Width < FieldWidth)) {
+ FieldWidth--;
+ _StoreChar(pBufferDesc, c);
+ if (pBufferDesc->ReturnValue < 0) {
+ break;
+ }
+ }
+ }
+ }
+ if (pBufferDesc->ReturnValue >= 0) {
+ //
+ // Compute Digit.
+ // Loop until Digit has the value of the highest digit required.
+ // Example: If the output is 345 (Base 10), loop 2 times until Digit is 100.
+ //
+ while (1) {
+ if (NumDigits > 1u) { // User specified a min number of digits to print? => Make sure we loop at least that often, before checking anything else (> 1 check avoids problems with NumDigits being signed / unsigned)
+ NumDigits--;
+ } else {
+ Div = v / Digit;
+ if (Div < Base) { // Is our divider big enough to extract the highest digit from value? => Done
+ break;
+ }
+ }
+ Digit *= Base;
+ }
+ //
+ // Output digits
+ //
+ do {
+ Div = v / Digit;
+ v -= Div * Digit;
+ _StoreChar(pBufferDesc, _aV2C[Div]);
+ if (pBufferDesc->ReturnValue < 0) {
+ break;
+ }
+ Digit /= Base;
+ } while (Digit);
+ //
+ // Print trailing spaces if necessary
+ //
+ if ((FormatFlags & FORMAT_FLAG_LEFT_JUSTIFY) == FORMAT_FLAG_LEFT_JUSTIFY) {
+ if (FieldWidth != 0u) {
+ while ((FieldWidth != 0u) && (Width < FieldWidth)) {
+ FieldWidth--;
+ _StoreChar(pBufferDesc, ' ');
+ if (pBufferDesc->ReturnValue < 0) {
+ break;
+ }
+ }
+ }
+ }
+ }
+}
+
+/*********************************************************************
+*
+* _PrintInt
+*/
+static void _PrintInt(SEGGER_RTT_PRINTF_DESC * pBufferDesc, int v, unsigned Base, unsigned NumDigits, unsigned FieldWidth, unsigned FormatFlags) {
+ unsigned Width;
+ int Number;
+
+ Number = (v < 0) ? -v : v;
+
+ //
+ // Get actual field width
+ //
+ Width = 1u;
+ while (Number >= (int)Base) {
+ Number = (Number / (int)Base);
+ Width++;
+ }
+ if (NumDigits > Width) {
+ Width = NumDigits;
+ }
+ if ((FieldWidth > 0u) && ((v < 0) || ((FormatFlags & FORMAT_FLAG_PRINT_SIGN) == FORMAT_FLAG_PRINT_SIGN))) {
+ FieldWidth--;
+ }
+
+ //
+ // Print leading spaces if necessary
+ //
+ if ((((FormatFlags & FORMAT_FLAG_PAD_ZERO) == 0u) || (NumDigits != 0u)) && ((FormatFlags & FORMAT_FLAG_LEFT_JUSTIFY) == 0u)) {
+ if (FieldWidth != 0u) {
+ while ((FieldWidth != 0u) && (Width < FieldWidth)) {
+ FieldWidth--;
+ _StoreChar(pBufferDesc, ' ');
+ if (pBufferDesc->ReturnValue < 0) {
+ break;
+ }
+ }
+ }
+ }
+ //
+ // Print sign if necessary
+ //
+ if (pBufferDesc->ReturnValue >= 0) {
+ if (v < 0) {
+ v = -v;
+ _StoreChar(pBufferDesc, '-');
+ } else if ((FormatFlags & FORMAT_FLAG_PRINT_SIGN) == FORMAT_FLAG_PRINT_SIGN) {
+ _StoreChar(pBufferDesc, '+');
+ } else {
+
+ }
+ if (pBufferDesc->ReturnValue >= 0) {
+ //
+ // Print leading zeros if necessary
+ //
+ if (((FormatFlags & FORMAT_FLAG_PAD_ZERO) == FORMAT_FLAG_PAD_ZERO) && ((FormatFlags & FORMAT_FLAG_LEFT_JUSTIFY) == 0u) && (NumDigits == 0u)) {
+ if (FieldWidth != 0u) {
+ while ((FieldWidth != 0u) && (Width < FieldWidth)) {
+ FieldWidth--;
+ _StoreChar(pBufferDesc, '0');
+ if (pBufferDesc->ReturnValue < 0) {
+ break;
+ }
+ }
+ }
+ }
+ if (pBufferDesc->ReturnValue >= 0) {
+ //
+ // Print number without sign
+ //
+ _PrintUnsigned(pBufferDesc, (unsigned)v, Base, NumDigits, FieldWidth, FormatFlags);
+ }
+ }
+ }
+}
+
+/*********************************************************************
+*
+* Public code
+*
+**********************************************************************
+*/
+/*********************************************************************
+*
+* SEGGER_RTT_vprintf
+*
+* Function description
+* Stores a formatted string in SEGGER RTT control block.
+* This data is read by the host.
+*
+* Parameters
+* BufferIndex Index of "Up"-buffer to be used. (e.g. 0 for "Terminal")
+* sFormat Pointer to format string
+* pParamList Pointer to the list of arguments for the format string
+*
+* Return values
+* >= 0: Number of bytes which have been stored in the "Up"-buffer.
+* < 0: Error
+*/
+int SEGGER_RTT_vprintf(unsigned BufferIndex, const char * sFormat, va_list * pParamList) {
+ char c;
+ SEGGER_RTT_PRINTF_DESC BufferDesc;
+ int v;
+ unsigned NumDigits;
+ unsigned FormatFlags;
+ unsigned FieldWidth;
+ char acBuffer[SEGGER_RTT_PRINTF_BUFFER_SIZE];
+
+ BufferDesc.pBuffer = acBuffer;
+ BufferDesc.BufferSize = SEGGER_RTT_PRINTF_BUFFER_SIZE;
+ BufferDesc.Cnt = 0u;
+ BufferDesc.RTTBufferIndex = BufferIndex;
+ BufferDesc.ReturnValue = 0;
+
+ do {
+ c = *sFormat;
+ sFormat++;
+ if (c == 0u) {
+ break;
+ }
+ if (c == '%') {
+ //
+ // Filter out flags
+ //
+ FormatFlags = 0u;
+ v = 1;
+ do {
+ c = *sFormat;
+ switch (c) {
+ case '-': FormatFlags |= FORMAT_FLAG_LEFT_JUSTIFY; sFormat++; break;
+ case '0': FormatFlags |= FORMAT_FLAG_PAD_ZERO; sFormat++; break;
+ case '+': FormatFlags |= FORMAT_FLAG_PRINT_SIGN; sFormat++; break;
+ case '#': FormatFlags |= FORMAT_FLAG_ALTERNATE; sFormat++; break;
+ default: v = 0; break;
+ }
+ } while (v);
+ //
+ // filter out field with
+ //
+ FieldWidth = 0u;
+ do {
+ c = *sFormat;
+ if ((c < '0') || (c > '9')) {
+ break;
+ }
+ sFormat++;
+ FieldWidth = (FieldWidth * 10u) + ((unsigned)c - '0');
+ } while (1);
+
+ //
+ // Filter out precision (number of digits to display)
+ //
+ NumDigits = 0u;
+ c = *sFormat;
+ if (c == '.') {
+ sFormat++;
+ do {
+ c = *sFormat;
+ if ((c < '0') || (c > '9')) {
+ break;
+ }
+ sFormat++;
+ NumDigits = NumDigits * 10u + ((unsigned)c - '0');
+ } while (1);
+ }
+ //
+ // Filter out length modifier
+ //
+ c = *sFormat;
+ do {
+ if ((c == 'l') || (c == 'h')) {
+ sFormat++;
+ c = *sFormat;
+ } else {
+ break;
+ }
+ } while (1);
+ //
+ // Handle specifiers
+ //
+ switch (c) {
+ case 'c': {
+ char c0;
+ v = va_arg(*pParamList, int);
+ c0 = (char)v;
+ _StoreChar(&BufferDesc, c0);
+ break;
+ }
+ case 'd':
+ v = va_arg(*pParamList, int);
+ _PrintInt(&BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags);
+ break;
+ case 'u':
+ v = va_arg(*pParamList, int);
+ _PrintUnsigned(&BufferDesc, (unsigned)v, 10u, NumDigits, FieldWidth, FormatFlags);
+ break;
+ case 'x':
+ case 'X':
+ v = va_arg(*pParamList, int);
+ _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, NumDigits, FieldWidth, FormatFlags);
+ break;
+ case 's':
+ {
+ const char * s = va_arg(*pParamList, const char *);
+ do {
+ c = *s;
+ s++;
+ if (c == '\0') {
+ break;
+ }
+ _StoreChar(&BufferDesc, c);
+ } while (BufferDesc.ReturnValue >= 0);
+ }
+ break;
+ case 'p':
+ v = va_arg(*pParamList, int);
+ _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, 8u, 8u, 0u);
+ break;
+ case '%':
+ _StoreChar(&BufferDesc, '%');
+ break;
+ default:
+ break;
+ }
+ sFormat++;
+ } else {
+ _StoreChar(&BufferDesc, c);
+ }
+ } while (BufferDesc.ReturnValue >= 0);
+
+ if (BufferDesc.ReturnValue > 0) {
+ //
+ // Write remaining data, if any
+ //
+ if (BufferDesc.Cnt != 0u) {
+ SEGGER_RTT_Write(BufferIndex, acBuffer, BufferDesc.Cnt);
+ }
+ BufferDesc.ReturnValue += (int)BufferDesc.Cnt;
+ }
+ return BufferDesc.ReturnValue;
+}
+
+/*********************************************************************
+*
+* SEGGER_RTT_printf
+*
+* Function description
+* Stores a formatted string in SEGGER RTT control block.
+* This data is read by the host.
+*
+* Parameters
+* BufferIndex Index of "Up"-buffer to be used. (e.g. 0 for "Terminal")
+* sFormat Pointer to format string, followed by the arguments for conversion
+*
+* Return values
+* >= 0: Number of bytes which have been stored in the "Up"-buffer.
+* < 0: Error
+*
+* Notes
+* (1) Conversion specifications have following syntax:
+* %[flags][FieldWidth][.Precision]ConversionSpecifier
+* (2) Supported flags:
+* -: Left justify within the field width
+* +: Always print sign extension for signed conversions
+* 0: Pad with 0 instead of spaces. Ignored when using '-'-flag or precision
+* Supported conversion specifiers:
+* c: Print the argument as one char
+* d: Print the argument as a signed integer
+* u: Print the argument as an unsigned integer
+* x: Print the argument as an hexadecimal integer
+* s: Print the string pointed to by the argument
+* p: Print the argument as an 8-digit hexadecimal integer. (Argument shall be a pointer to void.)
+*/
+int SEGGER_RTT_printf(unsigned BufferIndex, const char * sFormat, ...) {
+ int r;
+ va_list ParamList;
+
+ va_start(ParamList, sFormat);
+ r = SEGGER_RTT_vprintf(BufferIndex, sFormat, &ParamList);
+ va_end(ParamList);
+ return r;
+}
+/*************************** End of file ****************************/
diff --git a/cores/nRF5/sysview/SEGGER/__argtype.h b/cores/nRF5/sysview/SEGGER/__argtype.h
new file mode 100644
index 000000000..9ec76292a
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__argtype.h
@@ -0,0 +1,77 @@
+// **********************************************************************
+// * SEGGER Microcontroller GmbH *
+// * The Embedded Experts *
+// **********************************************************************
+// * *
+// * (c) 2014 - 2019 SEGGER Microcontroller GmbH *
+// * (c) 2001 - 2019 Rowley Associates Limited *
+// * *
+// * www.segger.com Support: support@segger.com *
+// * *
+// **********************************************************************
+// * *
+// * All rights reserved. *
+// * *
+// * Redistribution and use in source and binary forms, with or *
+// * without modification, are permitted provided that the following *
+// * conditions are met: *
+// * *
+// * - Redistributions of source code must retain the above copyright *
+// * notice, this list of conditions and the following disclaimer. *
+// * *
+// * - Neither the name of SEGGER Microcontroller GmbH *
+// * nor the names of its contributors may be used to endorse or *
+// * promote products derived from this software without specific *
+// * prior written permission. *
+// * *
+// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+// * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+// * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+// * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+// * DISCLAIMED. *
+// * IN NO EVENT SHALL SEGGER Microcontroller GmbH BE LIABLE FOR *
+// * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+// * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+// * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+// * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+// * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+// * DAMAGE. *
+// * *
+// **********************************************************************
+
+#ifndef ARGTYPE
+
+typedef void *ARGTYPE_PtrArg;
+typedef char *ARGTYPE_CharPtrArg;
+
+#define ARGTYPE_PtrArg_NULL NULL
+
+#define ARGTYPE va_list
+#define ARGTYPE_getIntArg(a) va_arg(a, int)
+#define ARGTYPE_getUnsignedArg(a) va_arg(a, unsigned)
+#define ARGTYPE_getLongArg(a) va_arg(a, long)
+#define ARGTYPE_getUnsignedLongArg(a) va_arg(a, unsigned long)
+#define ARGTYPE_getLongLongArg(a) va_arg(a, value_t)
+#define ARGTYPE_getDoubleArg(a) va_arg(a, double)
+#define ARGTYPE_getPtrArg(a) va_arg(a, void *)
+#define ARGTYPE_getStringArg(a) va_arg(a, char *)
+#define ARGTYPE_setLongPtrArg(a, n) long *xp = va_arg(args, long *); *xp = n;
+#define ARGTYPE_setLongLongPtrArg(a, n) long long *xp = va_arg(args, long long *); *xp = n;
+#define ARGTYPE_setIntPtrArg(a, n) int *xp = va_arg(args, int *); *xp = n;
+#define ARGTYPE_setCharPtrArg(a, n) *(char *)va_arg(args, char *) = n;
+#define ARGTYPE_writePtrArgChar(a, ptr, v) *(char *)ptr = v
+#define ARGTYPE_writePtrArgShort(a, ptr, v) *(short *)ptr = v
+#define ARGTYPE_writePtrArgInt(a, ptr, v) *(int *)ptr = v
+#define ARGTYPE_writePtrArgLong(a, ptr, v) *(long *)ptr = v
+#define ARGTYPE_writePtrArgLongLong(a, ptr, v) *(int64_t *)ptr = v
+#define ARGTYPE_writePtrArgUnsignedChar(a, ptr, v) *(unsigned char *)ptr = v
+#define ARGTYPE_writePtrArgUnsignedShort(a, ptr, v) *(unsigned short *)ptr = v
+#define ARGTYPE_writePtrArgUnsignedInt(a, ptr, v) *(unsigned int *)ptr = v
+#define ARGTYPE_writePtrArgUnsignedLong(a, ptr, v) *(unsigned long *)ptr = v
+#define ARGTYPE_writePtrArgUnsignedLongLong(a, ptr, v) *(uint64_t *)ptr = v
+#define ARGTYPE_writePtrArgFloat(a, ptr, v) *(float *)ptr = v
+#define ARGTYPE_writePtrArgDouble(a, ptr, v) *(double *)ptr = v
+#define ARGTYPE_writePtrArgLongDouble(a, ptr, v) *(long double *)ptr = v
+#endif
diff --git a/cores/nRF5/sysview/SEGGER/__cross_studio_io.h b/cores/nRF5/sysview/SEGGER/__cross_studio_io.h
new file mode 100644
index 000000000..4a33e9951
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__cross_studio_io.h
@@ -0,0 +1,44 @@
+// **********************************************************************
+// * SEGGER Microcontroller GmbH *
+// * The Embedded Experts *
+// **********************************************************************
+// * *
+// * (c) 2014 - 2019 SEGGER Microcontroller GmbH *
+// * (c) 2001 - 2019 Rowley Associates Limited *
+// * *
+// * www.segger.com Support: support@segger.com *
+// * *
+// **********************************************************************
+// * *
+// * All rights reserved. *
+// * *
+// * Redistribution and use in source and binary forms, with or *
+// * without modification, are permitted provided that the following *
+// * conditions are met: *
+// * *
+// * - Redistributions of source code must retain the above copyright *
+// * notice, this list of conditions and the following disclaimer. *
+// * *
+// * - Neither the name of SEGGER Microcontroller GmbH *
+// * nor the names of its contributors may be used to endorse or *
+// * promote products derived from this software without specific *
+// * prior written permission. *
+// * *
+// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+// * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+// * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+// * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+// * DISCLAIMED. *
+// * IN NO EVENT SHALL SEGGER Microcontroller GmbH BE LIABLE FOR *
+// * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+// * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+// * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+// * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+// * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+// * DAMAGE. *
+// * *
+// **********************************************************************
+
+#include
diff --git a/cores/nRF5/sysview/SEGGER/__crossworks.h b/cores/nRF5/sysview/SEGGER/__crossworks.h
new file mode 100644
index 000000000..1ad440982
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__crossworks.h
@@ -0,0 +1,351 @@
+// **********************************************************************
+// * SEGGER Microcontroller GmbH *
+// * The Embedded Experts *
+// **********************************************************************
+// * *
+// * (c) 2014 - 2019 SEGGER Microcontroller GmbH *
+// * (c) 2001 - 2019 Rowley Associates Limited *
+// * *
+// * www.segger.com Support: support@segger.com *
+// * *
+// **********************************************************************
+// * *
+// * All rights reserved. *
+// * *
+// * Redistribution and use in source and binary forms, with or *
+// * without modification, are permitted provided that the following *
+// * conditions are met: *
+// * *
+// * - Redistributions of source code must retain the above copyright *
+// * notice, this list of conditions and the following disclaimer. *
+// * *
+// * - Neither the name of SEGGER Microcontroller GmbH *
+// * nor the names of its contributors may be used to endorse or *
+// * promote products derived from this software without specific *
+// * prior written permission. *
+// * *
+// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+// * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+// * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+// * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+// * DISCLAIMED. *
+// * IN NO EVENT SHALL SEGGER Microcontroller GmbH BE LIABLE FOR *
+// * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+// * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+// * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+// * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+// * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+// * DAMAGE. *
+// * *
+// **********************************************************************
+
+#ifndef __crossworks_H
+#define __crossworks_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Melting pot for the CrossWorks C Library. This is sparsely documented
+// as it is internal and subject to change.
+
+#if defined(__CROSSWORKS)
+
+#define __RAL_SIZE_T unsigned
+#define __RAL_SIZE_MAX 65535U
+#define __RAL_PTRDIFF_T int
+
+typedef unsigned char *__va_list;
+#pragma intrinsic(__va_base)
+
+#elif defined(__CROSSWORKS_ARM) || defined(__SES_ARM) || defined(__SES_RISCV)
+
+#define __THREAD __thread
+
+#undef __RAL_SIZE_T
+#if defined(__ARM_EABI__) || defined(__riscv)
+ #define __RAL_SIZE_T unsigned
+#else
+ #define __RAL_SIZE_T unsigned long
+#endif
+#define __RAL_SIZE_MAX 4294967295UL
+
+#define __RAL_PTRDIFF_T int
+typedef __builtin_va_list __va_list;
+
+#else
+
+#include
+
+#define __RAL_SIZE_T size_t
+#define __RAL_SIZE_MAX 4294967295UL
+
+#endif
+
+// Harvard machines need code-space access.
+#ifndef __CODE
+#if defined(__CROSSWORKS_AVR) || defined(__CROSSWORKS_MAXQ) || defined(__CROSSWORKS_MAXQ30)
+#define __CODE __code
+#else
+#define __CODE
+#endif
+
+// MAXQ does not lend itself to threading in the slightest.
+#if defined(__CROSSWORKS_MAXQ) || defined(__CROSSWORKS_MAXQ30)
+#define __THREAD
+#else
+#define __THREAD __thread
+#endif
+
+#endif
+
+/* Base classifications. */
+#define __CTYPE_UPPER 0x01 /* upper case letter */
+#define __CTYPE_LOWER 0x02 /* lower case letter */
+#define __CTYPE_DIGIT 0x04 /* digit */
+#define __CTYPE_SPACE 0x08 /* whitespace */
+#define __CTYPE_PUNCT 0x10 /* punctuation character */
+#define __CTYPE_CNTRL 0x20 /* control character */
+#define __CTYPE_BLANK 0x40 /* space char */
+#define __CTYPE_XDIGIT 0x80 /* hexadecimal digit */
+
+/* Derived classifications. */
+#define __CTYPE_ALPHA (__CTYPE_UPPER | __CTYPE_LOWER)
+#define __CTYPE_ALNUM (__CTYPE_UPPER | __CTYPE_LOWER | __CTYPE_DIGIT)
+#define __CTYPE_GRAPH (__CTYPE_PUNCT | __CTYPE_UPPER | __CTYPE_LOWER | __CTYPE_DIGIT)
+#define __CTYPE_PRINT (__CTYPE_BLANK | __CTYPE_PUNCT | __CTYPE_UPPER | __CTYPE_LOWER | __CTYPE_DIGIT)
+
+#if defined(__SHORT_WCHAR) || __SIZEOF_WCHAR_T == 2
+#define __RAL_WCHAR_T unsigned short
+#else
+#define __RAL_WCHAR_T unsigned
+#endif
+
+struct __mbstate_s {
+ int __state;
+ long __wchar;
+};
+
+typedef int (__RAL_mb_encode_t)(char *s, __RAL_WCHAR_T wc, struct __mbstate_s *codec);
+typedef int (__RAL_mb_decode_t)(__RAL_WCHAR_T *pwc, const char *s, __RAL_SIZE_T len, struct __mbstate_s *codec);
+
+typedef struct {
+ // Defines for this locale, follow struct lconv.
+ const char *decimal_point;
+ const char *thousands_sep;
+ const char *grouping;
+
+ const char *int_curr_symbol;
+ const char *currency_symbol;
+ const char *mon_decimal_point;
+ const char *mon_thousands_sep;
+ const char *mon_grouping;
+ const char *positive_sign;
+ const char *negative_sign;
+
+ char int_frac_digits;
+ char frac_digits;
+ char p_cs_precedes;
+ char p_sep_by_space;
+ char n_cs_precedes;
+ char n_sep_by_space;
+ char p_sign_posn;
+ char n_sign_posn;
+ char int_p_cs_precedes;
+ char int_n_cs_precedes;
+ char int_p_sep_by_space;
+ char int_n_sep_by_space;
+ char int_p_sign_posn;
+ char int_n_sign_posn;
+
+ // Pointer to null-terminated list of full day names, e.g. using string concatenation:
+ // "Sun\0" "Mon\0" "Tue\0" "Wed\0" "Thu\0" "Fri\0" "Sat\0" "\0" /*final terminator*/
+
+ const char *day_names;
+ const char *abbrev_day_names; // Pointer to null-terminated list of full day names.
+ const char *month_names;
+ const char *abbrev_month_names; // Pointer to null-terminated list of full day names.
+ const char *am_pm_indicator; // For %p in strftime, taken from am_pm in FDCC specification
+ const char *date_format; // For %x in strftime, taken from d_fmt in FDCC specification
+ const char *time_format; // For %X in strftime, taken from t_fmt in FDCC specification
+ const char *date_time_format; // For %c in strftime, taken from d_t_fmt in FDCC specification
+} __RAL_locale_data_t;
+
+enum {
+ __RAL_WC_ALNUM = 1,
+ __RAL_WC_ALPHA,
+ __RAL_WC_CNTRL,
+ __RAL_WC_DIGIT,
+ __RAL_WC_GRAPH,
+ __RAL_WC_LOWER,
+ __RAL_WC_UPPER,
+ __RAL_WC_SPACE,
+ __RAL_WC_PRINT,
+ __RAL_WC_PUNCT,
+ __RAL_WC_BLANK,
+ __RAL_WC_XDIGIT
+};
+
+enum {
+ __RAL_WT_TOLOWER = 1,
+ __RAL_WT_TOUPPER
+};
+
+typedef struct {
+ // Narrow character functions
+ int (*__isctype)(int, int);
+ int (*__toupper)(int);
+ int (*__tolower)(int);
+
+ // Wide character functions
+ int (*__iswctype)(long, int);
+ long (*__towupper)(long);
+ long (*__towlower)(long);
+
+ // Conversion between multi-byte and wide characters.
+ int (*__wctomb)(char *s, __RAL_WCHAR_T wc, struct __mbstate_s *state);
+ int (*__mbtowc)(__RAL_WCHAR_T *pwc, const char *s, __RAL_SIZE_T len, struct __mbstate_s *state);
+} __RAL_locale_codeset_t;
+
+typedef struct {
+ const char *name;
+ const __CODE __RAL_locale_data_t *data;
+ const __CODE __RAL_locale_codeset_t *codeset;
+} __RAL_locale_t;
+
+#define __MAX_CATEGORY 5 // Categories 1-5
+
+typedef struct __locale_s {
+ const __CODE __RAL_locale_t *__category[__MAX_CATEGORY]; // This corresponds directly to the LC_* categories minus LC_ALL!
+} *__locale_t;
+
+// This is what the user provides; a weak implementation returns zero.
+const __CODE __RAL_locale_t *__user_find_locale(const char *locale);
+
+
+/*! \brief Find a named locale \ingroup Locale functions \synopsis
+
+ \desc \b \this finds the locale named \a locale. The names \q C and \q POSIX
+ are reserved and take preference over any user-defined locale. If \a locale
+ is neither \b C nor \b POSIX, \b \this calls the function \b __user_find_locale
+ with \a locale as a parameter so the user can provide their own locales.
+
+ The default implementation of \b __user_find_locale in the library returns
+ a null pointer. Any implementation of \b __user_find_locale in the main
+ application will replace the implementation in the library.
+*/
+const __CODE __RAL_locale_t *__RAL_find_locale(const char *locale);
+
+
+/*! \brief Retrieve a global locale category \ingroup Locale functions \synopsis
+
+ \desc \b \this retrieves the locale associated with the category \a category
+ from the global locale.
+*/
+const __CODE __RAL_locale_t *__RAL_global_locale_category(int __category);
+
+
+/*! \brief Retrieve a locale category \ingroup Locale functions \synopsis
+
+ \desc \b \this retrieves the locale associated with the category \a category
+ from the locale \a locale.
+*/
+const __CODE __RAL_locale_t *__RAL_locale_category(__locale_t __locale, int __category);
+
+
+/*! \brief Global locale for the application \ingroup Static data \synopsis
+
+ \desc \b \this holds the global locale for the application.
+*/
+extern struct __locale_s __RAL_global_locale;
+
+
+/*! \brief The standard C locale \ingroup Static data \synopsis
+
+ \desc \b \this holds the definition of the C and POSIX locales which are equivalent.
+*/
+extern const __CODE __RAL_locale_t __RAL_c_locale;
+
+// Built-in codesets.
+extern const __CODE __RAL_locale_codeset_t __RAL_codeset_ascii;
+extern const __CODE __RAL_locale_codeset_t __RAL_codeset_utf8;
+
+extern const __CODE unsigned char __RAL_ascii_ctype_map[128];
+
+extern const char __RAL_c_locale_day_names[];
+extern const char __RAL_c_locale_abbrev_day_names[];
+extern const char __RAL_c_locale_month_names[];
+extern const char __RAL_c_locale_abbrev_month_names[];
+
+extern const char __RAL_data_utf8_period[];
+extern const char __RAL_data_utf8_comma[];
+extern const char __RAL_data_utf8_space[];
+extern const char __RAL_data_utf8_plus[];
+extern const char __RAL_data_utf8_minus[];
+extern const char __RAL_data_empty_string[];
+
+const char *__RAL_string_list_decode(const char *str, int index);
+int __RAL_string_list_encode(const char *list, const char *str);
+
+// UTF-8 codec.
+void __RAL_init_mbstate(struct __mbstate_s *state);
+
+int __RAL_ascii_wctomb(char *s, __RAL_WCHAR_T wc, struct __mbstate_s *state);
+int __RAL_ascii_mbtowc(__RAL_WCHAR_T *pwc, const char *s, __RAL_SIZE_T len, struct __mbstate_s *state);
+
+int __RAL_utf8_wctomb(char *s, __RAL_WCHAR_T wc, struct __mbstate_s *state);
+int __RAL_utf8_mbtowc(__RAL_WCHAR_T *pwc, const char *s, __RAL_SIZE_T len, struct __mbstate_s *state);
+
+int __RAL_mb_max(const struct __locale_s *loc);
+
+struct timeval;
+
+// Match locale names str0 and str1; if match, return zero (rather like strcmp).
+int __RAL_compare_locale_name(const char *str0, const char *str1);
+
+// C runtime drivers to get and set the time of day from a RTC.
+extern int (*__user_set_time_of_day)(const struct timeval *tp);
+extern int (*__user_get_time_of_day)(struct timeval *tp);
+
+// Internal structures used for case mapping.
+typedef struct { unsigned short min, max, map; } __RAL_unicode_map_bmp_range_t;
+typedef struct { unsigned short cp, map; } __RAL_unicode_map_bmp_singleton_t;
+
+// Internal structures for predicate testing.
+typedef struct { unsigned short min, max; } __RAL_unicode_set_bmp_range_t;
+typedef struct { long min, max; } __RAL_unicode_set_nonbmp_range_t;
+
+// Unicode wide character support.
+int __RAL_unicode_iswctype(long ch, int ty);
+long __RAL_unicode_towupper(long ch);
+long __RAL_unicode_towlower(long ch);
+
+// Internal functions for case mapping.
+int __RAL_unicode_map_range_search(const void *k0, const void *k1);
+int __RAL_unicode_map_singleton_search(const void *k0, const void *k1);
+
+// Internal functions for predicate testing.
+int __RAL_unicode_set_bmp_range_search(const void *k0, const void *k1);
+int __RAL_unicode_set_nonbmp_range_search(const void *k0, const void *k1);
+
+typedef const char * (*__RAL_error_decoder_fn_t)(int error);
+
+typedef struct __RAL_error_decoder_s
+{
+ __RAL_error_decoder_fn_t decode;
+ struct __RAL_error_decoder_s *next;
+} __RAL_error_decoder_t;
+
+void __RAL_register_error_decoder(__RAL_error_decoder_t *decoder);
+
+extern __RAL_error_decoder_t *__RAL_error_decoder_head;
+
+const char *__RAL_decode_error(int num);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/cores/nRF5/sysview/SEGGER/__cxxabi_config.h b/cores/nRF5/sysview/SEGGER/__cxxabi_config.h
new file mode 100644
index 000000000..65b1961e6
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__cxxabi_config.h
@@ -0,0 +1,63 @@
+//===-------------------------- __cxxabi_config.h -------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef ____CXXABI_CONFIG_H
+#define ____CXXABI_CONFIG_H
+
+#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
+ !defined(__ARM_DWARF_EH__)
+#define _LIBCXXABI_ARM_EHABI
+#endif
+
+#if !defined(__has_attribute)
+#define __has_attribute(_attribute_) 0
+#endif
+
+#if defined(_WIN32)
+ #if defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
+ #define _LIBCXXABI_HIDDEN
+ #define _LIBCXXABI_DATA_VIS
+ #define _LIBCXXABI_FUNC_VIS
+ #define _LIBCXXABI_TYPE_VIS
+ #elif defined(_LIBCXXABI_BUILDING_LIBRARY)
+ #define _LIBCXXABI_HIDDEN
+ #define _LIBCXXABI_DATA_VIS __declspec(dllexport)
+ #define _LIBCXXABI_FUNC_VIS __declspec(dllexport)
+ #define _LIBCXXABI_TYPE_VIS __declspec(dllexport)
+ #else
+ #define _LIBCXXABI_HIDDEN
+ #define _LIBCXXABI_DATA_VIS __declspec(dllimport)
+ #define _LIBCXXABI_FUNC_VIS __declspec(dllimport)
+ #define _LIBCXXABI_TYPE_VIS __declspec(dllimport)
+ #endif
+#else
+ #if !defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
+ #define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden")))
+ #define _LIBCXXABI_DATA_VIS __attribute__((__visibility__("default")))
+ #define _LIBCXXABI_FUNC_VIS __attribute__((__visibility__("default")))
+ #if __has_attribute(__type_visibility__)
+ #define _LIBCXXABI_TYPE_VIS __attribute__((__type_visibility__("default")))
+ #else
+ #define _LIBCXXABI_TYPE_VIS __attribute__((__visibility__("default")))
+ #endif
+ #else
+ #define _LIBCXXABI_HIDDEN
+ #define _LIBCXXABI_DATA_VIS
+ #define _LIBCXXABI_FUNC_VIS
+ #define _LIBCXXABI_TYPE_VIS
+ #endif
+#endif
+
+#if defined(_WIN32)
+#define _LIBCXXABI_WEAK
+#else
+#define _LIBCXXABI_WEAK __attribute__((__weak__))
+#endif
+
+#endif // ____CXXABI_CONFIG_H
diff --git a/cores/nRF5/sysview/SEGGER/__debug_stdio.h b/cores/nRF5/sysview/SEGGER/__debug_stdio.h
new file mode 100644
index 000000000..0f04832d0
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__debug_stdio.h
@@ -0,0 +1,96 @@
+// **********************************************************************
+// * SEGGER Microcontroller GmbH *
+// * The Embedded Experts *
+// **********************************************************************
+// * *
+// * (c) 2014 - 2019 SEGGER Microcontroller GmbH *
+// * (c) 2001 - 2019 Rowley Associates Limited *
+// * *
+// * www.segger.com Support: support@segger.com *
+// * *
+// **********************************************************************
+// * *
+// * All rights reserved. *
+// * *
+// * Redistribution and use in source and binary forms, with or *
+// * without modification, are permitted provided that the following *
+// * conditions are met: *
+// * *
+// * - Redistributions of source code must retain the above copyright *
+// * notice, this list of conditions and the following disclaimer. *
+// * *
+// * - Neither the name of SEGGER Microcontroller GmbH *
+// * nor the names of its contributors may be used to endorse or *
+// * promote products derived from this software without specific *
+// * prior written permission. *
+// * *
+// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+// * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+// * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+// * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+// * DISCLAIMED. *
+// * IN NO EVENT SHALL SEGGER Microcontroller GmbH BE LIABLE FOR *
+// * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+// * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+// * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+// * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+// * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+// * DAMAGE. *
+// * *
+// **********************************************************************
+
+#ifndef __debug_stdio_H
+#define __debug_stdio_H
+
+#include
+
+#define FILE DEBUG_FILE
+
+#ifndef SEEK_CUR
+#define SEEK_CUR DEBUG_SEEK_CUR
+#define SEEK_END DEBUG_SEEK_END
+#define SEEK_SET DEBUG_SEEK_SET
+#endif
+
+#define stdin DEBUG_STDIN
+#define stdout DEBUG_STDOUT
+#define stderr DEBUG_STDERR
+
+#define fopen debug_fopen
+#define fflush debug_fflush
+#define fclose debug_fclose
+#define fprintf debug_fprintf
+#define vfprintf debug_vfprintf
+#define printf debug_printf
+#define vprintf debug_vprintf
+#define fscanf debug_fscanf
+#define scanf debug_scanf
+#define vscanf debug_vscanf
+#define vfscanf debug_vfscanf
+#define getchar debug_getchar
+#define getc debug_fgetc
+#define gets debug_gets
+#define fgetc debug_fgetc
+#define fgets debug_fgets
+#define fputc debug_fputc
+#define fputs debug_fputs
+#ifndef putchar
+#define putchar debug_putchar
+#endif
+#define puts debug_puts
+#define fread debug_fread
+#define fwrite debug_fwrite
+#define fseek debug_fseek
+#define ftell debug_ftell
+#define rewind debug_rewind
+#define filesize debug_filesize
+#define clearerr debug_clearerr
+#define feof debug_feof
+#define ferror debug_ferror
+#define exit debug_exit
+#define time debug_time
+
+#endif
+
diff --git a/cores/nRF5/sysview/SEGGER/__libc.h b/cores/nRF5/sysview/SEGGER/__libc.h
new file mode 100644
index 000000000..865955c14
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__libc.h
@@ -0,0 +1,90 @@
+// **********************************************************************
+// * SEGGER Microcontroller GmbH *
+// * The Embedded Experts *
+// **********************************************************************
+// * *
+// * (c) 2014 - 2019 SEGGER Microcontroller GmbH *
+// * (c) 2001 - 2019 Rowley Associates Limited *
+// * *
+// * www.segger.com Support: support@segger.com *
+// * *
+// **********************************************************************
+// * *
+// * All rights reserved. *
+// * *
+// * Redistribution and use in source and binary forms, with or *
+// * without modification, are permitted provided that the following *
+// * conditions are met: *
+// * *
+// * - Redistributions of source code must retain the above copyright *
+// * notice, this list of conditions and the following disclaimer. *
+// * *
+// * - Neither the name of SEGGER Microcontroller GmbH *
+// * nor the names of its contributors may be used to endorse or *
+// * promote products derived from this software without specific *
+// * prior written permission. *
+// * *
+// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+// * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+// * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+// * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+// * DISCLAIMED. *
+// * IN NO EVENT SHALL SEGGER Microcontroller GmbH BE LIABLE FOR *
+// * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+// * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+// * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+// * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+// * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+// * DAMAGE. *
+// * *
+// **********************************************************************
+
+#ifndef __libc_H
+#define __libc_H
+
+#include "__crossworks.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int __getchar(void);
+#ifndef __PRINTF_TAG_PTR_DEFINED
+#define __PRINTF_TAG_PTR_DEFINED
+typedef struct __printf_tag *__printf_tag_ptr;
+#endif
+int __putchar(int, __printf_tag_ptr);
+int __stdin_ungetc(int);
+
+char *__xtoa(unsigned __val, char *__buf, unsigned __radix, int __neg);
+char *__xltoa(unsigned long __val, char *__buf, unsigned __radix, int __neg);
+char *__xlltoa(unsigned long long __val, char *__buf, unsigned __radix, int __neg);
+int __digit(int __ch, int __radix);
+unsigned long __strtoul(const char *__nsptr, char **__endptr, int __base);
+unsigned long long __strtoull(const char *__nsptr, char **__endptr, int __base);
+double __RAL_pow10(int __e);
+
+void __heap_lock(void);
+void __heap_unlock(void);
+void __printf_lock(void);
+void __printf_unlock(void);
+void __scanf_lock(void);
+void __scanf_unlock(void);
+void __debug_io_lock(void);
+void __debug_io_unlock(void);
+
+int __open(const char *__filename, const char *__mode);
+int __close(int __fildes);
+int __flush(int __fildes);
+int __write(int __fildes, const unsigned char *__buf, unsigned __len);
+int __read(int __fildes, unsigned char *__buf, unsigned __len);
+long __seek(int __fildes, long __offset, int __whence);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/cores/nRF5/sysview/SEGGER/__libunwind_config.h b/cores/nRF5/sysview/SEGGER/__libunwind_config.h
new file mode 100644
index 000000000..2236b4d1e
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__libunwind_config.h
@@ -0,0 +1,87 @@
+//===------------------------- __libunwind_config.h -----------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef ____LIBUNWIND_CONFIG_H__
+#define ____LIBUNWIND_CONFIG_H__
+
+#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
+ !defined(__ARM_DWARF_EH__)
+#define _LIBUNWIND_ARM_EHABI
+#endif
+
+#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86 8
+#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64 32
+#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC 112
+#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64 95
+#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 287
+#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 31
+#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV 31
+
+#if defined(_LIBUNWIND_IS_NATIVE_ONLY)
+# if defined(__i386__)
+# define _LIBUNWIND_TARGET_I386
+# define _LIBUNWIND_CONTEXT_SIZE 8
+# define _LIBUNWIND_CURSOR_SIZE 15
+# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86
+# elif defined(__x86_64__)
+# define _LIBUNWIND_TARGET_X86_64 1
+# if defined(_WIN64)
+# define _LIBUNWIND_CONTEXT_SIZE 54
+# define _LIBUNWIND_CURSOR_SIZE 66
+# else
+# define _LIBUNWIND_CONTEXT_SIZE 21
+# define _LIBUNWIND_CURSOR_SIZE 33
+# endif
+# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64
+# elif defined(__ppc__)
+# define _LIBUNWIND_TARGET_PPC 1
+# define _LIBUNWIND_CONTEXT_SIZE 117
+# define _LIBUNWIND_CURSOR_SIZE 124
+# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC
+# elif defined(__aarch64__)
+# define _LIBUNWIND_TARGET_AARCH64 1
+# define _LIBUNWIND_CONTEXT_SIZE 66
+# define _LIBUNWIND_CURSOR_SIZE 78
+# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64
+# elif defined(__arm__)
+# define _LIBUNWIND_TARGET_ARM 1
+# if defined(__ARM_WMMX)
+# define _LIBUNWIND_CONTEXT_SIZE 61
+# define _LIBUNWIND_CURSOR_SIZE 68
+# else
+# define _LIBUNWIND_CONTEXT_SIZE 42
+# define _LIBUNWIND_CURSOR_SIZE 49
+# endif
+# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM
+# elif defined(__or1k__)
+# define _LIBUNWIND_TARGET_OR1K 1
+# define _LIBUNWIND_CONTEXT_SIZE 16
+# define _LIBUNWIND_CURSOR_SIZE 24
+# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K
+# elif defined(__riscv)
+# define _LIBUNWIND_TARGET_RISCV 1
+# define _LIBUNWIND_CONTEXT_SIZE 16
+# define _LIBUNWIND_CURSOR_SIZE 23 // ???
+# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV
+# else
+# error "Unsupported architecture."
+# endif
+#else // !_LIBUNWIND_IS_NATIVE_ONLY
+# define _LIBUNWIND_TARGET_I386
+# define _LIBUNWIND_TARGET_X86_64 1
+# define _LIBUNWIND_TARGET_PPC 1
+# define _LIBUNWIND_TARGET_AARCH64 1
+# define _LIBUNWIND_TARGET_ARM 1
+# define _LIBUNWIND_TARGET_OR1K 1
+# define _LIBUNWIND_CONTEXT_SIZE 128
+# define _LIBUNWIND_CURSOR_SIZE 140
+# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287
+#endif // _LIBUNWIND_IS_NATIVE_ONLY
+
+#endif // ____LIBUNWIND_CONFIG_H__
diff --git a/cores/nRF5/sysview/SEGGER/__locales.h b/cores/nRF5/sysview/SEGGER/__locales.h
new file mode 100644
index 000000000..b0fff9223
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__locales.h
@@ -0,0 +1,401 @@
+// Copyright (c) 2013 Rowley Associates Limited.
+//
+// This file may be distributed under the terms of the License Agreement
+// provided with this software.
+//
+// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+// Generated automatically from the Unicode Character Database
+// and Common Locale Data Repository.
+
+#ifndef __locales_H
+#define __locales_H
+
+#include "__crossworks.h"
+
+extern const __CODE __RAL_locale_data_t __RAL_aa_DJ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_aa_ER_locale;
+extern const __CODE __RAL_locale_data_t __RAL_aa_ET_locale;
+extern const __CODE __RAL_locale_data_t __RAL_af_NA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_af_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ak_GH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_am_ET_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_AE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_BH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_DZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_EG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_IQ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_JO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_KW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_LB_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_LY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_MA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_OM_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_QA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_SA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_SD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_SY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_TN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ar_YE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_as_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_asa_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_az_Arab_IR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_az_AZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_az_Cyrl_AZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_az_IR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_az_Latn_AZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_be_BY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bem_ZM_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bez_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bg_BG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bm_ML_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bn_BD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bn_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bo_CN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bo_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_br_FR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_brx_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_bs_BA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_byn_ER_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ca_ES_locale;
+extern const __CODE __RAL_locale_data_t __RAL_cch_NG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_cgg_UG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_chr_US_locale;
+extern const __CODE __RAL_locale_data_t __RAL_cs_CZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_cy_GB_locale;
+extern const __CODE __RAL_locale_data_t __RAL_da_DK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_dav_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_de_AT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_de_BE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_de_CH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_de_DE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_de_LI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_de_LU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_dv_MV_locale;
+extern const __CODE __RAL_locale_data_t __RAL_dz_BT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ebu_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ee_GH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ee_TG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_el_CY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_el_GR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_AS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_AU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_BE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_BW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_BZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_CA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_Dsrt_US_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_GB_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_GU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_HK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_IE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_JM_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_MH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_MP_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_MT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_MU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_NA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_NZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_PH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_PK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_SG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_TT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_UM_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_US_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_US_POSIX_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_VI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_ZW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_en_ZZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_AR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_BO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_CL_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_CO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_CR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_DO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_EC_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_ES_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_GQ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_GT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_HN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_MX_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_NI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_PA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_PE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_PR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_PY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_SV_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_US_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_UY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_es_VE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_et_EE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_eu_ES_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fa_AF_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fa_IR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ff_SN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fi_FI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fil_PH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fo_FO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_BE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_BF_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_BI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_BJ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_BL_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_CA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_CD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_CF_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_CG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_CH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_CI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_CM_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_DJ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_FR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_GA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_GN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_GP_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_GQ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_KM_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_LU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_MC_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_MF_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_MG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_ML_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_MQ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_NE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_RE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_RW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_SN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_TD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fr_TG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_fur_IT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ga_IE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_gaa_GH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_gez_ER_locale;
+extern const __CODE __RAL_locale_data_t __RAL_gez_ET_locale;
+extern const __CODE __RAL_locale_data_t __RAL_gl_ES_locale;
+extern const __CODE __RAL_locale_data_t __RAL_gsw_CH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_gu_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_guz_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_gv_GB_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_Arab_NG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_Arab_SD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_GH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_Latn_GH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_Latn_NE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_Latn_NG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_NE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_NG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ha_SD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_haw_US_locale;
+extern const __CODE __RAL_locale_data_t __RAL_he_IL_locale;
+extern const __CODE __RAL_locale_data_t __RAL_hi_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_hr_HR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_hu_HU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_hy_AM_locale;
+extern const __CODE __RAL_locale_data_t __RAL_id_ID_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ig_NG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ii_CN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_is_IS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_it_CH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_it_IT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ja_JP_locale;
+extern const __CODE __RAL_locale_data_t __RAL_jmc_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ka_GE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kab_DZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kaj_NG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kam_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kcg_NG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kde_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kea_CV_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kfo_CI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_khq_ML_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ki_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kk_Cyrl_KZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kk_KZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kl_GL_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kln_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_km_KH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kn_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ko_KR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kok_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kpe_GN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kpe_LR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ksb_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ksh_DE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ku_Arab_IQ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ku_Arab_IR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ku_IQ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ku_IR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ku_Latn_SY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ku_Latn_TR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ku_SY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ku_TR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_kw_GB_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ky_KG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_lag_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_lg_UG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ln_CD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ln_CG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_lo_LA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_lt_LT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_luo_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_luy_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_lv_LV_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mas_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mas_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mer_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mfe_MU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mg_MG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mi_NZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mk_MK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ml_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mn_CN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mn_Cyrl_MN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mn_MN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mn_Mong_CN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mr_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ms_BN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ms_MY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_mt_MT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_my_MM_locale;
+extern const __CODE __RAL_locale_data_t __RAL_naq_NA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nb_NO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nd_ZW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nds_DE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ne_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ne_NP_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nl_BE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nl_NL_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nn_NO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nr_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nso_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ny_MW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_nyn_UG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_oc_FR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_om_ET_locale;
+extern const __CODE __RAL_locale_data_t __RAL_om_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_or_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pa_Arab_PK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pa_Guru_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pa_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pa_PK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pl_PL_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ps_AF_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pt_AO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pt_BR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pt_GW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pt_MZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_pt_PT_locale;
+extern const __CODE __RAL_locale_data_t __RAL_rm_CH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ro_MD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ro_RO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_rof_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ru_MD_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ru_RU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ru_UA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_rw_RW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_rwk_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sa_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_saq_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_se_FI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_se_NO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_seh_MZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ses_ML_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sg_CF_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sh_BA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sh_CS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sh_YU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_shi_Latn_MA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_shi_MA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_shi_Tfng_MA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_si_LK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sid_ET_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sk_SK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sl_SI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sn_ZW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_so_DJ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_so_ET_locale;
+extern const __CODE __RAL_locale_data_t __RAL_so_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_so_SO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sq_AL_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_BA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_CS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Cyrl_BA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Cyrl_CS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Cyrl_ME_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Cyrl_RS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Cyrl_YU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Latn_BA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Latn_CS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Latn_ME_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Latn_RS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_Latn_YU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_ME_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_RS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sr_YU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ss_SZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ss_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ssy_ER_locale;
+extern const __CODE __RAL_locale_data_t __RAL_st_LS_locale;
+extern const __CODE __RAL_locale_data_t __RAL_st_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sv_FI_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sv_SE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sw_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_sw_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_syr_SY_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ta_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ta_LK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_te_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_teo_KE_locale;
+extern const __CODE __RAL_locale_data_t __RAL_teo_UG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tg_Cyrl_TJ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tg_TJ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_th_TH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ti_ER_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ti_ET_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tig_ER_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tl_PH_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tn_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_to_TO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tr_TR_locale;
+extern const __CODE __RAL_locale_data_t __RAL_trv_TW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ts_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tt_RU_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tzm_Latn_MA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_tzm_MA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ug_Arab_CN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ug_CN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_uk_UA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ur_IN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ur_PK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_uz_AF_locale;
+extern const __CODE __RAL_locale_data_t __RAL_uz_Arab_AF_locale;
+extern const __CODE __RAL_locale_data_t __RAL_uz_Cyrl_UZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_uz_Latn_UZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_uz_UZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_ve_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_vi_VN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_vun_TZ_locale;
+extern const __CODE __RAL_locale_data_t __RAL_wal_ET_locale;
+extern const __CODE __RAL_locale_data_t __RAL_wo_Latn_SN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_wo_SN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_xh_ZA_locale;
+extern const __CODE __RAL_locale_data_t __RAL_xog_UG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_yo_NG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_CN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_Hans_CN_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_Hans_HK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_Hans_MO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_Hans_SG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_Hant_HK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_Hant_MO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_Hant_TW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_HK_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_MO_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_SG_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zh_TW_locale;
+extern const __CODE __RAL_locale_data_t __RAL_zu_ZA_locale;
+
+#endif
diff --git a/cores/nRF5/sysview/SEGGER/__vfprintf.h b/cores/nRF5/sysview/SEGGER/__vfprintf.h
new file mode 100644
index 000000000..df8c005b1
--- /dev/null
+++ b/cores/nRF5/sysview/SEGGER/__vfprintf.h
@@ -0,0 +1,174 @@
+// **********************************************************************
+// * SEGGER Microcontroller GmbH *
+// * The Embedded Experts *
+// **********************************************************************
+// * *
+// * (c) 2014 - 2019 SEGGER Microcontroller GmbH *
+// * (c) 2001 - 2019 Rowley Associates Limited *
+// * *
+// * www.segger.com Support: support@segger.com *
+// * *
+// **********************************************************************
+// * *
+// * All rights reserved. *
+// * *
+// * Redistribution and use in source and binary forms, with or *
+// * without modification, are permitted provided that the following *
+// * conditions are met: *
+// * *
+// * - Redistributions of source code must retain the above copyright *
+// * notice, this list of conditions and the following disclaimer. *
+// * *
+// * - Neither the name of SEGGER Microcontroller GmbH *
+// * nor the names of its contributors may be used to endorse or *
+// * promote products derived from this software without specific *
+// * prior written permission. *
+// * *
+// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+// * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
+// * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
+// * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
+// * DISCLAIMED. *
+// * IN NO EVENT SHALL SEGGER Microcontroller GmbH BE LIABLE FOR *
+// * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+// * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+// * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
+// * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+// * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+// * DAMAGE. *
+// * *
+// **********************************************************************
+
+#ifndef __vfprintf_H
+#define __vfprintf_H
+
+#if defined(__CROSSWORKS) || defined(__CROSSWORKS_ARM) || defined(__SES_ARM) || defined(__SES_RISCV)
+#include "__argtype.h"
+#else
+#include "../../lib/hosted__argtype.h"
+#endif
+
+#ifndef __MEMSPACE
+#define __MEMSPACE
+#endif
+
+#ifndef __CODE
+#define __CODE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#undef __VFPRINTF_CHAR
+#undef __VFSCANF_CHAR
+#if defined(__VFxxxxx_WCHAR)
+#include
+#define __VFPRINTF_CHAR wchar_t
+#define __VFSCANF_CHAR wchar_t
+#define __VFPRINTF_USER_FORMAT_EXTENDER __user_format_extender_wchar
+#define __VFPRINTF_PUTC __RAL_putc_wchar
+#define __VFPRINTF_GETC __RAL_getc_wchar
+#define __VFPRINTF_PRINT_PADDING __RAL_print_padding_wchar
+#define __VFPRINTF_PRE_PADDING __RAL_pre_padding_wchar
+#define __VFPRINTF_PRINT_WIDE_STRING __RAL_print_wide_string_wchar
+#if __SIZEOF_WCHAR_T==2
+#define __VFPRINTF_CHAR_PTR_ARG ARGTYPE_UnsignedShortPtrArg
+#define __VFPRINTF_WRITE_PTR_ARG_CHAR(a, ptr, v) *(unsigned short *)ptr = v
+#else
+#define __VFPRINTF_CHAR_PTR_ARG ARGTYPE_UnsignedIntPtrArg
+#define __VFPRINTF_WRITE_PTR_ARG_CHAR(a, ptr, v) *(unsigned int *)ptr = v
+#endif
+#else
+#define __VFPRINTF_CHAR char
+#define __VFSCANF_CHAR unsigned char
+#define __VFPRINTF_USER_FORMAT_EXTENDER __user_format_extender
+#define __VFPRINTF_PUTC __putc
+#define __VFPRINTF_GETC __getc
+#define __VFPRINTF_PRINT_PADDING __RAL_print_padding
+#define __VFPRINTF_PRINT_WIDE_STRING __RAL_print_wide_string
+#define __VFPRINTF_PRE_PADDING __RAL_pre_padding
+#define __VFPRINTF_CHAR_PTR_ARG ARGTYPE_CharPtrArg
+#define __VFPRINTF_WRITE_PTR_ARG_CHAR(a, ptr, v) *(unsigned char *)ptr = v
+#endif
+
+typedef struct __printf_tag
+{
+ size_t charcount;
+ size_t maxchars;
+ __VFPRINTF_CHAR *string;
+ int (*output_fn)(int, struct __printf_tag *ctx);
+} __printf_t;
+
+typedef struct
+{
+ __VFPRINTF_CHAR is_string;
+} __scanf_t;
+
+typedef struct
+{
+ __VFPRINTF_CHAR is_string;
+ __VFPRINTF_CHAR *string;
+} __string_scanf_t;
+
+typedef struct
+{
+ __VFPRINTF_CHAR is_string;
+ int (*getc_fn)(void);
+ int (*ungetc_fn)(int);
+} __stream_scanf_t;
+
+int __putc_to_string(int c, __printf_t *ctx);
+
+// Printer formatting flags.
+#define FORMAT_LONG (1<<0)
+#define FORMAT_LONG_LONG (1<<1)
+#define FORMAT_SHORT (1<<2)
+#define FORMAT_CHAR (1<<3)
+#define FORMAT_LEFT_JUSTIFY (1<<4)
+#define FORMAT_SIGNED (1<<5)
+#define FORMAT_SPACE (1<<6)
+#define FORMAT_ALTERNATIVE (1<<7)
+#define FORMAT_HAVE_PRECISION (1<<8)
+#define FORMAT_ZERO_FILL (1<<9)
+#define FORMAT_FLOAT_E (1<<10)
+#define FORMAT_FLOAT_F (1<<11)
+#define FORMAT_ENGINEERING (1<<12)
+#define FORMAT_CAPITALS (1<<13)
+#define FORMAT_INPUT_SIGNED (1<<14)
+#define FORMAT_TICK (1<<15) // POSIX.1 extension
+
+// Combinations of flags used internally...
+#define FORMAT_NEGATIVE (FORMAT_SIGNED | FORMAT_SPACE)
+#define FORMAT_FLOAT_G (FORMAT_FLOAT_E | FORMAT_FLOAT_F)
+
+// Helper variables.
+extern __CODE const char __RAL_hex_uc[16];
+extern __CODE const char __RAL_hex_lc[16];
+
+// Standard formatting routine.
+#if defined(__VFxxxxx_WCHAR)
+int __vfprintf_wchar(__printf_t *p, __MEMSPACE const wchar_t *fmt, ARGTYPE args);
+int __vfscanf_wchar(__scanf_t *p, __MEMSPACE const wchar_t *fmt, ARGTYPE argv);
+#elif defined(__VFxxxxx_C)
+int __vfprintf_c(__printf_t *p, __MEMSPACE const char *fmt, ARGTYPE args);
+int __vfscanf_c(__scanf_t *p, __MEMSPACE const unsigned char *fmt, ARGTYPE argv);
+#else
+int __vfprintf(__printf_t *p, __MEMSPACE const char *fmt, ARGTYPE args);
+int __vfscanf(__scanf_t *p, __MEMSPACE const unsigned char *fmt, ARGTYPE argv);
+#endif
+
+// Should be somewhere else...
+extern void (*__VFPRINTF_USER_FORMAT_EXTENDER)(__VFPRINTF_CHAR ch, __printf_t *ctx, int flags, int width, int precision, ARGTYPE *args);
+
+void __VFPRINTF_PRINT_PADDING(int ch, int n, __printf_t *ctx);
+void __VFPRINTF_PRE_PADDING(int flags, int width, __printf_t *ctx);
+void __VFPRINTF_PUTC(__printf_t *ctx, __VFPRINTF_CHAR ch);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/cores/nRF5/verify.h b/cores/nRF5/verify.h
index f91514061..02995e7b8 100644
--- a/cores/nRF5/verify.h
+++ b/cores/nRF5/verify.h
@@ -72,7 +72,7 @@ extern "C"
PRINTF("\n");
}
#else
- #define VERIFY_MESS(_status, _funcstr)
+ #define VERIFY_MESS(_status, _funcstr)
#endif
diff --git a/cores/nRF5/wiring.c b/cores/nRF5/wiring.c
index 61dc56d5a..0fa73c76e 100644
--- a/cores/nRF5/wiring.c
+++ b/cores/nRF5/wiring.c
@@ -31,110 +31,98 @@ nrf_nvic_state_t nrf_nvic_state;
#define BOOTLOADER_VERSION_REGISTER NRF_TIMER2->CC[0]
uint32_t bootloaderVersion = 0;
-void init( void )
-{
- // Retrieve bootloader version
- bootloaderVersion = BOOTLOADER_VERSION_REGISTER;
-
- // Select Clock Source : XTAL or RC
+void init(void) {
+ // Retrieve bootloader version
+ bootloaderVersion = BOOTLOADER_VERSION_REGISTER;
+
+ // Select Clock Source : XTAL or RC
#if defined( USE_LFXO )
- // 32Khz XTAL
- NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
+ // 32Khz XTAL
+ NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
#elif defined(USE_LFRC)
- // Internal OSC
- NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_RC << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
+ // Internal OSC
+ NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_RC << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
#else
- #error Clock Source is not configured, define USE_LFXO or USE_LFRC according to your board
+ #error Clock Source is not configured, define USE_LFXO or USE_LFRC according to your board
#endif
-
- NRF_CLOCK->TASKS_LFCLKSTART = 1UL;
-
- // RTC1 could be enabled by bootloader. Disable it
- NVIC_DisableIRQ(RTC1_IRQn);
- NRF_RTC1->EVTENCLR = RTC_EVTEN_COMPARE0_Msk;
- NRF_RTC1->INTENCLR = RTC_INTENSET_COMPARE0_Msk;
- NRF_RTC1->TASKS_STOP = 1;
- NRF_RTC1->TASKS_CLEAR = 1;
-
- // Make sure all pin is set HIGH when pinmode() is called
- NRF_P0->OUTSET = UINT32_MAX;
+
+ NRF_CLOCK->TASKS_LFCLKSTART = 1UL;
+
+ // RTC1 could be enabled by bootloader. Disable it
+ NVIC_DisableIRQ(RTC1_IRQn);
+ NRF_RTC1->EVTENCLR = RTC_EVTEN_COMPARE0_Msk;
+ NRF_RTC1->INTENCLR = RTC_INTENSET_COMPARE0_Msk;
+ NRF_RTC1->TASKS_STOP = 1;
+ NRF_RTC1->TASKS_CLEAR = 1;
+
+ // Make sure all pin is set HIGH when pinmode() is called
+ NRF_P0->OUTSET = UINT32_MAX;
#ifdef NRF_P1
- NRF_P1->OUTSET = UINT32_MAX;
+ NRF_P1->OUTSET = UINT32_MAX;
#endif
}
-void enterUf2Dfu(void)
-{
- NRF_POWER->GPREGRET = DFU_MAGIC_UF2_RESET;
- NVIC_SystemReset();
+void enterUf2Dfu(void) {
+ NRF_POWER->GPREGRET = DFU_MAGIC_UF2_RESET;
+ NVIC_SystemReset();
}
-void enterSerialDfu(void)
-{
- NRF_POWER->GPREGRET = DFU_MAGIC_SERIAL_ONLY_RESET;
- NVIC_SystemReset();
+void enterSerialDfu(void) {
+ NRF_POWER->GPREGRET = DFU_MAGIC_SERIAL_ONLY_RESET;
+ NVIC_SystemReset();
}
-void enterOTADfu(void)
-{
- NRF_POWER->GPREGRET = DFU_MAGIC_OTA_RESET;
- NVIC_SystemReset();
+void enterOTADfu(void) {
+ NRF_POWER->GPREGRET = DFU_MAGIC_OTA_RESET;
+ NVIC_SystemReset();
}
-void waitForEvent(void)
-{
+void waitForEvent(void) {
#if 0
- // Set bit 7 and bits 4..0 in the mask to one (0x ...00 1001 1111)
- enum { FPU_EXCEPTION_MASK = 0x0000009F };
-
- /* Clear exceptions and PendingIRQ from the FPU unit */
- __set_FPSCR(__get_FPSCR() & ~(FPU_EXCEPTION_MASK));
- (void) __get_FPSCR();
- NVIC_ClearPendingIRQ(FPU_IRQn);
+ // Set bit 7 and bits 4..0 in the mask to one (0x ...00 1001 1111)
+ enum { FPU_EXCEPTION_MASK = 0x0000009F };
+
+ /* Clear exceptions and PendingIRQ from the FPU unit */
+ __set_FPSCR(__get_FPSCR() & ~(FPU_EXCEPTION_MASK));
+ (void) __get_FPSCR();
+ NVIC_ClearPendingIRQ(FPU_IRQn);
#endif
-
- uint8_t sd_en = 0;
- (void) sd_softdevice_is_enabled(&sd_en);
-
- if ( sd_en )
- {
- (void) sd_app_evt_wait();
- }else
- {
- // SoftDevice is not enabled.
- __WFE();
- __SEV(); // Clear Event Register.
- __WFE();
- }
+
+ uint8_t sd_en = 0;
+ (void) sd_softdevice_is_enabled(&sd_en);
+
+ if (sd_en) {
+ (void) sd_app_evt_wait();
+ } else {
+ // SoftDevice is not enabled.
+ __WFE();
+ __SEV(); // Clear Event Register.
+ __WFE();
+ }
}
-void systemOff(uint32_t pin, uint8_t wake_logic)
-{
+void systemOff(uint32_t pin, uint8_t wake_logic) {
// for(int i=0; i<8; i++)
// {
// NRF_POWER->RAM[i].POWERCLR = 0x03UL;
// }
-
- pin = g_ADigitalPinMap[pin];
-
- if ( wake_logic )
- {
- nrf_gpio_cfg_sense_input(pin, NRF_GPIO_PIN_PULLDOWN, NRF_GPIO_PIN_SENSE_HIGH);
- }else
- {
- nrf_gpio_cfg_sense_input(pin, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW);
- }
-
- uint8_t sd_en;
- (void) sd_softdevice_is_enabled(&sd_en);
-
- // Enter System OFF state
- if ( sd_en )
- {
- sd_power_system_off();
- }else
- {
- NRF_POWER->SYSTEMOFF = 1;
- }
+
+ pin = g_ADigitalPinMap[pin];
+
+ if (wake_logic) {
+ nrf_gpio_cfg_sense_input(pin, NRF_GPIO_PIN_PULLDOWN, NRF_GPIO_PIN_SENSE_HIGH);
+ } else {
+ nrf_gpio_cfg_sense_input(pin, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW);
+ }
+
+ uint8_t sd_en;
+ (void) sd_softdevice_is_enabled(&sd_en);
+
+ // Enter System OFF state
+ if (sd_en) {
+ sd_power_system_off();
+ } else {
+ NRF_POWER->SYSTEMOFF = 1;
+ }
}
diff --git a/cores/nRF5/wiring_analog.cpp b/cores/nRF5/wiring_analog.cpp
index 570be9eb6..158c5371f 100644
--- a/cores/nRF5/wiring_analog.cpp
+++ b/cores/nRF5/wiring_analog.cpp
@@ -63,17 +63,14 @@ void analogWriteResolution( uint8_t res )
* @param pin
* @param value
*/
-void analogWrite( uint32_t pin, uint32_t value )
-{
- for(int i=0; iaddPin(pin) )
- {
- HwPWMx[i]->writePin(pin, value);
- return;
+void analogWrite(uint32_t pin, uint32_t value) {
+ for (int i = 0; i < HWPWM_MODULE_NUM; i++) {
+ // Added by if needed
+ if (HwPWMx[i]->addPin(pin)) {
+ HwPWMx[i]->writePin(pin, value);
+ return;
+ }
}
- }
}
}
diff --git a/cores/nRF5/wiring_analog.h b/cores/nRF5/wiring_analog.h
index dd16eef7d..6143107ab 100644
--- a/cores/nRF5/wiring_analog.h
+++ b/cores/nRF5/wiring_analog.h
@@ -41,15 +41,14 @@ typedef enum _eAnalogReference
AR_VDD4 // VDD/4 REF * 4 = 0..VDD
} eAnalogReference ;
#else
-typedef enum _eAnalogReference
-{
- AR_DEFAULT,
- AR_VBG,
- AR_SUPPLY_ONE_HALF,
- AR_SUPPLY_ONE_THIRD,
- AR_EXT0,
- AR_EXT1
-} eAnalogReference ;
+typedef enum _eAnalogReference {
+ AR_DEFAULT,
+ AR_VBG,
+ AR_SUPPLY_ONE_HALF,
+ AR_SUPPLY_ONE_THIRD,
+ AR_EXT0,
+ AR_EXT1
+} eAnalogReference;
#endif
@@ -59,14 +58,14 @@ typedef enum _eAnalogReference
*
* \param ulMmode Should be set to AR_DEFAULT.
*/
-extern void analogReference( eAnalogReference ulMode ) ;
+extern void analogReference(eAnalogReference ulMode);
/*
* \brief Configures the oversampling amount used to sample analog input.
*
* \param ulOversampling Should be set to 1, 2, 4, 8, 16, 32, 64, 128 or 256.
*/
-extern void analogOversampling( uint32_t ulOversampling );
+extern void analogOversampling(uint32_t ulOversampling);
/*
* \brief Writes an analog value (PWM wave) to a pin.
@@ -74,7 +73,7 @@ extern void analogOversampling( uint32_t ulOversampling );
* \param ulPin
* \param ulValue
*/
-extern void analogWrite( uint32_t ulPin, uint32_t ulValue ) ;
+extern void analogWrite(uint32_t ulPin, uint32_t ulValue);
/*
* \brief Reads the value from the specified analog pin.
@@ -83,7 +82,7 @@ extern void analogWrite( uint32_t ulPin, uint32_t ulValue ) ;
*
* \return Read value from selected pin, if no error.
*/
-extern uint32_t analogRead( uint32_t ulPin ) ;
+extern uint32_t analogRead(uint32_t ulPin);
/*
* \brief Set the resolution of analogRead return values. Default is 10 bits (range from 0 to 1023).
@@ -99,7 +98,7 @@ extern void analogReadResolution(int res);
*/
extern void analogWriteResolution(uint8_t res);
-extern void analogOutputInit( void ) ;
+extern void analogOutputInit(void);
#ifdef __cplusplus
}
diff --git a/cores/nRF5/wiring_analog_nRF52.c b/cores/nRF5/wiring_analog_nRF52.c
index ee95d3183..e9e6c133c 100644
--- a/cores/nRF5/wiring_analog_nRF52.c
+++ b/cores/nRF5/wiring_analog_nRF52.c
@@ -128,40 +128,40 @@ void analogReference( eAnalogReference ulMode )
void analogOversampling( uint32_t ulOversampling )
{
- saadcBurst = SAADC_CH_CONFIG_BURST_Enabled;
-
- switch (ulOversampling) {
- case 0:
- case 1:
- saadcBurst = SAADC_CH_CONFIG_BURST_Disabled;
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Bypass;
- return;
- break;
- case 2:
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over2x;
- break;
- case 4:
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over4x;
- break;
- case 8:
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over8x;
- break;
- case 16:
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over16x;
- break;
- case 32:
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over32x;
- break;
- case 64:
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over64x;
- break;
- case 128:
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over128x;
- break;
- case 256:
- NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over256x;
- break;
- }
+ saadcBurst = SAADC_CH_CONFIG_BURST_Enabled;
+
+ switch (ulOversampling) {
+ case 0:
+ case 1:
+ saadcBurst = SAADC_CH_CONFIG_BURST_Disabled;
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Bypass;
+ return;
+ break;
+ case 2:
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over2x;
+ break;
+ case 4:
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over4x;
+ break;
+ case 8:
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over8x;
+ break;
+ case 16:
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over16x;
+ break;
+ case 32:
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over32x;
+ break;
+ case 64:
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over64x;
+ break;
+ case 128:
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over128x;
+ break;
+ case 256:
+ NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over256x;
+ break;
+ }
}
uint32_t analogRead( uint32_t ulPin )
diff --git a/cores/nRF5/wiring_constants.h b/cores/nRF5/wiring_constants.h
index 5bc30ba5b..761ac9d21 100644
--- a/cores/nRF5/wiring_constants.h
+++ b/cores/nRF5/wiring_constants.h
@@ -44,8 +44,8 @@ extern "C"{
#define DISPLAY 0x1
enum BitOrder {
- LSBFIRST = 0,
- MSBFIRST = 1
+ LSBFIRST = 0,
+ MSBFIRST = 1
};
// moved to WInterrupts.h
@@ -60,9 +60,8 @@ enum BitOrder {
typedef uint32_t err_t;
-enum
-{
- ERROR_NONE = 0
+enum {
+ ERROR_NONE = 0
};
#ifdef __cplusplus
diff --git a/cores/nRF5/wiring_digital.c b/cores/nRF5/wiring_digital.c
index d70b4a741..9667b8b6c 100644
--- a/cores/nRF5/wiring_digital.c
+++ b/cores/nRF5/wiring_digital.c
@@ -98,57 +98,51 @@ void pinMode( uint32_t ulPin, uint32_t ulMode )
}
}
-void digitalWrite( uint32_t ulPin, uint32_t ulVal )
-{
- if (ulPin >= PINS_COUNT) {
- return;
- }
-
- ulPin = g_ADigitalPinMap[ulPin];
-
- NRF_GPIO_Type * port = nrf_gpio_pin_port_decode(&ulPin);
-
- switch ( ulVal )
- {
- case LOW:
- port->OUTCLR = (1UL << ulPin);
- break ;
-
- default:
- port->OUTSET = (1UL << ulPin);
- break ;
- }
+void digitalWrite(uint32_t ulPin, uint32_t ulVal) {
+ if (ulPin >= PINS_COUNT) {
+ return;
+ }
+
+ ulPin = g_ADigitalPinMap[ulPin];
+
+ NRF_GPIO_Type *port = nrf_gpio_pin_port_decode(&ulPin);
+
+ switch (ulVal) {
+ case LOW:
+ port->OUTCLR = (1UL << ulPin);
+ break;
+
+ default:
+ port->OUTSET = (1UL << ulPin);
+ break;
+ }
}
-int digitalRead( uint32_t ulPin )
-{
- if (ulPin >= PINS_COUNT) {
- return 0;
- }
-
- ulPin = g_ADigitalPinMap[ulPin];
-
- NRF_GPIO_Type * port = nrf_gpio_pin_port_decode(&ulPin);
- uint32_t const bm = (1UL << ulPin);
-
- // Return bit in OUT or IN depending on configured direction
- return (bm & ((port->DIR & bm) ? port->OUT : port->IN)) ? 1 : 0;
+int digitalRead(uint32_t ulPin) {
+ if (ulPin >= PINS_COUNT) {
+ return 0;
+ }
+
+ ulPin = g_ADigitalPinMap[ulPin];
+
+ NRF_GPIO_Type *port = nrf_gpio_pin_port_decode(&ulPin);
+ uint32_t const bm = (1UL << ulPin);
+
+ // Return bit in OUT or IN depending on configured direction
+ return (bm & ((port->DIR & bm) ? port->OUT : port->IN)) ? 1 : 0;
}
-void digitalToggle( uint32_t pin )
-{
- int state = 1 - digitalRead(pin);
- digitalWrite(pin, state);
+void digitalToggle(uint32_t pin) {
+ int state = 1 - digitalRead(pin);
+ digitalWrite(pin, state);
}
-void ledOn(uint32_t pin)
-{
- digitalWrite(pin, LED_STATE_ON);
+void ledOn(uint32_t pin) {
+ digitalWrite(pin, LED_STATE_ON);
}
-void ledOff(uint32_t pin)
-{
- digitalWrite(pin, 1-LED_STATE_ON);
+void ledOff(uint32_t pin) {
+ digitalWrite(pin, 1 - LED_STATE_ON);
}
diff --git a/cores/nRF5/wiring_digital.h b/cores/nRF5/wiring_digital.h
index 498290824..c33e6c7c6 100644
--- a/cores/nRF5/wiring_digital.h
+++ b/cores/nRF5/wiring_digital.h
@@ -20,7 +20,7 @@
#define _WIRING_DIGITAL_
#ifdef __cplusplus
- extern "C" {
+extern "C" {
#endif
// #include "WVariant.h"
@@ -31,7 +31,7 @@
* \param ulPin The number of the pin whose mode you wish to set
* \param ulMode Can be INPUT, OUTPUT, INPUT_PULLUP or INPUT_PULLDOWN
*/
-extern void pinMode( uint32_t dwPin, uint32_t dwMode ) ;
+extern void pinMode(uint32_t dwPin, uint32_t dwMode);
/**
* \brief Write a HIGH or a LOW value to a digital pin.
@@ -53,7 +53,7 @@ extern void pinMode( uint32_t dwPin, uint32_t dwMode ) ;
* \param dwPin the pin number
* \param dwVal HIGH or LOW
*/
-extern void digitalWrite( uint32_t dwPin, uint32_t dwVal ) ;
+extern void digitalWrite(uint32_t dwPin, uint32_t dwVal);
/**
* \brief Reads the value from a specified digital pin, either HIGH or LOW.
@@ -62,9 +62,9 @@ extern void digitalWrite( uint32_t dwPin, uint32_t dwVal ) ;
*
* \return HIGH or LOW
*/
-extern int digitalRead( uint32_t ulPin ) ;
+extern int digitalRead(uint32_t ulPin);
-extern void digitalToggle( uint32_t pin );
+extern void digitalToggle(uint32_t pin);
void ledOn(uint32_t pin);
void ledOff(uint32_t pin);
diff --git a/cores/nRF5/wiring_shift.c b/cores/nRF5/wiring_shift.c
index 3260d2b12..060a29182 100644
--- a/cores/nRF5/wiring_shift.c
+++ b/cores/nRF5/wiring_shift.c
@@ -25,48 +25,38 @@
extern "C"{
#endif
-uint32_t shiftIn( uint32_t ulDataPin, uint32_t ulClockPin, uint32_t ulBitOrder )
-{
- uint8_t value = 0 ;
- uint8_t i ;
-
- for ( i=0 ; i < 8 ; ++i )
- {
- digitalWrite( ulClockPin, HIGH ) ;
-
- if ( ulBitOrder == LSBFIRST )
- {
- value |= digitalRead( ulDataPin ) << i ;
+uint32_t shiftIn(uint32_t ulDataPin, uint32_t ulClockPin, uint32_t ulBitOrder) {
+ uint8_t value = 0;
+ uint8_t i;
+
+ for (i = 0; i < 8; ++i) {
+ digitalWrite(ulClockPin, HIGH);
+
+ if (ulBitOrder == LSBFIRST) {
+ value |= digitalRead(ulDataPin) << i;
+ } else {
+ value |= digitalRead(ulDataPin) << (7 - i);
+ }
+
+ digitalWrite(ulClockPin, LOW);
}
- else
- {
- value |= digitalRead( ulDataPin ) << (7 - i) ;
- }
-
- digitalWrite( ulClockPin, LOW ) ;
- }
-
- return value ;
+
+ return value;
}
-void shiftOut( uint32_t ulDataPin, uint32_t ulClockPin, uint32_t ulBitOrder, uint32_t ulVal )
-{
- uint8_t i ;
-
- for ( i=0 ; i < 8 ; i++ )
- {
- if ( ulBitOrder == LSBFIRST )
- {
- digitalWrite( ulDataPin, !!(ulVal & (1 << i)) ) ;
+void shiftOut(uint32_t ulDataPin, uint32_t ulClockPin, uint32_t ulBitOrder, uint32_t ulVal) {
+ uint8_t i;
+
+ for (i = 0; i < 8; i++) {
+ if (ulBitOrder == LSBFIRST) {
+ digitalWrite(ulDataPin, !!(ulVal & (1 << i)));
+ } else {
+ digitalWrite(ulDataPin, !!(ulVal & (1 << (7 - i))));
+ }
+
+ digitalWrite(ulClockPin, HIGH);
+ digitalWrite(ulClockPin, LOW);
}
- else
- {
- digitalWrite( ulDataPin, !!(ulVal & (1 << (7 - i))) ) ;
- }
-
- digitalWrite( ulClockPin, HIGH ) ;
- digitalWrite( ulClockPin, LOW ) ;
- }
}
#ifdef __cplusplus
diff --git a/cores/nRF5/wiring_shift.h b/cores/nRF5/wiring_shift.h
index 6026bdc61..fc7e3d788 100644
--- a/cores/nRF5/wiring_shift.h
+++ b/cores/nRF5/wiring_shift.h
@@ -20,19 +20,19 @@
#define _WIRING_SHIFT_
#ifdef __cplusplus
- extern "C" {
+extern "C" {
#endif
/*
* \brief
*/
-extern uint32_t shiftIn( uint32_t ulDataPin, uint32_t ulClockPin, uint32_t ulBitOrder ) ;
+extern uint32_t shiftIn(uint32_t ulDataPin, uint32_t ulClockPin, uint32_t ulBitOrder);
/*
* \brief
*/
-extern void shiftOut( uint32_t ulDataPin, uint32_t ulClockPin, uint32_t ulBitOrder, uint32_t ulVal ) ;
+extern void shiftOut(uint32_t ulDataPin, uint32_t ulClockPin, uint32_t ulBitOrder, uint32_t ulVal);
#ifdef __cplusplus
diff --git a/docs/additional_board_manager.png b/docs/additional_board_manager.png
new file mode 100644
index 000000000..3ff107e73
Binary files /dev/null and b/docs/additional_board_manager.png differ
diff --git a/docs/preferences.png b/docs/preferences.png
new file mode 100644
index 000000000..8906cd52e
Binary files /dev/null and b/docs/preferences.png differ
diff --git a/libraries/BG96_LibForArduino b/libraries/BG96_LibForArduino
new file mode 160000
index 000000000..8f08ddf82
--- /dev/null
+++ b/libraries/BG96_LibForArduino
@@ -0,0 +1 @@
+Subproject commit 8f08ddf82641de499a825695ebc811dbf1594827
diff --git a/libraries/Bluefruit52Lib/examples/Basics/Blink/Blink.ino b/libraries/Bluefruit52Lib/examples/Basics/Blink/Blink.ino
new file mode 100644
index 000000000..4954535fe
--- /dev/null
+++ b/libraries/Bluefruit52Lib/examples/Basics/Blink/Blink.ino
@@ -0,0 +1,42 @@
+/*
+ Blink
+
+ Turns an LED on for one second, then off for one second, repeatedly.
+
+ Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
+ it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
+ the correct LED pin independent of which board is used.
+ If you want to know what pin the on-board LED is connected to on your Arduino
+ model, check the Technical Specs of your board at:
+ https://www.arduino.cc/en/Main/Products
+
+ modified 8 May 2014
+ by Scott Fitzgerald
+ modified 2 Sep 2016
+ by Arturo Guadalupi
+ modified 8 Sep 2016
+ by Colby Newman
+
+ This example code is in the public domain.
+
+ http://www.arduino.cc/en/Tutorial/Blink
+*/
+
+// the setup function runs once when you press reset or power the board
+void setup() {
+ // initialize digital pin LED_BUILTIN as an output.
+ pinMode(LED_BUILTIN, OUTPUT);
+ pinMode(LED_CONN, OUTPUT);
+}
+
+// the loop function runs over and over again forever
+void loop() {
+ digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
+ delay(1000); // wait for a second
+ digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
+ delay(1000); // wait for a second
+ digitalWrite(LED_CONN, HIGH);
+ delay(1000);
+ digitalWrite(LED_CONN, LOW);
+ delay(1000);
+}
\ No newline at end of file
diff --git a/libraries/Bluefruit52Lib/examples/Basics/BlinkTwoLed/BlinkTwoLed.ino b/libraries/Bluefruit52Lib/examples/Basics/BlinkTwoLed/BlinkTwoLed.ino
new file mode 100644
index 000000000..0d7c8a9c2
--- /dev/null
+++ b/libraries/Bluefruit52Lib/examples/Basics/BlinkTwoLed/BlinkTwoLed.ino
@@ -0,0 +1,20 @@
+/*
+ * Alternately blink two LEDs on the board.
+ */
+
+
+void setup() {
+ // initialize digital pin LED_BUILTIN as an output.
+ pinMode(LED_BUILTIN, OUTPUT);
+ pinMode(LED_CONN, OUTPUT);
+}
+
+void loop() {
+ digitalWrite(LED_RED, HIGH);
+ digitalWrite(LED_BLUE, LOW);
+ delay(1000);
+
+ digitalWrite(LED_RED, LOW);
+ digitalWrite(LED_BLUE, HIGH);
+ delay(1000);
+}
\ No newline at end of file
diff --git a/libraries/Bluefruit52Lib/examples/Hardware/adc_vbat/adc_vbat.ino b/libraries/Bluefruit52Lib/examples/Hardware/adc_vbat/adc_vbat.ino
index d70c67e2c..0584c825a 100644
--- a/libraries/Bluefruit52Lib/examples/Hardware/adc_vbat/adc_vbat.ino
+++ b/libraries/Bluefruit52Lib/examples/Hardware/adc_vbat/adc_vbat.ino
@@ -1,12 +1,13 @@
-#include
-
-#if defined ARDUINO_NRF52840_CIRCUITPLAY
-#define PIN_VBAT A8 // this is just a mock read, we'll use the light sensor, so we can run the test
-#endif
+void setup() {
+ Serial.begin(115200);
+ Serial.println("setup");
+}
-uint32_t vbat_pin = PIN_VBAT; // A7 for feather nRF52832, A6 for nRF52840
+void loop() {
+ float lipo_voltage_level_mv;
+ lipo_voltage_level_mv = readVbat();
-#define VBAT_MV_PER_LSB (0.73242188F) // 3.0V ADC range and 12-bit ADC resolution = 3000mV/4096
+ Serial.printf("%f[mV]\n", lipo_voltage_level_mv);
#ifdef NRF52840_XXAA
#define VBAT_DIVIDER (0.5F) // 150K + 150K voltage divider on VBAT
@@ -16,53 +17,42 @@ uint32_t vbat_pin = PIN_VBAT; // A7 for feather nRF52832, A6 for nRF
#define VBAT_DIVIDER_COMP (1.403F) // Compensation factor for the VBAT divider
#endif
-#define REAL_VBAT_MV_PER_LSB (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB)
+float readVbat(void) {
+#define VBAT_MV_PER_LSB (1.171875F) // 1.2V ADC range and 10-bit ADC resolution = 1200mV/1024
+#define VBAT_DIVIDER (0.25F) // From IC: RP124N334E
+ digitalWrite(BATTERY_LEVEL_ENABLE_PIN, HIGH);
-float readVBAT(void) {
- float raw;
+ int adc_value = 0;
- // Set the analog reference to 3.0V (default = 3.6V)
- analogReference(AR_INTERNAL_3_0);
+ // Set the analog reference to 1.2V (default = 3.6V)
+ analogReference(AR_INTERNAL_1_2);
- // Set the resolution to 12-bit (0..4095)
- analogReadResolution(12); // Can be 8, 10, 12 or 14
+ // Set the resolution to 10-bit (0..1023)
+ analogReadResolution(10); // Can be 8, 10, 12 or 14
// Let the ADC settle
- delay(1);
+ delay(100);
- // Get the raw 12-bit, 0..3000mV ADC value
- raw = analogRead(vbat_pin);
+ // Get the raw 10-bit, 0..1200mV ADC value
+ adc_value = analogRead(BATTERY_VOLTAGE_PIN);
+ while ((adc_value < 0) || (adc_value > 1023)) {
+ adc_value = analogRead(BATTERY_VOLTAGE_PIN);
+ }
- // Set the ADC back to the default settings
- analogReference(AR_DEFAULT);
- analogReadResolution(10);
+ Serial.printf("adc_value: %d\n", adc_value);
// Convert the raw value to compensated mv, taking the resistor-
// divider into account (providing the actual LIPO voltage)
- // ADC range is 0..3000mV and resolution is 12-bit (0..4095)
- return raw * REAL_VBAT_MV_PER_LSB;
-}
-
-uint8_t mvToPercent(float mvolts) {
- if(mvolts<3300)
- return 0;
+ float battery_voltage_mv = (float)adc_value * VBAT_MV_PER_LSB * (1 / VBAT_DIVIDER);
- if(mvolts <3600) {
- mvolts -= 3300;
- return mvolts/30;
- }
-
- mvolts -= 3600;
- return 10 + (mvolts * 0.15F ); // thats mvolts /6.66666666
-}
+ // Set the ADC back to the default settings
+ analogReference(AR_DEFAULT);
+ analogReadResolution(10);
-void setup() {
- Serial.begin(115200);
- while ( !Serial ) delay(10); // for nrf52840 with native usb
+ digitalWrite(BATTERY_LEVEL_ENABLE_PIN, LOW);
- // Get a single ADC sample and throw it away
- readVBAT();
+ return battery_voltage_mv;
}
void loop() {
diff --git a/libraries/Bluefruit52Lib/examples/Hardware/adc_vusb/adc_vusb.ino b/libraries/Bluefruit52Lib/examples/Hardware/adc_vusb/adc_vusb.ino
new file mode 100644
index 000000000..157546fcd
--- /dev/null
+++ b/libraries/Bluefruit52Lib/examples/Hardware/adc_vusb/adc_vusb.ino
@@ -0,0 +1,26 @@
+void setup() {
+ Serial.begin(115200);
+ Serial.println("setup");
+}
+
+void loop() {
+ float usb_voltage_level_mv;
+ usb_voltage_level_mv = readVusb();
+
+ Serial.printf("%f[mV]\n",usb_voltage_level_mv);
+
+ delay(5000);
+}
+
+float readVusb() {
+ float mv_per_lsb = 3600.0F/1024.0F; // 10-bit ADC with 3.6V input range
+
+ int adc_value = 0;
+ float battery_level_mv = 0;
+
+ // Get a fresh ADC value
+ adc_value = analogRead(USB_VOLTAGE_PIN);
+ battery_level_mv = (float)adc_value * mv_per_lsb;
+
+ return battery_level_mv;
+}
diff --git a/libraries/Bluefruit52Lib/examples/Hardware/fwinfo/fwinfo.ino b/libraries/Bluefruit52Lib/examples/Hardware/fwinfo/fwinfo.ino
index 538ac31e3..dd07781df 100644
--- a/libraries/Bluefruit52Lib/examples/Hardware/fwinfo/fwinfo.ino
+++ b/libraries/Bluefruit52Lib/examples/Hardware/fwinfo/fwinfo.ino
@@ -18,7 +18,6 @@
void setup()
{
Serial.begin(115200);
- while ( !Serial ) delay(10); // for nrf52840 with native usb
Serial.println("Bluefruit52 Firmware Info Example");
Serial.println("---------------------------------\n");
diff --git a/libraries/Bluefruit52Lib/examples/Hardware/hwinfo/hwinfo.ino b/libraries/Bluefruit52Lib/examples/Hardware/hwinfo/hwinfo.ino
index 23518b5d9..d51ccb0a8 100644
--- a/libraries/Bluefruit52Lib/examples/Hardware/hwinfo/hwinfo.ino
+++ b/libraries/Bluefruit52Lib/examples/Hardware/hwinfo/hwinfo.ino
@@ -10,7 +10,6 @@ typedef volatile uint32_t REG32;
void setup() {
Serial.begin(115200);
- while ( !Serial ) delay(10); // for nrf52840 with native usb
Serial.println("Bluefruit 52 HW Info");
Serial.println("");
diff --git a/libraries/Bluefruit52Lib/examples/Hardware/meminfo/meminfo.ino b/libraries/Bluefruit52Lib/examples/Hardware/meminfo/meminfo.ino
index 9df909c10..b851c1419 100644
--- a/libraries/Bluefruit52Lib/examples/Hardware/meminfo/meminfo.ino
+++ b/libraries/Bluefruit52Lib/examples/Hardware/meminfo/meminfo.ino
@@ -18,7 +18,7 @@
void setup()
{
Serial.begin(115200);
- while ( !Serial ) delay(10); // for nrf52840 with native usb
+ delay(4000);
Serial.println("Bluefruit52 Memory Info Example");
Serial.println("-------------------------------\n");
diff --git a/libraries/NectisDriver_LibForArduino/examples/ExternalFlashRom/EnterDeepSleep/EnterDeepSleep.ino b/libraries/NectisDriver_LibForArduino/examples/ExternalFlashRom/EnterDeepSleep/EnterDeepSleep.ino
new file mode 100644
index 000000000..debe53a7a
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/examples/ExternalFlashRom/EnterDeepSleep/EnterDeepSleep.ino
@@ -0,0 +1,42 @@
+#include "NectisMcu.h"
+#include "NectisDriver.h"
+#include "NectisUtils.h"
+#include "NectisDebug.h"
+
+NectisDriver Driver;
+
+
+void setup() {
+ Serial.begin(115200);
+ delay(4000);
+
+ mcu::InitMcu();
+ Serial.print("");
+ Serial.println("--- START ---------------------------------------------------");
+
+
+ // もしFlashROMをディープスリープモードに入れると、FlashRomBegin()でエラーが返ってくる。
+ Driver.FlashRomEnterDeepSleep();
+
+
+ Driver.FlashRomBegin();
+
+ while( !Serial.available() ) delay(10);
+ Serial.print("Enter the sector number to dump: ");
+
+ int sector = Serial.parseInt();
+
+ Serial.println(sector); // echo
+
+ if ( sector < int(Driver.FlashRomGetSize()/Driver.SECTOR_SIZE) ) {
+ Driver.FlashRomDumpSector(sector);
+ } else {
+ Serial.println("### Invalid sector number");
+ }
+
+ Serial.println();
+ delay(10); // a bit of delay
+}
+
+void loop() {
+}
diff --git a/libraries/NectisDriver_LibForArduino/examples/ExternalFlashRom/ExitDeepSleep/ExitDeepSleep.ino b/libraries/NectisDriver_LibForArduino/examples/ExternalFlashRom/ExitDeepSleep/ExitDeepSleep.ino
new file mode 100644
index 000000000..5fd76b3c3
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/examples/ExternalFlashRom/ExitDeepSleep/ExitDeepSleep.ino
@@ -0,0 +1,43 @@
+#include "NectisMcu.h"
+#include "NectisDriver.h"
+#include "NectisUtils.h"
+#include "NectisDebug.h"
+
+NectisDriver Driver;
+
+constexpr uint8_t INPUT_BUFFER_SIZE = 64;
+char input[INPUT_BUFFER_SIZE];
+uint8_t inputSize;
+
+
+void setup() {
+ Serial.begin(115200);
+ delay(4000);
+
+ mcu::InitMcu();
+ Serial.print("");
+ Serial.println("--- START ---------------------------------------------------");
+
+ Driver.FlashRomExitDeepSleep();
+
+ Driver.FlashRomBegin();
+
+ while( !Serial.available() ) delay(10);
+}
+
+void loop() {
+ Serial.print("Enter the sector number to dump: ");
+
+ int sector = Serial.parseInt();
+
+ Serial.println(sector); // echo
+
+ if ( sector < int(Driver.FlashRomGetSize()/Driver.SECTOR_SIZE) ) {
+ Driver.FlashRomDumpSector(sector);
+ } else {
+ Serial.println("### Invalid sector number");
+ }
+
+ Serial.println();
+ delay(10); // a bit of delay
+}
diff --git a/libraries/NectisDriver_LibForArduino/examples/RTC/Alarm/Alarm.ino b/libraries/NectisDriver_LibForArduino/examples/RTC/Alarm/Alarm.ino
new file mode 100644
index 000000000..d0157073d
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/examples/RTC/Alarm/Alarm.ino
@@ -0,0 +1,38 @@
+#include "NectisCellularBG96.h"
+#include "NectisMcu.h"
+#include "NectisUtils.h"
+#include "NectisPeripherals.h"
+#include "NectisRTC.h"
+
+NectisCellularBG96 BG96;
+NectisRtc Rtc;
+
+const char* RtcAlarmTable[] = {
+ "00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00",
+ "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"
+};
+const uint8_t tableDayofweek = 1;
+
+
+
+void setup() {
+ Serial.begin(115200);
+ delay(4000);
+ Serial.print("");
+ Serial.println("--- START ---------------------------------------------------");
+
+ mcu::InitMcu();
+
+ Rtc.Begin();
+ Rtc.Init();
+
+ Rtc.ConfigRtc24HourDisplay();
+
+ Rtc.SetAlarm(&RtcAlarmTable[0], (uint16_t)(sizeof(RtcAlarmTable) / sizeof(char*)), tableDayofweek);
+}
+
+void loop() {
+ Rtc.PrintCalender();
+
+ delay(10000);
+}
\ No newline at end of file
diff --git a/libraries/NectisDriver_LibForArduino/examples/RTC/Calender/Calender.ino b/libraries/NectisDriver_LibForArduino/examples/RTC/Calender/Calender.ino
new file mode 100644
index 000000000..36e0a3617
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/examples/RTC/Calender/Calender.ino
@@ -0,0 +1,65 @@
+#include "NectisCellularBG96.h"
+#include "NectisMcu.h"
+#include "NectisPeripherals.h"
+#include "NectisRtc.h"
+
+NectisCellularBG96 BG96;
+NectisRtc Rtc;
+
+
+void setup() {
+ Serial.begin(115200);
+ delay(4000);
+ Serial.print("");
+ Serial.println("--- START ---------------------------------------------------");
+
+ mcu::InitMcu();
+ peripherals::WakeUpFlashRomFromDeepSleep();
+
+ BG96.Begin();
+ BG96.InitLteM();
+
+ delay(10);
+
+ struct tm currentTime;
+ char currentTimeStr[64];
+
+ BG96.GetCurrentTime(¤tTime, true);
+ strftime(currentTimeStr, sizeof(currentTimeStr), "%y/%m/%d %H:%M:%S %w", ¤tTime);
+
+ Serial.printf("\nNow=%s\n", currentTimeStr);
+ delay(10);
+
+ delay(100);
+ BG96.TurnOff();
+ BG96.End();
+ delay(100);
+
+ Rtc.Begin();
+ Rtc.Init();
+
+ Rtc.ConfigRtc24HourDisplay();
+
+ uint8_t calender[7];
+ Rtc.ReadCalender(calender);
+
+ uint8_t year = calender[0];
+ uint8_t hour = calender[3];
+
+ // year==0 の時は、RTCに時刻がセットされていないので、BG96から取得してセットする。
+ if ( (year == 0) | (24 <= hour) ) {
+ Rtc.SetCurrentTimeToRtc(¤tTime);
+ }
+
+ Rtc.End();
+}
+
+void loop() {
+ Rtc.Begin();
+ Rtc.PrintCalender();
+ Rtc.End();
+
+// Rtc.EndRtc();
+
+ delay(10000);
+}
\ No newline at end of file
diff --git a/libraries/NectisDriver_LibForArduino/library.properties b/libraries/NectisDriver_LibForArduino/library.properties
new file mode 100644
index 000000000..60bc456d0
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/library.properties
@@ -0,0 +1,10 @@
+name=Nectis nRF52840 Peripherals Library
+version=0.0.1
+author=CAMI&Co.
+maintainer=CAMI&Co.
+sentence=Arduino library for nRF52840 Peripherals
+paragraph=Arduino library for nRF52840 Peripherals
+category=Communication
+url=https://github.com/cami/NectisFirmware-nRF52840
+architectures=*
+includes=NectisDriver.h
\ No newline at end of file
diff --git a/libraries/NectisDriver_LibForArduino/src/FlashROM/NectisFlashROM.cpp b/libraries/NectisDriver_LibForArduino/src/FlashROM/NectisFlashROM.cpp
new file mode 100644
index 000000000..add8027c7
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/src/FlashROM/NectisFlashROM.cpp
@@ -0,0 +1,117 @@
+#include "NectisFlashROM.h"
+#include
+#include "SPI.h"
+#include "Adafruit_SPIFlash.h"
+
+Adafruit_FlashTransport_QSPI _flashTransport(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0, PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3);
+Adafruit_SPIFlash _flash(&_flashTransport);
+
+
+NectisFlashROM::NectisFlashROM() {
+
+}
+
+/*
+ * External Flash Rom
+ */
+void NectisFlashROM::FlashRomEnterDeepSleep(void) {
+ Serial.println("### Put the external flash ROM into deep sleep mode.");
+
+ SPI.begin();
+
+ // SLAVE_SELECT_PIN == PIN_SPI_CS
+ // set the slaveSelectPin as an output:
+ pinMode(PIN_SPI_CS, OUTPUT);
+
+ digitalWrite(PIN_SPI_CS, LOW);
+ SPI.transfer(0xB9);
+ digitalWrite(PIN_SPI_CS, HIGH);
+
+ SPI.end();
+}
+
+void NectisFlashROM::FlashRomExitDeepSleep(void) {
+ Serial.println("### Wake up the external flash ROM from deep sleep mode.");
+
+ SPI.begin();
+
+ // SLAVE_SELECT_PIN == PIN_SPI_CS
+ // set the slaveSelectPin as an output:
+ pinMode(PIN_SPI_CS, OUTPUT);
+
+ digitalWrite(PIN_SPI_CS, LOW);
+ SPI.transfer(0xAB);
+ digitalWrite(PIN_SPI_CS, HIGH);
+
+ SPI.end();
+}
+
+
+void NectisFlashROM::FlashRomBegin() {
+ if (!_flash.begin()) {
+ Serial.println("Error, failed to initialize flash chip!");
+ while(1) delay(10);
+ }
+}
+
+void NectisFlashROM::FlashRomEraseChip() {
+ if (!_flash.eraseChip()) {
+ Serial.println("### Failed to erase chip!");
+ }
+}
+
+void NectisFlashROM::FlashRomWaitUntilReady() {
+ _flash.waitUntilReady();
+}
+
+
+void NectisFlashROM::FlashRomPrintJedecId() {
+ Serial.print("JEDEC ID=");
+ Serial.println(_flash.getJEDECID(), HEX);
+}
+
+uint32_t NectisFlashROM::FlashRomGetSize() {
+ return _flash.size();
+}
+
+
+void NectisFlashROM::FlashRomReadSector(uint16_t sector_no, uint8_t *buf, uint8_t contents_size) {
+ _flash.readBuffer(sector_no*SECTOR_SIZE, buf, contents_size);
+
+ _flash.waitUntilReady();
+}
+
+void NectisFlashROM::FlashRomWriteSector(uint16_t sector_no, const char* contents, uint16_t contents_size) {
+ uint8_t buf[contents_size];
+
+ for(uint32_t i = 0 ; i < sizeof(buf); i++) {
+ buf[i] = contents[i];
+ }
+
+ _flash.writeBuffer(sector_no*SECTOR_SIZE, buf, contents_size);
+
+ _flash.waitUntilReady();
+}
+
+void NectisFlashROM::FlashRomDumpSector(uint16_t sector_no) {
+ uint8_t buf[SECTOR_SIZE];
+ _flash.readBuffer(sector_no*SECTOR_SIZE, buf, SECTOR_SIZE);
+
+ for(uint32_t row=0; row<32; row++) {
+ if ( row == 0 ) Serial.print("0");
+ if ( row < 16 ) Serial.print("0");
+ Serial.print(row*16, HEX);
+ Serial.print(" : ");
+
+ for(uint32_t col=0; col<16; col++) {
+ uint8_t val = buf[row*16 + col];
+
+ if ( val < 16 ) Serial.print("0");
+ Serial.print(val, HEX);
+
+ Serial.print(" ");
+ }
+
+ Serial.println();
+ }
+}
diff --git a/libraries/NectisDriver_LibForArduino/src/FlashROM/NectisFlashROM.h b/libraries/NectisDriver_LibForArduino/src/FlashROM/NectisFlashROM.h
new file mode 100644
index 000000000..91d86f776
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/src/FlashROM/NectisFlashROM.h
@@ -0,0 +1,27 @@
+#pragma once
+
+#include
+
+
+class NectisFlashROM {
+public:
+ NectisFlashROM();
+
+ void FlashRomEnterDeepSleep(void);
+ void FlashRomExitDeepSleep(void);
+
+ void FlashRomBegin();
+ void FlashRomEraseChip();
+ void FlashRomWaitUntilReady();
+
+ void FlashRomPrintJedecId();
+ uint32_t FlashRomGetSize();
+
+ void FlashRomReadSector(uint16_t sector_no, uint8_t *buf, uint8_t contents_size);
+ void FlashRomWriteSector(uint16_t sector_no, const char* contents, uint16_t contents_size);
+ void FlashRomDumpSector(uint16_t sector_no);
+
+public:
+ static constexpr uint16_t SECTOR_SIZE = 512;
+};
+
diff --git a/libraries/NectisDriver_LibForArduino/src/NectisDriver.cpp b/libraries/NectisDriver_LibForArduino/src/NectisDriver.cpp
new file mode 100644
index 000000000..80c34c6bd
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/src/NectisDriver.cpp
@@ -0,0 +1,12 @@
+#include "NectisDriver.h"
+#include
+
+
+
+NectisDriver::NectisDriver() {
+
+}
+
+NectisDriver::~NectisDriver() {
+
+}
diff --git a/libraries/NectisDriver_LibForArduino/src/NectisDriver.h b/libraries/NectisDriver_LibForArduino/src/NectisDriver.h
new file mode 100644
index 000000000..29c815f58
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/src/NectisDriver.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "FlashROM/NectisFlashROM.h"
+#include "RTC/NectisRTC.h"
+#include
+
+
+class NectisDriver : public NectisFlashROM, public NectisRTC {
+public:
+ NectisDriver();
+ ~NectisDriver();
+};
diff --git a/libraries/NectisDriver_LibForArduino/src/RTC/NectisRTC.cpp b/libraries/NectisDriver_LibForArduino/src/RTC/NectisRTC.cpp
new file mode 100644
index 000000000..8083f063d
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/src/RTC/NectisRTC.cpp
@@ -0,0 +1,319 @@
+#include "NectisRTC.h"
+#include "Wire.h"
+
+#include
+#include
+
+//INTERNAL_ADDRESS = INTERNAL_ADDRESS_SECOND_COUNTER_POS = 0b0000
+// Write
+// ROLE : | SLAVE_ADDRESS | R/W | INTERNAL_ADDRESS | TRANSFER_FORMAT | DATA |
+// SDA BIT : | 0 1 1 0 0 1 0 | 0 | 0 0 0 0 | 0 0 0 0 | — S40 S20 S10 S8 S4 S2 S1 |
+// SDA LINE: | 7 6 5 4 3 2 1 | 0 | 7 6 5 4 | 3 2 1 0 | 7 6 5 4 3 2 1 0 |
+
+// Read
+// ROLE : | SLAVE_ADDRESS | R/W | INTERNAL_ADDRESS | TRANSFER_FORMAT | SLAVE_ADDRESS | R/W | DATA |
+// SDA BIT : | 0 1 1 0 0 1 0 | 0 | 0 0 0 0 | 0 0 0 0 | 0 1 1 0 0 1 0 | 1 | — S40 S20 S10 S8 S4 S2 S1 |
+// SDA LINE: | 7 6 5 4 3 2 1 | 0 | 7 6 5 4 | 3 2 1 0 | 7 6 5 4 3 2 1 | 1 | 7 6 5 4 3 2 1 0 |
+
+
+constexpr uint8_t SLAVE_ADDRESS = 0b00110010; // 7bits
+constexpr uint8_t DATA_TRANSFER_BIT_HIGH = 0b00000001; // R/W bit
+constexpr uint8_t DATA_TRANSFER_BIT_LOW = 0b00000000; // R/W bit
+
+// To write data(seconds) to INTERNAL_ADDRESS_SECOND_COUNTER, use (INTERNAL_ADDRESS_SECOND_COUNTER | WRITE_TRANSFER_FORMAT).
+// When ALARM is enabled, INTRB pin is HIGH in every set counter.
+constexpr uint8_t TRANSFER_FORMAT = 0x00;
+
+constexpr uint8_t INTERNAL_ADDRESS_SECOND_COUNTER_POS = 0x00;
+constexpr uint8_t INTERNAL_ADDRESS_MINUTE_COUNTER_POS = 0x10;
+constexpr uint8_t INTERNAL_ADDRESS_HOUR_COUNTER_POS = 0x20;
+constexpr uint8_t INTERNAL_ADDRESS_DAYOFWEEK_COUNTER_POS = 0x30;
+constexpr uint8_t INTERNAL_ADDRESS_DAY_COUNTER_POS = 0x40;
+constexpr uint8_t INTERNAL_ADDRESS_MONTH_COUNTER_POS = 0x50;
+constexpr uint8_t INTERNAL_ADDRESS_YEAR_COUNTER_POS = 0x60;
+
+constexpr uint8_t INTERNAL_ADDRESS_MINUTE_ALARM_POS = 0x80;
+constexpr uint8_t INTERNAL_ADDRESS_HOUR_ALARM_POS = 0x90;
+constexpr uint8_t INTERNAL_ADDRESS_DAYOFWEEK_ALARM_POS = 0xA0;
+
+// 曜日レジスタのAW0からAW6は、曜日カウンタ (W4, W2, W1) = (0, 0, 0) ~ (1, 1, 0) に対応します。
+// DATA_DAYOFWEEK_COUNTER: (SUN, MON, TUE, WED, THU, FRI, SAT) = (0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7)
+// DATA_DAYOFWEEK_ALARM: (SUN, MON, TUE, WED, THU, FRI, SAT) = (1<<0, 1<<1, 1<<2, 1<<3, 1<<4, 1<<5, 1<<6)
+//
+//constexpr uint8_t DATA_SECOND_COUNTER (— S40 S20 S10 S8 S4 S2 S1)
+//constexpr uint8_t DATA_MINUTE_COUNTER (— M40 M20 M10 M8 M4 M2 M1)
+//constexpr uint8_t DATA_HOUR_COUNTER (— — H20 H10 H8 H4 H2 H1)
+//constexpr uint8_t DATA_DAYOFWEEK_COUNTER (— — — — — W4 W2 W1)
+//constexpr uint8_t DATA_DAY_COUNTER (— — D20 D10 D8 D4 D2 D1)
+//constexpr uint8_t DATA_MONTH_COUNTER (— — — MO10 MO8 MO4 MO2 MO1)
+//constexpr uint8_t DATA_YEAR_COUNTER (Y80 Y40 Y20 Y10 Y8 Y4 Y2 Y1)
+//
+//constexpr uint8_t DATA_MINUTE_ALARM (— AM40 AM20 AM10 AM8 AM4 AM2 AM1)
+//constexpr uint8_t DATA_HOUR_ALARM (— - AH20 AH10 AH8 AH4 AH2 AH1)
+//constexpr uint8_t DATA_DAYOFWEEK_ALARM (— AW6 AW5 AW4 AW3 AW2 AW1 AW0)
+
+constexpr uint8_t INTERNAL_ADDRESS_CONTROL_REGISTER1_POS = 0xE0;
+// アラームを発生させたい時間を設定した後に、イネーブルをオンにします。
+// Set the constant interrupt: in every one SECOND/MINUTE/HOUR/MONTH
+constexpr uint8_t DATA_REGISTER1_MASK = 0xFF;
+constexpr uint8_t DATA_REGISTER1_CONSTANT_INTERRUPT_SECOND = 0b00000100;
+constexpr uint8_t DATA_REGISTER1_CONSTANT_INTERRUPT_MINUTE = 0b00000101;
+constexpr uint8_t DATA_REGISTER1_CONSTANT_INTERRUPT_HOUR = 0b00000110;
+constexpr uint8_t DATA_REGISTER1_CONSTANT_INTERRUPT_MONTH = 0b00000111;
+constexpr uint8_t DATA_REGISTER1_ENABLE_ALARM = 0b10000000;
+constexpr uint8_t DATA_REGISTER1_DISABLE_ALARM_MASK = 0b10000000;
+
+constexpr uint8_t INTERNAL_ADDRESS_CONTROL_REGISTER2_POS = 0xF0;
+constexpr uint8_t DATA_REGISTER2_24HOUR_CLOCK = 0b00100000;
+
+TwoWire RtcWire(NRF_TWIM0, NRF_TWIS0, SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQn, RTC_I2C_SDA, RTC_I2C_SCL);
+
+
+NectisRTC::NectisRTC() {
+ _RtcWire = &RtcWire;
+}
+
+/*
+ * Helper functions
+ */
+uint16_t NectisRTC::ConvertBcdToDecimal(uint16_t bcd) {
+ // 0 <= bcd <= 99
+ // このRTCは、2019年を表したい場合、19をINTERNAL_ADDRESS_YEAR_COUNTER_POSにセットする。
+ // Input : 0001 1001
+ // Output: 1 9
+ uint8_t DecimalOnesPlace = bcd & 0x0F;
+ uint8_t DecimalTensPlace = (bcd >> 4) & 0x0F;
+
+// Serial.printf("DecimalTensPlace: %u\n", DecimalTensPlace);
+// Serial.printf("DecimalOnesPlace: %u\n", DecimalOnesPlace);
+
+ uint16_t decimal = DecimalTensPlace * 10 + DecimalOnesPlace;
+
+ return decimal;
+}
+
+uint16_t NectisRTC::ConvertDecimalToBcd(uint16_t decimal) {
+ // 0 <= decimal <= 99
+ // このRTCは、2019年を表したい場合、19をINTERNAL_ADDRESS_YEAR_COUNTER_POSにセットする。
+ // Input : 1 9
+ // Output: 0001 1001
+ uint8_t BcdOnesPlace = (decimal % 10) & 0x0F;
+ uint8_t BcdTensPlace = uint16_t(decimal / 10) & 0x0F;
+
+// Serial.printf("BcdTensPlace: %01x\n", BcdTensPlace);
+// Serial.printf("BcdOnesPlace: %01x\n", BcdOnesPlace);
+
+ uint16_t bcd = (BcdTensPlace << 4) | BcdOnesPlace;
+
+ return bcd;
+}
+
+
+void NectisRTC::Write(uint8_t slaveAddress, const uint8_t* data, int dataSize) {
+ _RtcWire->beginTransmission(slaveAddress);
+ while (dataSize > 0) {
+ _RtcWire->write(*data++);
+ dataSize--;
+ }
+ _RtcWire->endTransmission(true);
+}
+
+int NectisRTC::Read(uint8_t slaveAddress, const uint8_t* slaveRegister, uint8_t* data, int dataSize) {
+ int tmpReadSize = dataSize;
+
+ _RtcWire->beginTransmission(slaveAddress);
+ while (dataSize > 0) {
+ _RtcWire->write(*slaveRegister);
+ dataSize--;
+ }
+ _RtcWire->endTransmission(false);
+
+ auto readSize = _RtcWire->requestFrom(slaveAddress, tmpReadSize);
+
+ while (readSize > 0) {
+ *data++ = _RtcWire->read();
+ readSize--;
+ }
+ _RtcWire->endTransmission(true);
+
+ return readSize;
+}
+
+void NectisRTC::WriteReg8(uint8_t slaveAddress, uint8_t reg, uint8_t data) {
+ uint8_t writeData[2];
+ writeData[0] = reg;
+ writeData[1] = data;
+
+ Write(slaveAddress, writeData, sizeof(writeData));
+}
+
+int NectisRTC::ReadReg8(uint8_t slaveAddress, uint8_t reg, uint8_t* data) {
+ uint8_t writeData[1];
+ writeData[0] = reg;
+
+ return Read(slaveAddress, writeData, data, 1);
+}
+
+
+void NectisRTC::RtcBegin() {
+ _RtcWire->begin();
+}
+
+void NectisRTC::RtcEnd() {
+ _RtcWire->end();
+}
+
+/*
+ * Initialize RTC
+ */
+void NectisRTC::RtcInit() {
+ uint8_t slaveAddress = SLAVE_ADDRESS | DATA_TRANSFER_BIT_LOW;
+ const uint8_t resetBits = 0x00;
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_CONTROL_REGISTER1_POS | TRANSFER_FORMAT, resetBits);
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_CONTROL_REGISTER2_POS | TRANSFER_FORMAT, resetBits);
+}
+
+
+// RTCを24時間モードで動作させるか、12時間モードで動作させるかを選択する。
+void NectisRTC::Rtc24HourDisplay() {
+ uint8_t slaveAddress = SLAVE_ADDRESS | DATA_TRANSFER_BIT_LOW;
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_CONTROL_REGISTER2_POS | TRANSFER_FORMAT, DATA_REGISTER2_24HOUR_CLOCK);
+}
+
+// このメソッドを呼ぶ前後で、現在時刻をBG96から取得するために、 BG96の電源のOn/Off と UARTの有効化/無効化 が必要である。
+void NectisRTC::RtcSetCurrentTime(struct tm *currentTime) {
+ Serial.println("### Get the current time from BG96.");
+
+
+ // // Get the current time.
+ // struct tm currentTime;
+ // char currentTimeStr[64];
+
+ // GetCurrentTime(¤tTime, true);
+ // strftime(currentTimeStr, sizeof(currentTimeStr), "%y/%m/%d %H:%M:%S %w", ¤tTime);
+
+ char currentTimeStr[64];
+ strftime(currentTimeStr, sizeof(currentTimeStr), "%y/%m/%d %H:%M:%S %w", currentTime);
+
+
+
+// Serial.printf("tm_year: %d\n", (currentTime->tm_year - 100));
+// Serial.printf("tm_mon: %d\n", (currentTime->tm_mon + 1));
+// Serial.printf("tm_mday: %d\n", currentTime->tm_mday);
+// Serial.printf("tm_hour: %d\n", currentTime->tm_hour);
+// Serial.printf("tm_min: %d\n", currentTime->tm_min);
+// Serial.printf("tm_sec: %d\n", currentTime->tm_sec);
+// Serial.printf("tm_wday: %d\n", currentTime->tm_wday);
+
+ uint8_t slaveAddress = SLAVE_ADDRESS | DATA_TRANSFER_BIT_LOW;
+
+ // tim->tm_year = atoi(¶meter[1]) - 1900
+ // tim->tm_mon = atoi(¶meter[6]) - 1
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_SECOND_COUNTER_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(currentTime->tm_sec));
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_MINUTE_COUNTER_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(currentTime->tm_min));
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_HOUR_COUNTER_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(currentTime->tm_hour));
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_DAY_COUNTER_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(currentTime->tm_mday));
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_MONTH_COUNTER_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(currentTime->tm_mon + 1));
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_YEAR_COUNTER_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(currentTime->tm_year - 100));
+
+ // const uint8_t DATA_DAYOFWEEK_COUNTER (— — — — — W4 W2 W1)
+ // DATA_DAYOFWEEK_COUNTER: SUN=0, MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_DAYOFWEEK_COUNTER_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(currentTime->tm_wday));
+
+ Serial.print("JST=");
+ Serial.println(currentTimeStr);
+
+ Serial.println("### Set the current time to RTC.");
+}
+
+void NectisRTC::RtcPrintCalender() {
+ uint8_t slaveAddress = SLAVE_ADDRESS | DATA_TRANSFER_BIT_LOW;
+
+ // calender = [year, month, day, hour, minute, second, dayofweek]
+ uint8_t calender[8];
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_YEAR_COUNTER_POS | TRANSFER_FORMAT, &calender[0]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_MONTH_COUNTER_POS | TRANSFER_FORMAT, &calender[1]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_DAY_COUNTER_POS | TRANSFER_FORMAT, &calender[2]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_HOUR_COUNTER_POS | TRANSFER_FORMAT, &calender[3]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_MINUTE_COUNTER_POS | TRANSFER_FORMAT, &calender[4]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_SECOND_COUNTER_POS | TRANSFER_FORMAT, &calender[5]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_DAYOFWEEK_COUNTER_POS | TRANSFER_FORMAT, &calender[6]);
+
+ Serial.printf("Set Calender: 20%02d/%02d/%02d %02d:%02d:%02d %02d\n",
+ ConvertBcdToDecimal(calender[0]), ConvertBcdToDecimal(calender[1]), ConvertBcdToDecimal(calender[2]),
+ ConvertBcdToDecimal(calender[3]), ConvertBcdToDecimal(calender[4]), ConvertBcdToDecimal(calender[5]),
+ ConvertBcdToDecimal(calender[6])
+ );
+}
+
+void NectisRTC::RtcReadCalender(uint8_t calenderDecimal[7]) {
+ uint8_t calender[7];
+
+ uint8_t slaveAddress = SLAVE_ADDRESS | DATA_TRANSFER_BIT_LOW;
+
+ // calender = [year, month, day, hour, minute, second, dayofweek]
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_YEAR_COUNTER_POS | TRANSFER_FORMAT, &calender[0]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_MONTH_COUNTER_POS | TRANSFER_FORMAT, &calender[1]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_DAY_COUNTER_POS | TRANSFER_FORMAT, &calender[2]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_HOUR_COUNTER_POS | TRANSFER_FORMAT, &calender[3]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_MINUTE_COUNTER_POS | TRANSFER_FORMAT, &calender[4]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_SECOND_COUNTER_POS | TRANSFER_FORMAT, &calender[5]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_DAYOFWEEK_COUNTER_POS | TRANSFER_FORMAT, &calender[6]);
+
+ for (uint8_t i = 0; i < sizeof(calender); i++) {
+ calenderDecimal[i] = ConvertBcdToDecimal(calender[i]);
+ }
+}
+
+void NectisRTC::RtcSetAlarm(const char* tableTime[], uint16_t tableTimeSize, const uint8_t tableDayofweek) {
+ uint8_t slaveAddress = SLAVE_ADDRESS | DATA_TRANSFER_BIT_LOW;
+
+ for (int i = 0; i < tableTimeSize; i++) {
+ uint16_t alarmHour = uint16_t(((tableTime[i])[0] - 0x30) * 10 + ((tableTime[i])[1] - 0x30));
+ uint16_t alarmMinute = uint16_t(((tableTime[i])[3] - 0x30) * 10 + ((tableTime[i])[4] - 0x30));
+
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_HOUR_ALARM_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(alarmHour));
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_MINUTE_ALARM_POS | TRANSFER_FORMAT, ConvertDecimalToBcd(alarmMinute));
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_DAYOFWEEK_ALARM_POS | TRANSFER_FORMAT, tableDayofweek);
+ }
+ RtcEnableAlarm(slaveAddress);
+
+ delay(10);
+ uint8_t setAlarm[3];
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_HOUR_ALARM_POS | TRANSFER_FORMAT, &setAlarm[0]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_MINUTE_ALARM_POS | TRANSFER_FORMAT, &setAlarm[1]);
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_DAYOFWEEK_ALARM_POS | TRANSFER_FORMAT, &setAlarm[2]);
+ Serial.printf("### Alarm set: %02u:%02u %01x\n", ConvertBcdToDecimal(setAlarm[0]), ConvertBcdToDecimal(setAlarm[1]), ConvertBcdToDecimal(setAlarm[2]));
+}
+
+void NectisRTC::RtcEnableAlarm(uint8_t slaveAddress) {
+ uint8_t slaveRegister = INTERNAL_ADDRESS_CONTROL_REGISTER1_POS | TRANSFER_FORMAT;
+ uint8_t data = DATA_REGISTER1_ENABLE_ALARM;
+
+ WriteReg8(slaveAddress, slaveRegister, data);
+}
+
+void NectisRTC::RtcSetConstantInterruptByEveryMinute() {
+ Serial.println("### Set the constant interrupt by every one minute.");
+ uint8_t slaveAddress = SLAVE_ADDRESS | DATA_TRANSFER_BIT_LOW;
+
+ uint8_t controlRegister1[1];
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_CONTROL_REGISTER1_POS | TRANSFER_FORMAT, &controlRegister1[0]);
+ uint8_t controlRegister1DisableAlarm = controlRegister1[0] ^ DATA_REGISTER1_DISABLE_ALARM_MASK;
+
+ uint8_t constantInterruptByEveryMinute = DATA_REGISTER1_CONSTANT_INTERRUPT_MINUTE | controlRegister1DisableAlarm;
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_CONTROL_REGISTER1_POS | TRANSFER_FORMAT, constantInterruptByEveryMinute);
+}
+
+void NectisRTC::RtcSetConstantInterruptByEveryHour() {
+ Serial.println("### Set the constant interrupt by every one hour.");
+ uint8_t slaveAddress = SLAVE_ADDRESS | DATA_TRANSFER_BIT_LOW;
+
+ uint8_t controlRegister1[1];
+ ReadReg8(slaveAddress, INTERNAL_ADDRESS_CONTROL_REGISTER1_POS | TRANSFER_FORMAT, &controlRegister1[0]);
+ uint8_t controlRegister1DisableAlarm = controlRegister1[0] ^ DATA_REGISTER1_DISABLE_ALARM_MASK;
+
+ uint8_t constantInterruptByEveryMinute = DATA_REGISTER1_CONSTANT_INTERRUPT_HOUR | controlRegister1DisableAlarm;
+
+ WriteReg8(slaveAddress, INTERNAL_ADDRESS_CONTROL_REGISTER1_POS | TRANSFER_FORMAT, constantInterruptByEveryMinute);
+}
diff --git a/libraries/NectisDriver_LibForArduino/src/RTC/NectisRTC.h b/libraries/NectisDriver_LibForArduino/src/RTC/NectisRTC.h
new file mode 100644
index 000000000..62569a96b
--- /dev/null
+++ b/libraries/NectisDriver_LibForArduino/src/RTC/NectisRTC.h
@@ -0,0 +1,40 @@
+#pragma once
+
+#include
+
+
+class TwoWire;
+
+class NectisRTC {
+private:
+ TwoWire* _RtcWire;
+
+private:
+ bool isCurrentTimeSet;
+
+ void Write(uint8_t slaveAddress, const uint8_t* data, int dataSize);
+ int Read(uint8_t slaveAddress, const uint8_t* slaveRegister, uint8_t* data, int dataSize);
+ void WriteReg8(uint8_t slaveAddress, uint8_t reg, uint8_t data);
+ int ReadReg8(uint8_t slaveAddress, uint8_t reg, uint8_t* data);
+
+ uint16_t ConvertBcdToDecimal(uint16_t bcd);
+ uint16_t ConvertDecimalToBcd(uint16_t decimal);
+
+public:
+ NectisRTC();
+
+ void RtcBegin();
+ void RtcEnd();
+ void RtcInit();
+
+ void Rtc24HourDisplay();
+ void RtcSetCurrentTime(struct tm *currentTime);
+ void RtcPrintCalender();
+ void RtcReadCalender(uint8_t calender[7]);
+
+ void RtcSetAlarm(const char* tableTime[], uint16_t tableTimeSize, const uint8_t tableDayofweek);
+ void RtcEnableAlarm(uint8_t slaveAddress);
+ void RtcSetConstantInterruptByEveryMinute();
+ void RtcSetConstantInterruptByEveryHour();
+};
+
diff --git a/libraries/NectisMcu_LibForArduino/examples/ArduinoIDESerialMonitor/ArduinoIDESerialMonitor.ino b/libraries/NectisMcu_LibForArduino/examples/ArduinoIDESerialMonitor/ArduinoIDESerialMonitor.ino
new file mode 100644
index 000000000..e4510167f
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/examples/ArduinoIDESerialMonitor/ArduinoIDESerialMonitor.ino
@@ -0,0 +1,79 @@
+constexpr uint8_t INPUT_BUFFER_SIZE = 64;
+int input[INPUT_BUFFER_SIZE];
+uint8_t inputSize;
+
+
+void WaitForInput() {
+ Serial.println("### Please input number");
+}
+
+void ClearBuffer() {
+ memset(input, 0x00, INPUT_BUFFER_SIZE);
+}
+
+void InitVariables() {
+ inputSize = 0;
+}
+
+void PrintInput(int *buf) {
+ for (uint8_t i = 0; i < inputSize; i++) {
+ Serial.printf("%c", input[i]);
+ }
+ Serial.println();
+}
+
+
+void setup() {
+ Serial.begin(115200);
+ ClearBuffer();
+ InitVariables();
+
+ delay(4000);
+ Serial.println("");
+ Serial.println("--- START ---------------------------------------------------");
+
+ WaitForInput();
+}
+
+void loop() {
+ while (Serial.available() > 0) {
+ int inputInt = Serial.read();
+ input[inputSize++] = inputInt;
+
+ // After Serial.read(), Serial.available() is subtracted by 1.
+ /*
+ Serial.print(inputInt);
+ Serial.print(" ");
+ Serial.print(inputInt, HEX);
+ Serial.print(" ");
+ Serial.printf("%c\n", inputInt);
+ */
+
+ if (inputSize == INPUT_BUFFER_SIZE - 1) {
+ PrintInput(&input[0]);
+ delay(10);
+ ClearBuffer();
+ InitVariables();
+ }
+
+ /*
+ Please select "CR and LF" on the serial monitor of ArduinoIDE
+ if (Serial.available() == 1) then Serial.read() = CR
+ if (Serial.available() == 0) then Serial.read() = LF
+ */
+
+ if (Serial.available() == 2) {
+ PrintInput(&input[0]);
+ delay(10);
+ ClearBuffer();
+ InitVariables();
+
+ Serial.read();
+ Serial.read();
+
+ WaitForInput();
+ }
+
+ delay(1);
+ }
+}
diff --git a/libraries/NectisMcu_LibForArduino/examples/SoftReset/SoftReset.ino b/libraries/NectisMcu_LibForArduino/examples/SoftReset/SoftReset.ino
new file mode 100644
index 000000000..458c37c71
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/examples/SoftReset/SoftReset.ino
@@ -0,0 +1,35 @@
+#include "NectisCellularBG96.h"
+#include "NectisMcu.h"
+
+NectisCellularBG96 BG96;
+
+#define PIN_SOFT_RESET_ENABLE GROVE_ANALOG_1_1
+
+
+void setup() {
+ Serial.begin(115200);
+ delay(4000);
+ Serial.print("");
+ Serial.println("--- START ---------------------------------------------------");
+
+ mcu::InitMcu();
+
+ BG96.Begin();
+ BG96.InitLteM();
+
+ pinMode(PIN_SOFT_RESET_ENABLE, INPUT);
+
+ Serial.println("### Setup completed.");
+}
+
+void loop() {
+ int buttonState = digitalRead(PIN_SOFT_RESET_ENABLE);
+ bool isRequestedToSoftReset = (buttonState == 1);
+
+ if (isRequestedToSoftReset) {
+ Serial.println("### Soft Reset");
+ delay(1000);
+
+ mcu::SoftReset();
+ }
+}
diff --git a/libraries/NectisMcu_LibForArduino/examples/Watchdog/Watchdog.ino b/libraries/NectisMcu_LibForArduino/examples/Watchdog/Watchdog.ino
new file mode 100644
index 000000000..f0ddd927d
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/examples/Watchdog/Watchdog.ino
@@ -0,0 +1,61 @@
+#include "NectisMcu.h"
+#include "Stopwatch.h"
+
+#define PIN_FEEDING_WDT GROVE_ANALOG_1_1
+
+Stopwatch sw;
+constexpr uint32_t wdtTimeoutSec = 30;
+uint16_t elapsedSeconds;
+
+
+void InitPins() {
+ pinMode(PIN_FEEDING_WDT, INPUT);
+}
+
+void InitTimer() {
+ sw.Restart();
+ elapsedSeconds = 0;
+}
+
+void setup() {
+ Serial.begin(115200);
+ delay(4000);
+ Serial.print("");
+ Serial.println("--- START ---------------------------------------------------");
+
+ mcu::InitMcu();
+ InitPins();
+
+ // Initialize the watchdog timer.
+ mcu::WatchdogTimerInit(wdtTimeoutSec);
+
+ InitTimer();
+
+ Serial.println("### Setup complete.");
+}
+
+void loop() {
+ mcu::TurnOnOffGreenLed(false);
+
+ if ( (uint16_t)(sw.ElapsedMilliseconds() / 1000) - elapsedSeconds == 1 ) {
+ elapsedSeconds++;
+ Serial.printf("Elapsedtime[s]=%u\n", elapsedSeconds);
+ }
+
+ uint8_t buttonState = digitalRead(PIN_FEEDING_WDT);
+ bool isRequestedToFeed = (buttonState == 1);
+
+ // Reload the watchdog timer.
+ if (isRequestedToFeed) {
+ mcu::TurnOnOffGreenLed(true);
+
+ // 連続でボタンが押下されたと認識されないようにするため
+ delay(250);
+
+ mcu::ReloadWatchdogTimer();
+
+ mcu::TurnOnOffGreenLed(false);
+
+ InitTimer();
+ }
+}
diff --git a/libraries/NectisMcu_LibForArduino/library.properties b/libraries/NectisMcu_LibForArduino/library.properties
new file mode 100644
index 000000000..92dc39974
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/library.properties
@@ -0,0 +1,10 @@
+name=Nectis nRF52840 MCU Library
+version=0.0.1
+author=CAMI&Co.
+maintainer=CAMI&Co.
+sentence=Arduino library for nRF52840 MCU
+paragraph=Arduino library for nRF52840 MCU
+category=Communication
+url=https://github.com/cami/NectisFirmware-nRF52840
+architectures=*
+includes=NectisMcu.h, NectisUtils.h, Stopwatch.h
diff --git a/libraries/NectisMcu_LibForArduino/src/NectisConfig.h b/libraries/NectisMcu_LibForArduino/src/NectisConfig.h
new file mode 100644
index 000000000..82531fd67
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/src/NectisConfig.h
@@ -0,0 +1,11 @@
+#pragma once
+
+
+// CFG_DEBUG == 0 => (Release)
+// CFG_DEBUG == 1 => (Error Message)
+// CFG_DEBUG == 2 => (Full Debug)
+// CFG_DEBUG == 3 => (Segger SystemView)
+
+#if CFG_DEBUG >= 2
+ #define NECTIS_DEBUG
+#endif //CFG_DEBUG
diff --git a/libraries/NectisMcu_LibForArduino/src/NectisDebug.cpp b/libraries/NectisMcu_LibForArduino/src/NectisDebug.cpp
new file mode 100644
index 000000000..cd62c74fc
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/src/NectisDebug.cpp
@@ -0,0 +1,15 @@
+#include "NectisDebug.h"
+#include "Uart.h"
+
+#ifdef NECTIS_DEBUG
+
+void NectisDebug::Print(const char *str) {
+ Serial.print(str);
+}
+
+void NectisDebug::Println(const char *str) {
+ Print(str);
+ Print("\r\n");
+}
+
+#endif // NECTIS_DEBUG
diff --git a/libraries/NectisMcu_LibForArduino/src/NectisDebug.h b/libraries/NectisMcu_LibForArduino/src/NectisDebug.h
new file mode 100644
index 000000000..71ec73654
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/src/NectisDebug.h
@@ -0,0 +1,22 @@
+#pragma once
+
+#include "NectisConfig.h"
+
+#ifdef NECTIS_DEBUG
+
+#define NECTIS_DEBUG_PRINT(str) NectisDebug::Print(str)
+#define NECTIS_DEBUG_PRINTLN(str) NectisDebug::Println(str)
+
+class NectisDebug
+{
+public:
+ static void Print(const char* str);
+ static void Println(const char* str);
+};
+
+#else
+
+#define NECTIS_DEBUG_PRINT(str)
+#define NECTIS_DEBUG_PRINTLN(str)
+
+#endif // NECTIS_DEBUG
diff --git a/libraries/NectisMcu_LibForArduino/src/NectisMcu.cpp b/libraries/NectisMcu_LibForArduino/src/NectisMcu.cpp
new file mode 100644
index 000000000..f01c13588
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/src/NectisMcu.cpp
@@ -0,0 +1,318 @@
+#include "NectisMcu.h"
+#include "NectisConfig.h"
+#include "NectisDebug.h"
+#include
+#include "nrf_power.h"
+
+
+#define DFU_MAGIC_RESET 0UL
+#define DFU_MAGIC_SERIAL_ONLY_RESET 0x4e
+#define DFU_MAGIC_UF2_RESET 0x57
+#define DFU_MAGIC_OTA_RESET 0xA8
+#define DFU_MAGIC_LTEM_RESET 0x64
+
+
+namespace mcu {
+
+/*
+ * GPIO pins on board
+ */
+void InitPins(void) {
+ ////////////////////
+ // Module
+
+ // Power Supply
+ pinMode(MODULE_PWR_PIN, OUTPUT); digitalWrite(MODULE_PWR_PIN, LOW);
+ // Turn On/Off
+ pinMode(MODULE_PWRKEY_PIN, OUTPUT); digitalWrite(MODULE_PWRKEY_PIN, LOW);
+ pinMode(MODULE_RESET_PIN, OUTPUT); digitalWrite(MODULE_RESET_PIN, LOW);
+ // Status Indication
+ pinMode(MODULE_STATUS_PIN, INPUT_PULLUP);
+ // Main SerialUART Interface
+ pinMode(MODULE_DTR_PIN, OUTPUT); digitalWrite(MODULE_DTR_PIN, LOW);
+
+ ////////////////////
+ // Led
+ pinMode(LED_RED, OUTPUT); digitalWrite(LED_RED, LOW);
+ pinMode(LED_BLUE, OUTPUT); digitalWrite(LED_BLUE, LOW);
+ ////////////////////
+
+ // AD Converter
+ pinMode(BATTERY_LEVEL_ENABLE_PIN, OUTPUT);
+
+ // Grove
+ pinMode(GROVE_VCCB_PIN, OUTPUT); digitalWrite(GROVE_VCCB_PIN, LOW);
+
+ // RTC
+ pinMode(RTC_INTRB, INPUT_PULLUP); digitalWrite(RTC_INTRB, HIGH);
+ pinMode(RTC_I2C_SDA, OUTPUT); digitalWrite(RTC_I2C_SDA, HIGH);
+}
+
+void PowerSupplyCellular(bool on) {
+ digitalWrite(MODULE_PWR_PIN, on ? HIGH : LOW);
+ delay(200);
+ digitalWrite(MODULE_PWRKEY_PIN, on ? HIGH : LOW);
+ delay(600);
+ digitalWrite(MODULE_PWRKEY_PIN, LOW);
+}
+
+void PowerSupplyGrove(bool on) {
+ digitalWrite(MODULE_PWR_PIN, on ? HIGH : LOW);
+ delay(100);
+ digitalWrite(GROVE_VCCB_PIN, on ? HIGH : LOW);
+}
+
+void InitMcu(void) {
+ ResetGpregretRegister();
+
+ Serial.println("### I/O Initialize.");
+ InitPins();
+ delay(100);
+
+ Serial.println("### Power supply cellular ON.");
+ PowerSupplyCellular(true);
+ delay(100);
+
+ Serial.println("### Power supply ON.");
+ // Make sure that the MODULE_PWR_PIN is set to HIGH.
+ PowerSupplyGrove(true);
+ delay(100);
+}
+
+/*
+ * USB to UART Serial
+ */
+void ClearSerialBuffer(void) {
+ Serial.flush();
+ delay(10);
+}
+
+/*
+ * Onboard LEDs
+ */
+void TurnOnOffRedLed(bool on) {
+ digitalWrite(LED_RED, on ? HIGH : LOW);
+}
+
+void TurnOnOffGreenLed(bool on) {
+ digitalWrite(LED_BLUE, on ? HIGH : LOW);
+}
+
+
+/*
+ * AD Converter
+ */
+float ReadVusb(void) {
+ float mv_per_lsb = 3600.0F / 1024.0F; // 10-bit ADC with 3.6V input range
+
+ int adcvalue = 0;
+ float battery_level_mv = 0;
+
+ // Get a fresh ADC value
+ adcvalue = analogRead(USB_VOLTAGE_PIN);
+ battery_level_mv = (float) adcvalue * mv_per_lsb;
+
+ return battery_level_mv;
+}
+
+float ReadVbat(void) {
+ constexpr float VBAT_MV_PER_LSB = 1.171875F; // 1.2V ADC range and 10-bit ADC resolution = 1200mV/1024
+ constexpr float VBAT_DIVIDER = 0.25F; // From IC: RP124N334E
+
+ digitalWrite(BATTERY_LEVEL_ENABLE_PIN, HIGH);
+
+ int adcvalue = 0;
+
+ // Set the analog reference to 1.2V (default = 3.6V)
+ analogReference(AR_INTERNAL_1_2);
+
+ // Set the resolution to 10-bit (0..1023)
+ analogReadResolution(10); // Can be 8, 10, 12 or 14
+
+ // Let the ADC settle
+ delay(100);
+
+ // Get the raw 10-bit, 0..1200mV ADC value
+ adcvalue = analogRead(PIN_BATTERY_VOLTAGE);
+ while ((adcvalue < 0) || (adcvalue > 1023)) {
+ adcvalue = analogRead(PIN_BATTERY_VOLTAGE);
+ }
+
+ // Serial.printf("adc_value=%d\n", adcvalue);
+
+ // Convert the raw value to compensated mv, taking the resistor-
+ // divider into account (providing the actual LIPO voltage)
+ float battery_voltage_mv = (float) adcvalue * VBAT_MV_PER_LSB * (1 / VBAT_DIVIDER);
+
+ // Set the ADC back to the default settings
+ analogReference(AR_DEFAULT);
+ analogReadResolution(10);
+
+ digitalWrite(BATTERY_LEVEL_ENABLE_PIN, LOW);
+
+ return battery_voltage_mv;
+}
+
+float mvToPercent(float mvolts) {
+ float battery_level;
+
+ // When mvolts drops to (3200mA * 102%), the power supply from the battery shut down.
+ // Therefore, 0% of the battery level is set to 3250mA.
+ if (mvolts >= 4150) {
+ battery_level = 100;
+ } else if (mvolts > 3750) {
+ battery_level = 100.0 * (1.0 - (4150 - mvolts) / 900);
+ } else if (mvolts > 3650) {
+ battery_level = 50;
+ } else if (mvolts > 3250) {
+ battery_level = 100.0 * (1.0 - (4150 - mvolts) / 900);
+ } else {
+ battery_level = 0;
+ }
+
+ return battery_level;
+}
+
+uint8_t GetBatteryLevel() {
+ // Battery Level
+ float LipoVoltageLevelMv = ReadVbat();
+ float LipoVoltageLevelPercentageFloat = mvToPercent(LipoVoltageLevelMv);
+ uint8_t LipoVoltageLevelPercentageUint = (uint8_t)(LipoVoltageLevelPercentageFloat + 0.5F);
+ return LipoVoltageLevelPercentageUint;
+}
+
+
+/*
+ * PWM
+ */
+void PwmSetup(int pin, uint8_t flash_interval) {
+ HwPWM0.addPin(pin);
+
+ // Enable PWM modules with 15-bit resolutions(max) but different clock div
+ HwPWM0.setResolution(15);
+ HwPWM0.setClockDiv(flash_interval);
+}
+
+void PwmBegin(void) {
+ HwPWM0.begin();
+}
+
+void PwmStop(void) {
+ HwPWM0.stop();
+}
+
+void PwmWritePin(int pin) {
+ const int maxValue = bit(15) - 1;
+
+ // fade in from min to max
+ for (int fadeValue = 0; fadeValue <= maxValue; fadeValue += 1024) {
+ // Write same value but inverted for Led Blue
+ HwPWM0.writePin(pin, fadeValue, false);
+
+ // wait for 30 milliseconds to see the dimming effect
+ delay(30);
+ }
+
+ // fade out from max to min
+ for (int fadeValue = maxValue; fadeValue >= 0; fadeValue -= 1024) {
+ // Write same value but inverted for Led Blue
+ HwPWM0.writePin(pin, fadeValue, false);
+
+ // wait for 30 milliseconds to see the dimming effect
+ delay(30);
+ }
+}
+
+
+/*
+ * Clear the register
+ */
+void ResetGpregretRegister(void) {
+ nrf_power_gpregret_set(DFU_MAGIC_RESET);
+}
+
+/*
+ * Software reset
+ */
+void SoftReset(void) {
+ NVIC_SystemReset();
+}
+
+
+/*
+ * Deep Sleep Mode
+ */
+void DisableAllPeripherals(void) {
+ // Disable the peripherals.
+ NRF_UART0->ENABLE = UART_ENABLE_ENABLE_Disabled << UART_ENABLE_ENABLE_Pos;
+ NRF_UARTE0->ENABLE = UART_ENABLE_ENABLE_Disabled << UART_ENABLE_ENABLE_Pos;
+ NRF_UARTE1->ENABLE = UART_ENABLE_ENABLE_Disabled << UART_ENABLE_ENABLE_Pos;
+
+ NRF_SAADC->ENABLE = SAADC_ENABLE_ENABLE_Disabled << SAADC_ENABLE_ENABLE_Pos;
+
+ NRF_PWM0->ENABLE = PWM_ENABLE_ENABLE_Disabled << PWM_ENABLE_ENABLE_Pos;
+ NRF_PWM1->ENABLE = PWM_ENABLE_ENABLE_Disabled << PWM_ENABLE_ENABLE_Pos;
+ NRF_PWM2->ENABLE = PWM_ENABLE_ENABLE_Disabled << PWM_ENABLE_ENABLE_Pos;
+
+ NRF_TWI0->ENABLE = TWI_ENABLE_ENABLE_Disabled << TWI_ENABLE_ENABLE_Pos;
+ NRF_TWI1->ENABLE = TWI_ENABLE_ENABLE_Disabled << TWI_ENABLE_ENABLE_Pos;
+
+ NRF_SPI0->ENABLE = SPI_ENABLE_ENABLE_Disabled << SPI_ENABLE_ENABLE_Pos;
+ NRF_SPI1->ENABLE = SPI_ENABLE_ENABLE_Disabled << SPI_ENABLE_ENABLE_Pos;
+ NRF_SPI2->ENABLE = SPI_ENABLE_ENABLE_Disabled << SPI_ENABLE_ENABLE_Pos;
+
+ NRF_QSPI->ENABLE = QSPI_ENABLE_ENABLE_Disabled << QSPI_ENABLE_ENABLE_Pos;
+
+ NRF_NFCT->TASKS_DISABLE = 0x1UL << NFCT_TASKS_DISABLE_TASKS_DISABLE_Pos;
+ NRF_RADIO->TASKS_DISABLE = 0x1UL << RADIO_TASKS_DISABLE_TASKS_DISABLE_Pos;
+}
+
+// In nRF52832, P0 is GPIO PORT 0, which implements pin 0-31.
+// nRF52840 also implements P1, for the additional GPIO pins (P1.00 - P1.15).
+// https://devzone.nordicsemi.com/f/nordic-q-a/19198/what-is-nrf_p0-in-the-sdk_path-components-drivers_nrf-hal-nrf_gpio-h/74367#74367
+// RTC_INTRB pin is SIO09, which is also P0.09. Therefore we use RTC_INTRB pin as NRF_P0.
+void ConfigForDeepSleepWakeup(void) {
+// NRF_GPIO_Type* rtcPort = RTC_INTRB;
+ NRF_P0->PIN_CNF[RTC_INTRB] =
+ (GPIO_PIN_CNF_SENSE_Low << GPIO_PIN_CNF_SENSE_Pos) |
+ (GPIO_DETECTMODE_DETECTMODE_Default << GPIO_DETECTMODE_DETECTMODE_Pos) |
+ (GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos) |
+ (GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos) |
+ (GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos);
+}
+
+void EnterSystemOffDeepSleep(void) {
+ NRF_POWER->SYSTEMOFF = POWER_SYSTEMOFF_SYSTEMOFF_Enter << POWER_SYSTEMOFF_SYSTEMOFF_Pos;
+}
+
+void EnterCpuWfiWfeSleep(void) {
+ // CPU enters WFI/WFE sleep.
+ // Dont call this method when you use RTC, because this prevents CPU to wake up by the RTC.
+ NRF_POWER->EVENTS_SLEEPENTER = POWER_EVENTS_SLEEPENTER_EVENTS_SLEEPENTER_Generated << POWER_EVENTS_SLEEPENTER_EVENTS_SLEEPENTER_Pos;
+}
+
+void ExitCpuWfiWfeSleep(void) {
+ NRF_POWER->EVENTS_SLEEPEXIT = POWER_EVENTS_SLEEPEXIT_EVENTS_SLEEPEXIT_Generated << POWER_EVENTS_SLEEPEXIT_EVENTS_SLEEPEXIT_Pos;
+}
+
+
+/*
+ * WathcDog
+ */
+void WatchdogTimerInit(const int wdtTimeoutSec) {
+ // Configure Watchdog. a) Pause watchdog while the CPU is halted by the debugger. b) Keep the watchdog running while the CPU is sleeping.
+ NRF_WDT->CONFIG = (WDT_CONFIG_HALT_Pause << WDT_CONFIG_HALT_Pos) | (WDT_CONFIG_SLEEP_Run << WDT_CONFIG_SLEEP_Pos);
+ // timeout [s] = ( CRV + 1 ) / 32768
+ NRF_WDT->CRV = wdtTimeoutSec * 32768;
+ // Enable reload register 0
+ NRF_WDT->RREN |= WDT_RREN_RR0_Msk;
+ // Start the Watchdog timer
+ NRF_WDT->TASKS_START = 1;
+}
+
+void ReloadWatchdogTimer(void) {
+ NRF_WDT->RR[0] = WDT_RR_RR_Reload;
+ NRF_WDT->TASKS_START = 1;
+}
+
+} // namespace mcu
\ No newline at end of file
diff --git a/libraries/NectisMcu_LibForArduino/src/NectisMcu.h b/libraries/NectisMcu_LibForArduino/src/NectisMcu.h
new file mode 100644
index 000000000..3b891e169
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/src/NectisMcu.h
@@ -0,0 +1,35 @@
+#pragma once
+#include
+
+namespace mcu {
+ void InitPins(void);
+ void PowerSupplyCellular(bool);
+ void PowerSupplyGrove(bool);
+ void InitMcu(void);
+ void ClearSerialBuffer(void);
+
+ void TurnOnOffRedLed(bool);
+ void TurnOnOffGreenLed(bool);
+
+ float ReadVusb(void);
+ float ReadVbat(void);
+ float mvToPercent(float);
+ uint8_t GetBatteryLevel();
+
+ void PwmSetup(int, uint8_t);
+ void PwmBegin(void);
+ void PwmStop(void);
+ void PwmWritePin(int);
+
+ void ResetGpregretRegister(void);
+ void SoftReset(void);
+
+ void DisableAllPeripherals(void);
+ void ConfigForDeepSleepWakeup(void);
+ void EnterSystemOffDeepSleep(void);
+ void EnterCpuWfiWfeSleep(void);
+ void ExitCpuWfiWfeSleep(void);
+
+ void WatchdogTimerInit(const int);
+ void ReloadWatchdogTimer(void);
+}
diff --git a/libraries/NectisMcu_LibForArduino/src/NectisUtils.cpp b/libraries/NectisMcu_LibForArduino/src/NectisUtils.cpp
new file mode 100644
index 000000000..4c68d891d
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/src/NectisUtils.cpp
@@ -0,0 +1,143 @@
+#include "NectisUtils.h"
+#include
+
+
+namespace nectis_utils {
+
+char hexConvertedFromDecimal[16];
+char hexConvertedFromFloat[sizeof(float) + 1];
+
+
+/*
+ * Helper functions
+ */
+char *ConvertUint8DecimalToHex(uint8_t decimal, int byte_size) {
+ // The last index of post_data is filled with 0x00 for print function.
+ memset(&hexConvertedFromDecimal[0], 0x00, sizeof(hexConvertedFromDecimal));
+
+ for (int i = 0; i < byte_size; i++) {
+ // 16進数に変換し、1バイトずつ配列を埋めていく
+ hexConvertedFromDecimal[i] = (decimal >> (8 * ((byte_size - 1) - i))) & 0xff;
+ }
+ return &hexConvertedFromDecimal[0];
+}
+
+char *ConvertUint16DecimalToHex(uint16_t decimal, int byte_size) {
+ // The last index of post_data is filled with 0x00 for print function.
+ memset(&hexConvertedFromDecimal[0], 0x00, sizeof(hexConvertedFromDecimal));
+
+ for (int i = 0; i < byte_size; i++) {
+ // 16進数に変換し、1バイトずつ配列を埋めていく
+ hexConvertedFromDecimal[i] = (decimal >> (8 * ((byte_size - 1) - i))) & 0xff;
+ }
+ return &hexConvertedFromDecimal[0];
+}
+
+char *ConvertUint32DecimalToHex(uint32_t decimal, int byte_size) {
+ // The last index of post_data is filled with 0x00 for print function.
+ memset(&hexConvertedFromDecimal[0], 0x00, sizeof(hexConvertedFromDecimal));
+
+ for (int i = 0; i < byte_size; i++) {
+ // 16進数に変換し、1バイトずつ配列を埋めていく
+ hexConvertedFromDecimal[i] = (decimal >> (8 * ((byte_size - 1) - i))) & 0xff;
+ }
+ return &hexConvertedFromDecimal[0];
+}
+
+char *ConvertIntDecimalToHex(int decimal, int byte_size) {
+ // The last index of post_data is filled with 0x00 for print function.
+ memset(&hexConvertedFromDecimal[0], 0x00, sizeof(hexConvertedFromDecimal));
+
+ for (int i = 0; i < byte_size; i++) {
+ // 16進数に変換し、1バイトずつ配列を埋めていく
+ hexConvertedFromDecimal[i] = (decimal >> (8 * ((byte_size - 1) - i))) & 0xff;
+ }
+ return &hexConvertedFromDecimal[0];
+}
+
+char *ConvertFloatDecimalToHex(float const decimal, int byte_size) {
+ // The last index of post_data is filled with 0x00 for print function.
+ memset(&hexConvertedFromFloat[0], 0x00, sizeof(hexConvertedFromFloat));
+ // Serial.printf("ConvertDecimalToHex decimal: %u\n", decimal);
+
+ union {
+ float decimalFloat;
+ int decimalInt;
+ } bit;
+ bit.decimalFloat = decimal;
+
+ /* float型(32ビット)の内部構造(IEEE754)
+ * 符号(sign) : 1ビット目
+ * 指数部(exponent) : 2ビット目〜9ビット目
+ * 仮数部(mantissa) : 10ビット目〜32ビット目
+ */
+ // uint8_t signSize = 1;
+ // uint8_t exponentSize = 8;
+ // uint8_t mantissaSize = 23;
+ // uint8_t floatBitSize = signSize + exponentSize + mantissaSize;
+
+ for (uint8_t i = 0; i < sizeof(float); i++) {
+ // 16進数に変換し、1バイトずつ配列を埋めていく
+ hexConvertedFromFloat[i] = (bit.decimalInt >> (8 * ((sizeof(float) - 1) - i))) & 0xff;
+ }
+
+ return &hexConvertedFromFloat[0];
+}
+
+unsigned int GetDataDigits(unsigned int data) {
+ // Copy the original data to calculate digits in order not to affect the original value.
+ unsigned int data_to_calc_digit = data;
+ unsigned int data_digit_hex = 0;
+
+ if (data_to_calc_digit == 0) {
+ data_digit_hex = 1;
+ }
+
+ // Calculating the digits of data in hexadecimal.
+ // 2 digits = 1 byte
+ // Calculating the bytes of the post data
+ while (data_to_calc_digit != 0) {
+ data_to_calc_digit /= 16;
+ data_digit_hex++;
+ }
+ unsigned int size_of_post_data = (int)(ceil((double) data_digit_hex / 2));
+
+ return size_of_post_data;
+}
+
+char *ConvertIntoBinary(char *binary, uint8_t data, unsigned int size) {
+ memset(&binary[0], 0x00, size);
+ memcpy(&binary[0], ConvertUint8DecimalToHex(data, size), size);
+
+ return binary;
+}
+
+char *ConvertIntoBinary(char *binary, uint16_t data, unsigned int size) {
+ memset(&binary[0], 0x00, size);
+ memcpy(&binary[0], ConvertUint16DecimalToHex(data, size), size);
+
+ return binary;
+}
+
+char *ConvertIntoBinary(char *binary, uint32_t data, unsigned int size) {
+ memset(&binary[0], 0x00, size);
+ memcpy(&binary[0], ConvertUint32DecimalToHex(data, size), size);
+
+ return binary;
+}
+
+char *ConvertIntoBinary(char *binary, int data, unsigned int size) {
+ memset(&binary[0], 0x00, size);
+ memcpy(&binary[0], ConvertIntDecimalToHex(data, size), size);
+
+ return binary;
+}
+
+char *ConvertIntoBinary(char *PostDataBinary, float const data, unsigned int data_length) {
+ memset(&PostDataBinary[0], 0x00, data_length);
+ memcpy(&PostDataBinary[0], ConvertFloatDecimalToHex(data, data_length), data_length);
+
+ return PostDataBinary;
+}
+
+} // namespace nectis_utils
\ No newline at end of file
diff --git a/libraries/NectisMcu_LibForArduino/src/NectisUtils.h b/libraries/NectisMcu_LibForArduino/src/NectisUtils.h
new file mode 100644
index 000000000..ca11b1cdf
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/src/NectisUtils.h
@@ -0,0 +1,17 @@
+#pragma once
+#include
+
+namespace nectis_utils {
+ char *ConvertUint8DecimalToHex(uint8_t, int);
+ char *ConvertUint16DecimalToHex(uint16_t, int);
+ char *ConvertUint32DecimalToHex(uint32_t, int);
+ char *ConvertIntDecimalToHex(int, int);
+ char *ConvertFloatDecimalToHex(float const, int);
+
+ unsigned int GetDataDigits(unsigned int);
+ char *ConvertIntoBinary(char*, uint8_t, unsigned int);
+ char *ConvertIntoBinary(char*, uint16_t, unsigned int);
+ char *ConvertIntoBinary(char*, uint32_t, unsigned int);
+ char *ConvertIntoBinary(char*, int, unsigned int);
+ char *ConvertIntoBinary(char*, float const, unsigned int);
+}
diff --git a/libraries/NectisMcu_LibForArduino/src/Stopwatch.h b/libraries/NectisMcu_LibForArduino/src/Stopwatch.h
new file mode 100644
index 000000000..e7fc2673e
--- /dev/null
+++ b/libraries/NectisMcu_LibForArduino/src/Stopwatch.h
@@ -0,0 +1,29 @@
+#pragma once
+
+class Stopwatch {
+ private:
+ unsigned long _BeginTime;
+ unsigned long _EndTime;
+
+ public:
+ Stopwatch() : _BeginTime(0), _EndTime(0) {
+ }
+
+ void Restart() {
+ _BeginTime = millis();
+ _EndTime = 0;
+ }
+
+ void Stop() {
+ _EndTime = millis();
+ }
+
+ unsigned long ElapsedMilliseconds() const {
+ if (_EndTime == 0) {
+ return millis() - _BeginTime;
+ } else {
+ return _EndTime - _BeginTime;
+ }
+ }
+
+};
diff --git a/libraries/NectisSensors_LibForArduino/library.properties b/libraries/NectisSensors_LibForArduino/library.properties
new file mode 100644
index 000000000..b6f1fcab0
--- /dev/null
+++ b/libraries/NectisSensors_LibForArduino/library.properties
@@ -0,0 +1,10 @@
+name=Nectis nRF52840 Grove Sensor Library
+version=0.0.1
+author=CAMI&Co.
+maintainer=CAMI&Co.
+sentence=Arduino library for Grove Sensors
+paragraph=Arduino library for Grove Sensors
+category=Sensors
+url=https://github.com/cami/NectisFirmware-nRF52840
+architectures=*
+includes=NectisGroveSPI.h, NectisGroveUart.h, NectisGroveWire.h
\ No newline at end of file
diff --git a/libraries/NectisSensors_LibForArduino/src/NectisGroveSPI.cpp b/libraries/NectisSensors_LibForArduino/src/NectisGroveSPI.cpp
new file mode 100644
index 000000000..3fad3b150
--- /dev/null
+++ b/libraries/NectisSensors_LibForArduino/src/NectisGroveSPI.cpp
@@ -0,0 +1,19 @@
+#include "NectisGroveSPI.h"
+#include "SPI.h"
+
+#include
+#include
+
+
+NectisGroveSPI::NectisGroveSPI() : _GroveSpi() {
+
+}
+
+NectisGroveSPI::~NectisGroveSPI() {
+
+}
+
+void NectisGroveSPI::PowerSupplyGrove(bool on) {
+ digitalWrite(GROVE_VCCB_PIN, on ? HIGH : LOW);
+}
+
diff --git a/libraries/NectisSensors_LibForArduino/src/NectisGroveSPI.h b/libraries/NectisSensors_LibForArduino/src/NectisGroveSPI.h
new file mode 100644
index 000000000..c9e334d9b
--- /dev/null
+++ b/libraries/NectisSensors_LibForArduino/src/NectisGroveSPI.h
@@ -0,0 +1,15 @@
+#pragma once
+
+
+class SPIClass;
+
+class NectisGroveSPI {
+ private:
+ SPIClass* _GroveSpi;
+
+ public:
+ NectisGroveSPI();
+ ~NectisGroveSPI();
+
+ void PowerSupplyGrove(bool on);
+};
diff --git a/libraries/NectisSensors_LibForArduino/src/NectisGroveUart.cpp b/libraries/NectisSensors_LibForArduino/src/NectisGroveUart.cpp
new file mode 100644
index 000000000..1a6b511e9
--- /dev/null
+++ b/libraries/NectisSensors_LibForArduino/src/NectisGroveUart.cpp
@@ -0,0 +1,280 @@
+#include "NectisGroveUart.h"
+#include "Uart.h"
+#include "TinyGPS++.h"
+#include "NectisDebug.h"
+
+#include
+#include
+#include
+
+constexpr uint32_t GROVE_HARDWARE_SERIAL_RX = GROVE_UART_RX;
+constexpr uint32_t GROVE_HARDWARE_SERIAL_TX = GROVE_UART_TX;
+
+TinyGPSPlus gps;
+
+
+NectisGroveUart::NectisGroveUart() : _GroveUart() {
+ _GroveUart = &Serial1;
+
+ _gps_data = nullptr;
+ _co2_data = nullptr;
+ _rfid_data = nullptr;
+}
+
+NectisGroveUart::~NectisGroveUart() {
+
+}
+
+
+/*
+ * Power on.
+ */
+void NectisGroveUart::PowerSupplyGrove(bool on) {
+ digitalWrite(GROVE_VCCB_PIN, on ? HIGH : LOW);
+}
+
+
+/*
+ * Begin/End.
+ */
+void NectisGroveUart::Begin(unsigned long baudRate) {
+ _GroveUart->setPins(GROVE_HARDWARE_SERIAL_RX, GROVE_HARDWARE_SERIAL_TX);
+ _GroveUart->begin(baudRate);
+}
+
+void NectisGroveUart::End() {
+ _GroveUart->end();
+}
+
+
+/*
+ * Grove GPS
+ */
+gps_data_t* NectisGroveUart::GpsNewData() {
+ _gps_data = new gps_data_t;
+ return _gps_data;
+}
+
+void NectisGroveUart::GpsDeleteData() {
+ delete _gps_data;
+ _gps_data = nullptr;
+}
+
+const char* NectisGroveUart::ReadGps() {
+ /*
+ * ReadGps()メソッドの呼び出し元では、delay()を入れないので、常にmemset()が実行されることになり、
+ * Serial.printf("gps=%s\n", gpsDataArray);
+ * というように、if (data == '\n') {} の中で、gpsDataArrayを操作しようとすると、
+ * memset()が実行された配列が対象となる。
+ * これを避けるために、memset()を実行するのではなく、配列の終端に'\0'を挿入することで対処する。
+ */
+ // memset(gpsDataArray, '\0', GPS_DATA_SIZE);
+
+ while (_GroveUart->available()) {
+ char data = _GroveUart->read();
+ gps.encode(data);
+
+ // GPS のデータが表示できない
+ if (data == '\r') continue;
+ if (data == '\n') {
+ gpsDataArray[gpsDataLength] = '\0';
+
+ delay(10);
+
+ gpsDataLength = 0;
+ return gpsDataArray;
+ }
+
+ if (gpsDataLength - 1 > GPS_DATA_SIZE) { // Overflow
+ Serial.println("### OVERFLOW");
+
+ gpsDataLength = 0;
+ return "OVERFLOW";
+ }
+
+ gpsDataArray[gpsDataLength++] = data;
+ }
+
+ return NULL;
+}
+
+bool NectisGroveUart::GetGpsData() {
+ // gpsDataArray をprivate変数として所有しているため、戻り値はない
+ const char* gpsData = ReadGps();
+
+ /*
+ * 衛星捕捉前
+ * $GPGGA,030838.183,,,,,0,2,,,M,,M,,*40
+ * lat=-2689.000002 lng=-1823.000002 month=18 day=0 year=2073
+ * 衛星捕捉後
+ *
+ *
+ */
+ // $GPGGA,025129.000,3537.6636,N,13943.5273,E,1,5,1.31,23.6,M,39.4,M,,*66
+ if (gpsData != NULL && strncmp(gpsData, "$GPGGA,", 7) == 0) {
+ NECTIS_DEBUG_PRINTLN(gpsData);
+
+ numSatellites = gps.satellites.value();
+ isLocationUpdated = gps.location.isUpdated();
+ if (numSatellites >= 1) {
+ if (gps.location.isValid() && isLocationUpdated) {
+ lat = gps.location.lat();
+ lng = gps.location.lng();
+ _gps_data->lat = lat;
+ _gps_data->lng = lng;
+ }
+
+ if (gps.date.isValid() && gps.date.isUpdated()) {
+ year = gps.date.year();
+ month = gps.date.month();
+ day = gps.date.day();
+ _gps_data->year = year;
+ _gps_data->month = month;
+ _gps_data->day = day;
+ }
+
+ if (gps.time.isValid() && gps.time.isUpdated()) {
+ hour = gps.time.hour();
+ minute = gps.time.minute();
+ second = gps.time.second();
+ centisecond = gps.time.centisecond();
+ _gps_data->hour = hour;
+ _gps_data->minute = minute;
+ _gps_data->second = second;
+ _gps_data->centisecond = centisecond;
+ }
+
+ if ((numSatellites >= 4) && isLocationUpdated) {
+ _gps_data->numSatellites = numSatellites;
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+void NectisGroveUart::PrintGpsData() {
+ Serial.printf("lat=%.6f lng=%.6f, ", _gps_data->lat, _gps_data->lng);
+ Serial.printf("%u/%u/%u(MM/DD/YY), ", _gps_data->month, _gps_data->day, _gps_data->year);
+ Serial.printf("%02u:%u:%u:%03u(HH:MM:SS:centiSS) (UST)\n", _gps_data->hour, _gps_data->minute, _gps_data->second, _gps_data->centisecond);
+}
+
+
+/*
+ * Grove CO2
+ */
+co2_data_t* NectisGroveUart::Co2NewData() {
+ _co2_data = new co2_data_t;
+ return _co2_data;
+}
+
+void NectisGroveUart::Co2DeleteData() {
+ delete _co2_data;
+ _co2_data = nullptr;
+}
+
+void NectisGroveUart::Co2Calibrate() {
+ const unsigned char cmd_calibrate[] = {
+ 0xff, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2
+ };
+
+ Serial.println("### Calibration started.");
+
+ for(unsigned int i = 0; i < sizeof(cmd_calibrate); i++) {
+ _GroveUart->write(cmd_calibrate[i]);
+ }
+
+ Serial.println("### Calibration done");
+}
+
+bool NectisGroveUart::GetCo2Data() {
+ const unsigned char cmd_get_sensor[] = {
+ 0xff, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79
+ };
+
+ unsigned int i = 0;
+ byte data[CO2_DATA_SIZE];
+ int temperature;
+ int CO2PPM;
+
+ memset(&data[0], 0x00, CO2_DATA_SIZE);
+
+ //transmit command data
+ for(i = 0; i < sizeof(cmd_get_sensor); i++) {
+ _GroveUart->write(cmd_get_sensor[i]);
+ }
+ delay(10);
+
+ //begin reveiceing data
+ if(_GroveUart->available()) {
+ while(_GroveUart->available()) {
+ for(i = 1; i < CO2_DATA_SIZE; i++) {
+ data[i] = _GroveUart->read();
+ }
+ }
+ }
+
+ if((i != CO2_DATA_SIZE) || (1 + (0xFF ^ (byte)(data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7]))) != data[8]) {
+ return false;
+ } else {
+ CO2PPM = (int)data[2] * 256 + (int)data[3];
+ temperature = (int)data[4] - 40;
+
+ _co2_data->temperature = temperature;
+ _co2_data->co2ppm = CO2PPM;
+
+ return true;
+ }
+}
+
+void NectisGroveUart::PrintCo2Data() {
+ Serial.printf("temperature=%d\n", _co2_data->temperature);
+ Serial.printf("co2[ppm]=%d\n", _co2_data->co2ppm);
+}
+
+
+/*
+ * Grove RFID
+ */
+rfid_data_t* NectisGroveUart::RfidNewData() {
+ _rfid_data = new rfid_data_t;
+ return _rfid_data;
+}
+
+void NectisGroveUart::RfidDeleteData() {
+ delete _rfid_data;
+ _rfid_data = nullptr;
+}
+
+bool NectisGroveUart::GetRfidData() {
+ uint16_t rfidDataLength = 0;
+ byte rfidDataArray[RFID_DATA_SIZE];
+
+ while (_GroveUart->available()) {
+ int read_data_int = _GroveUart->read();
+ char read_data_char = (char)read_data_int;
+
+ // Start to read RF tag data, if read_data_int == 2 (It means 'STX' in ASCII Chart.)
+ if (read_data_int == 2)
+ continue;
+
+ // End to read RF tag data, if read_data_int == 3 (It means 'ETX' in ASCII Chart.)
+ if (read_data_int == 3) {
+ rfidDataArray[rfidDataLength] = '\0';
+ rfidDataLength = 0;
+ break;
+ }
+
+ rfidDataArray[rfidDataLength++] = read_data_char;
+ }
+
+ Serial.printf("RfidData=%s\n", rfidDataArray);
+
+ memcpy(_rfid_data, rfidDataArray, RFID_DATA_SIZE);
+
+ return true;
+}
+
+void NectisGroveUart::PrintRfidData() {
+ Serial.printf("RFID=%s\n", _rfid_data->rfid);
+}
\ No newline at end of file
diff --git a/libraries/NectisSensors_LibForArduino/src/NectisGroveUart.h b/libraries/NectisSensors_LibForArduino/src/NectisGroveUart.h
new file mode 100644
index 000000000..a7384dfc5
--- /dev/null
+++ b/libraries/NectisSensors_LibForArduino/src/NectisGroveUart.h
@@ -0,0 +1,104 @@
+#pragma once
+#include
+
+class Uart;
+
+/*
+ * Grove GPS から送られてくる生データ
+ * data=$GPRMC,000001.799,V,,,,,0.00,0.00,060180,,,N*44
+ * data=$GPGGA,000002.799,,,,,0,0,,,M,,M,,*4D
+ * data=$GPGSA,A,1,,,,,,,,,,,,,,,*1E
+ * data=$GPGSV,1,1,00*79
+ */
+typedef struct {
+ uint8_t numSatellites;
+ double lat;
+ double lng;
+ uint16_t year;
+ uint8_t month;
+ uint8_t day;
+ uint8_t hour;
+ uint8_t minute;
+ uint8_t second;
+ uint8_t centisecond;
+} gps_data_t;
+
+typedef struct {
+ int temperature;
+ int co2ppm;
+} co2_data_t;
+
+typedef struct {
+ char* rfid;
+} rfid_data_t;
+
+
+class NectisGroveUart {
+ private:
+ Uart* _GroveUart;
+
+ private:
+ gps_data_t* _gps_data;
+ co2_data_t* _co2_data;
+ rfid_data_t* _rfid_data;
+
+ public:
+ NectisGroveUart();
+ ~NectisGroveUart();
+
+ /*
+ * Power on.
+ */
+ void PowerSupplyGrove(bool on);
+
+ void Begin(unsigned long baudRate);
+ void End();
+
+ /*
+ * Grove GPS
+ */
+ gps_data_t* GpsNewData();
+ void GpsDeleteData();
+ bool GetGpsData();
+ void PrintGpsData();
+
+ /*
+ * Grove CO2
+ */
+ co2_data_t* Co2NewData();
+ void Co2DeleteData();
+ void Co2Calibrate();
+ bool GetCo2Data();
+ void PrintCo2Data();
+
+ /*
+ * Grove RFID
+ */
+ rfid_data_t* RfidNewData();
+ void RfidDeleteData();
+ bool GetRfidData();
+ void PrintRfidData();
+
+private:
+ const char* ReadGps();
+
+ private:
+ static const uint16_t GPS_DATA_SIZE = 128;
+ static const uint16_t CO2_DATA_SIZE = 9;
+ static const uint16_t RFID_DATA_SIZE = 32;
+
+ uint8_t numSatellites;
+ bool isLocationUpdated = false;
+ double lat;
+ double lng;
+ uint16_t year;
+ uint8_t month;
+ uint8_t day;
+ uint8_t hour;
+ uint8_t minute;
+ uint8_t second;
+ uint8_t centisecond;
+
+ uint16_t gpsDataLength = 0;
+ char gpsDataArray[GPS_DATA_SIZE];
+};
diff --git a/libraries/NectisSensors_LibForArduino/src/NectisGroveWire.cpp b/libraries/NectisSensors_LibForArduino/src/NectisGroveWire.cpp
new file mode 100644
index 000000000..b7a6ce522
--- /dev/null
+++ b/libraries/NectisSensors_LibForArduino/src/NectisGroveWire.cpp
@@ -0,0 +1,19 @@
+#include "NectisGroveWire.h"
+#include "Wire.h"
+
+#include
+#include
+
+
+NectisGroveWire::NectisGroveWire() : _GroveWire() {
+
+}
+
+NectisGroveWire::~NectisGroveWire() {
+
+}
+
+void NectisGroveWire::PowerSupplyGrove(bool on) {
+ digitalWrite(GROVE_VCCB_PIN, on ? HIGH : LOW);
+}
+
diff --git a/libraries/NectisSensors_LibForArduino/src/NectisGroveWire.h b/libraries/NectisSensors_LibForArduino/src/NectisGroveWire.h
new file mode 100644
index 000000000..c60b3af19
--- /dev/null
+++ b/libraries/NectisSensors_LibForArduino/src/NectisGroveWire.h
@@ -0,0 +1,15 @@
+#pragma once
+
+
+class TwoWire;
+
+class NectisGroveWire {
+ private:
+ TwoWire* _GroveWire;
+
+ public:
+ NectisGroveWire();
+ ~NectisGroveWire();
+
+ void PowerSupplyGrove(bool on);
+};
diff --git a/libraries/SPI/library.properties b/libraries/SPI/library.properties
index bebf450d6..50517da83 100644
--- a/libraries/SPI/library.properties
+++ b/libraries/SPI/library.properties
@@ -1,5 +1,5 @@
name=SPI
-version=1.0
+version=1.0.0
author=
maintainer=
sentence=Enables the communication with devices that use the Serial Peripheral Interface (SPI) Bus. Specific implementation for nRF52.
diff --git a/libraries/SoftwareSerial/library.properties b/libraries/SoftwareSerial/library.properties
index 9a6a10e0e..d99f6e2a8 100644
--- a/libraries/SoftwareSerial/library.properties
+++ b/libraries/SoftwareSerial/library.properties
@@ -1,5 +1,5 @@
name=SoftwareSerial
-version=1.0.0
+version=1.0
author=Arduino
maintainer=Arduino
sentence=Enables serial communication on digital pins.
diff --git a/libraries/Wire/Wire.h b/libraries/Wire/Wire.h
index ba993d1c6..b3b97118e 100755
--- a/libraries/Wire/Wire.h
+++ b/libraries/Wire/Wire.h
@@ -31,6 +31,8 @@
// WIRE_HAS_END means Wire has end()
#define WIRE_HAS_END 1
+#define BUFFER_LENGTH 32
+
class TwoWire : public Stream
{
public:
diff --git a/platform.txt b/platform.txt
index 5bb7f6396..9ab5ec3a0 100644
--- a/platform.txt
+++ b/platform.txt
@@ -1,6 +1,7 @@
# Copyright (c) 2014-2015 Arduino LLC. All right reserved.
# Copyright (c) 2016 Sandeep Mistry All right reserved.
# Copyright (c) 2017 Adafruit Industries. All rights reserved.
+# Copyright (c) 2019 CAMI&Co. All rights reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -16,19 +17,18 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-name=Adafruit nRF52 Boards
-version=0.19.0
+name=CAMI qibanca nectis series nRF52840 Boards
+version=1.0.1
# Compile variables
# -----------------
-
compiler.warning_flags=-w
compiler.warning_flags.none=-w
compiler.warning_flags.default=
compiler.warning_flags.more=-Wall
compiler.warning_flags.all=-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-pointer-arith
-compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
+compiler.path={runtime.tools.gcc-arm-none-eabi-5_2-2015q4.path}/bin/
compiler.c.cmd=arm-none-eabi-gcc
compiler.c.flags=-mcpu={build.mcu} -mthumb -c -g {compiler.warning_flags} {build.float_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -MMD
compiler.c.elf.cmd=arm-none-eabi-gcc
@@ -91,7 +91,13 @@ recipe.S.o.pattern="{compiler.path}{compiler.S.cmd}" {compiler.S.flags} -DF_CPU=
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}"
## Combine gc-sections, archives, and objects
-recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} "-L{build.core.path}/linker" "-T{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.ldflags} -o "{build.path}/{build.project_name}.elf" {object_files} -Wl,--start-group -lm "{build.path}/{archive_file}" -Wl,--end-group
+# recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} "-L{build.core.path}/linker" "-T{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.ldflags} -o "{build.path}/{build.project_name}.elf" {object_files} -Wl,--start-group -lm "{build.path}/{archive_file}" -Wl,--end-group
+
+# Added for CAMI qibanca nectis series
+compiler.cpp.elf.cmd=arm-none-eabi-g++
+compiler.cpp.elf.flags=-Os -Wl,--gc-sections -save-temps
+compiler.cpp.elf.extra_flags=
+recipe.c.combine.pattern="{compiler.path}{compiler.cpp.elf.cmd}" "-L{build.path}" {compiler.cpp.elf.flags} {compiler.cpp.elf.extra_flags} "-L{build.core.path}/linker" "-T{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.ldflags} -lstdc++ -o "{build.path}/{build.project_name}.elf" {object_files} -Wl,--start-group -lm "{build.path}/{archive_file}" -Wl,--end-group
## Create output (bin file)
#recipe.objcopy.bin.pattern="{compiler.path}{compiler.elf2bin.cmd}" {compiler.elf2bin.flags} {compiler.elf2bin.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"
diff --git a/programmers.txt b/programmers.txt
index 16a39a065..5ed38406f 100644
--- a/programmers.txt
+++ b/programmers.txt
@@ -1,35 +1,42 @@
#**********************************************
-# Jlink with nrfjprog
+# Jlink with nrfjprog for CAMI qibanca nectis LTE-M DFU
#**********************************************
-nrfjprog.name=J-Link for Bluefruit nRF52
+nrfjprog.name=LTE-M DFU J-Link for qibanca nectis on nRF52
nrfjprog.program.tool=bootburn
nrfjprog.program.cmd=nrfjprog
+nrfjprog.program.cmd.macosx=/usr/local/bin/nrfjprog
nrfjprog.program.cmd.windows=nrfjprog.exe
# Burn bootloader pattern
-nrfjprog.program.burn_pattern="{program.cmd}" --program "{bootloader.file}.hex" -f nrf52 --chiperase --reset
+nrfjprog.program.bootfile={runtime.platform.path}/bootloader/{build.variant}/{build.variant}_bootloader-7.0.0_{build.sd_name}_{build.sd_version}.hex
+nrfjprog.program.burn_pattern="{program.cmd}" --program "{program.bootfile}" -f nrf52 --chiperase --reset
# Jlink to upload sketch
nrfjprog.program.params.quiet=
nrfjprog.program.params.verbose=
nrfjprog.program.pattern="{program.cmd}" --reset --program "{build.path}/{build.project_name}.hex" --sectorerase -f nrf52
-# nrfjprog --erasepage {upload.BOOT_SETTING_ADDR} -f nrf52 && nrfjprog --memwr {upload.BOOT_SETTING_ADDR} --val 0x00000001 -f nrf52 && nrfjprog --reset -f nrf52
+# && nrfjprog --erasepage {upload.BOOT_SETTING_ADDR} -f nrf52 && nrfjprog --memwr {upload.BOOT_SETTING_ADDR} --val 0x00000001 -f nrf52 && nrfjprog --reset -f nrf52
# tools.nrfutil.upload.BOOT_SETTING_ADDR=0xFF000
+
#**********************************************
-# adafruit-nrfutil
+# Jlink with nrfjprog for CAMI qibanca nectis stable bootloader
#**********************************************
-nrfutil_boot.name=Bootloader DFU for Bluefruit nRF52
-nrfutil_boot.program.tool=bootburn
-nrfutil_boot.program.cmd=adafruit-nrfutil
-nrfutil_boot.program.cmd.windows={runtime.platform.path}/tools/adafruit-nrfutil/win32/adafruit-nrfutil.exe
-nrfutil_boot.program.cmd.macosx={runtime.platform.path}/tools/adafruit-nrfutil/macos/adafruit-nrfutil
+nrfjprog_stable.name=STABLE J-Link for qibanca nectis on nRF52
+nrfjprog_stable.program.tool=bootburn
+nrfjprog_stable.program.cmd=nrfjprog
+nrfjprog_stable.program.cmd.macosx=/usr/local/bin/nrfjprog
+nrfjprog_stable.program.cmd.windows=nrfjprog.exe
# Burn bootloader pattern
-nrfutil_boot.program.burn_pattern={program.cmd} --verbose dfu serial -pkg "{bootloader.file}.zip" -p {serial.port} -b 115200 --touch 1200
+nrfjprog_stable.program.bootfile={runtime.platform.path}/bootloader/{build.variant}/{build.variant}_bootloader-6.2.0_{build.sd_name}_{build.sd_version}.hex
+nrfjprog_stable.program.burn_pattern="{program.cmd}" --program "{program.bootfile}" -f nrf52 --chiperase --reset
+
+# Jlink to upload sketch
+nrfjprog_stable.program.params.quiet=
+nrfjprog_stable.program.params.verbose=
+nrfjprog_stable.program.pattern="{program.cmd}" --reset --program "{build.path}/{build.project_name}.hex" --sectorerase -f nrf52
-# Remind user to select Jlink when used to upload sketch
-nrfutil_boot.program.params.quiet=
-nrfutil_boot.program.params.verbose=
-nrfutil_boot.program.pattern=echo Please select as programmer
+# && nrfjprog_provisioning --erasepage {upload.BOOT_SETTING_ADDR} -f nrf52 && nrfjprog --memwr {upload.BOOT_SETTING_ADDR} --val 0x00000001 -f nrf52 && nrfjprog --reset -f nrf52
+# tools.nrfutil.upload.BOOT_SETTING_ADDR=0xFF000
diff --git a/tools/build_all.py b/tools/build_all.py
index 62f467572..977cca268 100644
--- a/tools/build_all.py
+++ b/tools/build_all.py
@@ -13,15 +13,16 @@
build_format = '| {:20} | {:35} | {:9} '
build_separator = '-' * 83
-default_boards = [ 'cluenrf52840', 'cplaynrf52840', 'feather52832', 'feather52840', 'feather52840sense', 'itsybitsy52840' ]
+# default_boards = [ 'feather52832', 'feather52840', 'cplaynrf52840', 'itsybitsy52840', 'cluenrf52840' ]
+default_boards = [ 'cami_arduino' ]
-build_boards = []
+build_boards = ['nectis']
# build all variants if input not existed
-if len(sys.argv) > 1:
- build_boards.append(sys.argv[1])
-else:
- build_boards = default_boards
+# if len(sys.argv) > 1:
+# build_boards.append(sys.argv[1])
+# else:
+# build_boards = default_boards
def errorOutputFilter(line):
if len(line) == 0:
@@ -42,7 +43,8 @@ def build_examples(variant):
print((build_format + '| {:6} |').format('Library', 'Example', 'Result', 'Time'))
print(build_separator)
- fqbn = "adafruit:nrf52:{}:softdevice={},debug=l0".format(variant, 's140v6' if variant != 'feather52832' else 's132v6')
+ # fqbn = "adafruit:nrf52:{}:softdevice={},debug=l0".format(variant, 's140v6' if variant != 'feather52832' else 's132v6')
+ fqbn = "cami_arduino:nrf52:{}:softdevice={},debug=l0".format(variant, 's140v6' if variant != 'feather52832' else 's132v6')
for sketch in glob.iglob('libraries/**/*.ino', recursive=True):
start_time = time.monotonic()
@@ -64,7 +66,7 @@ def build_examples(variant):
build_result = subprocess.run("arduino-cli compile --warnings default --fqbn {} {}".format(fqbn, sketch), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
# get stderr into a form where len(warningLines) indicates a true warning was output to stderr
- warningLines = [];
+ warningLines = []
if all_warnings and build_result.stderr:
tmpWarningLines = build_result.stderr.decode("utf-8").splitlines()
warningLines = list(filter(errorOutputFilter, (tmpWarningLines)))
diff --git a/tools/build_all_travis.py b/tools/build_all_travis.py
index 0b01f55f9..b16545b4c 100644
--- a/tools/build_all_travis.py
+++ b/tools/build_all_travis.py
@@ -27,7 +27,8 @@
'cplaynrf52840': 'Circuit Playground Bluefruit Express',
'itsybitsy52840': 'ItsyBitsy nRF52840 Express',
'cluenrf52840': 'Clue nRF52840',
- 'feather52832': 'Feather nRF52832'
+ 'feather52832': 'Feather nRF52832',
+ 'nectis': 'nectis nrf52840'
}
# STDERR receives output that starts with the following text, none of which should be considered a warning or error...
@@ -85,7 +86,7 @@ def build_examples(variant):
build_result = subprocess.run("arduino --verify {}".format(sketch), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
# get stderr into a form where len(warningLines) indicates a true warning was output to stderr
- warningLines = [];
+ warningLines = []
if all_warnings and build_result.stderr:
tmpWarningLines = build_result.stderr.decode("utf-8").splitlines()
warningLines = list(filter(errorOutputFilter, (tmpWarningLines)))
diff --git a/variants/feather_nrf52832/variant.h b/variants/feather_nrf52832/variant.h
deleted file mode 100644
index 24b16b73a..000000000
--- a/variants/feather_nrf52832/variant.h
+++ /dev/null
@@ -1,123 +0,0 @@
- /*
- Copyright (c) 2014-2015 Arduino LLC. All right reserved.
- Copyright (c) 2016 Sandeep Mistry All right reserved.
- Copyright (c) 2018, Adafruit Industries (adafruit.com)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef _VARIANT_FEATHER52832_
-#define _VARIANT_FEATHER52832_
-
-/** Master clock frequency */
-#define VARIANT_MCK (64000000ul)
-
-#define USE_LFXO // Board uses 32khz crystal for LF
-// define USE_LFRC // Board uses RC for LF
-
-/*----------------------------------------------------------------------------
- * Headers
- *----------------------------------------------------------------------------*/
-
-#include "WVariant.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif // __cplusplus
-
-// Number of pins defined in PinDescription array
-#define PINS_COUNT (32u)
-#define NUM_DIGITAL_PINS (32u)
-#define NUM_ANALOG_INPUTS (8u)
-#define NUM_ANALOG_OUTPUTS (0u)
-
-// LEDs
-#define PIN_LED1 (17)
-#define PIN_LED2 (19)
-
-#define LED_BUILTIN PIN_LED1
-#define LED_CONN PIN_LED2
-
-#define LED_RED PIN_LED1
-#define LED_BLUE PIN_LED2
-
-#define LED_STATE_ON 1 // State when LED is litted
-
-/*
- * Analog pins
- */
-#define PIN_A0 (2)
-#define PIN_A1 (3)
-#define PIN_A2 (4)
-#define PIN_A3 (5)
-#define PIN_A4 (28)
-#define PIN_A5 (29)
-#define PIN_A6 (30)
-#define PIN_A7 (31)
-
-static const uint8_t A0 = PIN_A0 ;
-static const uint8_t A1 = PIN_A1 ;
-static const uint8_t A2 = PIN_A2 ;
-static const uint8_t A3 = PIN_A3 ;
-static const uint8_t A4 = PIN_A4 ;
-static const uint8_t A5 = PIN_A5 ;
-static const uint8_t A6 = PIN_A6 ;
-static const uint8_t A7 = PIN_A7 ;
-#define ADC_RESOLUTION 14
-
-// Other pins
-#define PIN_AREF (24)
-#define PIN_VBAT PIN_A7
-#define PIN_NFC1 (9)
-#define PIN_NFC2 (10)
-
-static const uint8_t AREF = PIN_AREF;
-
-/*
- * Serial interfaces
- */
-#define PIN_SERIAL_RX (8)
-#define PIN_SERIAL_TX (6)
-
-/*
- * SPI Interfaces
- */
-#define SPI_INTERFACES_COUNT 1
-
-#define PIN_SPI_MISO (14)
-#define PIN_SPI_MOSI (13)
-#define PIN_SPI_SCK (12)
-
-static const uint8_t SS = 27 ;
-static const uint8_t MOSI = PIN_SPI_MOSI ;
-static const uint8_t MISO = PIN_SPI_MISO ;
-static const uint8_t SCK = PIN_SPI_SCK ;
-
-/*
- * Wire Interfaces
- */
-#define WIRE_INTERFACES_COUNT 1
-
-#define PIN_WIRE_SDA (25u)
-#define PIN_WIRE_SCL (26u)
-
-#ifdef __cplusplus
-}
-#endif
-
-/*----------------------------------------------------------------------------
- * Arduino objects - C++ only
- *----------------------------------------------------------------------------*/
-
-#endif
diff --git a/variants/metro_nrf52840_express/variant.cpp b/variants/metro_nrf52840_express/variant.cpp
deleted file mode 100644
index 8462032ca..000000000
--- a/variants/metro_nrf52840_express/variant.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- Copyright (c) 2014-2015 Arduino LLC. All right reserved.
- Copyright (c) 2016 Sandeep Mistry All right reserved.
- Copyright (c) 2018, Adafruit Industries (adafruit.com)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#include "variant.h"
-#include "wiring_constants.h"
-#include "wiring_digital.h"
-#include "nrf.h"
-
-#define _PINNUM(port, pin) ((port)*32 + (pin))
-
-const uint32_t g_ADigitalPinMap[] =
-{
- _PINNUM(0, 25), // D0 is UART TX on P0.25
- _PINNUM(0, 24), // D1 is UART RX on P0.24
- _PINNUM(1, 10), // D2 is on P1.10
- _PINNUM(1, 4 ), // D3 on P1.04
- _PINNUM(1, 11), // D4 on P1.11
- _PINNUM(1, 12), // D5 on P1.12
- _PINNUM(1, 14), // D6 on P1.14
- _PINNUM(0, 26), // D7 on P0.26
- _PINNUM(0, 27), // D8 on P0.27
- _PINNUM(0, 12), // D9 on P0.12
- _PINNUM(0, 6 ), // D10 on P0.06
- _PINNUM(0, 8 ), // D11 on P0.08
- _PINNUM(1, 9 ), // D12 on P1.09
- _PINNUM(0, 14), // D13 on P0.14
-
- _PINNUM(0, 4 ), // D14 is A0 on P0.04
- _PINNUM(0, 5 ), // D15 is A1 on P0.05
- _PINNUM(0, 28), // D16 is A2 on P0.28
- _PINNUM(0, 30), // D17 is A3 on P0.30
- _PINNUM(0, 2 ), // D18 is A4 on P0.02
- _PINNUM(0, 3 ), // D19 is A5 on P0.03
- _PINNUM(0, 29), // D20 is A6 (Battery) on P0.29
- _PINNUM(0, 31), // D21 is A7 (ARef) on P0.31
-
- _PINNUM(0, 15), // D22 is SDA on P0.15
- _PINNUM(0, 16), // D23 is SCL on P0.16
-
- _PINNUM(0, 11), // D24 is SPI MISO on P0.11
- _PINNUM(1, 8 ), // D25 is SPI MOSI on P1.08
- _PINNUM(0, 7 ), // D26 is SPI SCK on P0.07
-
- _PINNUM(0, 19), // D27 is QSPI CLK on P0.19
- _PINNUM(0, 20), // D28 is QSPI CS on P0.20
- _PINNUM(0, 17), // D29 is QSPI Data 0 on P0.17
- _PINNUM(0, 23), // D30 is QSPI Data 1 on P0.23
- _PINNUM(0, 22), // D31 is QSPI Data 2 on P0.22
- _PINNUM(0, 21), // D32 is QSPI Data 3 on P0.21
-
- _PINNUM(1, 13), // D33 is LED1 on P1.13
- _PINNUM(1, 15), // D34 is LED2 on P1.15
- _PINNUM(0, 13), // D35 is NeoPixel on P0.13
- _PINNUM(1, 2 ), // D36 is Switch on P1.02
- _PINNUM(1, 0 ), // D37 is SWO/DFU on P1.00
- _PINNUM(0, 9 ), // D38 is NFC1 on P0.09
- _PINNUM(0, 10), // D39 is NFC2 on P0.10
-
- // Unused pin
- 40, 41, 42, 43, 44, 45, 46, 47
-};
-
-
-
-void initVariant()
-{
- // LED1 & LED2
- pinMode(PIN_LED1, OUTPUT);
- ledOff(PIN_LED1);
-
- pinMode(PIN_LED2, OUTPUT);
- ledOff(PIN_LED2);
-}
-
diff --git a/variants/metro_nrf52840_express/variant.h b/variants/metro_nrf52840_express/variant.h
deleted file mode 100644
index 852a147c3..000000000
--- a/variants/metro_nrf52840_express/variant.h
+++ /dev/null
@@ -1,143 +0,0 @@
- /*
- Copyright (c) 2014-2015 Arduino LLC. All right reserved.
- Copyright (c) 2016 Sandeep Mistry All right reserved.
- Copyright (c) 2018, Adafruit Industries (adafruit.com)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef _VARIANT_METRO52840
-#define _VARIANT_METRO52840
-
-/** Master clock frequency */
-#define VARIANT_MCK (64000000ul)
-
-#define USE_LFXO // Board uses 32khz crystal for LF
-// define USE_LFRC // Board uses RC for LF
-
-/*----------------------------------------------------------------------------
- * Headers
- *----------------------------------------------------------------------------*/
-
-#include "WVariant.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif // __cplusplus
-
-// Number of pins defined in PinDescription array
-#define PINS_COUNT (48)
-#define NUM_DIGITAL_PINS (48)
-#define NUM_ANALOG_INPUTS (6)
-#define NUM_ANALOG_OUTPUTS (0)
-
-// LEDs
-#define PIN_LED1 (33)
-#define PIN_LED2 (34)
-#define PIN_NEOPIXEL (35)
-
-#define LED_BUILTIN PIN_LED1
-#define LED_CONN PIN_LED2
-
-#define LED_RED PIN_LED1
-#define LED_BLUE PIN_LED2
-
-#define LED_STATE_ON 1 // State when LED is litted
-
-/*
- * Buttons
- */
-#define PIN_BUTTON1 (37)
-#define PIN_BUTTON2 (36)
-
-/*
- * Analog pins
- */
-#define PIN_A0 (14)
-#define PIN_A1 (15)
-#define PIN_A2 (16)
-#define PIN_A3 (17)
-#define PIN_A4 (18)
-#define PIN_A5 (19)
-#define PIN_A6 (20)
-#define PIN_A7 (21)
-
-static const uint8_t A0 = PIN_A0 ;
-static const uint8_t A1 = PIN_A1 ;
-static const uint8_t A2 = PIN_A2 ;
-static const uint8_t A3 = PIN_A3 ;
-static const uint8_t A4 = PIN_A4 ;
-static const uint8_t A5 = PIN_A5 ;
-static const uint8_t A6 = PIN_A6 ;
-static const uint8_t A7 = PIN_A7 ;
-#define ADC_RESOLUTION 14
-
-// Other pins
-#define PIN_AREF PIN_A7
-#define PIN_VBAT PIN_A6
-#define PIN_NFC1 (2)
-#define PIN_NFC2 (51)
-
-static const uint8_t AREF = PIN_AREF;
-
-/*
- * Serial interfaces
- */
-#define PIN_SERIAL1_RX (1)
-#define PIN_SERIAL1_TX (0)
-
-/*
- * SPI Interfaces
- */
-#define SPI_INTERFACES_COUNT 1
-
-#define PIN_SPI_MISO (24)
-#define PIN_SPI_MOSI (25)
-#define PIN_SPI_SCK (26)
-
-static const uint8_t SS = (5);
-static const uint8_t MOSI = PIN_SPI_MOSI ;
-static const uint8_t MISO = PIN_SPI_MISO ;
-static const uint8_t SCK = PIN_SPI_SCK ;
-
-/*
- * Wire Interfaces
- */
-#define WIRE_INTERFACES_COUNT 1
-
-#define PIN_WIRE_SDA (22)
-#define PIN_WIRE_SCL (23)
-
-// QSPI Pins
-#define PIN_QSPI_SCK 27
-#define PIN_QSPI_CS 28
-#define PIN_QSPI_IO0 29
-#define PIN_QSPI_IO1 30
-#define PIN_QSPI_IO2 31
-#define PIN_QSPI_IO3 32
-
-// On-board QSPI Flash
-// If EXTERNAL_FLASH_DEVICES is not defined, all supported devices will be used
-#define EXTERNAL_FLASH_DEVICES GD25Q16C
-#define EXTERNAL_FLASH_USE_QSPI
-
-#ifdef __cplusplus
-}
-#endif
-
-/*----------------------------------------------------------------------------
- * Arduino objects - C++ only
- *----------------------------------------------------------------------------*/
-
-#endif
diff --git a/variants/pca10056/variant.cpp b/variants/nectis_nrf52840/variant.cpp
similarity index 100%
rename from variants/pca10056/variant.cpp
rename to variants/nectis_nrf52840/variant.cpp
diff --git a/variants/nectis_nrf52840/variant.h b/variants/nectis_nrf52840/variant.h
new file mode 100644
index 000000000..8ddaa6869
--- /dev/null
+++ b/variants/nectis_nrf52840/variant.h
@@ -0,0 +1,237 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+ Copyright (c) 2018, Adafruit Industries (adafruit.com)
+ Copyright (c) 2019, CAMI&Co. All rights reserved.
+
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef NECTIS_H
+#define NECTIS_H
+
+/** Master clock frequency */
+#define VARIANT_MCK (64000000ul)
+
+#define USE_LFXO // Board uses 32khz crystal for LF
+// define USE_LFRC // Board uses RC for LF
+
+/*----------------------------------------------------------------------------
+ * Headers
+ *----------------------------------------------------------------------------*/
+
+#include "WVariant.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+
+// Number of pins defined in PinDescription array
+#define PINS_COUNT (48)
+#define NUM_DIGITAL_PINS (48)
+#define NUM_ANALOG_INPUTS (6)
+#define NUM_ANALOG_OUTPUTS (0)
+
+
+/*
+ * Analog pins
+ */
+#define PIN_A0 (2)
+#define PIN_A1 (3)
+#define PIN_A2 (4)
+#define PIN_A3 (5)
+#define PIN_A4 (28)
+#define PIN_A5 (29)
+#define PIN_A6 (30)
+#define PIN_A7 (31)
+
+#define ADC_RESOLUTION (10)
+
+/*
+ * Other pins
+ */
+#define PIN_AREF (2)
+#define PIN_DFU (35)
+
+#define PIN_NFC1 (9) // NFC電源側
+#define PIN_NFC2 (10) // NFCグラウンド側
+
+
+/*
+ * LEDs
+ */
+#define LED_BLUE (33) // Indicator_LED1
+#define LED_RED (34) // Indicator_LED2
+
+#define PIN_LED1 LED_BLUE
+#define PIN_LED2 LED_RED
+
+#define LED_BUILTIN LED_BLUE
+#define LED_CONN LED_RED
+
+#define LED_STATE_ON (0) // State when LED is litted
+
+
+/*
+ * USB/Battery voltage
+ */
+#define PIN_BATTERY_VOLTAGE (PIN_A0)
+#define PIN_USB_VOLTAGE (PIN_A1)
+#define PIN_BATTERY_LEVEL_ENABLE (45)
+
+#define BATTERY_VOLTAGE_PIN PIN_BATTERY_VOLTAGE
+#define USB_VOLTAGE_PIN PIN_USB_VOLTAGE
+#define BATTERY_LEVEL_ENABLE_PIN PIN_BATTERY_LEVEL_ENABLE
+
+
+/*
+ * BG96
+ */
+#define MODULE_PWR_PIN (36) // Power Supply to the BG96 and Grove sensors
+#define MODULE_PWRKEY_PIN (42) // Turn On/Off BG96
+#define GROVE_VCCB_PIN (25) // GROVE_PWR
+
+#define MODULE_UART_CORE (0) // USART2 => USART1
+#define MODULE_UART_RX_PIN (7) // BG96への送信データ, BG96_RXD
+#define MODULE_UART_TX_PIN (6) // BG96からの受信データ, BG96_TXD
+#define MODULE_RTS_PIN (26) // BG96への送信要求, BG96_CTS
+#define MODULE_CTS_PIN (27) // BG96からの送信許可, BG96_RTS
+#define MODULE_DTR_PIN (44) // BG96のデータ端末レディ, BG96_DTR
+#define MODULE_RESET_PIN (43) // BG96のリセット, BG96_RESET
+#define MODULE_STATUS_PIN (37) // BG96のステータス, BG96_STATUS
+#define MODULE_AP_READY (39) // BG96のAP_READY
+
+/*
+ * Grove sensors
+ * | black | red | white | yellow |
+ * | GND | VCC | GROVE_GPIO_6_2 | GROVE_GPIO_6_1 |
+ */
+
+/* Grove sensors
+ * | black | red | white | yellow |
+ * | GND | VCC | GROVE_ANALOG_1_2 | GROVE_ANALOG_1_1 |
+ * | GND | VCC | NC | SIG |
+ */
+
+/*
+ * Warning
+ * Analog1, Analog2, Analog3 はハードウェア的に、外部抵抗でプルダウンされている
+ * I2C, UART, GPIO は解放されている(不定状態)
+ */
+#define GROVE_ANALOG_1_1 (4) // Analog in/out, GROVE_GPIO_1_1
+#define GROVE_ANALOG_1_2 (5) // Analog in/out, GROVE_GPIO_1_2
+#define GROVE_ANALOG_2_1 (28) // Analog in/out, GROVE_GPIO_2_1
+#define GROVE_ANALOG_2_2 (29) // Analog in/out, GROVE_GPIO_2_2
+#define GROVE_ANALOG_3_1 (30) // Analog in/out, GROVE_GPIO_3_1
+#define GROVE_ANALOG_3_2 (31) // Analog in/out, GROVE_GPIO_3_2
+#define GROVE_I2C_CORE (0)
+#define GROVE_I2C_SCL (12) // I2C, GROVE_GPIO_4_1
+#define GROVE_I2C_SDA (11) // I2C, GROVE_GPIO_4_2
+#define GROVE_UART_CORE (1) // USART1
+#define GROVE_UART_RX (13) // UART, GROVE_GPIO_5_1
+#define GROVE_UART_TX (14) // UART, GROVE_GPIO_5_2
+#define GROVE_GPIO_6_1 (15) // GPIO, GROVE_GPIO_6_1
+#define GROVE_GPIO_6_2 (16) // GPIO, GROVE_GPIO_6_2
+
+
+//#define DEBUG_UART_CORE (2) // USART3
+//#define DEBUG_UART_TX_PIN MODULE_UART_TX_PIN
+//#define DEBUG_UART_RX_PIN MODULE_UART_RX_PIN
+
+
+/*
+ * Serial interfaces
+ */
+#define PIN_SERIAL_RX (GROVE_UART_RX)
+#define PIN_SERIAL_TX (GROVE_UART_TX)
+
+#define PIN_SERIAL1_RX (MODULE_UART_RX_PIN)
+#define PIN_SERIAL1_TX (MODULE_UART_TX_PIN)
+
+/*
+ * SPI Interfaces
+ */
+#define SPI_INTERFACES_COUNT (1)
+
+#define PIN_SPI_MISO (21)
+#define PIN_SPI_MOSI (20)
+#define PIN_SPI_SCK (19)
+#define PIN_SPI_CS (24)
+
+/*
+ * Wire Interfaces
+ */
+#define WIRE_INTERFACES_COUNT (1)
+
+#define PIN_WIRE_SDA (GROVE_I2C_SDA)
+#define PIN_WIRE_SCL (GROVE_I2C_SCL)
+
+/*
+ * External RTC
+ */
+#define RTC_I2C_CORE (1)
+#define RTC_I2C_SCL (8) // I2C, For RTC
+#define RTC_I2C_SDA (41) // I2C, For RTC
+#define RTC_INTRB (9) // IF this pin is set to LOW,
+
+
+/*
+ * QSPI interface for external flash
+ */
+#define PIN_QSPI_SCK (19) // Quad SPIクロック, equals to PIN_QSPI_SCLK
+#define PIN_QSPI_CS (24) // Quad SPIチップセレクト
+#define PIN_QSPI_IO0 (20) // Quad SPIデータ入出力
+#define PIN_QSPI_IO1 (21) // Quad SPIデータ入出力
+#define PIN_QSPI_IO2 (22) // Quad SPIデータ入出力
+#define PIN_QSPI_IO3 (23) // Quad SPIデータ入出力
+
+#define PIN_QSPI_DATA0 PIN_QSPI_IO0
+#define PIN_QSPI_DATA1 PIN_QSPI_IO1
+#define PIN_QSPI_DATA2 PIN_QSPI_IO2
+#define PIN_QSPI_DATA3 PIN_QSPI_IO3
+
+
+
+static const uint8_t A0 = PIN_A0;
+static const uint8_t A1 = PIN_A1;
+static const uint8_t A2 = PIN_A2;
+static const uint8_t A3 = PIN_A3;
+static const uint8_t A4 = PIN_A4;
+static const uint8_t A5 = PIN_A5;
+static const uint8_t A6 = PIN_A6;
+static const uint8_t A7 = PIN_A7;
+
+static const uint8_t AREF = PIN_AREF;
+
+static const uint8_t SS = PIN_SPI_CS;
+static const uint8_t MOSI = PIN_SPI_MOSI;
+static const uint8_t MISO = PIN_SPI_MISO;
+static const uint8_t SCK = PIN_SPI_SCK;
+
+
+// On-board QSPI Flash
+// If EXTERNAL_FLASH_DEVICES is not defined, all supported devices will be used
+#define EXTERNAL_FLASH_DEVICES GD25Q16C
+
+#ifdef __cplusplus
+}
+#endif
+
+/*----------------------------------------------------------------------------
+ * Arduino objects - C++ only
+ *----------------------------------------------------------------------------*/
+
+#endif // NECTIS_H
diff --git a/variants/feather_nrf52832/variant.cpp b/variants/nectis_nrf52840_gp/variant.cpp
similarity index 65%
rename from variants/feather_nrf52832/variant.cpp
rename to variants/nectis_nrf52840_gp/variant.cpp
index 4d48b971b..bd85e9713 100644
--- a/variants/feather_nrf52832/variant.cpp
+++ b/variants/nectis_nrf52840_gp/variant.cpp
@@ -19,56 +19,24 @@
*/
#include "variant.h"
-
#include "wiring_constants.h"
#include "wiring_digital.h"
#include "nrf.h"
-const uint32_t g_ADigitalPinMap[] = {
- // D0 - D7
- 0, // xtal 1
- 1, // xtal 2
- 2, // a0
- 3, // a1
- 4, // a2
- 5, // a3
- 6, // TXD
- 7, // GPIO #7
-
- // D8 - D13
- 8, // RXD
-
- 9, // NFC1
- 10, // NFC2
-
- 11, // GPIO11
-
- 12, // SCK
- 13, // MOSI
- 14, // MISO
-
- 15, // GPIO #15
- 16, // GPIO #16
-
- // function set pins
- 17, // LED #1 (red)
- 18, // SWO
- 19, // LED #2 (blue)
- 20, // DFU
- 21, // Reset
- 22, // Factory Reset
- 23, // N/A
- 24, // N/A
-
- 25, // SDA
- 26, // SCL
- 27, // GPIO #27
- 28, // A4
- 29, // A5
- 30, // A6
- 31, // A7
+const uint32_t g_ADigitalPinMap[] =
+{
+ // P0
+ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ,
+ 8 , 9 , 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31,
+
+ // P1
+ 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47
};
+
void initVariant()
{
// LED1 & LED2
@@ -76,6 +44,6 @@ void initVariant()
ledOff(PIN_LED1);
pinMode(PIN_LED2, OUTPUT);
- ledOff(PIN_LED2);
+ ledOff(PIN_LED2);;
}
diff --git a/variants/nectis_nrf52840_gp/variant.h b/variants/nectis_nrf52840_gp/variant.h
new file mode 100644
index 000000000..6aa6d544b
--- /dev/null
+++ b/variants/nectis_nrf52840_gp/variant.h
@@ -0,0 +1,242 @@
+/*
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
+ Copyright (c) 2016 Sandeep Mistry All right reserved.
+ Copyright (c) 2018, Adafruit Industries (adafruit.com)
+ Copyright (c) 2019, CAMI&Co. All rights reserved.
+
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef NECTIS_GP_H
+#define NECTIS_GP_H
+
+/** Master clock frequency */
+#define VARIANT_MCK (64000000ul)
+
+#define USE_LFXO // Board uses 32khz crystal for LF
+// define USE_LFRC // Board uses RC for LF
+
+/*----------------------------------------------------------------------------
+ * Headers
+ *----------------------------------------------------------------------------*/
+
+#include "WVariant.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+/*
+ * 回路図での、SIOxxのxxをピン番号として扱っている
+ */
+
+/*
+ * Analog pins
+ */
+#define PIN_A0 (2)
+#define PIN_A1 (3)
+#define PIN_A2 (4)
+#define PIN_A3 (5)
+#define PIN_A4 (28)
+#define PIN_A5 (29)
+#define PIN_A6 (30)
+#define PIN_A7 (31)
+
+#define ADC_RESOLUTION (10)
+
+/*
+ * Other pins
+ */
+#define PIN_AREF (2)
+#define PIN_DFU (35)
+
+#define PIN_NFC1 (9) // NFC電源側
+#define PIN_NFC2 (10) // NFCグラウンド側
+
+
+// Number of pins defined in PinDescription array
+#define PINS_COUNT (48)
+#define NUM_DIGITAL_PINS (48)
+#define NUM_ANALOG_INPUTS (6)
+#define NUM_ANALOG_OUTPUTS (0)
+
+/*
+ * LEDs
+ */
+#define LED_BLUE (33) // Indicator_LED1
+#define LED_RED (34) // Indicator_LED2
+
+#define PIN_LED1 LED_BLUE
+#define PIN_LED2 LED_RED
+
+#define LED_BUILTIN LED_BLUE
+#define LED_CONN LED_RED
+
+#define LED_STATE_ON (0) // State when LED is litted
+
+
+/*
+ * USB/Battery voltage
+ */
+#define PIN_BATTERY_VOLTAGE (A0)
+#define PIN_USB_VOLTAGE (A1)
+#define PIN_BATTERY_LEVEL_ENABLE (45)
+
+#define BATTERY_VOLTAGE_PIN PIN_BATTERY_VOLTAGE
+#define USB_VOLTAGE_PIN PIN_USB_VOLTAGE
+#define BATTERY_LEVEL_ENABLE_PIN PIN_BATTERY_LEVEL_ENABLE
+
+
+/*
+ * BG96
+ */
+#define MODULE_PWR_PIN (36) // Power Supply to the BG96 and Grove sensors
+#define MODULE_PWRKEY_PIN (42) // Turn On/Off BG96
+
+#define MODULE_UART_CORE (0) // USART2 => USART1
+#define MODULE_UART_RX_PIN (7) // BG96への送信データ, BG96_RXD
+#define MODULE_UART_TX_PIN (6) // BG96からの受信データ, BG96_TXD
+#define MODULE_RTS_PIN (26) // BG96への送信要求, BG96_CTS
+#define MODULE_CTS_PIN (27) // BG96からの送信許可, BG96_RTS
+#define MODULE_DTR_PIN (44) // BG96のデータ端末レディ, BG96_DTR
+#define MODULE_RESET_PIN (43) // BG96のリセット, BG96_RESET
+#define MODULE_STATUS_PIN (37) // BG96のステータス, BG96_STATUS
+#define MODULE_AP_READY (39) // BG96のAP_READY
+
+/*
+ * Grove sensors
+ * | black | red | white | yellow |
+ * | GND | VCC | GROVE_GPIO_6_2 | GROVE_GPIO_6_1 |
+ */
+
+/* Grove sensors
+ * | black | red | white | yellow |
+ * | GND | VCC | GROVE_ANALOG_1_2 | GROVE_ANALOG_1_1 |
+ * | GND | VCC | NC | SIG |
+ */
+
+/* Warning
+ * Analog1, Analog2, Analog3 はハードウェア的に、外部抵抗でプルダウンされている
+ * I2C, UART, GPIO は解放されている(不定状態)
+ */
+#define GROVE_VCCB_PIN (25) // GROVE_PWR
+
+#define GROVE_ANALOG_1_1 (4) // Analog in/out, GROVE_GPIO_1_1
+// GROVE_ANALOG_1_2 NC // NC
+#define GROVE_ANALOG_2_1 (5) // Analog in/out, GROVE_GPIO_2_1
+// GROVE_ANALOG_2_2 NC // NC
+#define GROVE_SPI_CORE (0)
+#define GROVE_SPI_MISO (28)
+#define GROVE_SPI_MOSI (29)
+#define GROVE_SPI_CLK (30)
+#define GROVE_SPI_SS (31)
+#define GROVE_I2C_CORE (0)
+#define GROVE_I2C_SCL (12) // I2C, GROVE_GPIO_4_1
+#define GROVE_I2C_SDA (11) // I2C, GROVE_GPIO_4_2
+#define GROVE_UART_CORE (1) // USART1
+#define GROVE_UART_RX (13) // UART, GROVE_GPIO_5_1
+#define GROVE_UART_TX (14) // UART, GROVE_GPIO_5_2
+#define GROVE_GPIO_6_1 (15) // GPIO, GROVE_GPIO_6_1
+#define GROVE_GPIO_6_2 (16) // GPIO, GROVE_GPIO_6_2
+
+
+/*
+ * External RTC
+ */
+#define RTC_I2C_CORE (1)
+#define RTC_I2C_SCL (8) // I2C, For RTC
+#define RTC_I2C_SDA (41) // I2C, For RTC
+#define RTC_INTRB (9) // IF this pin is set to LOW,
+
+
+/*
+ * QSPI interface for external flash
+ */
+#define PIN_QSPI_SCK (19) // Quad SPIクロック, equals to PIN_QSPI_SCLK
+#define PIN_QSPI_CS (24) // Quad SPIチップセレクト
+#define PIN_QSPI_IO0 (20) // Quad SPIデータ入出力
+#define PIN_QSPI_IO1 (21) // Quad SPIデータ入出力
+#define PIN_QSPI_IO2 (22) // Quad SPIデータ入出力
+#define PIN_QSPI_IO3 (23) // Quad SPIデータ入出力
+
+#define PIN_QSPI_DATA0 PIN_QSPI_IO0
+#define PIN_QSPI_DATA1 PIN_QSPI_IO1
+#define PIN_QSPI_DATA2 PIN_QSPI_IO2
+#define PIN_QSPI_DATA3 PIN_QSPI_IO3
+
+
+//#define DEBUG_UART_CORE (2) // USART3
+//#define DEBUG_UART_TX_PIN MODULE_UART_TX_PIN
+//#define DEBUG_UART_RX_PIN MODULE_UART_RX_PIN
+
+
+static const uint8_t A0 = PIN_A0;
+static const uint8_t A1 = PIN_A1;
+static const uint8_t A2 = PIN_A2;
+static const uint8_t A3 = PIN_A3;
+static const uint8_t A4 = PIN_A4;
+static const uint8_t A5 = PIN_A5;
+static const uint8_t A6 = PIN_A6;
+static const uint8_t A7 = PIN_A7;
+
+static const uint8_t AREF = PIN_AREF;
+
+static const uint8_t SS = PIN_SPI_CS;
+static const uint8_t MOSI = PIN_SPI_MOSI;
+static const uint8_t MISO = PIN_SPI_MISO;
+static const uint8_t SCK = PIN_SPI_SCK;
+
+
+/*
+ * Serial interfaces
+ */
+#define PIN_SERIAL_RX (GROVE_UART_RX)
+#define PIN_SERIAL_TX (GROVE_UART_TX)
+
+#define PIN_SERIAL1_RX (MODULE_UART_RX_PIN)
+#define PIN_SERIAL1_TX (MODULE_UART_TX_PIN)
+
+/*
+ * SPI Interfaces
+ */
+#define SPI_INTERFACES_COUNT (2)
+
+#define PIN_SPI_MISO (GROVE_SPI_MISO)
+#define PIN_SPI_MOSI (GROVE_SPI_MOSI)
+#define PIN_SPI_SCK (GROVE_SPI_SCK)
+#define PIN_SPI_CS (GROVE_SPI_CS)
+
+/*
+ * Wire Interfaces
+ */
+#define WIRE_INTERFACES_COUNT (2)
+
+#define PIN_WIRE_SDA (GROVE_I2C_SDA)
+#define PIN_WIRE_SCL (GROVE_I2C_SCL)
+
+
+// On-board QSPI Flash
+// If EXTERNAL_FLASH_DEVICES is not defined, all supported devices will be used
+#define EXTERNAL_FLASH_DEVICES GD25Q16C
+
+#ifdef __cplusplus
+}
+#endif
+
+/*----------------------------------------------------------------------------
+ * Arduino objects - C++ only
+ *----------------------------------------------------------------------------*/
+
+#endif // NECTIS_GP_H
diff --git a/variants/pca10056/variant.h b/variants/pca10056/variant.h
deleted file mode 100644
index e9aa38db5..000000000
--- a/variants/pca10056/variant.h
+++ /dev/null
@@ -1,148 +0,0 @@
- /*
- Copyright (c) 2014-2015 Arduino LLC. All right reserved.
- Copyright (c) 2016 Sandeep Mistry All right reserved.
- Copyright (c) 2018, Adafruit Industries (adafruit.com)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef _VARIANT_PCA10056_
-#define _VARIANT_PCA10056_
-
-/** Master clock frequency */
-#define VARIANT_MCK (64000000ul)
-
-#define USE_LFXO // Board uses 32khz crystal for LF
-// define USE_LFRC // Board uses RC for LF
-
-/*----------------------------------------------------------------------------
- * Headers
- *----------------------------------------------------------------------------*/
-
-#include "WVariant.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif // __cplusplus
-
-// Number of pins defined in PinDescription array
-#define PINS_COUNT (48)
-#define NUM_DIGITAL_PINS (48)
-#define NUM_ANALOG_INPUTS (6)
-#define NUM_ANALOG_OUTPUTS (0)
-
-// LEDs
-#define PIN_LED1 (13)
-#define PIN_LED2 (14)
-
-#define LED_BUILTIN PIN_LED1
-#define LED_CONN PIN_LED2
-
-#define LED_RED PIN_LED1
-#define LED_BLUE PIN_LED2
-
-#define LED_STATE_ON 0 // State when LED is litted
-
-/*
- * Buttons
- */
-#define PIN_BUTTON1 11
-#define PIN_BUTTON2 12
-#define PIN_BUTTON3 24
-#define PIN_BUTTON4 25
-
-/*
- * Analog pins
- */
-#define PIN_A0 (3)
-#define PIN_A1 (4)
-#define PIN_A2 (28)
-#define PIN_A3 (29)
-#define PIN_A4 (30)
-#define PIN_A5 (31)
-#define PIN_A6 (0xff)
-#define PIN_A7 (0xff)
-
-static const uint8_t A0 = PIN_A0 ;
-static const uint8_t A1 = PIN_A1 ;
-static const uint8_t A2 = PIN_A2 ;
-static const uint8_t A3 = PIN_A3 ;
-static const uint8_t A4 = PIN_A4 ;
-static const uint8_t A5 = PIN_A5 ;
-static const uint8_t A6 = PIN_A6 ;
-static const uint8_t A7 = PIN_A7 ;
-#define ADC_RESOLUTION 14
-
-// Other pins
-#define PIN_AREF (2)
-#define PIN_NFC1 (9)
-#define PIN_NFC2 (10)
-
-static const uint8_t AREF = PIN_AREF;
-
-/*
- * Serial interfaces
- */
-
-// Arduino Header D0, D1
-#define PIN_SERIAL1_RX (33) // P1.01
-#define PIN_SERIAL1_TX (34) // P1.02
-
-// Connected to Jlink CDC
-#define PIN_SERIAL2_RX (8)
-#define PIN_SERIAL2_TX (6)
-
-/*
- * SPI Interfaces
- */
-#define SPI_INTERFACES_COUNT 1
-
-#define PIN_SPI_MISO (46)
-#define PIN_SPI_MOSI (45)
-#define PIN_SPI_SCK (47)
-
-static const uint8_t SS = 44 ;
-static const uint8_t MOSI = PIN_SPI_MOSI ;
-static const uint8_t MISO = PIN_SPI_MISO ;
-static const uint8_t SCK = PIN_SPI_SCK ;
-
-/*
- * Wire Interfaces
- */
-#define WIRE_INTERFACES_COUNT 1
-
-#define PIN_WIRE_SDA (26)
-#define PIN_WIRE_SCL (27)
-
-// QSPI Pins
-#define PIN_QSPI_SCK 19
-#define PIN_QSPI_CS 17
-#define PIN_QSPI_IO0 20
-#define PIN_QSPI_IO1 21
-#define PIN_QSPI_IO2 22
-#define PIN_QSPI_IO3 23
-
-// On-board QSPI Flash
-#define EXTERNAL_FLASH_DEVICES MX25R6435F
-#define EXTERNAL_FLASH_USE_QSPI
-
-#ifdef __cplusplus
-}
-#endif
-
-/*----------------------------------------------------------------------------
- * Arduino objects - C++ only
- *----------------------------------------------------------------------------*/
-
-#endif