From fcebd138ba965602509ab23f83d766f625a85f7d Mon Sep 17 00:00:00 2001 From: shaoxiang <1026025056@qq.com> Date: Thu, 6 Jun 2019 22:58:08 +0800 Subject: [PATCH 01/19] change base15/26 index --- docs/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index af532536..df5ebc52 100644 --- a/docs/index.md +++ b/docs/index.md @@ -342,14 +342,14 @@
BASE26
From a4d4edada624a028b55864cc56db5094bc26030e Mon Sep 17 00:00:00 2001 From: shaoxiang <1026025056@qq.com> Date: Thu, 6 Jun 2019 23:05:22 +0800 Subject: [PATCH 02/19] add Feature base --- docs/zh_CN/base/BASE15.md | 16 ++++++++++++++++ docs/zh_CN/base/BASE26.md | 17 +++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/docs/zh_CN/base/BASE15.md b/docs/zh_CN/base/BASE15.md index bc4bb09f..cc6fed73 100644 --- a/docs/zh_CN/base/BASE15.md +++ b/docs/zh_CN/base/BASE15.md @@ -19,9 +19,25 @@ ## 产品特性 +- Highly Customizable +- Alternative parts +- M-BUS extension +- 2 Fitting ways + ## 套件清单 +- 1x PLC-Proto Broad +- 1x Base15 Plastic Enclosure +- 1x Slide Guide +- 1x Din-Rail +- 2x Grove Port +- 1x M12*1.5 +- 2x hexagonal wrench +- 10x Screw (3 types: M3*22, M3*12, M2*5) +- 2x M3 Nut +- 1x 2.45mm pin set +- 1x Sticker ## 相关链接 diff --git a/docs/zh_CN/base/BASE26.md b/docs/zh_CN/base/BASE26.md index 334a1a80..736e5709 100644 --- a/docs/zh_CN/base/BASE26.md +++ b/docs/zh_CN/base/BASE26.md @@ -19,9 +19,26 @@ ## 产品特性 +- Highly Customizable +- Alternative parts +- M-BUS extension +- 2 Fitting ways ## 套件清单 +- 1x PLC-Proto Broad +- 1x Base15 Plastic Enclosure +- 1x TTL-to-RS485 board +- 1x Slide Guide +- 1x Din-Rail +- 2x Grove Port +- 1x M12*1.5 +- 1x 4 Pin 3.96 Pitch Terminal +- 1x hexagonal wrench +- 10x Screw (3 types: M3*22, M3*12, M2*5) +- 2x M3 Nut +- 1x 2.45mm pin set +- 1x Sticker ## 相关链接 From 176fbf367c4c3d337155f938dc929c4c162f9f67 Mon Sep 17 00:00:00 2001 From: shaoxiang <1026025056@qq.com> Date: Mon, 10 Jun 2019 09:43:52 +0800 Subject: [PATCH 03/19] delete some Link --- docs/en/related_documents.md | 4 +- docs/en/related_documents/Arduino_IDE.md | 111 ++++++++++++++++++++ docs/zh_CN/related_documents.md | 20 ---- docs/zh_CN/related_documents/Arduino_IDE.md | 21 ---- 4 files changed, 112 insertions(+), 44 deletions(-) create mode 100644 docs/en/related_documents/Arduino_IDE.md diff --git a/docs/en/related_documents.md b/docs/en/related_documents.md index 71a138b2..0c503594 100644 --- a/docs/en/related_documents.md +++ b/docs/en/related_documents.md @@ -4,9 +4,7 @@ 1. [Establish Serial Connection](en/related_documents/establish_serial_connection) -2. [How to Install Git and Arduino](en/related_documents/how_to_install_git_and_arduino) - -3. [Upgrade M5Stack Lib](en/related_documents/upgrade_m5stack_lib) +2. [Arduino IDE Development](en/related_documents/Arduino_IDE) 4. [How to Burn Firmware](en/related_documents/how_to_burn_firmware) diff --git a/docs/en/related_documents/Arduino_IDE.md b/docs/en/related_documents/Arduino_IDE.md new file mode 100644 index 00000000..2c4cc61c --- /dev/null +++ b/docs/en/related_documents/Arduino_IDE.md @@ -0,0 +1,111 @@ +# Arduino IDE Development{docsify-ignore-all} + + +1. [Install Arduino-IDE](#Install-Arduino-IDE) + +2. [Install ESP32 Board](#Install-ESP32-Board) + +3. [Install M5Stack Library](#Install-M5Stack-Library) + +4. [Install USB Driver](#Install-USB-Driver) + + +## Install Arduino-IDE + + +>[Click here to visit Arduino's official website](https://www.arduino.cc/en/Main/Software),Select the installation package for your own operating system to download. + + +
+
+
+## Install ESP32 Board
+
+>1.Open up Arduino IDE, navigate to `File`->`Peferences`->`Settings`
+
+
+
+>2.Copy the following ESP32 Boards Manager url to `Additional Boards Manager URLs:`
+
+**https://dl.espressif.com/dl/package_esp32_index.json**
+
+
+
+>3.Navigate to `Tools`->`Board:`->`Boards Manager...`
+
+
+
+>4.Search `ESP32` in the pop-up window, find it and click `Install`
+
+
+
+>5.选择 `工具`->`开发板:`->`ESP32`
+
+
+
+## Install M5Stack Library
+
+>Different hardware devices, with different case libraries, please choose to download according to the device you use..Open Arduino IDE, then Select `Sketch`->`Include Library`->`Manage Libraries...`
+
+
+
+### For M5Core and M5Stick
+
+?>Search `M5Stack` , find it and click `Install`
+
+
+
+### For M5Stick-C
+
+?>Search `M5StickC` , find it and click `Install`
+
+
+
+## Install USB Driver
+
+>1.Click on the CP210X driver for your operating system below to download.
+
+
+
+
+
+### For Windows
+
+>Unzip the downloaded driver package, select the installer for your operating system, and double-click to install.
+
+
+
+
+### For Mac
+
+>Unzip the downloaded driver package, install the program, double-click the image file to start the installation..
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/zh_CN/related_documents.md b/docs/zh_CN/related_documents.md
index e93efa78..5a9beed1 100644
--- a/docs/zh_CN/related_documents.md
+++ b/docs/zh_CN/related_documents.md
@@ -24,23 +24,3 @@
4. [UIFlow Desktop IDE 部署](zh_CN/related_documents/UIFlow_Desktop_IDE)
-
-### Mini Burner
-
->1.Mini Burner是一个简洁快速的程序烧录器,每一个产品页面里的Mini Burner都提供了一个与产品相关的案例程序.
-[点击此处下载](https://m5stack.oss-cn-shenzhen.aliyuncs.com/MiniBurner/Module/MiniBurner_GPSRaw.exe)
-
->2.下载软件后,双击运行应用程序,将M5设备通过数据线连接至电脑,选择端口参数,点击 **"Burn"** 即可开始烧录
-
-!>3.Mini Burner烧录前需要安装有CP210X(USB驱动程序),[点击此处查看驱动安装教程](zh_CN/related_documents/M5Burner#安装串口驱动)
-
-
-### Mini Burner
-
->1.Mini Burner is a simple and fast program burner, and each product page has a product-related case program for Mini Burner.
-[Click here to download](https://m5stack.oss-cn-shenzhen.aliyuncs.com/MiniBurner/Module/MiniBurner_GPSRaw.exe)
-
->2.After downloading the software, double-click to run the application, connect the M5 device to the computer via the data cable, select the port parameters, and click **"Burn"** to start burning.
-
-!>3.The CP210X (USB driver) needs to be installed before the Mini Burner is burned. [Click here to view the driver installation tutorial](en/related_documents/establish_serial_connection)
-
diff --git a/docs/zh_CN/related_documents/Arduino_IDE.md b/docs/zh_CN/related_documents/Arduino_IDE.md
index 6944ce8b..4b2e5fed 100644
--- a/docs/zh_CN/related_documents/Arduino_IDE.md
+++ b/docs/zh_CN/related_documents/Arduino_IDE.md
@@ -1,25 +1,5 @@
# Arduino IDE 环境搭建{docsify-ignore-all}
-
-
-
1. [安装Arduino-IDE](#安装Arduino-IDE)
@@ -29,7 +9,6 @@ https://www.arduino.cc/en/Main/Software
4. [安装串口驱动](#安装串口驱动)
-
## 安装Arduino-IDE
From e6a9e0e3cdfe2416a2d0b8c30dac552a51469131 Mon Sep 17 00:00:00 2001
From: Gitshaoxiang <45260108+Gitshaoxiang@users.noreply.github.com>
Date: Mon, 10 Jun 2019 09:50:52 +0800
Subject: [PATCH 04/19] Delete BASE26.md
---
docs/en/base/BASE26.md | 33 ---------------------------------
1 file changed, 33 deletions(-)
delete mode 100644 docs/en/base/BASE26.md
diff --git a/docs/en/base/BASE26.md b/docs/en/base/BASE26.md
deleted file mode 100644
index d244be52..00000000
--- a/docs/en/base/BASE26.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Base 26 {docsify-ignore-all}
-
-
-
-***
-
-
-
-## 描述
-
-**Base26** 是M5体系中一款支持高度定制化的工业底座.与PLC Base有着类似,却有着更高级别定制化能力.套件内提供了Protoboard(万能板)允许您添加自己的电路设计,并预留了两个Grove接口焊盘,方便您进行线路的拓展.提供了**TTL-RS485**转接板,能够方便您进行RS485类型的电平转换,配有M型防水接头组件,允许用户将其安装在底座的侧面或是底部.
-
-**Base26** 中'26'代号来源于底座的高度26cm,底座上每一侧都是可以自由拆卸,切割,定制成不同的接口,以满足不同需求.关于底座的定制,我们提供了大量的结构组件替代方案,并将其完全开源,你可以基于这些设计去制作3D打印林见或是二次设计.不但如此,该底座完全兼容M5堆叠模块与硬件拓展体系.在产品的底部,我们提供了3种不同的装配方式:2种导轨固定,悬挂固定。
-
-底座覆盖工业级外壳,自由拼接的组件能够为您提供无限的组合方式,为您创造出功能强大且可靠的工业应用.对于面向工业场景,要求一定的防护水准且希望项目高度定制化的开发者用户来说,**Base26** 是一个很好的解决方案.
-
-
-
-
-## 产品特性
-
-
-## 套件清单
-
-
-
-## 相关链接
-
-- **[官方频道视频](https://i.youku.com/i/UNjE1ODA2MzE0OA==?spm=a2hzp.8253869.0.0)**
-
-- **[官方论坛](http://forum.m5stack.com/)**
-
-- **[原理图](https://github.com/m5stack/M5-Schematic/blob/master/Bases/BASE26.pdf)**
\ No newline at end of file
From 46c6fc44f310860afa12b2eef9cdf3c716ba7a44 Mon Sep 17 00:00:00 2001
From: Gitshaoxiang <45260108+Gitshaoxiang@users.noreply.github.com>
Date: Mon, 10 Jun 2019 09:51:07 +0800
Subject: [PATCH 05/19] Delete BASE15.md
---
docs/en/base/BASE15.md | 30 ------------------------------
1 file changed, 30 deletions(-)
delete mode 100644 docs/en/base/BASE15.md
diff --git a/docs/en/base/BASE15.md b/docs/en/base/BASE15.md
deleted file mode 100644
index e4261b8e..00000000
--- a/docs/en/base/BASE15.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Base 15 {docsify-ignore-all}
-
-
-
-***
-
-
-
-## 描述
-
-**Base15** 是M5体系中一款支持高度定制化的工业底座.与PLC Base有着类似,却有着更高级别定制化能力.套件内提供了Protoboard(万能板)允许您添加自己的电路设计,并预留了两个Grove接口焊盘,方便您进行线路的拓展.提供M型防水接头组件,允许用户将其安装在底座的侧面或是底部.
-
-**Base15** 中'15'代号来源于底座的高度15cm,底座上每一侧都是可以自由拆卸,切割,定制成不同的接口,以满足不同需求.关于底座的定制,我们提供了大量的结构组件替代方案,并将其完全开源,你可以基于这些设计去制作3D打印林见或是二次设计.不但如此,该底座完全兼容M5堆叠模块与硬件拓展体系.在产品的底部,我们提供了3种不同的装配方式:2种导轨固定,悬挂固定。
-
-底座覆盖工业级外壳,自由拼接的组件能够为您提供无限的组合方式,为您创造出功能强大且可靠的工业应用.对于面向工业场景,要求一定的防护水准且希望项目高度定制化的开发者用户来说,**Base15** 是一个很好的解决方案.
-
-
-
-
-## 产品特性
-
-## 套件清单
-
-## 相关链接
-
-- **[官方频道视频](https://i.youku.com/i/UNjE1ODA2MzE0OA==?spm=a2hzp.8253869.0.0)**
-
-- **[官方论坛](http://forum.m5stack.com/)**
-
-- **[原理图](https://github.com/m5stack/M5-Schematic/blob/master/Bases/BASE15.pdf)**
\ No newline at end of file
From 798134cd243452aa19bc21ef44050fc36d4dcb31 Mon Sep 17 00:00:00 2001
From: shaoxiang <1026025056@qq.com>
Date: Mon, 10 Jun 2019 09:52:53 +0800
Subject: [PATCH 06/19] merge remote delete
---
docs/en/related_documents.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/en/related_documents.md b/docs/en/related_documents.md
index 0c503594..296e5a51 100644
--- a/docs/en/related_documents.md
+++ b/docs/en/related_documents.md
@@ -9,3 +9,4 @@
4. [How to Burn Firmware](en/related_documents/how_to_burn_firmware)
5. [How to Connect WiFi Using Core](en/related_documents/how_to_connect_wifi_using_core)
+
From 4455c2a4dee0837f4afc1c0fb347279e670cdef1 Mon Sep 17 00:00:00 2001
From: shaoxiang <1026025056@qq.com>
Date: Mon, 10 Jun 2019 11:36:55 +0800
Subject: [PATCH 07/19] add Arduino tutorial en
---
docs/en/related_documents.md | 2 +-
docs/en/related_documents/M5Burner.md | 113 ++++++++++++++++++
docs/en/related_documents/Setting_WIFI.md | 74 ++++++++++++
.../related_documents/UIFlow_Desktop_IDE.md | 90 ++++++++++++++
.../related_documents/how_to_burn_firmware.md | 2 +-
docs/zh_CN/related_documents/M5Burner.md | 97 ---------------
6 files changed, 279 insertions(+), 99 deletions(-)
create mode 100644 docs/en/related_documents/M5Burner.md
create mode 100644 docs/en/related_documents/Setting_WIFI.md
create mode 100644 docs/en/related_documents/UIFlow_Desktop_IDE.md
diff --git a/docs/en/related_documents.md b/docs/en/related_documents.md
index 296e5a51..55aa0b2c 100644
--- a/docs/en/related_documents.md
+++ b/docs/en/related_documents.md
@@ -6,7 +6,7 @@
2. [Arduino IDE Development](en/related_documents/Arduino_IDE)
-4. [How to Burn Firmware](en/related_documents/how_to_burn_firmware)
+4. [Upgrade Firmware](en/related_documents/M5Burner)
5. [How to Connect WiFi Using Core](en/related_documents/how_to_connect_wifi_using_core)
diff --git a/docs/en/related_documents/M5Burner.md b/docs/en/related_documents/M5Burner.md
new file mode 100644
index 00000000..a8c052d9
--- /dev/null
+++ b/docs/en/related_documents/M5Burner.md
@@ -0,0 +1,113 @@
+# Burn Firmware {docsify-ignore-all}
+
+:clapper: **[Video Tutorial](#Video-Tutorial)** :memo: **[Text Tutorial](#Text-Tutorial)**
+
+***
+
+**This article will guide you how to burn a right firmware to your board via M5Burner.**
+
+***
+
+## 文本教程
+
+**[1. related resources](#related-resources)**
+
+**[2. Install USB Driver](#Install-USB-Driver)**
+
+**[3. M5Burner](#M5Burner)**
+
+**[4. Add custom firmware](#Add-custom-firmware)**
+
+**[5. ESPTool](#ESPTool)**
+
+## related resources
+
+>1.Click on the M5Burner burning tool and CP210X driver for your operating system below to download.
+
+
+
+## Install USB Driver
+
+### For Windows
+
+>Decompress the downloaded CP210X driver package, select the installer for your operating system, and double-click to install.
+
+
+
+
+### For Mac
+
+>Unzip the downloaded CP210X driver package, install the program, double-click the image file to start the installation.
+
+
+
+
+## M5Burner
+
+>1.Decompress the downloaded burning tool package.
+
+
+
+>2.Double-click to open the "M5Burner" application. The left side of the tool is the firmware version list. Click the download arrow in the list to download the corresponding firmware (gray stands for undownloaded, white stands for download).
+>Click on the refresh button above to refresh the list and see if there is a new firmware release..
+
+
+
+>3.选择好您想要烧录的固件版本,将设备通过Type-C数据线连接至电脑,选择对应COM端口与设备类型.点击"Burn"开始烧录.
+
+!>When burning for the first time, it is recommended to click "Erase" to clear the memory. In the subsequent firmware update, there is no need to clear it again, otherwise the saved Wi-Fi information will be deleted and the API Key will be refreshed.
+
+
+
+
+## Add custom firmware
+
+>1.In addition to being able to burn the official firmware released by M5Stack, M5Burner also allows users to package the firmware and add it to the firmware list for burning.
+
+
+
+
+>2.When you package your own firmware, you need to follow the specified file directory rules, add the json configuration file, and finally package it into a "zip" format to add.
+
+
+
+
+>3.[Click to download the firmware package case](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/demo-firmware.zip).
+
+
+
+## ESPTool
+
+>1.For users who are accustomed to using command line operations, you can also choose ESPTool as a firmware burning tool.[Click here for details](https://github.com/espressif/esptool)
+
+
+## Video Tutorial
+
+**Windows M5Burne Tutorial**
+
+
+
+
\ No newline at end of file
diff --git a/docs/en/related_documents/Setting_WIFI.md b/docs/en/related_documents/Setting_WIFI.md
new file mode 100644
index 00000000..08a50989
--- /dev/null
+++ b/docs/en/related_documents/Setting_WIFI.md
@@ -0,0 +1,74 @@
+# 连接Wi-Fi(For UIFlow) {docsify-ignore-all}
+
+:clapper: **[视频教程](#视频教程)** :memo: **[文本教程](#文本教程)**
+
+***
+
+?> *以下的Wi-Fi配置内容,仅针对于烧录了UIFlow固件的M5Core设备,若您的设备还未安装UIFlow固件,[请点击此处查看固件烧录教程](zh_CN/related_documents/M5Burner))*
+
+**烧录了UIFlow的固件,并重启M5Core之后,您会看到如下的欢迎界面,然后我们开始连接Wi-Fi.**
+
+
+
+
+
+
+
+
+
+?>软件启动后,将自动检测你的电脑是否安装有USB驱动(CP210X),点击Install,根据提示,进行安装.
+
+
+
+>驱动安装完成后,将自动进入UIFlow Desktop IDE并自动弹出配置框,此时将M5设备通过Tpye-C数据线连接至电脑.
+
+
+
+!>使用UIFlow Desktop IDE需要M5设备搭载UIFlow固件且进入**USB编程模式**.
+
+>单击设备左侧电源键重启,进入菜单后快速选择Setup,进入配置页面,选择**USB mode**.
+
+
+
+>选择好对应的端口,与编程设备,点击OK进行连接.
+
+
+
+## 使用案例
+
+>完成连接后,就可以开始编程创作了,拖拽左侧的程序块列表中的程序块到编程区域,完成程序编辑后点击右上角的运行按钮,执行程序.
+
+
+
+## 附加功能
+
+!>UIFlow Desktop IDE除了是一个强大的程序编辑器以外,它同时还集成了**USB驱动**安装、**M5Burner**烧录工具等功能,无需另外下载其他的软件,一站式解决编程环境的部署需求.
+
+>在IDE的上方菜单栏,能够找到对应的附加功能,点击即可打开使用,关于M5Burner的使用方式,详情可以参考我们的另一篇文档 ["烧录固件"](zh_CN/related_documents/M5Burner).
+
+
+
+
+
diff --git a/docs/en/related_documents/how_to_burn_firmware.md b/docs/en/related_documents/how_to_burn_firmware.md
index 2a1913bf..a750e1a8 100644
--- a/docs/en/related_documents/how_to_burn_firmware.md
+++ b/docs/en/related_documents/how_to_burn_firmware.md
@@ -7,7 +7,7 @@
***
*This article will guide you how to burn a right firmware to your board via M5Burner.*
-
+Update
***
## Text Tutorial
diff --git a/docs/zh_CN/related_documents/M5Burner.md b/docs/zh_CN/related_documents/M5Burner.md
index 60e8dea1..ac036ca2 100644
--- a/docs/zh_CN/related_documents/M5Burner.md
+++ b/docs/zh_CN/related_documents/M5Burner.md
@@ -89,103 +89,6 @@
-
-
-
-
-
-
-
-
-
-
-
## ESPTool
>1.对于习惯使用命令行操作的用户来说还可以选择ESPTool作为固件烧录工具.[点击此处查看详情](https://github.com/espressif/esptool)
From 5d095ce6d767809aa23f140056f88da669e8d4c2 Mon Sep 17 00:00:00 2001
From: shaoxiang <1026025056@qq.com>
Date: Mon, 10 Jun 2019 11:46:24 +0800
Subject: [PATCH 08/19] delete cached
---
docs/en/base/BASE15.md | 30 ------------------------------
docs/en/base/BASE26.md | 33 ---------------------------------
2 files changed, 63 deletions(-)
delete mode 100644 docs/en/base/BASE15.md
delete mode 100644 docs/en/base/BASE26.md
diff --git a/docs/en/base/BASE15.md b/docs/en/base/BASE15.md
deleted file mode 100644
index e4261b8e..00000000
--- a/docs/en/base/BASE15.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Base 15 {docsify-ignore-all}
-
-
-
-***
-
-
-
-## 描述
-
-**Base15** 是M5体系中一款支持高度定制化的工业底座.与PLC Base有着类似,却有着更高级别定制化能力.套件内提供了Protoboard(万能板)允许您添加自己的电路设计,并预留了两个Grove接口焊盘,方便您进行线路的拓展.提供M型防水接头组件,允许用户将其安装在底座的侧面或是底部.
-
-**Base15** 中'15'代号来源于底座的高度15cm,底座上每一侧都是可以自由拆卸,切割,定制成不同的接口,以满足不同需求.关于底座的定制,我们提供了大量的结构组件替代方案,并将其完全开源,你可以基于这些设计去制作3D打印林见或是二次设计.不但如此,该底座完全兼容M5堆叠模块与硬件拓展体系.在产品的底部,我们提供了3种不同的装配方式:2种导轨固定,悬挂固定。
-
-底座覆盖工业级外壳,自由拼接的组件能够为您提供无限的组合方式,为您创造出功能强大且可靠的工业应用.对于面向工业场景,要求一定的防护水准且希望项目高度定制化的开发者用户来说,**Base15** 是一个很好的解决方案.
-
-
-
-
-## 产品特性
-
-## 套件清单
-
-## 相关链接
-
-- **[官方频道视频](https://i.youku.com/i/UNjE1ODA2MzE0OA==?spm=a2hzp.8253869.0.0)**
-
-- **[官方论坛](http://forum.m5stack.com/)**
-
-- **[原理图](https://github.com/m5stack/M5-Schematic/blob/master/Bases/BASE15.pdf)**
\ No newline at end of file
diff --git a/docs/en/base/BASE26.md b/docs/en/base/BASE26.md
deleted file mode 100644
index d244be52..00000000
--- a/docs/en/base/BASE26.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Base 26 {docsify-ignore-all}
-
-
-
-***
-
-
-
-## 描述
-
-**Base26** 是M5体系中一款支持高度定制化的工业底座.与PLC Base有着类似,却有着更高级别定制化能力.套件内提供了Protoboard(万能板)允许您添加自己的电路设计,并预留了两个Grove接口焊盘,方便您进行线路的拓展.提供了**TTL-RS485**转接板,能够方便您进行RS485类型的电平转换,配有M型防水接头组件,允许用户将其安装在底座的侧面或是底部.
-
-**Base26** 中'26'代号来源于底座的高度26cm,底座上每一侧都是可以自由拆卸,切割,定制成不同的接口,以满足不同需求.关于底座的定制,我们提供了大量的结构组件替代方案,并将其完全开源,你可以基于这些设计去制作3D打印林见或是二次设计.不但如此,该底座完全兼容M5堆叠模块与硬件拓展体系.在产品的底部,我们提供了3种不同的装配方式:2种导轨固定,悬挂固定。
-
-底座覆盖工业级外壳,自由拼接的组件能够为您提供无限的组合方式,为您创造出功能强大且可靠的工业应用.对于面向工业场景,要求一定的防护水准且希望项目高度定制化的开发者用户来说,**Base26** 是一个很好的解决方案.
-
-
-
-
-## 产品特性
-
-
-## 套件清单
-
-
-
-## 相关链接
-
-- **[官方频道视频](https://i.youku.com/i/UNjE1ODA2MzE0OA==?spm=a2hzp.8253869.0.0)**
-
-- **[官方论坛](http://forum.m5stack.com/)**
-
-- **[原理图](https://github.com/m5stack/M5-Schematic/blob/master/Bases/BASE26.pdf)**
\ No newline at end of file
From b0508d18cda6e2efad8ce205acf6b9028dcc2f53 Mon Sep 17 00:00:00 2001
From: shaoxiang <1026025056@qq.com>
Date: Mon, 10 Jun 2019 11:52:28 +0800
Subject: [PATCH 09/19] change related documents
---
docs/en/related_documents.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/en/related_documents.md b/docs/en/related_documents.md
index 55aa0b2c..2d03c40f 100644
--- a/docs/en/related_documents.md
+++ b/docs/en/related_documents.md
@@ -6,7 +6,7 @@
2. [Arduino IDE Development](en/related_documents/Arduino_IDE)
-4. [Upgrade Firmware](en/related_documents/M5Burner)
+3. [Upgrade Firmware](en/related_documents/M5Burner)
-5. [How to Connect WiFi Using Core](en/related_documents/how_to_connect_wifi_using_core)
+4. [How to Connect WiFi Using Core](en/related_documents/how_to_connect_wifi_using_core)
From 8a7d7d52a662407f77206b544ca843bb3d3c195f Mon Sep 17 00:00:00 2001
From: shaoxiang <1026025056@qq.com>
Date: Mon, 10 Jun 2019 11:56:40 +0800
Subject: [PATCH 10/19] change related test
---
docs/en/related_documents.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/en/related_documents.md b/docs/en/related_documents.md
index 2d03c40f..ffab579f 100644
--- a/docs/en/related_documents.md
+++ b/docs/en/related_documents.md
@@ -8,5 +8,5 @@
3. [Upgrade Firmware](en/related_documents/M5Burner)
-4. [How to Connect WiFi Using Core](en/related_documents/how_to_connect_wifi_using_core)
+4. [Configuring a Wi-Fi connection](en/related_documents/how_to_connect_wifi_using_core)
From c7201fa33ffe860bebacbbf1c217ca3b02650e0e Mon Sep 17 00:00:00 2001
From: shaoxiang <1026025056@qq.com>
Date: Mon, 10 Jun 2019 14:51:18 +0800
Subject: [PATCH 11/19] change rs485 output voltage range
---
docs/en/related_documents.md | 9 ++++-----
docs/en/related_documents/UIFlow_Desktop_IDE.md | 2 +-
docs/en/unit/adc.md | 2 +-
docs/en/unit/rs485.md | 4 ++--
docs/zh_CN/unit/rs485.md | 2 +-
5 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/docs/en/related_documents.md b/docs/en/related_documents.md
index ffab579f..12fbf40e 100644
--- a/docs/en/related_documents.md
+++ b/docs/en/related_documents.md
@@ -2,11 +2,10 @@
-1. [Establish Serial Connection](en/related_documents/establish_serial_connection)
+1. [Arduino IDE Development](en/related_documents/Arduino_IDE)
-2. [Arduino IDE Development](en/related_documents/Arduino_IDE)
+2. [Upgrade Firmware](en/related_documents/M5Burner)
-3. [Upgrade Firmware](en/related_documents/M5Burner)
-
-4. [Configuring a Wi-Fi connection](en/related_documents/how_to_connect_wifi_using_core)
+3. [Configuring a Wi-Fi connection](en/related_documents/how_to_connect_wifi_using_core)
+4. [UIFlow Desktop IDE deployment](en/related_documents/UIFlow_Desktop_IDE)
\ No newline at end of file
diff --git a/docs/en/related_documents/UIFlow_Desktop_IDE.md b/docs/en/related_documents/UIFlow_Desktop_IDE.md
index 9155e067..2e798412 100644
--- a/docs/en/related_documents/UIFlow_Desktop_IDE.md
+++ b/docs/en/related_documents/UIFlow_Desktop_IDE.md
@@ -17,7 +17,7 @@
-->
-1. [安装UIFlow-Desktop-IDE](#安装UIFlow-Desktop-IDE)
+1. [Install UIFlow-Desktop-IDE](#Install-UIFlow-Desktop-IDE)
2. [基本配置](#基本配置)
diff --git a/docs/en/unit/adc.md b/docs/en/unit/adc.md
index 885e0269..20ef4537 100644
--- a/docs/en/unit/adc.md
+++ b/docs/en/unit/adc.md
@@ -54,7 +54,7 @@ GAIN = 1, 2, 4, OR 8
## Example
-### Mini Burner
+## Mini Burner
>1.Mini Burner is a simple and fast program burner, and each product page has a product-related case program for Mini Burner.
[Click here to download](https://m5stack.oss-cn-shenzhen.aliyuncs.com/MiniBurner/Unit/MiniBurner_ADC_ADS1100.exe)
diff --git a/docs/en/unit/rs485.md b/docs/en/unit/rs485.md
index 93ef5cc4..c1e07dc0 100644
--- a/docs/en/unit/rs485.md
+++ b/docs/en/unit/rs485.md
@@ -16,8 +16,8 @@ used for converting TTL level to RS485 level. If the device to be controlled onl
## Product Features
-- Built in MAX485/SP485EEN
-- DC in 12/24 V
+- Built in MAX485/SP485EEN
+- output DC 5~12 V
- Program Platform: Arduino, UIFlow(Blockly,Pyhton)
- Two Lego-compatible holes
diff --git a/docs/zh_CN/unit/rs485.md b/docs/zh_CN/unit/rs485.md
index 2fae5852..51c5bdd8 100644
--- a/docs/zh_CN/unit/rs485.md
+++ b/docs/zh_CN/unit/rs485.md
@@ -13,7 +13,7 @@
## 产品特性
- 内置 MAX485/SP485EEN
-- 直流电压输入范围 12~24 V
+- 输出 DC 5~12V
- 开发平台: Arduino, UIFlow(Blockly,Pyhton)
- 2x LEGO 兼容孔
From 449362c83d2e9837bff5e2bb2bced33084fec771 Mon Sep 17 00:00:00 2001
From: shaoxiang <1026025056@qq.com>
Date: Mon, 10 Jun 2019 16:03:56 +0800
Subject: [PATCH 12/19] add sch base15/26 en
---
docs/en/base/base15.md | 11 +++-
docs/en/base/base26.md | 11 +++-
.../related_documents/UIFlow_Desktop_IDE.md | 53 +++++++------------
docs/en/unit/adc.md | 6 +--
docs/en/unit/angle.md | 5 +-
docs/zh_CN/base/BASE15.md | 9 ++--
docs/zh_CN/base/BASE26.md | 8 +--
7 files changed, 53 insertions(+), 50 deletions(-)
diff --git a/docs/en/base/base15.md b/docs/en/base/base15.md
index 016170d6..713f8c33 100644
--- a/docs/en/base/base15.md
+++ b/docs/en/base/base15.md
@@ -38,4 +38,13 @@ This base gives you an unlimited of combinations, it is powerful, flexible, and
- 10x Screw (3 types: M3*22, M3*12, M2*5)
- 2x M3 Nut
- 1x 2.45mm pin set
-- 1x Sticker
\ No newline at end of file
+- 1x Sticker
+
+## structural-design-file
+
+?>[lick here for open source architecture design files](https://github.com/m5stack/m5-structural-design-file/tree/master/BaseX_VGA_01)
+
+
+## Related Link
+
+- **[Schematic](https://github.com/m5stack/M5-Schematic/blob/master/Bases/BASE15.pdf)**
\ No newline at end of file
diff --git a/docs/en/base/base26.md b/docs/en/base/base26.md
index b1da2b0e..f923921f 100644
--- a/docs/en/base/base26.md
+++ b/docs/en/base/base26.md
@@ -41,4 +41,13 @@ This base gives you an unlimited of combinations, it is powerful, flexible, and
- 10x Screw (3 types: M3*22, M3*12, M2*5)
- 2x M3 Nut
- 1x 2.45mm pin set
-- 1x Sticker
\ No newline at end of file
+- 1x Sticker
+
+## structural-design-file
+
+?>[lick here for open source architecture design files](https://github.com/m5stack/m5-structural-design-file/tree/master/BaseX_VGA_01)
+
+
+## Related Link
+
+- **[Schematic](https://github.com/m5stack/M5-Schematic/blob/master/Bases/BASE26.pdf)**
\ No newline at end of file
diff --git a/docs/en/related_documents/UIFlow_Desktop_IDE.md b/docs/en/related_documents/UIFlow_Desktop_IDE.md
index 2e798412..59475500 100644
--- a/docs/en/related_documents/UIFlow_Desktop_IDE.md
+++ b/docs/en/related_documents/UIFlow_Desktop_IDE.md
@@ -1,35 +1,18 @@
-# UIFlow Desktop IDE 部署{docsify-ignore-all}
-
-
-
+# UIFlow Desktop IDE deployment{docsify-ignore-all}
1. [Install UIFlow-Desktop-IDE](#Install-UIFlow-Desktop-IDE)
-2. [基本配置](#基本配置)
+2. [configuration](#configuration)
-3. [使用案例](#使用案例)
+3. [Example](#Example)
-4. [附加功能](#附加功能)
+4. [Additional features](#Additional-features)
-## 安装UIFlow-Desktop-IDE
+## Insrall UIFlow-Desktop-IDE
->点击下方对应自己操作系统的 **UIFlow-Desktop-IDE** 进行下载.
+>Click **UIFlow-Desktop-IDE** for your operating system below to download.
-?>软件启动后,将自动检测你的电脑是否安装有USB驱动(CP210X),点击Install,根据提示,进行安装.
+?>After the software is started, it will automatically detect whether your computer has a USB driver (CP210X) installed, click Install, and follow the prompts to install it.
->驱动安装完成后,将自动进入UIFlow Desktop IDE并自动弹出配置框,此时将M5设备通过Tpye-C数据线连接至电脑.
+>After the driver installation is complete, it will automatically enter the UIFlow Desktop IDE and automatically pop up the configuration box. At this time, connect the M5 device to the computer through the Tpye-C data cable.
-!>使用UIFlow Desktop IDE需要M5设备搭载UIFlow固件且进入**USB编程模式**.
+!>Using the UIFlow Desktop IDE requires the M5 device to carry the UIFlow firmware and enter the **USB mode**.
->单击设备左侧电源键重启,进入菜单后快速选择Setup,进入配置页面,选择**USB mode**.
+>Click the power button on the left side of the device to restart. After entering the menu, select Setup quickly to enter the configuration page and select**USB mode**.
->选择好对应的端口,与编程设备,点击OK进行连接.
+>Select the corresponding port, and connect to the programming device, click OK.
-## 使用案例
+## Example
->完成连接后,就可以开始编程创作了,拖拽左侧的程序块列表中的程序块到编程区域,完成程序编辑后点击右上角的运行按钮,执行程序.
+>After the connection is completed, you can start programming. Drag and drop the block in the block list on the left to the programming area. After editing the program, click the Run button in the upper right corner to execute the program..
-## 附加功能
+## Additional features
-!>UIFlow Desktop IDE除了是一个强大的程序编辑器以外,它同时还集成了**USB驱动**安装、**M5Burner**烧录工具等功能,无需另外下载其他的软件,一站式解决编程环境的部署需求.
+!>In addition to being a powerful program editor, UIFlow Desktop IDE also integrates **USB driver** installation, **M5Burner** burning tool and other functions, no need to download other software, one-stop solution programming environment Deployment requirements.
->在IDE的上方菜单栏,能够找到对应的附加功能,点击即可打开使用,关于M5Burner的使用方式,详情可以参考我们的另一篇文档 ["烧录固件"](zh_CN/related_documents/M5Burner).
+>In the upper menu bar of the IDE, you can find the corresponding additional functions, click to open the use, about the use of M5Burner, please refer to our other document for details. ["Upgrade Firmware"](zh_CN/related_documents/M5Burner).
diff --git a/docs/en/unit/adc.md b/docs/en/unit/adc.md
index 20ef4537..a4078565 100644
--- a/docs/en/unit/adc.md
+++ b/docs/en/unit/adc.md
@@ -52,9 +52,7 @@ GAIN = 1, 2, 4, OR 8
- **Datasheet** - [ADS1100](http://pdf1.alldatasheet.com/datasheet-pdf/view/619024/TI1/ADS1100.html)
-## Example
-
-## Mini Burner
+## Test Firmware:MiniBurner
>1.Mini Burner is a simple and fast program burner, and each product page has a product-related case program for Mini Burner.
[Click here to download](https://m5stack.oss-cn-shenzhen.aliyuncs.com/MiniBurner/Unit/MiniBurner_ADC_ADS1100.exe)
@@ -63,6 +61,8 @@ GAIN = 1, 2, 4, OR 8
!>3.The CP210X (USB driver) needs to be installed before the Mini Burner is burned. [Click here to view the driver installation tutorial](en/related_documents/establish_serial_connection)
+## Example
+
### 1. Arduino IDE
*The below code is incomplete(just for usage). If you want the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/ADC/Arduino/ADC_ADS1100).*
diff --git a/docs/en/unit/angle.md b/docs/en/unit/angle.md
index 413241fe..143df7a9 100644
--- a/docs/en/unit/angle.md
+++ b/docs/en/unit/angle.md
@@ -42,9 +42,8 @@ The Unit's Grove interface is black, indicating an analog interface that needs t
- **[Forum](http://forum.m5stack.com/)**
-## Example
-### Mini Burner
+## Test Firmware:MiniBurner
>1.Mini Burner is a simple and fast program burner, and each product page has a product-related case program for Mini Burner.
[Click here to download](https://m5stack.oss-cn-shenzhen.aliyuncs.com/MiniBurner/Unit/MiniBurner_Angle.exe)
@@ -53,6 +52,8 @@ The Unit's Grove interface is black, indicating an analog interface that needs t
!>3.The CP210X (USB driver) needs to be installed before the Mini Burner is burned. [Click here to view the driver installation tutorial](en/related_documents/establish_serial_connection)
+## Example
+
### 1. Arduino IDE
*The code below is incomplete. To get the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/ANGLE/Arduino).*
diff --git a/docs/zh_CN/base/BASE15.md b/docs/zh_CN/base/BASE15.md
index cc6fed73..65753f45 100644
--- a/docs/zh_CN/base/BASE15.md
+++ b/docs/zh_CN/base/BASE15.md
@@ -39,11 +39,12 @@
- 1x 2.45mm pin set
- 1x Sticker
+## 结构设计文件
+
+?>[点击此处,获取开源结构设计文件](https://github.com/m5stack/m5-structural-design-file/tree/master/BaseX_VGA_01)
+
+
## 相关链接
-- **[官方频道视频](https://i.youku.com/i/UNjE1ODA2MzE0OA==?spm=a2hzp.8253869.0.0)**
-
-- **[官方论坛](http://forum.m5stack.com/)**
-
- **[原理图](https://github.com/m5stack/M5-Schematic/blob/master/Bases/BASE15.pdf)**
diff --git a/docs/zh_CN/base/BASE26.md b/docs/zh_CN/base/BASE26.md
index 736e5709..d1b9afd1 100644
--- a/docs/zh_CN/base/BASE26.md
+++ b/docs/zh_CN/base/BASE26.md
@@ -40,11 +40,11 @@
- 1x 2.45mm pin set
- 1x Sticker
+## 结构设计文件
+
+?>[点击此处,获取开源结构设计文件](https://github.com/m5stack/m5-structural-design-file/tree/master/BaseX_VGA_01)
+
## 相关链接
-- **[官方频道视频](https://i.youku.com/i/UNjE1ODA2MzE0OA==?spm=a2hzp.8253869.0.0)**
-
-- **[官方论坛](http://forum.m5stack.com/)**
-
- **[原理图](https://github.com/m5stack/M5-Schematic/blob/master/Bases/BASE26.pdf)**
\ No newline at end of file
From b2db6dfa6d15dbc08c9076d93b9e1289b52479f9 Mon Sep 17 00:00:00 2001
From: shaoxiang <1026025056@qq.com>
Date: Mon, 10 Jun 2019 17:17:55 +0800
Subject: [PATCH 13/19] change base design file name
---
.../Setting_WiFi/Setting_01.jpg | Bin 0 -> 102404 bytes
.../Setting_WiFi/Setting_02.jpg | Bin 0 -> 104482 bytes
.../Setting_WiFi/Setting_03.jpg | Bin 0 -> 80629 bytes
.../Setting_WiFi/Setting_04.jpg | Bin 0 -> 117537 bytes
docs/en/base/base15.md | 2 +-
docs/en/base/base26.md | 2 +-
docs/en/related_documents/M5Burner.md | 2 +-
docs/en/unit/adc.md | 2 +-
docs/zh_CN/base/BASE15.md | 2 +-
docs/zh_CN/base/BASE26.md | 2 +-
docs/zh_CN/related_documents.md | 17 +-----
docs/zh_CN/related_documents/Setting_WIFI.md | 49 +++++++++++++++---
12 files changed, 48 insertions(+), 30 deletions(-)
create mode 100644 docs/assets/img/related_documents/Setting_WiFi/Setting_01.jpg
create mode 100644 docs/assets/img/related_documents/Setting_WiFi/Setting_02.jpg
create mode 100644 docs/assets/img/related_documents/Setting_WiFi/Setting_03.jpg
create mode 100644 docs/assets/img/related_documents/Setting_WiFi/Setting_04.jpg
diff --git a/docs/assets/img/related_documents/Setting_WiFi/Setting_01.jpg b/docs/assets/img/related_documents/Setting_WiFi/Setting_01.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2fffe522be66a1689414b44b7849e223fd42fc0d
GIT binary patch
literal 102404
zcmex=maEQ3h3&`Gx!1=62;YKgnOXfd5FP-S1joRh{{u0gp{qOe1DSUi{L*3^HBeQBOrv}n$fNv}$y!v8eu+Q06qSB!6${}AZ^)26>;{?}{g|1)?j zSidas@6LbPj$AIYrZ%_)EdI-6*R)Uh?~9PcP2BclN9I#%Cpgu2t$Mq~ef< zNFIY0!zyOf_5SHCD-i;%z@X+jN|x}U&=X$Yw?9k%mhzGL4FAkM|1)s>oj0@m@9G6N zEB`axGW7Uev+~`yw>Mt*f9;*~e8J0@8(kj`2Y;Jt=Dv37(-}SYMK;U`*?ISS+3leB z81ucq&wpF`cdbqQ$Mp~9?R@yR*#F|%oT+c$HQ#X5^4yv3z!v2u@v}echtZ~moy)u0 zw=CawJS=naqfK6~xw}2Ru3x ^unRh1fKUt&ecZO$8>;BK6usZ*{)?1cV zmV^f%GGw!NeAK*H)A+3~?^{o$e7)V@{Z^0GcYYIYv5bDU@2+n0i%n %P`1*#^B1xV**JDpN|j@~h>k+J)Dpo3z@J*c^0w z7tBf9nS8x(>MJ?*57$;dwrBkz_51Lz+G}gm)0b_VT`1b)YaAWZJ#&fHs|8c aLedFKp$oNqwxF?6&8M$&N+U%% F$EuBQmLrW0xz- z*%Z&367qMuc6iOE-JZ7s`cCOxFAl5wK6ksxH_u!5ul;9uQo+W*RKoI@<@yDGqKp3V zU$0Y-eR*N&+)ojiL2D*OA5&?Ibm3KQU<@fbcU=3z c{b)OGz zimlzH;WAx5GkT?h@G8DIM=72SKO1-+>sa=GZM$N(>17nJcJ iVVL;_{UhpDvw`Zjah^b<295Qzk$2bxy^^-F>gRyh*d} zGskJx &|}$KGW`asaNyFr#Q^&o23`^@XY*OoGiJ@J93J42TZ7bQgwY{ zjq%h{ekRBD){OQI&v)+R@mEam*t*Pi+AI4%y gXufO?r;mLo7%g6T?`kNnh7kCkwf3muEr`L!5(>HIqzv{+PKi&A}pI-lXQTcA> zhwC9%zWVB&@XgFCfAXE9tuv+8RV{<|KX6f 6^f^!4aF;Swa0jP1&R8+gb??8Bi6_qc zbUn3`%ZjR7{+QRv*V?n+y|c!0&1zSf^BT#2=NEoXJ!yC2+p2$;kM7Sk-J zbW5N8*3PwVS1F0T|5JvqbzywP^ssH0O>Xd>eS0{!&%mi~rphD-1_n=+1_qT6+Tlm! zICI$!zb$-SWw)wZp)KU{yYDBZ1w4L6XeJ)~Il1V|^NDlkH~UQb(I0&I$V%3C%a_F6 zxM|ZTAo--VY1!ig`e%}D?}YX<*H~RKxi3>u=P#B~9+lTt8ljsPAJVv>b;kBz+jQ93 z<;|>k=4oF#ntYeX)m3xF3Rmyx-sisWUH50r+UwP;m6W-cF8j~W_&i1MR*$^bH`_RW z;d>Rz$CQtUZ5QAUZ!9^#{dT3B^nP1sS9a#CO1nah`TD2Y<;%A1Nn9VB9cTPw`hu7l zeZAR sRev0>Xvm&3|SsL+Ig+qTrbquI_|CCtJ61Mi=STq(d=@_ zSNTn!|84!xpnPCMt)_v0*7w)Cb?@ROD!dP?9N8uNzCHKStFuV~(^=ni-dC45Zf;sr z8M|0wWsP#NT +`Qey1(3n11o5 z(@hIDTZwZ;kg|a GT%)z^+$)xj{>#3R{vU z&u-qc_i3tKXQbKVcdy><7JhTd@9+K-pSm;_?VEuyCW}5s`_v}#KZE?o`s;>&&L&;E z-fjQ*pZ>3B_A}Q+adZ84|Ho {fnEf3(F;{hHFY_JBQ?lOl!AN-9gsUPv$& zzUW@{;nl6V9@m;y%FcY2^kJ%j>GRgLA04;6y~|q7{-$Q(e}*jiHm(Ck+xBL0*mCF@ zX&--mqdxikPb>e{{|w*cxBh3ia5STEZ~uM!H`V+ ?#u3fvaSMY1A~2O{XO|JS4)jwRH^m iY|2<*<#VdTz_2!zW{|pm<2mWU$;{Pi&^}|j1 z-$(Wz{ }SMK1kkSl|7h!E@q?Kv&Uk$3IsteR%#SxAT|$C)u0V86TeiNv!?F z{S(*I9d$Gob+Ld-E^1-d^8XBSlk0cfKegxIUZ(f|Y}NiV6z-o|`Ii+m aa*@WbLeh~6? *+kLcIEtNwYQ)4FLz#M;kC{)x;*>O+t)kKZoP6&!ergShOpCe4lnpGGk;q9p7X~! ze_mN9$v2Cx=IFn*J6f1s@NWKYp(Ts6m6?`UX@0SJB6BTl xZjbukM>Hw~%E+-G7Dvp_BXW6?xop+IE$>hb?&b#^;?! zyjr~qTc(?&eAzZ@?X2?HEt~fzWnNfuXP3q5z5f|p{?+c9`p5gRrRfcm-QM0BTjpB( z@PCW0u9Q8sdE4`{GL>m6d^4Cc4#+&``}Xg3(Cl-&cT9T~lYD08>1}q)w&vO>7nY0e z(_6b}_fCJKd*__) sYwvJf0y;4)#vRvzEbZc-= zvZaN5zevzDv8I6K7q?#Bz3uk(uy>bpe;V4@W@cUY{_^Sf_V}uIDJq}bWhO4^S*gHy zMTU*xNlN*%W}7zAmJ`QRlMdPZSuiK%@%6@^VRPn5?&*3S(s)Sw)<7lXq@!;o4K= zX(@ML*0kS;Cf{@{d-U$wqimbnRrkb_K0Iyu 5|k)zKHK3#2dwie}L<9I)D-qhg3*9_w;`h7Rgshn`OR3?bk zHe?6;#J9fTOSSTrl!om;A N$oOtq}`a?FyqnG~ovQyS>zV|!oZ}0M!mAqoRzeh*!-91HbEBETFoq2j` zbCY5>cFJsUd|`YcnD@$Al}VCw_B6C79oONHnfG;N;X_-e8!aWl`nP#IJEL_rB?!K4 zJ9&_Oj(pCtg%7Lu8r4Q=&Qtt5=hP;vjoON7jAbQ@ZYXZWifasBX1iLHN4_M7#@ z$!*$QSXDo{eo|V(t{EPaD$hSt;99%m2~RS^UoCH6zfXrOgKoX6E}4=$F=@hz!WV_t zwv@c*vHdn%^w0EfWoDQBuAREBcT;bnziUuoyUZ5}%j1%hgFe(=o6h@k(zC1Yayov8 zuJMcVa7@^#F72=Ccu+;ixXW*!?CG1^)^EF4_DBBCt#|ETv+nHqvn&5c{HN;|?arLs zc13T^q>$}9XR*vI^VqmE;PHjWE0!&Nd!+1A^pa1ydzOfISaLlnQ7N%lw>s|9r0c$6 zn=ZV4y7jjX->sISQ}5PXT$psgb8B6ayLQ*H`G@bPY~MENalqClNi|1`~EIE=g`t zmUzxEx$owqMf22pL(k{lpIqPi?emRYGoq$Ed3^iHe(5?kSJ8{F|4D4VZ2D3s@#@<> zQzebOpVhr@D7e4-$()Z{q}JUN-ub)6K=tUJ3Ep{m(>_MF#097r&uKW!8j&n{;sATs zC5v4~U31^e+P8B3>kBgzvyS e zTfnT5aA)G>{d*H%%_`0e&&^fY=&i-L|77k#>0OgAOuX<|`QEB|N}_5Hw#R?4KQn7a z<>ju~H~)i*ex;?N>q{RV+q9M6_Un>zH`Up1e9k|6o51y-f$z=)$763Ed|CO gbYQETR%U5BtxNEUxkz3S%hWID{p5JWQaCM _cgWF->JoSyg7JvND@XsUui2ZNz_x~Bb%zb^PM*H7VyVZZrR+Zyk{hnW}QuVyO z{_)ki`4_?yW9s2dp9# (PIPU!3cYdhWlr|M#)|SznR%)75GD zf;!3fOg}~byRxr-;qUdW`{j%;$^R~VJYQ!2lcY=k8Q#e4|78{Rx$8@PU;HP-%=&Nq z@qcA?E00!3$bXNj>-clK)BZ_u_kRYN{RZn3|MuHId1)v9pW#N`_5TdcqK~h>vETUo z&s_CG{~3Ps-}=w+B58O3tZMoFUjkjT5=6p})^ADwBQo3LN9g0-^I0p559dF&t-6%I z>8?+@;X#?72V0p|oAmLYDs14FR5v}Q|MvICr&o;rosU|qDajIXKcWBkcfUhBfAPE4 z)%<5TT>Gc`Kf~gRtMwn)e*b6a4YS++pMh29$Igc{llmimsH;s?S+FIuTK10WfmaSG zl8X)&f2r#Fa~^a)6===hqQLC`4E1{Upk?T<;sxzrOo{r>aQ}4wKef3t*7aZJ(*A7! zPj2Z);eVa3>;L}Q@t@%l=&ab4s9JRnz4&XeXus8$`X3s{kIfgj`FFk755e-4QSUUL z--^EHHM>1 I?KK_K{)Hy)V)pScZDr@?z_IK=VG|FXwTFC z3>o%}iv|B~i f0!}BBa zd46mQ6q~x{cFdV7Cr?lQixEuqS}!vg*7S@2XE?EZZT dabYJ<+yr`s3|?rk-c}&u~LN=s&~7ZBwuONPoBf_u-$jp6;`*KN<5O z|8L`0{lC(gvHop!ul_Uav7fo>Rr-Z5zVeWjtlIYQ&6n7Z3(+9q5Dk24AMG>y&u~)e z nqo@{QwPzeOvtRiTp2B?T4G}zjxNRe|7&dzcc=m=F fgxz=WG0M`QN7F|Jtt3 z{%HQskInzL_?rI=UsgR^zpy`e8)}awF8`q&@*cdIs 7%cI4=rY#kHHg(Bug+$dgMJg?QoSBks_DtGFT_GQ)th7G9 z_gCf5*mvJ|h8mV?t@hr!>u2Rp-8H3A{oRjd`(NI7UV7bv^&;EXJ; u``#1c_ue;mt&bHdOFnvu$&z%#OU6YmFWL7mRtq722woq^G%i7jnD>i-o zjX1k+P4}KzMrZu&TFrd!!MC&ENDgTjt!Bx&E2gzMGZAW?A!#W&WD-FZuTE zd&dh-S>~>K*vD4&AhcsEuYS-aowcT%d23TPm*4pIVa+0! o}KfpaGAtWn}iN; z;XVd+mAcUQfRD0mE0<=5P3rE5*;0SYSgB1%IbKhx*=9n^*W+qCqqIdE7E5X#d%3#w z&6@q^ud3yIygDaFHErvk*!w@L%z8b)YQ!JjR>mQJw(V2pX#s=KOA6LsfAYVKGXJNt zb=Q?Y(FH3t`a}5?Sa^Ew9M`yeUS3OX=5x`rfzdXm=IOWIzt4)FW%%o?Yw5ky@BHj1 zTUks0Rd?=tRqZ`{_v)Ezmu!zn-5znV=7`qO8J6c5EhL^i_}Eqa+D!Z5N}XAc9{mgJ zWf6>VSP*6R;7s6m;U;t51q|gWJzdXMtf=rfxzcmnyZL^zOa636taL3ps Hql)b9Ou>(|Hs zke0RUU4N@0=-sDWqess&Q??2oH`%bN?(
C&x^}z4G_|0nWtW~t>)o4w zJ^M{b)Ul;YU-g;Fo4vAiI4U(eU)85BY1O*7zc+7rY;pU(+}FI RFgJ8AoAU$fi(@kal4TJMaEef{}* z?Dy-JPrO|8QFT?eRqf5ln%&icIggoD_bl_Xd^tI?f2GSk>8=B8pQpWjt}d^4sf+#b zglwa(OBPv$nd_$g(f^loE@IXsU%Typa{qZ~Eb4k~iN5ucFZk&EkN+9O{}#)ixu%<2 zvH73 eq1M0WZiq_@%234e}?0$ z{@O2CcWB3d1_WoOB9^mwSbdQe(#Cg9u3uaKy|?b_E0o=#e?n&e&Hm4@C;Q3fzbkA0 zGdO>b=dQC!Ut<65@o_uL`V&W&{%5#hTmPkG>vPc;pr$fP%lg{}`*&OZ3jW+KRDa^R z_&>|K#JI!12sfs?qp@?5R%;&cTUwz?K7M}8B z{gnNA^*62u{avA3W52SZIDGSE8^^_KHgs&2ea(8rFXX`{ZP8Ti ^a@ z{Y}Q-`7=xR9ObzD&gPC{z>#HVPcfD}ZICxucKgSB_Z_?E-S8}x+2A$7BYopM)kxW? zf#pVw)AVLYKDT^%HfXu+n-is(Z_n)e{Au$)S=*1@|C;55{xckS-T%+f{f|}kWAVRi zHmd&_8n4U$N!lM~>MxloWm#BU^n3CAH|I7SR9UmB(kY0;Rh^L|sfzL5*0=AJb~RZp zoS53?$~Q^z)TW6O9AzCBu2d~+n Ea^5d@E^|=2}WBfXkkh@b;D%Ia?{~&9hZr^+>z4_Lktmzw1s$PA1OYchM z63g6%Pa+Jfj87h`ILE#=X k~A787H0 zKeZvZx8|?ul8Fv4M0Oi9SjZ&saQ(Gie|Ej#e}+?WCHL3F|H@p}nf_8&B+z34N{4UL z*7YKp^W=Q)$1d@6b4h+y{GWkQ=DK9<$7Pqyl`i|uD*XF0M*Rijx>XffSEoJ{KEHlO zV!^qqSt`Ht{ynL36@9AwIOg}xO9AT_%y|AYY~AdSlYMq3Y@fC{a`GSVPLbNe=3il# z4kRh9KmAi?!?^-e*{R-D%l4a8@rnlfUS0FGyU=v%nR3JL8pZud)^( HlY#=pXf;VZG-5FU(P2CqDYm@KfaL`d^=B|7UP8Vf=IZ T~qd-VbabA_kT0LivMMHY1e$7zgPb=RMZ=XUOB(;#Vq?@)Bf16 z%?PW5PTGiIJ>-j8(;A{jYjXcHOfr3Z{x`$@`j^(%vtz=K9h~1BXD$DgY2SZ_OXVx4 zow+vsqw=f% (7uK7t@DgadG-li=bAXdZLYcfkGD1FKd$%P zees`a*0u6)n bq#;V<(~rZ+EmgSJy)^c+M8%tYal z7mWSSaD2)Acjlkg+pl-n{hy)VbN`+Er*ZX;pqiAe?(08%d$X1jnD4pz#qd?xJ>ggO z=hs%bw*Q*;pP~AX_Srw`$cI`5gO0`vMjk~1v)7;N|Dn Yp&Z%Z`rRVsd{_C!MR<2_VtA? il?&-v9Yh zeq^_FcYXV;-`*@6*H0C=^TOdjLx0EW=TeBdov?X@()B9!maHOyaX)_+-hp?AkoJ2~ zI|^i$BdvNsJ;EY!upeQuUsUZsL)3qU_fmgXqpptlap;!bLTzzx>FI8kJR3H$RDD@L z`TXUqxqCoO6?^Wd66eLsL4$q|G1?|y*7uuzy7gnePhZA8O}2SE-Gi3Y{faxb=i1&m z{J*!_yVT_$>9u(-cK!3|&s^W+Z+!meH~C@x-}bllUku}HF`6+ues16R`#*!v?7zYP z8FpoUIl2F;{qJR44eU+-Gd!4R a
a zhiovHDqFW* s| zKchdHsC?KmYwxeP_*Y@ueD#)HzkD>Y=4QxmiR~Pla)Uf?NzBnRa fu|1+GwBmezFeXsnj zY4xAKv;X}g|2Qt$HN80b^8T$l{~4aY
xs{Uta+V!%?UFk$mlH!CX^(Qp?U&g0jKV0^o;nUQ!;(tL4;i7|meE!-j>e7H8 zk{CXx;_;*4sB^dCx@vB(c~f~M?^gY;#XG *G~RCxjcW`eB;-wS8J?`)o)(= z>^t>WrBlSoKbu3p#xrC@?GpHAc;NYxX@^fMe|qpwX 5Xl8j+n0Hx6EUY*3Nre z@bTH%P1mJrQ^l62KAZl$q&jWugWlu=o9B9a?3|Qc@^qGAyW_u0UlRWnXm9;s-oN0Z zPkj0u-F=IibtUX|ny=O$+VGFBCil`l-OM#zi;hP%78fR*ooBzV{l|3sj`ug_CV#ke zO ZllLkBNV-ZF7CFedBqC@A6M7Z?s*W%9B%><(^hOL*wX*q)#h9U!3=GU-#Mg zv|Ve@UFypRZZ&>dC!nyjE%0$K9B@>&Jn$DalVEAhK=-2x{bNSo% zzmd8Bi{ YFp;;{f?aH`iJYEsrNt5xxZC@#6PaRw*RrebmY4Ai(g#l zOwU|;!lNs@Y4^>i% ~oqpS&BH WY(Yb{|rr0e>|_)$o}@b`6J76 z{%_+W-zMLRIXHjvnJ)ENmWHovwguFxWc@z;k1PJ8cEFF~-?~{Zm-&3V9`*N$mF6tt zwumQupBn#ta(PiZ u>8Uc--K|TWQ}^|6u)p27w&YjPqT4R2O9ZicEY43cI=PwQJ5R&0iRQY*qb1 zWBZi(+%-AV<3DciT{Au6Qc3reO`9(*RX;haXyM(b% Z(Kj(KUzOL zwwk^DkMfcq!AGuLJFhppe$g$}HO2oKCUt%|{_l|e?=Y@Epu;93 zYCNylDF612u1K<+^Kzd0=6Sa&j6YRQIQIFtnyo|cm1>XdFS{Sl|1-tE&HkI -euv&HpuIP8tb|n)V}~XYqQ| zI`hZoe a$|^FM?7#E-)NcHR8X@KQwd zcmLA*6GoT+?O6Uv^he=;23C>(43kg%=={$RoAaOHOBYxB#)3OP4|Qp*G&R{{`JVy0 zQKR%2qDA~d6?AB46PDw(z^j59PcE8LD#G~M^Fy^yN>F~@PRW1rAJ*_o|FPfv;aK1H zY2SrUJqzv6nQ@H6uKCv9BK@zPUqp}9#QbNN7-|3dsr}^ew?DVJPY*c#I&`V4rp8^{ z`ZNCuPweP7JMwIcM%cPLsVcKBhklncja#|=kLu<1I=aiVPcO|(4p+!Mppt%R&zjQp zi?{gyWR9r6&hek&i(tI$p$Hy5yQQg}O_MyM{xcZA-|^bySn8AvZ}z~0Cr^Fbw$0 p;YDiwi^Hc z3=_@X|NZfw;frEi_=9*s{T7?thkr{K{`Pt~t99?omj4W=9c8+H*URo$r>AxB;RlNs zmkuAEX0!5U`EFY|t}}*_)1tL*?A&?MclEw&{XgfI|1tj0&=h`n#Sgc8pO5X++I{)! z?HMg?$9+1btb^Q~tj)?dyzk-p!1<~!@bA+7>Ac0?az5^<(pzqoWmWnlt=2xclS}tV z!h@#e*0B|*o;+4~(xm+@`QiH``TR8jAC^w`kX3%*}3dnacyEvWe uL#&VE=_(P zTyCebs7uQW Ue z6$Lv*QAi}vl?h)Mkt%2DFIIp2PyE+2^~Mofw<0e`XgY-LJc9MzgXr{LdA6zkhvZob z?4Piw-u^d3wd5D>6Zod^Ku#&(sk;_6{cqEo{|sN4 Cy%Kr@No*(xAJN#|`FNr1m$>0CYH2<~yKSK%9fN4(sLA5=W z`Ku%Tc+R~0c*5C~mh}aTlI*`I$1m9bp*gz#{E__=);HHbm^fK=UGGOJ&l&F0u~941 zELd76D}NRJCHZ%C`hNy{!}|M9?K`F&S5=$+@P{Y=I)@f_n ^vk?-d 3po4rf>CGUTF{QFMny7>4X@nV}FS-<{z z?d{?%^WK^FU0MHYcctK@Zvw@~=kBg^|EM+j(zd)m;=JD)^=9hrIV5Rnzg=R{1eXQ% z8MW)%V?5;ZPfob;zRTJ4%^t&LSzd25SNvTX&~QvG?3UN+hQiBQr|!G4?~VM=&?0sF zU!CfoR_nvxw#`z#w^jZ2;z`!8x9o7ZB$gVwy-mkh$kVc8&hKl-zpb7B=g-mq47FS) z%;Nt9vh#obnEpwm{t$2Oe+GM@e@@%>Z_WA7@cfzn?-zlH!02UoxF@2<^1+P6$>CR1 zwtemtT;TNP#_I;g$Md$%UG(~%=tuq;Ir{IOd7R+;&yb$V{89O5@IT!etF1qJRi~ca zww`tF)lD-_On&AbRD63O`_F6fP5Y$o{_wk$9e#Do>lsTXpJ9!hvho1?#`BIbd#>89 zUHfk4y_jp;+N<*)yw+Y3l(Ftf#hug$#uMwCY+M&PE~-BmUZXZ)TCxqd_B7jwh%@s~ zveva`2HkjBRb#fgQf4;eX)$J%N&c^VYq%e`@&9LFjr-u!Rn(s*8BwDAW;(O-C(~=) z=`TPv9cYUpxMu6pSirCKVgH+#59jk%-1>gxT-ud&%VsWblHR*kcK7By9g8PT73#~c z&w65K`0wUC(I2TR{Fh{goqtrD#S|3r_Nn0QLx-Ezs_{isY1p+i$NjC${dU^&?Vsb_ zXWjgbjN4**Qsj>9tN-EtTk=Qv!(;1 q-{?E2en50kdX2eoWS|Id)| K||Y;(ze{E#*V C9^?B@R(P0Qm&_X$@-KaOwK`=k5luVHDd+{3A7TyILs`h{M+(zM3b@txxd zm2mEL{~1nR_)-1u;MxBS3w-0QI>^``{Lj!VC-_6~!H+-256 ux_fe#oD@Cig??_0~O!%k)++K6hHNXSeckrN7tRgSa+4pHL;l z=cu$>N<;RX`a|}E>p5#UKa|8td`O#SvR5-T^R7>?@@ee^lfE~eX$p*Q7?>FtV^>N_ zEM3$nXZ+#yH~SyKAC^CI{oc37^kK&v8|UI@xzo>2e7ya$@v}<9NulN`ee4Vq3^+y3 z_tk$2w3GPHaKrsSL)O8#%W=9N&;RpMKP>;7<3GdO2o2_2*(i ^QW>c!T}yk-FiU zMwcU8LX10KmwX7{VX$Bt-u6Y{m7t)$MGbb-yZ;8&vKG!4w|^4m|Ldp!ldCt6{#$9+ zwBvmD{7>5Ie`}V1%KF!R-u_8={2!fvz7O~Rlug`!tY1nt`^8(~e-78=zaFyx%MyN0 zd2OxiqWTk3hyU$x|Ie_X>xUlOKht{GpPRqD7qV|``#Swek9_BUhEHmD|1<2D|JR~@ zR5y3tw^z~?4MtuMMTGl253JArG5 X7Ym-S!2ivMfVp4`1) zRoayW-wM0_Gn|}x_rO$HoxZIe@0O~6cT@Mxd>}6t;jUA5$#j>O*@=y@xqP-9?6VGB z|D(C$M{Z*Fi>oY0T5mnv+_%?m>lfL|?Z@hWe7p3Y;r`^Gx>c6vc@hdFxMs}qi@CUU z-PNs`Wj6EVAM2bpIrB2%^)Z`Gd*96c(p`H$`E ^u>?ypQ3AH<^{ruJ>|Kdy=Y8Pq1PslVZM`agr)^+$Wtb uOj&$iW0T=y(Tr=6kP?&|mAij6gnD_>5tli$@< z@g%UavZTSF?T)cVOj&tJ%0U^H>5DZ)f4=_Dz_R$G&aBY&M^;xXbW5Ff^t7dgb<1Ok z{|pUvTfgsJ-|0K`=#_83YL^JdT1=``_FWdnC1Na4X~B^4jiGF<$YSZcS;?xJQRn@Z zv910%JK*xUooPC{vqQG;*G_5Kc2ei!&6J5h&prLLM5ciI@cjKz{2$q4x9zJ{d&iw^ zn^gT+gyY-NOV&x#ja>Cl8h-X(yILdWn4`^#2h#rQoVDNAs{5DUdcAWY%flPS{fk9| zYQ37OLi4x0+@G>*>wkupde7gcmpj$l->lvg#;!P{Bzay@w)X6vtv{x(xPRdKwe`um zy>rh_oqHtcwx`H HZ$6xXu;lGgW&(Z;`6b+9cL~ zDs^kP#@me_emBaf-Pxd=mo+Oc^W&YHF=~xVb&pQsSeqIh%FD#_FyL$8$p=-l<~@&T z`<6QEvFGLIGgBg6COJtqufLl!@A1Z08at%o1b<9TfAlvk*6iM;4E3&a($CXNQUy<~ zx|pz9!1HtyTiKhF4 BetdmkQ-)Q`u~Y9fS-yq8m_6%W0LM9tQxiOtmF)v~t1L^SLJUh@g@t!j z{b!hey7<&tjj$sRR$V&0+jFh`>1SK)ZT~6$J8N8{^+Wriedn}!y58M)9oH`XZNmL@ zMwE+@Vwc0sw3y-p@7%rqGX0%tQ@f(Z=ZEyee1WVZ`i@v603=k0uSSI?f`QBiSi%B)DI$&)vkxrVCmKl}6g-GBTa=FNT(&;4?q z{KW@ixANvQ9ptI?V=t 2)AW71#V*qq$7Zd3tA6J0rLEKRUvK;z$;P%%UeIdY z }JfDdo@Rn zKUb (Y5-mC)h1wU)?{YX2STkbRx>4 z0n_zps|p !}%*#KP|5HWI0(9iz`+pr(Z&qX8mgk1=Vk+(L@?QTL zCcwr{A7hN2@+Upq`MFgjFer<>^#RN)7IiWFin@7Z+C_^OC-`5+TtBi_?{VmdBb~Xz zzB)xZvjtK+B-xqwM@@eCZ@<{~hp$Wcc+YO)Sn5>yxS?Laes0Otzv@|$`{Gmn-kNx~ zWY?dIe_E@4ie;X8{QlCs^K0inx&EN$PRZ#bIi_nK^c^#fcgk3>u0M%Gp+i8R{;p`T z$kwM%X0jAzUYV0sTpYc0+s}E|1q*F{G|koUn$)hGUw!Y}CwI+{_WxXN@BjYzKf{IA zO7?d9CyAH-GrWGK|Cc9x{U4NZPsfMne@c|>|MjaIwCm%;pV0pd%Cqby{%5!}^Orlz ze} i_TMS|9$?`+ulT?LE@`C}k!0o}6D*ZGrRLZ+Xi9`0(fT`}_@e z{xh84v;X_S^?m;t9!xkR?)78hB=%pf%j3VNtiPylYQJy)T;43zjnC{8cm8LXUs?aY z+5JXd{quYAzaLy*Ub*t`*FP^l2mgNk^U{X%hQE2w|M`9TKSPa_-QnW@40fOXGu&s} zYkk)L{rczbv*zEAKiADj(4dP6HpkzX+kbwq|Mx=%!o)A{!ETYus;{lL(qW(Rx9$1A z+Nb{+_VL!3e$#ww|6p~Tys^tgPA988i97pmuG{(NO8=q#K7X$K`}ME%=hMfF`2UEu zA8e87-^4fn>&rr4MdL3{U0QqpUXHkNCq{M8_I#dPh3yT@Doc3Y#!N7(;+bH4C&1{a z=%M;U=dRelaQGPh_t)0{3{Sf3AEsx?e^IDd{qJwoe}+%4+I>g9fBzoOpZ`ujUr%+< zhq-5ZO|A>?tTbs)o|cw;a;wTD&u2{a&-?#We@l3h63$Vlc7OiQ2{xhs8S2*7|5RG^ z;qB=P`>0DL-WI9 m23hDZa>z#QW(y!Ut2xXr$JF_Gbml*XbN=<{8C z@{jHx-uRLKa1w`% pY>#q@W)HKHoe@(1y3%{F5A(&PR;r0 z*}k5_3-jZ5RW+Z}zL_n5#7^L1O(a8i_~qR9SL -L$yxsp9y4J<+Pw!_k7BVT1`6eFp_& G;YItpQ)qX1eqp?liRWg6{e^h$1rGS8Ck?(ASZK z#J;c{=lS4QAh2v$)TM#-j&(@8mU%6+$(HqRqd6zNJE)gjc*$eJ1ox*++N Q f!{&{X6z(Yn+(r zz +e$hPtlilu)3UMXBfFq|&vyM;AK3N;}^6dHR+0w;-BCqSt zPq}8c(aw15 @j-Aku!n<}~Dti_TgPb;>q zRr_~7uI+S9z(=8-ZkH8!#4Ce&X5N1NeODNJw@v8EifP==wb` o?613&uI?%lKC1>aDumKGfkdbXNQ_bRKK#18FWmcoe3||C*uT){UqnDf zW%}^BI pi8@^Gm3ADupv|ka{6s43N!u!nEr9Zg-XOcWi{SCg;{~26VOK#zr z;${2^TKVPkpJDRmEB_hZh^K@0^8OTpT;^Play&iwE@zAdrC9dGD1dgCLl&0Khb}bD z4rc!J_#bCZ>hU8Rr++Gc`Mc`v-G7tkRDb!a{oZE#-kQe$3@mM~wc3x|p0fW{yS(B* zLz>rL;ZMo`8RljG47j!^S}uIr_r<#J<5oU7{-43-`lrPw`~Ow0f9iGEX1(rvx9EF& zgCPR$ljZ+>jz87S__Q*=%IMzLSMz-8KcB7FvYGLp;rXn8ArbuAr>iec`@TK|YIq>j zz(oft {p!>ATipIT>#yzR`NvIvWkVINKd-u>V7tJR1Xp ze2NVJuP-~6O_=!$G%9Pbs7r%+{zv=H`(D#{&3zk7d8 W_Vy|t-Zsnh=-V@n z&-U&u_%0s2?WM|buAOgIaUN=5IB9WG oO2YJ0L!nkx@_N45|M^z@S zNi(^@ls+%pQs&sJQw0Z}NO@_hOxk4i(PGt&U7wDGPkr`1-BZ6;?sewQ%Q^2-0((EX zPyThS^xO7tt7lg}+|qRNp>_L&87EID%s;hRV`V_sjV~W1-z9hV>sD>QdGF%BS!;9a zkGxFzxcR)&X|vhsI)~-=q?}wcH$7s0^q$`?4?~+;LmdyuKe@`K5!iJjV$XZS ?!`zW!tWYXMf?+ShVKn1w2z1Oxp13>+1{gde~h$FEl}; zpy%)H$G78r%l^dmKTXcJ&Hu(N|4TY7|H%EH7LxXF;y{<3ub#E9&DQTW+MTbJ`&)jY z+^3T=En`tv0{V6uQS|8?)4SI>7yV~Ang6l;Z$nA{U-=am*c~|5;k>`k$fF{>!zifx`Cw8jHHv zAgMkg>OVuDi9UDMExDPivkGq9&o17&ZZ6MGwr2smyEKm(H_nmU!noVjv9>mUS!7IH z?3robwtd{P>9pdZMH;6K?HZV}jSucKx@f2HBkTAPIoT_TSGPnz)z7cYE1JY`)X(^Z zqkN!)bV!(V#eFA#DfJe=rTl+XdJ{?wm#6&PpDI+D7Voh8-2Jt#5BAIdsD7k2zq0n> z*&x}dOP4-Hb3Sdh@O*4hV#z$g VOP_Sl z6K%}{vPVmI@$F1}RLk#w&1CnKy_Ze7E8e}$Oa8s-$SX;iYEgxMCX999rM3_Dsr{+= zQU4+5wtml^(B&_JV|p({`#oJYu_`a(iny{(y2RP68k--BAL@5YDPG;9_=sCxAoJC| z=+mhh^|~A9uG<^9@tg#+gRHOUlX-f7*X$GcA$(-g3#sS*Te@|l#6K FLMPW1G`#j77KKjt=b$RFQKte#REl7E>;{fcKa7{Ey=O zdu$)-v->{Un;f?7@*Zm*&4OP&Z#$-$D=4Sm+0^(|^!Y9Qx6L1-kBEPayjkP*;pdJi zZ(ZlTagzAPu#YW+`9{XF<4UKcb{Ui;PEECBsk*!ZJf}Q*_zP%N?c+M*`jZMDkN<6W zU;oAVdTI>X90$WIll4E@qUx`U{BzpRXa8W){7;qgg7&Z1&i^;jF@DD{JSYCIs21lv zKSyIx*W}=le)7xcN{T={r!)_}+si0eNs;-Vfo1D|hUkyhub0=qy;}P=p5;HoLEZXm zfBb&Ey#Kp2zB*{yqi9x z7^`Cf}jfU=#dp`N#9$+TWb4x+gdP z% `ScoA2lTsvGw>#`(q#`OTSczbHNB_|H(>^(Fq6 z{ILslXa6&7@tgTk>2X%3oYIGBi ~`M52a=P1wF2D|iEwZE^(Z`$7Q&QA6Z!-uw+brP>W->T1erT6%G_UdWIXLny| zo3Q>5OZc3Br}oLsK3dOSr}Q%H*SW Hw6N2Kzs+$wwoSSt 37VUB6v4zSBkljN|J?yLVA$X(;1JKd465szW0yQ$79_KYs5d!?=sm@a$Yd= zR#<;^)wPWt{kcU+jdzY5Ei$-WP+=oCb^C|YasHw;79ZAam7NlmQ`I*$yJA~G{pto! zp&h*yGI|9Tvf2$l9zHnF|AYTq mV7e)vTo+XvwYgR;lUq{ZkwH4y7rjb @T)@X|`cYZj$@d6Fd6cA3gC{Qp9N?YxZEi$KTaoWX%uD zZxTP^tM9&H`(=~UxqKx}mo6#F1nS3V^)WnOux|6C^@sc0{xitbuq#(=y6$zYL^<#B z;nkHLyql8kO3WGl%s5ug+-G@W{Y;a7q1W>?K}X8{xb{3|->$2FdhLU@Y`Cgl{5 =;!@!OaC)y{AU1-f{8Avf9blm)_m3LTlwuJom*wY1GZhx z(S3a1^y;0{B84ktrllz`eqG>xZvUp1>-Bv5RBJ+h=&L?G`mOz;cDMI?{*&d3lRR?r z9vgAj9-p+);Fj@u^$nt5?$%uXttbAY|6}x{>&G}0r`hvW^gX-meIaEkm-Osti&M6T zn$Mk7NeY=$ux#J7h0I)_NiMWiy=YtPGMImEpZtFNl}kY h5vo}jhFR&~t$Rp}}cED`8h^ZIxApZJgMht6gnIDBZ+ z!mihEuZMr@=d!=0xZPuE>PeRMC!ZDVu=yP(`r4h}_sYD}U(0N5w(GB+m9)5J!KEqd zcW=6AX %u$EY@B%DV%Y55 z>_uUq-7CN3_CCDdypQk0{Qf_Vk8{;s+Rh)9`lXZ=)#UMXITst-rK8~s&RsBa^Yhg| zD&KsM@5jZ(k(qWT7ZtCU{I=e*uZeR>38zsT*G)H;4`(>k*=?F**1wf}+*^H6o>M&R z!{1LYe{Go_HbM8a)1+1*k5%`znfRmn-F{Sl%)1`CamW52Tl4FaWlnq-Yd$=|Ev?5u zXZGRLA|oTKv?;4^)txiQ&s}@{>bhf7HeJ;*IvTp3L+#0=n(ujLdv_+QUd_As`T+w2 zGea1A(;wCae{47G-Spva!{xW@^Os*q@9}uQ?@{`F?Wdi}I>n6#-mn(fOV_DYv^#uM zZ>bS}$g;Wr$UOB)iL(C|EM2&zOXbe{Ew#^%6 C2K8et7-pUhyMQxnJ)eji_;4 zuJa;)%j;e~>C{O&e;jIUe_$_pCksenC(4wztv#d)FT*IBkFPaopC7%g=p}de8dg zxwXDbS2x&u=GyRF|CDvrhwK wCWaWB#Og ?Qnca`$0{f&Ki>D@f-)s~GKuZ0Cdr+jcccw$Ze&Cg-Gui0@{*auu$ueNv3Y=2L+ zUArdi>AUlE=8PxvizBN;--_C6&%GZ!>(HLyYEQSjd6(-Kwm)8fQ~sg*k$7SMN3zL> zI(FSXZZ5v7^y$%_>2muLn_TYsuTHt1`k=pMAK#DShnhBq56|=6$gC1Mc;s8)5y?Dr z-ZiPZlNFVlVkWt>?b?yv_sHO*$0o%WCyKP^e|*>bNVeS3?4HC&u8Q>F&!PM7s!odS zZMKZ jvo}R`ObWhW1`Kx> {nYVocdEnJWdCR2-(&lzp80NteZZv!^*ncO)wcPX@f?(&*t^K|)2S&8 z3~ZMS`?QbPsbtO ll!i& zwdz~8PPgjzpZ^TT&EhS6f-6>CoPE_)E?4Svq35roTbD0AogI<0cG33joeE8=oHBtc zLS2~|7%Uk0uIh$tzWSzAGPUp8w|mb#`cynp!!&9+*t Z$9{=-rA)hJxnx7%wP)v20uD6F^Rz3k z_s=PQ|7B%pXx`eiEt&rr4(LlaPUD{x^Qv&xo>b|ZtG9gjTy1h~^#?B0 $s=vG8U%BY_!_T#Q-k!I3?Xq3yMy*I-0MhuP+wbM;A3AWy z^W56^{)g7PKKorS>_1KO|GIvs^4$%2uj6?l{xh74Fxmg>rTo8Hs}_0N2V^YjN@cAu zKlVFgeSL<0liBBEn+|Hf=J>ed)TY@fEP^jwtIt-tA34wbI!@uo#Se?)Hf;L*Wi6kt z>sIc5Q}L5R2Ug3U@<=<$QnTRkKJCe(;#y^1zmETB@N(Zh>1wM?^qeP)c51EOo*S#V z^mFc#J?Dxa@U7a<^Zrlzhs)tRJ}vlgWc`Ylo6p^^_L(xBU48vDPo8Qa_N nTDw-(8YTZe^Zb2|!i2?>_gp*vmh;1@{|ra!H{V >cXOpkq6UL zHZ4g$-IdX2ZpmfPQ8n-Cv(SZsm*=W&X{y;*?svcF!fzR| Az@BA%k{}WF1!C|{q3SQ_u<{}L-rq T)6bL*qpta=cEW8 zdukymDa&rR$GvTz;g91FuXmZO=lm0KdF_EK%fxo&cYQhk |)I5u >B*RFh* zTR{Yp+htf)C%O&Yn~G;OmdjpI@s!-8_2l+pFSP`w#4Ay8rLm#~0J(WVcWD+Vx@g ztI5&gwd+grZu%^FcdqdG@~u_w$Nt(s%$u6{u$o_b&)U?KwPG_DL~prNyQDQ#vdw1m z8!iU*#vRXBtlBTU$M(^Eo<9W_?G%3$AMSm$+i W1!?$LnqTC5p7XmW0|q z{j)vna;*9G Q!=EU%_Qc#u#tq&l zmQ6YvCB}7WgL3hSvlkh;M2m`i ~rts{Jx2HL7EHTPe^gQ(U@ny;N zEI&NgWy#Cg2tQokddu|ni+!?}Om@g0*?w@(?%7N8T(@vl-nf6{$ML*5_WPGDf2`jz zkMZNwZL1%AemGOF -t{UWu- z`lJ8hsw$_od!wwEO5V-33<{m{%~C=5`em;xcb1BK**%?mb!} OHe( zS6o-g(c{1WSl#B&fq7eRR2U!4er(HYYI nHE;%K0$Am;Iku{L%F+e@wf-K}7&%i0RWAVf%E`>a~Z$1^cU%0A&JMPu1 z>kp5&1zo!Rc3yesn&j%-+b#ziGRPSvPx4 znq4i?c0;&GXs5EugKv`0w%1wInACUO=hrWZj$XR)s*uOKFTa=l-WcO{d&2zW6E-qz z>TEmGy-G7ertW=N=bieu+-_Q*Ie*ic4JA7#FLk?~9eP$bUDw=mcWmCGHI?W4Y>Yov zAKWK$#U?fPqmZq0$mIvwujg`ZIWg^!$A!F#Wc!*#N5;)N9 7g{5wBn|FQ3Oyz-TU zxA)tAv!%i}k4p1y@|M!n^JIBg)${#m_8<2jk}D2Ah-W(fp!3mxhL-jNmt6JcY+ue< zwyH6u_k7X==6N$8_dF>+XFMlu#pkHg)$eO_Ys>b&shW|sqe^sz&EcEBT`eOIPda6@ z*7f8;lSy;uMEfo+`(mSieAn{B@A+T+DqH_y^PzbP7yhI#zH?Z2$;6l8fosns9+;%r zdG4v^oad8!(kI95{q1@8_K(G(AIh2^zSchZPtC5BSM1rfM8?a>$K*0^Hp&Ga;}R&( zRc^k%^pc%QP0;msIcts|I=Il R<2-9 ze0a9#nB(8Mx!Mg<`sztjrvA#eJm(<8 nZ#KlrzPkqy#K z3){Q5uX^>)MdwajOg?w?$&-z;6)&5=h?XZRJw7+}Xa3^qeZOCSPCxT}t8(atDLX@5 zrM(O?51Hj%+gunPwPo)5b-i0e32bJKYy5QlbH4ih{FO_Vf+r%v+#SN-e*Yuv{?F&} z!T7J&{xke%@K#%YL<-wwK!JBU-<0gfen;tbT^yI1h6mfVFUo*zVU7F+JsLY0&vpm! z>Uhu!d9rah+L V#jBd_M6t4PSKS#dJ| z876G8cl+nI+v>3m;>^DiA<#%GWRZKxeBK&~`+{`}71f7cmgvNX@9R1dvngLtJYn~? zC+U(eC&o2Dyx(xky ~75TGc7zv0!mZ9{X~M zlMHgEu2rqy56S8We0a8hRYmxb@Te=ZWG3i7UHfiYu4Kz*j(}r_Jeg(R?AO#P@RYoj z?f8%R<)znE?JaNi#EU-fUlSB>>=7*{w&|?Uv}yOW=iWD2oUL(+HBEx2h?C*tFYU`~ z>x5rK#m!x~y&H67B*(XvYi}=ox^ziYajc4frIMvy3g5nn1apRN#aoUF=_0T5TW;~q zf2d))U*N~4XvN~y_g &Ila=O|1^gz9cE1<>qq^h6{6qISew=z7(C7R} za$QoajhplBHPKv~%_{H77)ZQud>_Nh09r;M5*XL|=s!dA_I-js>K~pLK3OY!^2(|1 z-6Br%{zmGvbN4)FKi6%fXLx89!{=Mtw`wAP+rN~uTltt*-1B4et9c3^_87;+Ma8`I z%@yh7X4IdqG4Y_XC1cZb+2Tg`&ieGf%HCJ@1TM;~GpKbxQYW{0)~{FR9(!k3r1Yuq zYxD&wKWRNFJ=O7;@g!D;imjrTe)J#AfB2s3M{rd3(z&ItGvA2`%rN*_&d !EcE!Va-P@)A(sfobd{q$OS6Z|; z|KNT08pB8TJ7(3l1|N?%Td%q%D)#QW8EKJHNsgXZPAwC6JD~mf>j{;F`F0=E<}b>e zHS6$#SKqC!&Y#8|6B}7OvH8i gm=kMSrK+@(Y;s3!PZ`?B^f;8N9daxytr_*nF@m{P1smk?4xY0lWJH=Dj<2 z>gE?k$w}2Etv6%$T`1H1?UG=||FQ76f?S|$mGAk3oon}LRxCf*9^y9HY3r4|S)Wf@ z%!rEiv}7zk_E7BJa>?_i7x-`fXYkl@#pEyB?PGlRboX9da82p*vr98|`)8+YPtv#X zxM3|V-NiWZ9J>kQqbmV!yzsJTbaxJTlelQL)21y~N>_8oItRpR9m~9A`F@_-)Z7ab zq@21xn_ZmTc=9Mi;G(_lkN8`^+-J+U`0|%~`?Xs3fT>D$mb)j!RX#9Ce)3c0C_95# z&-*DnO@~#p;$ yzs}Gxa=^uS0{6qIcjY7KA5en81dY|vt^3%rnzeh>UOM;y|hO+eR0f> z+ef0lUYlN8o4@?!^;xCQW-oBI-LY+lLhbT5I?Ap&92cg?uuYjG6uN@>&>s7T)#rsA zSD(&E;$C{w^v}O!0iVQ+eD^FZCszEr=30I0)jrv4&puAQ-~O=T^bgI}Kl5*Xyy0qk zVo!&pa+6uAtA_H47~X>)7}nMcdp_`IT_PvHyZ`*9WgnghFWn<2y}k1JylmBpd0~G} zs6I-&d;ApBlv@s#3_rK6x%YB=Rc1r%ZSS1)&h+lHPWw`FzsD9|^-qpl`&jzqAH{_~ z%AGEj$Qr%(z4FIe^vm_&%)pqK7*8c*U#)WiC*}pSIc{u-S9wx&)4zY8_WtX-HR7yi z_stgJefV2@YPGM{t(&KFQ GZ=y`;~{v$q|KTOv27_~qHE`F(o?7gyxFZ2QQwP5Z%n;k8Hn_VMnU5XarBu6ju3 zBom)~dEul3a|~ZP$XUBqtM}A!F6L)H`$*T{?>|Fp=_B5iy6akXmSud^nfTe2d9v-U z2k&^*Uff=^;X%l*<4s#?>kpR4sa)T( YNoAGA-i Go< zatrrAShk<9L!qMl$b(-$#r`w=soMAAKSQhK1NmP d4pPy?oxnK0h6Mp|Uw%UI(?H}&l^8S~!P3eDzCR^=4* mT%c{b!JR@kjYT1FP7Fc`bVTw?6sU z-tp(|zVKTnuQ_byq+5KNTRf+4=gZ?&e>pJ>!*C>X@Wc8amD>-m|0QnY|DT~w_dmmr zuks&0=eNgy(W{vM?@#o9hL5j)FDAyB&0F< g;vJ`P#0tJos>aAOvj@`4a&Pd+gWXd(sWnrkp3kDfRx9)`PMNt}y zCV<+#pmiQZNj<#AAF?wR;?-Q+|68RTo6>=b_( zhkf+hyyDd?x%PEYS(hRXg|nZU8aXrh)WX^Y4SrUS6@=r0!M2)%>~N5~TKL=b)jX{a z(-trJu|D*gY4mRGA7AVF<4zjRI9RaG+|_Dx!$qSaepN{~Hpx}DYWzQlO?`a(eWz7c zcJonlA^&Q&X45TBr>=bqxLLpD=hAy7 +zF2hI6+rTvd0?YTdL6cYdgO z-{-nx-c@Q_Rcj|MpInhHcF#vgq*3j@T7Y8!Lt@`@c{^mAc4gbk*qAT6@uPQ-;u3$` z=bfb%@7F*6sJf@zGhfI}!dZHH+GOFAn)eO}Z9L*{dF;u5hAq?E)vv58HM^{T^xDo< zFK_kj&y@*WW6YRdp1o2hy{^7SuUpUI=^dGbyr284{xek6m4NMQu#J8+|7flLaXGPO z_YK>2Z|^%Fy>sVgPs}6Td}!XJ?$`sjpa>{kgEuk>$zbQ!jU4|9$xLVu%3@uQZXl zjPu_JJPF^DeSb^p{9gCIFL%?Owrsv= zdctwTzq6Zr^KzGMPsl0X_i$$*W5=9HqBk1+*$;tZ7Mgml*BSr2Fi+vf EKh_FBn%<}CBT&NUBv zSq|M0Jz?0+ttfFKtVW2< EVon>$zAcxGlVLKOBTzW&^0ptFA9mkO_uo0~^^rR1y_+v=d24k&{-Ve4&^g~e zwoDh~oZu<^YkHV;NZ*4Wec<$eZ~r~{xeV2<$B&)m`BU}5yyup!d%&g(Dx0(ax@Bi9 z+J7}l(|gZ*seK0(g9MnKE1BvXnUsBG&by>qUt?r<%DS54;mYuFtgqbt !-B)-J7tA z#PGDh&rkdIANxIpGt;~D6Q`Lb{ISj{tTF!25VQZ+*T?5= zPA_`%YW>drC*=eETZ(s0eAXxX=T7*8Tj`5m+l$o*+wFanFB56E>z>Z_FS}=}UsBuB znyb5f=XL{sjh#Z%N^gA L}EVbXIzqi};r1{QBeLY*$Eim@&@_SqUczr=C_+Ib%cs$S-9Q)FsjI)3p zg~t|)xQA@rueaCVY_2){PVV2;0~dlo2Tjf2TfgD@pIPaL{eQFe|K(k6{wV*?9G>~# z^dtW>ybL{?S%>eIvRa<1x!cipyne3d{3`$a+Fqr@f4%GX{u4Q=bJ11g0QxDc+ASCB zpKSlJ``-a8_kaCYvUgMaD6O*l??P{Jf_w ?Sao&mt@-zJxK3W;*AYQUI zJK(}Pxmv4Vj}E2xF3i+jnsIYto1`cERD}udPFho8JrW4bHotw3@9H1kfl_UqEAPHE zKj_8XtvO5mR@J(Y=H@#krg{AGKW1G&QuL!qUf|Wl>`hH7S0;UOEO^i(kaF&k0mDIC zi#1XV=e-ziUHOyyNH*`+tM38VO{H(|USW6I=DWDxdmT#_w wn%9!yOjKRpAx}kR<3uTaO ZYmxo&+V(C=K 6f=_wwniSndEVA%^6Si*C8)377C9p`Xy=6 zZ@c_f`9uF1e)He@&+sA%d~hvt9bLMz0kzIXtHMV-7j?PXRdC6j@?-Dye}cZ*6aO>F z1(*M4NVvfMxeziNQorwhl-G$DT-fG4el%kq`MJt^qHW*w$J_r*J VDy3;@77RR-vhUT&{gBh=&V2Ofp>tNSUP|(R2A$*I z*}txrHaW9!+QsKpC*SN}*YT@Q{=};1Gv=p@XShdtZ+f%mzW<)HAL rVO;e`{YQVAGE4Sy#dhu2 z*}nS9d>7mH{ZC)jv~cPzQJu3{c+#2TSwGj<1$Lg5I`Ygo({}OS+@JGHdmqK{^B;X+ zWaYVa@$9SdpC^CbyE|5H|H`@xxqGJ__6k_M_>SkCf6RZfwf{*m$KL @7q8B zFW(N9%WRBk&u?7$&v5f&mHefBZIWv7tf`(g@BT9cKgueMD-Vk~FK~U4_b2z2nekgx zavqlIYEG;^nXC5xPs!t-*B55oQ@^k$KkehK^SqA)f1l0_f5v>*|MSauQ&~GDezr** z>X)B;&-T2>`Ph1zOA?3Ok?^@)5BKQ0o^8()`hETDi}U&VkLMg}esXMS7=QJWxqHLr zSEX;LxcpEdWYTA6c4eJwDbN4?u)px1;p^&CccaWx6GEpvXg l_7&Zh^)I&Rzo8!Y=z z#ZTKC{QmpTD$9MYO=k=8%}<)ei&&R$dT~8;bJTi!`LmLXx_&o*Dge<8#;%ZBpMCfo zk7ePj)We=&%eeIOlm86!`u{W3N~MZ0{AaN9|M}uS!}p7e&rkkWW&ig}=9B>DKR@lC zFaFPP->n}eyDZRwAED6(CO^}a!5*qF10hXSb2C58?(Ph;=$Yj4oU6-I *<_NO7eH(Uu7RV^VupgS1&VLebf8@ z3=F?&+7*waPyIXBzD)4P(%XM-zvzoUbf4p0UZ|ew>`vVapL7@H&-u@=r@EH?Wn63i zvW$JATR)3gXG=_9b7=$n$F%2P*YO{}FQs@XWzu2io5dyjweOl6F8mVzUcPRA)W^C0 z5m&bUUTpjJ%Jrb_ F2>@yqP}qwTFZa~5Y^JaKr7$2ofg!+?Vy+Ye3N5&za$(*Azyfj{4_pDTQM z$vlRu{#$f?MP2>htamZG&0FU@tq=X@KIxC+S($Y!58Yj>|Ig#sH14zfN2fh;)t$Fg z&XOzi)IV9*B0JR|uB?}AZrL8bb@uv+iKpFa8(-N+eb|w^E@!Fd+GQDO!BZ=4tY&`W zTIJttXLSGNB=_v~ZM(PHaBq#jr~do?J^A(5c08Yw{OSC?2U $Q8Y#7sS3P~9IG$GJYEJWlqi>c-u%o0coKyT_fe?XBJ!md|rY zPdH|)*z2$H*V<2f 4|<(KQ=%qm53a`w0ZNK&0==X zCUt2rtlv`qV6y$E67%|R`giMJ+{k|P>bLtpPGitzIOYEtlKx)**V{Jhj(_r3_s9Pk z{!G~4QU6W<{(pv-*4JnJ2>C9-v41< z#q@t|vf=+3m{b0Pk5z5?d}RL@gID{1NUQ&65RC{4V0-^ZeV*!nhK22+{}~S4wEwZn z{-MoB{l7d`>;JKx{LgSSOjLw%)JdbEM60wk>z>s|<&|L{*;br#<1n9;(Et0@Mh!@h zc7Oi<2ea%yrOR>sXIQuWKf|v`(>jIgm}{t3^*!-VUi#zhe+Jd!gZsa+U)ld9cWJ4e z