From 75448d5e4bedbe0621374984759178d314df5fc3 Mon Sep 17 00:00:00 2001 From: obito <496420502@qq.com> Date: Sun, 10 Mar 2019 19:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=A0=E4=B8=BA=E5=88=9A=E5=85=A5=E6=89=8BRT?= =?UTF-8?q?-Thread=E7=9A=84=E6=97=B6=E5=80=99=E5=B0=B1=E6=83=B3=E6=89=BE?= =?UTF-8?q?=E8=BF=99=E4=B8=AA=E6=AD=A3=E7=82=B9=E5=8E=9F=E5=AD=90=E6=88=98?= =?UTF-8?q?=E8=88=B0V3=E5=BC=80=E5=8F=91=E6=9D=BF=E7=9A=84BSP=EF=BC=8C?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E6=B2=A1=E6=89=BE=E5=88=B0=EF=BC=8C=E4=B8=80?= =?UTF-8?q?=E5=BC=80=E5=A7=8B=E5=B0=B1=E5=88=B6=E4=BD=9CBSP=E9=97=A8?= =?UTF-8?q?=E6=A7=9B=E7=9B=B8=E5=AF=B9=E9=AB=98=E4=BA=86=EF=BC=8C=E7=89=B9?= =?UTF-8?q?=E6=AD=A4=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=AD=A3=E7=82=B9=E5=8E=9F?= =?UTF-8?q?=E5=AD=90=E7=9A=84=E6=88=98=E8=88=B0V3=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E6=9D=BF=E7=9A=84BSP=EF=BC=88STM32F103ZET6=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E6=89=80=E6=9C=89=E5=92=8C=E6=88=91=E7=94=A8?= =?UTF-8?q?=E8=BF=99=E6=AC=BE=E5=BC=80=E5=8F=91=E6=9D=BF=E7=9A=84=E4=BA=BA?= =?UTF-8?q?=E5=BF=AB=E9=80=9F=E5=85=A5=E9=97=A8RTT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/stm32/stm32f103-atk-warshipv3/.config | 350 ++ bsp/stm32/stm32f103-atk-warshipv3/.gitignore | 42 + bsp/stm32/stm32f103-atk-warshipv3/Kconfig | 22 + bsp/stm32/stm32f103-atk-warshipv3/README.md | 124 + bsp/stm32/stm32f103-atk-warshipv3/SConscript | 15 + bsp/stm32/stm32f103-atk-warshipv3/SConstruct | 58 + .../applications/SConscript | 11 + .../applications/main.c | 39 + .../board/CubeMX_Config/.mxproject | 13 + .../board/CubeMX_Config/CubeMX_Config.ioc | 116 + .../board/CubeMX_Config/Inc/main.h | 71 + .../CubeMX_Config/Inc/stm32f1xx_hal_conf.h | 370 +++ .../board/CubeMX_Config/Inc/stm32f1xx_it.h | 69 + .../board/CubeMX_Config/Src/main.c | 225 ++ .../CubeMX_Config/Src/stm32f1xx_hal_msp.c | 156 + .../board/CubeMX_Config/Src/stm32f1xx_it.c | 203 ++ .../CubeMX_Config/Src/system_stm32f1xx.c | 448 +++ .../stm32f103-atk-warshipv3/board/Kconfig | 198 ++ .../stm32f103-atk-warshipv3/board/SConscript | 35 + .../stm32f103-atk-warshipv3/board/board.c | 44 + .../stm32f103-atk-warshipv3/board/board.h | 50 + .../board/linker_scripts/link.icf | 28 + .../board/linker_scripts/link.lds | 143 + .../board/linker_scripts/link.sct | 15 + .../stm32f103-atk-warshipv3/figures/board.jpg | Bin 0 -> 361354 bytes bsp/stm32/stm32f103-atk-warshipv3/project.ewd | 2834 +++++++++++++++++ bsp/stm32/stm32f103-atk-warshipv3/project.ewp | 2252 +++++++++++++ bsp/stm32/stm32f103-atk-warshipv3/project.eww | 10 + .../stm32f103-atk-warshipv3/project.uvopt | 947 ++++++ .../stm32f103-atk-warshipv3/project.uvoptx | 980 ++++++ .../stm32f103-atk-warshipv3/project.uvproj | 725 +++++ .../stm32f103-atk-warshipv3/project.uvprojx | 727 +++++ bsp/stm32/stm32f103-atk-warshipv3/rtconfig.h | 174 + bsp/stm32/stm32f103-atk-warshipv3/rtconfig.py | 134 + .../stm32f103-atk-warshipv3/template.ewp | 2032 ++++++++++++ .../stm32f103-atk-warshipv3/template.eww | 10 + .../stm32f103-atk-warshipv3/template.uvopt | 162 + .../stm32f103-atk-warshipv3/template.uvoptx | 204 ++ .../stm32f103-atk-warshipv3/template.uvproj | 407 +++ .../stm32f103-atk-warshipv3/template.uvprojx | 415 +++ 40 files changed, 14858 insertions(+) create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/.config create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/.gitignore create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/Kconfig create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/README.md create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/SConscript create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/SConstruct create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/applications/SConscript create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/applications/main.c create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/.mxproject create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/CubeMX_Config.ioc create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/main.h create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/stm32f1xx_hal_conf.h create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/stm32f1xx_it.h create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/main.c create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/stm32f1xx_hal_msp.c create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/stm32f1xx_it.c create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/system_stm32f1xx.c create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/Kconfig create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/SConscript create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/board.c create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/board.h create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.icf create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.lds create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.sct create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/figures/board.jpg create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/project.ewd create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/project.ewp create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/project.eww create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/project.uvopt create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/project.uvoptx create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/project.uvproj create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/project.uvprojx create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/rtconfig.h create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/rtconfig.py create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/template.ewp create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/template.eww create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/template.uvopt create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/template.uvoptx create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/template.uvproj create mode 100644 bsp/stm32/stm32f103-atk-warshipv3/template.uvprojx diff --git a/bsp/stm32/stm32f103-atk-warshipv3/.config b/bsp/stm32/stm32f103-atk-warshipv3/.config new file mode 100644 index 0000000000..a5591a3de7 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/.config @@ -0,0 +1,350 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDEL_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +# CONFIG_RT_USING_TIMER_SOFT is not set +CONFIG_RT_DEBUG=y +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" +CONFIG_RT_VER_NUM=0x40001 +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M3=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +CONFIG_FINSH_USING_MSH_ONLY=y +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_SERIAL_USING_DMA=y +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_MTD is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set + +# +# Using WiFi +# +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# Modbus master and slave stack +# +# CONFIG_RT_USING_MODBUS is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_LOGTRACE is not set +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set + +# +# ARM CMSIS +# +# CONFIG_RT_USING_CMSIS_OS is not set +# CONFIG_RT_USING_RTT_CMSIS is not set +# CONFIG_RT_USING_LWP is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOTKIT is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_MPU6XXX is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set + +# +# miscellaneous packages +# +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +CONFIG_SOC_FAMILY_STM32=y +CONFIG_SOC_SERIES_STM32F1=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_STM32F103ZE=y + +# +# Onboard Peripheral Drivers +# + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_UART1=y +# CONFIG_BSP_USING_UART2 is not set +CONFIG_BSP_UART1_RX_USING_DMA=y + +# +# Board extended module Drivers +# diff --git a/bsp/stm32/stm32f103-atk-warshipv3/.gitignore b/bsp/stm32/stm32f103-atk-warshipv3/.gitignore new file mode 100644 index 0000000000..7221bde019 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/.gitignore @@ -0,0 +1,42 @@ +*.pyc +*.map +*.dblite +*.elf +*.bin +*.hex +*.axf +*.exe +*.pdb +*.idb +*.ilk +*.old +build +Debug +documentation/html +packages/ +*~ +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +.DS_Stor* +.config 3 +.config 4 +.config 5 +Midea-X1 +*.uimg +GPATH +GRTAGS +GTAGS +.vscode +JLinkLog.txt +JLinkSettings.ini +DebugConfig/ +RTE/ +settings/ +*.uvguix* +cconfig.h diff --git a/bsp/stm32/stm32f103-atk-warshipv3/Kconfig b/bsp/stm32/stm32f103-atk-warshipv3/Kconfig new file mode 100644 index 0000000000..7a400db91f --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/Kconfig @@ -0,0 +1,22 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../../.." + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "../libraries/Kconfig" +source "board/Kconfig" + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/README.md b/bsp/stm32/stm32f103-atk-warshipv3/README.md new file mode 100644 index 0000000000..9eb3a0d011 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/README.md @@ -0,0 +1,124 @@ +# STM32F103 正点原子战舰V3开发板 BSP 说明 + +## 简介 + +本文档为 正点原子战舰V3 开发板的 BSP (板级支持包) 说明。 + +主要内容如下: + +- 开发板资源介绍 +- BSP 快速上手 +- 进阶使用方法 + +通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 + +## 开发板介绍 + +STM32F103战舰V3,资源丰富,接口多,功能强大,性价比高,资料全,外观炫酷,布局人性化,配件丰富,配件的接口丰富,是学习嵌入式的好开发板 + +开发板外观如下图所示: + +![board](figures/board.png) + +该开发板常用 **板载资源** 如下: + +- MCU:STM32F103ZET6,主频 72MHz,512KB FLASH ,64KB RAM +- 外部 RAM:无 +- 外部 FLASH:W25Q128(SPI2,128MB)、EEPROM(24c02) +- 常用外设 + - LED:2个,DS0(黄色,PB5),DS1(红色,PE5) + - 按键:4个,K0(兼具唤醒功能,PA0),K1(PE4), K2 (PE3) , K3 (PE2) +- 常用接口:USB 转串口、SD 卡接口、以太网接口、LCD 接口、USB SLAVE等 +- 调试接口,板载的 ST-LINK SWD 下载 + +开发板更多详细信息请参考[正点原子] [战舰V3开发板介绍] http://www.openedv.com + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **板载外设** | **支持情况** | **备注** | +| :----------------- | :----------: | :------------------------------------- | +| USB 转串口 | 支持 | UART1 | +| SPI Flash | 支持 | W25Q128 128M FLASH SPI2 | +| 以太网 | 支持 | DM9000 | +| SD卡 | 支持 | | +| RS485 | 支持 | USART2 | +| **片上外设** | **支持情况** | **备注** | +| GPIO | 支持 | PA0, PA1... PG15 ---> PIN: 0, 1...111 | +| UART | 支持 | UART1/2/3 | +| SPI | 支持 | SPI1/2 | +| I2C | 支持 | 软件 I2C | +| ADC | 支持 | | +| RTC | 支持 | | +| PWM | 支持 | TIM3 CH1 TIM3 CH2 | +| CAN | 支持 | | +| IWG | 支持 | | +| **扩展模块** | **支持情况** | **备注** | +| esp8266 | 支持 | USART3 | + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 + +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + + +### 快速上手 + +本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 + +#### 硬件连接 + +使用数据线连接开发板到 PC,打开电源开关。 + +#### 编译下载 + +双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。 + +> 工程默认配置使用 ST-Link 仿真器下载程序,在通过 ST-Link 连接开发板的基础上,点击下载按钮即可下载程序到开发板 + +#### 运行结果 + +下载程序成功之后,系统会自动运行,两个 LED 闪烁 。 + +连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: + +```bash + \ | / +- RT - Thread Operating System + / | \ 4.0.1 build Mar 10 2019 + 2006 - 2019 Copyright by rt-thread team +msh > +``` +### 进阶使用 + +此 BSP 默认只开启了 GPIO 和 串口1 的功能,如果需使用 SD 卡、Flash 等更多高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下: + +1. 在 bsp 下打开 env 工具。 + +2. 输入`menuconfig`命令配置工程,配置好之后保存退出。 + +3. 输入`pkgs --update`命令更新软件包。 + +4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。 + +本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)。 + +## 注意事项 + +- 此开发板外部高速晶振是 12MHz ; +- 建议使用USB转TTL连接到PC机 ; +- 正点原子开发板 在使用终端工具如:PuTTy、XShell 时,会出现系统不能启动的问题,推荐使用串口调试助手如:sscom + +## 联系人信息 + +维护人: + +- [obito0](https://github.com/obito0), 邮箱:<496420502@qq.com> \ No newline at end of file diff --git a/bsp/stm32/stm32f103-atk-warshipv3/SConscript b/bsp/stm32/stm32f103-atk-warshipv3/SConscript new file mode 100644 index 0000000000..20f7689c53 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/stm32/stm32f103-atk-warshipv3/SConstruct b/bsp/stm32/stm32f103-atk-warshipv3/SConstruct new file mode 100644 index 0000000000..05326b2b75 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/SConstruct @@ -0,0 +1,58 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rt-thread.' + rtconfig.TARGET_EXT + +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +stm32_library = 'STM32F1xx_HAL' +rtconfig.BSP_LIBRARY_TYPE = stm32_library + +# include libraries +objs.extend(SConscript(os.path.join(libraries_path_prefix, stm32_library, 'SConscript'))) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/stm32/stm32f103-atk-warshipv3/applications/SConscript b/bsp/stm32/stm32f103-atk-warshipv3/applications/SConscript new file mode 100644 index 0000000000..ef1c39fd83 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/applications/SConscript @@ -0,0 +1,11 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * + +cwd = GetCurrentDir() +src = Glob('*.c') +CPPPATH = [cwd, ] + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/stm32/stm32f103-atk-warshipv3/applications/main.c b/bsp/stm32/stm32f103-atk-warshipv3/applications/main.c new file mode 100644 index 0000000000..ab323bcb8c --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/applications/main.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-03-08 obito0 first version + */ + +#include +#include +#include + +/* defined the LED0 pin: PB5 */ +#define LED0_PIN GET_PIN(B, 5) +/* defined the LED0 pin: PE5 */ +#define LED1_PIN GET_PIN(E, 5) + +int main(void) +{ + int count = 1; + /* set LED0 pin mode to output */ + rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); + /* set LED1 pin mode to output */ + rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); + + while (count++) + { + rt_pin_write(LED0_PIN, PIN_HIGH); + rt_pin_write(LED1_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED0_PIN, PIN_LOW); + rt_pin_write(LED1_PIN, PIN_LOW); + rt_thread_mdelay(500); + } + + return RT_EOK; +} diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/.mxproject new file mode 100644 index 0000000000..bab08a26bd --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/.mxproject @@ -0,0 +1,13 @@ +[PreviousGenFiles] +HeaderPath=G:/Wondfo/RT-Thread/Official information/rt-thread-master/bsp/1stm32/stm32f103-atk-warshipV3/board/CubeMX_Config/Inc +HeaderFiles=stm32f1xx_it.h;stm32f1xx_hal_conf.h;main.h; +SourcePath=G:/Wondfo/RT-Thread/Official information/rt-thread-master/bsp/1stm32/stm32f103-atk-warshipV3/board/CubeMX_Config/Src +SourceFiles=stm32f1xx_it.c;stm32f1xx_hal_msp.c;main.c; + +[PreviousLibFiles] +LibFiles=Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Drivers/CMSIS/Include/arm_common_tables.h;Drivers/CMSIS/Include/arm_const_structs.h;Drivers/CMSIS/Include/arm_math.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armcc_V6.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_cmFunc.h;Drivers/CMSIS/Include/core_cmInstr.h;Drivers/CMSIS/Include/core_cmSimd.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h; + +[PreviousUsedKeilFiles] +SourceFiles=..\Src\main.c;..\Src\stm32f1xx_it.c;..\Src\stm32f1xx_hal_msp.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;../\Src/system_stm32f1xx.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;../\Src/system_stm32f1xx.c;../Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;null; +HeaderPath=..\Drivers\STM32F1xx_HAL_Driver\Inc;..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F1xx\Include;..\Drivers\CMSIS\Include;..\Inc; + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/CubeMX_Config.ioc new file mode 100644 index 0000000000..0482a4927a --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/CubeMX_Config.ioc @@ -0,0 +1,116 @@ +#MicroXplorer Configuration settings - do not modify +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F1 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.IP2=SYS +Mcu.IP3=USART1 +Mcu.IPNb=4 +Mcu.Name=STM32F103Z(C-D-E)Tx +Mcu.Package=LQFP144 +Mcu.Pin0=PC14-OSC32_IN +Mcu.Pin1=PC15-OSC32_OUT +Mcu.Pin2=OSC_IN +Mcu.Pin3=OSC_OUT +Mcu.Pin4=PA9 +Mcu.Pin5=PA10 +Mcu.Pin6=VP_SYS_VS_ND +Mcu.Pin7=VP_SYS_VS_Systick +Mcu.PinsNb=8 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F103ZETx +MxCube.Version=5.1.0 +MxDb.Version=DB.5.0.10 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +OSC_IN.Mode=HSE-External-Oscillator +OSC_IN.Signal=RCC_OSC_IN +OSC_OUT.Mode=HSE-External-Oscillator +OSC_OUT.Signal=RCC_OSC_OUT +PA10.Mode=Asynchronous +PA10.Signal=USART1_RX +PA9.Mode=Asynchronous +PA9.Signal=USART1_TX +PC14-OSC32_IN.Mode=LSE-External-Oscillator +PC14-OSC32_IN.Signal=RCC_OSC32_IN +PC15-OSC32_OUT.Mode=LSE-External-Oscillator +PC15-OSC32_OUT.Signal=RCC_OSC32_OUT +PCC.Checker=false +PCC.Line=STM32F103 +PCC.MCU=STM32F103Z(C-D-E)Tx +PCC.PartNumber=STM32F103ZETx +PCC.Seq0=0 +PCC.Series=STM32F1 +PCC.Temperature=25 +PCC.Vdd=3.3 +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F103ZETx +ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.7.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=0 +ProjectManager.MainLocation=Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=CubeMX_Config.ioc +ProjectManager.ProjectName=CubeMX_Config +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=MDK-ARM V5 +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=false +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true +RCC.ADCFreqValue=36000000 +RCC.AHBFreq_Value=72000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +RCC.APB1Freq_Value=36000000 +RCC.APB1TimFreq_Value=72000000 +RCC.APB2Freq_Value=72000000 +RCC.APB2TimFreq_Value=72000000 +RCC.FCLKCortexFreq_Value=72000000 +RCC.FSMCFreq_Value=72000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=72000000 +RCC.I2S2Freq_Value=72000000 +RCC.I2S3Freq_Value=72000000 +RCC.IPParameters=ADCFreqValue,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FSMCFreq_Value,FamilyName,HCLKFreq_Value,I2S2Freq_Value,I2S3Freq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,SDIOFreq_Value,SDIOHCLKDiv2FreqValue,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USBFreq_Value,VCOOutput2Freq_Value +RCC.MCOFreq_Value=72000000 +RCC.PLLCLKFreq_Value=72000000 +RCC.PLLMCOFreq_Value=36000000 +RCC.PLLMUL=RCC_PLL_MUL9 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE +RCC.SDIOFreq_Value=72000000 +RCC.SDIOHCLKDiv2FreqValue=36000000 +RCC.SYSCLKFreq_VALUE=72000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.TimSysFreq_Value=72000000 +RCC.USBFreq_Value=72000000 +RCC.VCOOutput2Freq_Value=8000000 +USART1.IPParameters=VirtualMode +USART1.VirtualMode=VM_ASYNC +VP_SYS_VS_ND.Mode=No_Debug +VP_SYS_VS_ND.Signal=SYS_VS_ND +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +board=custom diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/main.h new file mode 100644 index 0000000000..75cb6f9a15 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/main.h @@ -0,0 +1,71 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/stm32f1xx_hal_conf.h b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/stm32f1xx_hal_conf.h new file mode 100644 index 0000000000..9ab2b09148 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/stm32f1xx_hal_conf.h @@ -0,0 +1,370 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_conf.h + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT(c) 2019 STMicroelectronics

+ * + * 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 STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_CONF_H +#define __STM32F1xx_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ + +#define HAL_MODULE_ENABLED +/*#define HAL_ADC_MODULE_ENABLED */ +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_CAN_MODULE_ENABLED */ +/*#define HAL_CEC_MODULE_ENABLED */ +/*#define HAL_CORTEX_MODULE_ENABLED */ +/*#define HAL_CRC_MODULE_ENABLED */ +/*#define HAL_DAC_MODULE_ENABLED */ +/*#define HAL_DMA_MODULE_ENABLED */ +/*#define HAL_ETH_MODULE_ENABLED */ +/*#define HAL_FLASH_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +/*#define HAL_I2C_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +/*#define HAL_IWDG_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_NAND_MODULE_ENABLED */ +/*#define HAL_PCCARD_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +/*#define HAL_HCD_MODULE_ENABLED */ +/*#define HAL_PWR_MODULE_ENABLED */ +/*#define HAL_RCC_MODULE_ENABLED */ +/*#define HAL_RTC_MODULE_ENABLED */ +/*#define HAL_SD_MODULE_ENABLED */ +/*#define HAL_MMC_MODULE_ENABLED */ +/*#define HAL_SDRAM_MODULE_ENABLED */ +/*#define HAL_SMARTCARD_MODULE_ENABLED */ +/*#define HAL_SPI_MODULE_ENABLED */ +/*#define HAL_SRAM_MODULE_ENABLED */ +/*#define HAL_TIM_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/*#define HAL_USART_MODULE_ENABLED */ +/*#define HAL_WWDG_MODULE_ENABLED */ +/*#define HAL_EXTI_MODULE_ENABLED */ + +#define HAL_CORTEX_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_GPIO_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation ####################*/ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)8000000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE 40000U /*!< LSI Typical Value in Hz */ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ + +/** + * @brief External Low Speed oscillator (LSE) value. + * This value is used by the UART, RTC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY ((uint32_t)0) /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0 +#define PREFETCH_ENABLE 1 + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Ethernet peripheral configuration ##################### */ + +/* Section 1 : Ethernet peripheral configuration */ + +/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */ +#define MAC_ADDR0 2 +#define MAC_ADDR1 0 +#define MAC_ADDR2 0 +#define MAC_ADDR3 0 +#define MAC_ADDR4 0 +#define MAC_ADDR5 0 + +/* Definition of the Ethernet driver buffers size and count */ +#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */ +#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */ +#define ETH_RXBUFNB ((uint32_t)8) /* 4 Rx buffers of size ETH_RX_BUF_SIZE */ +#define ETH_TXBUFNB ((uint32_t)4) /* 4 Tx buffers of size ETH_TX_BUF_SIZE */ + +/* Section 2: PHY configuration section */ + +/* DP83848_PHY_ADDRESS Address*/ +#define DP83848_PHY_ADDRESS 0x01U +/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/ +#define PHY_RESET_DELAY ((uint32_t)0x000000FF) +/* PHY Configuration delay */ +#define PHY_CONFIG_DELAY ((uint32_t)0x00000FFF) + +#define PHY_READ_TO ((uint32_t)0x0000FFFF) +#define PHY_WRITE_TO ((uint32_t)0x0000FFFF) + +/* Section 3: Common PHY Registers */ + +#define PHY_BCR ((uint16_t)0x00) /*!< Transceiver Basic Control Register */ +#define PHY_BSR ((uint16_t)0x01) /*!< Transceiver Basic Status Register */ + +#define PHY_RESET ((uint16_t)0x8000) /*!< PHY Reset */ +#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */ +#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< Set the full-duplex mode at 100 Mb/s */ +#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /*!< Set the half-duplex mode at 100 Mb/s */ +#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /*!< Set the full-duplex mode at 10 Mb/s */ +#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /*!< Set the half-duplex mode at 10 Mb/s */ +#define PHY_AUTONEGOTIATION ((uint16_t)0x1000) /*!< Enable auto-negotiation function */ +#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< Restart auto-negotiation function */ +#define PHY_POWERDOWN ((uint16_t)0x0800) /*!< Select the power down mode */ +#define PHY_ISOLATE ((uint16_t)0x0400) /*!< Isolate PHY from MII */ + +#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< Auto-Negotiation process completed */ +#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */ +#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< Jabber condition detected */ + +/* Section 4: Extended PHY Registers */ +#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */ + +#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */ + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "stm32f1xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32f1xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32f1xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32f1xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_ETH_MODULE_ENABLED + #include "stm32f1xx_hal_eth.h" +#endif /* HAL_ETH_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32f1xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED + #include "stm32f1xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32f1xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32f1xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32f1xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32f1xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32f1xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32f1xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32f1xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32f1xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32f1xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32f1xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32f1xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32f1xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED + #include "stm32f1xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32f1xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED + #include "stm32f1xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32f1xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32f1xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32f1xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32f1xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32f1xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32f1xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32f1xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32f1xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32f1xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED + #include "stm32f1xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/stm32f1xx_it.h b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/stm32f1xx_it.h new file mode 100644 index 0000000000..101d8aa728 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Inc/stm32f1xx_it.h @@ -0,0 +1,69 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f1xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_IT_H +#define __STM32F1xx_IT_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/main.c new file mode 100644 index 0000000000..c183908d36 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/main.c @@ -0,0 +1,225 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +UART_HandleTypeDef huart1; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_USART1_UART_Init(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_USART1_UART_Init(); + /* USER CODE BEGIN 2 */ + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief USART1 Initialization Function + * @param None + * @retval None + */ +static void MX_USART1_UART_Init(void) +{ + + /* USER CODE BEGIN USART1_Init 0 */ + + /* USER CODE END USART1_Init 0 */ + + /* USER CODE BEGIN USART1_Init 1 */ + + /* USER CODE END USART1_Init 1 */ + huart1.Instance = USART1; + huart1.Init.BaudRate = 115200; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + if (HAL_UART_Init(&huart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART1_Init 2 */ + + /* USER CODE END USART1_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/stm32f1xx_hal_msp.c b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/stm32f1xx_hal_msp.c new file mode 100644 index 0000000000..bd70146cfe --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/stm32f1xx_hal_msp.c @@ -0,0 +1,156 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * File Name : stm32f1xx_hal_msp.c + * Description : This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_AFIO_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /** DISABLE: JTAG-DP Disabled and SW-DP Disabled + */ + __HAL_AFIO_REMAP_SWJ_DISABLE(); + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/** +* @brief UART MSP Initialization +* This function configures the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_9; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_10; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } + +} + +/** +* @brief UART MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) +{ + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); + + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/stm32f1xx_it.c b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/stm32f1xx_it.c new file mode 100644 index 0000000000..6a95ce4bae --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/stm32f1xx_it.c @@ -0,0 +1,203 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f1xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32f1xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ + +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M3 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32F1xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32f1xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/system_stm32f1xx.c b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/system_stm32f1xx.c new file mode 100644 index 0000000000..af3759a3b6 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/CubeMX_Config/Src/system_stm32f1xx.c @@ -0,0 +1,448 @@ +/** + ****************************************************************************** + * @file system_stm32f1xx.c + * @author MCD Application Team + * @version V4.2.0 + * @date 31-March-2017 + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. + * + * 1. This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier + * factors, AHB/APBx prescalers and Flash settings). + * This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f1xx_xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * 2. After each device reset the HSI (8 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32f1xx_xx.s" file, to + * configure the system clock before to branch to main program. + * + * 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depending on + * the product used), refer to "HSE_VALUE". + * When HSE is used as system clock source, directly or through PLL, and you + * are using different crystal you have to adapt the HSE value to your own + * configuration. + * + ****************************************************************************** + * @attention + * + *

© COPYRIGHT(c) 2017 STMicroelectronics

+ * + * 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 STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f1xx_system + * @{ + */ + +/** @addtogroup STM32F1xx_System_Private_Includes + * @{ + */ + +#include "stm32f1xx.h" + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Defines + * @{ + */ + +#if !defined (HSE_VALUE) + #define HSE_VALUE 8000000U /*!< Default value of the External oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE 8000000U /*!< Default value of the Internal oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSI_VALUE */ + +/*!< Uncomment the following line if you need to use external SRAM */ +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +/* #define DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ + + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Variables + * @{ + */ + +/******************************************************************************* +* Clock Definitions +*******************************************************************************/ +#if defined(STM32F100xB) ||defined(STM32F100xE) + uint32_t SystemCoreClock = 24000000U; /*!< System Clock Frequency (Core Clock) */ +#else /*!< HSI Selected as System Clock source */ + uint32_t SystemCoreClock = 72000000U; /*!< System Clock Frequency (Core Clock) */ +#endif + +const uint8_t AHBPrescTable[16U] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint8_t APBPrescTable[8U] = {0, 0, 0, 0, 1, 2, 3, 4}; + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_FunctionPrototypes + * @{ + */ + +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +#ifdef DATA_IN_ExtSRAM + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemCoreClock variable. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +void SystemInit (void) +{ + /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ + /* Set HSION bit */ + RCC->CR |= 0x00000001U; + + /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ +#if !defined(STM32F105xC) && !defined(STM32F107xC) + RCC->CFGR &= 0xF8FF0000U; +#else + RCC->CFGR &= 0xF0FF0000U; +#endif /* STM32F105xC */ + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= 0xFEF6FFFFU; + + /* Reset HSEBYP bit */ + RCC->CR &= 0xFFFBFFFFU; + + /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ + RCC->CFGR &= 0xFF80FFFFU; + +#if defined(STM32F105xC) || defined(STM32F107xC) + /* Reset PLL2ON and PLL3ON bits */ + RCC->CR &= 0xEBFFFFFFU; + + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x00FF0000U; + + /* Reset CFGR2 register */ + RCC->CFGR2 = 0x00000000U; +#elif defined(STM32F100xB) || defined(STM32F100xE) + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x009F0000U; + + /* Reset CFGR2 register */ + RCC->CFGR2 = 0x00000000U; +#else + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x009F0000U; +#endif /* STM32F105xC */ + +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) + #ifdef DATA_IN_ExtSRAM + SystemInit_ExtMemCtl(); + #endif /* DATA_IN_ExtSRAM */ +#endif + +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f1xx.h file (default value + * 8 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f1xx.h file (default value + * 8 MHz or 25 MHz, depending on the product used), user has to ensure + * that HSE_VALUE is same as the real frequency of the crystal used. + * Otherwise, this function may have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * @param None + * @retval None + */ +void SystemCoreClockUpdate (void) +{ + uint32_t tmp = 0U, pllmull = 0U, pllsource = 0U; + +#if defined(STM32F105xC) || defined(STM32F107xC) + uint32_t prediv1source = 0U, prediv1factor = 0U, prediv2factor = 0U, pll2mull = 0U; +#endif /* STM32F105xC */ + +#if defined(STM32F100xB) || defined(STM32F100xE) + uint32_t prediv1factor = 0U; +#endif /* STM32F100xB or STM32F100xE */ + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00U: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04U: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08U: /* PLL used as system clock */ + + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmull = RCC->CFGR & RCC_CFGR_PLLMULL; + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + +#if !defined(STM32F105xC) && !defined(STM32F107xC) + pllmull = ( pllmull >> 18U) + 2U; + + if (pllsource == 0x00U) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1U) * pllmull; + } + else + { + #if defined(STM32F100xB) || defined(STM32F100xE) + prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1U; + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; + #else + /* HSE selected as PLL clock entry */ + if ((RCC->CFGR & RCC_CFGR_PLLXTPRE) != (uint32_t)RESET) + {/* HSE oscillator clock divided by 2 */ + SystemCoreClock = (HSE_VALUE >> 1U) * pllmull; + } + else + { + SystemCoreClock = HSE_VALUE * pllmull; + } + #endif + } +#else + pllmull = pllmull >> 18U; + + if (pllmull != 0x0DU) + { + pllmull += 2U; + } + else + { /* PLL multiplication factor = PLL input clock * 6.5 */ + pllmull = 13U / 2U; + } + + if (pllsource == 0x00U) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1U) * pllmull; + } + else + {/* PREDIV1 selected as PLL clock entry */ + + /* Get PREDIV1 clock source and division factor */ + prediv1source = RCC->CFGR2 & RCC_CFGR2_PREDIV1SRC; + prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1U; + + if (prediv1source == 0U) + { + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; + } + else + {/* PLL2 clock selected as PREDIV1 clock entry */ + + /* Get PREDIV2 division factor and PLL2 multiplication factor */ + prediv2factor = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> 4U) + 1U; + pll2mull = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> 8U) + 2U; + SystemCoreClock = (((HSE_VALUE / prediv2factor) * pll2mull) / prediv1factor) * pllmull; + } + } +#endif /* STM32F105xC */ + break; + + default: + SystemCoreClock = HSI_VALUE; + break; + } + + /* Compute HCLK clock frequency ----------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4U)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +/** + * @brief Setup the external memory controller. Called in startup_stm32f1xx.s + * before jump to __main + * @param None + * @retval None + */ +#ifdef DATA_IN_ExtSRAM +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f1xx_xx.s/.c before jump to main. + * This function configures the external SRAM mounted on STM3210E-EVAL + * board (STM32 High density devices). This SRAM will be used as program + * data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmpreg; + /*!< FSMC Bank1 NOR/SRAM3 is used for the STM3210E-EVAL, if another Bank is + required, then adjust the Register Addresses */ + + /* Enable FSMC clock */ + RCC->AHBENR = 0x00000114U; + + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_FSMCEN); + + /* Enable GPIOD, GPIOE, GPIOF and GPIOG clocks */ + RCC->APB2ENR = 0x000001E0U; + + /* Delay after an RCC peripheral clock enabling */ + tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPDEN); + + (void)(tmpreg); + +/* --------------- SRAM Data lines, NOE and NWE configuration ---------------*/ +/*---------------- SRAM Address lines configuration -------------------------*/ +/*---------------- NOE and NWE configuration --------------------------------*/ +/*---------------- NE3 configuration ----------------------------------------*/ +/*---------------- NBL0, NBL1 configuration ---------------------------------*/ + + GPIOD->CRL = 0x44BB44BBU; + GPIOD->CRH = 0xBBBBBBBBU; + + GPIOE->CRL = 0xB44444BBU; + GPIOE->CRH = 0xBBBBBBBBU; + + GPIOF->CRL = 0x44BBBBBBU; + GPIOF->CRH = 0xBBBB4444U; + + GPIOG->CRL = 0x44BBBBBBU; + GPIOG->CRH = 0x444B4B44U; + +/*---------------- FSMC Configuration ---------------------------------------*/ +/*---------------- Enable FSMC Bank1_SRAM Bank ------------------------------*/ + + FSMC_Bank1->BTCR[4U] = 0x00001091U; + FSMC_Bank1->BTCR[5U] = 0x00110212U; +} +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/Kconfig b/bsp/stm32/stm32f103-atk-warshipv3/board/Kconfig new file mode 100644 index 0000000000..c5b7ccfd37 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/Kconfig @@ -0,0 +1,198 @@ +menu "Hardware Drivers Config" + +config SOC_STM32F103ZE + bool + select SOC_SERIES_STM32F1 + default y + +menu "Onboard Peripheral Drivers" + + config BSP_USING_USB_TO_USART + bool "Enable USB TO USART (uart1)" + select BSP_USING_UART + select BSP_USING_UART1 + default y + + config BSP_USING_EEPROM + bool "Enable I2C EEPROM (i2c1)" + select BSP_USING_I2C1 + default n + + config BSP_USING_SPI_FLASH + bool "Enable SPI FLASH (W25Q16 spi2)" + select BSP_USING_SPI + select BSP_USING_SPI2 + select RT_USING_SFUD + select RT_SFUD_USING_SFDP + default n + + config BSP_USING_POT + bool "Enable potentiometer" + select BSP_USING_ADC + select BSP_USING_ADC1 + default n + +endmenu + +menu "On-chip Peripheral Drivers" + + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default y + + menuconfig BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + if BSP_USING_UART + config BSP_USING_UART1 + bool "Enable UART1" + default y + + config BSP_UART1_RX_USING_DMA + bool "Enable UART1 RX DMA" + depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA + default n + + config BSP_USING_UART2 + bool "Enable UART2" + default n + + config BSP_UART2_RX_USING_DMA + bool "Enable UART2 RX DMA" + depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA + default n + + config BSP_USING_UART3 + bool "Enable UART3" + default n + + config BSP_UART3_RX_USING_DMA + bool "Enable UART3 RX DMA" + depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA + default n + endif + + menuconfig BSP_USING_TIM + bool "Enable timer" + default n + select RT_USING_HWTIMER + if BSP_USING_TIM + config BSP_USING_TIM2 + bool "Enable TIM2" + default n + + config BSP_USING_TIM3 + bool "Enable TIM3" + default n + + config BSP_USING_TIM4 + bool "Enable TIM4" + default n + endif + + menuconfig BSP_USING_PWM + bool "Enable pwm" + default n + select RT_USING_PWM + if BSP_USING_PWM + menuconfig BSP_USING_PWM3 + bool "Enable timer3 output pwm" + default n + if BSP_USING_PWM3 + config BSP_USING_PWM3_CH1 + bool "Enable PWM3 channel1" + default n + + config BSP_USING_PWM3_CH2 + bool "Enable PWM3 channel2" + default n + endif + endif + + menuconfig BSP_USING_SPI + bool "Enable SPI BUS" + default n + select RT_USING_SPI + if BSP_USING_SPI + config BSP_USING_SPI1 + bool "Enable SPI1 BUS" + default n + + config BSP_SPI1_TX_USING_DMA + bool "Enable SPI1 TX DMA" + depends on BSP_USING_SPI1 + default n + + config BSP_SPI1_RX_USING_DMA + bool "Enable SPI1 RX DMA" + depends on BSP_USING_SPI1 + select BSP_SPI1_TX_USING_DMA + default n + + config BSP_USING_SPI2 + bool "Enable SPI2 BUS" + default n + + config BSP_SPI2_TX_USING_DMA + bool "Enable SPI2 TX DMA" + depends on BSP_USING_SPI2 + default n + + config BSP_SPI2_RX_USING_DMA + bool "Enable SPI2 RX DMA" + depends on BSP_USING_SPI2 + select BSP_SPI2_TX_USING_DMA + default n + endif + + menuconfig BSP_USING_I2C1 + bool "Enable I2C1 BUS (software simulation)" + default n + select RT_USING_I2C + select RT_USING_I2C_BITOPS + select RT_USING_PIN + if BSP_USING_I2C1 + config BSP_I2C1_SCL_PIN + int "i2c1 scl pin number" + range 0 63 + default 22 + config BSP_I2C1_SDA_PIN + int "I2C1 sda pin number" + range 0 63 + default 23 + endif + + menuconfig BSP_USING_ADC + bool "Enable ADC" + default n + select RT_USING_ADC + if BSP_USING_ADC + config BSP_USING_ADC1 + bool "Enable ADC1" + default n + endif + + config BSP_USING_ON_CHIP_FLASH + bool "Enable on-chip FLASH" + default n + + config BSP_USING_ONCHIP_RTC + bool "Enable RTC" + select RT_USING_RTC + select RT_USING_LIBC + default n + + config BSP_USING_WDT + bool "Enable Watchdog Timer" + select RT_USING_WDT + default n + +endmenu + +menu "Board extended module Drivers" + +endmenu + +endmenu diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/SConscript b/bsp/stm32/stm32f103-atk-warshipv3/board/SConscript new file mode 100644 index 0000000000..0f7ccb024c --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/SConscript @@ -0,0 +1,35 @@ +import os +import rtconfig +from building import * + +Import('SDK_LIB') + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +CubeMX_Config/Src/stm32f1xx_hal_msp.c +''') + +path = [cwd] +path += [cwd + '/CubeMX_Config/Inc'] + +startup_path_prefix = SDK_LIB + +if rtconfig.CROSS_TOOL == 'gcc': + src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/startup_stm32f103xe.s'] +elif rtconfig.CROSS_TOOL == 'keil': + src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/arm/startup_stm32f103xe.s'] +elif rtconfig.CROSS_TOOL == 'iar': + src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/iar/startup_stm32f103xe.s'] + +# STM32F100xB || STM32F100xE || STM32F101x6 +# STM32F101xB || STM32F101xE || STM32F101xG +# STM32F102x6 || STM32F102xB || STM32F103x6 +# STM32F103xB || STM32F103xE || STM32F103xG +# STM32F105xC || STM32F107xC) +# You can select chips from the list above +CPPDEFINES = ['STM32F103xE'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) +Return('group') diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/board.c b/bsp/stm32/stm32f103-atk-warshipv3/board/board.c new file mode 100644 index 0000000000..17bfd29f27 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/board.c @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + */ + +#include "board.h" + +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } +} diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/board.h b/bsp/stm32/stm32f103-atk-warshipv3/board/board.h new file mode 100644 index 0000000000..d106345785 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/board.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-5 SummerGift first version + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include +#include "drv_common.h" +#include "drv_gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) +#define STM32_FLASH_SIZE (512 * 1024) +#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) + +/* Internal SRAM memory size[Kbytes] <8-64>, Default: 64*/ +#define STM32_SRAM_SIZE 64 +#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) + +#ifdef __CC_ARM +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end; +#define HEAP_BEGIN ((void *)&__bss_end) +#endif + +#define HEAP_END STM32_SRAM_END + +void SystemClock_Config(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __BOARD_H__ */ diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.icf b/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.icf new file mode 100644 index 0000000000..c61b82bd39 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.icf @@ -0,0 +1,28 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x2000FFFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0400; +define symbol __ICFEDIT_size_heap__ = 0x0000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, last block CSTACK}; diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.lds b/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.lds new file mode 100644 index 0000000000..52ffe5e459 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.lds @@ -0,0 +1,143 @@ +/* + * linker script for STM32F10x with GNU ld + */ + +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + ROM (rx) : ORIGIN = 0x08000000, LENGTH = 512k /* 512KB flash */ + RAM (rw) : ORIGIN = 0x20000000, LENGTH = 64k /* 64K sram */ +} +ENTRY(Reset_Handler) +_system_stack_size = 0x200; + +SECTIONS +{ + .text : + { + . = ALIGN(4); + _stext = .; + KEEP(*(.isr_vector)) /* Startup code */ + + . = ALIGN(4); + *(.text) /* remaining code */ + *(.text.*) /* remaining code */ + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + *(.glue_7) + *(.glue_7t) + *(.gnu.linkonce.t*) + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + + /* section information for initial. */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + . = ALIGN(4); + _etext = .; + } > ROM = 0 + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + /* This is used by the startup in order to initialize the .data secion */ + _sidata = .; + } > ROM + __exidx_end = .; + + /* .data section which is used for initialized data */ + + .data : AT (_sidata) + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _sdata = . ; + + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _edata = . ; + } >RAM + + .stack : + { + . = ALIGN(4); + _sstack = .; + . = . + _system_stack_size; + . = ALIGN(4); + _estack = .; + } >RAM + + __bss_start = .; + .bss : + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; + + *(.bss) + *(.bss.*) + *(COMMON) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _ebss = . ; + + *(.bss.init) + } > RAM + __bss_end = .; + + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.sct b/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.sct new file mode 100644 index 0000000000..0835abf43e --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00080000 { ; load region size_region + ER_IROM1 0x08000000 0x00080000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00010000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/figures/board.jpg b/bsp/stm32/stm32f103-atk-warshipv3/figures/board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc52294717086c520b23c6315c3b6dc83030f995 GIT binary patch literal 361354 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 z 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/jTlf`Tdj56UDU-KxkMc=AlnQUb;u1lNi6r~~ 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

S?#pfz#IZCVZji7C# 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

### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 + + + 0 + UL2CM3 + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Kernel + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\clock.c + clock.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\components.c + components.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\cpu.c + cpu.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\device.c + device.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\idle.c + idle.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\ipc.c + ipc.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\irq.c + irq.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\kservice.c + kservice.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\mem.c + mem.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\mempool.c + mempool.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\object.c + object.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\scheduler.c + scheduler.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\signal.c + signal.c + 0 + 0 + + + 1 + 14 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\thread.c + thread.c + 0 + 0 + + + 1 + 15 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\timer.c + timer.c + 0 + 0 + + + + + Applications + 0 + 0 + 0 + 0 + + 2 + 16 + 1 + 0 + 0 + 0 + 0 + applications\main.c + main.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 3 + 17 + 1 + 0 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 3 + 18 + 1 + 0 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f1xx_hal_msp.c + stm32f1xx_hal_msp.c + 0 + 0 + + + 3 + 19 + 2 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm\startup_stm32f103xe.s + startup_stm32f103xe.s + 0 + 0 + + + 3 + 20 + 1 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 3 + 21 + 1 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 3 + 22 + 1 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + + + cpu + 0 + 0 + 0 + 0 + + 4 + 23 + 1 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\backtrace.c + backtrace.c + 0 + 0 + + + 4 + 24 + 1 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\div0.c + div0.c + 0 + 0 + + + 4 + 25 + 1 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\showmem.c + showmem.c + 0 + 0 + + + 4 + 26 + 1 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m3\cpuport.c + cpuport.c + 0 + 0 + + + 4 + 27 + 2 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m3\context_rvds.S + context_rvds.S + 0 + 0 + + + + + DeviceDrivers + 0 + 0 + 0 + 0 + + 5 + 28 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\misc\pin.c + pin.c + 0 + 0 + + + 5 + 29 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\serial\serial.c + serial.c + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\completion.c + completion.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\dataqueue.c + dataqueue.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\pipe.c + pipe.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringblk_buf.c + ringblk_buf.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringbuffer.c + ringbuffer.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\waitqueue.c + waitqueue.c + 0 + 0 + + + 5 + 36 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\workqueue.c + workqueue.c + 0 + 0 + + + + + finsh + 0 + 0 + 0 + 0 + + 6 + 37 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\shell.c + shell.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\symbol.c + symbol.c + 0 + 0 + + + 6 + 39 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\cmd.c + cmd.c + 0 + 0 + + + 6 + 40 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh.c + msh.c + 0 + 0 + + + 6 + 41 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh_cmd.c + msh_cmd.c + 0 + 0 + + + 6 + 42 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh_file.c + msh_file.c + 0 + 0 + + + + + STM32_HAL + 0 + 0 + 0 + 0 + + 7 + 43 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c + system_stm32f1xx.c + 0 + 0 + + + 7 + 44 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c + stm32f1xx_hal_dma.c + 0 + 0 + + + 7 + 45 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c + stm32f1xx_hal_cortex.c + 0 + 0 + + + 7 + 46 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_crc.c + stm32f1xx_hal_crc.c + 0 + 0 + + + 7 + 47 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c + stm32f1xx_hal_pwr.c + 0 + 0 + + + 7 + 48 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c + stm32f1xx_hal_rcc.c + 0 + 0 + + + 7 + 49 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c + stm32f1xx_hal_rcc_ex.c + 0 + 0 + + + 7 + 50 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c + stm32f1xx_hal.c + 0 + 0 + + + 7 + 51 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cec.c + stm32f1xx_hal_cec.c + 0 + 0 + + + 7 + 52 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c + stm32f1xx_hal_sram.c + 0 + 0 + + + 7 + 53 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c + stm32f1xx_hal_gpio.c + 0 + 0 + + + 7 + 54 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c + stm32f1xx_hal_gpio_ex.c + 0 + 0 + + + 7 + 55 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c + stm32f1xx_hal_uart.c + 0 + 0 + + + 7 + 56 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_usart.c + stm32f1xx_hal_usart.c + 0 + 0 + + + + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/project.uvoptx b/bsp/stm32/stm32f103-atk-warshipv3/project.uvoptx new file mode 100644 index 0000000000..46f92f4979 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/project.uvoptx @@ -0,0 +1,980 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + + 0 + Base Board Schematics (MCBSTM32E) + I:\MDK5\MDK5\ARM\PACK\Keil\STM32F1xx_DFP\1.0.5\Documents\mcbstm32e-base-board-schematics.pdf + + + 1 + Display Board Schematics (MCBSTM32E) + I:\MDK5\MDK5\ARM\PACK\Keil\STM32F1xx_DFP\1.0.5\Documents\mcbstm32e-display-board-schematics.pdf + + + 2 + User Manual (MCBSTM32E) + I:\MDK5\MDK5\ARM\PACK\Keil\STM32F1xx_DFP\1.0.5\Documents\mcbstm32e.chm + + + 3 + MCBSTM32E Evaluation Board Web Page (MCBSTM32E) + http://www.keil.com/mcbstm32e/ + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U -I0 -O206 -S1 -C0 -A0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM) + + + 0 + JL2CM3 + -U30000299 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN0 + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F10x_512 -FL080000 -FS08000000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + 1 + 0 + 2 + 10000000 + + + + + + Kernel + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\clock.c + clock.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\components.c + components.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\cpu.c + cpu.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\device.c + device.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\idle.c + idle.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\ipc.c + ipc.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\irq.c + irq.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\kservice.c + kservice.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\mem.c + mem.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\mempool.c + mempool.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\object.c + object.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\scheduler.c + scheduler.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\signal.c + signal.c + 0 + 0 + + + 1 + 14 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\thread.c + thread.c + 0 + 0 + + + 1 + 15 + 1 + 0 + 0 + 0 + 0 + ..\..\..\src\timer.c + timer.c + 0 + 0 + + + + + Applications + 1 + 0 + 0 + 0 + + 2 + 16 + 1 + 0 + 0 + 0 + 0 + applications\main.c + main.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 3 + 17 + 1 + 0 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 3 + 18 + 1 + 0 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f1xx_hal_msp.c + stm32f1xx_hal_msp.c + 0 + 0 + + + 3 + 19 + 2 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm\startup_stm32f103xe.s + startup_stm32f103xe.s + 0 + 0 + + + 3 + 20 + 1 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 3 + 21 + 1 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 3 + 22 + 1 + 0 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + + + cpu + 0 + 0 + 0 + 0 + + 4 + 23 + 1 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\backtrace.c + backtrace.c + 0 + 0 + + + 4 + 24 + 1 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\div0.c + div0.c + 0 + 0 + + + 4 + 25 + 1 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\showmem.c + showmem.c + 0 + 0 + + + 4 + 26 + 1 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m3\cpuport.c + cpuport.c + 0 + 0 + + + 4 + 27 + 2 + 0 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m3\context_rvds.S + context_rvds.S + 0 + 0 + + + + + DeviceDrivers + 0 + 0 + 0 + 0 + + 5 + 28 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\misc\pin.c + pin.c + 0 + 0 + + + 5 + 29 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\serial\serial.c + serial.c + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\completion.c + completion.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\dataqueue.c + dataqueue.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\pipe.c + pipe.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringblk_buf.c + ringblk_buf.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringbuffer.c + ringbuffer.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\waitqueue.c + waitqueue.c + 0 + 0 + + + 5 + 36 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\drivers\src\workqueue.c + workqueue.c + 0 + 0 + + + + + finsh + 0 + 0 + 0 + 0 + + 6 + 37 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\shell.c + shell.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\symbol.c + symbol.c + 0 + 0 + + + 6 + 39 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\cmd.c + cmd.c + 0 + 0 + + + 6 + 40 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh.c + msh.c + 0 + 0 + + + 6 + 41 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh_cmd.c + msh_cmd.c + 0 + 0 + + + 6 + 42 + 1 + 0 + 0 + 0 + 0 + ..\..\..\components\finsh\msh_file.c + msh_file.c + 0 + 0 + + + + + STM32_HAL + 0 + 0 + 0 + 0 + + 7 + 43 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c + system_stm32f1xx.c + 0 + 0 + + + 7 + 44 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c + stm32f1xx_hal_dma.c + 0 + 0 + + + 7 + 45 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c + stm32f1xx_hal_cortex.c + 0 + 0 + + + 7 + 46 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_crc.c + stm32f1xx_hal_crc.c + 0 + 0 + + + 7 + 47 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c + stm32f1xx_hal_pwr.c + 0 + 0 + + + 7 + 48 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c + stm32f1xx_hal_rcc.c + 0 + 0 + + + 7 + 49 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c + stm32f1xx_hal_rcc_ex.c + 0 + 0 + + + 7 + 50 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c + stm32f1xx_hal.c + 0 + 0 + + + 7 + 51 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cec.c + stm32f1xx_hal_cec.c + 0 + 0 + + + 7 + 52 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c + stm32f1xx_hal_sram.c + 0 + 0 + + + 7 + 53 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c + stm32f1xx_hal_gpio.c + 0 + 0 + + + 7 + 54 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c + stm32f1xx_hal_gpio_ex.c + 0 + 0 + + + 7 + 55 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c + stm32f1xx_hal_uart.c + 0 + 0 + + + 7 + 56 + 1 + 0 + 0 + 0 + 0 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_usart.c + stm32f1xx_hal_usart.c + 0 + 0 + + + +
diff --git a/bsp/stm32/stm32f103-atk-warshipv3/project.uvproj b/bsp/stm32/stm32f103-atk-warshipv3/project.uvproj new file mode 100644 index 0000000000..e535842105 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/project.uvproj @@ -0,0 +1,725 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + + + STM32F103RB + STMicroelectronics + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + "STARTUP\ST\STM32F10x\startup_stm32f10x_md.s" ("STM32 Medium Density Line Startup Code") + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000) + 4231 + stm32f10x.h + + + + + + + + + + SFD\ST\STM32F1xx\STM32F103xx.sfr + 0 + 0 + + + + ST\STM32F10x\ + ST\STM32F10x\ + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103RB + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + + 0 + 6 + + + + + + + + + + + + + + Segger\JL2CM3.dll + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + + + USE_HAL_DRIVER, STM32F103xE + + .;..\..\..\include;applications;.;board;board\CubeMX_Config\Inc;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Include;..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Inc;..\libraries\STM32F1xx_HAL\CMSIS\Include + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + --keep *.o(.rti_fn.*) --keep *.o(FSymTab) + + + + + + + + Kernel + + + clock.c + 1 + ..\..\..\src\clock.c + + + components.c + 1 + ..\..\..\src\components.c + + + cpu.c + 1 + ..\..\..\src\cpu.c + + + device.c + 1 + ..\..\..\src\device.c + + + idle.c + 1 + ..\..\..\src\idle.c + + + ipc.c + 1 + ..\..\..\src\ipc.c + + + irq.c + 1 + ..\..\..\src\irq.c + + + kservice.c + 1 + ..\..\..\src\kservice.c + + + mem.c + 1 + ..\..\..\src\mem.c + + + mempool.c + 1 + ..\..\..\src\mempool.c + + + object.c + 1 + ..\..\..\src\object.c + + + scheduler.c + 1 + ..\..\..\src\scheduler.c + + + signal.c + 1 + ..\..\..\src\signal.c + + + thread.c + 1 + ..\..\..\src\thread.c + + + timer.c + 1 + ..\..\..\src\timer.c + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Drivers + + + board.c + 1 + board\board.c + + + stm32f1xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f1xx_hal_msp.c + + + startup_stm32f103xe.s + 2 + ..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm\startup_stm32f103xe.s + + + drv_gpio.c + 1 + ..\libraries\HAL_Drivers\drv_gpio.c + + + drv_usart.c + 1 + ..\libraries\HAL_Drivers\drv_usart.c + + + drv_common.c + 1 + ..\libraries\HAL_Drivers\drv_common.c + + + + + cpu + + + backtrace.c + 1 + ..\..\..\libcpu\arm\common\backtrace.c + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m3\cpuport.c + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m3\context_rvds.S + + + + + DeviceDrivers + + + pin.c + 1 + ..\..\..\components\drivers\misc\pin.c + + + serial.c + 1 + ..\..\..\components\drivers\serial\serial.c + + + completion.c + 1 + ..\..\..\components\drivers\src\completion.c + + + dataqueue.c + 1 + ..\..\..\components\drivers\src\dataqueue.c + + + pipe.c + 1 + ..\..\..\components\drivers\src\pipe.c + + + ringblk_buf.c + 1 + ..\..\..\components\drivers\src\ringblk_buf.c + + + ringbuffer.c + 1 + ..\..\..\components\drivers\src\ringbuffer.c + + + waitqueue.c + 1 + ..\..\..\components\drivers\src\waitqueue.c + + + workqueue.c + 1 + ..\..\..\components\drivers\src\workqueue.c + + + + + finsh + + + shell.c + 1 + ..\..\..\components\finsh\shell.c + + + symbol.c + 1 + ..\..\..\components\finsh\symbol.c + + + cmd.c + 1 + ..\..\..\components\finsh\cmd.c + + + msh.c + 1 + ..\..\..\components\finsh\msh.c + + + msh_cmd.c + 1 + ..\..\..\components\finsh\msh_cmd.c + + + msh_file.c + 1 + ..\..\..\components\finsh\msh_file.c + + + + + STM32_HAL + + + system_stm32f1xx.c + 1 + ..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c + + + stm32f1xx_hal_dma.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c + + + stm32f1xx_hal_cortex.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c + + + stm32f1xx_hal_crc.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_crc.c + + + stm32f1xx_hal_pwr.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c + + + stm32f1xx_hal_rcc.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c + + + stm32f1xx_hal_rcc_ex.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c + + + stm32f1xx_hal.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c + + + stm32f1xx_hal_cec.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cec.c + + + stm32f1xx_hal_sram.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c + + + stm32f1xx_hal_gpio.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c + + + stm32f1xx_hal_gpio_ex.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c + + + stm32f1xx_hal_uart.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c + + + stm32f1xx_hal_usart.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_usart.c + + + + + + + +
diff --git a/bsp/stm32/stm32f103-atk-warshipv3/project.uvprojx b/bsp/stm32/stm32f103-atk-warshipv3/project.uvprojx new file mode 100644 index 0000000000..d599b56a58 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/project.uvprojx @@ -0,0 +1,727 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + + + STM32F103ZE + STMicroelectronics + Keil.STM32F1xx_DFP.1.0.5 + http://www.keil.com/pack/ + IROM(0x08000000,0x80000) IRAM(0x20000000,0x10000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)) + 0 + $$Device:STM32F103ZE$Device\Include\stm32f10x.h + + + + + + + + + + $$Device:STM32F103ZE$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 1 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 1 + 0x8000000 + 0x80000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x80000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + + + USE_HAL_DRIVER, STM32F103xE + + .;..\..\..\include;applications;.;board;board\CubeMX_Config\Inc;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Include;..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Inc;..\libraries\STM32F1xx_HAL\CMSIS\Include + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + --keep *.o(.rti_fn.*) --keep *.o(FSymTab) + + + + + + + + Kernel + + + clock.c + 1 + ..\..\..\src\clock.c + + + components.c + 1 + ..\..\..\src\components.c + + + cpu.c + 1 + ..\..\..\src\cpu.c + + + device.c + 1 + ..\..\..\src\device.c + + + idle.c + 1 + ..\..\..\src\idle.c + + + ipc.c + 1 + ..\..\..\src\ipc.c + + + irq.c + 1 + ..\..\..\src\irq.c + + + kservice.c + 1 + ..\..\..\src\kservice.c + + + mem.c + 1 + ..\..\..\src\mem.c + + + mempool.c + 1 + ..\..\..\src\mempool.c + + + object.c + 1 + ..\..\..\src\object.c + + + scheduler.c + 1 + ..\..\..\src\scheduler.c + + + signal.c + 1 + ..\..\..\src\signal.c + + + thread.c + 1 + ..\..\..\src\thread.c + + + timer.c + 1 + ..\..\..\src\timer.c + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Drivers + + + board.c + 1 + board\board.c + + + stm32f1xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f1xx_hal_msp.c + + + startup_stm32f103xe.s + 2 + ..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm\startup_stm32f103xe.s + + + drv_gpio.c + 1 + ..\libraries\HAL_Drivers\drv_gpio.c + + + drv_usart.c + 1 + ..\libraries\HAL_Drivers\drv_usart.c + + + drv_common.c + 1 + ..\libraries\HAL_Drivers\drv_common.c + + + + + cpu + + + backtrace.c + 1 + ..\..\..\libcpu\arm\common\backtrace.c + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m3\cpuport.c + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m3\context_rvds.S + + + + + DeviceDrivers + + + pin.c + 1 + ..\..\..\components\drivers\misc\pin.c + + + serial.c + 1 + ..\..\..\components\drivers\serial\serial.c + + + completion.c + 1 + ..\..\..\components\drivers\src\completion.c + + + dataqueue.c + 1 + ..\..\..\components\drivers\src\dataqueue.c + + + pipe.c + 1 + ..\..\..\components\drivers\src\pipe.c + + + ringblk_buf.c + 1 + ..\..\..\components\drivers\src\ringblk_buf.c + + + ringbuffer.c + 1 + ..\..\..\components\drivers\src\ringbuffer.c + + + waitqueue.c + 1 + ..\..\..\components\drivers\src\waitqueue.c + + + workqueue.c + 1 + ..\..\..\components\drivers\src\workqueue.c + + + + + finsh + + + shell.c + 1 + ..\..\..\components\finsh\shell.c + + + symbol.c + 1 + ..\..\..\components\finsh\symbol.c + + + cmd.c + 1 + ..\..\..\components\finsh\cmd.c + + + msh.c + 1 + ..\..\..\components\finsh\msh.c + + + msh_cmd.c + 1 + ..\..\..\components\finsh\msh_cmd.c + + + msh_file.c + 1 + ..\..\..\components\finsh\msh_file.c + + + + + STM32_HAL + + + system_stm32f1xx.c + 1 + ..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c + + + stm32f1xx_hal_dma.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c + + + stm32f1xx_hal_cortex.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c + + + stm32f1xx_hal_crc.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_crc.c + + + stm32f1xx_hal_pwr.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c + + + stm32f1xx_hal_rcc.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c + + + stm32f1xx_hal_rcc_ex.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c + + + stm32f1xx_hal.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c + + + stm32f1xx_hal_cec.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cec.c + + + stm32f1xx_hal_sram.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c + + + stm32f1xx_hal_gpio.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c + + + stm32f1xx_hal_gpio_ex.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c + + + stm32f1xx_hal_uart.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c + + + stm32f1xx_hal_usart.c + 1 + ..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_usart.c + + + + + + + +
diff --git a/bsp/stm32/stm32f103-atk-warshipv3/rtconfig.h b/bsp/stm32/stm32f103-atk-warshipv3/rtconfig.h new file mode 100644 index 0000000000..35b723cabf --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/rtconfig.h @@ -0,0 +1,174 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDEL_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 +#define RT_DEBUG + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart1" +#define RT_VER_NUM 0x40001 +#define ARCH_ARM +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M3 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_CMD_SIZE 80 +#define FINSH_USING_MSH +#define FINSH_USING_MSH_DEFAULT +#define FINSH_USING_MSH_ONLY +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_SERIAL_USING_DMA +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_PIN + +/* Using WiFi */ + + +/* Using USB */ + + +/* POSIX layer and C standard library */ + + +/* Network */ + +/* Socket abstraction layer */ + + +/* light weight TCP/IP stack */ + + +/* Modbus master and slave stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* ARM CMSIS */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + + +/* peripheral libraries and drivers */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + +#define SOC_FAMILY_STM32 +#define SOC_SERIES_STM32F1 + +/* Hardware Drivers Config */ + +#define SOC_STM32F103ZE + +/* Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART +#define BSP_USING_UART1 +#define BSP_UART1_RX_USING_DMA + +/* Board extended module Drivers */ + + +#endif diff --git a/bsp/stm32/stm32f103-atk-warshipv3/rtconfig.py b/bsp/stm32/stm32f103-atk-warshipv3/rtconfig.py new file mode 100644 index 0000000000..40826ac99e --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/rtconfig.py @@ -0,0 +1,134 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m3' +CROSS_TOOL='gcc' + +# bsp lib config +BSP_LIBRARY_TYPE = None + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iar' + EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + ' -std=c99 -Dgcc' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M3 ' + CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rt-thread.map --strict' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib' + + CFLAGS += ' -D__MICROLIB ' + AFLAGS += ' --pd "__MICROLIB SETA 1" ' + LFLAGS += ' --library_type=microlib ' + EXEC_PATH += '/ARM/ARMCC/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'iar': + # toolchains + CC = 'iccarm' + AS = 'iasmarm' + AR = 'iarchive' + LINK = 'ilinkarm' + TARGET_EXT = 'out' + + DEVICE = '-Dewarm' + + CFLAGS = DEVICE + CFLAGS += ' --diag_suppress Pa050' + CFLAGS += ' --no_cse' + CFLAGS += ' --no_unroll' + CFLAGS += ' --no_inline' + CFLAGS += ' --no_code_motion' + CFLAGS += ' --no_tbaa' + CFLAGS += ' --no_clustering' + CFLAGS += ' --no_scheduling' + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-M3' + CFLAGS += ' -e' + CFLAGS += ' --fpu=None' + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' --silent' + + AFLAGS = DEVICE + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu Cortex-M3' + AFLAGS += ' --fpu None' + AFLAGS += ' -S' + + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config "board/linker_scripts/link.icf"' + LFLAGS += ' --entry __iar_program_start' + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' diff --git a/bsp/stm32/stm32f103-atk-warshipv3/template.ewp b/bsp/stm32/stm32f103-atk-warshipv3/template.ewp new file mode 100644 index 0000000000..3280a547c0 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/template.ewp @@ -0,0 +1,2032 @@ + + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/template.eww b/bsp/stm32/stm32f103-atk-warshipv3/template.eww new file mode 100644 index 0000000000..bd036bb4c9 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/template.uvopt b/bsp/stm32/stm32f103-atk-warshipv3/template.uvopt new file mode 100644 index 0000000000..7946319ef9 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/template.uvopt @@ -0,0 +1,162 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 + + + 0 + UL2CM3 + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
diff --git a/bsp/stm32/stm32f103-atk-warshipv3/template.uvoptx b/bsp/stm32/stm32f103-atk-warshipv3/template.uvoptx new file mode 100644 index 0000000000..4e19fe2a03 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/template.uvoptx @@ -0,0 +1,204 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + + 0 + Base Board Schematics (MCBSTM32E) + I:\MDK5\MDK5\ARM\PACK\Keil\STM32F1xx_DFP\1.0.5\Documents\mcbstm32e-base-board-schematics.pdf + + + 1 + Display Board Schematics (MCBSTM32E) + I:\MDK5\MDK5\ARM\PACK\Keil\STM32F1xx_DFP\1.0.5\Documents\mcbstm32e-display-board-schematics.pdf + + + 2 + User Manual (MCBSTM32E) + I:\MDK5\MDK5\ARM\PACK\Keil\STM32F1xx_DFP\1.0.5\Documents\mcbstm32e.chm + + + 3 + MCBSTM32E Evaluation Board Web Page (MCBSTM32E) + http://www.keil.com/mcbstm32e/ + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U -I0 -O206 -S1 -C0 -A0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM) + + + 0 + JL2CM3 + -U30000299 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN0 + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F10x_512 -FL080000 -FS08000000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + 1 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
diff --git a/bsp/stm32/stm32f103-atk-warshipv3/template.uvproj b/bsp/stm32/stm32f103-atk-warshipv3/template.uvproj new file mode 100644 index 0000000000..99e58d3b30 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/template.uvproj @@ -0,0 +1,407 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + + + STM32F103RB + STMicroelectronics + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + "STARTUP\ST\STM32F10x\startup_stm32f10x_md.s" ("STM32 Medium Density Line Startup Code") + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000) + 4231 + stm32f10x.h + + + + + + + + + + SFD\ST\STM32F1xx\STM32F103xx.sfr + 0 + 0 + + + + ST\STM32F10x\ + ST\STM32F10x\ + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103RB + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + + 0 + 6 + + + + + + + + + + + + + + Segger\JL2CM3.dll + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + +
diff --git a/bsp/stm32/stm32f103-atk-warshipv3/template.uvprojx b/bsp/stm32/stm32f103-atk-warshipv3/template.uvprojx new file mode 100644 index 0000000000..a38f7ba84e --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/template.uvprojx @@ -0,0 +1,415 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + + + STM32F103ZE + STMicroelectronics + Keil.STM32F1xx_DFP.1.0.5 + http://www.keil.com/pack/ + IROM(0x08000000,0x80000) IRAM(0x20000000,0x10000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)) + 0 + $$Device:STM32F103ZE$Device\Include\stm32f10x.h + + + + + + + + + + $$Device:STM32F103ZE$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 1 + 0x8000000 + 0x80000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x80000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Source Group 1 + + + + + +
-- GitLab

&9jaAij`?n$KX|0DZ|O3oU5bVq~oxckx6;srG9M3K7tVI$Cxphn9p)?L2j zco?r;QxmtX<>}dFs9&8`cV3aL?M%pQk<&hwemhO@Q<;)r`8m!CZZtDy*|V^^>UjU- zToct7%9ahlztNt2lb+jcTP67cN`bb>hhj00-_Tc?DibI=l;jBvct9hbP`;otTZ`~~ zH~?|?`}Km=hj%~aPD`lFfbBL1^;K>&Xj5vI+ZC3`PBl4k`l=w1G-36@+a|a7Xh=Wf z3?7Q1M>DMMDQRHOwyQGJtNd%1ql7^tw z-jH<)#KCL5Xh4TiGn-`0$Hs78sRW zd<7>CkRk=)uN$*vA1BUm$MNzXeg7c(CFmd7?n!xLYo$L7HL=&sx~WeH*J?1fh8?T^ zBYQ>3B)IE+EfjFKOe5~X9g*S9tT;@t1iRbNYh3JFbCK|lpQN|3?oX%rKhwQcjc)S^ zNn4gWmoEaxIA}o3)qpLdw^^VfxLw@NJJweG+@=8XHA!8%Csd(gAND_)K2<^O6S1U`@TWAw~kIV0C;Y2!+A>NU$ zcC+DO&=Yl~e%3yiO$vx5#>UOP`+9Q&IA-w{!EaS0Jn(6F>nuFXqb7wjQOmEpF7$Eg<eh z#+xR>oDG@p!hDvqUxdN_S{>q-CYv?J%jDj^b8y?NJ|M6&hPbTPX8|ZmlI?R`_o)S% zz>fD`$*y;GcXfrAS}sygqbt@-zSuvCb-%)18^W-c0P|sbSg!Giq!diBKwH*|`RI4& z-=0CyIcDVdKpKKtx36-PL^@h)wTz;p)|3p>P>HIVNZnq^_w%}0dA0s`Bm48zD43e4 zTMC<7IZY}iq_rp6nU?jN<^TTb!Z&!s&xLLIP#oOTEZJKoYqevr_T6bUuxRl@=t`$@ z<T|?*3nO50asy3+1b@r;Rd5;4N>okrR z&c-}s$LDsjkW88<)p2SnhL{u_Y!((6=%A@-aRKN&d*59oD?FDlEeM7Rtu;swv3=pT zm@~fjoMrPlGE!n`+Pg)W&hxgX1=xJD6zN$~e_*-7jWXu`nEm_|meA}*U|9%~;c03= z4I@;nf+z_9zeS08gs8k`|8RkLuczGnaiYxODqppSlWh?TGI^a4fWH^Z-xOPpzCy zrX`%tK^P-BHU zWk^H5Lv2~CtBlBULehVec@zG8-gM3)`dWo|-3GY7{k;M7Y>s33>U6(5$S*-Q_$~F` z2zPfX(GnC(2$#Bkw0G66>iyUP9p|<-kK}%|%&P={Nfam_`$uN81X^@N`Lc1aVloYD zVxMFW2yu(4#-3@>pl<}nOyvZ&NLAT`YAAvy$4qs}+k4ZbPLqCLszg`>{Ra8GAo~;` zuq~tqICUsuf%-o(kZnZLO!>xUZL>&S{e;q^MF*ry&qGA&(nM7G@B=9_GS`d?K~=c| z#zM{@V3dA7ccGTf+>lX>4D4>10^HvI2DaEgL`nBT9i|8ynRrd9L!Z6u5T5yjgV8cT z32BaB3gNV`DZ6{79cmMI<4I>}RI_zR#4tO$3i4SNIfl6JuQ#T=f*_i#D&N@FK>{zd zDZSk=Y<7PNV$R4lkS)cPa??7YORWZYK9{1TiAA~bJ)+`@wx7x2!e9E8+FXK|U-1#6D) zWjdV#D`qO^e~-ixzJ7X6bOe+W@}4`T)1XT`cw2MORTEmCd}ZNz}9Al?EO6)VzA0)ji8>FpdJ4kOot9_;7Z%LPWreU52Be2t?UBb@{QKL;~T;Vx_fFqr1~)f1b>H z4fuh$vqw6&b=)ngw~BO(%M|+g-+5I#NFP=d55ACB_~J#{`y2lA?r`V9bVi)5Xis9F z({RCESs)4_{47smdcOO!=G-@!V6K2e;qQ~L6OKCtHFh7u=9@-t&Y1>a)Bk_yfk0)M zv0n7|g*0FWXzHq8$k(IFfABwP2@czG8C$L$Iqt4mlc%wRqyNWTpwhmts^w#*i%Hvi z7!vMQ;{N*r;agQm5I*gq6geUHk>q=`7b6Ct_>MTmqzJ`_pXdnl1kGNYhxzvy&eZPn zhB8z9=u~Cb|25(JkBnB^APt$h>8&BGp^`LJa_|>Z_GWaby`ed6g%!+nAa&|Jl&~Pj@ zB`CL_GLFq`0g!OLiBy}}QFBqT`M&tmtT@GFBU{{(TG}g|(3e;$i|x4CkeDm=r2XrP zNp_uq6bQ(oWBPc?0mIK@wFMi3XK-7W)Wo*dvIx1_k4@ZGgR9>3)mmHjYea|R?eD26|FplbhgYc|$~;=KsC#?+t--Lz z<0?x?VnL!bVeX@JJBur~p?iPXb=5(RM~rG8e8m%zVzRSS3Rh{wsO1|WPQ_FDxjwy> zJ|XXy=>smXmFOph?E&6?_ix&dF7%6H`i}n6w2z1Wr8V6)1XU6gS25}%*ko$O7Roqx z%p-Ty{F!7-hF*h&?xyt?i6Uxpc68sE;{xj;CNI$@!^zS$>OM6k*+JORCJjxMtHyIS z1tAt{HT3*K7020P&N{s_oY$(om>BVMa|=u7nTeFS!sXv&b>qS%5!g%2p3tp{+|j?4 zVXZOu#o0n>dw(6ogzac(9NinOXtlHuS}4&F`v`k*zx(-EM#)u*)#?H5HV6G=cvhan zr>}{0NziAPi6RBG%2}Qnmg$gRFJz;&8ydW$?+*ayW`t)~mRlyxK^?Jn%M}eVd*EyV zF9=ohCzXoJCDVyn`woWHVudL!f*)@?cm`!KDx%MH#=&X*o#79Uyk959;am8_0Rn|k zE^JUu{Lzs_-)RT}3$5sXV2elE5sE1B(!s}CywuFiQzO<+pMIE{??d9B5BPiI4)oA< zBb=Aqi9(|S|0Q;3wJakkHsPk{3I#3<+XGEL7(?F^Y`&&IgN*j|KEO~Xc4(nOqX)fr z-s+sOXgoR2qZ~t5_Z^t4l>{=Ax*H@@rb185N^YY~82*ukKb~{}%;QOSo(kuB#y;0= z^c4#mdXsXvke#F$trQ%PV}6b|Z|spvz4Pvl(+%bpg^k6ggB4J>R)oJ=f&IlP(tTx* zv;Dal?H<{kJxDFC{DHG zSHcR5cBTvs7avm>F64PV3?^ZvtvRLt{H^q4*%yc+0NYkUJ%YjV#__9#f`@$Y46y>XU^PS6)&iZ3r2->G7i^~4>h@g zZxNs1)!G8-$NjZzb96lO9Wxx~Iv=H28X10Q92MN(zC9?9F#TRz3(M`XEQp&lWj8^c zibz+twiXHO6s;@qG>i~M%7nA>qU(1J@1+%aZFd&l+_!EyR~3yT8hlev_>d});$>A! z9d=nMLOe=ZL=tTYysOYqWPv3N)$YF8{#J!6eci-RgDLIKyRYS9V&Mtq!U-ixX$^c# z{WWQkT+02vbl}Q0<}JUcZ6%n^K-ZY|B58g=A{=B;2YnwPo7lsz*^M*9*z)Rz2`;+5{3*UPcF-7 z>9$G$1>25pm4skxhMz2kZ={`J=yMKPZvp@Zid&iqd0{XA z`$uLaz}yzUc=x;nvX>YzG0qwj+iX(6*r0G9jwtmo#jYO_H4&RR4aOul{gkq3h;zh0 zGE9o2w8H&UULc=plCJKo%o9g z_>%58ki-C0?ieyaEsXXZCN_Ts{Dgs}+Ly2GqUqdI0y=AJspU0WuBZO6pd&j!w`sY994TgR21Gp_FXlGfG1AcS!p*ATO ztC8J1q?@MOXk1n>Pq(3V!#;{DDP8nC72Yv^rq)lO%!;;~_L_Y|%50C*;p~nx>%h&} zqZd!9#0qb4%{DMAF~hnwa8C}t>|*RNx905JDB>>_J(r6(l^4~>{Vsi{+Og{;H8SH4 zJ@&TF(&yQo4E%w64b4+0mTCYR{RR+?3w?)AP0CGf97PgE^Io5gnsXQIzZ=h?*ZiZj zUBSg3?~-y_-UL@dtepBiuheUN_azJMi5x^y6PQd07Pt+pS4j!ssEzcjp$d0WR)ais z`2~G~iejzHezx^l<+>;V+dOlX9r%b4j`eO=ls5x73r|MMH$a@vTCzktq6+_)O7M@Y zD@M}b#L0O)=hj$rENX3PuzU7zqLC}9`3Qw;&UX*6ZCK%saWc4NG~eIiKcIn)bqL_; zXZ1Y)w)~r=yUDUXQC*+XZuLgYhZ41Q^J~o`)0b0+i(E{5_`B#IHJd4E^8rDHIXz4B z7TZg-HC29W1NZISx?XpWnqn-EEVR1qGGXI_Y z0o^s5$8)ji+#D&#MxA^oJs$NEne0mP&cdf{C&DKt1-ENos`yv_x2qxRGJS>|TDn8z z$J>Sz4enyB@Fi_hvwIWuVcR4S9YY3Id~lC2=ZU$Wu2 z{wRy6_!;$q*qhnrVI|nEFU4DUGg$b`k>xlGO*8r5Kl>H>D_AI5*ixJzUuh?6;r0h% zp9q(27fMMhS#WKZ6icIaDd@nctK%&G$OC2(X}D6yOA$QAz#F4% zTkknEYjeWq8BvOUQmpZ$tf0x8`Ca;ItUL4T4Q~J=lv5s6SNhI1*DvroCG~AG=!Yb1dZek)h9#~e~4et1+oS= zo5g_eH7FZxDGbxvS0I({%`N36g*SWBw5>{oVgAFf8M>h;fE|hfSG{bYjV~Pc5HeJR zstpfBJD7frc$qpN@cDCW$9L~8#}PmnryT6fp^Pg}$|tB9RN~+K((XJ?O+^U2dZ13N zk-CjeIO(+4XNW2^40!;hEa^FAd%ChlmFRw!Tbr4El1pgY(MoC!2j>bth!ylWZ;HC{w#!7c{9>R zO8z|*_v){%Yl@Dkb%a+Xgy3bSuy<4bbELXLm^d7ht-B+-LBl^kh`DZ`7Yq3^+9PPR49_KkWXGQUaZ*`%P6D}pURKxSQTLSzv(k}>Q0eI9a zyv%5|0GP7Jqc*`_&bh35V6E!hX6fVlo9hYL+Fl$W93t)*5n~#bCen3jcBOi>TgiI6 z`p0N)h=R|5bWXp%na2by)7bcX5ww5$e;6k54-~+3p5rD9^X4sBYSx-uz1?sK(YV&n z{w;ZI#{rp*j!NFXPyN*afg7tN%bB=hxPlI{7PuJSMbm#kq?@r)U zcAn$Cs=P}!FQC!8%D-Lqo7;U{IfbpLADcsfe5Bh$WEp>z?IZUjsfWU6yRue(5qWdL zo7@GN&b%2>(XPVkGOOH2#x{e_hrNZ$=@SvIZWs}MC9g~N{e0I4jGHdy-0}<%y&*o{ zFL8NO#ofTLZK=JPLQ3gzX?y-Ec)ER7H}T4E|K;qgtzfY2tu=<;w=0;u3>XFFlD zPP>6>&96HYZ^$9i4$Cc{YPs`B#V12b9=a8m+`);*NW=9l8TN|Co*vox=A{`;UdX|u zjiZLz(vrl@XLf!Ia9ZT@SstXx?jBwkJ{p(FB#VKhUx!ss?iUQIGgd4oT{Pgy;nh*5H{0w&q zwa-1Wxo>~(!%}lQE-$_ZH16#I3*6EYoK0SS;;bD|%51bLkuj ziEs(N3!jlZt;`MSu;SGVwlDLpZMHp-?R?GQlQcwk>)?%?!HFW=P|V9lspikw(QrHA z_jYhtWzORy_Ez?%qi_crX|-$_C&fQzPw2gE!8=MF(_XmEz z+Z=C&yvxjvU8r$cR0Cs$SV{LlbUGgjCMJHWF)@BR*R7LXE#x*VY_ZoRwLErhkNbQX*PQ&1EN+pe28~xtuKn76L*mZi>e~EV z#dpAjPKCUco4!`*9j-bjIp}tw{Ejr&D^ZL0o~T+^{*1X>1G+|7eLYdb@*{DOInVI$ zdn$R_jTocp)H6y~DlHZsDHa+_{$`Gbs!j9_B2SZa3(C#h?(&Iz2G1PAVYk(lM?|X2 z4e}w$QA@yyjkN<-YAI~YW-jFExgD48^FWV3VUBC(ReXgpE8VgG5_eooFuhVrofueS?!4kue0WA5=a;mj->T0P9a|Li-K|_NEnxmzTGwUj zb>&*3?#CR8E;glU;b?=ZStjiRA6qP$+XmT0q$!Z8SBHzbe(^oeL4vZA*K9)B3vag}b>+RtfP5iXd7ps3ecyLi_Q( z+Y0oYMkT7e>F62~v3W~%1;D2ueR3BJsFb9!La@RN6~r4 zv-$mRTuW)qqV{TQwPx)d)qYXbtUcS>BK8P^mKrsSqNQkSk4ViJL5bL-W^59xc4DSP ze*gTR=Rsa~PR@PK=en-Q*MkL<`$uBy|dK3$_xBpTz!GI<1-0UhN zC>l;w!5Yaf!;=1ifA)Q7s}q32L{l=K6t&_Lg|TwcLHaD0FA4BgSXs2QCizCxBZGG~ zm}ydp#)kQWLjD|eKY2@|*0r*eZUh_w@Ich36%O?KjVBs)r-Q#>JfrQ`O)E7}>`45I~|^O>EH zD37gdw;vonu&JLKT~Eo_2!IqsIL9}!@P5v^Q^PDbk5iKui1}DQ=7l}E&N{OC2cEra zt%wYGy(K^FbQ6pUa`3E844zV8v3?h2vU_L6n1YN?G$3qN6BZ6vB;~M>daW?tXS;MZ zYe^hVPh5?dbxr3^VJ6ofJ6XZS{Q`H0Z)*MmTt>AIV?MBx z@wEU`TxWtnQd#G86A<3q0O#5MmeNo+#vDD)_BWcUlNYRu&FR2$e(Xx(Z0~PgJs~fT4T311)jpao!1z}3DShCa!c%3*hA~y^iSp$RG>aBA#{7v=#z<3K;WoZtagG^h1a8wg zjjH)wZmg$xQ}G6mJ7#YPFlf5?azWk_1gaq~n(_bL^;~etLh^lhzwwn=!nola$4Ro- z+Gx47QP49e9NIm%`UhOvM`1RT^z4q*w-#leeK-_lbFzN609q)+LW+si(*PDyUlh3^ z0>^4g_`#G4ZM@brQhL76Qj#i|$QsCkj2qW-$c>G57GPUl;$uE5cq|Ql)0l_FhS^tN zS8qL4-u57yE3+>p$#v$=!m4H$-c8pAK4`ckk_D5uEiQN|#xC zT>8d>eBMqs(Z7gpJQQ?$o20U|LGk1XMPE2Nn|NpHr*9hRR(p)n3l96bHvuc6^qyGF68U%%GnZ-Hl1M>ihumx>RAaNv@v7fP#brI)MO!XK>$wlU|(!M z(#}9$Cr`YrGf5AV^E^H%MR1`vTbS>B)0G;Y47B(dt6eA`@w^V!80|o9MIKZ z^d6_XJ{~LGs5X3H2CP(|v)jx6_|Riy(97ta^rPr`ay7$Wjlf>pl~hP=&T+D|G>;3? z2U7Uu90j?;9ip-HMa(q{NB0OvJyF8V6QHBK*?yh2l!39?4KCXI!vin4M88@6S!GZ+ ztN~A9Na@vtbmY`uTj;df*3{;|Jh{vp=L6l{8|2zhHGGvt#W0g4T=GTZdT3i{XL7Wa z^HBf?dr2`5pGZC=SX{X*L-ECMW_eTCQIfg^mXFT)u(Ac0m$~$|26}gBQim_m$Fod4^x{Pd3c|u5%asIlTjWb}VHbbp_eFzH+QVhu zd`@?UPg-Op0xQiF)f3IAZoS~TQda|1v}$YKJO3&Qe{slFFxO2hkpDm@^sdgWNELi2 zs!(*2=!%IH8=Eq!!yRl+dj>~F%dqHWk*b6!kMMoQ;e^gT%xZcKKyn`3){iZJ=R6~C zo;hxqboDCviQVS(e}Ap0Fmt>YF!CtkwjVf&%X}B^s^Vbhpg6k-8BZM*7VyZJH@spa zk_`#ke6_`)SlzmoNs-x=L!QMD_^;-K2lE>y&odXF_6H`N6wT8aPMt1mu6LaW69c=Y zV-F{(mz0Dea9meG58*`jwW8#%yHEuKaad9j6L-HwQ&LZa8iVD^$~}1MNQ{C>u~)9p zx5)LBZMLo}HPR?qVm79PcuXr8-z5ZE8;svJ_No543k(_@!`e%0_1ls%N=t$s1?A{*xC3QB?GmO?Syym}2c{>h|r$&?3C;PzFDB7rLZqQ~|8aY15Oh9%Qa{qEr z-dW-OWhm2E(7NTG^P|v5N zONhicXkvoGtP53b4byP4=~cdB`_My8Ziq zg08lwB_T2;UJ~`Am5(VL>|a`Cr%-2HM{q;4;!*@K_XmzK|ktKjh2I8 zS=Q+TbIwg>a;reiA~Fd8dCQ zE=$`8AMD2iN~$C_L*8XnP`J=@<3q@z28d{obG|!^HpLyB=17-rq6x*z(F zE9?ufc6otrqI(^0Pav4FU9`I8fUNSJ@QWk>>Osegw=O4dSY)?{U$_3YKXG8{^IcHG zL?<;Gv;Q4lPgNw>Rp};5l!-oT$e9hAn)z(c)2f)R{F$C&8|tfXy?gh=0|r%({>Kwp zpTCW#bP7d{T#k41J%5?pSHHN}`GaQ^c&l+w++GI?4>;I2er|s{@)jZ``GJzEV#xOK zzJ`m!-&H=6pfyCF@S_H(sxYY->q1@d^TV?TQ{UeCD;8S>*GD6Z#+I+EX9uXst-*$w&WQar=f0c6O%< z>uSkxZfx`kk>kB1boSQBf1!)qsq5Y~PxD)o5yD(jv%*_9(`1*(0$esbQy<*Q_mG&^ z;85vFp^$M(FJe0IQJ2Kh39ve30HE|cfxJG-X61r_?NivSZ%kLCVlE79Dft?lv#>X! zwf$UukGY9#Teh@F>{E5`fP}J}_N&TQHO?qajhBx5KCVtk*`zuWMibNjLwB+exW}#O z$Xf;}hpUJ(xIUOzokSknl!4W-W$-dj#mZYvg- z8VqB=Z>Dx8S4U>{Y1BQx`tru~eIq>u;2rH5&?(iH2HC~#74DuG94Y%SC$Nuw_La~_ zDdYz~8mdC^LBNCEPyeIvvfEXxubI72{wl;P< znk`Ble5yNvQwrssGAO#WO}!eEwO6I66VbbLxeBLU2aqFQ_IoByi(10drXzIyT*~*) zcu&{zPK76R6V7(lJ7*+84_6=+rf~g%FdC1YK2`MJlSn3hjiI9XpIpxAAqT}@d5&C; zf#IuK2FXlK>8eng>V8VCB#Q!txfFIdXfa(f?djR&%r)b``;B0!mp=I^8NJT# z68(RI4pv%ABOKV>Jzi;))k0bdv3l!3zfaAx+gBx_*nI5AGxk5Q)8*%8iCnj-MgML6 zGkUfWWq(?2JNhlp5s{LDwM_N7cQE%mqfi%jErun844ZsfUK!Nb_(;3lQHpTkG6;IQ z{eDrj*)zoXSlO5H?_MP4YG&G{GjD7rBeQR!UoC$ti{=lLvHk|p!T-l#5L#6m3N3B3 z|57udCwGtQ-#6CjwSb5`g}tj`X=Y<)?WUzLgV3c!CN(XZrq{#e|1M+0UW)iiN39>f zPn($<4h`h#NbBlj@m$5#1m#1Gbl|$Pmh(@?42FG$z??@3ni(*vDbgL!Lgv|1Ac)Qa z(USUUd59bHR7&W6Ii;8)%n^Z}sP_zyPE_alzSH)OqQA0fnuX(aDB}b^6CLsp3p1I-j4^p$MjiC2+xaMlaNN(xyMCKz@whJl;BH~s$6Z*Ar#aUm*wm1*-m-fJ z5h_B4!~Rs|qn7=qg_`;VcU=M;hwN_StV@42%YzCBBu8LAuE&pWnhFnR1PLvt{{8k& z?Vb28Q(`on0|{iJhaQYI=6YFq`&n0JKJPcyBA^G_MEA!rMO@&JXcpu;PpVw6qsYXe zx@BG@Dre6_;=^Hi(D#jByoKVs^V5HPizDT+^u#4|(l=A#tKIQ@$ z9m4{&T`ou@dr0ejC3>YU=x^j4+bj=etkT=$(|(UYXRJnzXfm%8-Ydnt#WiiL2*cm| zxHcpf-?+ndg7_Wc{XYtzGR%{}gX>#gTRq5v5f~>KUZHY|brDmp?USJQ-=6z>b?w}g zox2g5cIWicioD<62Jji;vXGskxE4b6daCb>7I5f_SI!fAdoLWc6Y2BfGp8VCqLz7X&H-VuxFZa(ogMA@}z7@JspR=djTL{kQHZw%S zO3zt8FGv0ugH^^wLWXU~XE81LVHR=zehJ2K%kuZpu4=yQL_54DGJlmU1{fzc8Z<5zJfER-^F;whJeuI;HW1q6Z%$;Tm)Ic=!fTo4u*DK@NwXmgO=)l2=%T2p=F zLCm(8Y)?5Jjv`ykrHuIp->iR8SI|t8n%uK0L~6GxF>rskY(AlLA9nlqg|R#>8)KjX zecW>OqI9*n{a~)EN((r&dbSG*tFiN3aIA}T%gxiCv@;fZ2u{g&rA37@Ij5vU%?(o3 z+INaBre~SI9&4v zaJ(8Rnk``f`jndT&Q492cUxhvU$dkG{ir?op-NCGKd>>zP*uO2b^9i;xIw0YnQ`+PjTYm^(hbXEokY0O!=(;jTN?sKMhjEiE;92r>k1 zrm?3*Cc9MF1?f04nz(Q8O(H1QB8!qb?+_nPokkit7$Zgcv8>wAMcV=V0PZ?Nw$|i& z0u6N~lH)twzMMo0^r79$7%Rjqk5ZZt?cacktK`?B%S$gtAtA15`6$&vHT}gf>(eI$ za6o|L0e4X&O^;g8b+zQ-58P-w*zx$txB&C3F5~-MQ1ZyulUF{JL9k%_N4(~{C?VKK zgr{h%y1-h2WbhrR6ews;Xj)|Ixo-XKKdGhpGI8sE!~EIv5Cy_VOwnD)%dSZTPjsk1 z$i2*~M<>m5W$|szGgcm@fv4Sb=BJ~OJq&Dt4pS0+>#RetAGfp$j*~0^X<{BG0n0K& z+;04IA6sJhu+Fzv*z9R$E;!0_EN)lbwf7?k=YL+Sw0fwayB3`+4FG82X;6a5LLUB` z)3^3PZ(Kd;mTD?*);v2AN5p(*JB~MCb^6xUkrK{c>i?#q+qHc4X~-ZjkiKppp_Udd zm~_Roc63088}2E*gCA|q4QX>YJ^!PD2=@-?J-F}2(BO-I4Fi0InP2}zh=*eNl#CFQ zQFs4#%0&W=;O#RI!-yu~rVh&_dCQD1?(d3+5AW30RIB<|i*iHivU6%@<@#R>-XiC- zoKIZxBjVn;wSh){yAPTD&N#@j$z`$cZawstJeYVvRUtXO<_BoH6y(DB_8O;!Ya*lR zh|)OskLor*7e|7Zz37-k_3J*>OT5!5m%IJT+~xS7U!QPtUg$(e2t0p>kLyYxYE*)a zW>@xx4AsjsIcVDpoK+sxM!oKM&vyO=GLIFhR2W+5ILy0(MjA`LnNb+6cFZG1|JX!d zc2D{g&Vm$YO44J|MBt79L9}C(l@4?8?5$(irYW;EihuJ z`v*mK{%*&AqI=u9fM+iSWMk^jJwGbm;-R_k+ytQnmJzy)2*G&E|52bc*~sY&O0x#s zoPob{6;CVF+(BFF+@YARRab+Iwj@gfnu(4QgaTaOlqKFbepRoP6t;Jd zzh9Aft&Rm!zSvHraR>xInhGyFo1LB5C62cZma>V`@n>O{Z4HfPHZvcur6$hh($fWP zpH-10(NgmH)Ie>K=Y3Ddi#Cuu2+-V8?AAi6TgY1}^waRq^ zgEq~3Qe0XsHUfUX`#^pHo`&`gM_L{s;mwxSzRu46&cS@BW#p&V00VCy8pEZ`a0=i_ zx-P*O>cRieFkB$rk+B}nBGxZb>{~M+ocEC8_9$FvjXqNRil=)>LB?FhdPh&o+-pcf z0$ODkRo=6mY5Lh2SQsmc6kyt2rHOiE?^Q(SjLU(0Qni(R4JG9?=PK5BuRrxot+L@{{179@OKI+`vP|n zJ<)ipz9?S0V60y7X9p#-&Rlyvw<%jTS)DJ(#{yfToEqYzXX%M6wATeuVxUg)B&e&} z8kzp!=xq-DApg`whV>i0_0mZ3NZfcINsN%VkXDD)P}2M3>dEU_$gdl}HiZAMEcu(( z;j=r#(PRN${QOZeR*4KTnd;-P1xjV`r%dGg%jwaEhDx@yio%*83_fBQL@}F$lt`72 zxJTJ!WNq$7xC|0ojWQHmS93~pqDQDH#Q$*jU61)R1Y^tcVqY;k@FO{nBIql|RFt7t z;|m6uqmKwZ|7xlH^+?&RW4Csh1+OO(l2Q~>te)dW|8^YPR&fRzD%r7MtRBw@OYva2 z)Q0~OWXWQQO*G@u{6&213*2SEm zksWe9;&?&ByK_qh{^taRmOSk9`+(POuIjvnx`5Mb;JJGj!Qe`r5UWp`kF{@Zn0bq* zPnH*^%6J|#!JKuygto$JCZS39agvKfB|@av{aJ}5lwbADf{{||`x?5UTqtez3-SJ$ z{Gr{zZoq2rVV9gOIGi*l)z+A1V21O__+h(KNYU)@yjO8W4gLbuC|>QYi#=f6 z%rC4QqWOo!3#P{YkHRFO-%@Tj+AY^0BiQ(EUmu$fpY9;?rlyR|DpN_*l)CAavgfMT zmHcd55c#a^KKyL}`DpGSTV?MrkmuYz<`ApNv(qLW1A>^hg(mu5tU4@8&27r6EVj0c zj{pjr4zZ$M`g-99wdER*96?HdovjJcnCK6ubfZo^d8z1+wGbNe5UeTv)h+8v2IQBg zt`aoQr$mQ$3{N`3JxHXG@tie%4l15MP4vPwoI5hn$908CUsT>wf;}4~)oMOeFVrlEX9$z>FPR`^nnka(&yC5DsrYrht}( zsO&PvY#S`EiNeuYzA-pAJ~`mK5*oTYYCyZsAmE6 zs|W2kE@L_rHKeh*X;ADE`?^6xo7g&)+?Q|Zqp4w`?-0_WNeI(7Z(=|fVQ}|Pbv=lI z{RoQhCl39{BbI(FEXh%08q{s4S0i^bQ_ni{#SG2bcPkCMmZ9aZYi_Bk0ZFUbMIKS( zbzzS85GM1ZebM>{ozz4ca-w)t)NGolg-JHFdX;S5YL&NEx1_%QPRCD2oLuF#C4fuc zePHLuS{;05KU>m8Z)H4P8_b}FY9pmwa7YGB%q@LLQBhHM7AT0)ii6Pu#Ph1!Gz*Sj zF2uk3I$ixST{hhMf{$rU;2nZ;{r^*cWW(35Dc_sqa*I!yMIwH!V-u%UBt@It?q;_@ zaw0u&j3KNG*%jLa`>5>VnnE| zYfbnyQX@N5|Mb2Q*Z<~SGrr)p{&-78N~B55hj}xEJRVRF*rm$rbMe1w)}aA>DM5GA z5LG529Bab`(ptaXTOL2Y_19FWzBQ#z;@Wt0Orw%M5vT4GQvH}J-QT8@^*WPGCwemF zT?0L1h+5Qvw{S53Yl}@Z?H=1Ob~M)ir`~DbB+T#VHaM zwa|MfckK2LuKqF7y^%Q)_-!>{d-3~-4t&+Sx{#L=nzfh3=flC1Rl^$UKbT!&~6`;eTbz#d#{ zVH^21r5WyiUDuCsWbmvO*LyeLAAX@3CzJJa^zq-L_XOI1yfG!aZciLw{{+%;5>>Nf zn9+JOV%mYfHr;_XS&cL1miQ4D5G9*oxh3qQBqB#ZThEMv+mV5LfBHbRsFFJJE+Mi8 zTnBeOf)%=)`6;`7-UK=gE**8xrqT`t&htk?!Tge1!i6sI=}#2Sjd>csox9eL?A<xex9UZ^32F7-|1n3gFXt$ZN1j9Ry4^7L6>!A(7nQM|+m z!biMX&rZ!w^X%M-jZ2#DeX;kS0*qBoZ+3B}$9*FQ1;KC{>gOBc$hfLFNu zC;gTt$e}xzga4!0(a9S9MF5`+stI@-M$i)D(#wsqbA#&ayA`0Fy-9A%fj!pbNfX%Sl%Z}x=Ds@;;f%n)Kh|n}b=0S-G97Y> ztohe(dqx*TYojJtxRSLA&QKnn!~@?2CdG}XJxVT&6q0+hoiYU960KnJ8E>Iv%APJ? z1u7V4xtXc{Vmr!&SLT7P?G=p~E((fQUE0kXOZ9~9pI_vUY6u zaCE=B$ewT4RSrEUL5J^o-}t@yvY(}SkLGZtVZZ0I(!|e5w8LbvyYd}O+VimjG@V27 zbDg0@+DF0d@%g^7J0`D?ZO7E+FLOYho_SYb>~#Z)Yh|}k@fW_Vp$us2o&Y*+2U3bu(_~KB>wHk8 zHoCE^xA(_#dmn~3upszeDG_aE5E_{OQ8W>v?(-bL9x<>D8pdwk&!Lco+pb<$B3^WH zcDW2kI_soe^2r*r*@rQESyAidaKi7?_p1yu7M|f(vauS`ND^y1t}z_7+?fjQG3Wqr zy@+@Jy_paddtCmpPj9mmnH7rH%z|f3CH(Ac7#*)CM8DegotMLwe*_4ShMhQ?uK3su zpY>sgux75F&n+H9EUW^GR7rZHx>w@F|M1f9qg{-XxpNABHmwweJ%)3Xt-oQFkGO44 zlAxi=`xk)hRqgzWi5O?J^+L~HGHk>EQvr`(#9MN1CItQ_R-Wf=L7g!w2o+G3V>jmC z*2(77`j;^8?&VBIXA0c#CJVfj1plkMpJ-ulW z_S7&Tl!NOdw&rsDYh?vd@`w&xjOp4}!;4)Q*TF&3X6;uJ=**GlcWf-UoK2B$tld`u z*(dg@vy~vsSBMH@Wf*&`P$wiW{N;a=q5?8bjx?Kk*U*Z7Ocy~nz8u{4Ab(sn`WvK( zYztyv`MPFmb$3^VoV>ts$JInC;RLYJ$pAhQ+3?CNU9#qVG$x*&xi1?R0gUHDiM4QEKNfkaouwb$Wh|mbC|E-7+_9VxoF2Ff!fAdku$m{W@hZCfzO2 zke;*Sxq>ymC?nX$)KSQMFbPvWML{ZqsjFe0%~709(?aoMz*1|;(l3dEnK~5BY5_XH zSpX+#bVUL${lPsN?s1-T>AE~tKLN(Q<@bFw8on+0GnzHYWqWq=79ku?P~kToxAS2ylYqJ0^%JUsQD|t`u9b3 zuuwdo*X)b+y_2wN$KhHMiu4GFN-Oe*0!iGHsQsjO%TDzYF17n|_xdTPI!qEU8tC7e zX)6@Xcwth3FoJw@PIj<;X{)?;LNn6)PM1>s95(G%pJMJ(F+ZNYfSw)31D>(;y;*4Y zbgn`{DR zG@3XTI9Ic(2Cj&Z^L1xG2N`;s`OV%n+yYIyZ1aTEzeVVF=XE7Z5~JO#!R^@480p3X zRdKRHWHYxbqhss&;CAYL3Lo#-%&?msn&ezkqx%OmvVtUxXG)kdeRr$PLCMtMi)s6t zesZVsCKLPd(ok`6Vw`|4T>#u|A+)oweA%VxFG^qBSa9}qczar6?d#OAyU9p7oNb%@ zjjR%beDC(;%!c0lL(O=6E9lb(XfaKftJZA&97V8j8(~GU2i#I7ClX+lRhgtYGUDFl zwQiz3`XZvGpET+;Ht);m{&AEnqD*HuB~Sgi)WcTjhVeIG!(N%-h%8IJrEsBqhrp)y z1AY-ELSUlSee8c)ft<$p!^l zna5}dJ8tQ@m@QuoWL}6QKlJ_>{W)sjiS?6WF?o8&8Z#Q!K_yXd2o?d=KG z$Z+C9Zk!7|je*J3?(5xzK{pCNM*qC)%L1>7AIcUGbW`KWDImmrN8igd8@dGv-q_J! zM06;;+i7!GaP^U26&_S2J2Fb+0!P<6%;Rn@y;E)0e)PvhkA1*T2v}=5I0I z-r>5VJz}cdrM=Ls+$dZJdd={W)reUF%3iQJFvrx2^EWw|7}yNzx+0u?tN?+S3}dh0 zERQMS58J*Xq`&v9aq|9JBW`tsKdE$RnTnZ^?p?1O){+X-Te%8@44I}1PQBbgM@*+J z81U=lfDex>YQN)%;1uoH{f(l@vbxDrHCQ{xmx#Em41z@j*N}Z>&vh;1U|^^3-WEq5 zsw3r5&Rd?3-Pfp&Un0tjR|kdA9V>Yz`i_)XvuTd8Y2HIx;{FBTe-uNF@}o+IQ)Mg* zPc2Oc+|=rJ+ZC39ICC8M%C@2<9iWq2~9^yv;WPx<6I6d zvi?<<3~=axp4RoXswkVxv1NrZ<^FN2ce(0iUO{+Uaxj=F7RaN2YUs0xG^G@+gp#4~AFwU;ZK~su9zXq|3&)ge14_F+YmeqLz=z4R;bgm@MuV@jBAW6Z zbFUVgf)=*wcqewOZd^F@QzS)p1e8-0RiMIX5)c-AsE*R#?l%5cTm8#EYfNt(W8K4U zZDx4b1^nt>3gfJe6#4v##Nie+8;<(@O1AeHRe-YEnQTkHvzM{U{h7{dQvUcw9mq!U z(JQnl%-*u-J<+(V8}rRxUR<_zwzcKGdZR|n_sxZt)SJf|;=R$H&7Z2c7zZ6Cvc{=I zo$YJw%2GdvmxW6wA>v$_%UlLm&P^M zG$Kw2mSxpYJBMe7FyZd(XT2Ab|G+AP^PIbZ8TOWy8v~pJ%sjtPuWN0dqr%H_EA+}2 ze?KhTF@esY5K;C(QzE^L3ClA+$$Tq?l@8 zv}_N~|C$#z{Kk(fTAd7yk;P$$%fXI+wC`mt4Kshy;v5ui-T7w)B}d+-2(jk|Il$Ib z6j61w|EplYh~rp@D1O-@>Q?`~LMgqCCf1J5{0K2AfQ3tA_HR6|fa4|&NLaH8) zUEK};QW-FrQap!)8uU3^<3@9GgPqHE8W!|~GVP!HSRSv{T}|p6kH{RyaZ>V$uMlrs zi7n_=S~Ib&?rIB9p_cL-^FjF)me%YBVaa3yWbRc*)T_x(9QG|e5kT7L<)HMFwE?_0GM#Y1aq9o0Y*UuxCY$_L%XZ-l-s1kOae zjq`!m`=f4j;^4T*UwzJLg|N3~uV-09b2ZOJfe*M4Q>>iL`kEkv*}qrIn@e)k*HNQ;W;n91v#;U|-wljIb`37LtB zbYij=P0$~_E}$rIrgd(+Ug4}$--z8oh5v)42?vRCy@?K+F2wj|e3(!VNLZpM4Q>mc-L57|XxoS0S9$P3bTb+e*{^)r; zT2h0^DaHKia)616t?WiLq!FCgjTd4uMhO)Ja+OVdt`n{=wr0gvq>15uv_g*43Pq^j z9X^?iHbfVe<3J4`{R-Egig=9Gr0#ZQgjFXO7+o6Jd}yv`qtG7w%}K-4x`DR2QYGqK zSC`?^pp_6!+(uqndbO9_vSHw+6vObZ6MgD8X*#M_a_hbe$?Ll3#=T6p!Rg)S=g?{| zy5Q<%W1wh}`|*d{j3MiPz7=}aodk;+fkal|d(oOQriR+$(HSQPQ=qqcM6t$6w)B7s zl{1YUUnS~*&8OQ`dF66)c8^SItTM@e>T**!#v#yRB6wKxxgOGM7S25C$>p#<>wrG!MVbp3aG4k&$me$>*#azL*kgp=)VbOGBWMd4RgG;$8N<)b}^fS1j@< ztU||1*w%N&_mA$7Cc2s&f2`XK?5vE z_axV>e-v&RJ~KFC@lt$TuapL=Nmo<$SpJMrUVDv>bA;%TYmI$x?}c}z>>madu@2(d zbh?104PrF{Z=acmxorBU1Oz5wqa+}X1e@UXbRHqw(v2J|E1+19P>V-NWHG(@Hznn< zwQ%k;e71nRDaKc^PL^KVM4f z-PeIz_k)dBHYlff(Zih*xRCNI8;C&jG{mm1QYk%wYVQ)a{JeH7YJc198)4^EpE zU(8_m+t8Ugt77w7wyDMtArcZ>NH}n;!&WEzz6adElb^5mgEl3rQ1)=f1d($8@ZiVm zpWX{TcumFZake9K13E%LuoGLAiW%_BUlg8w-I>%E^&ZW3QbNEjASQYd*z1(YY-+ z#daD^WW5A>MtgNpQz3E!ZvDRNz3_$okm7XBYW%I|P$7GX%cVwY5;M>_C* z_*xM?VR2nE=`G%{w4g7mWal!zu}7W7NJD%lRd=nc8w7lcyY7#N zNdMe>0?s$NQkdDScF?bb3}g=atbxp*8F9aK>x`b(bZaO9E_93t@DlHouGn|<>g!ZY z=>Hk$hp?msl<+cJo=V4&L~(AZq2E1L8=XF!f*4)gbNYrIGnnZjvEQXBE_khC6I1+6 zQ(ssBwM&aYFXH|-e|v=vvx_<|7!JO|Jp0i(a%#WIbAwv7`ispToAK z*_GX8N7)6K-y=8Fo6|!2}Oo`X+CUTcQn0?<6l~jV?pvde(RYTWoD8^g`Rn`S%K3bbIaTN3#I|7F)w+|(5dFn2GLb5foo(i4Qk zupI_SSh2?m*@ckHwriuSu&Dq28Fb4*3>SqHbkn0L4Q<;#c!j%iXtLuWSB!d1j$t3a zZOb{l0^axdB7&mWI1>MMN`dZET%~oH3LaEgj9y?xvM(U}X~}|H!S8QX@7n3!XVSi- zIAy!m#Q^lan8b^6r6l~aP%(d-MXn?}2)Z`T9P@t?kQ8Hl`Ck_=f)(?qlVy%j^dHW< zkYy$zQGxH_;q>rho&Vmc$_jmPwZ!ycioVPW#QG#f4LkA0)Y7Fh#nAltd~#`dUWxM& zU~kZ?j{390F~hZ0Ft_Toq?hYLhdAVW_O9fTLj1WSE;Js%7Bxm*7N=bV>lIGCQ6=_v z(3kz1(}>Iy_89LvG2NHE*SDheXS|eM4ZaR82e}VV%yy|w*nA7^S-tajMF5UN_ZHY0 zb1Q3+^ZN{>qm3KOmnfCWFYTup%MZ41FZIH^0Y5iU79^#{h-sg z(XKu6N6J@025!iAvWuo}NPGocY)#0q#o)U<%t zb>It|fPTJ*F3bzRCo)8qZV>;Y=-g^MnulSn;z-=YN9?w+c*!#`X;~>NOz!8#P1%+= zi+s^NtsPOw7lh>RM1Oor6kGG;5mW&rYwesUG49U&gpqmLkMpr8@7pe^^0>a5VB2qd zP(*&Xrka4BWf>R7*+|B-=qEb|gMV20q4zI}tirRM#BGn?2Tpt*P8@|RcGphEc^o}SZZ<05^YyFs%}AJ1UTz3u1ZPY_k^Iwm0>yZU5iRaZBwotEr`j?71`$oRP_d& z{q`+SZ#j~+{ex`G5vzl`Y80&0Uf#>`S*8kYaWyYv>@33fOgAyC)so$J%B)Z)mx)-;SADB=_4#1KDH~vQ7RoBDiA`Q#6Dhz;|+1el0T&+_W z$w&iHEV}P2Ng2XSh%5Q4^Z2!c&eXHC-HBxA!uZ3RgWsHM#d30S23T^~UVVq39k0K$ z5R&CH3Uubx6Z$h41NmiRv|n`Ij^5{$Ln;%CnI5_M2W_i}2ZtCyo1dhq7U+g6X6lYu z39tY}3Bdlsdxd+?SCu}%V7bV(MZgtesP8{-ft9;a_OxVNw{sU8L?4mfpIR>RgJ)N@ zH#e}GUeGhU-i7DITI~CzBZQ{L*;&{AVuhCxn)~xY$JNq{y%>kD$-E)|s_8JI2@p^@ zVHhi&1mOceoD7x>*c7r+M{s3W=iHi(TNoXOvt6Y{(gq!0ni%#CTf!%bG;+;zXT8k5 zF6K4THLi=*o$$|lqL~q|1m>iUq=Q%KuCpxc+FyzHyB3{&m!^aJDDhJRXE1~l^6%2` z$P+WU+OOJ~cYa|>eZ(ru$-?v2rsf4j-xzZEtufx6vm9)6g5p?Zi+UX0N1#M!XRdx zZ4t=O~54T^Ngxzcl6q6~J(wp-1404WzKGwnKMGFphauQ$SIZ%7i zYy>sr3MuCP|>)bc@qt`d4k~TEGm?(kKOb{Aekv3W)R}cMgvgw9D zrSj_(wDxCW>skzhEshBViw`%duBuHaTekHIwbdA5Pj#k>@%IY}1G~Cue94rVttSaP zdD(W6Z;WxXmm5kKs#VXc1XNF=zf_*rr7reiZ}*883ube!ukT~Ah-RhU`X78xiQ_;UHu;RSqB>Bbx*+$p z4n7@neS>|gbq}n<#DMi6>GHz<`pcO#!`u#{w(jINP{ceYVh>F32o zR&URfcn9&+#`MG3=zDw5t-JE@jf={~m!gSO6DMvmLjMOs+f&Q@CS0Y>8K|GFkS1kYWPE^%q_n1~}Cp{9Fd7 zqi*YLk$Q!gt~|0&JF~7-$Y6#jx+Oxfqk||)ZpoMz%3DYGMS{5Z<!ql05$QqM>A3w$Rcilaq$1Ky=XghabY@PLk zW$iYcGRBcG9b@d5?mrPC5q3o6YVru`z@2~o@IQwk^4vF_{RH-LqV z?-jnd|AFXARIzi0=yS`m#b)#cfKhHl9>Q_kNZ|vVaT?KvEO#c^6|}h_HoQ%YZt^R} z7Jj(Avf2cvq_gdlI`k(KvX6WX1XBO^e-xdCTa$eohEWtmN|c6y3IdW+(o98KS~@1u z%z<<>=>}tczFE*P*9#nKKB%b0rxze`+_a@T1^FvD)=tQ#ld$*GK3IinAS z_H{SjG6c9G8P4c`;uc5lufKV&3Nfs$neZ>DaQG%@XYsISZIgbZM&RHWs3%m~Jau&7 zvOFZb9%|?v(k6Xco3ehsj3LB9Z?c4=MPfsKDd1WZvw-ij~WZ+*?MFxBa#yA zG2IC@LchBklOrAM*oWJr{>WjcvX4a)m!*jmP@+eRGaSAnd1E!~-P(<^wOny(`53H> z)Jsw4O3Xhy$#P+OQ4*8En%%g36)e?+i0Q)vzu8Lrj~PCmPM^KlIyqLnz-A`Y;=QUU zY(uIA1M8Zm)$Z9N1>I214C&u-Xxd0Avr-t(w`S1O;AD4lH0Z zsh>L7akV2vfBw*@|Fb&MV1cW3{b}dRy|rUsj^m?#D?VKH)nRmD{**e+cXb3yj~w#* z?F=C0x7E6xkA~YtW-kj;##et~w!qN{#LFrx>at3o2|u17$~DmZt_WKR+VLtdaXhqo z|0P608fjttEzqoMdVTWrdchZ@*Ojsw<1-ek{aWVPZvc3GNo0`qrVC!VxO0_0m;?3@ ztS=VLD`es>2fj8%4CX(@mR2d0)>K(Kzs#6?u2vHGBX#lq_2196c1cxQA2%7ac4wPU z&ty&lIiw`|p^ekp@m9mT+w=M4Q(i(!`&yOHn(|RnbPEWkd9I8%=JH>{PX~fjzdJoI z-1#~;=yMMtlvp;~Ef00b@oK>3td;S8HoxgO-vbrZp}c|tJsU0Im_4H;XjFY5Bbh55Ea@6l23}u5=@jqnt_0FL6$25mx8S?4wA@ zy#)1o?f}a-5=QfCs|?aRmgM`LShipJcW^dt0RdI!ro8hTL?~10XtsRr(`NQuDpX#e z2~KG}Az&cs87$(AGPPV)Fe6l&#_p9mcL0g%mOv^7wSR(TBhWFU2oIJ%C=5(EuD=}3 z(0yUPlYe$K$R*N?{(S0qZDn42fk(y?gQ^pG8o8Mb`#}SRgz5Zy?bmW6)jQSo+mzn# zFKw~oM0=;m0Xc1-UzY;N*(Z}pb}+`rj{Upiqd~QAiSdZUuj%yZ(oiB{UR;~5`~{N6K@NjD$U!O>5wNPKmF?f0-wmK*FHCxd^2jZ z$_pHb9(6`pjrRWeXPdd&AaZz`!~|pB+9EBOY~v)lJneAOJZ|fRf_ss#|!u;US9pH_Rpd((#~wCVry7W!{PD; zZ}JR!sLOPyZxS06@KX)99#L3ky-94{ID-jd8C(54#I5#}hFbY!8sBnVzWMTnkMt*} z*%c>ofeVobUW@sf>!-|VH+a=9t9toIbG#kb;Yi@?Y-yPl?%3P5 zZXIH|r9%IKhJ@t)4nk7rdEs3=@>qo#6aX-?Qod&Udt`IMH8%Fmh1&Gwo_-~Q2(lwy720daA47LK>h7hXvhf zPGFUbGtZHcZ_jaBZ%G)>jZ~o$#Sxz;)?zxa46xq+NMb+x#xQh8WCvr)-*$JlVTHz9 z;qdHx=lxIOsscAewTr)q&UR3qr{NT@Xd~gA(ai+eR;)_N%R)fs{L-9cdt|bvh>zxg@J!*_#AOB|yQiAaj)&S0cqm zZ>HmICgI&n)N?8~L0gCrzle;&-5@C%bOST`mAjj2L0v`U$L? z^~FpoNx0v&PX0Q#1@{utfanhgRDGqoFnXY|K}FR#Ck=>_j6z2@{cEUuuXWhXPemd} zq99=Y?9{i%ExB}_@BbL)t6*9AzYA~}zoJVf|Myn!Ee=B{aY7VF03LcEKugA%LvBwm z>jc{Rkr}Uic~K0z^$GL&Z!4=^UH&!@)4YZ^;GvRFzt@+$93%=^_?9>#Dd0T#%v~v< zFpU~{p~T>On+rF6{tb@PHReNbUnGmwtb(?;;?gS%z8?8Uu{$-V?Uo#)k^uEUge&g6 zagZwN8gWywt+#UpX^OJX&iLMCJ30!_+IzA;NJ-g+2s4(hjMO=jNHs)_Q zKQz(e-T{+MJJ=_OoL(2PT(;Y%%n~1hbF|IdM-2t7Q*S`IBu)xy%sa-75N>enh+?Z? zJaThuZiXvDBgHN)H?W9#eYWZmlPU#&B?K}_d^<17Hx-RCM+mG4Ah)7QW=Yipoq6_L zV)pPy2U9*T_UX>cSD^2HiSi|OEz{#UKOjPi)Cay^htT4$$WC05`env^%UOM_#uM# zY4?*z5ju)%Z6A-FXByOIi0_U*`lIZ1V=otfEpVaF1t+vYLJx@3$Gi?M4qeC}KBXa17uckXHoeP&Xs5Z>WYk%;aGu8K@J zbRP)*+P#i3c570n)q^yl{%zlQ1u&7?-=QB#X1c@l(tjoDkoqXXEA84S&t38K!_7a= ziSZ4(11kXcyXw#6#3F9^3d47dv!$cr)5aiB&wTQKBXE<9ZYe8$LIE%xeOW9*LVsN_H#r{5V^xDDrI&# zNO4O>$VJiX`S1&_FZcG&U>sOj-!+V8N6BQeEU7>EVHaDCSAf?r1Mql^2(rj)vWM-6-9xZV5on3#^T0m+hmjA}d!nluLJN)lXSI-LmkB20A9u?1XcZ z(hE*6B_MD^3xiUG=IB7L49KqYP)TgX)+C` z%nLC2mU5MT?P5*%rvOB1w6c$I^(t*B(%>;F{wTrXjYe56`n+PWFS%}%)=ehffMz!D zBNjM^@(g*wI&8P7zAl3R?A6@l%zeZ*p3glq*XXu_?hU(QV9%xwCxLV31Lp^iS9s$O z?uW{_E{^0Hmk~xc&C#9#(YG4+FyHfm>%-1So|2Kcw07j_>-d60$cA58PZIUNDO0>M zmJ$A=uUa_b$ABLgEZ*@si(`u~1`^H@5B5N#dZjHpIIDNYce39FKN*kw>3RK#tD5wW zZ6Bk(T%uxn4kic9lecQ_N@u#K$jQMq0Y8v%x-f!*!S*B?DOKdUYMbQSCO~?55Mzno z-R-D-+i{7Onv7w&=OR`+Gb-x0{!)otOCz>HHTI@fVh0meTNjF&)UidLm9BMXoV_a{ zgoopJ7R(PzQ12CQENy~F3Rz3uwq}cwsj2Z3Tgu*ejKDaY7*vGyMPlvp!pw0wZyTFt zIA+yh!at7Bd^0At9YX59C7Tk*{OKpgeJe@xz&@f{N6x4d<4Jfzl-{l9kL^P2O$t@- zX1xl3u3JPTeQ&k=hJNCVd)dWZU=}ridWwc-tXn@nY;8#dosNowi?IHi zf8YFq2;I8!YXR%sFXpiL@SUAO-y|%*wU$W<102+PWHl8iZddG_trIeD2k%S_`Z%Vx znNZSSdrK}uoaGar3@P)V035fp!8tdAPMAT)%FCg(K<4dJe_;_9_0Pk9G)M`)o|k%* zOJ%$@`LB(TL3DMq992(3mn^=HvJQpy$PBvuy)ri96s(Hrd&cWUmR@}jAf$iYxA!8# zNn(FqaT^09&KVqa?h>gEQW&3KMwx_rVW8on)%h(`F%oUd^G(1>DF}U(v_PjlnBTHBjXG1C^Ge|)ktYg zoZ5l}D1AI)DWWU#Mz&pb4W~PGkiBx1J5( zZTw$(j+;Hi;HGcu7*Q~l<99OUqRV;ONvo&_9dRU>zFmCt2pO!sxjbRP9V||HI z$zy1PXu-+B4Z?Nyxl8efxuxHWZz6ceDH7e6s`iqo1FdeVUAlM{O-%khf<IsoCJ{?4zB+}a!iCJ%HD`GUNMDhZcvQZNT7Q1!gr^=9etsIODzJ+B%sJp;L=&W=CswAr~8tM`# zhh8qO(UVlt*NV==gDC^G>#)dPOI2gy(mp|?AJz2?i)p-;Tz#>y@NPEt?RP%j?}#(l z3*5vt|I!K(qyRZ+s<10G?eiU?$@|2e!Z%}hPxp^I87<4%?fTIt=J^uSm)yM zv-W_f6tDNqTEBfZ@EhB(nqWKdGC+vf`aT0hOcpC2%(dQUqjCFpkKt&uWBNGz?1_`y zo+k`tGuCf#{;gcbu{~(e1&$5tZz~zMsahJjqk%QQsp~&hWs{R58Ka>T7iaep1V02m zpw`$ResP1Z-4B@P%8ldK!v@8VEY8=}Q`|t}6k`v!bPQ(P;w;LFa6Y;z>!Xcrm$i@_ zwuXz$x=N16lP;gmL5o(lxpn&YRkwh!JGmls^qE>lcI5&(d27W%1X%OaSdf`3SI zELj~{4O+_usYhgDp-$i(H)tLeX~h|O_YqgIzbkZrW1D>xsCVyX_Kd7v-rV&Z%CIN; zh){dwg)g=?_Iw%SJ!|>W(XK_5OPwmY!aj)zMn~#;s96qCFaU-3eJ|1f1VPw z=6Px0Oa9!27eNW+l4Tvr|)(k?A~>+D)i3 z{X_kWJGr5+f0Gst_?YSJk6?MOUpHX|eD&2jhgZW>9~xqHWEp8X7oanU$yueJs&mQ)Yjf7&KlYWe5K6V|&! z?uajB{7V<#n$_wM$Bk2ERvWn@vsF7+Wq(~58LS_T-g?8M+aqCmV@u&tZ z4~1HXsJPhk@McEg1dm63Tg$IvpGDYi#D~@vdod$WlBb;eq-Y_zJ`ksfB<(|IQO5^X zj?Ed#%U1Yg3JX3%?$duzeoR_JYs#vnRlgQG;Ro1n;+F0UY2s3Po>&k9XpCs%)(Um1 zweBzyEPH!i)_hKI$>d>rkbxxKUI_Ia{fx#0&xV&N0N_6fE$aer5apJ^V_y^a5$dk< zk9w-WW#oy>fgN{MKK65Lq##oFER(`rC1~fGdx9lq;5yM(0Bqi1vsW4K-^TQLyAWn& z{!d5W@?x$6W<=;;Hdo>$aYf{blAIJ)xKIT-^}GU&>^b{k3vu~?RFa|1;~sJuJwqs1 zD?oKdk#0AR3|0ton%bRx=&QY=p2CnXAPR};p*-PRiI3Wr#0m(P{YfFlwENB#IBVZK zEpdA_K>=ONjxQD2e~t&bk)^KD-m_esA1b=k7vEznWte{h>Dw~0Nu7dt1V6!TVh|eG zyUX3xz7>H){6od!o|zz{sN9Gvn@Szx6U#Koz_+f&gInSt8iveSqSO%8JGr0y1(^>$ zSOZTJ294@dWrAC-iVg&Ti7OP1ccV0>&YaA(W*+IaQ9Vt!srTyzrV{a(mn%;zdgh1a z43FsX7C1@FLf_Rm#xg(8(~FwQyt64~viO3}AttbaXJzTPjg!d*n;$HyBdhJ!O9jPA zxIaVI`wtcl^9RbVs?T(N3>;&>EgU9aJzoQH_>!YlLxme@seF|Nrgo~zb}}=WtXP^K z!mBZ%BXr&i*VFT2ujJZho}n7!C@DD~vLz)X&pW49D)}$jrsq)plDU)I^Vk^q9|?Kz zV_$t>xCc(Bzl#sm0q}9ErM6$bP`%klQEsG(k{hw9$;V?y0~Vq1|46CU79;JB;Cu8tzH+6?#;GuFLd-5V8Bnyj*n}HSocAD-P^of8$CbsP#mPNY-qM8d^!RYo8xqzew zkml|EyS-%keG23(l29XDD>_I?=bEMpJu<2?Yp8O4cXVo~mG;$Z>0byXq{db?#1&5Y z_W+WD4v0Z!vO^*7>J&(j{^K)v-ZGHmvE;f%qbOM{TW6t*pzz?U&{gQ?pVF=yzA&Fh zrY%bYQae|^ zZY)`0c~JiB8~fHaCl0<4^7|&aRJo{;@jV~9!zovSX7t$jDBh3=Z>_6g*;xyW~Kp|Jp(69&pKzBRD zA+ENJ!()?+%pcb-)9&Nx0$hTNgF>76-^AtCJ2`? z=qt|ZZRa+3E1l0vtc^gD&olc#YznzAkCnuAN|t!;54#)BK<}>xzrfjFYho=Y{}H&O zlqL@aH>ZscSf%qI7u2bKKF^|3KoNs99?3@C4h6TJv!i;Yy{L7&<~C1+q%UI~*pliF zPAfrhpHRu}=wJ>^X-u*6bGv8pqvcC)#$IJJU*4)ikSDjtp0}vd3DWp!u+M8M^^NiM z`ugWqz4wc_=<~v{Tub}*z=`LiaM-Jal(oj@m;)Ozi&0AI)QXYHuQGrE-wTA!96^Cs z8DrGEdSkVs(~J`0ZpqYc$lo3bRTd3h$m{wTI9|N!UfPv_D((h_=M(?lA_^d-R*tuO zC(ighpYv#5=bJ@8TX{hd}sOLOyH9$P+7zgHH9Ap+hlr)cQ(ze35eF?Og4}XSNOGZy2v80PQa+zP z@-)6_mfXiWQOqBeiz_OaxAKxz%~DqC1Cfo0qNwT&0OmBj5Z z+u66e60$Yb#e`R$hQsK<&B5#qj0qmaJ19y@i{G~MQG)l@feD`7>|Jbl#o0nk&7bD^ z^K_yl%m`+`NAL4MmGwc$vq3g*F&`S~vM*J}4|0ny3sR`wIjwEl?{^@h@V8uSuo-Fh z+a8Hf3H*bFdJ9y70`+4p6_>9x0d%!O@#lL2sysLCsgGCJ6$Dy|8#ct6$Q@i&zx!VH zR-s>+iF3xhLVQN@|Vs%?`Msk#>9_f_E05bb@?hbv&DfQ|(FLO2o#3ev%QV$r*kAxa} zEs51Cyg)r>g~%LX!7I)i<&`b|Ya6}U_@ZT-GUCGcaPX-ba_F)2`7ffZiYAyIZ-UME zX^rY|b#p3vBZY7)8%r&CVQce+q-WH}474AH29P-&3U+br8Xe2SWb5COal1u+a_DAx z+9e{2-j5=U%V1)P)d1H+1TKrgsuVG4GKJK%B)A5Y`M^Mf;j z_xYIlwPns~Xy<0Kx;Pfab~2>Mfb{cbF)o5Bs*c4L^%-2e1;g#8T`YTM!8MWv{aT>6 zSc!?j!AS)J3$Ss7wtJ8F=_lIZdZ7+p^b)UrD;(n!7bv;rN}G}@oaKtXud!KvBj9$}yMR@Y5Cx%@mux=4f?YBbs%0q-5>O3VWQ+DUpv5%#`^%)QSF;_i5B&Ed^2ku~3(f4wx znXp1lU$V==^hQ-!FY{;*Kow3HJb#>8y!nE&l-1*m13{bV2>g_C*frWc5U!93w+{ZD zO*y(|X}h#Xx6qHmD!`&ful_3Fu?aoJnQVACatYv98+C4rCVcVuPwB*>~Az{SP zDEqDl59LdJ;<9jL7g-|A6F=)cT~VPks|;l4u{ zH-X_Ff-JL@j0|l- z9Ibqjou!Qy&QXPDOM(>EJU9;V?|qX%Y#WQLj-J=~m9IE+2%Rtp{Z8Y4l_E1wF1_99J&EpMaL!HJTF6T?79PDo z85m}K%!aHDU>@=>{Chzkxx8lk;sePaqQw1paRZgtpJn&l$dDf{90cL6@l2V#F*RYg zUAoD3o_E@E2Qo=O@B1e85hyT-BzcG8{uAfs%&YJ#w!=hjyN}-;SGea zID3;~7_F!=mIcwDKAlnUD)M*foTfE1&sXH<-VO-by}sx(K39A?D=7q2ga7QBW+;^X zli|~J{4#@;>-gb=qlHA0U3FN*k)k|tm79#&?&rL1iTgaC8+}T%VKAU31t`} zk3{-kI;U}c`>-7u)eqO$5jtze%j`_${`?!EAE3aIwBZ-^MPAMg7Cam*LX^%hl!7Gl zhL^2;E7#~P7B-R=pD6fRtt?kAQ(*Ed(40iO1BM6&m=a!_I#k}gh$&TO(v44AER@eD z*}2)R!L*;3x8ocz(0&fmCQMUKaCT4HP=!T1%On2?W~%~WF@?P!IH~J*dtJ0RrK&)I z33)*2?i6^?nx{;>F8ys>Qv1a#U5cTrZ0xi2=}g&hA9%OH!d3rA7>|Q5xlYRr&<;qy zV1}br@6@C$^724ur7KUr{&`13hnJb0w61cQDw_z%I@iIzOt)T55Z>HBidb5SDgDCs zZT%Cikoiw$&O9$x+QA~s(du9W#z$iU;eb&vI7{~si{=C?}2#neLCoX=x(F2_fr!-=;xf4=_Y~o`(Av9t{s|!&(D|Do^soakppB&4RH1V@9T3Zl;FNRps*{+A(*EV z%bhH;VD5I;#)u0j0+2JxD>z^%3nXR{;Lz}j^4ja=`Qb;Q)>`5!OsRYr^0ClksUb?srjBA5X6?wK=l z+Iw1SIV^|OYuS$bTM0{9vwAF~UxQusW;--haA)KZP&)<9Uq;#VQbqb5$>w@3feb_X zYVW+(6T!R0v3?g9))KbgyhaJ()Z%#F)D?M1Z4Y_#FX^XQc`tvf^=A3IRUbUqcQd`B zVnA6qz;vagV9~~yNgI!H%`9~2>EgY~_XIIL8_Qm1iI_D0Fk7~5$kM~SLA74u2RgWg zE=3WTc1y?1;|>@)RO#T^>wnn&sJy@20PkOYTwg_oz#%qo+otehUH782I!>N4ngu>s zat5=r_5Rw`6x$}rFGh`UHZw(cyyoryeM)&?Z8z~DRG?jpf015Oe{a%|yFdz{u5fK! z(kEkElvLWfG+U#PNQGjr90zCqzEmA#Qdv=U_}kt`B1NL=KN-15l%0lRLxX$lR!X<4 zLF{dPMbUEvpU;LtUkO5EeE|3?C|0ym3E&31eml+sh6;y6A9RR}sw z<%3IpPNBzzY^J^VW=$K z#`qVR`A?1TrsOFx&AVuYi(OAtv?ha|yKd?Mvx>Ev$xix>c~MVS6uOrQhDPVdKw2ek zQT6TJNvy)4$0qR*SB9EKS+stHPe4IQ8}>i8ZPSl%|B<9YMNt@LrzIyc}cpr9tpcVGI%lYR;P$&?BJ3Y#Ka{$x6egq zRF0UxY6s~D|EcgQCm^AXkrkfpR9%2bX)gA=uemtLttUG^^=hpxZZsOzU)Gq;sVwf& z1sq;qa&2}R9Iy@+vNyZi$!~@C)sb)Lepx0 zs#D&s3q0kxCuyvb-mkpXVN~rpkHV6{@@3jaGWTMEUhpwQp4@e0GwJ!yoJxmWfapX`J3g}JNYpy z{@Er~AEcZo>K`^d4)i$Caxk(;9#C}6l$K|$d72k~Sj`PZ)f=;Yq)UfnHks`x#`N@F5Y2_>nI=J@Q9eJPK4)@P%z`?LLM z`s@X6IL$M@IzYaF9IxAi4iXax3ZA*LaP-miEQ>!iXmQ(>LveaJRLs2`so{G6C9E;4 znp^Mkp!VT1I8W9_sQScA{RYQg6#TL6F0Nv|+}kf$1oa}9PwMyqP#kp2JZ$GgPW|r{ zvxB5ys@ks5{#kom(5%09MY)t#Mn8SbOG99K}c5ZN4a+>K7-YeOaL)5l=DB7-Igo@_jhh9RIh^w^Vr$mdI%NG<~wT~H3 zwI$=sG>Lp@^y?%5IrEN{;H=By$Ku5P#7=?f|45Ag1psY}3Wv^ia~JXR`2()21>_6! z@M0@@%+2$ z=63s1LNaFI1Iu28FC?WIc0UV^ClP>&ti2Ov4W5;1&ES%(GIUpnW_$z}`|S3+l7q*x zO=F$+BJ7fN?wAcm9&4VUAjxLj{B>38jU1=hwHeOueIdWwQqk`+(>KMo=gI(mrdCWs zSsJTWq3IU@nLy%cZG-xZu)Mg}Ipsv#Vy-~G3a~e|KcDG8lFTIqpWf}Q1et}?b6DQM zgzvY?(~E?(OhcQl2*Wqpx#y{ELBtAbvmajW<3y3zcl~~&-$DrB z$^P?|`8F57$pRSu`u?$ioqG*0u=<(za_j=}p@o!aU?Qf@MluKv4Z*~<5B_;|p!@XU zsa6nPlPY7D5Hu}ziBWx_lh17Xi<?jt8(37b2B^%G1szR*ZdkJ6rp@m z_`xK7iW_kgaR2O|O6PsLA5{b8Ri8ZOAExFMAL9S`b-XU?_`PO(S6js()&@NL$Y%7R z;>4H0ZbGLEaW!oML7czu#?d@C)}2D&dx`0pU)Gu#4Huo&t^`KsO77~4?v8;Zqe+5$ z<*sE|*8{4rFKErCny`{T5UiM>P73Uge6no)lA~gw*2f@U$w;8 zY_$qa&RBi}_Qr#Sg9qn{)^tV5Sy%_r7py8YI?&oucda$2wxr8a%S61hj3|2XRkK~@ zILT`hXJErI*v;2vR?hSc)ZhnG_$l{RpJ{M8{DokdLK4F+inFPAk2Sa*h<|dWdfrqm zjMmaQ&~H$>JHZiXPH9~)c1xNlAw-L2z2s$x&vVum@6JB%ia&jhE>sD(<{Rcab&W|{ zMSkffL&kX?*z`l`j^KHUd%e0K3lOO*`+M->hsXS*VC*VjrWc*umjOzAw%eWaK2$K%kY#)ak&PbeGTmVd7793thu zfYBfOa9&a^+7Q}m0!)LotP)v0E9IWMz?jOk%OouVpGopnE!36?1bm-!HjqF6VJYRe z2-!@?V^Tj zVPJ}g_>9ezg~t9zBCeXFJx}P~aKCb?Q!H?jU35BDn^dz)@%XBiVnN6*~PCU6Zrlc>bmmjuM;uOY>HmLAT?FsES|M9Zi*2E891I-MxCnvjW^<>|Q+Qni@xq zuk9I*SUBmJz@B-w!=};MiTuKP6WvnabDxFZ`|0yM(oZ`x&jAxpn{KK*$b(#ZB~rlQ z8IRrK7luNCtXMX{8-NuO8RCKb(>Z;`dZF{TREPIG7sF;ldf);)rbM|wv@-;58G+4} z8wsjp90o;J0uX)2%LR02LM5)jti6d$;VN%h|80QS@Z94o)~f;n#SXfF+85LtED8Y) zFmgPac9HDl=Q|R9l4$xY{4xSPf5Y|3`kUu!_N4)uesEiNrWANQW!C8$Y|GPCMts8d z`xneH-66MLm7ou#DlKnI%mhO`(B^jeqU^B8DH7yg$H>U!)+H}zg+!`gY6r)Pm3h;4 zwW9=wGF(0Cb?RUNDeQol8>Lt=t5!kb8B%=m z=2d1Rc0Lpj7QeSpxCnpac=Y6_c)UobKWMN!rMVY%S)WJ{p*lW<$-g!+n@Ua`Qb{GElw^S6IOYBVBfq(wj417_spv<<_B$ zMm?{KUPugfxg7Op3OyUuM5|PMUv%nXnrTd;aUu@O&e#MJ-k^W?xk^NiX@!4%p<2Yz zT1$&Y#dlHS;`+@X__lyIVLAyeYXMHd6YTB9%RFPuT`xc6_Z#c2amFa=NA+bx!`7#* zF{g@jsG@1Z?^#^Q5uH8Fi{_hh1}-!KNgCMa21)RQRJmsg9A!P&e-V%v9}d@yW5~wl z`#^+(z(={ljV$J`>bJ?u@6cY-Bt>CR3614>sh;@Tb>qIrYHE_2d&l z((M4T*B&Iv2ana_xW^yfnwQzQKXX$W{OI2m?Y?W#h+WCt!Y-?YY#_{wU8BBfmEm~R zt{&7GY^@XfVy0rP>>2m&wC91>AspqZ^w%%QWY~$X%cQ~!HR5q1T??E3hgo0d*Ok;3 zFMgu{^&wskY|@p%7o>~<;U6timQ4u`R``|l5wbR(qzy^@+IC|Zqn$S1-u`AzFgrN{ z>GYkg=igXQxyP1BQT{t}Y3J}36YHrAoX{Eq)kewJ?Y7t5B;6za%7JeDvzSZ(5{_#B zk<=QFlcln&XJ@cH+ZN*->l%|$y-|RMY-lq7N0J=OD_>Pza2ZPcX$*#5ot{UT&x;oR zf*vIOM`G0#c9YyF1RMZ0N`*HbSlv6LqUGDf60v^XvY8?LUJqsmaW7~sn;JD{8K zv?%^*9=!XqAaz;0$$R@vGdZCZdbWe)XsM(hx)09QrsOPo0{} zu{F&=HX?7_IM*!!5#0+SH3xqVn6nL&d`i_=ZovPN<~`2!!p?&*`61N{xcqff*@U5H z$C74~-r%F)*LSu{f)ip)EI4=)AHw~f&vXlCc6OO@0<~spC}tw0=jDzF4#S^UhDxno z-*grU)#R@5BVF17_Xy7vf3&MC1vz623QSsb>lOu|MZ0xSx6Wtm>;+|ol@m({zp_Oq z)Lj1XD)sKG;jg}S3emOR%Bek>nx(s9>csv;=|KkAkII#J2iGK}T6j3D$MLVKw2S?ToRC zW9`g^#7iH<{&CQQc-WNWCGBb>3MQ{twqxcn&t#cx7dip?Th(6oizM;vTqFX1G|#)1 zzLoq#v$8o__>9T7x_Yf$b9^jUwjopl@|%}8mf-zIUS>eoy&@CMkawDq;KvD7QizQG z0iLS32+x1qJ}JQlknf@AYiVw12>IfaOB!ym&K+_}DtSyBi}%5ruQ!L`U%Qq1dat~0 zOeB~P#!$P>QaeP@9-^K!VYo!|L3e=UxK5F!Z%dV=ptvkjv4E`GmHU&> z;9i)+17IhTWlS_wfUEZ+)1S8wyMCk8%bLDfnqKM5dJ*+qOXY5R0Jw)Zr6@K(n`aJ5 zLjtOHq>UqtG`iq1jeFf~iUnJKeu*FJplziGG+j^(^=5Y$mVEyV9UbUXthv@nrbR<^ zyfof?AXb#0D={a|Bw7n9ek`f_EqN5q!H=NW(N3#zJ+}6A8 zQ2OB5KlWVbK2Asy7V00>S5&g%3kXy%&S~YDt^J-QXd>$%ryHq-srPaWW0IBho z<9J9pUSV7^4)kEh{}WiTbUqfKI4>jnc9iR8>oP60Ly84fJ)l>kFEpV+aA4#p;cKi^ zpjlr9_2eW`sjkNTN5YCr>VLRs0^Zr|0dHu25H2SDAk-erLhq0$s)Z}K7TR&!L$v`z z6rcJjiq61EUCW(V8~V8-pEnQtkVuK%p?W~UazMO0sZUqv!ENtSaP8*JnAw8WB|AxK z108djXSCe>B+ota>RmZs7>-d4=wcoEg)}&$gDJ2PD?Jf${ff_~sRs*u&bOtcs_qGJ z9%8TahJW|JbieD*V$U!W8Y!X<-hiFRxTRlmZ%54p^D<#ztH5Y^kJ3G+;1}4!aie2! zTmXRW^;?|-rsggE_iHcO-P_wZd}~+G@UjGARsge=xeBCrVp?WYt3JKW-4ts+o%?0M z3Q}zS^Lqq06+23+$lRGg7rQllOiTK@!gSec(J6GVzsGJ$Yh3Y@zVJ$JsE);Z|Luq) zuLTiOr#3U3+`G8GOw6J(b!JRh%$(XHRlqA@1TIkx<}A%h&$H2lr{(vpgmcwyQ}RS% zi5eCDnKPeG%welr#oI}cP{(I=$9gkicVlMLuQp|pznp``u$>2}UZR{JD7mp})aJn3 zm~JrCiG5hU_fN;M4pif+y)T~>YaA~R4G^wz`mqzt7IBo%?D_n)cfOryyY{Qi^VD3M z?Eco9X!|w{GE8C+OQ{5mJSy%`H=r380^Fc#5I*{QLogBeJ38)0KGEs1hpuN#uCcAZ1? zcfCw~k9CNW*ZK~1=qUlo8#RAfb9qqrIAkTB{TkI}Zj!Ddrz?uz!v#oGV&>qc5|uoM zZ8cu1|I(foX&P+n#CFqqB4f?ABRp^Xrwr<`d{bDz00-8ghw)zqqCTigbCvip7F_e- z40>c02HRoItmzw>^Iz&BwWLP)^j1C@kf=Tm6;p)of|zT&h}YZuf!Luy5fRN*mMtN| zhsnaWx*qL!pN$mluwn<2F25m#-(~i2xR4`=v`m@|#8S7_XE+wT6E> z@IEYk-bmG+jRq^ep^fP0Y%KWI%|Wy~7)QhNn3S>u|`#YxyDXJ-v^YT>w&Kk zgk!yLtgdc_adMjr$W>LY2xnY1#@z2}~{=KT!!=H}>rZDOXdJqYnX zJm>oqC{edC{PAR~BPZ8~m(l>Af?(oJ2d-H##OZlMk%+2>!Q2{IlW&JvdRDneWcV*;ZFS ze4OyyY?OY!^C;?ZJ#|+0vijUiz`>ml*|DyyivyyRDIM_}Cssz3gU0DI20gk4PChyw zpH!4|*l0{glvd+Fa|US3G4pF0wV$2l0Psu~75)(}27`P*4cneb7+G?vH{}M0G`6xA z40nBZWzpG8VUG7^D5&zCzgnioWDK#8*Z6;fae7!lWORMiN`$0joIYnT#?L5AdHOBK zT)zepkg`;~W=ZOiSbaUADth&%#4?#h9qmr=06`|uzw@Rzm}A+Qk#UbYGLIiA7Ne;a ztvw?s`b7+CwgrSx)4l^+S1rNt?+zdQo|M^Wnwabm>4DC@EFe7tDA$@Pye00I(@(xV z4_9qZBPZWF1fOxx`~f!ejsMwxMpm3-m9%-0%TfZYs+iE*8b3{%8FdwIT0o z%6ZdMC1u-61~W0rOx1Gjz54h!C6e39c}}d%%LTYY&(pjrY}IlzpO3F`lsJHvGg(;= zdnORGwUZ5y8{4v~9OI|c%|Gg&HcdmPpM_6` za0hmE`?rCVn_>@W;#Ra3kqXmTgmuCQKZ`q{xXY%jzdCSub55Jos0_WP%u@1e*dC*+ zuJw^z1UY~F7p6CVvoFlLS&y2W-3pMs)UqdPi}7zAu1~)->+aa&nlQaUBK?*xV`%bP z*JmL0;GT3|YdwrtkBeX7aJyxZK~cwsYaeR=e1*nVD?)wMEN*s;$yBkki=-nV4Aj{c z`WlyW+Ov+x>h49qca*$buMuX+vv)_U67nMSV=WnOA!1<0u~! zzN!9VY1!tnKA``jUTP)n%UKEMvP86D%9Ct5x`#vSttVzFs+8MHN}Y*3|GBlHVmllh zI8;jCRom1Hm+y)?F7Et^lv#yQ6Dge5j*<+6l~8g(o^N~kP51pgUyIbw(CGy2!TEx# z;7tS!Kltq}dd_u0nmrrFgG)^>=RL@>2z`~hk{lKdQ6XC5zkdzx-&<|&<6_|KAT4k=N4D~0m0P3j(c5P2SR{v(Zn}%A~ zvpd#;zh$f@X{IkclY5JjoV~w0vb%MGo>}pp-kvU~)ZdvOX`a5|RQ9OZ5b}o z_TR}doPtgSSJn(T|bMa5Qan4fHPqW^O-05%S3P|I}j9CSg|{oyU4+_ zU{%}mVyWyZuam2I_p;8$)llT!4Q@61Mx~g0{;UTExBPmC1U+$(N=1i(;rubMaT`=l6K2Qx~BAfMvPf`Xp_33l}fPp$>{Gz9uo>lm;YqPXfJ&_1c^K zw9`)~Dc-6G&qrR<=fH(sed+itAua6f3)*Q6+>)1x8`@R%@JAL^9xHg8Cz!&ShRgnj z&z2t$oMO8~o}{RDR%9i6@CLts#Fzf=A6djS^3ITlr?g<2s%RO@j>n-<(;)??>%ZUkT4OUIjOGv0qJkZX~9D54(}wuvYct*J0FXzMW4 z3qZm>QOr`>8kL@hxi}MBwe+)Zri=ZODCwF=Th=@;4)8BO+X<(Xv5)jS`h)u&j$dCY z47wXd-=_cl*l@tv9+VT^lq4 zeQHB=?la&Y>t9%Ar}O_yvrMUuYt$QC_mbW?Mahgl%J-AXe5UAB;G@kCd+c;B1zn~@ zYJlu`W>G!3CGvXgOlPUpuI2Aii~X5hi5(9zyU#Joo_04!ONDnw@tUV!Lnf;(|B;Qh zL1Un*K2(XhFDiMAuB+4T`YOqdI0SSyI4!;k_O0PhcGC}Uo|ysBf$ALq1MdrHi%Uvb z8$gaIJYN1QLx^4Cn1F7xIRR4k9TMXxUgIp7s%t6Nf*-nlYc$apKB3fk=`8LZ3=^=;W{4NK5SKs_~26QAK5RdU$_6? zUkI#69|^l6hyGp0P?0JJp~FXjng}1>7G6v;AN)ra&V%`W7n~nN3>$*32oQyFCnWk# zaRqjdGRVaWY!x6s-Uq!{XAk%cIy;1|s$rx4|5~?zWB_1u3qsQ21=gO)N&!B31Mw@2 zD|G+D!uMV#2@mvNG-i}ATTyY|dM4q{- z4Z4WHL%To>mi@q|V#oHib1v9f;09KPkS=5hufpX@fzKKC0A&&yIO_K?h};m;NFBiG z06_Dt@!)YV=`HdYN}9^)_Wef&TaF{%#e!ar{jT=-tLNE;jKLK|TQE!RkvL47Jrvyr z>W`T;<%vL9bjv?7Op425!=5BiF%Fyr@z{NnmO8)&lWZ+uqN9=rz~qs@p22G`ck4;ZDL~f%npJhTygA^=Q@TTeWmh51|H%HBMuWCZ z<4AwtctfZi@XOH@*cBdvsqw-m<-#sbNoORDe`FO?N^lf$wC4=n*z|YX=r;7n{}$W3 zoZTW&+Mj9x|KJspU9@IDiCTFbw0jpcl;zK%js^oBSEMkB5!!3h3%~FOmU>F67(Ybv zoPcQOdo3rhSJA4_1t{j5*IhUI?~ddA8iy9FbQ_SC>qde$BOkz%Wz>+zH+eCxF4(}T z4yc3VCBU@ZI)kPx@ibt(`jE`dd0@qe)GvH5Yy28R4~W25YXm(@Y;Oo);XBq$Lihz4 zWj)1X9T%Cev%8TY78AvW#*0k;2ki=d*ud(4WKVMTNYk=lR#zV}+$5W^FL=a8ZSKx02e)q zt=1er-Qnuc zvT6j&dd@{`s%9SZUlxu35qDN~I_`1Ka!0N9u2K#aU%>>;)PczTH<@Z=REViR?<|~ez&p!?2eR}Ql zLGQSWm>ki_F*^hexjo(#wdB$2B8}eoz?plp5SmzAzH?x=Wjqld{KwH;Ycb%c@3G!g zO~+$@|IX)Bjb3NI>FH^h>X3U8*OM`%6a5c|!RSopur$|hshH3}*BQbZp#MQHm580s zo@M~h=O-GR(N*O)W`Y6`XrAPLT!flmLS$aWiF=&E=X8HEbk8FvSsR=x((j^2^J?-g z!&54D^uK|m)D%pO4s1sVH+M*o12YT`CtngP+qt}*%q_^`tTLcdiRzmwqNB0QpVQvi zEvh7@Uiz;l`s9U{ot#29gOAdxliV&Fzr8wQ-&i99?R~H6q-CCzdGtpY!Die#vTp#{B?sajtY1pSCaTlh{k*e4OGJMnp-A_q{pseYyA5`- zdFDpTU(5x}59_$msnX1`?y+-EQm4t5Po^|GkW{s(P?52x`yH! zW1M~coDZvz4C^r&Mc)_2JBZtpk$3QA2KYiy4_>-X*~rCvCUZ8yxJo2iM0d+`j55fH zwI;eBQVZ@KR;reD_J97jWlAijx^Sd$!S|{6hFlaUC)pEuf#_(6;SS^)iLd!UV;vmN z5NyeV*C0NxpVM=?DrQ)u4*5!7&+AVsS%mo7Ij`S{1x1aO*FrXA&Rxr z^bRr?eY-~f%Z!@->alGjmY@k?2xq|_#eKag{b7ggc{EwiEepS$bCAyQ@*laE5FiEE z$c2IF0lLCdzT%`GtYh-9W3Bk2$bjH8@{jDsD3FzXMNT=Y8m8p?iR;1J zS}H6>iJdxuhA0d~m`3?WIQ10?AttX+-D$`%vevrIuk~c!j5qa)U;@Sq+J0~Iio3j4 z`||7BM%I&`fCoFRtFj9J1!J}f?t#Q2IAK7UaEDF#&cww_)TZlQJ+}NIksI-E9+BNq zp<=?Za(ePorN3I_e72)YZ}=@Qs-t8(B&&R~GPR=Y`okL~m33Naq{-zvP%Lo$Dm}xp z#Gbhgx4X6D-8U1rE2HYJnT)^XircgOz6Ojlqdo1^qKa!^)?IcH{UJU#RQ$!SA&Kt= zueSEAV9nR&n)eB-PIXJ}ImSOEmgeNJ@|-ft*2RihLK>ao4sOj$GAy{@4RYWoKAiviX*L`C> z9g|9FHIN0}$d5w7c1FTi*T6}0M+dFzNB`mF4C*F{a`~`a&iTtqnXYH-clDR9bX<>pXlLD}ht8u(CXC_h${zXh?y~mqlhCYZ2 zZ@nGZ6{lqKqJW#91^5k>~G zQI$*dw$}j-2KEHshdENO#fm4~1zw8<<2H?xj2vk>&7Rh87119e7b7{wl}#{OJ;*!I zdWL1IlYN~2XRqT@j$}`*C9-uk;Bs8~a+?PigsD6jAdLaY2AUF{*SB6=s4JX(OPI!J zPG4$6SG&@tChwvsMF?bkiE50TQ2t(t+Yb>xP$1mLLspL7Hi*;Xy(~K0t&+Aq_*on* z-dK=7cqT-t7#5$zdNLi3?yG{Hfb9Wyh z2;%i^I>r1;0gm}a#nwUZEC3oU8MX?paXg^As+Vbkz&0BnzB8$81-TiDw%dGbkg9&y zU1HJAY@P0?l?Yvd{Uf9He{|p}MtoiFoLwx;YYV=^P$a?lgY{_7R)%03`OB6a&$X(; zOn8oLpOUUNU9A=q^%|-*`(xptN%m@m9S6cc$`>3baY-k%LK`-ANNZD2jKSZ>;Y=7m z_d(L6(dku>(ZGrIQj>sqkuZzU2e?9C-`tEPrTESFDT>$P3{S zq%njm;{B?$YFwDPg`2QcK&Z>}zfI??m>CS#Y!9Pj)G(^n7zR ziN}7X4M%adbdy!5ozPwhd<~7(>UrG3rUv4jo$j#D{eYYyQ>D?DPvv*|!iTZ2_2xbm z-8I{+Vm!>UbMj0$!fFVMj49L&Yzt$6W(w@XRvHZ>** zl;m59`1;)5H0@1a|IHT#9>1TiKWLQ*KB{@DQsTKO6)oD)8)GWg`@k|0*LVa~I%a@VYx-p1P6LbKn&+~mp5 z7;V;1(um|R7K|zqL+Y6-Fr0Lu+xV)3yRPRxyUFS|OU4x;Jo~vs&=_p1=?%`7jBadg zQb>ye)aACtShrP3ys}%sTII!N)S;xi$B$v}FYj6$MF(G%rTN$s}7z63fn>S%4|@VDqC|dota^?=4-FL9$YxQq-DL18Xl~c zG^y0q{@xxq^_wwcLg(mj#K}tGkDZg}@kwnKtOsPA*;{3y>jB7kZlN|T&maFv4c+G( z*G$cu6<(YqV++hg2`a=F=x~!YB$qSGrSykC+ie9ixVaCksR0X-w$S+7PMl`VvW4}( z((PUXFaLjJs`yyL;l~SVy-)R)b}y^JV-o4f<&})?0grrq6xBtnujZ4zc&yC|0pBOq z-WA=XD4UzZz$=C7ym`sqhk>Ma=&sRm;rGDP{;}i!2V%RAL^`@!YZ$-qKUut?Y|kb9 zr$fA?PfDbn6vze=4axna6Dwr+{l=1MAmmmX_*jYIyN^<=>{!C+EcgZ9XYD}U0_}Bl*a2crzdm`De)qRq6oD_=Ap;F2QP1(mBQt**J9B%pHe}gR3t@VERd|GXdxpDn}=ko{3^2?9lJOHPzCZa zqF%X^305{eWHZxSx{J@}agYK<-mWN7ZzZ3Do-@!Xg6kI0io+X^=h&~?pf>xHJ{X#QD zd^#0C?VKMp+eo7c791r!N!4ofXV;r4T+=RPH!X20&wUrdJmKIQJ@szP1Pq7)pU%Kc z6|+Bi1u;55=LpQYv@Z$YAUuZf!w8zeLlXl(>UD*)cqH%9^lY5NOG~24(!Ru3-qhAf zHkz3UI&J>@tYrUh=5APjHCDI_YySJe%u2?t@|W0qzvkmSsVuh;Jk`5Ip6MDdaZj-t z%grEd{)pd+M)#kd!WHl`E1klqNU=6OSBraf%~H>Q^xaGTH9zq8lFs##ZY?h66n2fM zNDzx+pZjg)vgL97iM7`HP3CEJtv_Zq;`zquykEiBc{e@fU&VspwjAewb z31(y~q2|q0X_9;DsI+T2QbJ*XLZ0ZloZJ8#e&?)Mfflm2bjSMF!a8z>{N7f=#*Wf97G#~2dlno>aUOCNC~hIO#;+}vNHOZ~q7 z=#xj5$kL;1mqa-E+lQD>Am|19Ozw7HH|*g*vW<1EAxFB95N^6emgZ|w+z8-;szZFhnFrBq(F&UM>zB4Y*-QWgMl6&BOugIbNf3*0)t-ZwW zWjlc^ZSU{y=4=@xszwfTki9`^tQXuxbE2Qp#r`iF(kNqdOCQlRR)vFSU2lI=zG|QH zWF1i5s2-{BI5C4mRTGhO*?H0Gxpo-rDi?D0|GX6EKyGyFUX%J zuYdi#4L&Y~#~vP(`q)R_e^*DLeLltAaV7k1O62H^e>6dCt$TteTi8qRtp=%V>bz>u zyhcv=K56eZ`{gd9cW(TWpJ67zzX)?{=uB@9jirf%qtCt{L299K0X)}<`jcnv7h<&O z6;B@)u=w%bSj-wPxUcM#>UPS2X|Q}>$?=%Vz4i?L4(W(Yn8|C3Led4e4V)4N;2NZN zP+xEka7s|r++CNE{0KB=IZ<`;#*ZoYvNXeYKB8?uPS6xT_`D#RMiWT3wMz!T4^o`+ z85dfAAmxgfND~f9pDtZLd2`*MfPAJn!_+yq+>tjraRhSbPsT9L<~20V3l|Riogm|A ze3PcMN-FG+1n4__6w#=Cz`Na9(9RI?eIq4H6GapK!G-W9(9oJe-t}uUq{D7Tu?Q$D zq9)E2%ze};8HxQe%5yvj%^$-WH??#Yq}=2+`GC~mB_@uv0a#^t%lpChhhbRlt9AnN z;`*=M4j#p0Mk>I%Rl~8y(yOQbtTwoMYpmlj2SwZE-b?Kg4b($ppFD_V?6@8=_bPuk zq`B|P{s2bL8NI1dyaUIT+K)Bq{~}xyUUiF*d)a7EZDYA;<$U>mLI}b-V1a9v=nj<} zBwIsdxv3bf8|RQ%F%I)RtIzyE3Ce!uj*l3WH!ufNXDguubUrZ<|E?sstTzu7*Kv;> z-BmLTUzo5vUvW3LiY^trmJe z8Ta4+kw!qxs9Wd6D?jC$AqaB~zHS%!6&aFG_~lCD)~g%9^QY>BE044N?#b`P*%bSJ z?f=%_0-o>2TH%#bvvgu6ffV_uyW1*Ein6HQ?Gu{ z5Dz^S&x+F*t`tXhh}a{6fU0CsyHn@Da~9dkq`kon%@+HiNAleSnC0+DgUiC7d0kHb&tp1*groIt2dQb^mX;?`wJhd)B=Cj z{p@1$`XOJ4G^;EZdS=5cDK30)Mu8~Pd&QtuTi4``> zlVl#_JyD+NewTgkb^)#ab(L=-3r#ANiYD<6w>l(QWzJfxIVHv|ZEZ#$H1Ye*Yy7dO zHmUBu-md@;#$R`$f$bv+8W%6CUi&+92v61PXbT+kWQ7yTUy#fnf!A#>2&&2-A_oDI z(HQ;I)IvJUU8_S9vecHmUK)yy>m|ZwCpIm2JY=UKwsC<*Yy{(r2G!Ry2Q#?6p6uVU z2@fAgfn$^FcQ`ij*rYKi^67YBXiZwH*rs)IqFyhyy;F(o{#vmD zr~A6hvR|(2R-mrYw~O4@b&@k57<`Ts1HI*Kr{x~Gal>R}&}{e4OF*)|k22J1i!{TG z7n~Dn+rJA)*Y-}x8xJdaQ++=$nOki>*|RC@>Le#xVXe9qC2jUXDy;f{(ycC0N4`Zf zOV#zf-Zje}*Si|pG6Ci)`K|z`y|`|`Tr3bxV#h!)fzZ zJbL?*r$&%1O{*OAn)}Y{og-7d=2_bVVmhJeL5CDkydisBYr+zg7A~_!oz*-kbM^RT zi~B+1%%KA3iqmJlna1gTX4$%hg;B1?jz_lIj;|^b6*It3A)ne}iV_I2M0b2p#kS&f z6P(d>X42Kr@^@W%dR-1#mh!cmKXLF@AbW@Uo7XH*rF(+9CyB_sZ$=e$gOzv!(Su>a z0re3rYiO!}E$v{VBTS|Umaw(rrFRsk~efvkmvx|^#oPDoJ3;oR+YLOB3} z)thyYCecu*D;P289*P)k1C=ViM5h;cA1K#@NPT5SpZqlCnoq2bTc_Wnbnix8&ZjhZ zF2zNB#g}Pf9FpWniVKZw1`Z6+JTafv|&9VKBd_Nebg#<2{k_n+DpH(m0cv4HXE zt2Tzm!dBu8J7z&fT}VAa#dz#f_ItD$cnO# z%Yb(;rg=s63-&?x`Oiz-_e!_9mvVzl{VQ+9hg&u%z0J+?BNy6C(12{zMU-0YN3wQ= z-)lFQ8}>2cyiH4Cv~DBa-hmWcg(#sI%MWS19}8B8raRh03YqFHr@X!HKH@*j&|Zw# z+NLS0cKU9Pif{^`nJ$R-T~J$Hf2H`LC)q@gx1XK4W0L<hTXPtoEJ$1Jz`pTZ8CL7G)*c!9`_ykr=ItwF70EVbI+ zc~or<=yxl2;Vvga{$i%$Anvb^OSn(buQml#vp+BEp3?GQ@m@XFtSfyhDDm|5JV}in ziZzi*>m9w}%JOntv-r$CIGV&~Eic8S(7b8(y@5DJ?s1mC&}lF)fj? z+MIiP0i65`cC9SE?R(9ivXqB8l&!kM9{Sgu?VNi?DAa^M!Jy*2mWGY7l%L9Mg<>Ua zY)~94r%L9V_2{*&sKO|ClC&uw2GsCi3zz`lqoeauO1h(SUr8$Z>dZx^{YnYNY|d+v zHOExt|K%NZ2w-w>j##aPh7n#ZtZIGOcbf%~z_A|=OBVxFl5Z8wzP8*IFV1>>a$Cc) zdOA+7mDYhv5fKZTmnlmqyycVDc2HF{i^J8f6|(erKUIZSSnQrXxd4Yi2f}~S+^VT!+^6%;rjif-gB6Cmace`FTx4CWd)@mCa^%E!*pSQ{ zHUvQL?)pKTqM;w1cw+cF=C>nbwpHZ;s5+q}gGRt|@=RgfWOmaIbLlDLD$IWcGVwe4CQqrn3icXEuzQGXU z3!?lkVCb8_SWAfb?Weamsv!NY(CX-oamDNw@19M9_3&$$;7%S>$abhvQ+irnngqac zXuzg$jN4iPyt%&cHC$FxnJc0%)lqB2ZH^-EAI~Df6kWvGq))C8eXB z%SxJ61B+AdZ22G42wyqIW?JFg>J>3(CY>Lr0lJb-T3y*m%dzPCiS!QbX0qP~A?+k?gk?S5mqoWn_U&@uKHzn3 z@X>(N2-t_=BvpgzoT;pa4UZ7ev5F$+RIOynnf_8)Lio#1rC6%?zpqc^;=OW7QjG=~ zYc9%qca`cx0=qQV3&?rM!c61(26`ifu!i;=;o6Zc2fZWazvshWe0HLwyDGEgk|X4T z9+9+)4cx>DVW%n(oJjBy(gjYgJpT&|In*>tCLLg5U-}|@8v?nnVSagASn|ncm-D8w zzP$wu*)>QGs2xSxTwE8$?WgU&-imf|50FkWN&bkYV+R91cLl0WD0T2^Y98u!`4Bh* z-AEiAJGS)sXyv@}5UUBpa;Q)FR~vTEtn~+fdf04_KXpFk3qG; zm5Kc1jLt!)P``;?arO5&!^zp`z2 zzaSlgPitEBzna!J7t5<81KA6EnCgPJR1-)+^^;Y>zKWZ?79Mj#2~Tq zbP0{Jq`_XJKFck7XM*fT3V>EVlZ2xCcp4mk;Km34TI_sxuI6+9Ev0=`MP0>!oat_b3r-R(N`vbyZTOcC%{@Jep3i3G zUaL`k8PY$OwCZ)hv^pY=>jm`kjVfmQK(!`f^1q-ow*H?iLww{PXuB>FFKA`|`}>Gj zMyPqDu*0$Ag%;%ozRFRY!vNv_EX1KPW71^nOT%N=)AGq;#%e162p+V?peRYV;mNBN#}ViN#Z3!9Oh@rX|Tx=WmO4zYwuYG|5(Y z7N);XzN=;J2Px!!ZFs{LtP`tEtIgY7?Ykz=BMyJxy~-K|eqo&S8OlB4ee^k(cm*SkLHTZt%72QIR;RyJ1V zKwIXTyb^l-`ntjfwGR346zgtuaS+xH;Wbf13*N~pFNy_ihC>In5^V~^V~9WgWSwQd z4=ZOJZGcrRdtGI#&XUequP!gltv&yfYY;wK35!Jt)TZv#oGJ}4&y2(W{tCHv-8c5d z=^QJ4UjM`?m#%sJl-PmD-(ud_U~E2=V^Pf%)#^>cx63PKmZ}cY2CS-X6Ra z=D~GdeeIyaf>wg!{OM@j^q^Hw13W~=Zg9z7e_#3L2gUbm2%nZKSR|j-ww&T5UiYP* z>>|6i;~!O%TL7rEMRq6DtWfTVgY)h}w6#Le^$mHGIO9qk{p1B;=;%E9GHoT_JG12* zrK2EY&D(<^T8>tXt81@Gt&J`*sY54*wMmgVf7s; zYn=A_&oTcEeZx)#9XAgLv3z$Yk+p`4j~Vqkpof>R8lDEfa6!Q3J{fNGvCE#TM<)92 zy{p5YR)=AbA51dPH=Wn;k_D>Zt5dw8 z%~pEjBzAyi&vZsUfLe3%h%C&^`wy48{{rIdlB7hVtRcXv;$L^F>YDw4vB1ibmjjXq zrMA|OofW9-u=jBZj=MjG8?D_{j1u01#i(*%`M+ScR&$b7*=+EklaSh|<4KdElb5kG zPLvvtk~#mbP((xc^^o07$J=eakU2}ve`Fm^Eoqq?&=9cwuCOXc%B}13O#PpW$DdGK zpn;Jfjfq9au&G^T)UnXZY4}m)MK$b#rwovu{YMO12VaABgVze>z|*Ra=JzC*{w&Te zJh7gyvU;676fBsTAq>k|ZBC1Pq>jBdzosAed1Os@gld0@xq)EPQ6unQhJBYvSWP6SK~Ul%0GdZ1>DJi6@rC4ane`T|eNzE<_nMRPIDY3~+#suknZ4QLQT zLW=QF)SPJ&D7qp08g7nbTdeqmS*je)DnO-@^2U{iI#R+m*bIz$xb?n6R$1Jwf`3H) zKr&?1IrGqX4$NlIaJkOZ6V3q?e@3v_U^n`fqZ+Fgs@aqE^+P9-rnO#efc9eV!2pt@{oaS?QtQRU1+9-4!a# zu?>5Qg(N46^#eLUMnu`6y;ceS&xJ%kK?GG>hv4)g!o1uc1SXh1p~psN38Y!BtKM}f zqK#fROE?Gz`PrRk7u_H*!|h9nGn?zfM#2|K$E|!T>3il7djBh4+~@IdxmD`0??-2y zirQx^GmUOfo&H)KQ0%wAwfpN7s2_RgXO5(6Na4VlVjGk2nO4m+;h;4={>=#$U9GG) z-0D0+Y8(_>YUDiXHo2CPh5T!1rJboQxLNjKnI}#K-iIWMq;!$Q!-p_^O(j*%rlo6o zbl_>5zu8j8o>`hNoJ4<~!)5U41R0_{-Xx%;v~V>7YJ`}YZM4!;Thc?lps$lpK(jiq zDb@K>()ckWf$M8^G@c!m+`)mJ>^au16azJFPOqkJ9#Zy?3&}ot9W#J3F!_uR!m4Xz zZ&Ht@v|T^UDu;+Jl{hc)CMQL=u-&|TH^53+Xi1k&Kok0Y!|jh?*Q&fNmm8c}{C^S2 zr;fGHWqR?&z&Uy~0~e9rdx2u>{$j|C;0__tR1A4nZ| zyvl}Lcs^0eKLH9*bn$f5u5am9NsZW91a}S3opsB+_YLQ!!+NPC=OOOB)~ONphPQQ5 zS~?d1?upm>7F=mF+2K^RxJXSy+ihMWvOg74Pw8!D&rPM`2hmXtf+}7#TAa>@@=pO6Q^H4 za6f{7R5{VB{H^?AO~r6!3nl>@Gb?Tk@k%ZZIZMcXd?NCG9m9k#OH9xe{FdL0K=OyR zg8w(^BEDeVUbf`!Fz0dA_4w6v;u%8Hks|fMK@cvx{JDYgJtfsiCtCN zyH+Ketq;$B>BRhO>Touu_!FZbU*p$v8P|QFI%ib1uuJLP8-8LVPrY-DK6x*|8ulmD zC#xDWu}R#xeOQks%^X3&TFh_cwOt*!Nw@9@&*gj_1I zy>!%uhWjwju!xdxRGyi2A`7H25x^OXl#$oq?)O{#k@dfArgiW9^bIrN(9;%2&@7MO z;#wY|CHS{Q-%`!oiP<^Vw!%L86l`prvp7V9}K!jF*5GU zl6L9NFvsX$UPmoE<2zP0!qh8>k~Q(f55a1qy|xb#i1EX-lG+HFp(l@-r3(hyG_EQZ8}cccTjY#q|XOyi^J(-9$cQVjz+ z1E@U!RVqAxmKNU@`7ZG5*}k;&#~5?_WN#(f>o(Y+_&2cx)1n)EALcag$2`zyBu`Z# zgWqnp5$>H_Uf2VB2T=N!cWEC_1v24h-15vuYW@1{-s~?W_}kF^__^{$Gq1F+)b*x`02D*R9`T!gEk{^^sW3k{Kv}v^4*V{ z#_Kl`7CT;3$Mrxl+0>i7Klrao-M=MznN+l1Mz}3>FcHl0!##@D?17(WiXKgVCbx?- zOAC)Lt{al*Ie{1MJKFPo+Tz-?oO7?CrGa|CcF>ag!W5sF5i#0Vp&1;4bUd)%saD5L zcC=bUyV=Uh_gM_u$Rf!rx%Y60mNt97BAQx2S=$`A9ODa`eByUGYLt!%H&LZXK>S( z0NPBiE!{MnaezJ0uA{w~$7N*rUe8Z{(V>hGn100=umwLkt_?B0mWh-8E+B^wDfGvh zeCzzSc>#UASOx4LQW)H%^8g;1E>7>)&xoSs(Smky!-LH3nH-`tJof9y1xw;ROey{+ zxZwrgM`_ri21(4VXP!Z{XV9n9Jf>(>^%THJm5XuT*HfS6S9vdJc6|m6gUt% zRAKQ{G9E$-9;8{iKDtDkdA#;mP2!sh&{z&%k*UrMJPqO*Fw^Wik$8_mo)JE|t>2PhX539R|E_Z*Nicue0fC%_S5G=S<7!0(D`Bo^MnneDkJhGR>oWGhHy_RCu7uuAd(v(@Y+uRm2^43G;!KW$Kb>2;v zC(4iZP}Ko)pdSU1d@~&~0zh?dOSn?GMd!iBQl)35OovXF(T(b1ZCIA?4U|0Ge5T{g z+#zgzlnU<&**{qc3wzCj%e<;)ofGl6X|8jyfFe7Y`$1yD&#y5pCpT6inQemu_ny>Z zh&lAmfwBmjN^QpNzBUHd$A6n2ARm_X$`^2M44Y0s1DEquvqRj4%Xhv4qWCpPJc%*7 z8zF)A7j3rtJ+Z4Bka~4ZuTh`eTb>HZv~f<4jPWcG%CCN~vbv5Vy$?lCA{+jO@;8?| zb4yLEw8ozI-3$u|7ZaNc2;ps&qnpc2YtG`rS6|{A zOWQ8s<1kTajLe4i9``cZh+$1Bj|Is9#r>#-4EV4^!F zf-*v=q^|?P*b?xD;F#sp(;o(X$K<%SL_I9;;pxCI3lMPJImnY=|HynQhYc&$N@gsNxJ5@o>&d+W1Kh~YJ#+Sw#!E%e-3MK-y8;0Tgg)d?p)&%pBp9Ln`C~e}( z_vR2iHkGfgpGrR` zXG1a0_`o{nastiZI$~1Xsu<4b2}H_ObU0u#xJh+z{dMqQZbQD{kwt9**H@sB8{sRz z*e<}ML&zcBEL)8X_gG_2!@rtb59Hp|r1(e12_J1CaR1;`NUA8RQLdb^j4T^_(-6_5 znz4U$&f~JjUQ!cXvgB$uDZ*@;E`9PGMQ-qvkEDiF0?IsOz28H(imo2Ua@hnZoTYRB0t+PGT~`u32cYKV2xV)3BVu` z4Wsi2S6{76QQL^w?egQA6s{Q+AUi!Nj~HM zuFPDBZhO`0;HIf+Vp6-a=NIJ*zk2}!+rbsOpLY!Ybbgq0pP5i^t?s?KQF|tweAjlr z<*-KXdhC}^Pp2z2EAk4@b@%suwD@D#r-fcGi#TyuE{4I1pmk{nlB>vf2sX5TXCUfj zOZMe~r(MP%Qx5sH0|nlK#B(UXwy>QdlOT2C$sJnXW*03ie(k;b9`ts9$^BK)&Go#? zhaL2*J?N(sqgSmc5|cx?N{LvJJBxn371uoC*F6K~h`@EWiV=Lh;IDet%?6Bbif8a3 zBCIq=*Qz?2D%aakYV@P1!|fq?%p*Y%;&nss0n5}%SR844WIWvzxG`& zxM$cs*}kDf)0|EjxeySfVmRCpeUmSB8Mt-65vs zft-LkIjS?S1k*OqTOxhH7uU;V22FGttI6?n(1%ESw1+o{S&VNQx$-%Zxmjze={z*l zzMNI>Z)78G5fWEOjraE1-&>|*4YM+I&4r3n%hy<~b6I|k+PAa8 zAH*@gmiUzNB9J?IE=xguIX|u9FQ0ZZ|ab=vbtF{Z@X-d@pM4aqHx`E}ZihM(wWJly88=GpwYRm_rUoDsC zlG@E%9;?OYk8vyT@>YkUqe!aZWIwQhNpf){4%Wt8XV!mF3X6St z2ahZ7{HUNZmnyh3{qXyS(O|`7uYQ97%devCUqMcr`YKmfbBkG8CTc3>KbBeN?H$OoDPKcHFr4tCk(#T z%Ds@-F(Z4N6U|v|MP>vM;u}aZ?6!xP=Qp1DIcMh3WT#5ScTM2p)X3Hv5RQZu97h1pN+)4E zJu8FQWs2__zfyqUGx!!n!{t)7u;e1ezHHv&6V-2zRb$b!pPL9C;5N(*{y10}{J3Y2 z|3B}MhzE40uM(lynaWk?*CzA|lOWo|S1sjLk*2u4+~U$N#o z8|NLtI$^ncd5jUE=yTW3wEi}Rg8@P(4d0u}i1Ea`{}nLz-A8#$+Z~IDQx|@Y66CV- zBD4FV#*#WMROheIM;UfAO6B^Ek@f48%V&QpNJIsfN7mlYtSF_7wL1zxxXG&BryN zhg07?)SBx9pKpe<_xW>a(L`sjlPGKt2;2kqS6@}>e*j0O?skNok1gG*RPA5`Tf>6~;8knZkg8x4bv9JTMW z-}5~GGWNQ=_wL-Cb3UKX`{TAv_=kmS&Y>;*IPf7D?#w(4Na-Eh1yY&-1rqV7n=z-N zv!VZp{2;1HH+KAZ32cONk`nLqgDbxg^XuWy*f;3j4@AzrZr5!y4OlC&Y#yxK-vQv0 z)$e^JN+3hli5%Sf1QlZYZ(52Fb?olG3fUkaen-O(y0n&imUst=hy%N4Qyb6Dvput;2w)h^2Qv_My0 zqVnn#@M^G1KaXAIU|=jN!?1oqtdFL@@(t+#k*Il&R`QZB{p{p1U%K)0RA&;4*Lbg! z_8yUlX023&*>xPLQUG$jY1qJ=koP6Y%HS_?G+9;hJ5 z*V!Aq^QSr=D;0N_=&B+;&ahGE)-k59n-D8J6x+Wtg|_-I_U&8B#W={T2yVHw$T{`P zzu*XgSP`5L`V##{$hc6i2j9za48 zR{^mjyyI;fFU|$Y(L=!vmM%5hr>|#Lh}Up)L?Edp(wU`{L6FISi6ln;~`sQl(Y6-yS)s*z3B9D#LrBTywIIje3Fz01bj++~^hK zu?*}~fbZfn04si?U|St^{C2QIMVdyhw?jotQ{V9Ed6@uj*`q7_!JXrcFo~$O=gm+; zH27I^^DN$>Tw^3M6mCtp(TD*;rxE)-bP_q~nr z#u0N^ww|S@KP}0oXe-_9Tug^ZXZV)%KJf)vmz<5CjN{p@8RDi*Y!VK%xh(-XK#`1S z^7G@Da821isw%PMbo_Zwb2+241qRzFz+c%Vu;RXAeXm-^pHH3c9-+74;l0;94>xaG zgUml|rxWzshIK}q-~AQz+1z<*#F?RxV#g>Q88xllT#3@z%~+aSh!#tiv}M7br|t}) zfbEv}S}B{~C))E^hC*W<7|XKmhjX(*zA(ORN<@DR*+}SO`El=CBQfttgACz`Px2p; zl?XM?=N&dBwQTiX4fg&I!|x!1e&!ouYa(73_Y~a|IFN^f%&CUoi}?_C^xjXlLQ4QU z42(^?;pO-BVkcy_Q{4#6Cxpbr?iL}Lq0uRKHBj{66fLb8WVYe}gE<yz+PO8A+S_Z3&z+a6Koajh_%_^z>?-MNMv08DFrPE;R~p#lzg`;y4hN zDQd_zUdf)Ryol853G| z(PjKG&0u-L79KxJ@K}~6StnVH;s_hO}KL&(HIl{0COK#Z)P8km8~>5 zaZGQjtAdN7!0ZQ9l?caj?(3Mgtw6qTg#JdNmY}SBdOfe63QJhZN&=yzl2NS6W{k+) zF=5}7HIitavX(A4uUGhKE2-dpcp3+W#?p_Khvd?hQ^8eW+k@5o?~Lvb!#-O|%149d zBW2$5A+x9EFGx6hAMe~JWO<;AWr&6_2&n_J;MGCGetjELTb+fN-t*n#e)ITy{iP6Z z4zK2b$QzuJ?)TT1K^yF6)T1rc-PV8UP8t_;ETgS;xKf(g>p3XM6)urWmpR4k4{u8p zD6o$>?rRG!0>8(!MHD++#YBp?&(HjO{}h;-EJOKI-l|^E^FN|+OY%9mPbp4YxfW|g zAdd+iUoLvxJcnl8EivSM8XVj(*)CR_L-Q{0@`ApIA zYqYg!)gBLrM8Y~9o-XmB`Xxim^QtfW`6S#7u;L3?{P0U!3l?21G`ihF(7)DEi%x{6 zN!uNxc+mqR$9=0jbGd6~V%lT~CoXKh!$21_T*ee55!Yy1Y_$GFr11N8( z5Ib#CrS|FXW~R@_B);ytaCg{mSUrBJ>I$mHlJ>tIQPJsHn5dG^)kYRN1B-K)=i z3#6YUIZeJ@KqY3o`llaB#zg`t;9f{n<&tltB0IKLQKL)jjg!sK5wc7(^#Yp1SS`8r zt2uTC;)s8XrTJ&apN$w)>efrSFF118g>kAr1TRdtkH2)dO_at=1$Jv``58rjztRt? z{^!*!9o|>T!!J$tUYc8cKyZd~b7y7;J>HhwCGbgkBTorRs_$IaY`Vk+!}%)PxKnL} zr2H>SUUOeEZdor_vT^D(z0q5^-~7X zzRZ_;Q*;Bq0m$uOAqeAcl?HNw-V92v6e1D|PIKd4%V}~ZWf6^L%?52(iI(VcbWI-= zd7fpBRkX3CKG`N*7`{t{1l;fMLs!1u$Qy^x+jh9UY4t!=i3f+Mg)AF3hkn>dj_osfj_^ zMy?)H33eDuP3qe;vB}RZr0da7p*6^9sJD;lZbdUsj;Fl1ePBD_EsLQMZaSx^p~*;6 zb%D(>*J)>gQLuLI-uYEeZ-JAGiyMium5S`{Vk=V_X>WQ#TNolx<710e%Ix3T$-no0 zmJP_T&zz*KzW#xfqv}M73}&59=@rI4_ch!m-dtmWEJ2ttUI!^gIx1VTrVPgDp{zky z70Oo2jPuflx(O#Q9R#SXMLz1YXTs7hBK7lb;*`?NaZb+>Iap){GE?4#8Y-!DW(WO3 zmuQ@EaTVZ_`LftFyFST+WPce*5ie{!WfHw&iab>MU6A$D^@}r@I}U=UpQ-EBU~+o%3f=HoSIi?p-~`oYc?XlfMi2L5 z2v^WwWeW(@eSOb$L2~p=P|ZqzJy4(nF-GPd-Pvjoll!6|z*Gy(Q$D8pa+LpbE{E03 z>h`$MHPn~hfrmkfv2mG1^)U4a;>8_?&P9NBP{|6su48|PwA1?LM&bNm&xk3^evxtRp#H-DY78ZG$%8Q?Ufj=EzYx59;` z+8EZ4VFui^>#PAN$#p<|POzsFfeQ(Ys_kvKFANzINm4zM{;o>gPKUi@w-!Mgf1zE+ zS8m$mEzM*fN~Ie+SaV|wa5?sbh*(M(DvPAAn;t2j1u$r!;QPS#Bi7@P!mp^?B}}fa zJ$x&w6C;%ia$O)}WFij~K#D9hod2ALJX#%d5FhaPZ4MrDR&t8j%Uf-Wc3C<>9Ju?< zG4oX0;YGNJeh}!y1{>S(hZ&#TrV2v31`7mM#WeDEkL8XJPAKHm^Y^%gOR~=}YwN9j z!G|1#>=PC8;UD|o^)bn9qZM640*^^ZUjrZGSAq29;Lq4cB9!(Cm(7NeIkqNukZN+G zS4Mwu`}jvfdHd;-E1@xktGiKxwxV?;TU<~Y+qUP^!uhjxYA$S9QC03{C0tu=Vc#27 z*$DdvjElllVO@}0U_WxS#uU<*LZj=Bo-b_-cUzv>x0L@fqtZZ_*>qN#sSE{=Kuy>G z6feHGsm^O|Dr2AgwWPBr_k;OeRl0Ngzu+?F&=Z|7^;+={mx}aC2M*~(Prr6QJwg(5g+nDB6keyOyM~q)zx(y{ zd^dI!RUO-QR%uJY3ge0%TodYG`}Q30rP2t7+69EhtM&9u#--c-N0jY$CG2SC zb=@x4qo9_PacdC`of+{P>}fDr`MfqKCCXaKTlfBHNsfwEvUomLloves~R3m)}*MmDOH%(I;1zw@lh zFe3bYnyGG^XS4ym=uB7z^V`{Mj_5tD(jE#j?#rzm9Ti^wu7k86 zy*xdy^glkf(A_NhmB#InQ&i_EuNT>Hw$&ePVY>u@omyHf%+6P(s)hPJw$uQH-e`Ch zU_3%6elaXv&tAG6@c;X+DXmshmweCYZm+HVz-1^ZK1Vqcw%)Up+t`^oxHj1uEppuh zQ1P3|+8JFTWSgA(#_qIPo{CfSQGEMwnfTNy)x(MNDM8?<%S9T;B0t4{CwqBHcM3c} zl$tAF3xPq6jSZsf^Mh65XQGlH;K#g~uzbb~GX45Tn<{E{LViaVT+& zA9LHBUtC?n7Ki&1y zdT2br66N+&U`}$tS>g3Ml+IW0?UYuN!}?5ZeWQh$m0A131n_6O_z_zi(Ht2j2gMNW zrOi|rQ-4$a?4oV^Y3R6_nJosMjq zz0pnqII!udH(;lgNHF+}K+xxP-=Zn5#Yq{o%`)XMi) z8S5~Ll_j-{yD2R;n&H3c1&Qv*`t<~!>vT7MZJ^YqG?dad%N7<8ED4A4S0yO$zu#+23!O*SWKdRKPH+l~4_c=s+N;Tm;qqf(KfM6qiEzdt+xUWirMJtz%_Z_p$J-uGAS&Y6!LLac>sHDXm`QL)PYv!-8vI#drbHQbMt z{lfap>Q%>XFi=zh?CMp%CiHHq{cLGnFXY(5m<(|D-4;(V)sat-MkB9MXAwYnA^wuyV4!VE9>B zi4MSy9zB0jO$nmP=bd2uAF|qgu%nhA$ z)U0&}s(zF*#8XVKZhq1zRAyw1IjL$=#Q2_9yuD4v^S|$=yys|Qsbr&b3qm%geaTc# z9TVz7qUZ$VOH_6%nzQRIvA>x2TIDpC26Bp=ux0;<<>5BDl$E&*gn5T1Fa|=zM5rd6 zdeaNtdG^0Q0h7@fN+ivD!ph_U3c+e_ohd)%w=SK7JPBich7{|rhgkv@E}WDHFc3C9j;mqDN#klglO?K^fHm|r_k z+{^zRqkw}+fwY0Q*OUWK{`@~8WZ5y9*5u(?)XrBzOi4s|%c-j4p3TbGZ{kD?mk0vr z@1&#o{d8UXqdhsV(3M_4!ua&BmxD;onRP1UP|8e}{gN3p;~mU6o$h7Ti!9E}d$a3L zXpXqbBJfG_{yiMK;W6d-|7Tao+j~URwAdy#-Y5gu#X@5spG_g7P-;mE<}v*`45YyA zvoBS}X6#d+up%GzCrPV#saiL$jo?2mcWrCdRCV@P@YC$8Gn_nZ~pwBVyhh21<7OxP^QF zGC!tkpc;LV8q#!6HgULOsJ*MGviXsMMzlAGqHXDar=3PP?cjgWgl(aRp<&sLa{s%{ zyf?xkcL|#ZKlPUq51Fn`sn_H*B$HLbe`ZB0|F)Lu~r*-txXoKUbKyQOqvCPim-jW>b}qa4pBtf zE60e!e8J>4vSiU~>oh zTrucqUhJ086?WWCDMmg-s!gZIzT32NJd|)Hm9gd|Er*re5~noON2#W-7+mEPfv}1H z0%E~7xhTcD2ZYO=4T!e9D-e%jqvSaMf8%VBk`*j~RqgVwXXhEOtabBBywmvcUWQxd zr|dM^>_<3jWL$WH9L}ZdVzDtAk3}N~pItZy;U!NsI=?25Uri2k)Zksb*8&gxjv}yN z{Ma7;!pRv@y0^xm#AfdgzL}Nf=mVbn?^W7_C@@$0p49K~Wn~oH49}p1 z7$j0SIKMCtx;|n`rrOJOOlGYpM)Llq?2N#b2Rq8?cE470aJC7!GQaHk0UH|rjoul3 z=uVp%t;hU|RLJ7I1jB)356jK6yy#f0s84GM(86#e`)_>fXWuZoQ!CB5UFZF|>KE8z zWF+`uXur+%SAkB+P%u=dU;YD%_NlW4jX*=Cp1ohu-L5MGBx)UBN-d(b2M@- zO4-Vb`QZ1DQR0{k`k>dovApt5F!^EeqGrxZmkM>-QdFda-cFs+8Fkg?FDK8)%NI;T z{eF0#)Vn`==>p+5gRWqI61zIGY$(0!y!&`(loVlJx3W7luG63x8=(4~cl;=e>#68E z#|3D<-C80Pu&9BErzy)p`*!lUyKOeg-hjG1d3s8ss}B-Xs1Lt>W$~3c8lyYls3PYh zXtGS}WNEVYXT=F(+N|FxPhexEbLYRb%O+ALz-wM(Rh#;b>J^%m<*qqQQ$yIXXw(KB zmJl4~IA7TR)%=S91nq<$9P6Xnmn&0IKMJ+O*`+`EO=(gip&O{yo=v- z(@8xnDY#wh=W5-BF7*}Qhak@T>(zXvu;d3p>rS?uz#%yOxCmiiU;PV*>(OJgNN3L)`HJ(MR_PHijH;DfhavKcC+A zZ>cE8eKtIm89Vou>1-i#n{C_-E{d+8J**(uP*y>FaxasnR&vyFU9X{!@WahTVP|O2 z>-OgF=c^X{fnw(Z5nnC`2V80?1{uhETCkQm7#2f}Rt6@l)6N1u<#c*BRb-($+}L1I z6PQ~c_Q9{9zxM%(E&}7avyGtaDw>9Y74z!|jTJ@1i=nX%B2dOJ-Dcl!inci26nk8J zYdZXSL-6vxAVdr-xRyY`JsWcP0#DFzym@eZ`tWs-}rxtk48WtfL^GxZvFRO2c;Y4L!ySUEq>=dU-Z#i_Fd`ZdN zZmwS3GQz=aT|)y%vfCy#TdS$v?cwOA<_2|srsw2Zb!3q7nSbK%p!4qFcKVjpxTg>& zioOD~2Yj@vhf{tx0jPZj2icr#`sSLnO-^}z+7^iYB{=~8gbT58!$7;-+e1Bnt@We_ zPI1+r$9JD6s1oF-Pfaq>U;DsYRb8F2!WGP(u2)*47qO#g&((nyI=$>@JH9a&%g`}2 zu+)CLqq((pwghpjE+1p2?eeIn5Uy*X{HXigfKz5EO)N_ZEQVz(Os4OU>p!CLlEtLw z0BVzU>~SV)wcKne0%0!mXh_hkMS$iX!1R`kG&q(rJKA6Rik;1Ibwb63AeD$EL60SQ znJ!5=Fn7$ZRZzz##tr9_ODjADl%o?tHE&g4yz1LLGNW&Jxkr!xs+~=!qMK_<)sJS~ zRa|Q7h=AuYRaAUlavQfTFhn=BzJ1TM74k_wyY7f@e%%qZq41@`W=*Y0y*d;KN%pp5 z(bBN3t`u7nk-0KTi!QmYPn&row|ouj@F0W6rAj{wmu9D){MT2M1cxM_Z+Eg-b7#&8 z5997I@D_lD5VHBHsQXn*CzKByzAk&+&f}9WL^>2-Y341zU6%X%mA&zK`{;i}j7Q{F zN#4~rV{`5SZ~?^^>6+7%ZfdLTsgyQCq+5B-4Y9|I#ysy5_-OO;$U}8szLU{SjGU!* zOGsGes*LN7i_50qpumga8oH{4mq7B{PoQ&Bmr0Nh0ugaSvB~?;dcz8*3jE}%RO7dX zKDNQvO#w+U`uIO^f2l`}9mJCOepgGeHr}WIX1f6p{q;2%KY(huq?fTYK6K9JUr*Ik zq<_PQpA?3=a90N{%4eWc#%TqJ?!u7ht_sqle_yAJqTTZ}_m}${Hw&Hk96ngypdOmz zB~$1tx82&goc^feq`>QDBT%8Jiwxa9P27#=T-Iw>E9WMl`lTQie@@wd=8n68KA!?N z8KPqA$fRX&N)0{Z-vq}`&sF0GIPS8X2jK>a?0xRcy{+f?I&GsfNyoW)F6i1G10Hc4 z%w)|`o{f~JTqrx&Zotlk72(3L^p|jP%wG4Qc>9nLmZOV4fTlO#l&%izg1SwqC{iOB zKK+GY!C*3u!(l1x9S;bpO1f4fmz^`D?kESNv+{<6Vi!tz!&LCE-e2M6klbR|ac|3` zd~4!LlB3Z!`os(O>Vq-KQ!pT?$TGdpaHci&9l_>;Jt2RaN2px&;x!9%CJ*LJuK|@< z%rC1d)(v$?d=cx9eyvNXW3uPRk{Fo^9l0QWya20D(wpoXlgZm9L>6o@z&;8o4id0! z72$rr;;hETz%^L0((h<~%CafBj1l_8&x3C>ytKcyJ)=+kVc}q;JX|%MyCv}B;Pq~{ zzY&A$=%jm=iomG{!86_(hGx6wR7J!+;mZce^3*gmr*8YQX<6Iwjz1xwJ$wDW7p0of zslIQpZ3fM7Xr>}<3`*&gKHR|4-X#V-kd=WM5yX;%F%;z!+~c*LdXd5*J2w~ZWkcv! zgBD+%bNF}hfk*yVM#Nao4*$5I8>ccHR6n}Ur^p=sINv&V{gxsihae(5jtIQNSrp-f zFFLPB+6ZN2(646IQH_fxWDxYPPn>*RkDIpOrqvnWJ>$$$Qw;4mV31)YxrxJCU#ptB z+0g=d(_V>;ya* z`FF=k$R4TsA%y+r70w5NX6Z1JGuX;Q3^92|kej|)N=ujYUUXLI)+I0a`Q14CvA}pO zlx4S>Kvvr8iQjY&R;H!bK*Wz~Jc`Pj_CQcRi3yrX(j!2)wd)&e7+UnbDh z6ju&R-FJU>&JoEP*!&DKNTQSBFx`Pj;|fpyK{%#tF+F&gF#64iaAhUQ-M3?PLHAW& zU%91Y0l|2w2?>I|2pJd`F6qLT*O<=62-N)bX=v+hxaeX&wof_oWC!Ii_yg82X0B9%&+>}HEPsS_|0Z+Yl^V9n@y{)`UmipL0{DF?B10S)Km6cVw+!qO2-Sj*1 z=P)ar-L=S#DsEu?y29lxNWh6_BJDY7wj(QOK%a;eHCNzA(HrdFVALFlZjUcD9vokO zMXEwt3|n^CGA1{C?)yMf?&pe^YDb`D8+)dkxaGdM0vR_x7a7C6YPM9NC?fnkCS5jC zOhAV8r>~6U89`cw&@O0VpO2|bDN(j=!hI6V%+{72skx-*KYpkY9eQbL625QAa;<=~ zT6Bp~qKPx8ZfL2y)_eb{@y<*dr?)u_{Dcw#R9V7hm=hSGvp_0KT%X=#odr8)zO&gr zaslG5);p1v`zG3llc&unTy%Ue$p%zhR^PsEe2$Uv`8A};@+BTJoc$O+16M0sFnK56 z%f6&J$xGeku&v5&lQp(_+%Y=-o|H)ugb3K>tx7*++=};+HMyttrj4>e2bk+Ex&oHC z&4PhngUVJx%rjg0*wv9@bso^SAX*t`qW_4#c)V-D@K*<|_TdkWg$)Ch8R3*@>XO!@K zjNMp&TQ;433R|%IcV!m?S1Wg9e-Y}W-POiC#XVCvWofwJ_8iOngz}9?roR=u9si`& zU1Pe&Lg1scNJ0v7<>D{ty^!AbWBz9@L2`ZJZB#dJ(wyOZrF(`K-rAtzUAM*dOsBQ7 zJFzbVa{RBzRoD{>bf%KbvlbW3#!swujf`5`>|kJ_X$1f_u`?CVm(h{Vo?L;mHmo(C zoE#_fbK3m*R5dPl@!`e=(Od?8wq|L!y*A{mt}>?RwOxV2LyAoA!JqwiLocVTz13vT zVagNmKm_H3-6y^Qo$NGNueeZ23R{5{ka7C(kU|WZvxc$0E6MsDu5G4@vYd#VhYB`W zfu1(Lno02I%KfXl4Aa(3X7y3QpCN|Hued@V6(#Niqz0FQ-g*lz=9eN*^ zPUs`&M3=xHF^AtUy_7f&Nf?>0jRKW@iiVeqOF@2WLfW@gl?RJ=dSwXnI0Zk{5jl>x ztNoD(62lS3ppLbwO+7!J|B?0F?#>&k3u6KD>)GvSC2p`nBi8U6ip}l=cG09UxPRP5 zVn#zC>>HC+ij8x=GuIbXG^)TF7l+*L9AmQZwIYjq?Au}t#}w{5dA0;_D+fp&i3WQ) z1)*dZdj&Rkr!qH+UbLB=qA#+C3m#PJ-=enuBZ^t88HJIe*#g(0_eL+Mf$9my^CXvf zCbUwM0sPU&{&#@7H*`2X%o2hkyI~#eCIt3Dt^hO=4X}!*VPM13U_J-R3wLcUk3OZ~ zQ9{wSLyYcPSGEuVOA4nbU%GiUTbQ7z4Q#HtEA;$M=WCbjUmwN#+O!M&7!LNa!MYgI z?%B3f^=Y^seHm>^>MT`A0w@HcK_qL-29-N=7%vI`JtvuD6u2`I2>2;U?{3DJk0$?dqOKK@MaUgvUv=u||Ku{y5@1ocy^1W-Av&E`oHT zes9+8q5M#M8NSCcWIabz{emsz3l3_Db3?S6YLIb+DTy`KFkl`1NArq}IhRfQm`*tB zBktTTir;C97$Ax(`fY-rh0x*(yijB0AouU$@FW-@(G6L{9jZU`d<+%)$S0MxLXQi;GK1WzM7SpItBR z_Zu9R<`W;ywwekNcRj><^sJIh-jE`~rfQ)SW^2ZNvuf7^%YVD0eFcK@v+K5+wb35y z+9W#_2oRYzeGf@SUSH7w_f~4P22jvR49&|ODawT+zMJ(2KiU51#tRuoyPy89J-SXK z#^s$RTZNEk>-Fakhw*e;NIxb;fw5vN9gQJ4`vfRn!T&K(w)Vrpji?WT8waz-Oj%%n zp_Ope^Ek<^nn_)GJ!hwzj?Im1WsJ6~;{GUJ%Gat(1;>Xa)4^3B2%jirT%)Gb={MS} zETZ8_X-5Exi9Ms5e=L;nfD#F{ByDKGny0(OoJmifJ+y0?t)qDAx0KGo{oEGi$iGe2 zr;f_S)gUNwMvL_^s4*g6!t7uhv%z~^X%s`|)3rmv#+W@NCah#m(3eTQ_hIiEC#=nSGh<4dM$s+e zA-r7KzhK|MCV4}IZ8)C1ir0CLfX@kAp9_pv-e~kOXW~zYS(3bni~O&?Hqhxz7w@-n zz$*#*U4o3;BPsRlYrrwEOm?W`o=%LOp^MnwE2W_?a!(K5p|u~yNYvYER{-5buheS^}62SkO5z3*#3CUlF} zHDE&09p%19c=5^B*M9Ewmyg@v7Z7*==5%4tgOu_7L3y?2dDKi~`d{2_YPsHz(ZyB@ zv*o9#4DhC}84EioYBbbeJj-W5ZNvs^v}WkGO$%=)7p7I@TlHZo0HpPvp{yH&(1O?2 zwh|QV4m_mjhM$)@OR>3HO4g?S6dAkCx~e?%D%^t?OfYK^XXEg-f-z}^7Xh*_&|WU_ z&}Tk(A3KOQp2`%;JM#)1It(3GN_$D3Gbo4}DcHD!c140(oS?QG(LRUyf(&xjtmK)3 zEoEC3U9sp|!G?XWBU2RVNhj=-f$i58@jS7FAphIuSPA22O^+gvMP1^(w{skij~?G} zVV8Wb-&eQestO!TZ3`Ta^4A>3%SQsl6Jq0q?^qFY{K|YRYT1fq>1|_kxsS`~m_4`a zp}_@yt-aMQZoE+R7#Q(g>k)~ul)%lDy#qvx6f|A)C)d}_Q#~6M z|2D@tI|9pH7 z!i-C_te$COCFmD6*_+|n6pE_z-S)ppEJ=s8)XsZseg#^nyv$<|k|q=fd46uK2G0n_ zs-7ESq%taQbc4-Xaq&f9xzu+y_QJxb6Q1NO3pZwtq;)&4)BbXoI3*^`Sm#>Ql)WVd zR%kB5Q}j`5Z;@XE&G4n55pf6;M=U54r-K2S;i^y%G}_OVA}DVldx>JdLlw)l#=D&X ze2jGa!0L;GiE_vkM3&j(L%p0M~HeBvfWr_C6-W^{Y5xqYn3Q-%Mt7 z-0y#t)lin5l*Otkp6T3BoZCkKlJTwhY#v9ZRSolDT@o;5>z6{6ig1?1rW3S`BLzsM z;Dfd9z;m@>Guz1y;X=r?^1>P?moIZH^sn-QHj0Uvh#9xqK42MQ6;zQ&G!}c={L{jc zPFg#0V#g?!Mn2fgIP!cqYafO*~yAfsnXtMcob z;4TQ?ys0c&@2j|Uez?r`w1>$jk7&cYrNvq3ODZ6#RxPU(;Ax5#*L@&qF=t&M`kD(D zd4vLX+!}TIkJkA}uBMePjd4wm_N>nT^mb|U(-7ob@XoEhEZdbHB#?hPH0OypR_1tfqmef$G1t~Nn(gwWx;3KaddbI_2+*5O| zK+pWjOn}m8g!s}|8bxG%9h{-fb^40t149%3)+ijxq`SqkV;%5h)@ONmY6^xobG1io z%WD!{0n(O{`?=_hsKQ)hVK>-|2uXY0mmr3daVjQ?X~c*DPRj zY)&^U;;JtctP|*gRHV_VN(ap!wRwFDB|_m|kFK;MEMN1YEs!|8&=_h&ii}MPiChul znfe@^;qXVNvt8CY+vk6EP){HW>BH&lCDsU+NA}s|%`>!7Xbmmp?Sbq9Z5C}yzh2PP zhzwMsZ?;E2n_0{^yoXO#WVx=jw#C9oL@$vnwiAKS;xDrtY1zdBuj-4ca0Jz~FSOkT z8YOMYUgIO!tW>3#o#qAa$1H`$y!xX$o<ua8k^Y+e0dPe-E;JX*0Q=XC;AU z*ZxPeBw*4wAt(sfMre}tGWh%7ubY;XQA>7}5xPZP+U8+$&}lIHHnC~2Ub(N&hq<$s z5Mw82t`*Apr$li)PsHmUy9XqiPOWG5hEf;sDrf)sfg0Yb;1w=0#k-{Kj_07u71c}C zy8Bpb?lb_A<{{5yuMt9(0up%u)cN+5MXD3*3C z$z5Wzxw}(*Qqng^YRrv0xf<*0iM_4O{i^^N4#&%)cefSK{%22iQtg$3KK7KUWBE0q zH{@d&(u+PO!Jiy%p#BzXqeGAs@<@v9h*KeAjfp?)Ki-u%I5NK%$#CN_5x)V)$1lyc zxZUujTN_n(A!c4Qe~haA1A8%umiJlQlJHQF6oC|I*$ppF>||$YLosnZ?V(o}VPFl! zFUfXB-z_1lXWM;cW)cHmA9f^qE4^d7mmN$u09k0KA?#w!_2JnFpD*OdSwR-D0?>{$ zWBjU}$~uWM;9j4w0q$1~V7x3B9+lr%{i$;1Sez&EKfRzoh(I z!9j^%uzVWUbp^>l0?BvUL~}Gh)=Mwuza66D@XR@)>MK&8BI{&4VCQGVA(D_Ve~qr^%shq=P0aFMF9v%R#&F6@Kq9e;Qed)O%JQ=ycr`p z!55|%r`dR$D~P87tJlmPN(?E=axq^mE!R3mF&`$m`VR3-9dx!C;AXCM)^40I6>Vu{ zzItj6?LP`f48?lw|H<0Cg6vq&HffXG_+h2L;puT1{}!RCw;7cj*+#s>K~L^|6YU!% zB2-K^gE@cc5BxnvJ(%p)O-k9VRBIT)DKdCk-_;y=PDHlHF|GooIMB5Y zsErsCck|r8Fs9JAy^Fu+&)=D!IlR0whNlC(j3~)7rfiK!x2}(!qaF@rjg|EMSgkCqnkJ4(^ zl5ftRM>XVRwL#ONV`+oAK#g^0>7D9dh0g?VTYyJi^VT z`PQ5lVspYJ(IgidW+G$@_F`$CXmPcuFH}{GRw&$n?&~otP))}9>fDfKiK(xAm$#BY zx(JV^zs$o_#@<(o`24w%Hu~O)GSk|Zu1TQRJ+DXcBlRnXGj*+N!Yh;-*IGaF9t_rK zQAnY&!fTlA@&Aa(4^@BQWp2DCYc&RFG^fhx&lg94FPF^47y={4!7HHA_Rj>DKsG-% zECz1hycRA}=f$jSQEI7fVffB1ln5i2O-i>x=m-3d2;`)J$WAMLgC`Wgt?22esEM3` z2H5PHSJecbv8nP@f&sUc0EFo(DAg3$bws%|QmS<<{>Bm@%tPeIc^jlcAQRu$q8ZLr zWqOB5R@0(IF-fzmKIBvMGP)kIPXAmWCw^YZCo5HcbWVojr>Y z_+NiZWu00>Xb{}?!Qcx~K8{ZH!>dF~MJ#6z*7u}mE`75t#`-t+=-Mfp0u}X7S?7Sn z0a$x~^?@a&RD}g1Sx&F$ejbq4C6J*KuNoZPty2;5gHFq#M0(C{Yt(v^c#~`5=Zd(x zM}q>TskM#YvM4Y=2hez%SIHPj8?qb!o-z5lGrmZ3URYf9w@HHAj+-ibQbZ+fP?W+X-w7dAwblWx~zfF#f-mFj>QzP}4lxKlj_x*mH3y{Z~kG*_SmLvLTqZ##Eu?hC^Ho^H& zq}^dGO!~pTi#2@>xtjo#xYf55wK)C zhqd*2~)2wGDp_@9)>yt7(Q1n{x zXA5hpp$)H(mOqC71=OB0{K>BP?shkg8tbaJGj|L-;$D850k=RCF}3?0HqbbP*A!>n zoqZ3xHV^0cjf0$Y$*pANOJ6ByMelPCmRF=ajf)3ur&U^g|4ca|_#e^92#IDO35kg< ze`b~BPOseF;>wZ77>w0`sZ?TXVR-~w)Z1W5%g&l=8ecnB6Qz7zOCv#qeVEEJ2(3vk zKmx*>k0NiRb9dyT$JGk$OLYfj&=brr{lEYFvJF$*kB>d(`PJQlOo9?eGgmbQ?(e?* zW#0D3z!ei!(>iH(p|Ch3`UG6ZLRg^Mfl{bzl%dYjYNV^cBH7ZP%Mtfd>%$+o;BdA0 zKMg-JSP0D60>t%@Cw{i7E?wqwb=BlSpsT+TkG1k1dM;|>5Pl6imh93$k6IYo#DDOV zeuI=LhCxq%_>;}lwzaIH~`9Y2ZdCWksW}Y-g$}Aq=se8Dj*mPZ_*kcmk zGtxYCuRvz8#z*gV79R@tGYrwpfww@y)Qk9CoEW9UvznwH1Bmgos>p|5em>uw6sHLy zfp%8EJ1=Yi+6AP2V?KU#9wC_Ko41Z=|O^g>)Cn&&VVK3*V2)>MbNi$KhMSc$e@#ZBiY*#4XFP zg5aVzl6k|)ZFVaF3OwtI!{0^lyRhyj`?Hk!8u`W!P#Y?9HP$DboK2(&uQ-d`%s8sU z&<;+7Hjrx$!v%+O6?HggoR|VewfR)?xVP$B*M9YW>RUMGag^I*nDxV;v65UW1!hC72UJtQ$};qHqugwkczyx4aC<+I%A zu4$azMULI!B`6-3j4aEc#OWCZa&xxK84miDquI_cE5pq=3cvxVF&w{Y82YQh4KE@C zt=SNCY$?`R+B!<21{1&~UW4o}bS-c#Ds^+t3K{`LtszN1=bbDXcb+by8%0ly-Bm;f zwpwF3Fl*A?R(#Wa6P}2`tje2;K!)P&$UIuKKn{;KQh?9~#ju!?`z!&E^iJ_nG?`D( z-f}3Da+jV_B8kDZfw0z7|e zk1bVEjm0O1nR#^sDca|8bQ11_^{hd{t1cPSct(+eKsLGkrfqfZ{75|Mx_M~#M|qQ43Y^j4 zAF8hV5>^nQ+1yzDc*@#6ALJw-qsM0V@1K;{!%+U4<}aezX>`|$1fBnC(n#|*8T{11 zz;u1gwMSKVvVnK)ZX1hOR`G(DVl!w}l^}h0XmQ3vp885IJ*O!cWQavt62L=doWchi zb2~mav|XJimV|vb_NQ;}e|6rhO{*Gz{~HF-m%QBN2haDzre$pZl%(is6wD#Pl{O5l z`mkvlkZOmlBA>J{?U!uXKVn9#k&YWxOdRT0-hP}5`Y=L2iyCx2(~&@`FF4a&AiFKy z^uQzMw$}B~lkEn8&rk|A0^wx=rRtZQeD-h)e%an^_6W)i3r8*#uhRleIA;fEuzcrD z*ozz5lYcMm0kpMHs@Ie$%`27MUU)uhc`fMOI_y^tPAA^X6JSveM!$lDKqqUXpQ*^{hL}entjb*c_Q(F|4Qdj8Rw2v}HJWxj3<>72U?J zs#dFwrEaAX9qzbq=M)5LUyJ(w+3#h}`9Y)qgfNWiCB4|qpT8tiDTnC%+h8Xov}tjG zZo>AS$TtPOb(i}~xU4fmr=^fi7I8?L-7~fA;D%_UGMsLoE+%>Ho1`}Ff-*u#^&^(# z_f)xCawHLk=mF8`zp-{n>_Rew&Me$Bp=w3NFxt^&l?t-Xp`(Na~l zrDoJf>=?C2YD?4>5;F+To8S9>-v9GC=RP^-+~>Nk?@HEoH`25*xcu5?eKN>B4G(zG zzry-*qP>QyW3p@Flej*#FvKZIvs`?_*l=bWIPo13i<@?$znjq;zi~fR;@GCkQ=mKC z=*CAcCvDOue2_tL#-`G#Ib?vW3#}#zFktyu-+%PPQP@+u5uZV~jLi%}E}3M6y+%Sp zlribLs^O-f{6cGw#xOXZ?|#xsND3!GyWWM1;xjXd$%9V3FbE)M_l|XytY;4wrPV!kZA9%Nh+3fim7*q1ZImhGwthEUreMwDk)^=glDt z6x%Ar(b*bxJNx~fLT;pp2lUR=v4Qovm*C{3IC*blJw*jjs<>-UM=)QeQ{)rHqTjDF zL(FHsSp`vMA$m8o(!4uZd}ub|?}x$*hbAZ?HX+#R31g8mnPW|Rofez-;XU4azc+HU zE+uvYBu#9xS4ERb0NJmUGnOoND(e754M|p6%NE&E(IEZ{p|yPqq}{DTRv|+3YCNE7 z#D80=^J|Tg@RB?MzYH@5Rr_f6?b3RfuAzzf`aYyrbLiM0JGp6CShYf~b>D6+=a87A zrW(F0N@($m$FE7Y2QOx;kayxqLl+{Ol**qh7JwVQsk#28!V;&ebnr6}t;&1A zD6vN5)qUq>VrU%{3|^1$9oi{7XiEE3Oyo$sVjm7GS=c1(Fz|I`?uL)SUZpn;Cu>g?S(DP+rnIZH7)iXGJrU`CESLegkJG`WZgsiATR=gNNz>vBOWoK1X0&2l7VvRQEs5JUVf-OX zF~?_ZK|i*etdD!)A0`&1oW@+5ZWVy?14qL3GyDN&CKBKBGNeeT=oRxOSpgATI6slW zK6GWxOJ5-S=Vj5V-E+e?1+-=cV7JNE$C}u@5xB-lBkdIw&obdo-oWp^b2`gXGAV^qTk(A<-1Hf*)bz5cLLc z&wo)G(`}ot^n)E9Qo=JRZdo=Y^Fqy7Tk5DSo z4i?_)Lb3c;s7!eP?G5ts5q=+%Bb1N+>)U_Ih4rbKb&|%D%6^o+4r}n5ZRd!jzWh)r(PzU;yM+{s>sCv$ zezWXD5x&4{&q9>&^xR*zk}GWopJqG%6a4MeGZQ2a?T@+z6%5tE1($?XyVr$67q&Ql z&f3X8q6>QT0$%V;WmE-+(*IlAn7U9{ub=F%gnWA37HMzQmJx$%3R z^aXyYp9lqtt2<(7y6E+ZgP9Y%U~6I5W++?a-xHOgc`rFWmR^f+M4X}**uI%?u!RUe zZn&eh^y=|=XXZz%+_iWvbR*>WLV)~`6o>UP!rja{fn(LHbqtK8#BtcVrazx#wWY%! z@iI1^-;yqT^HV+&rj>WmxGoRzBUt1SX)&E&fONIyO zT_p=PW2*{2)Y}Lc;KOT53Nbo9sGZ3^$)aWId#(HQw9|b-zr*xap8WD*Cqw6E(&Ebg z-R_cQU95+~#iH7d4*0Rq*dkH$L674n09z;6a(b!ZW5nPc^E@LXIHM83k3 zZS`qk zaN@dYwCY*Qy{$Qv2?dhS*_;c(vsH&Cu68K-Qyf$YYgN7_KXR)X8i&4$fbKhu`iA(* z>G~omTB#U6tj}ze6;U8Yc=AXcZ!1#zaNxlC7p1lK+Hror|1~YGg^I@?yaA^oTaz$E zrXK6yJSWPO_)U24!dGj{&d?6Gi{Y`?j0PH1a^UlkoW@}e1&|axVi_QheKY*Rq6y}O z>A&Qk(qO_?%XH(`F&(g5C#Av(Czf9)^e!gGi>Z3!_6#He!(+6iOkJoO17+JB^`Y`c zzh*K4^^H@3mUxzZbqVSu70&xDnSH^S-`ODMhS7H^QiX|7QBo%=jJ5)8rY(>$bog}Gjgl#==jqK*<6a)K^LwXo4I~{FotsgGRy=0fJ@vkS2}3@x zmp#B-F-vhWqpv;v9Va>uJFmKUj>=h%~>}qVPO&2Re zPnK@0B{H0RB-$7U`LMp!P&Cq3ywBH}TK#Zy{vKuvfMB+KYH< zO3ILYqZMR|A%1oo?>hkAKoT!y*#wfqKOv`$abK2^7zl3qBqqYX31KOZ-gWJTQB*j` zMoY8MMzCgI=#8J(QA$xOu=9UWcTpZiB!M~J8h$1&0*|P@y}eTxzKD_OV5A3dX zISdoIO;lC*ZifR|wL=UByho9pQ`w-mS(bCh3hl>s>XGMP9=0E`7z^L)|M9HZnL3Ls zZXoinZM}H%>beU2k+G0Z(%%9v{TFppbJ+VFhDF~#$Mh%D2lhqvHE0QfGvyYoZWmxo zV%WKAa0$**@|V-EH2(UA9#?&lG6MueuO+@Jx?@5f+#i}mWu<*atx$Az^~a?tNZvGl zkEW!{#-e1~HmAJmfxm@z-`^h%Ln#DzcU#NFq3hl270RWG7i%jhdb`m24%kv=rEStM z_xWspYT} zHGwv>Uf)wj9#y+Frw|M5=E9QfXm;%K*2cjV#|;9(^( zvg&w72t>LEpL(l6%x z&~$1N$_~x+m?;98jv$5V#dCCHq8M>~l@6ZgSzY$SBKakT*wGx8igg3qTb(MV?_p<2 zC#EyPgwzxwsOKAQ@IR`T6K!h3b=lk6iuc{V+#8w1_-7!`;AW(5%Fb>t@-Z-t$Kd;d zo%@NIQNRxq!K9%)uIyVeRDDc5bte82oxdshVQO>J88$wLn?VkQPbC!3H|_Ec=(GUS zQB=%1FuIh0j1JvIC{x-!vI-(=ziVr6BR2^6!k>K2t^_=m_rQ^mmyPS}{ z!x;FD%SH{BuVhgoBK9jGHIsYp4NMLMpqCQr%iwT13n6#h{d#C$3;x>cL=4cM#3Kbm zGpBeik{;iP2kFhUb@( zE|iAx!sg_9?1ceI2RHwtr8zrj=0mF&r(})D^}*ujNz06I!ffcVb9t8^p6Q zif#wVH`(|v;u_rhkFL`v$0ZBFg;60YVAu^>a5p?}opsy%gUzXWV}SdMZbkM9%oKUq zPN4V4>-ta~pspyjS2E=(83VroTqh-DSt&@FS0<+&iBX~*zhX9((W436@R%#Qo$$C1 zZ93)M6`M`L2%vIKl6b2`v)=3jej8-ehwHK+8WcW^n8?+(r4dmHvh4R2=DB8jf(=!y zp{5L*2aAov_7bb3OG`xxzC6E85J*646VkT-Q0R(cQ6!iH!6#nGr%-2V@^VL2n*`g# zT~;BbRurJ>Q}No5msm=14e$$Fh^>hLngezE8$>pag!oxjB*8RN!chkraVB*75$C+3 zWI?qHMg`*+my#5~4fjTu07&5BfoN9>Jhw8UfaDnasHwYHxIG{!Iv{aDJ3Hq1E$#*fIcS?1{ zR?gckVMx)?R5Xat+t$RvZC+;uh^n@FqgH&GZ%})SK44gB$+a(l`}DQMMoEuK{6OzZ zYbC^P@TDFv!ryH@wYX^8TD%B3=_85wEY=*oIyxx?`_8n;=@>x?1Ae&Clg0>fB`lVV zXNxrq>%W?580I#1E?dBLNZKM6hq5IK^gOhSM`IQX;?_@Am}qrX`gtm*+g+aSaL45Y zBhoLw86(7-nN!e=)UU%=m&)<9C9r?K`dgmBo02CJ^EE2L4%;U3sgLGcIj@4^d}S23 ztfX#~Bx@^RIMvO=Gs!VeTQshjD;{?+oJRRWeM+k#m(Ou`GtDQ!?YrT!ogVwGS_8J5 zO-@4YBbpxhfFOYcwowBo7jJ_|JzxEsoT&3-)1pc8aOun38)Iitm*Ke^%-Lh0uqZRT z<%J-mLHBE_XUA+5_+7|0K(MUyF9O=lmUSY*8`W><^dFTc>imf4^LnV^4acpxQ^(Qc zimRE5lf;W*G3>N@6XgJRJBIF9&;n|7>F926qH=4Dk1pghWcL1}+8_9S!S^kVbk*`7 z6-uP=KpWovmU6Hz2J-2*#Hi3rJ$losjwb{usAoWfK> zf6MP)e%In0_APj+gaGrkR|F;)MQ830hj|@O1v{!IeY&&aIMW}P9G<>opLrp+Rfodg zBV6qr20WiztQV}k$n_04#v!2%qADh`GZtQ`9MCxbcUz|+G574DbF$Tm=!b^9qglm8 zqfQHMyU}EbE>6m0Pf_aWHL;|DmOt4$g{>buFrT4g%hv&^fq0po0yz|6zYA}__`QDW zfh}Ubl;P^9Afw880r(w3uW>ar3e3btit4r(QDbYIX{@mK&c5cy+~y@*xIG&1^Sb^~ zH6Wf_CP_;p6x3xeft;Gyc=gdXvOPG)wxK6GC7h9p^Bjm(sbcV~WRrC9XjrR1h-4an ztW78%iY?+nP3_EM**_LCl7&Q1)^o}M*b4(Qv|U|GbF8^u*56wi^-~;**pR~dSC^?p z^a(gI_}eT|;FJ3cJnQ|cJNt9(s4gToh>qmtX(MZ$v(&U&6Y=*ltol~7*xN$E)a$8T zNO`WFtStTA<74fw{wM}t|8FHp-j~^E)glNZ0;9zXF5s-6l57xDOlpm2%^!NNklM%Y z%C$JT&kNf^x%#{d*M7g(W>6Li?xhfBQ-9rzlII*6eN&!+Wh0%nc%$u)g(>K9%J(?X z-p_IfOR;+kDAntD)2^Z1Vs3p&7Xiv5_Yc172)Y)p9b>F+^MO-g&b5D zH6lXig#5q0z8+E;FsitSUU}4}OsL0cQCuJC_%u9jxYH=Y2K?)o35JKygzWytyy61{ zE1sXy;v}3ygY=5m%`ny3sJ~Ha8?4#V#U570XiE1+GucY3X3;qcIao^!pzADh(<4&qPez;iM0cytb$d7TGaqqnJVBOOW6 zM4P9RP})rxFh;|rY}@{R1`hLLO1R~ngG?SbbXRXT_?!M1m1+e?A-jg(D$^a3j&d_k4iEiF#V>#%YAJ0QOA~*pDP_#9&lR26Y>M^}uMQT3wIG5g-52W?@-3xX9uaHc?uY7NB?}La~Opi6yueG39_os$EL^ z|4nvnq32x{2=OTi2kf2_IJ(t<3CC&otU8=w=W8{ta*%mC-cPniTqHU$%C)Mv3@v|NIswkVp%W!inH9GIOLI&o^;La46(`_XoBt7+io z_7H1o5iirRbD#bgCLf|jGFTZ+;@AE)slaq+8~# z(g(7_8BtI0_91L;)1koITV7^1R-2UH_HP%NaQ=z_)TIfM0F-B8nV{J!U4o-i{gE=V zxx4nM_Qn$O-OtO+t9u?Zj{|mlG-^V^O>8cuRYhy%UZ&FWmadYB7#Wy~`K82S`iF=f+N?lM6l0JsNt-}tOZ15?s%s-g_8~5F z5vTWPQnH%4=o3SSg2*1{Q9YU*IML|iLN18yglF3m?bx-{uEoHq3*poK#}98Nw>kJm zSrh3%ETNfL{iMb;x;Z;ZQ-e@XA1QA^N~ePy>t*uWmYCJLPSSr)ERBIa2z9dizk(7%< zIl7xFe^{Sc_}#aBe>a4GH_|x5b=Ow~zMd*fv{5OK|00QODDOJAq9nZ!62=S+Y3kP{ zKqS$$u6`fE<_PtKSK;$#yZ2B+HU$EgpUEr)?H(P=F%4R8r@ZHKpzc7I>@k+p8D;9| z?Y0Zx*tK$O=gJX0r;}9D(-0K`ViErs(Py$%)2o4CEL3=%d88#xTE+6f?~!Fli5hkf zYl@VjmFJF(eLFsm+)KSF$3`W4e`R$Fxb~qo_ebF7ARzqG;}S(?fiH(%A2pwl`JVQq zq4`izQ%Uifv#`TM(ek;7z`xw&f|i%UsWhhVDBvE5@zBt!&*->CzU5P4D>>ieaN$g2 zMqDMy|H%4O{5mUt^Pa>>{s{xp2sI1tU?fPr*ys1PBSi{lUWRFj6ky#psVHF}rAVg=qrrZBT}ergtOC`e z@KQyP5JHQAj{>{>Lqu{U+%V($V@TxR(WR#mC!64n|EN+6mJu|m{f#&(7XvUWm`i(+X^Pj8u>-ASZC@m`qK2eH)$+zo~8XJ_Gs zw{D>yFj?zTsdyD;84J5AKN@-U{;qlQ>+@GBGRD8A8ztNlQ zJRH2UiP4*1>8}(I_jg+fsBVGlKGhIKje&BA-jo-^+S!xlxu>!RnPeehCbKtbc)*2I z+6P!;X&mI?3ExW)L(A#ttyKgF`?BHkaI4@JRR6O@k6Ug(_UHJiP{rZl(Qc&4_0NyZ zUF_?pDSm*e`y_G3ui2>U4e>NRnczFDP8xTX70*1J?qzHUAr#NA{YQ06n)s!!lyHcR z%?~#9@p1Ap!ztL_(y~s~ylqLugIFLk1e2oGeNGQ+c33QUertxaPlZb(bC+5>#{ad) zg*g9zR7M3~!avWrZ$r64WzhT@GlJughnGe2%2Ir7BkB4DRcIB{eUN3Sj1d74O_mUd z)_O?FnD3qYpv(;FcKAB1IK05}n6`hfloLJK?zi+9vwvjMe077&g2>o;A$=bcwDZru zn3w-iaZ9ANav#u~VNq^N%SVlXCH?!aI{Q^5{pBBJq(8Gt~Qylpa|$EwHUR7IoSo`S+}grlOhKy$*MNBhwzR_Rq_L@_Faep z@s2A-Lsw$y*{)VlOv0o0i**zWloA_=OfzvkSBC6Uu{bZ)19j#W`68C!V5V}&>2D%Y zK*|bWLv=@rtYa8l*w$JHIilApQ?Zr3zf&3Djikof(-2@d@c!IWnfl)ocLKNgH>jx~9gnmV z;A#EDP#7sLwqpLnx4lS4!4z#Lyjn3H&jh#-h^_LR4vzn7*>O$}%-%xPU8R&lK%n?S zaC4-cPBh2$$DFUPvUdCy!?_ci{$@Tr=Nn7Pt-p|SAwE?6{a3H_bU%IBAOz@U8MFun_wf%jNUNv}_jsXU`G zrM=Cm!U?y7`G~MQ;JXb@i^HA9NoyFwuD{8~SE-6OL0=y-suA(_!5|v}Jw*$ehR@bn zIkP)a4_=a=eak-F`Ult8C;pIKU1<=`b{ z=}Z5A=@L=15#5xq0rp9px^b9HypW`+HE8jX%iKR83WXutiC)XC$tstLXc*J6 z8^8i;{abxGD2Fdqh*dF)?&pH57OpPG;M;t>uw06)pu4t8e|DR`4EIIKj&aMKx!yY| zeBnPMlb>@IzC6@i-dCCQ_s>zD(4o+ycFLU{&~}ZYwuJ!R<8GcD8sIE#0z(+&y+AqM z*N--h!yy?8FSsZ+?tb=eK^IR+j-%*oBm?ZiE#BM4*&>2R(idRs^tD(z?A`y)(VDcr zc4d!1m|zXroC`(JWdr=1CpYHVHaM2+(eE1t;w=i4TWUSp4Bm7Wwa6g`I(eo2#xO+# z51tuCXZL}Jf|%wcy179;JleNx?dn2f@m)GzYniP=n&E*ZIg$}sfU*Ek*5UvCqvlI} zOSr4GU5~cIdy-l--=6e_^`7n$SB77ro0b$>Cn=>dvrWHnBC*8hV{~-Ph#IhHKu8Kn z9CA`z-mVwZ+Gxy^GZRQH%-5NKI%Fzv_Y#fd(5{k_^BuY1x*#uLx3vn}6$NlE^JW^Kc~ z(|&mTN5xX(1<~Dj!>)EajW^h|XW--s)ywNS+7dqAz7m%VJ-|>6wK^1V=420QQG_q8 zi5sT84t3hSq4`5O-48;XB)yAP3s4cTb0HjXH?LZB_Y~VsJM=Q{)s%wjp0^XC>B+jC z!f(|5TR&UFgfr*bF((N`zg7~HNcqDG8xs6Nqpj|r#CMO&4E+5*2Bdugu5FN|eAqqa zkMA7M=d?Wa6@D-t0~$C^);?LhcjSff#X5;F$P5gy^O^mx1mRjXm@J$SdF^GT}XwZ3O) zt>a@-1ycYcf3j5lIR+m3OG#N85p5(SY;aS*L zYEsUzHtZWXF?jV!Uo4aFO%a2{2Ek5~27Vc;gnXL+TX%Kq}K}?YtJU{#M=~1it zQ3U5??Ud>$M}cH!Ss?YR+UGYuXa00LhUcKLJoT=(;C@FRfs-Kmx#ez3APsfzec?j~ zwd3?dWpDMSQh}1l8bAALPq`0OnV*7CFb!LU2eh9D@v}!-?}GchzcW(5{jAeNYOIFt`r{q~lV+vd>PapMj2%tkr}0S1Ns{q8%5?F=`7|o* zl-5d*bUn?>TJYk%hEU-%hWanqE`d2dw)Qru=6k*ghq4`?b}he$MSY-9{wtFLe@*{* zA~Y!JDf(|Zr2@vmE2VMecV z>pfFGXQkvG_}*D>TgOQh(t#e!*4xPT)FRHvmHWf`UBTfctxrP0yyJKExb(S>;CWC5 zlGbupONN!*&s46=poaYcakcWA-zc?MF?|L*|3*SBuxl_g=s`t9@um#vAuwL@0cjd1 zamQ`(r2T$FM6)W;47dX-4^gH8(+vsT{P$K8|9du)>4hx$Nzw|u55N=(TMC`y^tO;F z8_Te!9_;tqRV7QDpeO|ikt1%mra_E+5%IR(8{zW1maTsdo$9YmORAbnDouv@LI&j0A(jc}`*h{f#Lh}P23fb8|B_}Cr zRoYq=+G0||(fKO?^`_Sk(z_#0mwWNkzke&0e>}F=I??oi7<}JxJXfDLgEMElArN-M z64wr#l{tsQ>OR?KY^JsJyehJ8d$j1^r)D<~`sfbJ-?4wt(hgfyv(L^Ky7<>o+3JrA zLcpbiZ0uJ!&;O{IqP3EiDz4AAo4E=UvCM0QbgSF&?NGon{81rY_pRefn!WEVCNtw< z@uI@AQg~QSH_>hxOcPA(^|&cp*P_cKmY1rOai;@~s5XD|XmS3@M9<3-?yNADlq$HF z)O1)Acz*atsHj0xQ?_|in#!v+n7&36wV8qNj9wLzfmH1lfxR?Y8nR0Ao;|wgkA8h; zr!iK4rdBcjm?w%89KP9x0PN1YQ1po}CD!l@znNYb^si1d=S$hI8c*Vb_>7*lAc#uv za(%yB6JNzUbFc9Se7qj4s5K~;`a_{E*Ri}M6`0>NT8VKRmzr~1_rZ@}$ZSQ`FZa4* z$G@dRR4aSDce8Q}AH9!D)9g?|*TVTI!g%-8XbRVWrHqy*K`JpTW zw0YqQ)HK{^36kL z1(!AppDsp5*H|B}qLMdKg`}n%lGyJFfnCI@w&svv*`D#zc;D$(X^MCy^v%n_Ot)zP z24|8DVQ)vT89_?Gw&H=$bA}s`Qw=<`5A_*-Jv-~5;(yOs9T~jZ36-ct*u6wUxo2b~ z@pBVP=R5kXRt`@`W_c{>WBtQ{{n;QM4P71uN|fD%nLQv^vO`r{$3htlx_ zI8quwG06L*a3oDW4iQV1a*!g2XN@B!YBVnL(k-v|&TDcWPGQg%D1L~OPnnIK)buZy zppxsN$wJ6_yImWAy7xb-IH)4`UV@uX*jEZb=iXi2)hc{A^ytq939-S6x4nlp?VdJ! z5#HF?fQd|nJD628l+-SS?wkP9y60?R$OPO@WPm=!C^#5&PdDf!IC+TKuy)t9;G#Zr z%T7A);`R;)>}Jb{f=7)8-y3a`EX@{YowePpa@CKLss7wN?yN*UA~m5Hp&VrP=9Y>3 zME0D@P;oou7eAXn_B~7}vAF;EFK@N${MF+5uC+zAdjaR<*zmf(!`i~L+PQznsvg*B zuhmSOzFXWmZqxLfzo#c(BvHACZyZf52QZivzf`3}>VCWE(yoId%C>-q9+>PUIfQd7 z!oTW+4gV9q$`P`_#lN8ynn2KWjfQTuz1^E@g0fPpB|;*KAtqBA?ms=wUGw=6C#?QV(mK2mRIZC%h$V;Q zOxPK?Z%Mpy2Kf*Ko=JD@U#hAt;#^A97mmPRf-6OFpO+e~%8lC<$1Anw_P3pq2MK{I zpB=N?Pc=)sPbfJy-w0nyVp7_(s%p1}SZ(ZjCv|w=y-;=|nW$_^Boa6J;C!Kr`%-N> zHE$Tr>B6eGU#{IX%)S{iB#6+;+MR>^N5$A?fP>#6zi1}1O}8(-_pUW6(HneF=!$C{ z(7x}r{1~l)Q6>a*l&+$C0qnM$b0(Qp*8jXSWvn>R=cys2N~)gmoM;mg<}(G7d}1}_eYoI!1~dcnDcuE> zoag_j8WanXO0R~IbaotoIQ^!4OAfO?^XhWC8rg50scJ>bHjN<&9vO{VzIxDv6~CBc znPGMHu*lWn0ohC2{VG!3sGU-Wed_`VXyhX)#@M7+#LrR4O?3~jX}vvD5?kA%meje$p5vDdFd z;5zW;yTWL;W5iqQ?!E$Q0tJL7%#>&h;hIIm@KyQF?3-h^rB|G|fGVTmr~9cKFhzj8$~OaU;)+Y5cjB#$JH^()nV>X zkWxvc0E0r}V(`z6GjkR&2c@Hup>I5wfQP1aTyb5NLD;~ni;TO|$36d02K> zz{l?!9;a~NWxiWzl)FG&mDMxu>7VH7j%udVWjY)|LI)=$C?nqGcCdG!H^ylpf_sQW z-=&=jy_WTYRc*TRMnRu0ylzOITZPP^duPr-{Suv$SgfYFI&PXex)Zi*MI!s=!JCOaoaw}a2hcPh18%1c-??wbD`SQ~)7*J@bPNK}$G+$4;q z&P^3uC*Cd%xT)oHa+R+1*|JH=+j)qo(~pGlAgZGaXbJFcO~#9^x!Ye`%9`>41?%TQ zbZZON3SMuEvln#S{+v(CBqOOo{I&~E1)S%+(=?ADZUGYasV@BAe2yZ-hN7`#d!{(O z=^X3&ri?u=Yq#Ie2_0xh8RM$%1NfX=V@eO!w~=MsXETp%*Z1jXuEq|>O+>xL-t;mq zl-^S#7vX)sg1A7mM}M6!CJT`QyX;EZKmnZ^$$jt7fvGw-Y|5C`#NjV7{L?$ZnCx-# zJ;LL}z_4OsV2|`ao?#vXd@;~3g%*jOEgm~QW8};m#)ELh25lhndY=$Mt^b*faGWTA z*5+@2@F4Ws_O(FOz*7}*NDtR;_*LWf57eNvV2oi{mJ2YV{y1yAsC{!s-&$gQcaZIq z+{f^H{qU~QIeq=6F{DQ5&a-GGU9XDKwbid?^KUP~r##lv_y#GFL({e_hsMT)AK7{; zv=ubMSJzQ@wB$%I8GgtMqD=fZ$&cH>L)(9clku*?H%P#vjp!rdJ+$MF{)(x=N&Aro zJ+}MLqoGPoaF-l{;_Dyt-NneAeLEyVBJt9UBvOWCmi+4N!RQD21frh}ib^e{b4Y!C zK*4=_X=o!pMDgCb*1AZy}yy%VKT>pPHlcyms*qJWA3>u2&>yTEF~IVf>U9 zUn@^6KIyKFGrp|SuxuK<>1Lkz5>fy7X_Ogwf?@;)lDT4rvq=r^1Mp^k+fWEF8lp#p zlO+KuYVi0y8)xh6>XQ#rbMp7;3cp2zo?MLp+!%kY=KpAom3S8P%JrAqH7dyt-gDsj zwS0%|39MnL71^(p^Us4zwNc!mTuXvQKbwp(WDWU>h8EVq? zZZ;w#LS$|VV>}LP#3z-Z6Z00 zk$?dB>iYDRu}tq=!2E}R&OCGC@uSf*+B1U(alHL2Zd*3|95Xc)F z8FUD6oX9UiF*-aXv7u`j+>{d-KioqsM5b)tx%36^&x}DHTm+HtO*T3Xm4+tXA;TN> zuj&T>UPCJJjTQWJbRW~R%!+c|=Oo{6`M4AAvie8DL6PoXx%uYZ5JpPI)rDuha`)<% zhLZSTa6O>>@Xv4F&7rx88TE5cO2N6`0APj~Vie)@-SxUtq8xrb{V)1PioV-MsJ@xL zEP&X3gJ_acnBp7fmA(XCc&skbf{$WZ4TgGHvtwXY19_-jiS^vp zRM>30WU`@tUm0Jh35W}(B#}T#^;azL6kvAK3$BJsM%Kyu>7cjfuK!S9pao)_p##kX zrT0V`9BZvtGhsb(d^U4hT11`g?J+MVlT>e!W;NxOf!p)Z(wE*J{oV67lLR}Fd4J+d z(F51R`>I8T3vfhFFCTw>a($|8lUCM&H=~L-KxfnTQ$_Jk+MmKFgpChZJW*Y`-%96# zzIe& zFwthyEemC`7~AkVw6f(AdO0P=wYoDLgre6l2*S1p^w`r(*$lKz92@;euv}>isLfEO zZdUCBpLHi?ODDg1ncTQOeO!CaZianS{&4IlPlFn3EHdMz7R9uM$c|(O)Jw0C!O4@J z#Uy2163;OE_A5&1qVg_Map4mp80-A}h^s?rsojv%>)1}A!7P?fIQjCgP?^>-<Mwo*_)uxdGdevJ$h`*MWgV?fHzA)cpD2K@ZoO~LVlcM1$ zVAfquF{;*~vnDGL{xUPv>A0q=p!MwUkb9#{CaNl3Sbc~h7)t6f_>m#khYN+m-#gRK zSj{UMfCV8iNePJ_SopTJ)LL6oJHH(5d9p>j;wNQOn8!hDLS?0ZbSQ^ODgaOE>A4Rw z3Kg1Iv<(EkbG0hK2^3)>FNE=zl1SIai}8hn*>7oJ{V zVba1MPSF*GhKCeMCB%pb=x+Pp?&rg5b@R;I6C=lTn%(w$N2KKQh@#k*Xp78^fiRi^k51D_&ywXC%r7xSTe=1H0W4ccSCdldaDNfi49*n<>mNsWYVJwFZD z8?1=VN-;RPjG`UMIcd39UtQRR4~S@@z}I>Xq`;b&lzj$=N+@7y&FSIx8vURUk<28w zy75tWDt_g8z3NuxTZz#w-)c`#`3%@F+CM|82Aiic@k%X2bz&B&Z5S&f=>-PXF_+8fvY-dtFy zvU`;(n|*_dF>7kOkQEYE8Ok}tkx)FL7?G47;BMxu`r*JSNNDZOW5zIH%*r7lB*B-I zcvzJ1!O85>rp;y2r|sCCsL1WRRvH;Hb|JFPqHv4aOx9lA;X>XcTYxPS-FJnvGp5UW zyE=3&_RcY!7eQLAai1HFscO^5SruoyOW!*E)1UG9?)8k;M`uQ_-y*Z>tD$2pUTxW? zx;V{$8zy7vIQ++RXoT(tm#z3Mwe2duU(kQMk-}@v4D*;fuc>r0gy+A;|x{O*c`$In2o)FT}Pox7-I{>1K>88^swk1h!1Qj;V48 z%zGGrxqg#j@N1B0yDM4k@+%z9eR&LLeFImR`#WZ>*P)lfEMl%abkG+W88MB8@Zji$ zMF@ZTrJW}mj{$+tL*IQ-?-SdO99Muk>#9@EKL-7M#g~Mu0^Q}0$ezKuK2lDT^yU;| zTg8BQ_GRFTJa#O==JsX|ktLAQnxLiDKLNL~aeoU8@V3LHeJMu9ME+{0GSbra2`9Yz zL2^Yhq`!Ak{P91pi*k7_Lba*u$)ajS$;ql&U*HuHMQE*3V@0~zLf_v=XBQoMOeTDH z6zfMc5s0UE^MZ; z|9>_(;e}8}vIVhsqi08WTH_TZeDwFMGrj zf;96}J?$L^HLcy3n6XRCbRBfPkP6!RU^dDXMKem2TSjLj%!8uI{ma8=*Mxi)&w>5g z_pao2!lT{=+0bYh1YSL~)0(aERyeb)TTm!{lw9il^jfP=wJ&9#-sl+>c!PX6^B}XQ zW%pFy@JkiO>~n70evZf4mF?vl0+ePW)H+Dqfk=#*1n5^p!1WAq;(^P;j>kvZW-ix? z|8Tl-!lm+0d8A<-=}(kUc{{Vexjplk^fvs6 z{7mVMm70LKQnM0zh(nN@Gv%4kK8|HA{J$%C`F(EOlkw{+A9z?s+b!+ZGWlr}v3fU^FhD4^=wP&1LlO+&}Z623FivA5^N#21 z=sTEo)Bau^>B-CuFON9~b#n#G`R~s-<>M)3i+nwjE#NPKKc=?QJZ|VDJgly-GxK}- zgKZFfXU&m5u5mB0LJch7)>KzdPb-Jkr&w9Joxp$>(uNmyd5Hoty{xHI0wM;AR*=)x z>bGszosMmW@p4b5eLG|GjW^Hb@6HSIq;-y#-b;HUpCi3TCC^3oi3z#CE+y4{O_3ie z>z7K~V?N0~VYZ{>1>#u}isxn$gkGy69eW z_R!6r;!>Gl3e`;s`k0rLEjFj-T+MUb;glL|xoLZb&`(fz_C4HEO@iDnM+n^;gf(jY zjHty9l*ml^CNqn2I6+*rN!Fdl6!#*^q7R3`qLJF;%G%-D;;W5!YHP>ycLC~hVy8Rp zj26{sLq;>1aB1kR)Or#KFd7PCE%qDr;@dq(b`{Jd}n|jntE#Uq%h%p`cQ^ zwBijv=6`jzw=nE#f{Y^bqQo!XMn;R^vN7m-sh2A>hUmDAYXKjE+!g4k*!DBd*=F;aW(?Isa<;xzV21bXa@^si1 z^NWY~NLwyhCKds&h+w2gQ)}^Pivh{}F~TfNRplJi>)xc-TjBj^Z@q`%PlJ8XzfOk= zq>4E8fQAE$?CTvQM0tm22F0>e#N0oz#Ca@s;PE8 zykQaR5J{fuW~{(?+5ktwkLRH8T2hH7^?+8t0KnMaxjlQm_%M5og_<~!9=Gez*Qz)>u9lmb2+V)dQ|!y0J5mVl^#UiCLR}IG>eSQ=y9hd-LTr3m093@ z>!SxDSm0T94HWm0arx6$uwMA(ax2cAMK`7-{p+M;%Q4^Sk*4b(9(8xS{)m}RF}G%u;4_LQ;4@VMnUR3>ZdP+WmA-os#9J5 zI#Z}A8gC3#w$&rZVKn>*pA&<<4$JWcIom;=-}o`b%Bu~^nKFS>rIgnn?byrP`2;Uy zc>Fl&TBq%`;QGYs9%clH-X!*ZMKH#_n!!29sXUj$H3Ld_X zN?oVLhP_}h8ENw#Ln%ToLj{woP>S8V1)-WjcmBSB>0?nAX4fcNyH}oFU-tw`EeXm= z78f&qv{F#Arm8{9IQeRCrQ2Bh4wCbMHSdt;1VI&Ij1t{7&(&6sy9Ch`FLS$x%gLqy z2a?L(1p}pK%E&`(uvf?=ZXsH;!8_aCtCj+qtB>eo&$Lwf2F8 z^GGGBgI*2#W>kGr4LIfmD3-W5&$-d0NFNnRf!JTWD?u#fUna#n$|4d;BTn;(7l& zie=Oi_al+YwRA5wFK z`D{pzp%lOuLmCDvQcQh{CNr>8JGk9Q#&EC1N%j!^V{I9*2K0g$T~Iu$?ds|i(qypu ztT+;SF>TV%wgqopXS1Cux8Nb3Pis*6mxFQ+)sUpBuuc{99-cf_dHlX$PzI|{s^2F0 zE3)}?y$Jk;zVDs0-pyWIXleGe?hUI%WTGWDfGfO({bN}(qnkO>Z5iHd>8T*2=+qRF z#A0)N+Ng?G*Qf%~dLWukJf46^hqyf;TW^O13Y)c8XM9H7z3r5EBA9xPeWb6!rCWk( zVWBOGW2Xw&x&f$T_2vU#L_WF>Vd!JjOC_saM=YN^S5a*SkYi% z>EoB5OkPlY3O(>^+r1Ut1)U1@W`P*vzn%?kpZ%zz_EKtX#~r#jEySiI0+VjM9%SdV zKmGc_8-3PB=IjIbl#~r0MQ)KU>ZL0pwYzzYt{M5}Bf9m1SLdSci}Ae0c9uD4wUq%f zaNcA*e`IIP5E@8JcYmIGE&TI9Oe4>+1^n&FoO9KAYn`3pT$4=4)@Z@Uj{|5NnQa^t zP$!tH0_m@zZI!7zA)9m8#aANc$80m35bC9#_EtCKBLUPI)Z*N9(O!9iC7+C~EEd%J z;XGfB-2H&;C!n_17Qq~p{Z4%M0RG-2e!fEiLp9?S;_1BG^GnM{)wM$e_=I0_hF!bl z4w*7SUHEmk_Us$3uzc9xvuS%cYxF|8NkHkw%+g7>w_QjsDEA_SBQ}8`r>(C0s8im;=u|IjW{RQ&5Q!Y zICPA|aOBZN{nPL*P*4uUHei}!nKcu7VQiVQz>rWae3K0(|C+AXEaLRJIW+sZ5o%gwhp-n@$Vw+uuEmHpo^WYE?p~+2Z@q-u^YzQ{t`z}rPKTjnNfLvD= zM7}v`WLX9*p{DA)=dO_IV-?TJ`rnM$C5L1kc~nN<8tM{u9ccx3+4E+LI3N||V)p{Q zy|hi<3_5uCu0+S5iAyF@h92$R3AU64or_N5FO~7r7<5~dQfYUuT2}4JEPl%9%Mq;f?8lI%kyy3Om)>|g^&%&g^@&{kUlG8g@e_)L=M6(Gqf*NeoE~s737& zoO|M2uq=KKr1w@(;*RjzL|ZY%?<+;#0@rqZdP~qE@|)b-L%Awz8@+;m z)PJ15+IDPan3g*le~biA^D?MUllLDJWxh=)9Vs1Ud(6!AuG$!0^1M{NbWd1#-!2K) z9TKM2JqKzd9wpF}PXglQbZ7}B+REu18D*6YzLShsD{Bam*hD*byMls>mC4QT)bnh` z71&CDlXLF!Zks3h@A_@ZuWk=#so$NP4ldw_RIE^%0(@ zJW2fLEtSpv{W_c-I7n7?}n17X6s0K#VX|D z=81i-`>R*%&U?s&ds%dR=033ZXBelHVDj*yXS7hfHpX;_X*OB7YUq(4GF1Fve4Q%g173dn?b#B{^h zgPzh-dvDBo2w+qGfb~=UDYDSd!otvgR2AY%WL&- zuQ^jMo?nK^xwVN9b34P#pVW`~e?)Pg%?=!!(z{{f}{QTjDR zk0xs!o7iBJfo{H#E&%6;CNSFvJZMe5hc%Ep+LT1J+-+0zWOet zOzyPhOT63{R1%DfW`%3JJll7*7Ig9ub8o6CDpj$6(1^bD$B9^}lyl}NmCz$T8+RiyTio(rG&Y%Vc*EgBA@(nVzHX{jFd_a>sJaP zqZCOo7&%Uw8l_-qR%)UT2O%Ez)W5n_Id)~=f!$ff`Cw3uFpv4g8Q6*8737QkGU`RU z8Rl;fHSpw|o@R;4Z$Je?-CH6u~ZJ6qr)!A!2E^VB!Hx_Q-lMZ-SPke5u40rZu z7+hK4@UsWF2-vug>#%DXMmNyn&k~0f%zLbizbvJyFj39=18w97TnaRw%&xz3oxAGX zXvDHH@kGks6!)v{$AO9HLuU#f7@<&!zZqK-_ITr`2k)^(bNG+|zo?KH@D0;M8C-1s zu~yxN^T|;w9?*GI8u>0!m_6$UvVSobBX^l*QC(HpS{3tf*wesGVNmn3uvAyrqFS!s zmc2<>f!)J}g7V?|IgXlT;X~BiJ>kMOn{+zl@^x&;x6j+nwhYCgYM&ijv{f_Yqi?84 z{`3|@W!OKYw&Mq@-6fA|CgTvxG3!Gdu=SQ5nqBvLRI7ueh;&&s}OVt0~vAy0jevobWp%aU(D?lM) zK9Syd}J5_1|WMd(E8{kV1?Gi?Pb=MEj-1 zUuQR5(>2PaiXZQ0AjS@f$D0p^WO56rF}7nMK2z(S5yNX=Z}r~x?S{Q{2iLB3oof*z z^h4SHQ6gPG+!$Sjjuc98MbS5Y@Xt4=8f%)zFT&mB;vt+j#uQpb_q(hU%h;;+kvkIS zc$PA5zOWiPg=muR?Sbxjg5ETCRh{P{-APm{t3R^Z$>ekx^Zq)m`Gfwg?UsS>0=8SL?s zPv>ZqCdZKG7g-{|CaJP%t?2JLG&Iy*8a#Js`AnaYzBaM%L2km4XDs_%hkVZugx-lr|KXxyyaRpM;C-0im#2t z+u3d!kkttMR)iQR^QRY)tG3K`knN*|_C)Xn#%;Sv`=^>EgtF#FS@u$#bk#Y>&@PFi z-P(Ph1lXOx`JUjjBd?^7*;1t2l&^3Job3>bPY&v+z(&kTBu}han_Tv2dLR6v+9-h> zr!~7;G}}QV4b9-5i$^dT-+sPmlVDN^qz&BjA9>?!*Dd3;r4Z>1PTPSLEMu4n^b_}Y zy=l{mo&F(9yKIY283k<;gJUbO&!6iKdPQEX&5`GfS(&Q$ojvkRYNKx%cEAM`Rn!d@ zrVV9uH;3je;*g3u8HWQen#wSh-ry^JF_;n_il)ngb_K|sIo{wkl!h=C);ja;3wETL z{(RIZYB|S6$23(QyCA(LhhW_LxTu-yK*%!FS75tuD_baGhFXs8)x{EN^C0jnYDfdx zqj|4o;%4fW-9%B2iWMv9o@h+fpnq^ZCO6i4EqZy_`_M4s-*@Vbp~a^Rt}Ueuu^5M( z;6|NA&)zO9zxxW>^9|RlhaLQ27+cbe)Qt}1CjzVzmq@S6n>@CxYg@aNEaIzfSDbJA z%{2EW*!hh-{%bWc{WnuWn`q#?5s_BLgPyaQscrNXXgVu4pfhw&``JRU#D%cJ0Ti~@qHrnZn3T5mx_XFyYKc&(FW(=^s&yfs$g4TLf!UkxA83`Wx-M&G2PaQ z;H=P-yYXuYRVUAUAI;cny9xw}nCh7sh1$2*S|%J0+SrUJ*i?XbcwgcbThbQJEj+up z%b#-2HW{EcBWW-F>e2{V)S;2>#m8JKt6O~?QzEY35?WFFyOW~=7L-om%2})u&MF-v zoS8VHv*V{2f}gz8;NqJ;_#%uTsM{n8V7#r#&9VuEDHld>*cOAdFulnOk@2*tkH+aQ ztcrV4E~NVIc_Es9UGiubpYeogWs3E*&Dnfcv96B4XJEBxdw0KqdD6;_bKkq1&og=# zk~t9PSK7^1t(yU6TF`7RSN3X|fT^nQYrPw{SEiHJ@A-~=vk@4(*!0r(`=Ec78$u9{ zNo>U0MSrssb$!I!^Dw#nDr#7>jJIAde5YXYz+}pGY5eHBSS%MnID{p%YI~}tm*$)z zr|TVMf@6Q6MswrlIgJs-fX5_@D5%#W|HOc8=jBjhUlJngq?q;Q1|+5b+mB%$Dt9AB zrV^MW4P&LM!Nx?dP&6FXHOk!60u#`3@5p-Qt2U8GZ=Dl)RH#Kn6dzv(CPy*v`RH`x z`p+IaWdrXZfLW8rgv8u+$z#OY?L@7Pd3xhTkSV-H*F@2YFrVlh%3RL&&s@Lmgfr^} z(E^{<(%dIZ@tX|!4d5XB*r*NhK90i)wo)*>dwWi$e7;2FPA^WFWK5AS3X~GDwzKIm z!}_>9>)UWRlh#u2HOYR5wIZw?M{IvQZ5XN%#&PPgbO_XD6&4#RPkH-F?rpG7{2|rQ zha<1neJviGacj(V)s}n(*j+p1gO^_l!vR}B?L4l|iQK^5*&uJjwx7`#!7Z5Fk!Coa znVdbLDdk@B#jVM%Cz4Z;Rmw@uSv@flrq4( zpTy7&9~62WTrOD|H6*iUz|j>Q?g3qQ-7`;nPczCFVCg$8w_R9Sue+`WC2&d4Vd`K* z454<)84|X;iEZ?1_1?td$U@}>KX0pae~k|FA?bBU9GJsjF2PbM7@1a57q^%t-rbhZ zd0PK-Xd|m0#CWmIk%)?~2z`<_9cY44QjO4ZPaip?2J&N{fg5J$z+)EaV0BmJr88` zi}6hned|{6nucYZ3&H1<&Vt>X6sfT2B92%nu47j@olIp#wObPrrx@e*(x-$%23byU zH=%ZVJ`(v`)rd7aHcU9|D$Rc^@nm*z5D~+(&;2mmB|Yr)Gg7V}gy-$TW?-nE(zW6E zEq}(+bVZKeXsyKbj*~YymJcl4c0(u3l?#Cuyd0VgI~*vA5=(F*@*F~94n_;s$*;=; z)P3Jz=*Xf&Bs0MTtp+|ji7&G%NN+8f^>Y2(rF6$7B^enKY*`WxF-c)0fa1MOD+5prY zeIng|*4f@6@l$}7wNbZ@)UK@=8~e>iBVI>h2Y~>2QMeT-Sfn#)Xy_gJ?k6F4=d!&nJHIsg zI*mAfmB66zTz1Q7h4pjLsbT~>^QVW!_`Z^d7J9ewB6(Zxz`qb8Fx)y=zpja4&=ExB z=kni7s!mUrYBis!ptjYF??TT4yzNj1w+Qd#VI3e3kis{`68y-kwRn~1-4NUXPfD-? z^ezPMQA+aE)g0snZ)E|BuQU2IB-x5Z-ydf^6&`g{`mBlhOO%A7n86*aFT%fS|7L<= zD3(TK(+#~T)&k)HmEcd4KX+c9t&N#Ja-!W*6)6+-auA=p%itNIrv#hPQ_NQ#s|J8o zOFa9TZ&Ir8QV6kt(NX=IDOcI=H_+n*mVgj~+!a z$3v2?I!iSrf7&7Bene!k!S6fpdUu!2lS3=QFAs?QUXGbyAE7#;s+!Pg|3?5 z4I5q}F;eQFXRWurelwl5{9~?g72p>kz%QPeH0ctmSTI}88QGu!b}O<9gra*u!kN@# z>ApbQbqtZwI)EWXa}p@D#si3*u~8q7^*XhfS(E9zhs3DQiHwrpkuUgA_u2`MpA(02 z8vx=t>)%ZCz-!0(oosA;nM|zu@K9&^Yvo@Q-5LfytoY>bc7kay;j{XlrwkAuTT7aB zC6(uHxgJZVnwXUGDzPVL2JVXgKN(;G-)Q@~n1{(9eUP=~G1fklb>krh0epb{MV*3h zI&*~{y%LBvK+f<6Op>bwSiPhfJY#eODStb11mP~bxMG*=5UN-dFuL=<_9W}=xklw= z3L@+@XS$_$UR*Ox2|nN%mqGnzvM=CuOiRNPoI~wM;^Z@M6W_{qgHw9x&}1K0tZY3;qirmyCLa?jOnAzE)#a*W-O_X}VMOh498iK4TI^d8Dog zEIDGMfGE`grr;Elb?#4S1&@d5&DfSz0neiE7J=+k$Ce78{ntOy(uE+_hc#d;J|LP< z`-2Pililn-4ab&FnK9_>=h$Nw{L)RtRXF-nC_oMe@2UeTV@;m{0<@7=i)P#?u(5yd z*GA}T7OtmVYl4K`8)X3OC8j{KAU}2pdKJ+rfafbbyKhx5Dg3!F*_^@U1p@D})spFG zzz{Zq7YIfEzx%4UAGbT^XWOBFEQ1NWqc#kOy7nUi91XDNXn@`*Oh1I<{xfs$wGb{|!bJIxFSuvC2?0{$K^xyF#z=E4>{tVbL8@}b> z`M(T8ZU5yC>zqq=oe3?g`T@97-r+ZsChz>w3LKrIE?>06Ke`jXL;aJ!n+&wtezvLO zt+h;Fpby<{6R6rLn&zN7wi7I5XlhOk@H`v%e~G@q+Z86IzugnKnCu=PCbjK|irE&> zS5l&@-ESv6Y#{C=gO_^d88j5d@=-<@b;J<*X><+f=yu6>ThyGeCv5HXV<3`nw3;J) z1w9Qu?1rP8>Z%2b2eS&WK>i|}0LXmnWAdx$|91;38pyHrwhTsvA26{AUKJ1dHyocF zq?x~Bm#7~KcGP7{YTSjtY$x2$5vc?$6#butP0C)ns*jVNpDh^p10cRY6({wop!od_wLhu+CyQngG|Kb|ywpB7{Z+0LcUY`BfS8S@ zf1I!4Sab?K1E2nbSWt>LhM&sT-o6VU0#eB_%Tq_w^-se0f}#&-UP`=^2Ydgam%!+W zh$ikoZ(2*N+!GU(^3|FEL{B6dar0{s%*m`P+dSXKvLV6b+z% ztbz$5)mvm~;Hb`jNa;fpuM5IXegTtv0aq5(h`v9p;%>|WA}$UnKmGxG!tpEf=OGlmoyP8OU=x}D#quQ{@xT__&}iudq~Ti_ zPK>ni-%wBlM{BsH!#?(a&yHz(cq?*QrV=0;3T(aSwLBS%&T z@1ySmMD9GJVF`FdmH%R<{H~h#2UT@D0)j!|ZlA1r9Ra2;z@uJ?JzJNYpCb6`$pd46 z--WN}NqQIj=zH0V^(r}9rPd!AKan|V<5}B!!jDxnS6(7}6x-7HF}voBW1bS%f}V;l zQv~H~#o6-jJC-{;ITa0J=J@x+p2`L0S literal 0 HcmV?d00001 diff --git a/bsp/stm32/stm32f103-atk-warshipv3/project.ewd b/bsp/stm32/stm32f103-atk-warshipv3/project.ewd new file mode 100644 index 0000000000..5c652a809d --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/project.ewd @@ -0,0 +1,2834 @@ + + + 3 + + rt-thread + + ARM + + 1 + + C-SPY + 2 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\IARProbe\IarProbePlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\IARProbe\IarProbePlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/project.ewp b/bsp/stm32/stm32f103-atk-warshipv3/project.ewp new file mode 100644 index 0000000000..c60653bb3d --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/project.ewp @@ -0,0 +1,2252 @@ + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.c + + + $PROJ_DIR$\..\..\..\src\cpu.c + + + $PROJ_DIR$\..\..\..\src\device.c + + + $PROJ_DIR$\..\..\..\src\idle.c + + + $PROJ_DIR$\..\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\..\src\irq.c + + + $PROJ_DIR$\..\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\..\src\mem.c + + + $PROJ_DIR$\..\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\..\src\object.c + + + $PROJ_DIR$\..\..\..\src\scheduler.c + + + $PROJ_DIR$\..\..\..\src\signal.c + + + $PROJ_DIR$\..\..\..\src\thread.c + + + $PROJ_DIR$\..\..\..\src\timer.c + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + Drivers + + $PROJ_DIR$\board\board.c + + + $PROJ_DIR$\board\CubeMX_Config\Src\stm32f1xx_hal_msp.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\iar\startup_stm32f103xe.s + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c + + + + cpu + + $PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3\context_iar.S + + + + DeviceDrivers + + $PROJ_DIR$\..\..\..\components\drivers\misc\pin.c + + + $PROJ_DIR$\..\..\..\components\drivers\serial\serial.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\completion.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\dataqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\pipe.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\ringblk_buf.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\ringbuffer.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\waitqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\workqueue.c + + + + finsh + + $PROJ_DIR$\..\..\..\components\finsh\shell.c + + + $PROJ_DIR$\..\..\..\components\finsh\symbol.c + + + $PROJ_DIR$\..\..\..\components\finsh\cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh_cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh_file.c + + + + STM32_HAL + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_crc.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cec.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c + + + $PROJ_DIR$\..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_usart.c + + + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/project.eww b/bsp/stm32/stm32f103-atk-warshipv3/project.eww new file mode 100644 index 0000000000..c2cb02eb1e --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/stm32/stm32f103-atk-warshipv3/project.uvopt b/bsp/stm32/stm32f103-atk-warshipv3/project.uvopt new file mode 100644 index 0000000000..0f1aa20942 --- /dev/null +++ b/bsp/stm32/stm32f103-atk-warshipv3/project.uvopt @@ -0,0 +1,947 @@ + + + + 1.0 + +