From f9f0016f692e656a903a0b1732622d434cd8f748 Mon Sep 17 00:00:00 2001
From: wandering1 <1624155937@qq.com>
Date: Mon, 26 Jan 2026 15:48:15 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95key=20LCD=20rs485=E9=83=BD?=
=?UTF-8?q?=E6=AD=A3=E5=B8=B8=E8=BF=90=E8=A1=8C=EF=BC=8C=E4=BF=AE=E5=A4=8D?=
=?UTF-8?q?=E4=BA=86bug=EF=BC=8C=E4=BD=86=E6=98=AFDMA=E6=8E=A5=E6=94=B6?=
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E6=B2=A1=E6=9C=89=E8=A7=A3=E5=86=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Drivers/BSP/160160D/160160D.C | 34 +-
Drivers/BSP/KEY/key.c | 7 +-
Drivers/BSP/KEY/key.h | 22 +-
Drivers/BSP/RS485/rs485.c | 393 +++-
Drivers/BSP/RS485/rs485.h | 11 +-
Drivers/SYSTEM/delay/delay.c | 178 +-
Drivers/SYSTEM/sys/sys.c | 112 +-
Middlewares/Modbus/MODBUS.c | 37 +-
Middlewares/Modbus/MODBUS.h | 5 +-
Output/DTU.hex | 2265 +++++++++-----------
Projects/MDK-ARM/atk_f103.uvguix.wandering | 1950 +----------------
Projects/MDK-ARM/atk_f103.uvoptx | 38 +-
Projects/MDK-ARM/atk_f103.uvprojx | 4 +-
Users/main.c | 67 +-
14 files changed, 1600 insertions(+), 3523 deletions(-)
diff --git a/Drivers/BSP/160160D/160160D.C b/Drivers/BSP/160160D/160160D.C
index 637d240..39487b1 100644
--- a/Drivers/BSP/160160D/160160D.C
+++ b/Drivers/BSP/160160D/160160D.C
@@ -10,6 +10,7 @@
* 显示屏: 160x160像素
* 段地址: SEG112~SEG271
* 外部MPU晶振: 20MHz
+ * 切记不要在中断中操作屏幕,不然会打断屏幕的时许造成不可预测的问题!!!!!!!!!!!!!!!
******************************************************************************/
#include "160160D.h"
@@ -1144,10 +1145,14 @@ void Fault_Disp(void)
/**
- * @brief 显示按键运行状态指示
+ * @brief 显示按键运行状态指示,屏幕的左上方显示3个点
* @param Flag 状态标志:非0=显示运行指示,0=清除指示
* @note 在屏幕左上角(坐标0,0)显示按键运行状态
* 显示3个像素点表示运行状态
+ * *
+ * *
+ *
+ * *
* @retval 无
*/
void KeyRun_Disp(uint32_t Flag)
@@ -1171,9 +1176,16 @@ void KeyRun_Disp(uint32_t Flag)
/**
* @brief 全屏显示图像数据
* @param ptr 图像数据指针(160x160像素,每像素2位,共3200字节)
- * @note 将图像数据按4K色模式(2位/像素)写入整个屏幕
- * 图像数据格式:每字节包含4个像素点(bit7-6, bit5-4, bit3-2, bit1-0)
- * 每行160像素 = 40字节,共160行
+ * @note 将图像数据按4K色模式 写入整个屏幕
+ * 图像数据格式:每字节包含8个像素点
+ * 写入数据:| D7 D6 D5 D4 | D3 D2 D1 D0 |
+ * └ 第一个像素 ┘ └ 第二个像素 ┘
+ * 写入数据:| D7 D6 D5 D4 | D3 D2 D1 D0 |
+ * └ 第三个像素 ┘ └ 第四个像素 ┘
+ * 写入数据:| D7 D6 D5 D4 | D3 D2 D1 D0 |
+ * └ 第五个像素 ┘ └ 第六个像素 ┘
+ * 写入数据:| D7 D6 D5 D4 | D3 D2 D1 D0 |
+ * └ 第七个像素 ┘ └ 第八个像素 ┘
* @retval 无
*/
void ScreenPrintf(uint8_t* ptr)
@@ -1184,17 +1196,17 @@ void ScreenPrintf(uint8_t* ptr)
SetAddress(0, 0); /* 设置起始地址为屏幕左上角 */
- /* 循环显示160行 */
+ /* 循环显示 160 行 */
for(i = 0; i < 160; i++)
{
- /* 每行20个字节(每字节4个像素点,共80个像素点,但实际显示需要更多) */
+ /* 每行20个字节(每字节 8 个像素点,共 160 个像素点) */
for(j = 0; j < 20; j++)
{
- /* 将每字节的4个2位像素值转换为显示数据 */
- WriteData(disp_point[(ptr[i*20 + j] >> 6) & 0x03]); /* bit7-6 */
- WriteData(disp_point[(ptr[i*20 + j] >> 4) & 0x03]); /* bit5-4 */
- WriteData(disp_point[(ptr[i*20 + j] >> 2) & 0x03]); /* bit3-2 */
- WriteData(disp_point[(ptr[i*20 + j] >> 0) & 0x03]); /* bit1-0 */
+ /* 将每字节的 4 个 2 位像素值转换为显示数据 */
+ WriteData(disp_point[(ptr[i*20 + j] >> 6) & 0x03]); /* bit0-1 */
+ WriteData(disp_point[(ptr[i*20 + j] >> 4) & 0x03]); /* bit2-3 */
+ WriteData(disp_point[(ptr[i*20 + j] >> 2) & 0x03]); /* bit4-5 */
+ WriteData(disp_point[(ptr[i*20 + j] >> 0) & 0x03]); /* bit6-7 */
}
WriteData(0x00); /* 补全每行末尾的数据,使总点数能被3整除 */
}
diff --git a/Drivers/BSP/KEY/key.c b/Drivers/BSP/KEY/key.c
index befb7c9..3631218 100644
--- a/Drivers/BSP/KEY/key.c
+++ b/Drivers/BSP/KEY/key.c
@@ -14,7 +14,6 @@
******************************************************************************/
#include "key.h"
-#include "160160D.h"
/* ============================================================================
* 按键配置结构体定义
@@ -43,8 +42,7 @@ typedef struct {
* | KEY_LEFT | GPIOD | PD13 | KEY_LEFT | 左键 |
* | KEY_RIGHT | GPIOD | PD8 | KEY_RIGHT | 右键 |
* | KEY_ESC | GPIOB | PB15 | KEY_ESC | 取消键 |
- * | KEY_ADD | GPIOB | PB3 | KEY_ADD | 加键(需禁用 JTAG) |
- * | KEY_RESET | GPIOD | PD15 | KEY_RESET | 复位键 |
+ * | KEY_RESET | GPIOB | PB3 | KEY_ADD | 加键(需禁用 JTAG) |
* @note PB3 引脚默认被 JTAG 占用,需要禁用 JTAG 才能作为普通 GPIO 使用
*/
static const KeyConfig_t key_configs[] = {
@@ -54,8 +52,7 @@ static const KeyConfig_t key_configs[] = {
{GPIO_PIN_13, GPIOD, KEY_LEFT}, /**< 左键:PD13 */
{GPIO_PIN_8, GPIOD, KEY_RIGHT}, /**< 右键:PD8 */
{GPIO_PIN_15, GPIOB, KEY_ESC}, /**< 取消键:PB15 */
- {GPIO_PIN_3, GPIOB, KEY_ADD}, /**< 加键:PB3(需禁用 JTAG) */
- {GPIO_PIN_15, GPIOD, KEY_RESET}, /**< 复位键:PD15 */
+ {GPIO_PIN_3, GPIOB, KEY_RESET}, /**< 加键:PB3(需禁用 JTAG) */
};
#define KEY_COUNT (sizeof(key_configs) / sizeof(key_configs[0])) /**< 按键总数 */
diff --git a/Drivers/BSP/KEY/key.h b/Drivers/BSP/KEY/key.h
index aae80f1..6390148 100644
--- a/Drivers/BSP/KEY/key.h
+++ b/Drivers/BSP/KEY/key.h
@@ -28,17 +28,17 @@
*/
typedef enum
{
- KEY_NONE = 0, /**< 无按键按下 */
- KEY_ENTER, /**< 确认键 */
- KEY_UP, /**< 向上键 */
- KEY_DOWN, /**< 向下键 */
- KEY_ESC, /**< 取消键 */
- KEY_ADD, /**< 加键 */
- KEY_DEC, /**< 减键 */
- KEY_LEFT, /**< 向左键 */
- KEY_RIGHT, /**< 向右键 */
- KEY_RESET, /**< 复位键 */
- KEY_FACTORY, /**< 工厂模式键 */
+ KEY_NONE = 0, /**< 无按键按下 0*/
+ KEY_ENTER, /**< 确认键 1*/
+ KEY_UP, /**< 向上键 2*/
+ KEY_DOWN, /**< 向下键 3*/
+ KEY_ESC, /**< 取消键 4*/
+ KEY_ADD, /**< 加键 5*/
+ KEY_DEC, /**< 减键 6*/
+ KEY_LEFT, /**< 向左键 7*/
+ KEY_RIGHT, /**< 向右键 8*/
+ KEY_RESET, /**< 复位键 9*/
+ KEY_FACTORY, /**< 工厂模式键 10*/
} KEY_TYPE;
/* ============================================================================
diff --git a/Drivers/BSP/RS485/rs485.c b/Drivers/BSP/RS485/rs485.c
index 0c13331..d0473ef 100644
--- a/Drivers/BSP/RS485/rs485.c
+++ b/Drivers/BSP/RS485/rs485.c
@@ -12,6 +12,7 @@
******************************************************************************/
#include "rs485.h"
+#include "160160D.h"
/* ============================================================================
* USART 与引脚宏定义
@@ -37,7 +38,6 @@
#define RS485_RX_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOA_CLK_ENABLE(); }while(0)
#define BAUDRATE (700000) /**< 波特率 */
-
/* ============================================================================
* 全局变量定义
* ============================================================================ */
@@ -45,7 +45,6 @@ RS485_REGISTER_TYPE RS485REG = {RESET, {0}, {0}}; /**< RS485 收发寄存器,
UART_HandleTypeDef rs485_handle; /**< HAL UART 句柄 */
DMA_HandleTypeDef hdma_rs485_rx; /**< HAL DMA 接收句柄(DMA1 Channel6) */
-DMA_HandleTypeDef hdma_rs485_tx; /**< HAL DMA 发送句柄(未使用,保留) */
/* ============================================================================
* 初始化函数
@@ -65,61 +64,201 @@ DMA_HandleTypeDef hdma_rs485_tx; /**< HAL DMA 发送句柄(未使用,保留
*/
void RS485_DMA_init(void)
{
- /* 使能时钟 */
- RS485_TX_GPIO_CLK_ENABLE();
- RS485_RX_GPIO_CLK_ENABLE();
- RS485_ENABLE_GPIO_CLK_ENABLE();
- RS485_UX_CLK_ENABLE();
+ /* ========================================================================
+ * 第一步:使能相关外设时钟
+ * ========================================================================
+ * 在 STM32 中,所有外设在使用前必须先使能其时钟,以降低功耗。
+ * 这里需要使能:
+ * - GPIOA 时钟:用于 TX(PA2)、RX(PA3)、DE(PA1) 引脚
+ * - USART2 时钟:用于串口通信功能
+ * - DMA1 时钟:用于 DMA 数据传输功能(必须!)
+ */
+ RS485_TX_GPIO_CLK_ENABLE(); /* 使能 GPIOA 时钟(TX 引脚 PA2) */
+ RS485_RX_GPIO_CLK_ENABLE(); /* 使能 GPIOA 时钟(RX 引脚 PA3) */
+ RS485_ENABLE_GPIO_CLK_ENABLE(); /* 使能 GPIOA 时钟(DE 引脚 PA1) */
+ RS485_UX_CLK_ENABLE(); /* 使能 USART2 时钟 */
+ __HAL_RCC_DMA1_CLK_ENABLE(); /* 使能 DMA1 时钟(必须!否则 DMA 无法工作) */
- /* GPIO 初始化 */
- GPIO_InitTypeDef gpio_init_struct = {0};
- gpio_init_struct.Pin = RS485_TX_GPIO_PIN;
- gpio_init_struct.Mode = GPIO_MODE_AF_PP;
- gpio_init_struct.Pull = GPIO_PULLUP;
- gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;
+ /* ========================================================================
+ * 第二步:配置 GPIO 引脚功能
+ * ========================================================================
+ * RS485 需要三个 GPIO 引脚:
+ * 1. TX 引脚(PA2):发送数据,配置为复用推挽输出
+ * 2. RX 引脚(PA3):接收数据,配置为复用输入
+ * 3. DE 引脚(PA1):收发方向控制,配置为普通推挽输出
+ */
+ GPIO_InitTypeDef gpio_init_struct = {0}; /* 初始化 GPIO 配置结构体 */
+
+ /* 配置 TX 引脚(PA2)为复用推挽输出模式 */
+ gpio_init_struct.Pin = RS485_TX_GPIO_PIN; /* 选择 PA2 引脚 */
+ gpio_init_struct.Mode = GPIO_MODE_AF_PP; /* 复用推挽输出:USART2_TX 功能 */
+ gpio_init_struct.Pull = GPIO_PULLUP; /* 上拉:提高输出驱动能力,抗干扰 */
+ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH; /* 高速:支持高波特率通信 */
HAL_GPIO_Init(RS485_TX_GPIO_PORT, &gpio_init_struct);
- gpio_init_struct.Pin = RS485_RX_GPIO_PIN;
- gpio_init_struct.Mode = GPIO_MODE_AF_INPUT;
+ /* 配置 RX 引脚(PA3)为复用输入模式 */
+ gpio_init_struct.Pin = RS485_RX_GPIO_PIN; /* 选择 PA3 引脚 */
+ gpio_init_struct.Mode = GPIO_MODE_AF_INPUT; /* 复用输入:USART2_RX 功能 */
+ /* 注意:复用输入模式下,Pull 和 Speed 参数通常被忽略,但保持一致性 */
HAL_GPIO_Init(RS485_RX_GPIO_PORT, &gpio_init_struct);
- gpio_init_struct.Pin = RS485_ENABLE_GPIO_PIN;
- gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;
+ /* 配置 DE 引脚(PA1)为普通推挽输出模式 */
+ gpio_init_struct.Pin = RS485_ENABLE_GPIO_PIN; /* 选择 PA1 引脚 */
+ gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出:用于控制 RS485 收发方向 */
+ /* DE 引脚控制逻辑:
+ * - 低电平(RESET):使能发送模式,允许数据从 TX 发送到总线
+ * - 高电平(SET):使能接收模式,允许从总线接收数据到 RX
+ */
HAL_GPIO_Init(RS485_ENABLE_GPIO_PORT, &gpio_init_struct);
- /* DMA 接收配置 */
- hdma_rs485_rx.Instance = DMA1_Channel6;
- hdma_rs485_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
- hdma_rs485_rx.Init.PeriphInc = DMA_PINC_DISABLE;
- hdma_rs485_rx.Init.MemInc = DMA_MINC_ENABLE;
- hdma_rs485_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
- hdma_rs485_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
- hdma_rs485_rx.Init.Mode = DMA_NORMAL;
- hdma_rs485_rx.Init.Priority = DMA_PRIORITY_VERY_HIGH;
- HAL_DMA_Init(&hdma_rs485_rx);
+ /* ========================================================================
+ * 第三步:配置 DMA 接收通道
+ * ========================================================================
+ * DMA(Direct Memory Access)用于在 USART 接收数据时自动将数据从
+ * 外设寄存器传输到内存缓冲区,无需 CPU 干预,提高效率。
+ *
+ * STM32F103 中,USART2_RX 对应 DMA1_Channel6
+ *
+ * 时钟配置分析(系统时钟 72MHz):
+ * - AHB 时钟:72MHz(DMA 在 AHB 总线上)
+ * - APB1 时钟:36MHz(USART2 在 APB1 总线上)
+ * - 波特率:700000 bps
+ * - 每个字节时间:约 14.3 微秒(10 位:1 起始 + 8 数据 + 1 停止)
+ *
+ * DMA 传输速度要求:
+ * - DMA 需要从 APB1 外设(USART2)读取数据到 AHB 内存
+ * - 需要通过 AHB-APB1 桥,可能有 1-2 个时钟周期延迟
+ * - 理论上 DMA 时钟 72MHz 足够快,但总线仲裁可能导致延迟
+ *
+ * 溢出错误可能原因:
+ * 1. 总线竞争:CPU 访问 APB1 外设时与 DMA 竞争总线
+ * 2. AHB-APB1 桥延迟:DMA 访问 APB1 外设需要经过桥接器
+ * 3. DMA 优先级:虽然设置为最高,但总线仲裁是轮询的
+ * 4. 接收速度过快:3208 字节连续接收,DMA 可能来不及处理
+ */
+ hdma_rs485_rx.Instance = DMA1_Channel6; /* 使用 DMA1 通道 6 */
+ hdma_rs485_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; /* 传输方向:外设到内存 */
+ hdma_rs485_rx.Init.PeriphInc = DMA_PINC_DISABLE; /* 外设地址不递增:USART 数据寄存器地址固定 */
+ hdma_rs485_rx.Init.MemInc = DMA_MINC_ENABLE; /* 内存地址递增:数据依次存入缓冲区 */
+ hdma_rs485_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; /* 外设数据宽度:字节(8位) */
+ hdma_rs485_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; /* 内存数据宽度:字节(8位) */
+ hdma_rs485_rx.Init.Mode = DMA_NORMAL; /* 普通模式:传输完成后停止,需重新启动 */
+ hdma_rs485_rx.Init.Priority = DMA_PRIORITY_VERY_HIGH; /* 最高优先级:确保数据及时传输,避免丢失 */
+ HAL_DMA_Init(&hdma_rs485_rx); /* 初始化 DMA 通道 */
+ /* 将 DMA 句柄关联到 UART 句柄,使 HAL 库能够自动管理 DMA 传输 */
__HAL_LINKDMA(&rs485_handle, hdmarx, hdma_rs485_rx);
- HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn);
- HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0);
+ /* 使能 DMA 中断,用于接收完成等事件的通知 */
+ HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn); /* 使能 DMA1_Channel6 中断 */
+ HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0); /* 设置中断优先级为最高(0,0) */
- /* UART 初始化 */
- rs485_handle.Instance = RS485_UX;
- rs485_handle.Init.BaudRate = BAUDRATE;
- rs485_handle.Init.WordLength = UART_WORDLENGTH_8B;
- rs485_handle.Init.StopBits = UART_STOPBITS_1;
- rs485_handle.Init.Parity = UART_PARITY_NONE;
- rs485_handle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
- rs485_handle.Init.Mode = UART_MODE_TX_RX;
- rs485_handle.Init.OverSampling = UART_OVERSAMPLING_16;
- HAL_UART_Init(&rs485_handle);
+ /* ========================================================================
+ * 第四步:配置 UART 串口参数
+ * ========================================================================
+ * 配置 USART2 的通信参数,包括波特率、数据位、停止位、校验位等
+ */
+ rs485_handle.Instance = RS485_UX; /* 使用 USART2 */
+ rs485_handle.Init.BaudRate = BAUDRATE; /* 波特率:700000 bps(高速通信) */
+ rs485_handle.Init.WordLength = UART_WORDLENGTH_8B; /* 数据位:8 位 */
+ rs485_handle.Init.StopBits = UART_STOPBITS_1; /* 停止位:1 位 */
+ rs485_handle.Init.Parity = UART_PARITY_NONE; /* 校验位:无校验 */
+ rs485_handle.Init.HwFlowCtl = UART_HWCONTROL_NONE; /* 硬件流控:无(RS485 不需要 RTS/CTS) */
+ rs485_handle.Init.Mode = UART_MODE_TX_RX; /* 工作模式:同时支持发送和接收 */
+ rs485_handle.Init.OverSampling = UART_OVERSAMPLING_16; /* 过采样:16 倍(STM32F103 仅支持 16 倍过采样) */
+ HAL_UART_Init(&rs485_handle); /* 初始化 UART,应用上述配置 */
- HAL_NVIC_EnableIRQ(RS485_UX_IRQn);
- HAL_NVIC_SetPriority(RS485_UX_IRQn, 1, 0);
+ /* 手动精确设置 BRR 寄存器以获得准确的 700000 波特率
+ * 计算:PCLK1 = 36MHz, 16倍过采样
+ * USARTDIV = 36000000 / (16 * 700000) = 3.2142857...
+ * BRR = (整数部分 << 4) | 小数部分
+ */
- /* 启动 DMA 接收 */
- RS485_RECEIVE_ENABLE();
- HAL_UARTEx_ReceiveToIdle_DMA(&rs485_handle, (uint8_t *)RS485REG.DR, UART_RX_LEN);
+ /* 使能 USART2 中断,用于处理接收完成、错误等事件 */
+ HAL_NVIC_EnableIRQ(RS485_UX_IRQn); /* 使能 USART2 中断 */
+ HAL_NVIC_SetPriority(RS485_UX_IRQn, 1, 0); /* 设置中断优先级为 1(低于 DMA 中断) */
+
+ /* ========================================================================
+ * 第五步:启动 DMA 接收
+ * ========================================================================
+ * 将 RS485 切换到接收模式,并启动 ReceiveToIdle DMA 接收
+ *
+ * ReceiveToIdle 模式特点:
+ * - 当检测到总线空闲(IDLE)时,自动触发接收完成回调
+ * - 适用于接收不定长数据帧(如 Modbus 协议)
+ * - 无需预先知道数据长度,总线空闲即表示一帧数据接收完成
+ */
+ RS485_RECEIVE_ENABLE(); /* DE 引脚置高,切换到接收模式 */
+// HAL_UARTEx_ReceiveToIdle_DMA(&rs485_handle, /* UART 句柄 */
+// (uint8_t *)RS485REG.DR, /* 接收缓冲区:RS485REG.DR(3208 字节) */
+// UART_RX_LEN); /* 最大接收长度:3208 字节 */
+ HAL_UARTEx_ReceiveToIdle_IT(&rs485_handle, /* UART 句柄 */
+ (uint8_t *)RS485REG.DR, /* 接收缓冲区:RS485REG.DR(3208 字节) */
+ UART_RX_LEN); /* 最大接收长度:3208 字节 */
+ /* 注意:接收完成后,会在 HAL_UARTEx_RxEventCallback 回调函数中
+ * 自动重新启动接收,实现连续接收 */
+}
+
+/**
+ * @brief RS485 反初始化(DMA 接收模式)
+ * @note 按照与初始化相反的顺序清理资源:
+ * 1. 停止 DMA 接收
+ * 2. 禁用中断
+ * 3. 反初始化 DMA
+ * 4. 反初始化 UART
+ * 5. 反初始化 GPIO(可选)
+ * 注意:时钟通常不禁用,因为可能被其他外设使用
+ * @retval 无
+ */
+void RS485_DMA_DeInit(void)
+{
+ /* ========================================================================
+ * 第一步:停止 DMA 接收
+ * ========================================================================
+ * 必须先停止正在进行的 DMA 传输,避免数据损坏
+ */
+ HAL_UART_DMAStop(&rs485_handle); /* 停止 UART DMA 接收 */
+
+ /* ========================================================================
+ * 第二步:禁用中断
+ * ========================================================================
+ * 禁用 USART2 和 DMA1_Channel6 的中断,避免在反初始化过程中触发中断
+ */
+ HAL_NVIC_DisableIRQ(RS485_UX_IRQn); /* 禁用 USART2 中断 */
+ HAL_NVIC_DisableIRQ(DMA1_Channel6_IRQn); /* 禁用 DMA1_Channel6 中断 */
+
+ /* ========================================================================
+ * 第三步:反初始化 DMA
+ * ========================================================================
+ * 断开 DMA 与 UART 的关联,然后反初始化 DMA 通道
+ * 注意:HAL 库没有提供 __HAL_UNLINK_DMA 宏,需要手动将指针设为 NULL
+ */
+ rs485_handle.hdmarx = NULL; /* 断开 DMA 与 UART 的关联 */
+ HAL_DMA_DeInit(&hdma_rs485_rx); /* 反初始化 DMA 通道 */
+
+ /* ========================================================================
+ * 第四步:反初始化 UART
+ * ========================================================================
+ * 反初始化 USART2,这会调用 HAL_UART_MspDeInit 来清理底层硬件
+ */
+ HAL_UART_DeInit(&rs485_handle); /* 反初始化 UART */
+
+ /* ========================================================================
+ * 第五步:反初始化 GPIO(可选)
+ * ========================================================================
+ * 将 GPIO 引脚恢复为默认状态(模拟输入,高阻态)
+ * 注意:如果这些引脚可能被其他外设使用,可以跳过此步骤
+ */
+ HAL_GPIO_DeInit(RS485_TX_GPIO_PORT, RS485_TX_GPIO_PIN); /* 反初始化 TX 引脚(PA2) */
+ HAL_GPIO_DeInit(RS485_RX_GPIO_PORT, RS485_RX_GPIO_PIN); /* 反初始化 RX 引脚(PA3) */
+ HAL_GPIO_DeInit(RS485_ENABLE_GPIO_PORT, RS485_ENABLE_GPIO_PIN); /* 反初始化 DE 引脚(PA1) */
+
+ /* 注意:时钟通常不禁用,因为:
+ * - GPIOA 时钟可能被其他外设使用
+ * - USART2 时钟可能被其他功能使用
+ * - DMA1 时钟可能被其他 DMA 通道使用
+ * 如果需要完全禁用时钟以节省功耗,可以在确认没有其他外设使用时禁用
+ */
}
/**
@@ -127,46 +266,96 @@ void RS485_DMA_init(void)
* @note 配置 GPIO、UART,使能 RXNE 中断。不启用 DMA。
* 用于错误恢复或接收短帧。USART 时钟源需已配置。
* @retval 无
+ *
+ * @details 中断接收模式与 DMA 模式的区别:
+ * - 中断模式:每接收一个字节触发一次中断,CPU 需要逐字节处理
+ * - DMA 模式:自动将数据从 USART 传输到内存,CPU 负担小
+ * 中断模式适用于:
+ * - DMA 故障时的错误恢复
+ * - 接收短帧(数据量小,中断开销可接受)
+ * - 调试和测试场景
*/
void RS485_init(void)
{
- /* 开启时钟 */
- RS485_TX_GPIO_CLK_ENABLE(); /* 使能串口TX脚时钟 */
- RS485_RX_GPIO_CLK_ENABLE(); /* 使能串口RX脚时钟 */
- RS485_ENABLE_GPIO_CLK_ENABLE(); /* 使能串口RX脚时钟 */
- RS485_UX_CLK_ENABLE(); /* 使能串口时钟 */
+ /* ========================================================================
+ * 第一步:使能相关外设时钟
+ * ========================================================================
+ * 与 DMA 模式相同,需要使能 GPIOA 和 USART2 的时钟
+ */
+ RS485_TX_GPIO_CLK_ENABLE(); /* 使能 GPIOA 时钟(TX 引脚 PA2) */
+ RS485_RX_GPIO_CLK_ENABLE(); /* 使能 GPIOA 时钟(RX 引脚 PA3) */
+ RS485_ENABLE_GPIO_CLK_ENABLE(); /* 使能 GPIOA 时钟(DE 引脚 PA1) */
+ RS485_UX_CLK_ENABLE(); /* 使能 USART2 时钟 */
- /* GPIO 初始化 */
- GPIO_InitTypeDef gpio_init_struct = {0};
- gpio_init_struct.Pin = RS485_TX_GPIO_PIN;
- gpio_init_struct.Mode = GPIO_MODE_AF_PP;
- gpio_init_struct.Pull = GPIO_PULLUP;
- gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;
+ /* ========================================================================
+ * 第二步:配置 GPIO 引脚功能
+ * ========================================================================
+ * GPIO 配置与 DMA 模式完全相同:
+ * - TX(PA2):复用推挽输出,用于发送数据
+ * - RX(PA3):复用输入,用于接收数据
+ * - DE(PA1):普通推挽输出,用于控制收发方向
+ */
+ GPIO_InitTypeDef gpio_init_struct = {0}; /* 初始化 GPIO 配置结构体 */
+
+ /* 配置 TX 引脚(PA2)为复用推挽输出模式 */
+ gpio_init_struct.Pin = RS485_TX_GPIO_PIN; /* 选择 PA2 引脚 */
+ gpio_init_struct.Mode = GPIO_MODE_AF_PP; /* 复用推挽输出:USART2_TX 功能 */
+ gpio_init_struct.Pull = GPIO_PULLUP; /* 上拉:提高输出驱动能力 */
+ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH; /* 高速:支持高波特率 */
HAL_GPIO_Init(RS485_TX_GPIO_PORT, &gpio_init_struct);
- gpio_init_struct.Pin = RS485_RX_GPIO_PIN;
- gpio_init_struct.Mode = GPIO_MODE_AF_INPUT;
+ /* 配置 RX 引脚(PA3)为复用输入模式 */
+ gpio_init_struct.Pin = RS485_RX_GPIO_PIN; /* 选择 PA3 引脚 */
+ gpio_init_struct.Mode = GPIO_MODE_AF_INPUT; /* 复用输入:USART2_RX 功能 */
HAL_GPIO_Init(RS485_RX_GPIO_PORT, &gpio_init_struct);
- gpio_init_struct.Pin = RS485_ENABLE_GPIO_PIN;
- gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;
+ /* 配置 DE 引脚(PA1)为普通推挽输出模式 */
+ gpio_init_struct.Pin = RS485_ENABLE_GPIO_PIN; /* 选择 PA1 引脚 */
+ gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出:控制 RS485 收发方向 */
HAL_GPIO_Init(RS485_ENABLE_GPIO_PORT, &gpio_init_struct);
- /* UART 初始化 */
- rs485_handle.Instance = RS485_UX;
- rs485_handle.Init.BaudRate = BAUDRATE;
- rs485_handle.Init.WordLength = UART_WORDLENGTH_8B;
- rs485_handle.Init.StopBits = UART_STOPBITS_1;
- rs485_handle.Init.Parity = UART_PARITY_NONE;
- rs485_handle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
- rs485_handle.Init.Mode = UART_MODE_TX_RX;
- rs485_handle.Init.OverSampling = UART_OVERSAMPLING_16;
- HAL_UART_Init(&rs485_handle);
+ /* ========================================================================
+ * 第三步:配置 UART 串口参数
+ * ========================================================================
+ * UART 参数配置与 DMA 模式完全相同:
+ * - 波特率:700000 bps
+ * - 数据格式:8 位数据位,1 位停止位,无校验位
+ * - 无硬件流控
+ * - 16 倍过采样
+ */
+ rs485_handle.Instance = RS485_UX; /* 使用 USART2 */
+ rs485_handle.Init.BaudRate = BAUDRATE; /* 波特率:700000 bps */
+ rs485_handle.Init.WordLength = UART_WORDLENGTH_8B; /* 数据位:8 位 */
+ rs485_handle.Init.StopBits = UART_STOPBITS_1; /* 停止位:1 位 */
+ rs485_handle.Init.Parity = UART_PARITY_NONE; /* 校验位:无校验 */
+ rs485_handle.Init.HwFlowCtl = UART_HWCONTROL_NONE; /* 硬件流控:无 */
+ rs485_handle.Init.Mode = UART_MODE_TX_RX; /* 工作模式:发送和接收 */
+ rs485_handle.Init.OverSampling = UART_OVERSAMPLING_16; /* 过采样:16 倍 */
+ HAL_UART_Init(&rs485_handle); /* 初始化 UART */
- __HAL_UART_ENABLE_IT(&rs485_handle, UART_IT_RXNE);
- HAL_NVIC_EnableIRQ(RS485_UX_IRQn);
- HAL_NVIC_SetPriority(RS485_UX_IRQn, 1, 0);
- RS485_RECEIVE_ENABLE();
+ /* ========================================================================
+ * 第四步:使能接收中断(RXNE)
+ * ========================================================================
+ * RXNE(Receive Not Empty)中断:
+ * - 当 USART 接收数据寄存器(RDR)中有新数据时触发
+ * - 每接收一个字节触发一次中断
+ * - 在中断服务函数中需要手动读取数据并存入缓冲区
+ *
+ * 注意:此模式不使用 DMA,需要 CPU 在中断中逐字节处理数据
+ */
+ __HAL_UART_ENABLE_IT(&rs485_handle, UART_IT_RXNE); /* 使能 RXNE(接收数据寄存器非空)中断 */
+ HAL_NVIC_EnableIRQ(RS485_UX_IRQn); /* 使能 USART2 中断 */
+ HAL_NVIC_SetPriority(RS485_UX_IRQn, 1, 0); /* 设置中断优先级为 1 */
+
+ /* ========================================================================
+ * 第五步:切换到接收模式
+ * ========================================================================
+ * 将 DE 引脚置高,使 RS485 处于接收状态,准备接收数据
+ */
+ RS485_RECEIVE_ENABLE(); /* DE 引脚置高,切换到接收模式 */
+
+ /* 注意:中断模式下,需要在 USART2_IRQHandler 中断服务函数中
+ * 手动调用 HAL_UART_IRQHandler,并在回调函数中处理接收到的数据 */
}
/* ============================================================================
@@ -178,14 +367,70 @@ void RS485_init(void)
* @param huart UART 句柄
* @param Size 本帧接收到的字节数
* @note 当为 RS485 所用 UART 时:置位 NewMessageFlag,并重新启动 ReceiveToIdle DMA。
+ *
+ * @details HAL 库在调用此回调前已经完成以下操作:
+ * - DMA 状态已设置为 READY(在 DMA IRQ 处理中)
+ * - UART 状态已设置为 READY(在 UART_DMAReceiveCplt 中)
+ * - DMA 请求已禁用(清除 DMAR 位)
+ * - 相关中断已禁用
+ * 因此可以直接调用 HAL_UARTEx_ReceiveToIdle_DMA 重新启动接收。
+ *
+ * @warning 重要:当接收数据长度 = 缓冲区大小(3208字节)时:
+ * - DMA 传输完成中断触发,而不是 IDLE 中断
+ * - 如果发生溢出错误(ORE),HAL 库会中止 DMA 并重置 ReceptionType 为 STANDARD
+ * - 这会导致回调函数不会被调用
+ * - 解决方案:添加错误回调函数来处理这种情况
+ *
* @retval 无
*/
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
if (huart->Instance == RS485_UX)
{
+ /* 调试信息:显示接收到的字节数 */
+// HZ12AndChar_Printf(0,32, (uint8_t*)"RxEvent:", RESET);
+// IntValue_Printf(32,32, Size, RESET);
+
+ /* 设置新消息标志,通知主程序处理数据 */
RS485REG.NewMessageFlag = SET;
- HAL_UARTEx_ReceiveToIdle_DMA(&rs485_handle, (uint8_t *)RS485REG.DR, UART_RX_LEN);
+
+ /* 重新启动 IT 接收*/
+ HAL_UARTEx_ReceiveToIdle_IT(&rs485_handle, /* UART 句柄 */
+ (uint8_t *)RS485REG.DR, /* 接收缓冲区:RS485REG.DR(3208 字节) */
+ UART_RX_LEN); /* 最大接收长度:3208 字节 */
+ }
+}
+
+/**
+ * @brief UART 错误回调函数
+ * @param huart UART 句柄
+ * @note 当发生 UART 错误(如溢出、帧错误等)时,HAL 库会调用此函数
+ *
+ * @details 重要:当接收3208字节时,如果发生溢出错误(ORE),HAL 库会:
+ * 1. 中止 DMA 传输
+ * 2. 重置 ReceptionType 为 STANDARD
+ * 3. 调用错误回调函数(而不是 RxEventCallback)
+ * 因此,需要在错误回调中处理这种情况,并重新启动接收
+ *
+ * @details 错误代码说明:
+ * - HAL_UART_ERROR_NONE (0x00): 无错误
+ * - HAL_UART_ERROR_PE (0x01): 奇偶校验错误
+ * - HAL_UART_ERROR_NE (0x02): 噪声错误(信号干扰、波特率不匹配等)
+ * - HAL_UART_ERROR_FE (0x04): 帧错误(停止位检测失败)
+ * - HAL_UART_ERROR_ORE (0x08): 溢出错误(数据接收过快,DMA 来不及处理)
+ * - HAL_UART_ERROR_DMA (0x10): DMA 传输错误
+ *
+ * @retval 无
+ */
+void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
+{
+ if (huart->Instance == RS485_UX)
+ {
+// /* 调试信息:显示错误代码 */
+// HZ12AndChar_Printf(0,64, (uint8_t*)"Error:", RESET);
+// IntValue_Printf(32,64, huart->ErrorCode, RESET);
+
+ //HAL_UARTEx_ReceiveToIdle_DMA(&rs485_handle, (uint8_t *)RS485REG.DR, UART_RX_LEN);
}
}
diff --git a/Drivers/BSP/RS485/rs485.h b/Drivers/BSP/RS485/rs485.h
index 7edecc7..03b4563 100644
--- a/Drivers/BSP/RS485/rs485.h
+++ b/Drivers/BSP/RS485/rs485.h
@@ -20,7 +20,7 @@
/* ============================================================================
* 宏定义
* ============================================================================ */
-#define UART_RX_LEN (3208) /**< 接收缓冲区长度(字节),与 Modbus 数据帧长度一致 */
+#define UART_RX_LEN (4208) /**< 接收缓冲区长度(字节),与 Modbus 数据帧长度一致 */
#define UART_TX_LEN (8) /**< 发送缓冲区长度(字节) */
/* ============================================================================
@@ -39,7 +39,7 @@ typedef struct
} RS485_REGISTER_TYPE;
extern RS485_REGISTER_TYPE RS485REG; /**< 全局 RS485 收发寄存器 */
-
+extern UART_HandleTypeDef rs485_handle;
/* ============================================================================
* 函数声明
* ============================================================================ */
@@ -51,6 +51,13 @@ extern RS485_REGISTER_TYPE RS485REG; /**< 全局 RS485 收发寄存器 */
*/
void RS485_DMA_init(void);
+/**
+ * @brief RS485 反初始化(DMA 接收模式)
+ * @note 按照与初始化相反的顺序清理资源:停止 DMA、禁用中断、反初始化 DMA/UART/GPIO。
+ * @retval 无
+ */
+void RS485_DMA_DeInit(void);
+
/**
* @brief RS485 初始化(中断接收模式)
* @note 配置 GPIO、UART,使能 RXNE 中断接收。用于异常恢复或短帧接收。
diff --git a/Drivers/SYSTEM/delay/delay.c b/Drivers/SYSTEM/delay/delay.c
index 99f19ff..7cbefa1 100644
--- a/Drivers/SYSTEM/delay/delay.c
+++ b/Drivers/SYSTEM/delay/delay.c
@@ -1,29 +1,29 @@
/**
****************************************************************************************************
* @file delay.c
- * @author ԭŶ(ALIENTEK)
+ * @author 正点原子团队(ALIENTEK)
* @version V1.1
* @date 2023-02-25
- * @brief ʹSysTickͨģʽӳٽй(֧ucosii)
- * ṩdelay_initʼ delay_usdelay_msʱ
- * @license Copyright (c) 2022-2032, ӿƼ˾
+ * @brief 使用SysTick的普通计数模式对延迟进行管理(支持ucosii)
+ * 提供delay_init初始化函数, delay_us和delay_ms等延时函数
+ * @license Copyright (c) 2022-2032, 广州市星翼电子科技有限公司
****************************************************************************************************
* @attention
*
- * ʵƽ̨:ԭ STM32F103
- * Ƶ:www.yuanzige.com
- * ̳:www.openedv.com
- * ˾ַ:www.alientek.com
- * ַ:openedv.taobao.com
+ * 实验平台:正点原子 STM32F103开发板
+ * 在线视频:www.yuanzige.com
+ * 技术论坛:www.openedv.com
+ * 公司网址:www.alientek.com
+ * 购买地址:openedv.taobao.com
*
- * ˵
+ * 修改说明
* V1.0 20230206
- * һη
+ * 第一次发布
* V1.1 20230225
- * SYS_SUPPORT_OSִ, ĬϽ֧UCOSII 2.93.01汾, OSοʵ
- * delay_initʹ8Ƶ,ȫͳһʹMCUʱ
- * delay_usʹʱժȡʱ, OS
- * delay_msֱʹdelay_usʱʵ.
+ * 修改SYS_SUPPORT_OS部分代码, 默认仅支持UCOSII 2.93.01版本, 其他OS请参考实现
+ * 修改delay_init不再使用8分频,全部统一使用MCU时钟
+ * 修改delay_us使用时钟摘取法延时, 兼容OS
+ * 修改delay_ms直接使用delay_us延时实现.
*
****************************************************************************************************
*/
@@ -32,78 +32,78 @@
#include "./SYSTEM/delay/delay.h"
-static uint32_t g_fac_us = 0; /* usʱ */
+static uint32_t g_fac_us = 0; /* us延时倍乘数 */
-/* SYS_SUPPORT_OS,˵Ҫ֧OS(UCOS) */
+/* 如果SYS_SUPPORT_OS定义了,说明要支持OS了(不限于UCOS) */
#if SYS_SUPPORT_OS
-/* ӹͷļ ( ucosҪõ) */
+/* 添加公共头文件 ( ucos需要用到) */
#include "os.h"
-/* g_fac_ms, ʾmsʱı, ÿĵms, (ʹosʱ,Ҫõ) */
+/* 定义g_fac_ms变量, 表示ms延时的倍乘数, 代表每个节拍的ms数, (仅在使能os的时候,需要用到) */
static uint16_t g_fac_ms = 0;
/*
- * delay_us/delay_msҪ֧OSʱҪOSصĺ궨ͺ֧
- * 3궨:
- * delay_osrunning :ڱʾOSǰǷ,ԾǷʹغ
- * delay_ostickspersec:ڱʾOS趨ʱӽ,delay_initʼsystick
- * delay_osintnesting :ڱʾOSжǶ,Ϊж治Ե,delay_msʹøò
- * Ȼ3:
- * delay_osschedlock :OS,ֹ
- * delay_osschedunlock:ڽOS,¿
- * delay_ostimedly :OSʱ,.
+ * 当delay_us/delay_ms需要支持OS的时候需要三个与OS相关的宏定义和函数来支持
+ * 首先是3个宏定义:
+ * delay_osrunning :用于表示OS当前是否正在运行,以决定是否可以使用相关函数
+ * delay_ostickspersec:用于表示OS设定的时钟节拍,delay_init将根据这个参数来初始化systick
+ * delay_osintnesting :用于表示OS中断嵌套级别,因为中断里面不可以调度,delay_ms使用该参数来决定如何运行
+ * 然后是3个函数:
+ * delay_osschedlock :用于锁定OS任务调度,禁止调度
+ * delay_osschedunlock:用于解锁OS任务调度,重新开启调度
+ * delay_ostimedly :用于OS延时,可以引起任务调度.
*
- * ̽UCOSII֧,OS,вοֲ
+ * 本例程仅作UCOSII的支持,其他OS,请自行参考着移植
*/
-/* ֧UCOSII */
-#define delay_osrunning OSRunning /* OSǷб,0,;1, */
-#define delay_ostickspersec OS_TICKS_PER_SEC /* OSʱӽ,ÿȴ */
-#define delay_osintnesting OSIntNesting /* жǶ,жǶ״ */
+/* 支持UCOSII */
+#define delay_osrunning OSRunning /* OS是否运行标记,0,不运行;1,在运行 */
+#define delay_ostickspersec OS_TICKS_PER_SEC /* OS时钟节拍,即每秒调度次数 */
+#define delay_osintnesting OSIntNesting /* 中断嵌套级别,即中断嵌套次数 */
/**
- * @brief usʱʱ,ر(ֹusӳ)
- * @param
- * @retval
+ * @brief us级延时时,关闭任务调度(防止打断us级延迟)
+ * @param 无
+ * @retval 无
*/
void delay_osschedlock(void)
{
- OSSchedLock(); /* UCOSIIķʽ,ֹȣֹusʱ */
+ OSSchedLock(); /* UCOSII的方式,禁止调度,防止打断us延时 */
}
/**
- * @brief usʱʱ,ָ
- * @param
- * @retval
+ * @brief us级延时时,恢复任务调度
+ * @param 无
+ * @retval 无
*/
void delay_osschedunlock(void)
{
- OSSchedUnlock(); /* UCOSIIķʽ,ָ */
+ OSSchedUnlock(); /* UCOSII的方式,恢复调度 */
}
/**
- * @brief usʱʱ,ָ
- * @param ticks: ʱĽ
- * @retval
+ * @brief us级延时时,恢复任务调度
+ * @param ticks: 延时的节拍数
+ * @retval 无
*/
void delay_ostimedly(uint32_t ticks)
{
- OSTimeDly(ticks); /* UCOSIIʱ */
+ OSTimeDly(ticks); /* UCOSII延时 */
}
/**
- * @brief systickжϷ,ʹOSʱõ
- * @param ticks : ʱĽ
- * @retval
+ * @brief systick中断服务函数,使用OS时用到
+ * @param ticks : 延时的节拍数
+ * @retval 无
*/
void SysTick_Handler(void)
{
- /* OS ʼ,ִĵȴ */
+ /* OS 开始跑了,才执行正常的调度处理 */
if (delay_osrunning == OS_TRUE)
{
- /* uC/OS-II SysTick жϷ */
+ /* 调用 uC/OS-II 的 SysTick 中断服务函数 */
OS_CPU_SysTickHandler();
}
HAL_IncTick();
@@ -111,47 +111,47 @@ void SysTick_Handler(void)
#endif
/**
- * @brief ʼӳٺ
- * @param sysclk: ϵͳʱƵ, CPUƵ(rcc_c_ck), 72MHz
- * @retval
+ * @brief 初始化延迟函数
+ * @param sysclk: 系统时钟频率, 即CPU频率(rcc_c_ck), 72MHz
+ * @retval 无
*/
void delay_init(uint16_t sysclk)
{
-#if SYS_SUPPORT_OS /* Ҫ֧OS */
+#if SYS_SUPPORT_OS /* 如果需要支持OS */
uint32_t reload;
#endif
- g_fac_us = sysclk; /* HAL_InitѶsystickã */
-#if SYS_SUPPORT_OS /* Ҫ֧OS. */
- reload = sysclk; /* ÿӵļ λΪM */
- reload *= 1000000 / delay_ostickspersec; /* delay_ostickspersec趨ʱ,reloadΪ24λ
- * Ĵ,ֵ:16777216,72M,Լ0.233s
+ g_fac_us = sysclk; /* 由于在HAL_Init中已对systick做了配置,所以这里无需重新配置 */
+#if SYS_SUPPORT_OS /* 如果需要支持OS. */
+ reload = sysclk; /* 每秒钟的计数次数 单位为M */
+ reload *= 1000000 / delay_ostickspersec; /* 根据delay_ostickspersec设定溢出时间,reload为24位
+ * 寄存器,最大值:16777216,在72M下,约合0.233s左右
*/
- g_fac_ms = 1000 / delay_ostickspersec; /* OSʱٵλ */
- SysTick->CTRL |= 1 << 1; /* SYSTICKж */
- SysTick->LOAD = reload; /* ÿ1/delay_ostickspersecжһ */
- SysTick->CTRL |= 1 << 0; /* SYSTICK */
+ g_fac_ms = 1000 / delay_ostickspersec; /* 代表OS可以延时的最少单位 */
+ SysTick->CTRL |= 1 << 1; /* 开启SYSTICK中断 */
+ SysTick->LOAD = reload; /* 每1/delay_ostickspersec秒中断一次 */
+ SysTick->CTRL |= 1 << 0; /* 开启SYSTICK */
#endif
}
/**
- * @brief ʱnus
- * @note ǷʹOS, ʱժȡusʱ
- * @param nus: Ҫʱus
- * @note nusȡֵΧ: 0 ~ (2^32 / fac_us) (fac_usһϵͳƵ, )
- * @retval
+ * @brief 延时nus
+ * @note 无论是否使用OS, 都是用时钟摘取法来做us延时
+ * @param nus: 要延时的us数
+ * @note nus取值范围: 0 ~ (2^32 / fac_us) (fac_us一般等于系统主频, 自行套入计算)
+ * @retval 无
*/
void delay_us(uint32_t nus)
{
uint32_t ticks;
uint32_t told, tnow, tcnt = 0;
- uint32_t reload = SysTick->LOAD; /* LOADֵ */
- ticks = nus * g_fac_us; /* ҪĽ */
+ uint32_t reload = SysTick->LOAD; /* LOAD的值 */
+ ticks = nus * g_fac_us; /* 需要的节拍数 */
-#if SYS_SUPPORT_OS /* Ҫ֧OS */
- delay_osschedlock(); /* OS */
+#if SYS_SUPPORT_OS /* 如果需要支持OS */
+ delay_osschedlock(); /* 锁定 OS 的任务调度器 */
#endif
- told = SysTick->VAL; /* սʱļֵ */
+ told = SysTick->VAL; /* 刚进入时的计数器值 */
while (1)
{
tnow = SysTick->VAL;
@@ -159,7 +159,7 @@ void delay_us(uint32_t nus)
{
if (tnow < told)
{
- tcnt += told - tnow; /* עһSYSTICKһݼļͿ */
+ tcnt += told - tnow; /* 这里注意一下SYSTICK是一个递减的计数器就可以了 */
}
else
{
@@ -168,44 +168,44 @@ void delay_us(uint32_t nus)
told = tnow;
if (tcnt >= ticks)
{
- break; /* ʱ䳬/Ҫӳٵʱ,˳ */
+ break; /* 时间超过/等于要延迟的时间,则退出 */
}
}
}
-#if SYS_SUPPORT_OS /* Ҫ֧OS */
- delay_osschedunlock(); /* ָ OS */
+#if SYS_SUPPORT_OS /* 如果需要支持OS */
+ delay_osschedunlock(); /* 恢复 OS 的任务调度器 */
#endif
}
/**
- * @brief ʱnms
- * @param nms: Ҫʱms (0< nms <= (2^32 / fac_us / 1000))(fac_usһϵͳƵ, )
- * @retval
+ * @brief 延时nms
+ * @param nms: 要延时的ms数 (0< nms <= (2^32 / fac_us / 1000))(fac_us一般等于系统主频, 自行套入计算)
+ * @retval 无
*/
void delay_ms(uint16_t nms)
{
-#if SYS_SUPPORT_OS /* Ҫ֧OS, osʱͷCPU */
- if (delay_osrunning && delay_osintnesting == 0) /* OSѾ,Ҳж(ж治) */
+#if SYS_SUPPORT_OS /* 如果需要支持OS, 则根据情况调用os延时以释放CPU */
+ if (delay_osrunning && delay_osintnesting == 0) /* 如果OS已经在跑了,并且不是在中断里面(中断里面不能任务调度) */
{
- if (nms >= g_fac_ms) /* ʱʱOSʱ */
+ if (nms >= g_fac_ms) /* 延时的时间大于OS的最少时间周期 */
{
- delay_ostimedly(nms / g_fac_ms); /* OSʱ */
+ delay_ostimedly(nms / g_fac_ms); /* OS延时 */
}
- nms %= g_fac_ms; /* OSѾṩôСʱ,ͨʽʱ */
+ nms %= g_fac_ms; /* OS已经无法提供这么小的延时了,采用普通方式延时 */
}
#endif
- delay_us((uint32_t)(nms * 1000)); /* ͨʽʱ */
+ delay_us((uint32_t)(nms * 1000)); /* 普通方式延时 */
}
/**
- * @brief HALڲõʱ
- * @note HALʱĬSystickûпSystickжϻᵼµʱ˳
- * @param Delay : Ҫʱĺ
+ * @brief HAL库内部函数用到的延时
+ * @note HAL库的延时默认用Systick,如果我们没有开Systick的中断会导致调用这个延时后无法退出
+ * @param Delay : 要延时的毫秒数
* @retval None
*/
void HAL_Delay(uint32_t Delay)
diff --git a/Drivers/SYSTEM/sys/sys.c b/Drivers/SYSTEM/sys/sys.c
index cb58400..974ad98 100644
--- a/Drivers/SYSTEM/sys/sys.c
+++ b/Drivers/SYSTEM/sys/sys.c
@@ -1,23 +1,23 @@
/**
****************************************************************************************************
* @file sys.c
- * @author ԭŶ(ALIENTEK)
+ * @author 正点原子团队(ALIENTEK)
* @version V1.0
* @date 2020-04-17
- * @brief ϵͳʼ(ʱ/жϹ/GPIOõ)
- * @license Copyright (c) 2020-2032, ӿƼ˾
+ * @brief 系统初始化代码(包括时钟配置/中断管理/GPIO设置等)
+ * @license Copyright (c) 2020-2032, 广州市星翼电子科技有限公司
****************************************************************************************************
* @attention
*
- * ʵƽ̨:ԭ STM32F103
- * Ƶ:www.yuanzige.com
- * ̳:www.openedv.com
- * ˾ַ:www.alientek.com
- * ַ:openedv.taobao.com
+ * 实验平台:正点原子 STM32F103开发板
+ * 在线视频:www.yuanzige.com
+ * 技术论坛:www.openedv.com
+ * 公司网址:www.alientek.com
+ * 购买地址:openedv.taobao.com
*
- * ˵
+ * 修改说明
* V1.0 20211103
- * һη
+ * 第一次发布
*
****************************************************************************************************
*/
@@ -26,21 +26,21 @@
/**
- * @brief жƫƵַ
- * @param baseaddr: ַ
- * @param offset: ƫ(0, 0X100ı)
- * @retval
+ * @brief 设置中断向量表偏移地址
+ * @param baseaddr: 基址
+ * @param offset: 偏移量(必须是0, 或者0X100的倍数)
+ * @retval 无
*/
void sys_nvic_set_vector_table(uint32_t baseaddr, uint32_t offset)
{
- /* NVICƫƼĴ,VTOR9λ,[8:0] */
+ /* 设置NVIC的向量表偏移寄存器,VTOR低9位保留,即[8:0]保留 */
SCB->VTOR = baseaddr | (offset & (uint32_t)0xFFFFFE00);
}
/**
- * @brief ִ: WFIָ(ִָ״̬, ȴжϻ)
- * @param
- * @retval
+ * @brief 执行: WFI指令(执行完该指令进入低功耗状态, 等待中断唤醒)
+ * @param 无
+ * @retval 无
*/
void sys_wfi_set(void)
{
@@ -48,9 +48,9 @@ void sys_wfi_set(void)
}
/**
- * @brief رж(DzfaultNMIж)
- * @param
- * @retval
+ * @brief 关闭所有中断(但是不包括fault和NMI中断)
+ * @param 无
+ * @retval 无
*/
void sys_intx_disable(void)
{
@@ -58,9 +58,9 @@ void sys_intx_disable(void)
}
/**
- * @brief ж
- * @param
- * @retval
+ * @brief 开启所有中断
+ * @param 无
+ * @retval 无
*/
void sys_intx_enable(void)
{
@@ -68,31 +68,31 @@ void sys_intx_enable(void)
}
/**
- * @brief ջַ
- * @note ĺX, MDK, ʵû
- * @param addr: ջַ
- * @retval
+ * @brief 设置栈顶地址
+ * @note 左侧的红X, 属于MDK误报, 实际是没问题的
+ * @param addr: 栈顶地址
+ * @retval 无
*/
void sys_msr_msp(uint32_t addr)
{
- __set_MSP(addr); /* ջַ */
+ __set_MSP(addr); /* 设置栈顶地址 */
}
/**
- * @brief ģʽ
- * @param
- * @retval
+ * @brief 进入待机模式
+ * @param 无
+ * @retval 无
*/
void sys_standby(void)
{
- __HAL_RCC_PWR_CLK_ENABLE(); /* ʹܵԴʱ */
- SET_BIT(PWR->CR, PWR_CR_PDDS); /* ģʽ */
+ __HAL_RCC_PWR_CLK_ENABLE(); /* 使能电源时钟 */
+ SET_BIT(PWR->CR, PWR_CR_PDDS); /* 进入待机模式 */
}
/**
- * @brief ϵͳλ
- * @param
- * @retval
+ * @brief 系统软复位
+ * @param 无
+ * @retval 无
*/
void sys_soft_reset(void)
{
@@ -100,10 +100,10 @@ void sys_soft_reset(void)
}
/**
- * @brief ϵͳʱӳʼ
- * @param plln: PLLƵϵ(PLLƵ), ȡֵΧ: 2~16
- жλʱѾSystemInit()гʼ
- * @retval
+ * @brief 系统时钟初始化函数
+ * @param plln: PLL倍频系数(PLL倍频), 取值范围: 2~16
+ 中断向量表位置在启动时已经在SystemInit()中初始化
+ * @retval 无
*/
void sys_stm32_clock_init(uint32_t plln)
{
@@ -111,30 +111,30 @@ void sys_stm32_clock_init(uint32_t plln)
RCC_OscInitTypeDef rcc_osc_init = {0};
RCC_ClkInitTypeDef rcc_clk_init = {0};
- rcc_osc_init.OscillatorType = RCC_OSCILLATORTYPE_HSE; /* ѡҪHSE */
- rcc_osc_init.HSEState = RCC_HSE_ON; /* HSE */
- rcc_osc_init.HSEPredivValue = RCC_HSE_PREDIV_DIV1; /* HSEԤƵϵ */
- rcc_osc_init.PLL.PLLState = RCC_PLL_ON; /* PLL */
- rcc_osc_init.PLL.PLLSource = RCC_PLLSOURCE_HSE; /* PLLʱԴѡHSE */
- rcc_osc_init.PLL.PLLMUL = plln; /* PLLƵϵ */
- ret = HAL_RCC_OscConfig(&rcc_osc_init); /* ʼ */
+ rcc_osc_init.OscillatorType = RCC_OSCILLATORTYPE_HSE; /* 选择要配置HSE */
+ rcc_osc_init.HSEState = RCC_HSE_ON; /* 打开HSE */
+ rcc_osc_init.HSEPredivValue = RCC_HSE_PREDIV_DIV1; /* HSE预分频系数 */
+ rcc_osc_init.PLL.PLLState = RCC_PLL_ON; /* 打开PLL */
+ rcc_osc_init.PLL.PLLSource = RCC_PLLSOURCE_HSE; /* PLL时钟源选择HSE */
+ rcc_osc_init.PLL.PLLMUL = plln; /* PLL倍频系数 */
+ ret = HAL_RCC_OscConfig(&rcc_osc_init); /* 初始化 */
if (ret != HAL_OK)
{
- while (1); /* ʱӳʼʧܣ֮ijִУԼĴ */
+ while (1); /* 时钟初始化失败,之后的程序将可能无法正常执行,可以在这里加入自己的处理 */
}
- /* ѡPLLΪϵͳʱԴHCLK,PCLK1PCLK2*/
+ /* 选中PLL作为系统时钟源并且配置HCLK,PCLK1和PCLK2*/
rcc_clk_init.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
- rcc_clk_init.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; /* ϵͳʱPLL */
- rcc_clk_init.AHBCLKDivider = RCC_SYSCLK_DIV1; /* AHBƵϵΪ1 */
- rcc_clk_init.APB1CLKDivider = RCC_HCLK_DIV2; /* APB1ƵϵΪ2 */
- rcc_clk_init.APB2CLKDivider = RCC_HCLK_DIV1; /* APB2ƵϵΪ1 */
- ret = HAL_RCC_ClockConfig(&rcc_clk_init, FLASH_LATENCY_2); /* ͬʱFLASHʱΪ2WSҲ3CPUڡ */
+ rcc_clk_init.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; /* 设置系统时钟来自PLL */
+ rcc_clk_init.AHBCLKDivider = RCC_SYSCLK_DIV1; /* AHB分频系数为1 */
+ rcc_clk_init.APB1CLKDivider = RCC_HCLK_DIV2; /* APB1分频系数为2 */
+ rcc_clk_init.APB2CLKDivider = RCC_HCLK_DIV1; /* APB2分频系数为1 */
+ ret = HAL_RCC_ClockConfig(&rcc_clk_init, FLASH_LATENCY_2); /* 同时设置FLASH延时周期为2WS,也就是3个CPU周期。 */
if (ret != HAL_OK)
{
- while (1); /* ʱӳʼʧܣ֮ijִУԼĴ */
+ while (1); /* 时钟初始化失败,之后的程序将可能无法正常执行,可以在这里加入自己的处理 */
}
}
diff --git a/Middlewares/Modbus/MODBUS.c b/Middlewares/Modbus/MODBUS.c
index 8f05c53..a3e2e1a 100644
--- a/Middlewares/Modbus/MODBUS.c
+++ b/Middlewares/Modbus/MODBUS.c
@@ -36,9 +36,9 @@
/* ============================================================================
* 轮询与超时常量
* ============================================================================ */
-#define RS485_RT_COUNT_MAX (55) /**< 实时轮询计数上限,约 275ms(55×5ms) */
-#define RS485_ACK_COUNT_MAX (40) /**< 应答超时计数上限,约 200ms(40×5ms) */
-#define RS485_ACK_OVERTIME_MAX (5) /**< 连续应答超时次数上限,超过则重初始化 RS485 */
+#define RS485_RT_COUNT_MAX (55) /**< 实时轮询计数上限,约 275ms(55×5ms) */
+#define RS485_ACK_COUNT_MAX (40) /**< 应答超时计数上限,约 200ms(40×5ms) */
+#define RS485_ACK_OVERTIME_MAX (5) /**< 连续应答超时次数上限,超过则重初始化 RS485 */
/* ============================================================================
* 数据结构定义
@@ -256,40 +256,34 @@ void NL_LOGO_Printf(void)
* 2. 其他图片
* @retval 无
*/
-uint8_t RS485_Process(KEY_TYPE key, uint8_t flag)
+void RS485_Process(KEY_TYPE key)
{
static KEY_TYPE key_bk = KEY_NONE; /* 按键备份(静态变量,保持状态) */
static uint8_t LED_BUFF[4]; /* LED状态缓冲区(静态变量) */
static uint8_t info[8]; /* 命令信息缓冲区(静态变量) */
static uint32_t CRC_ERR_COUNT = 0; /* CRC错误计数(静态变量) */
- uint8_t ConnectFlg = flag;
/* 按键处理:保存按键值 */
if(key != KEY_NONE)
{
- if(key_bk != key) /* 按键值变化时更新备份 */
- {
- key_bk = key;
- }
+ key_bk = key;
}
if(RS485REG.NewMessageFlag) /* 接收到新消息 */
{
RS485REG.NewMessageFlag = RESET; /* 清除控制字 */
-
- ConnectFlg = 1; /* 设置连接标志 */
if(Check_CRC((uint8_t*)&RS485REG.DR[0], UART_RX_LEN) == TRUE) /* CRC校验通过 */
{
CRC_ERR_COUNT = 0; /* 重置CRC错误计数 */
- memcpy(Picture, (uint8_t*)RS485REG.DR, 3200); /* 提取图片数据(前3200字节) */
+ memcpy(Picture, (uint8_t*)RS485REG.DR, 3200); /* 提取图片数据(前3200字节) */
memcpy(info, (uint8_t*)RS485REG.DR + 3200, 8); /* 提取命令信息(后8字节) */
- if(info[4] == 0x89 && info[5] == 0x45) /* LOGO图片命令(特殊标识) */
+ if(info[4] == 0x89 && info[5] == 0x45) /* LOGO图片命令(特殊标识) */
{
- memcpy(logo.bmpdata, Picture, 3200); /* 复制图片到LOGO结构体 */
+ memcpy(logo.bmpdata, Picture, 3200); /* 复制图片到LOGO结构体 */
logo.biWidth = info[0] << 8 | info[1]; /* 解析图片宽度(高字节左移8位 + 低字节) */
logo.biHeight = info[2] << 8 | info[3]; /* 解析图片高度(高字节左移8位 + 低字节) */
- BMP_SAVE2False(); /* 保存 BMP 图片到 Flash */
+ BMP_SAVE2False(); /* 保存 BMP 图片到 Flash */
/* 显示LOGO */
BackLight_ON(); /* 开启背光 */
@@ -309,11 +303,14 @@ uint8_t RS485_Process(KEY_TYPE key, uint8_t flag)
}
else /* CRC校验失败 */
{
- CRC_ERR_COUNT++; /* CRC错误计数递增 */
+ CRC_ERR_COUNT++; /* CRC错误计数递增 */
if(CRC_ERR_COUNT >= 3) /* 连续3次CRC错误 */
{
/* 接收错位,重新初始化接收 */
- RS485_DMA_init(); /* 重新初始化*/
+// RS485_DMA_DeInit();
+// delay_ms(500);
+// delay_ms(500);
+// RS485_DMA_init(); /* 重新初始化*/
CRC_ERR_COUNT = 0; /* 重置CRC错误计数 */
}
}
@@ -337,7 +334,6 @@ uint8_t RS485_Process(KEY_TYPE key, uint8_t flag)
if(RS485POLL.RT_count > RS485_RT_COUNT_MAX) /* 定时到*/
{
RefreshScreen(RT_CMD, key_bk); /* 发送实时刷新命令 */
- key_bk = KEY_NONE; /* 清除按键备份 */
}
}
@@ -352,12 +348,9 @@ uint8_t RS485_Process(KEY_TYPE key, uint8_t flag)
/* 连续超时处理:应答超时次数达到上限 */
if((RS485POLL.ACK_OverTimeCnt >= RS485_ACK_OVERTIME_MAX)) /* 连续超时次数达到上限 */
{
- ConnectFlg = 0;
- RS485POLL.ACK_OverTimeCnt = RS485_ACK_OVERTIME_MAX; /* 限制最大计数(防止溢出) */
- RS485_DMA_init(); /* 重新初始化RS485 */
+ RS485POLL.ACK_OverTimeCnt = RS485_ACK_OVERTIME_MAX; /* 限制最大计数(防止溢出) */
RS485POLL.CMD_ACK = SET; /* 设置命令应答标志(允许重新发送) */
}
- return ConnectFlg;
}
/**
diff --git a/Middlewares/Modbus/MODBUS.h b/Middlewares/Modbus/MODBUS.h
index 809e802..bb86db9 100644
--- a/Middlewares/Modbus/MODBUS.h
+++ b/Middlewares/Modbus/MODBUS.h
@@ -25,12 +25,11 @@
/**
* @brief Modbus 通信主处理函数(远程图片处理)
* @param key 按键值(KEY_TYPE),用于上报按键事件
- * @param flag 连接标志(传入当前连接状态,用于更新)
* @note 处理接收帧、按键上报、定时刷新、应答超时等;采用 138 端处理图片、
* 整体上传显示的方式刷图。需在周期任务中调用。
- * @retval 更新后的连接标志(1=已连接,0=未连接/超时)
+ * @retval
*/
-uint8_t RS485_Process(KEY_TYPE key, uint8_t flag);
+void RS485_Process(KEY_TYPE key);
/**
* @brief 从 Flash 读取 LOGO 并显示
diff --git a/Output/DTU.hex b/Output/DTU.hex
index c0b6dc4..d92ae2b 100644
--- a/Output/DTU.hex
+++ b/Output/DTU.hex
@@ -1,18 +1,18 @@
:020000040800F2
-:1000000010300020CD010008B12B00082B2400087F
-:10001000812B000881040008ED3700080000000073
-:10002000000000000000000000000000E52F0008B4
-:100030007D05000800000000B52B0008B93000085D
+:1000000080330020CD010008CD29000831230008ED
+:10001000C92900084D040008E13300080000000071
+:10002000000000000000000000000000F52D0008A6
+:100030001D05000800000000D1290008C92E000895
:10004000E7010008E7010008E7010008E7010008F0
:10005000E7010008E7010008E7010008E7010008E0
:10006000E7010008E7010008E7010008E7010008D0
:10007000E7010008E7010008E7010008E7010008C0
-:1000800041050008E7010008E7010008E701000852
+:100080000D050008E7010008E7010008E701000886
:10009000E7010008E7010008E7010008E7010008A0
:1000A000E7010008E7010008E7010008E701000890
-:1000B000C5300008E7010008E7010008E701000873
+:1000B000D52E0008E7010008E7010008E701000865
:1000C000E7010008E7010008E7010008E701000870
-:1000D000E7010008CD370008DD370008E701000818
+:1000D000E7010008C1330008D1330008E701000838
:1000E000E7010008E7010008E7010008E701000850
:1000F000E7010008E7010008E7010008E701000840
:10010000E7010008E7010008E7010008E70100082F
@@ -21,17 +21,17 @@
:1001300000F002F800F03AF80AA090E8000C8244BF
:100140008344AAF10107DA4501D100F02FF8AFF29C
:10015000090EBAE80F0013F0010F18BFFB1A43F0A5
-:10016000010318470053000020530000103A24BF39
+:1001600001031847D43C0000F43C0000103A24BFBF
:1001700078C878C1FAD8520724BF30C830C144BF0C
:1001800004680C607047000000230024002500264E
:10019000103A28BF78C1FBD8520728BF30C148BFEA
:1001A0000B6070471FB51FBD10B510BD00F0E8F81B
-:1001B0001146FFF7F7FF03F0E5FD00F006F903B481
-:1001C000FFF7F2FF03BC03F0BBFB000009488047C8
+:1001B0001146FFF7F7FF03F0DFFB00F006F903B489
+:1001C000FFF7F2FF03BC03F0B5F9000009488047D0
:1001D00009480047FEE7FEE7FEE7FEE7FEE7FEE729
:1001E000FEE7FEE7FEE7FEE704480549054A064B41
-:1001F00070470000C130000831010008102A0020BB
-:1002000010300020102C0020102C00207047B2F17C
+:1001F00070470000D12E000831010008802D00203A
+:1002000080330020802F0020802F00207047B2F123
:1002100020030AD5C2F1200320FA02F001FA03F309
:1002200021FA02F140EA0300704721FA03F04FF08F
:1002300000017047032A40F2308010F0030C00F0F8
@@ -54,1308 +54,953 @@
:10034000F7AF090728BFA0E80C5048BF0CC05DF804
:1003500004EB890028BF40F8042B08BF704748BF52
:1003600020F8022B11F0804F18BF00F8012B7047C6
-:10037000704770477047704700487047B0290020A9
+:10037000704770477047704700487047202D002035
:100380007546FFF7F9FFAE4605006946534620F073
:100390000700854618B020B5FFF726FFBDE82040CE
:1003A0004FF000064FF000074FF000084FF0000B31
:1003B00021F00701AC46ACE8C009ACE8C009ACE8E4
:1003C000C009ACE8C0098D46704710B50446AFF3CC
-:1003D00000802046BDE81040FFF7F1BE00200A492A
-:1003E00000BF03E00A5C094B1A54401CB0F5486F8B
-:1003F000F8D3D1F8802C054BC3F8802CD1F8842C8D
-:10040000C3F8842C7047000000F00308A8100020F7
-:1004100010B540F244620249024800F0CBF910BD29
-:10042000A810002000F0030810B50B480068401C1D
-:10043000094908600846006844F62061884209D3EB
-:1004400008460549086000BF00220121034801F069
-:1004500009F800BF10BD00002C000020000C014076
-:1004600010B500BF01221146034800F0FBFF00BF9A
-:1004700000200249086010BD000C01402C00002043
-:1004800000BFFEE7F0B502460C46FF21FF2509E05C
-:1004900012F8016B86EA0103084EF65C86EA050154
-:1004A000074EF55C261EA4F10107BCB2F0D1084648
-:1004B0004FF6FF7606EA00202843F0BD645200089C
-:1004C00064530008F0B505460C46A01E2E5C4FF69E
-:1004D000FF7000EA0626601E285C0643A01E81B25B
-:1004E0002846FFF7CFFF0746BE4201D10120F0BDED
-:1004F0000020FCE770B500BFD52003F09BF900BFDA
-:100500000021084602F0BCFD002416E000250DE0A5
-:10051000002003F0C5F9002003F0C2F9002003F029
-:10052000BFF9002003F0BCF9681C85B2142DEFDB85
-:10053000002003F0B5F9601C84B2A02CE6DB70BD8E
-:1005400010B5024800F0AAFA10BD000020100020EB
-:1005500030B590F840500124AC40C56B6C60046825
-:1005600063604468102C04D10468A2600468E160F0
-:1005700003E00468A1600468E26030BD70470000D9
-:100580002DE9F84F81460F46904630A00068009054
-:1005900000BFD52003F04EF900BFB9F1A00F01D87C
-:1005A000A02F01D9BDE8F88FC9F1A00040080321B0
-:1005B000B0FBF1F000F0FF0AC7F1A00007EB50001C
-:1005C00000F0FF0B4FEAD90600243BE0ABEB040040
-:1005D000C1B2504602F054FD00252CE004FB065148
-:1005E00018F80110C943C1F381111DF8010003F08F
-:1005F00057F904FB065118F80110C943C1F3011162
-:100600001DF8010003F04CF904FB065118F8011025
-:10061000C943C1F381011DF8010003F041F904FB56
-:10062000065118F80120032191431DF8010003F041
-:1006300037F9681CC5B2B542D0D3002003F030F9B9
-:10064000601CC4B2BC42C1D300BFABE7000FF0FFD7
-:100650000021074AD1610749096941F00401054AAF
-:1006600011611146096941F04001116170470000B4
-:1006700068010020002002400021074AD16107499B
-:10068000096941F00201054A116111464861096991
-:1006900041F04001116170476801002000200240D4
-:1006A0000022054BDA61054A126942F00102034B50
-:1006B0001A6101807047000068010020002002409C
-:1006C00000201E49C96801F0100139B11C49C969EF
-:1006D00041F002011A4AD16140F010001749C9687F
-:1006E00001F0040139B11649C96941F00101144A08
-:1006F000D16140F004001149C96901F0010169B1FB
-:100700000F49C96941F004010D4AD16100BF0B498D
-:10071000C96921F00101094AD16100BF00BF40F25F
-:100720000111884206D10549C96921F00101034A36
-:10073000D16101E00149C86000BF7047002002405C
-:100740006801002070B5044600F092FE054609E0FD
-:10075000601C38B124B100F08BFE401BA04201D9CF
-:10076000032070BD1248C06800F001000028EFD1DE
-:100770000F48C06800F0200020B100BF20200C49C5
-:10078000C86000BF0A48C06800F0100048B90848B7
-:10079000C06900F0010020B90548C06800F00400FD
-:1007A00018B1FFF78DFF0120DBE70020D9E700003B
-:1007B000002002402DE9F74F88B005469046A5F18C
-:1007C0000060079007984FEAD02A4FF0006000EBD6
-:1007D000CA26A81B06904FEA480705950698384494
-:1007E0004FEAD02B4FF000090020009006983844C3
-:1007F000C0F30A0008B10BF1010BB5F1006F03D390
-:10080000E8192549884203D301200BB0BDE8F08FD9
-:10081000B6F1006F02D32048864201D30120F4E7ED
-:1008200000F056FC0598C11906F5006081422ED3F0
-:10083000002414E0002001900396012004906946F2
-:1008400001A800F08BFB8146B9F1000F03D000F046
-:10085000DDFB4846D9E706F50066601C84B25C45BE
-:10086000E8D3002410E0099830F814C005EB4401E7
-:1008700062460023012000F0D3FB8146B9F1000F4E
-:1008800000D003E0601C84B24445ECDB00BF00F004
-:10089000BDFB4846B9E700000000040801460022FD
-:1008A00091F82100022808D00420886300BF0020AE
-:1008B00081F8200000BF012070470868006820F020
-:1008C0000E000B6818600868006820F001000B68D3
-:1008D000186091F8403001209840CB6B586001209F
-:1008E00081F8210000BF002081F8200000BF1046E1
-:1008F000E2E7000070B50446002594F821000228C4
-:1009000003D00420A0630125C1E02068006820F026
-:100910000E00216808602068006820F0010021684E
-:1009200008605C492068884252D95A497839206861
-:10093000884201D1012047E0564964392068884245
-:1009400001D1102040E0534950392068884201D13C
-:10095000801539E04F493C392068884201D1801424
-:1009600032E04C4928392068884202D14FF4803067
-:100970002AE0484914392068884202D14FF4801097
-:1009800022E044492068884201D140041CE04249E9
-:100990002068884201D1012016E03F4914312068C7
-:1009A000884201D110200FE03B492831206888425D
-:1009B00001D1801508E038493C312068884201D1D6
-:1009C000801401E04FF480303349091F086051E082
-:1009D000304978392068884201D1012047E02D490B
-:1009E00064392068884201D1102040E029495039FB
-:1009F0002068884201D1801539E026493C392068B9
-:100A0000884201D1801432E0224928392068884286
-:100A100002D14FF480302AE01E4914392068884200
-:100A200002D14FF4801022E01A492068884201D197
-:100A300040041CE018492068884201D1012016E0DA
-:100A4000154914312068884201D110200FE0124965
-:100A500028312068884201D1801508E00E493C31D8
-:100A60002068884201D1801401E04FF480300949A8
-:100A700080394860012084F8210000BF002084F8FC
-:100A8000200000BF606B10B12046616B884728468C
-:100A900070BD0000800002400804024070B50446AA
-:100AA000E06B05682068066894F8401004208840D0
-:100AB0002840002875D006F004000028FAD02068ED
-:100AC000006800F0200028B92068006820F00400C9
-:100AD00021680860D5492068884254D9D3497839BB
-:100AE0002068884201D1042049E0D0496439206857
-:100AF000884201D1402042E0CC49503920688842E8
-:100B000001D100153BE0C9493C392068884202D137
-:100B10004FF4804033E0C54928392068884202D12B
-:100B20004FF480202BE0C14914392068884202D15B
-:100B30004FF4800023E0BD492068884201D1C00401
-:100B40001DE0BB492068884201D1042017E0B84964
-:100B500014312068884201D1402010E0B449283186
-:100B60002068884201D1001509E0B1493C31206874
-:100B7000884202D14FF4804001E04FF48020AC491C
-:100B8000091F086054E0A94978392068884201D1DA
-:100B900004204AE0A54964392068884202D14020F7
-:100BA00043E04CE0A14950392068884201D100154A
-:100BB0003BE09E493C392068884202D14FF4804096
-:100BC00033E09A4928392068884202D14FF48020C6
-:100BD0002BE0964914392068884202D14FF48000F6
-:100BE00023E092492068884201D1C0041DE0904969
-:100BF0002068884201D1042017E08D491431206813
-:100C0000884201D1402010E089492831206888427B
-:100C100001D1001509E086493C312068884202D1A3
-:100C20004FF4804001E04FF48020804980394860D3
-:100C3000E06A002802D02046E16A8847F4E094F890
-:100C40004010022088402840002871D006F00200A1
-:100C50000028FAD02068006800F0200040B9206821
-:100C6000006820F00A0021680860012084F8210053
-:100C70006E492068884254D96C4978392068884286
-:100C800001D1022049E0694964392068884201D1D4
-:100C9000202042E0654950392068884201D1401542
-:100CA0003BE062493C392068884202D14FF4005051
-:100CB00033E05E4928392068884202D14FF4003081
-:100CC0002BE05A4914392068884202D14FF40010B1
-:100CD00023E056492068884201D180041DE0544930
-:100CE0002068884201D1022017E051491431206860
-:100CF000884201D1202010E04D49283120688842E7
-:100D000001D1401509E04A493C312068884202D1AE
-:100D10004FF4005001E04FF400304549091F0860CE
-:100D200054E0424978392068884202D102204AE0E2
-:100D300057E03E4964392068884201D1202042E0D2
-:100D40003A4950392068884201D140153BE0374983
-:100D50003C392068884202D14FF4005033E03349D7
-:100D600028392068884202D14FF400302BE02F4907
-:100D700014392068884202D14FF4001023E02B4937
-:100D80002068884201D180041DE0294920688842FA
-:100D900001D1022017E0264914312068884201D190
-:100DA000202010E0224928312068884201D14015D6
-:100DB00009E01F493C312068884202D14FF40050BD
-:100DC00001E04FF4003019498039486000BF00202D
-:100DD00084F8200000BFA06A30B32046A16A88478B
-:100DE00022E094F84010082088402840E0B106F046
-:100DF0000800C8B12068006820F00E002168086073
-:100E000094F8401001208840E16B48600120A06305
-:100E100084F8210000BF002084F8200000BF206B70
-:100E200010B12046216B884770BD00008000024051
-:100E3000080402400146002209B9012070471E4BF8
-:100E4000086898420BD21D4B0868C01A1423B0FBE7
-:100E5000F3F08000086419480838C8630AE0164BAC
-:100E60000868C01A1423B0FBF3F08000086412482D
-:100E70000838C863022081F821000868026843F638
-:100E8000F0708243D1E901031843CB6818430B6922
-:100E900018434B6918438B691843CB6918430243C5
-:100EA0000868026000208863012081F8210000208A
-:100EB00081F8200000BFC1E708040240080002409A
-:100EC0002DE9F04104460D4616461F464FF0000836
-:100ED00000BF94F82000012802D10220BDE8F08173
-:100EE000012084F8200000BF94F8210001282CD1B3
-:100EF000022084F821000020A0632068006820F010
-:100F00000100216808603B46324629462046FFF72B
-:100F10001FFBE06A30B12068006840F00E002168D5
-:100F200008600BE02068006820F004002168086079
-:100F30002068006840F00A002168086020680068A6
-:100F400040F001002168086006E000BF002084F83E
-:100F5000200000BF4FF002084046BFE72DE9F041F6
-:100F600004460E460127002500BF2648007E0128C2
-:100F700002D10220BDE8F08101202249087600BF9D
-:100F80002068022813D14CF25030FFF7DBFB90BBF6
-:100F90000120FFF75DFB4CF25030FFF7D3FB074613
-:100FA0001948006920F004001749086123E04CF259
-:100FB0005030FFF7C7FBF0B94FF0FF303060A56845
-:100FC00012E02846FFF758FB4CF25030FFF7BAFB0F
-:100FD00007460D48006920F002000B4908610FB177
-:100FE000356007E005F50065D4E9021001EBC0208B
-:100FF000A842E6D800BF00BF00200249087600BF23
-:101000003846B7E768010020002002400348006925
-:1010100040F0800001490861002070470020024034
-:101020002DE9FE4F05468B461746984601260024BB
-:101030000020029000BF2448007E012802D1022037
-:10104000BDE8FE8F01202049087600BF4CF25030E9
-:10105000FFF778FB064686BB012D02D101200290E6
-:1010600006E0022D02D10220029001E0042002904D
-:1010700000241EE02201B946C24648465146FFF709
-:10108000C6F880B20190022000FB04B000900199E4
-:10109000FFF706FB4CF25030FFF754FB06460B48B7
-:1010A000006920F001000949086106B104E0601CF4
-:1010B000C4B202988442DDDB00BF00BF00200249B9
-:1010C000087600BF3046BBE76801002000200240E0
-:1010D00000200849096901F0800151B10649054A1B
-:1010E0005160064951601146096901F0800101B162
-:1010F000012070470020024023016745AB89EFCDF6
-:101100002DE9F847024600239C467BE14FF0010899
-:1011100008FA03F4D1F8008008EA0400A0427DD167
-:10112000DFF8F4A2D1F80480A8EB0A09D0453AD040
-:1011300014DCB8F1030F50D009DCB8F1000F31D046
-:10114000B8F1010F1CD0B8F1020F49D120E0B8F17D
-:10115000110F18D0B8F1120F42D11EE0B9F5881F57
-:1011600025D006DCB9F5803F20D0B9F5801F37D1F6
-:101170001AE0B9F5001F18D0B9F5041F30D117E0F7
-:10118000D1F80CC02DE0D1F80C8008F1040C28E057
-:10119000D1F80C8008F1080C23E0D1F80C8008F19C
-:1011A0000C0C1EE000BF00BF00BF00BF00BF00BFAF
-:1011B000D1F80880B8F1000F02D14FF0040C0BE019
-:1011C000D1F80880B8F1010F03D14FF0080C146179
-:1011D00002E04FF0080C546103E04FF0000C00E017
-:1011E00000BF00BFFF2801D8904601E002F10408CB
-:1011F0004646FF2802D84FEA830803E0A3F1080817
-:101200004FEA88084746D6F800804FF00F0909FAE0
-:1012100007F928EA09080CFA07F900E07AE048EA39
-:101220000908C6F80080D1F8048008F08058B8F1A9
-:10123000805F6FD100BFDFF8E481D8F8188048F0F4
-:101240000108DFF8D891C9F81880C846D8F8188086
-:1012500008F00108CDF8008000BF00BF4FEAB938A0
-:101260004FEA930958F829504FEA83784FEA1879E2
-:101270004FF00F0808FA09F825EA0805DFF8A08101
-:10128000424502D14FF0000824E0DFF89881424542
-:1012900002D14FF001081DE0DFF88C81424502D1F8
-:1012A0004FF0020816E0DFF88481424502D14FF08A
-:1012B00003080FE0DFF87881424502D14FF00408BF
-:1012C00008E0DFF87081424502D14FF0050801E0E7
-:1012D0004FF006084FEA83794FEA197908FA09F8BE
-:1012E00048EA0505DFF850814FEA930948F829508C
-:1012F000D1F8048008F48018B8F5801F0BD1DFF80E
-:101300003C81D8F8008048EA0008DFF83091C9F83D
-:1013100000800AE075E0DFF82481D8F8008028EA30
-:101320000008DFF81891C9F80080D1F8048008F4AB
-:101330000018B8F5001F0ED1DFF8008108F104088D
-:10134000D8F8008048EA0008DFF8F09009F10409B5
-:10135000C9F800800DE0DFF8E48008F10408D8F84F
-:10136000008028EA0008DFF8D49009F10409C9F8E0
-:101370000080D1F8048008F40038B8F5003F0ED1A1
-:10138000DFF8B880A8F10408D8F8008048EA00081F
-:10139000DFF8A890A9F10409C9F800800DE0DFF892
-:1013A0009C80A8F10408D8F8008028EA0008DFF83B
-:1013B0008C90A9F10409C9F80080D1F8048008F4E0
-:1013C0008038B8F5803F0ED1DFF87080A8F10808AA
-:1013D000D8F8008048EA0008DFF86090A9F1080911
-:1013E000C9F800800DE0DFF85480A8F10808D8F8AB
-:1013F000008028EA0008DFF84490A9F10809C9F83C
-:1014000000805B1CD1F8008028FA03F8B8F1000FC7
-:101410007FF47CAEBDE8F887000011100010024098
-:1014200000080140000C0140001001400014014080
-:1014300000180140001C0140080001400804014060
-:10144000024693680B400BB1012000E0002070477A
-:1014500010B5C26821EA020302EA010443EA044328
-:10146000036110BD0AB1016101E00B040361704723
-:1014700001480068704700001C0000200348006815
-:101480000349097808440149086070471C0000209E
-:101490002400002010B50848006840F010000649FC
-:1014A0000860032000F080F80F2000F007F800F03B
-:1014B0002BF8002010BD00000020024070B504464B
-:1014C0000E4800784FF47A71B1FBF0F00C490968CE
-:1014D000B1FBF0F5284600F0F3FB08B1012070BD28
-:1014E000102C07D200222146501E00F01EF805489D
-:1014F000046001E00120F2E70020F0E72400002072
-:101500000C000020200000207047014608460028FB
-:1015100009DB00F01F0301229A4043099B0003F1FD
-:10152000E023C3F8002100BF70472DE9F05F80463B
-:101530000D461646002702F0E7F9074639462A46C7
-:10154000334601F00700C0F1070ABAF1040F02D9CF
-:101550004FF0040A01E0C0F1070AD14600F1040A85
-:10156000BAF1070F02D24FF0000A01E0A0F1030A1E
-:10157000D4464FF0010A0AFA09FAAAF1010A0AEA66
-:10158000020A0AFA0CFA4FF0010B0BFA0CFBABF152
-:10159000010B0BEA030B4AEA0B042146404602F01A
-:1015A000BBF9BDE8F09F000000BF00F00702064B4A
-:1015B00019684FF6FF031940044B0B4343EA02211D
-:1015C000014B196000BF70470CED00E00000FA0508
-:1015D00000BF00BF00BF00BF00BFBFF34F8F00BF01
-:1015E00000BF00BF0948006800F4E06008490843F4
-:1015F000001D0649086000BF00BF00BFBFF34F8F4A
-:1016000000BF00BF00BF00BF00BFFDE70CED00E062
-:101610000000FA0570B504460D460CB9012070BDF6
-:101620005A48006800F00700A8420ED257480068E8
-:1016300020F007002843554908600846006800F07C
-:101640000700A84201D00120E9E7207800F002005D
-:1016500002281DD1207800F00400042805D14C4850
-:10166000406840F4E0604A494860207800F0080093
-:10167000082805D14648406840F460504449486015
-:101680004348406820F0F000A168084340494860A2
-:10169000207800F0010078B36068012806D13C484A
-:1016A000006800F4003090B90120B8E760680228B3
-:1016B00006D13748006800F0007040B90120AEE75D
-:1016C0003348006800F0020008B90120A7E730485D
-:1016D000406820F00300616808432D494860FFF727
-:1016E000C7FE064609E0FFF7C3FE801B41F28831C2
-:1016F000884202D9032092E707E02548406800F0BD
-:101700000C006168B0EB810FEDD12048006800F05B
-:101710000700A8420ED91D48006820F007002843A2
-:101720001A4908600846006800F00700A84201D086
-:10173000012074E7207800F00400042807D1144841
-:10174000406820F4E060E16808431149486020786F
-:1017500000F00800082808D10D48406820F46050C7
-:10176000216940EAC1000A49486000F03FF8084991
-:101770004968C1F30311074A515CC8400649086033
-:1017800006480068FFF79AFE002048E70020024064
-:1017900000100240C83E00080C000020200000207D
-:1017A00001480068704700000C00002000B5FFF7FA
-:1017B000F7FF04494968C1F30221034A515CC8405C
-:1017C00000BD000000100240D83E000800B5FFF741
-:1017D000E7FF04494968C1F3C221034A515CC8408C
-:1017E00000BD000000100240D83E000870B5002186
-:1017F0000022002400230020134D696801F00C052D
-:10180000F5B1042D02D0082D19D101E00F4819E0DF
-:101810000F4DC1F38346AB5D01F4803555B10A4DE0
-:101820006D68C5F340450B4E725D084D5D43B5FBD9
-:10183000F2F402E0084D03FB05F4204602E000BF8D
-:10184000024800BF00BF70BD0010024000127A00C5
-:10185000E03E0008F03E000800093D00F8B50446EF
-:101860000CB90120F8BD207800F00100002878D0E4
-:10187000F848406800F00C0004280CD0F548406897
-:1018800000F00C00082811D1F248406800F48030C4
-:10189000B0F5803F0AD1EF48006800F4003000281E
-:1018A0005FD0606800285CD10120DBE700BF606882
-:1018B000B0F5803F06D1E748006840F48030E54944
-:1018C000086028E0606858B9E248006820F4803079
-:1018D000E04908600846006820F4802008601AE0AB
-:1018E0006068B0F5A02F0BD1DA48006840F4802082
-:1018F000D84908600846006840F4803008600AE073
-:10190000D448006820F48030D24908600846006856
-:1019100020F48020086000BF606888B1FFF7A8FD50
-:10192000054606E0FFF7A4FD401B642801D903200B
-:1019300098E7C848006800F400300028F2D010E0B2
-:10194000FFF796FD054606E0FFF792FD401B642871
-:1019500001D9032086E7BF48006800F40030002862
-:10196000F2D1207800F00200022857D1B94840682F
-:1019700000F00C0050B1B748406800F00C00082897
-:1019800018D1B448406800F4803098B9B148006874
-:1019900000F0020020B12069012801D0012061E798
-:1019A000AC48006820F0F800616940EAC100A9492C
-:1019B000086033E02069E8B10120A7490860FFF71B
-:1019C00057FD054606E0FFF753FD401B022801D9ED
-:1019D000032047E79F48006800F002000028F2D08B
-:1019E0009C48006820F0F800616940EAC10099490C
-:1019F000086013E0002098490860FFF739FD0546AC
-:101A000006E0FFF735FD401B022801D9032029E736
-:101A10009048006800F002000028F2D1207800F021
-:101A2000080008282DD1A069B8B101208B490860B1
-:101A3000FFF71EFD054606E0FFF71AFD401B0228D2
-:101A400001D903200EE78348406A00F00200002815
-:101A5000F2D0012001F0CCF813E000207F490860AB
-:101A6000FFF706FD054606E0FFF702FD401B0228D2
-:101A700001D90320F6E67748406A00F0020000280A
-:101A8000F2D1207800F00400042873D100277148B7
-:101A9000C06900F0805070B900BF6E48C06940F066
-:101AA00080506C49C8610846C06900F080500090C1
-:101AB00000BF00BF01276A48006800F48070B0B919
-:101AC0006748006840F4807065490860FFF7D0FC03
-:101AD000054606E0FFF7CCFC401B642801D9032033
-:101AE000C0E65F48006800F480700028F2D000BFB4
-:101AF000E068012806D15748006A40F001005549C6
-:101B0000086227E0E06858B95248006A20F00100F6
-:101B1000504908620846006A20F00400086219E093
-:101B2000E06805280BD14B48006A40F004004949A1
-:101B300008620846006A40F0010008620AE0454871
-:101B4000006A20F00100434908620846006A20F05C
-:101B50000400086200BFE068A0B1FFF789FC0546F9
-:101B600009E0FFF785FC401B41F28831884202D929
-:101B7000032077E622E03748006A00F002000028E0
-:101B8000EFD012E0FFF774FC054608E0FFF770FCA9
-:101B9000401B41F28831884201D9032062E62D487A
-:101BA000006A00F002000028F0D1012F05D1294879
-:101BB000C06920F080502749C86100BFE069C8B300
-:101BC0002448406800F00C00082860D0E069022832
-:101BD00048D1002020490866FFF74AFC054606E088
-:101BE000FFF746FC401B022801D903203AE61948BA
-:101BF000006800F000700028F2D1206AB0F5803F44
-:101C000007D11448406820F40030A1680843114906
-:101C10004860D4E9080108430E49496821F4741169
-:101C200008430C49486001200B490866FFF720FC77
-:101C3000054607E03DE0FFF71BFC401B022801D9E9
-:101C400003200FE60348006800F000700028F2D07F
-:101C50002FE0000000100240000042428004424297
-:101C600000700040002014490866FFF701FC05469B
-:101C700006E0FFF7FDFB401B022801D90320F1E538
-:101C80000E48006800F000700028F2D111E0E06911
-:101C9000012800D1E6E50948466806F48031206A4B
-:101CA000814204D106F47011606A814201D00120A2
-:101CB000D8E50020D6E500000000424200100240B6
-:101CC00070B504462546681EB0F1807F01D301201F
-:101CD0000FE0681E4FF0E02148610F214FF0FF3008
-:101CE00001F01AFE00204FF0E02188610720086112
-:101CF000002070BD10B504460CB9012010BD94F849
-:101D00003D0028B9002084F83C00204600F025F86A
-:101D1000022084F83D00211D206801F007FA01200F
-:101D200084F8460000BF84F83E0001213F200155A1
-:101D3000402001554120015500BF00BF012084F81B
-:101D4000420043200155442001554520015500BF64
-:101D5000012084F83D000020D0E77047014691F84B
-:101D60003D00012801D001207047022081F83D008C
-:101D70000868C06840F001000B68D860164B08681E
-:101D8000984213D0154B086898420FD00868B0F1FC
-:101D9000804F0BD0124B0868984207D0114B08684F
-:101DA000984203D0104B086898420CD108688068AC
-:101DB00000F00702062A0CD00868006840F0010015
-:101DC0000B68186005E00868006840F001000B68C7
-:101DD00018600020C8E70000002C014000340140DA
-:101DE0000004004000080040000C0040F8B5044624
-:101DF0000D46164694F8420020282DD105B10EB9A3
-:101E00000120F8BD0120206300206063324629468E
-:101E1000204601F0D5FB0746206B012819D100BFF1
-:101E200000200090206800680090206840680090C2
-:101E300000BF00BF00BF00BF21680C3151E8001F88
-:101E400041F0100021680C3141E80002002AF3D172
-:101E500000E001273846D4E70220D2E770B50446F7
-:101E60000D4607492068884208D1012005490870BD
-:101E700040F68842491C0448FFF7B8FF70BD0000D7
-:101E80000044004044030020D80F002070470000A9
-:101E90002DE9F84F0446206805682068C668206868
-:101EA00047694FF00009CA4605F00F09B9F1000F64
-:101EB0000AD105F0200038B106F0200020B12046FC
-:101EC00001F081FABDE8F88FB9F1000F7BD007F07F
-:101ED000010018B906F49070002874D005F00100D4
-:101EE00030B106F4807018B1606C40F0010060649D
-:101EF00005F0040030B107F0010018B1606C40F04B
-:101F00000200606405F0020030B107F0010018B172
-:101F1000606C40F00400606405F0080048B106F011
-:101F2000200010B907F0010018B1606C40F0080003
-:101F30006064606C002845D005F0200028B106F0F0
-:101F4000200010B1204601F03EFA20684069C0F33D
-:101F5000801A606C00F0080010B9BAF1000F2CD0A4
-:101F6000204601F0D7F92068406900F0400000B336
-:101F700000BF00BF2168143151E8001F21F040006C
-:101F80002168143141E80002002AF3D100BFE06B60
-:101F900050B17748E16B4863E06BFEF7ABFC88B16A
-:101FA000E06B416B88470DE02046FFF76FFF09E0CB
-:101FB00009E02046FFF76AFF04E02046FFF766FFCE
-:101FC000002060647EE7206B012877D105F01000C7
-:101FD000002873D006F010000028FAD000BF0020BF
-:101FE000009020680068009020684068009000BF62
-:101FF00000BF2068406900F0400000285FD0E06B1F
-:10200000006840681FFA80F8B8F1000F55D0A08D25
-:10201000404552DDA4F82E80E06B8069202843D033
-:1020200000BF00BF21680C3151E8001F21F480700F
-:1020300021680C3141E80002002AF3D100BF00BF43
-:1020400000BF2168143151E8001F21F00100216810
-:10205000143141E80002002AF3D100BF00BF00BFE5
-:102060002168143151E8001F21F04000216814312B
-:1020700041E80002002AF3D100BF202084F842008A
-:102080000020206300BF00BF21680C3151E8001F11
-:1020900021F0100021680C3141E80002002AF3D140
-:1020A00000BFE06BFEF7FAFB02206063A08DE28DBB
-:1020B000801A81B22046FFF7D1FE03E742E0A08DEF
-:1020C000E18D401A1FFA80F8E08DD0B3B8F1000F0F
-:1020D00037D000BF00BF21680C3151E8001F21F448
-:1020E000907021680C3141E80002002AF3D100BF52
-:1020F00000BF00BF2168143151E8001F21F001002A
-:102100002168143141E80002002AF3D100BF2020E9
-:1021100084F842000020206300BF00BF21680C311A
-:1021200051E8001F21F0100021680C3141E8000245
-:10213000002AF3D100BF0220606341462046FFF72A
-:102140008DFEBFE605F0800030B106F0800018B1CA
-:10215000204601F0B9FAB5E605F0400030B106F0CE
-:10216000400018B1204601F00BF9ABE600BFA9E62C
-:10217000D931000810B504460CB9012010BDA06982
-:1021800000B100E000BF94F8410028B9002084F8B5
-:102190004000204600F02AF8242084F841002068FE
-:1021A000C06820F400502168C860204601F08AF918
-:1021B0002068006920F49040216808612068406927
-:1021C00020F02A00216848612068C06840F400506F
-:1021D0002168C86000206064202084F8410084F8F1
-:1021E00042000020606300BFC8E7000010B586B061
-:1021F00004462849206888424AD100BF00BF2648CB
-:10220000806940F00400244988610846806900F034
-:102210000400019000BF00BF00BF00BF00BF084620
-:10222000806940F0040088610846806900F004007D
-:10223000019000BF00BF00BF00BF00BF084680691B
-:1022400040F4804088610846806900F48040019035
-:1022500000BF00BF00BF481502900220039001207C
-:1022600004900320059002A90C48FEF749FF4FF4A3
-:10227000806002900020039002A90848FEF740FF0A
-:102280002520FFF742F9032211462520FFF74DF9DB
-:1022900006B010BD003801400010024000080140A7
-:1022A00070B504460D46164694F8420020280BD11E
-:1022B00005B10EB9012070BD0020206332462946C9
-:1022C000204601F0E1F9F6E70220F4E710B50446F4
-:1022D0002049206888423BD11F48008800F4004014
-:1022E00088BB1D48008800F4804070B11B4800780E
-:1022F0000A2803D000201849088024E016480088E6
-:1023000040F40040144908801DE0144800780D286E
-:1023100006D11148008840F480400F49088012E03F
-:102320000E4800780C490988C1F30D010C4A50543D
-:1023300009480088401C0849088008460088C728CA
-:1023400001DD00200880012204490648FFF7A8FFAC
-:1023500010BD000000380140180000201A000020C5
-:10236000540000201C01002070472DE9F84F04465E
-:102370000E46174699464FF0000A94F8410020286F
-:1023800050D106B117B90120BDE8F88F0020606474
-:10239000212084F84100FFF76BF88246A784E78488
-:1023A000A068B0F5805F04D1206910B90025B0465F
-:1023B00002E035464FF000081EE05346002280211F
-:1023C0002046CDF8009001F0AFF920B1202084F82C
-:1023D00041000320D8E745B9B8F80000C0F3080071
-:1023E0002168486008F1020803E028782168486005
-:1023F0006D1CE08C401EE084E08C0028DDD153464B
-:10240000002240212046CDF8009001F08DF920B146
-:10241000202084F841000320B6E7202084F8410002
-:102420000020B1E70220AFE7704700BFFEE70000E1
-:1024300008B5434A811A904241D009DC4149014420
-:1024400081B1B1F5806F1CD0B1F5006F74D127E078
-:10245000B1F5806F42D0B1F5006F4ED0B1F5406F4D
-:102460006AD159E000BF3849896941F00401364A10
-:1024700091611146896901F00401009100BF00BF1C
-:102480005BE000BF3049896941F008012E4A916143
-:102490001146896901F00801009100BF00BF4CE0BE
-:1024A00000BF2949896941F01001274A916111460D
-:1024B000896901F01001009100BF00BF3DE000BF3D
-:1024C0002149896941F020011F4A916111468969BA
-:1024D00001F02001009100BF00BF2EE000BF1A49AB
-:1024E000896941F04001184A91611146896901F0FA
-:1024F0004001009100BF00BF1FE000BF1249896981
-:1025000041F08001104A91611146896901F0800112
-:10251000009100BF00BF10E000BF0B49896941F482
-:102520008071094A91611146896901F480710091B5
-:1025300000BF00BF01E0FFE700BF00BF08BD000013
-:102540000014014000F8FEBF0010024070B50446C0
-:10255000002500267CB180220021084601F096FC6F
-:1025600080220121002001F091FC80220321002023
-:1025700001F08CFC0EE000221146104601F086FCB2
-:1025800000220121104601F081FC002203211046A7
-:1025900001F07CFC70BD000010B507480068401CCD
-:1025A00005490860084600680F2804D30F2008601A
-:1025B0000020FFF7CBFF10BD0800002010B586B04B
-:1025C00000BF2F48806940F001002D49886108460E
-:1025D000806900F00100019000BF00BF00BF2949E1
-:1025E000486820F0E06040F00070486000BF0020C4
-:1025F000029003900490059000243DE004EB440118
-:10260000214A02EB81014868FFF712FF04EB440006
-:102610001D4931F82000029000200390049003200F
-:10262000059004EB4401184A02EB8101486802A9B5
-:10263000FEF766FD04EB440101EBC401134A02EB13
-:10264000810023460022124901F0D6FA04EB44012E
-:1026500001EBC4010D4A02EB81000E4A032101F097
-:1026600071F904EB440101EBC401084A02EB81005B
-:1026700001F0FEFA601CC4B2082CBFD306B010BD36
-:10268000001002400000014004520008E401002054
-:10269000493C00085939000810B50446FDF7E0FE32
-:1026A0000120FFF753FF0020024908600248047030
-:1026B00010BD00000800002005000020014908604E
-:1026C000704700002800002000B585B000BF1A4800
-:1026D000806940F00800184988610846806900F068
-:1026E0000800009000BF00BF00BF0846806940F0AE
-:1026F000400088610846806900F04000009000BFFB
-:1027000000BF47F601400190012002900390032092
-:10271000049001A90948FEF7F3FC4FF47F400190B3
-:102720000120029003900320049001A90448FEF7C1
-:10273000E7FC05B000BD000000100240000C0140A5
-:102740000018014010B5E92001F074F82B2001F0C9
-:1027500071F8242001F06EF8812001F06BF8BE20A2
-:1027600001F068F8A42001F065F8A62001F062F8F5
-:10277000C02001F05FF8A32001F05CF8D12001F047
-:1027800059F8D52001F056F8DA2001F053F8F4207A
-:1027900001F050F8252001F04DF8F62001F04AF83C
-:1027A0005A2001F047F8F52001F044F8002001F02C
-:1027B00041F8F72001F03EF89F2001F03BF8F820A7
-:1027C00001F038F8892001F035F8AD2001F032F839
-:1027D000402001F02FF8502001F02CF8C42001F027
-:1027E00029F8902001F026F8FF2001F023F884203A
-:1027F00001F020F8F12001F01DF89F2001F01AF8F7
-:1028000010BD000010B500BF012291020E48FEF776
-:1028100029FE00BF0A2001F059FA00BF00224FF440
-:1028200080610948FEF71EFE00BF022001F04EFA4B
-:1028300000BF012291020448FEF714FE00BF96205B
-:1028400001F044FA10BD0000000C014008B5434AF5
-:10285000811A904241D009DC4149014481B1B1F56E
-:10286000806F1CD0B1F5006F74D127E0B1F5806F97
-:1028700042D0B1F5006F4ED0B1F5406F6AD159E04A
-:1028800000BF3849896941F00401364A9161114617
-:10289000896901F00401009100BF00BF5BE000BF47
-:1028A0003049896941F008012E4A916111468969D0
-:1028B00001F00801009100BF00BF4CE000BF2949B2
-:1028C000896941F01001274A91611146896901F037
-:1028D0001001009100BF00BF3DE000BF21498969A0
-:1028E00041F020011F4A91611146896901F02001E0
-:1028F000009100BF00BF2EE000BF1A49896941F076
-:102900004001184A91611146896901F04001009126
-:1029100000BF00BF1FE000BF1249896941F080017C
-:10292000104A91611146896901F08001009100BF50
-:1029300000BF10E000BF0B49896941F48071094A6A
-:1029400091611146896901F48071009100BF00BF57
-:1029500001E0FFE700BF00BF08BD00000014014018
-:1029600000F8FEBF001002401FB5002447E02749D1
-:1029700001EB04110868FFF769FF244800EB04101D
-:102980008088009001200190204800EB04108068AE
-:1029900003901E4800EB0410C06802901B4901EB35
-:1029A000041108686946FEF7ABFB184B03EB0413F0
-:1029B000DA79164B03EB04139988144B03EB0413D9
-:1029C0001868FEF74FFD114800EB0410807950B9EC
-:1029D0000E4800EB0410C07908B9012000E0002087
-:1029E0000B49085509E0094800EB0410C07901289B
-:1029F00000D100E0002006490855601CC4B2142C28
-:102A0000B5DB0121002000F06FF81FBDF43E000887
-:102A10008801002070B50446142C00DB70BD0C4802
-:102A200000EB0410807908B9012500E00025084A70
-:102A300002EB04129188064A02EB041210682A463F
-:102A4000FEF710FD00200349085500BFE6E700002F
-:102A5000F43E00088801002070B50446142C00DB09
-:102A600070BD0C4800EB0410807908B9002500E027
-:102A70000125084A02EB04129188064A02EB04126F
-:102A800010682A46FEF7EEFC01200349085500BFF6
-:102A9000E6E70000F43E0008880100202DE9F0413F
-:102AA0000446E0780006A17840EA0140617840EAF7
-:102AB0000120217840EA010600250121002000F0D4
-:102AC00013F801250CE00120A840304008B1012096
-:102AD00000E000200746E8B2394600F005F86D1C1A
-:102AE000142DF0D3BDE8F08170B505460C46012CDD
-:102AF00003D12846FFF7B0FF02E02846FFF78AFF20
-:102B000070BD000010B50446142C00DB10BD0A4A4D
-:102B100002EB04129188084A02EB04121068FEF7D7
-:102B200097FC0648005D012801D0012000E000204C
-:102B30000249085500BFE9E7F43E0008880100207B
-:102B400010B5044AD2F8841CD2F8800CFDF718FDA9
-:102B500010BD0000A810002010B5FFF7B5FD00BFA4
-:102B6000012211460548FEF77DFC00BFFFF74AFE33
-:102B7000FFF7E8FDFDF7BEFC10BD0000000C0140B2
-:102B800000BFFEE710B5FDF729FCFFF7D9FF4FF4B2
-:102B9000FA7001F09BF84FF4FA7001F097F84FF4D7
-:102BA000FA7001F093F84FF4FA7001F08FF810BD4D
-:102BB00000BFFEE77047000006480078401C05494A
-:102BC00008700846007918B108464079401C4871E1
-:102BD0007047000038000020002004498871087107
-:102BE0004871C871012048807047000038000020FB
-:102BF00008B508490968C9084FF47A72B1FBF2F1C7
-:102C00004143009100BF00BF00994A1E0092002975
-:102C1000F9D108BD0C00002000B585B000BF00BF91
-:102C20005348806940F00400514988610846806932
-:102C300000F00400009000BF00BF00BF00BF00BF55
-:102C40000846806940F0040088610846806900F009
-:102C50000400009000BF00BF00BF00BF00BF0846D7
-:102C6000806940F0040088610846806900F0040033
-:102C7000009000BF00BF00BF00BF00BF0846C06992
-:102C800040F40030C8610846C06900F4003000908C
-:102C900000BF00BF00BF002001900290039004908D
-:102CA0000420019002200290012003900320049050
-:102CB00001A93048FEF724FA082001900020029074
-:102CC00001A92C48FEF71CFA022001900120029075
-:102CD00001A92848FEF714FA27482849086000206F
-:102CE00048600021254881608021C1600021016188
-:102CF000416181614FF44051C161FEF79BF800BF13
-:102D00001E481F49C86308461C49486200BF10207E
-:102D1000FEF7FBFB002211461020FEF706FC1948C7
-:102D20001749086018484860002115488160C16053
-:102D3000016181610C2141610021C161FFF71AFA33
-:102D40002620FEF7E2FB002201212620FEF7EDFB04
-:102D500000BF012202210748FEF784FB00BF40F6B6
-:102D600088420A490648FFF741F805B000BD000057
-:102D700000100240000801406C00024020100020BA
-:102D8000D80F00200044004060AE0A004503002038
-:102D900070B504460D462E462CB15D480078A04221
-:102DA00001D05B4804705B480078002876D0002092
-:102DB00058490870012640F688415648401CFDF7E6
-:102DC00081FB012854D10020534908604FF4486228
-:102DD0005049491C5148FDF72DFA514951480268A4
-:102DE0000A604068486008460079892834D108465E
-:102DF0004079452830D14FF4486248494A48FDF7A8
-:102E00005EFA474840784649097840EA0120464939
-:102E1000C1F8800C4248C0784149897840EA0120D5
-:102E20004149C1F8840CFDF7F3FAFDF719FBFDF7F2
-:102E300061FBFFF785FE4FF4FA7000F047FF4FF497
-:102E4000FA7000F043FF4FF4FA7000F03FFF4FF4C8
-:102E5000FA7000F03BFF19E034492E48D0F8810C9D
-:102E600008600846FFF71AFE2C4800F0BDF80DE098
-:102E700029480068401C2849086008460068032863
-:102E800004D3FFF7C9FE0020234908600020284929
-:102E9000887108714871C8710120488024484088B1
-:102EA00010B923488079B0B11948007838B1184872
-:102EB0000178002000F082F80020154908701C48B5
-:102EC0000078372807DD12480178012000F076F8F5
-:102ED00000200F49087016484079282808DD012095
-:102EE00013498871002048710846C079401CC87198
-:102EF0000F48C079052808DB002605200C49C87159
-:102F0000FFF78AFE01200A494880304670BD000064
-:102F1000400000204403002050000020301D00200D
-:102F200045000020C50F0020A8100020410000200F
-:102F3000380000202DE9FC4104460D4616460027C6
-:102F400001208DF800008DF801408DF802508DF8B9
-:102F5000036004216846FDF795FA074638128DF89C
-:102F60000400F8B28DF805000621684600F008F864
-:102F7000002002494880BDE8FC81000038000020A4
-:102F800070B504460D4600BF002202210948FEF735
-:102F900069FA00BFAAB24FF47A7321460648FFF7D8
-:102FA000E4F900BF012202210248FEF75BFA00BFEC
-:102FB00070BD000000080140D80F002070B5044625
-:102FC0000D462A4621460320FFF7B4FF002004499E
-:102FD00048800870012008710020487170BD000011
-:102FE0003800002070470000F8B5064600BFD52025
-:102FF00000F020FC00BF21A00068009000210846DE
-:1030000000F03EF8002436E000252DE004EB8401BA
-:1030100005EB8101715C6A4602EB9111087800F0C2
-:103020003FFC04EB840105EB8101715CC1F30111EC
-:103030001DF8010000F034FC04EB840105EB810174
-:10304000715CC1F381011DF8010000F029FC04EB63
-:10305000840105EB8101715C01F003011DF80100A1
-:1030600000F01EFC681C85B2142DCFDB002000F0A0
-:1030700017FC601C84B2A02CC6DBF8BD000FF0FF6B
-:1030800070B504460D4604F12500C4B204F00F00EB
-:1030900000F0D0FBC4F3021141F0100000F0CAFBB5
-:1030A00005F00F0141F0600000F0C4FB702141EA1F
-:1030B000151000F0BFFB70BD10B5FEF7DFF910BDB5
-:1030C0007047000010B515480068006900F0010065
-:1030D00010B313480068401C114908600846006896
-:1030E000C821B0FBF1F201FB120010B901200D491B
-:1030F000087000F0D7FD00BF01210B48FEF7A8F9CA
-:1031000000BFFDF791F9FFF757FDFFF745FA6FF0A4
-:10311000010002490968086110BD00009C010020FF
-:1031200000000020040000200008014010B50268E3
-:10313000244B98420ED0244B98420BD0B0F1804FD4
-:1031400008D0224B984205D0214B984202D0214B07
-:10315000984203D122F070024B681A43194B9842EF
-:103160000ED0194B98420BD0B0F1804F08D0174BBE
-:10317000984205D0164B984202D0164B984203D184
-:1031800022F44072CB681A4322F080034C6943EA70
-:10319000040202608B68C3620B688362094B984229
-:1031A00002D0094B984201D10B69036301234361AB
-:1031B000036903F001031BB1036923F001030361F9
-:1031C00010BD0000002C014000340140000400400C
-:1031D00000080040000C004070B505466C6A0020F5
-:1031E000E085E0842046FEF751FE70BD70B50646CE
-:1031F0000025746A20684069C0F3C01594F8410046
-:10320000212805D125B10020E084204600F0C8F82F
-:1032100020684069C0F3801594F84200222805D147
-:1032200025B10020E085204600F074F8606C40F085
-:10323000100060642046FEF729FE70BD70B505469B
-:103240006C6A2868006800F02000002842D1E08500
-:1032500000BF00BF21680C3151E8001F21F48070CD
-:1032600021680C3141E80002002AF3D100BF00BF01
-:1032700000BF2168143151E8001F21F001002168CE
-:10328000143141E80002002AF3D100BF00BF00BFA3
-:103290002168143151E8001F21F0400021681431E9
-:1032A00041E80002002AF3D100BF202084F8420048
-:1032B000206B01280ED100BF00BF21680C3151E8FE
-:1032C000001F21F0100021680C3141E80002002AA3
-:1032D000F3D100BF00206063206B012804D1A18DD1
-:1032E0002046FEF7BBFD02E02046FEF7EFFF70BD73
-:1032F00070B505466C6A01206063206B012805D11A
-:10330000A08D41082046FEF7A9FD02E02046FFF708
-:103310002BF870BD00BF00BF02680C3252E8002FCE
-:1033200022F4907102680C3242E80013002BF3D1B2
-:1033300000BF00BF00BF0268143252E8002F22F025
-:1033400001010268143242E80013002BF3D100BFE0
-:10335000016B01290ED100BF00BF02680C3252E898
-:10336000002F22F0100102680C3242E80013002BFB
-:10337000F3D100BF202180F8421000210163704783
-:1033800010B504462068C06820F040002168C8607D
-:10339000202084F841002046FFF746F8002010BDA9
-:1033A00000BF00BF02680C3252E8002F22F0C001BB
-:1033B00002680C3242E80013002BF3D100BF202139
-:1033C00080F841107047F8B5044694F8420022286E
-:1033D00075D1A068B0F5805F0CD1206950B9002587
-:1033E000A66A20684068C0F308003080A06A801C8C
-:1033F000A06215E0A56A0026A068B0F5805F03D042
-:10340000A06828B9206918B920684068287004E0CD
-:103410002068406800F07F002870A06A401CA0620D
-:10342000E08D401E80B2E085002846D12068C0684B
-:1034300020F020002168C8602068C06820F48070F7
-:103440002168C8602068406920F001002168486157
-:10345000202084F8420000206063206B012826D1E0
-:103460000020206300BF00BF21680C3151E8001F1D
-:1034700021F0100021680C3141E80002002AF3D14C
-:1034800000BF2068006800F0100010280AD100BFBB
-:10349000002000902068006800902068406800903C
-:1034A00000BF00BFA18D2046FEF7D8FC02E02046F9
-:1034B000FEF70CFF0020F8BD01E00020FBE7022032
-:1034C000F9E7000070B504462168096921F440510C
-:1034D000E2681143226811612269A168114362699F
-:1034E00041EA02052168C96841F20C62914329430F
-:1034F0002268D1602168496921F44071A2691143B1
-:10350000226851612D4A2168914202D1FEF75EF98D
-:1035100001E0FEF74BF900EBC00101EB001162681E
-:103520009200B1FBF2F100EBC00202EB0012636803
-:103530009B00B2FBF3F26423B2FBF3F202EBC20393
-:1035400003EB0212A1EB8201322202EB0111642291
-:10355000B1FBF2F101F0F00100EBC00202EB00124E
-:1035600063689B00B2FBF3F26423B2FBF3F201EB5E
-:10357000021200EBC00101EB001163689B00B1FB7C
-:10358000F3F100EBC00303EB00136668B600B3FB76
-:10359000F6F36426B3FBF6F303EBC30606EB031363
-:1035A000A1EB8301322303EB01116423B1FBF3F19F
-:1035B00001F00F0111442268916070BD0038014094
-:1035C00077B581B0044615460298A062A585002013
-:1035D0006064222084F842002848E16B8862284811
-:1035E000E16BC8622748E16B08630020E16B486328
-:1035F00002AE32682368191D2B46E06BFDF760FCB4
-:1036000000BF00200090206800680090206840689B
-:10361000009000BF00BF206970B100BF00BF2168EB
-:103620000C3151E8001F41F4807021680C3141E8F1
-:103630000002002AF3D100BF00BF00BF216814318F
-:1036400051E8001F41F001002168143141E80002F7
-:10365000002AF3D100BF00BF00BF2168143151E838
-:10366000001F41F040002168143141E80002002AA7
-:10367000F3D100BF002004B070BD00003D3200084F
-:10368000F1320008ED31000810B5034699629A85C1
-:10369000DA8500205864222083F84200186928B196
-:1036A0001868C06840F480701C68E0601868406961
-:1036B00040F001001C6860611868C06840F020009C
-:1036C0001C68E060002010BD014691F841002128EF
-:1036D00028D18868B0F5805F0BD1086948B90A6ABB
-:1036E0001088C0F308000B685860086A801C0862E4
-:1036F00005E00B6A581C086218780B685860C88C83
-:10370000401E80B2C88458B90868C06820F08000A4
-:103710000B68D8600868C06840F040000B68D8604B
-:10372000002070470220FCE72DE9F84304460D46CF
-:1037300017469846089E31E0701C70B3FDF798FE5E
-:10374000A0EB0800B04200D816B90320BDE8F8830A
-:103750002068C06800F00400F8B1802D1ED0402D14
-:103760001CD020680068C0F3C000B0B100BF0020CA
-:10377000009020680068009020684068009000BFBA
-:1037800000BF2046FFF7C6FD0820606400BF002090
-:1037900084F8400000BF0120D8E7FFE720680068F8
-:1037A0002840A84201D1012000E00020B842C3D047
-:1037B0000020CBE70021044A1268D1B241EA00227E
-:1037C000014B1A60704700000C18014010B5024808
-:1037D000FEF75EFB10BD00001C01002010B5024882
-:1037E000FEF756FB10BD0000D80F002000BFFEE71B
-:1037F00000B585B000BF00BF0C48806940F00400F0
-:103800000A4988610846806900F00400009000BF02
-:1038100000BF00BF0120019002900390032004909C
-:1038200001A90348FDF76CFC05B000BD0010024083
-:103830000008014010B5044600BF00224FF480414B
-:103840001648FDF70FFE00BF00BF01221103134809
-:10385000FDF708FE00BF2046FFF7ACFF00BF0022C7
-:103860004FF400610D48FDF7FDFD00BF00BF0022D1
-:103870004FF400510948FDF7F5FD00BF00BF0122DC
-:1038800051030648FDF7EEFD00BF00BF0122D10243
-:103890000248FDF7E7FD00BF10BD0000000C01402D
-:1038A00010B5044600BF012291031648FDF7DAFD6A
-:1038B00000BF00BF012211031248FDF7D3FD00BF76
-:1038C0002046FFF777FF00BF00224FF400610D484C
-:1038D000FDF7C8FD00BF00BF00224FF400510948AA
-:1038E000FDF7C0FD00BF00BF012251030548FDF7F1
-:1038F000B9FD00BF00BF0122D1020248FDF7B2FDB1
-:1039000000BF10BD000C014002480068C0F3022057
-:10391000704700000CED00E010B5002804DB0A073A
-:10392000130E054A135406E00A07140E034A00F06A
-:103930000F031B1FD45410BD00E400E018ED00E09D
-:1039400000BF704708B1072900DB704700F10C0386
-:1039500043F8212000BFF8E770B504467CB1084861
-:10396000006860B12579082D08D205EB4501054AAC
-:1039700002EB8101087A02490968884700BF70BDDF
-:10398000280000200452000870B5044600BF2079CA
-:10399000A16888470546E07800F00700002802DDAE
-:1039A0002088401C2080E078B5EBD01F13D0E07851
-:1039B000C008401CE17860F3C501E170C1F3C200AA
-:1039C00003280CDBE07865F3C710E070E07820F0A6
-:1039D0003800E07003E0E07820F03800E070E07834
-:1039E00000F0070005287DD2DFE800F0032858AF7B
-:1039F000DB00E078C0F38010E178B0EBD11F17D185
-:103A0000A07820F0F000A07000BFE06810B1204660
-:103A1000E168884700BF00202080A07820F00F00D8
-:103A2000401CA070E07820F00700401CE07004E02B
-:103A3000A07820F0F0008030A070DBE0E078C0F3E8
-:103A40008010E178B0EBD11F13D0A07820F0F00007
-:103A50001030A07000BF206910B12046216988474E
-:103A600000BF00202080E07820F00700801CE0707C
-:103A700013E02088C82810DDA07820F0F000503036
-:103A8000A07000BF206A10B12046216A884700BF9D
-:103A9000E07820F00700001DE070ABE0E078C0F3B4
-:103AA0008010E178B0EBD11F25D1A07820F0F00094
-:103AB000A07000BFE06810B12046E168884700BFF1
-:103AC000A07800F00F000F2804DAA078411C61F301
-:103AD0000300A07000BF606910B12046616988478B
-:103AE00000BF00E081E000202080E07820F00700A7
-:103AF000C01CE07028E020883C2825DDA07800F07C
-:103B00000F0001280BD1A07820F0F0003030A07019
-:103B100000BFA06910B12046A169884710E0A078D5
-:103B200000F00F0002280BD1A07820F0F000403008
-:103B3000A07000BFE06910B12046E169884700BF6E
-:103B4000E07820F00700E07054E0E078C0F38010E7
-:103B5000E178B0EBD11F1BD0A07820F0F00010303E
-:103B6000A07000BF206910B120462169884700BFBE
-:103B700020883C2807DA00202080E07820F0070029
-:103B8000801CE0700CE0E07820F00700E07007E0B7
-:103B900020883C2804DDE07820F00700401CE0701D
-:103BA00028E0E078C0F38010E178B0EBD11F0BD1B2
-:103BB000A07820F0F0006030A07000BF606A10B103
-:103BC0002046616A88470FE0A07820F0F0001030AE
-:103BD000A07000BF206910B120462169884700BF4E
-:103BE000E07820F00700E07004E0E07820F00700C3
-:103BF000E07000BF00BF70BD2DE9F04104460D46E6
-:103C000016461F4604B10DB9BDE8F0812C212046AF
-:103C1000FCF787FBA07820F0F0008030A070A56052
-:103C20000EB9012000E00020E17860F3C711E170D7
-:103C3000E07866F38610E0702771E07820F00700E6
-:103C4000E07000BFE0E7000070B5044604EB4402FA
-:103C5000064B33F8221004EB440203EB8202506857
-:103C6000FDF7EEFB0546284670BD00000452000833
-:103C7000014611B96FF0010070470948026805E07C
-:103C80008A4202D14FF0FF30F6E7926A002AF7D15C
-:103C9000034800688862024801600020ECE70000E9
-:103CA0003400002010B50548046803E02046FFF703
-:103CB0006BFEA46A002CF9D110BD00003400002076
-:103CC00001490860704700001000002010B504464C
-:103CD0004FF47A7104FB01F000F002F810BD00000F
-:103CE00070B5034600224FF0E02675690D4E366828
-:103CF00003FB06F44FF0E026B16910E04FF0E02638
-:103D0000B06988420BD0884202D20E1A324402E0D7
-:103D10002E1A0E4432440146A24200D300E0EDE7E1
-:103D200000BF70BD1000002038B504460D4600BF2E
-:103D300000BF1248C06940F001001049C861084640
-:103D4000C06900F00100009000BF00BF00BF880400
-:103D50000B4908600846456000218160C460FDF79A
-:103D6000C9FF002202211C20FDF7DFFB1C20FDF70C
-:103D7000CCFB0348FDF7F2FF38BD00000010024005
-:103D80009C010020FDF786FB4FF4E01000F04AF89C
-:103D90004820FFF795FFFEF7E7FDFEF70FFCFFF762
-:103DA00027FDFEF739FFFEF7D7FEFEF715FFFEF7FA
-:103DB000E9FE41F61F413120FFF7B6FF1348FEF739
-:103DC0007DFC22E012480078012809D111480078D2
-:103DD000012805D100200F4908700120FEF792FE4E
-:103DE0000B4801780C480078FEF7D2FF08490870AC
-:103DF000002009490870094800680949884204D927
-:103E0000FDF7E6FB002005490860DBE7992600087E
-:103E10000600002004000020050000200000002013
-:103E200040420F0030B58FB005460124282105A877
-:103E3000FCF777FA14216846FCF773FA0120059025
-:103E4000000406900020079002200C90C1030D9101
-:103E50000E9505A8FDF702FD04460CB100BFFEE774
-:103E60000F20009002200190002002904FF480600B
-:103E700003900020049002216846FDF7CBFB044626
-:103E80000CB100BFFEE70FB030BD0000F8B505462D
-:103E90000E4614460BA00068009031462846FFF7F6
-:103EA000EFF8694601EB94110878FFF7F9FCC4F3C9
-:103EB00040121DF81200FFF7F3FC9DF80000FFF719
-:103EC000EFFCF8BD000FF0FF000000000000000054
-:103ED00001020304060708090000000001020304B0
-:103EE00002030405060708090A0B0C0D0E0F10103B
-:103EF0000102000000100140000100010300000069
-:103F00000100000000100140000200010300000059
-:103F10000100000000080140000200010300000051
-:103F2000010000000008014000080001030000003B
-:103F300001000000000801400080000103000000B3
-:103F40000100000000100140000800010300000013
-:103F50000100000000140140010000010300000006
-:103F600001000000001401400400000103000000F3
-:103F700001000000001401401000000103000000D7
-:103F80000100000000140140400000010300000097
-:103F9000010000000010014080000001030000004B
-:103FA00001000000000801400001000103000000C2
-:103FB00001000000000801400004000103000000AF
-:103FC0000100000000080140001000010300000093
-:103FD0000100000000100140000400010300000087
-:103FE000010000000010014000100001030000006B
-:103FF0000100000000140140020000010300000065
-:10400000010000000014014008000001030000004E
-:104010000100000000140140200000010300000026
-:1040200001000000001401408000000103000000B6
-:10403000010000000000000000000000000000007F
-:1040400000002020202020200020000000285050C8
-:10405000000000000000000000002828FC2850FCA0
-:1040600050500000002078A8A0603028A8F0200060
-:10407000000048A8B05028345448000000002050E8
-:104080005078A8A8906C000000404080000000001C
-:1040900000000000000408101010101010080400A8
-:1040A00000402010101010101020400000000020D0
-:1040B000A87070A8200000000000202020F8202018
-:1040C00020000000000000000000000000404080D0
-:1040D0000000000000F800000000000000000000E8
-:1040E0000000000060600000000810101020204058
-:1040F00040408000000070888888888888700000B0
-:104100000000206020202020207000000000708827
-:104110008810204080F800000000708808300808EF
-:104120008870000000001030505090781018000087
-:104130000000F88080F0080888700000000070908F
-:1041400080F08888887000000000F89010202020FF
-:104150002020000000007088887088888870000027
-:1041600000007088888878084870000000000060AF
-:1041700060000000006060000000000000200000FF
-:104180000020200000040810204020100804000037
-:1041900000000000F80000F80000000000402010BF
-:1041A00008040810204000000000708888102020BB
-:1041B000002000000000708898A8A8B8807800004F
-:1041C000000020203050507848CC00000000F0481B
-:1041D0004870484848F0000000007888808080805F
-:1041E000887000000000F0484848484848F0000047
-:1041F0000000F8485070504048F800000000F848AF
-:104200005070504040E000000000384880809C889A
-:10421000483000000000CC484878484848CC0000AE
-:104220000000F8202020202020F8000000007C1052
-:10423000101010101090E0000000EC48506050503A
-:1042400048EC00000000E0404040404044FC0000DA
-:104250000000D8D8D8D8A8A8A8A800000000DC483A
-:104260006868585848E80000000070888888888886
-:10427000887000000000F0484870404040E00000B6
-:1042800000007088888888E8987018000000F0485E
-:104290004870504848EC00000000788880601008A2
-:1042A00088F000000000F8A82020202020700000E6
-:1042B0000000CC4848484848483000000000CC483E
-:1042C00048505030202000000000A8A8A87050508E
-:1042D000505000000000D8505020205050D800000E
-:1042E0000000D85050202020207000000000F890DE
-:1042F0001020204048F800000038202020202020F6
-:1043000020203800004040402020101010080000FD
-:1043100000701010101010101010700000205000CD
-:10432000000000000000000000000000000000008D
-:10433000000000FC00200000000000000000000061
-:104340000000000000304838483C00000000C04039
-:1043500040704848487000000000000000384840A5
-:10436000403800000000180808384848483C000061
-:1043700000000000003048784038000000001C2099
-:10438000207820202078000000000000003C483009
-:10439000407844380000C0404070484848EC000075
-:1043A00000002000006020202070000000001000AD
-:1043B00000301010101010E00000C040405C507041
-:1043C00048EC00000000E0202020202020F8000021
-:1043D0000000000000F0A8A8A8A80000000000004D
-:1043E00000F0484848EC0000000000000030484859
-:1043F000483000000000000000F04848487040E0ED
-:1044000000000000003848484838081C0000000040
-:1044100000D8604040E0000000000000007840301C
-:1044200008780000000000202070202020180000E4
-:104430000000000000D84848483C00000000000090
-:1044400000EC4850302000000000000000A8A870D8
-:10445000505000000000000000D8502050D800004C
-:104460000000000000EC4850302020C00000000098
-:104470000078102020780000001810101020101074
-:104480001010180010101010101010101010101034
-:1044900000602020201020202020600040A4180070
-:1044A000000000000000000000000000000000000C
-:1044B0000000000000001010101010100018000084
-:1044C0000012244800000000000000000000242426
-:1044D000FE4848FE4848000000103C545030181474
-:1044E000547810000000E4A4A8F01E2A2A4E000010
-:1044F00000003048487EA494887700000060204087
-:10450000000000000000000000020C081010101055
-:104510000808060000402010080808081020400085
-:1045200000000010927C7C9210000000000010102F
-:1045300010FE10101000000000000000000000003D
-:104540000060204000000000007F0000000000002C
-:1045500000000000000000000060000000010206F2
-:10456000040808102020400000003C24424242423F
-:10457000243C00000000107010101010107C00008F
-:1045800000003C4242040810627E000000003C42F1
-:10459000021C0202423C000000000C142444443C73
-:1045A000040C000000007E40407C0202423C0000FF
-:1045B00000001C24405C6242623C000000007E441B
-:1045C000080810101010000000003C4242342C4239
-:1045D000423C00000000186442463A02243C0000BD
-:1045E000000000001800000000180000000000009B
-:1045F00000100000001010000002041820402010DD
-:104600000C02000000000000FE0000FE00000000A0
-:1046100000402018040204083040000000003C4222
-:1046200062020C080018000000003C469AAAAABCCE
-:10463000403E0000000010182824247C42E70000BF
-:104640000000F8444478464242FC000000003E422C
-:1046500080808080423C00000000F8444242424298
-:1046600044F800000000FC424878484042FC00004A
-:104670000000FC424878484040E0000000003C4414
-:1046800080808E84443800000000E742427E42422F
-:1046900042E7000000007C1010101010107C000099
-:1046A00000003E08080808080888F0000000EE44F2
-:1046B0004870504844EE00000000E0404040404058
-:1046C00042FE00000000EE6C6C6C545454D60000A6
-:1046D0000000C76252524A4646E2000000003C44D5
-:1046E00082828282443800000000FC42427C4040CA
-:1046F00040E0000000003844828282B24C3806005C
-:104700000000FC42427C484446E3000000003E4278
-:1047100040380402427C00000000FE92101010108D
-:10472000103800000000E74242424242423C000092
-:104730000000E74244242C28181000000000D69204
-:1047400092929A6C644400000000E76624181824D2
-:1047500066E700000000EE44283810101038000012
-:1047600000007E840810102042FC0000001E101083
-:104770001010101010101E0000402020101008080B
-:1047800004040200007808080808080808087800EF
-:10479000001C2200000000000000000000000000DB
-:1047A00000000000000000FF0020000000000000EA
-:1047B0000000000000000000003C423E423F0000BC
-:1047C0000000C040405C6242427C000000000000EB
-:1047D000003C6240423C000000000602021E6242B1
-:1047E000423F000000000000003C427E403E0000CE
-:1047F00000000F10107E1010107C00000000000060
-:10480000003E4438407C423C0000C040405C624274
-:1048100042E700000000300000701010107C000023
-:1048200000000C00001C0404040404780000C040D4
-:10483000404E587048EE000000007010101010102C
-:10484000107C00000000000000FF494949ED000015
-:104850000000000000D8664242E7000000000000AF
-:10486000003C4242423C00000000000000F846428A
-:10487000427C40E000000000003E4242423E02070F
-:104880000000000000EE302020F8000000000000D2
-:10489000003E403C427C000000000010107C1010E4
-:1048A000100C00000000000000C64242423F000021
-:1048B0000000000000E7462428100000000000006F
-:1048C00000D7929A6A44000000000000006E3C1875
-:1048D0003C7600000000000000E74624181810E0B5
-:1048E00000000000007E4418327E0000000704042F
-:1048F0000408040404040300080808080808080859
-:10490000080808080070101010081010101060003F
-:10491000304C030000000000000000000000000018
-:104920000000000000000000000000000000000087
-:104930000000000000000000070007000700020060
-:1049400002000200000007000000000000000660F6
-:104950000CC0330000000000000000000000000058
-:104960000000000000000000104010407FE01040F8
-:1049700020807FE0208020800000000000000200F6
-:104980001F8032C032000E00038002C032C01F8080
-:104990000200000000000000708089808900720021
-:1049A00005C00A20122021C0000000000000000005
-:1049B0001C002600240019C07880CD00C6007DE0D0
-:1049C0000000000000003800080030000000000077
-:1049D0000000000000000000000000000000004097
-:1049E00000800300060006000600060003000180A8
-:1049F000004000000000200018000C000600060027
-:104A0000060006000C001800200000000000000056
-:104A10000000030062301AC01FC0623006000000B0
-:104A200000000000000000000200020002007FF011
-:104A30000200020002000000000000000000000070
-:104A4000000000000000000000000000000038002E
-:104A500008003000000000000000000000007FE0BF
-:104A60000000000000000000000000000000000046
-:104A700000000000000000000000000000003800FE
-:104A80000000000000000020004000800100020043
-:104A9000040008001000200040000000000000009A
-:104AA0001F8030C0606060606060606030C01F80E8
-:104AB000000000000000000002003E0006000600AA
-:104AC0000600060006003FC00000000000000000D5
-:104AD0001F8061C060C0018002000C0030407FC0B8
-:104AE00000000000000000003F00618001800E0017
-:104AF000018000C061C03F00000000000000000015
-:104B0000018007800980118061801FC0018003C07F
-:104B100000000000000000003FC0200020002F80A7
-:104B200010C000C061C03F00000000000000000095
-:104B30000F8030C060006FC07060606030601F80A8
-:104B400000000000000000003FE020400080010065
-:104B50000200020006000600000000000000000045
-:104B60003FC060E060601F8031C0606070601F8087
-:104B700000000000000000001F8070C0606070E056
-:104B80003F6000E031C01F00000000000000000096
-:104B90000000000007000000000000000000070007
-:104BA00000000000000000000000000000000600FF
-:104BB0000000000000000600060000000000006089
-:104BC000008003000C003000080006000180006037
-:104BD0000000000000000000000000007FE0000076
-:104BE00000007FE000000000000000000000300036
-:104BF0000800060001800060008003000C00300007
-:104C000000000000000000001F8060E0606000C045
-:104C10000700040000000E0000000000000000007B
-:104C20000FC0382063D0649069906FE038000FE0C7
-:104C3000000000000000000006000F000B001180C3
-:104C400011803FC060C0F1F00000000000000000D3
-:104C5000FF8060C060C07F0060C0606060E0FF8077
-:104C600000000000000000000FE03820600060003D
-:104C70006000600030201FC0000000000000000045
-:104C8000FF0060C0606060606060606060C0FF00E6
-:104C90000000000000000000FFC0602061007F00F5
-:104CA000610060006020FFC0000000000000000004
-:104CB000FFC0602061007F00610060006000F000C4
-:104CC000000000000000000007C0384060006000E5
-:104CD00063F060C030C00F00000000000000000062
-:104CE000F0F0606060607FE0606060606060F0F0E5
-:104CF00000000000000000003FC0060006000600A3
-:104D00000600060006003FC0000000000000000092
-:104D10000FF00180018001800180018001806180AD
-:104D20003F00000000000000F1E0608067007C00B0
-:104D30006200610060C0F0F00000000000000000B0
-:104D4000F000600060006000600060006020FFC054
-:104D50000000000000000000F0F070E07960596091
-:104D60005E604E604C60E4F0000000000000000057
-:104D7000E070702058204620432041E04060E02051
-:104D800000000000000000001F8030C06060606014
-:104D90006060606030C01F80000000000000000004
-:104DA000FFC0606060607FC0600060006000F00075
-:104DB00000000000000000001F8030C060606060E4
-:104DC00060606E6031C01F0000E000000000000065
-:104DD000FFC0606060607F806300618060C0F070D1
-:104DE00000000000000000001FE0602060001F00C5
-:104DF00001C0006040E07F80000000000000000073
-:104E00007FE08610060006000600060006000F0080
-:104E10000000000000000000F070602060206020B2
-:104E20006020602060603FC00000000000000000C3
-:104E3000F8F030403040188018800D000F00060058
-:104E40000000000000000000F77066206240334060
-:104E500037803F8019801100000000000000000032
-:104E600079E018800D00060007000980104078E006
-:104E70000000000000000000F1F020401080090058
-:104E80000600060006001F80000000000000000071
-:104E90003FC06080010002000400080010203FC0F5
-:104EA00000000000000007E004000400040004000B
-:104EB000040004000400040007E0000000002000DB
-:104EC00010000800080004000200010000800080BB
-:104ED0000040000000003F0001000100010001004F
-:104EE00001000100010001003F0000000000070078
-:104EF00018C00000000000000000000000000000DA
-:104F000000000000000000000000000000000000A1
-:104F100000000000000000000000FFF000001C0086
-:104F20000000000000000000000000000000000081
-:104F300000000000000000000000000000001F80D2
-:104F400030C01FC060C03FF0000000000000000043
-:104F500070003000300037C03860306030603F8013
-:104F600000000000000000000000000000001F0022
-:104F70007180600070401F80000000000000000091
-:104F800001C000C000C01FC070C060C060C03FE072
-:104F900000000000000000000000000000000F8082
-:104FA00030603FE030000FC0000000000000000053
-:104FB00007E00C000C007FC00C000C000C003F80D0
-:104FC00000000000000000000000000000000FF0E2
-:104FD00030C01F8030003F8060603FC00000000094
-:104FE000700030003000378038C030C030C079E009
-:104FF00000000000000000000600000000003E006D
-:105000000600060006003FC000000000000000008F
-:105010000180000000000F8001800180018001807C
-:1050200001803F000000000070003000300033C0FD
-:1050300033003E00310079E0000000000000000075
-:105040003E000600060006000600060006003FC0FF
-:105050000000000000000000000000000000FFE071
-:10506000666066606660F770000000000000000087
-:10507000000000000000770038C030C030C079E088
-:1050800000000000000000000000000000001F8081
-:1050900070E0606070E01F80000000000000000011
-:1050A00000000000000077C03860306030E03F80D2
-:1050B00030007C00000000000000000000001FC065
-:1050C00070C060C060C03FC000C003E000000000CE
-:1050D000000000000000F9E01E0018001800FF00AA
-:1050E00000000000000000000000000000001FE0C1
-:1050F00030000F8020603FC0000000000000000072
-:10510000000004000C007F800C000C000C400380A9
-:10511000000000000000000000000000000071C05E
-:1051200030C030C030C01FE00000000000000000B0
-:1051300000000000000078F0104008800500020028
-:105140000000000000000000000000000000F7B0B8
-:10515000632037E03DC01880000000000000000020
-:105160000000000000007FE01D80060019807FE045
-:10517000000000000000000000000000000079E0D6
-:10518000108019000F000600040038000000000025
-:105190000000000000003FC02300060018203FE090
-:1051A00000000000000001C0010001000100060035
-:1051B000010001000100010000C000000200020027
-:1051C00002000200020002000200020002000200CF
-:1051D0000200020000003800080008000800060075
-:1051E0000800080008000800300000003C004710DC
-:1051F00001E00000000000000000000000000000CE
-:105200000000000000100000001401400100000038
-:10521000000800000014014002000000000400002B
-:1052200000140140030000000020000000140140B1
-:105230000700000000010000001401400800000009
-:1052400000800000000C0140040000000800000085
-:10525000000C014005000000008000000014014027
-:105260000900000000C1814001C0804101C08041AF
-:1052700000C1814001C0804100C1814000C1814026
-:1052800001C0804101C0804100C1814000C1814016
-:1052900001C0804100C1814001C0804101C0804106
-:1052A00000C1814001C0804100C1814000C18140F6
-:1052B00001C0804100C1814001C0804101C08041E6
-:1052C00000C1814000C1814001C0804101C08041D6
-:1052D00000C1814001C0804100C1814000C18140C6
-:1052E00001C0804101C0804100C1814000C18140B6
-:1052F00001C0804100C1814001C0804101C08041A6
-:1053000000C1814000C1814001C0804101C0804195
-:1053100000C1814001C0804100C1814000C1814085
-:1053200001C0804100C1814001C0804101C0804175
-:1053300000C1814001C0804100C1814000C1814065
-:1053400001C0804101C0804100C1814000C1814055
-:1053500001C0804100C1814001C0804101C0804145
-:1053600000C1814000C0C101C30302C2C60607C715
-:1053700005C5C404CC0C0DCD0FCFCE0E0ACACB0B85
-:10538000C90908C8D81819D91BDBDA1A1EDEDF1FB5
-:10539000DD1D1CDC14D4D515D71716D6D21213D3A5
-:1053A00011D1D010F03031F133F3F23236F6F73755
-:1053B000F53534F43CFCFD3DFF3F3EFEFA3A3BFB45
-:1053C00039F9F83828E8E929EB2B2AEAEE2E2FEFF5
-:1053D0002DEDEC2CE42425E527E7E62622E2E32365
-:1053E000E12120E0A06061A163A3A26266A6A76795
-:1053F000A56564A46CACAD6DAF6F6EAEAA6A6BAB05
-:1054000069A9A86878B8B979BB7B7ABABE7E7FBF34
-:105410007DBDBC7CB47475B577B7B67672B2B37324
-:10542000B17170B0509091519353529296565797D4
-:10543000559594549C5C5D9D5F9F9E5E5A9A9B5BC4
-:1054400099595898884849894B8B8A4A4E8E8F4F74
-:105450008D4D4C8C448485458747468682424383E4
-:105460004181804084540008000000205400000066
-:105470006C010008D854000854000020BC2F000024
-:10548000880100080000000000000000000000008B
-:105490000024F400000000000000000000000000F4
-:1054A00000000000100000000100000000000000EB
-:1054B00000000000000000000000000000000000EC
-:1054C00000000000000000000000000000000000DC
-:0854D0000000000000000000D4
+:1003D00000802046BDE81040FFF7F1BE10B540F2A6
+:1003E00044620249024800F0B5F910BD181400201B
+:1003F00000F0030810B50B480068401C094908606C
+:100400000846006844F62061884209D30846054939
+:10041000086000BF00220121034800F0A5FF00BFD3
+:1004200010BD000028000020000C014010B500BFE6
+:1004300001221146034800F097FF00BF0020024947
+:10044000086010BD000C01402800002000BFFEE73E
+:10045000F0B502460C46FF21FF2509E012F8016BBA
+:1004600086EA0103084EF65C86EA0501074EF55C54
+:10047000261EA4F10107BCB2F0D108464FF6FF7664
+:1004800006EA00202843F0BD383C0008383D00084B
+:10049000F0B505460C46A01E2E5C4FF6FF7000EA34
+:1004A0000626601E285C0643A01E81B22846FFF780
+:1004B000CFFF0746BE4201D10120F0BD0020FCE77E
+:1004C00070B500BFD52002F0AFFF00BF0021084685
+:1004D00002F0DEFC002416E000250DE0002002F012
+:1004E000D9FF002002F0D6FF002002F0D3FF002049
+:1004F00002F0D0FF681C85B2142DEFDB002002F063
+:10050000C9FF601C84B2A02CE6DB70BD10B50248A8
+:1005100000F094FA10BD0000D413002070470000D2
+:100520002DE9F84F81460F46904630A000680090B4
+:1005300000BFD52002F078FF00BFB9F1A00F01D8AD
+:10054000A02F01D9BDE8F88FC9F1A0004008032110
+:10055000B0FBF1F000F0FF0AC7F1A00007EB50007C
+:1005600000F0FF0B4FEAD90600243BE0ABEB0400A0
+:10057000C1B2504602F08CFC00252CE004FB065171
+:1005800018F80110C943C1F381111DF8010002F0F0
+:1005900081FF04FB065118F80110C943C1F3011192
+:1005A0001DF8010002F076FF04FB065118F8011057
+:1005B000C943C1F381011DF8010002F06BFF04FB88
+:1005C000065118F80120032191431DF8010002F0A3
+:1005D00061FF681CC5B2B542D0D3002002F05AFFBB
+:1005E000601CC4B2BC42C1D300BFABE7000FF0FF38
+:1005F0000021074AD1610749096941F00401054A10
+:1006000011611146096941F0400111617047000014
+:1006100060010020002002400021074AD161074903
+:10062000096941F00201054A1161114648610969F1
+:1006300041F040011161704760010020002002403C
+:100640000022054BDA61054A126942F00102034BB0
+:100650001A61018070470000600100200020024004
+:1006600000201E49C96801F0100139B11C49C9694F
+:1006700041F002011A4AD16140F010001749C968DF
+:1006800001F0040139B11649C96941F00101144A68
+:10069000D16140F004001149C96901F0010169B15B
+:1006A0000F49C96941F004010D4AD16100BF0B49EE
+:1006B000C96921F00101094AD16100BF00BF40F2C0
+:1006C0000111884206D10549C96921F00101034A97
+:1006D000D16101E00149C86000BF704700200240BD
+:1006E0006001002070B5044600F044FE054609E0B4
+:1006F000601C38B124B100F03DFE401BA04201D97E
+:10070000032070BD1248C06800F001000028EFD13E
+:100710000F48C06800F0200020B100BF20200C4925
+:10072000C86000BF0A48C06800F0100048B9084817
+:10073000C06900F0010020B90548C06800F004005D
+:1007400018B1FFF78DFF0120DBE70020D9E700009B
+:10075000002002402DE9F74F88B005469046A5F1EC
+:100760000060079007984FEAD02A4FF0006000EB36
+:10077000CA26A81B06904FEA4807059506983844F4
+:100780004FEAD02B4FF00009002000900698384423
+:10079000C0F30A0008B10BF1010BB5F1006F03D3F0
+:1007A000E8192549884203D301200BB0BDE8F08F3A
+:1007B000B6F1006F02D32048864201D30120F4E74E
+:1007C00000F008FC0598C11906F5006081422ED39F
+:1007D000002414E000200190039601200490694653
+:1007E00001A800F03DFB8146B9F1000F03D000F0F5
+:1007F0008FFB4846D9E706F50066601C84B25C456D
+:10080000E8D3002410E0099830F814C005EB440147
+:1008100062460023012000F085FB8146B9F1000FFC
+:1008200000D003E0601C84B24445ECDB00BF00F064
+:100830006FFB4846B9E700000000040801460022AB
+:1008400091F82100022808D00420886300BF00200E
+:1008500081F8200000BF012070470868006820F080
+:100860000E000B6818600868006820F001000B6833
+:10087000186091F8403001209840CB6B58600120FF
+:1008800081F8210000BF002081F8200000BF104641
+:10089000E2E7000070B50446002594F82100022824
+:1008A00003D00420A0630125C1E02068006820F087
+:1008B0000E00216808602068006820F001002168AF
+:1008C00008605C492068884252D95A4978392068C2
+:1008D000884201D1012047E05649643920688842A6
+:1008E00001D1102040E0534950392068884201D19D
+:1008F000801539E04F493C392068884201D1801485
+:1009000032E04C4928392068884202D14FF48030C7
+:100910002AE0484914392068884202D14FF48010F7
+:1009200022E044492068884201D140041CE0424949
+:100930002068884201D1012016E03F491431206827
+:10094000884201D110200FE03B49283120688842BD
+:1009500001D1801508E038493C312068884201D136
+:10096000801401E04FF480303349091F086051E0E2
+:10097000304978392068884201D1012047E02D496B
+:1009800064392068884201D1102040E0294950395B
+:100990002068884201D1801539E026493C39206819
+:1009A000884201D1801432E02249283920688842E7
+:1009B00002D14FF480302AE01E4914392068884261
+:1009C00002D14FF4801022E01A492068884201D1F8
+:1009D00040041CE018492068884201D1012016E03B
+:1009E000154914312068884201D110200FE01249C6
+:1009F00028312068884201D1801508E00E493C3139
+:100A00002068884201D1801401E04FF48030094908
+:100A100080394860012084F8210000BF002084F85C
+:100A2000200000BF606B10B12046616B88472846EC
+:100A300070BD0000800002400804024070B504460A
+:100A4000E06B05682068066894F840100420884030
+:100A50002840002875D006F004000028FAD020684D
+:100A6000006800F0200028B92068006820F0040029
+:100A700021680860D5492068884254D9D34978391B
+:100A80002068884201D1042049E0D04964392068B7
+:100A9000884201D1402042E0CC4950392068884248
+:100AA00001D100153BE0C9493C392068884202D198
+:100AB0004FF4804033E0C54928392068884202D18C
+:100AC0004FF480202BE0C14914392068884202D1BC
+:100AD0004FF4800023E0BD492068884201D1C00462
+:100AE0001DE0BB492068884201D1042017E0B849C5
+:100AF00014312068884201D1402010E0B4492831E7
+:100B00002068884201D1001509E0B1493C312068D4
+:100B1000884202D14FF4804001E04FF48020AC497C
+:100B2000091F086054E0A94978392068884201D13A
+:100B300004204AE0A54964392068884202D1402057
+:100B400043E04CE0A14950392068884201D10015AA
+:100B50003BE09E493C392068884202D14FF48040F6
+:100B600033E09A4928392068884202D14FF4802026
+:100B70002BE0964914392068884202D14FF4800056
+:100B800023E092492068884201D1C0041DE09049C9
+:100B90002068884201D1042017E08D491431206873
+:100BA000884201D1402010E08949283120688842DC
+:100BB00001D1001509E086493C312068884202D104
+:100BC0004FF4804001E04FF4802080498039486034
+:100BD000E06A002802D02046E16A8847F4E094F8F1
+:100BE0004010022088402840002871D006F0020002
+:100BF0000028FAD02068006800F0200040B9206882
+:100C0000006820F00A0021680860012084F82100B3
+:100C10006E492068884254D96C49783920688842E6
+:100C200001D1022049E0694964392068884201D134
+:100C3000202042E0654950392068884201D14015A2
+:100C40003BE062493C392068884202D14FF40050B1
+:100C500033E05E4928392068884202D14FF40030E1
+:100C60002BE05A4914392068884202D14FF4001011
+:100C700023E056492068884201D180041DE0544990
+:100C80002068884201D1022017E0514914312068C0
+:100C9000884201D1202010E04D4928312068884247
+:100CA00001D1401509E04A493C312068884202D10F
+:100CB0004FF4005001E04FF400304549091F08602F
+:100CC00054E0424978392068884202D102204AE043
+:100CD00057E03E4964392068884201D1202042E033
+:100CE0003A4950392068884201D140153BE03749E4
+:100CF0003C392068884202D14FF4005033E0334938
+:100D000028392068884202D14FF400302BE02F4967
+:100D100014392068884202D14FF4001023E02B4997
+:100D20002068884201D180041DE02949206888425A
+:100D300001D1022017E0264914312068884201D1F0
+:100D4000202010E0224928312068884201D1401536
+:100D500009E01F493C312068884202D14FF400501D
+:100D600001E04FF4003019498039486000BF00208D
+:100D700084F8200000BFA06A30B32046A16A8847EB
+:100D800022E094F84010082088402840E0B106F0A6
+:100D90000800C8B12068006820F00E0021680860D3
+:100DA00094F8401001208840E16B48600120A06366
+:100DB00084F8210000BF002084F8200000BF206BD1
+:100DC00010B12046216B884770BD000080000240B2
+:100DD000080402400146002209B9012070471E4B59
+:100DE000086898420BD21D4B0868C01A1423B0FB48
+:100DF000F3F08000086419480838C8630AE0164B0D
+:100E00000868C01A1423B0FBF3F08000086412488D
+:100E10000838C863022081F821000868026843F698
+:100E2000F0708243D1E901031843CB6818430B6982
+:100E300018434B6918438B691843CB691843024325
+:100E40000868026000208863012081F821000020EA
+:100E500081F8200000BFC1E70804024008000240FA
+:100E60002DE9F04104460E460127002500BF264823
+:100E7000007E012802D10220BDE8F0810120224934
+:100E8000087600BF2068022813D14CF25030FFF7DB
+:100E900029FC90BB0120FFF7ABFB4CF25030FFF771
+:100EA00021FC07461948006920F004001749086131
+:100EB00023E04CF25030FFF715FCF0B94FF0FF3053
+:100EC0003060A56812E02846FFF7A6FB4CF25030D0
+:100ED000FFF708FC07460D48006920F002000B49A7
+:100EE00008610FB1356007E005F50065D4E902102F
+:100EF00001EBC020A842E6D800BF00BF0020024995
+:100F0000087600BF3846B7E76001002000200240A5
+:100F10000348006940F080000149086100207047E3
+:100F2000002002402DE9FE4F05468B4617469846A5
+:100F3000012600240020029000BF2448007E0128E2
+:100F400002D10220BDE8FE8F01202049087600BFB3
+:100F50004CF25030FFF7C6FB064686BB012D02D18E
+:100F60000120029006E0022D02D10220029001E051
+:100F70000420029000241EE02201B946C2464846E1
+:100F80005146FFF744F980B20190022000FB04B003
+:100F900000900199FFF754FB4CF25030FFF7A2FB91
+:100FA00006460B48006920F001000949086106B1B6
+:100FB00004E0601CC4B202988442DDDB00BF00BFC5
+:100FC00000200249087600BF3046BBE760010020E0
+:100FD0000020024000200849096901F0800151B158
+:100FE0000649054A5160064951601146096901F0F8
+:100FF000800101B1012070470020024023016745B4
+:10100000AB89EFCD2DE9F847024600239C467BE1F2
+:101010004FF0010808FA03F4D1F8008008EA040050
+:10102000A0427DD1DFF8F4A2D1F80480A8EB0A0930
+:10103000D0453AD014DCB8F1030F50D009DCB8F138
+:10104000000F31D0B8F1010F1CD0B8F1020F49D117
+:1010500020E0B8F1110F18D0B8F1120F42D11EE004
+:10106000B9F5881F25D006DCB9F5803F20D0B9F549
+:10107000801F37D11AE0B9F5001F18D0B9F5041F49
+:1010800030D117E0D1F80CC02DE0D1F80C8008F178
+:10109000040C28E0D1F80C8008F1080C23E0D1F80A
+:1010A0000C8008F10C0C1EE000BF00BF00BF00BFA9
+:1010B00000BF00BFD1F80880B8F1000F02D14FF097
+:1010C000040C0BE0D1F80880B8F1010F03D14FF008
+:1010D000080C146102E04FF0080C546103E04FF07B
+:1010E000000C00E000BF00BFFF2801D8904601E0DF
+:1010F00002F104084646FF2802D84FEA830803E0BD
+:10110000A3F108084FEA88084746D6F800804FF058
+:101110000F0909FA07F928EA09080CFA07F900E0AB
+:101120007AE048EA0908C6F80080D1F8048008F09F
+:101130008058B8F1805F6FD100BFDFF8E481D8F844
+:10114000188048F00108DFF8D891C9F81880C8461F
+:10115000D8F8188008F00108CDF8008000BF00BF63
+:101160004FEAB9384FEA930958F829504FEA837883
+:101170004FEA18794FF00F0808FA09F825EA080530
+:10118000DFF8A081424502D14FF0000824E0DFF8EB
+:101190009881424502D14FF001081DE0DFF88C81B3
+:1011A000424502D14FF0020816E0DFF88481424543
+:1011B00002D14FF003080FE0DFF87881424502D1F9
+:1011C0004FF0040808E0DFF87081424502D14FF08B
+:1011D000050801E04FF006084FEA83794FEA1979D4
+:1011E00008FA09F848EA0505DFF850814FEA930943
+:1011F00048F82950D1F8048008F48018B8F5801F09
+:101200000BD1DFF83C81D8F8008048EA0008DFF80D
+:101210003091C9F800800AE075E0DFF82481D8F841
+:10122000008028EA0008DFF81891C9F80080D1F89A
+:10123000048008F40018B8F5001F0ED1DFF8008113
+:1012400008F10408D8F8008048EA0008DFF8F090B8
+:1012500009F10409C9F800800DE0DFF8E48008F125
+:101260000408D8F8008028EA0008DFF8D49009F1D3
+:101270000409C9F80080D1F8048008F40038B8F5F2
+:10128000003F0ED1DFF8B880A8F10408D8F800803C
+:1012900048EA0008DFF8A890A9F10409C9F800801D
+:1012A0000DE0DFF89C80A8F10408D8F8008028EA57
+:1012B0000008DFF88C90A9F10409C9F80080D1F882
+:1012C000048008F48038B8F5803F0ED1DFF87080D4
+:1012D000A8F10808D8F8008048EA0008DFF8609014
+:1012E000A9F10809C9F800800DE0DFF85480A8F1E1
+:1012F0000808D8F8008028EA0008DFF84490A9F12F
+:101300000809C9F800805B1CD1F8008028FA03F8AE
+:10131000B8F1000F7FF47CAEBDE8F8870000111033
+:101320000010024000080140000C01400010014084
+:101330000014014000180140001C01400800014059
+:1013400008040140024693680B400BB1012000E005
+:101350000020704710B5C26821EA020302EA0104C6
+:1013600043EA0443036110BD0AB1016101E00B04CB
+:1013700003617047014800687047000018000020B2
+:101380000348006803490978084401490860704728
+:10139000180000202000002010B50848006840F028
+:1013A000100006490860032000F080F80F2000F0CC
+:1013B00007F800F02BF8002010BD000000200240CC
+:1013C00070B504460E4800784FF47A71B1FBF0F026
+:1013D0000C490968B1FBF0F5284600F0F3FB08B1B1
+:1013E000012070BD102C07D200222146501E00F0B3
+:1013F0001EF80548046001E00120F2E70020F0E754
+:1014000020000020080000201C000020704701463A
+:101410000846002809DB00F01F0301229A40430917
+:101420009B0003F1E023C3F8002100BF70472DE9C2
+:10143000F05F80460D461646002702F05FF807462B
+:1014400039462A46334601F00700C0F1070ABAF1CF
+:10145000040F02D94FF0040A01E0C0F1070AD14697
+:1014600000F1040ABAF1070F02D24FF0000A01E0BE
+:10147000A0F1030AD4464FF0010A0AFA09FAAAF1C8
+:10148000010A0AEA020A0AFA0CFA4FF0010B0BFAF7
+:101490000CFBABF1010B0BEA030B4AEA0B042146F0
+:1014A000404602F033F8BDE8F09F000000BF00F0B6
+:1014B0000702064B19684FF6FF031940044B0B4314
+:1014C00043EA0221014B196000BF70470CED00E0B8
+:1014D0000000FA0500BF00BF00BF00BF00BFBFF3A0
+:1014E0004F8F00BF00BF00BF0948006800F4E060F4
+:1014F00008490843001D0649086000BF00BF00BF3F
+:10150000BFF34F8F00BF00BF00BF00BF00BFFDE7AC
+:101510000CED00E00000FA0570B504460D460CB96C
+:10152000012070BD5A48006800F00700A8420ED2A2
+:101530005748006820F007002843554908600846CE
+:10154000006800F00700A84201D00120E9E72078F8
+:1015500000F0020002281DD1207800F004000428C9
+:1015600005D14C48406840F4E0604A494860207822
+:1015700000F00800082805D14648406840F4605053
+:10158000444948604348406820F0F000A16808439F
+:1015900040494860207800F0010078B36068012875
+:1015A00006D13C48006800F4003090B90120B8E74B
+:1015B0006068022806D13748006800F0007040B922
+:1015C0000120AEE73348006800F0020008B90120AE
+:1015D000A7E73048406820F00300616808432D49C0
+:1015E0004860FFF7C7FE064609E0FFF7C3FE801B11
+:1015F00041F28831884202D9032092E707E025486A
+:10160000406800F00C006168B0EB810FEDD120481C
+:10161000006800F00700A8420ED91D48006820F0BD
+:10162000070028431A4908600846006800F00700D0
+:10163000A84201D0012074E7207800F004000428BB
+:1016400007D11448406820F4E060E168084311497C
+:101650004860207800F00800082808D10D4840684C
+:1016600020F46050216940EAC1000A49486000F056
+:101670003FF808494968C1F30311074A515CC84063
+:101680000649086006480068FFF79AFE002048E710
+:1016900000200240001002407A3A000808000020B2
+:1016A0001C0000200148006870470000080000206E
+:1016B00000B5FFF7F7FF04494968C1F30221034A67
+:1016C000515CC84000BD0000001002408A3A00088A
+:1016D00000B5FFF7E7FF04494968C1F3C221034A97
+:1016E000515CC84000BD0000001002408A3A00086A
+:1016F00070B500210022002400230020134D6968EA
+:1017000001F00C05F5B1042D02D0082D19D101E02E
+:101710000F4819E00F4DC1F38346AB5D01F48035EE
+:1017200055B10A4D6D68C5F340450B4E725D084DCD
+:101730005D43B5FBF2F402E0084D03FB05F42046DF
+:1017400002E000BF024800BF00BF70BD00100240B1
+:1017500000127A00923A0008A23A000800093D00FF
+:10176000F8B504460CB90120F8BD207800F001005E
+:10177000002878D0F848406800F00C0004280CD00D
+:10178000F548406800F00C00082811D1F248406884
+:1017900000F48030B0F5803F0AD1EF48006800F4D3
+:1017A000003000285FD0606800285CD10120DBE7B2
+:1017B00000BF6068B0F5803F06D1E748006840F49C
+:1017C0008030E549086028E0606858B9E248006860
+:1017D00020F48030E04908600846006820F480204A
+:1017E00008601AE06068B0F5A02F0BD1DA480068F5
+:1017F00040F48020D84908600846006840F48030F2
+:1018000008600AE0D448006820F48030D2490860BB
+:101810000846006820F48020086000BF606888B136
+:10182000FFF7A8FD054606E0FFF7A4FD401B64286E
+:1018300001D9032098E7C848006800F40030002868
+:10184000F2D010E0FFF796FD054606E0FFF792FDA7
+:10185000401B642801D9032086E7BF48006800F4D4
+:1018600000300028F2D1207800F00200022857D181
+:10187000B948406800F00C0050B1B748406800F02B
+:101880000C00082818D1B448406800F4803098B99A
+:10189000B148006800F0020020B12069012801D0A1
+:1018A000012061E7AC48006820F0F800616940EA77
+:1018B000C100A949086033E02069E8B10120A749C7
+:1018C0000860FFF757FD054606E0FFF753FD401B94
+:1018D000022801D9032047E79F48006800F0020072
+:1018E0000028F2D09C48006820F0F800616940EAC6
+:1018F000C1009949086013E0002098490860FFF78B
+:1019000039FD054606E0FFF735FD401B022801D9E9
+:10191000032029E79048006800F002000028F2D177
+:10192000207800F0080008282DD1A069B8B1012066
+:101930008B490860FFF71EFD054606E0FFF71AFD1C
+:10194000401B022801D903200EE78348406A00F0BB
+:1019500002000028F2D0012001F058F813E0002026
+:101960007F490860FFF706FD054606E0FFF702FD28
+:10197000401B022801D90320F6E67748406A00F0B0
+:1019800002000028F2D1207800F00400042873D16E
+:1019900000277148C06900F0805070B900BF6E48E0
+:1019A000C06940F080506C49C8610846C06900F0C9
+:1019B0008050009000BF00BF01276A48006800F413
+:1019C0008070B0B96748006840F48070654908606D
+:1019D000FFF7D0FC054606E0FFF7CCFC401B64286F
+:1019E00001D90320C0E65F48006800F48070002839
+:1019F000F2D000BFE068012806D15748006A40F0E5
+:101A000001005549086227E0E06858B95248006A69
+:101A100020F00100504908620846006A20F00400E6
+:101A2000086219E0E06805280BD14B48006A40F0D5
+:101A30000400494908620846006A40F00100086253
+:101A40000AE04548006A20F0010043490862084660
+:101A5000006A20F00400086200BFE068A0B1FFF750
+:101A600089FC054609E0FFF785FC401B41F28831FF
+:101A7000884202D9032077E622E03748006A00F066
+:101A800002000028EFD012E0FFF774FC054608E0E2
+:101A9000FFF770FC401B41F28831884201D90320D6
+:101AA00062E62D48006A00F002000028F0D1012F04
+:101AB00005D12948C06920F080502749C86100BF7E
+:101AC000E069C8B32448406800F00C00082860D0E2
+:101AD000E069022848D1002020490866FFF74AFC47
+:101AE000054606E0FFF746FC401B022801D903200B
+:101AF0003AE61948006800F000700028F2D1206A28
+:101B0000B0F5803F07D11448406820F40030A16848
+:101B1000084311494860D4E9080108430E4949685F
+:101B200021F4741108430C49486001200B490866F0
+:101B3000FFF720FC054607E03DE0FFF71BFC401BDC
+:101B4000022801D903200FE60348006800F0007066
+:101B50000028F2D02FE000000010024000004242B6
+:101B60008004424200700040002014490866FFF7DC
+:101B700001FC054606E0FFF7FDFB401B022801D9EA
+:101B80000320F1E50E48006800F000700028F2D153
+:101B900011E0E069012800D1E6E50948466806F44D
+:101BA0008031206A814204D106F47011606A81425A
+:101BB00001D00120D8E50020D6E500000000424217
+:101BC0000010024070B504462546681EB0F1807FC3
+:101BD00001D301200FE0681E4FF0E02148610F2182
+:101BE0004FF0FF3001F092FC00204FF0E0218861BF
+:101BF00007200861002070BD10B504460CB9012013
+:101C000010BD94F83D0028B9002084F83C0020461F
+:101C100000F025F8022084F83D00211D206801F025
+:101C20008BF9012084F8460000BF84F83E000121B2
+:101C30003F200155402001554120015500BF00BF04
+:101C4000012084F8420043200155442001554520DD
+:101C5000015500BF012084F83D000020D0E7704707
+:101C6000014691F83D00012801D001207047022073
+:101C700081F83D000868C06840F001000B68D8603A
+:101C8000164B0868984213D0154B086898420FD03D
+:101C90000868B0F1804F0BD0124B0868984207D00B
+:101CA000114B0868984203D0104B086898420CD139
+:101CB0000868806800F00702062A0CD008680068EF
+:101CC00040F001000B68186005E00868006840F00B
+:101CD00001000B6818600020C8E70000002C0140DC
+:101CE000003401400004004000080040000C0040A7
+:101CF000F8B504460E46174694F8420020282ED127
+:101D000006B10FB90120F8BD0120206300206063F7
+:101D10003A463146204601F0B1FA0546EDB9206B4E
+:101D2000012819D100BF00200090206800680090B1
+:101D300020684068009000BF00BF00BF00BF21685E
+:101D40000C3151E8001F41F0100021680C3141E8CE
+:101D50000002002AF3D100E001252846D3E7022043
+:101D6000D1E7000070B504460D4607492068884257
+:101D700008D101200549087041F27002491C04484D
+:101D8000FFF7B6FF70BD00000044004010030020C4
+:101D90008C130020704700002DE9F84F044620689E
+:101DA00005682068C668206847694FF00009CA4680
+:101DB00005F00F09B9F1000F0AD105F0200038B184
+:101DC00006F0200020B1204601F05CF9BDE8F88F54
+:101DD000B9F1000F7BD007F0010018B906F490703C
+:101DE000002874D005F0010030B106F4807018B1FD
+:101DF000606C40F00100606405F0040030B107F051
+:101E0000010018B1606C40F00200606405F002004F
+:101E100030B107F0010018B1606C40F0040060645C
+:101E200005F0080048B106F0200010B907F00100E5
+:101E300018B1606C40F008006064606C002845D008
+:101E400005F0200028B106F0200010B1204601F076
+:101E500019F920684069C0F3801A606C00F008002E
+:101E600010B9BAF1000F2CD0204601F0C5F8206857
+:101E7000406900F0400000B300BF00BF216814318A
+:101E800051E8001F21F040002168143141E80002B0
+:101E9000002AF3D100BFE06B50B17748E16B486393
+:101EA000E06BFEF7F7FC88B1E06B416B88470DE013
+:101EB0002046FFF76FFF09E009E02046FFF76AFFC1
+:101EC00004E02046FFF766FF002060647EE7206B99
+:101ED000012877D105F01000002873D006F010001B
+:101EE0000028FAD000BF0020009020680068009011
+:101EF00020684068009000BF00BF2068406900F083
+:101F0000400000285FD0E06B006840681FFA80F84E
+:101F1000B8F1000F55D0A08D404552DDA4F82E80B9
+:101F2000E06B8069202843D000BF00BF21680C31DE
+:101F300051E8001F21F4807021680C3141E8000253
+:101F4000002AF3D100BF00BF00BF2168143151E85F
+:101F5000001F21F001002168143141E80002002A2D
+:101F6000F3D100BF00BF00BF2168143151E8001F4A
+:101F700021F040002168143141E80002002AF3D129
+:101F800000BF202084F842000020206300BF00BF73
+:101F900021680C3151E8001F21F0100021680C313C
+:101FA00041E80002002AF3D100BFE06BFEF746FCD7
+:101FB00002206063A08DE28D801A81B22046FFF777
+:101FC000D1FE03E742E0A08DE18D401A1FFA80F8B0
+:101FD000E08DD0B3B8F1000F37D000BF00BF21684B
+:101FE0000C3151E8001F21F4907021680C3141E858
+:101FF0000002002AF3D100BF00BF00BF21681431E6
+:1020000051E8001F21F001002168143141E800026D
+:10201000002AF3D100BF202084F842000020206372
+:1020200000BF00BF21680C3151E8001F21F01000F3
+:1020300021680C3141E80002002AF3D100BF0220E0
+:10204000606341462046FFF78DFEBFE605F0800045
+:1020500030B106F0800018B1204601F02FF9B5E646
+:1020600005F0400030B106F0400018B1204600F005
+:10207000F9FFABE600BFA9E6E52F000810B504465E
+:102080000CB9012010BDA06900B100E000BF94F8B8
+:10209000410028B9002084F84000204600F02AF8CA
+:1020A000242084F841002068C06820F40050216892
+:1020B000C860204601F064F82068006920F4904070
+:1020C000216808612068406920F02A002168486181
+:1020D0002068C06840F400502168C8600020606437
+:1020E000202084F8410084F842000020606300BF93
+:1020F000C8E7000010B586B0044628492068884229
+:102100004AD100BF00BF2648806940F0040024493E
+:1021100088610846806900F00400019000BF00BF9C
+:1021200000BF00BF00BF0846806940F0040088611E
+:102130000846806900F00400019000BF00BF00BFA6
+:1021400000BF00BF0846806940F4804088610846AF
+:10215000806900F48040019000BF00BF00BF4815B7
+:10216000029002200390012004900320059002A910
+:102170000C48FEF747FF4FF4806002900020039068
+:1021800002A90848FEF73EFF2520FFF740F9032289
+:1021900011462520FFF74BF906B010BD003801406D
+:1021A000001002400008014070B504460D46164676
+:1021B00094F8420020280BD105B10EB9012070BD62
+:1021C0000020206332462946204601F057F8F6E702
+:1021D0000220F4E710B504462049206888423BD12C
+:1021E0001F48008800F4004088BB1D48008800F4A8
+:1021F000804070B11B4800780A2803D0002018499D
+:10220000088024E01648008840F400401449088003
+:102210001DE0144800780D2806D11148008840F4CC
+:1022200080400F49088012E00E4800780C49098868
+:10223000C1F30D010C4A505409480088401C08495C
+:10224000088008460088C72801DD00200880012298
+:1022500004490648FFF7A8FF10BD00000038014000
+:10226000140000201600002050000020180100205B
+:102270002DE9F84F04460E46174699464FF0000ADE
+:1022800094F84100202850D106B117B90120BDE8CB
+:10229000F88F00206064212084F84100FFF76AF87D
+:1022A0008246A784E784A068B0F5805F04D12069E6
+:1022B00010B90025B04602E035464FF000081EE098
+:1022C0005346002280212046CDF8009001F026F8E8
+:1022D00020B1202084F841000320D8E745B9B8F8A0
+:1022E0000000C0F308002168486008F1020803E01C
+:1022F0002878216848606D1CE08C401EE084E08CEA
+:102300000028DDD15346002240212046CDF8009020
+:1023100001F004F820B1202084F841000320B6E742
+:10232000202084F841000020B1E70220AFE7704789
+:1023300000BFFEE708B5434A811A904241D009DC4C
+:102340004149014481B1B1F5806F1CD0B1F5006FF6
+:1023500074D127E0B1F5806F42D0B1F5006F4ED057
+:10236000B1F5406F6AD159E000BF3849896941F041
+:102370000401364A91611146896901F00401009116
+:1023800000BF00BF5BE000BF3049896941F0080130
+:102390002E4A91611146896901F00801009100BF40
+:1023A00000BF4CE000BF2949896941F01001274A6C
+:1023B00091611146896901F01001009100BF00BFD1
+:1023C0003DE000BF2149896941F020011F4A916128
+:1023D0001146896901F02001009100BF00BF2EE085
+:1023E00000BF1A49896941F04001184A91611146BC
+:1023F000896901F04001009100BF00BF1FE000BFEC
+:102400001249896941F08001104A91611146896938
+:1024100001F08001009100BF00BF10E000BF0B4938
+:10242000896941F48071094A91611146896901F411
+:102430008071009100BF00BF01E0FFE700BF00BF57
+:1024400008BD00000014014000F8FEBF001002406B
+:1024500010B586B000BF2F48806940F001002D49BB
+:1024600088610846806900F00100019000BF00BF4C
+:1024700000BF2949486820F0E06040F000704860E3
+:1024800000BF0020029003900490059000243DE0DE
+:1024900004EB4401214A02EB81014868FFF74AFF3F
+:1024A00004EB44001D4931F8200002900020039005
+:1024B00004900320059004EB4401184A02EB8101CB
+:1024C000486802A9FEF79EFD04EB440101EBC4013C
+:1024D000134A02EB810023460022124901F086F9DB
+:1024E00004EB440101EBC4010D4A02EB81000E4AEA
+:1024F000032101F021F804EB440101EBC401084A77
+:1025000002EB810001F0AEF9601CC4B2072CBFD30E
+:1025100006B010BD0010024000000140E43B00087E
+:10252000DC0100203D3800084D35000810B5044698
+:10253000FDF77CFF0148047010BD0000040000207E
+:1025400001490860704700002400002000B585B0F4
+:1025500000BF1A48806940F00800184988610846A1
+:10256000806900F00800009000BF00BF00BF08466F
+:10257000806940F0400088610846806900F04000B2
+:10258000009000BF00BF47F601400190012002907B
+:1025900003900320049001A90948FEF733FD4FF48E
+:1025A0007F4001900120029003900320049001A934
+:1025B0000448FEF727FD05B000BD000000100240F2
+:1025C000000C01400018014010B5E92000F02CFF7C
+:1025D0002B2000F029FF242000F026FF812000F0AE
+:1025E00023FFBE2000F020FFA42000F01DFFA62046
+:1025F00000F01AFFC02000F017FFA32000F014FF26
+:10260000D12000F011FFD52000F00EFFDA2000F0FD
+:102610000BFFF42000F008FF252000F005FFF62056
+:1026200000F002FF5A2000F0FFFEF52000F0FCFE53
+:10263000002000F0F9FEF72000F0F6FE9F2000F0E9
+:10264000F3FEF82000F0F0FE892000F0EDFEAD2052
+:1026500000F0EAFE402000F0E7FE502000F0E4FE2B
+:10266000C42000F0E1FE902000F0DEFEFF2000F02C
+:10267000DBFE842000F0D8FEF12000F0D5FE9F2084
+:1026800000F0D2FE10BD000010B500BF0122910283
+:102690000E48FEF769FE00BF0A2001F011F900BFE5
+:1026A00000224FF480610948FEF75EFE00BF022061
+:1026B00001F006F900BF012291020448FEF754FE22
+:1026C00000BF962001F0FCF810BD0000000C014096
+:1026D00008B5434A811A904241D009DC414901447E
+:1026E00081B1B1F5806F1CD0B1F5006F74D127E0D6
+:1026F000B1F5806F42D0B1F5006F4ED0B1F5406FAB
+:102700006AD159E000BF3849896941F00401364A6D
+:1027100091611146896901F00401009100BF00BF79
+:102720005BE000BF3049896941F008012E4A9161A0
+:102730001146896901F00801009100BF00BF4CE01B
+:1027400000BF2949896941F01001274A916111466A
+:10275000896901F01001009100BF00BF3DE000BF9A
+:102760002149896941F020011F4A91611146896917
+:1027700001F02001009100BF00BF2EE000BF1A4908
+:10278000896941F04001184A91611146896901F057
+:102790004001009100BF00BF1FE000BF12498969DE
+:1027A00041F08001104A91611146896901F0800170
+:1027B000009100BF00BF10E000BF0B49896941F4E0
+:1027C0008071094A91611146896901F48071009113
+:1027D00000BF00BF01E0FFE700BF00BF08BD000071
+:1027E0000014014000F8FEBF001002401FB5002495
+:1027F00047E0274901EB04110868FFF769FF244807
+:1028000000EB04108088009001200190204800EB2C
+:102810000410806803901E4800EB0410C06802900A
+:102820001B4901EB041108686946FEF7EBFB184BE6
+:1028300003EB0413DA79164B03EB04139988144B5A
+:1028400003EB04131868FEF78FFD114800EB04102A
+:10285000807950B90E4800EB0410C07908B9012006
+:1028600000E000200B49085509E0094800EB04107E
+:10287000C079012800D100E0002006490855601CFD
+:10288000C4B2142CB5DB0121002000F06FF81FBD8D
+:10289000A43A00088001002070B50446142C00DB27
+:1028A00070BD0C4800EB0410807908B9012500E0E8
+:1028B0000025084A02EB04129188064A02EB041232
+:1028C00010682A46FEF750FD00200349085500BF56
+:1028D000E6E70000A43A00088001002070B5044635
+:1028E000142C00DB70BD0C4800EB0410807908B993
+:1028F000002500E00125084A02EB04129188064AEF
+:1029000002EB041210682A46FEF72EFD012003494F
+:10291000085500BFE6E70000A43A00088001002047
+:102920002DE9F0410446E0780006A17840EA014034
+:10293000617840EA0120217840EA01060025012162
+:10294000002000F013F801250CE00120A8403040E1
+:1029500008B1012000E000200746E8B2394600F047
+:1029600005F86D1C142DF0D3BDE8F08170B5054657
+:102970000C46012C03D12846FFF7B0FF02E02846A1
+:10298000FFF78AFF70BD000010B5044AD2F8841C1E
+:10299000D2F8800CFDF7C4FD10BD00001814002013
+:1029A00010B5FFF7D3FD00BF012211460548FEF721
+:1029B000DBFC00BFFFF768FEFFF706FEFDF780FDBA
+:1029C00010BD0000000C014000BFFEE700BFFEE7A5
+:1029D0007047000006480078401C0549087008460A
+:1029E000007918B108464079401C487170470000D2
+:1029F0003400002000200449887108714871C871B2
+:102A000001204880704700003400002008B50849C4
+:102A10000968C9084FF47A72B1FBF2F141430091A1
+:102A200000BF00BF00994A1E00920029F9D108BDDD
+:102A30000800002000B585B000BF00BF594880697C
+:102A400040F00400574988610846806900F004009E
+:102A5000009000BF00BF00BF00BF00BF08468069F4
+:102A600040F0040088610846806900F0040000908E
+:102A700000BF00BF00BF00BF00BF0846806940F034
+:102A8000040088610846806900F00400009000BFDF
+:102A900000BF00BF00BF00BF0846C06940F400305F
+:102AA000C8610846C06900F40030009000BF00BF54
+:102AB00000BF00BF0846406940F001004861084679
+:102AC000406900F00100009000BF00BF00200190AD
+:102AD00002900390049004200190022002900120B3
+:102AE00003900320049001A92F48FEF78BFA0820D9
+:102AF00001900020029001A92B48FEF783FA0220E2
+:102B000001900120029001A92748FEF77BFA27488F
+:102B10002749086000204860002125488160802105
+:102B2000C16000210161416181614FF44051C16187
+:102B3000FEF750F900BF1E481E49C86308461C49ED
+:102B4000486200BF1020FEF762FC002211461020F0
+:102B5000FEF76DFC184817490860184848600021C6
+:102B600014488160C160016181610C2141610021D3
+:102B7000C161FFF783FA2620FEF749FC00220121FC
+:102B80002620FEF754FC00BF012202210648FEF772
+:102B9000EBFB00BF41F2700209490648FFF7A8F8B5
+:102BA00005B000BD00100240000801406C0002406A
+:102BB000D41300208C1300200044004060AE0A00B3
+:102BC0001103002010B504460CB155480470554857
+:102BD0000078002872D000205249087041F270013C
+:102BE0005048401CFDF754FC012854D100204E49A8
+:102BF00008604FF448624B49491C4C48FDF71AFBEA
+:102C00004B494C4802680A604068486008460079B1
+:102C1000892834D108464079452830D14FF448629C
+:102C200042494548FDF74BFB414840784049097807
+:102C300040EA01204049C1F8800C3D48C0783C4939
+:102C4000897840EA01203C49C1F8840CFDF7C6FBB5
+:102C5000FDF7ECFBFDF734FCFFF796FE4FF4FA703E
+:102C600000F02EFE4FF4FA7000F02AFE4FF4FA70D6
+:102C700000F026FE4FF4FA7000F022FE16E02F4915
+:102C80002848D0F8810C08600846FFF749FE27481D
+:102C900000F0B2F80AE024480068401C22490860AD
+:102CA00008460068032801D300200860002024495A
+:102CB000887108714871C871012048802048408897
+:102CC00010B91F48807998B11548007838B1144878
+:102CD0000178002000F07AF80020114908701848A7
+:102CE0000078372804DD0E480178012000F06EF8E6
+:102CF00013484079282808DD0120114988710020F7
+:102D000048710846C079401CC8710D48C079052833
+:102D100004DB05200A49C8710120488010BD00006D
+:102D20003C000020100300204C000020A0200020C8
+:102D300041000020910F0020181400203D000020C9
+:102D4000340000202DE9FC4104460D4616460027BC
+:102D500001208DF800008DF801408DF802508DF8AB
+:102D6000036004216846FDF773FB074638128DF8AF
+:102D70000400F8B28DF805000621684600F008F856
+:102D8000002002494880BDE8FC810000340000209A
+:102D900070B504460D4600BF002202210948FEF727
+:102DA000E3FA00BFAAB24FF47A7321460648FFF750
+:102DB0005FFA00BF012202210248FEF7D5FA00BFE8
+:102DC00070BD0000000801408C13002070B504465F
+:102DD0000D462A4621460320FFF7B4FF0020044990
+:102DE00048800870012008710020487170BD000003
+:102DF0003400002070470000F8B5064600BFD5201B
+:102E000000F012FB00BF21A00068009000210846DE
+:102E100000F03EF8002436E000252DE004EB8401AC
+:102E200005EB8101715C6A4602EB9111087800F0B4
+:102E300031FB04EB840105EB8101715CC1F30111ED
+:102E40001DF8010000F026FB04EB840105EB810175
+:102E5000715CC1F381011DF8010000F01BFB04EB64
+:102E6000840105EB8101715C01F003011DF8010093
+:102E700000F010FB681C85B2142DCFDB002000F0A1
+:102E800009FB601C84B2A02CC6DBF8BD000FF0FF6C
+:102E900070B504460D4604F12500C4B204F00F00DD
+:102EA00000F0C2FAC4F3021141F0100000F0BCFAC5
+:102EB00005F00F0141F0600000F0B6FA702141EA20
+:102EC000151000F0B1FA70BD10B5FEF759FA10BD3B
+:102ED0007047000010B514480068006900F0010058
+:102EE00000B312480068401C10490860084600689A
+:102EF000C821B0FBF1F201FB120010B901200C490E
+:102F0000087000F0C9FC00BF01210A48FEF722FA50
+:102F100000BFFDF76FFAFFF75DFD6FF0010002499A
+:102F20000968086110BD0000940100200000002025
+:102F3000060000200008014010B50268244B9842AA
+:102F40000ED0244B98420BD0B0F1804F08D0224BCA
+:102F5000984205D0214B984202D0214B984203D190
+:102F600022F070024B681A43194B98420ED0194B4D
+:102F700098420BD0B0F1804F08D0174B984205D043
+:102F8000164B984202D0164B984203D122F440725D
+:102F9000CB681A4322F080034C6943EA04020260C2
+:102FA0008B68C3620B688362094B984202D0094B5D
+:102FB000984201D10B69036301234361036903F064
+:102FC00001031BB1036923F00103036110BD00007D
+:102FD000002C014000340140000400400008004083
+:102FE000000C004070B505466C6A0020E085E08466
+:102FF0002046FEF7CFFE70BD00BF00BF02680C3256
+:1030000052E8002F22F4907102680C3242E800135B
+:10301000002BF3D100BF00BF00BF0268143252E89A
+:10302000002F22F001010268143242E80013002B45
+:10303000F3D100BF016B01290ED100BF00BF0268B0
+:103040000C3252E8002F22F0100102680C3242E8E4
+:103050000013002BF3D100BF202180F84210002183
+:103060000163704710B504462068C06820F0400036
+:103070002168C860202084F841002046FFF757F9F6
+:10308000002010BDF8B5044694F84200222875D1FE
+:10309000A068B0F5805F0CD1206950B90025A66A00
+:1030A00020684068C0F308003080A06A801CA062DD
+:1030B00015E0A56A0026A068B0F5805F03D0A0687F
+:1030C00028B9206918B920684068287004E0206891
+:1030D000406800F07F002870A06A401CA062E08D6C
+:1030E000401E80B2E085002846D12068C06820F0EC
+:1030F00020002168C8602068C06820F480702168C2
+:10310000C8602068406920F00100216848612020E3
+:1031100084F8420000206063206B012826D1002043
+:10312000206300BF00BF21680C3151E8001F21F06F
+:10313000100021680C3141E80002002AF3D100BFE1
+:103140002068006800F0100010280AD100BF00209D
+:10315000009020680068009020684068009000BFE0
+:1031600000BFA18D2046FEF7FDFD02E02046FFF7DF
+:1031700031F80020F8BD01E00020FBE70220F9E76C
+:1031800070B504462168096921F44051E268114391
+:10319000226811612269A1681143626941EA02054E
+:1031A0002168C96841F20C62914329432268D160C9
+:1031B0002168496921F44071A26911432268516173
+:1031C0002D4A2168914202D1FEF782FA01E0FEF712
+:1031D0006FFA00EBC00101EB001162689200B1FBD5
+:1031E000F2F100EBC00202EB001263689B00B2FB3D
+:1031F000F3F26423B2FBF3F202EBC20303EB02121D
+:10320000A1EB8201322202EB01116422B1FBF2F147
+:1032100001F0F00100EBC00202EB001263689B00BA
+:10322000B2FBF3F26423B2FBF3F201EB021200EB08
+:10323000C00101EB001163689B00B1FBF3F100EBEF
+:10324000C00303EB00136668B600B3FBF6F3642615
+:10325000B3FBF6F303EBC30606EB0313A1EB830109
+:10326000322303EB01116423B1FBF3F101F00F01F1
+:1032700011442268916070BD0038014010B50346CA
+:1032800099629A85DA8500205864222083F84200EA
+:10329000186928B11868C06840F480701C68E06044
+:1032A0001868406940F001001C6860611868C068D7
+:1032B00040F020001C68E060002010BD014691F83D
+:1032C0004100212828D18868B0F5805F0BD10869BA
+:1032D00048B90A6A1088C0F308000B685860086A89
+:1032E000801C086205E00B6A581C086218780B689D
+:1032F0005860C88C401E80B2C88458B90868C0683D
+:1033000020F080000B68D8600868C06840F040007A
+:103310000B68D860002070470220FCE72DE9F843D5
+:1033200004460D4617469846089E31E0701C70B35F
+:10333000FEF720F8A0EB0800B04200D816B9032031
+:10334000BDE8F8832068C06800F00400F8B1802D63
+:103350001ED0402D1CD020680068C0F3C000B0B162
+:1033600000BF00200090206800680090206840683E
+:10337000009000BF00BF2046FFF73EFE08206064BB
+:1033800000BF002084F8400000BF0120D8E7FFE71D
+:10339000206800682840A84201D1012000E00020F8
+:1033A000B842C3D00020CBE70021044A1268D1B252
+:1033B00041EA0022014B1A60704700000C180140DE
+:1033C00010B50248FEF7E8FC10BD0000180100200F
+:1033D00010B50248FEF7E0FC10BD00008C13002081
+:1033E00000BFFEE700B585B000BF00BF0C48806994
+:1033F00040F004000A4988610846806900F0040032
+:10340000009000BF00BF00BF012001900290039018
+:103410000320049001A90348FDF7F4FD05B000BDA9
+:10342000001002400008014010B5044600BF002211
+:103430004FF480411648FDF797FF00BF00BF0122FF
+:1034400011031348FDF790FF00BF2046FFF7ACFFC4
+:1034500000BF00224FF400610D48FDF785FF00BF5B
+:1034600000BF00224FF400510948FDF77DFF00BF67
+:1034700000BF012251030648FDF776FF00BF00BFE1
+:103480000122D1020248FDF76FFF00BF10BD00000E
+:10349000000C014010B5044600BF012291031648FC
+:1034A000FDF762FF00BF00BF012211031248FDF7C4
+:1034B0005BFF00BF2046FFF777FF00BF00224FF4FD
+:1034C00000610D48FDF750FF00BF00BF00224FF420
+:1034D00000510948FDF748FF00BF00BF012251031A
+:1034E0000548FDF741FF00BF00BF0122D10202489D
+:1034F000FDF73AFF00BF10BD000C01400248006814
+:10350000C0F30220704700000CED00E010B5002869
+:1035100004DB0A07130E054A135406E00A07140ECB
+:10352000034A00F00F031B1FD45410BD00E400E059
+:1035300018ED00E000BF704708B1072900DB7047B5
+:1035400000F10C0343F8212000BFF8E770B50446F2
+:103550007CB10848006860B12579072D08D205EBD9
+:103560004501054A02EB8101087A0249096888474A
+:1035700000BF70BD24000020E43B000870B5044685
+:1035800000BF2079A16888470546E07800F0070071
+:10359000002802DD2088401C2080E078B5EBD01F99
+:1035A00013D0E078C008401CE17860F3C501E170F9
+:1035B000C1F3C20003280CDBE07865F3C710E070AC
+:1035C000E07820F03800E07003E0E07820F0380088
+:1035D000E070E07800F0070005287DD2DFE800F019
+:1035E000032858AFDB00E078C0F38010E178B0EB3F
+:1035F000D11F17D1A07820F0F000A07000BFE068C4
+:1036000010B12046E168884700BF00202080A078E4
+:1036100020F00F00401CA070E07820F00700401C54
+:10362000E07004E0A07820F0F0008030A070DBE0D3
+:10363000E078C0F38010E178B0EBD11F13D0A07810
+:1036400020F0F0001030A07000BF206910B12046BB
+:103650002169884700BF00202080E07820F0070023
+:10366000801CE07013E02088C82810DDA07820F0CE
+:10367000F0005030A07000BF206A10B12046216ACF
+:10368000884700BFE07820F00700001DE070ABE045
+:10369000E078C0F38010E178B0EBD11F25D1A0789D
+:1036A00020F0F000A07000BFE06810B12046E16893
+:1036B000884700BFA07800F00F000F2804DAA07838
+:1036C000411C61F30300A07000BF606910B1204687
+:1036D0006169884700BF00E081E000202080E07839
+:1036E00020F00700C01CE07028E020883C2825DD81
+:1036F000A07800F00F0001280BD1A07820F0F00096
+:103700003030A07000BFA06910B12046A169884781
+:1037100010E0A07800F00F0002280BD1A07820F074
+:10372000F0004030A07000BFE06910B12046E169B0
+:10373000884700BFE07820F00700E07054E0E078B0
+:10374000C0F38010E178B0EBD11F1BD0A07820F03F
+:10375000F0001030A07000BF206910B12046216930
+:10376000884700BF20883C2807DA00202080E078C6
+:1037700020F00700801CE0700CE0E07820F00700EB
+:10378000E07007E020883C2804DDE07820F00700A6
+:10379000401CE07028E0E078C0F38010E178B0EBE6
+:1037A000D11F0BD1A07820F0F0006030A07000BFD6
+:1037B000606A10B12046616A88470FE0A07820F067
+:1037C000F0001030A07000BF206910B120462169C0
+:1037D000884700BFE07820F00700E07004E0E07860
+:1037E00020F00700E07000BF00BF70BD2DE9F04180
+:1037F00004460D4616461F4604B10DB9BDE8F081DA
+:103800002C212046FCF78DFDA07820F0F0008030C0
+:10381000A070A5600EB9012000E00020E17860F3FF
+:10382000C711E170E07866F38610E0702771E078E8
+:1038300020F00700E07000BFE0E7000070B504462C
+:1038400004EB4402064B33F8221004EB440203EB72
+:1038500082025068FDF776FD0546284670BD0000DF
+:10386000E43B0008014611B96FF0010070470948B8
+:10387000026805E08A4202D14FF0FF30F6E7926A13
+:10388000002AF7D1034800688862024801600020DE
+:10389000ECE700003000002010B50548046803E0A4
+:1038A0002046FFF76BFEA46A002CF9D110BD000082
+:1038B0003000002001490860704700000C00002023
+:1038C00010B504464FF47A7104FB01F000F002F8E1
+:1038D00010BD000070B5034600224FF0E026756968
+:1038E0000D4E366803FB06F44FF0E026B16910E098
+:1038F0004FF0E026B06988420BD0884202D20E1AFF
+:10390000324402E02E1A0E4432440146A24200D351
+:1039100000E0EDE700BF70BD0C00002038B50446A4
+:103920000D4600BF00BF1248C06940F001001049B9
+:10393000C8610846C06900F00100009000BF00BFE8
+:1039400000BF88040B49086008464560002181607B
+:10395000C460FEF751F9002202211C20FDF767FD2B
+:103960001C20FDF754FD0348FEF77AF938BD00002E
+:103970000010024094010020FDF70EFD4FF4E0100E
+:1039800000F048F84820FFF795FFFEF72FFFFEF7FD
+:103990005FFDFFF727FDFFF74DF8FFF701F8FFF791
+:1039A00029F841F61F413120FFF7B8FF1348FEF711
+:1039B000C7FD21E012480078012802D100201049FB
+:1039C00008701048007830B10E4800780E49087031
+:1039D00000200C4908700C480078FFF7F3F800202D
+:1039E00009490870094800680949884204D9FDF767
+:1039F00071FD002005490860DCE700002D25000866
+:103A00000600002004000020050000200000002027
+:103A100040420F0030B58FB005460124282105A88B
+:103A2000FCF77FFC14216846FCF77BFC0120059025
+:103A3000000406900020079002200C90C1030D9115
+:103A40000E9505A8FDF78CFE04460CB100BFFEE7FD
+:103A50000F20009002200190002002904FF480601F
+:103A600003900020049002216846FDF755FD0446AE
+:103A70000CB100BFFEE70FB030BD00000000000039
+:103A8000000001020304060708090000000001020B
+:103A9000030402030405060708090A0B0C0D0E0FA8
+:103AA000101001020010014000010001030000009D
+:103AB00001000000001001400002000103000000AE
+:103AC00001000000000801400002000103000000A6
+:103AD0000100000000080140000800010300000090
+:103AE0000100000000080140008000010300000008
+:103AF0000100000000100140000800010300000068
+:103B0000010000000014014001000001030000005A
+:103B10000100000000140140040000010300000047
+:103B2000010000000014014010000001030000002B
+:103B300001000000001401404000000103000000EB
+:103B4000010000000010014080000001030000009F
+:103B50000100000000080140000100010300000016
+:103B60000100000000080140000400010300000003
+:103B700001000000000801400010000103000000E7
+:103B800001000000001001400004000103000000DB
+:103B900001000000001001400010000103000000BF
+:103BA00001000000001401400200000103000000B9
+:103BB00001000000001401400800000103000000A3
+:103BC000010000000014014020000001030000007B
+:103BD000010000000014014080000001030000000B
+:103BE000010000000010000000140140010000006E
+:103BF0000008000000140140020000000004000062
+:103C000000140140030000000020000000140140E7
+:103C1000070000000001000000140140080000003F
+:103C200000800000000C01400400000008000000BB
+:103C3000000C01400900000000C1814001C080412A
+:103C400001C0804100C1814001C0804100C181406C
+:103C500000C1814001C0804101C0804100C181405C
+:103C600000C1814001C0804100C1814001C080414C
+:103C700001C0804100C1814001C0804100C181403C
+:103C800000C1814001C0804100C1814001C080412C
+:103C900001C0804100C1814000C1814001C080411C
+:103CA00001C0804100C1814001C0804100C181400C
+:103CB00000C1814001C0804101C0804100C18140FC
+:103CC00000C1814001C0804100C1814001C08041EC
+:103CD00001C0804100C1814000C1814001C08041DC
+:103CE00001C0804100C1814001C0804100C18140CC
+:103CF00000C1814001C0804100C1814001C08041BC
+:103D000001C0804100C1814001C0804100C18140AB
+:103D100000C1814001C0804101C0804100C181409B
+:103D200000C1814001C0804100C1814001C080418B
+:103D300001C0804100C1814000C0C101C30302C273
+:103D4000C60607C705C5C404CC0C0DCD0FCFCE0EDB
+:103D50000ACACB0BC90908C8D81819D91BDBDA1A4B
+:103D60001EDEDF1FDD1D1CDC14D4D515D71716D6BB
+:103D7000D21213D311D1D010F03031F133F3F2322B
+:103D800036F6F737F53534F43CFCFD3DFF3F3EFE9B
+:103D9000FA3A3BFB39F9F83828E8E929EB2B2AEA0B
+:103DA000EE2E2FEF2DEDEC2CE42425E527E7E6267B
+:103DB00022E2E323E12120E0A06061A163A3A262EB
+:103DC00066A6A767A56564A46CACAD6DAF6F6EAE5B
+:103DD000AA6A6BAB69A9A86878B8B979BB7B7ABACB
+:103DE000BE7E7FBF7DBDBC7CB47475B577B7B6763B
+:103DF00072B2B373B17170B05090915193535292AB
+:103E000096565797559594549C5C5D9D5F9F9E5E1A
+:103E10005A9A9B5B99595898884849894B8B8A4A8A
+:103E20004E8E8F4F8D4D4C8C4484854587474686FA
+:103E30008242438341818040583E000800000020B8
+:103E4000500000006C010008A83E0008500000204F
+:103E5000303300008801000800000000000000006E
+:103E60000024F4000000000000000000000000003A
+:103E70000000000010000000010000000000000031
+:103E80000000000000000000000000000000000032
+:103E90000000000000000000000000000000000022
+:083EA00000000000000000001A
:0400000508000131BD
:00000001FF
diff --git a/Projects/MDK-ARM/atk_f103.uvguix.wandering b/Projects/MDK-ARM/atk_f103.uvguix.wandering
index 67f38b8..dd7ee82 100644
--- a/Projects/MDK-ARM/atk_f103.uvguix.wandering
+++ b/Projects/MDK-ARM/atk_f103.uvguix.wandering
@@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- D:\Code\DTU\程序\LED\Drivers\BSP\160160D
+ D:\Code\DTU 程序\DTU-LCD\Projects\MDK-ARM
@@ -78,11 +78,11 @@
- 0
- 0
+ 1
+ 1
0
- 50
- 16
+ 0
+ -1
@@ -93,8 +93,8 @@
2
3
- -32000
- -32000
+ -1
+ -1
-1
@@ -110,8 +110,8 @@
0
- 1500
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000F000000000000000100000025443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C55736572735C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF36443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C313630313630445C313630313630442E430000000009313630313630442E4300000000FFDC7800FFFFFFFF30443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C57444F475C77646F672E63000000000677646F672E6300000000BECEA100FFFFFFFF36443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C313630313630445C313630313630442E680000000009313630313630442E6800000000BCA8E100FFFFFFFF30443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C57444F475C77646F672E68000000000677646F672E68000000009CC1B600FFFFFFFF4E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D3332663178782E68000000000B73746D3332663178782E6800000000F7B88600FFFFFFFF2E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C4B45595C6B65792E6300000000056B65792E6300000000D9ADC200FFFFFFFF2E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C4B45595C6B65792E6800000000056B65792E6800000000A5C2D700FFFFFFFF36443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C4B45595C4D756C7469427574746F6E2E63000000000D4D756C7469427574746F6E2E6300000000B3A6BE00FFFFFFFF36443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C4B45595C4D756C7469427574746F6E2E68000000000D4D756C7469427574746F6E2E6800000000F6FA7D00FFFFFFFF4E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F6770696F2E68000000001473746D3332663178785F68616C5F6770696F2E68000000005FC3CF00FFFFFFFF53443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C4C65676163795C73746D33325F68616C5F6C65676163792E68000000001273746D33325F68616C5F6C65676163792E6800000000C1838300FFFFFFFF51443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F6770696F5F65782E68000000001773746D3332663178785F68616C5F6770696F5F65782E6800000000B5E99D00FFFFFFFF50443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D33326631303378652E68000000000D73746D33326631303378652E68000000005FC3CF00FFFFFFFF34443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C4D6964646C6577617265735C4D6F646275735C4D4F444255532E6300000000084D4F444255532E6300000000C1838300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004001000066000000AB06000020030000
+ 1121
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000C000000000000000100000025443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C55736572735C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF36443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C313630313630445C313630313630442E430000000009313630313630442E4300000000FFDC7800FFFFFFFF32443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C52533438355C72733438352E63000000000772733438352E6300000000BECEA100FFFFFFFF2E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C4B45595C6B65792E6300000000056B65792E6300000000F0A0A100FFFFFFFF36443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C313630313630445C313630313630442E680000000009313630313630442E6800000000BCA8E100FFFFFFFF34443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C4D6964646C6577617265735C4D6F646275735C4D4F444255532E6300000000084D4F444255532E63000000009CC1B600FFFFFFFF32443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C52533438355C72733438352E68000000000772733438352E6800000000F7B88600FFFFFFFF2E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C4C45445C6C65642E6800000000056C65642E6800000000D9ADC200FFFFFFFF3E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C313630313630445C47726170686963734C6962726172792E68000000001147726170686963734C6962726172792E6800000000A5C2D700FFFFFFFF34443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C4D6964646C6577617265735C4D6F646275735C4D4F444255532E6800000000084D4F444255532E6800000000B3A6BE00FFFFFFFF2E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C4253505C4B45595C6B65792E6800000000056B65792E6800000000EAD6A300FFFFFFFF4E443A5C436F64655C44545520B3CCD0F25C4454552D4C43445C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F756172742E68000000001473746D3332663178785F68616C5F756172742E6800000000F6FA7D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004001000066000000AB06000020030000
@@ -490,7 +490,7 @@
0
16
- 0300000024030000A8060000B8030000
+ 0000000021030000AB060000D1030000
16
@@ -526,7 +526,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1160,13 +1160,13 @@
38007
38007
- 1
+ 0
0
0
0
32767
0
- 4096
+ 32768
0
16
@@ -1186,7 +1186,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1246,7 +1246,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1266,7 +1266,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1799,14 +1799,14 @@
3312
- 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFC4000000130100007007000017010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C400000066000000700700002A010000C40000004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFAC0600004F000000B0060000F9020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B0060000660000007007000010030000B00600004F00000070070000F902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF3C0100004F00000040010000090300000100000002000010040000000100000018FEFFFFB8040000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000003C01000020030000000000004F0000003C010000090300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E502000070070000E902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000000003000070070000D803000000000000E902000070070000C103000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000E9020000BC030000C103000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000009030000AB0600000D030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000000000000024030000AB060000E8030000000000000D030000AB060000D10300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+ 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFC4000000130100007007000017010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C400000066000000700700002A010000C40000004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFAC0600004F000000B0060000F9020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B0060000660000007007000010030000B00600004F00000070070000F902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF3C0100004F00000040010000090300000100000002000010040000000100000018FEFFFFB8040000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000003C01000020030000000000004F0000003C010000090300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E502000070070000E902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000000003000070070000D803000000000000E902000070070000C103000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000E9020000BC030000C103000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000009030000AB0600000D030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000000000000024030000AB060000E8030000000000000D030000AB060000D10300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
59392
File
- 2546
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000245729600000000000000010002457200000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+ 2576
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001148414C5F554152545F4552524F525F4E45960000000000000001001148414C5F554152545F4552524F525F4E4500000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
1423
@@ -1838,1748 +1838,7 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
-
-
- 898
- 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000
-
-
- 898
- 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000
-
-
-
- 0
- 1707
- 1067
-
-
-
- 1
- Debug
-
- -1
- -1
- 1
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 400100004F000000AB060000CC000000
-
-
- 16
- C400000066000000700700002A010000
-
-
-
- 1005
- 1005
- 1
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 030000006600000039010000D9020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 109
- 109
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 03000000660000003901000028030000
-
-
- 16
- A2070000390000001E09000049030000
-
-
-
- 1465
- 1465
- 1
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000A8060000B8030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 1466
- 1466
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 1467
- 1467
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 1468
- 1468
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 1506
- 1506
- 0
- 0
- 0
- 0
- 32767
- 0
- 16384
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 1913
- 1913
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 4301000066000000E9070000FA000000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 1935
- 1935
- 1
- 0
- 0
- 0
- 32767
- 0
- 32768
- 0
-
- 16
- 5D0300000D030000A8060000B8030000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 1936
- 1936
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 1937
- 1937
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 1939
- 1939
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 1940
- 1940
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 1941
- 1941
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 1942
- 1942
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 195
- 195
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 03000000660000003901000028030000
-
-
- 16
- A2070000390000001E09000049030000
-
-
-
- 196
- 196
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 00000000630000003C01000041030000
-
-
- 16
- A2070000390000001E09000049030000
-
-
-
- 197
- 197
- 0
- 0
- 0
- 0
- 32767
- 0
- 32768
- 0
-
- 16
- 0000000021030000AB060000D1030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 198
- 198
- 1
- 0
- 0
- 0
- 32767
- 0
- 32768
- 0
-
- 16
- 00000000F602000056030000D1030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 199
- 199
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 0300000024030000FD050000B8030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 203
- 203
- 1
- 0
- 0
- 0
- 32767
- 0
- 8192
- 0
-
- 16
- 4001000063000000AB060000CC000000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 204
- 204
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 4301000066000000E9070000FA000000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 221
- 221
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 00000000000000000000000000000000
-
-
- 16
- 0A0000000A0000006E0000006E000000
-
-
-
- 2506
- 2506
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 2507
- 2507
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 343
- 343
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 4301000066000000E9070000FA000000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 346
- 346
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 4301000066000000E9070000FA000000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 35141
- 35141
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 4301000066000000E9070000FA000000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35824
- 35824
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 4301000066000000E9070000FA000000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 35885
- 35885
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35886
- 35886
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35887
- 35887
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35888
- 35888
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35889
- 35889
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35890
- 35890
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35891
- 35891
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35892
- 35892
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35893
- 35893
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35894
- 35894
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35895
- 35895
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35896
- 35896
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35897
- 35897
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35898
- 35898
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35899
- 35899
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35900
- 35900
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35901
- 35901
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35902
- 35902
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35903
- 35903
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35904
- 35904
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 35905
- 35905
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 38003
- 38003
- 1
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 030000006600000039010000D9020000
-
-
- 16
- A2070000390000001E09000049030000
-
-
-
- 38007
- 38007
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 0300000024030000FD050000B8030000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 436
- 436
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 0300000024030000FD050000B8030000
-
-
- 16
- A2070000390000001E09000049030000
-
-
-
- 437
- 437
- 1
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000A8060000B8030000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 440
- 440
- 1
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000A8060000B8030000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 463
- 463
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 0300000024030000FD050000B8030000
-
-
- 16
- A2070000390000001E09000049030000
-
-
-
- 466
- 466
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 0300000024030000FD050000B8030000
-
-
- 16
- A2070000390000001E09000049030000
-
-
-
- 470
- 470
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 4301000066000000E9070000FA000000
-
-
- 16
- A2070000390000005A0B0000FD000000
-
-
-
- 50000
- 50000
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50001
- 50001
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50002
- 50002
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50003
- 50003
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50004
- 50004
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50005
- 50005
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50006
- 50006
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50007
- 50007
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50008
- 50008
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50009
- 50009
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50010
- 50010
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50011
- 50011
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50012
- 50012
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50013
- 50013
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50014
- 50014
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50015
- 50015
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50016
- 50016
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50017
- 50017
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50018
- 50018
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 50019
- 50019
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- B3060000660000006D070000E0020000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 59392
- 59392
- 1
- 0
- 0
- 0
- 966
- 0
- 8192
- 0
-
- 16
- 0000000000000000D10300001C000000
-
-
- 16
- 0A0000000A0000006E0000006E000000
-
-
-
- 59393
- 0
- 1
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 00000000D1030000AB060000E4030000
-
-
- 16
- 0A0000000A0000006E0000006E000000
-
-
-
- 59399
- 59399
- 0
- 0
- 0
- 0
- 476
- 0
- 8192
- 1
-
- 16
- 000000001C000000E701000038000000
-
-
- 16
- 0A0000000A0000006E0000006E000000
-
-
-
- 59400
- 59400
- 1
- 0
- 0
- 0
- 612
- 0
- 8192
- 2
-
- 16
- 000000001C0000006F02000038000000
-
-
- 16
- 0A0000000A0000006E0000006E000000
-
-
-
- 824
- 824
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 5D0300000D030000C70A0000B5030000
-
-
- 16
- A20700003900000062080000D7000000
-
-
-
- 3312
- 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF40010000CC000000AB060000D0000000010000000100000004000000010000003EFFFFFFD6010000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000C400000066000000700700002A010000400100004F000000AB060000CC0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFAC0600004F000000B0060000F9020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B0060000660000007007000010030000B00600004F00000070070000F902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF3C0100004F00000040010000F20200000100000002000010040000000100000018FEFFFFB8040000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000EA01000055020000000000004F0000003C010000F20200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000F2020000AB060000F602000001000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000001000000000000000003000070070000D80300005A030000F6020000AB060000D103000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7301000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727301000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFF56030000F60200005A030000D103000001000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000009030000AB0600000D030000000000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000000000000000000059020000000600001D030000000000000D030000AB060000D10300000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
-
-
- 59392
- File
-
- 2657
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000009414443526573756C749600000000000000060009414443526573756C740F424C44435F43757272656E742E49620F424C44435F43757272656E742E496113675F66726571526566456E636F6465725131300C4D41585F465245515F5131300B61726D5F73696E5F663332000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
-
-
- 1423
- 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000
-
-
- 1423
- 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000
-
-
-
- 59399
- Build
-
- 976
- 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000004001D000000000000000000000000000000000100000001000000018030800000000004001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000004006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000400000000000000000000000000000000000001000000010000009600000003002050000000000854656D706C617465960000000000000001000854656D706C617465000000000180EB880000000004002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000400230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000004005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
-
-
- 583
- 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000
-
-
- 583
- 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000
-
-
-
- 59400
- Debug
-
- 2362
- 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -3606,135 +1865,108 @@
0
..\..\Users\main.c
- 16
- 57
- 73
+ 53
+ 91
+ 111
1
0
..\..\Drivers\BSP\160160D\160160D.C
- 1
- 1629
- 1667
- 1
-
- 0
-
-
- ..\..\Drivers\BSP\WDOG\wdog.c
- 32
+ 28
1
- 34
+ 17
1
0
- ..\..\Drivers\BSP\160160D\160160D.h
- 20
- 71
- 92
- 1
-
- 0
-
-
- ..\..\Drivers\BSP\WDOG\wdog.h
- 52
- 1
- 9
- 1
-
- 0
-
-
- ..\..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h
- 7
- 141
- 152
+ ..\..\Drivers\BSP\RS485\rs485.c
+ 46
+ 340
+ 392
1
0
..\..\Drivers\BSP\KEY\key.c
- 38
- 107
- 125
+ 42
+ 47
+ 48
1
0
- ..\..\Drivers\BSP\KEY\key.h
- 51
- 1
- 34
- 1
-
- 0
-
-
- ..\..\Drivers\BSP\KEY\MultiButton.c
- 35
- 118
- 139
- 1
-
- 0
-
-
- ..\..\Drivers\BSP\KEY\MultiButton.h
+ ..\..\Drivers\BSP\160160D\160160D.h
17
- 1
- 14
- 1
-
- 0
-
-
- ..\..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h
- 18
- 71
- 82
- 1
-
- 0
-
-
- ..\..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy/stm32_hal_legacy.h
- 0
- 786
- 799
- 1
-
- 0
-
-
- ..\..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h
- 0
- 483
- 484
- 1
-
- 0
-
-
- ..\..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xe.h
- 0
- 2596
- 2609
+ 52
+ 70
1
0
..\..\Middlewares\Modbus\MODBUS.c
+ 66
+ 330
+ 351
+ 1
+
+ 0
+
+
+ ..\..\Drivers\BSP\RS485\rs485.h
+ 26
+ 1
+ 23
+ 1
+
+ 0
+
+
+ ..\..\Drivers\BSP\LED\led.h
+ 15
+ 6
+ 33
+ 1
+
+ 0
+
+
+ ..\..\Drivers\BSP\160160D\GraphicsLibrary.h
+ 21
+ 1172
+ 1185
+ 1
+
+ 0
+
+
+ ..\..\Middlewares\Modbus\MODBUS.h
+ 5
+ 17
+ 32
+ 1
+
+ 0
+
+
+ ..\..\Drivers\BSP\KEY\key.h
+ 33
+ 29
+ 41
+ 1
+
+ 0
+
+
+ ..\..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h
0
- 153
- 188
+ 226
+ 258
1
0
diff --git a/Projects/MDK-ARM/atk_f103.uvoptx b/Projects/MDK-ARM/atk_f103.uvoptx
index d7d7945..e85af11 100644
--- a/Projects/MDK-ARM/atk_f103.uvoptx
+++ b/Projects/MDK-ARM/atk_f103.uvoptx
@@ -12,7 +12,7 @@
*.lib
*.txt; *.h; *.inc; *.md
*.plm
- *.cpp
+ *.cpp; *.cc; *.cxx
0
@@ -117,35 +117,15 @@
STLink\ST-LINKIII-KEIL_SWO.dll
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F10x_512 -FL080000 -FS08000000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)
-
0
ST-LINKIII-KEIL_SWO
- -U12029401190032524B413836 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)
+ -U12029401190032524B413836 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)
0
- ARMRTXEVENTFLAGS
- -L70 -Z18 -C0 -M0 -T1
-
-
- 0
- DLGTARM
- (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)
-
-
- 0
- ARMDBGFLAGS
-
-
-
- 0
- DLGUARM
- (105=-1,-1,-1,-1,0)
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM))
@@ -154,13 +134,13 @@
0
- 1
- 1
+ 0
+ 0
0
0
0
0
- 1
+ 0
0
0
0
@@ -223,7 +203,7 @@
User
- 1
+ 0
0
0
0
@@ -279,7 +259,7 @@
Drivers/SYSTEM
- 0
+ 1
0
0
0
diff --git a/Projects/MDK-ARM/atk_f103.uvprojx b/Projects/MDK-ARM/atk_f103.uvprojx
index 539b19b..4ca9004 100644
--- a/Projects/MDK-ARM/atk_f103.uvprojx
+++ b/Projects/MDK-ARM/atk_f103.uvprojx
@@ -16,8 +16,8 @@
STM32F103ZE
STMicroelectronics
- Keil.STM32F1xx_DFP.2.4.1
- https://www.keil.com/pack/
+ Keil.STM32F1xx_DFP.2.3.0
+ http://www.keil.com/pack/
IRAM(0x20000000,0x00010000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
diff --git a/Users/main.c b/Users/main.c
index 21893b7..bbfa66a 100644
--- a/Users/main.c
+++ b/Users/main.c
@@ -18,21 +18,13 @@
#include "main.h"
-/* ============================================================================
- * 宏定义
- * ============================================================================ */
-#define TIMER 5 /**< 定时器周期(毫秒) */
-#define LED_TOGGLE_TIME 1000 /**< 系统运行指示灯闪烁周期(毫秒),即 LED 点亮持续时间 */
-
/* ============================================================================
* 全局变量定义
* ============================================================================ */
volatile static uint32_t sysRunTime = 0; /**< 系统运行时间计数器(单位:5ms) */
+volatile static KEY_TYPE keyStatus = KEY_NONE; /**< 按键状态指示(当前按键值) */
+volatile static KEY_TYPE keyStatusBack = KEY_NONE; /**< 按键状态指示(当前按键值) */
volatile static uint8_t LED_ToggleFlag = 0; /**< LED 闪烁定时标志位(1=需要翻转) */
-static KEY_TYPE keyStatus = KEY_NONE; /**< 按键状态指示(当前按键值) */
-static uint8_t ConnectFlg = 0; /**< 连接标志:1=已连接,0=未连接 */
-volatile static uint32_t KEY_RUN_Count = 0; /**< 按键按下时 LCD 屏幕显示计时计数器(单位:5ms) */
-
/* ============================================================================
* 内部函数实现
* ============================================================================ */
@@ -51,32 +43,8 @@ volatile static uint32_t KEY_RUN_Count = 0; /**< 按键按下时 LCD 屏
static void Key_ProcessCallback(KEY_TYPE key_type)
{
BackLight_ON(); /**< 任意按键按下,都打开背光 */
-
- KeyRun_Disp(1); /**< 有按键按下,LCD 显示按键指示 */
- KEY_RUN_Count = 0; /**< 重置按键显示计时器 */
-
keyStatus = key_type; /**< 更新按键状态,供主循环处理 */
}
-
-/**
- * @brief 按键显示自动关闭处理
- * @note 在定时器中断中调用,用于自动关闭按键按下后的 LCD 显示指示
- * 处理逻辑:
- * - KEY_RUN_Count 递增(每 5ms 一次)
- * - 当计数达到 15(约 75ms)时,关闭按键显示
- * - 计数限制在 15,防止溢出
- * @retval 无
- */
-void KeyRun_Disp_Close(void)
-{
- KEY_RUN_Count++;
- if (KEY_RUN_Count >= 15)
- {
- KEY_RUN_Count = 15; /**< 限制最大计数,防止溢出 */
- KeyRun_Disp(0); /**< 关闭按键显示指示 */
- }
-}
-
/* ============================================================================
* 主程序入口
* ============================================================================ */
@@ -128,28 +96,29 @@ int main(void)
/* ========== 通信与显示初始化 ========== */
Process_Init(); /**< Modbus 通信任务初始化 */
- NL_LOGO_Printf(); /**< 显示存储的 LOGO(从 Flash 读取) */
/* ========== 定时器与回调注册 ========== */
gtim_timx_int_init(50-1, 7200-1); /**< 定时器初始化:5ms 周期(50×0.1ms,7200 分频) */
Key_RegisterCallback(Key_ProcessCallback); /**< 注册按键回调函数 */
+
/* ========== 主循环 ========== */
while (1)
{
- /* LED 指示灯闪烁控制(仅在已连接状态下闪烁) */
- if (ConnectFlg == 1)
+ if (LED_ToggleFlag == 1)
{
- if (LED_ToggleFlag == 1)
- {
- LED_ToggleFlag = 0; /**< 清除闪烁标志 */
- LED_Toggle(LED_RUN); /**< 翻转运行指示灯 */
- }
+ LED_ToggleFlag = 0; /**< 清除闪烁标志 */
+// LED_Toggle(15); /**< 翻转运行指示灯 */
+ }
+ /* 快速的处理 keyStatus 的状态,避免与中断处理冲突*/
+ if(keyStatus != KEY_NONE)
+ {
+ keyStatusBack = keyStatus;
+ keyStatus = KEY_NONE;
}
-
/* RS485 Modbus 通信处理(包含按键上报) */
- ConnectFlg = RS485_Process(keyStatus, ConnectFlg);
- keyStatus = KEY_NONE; /**< 清除按键状态(已处理) */
+ RS485_Process(keyStatusBack);
+ keyStatusBack = KEY_NONE;
/* 系统运行时间监控与自动复位保护 */
if (sysRunTime > 1000000) /**< 约 5000 秒(1000000 × 5ms) */
@@ -157,6 +126,7 @@ int main(void)
HAL_NVIC_SystemReset(); /**< 系统立即复位(防止长时间运行异常) */
sysRunTime = 0;
}
+
}
}
@@ -177,7 +147,7 @@ int main(void)
*
* 定时器配置:5ms 周期
* 中断标志:TIM_FLAG_UPDATE(定时器溢出标志)
- * @retval 无
+ * @retval 无
*/
void GTIM_TIMX_INT_IRQHandler(void)
{
@@ -185,18 +155,15 @@ void GTIM_TIMX_INT_IRQHandler(void)
if (__HAL_TIM_GET_FLAG(&g_timx_handle, TIM_FLAG_UPDATE) != RESET)
{
sysRunTime++; /**< 系统运行时间计数递增 */
-
/* LED 闪烁标志更新:每 200 次中断(1 秒)翻转一次 */
- if (sysRunTime % (LED_TOGGLE_TIME / 5) == 0)
+ if (sysRunTime % 200 == 0)
{
LED_ToggleFlag = 1; /**< 设置 LED 闪烁标志 */
}
-
Button_Ticks(); /**< 按键检测扫描(MultiButton 库) */
Clear_Watchdog(); /**< 看门狗喂狗 */
BackLight_Close(); /**< 背光关闭检测 */
Process_Count(); /**< Modbus 通信轮询计数 */
- KeyRun_Disp_Close(); /**< LCD 屏幕按键指示自动关闭处理 */
__HAL_TIM_CLEAR_IT(&g_timx_handle, TIM_IT_UPDATE); /**< 清除定时器溢出中断标志 */
}