From 70e40e42426657e5e0176c15fbf7552a29e2ca8e Mon Sep 17 00:00:00 2001 From: zhengkunwang223 <31820853+zhengkunwang223@users.noreply.github.com> Date: Wed, 5 Jul 2023 18:43:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=20rabbitmq=20?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E5=8F=A3=E5=8F=82=E6=95=B0=20(#199)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/apache-doris/2.0.0/data.yml | 16 -- apps/apache-doris/2.0.0/docker-compose.yml | 41 ---- apps/apache-doris/README.md | 20 -- apps/apache-doris/data.yml | 19 -- apps/apache-doris/logo.png | Bin 60134 -> 0 bytes apps/erpnext/14.28.1/data.yml | 9 - apps/erpnext/14.28.1/docker-compose.yml | 221 --------------------- apps/erpnext/README.md | 21 -- apps/erpnext/data.yml | 19 -- apps/erpnext/logo.png | Bin 745 -> 0 bytes apps/rabbitmq/3.12.1/data.yml | 12 +- apps/rabbitmq/3.12.1/docker-compose.yml | 2 +- 12 files changed, 11 insertions(+), 369 deletions(-) delete mode 100644 apps/apache-doris/2.0.0/data.yml delete mode 100644 apps/apache-doris/2.0.0/docker-compose.yml delete mode 100644 apps/apache-doris/README.md delete mode 100644 apps/apache-doris/data.yml delete mode 100644 apps/apache-doris/logo.png delete mode 100644 apps/erpnext/14.28.1/data.yml delete mode 100644 apps/erpnext/14.28.1/docker-compose.yml delete mode 100644 apps/erpnext/README.md delete mode 100644 apps/erpnext/data.yml delete mode 100644 apps/erpnext/logo.png diff --git a/apps/apache-doris/2.0.0/data.yml b/apps/apache-doris/2.0.0/data.yml deleted file mode 100644 index f89d477f..00000000 --- a/apps/apache-doris/2.0.0/data.yml +++ /dev/null @@ -1,16 +0,0 @@ -additionalProperties: - formFields: - - default: 8030 - envKey: PANEL_APP_PORT_HTTP_WEB - labelEn: Port - labelZh: WEB端口 - required: true - rule: paramPort - type: number - - default: 9030 - envKey: PANEL_APP_PORT_HTTP_query_port - labelEn: Port - labelZh: query端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/apps/apache-doris/2.0.0/docker-compose.yml b/apps/apache-doris/2.0.0/docker-compose.yml deleted file mode 100644 index 4ce42cd2..00000000 --- a/apps/apache-doris/2.0.0/docker-compose.yml +++ /dev/null @@ -1,41 +0,0 @@ -version: '3' -services: - docker-fe-01: - image: "apache/doris:2.0.0_alpha-fe-x86_64" - container_name: "doris-fe-01" - hostname: "fe-01" - environment: - - FE_SERVERS=fe1:172.20.80.2:9010 - - FE_ID=1 - ports: - - ${PANEL_APP_PORT_HTTP_WEB}:8030 - - ${PANEL_APP_PORT_HTTP_query_port}:9030 - volumes: - - ./data/fe-01/doris-meta:/opt/apache-doris/fe/doris-meta - - ./data/fe-01/log:/opt/apache-doris/fe/log - networks: - doris_net: - ipv4_address: 172.20.80.2 - docker-be-01: - image: "apache/doris:2.0.0_alpha-be-x86_64" - container_name: "doris-be-01" - hostname: "be-01" - depends_on: - - docker-fe-01 - environment: - - FE_SERVERS=fe1:172.20.80.2:9010 - - BE_ADDR=172.20.80.5:9050 - ports: - - 8041:8040 - volumes: - - ./data/be-01/storage:/opt/apache-doris/be/storage - - ./data/be-01/script:/docker-entrypoint-initdb.d - - ./data/be-01/log:/opt/apache-doris/be/log - networks: - doris_net: - ipv4_address: 172.20.80.5 -networks: - doris_net: - ipam: - config: - - subnet: 172.20.80.0/24 \ No newline at end of file diff --git a/apps/apache-doris/README.md b/apps/apache-doris/README.md deleted file mode 100644 index e82d4c76..00000000 --- a/apps/apache-doris/README.md +++ /dev/null @@ -1,20 +0,0 @@ -Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。 -Apache Doris is a high-performance, real-time analytical database based on MPP architecture, known for its extreme speed and ease of use. It only requires a sub-second response time to return query results under massive data and can support not only high-concurrent point query scenarios but also high-throughput complex analysis scenarios. All this makes Apache Doris an ideal tool for scenarios including report analysis, ad-hoc query, unified data warehouse, and data lake query acceleration. On Apache Doris, users can build various applications, such as user behavior analysis, AB test platform, log retrieval analysis, user portrait analysis, and order analysis. - -前期环境准备 -需在宿主机执行如下命令 -`sysctl -w vm.max_map_count=2000000` - - -查看 FE 运行状态 -你可以通过下面的命令来检查 Doris 是否启动成功 -`curl http://127.0.0.1:8030/api/bootstrap` -这里 IP 和 端口分别是 FE 的 IP 和 http_port(默认8030),如果是你在 FE 节点执行,直接运行上面的命令即可。 -如果返回结果中带有 "msg":"success" 字样,则说明启动成功。 -你也可以通过 Doris FE 提供的Web UI 来检查,在浏览器里输入地址 -http:// fe_ip:8030 - - -使用mysql客户端连接 -初始账号: root -初始密码: 留空 \ No newline at end of file diff --git a/apps/apache-doris/data.yml b/apps/apache-doris/data.yml deleted file mode 100644 index 127ebbe8..00000000 --- a/apps/apache-doris/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: ApacheDoris -tags: - - 数据库 -title: 基于 MPP 架构的高性能、实时的分析型数据库 -type: 数据库 -description: Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库 -additionalProperties: - key: apache-doris - name: Apache Doris - tags: - - Database - shortDescZh: 基于 MPP 架构的高性能、实时的分析型数据库 - shortDescEn: a high-performance, real-time analytical database based on MPP architecture - type: tool - crossVersionUpdate: false - limit: 1 - website: https://doris.apache.org/ - github: https://github.com/apache/doris - document: https://doris.apache.org/zh-CN/docs/dev/get-starting/ diff --git a/apps/apache-doris/logo.png b/apps/apache-doris/logo.png deleted file mode 100644 index 8048f0e1bea6d3abed54bb8e554ddf0cdb2b227a..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 60134 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

62tzDiC%^g`PC5Ui;8L-1z^@I`;TCOq+AbWglPj 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 zh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3 zh=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>m zh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=| zj);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y z>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=Y zxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Y zi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Y zh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Y zh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Y zh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);he zh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVm zh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3 zh=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=m zh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3 zh=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wm zh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3 zh=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>m zh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=| zj);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y z>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=Y zxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Y zi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Y zh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Y zh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Y zh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);he zh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVm zh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3 zh=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=m zh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3 zh=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wm zh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3 zh=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>m zh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=| zj);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y z>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=Y zxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Y zi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Y zh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Y zh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Y zh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);he zh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVm zh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3 zh=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3h=_=Yi0g=m zh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wmh=_=Yh`5f3 zh=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3h=_=Yh=}Wm zh=_=Yh`5f3h=_=Yi0g=mh=_=YxQ>X3h=_=Y>xhVmh=_=|j);heh=_>mh=_=Yh={n3 gh=_=Yh=}X|11T(tEHkrUTL1t607*qoM6N<$f~=U{+5i9m diff --git a/apps/erpnext/14.28.1/data.yml b/apps/erpnext/14.28.1/data.yml deleted file mode 100644 index cd184f7e..00000000 --- a/apps/erpnext/14.28.1/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/erpnext/14.28.1/docker-compose.yml b/apps/erpnext/14.28.1/docker-compose.yml deleted file mode 100644 index 6fe75ddb..00000000 --- a/apps/erpnext/14.28.1/docker-compose.yml +++ /dev/null @@ -1,221 +0,0 @@ -version: "3" - -services: - backend: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - configurator: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: none - entrypoint: - - bash - - -c - command: - - > - ls -1 apps > sites/apps.txt; - bench set-config -g db_host $$DB_HOST; - bench set-config -gp db_port $$DB_PORT; - bench set-config -g redis_cache "redis://$$REDIS_CACHE"; - bench set-config -g redis_queue "redis://$$REDIS_QUEUE"; - bench set-config -g redis_socketio "redis://$$REDIS_SOCKETIO"; - bench set-config -gp socketio_port $$SOCKETIO_PORT; - environment: - DB_HOST: db - DB_PORT: "3306" - REDIS_CACHE: redis-cache:6379 - REDIS_QUEUE: redis-queue:6379 - REDIS_SOCKETIO: redis-socketio:6379 - SOCKETIO_PORT: "9000" - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - create-site: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: none - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - entrypoint: - - bash - - -c - command: - - > - wait-for-it -t 120 db:3306; - wait-for-it -t 120 redis-cache:6379; - wait-for-it -t 120 redis-queue:6379; - wait-for-it -t 120 redis-socketio:6379; - export start=`date +%s`; - until [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty"` ]] && \ - [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty"` ]] && \ - [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty"` ]]; - do - echo "Waiting for sites/common_site_config.json to be created"; - sleep 5; - if (( `date +%s`-start > 120 )); then - echo "could not find sites/common_site_config.json with required keys"; - exit 1 - fi - done; - echo "sites/common_site_config.json found"; - bench new-site frontend --no-mariadb-socket --admin-password=admin --db-root-password=admin --install-app erpnext --set-default; - - db: - image: mariadb:10.6 - healthcheck: - test: mysqladmin ping -h localhost --password=admin - interval: 1s - retries: 15 - deploy: - restart_policy: - condition: on-failure - command: - - --character-set-server=utf8mb4 - - --collation-server=utf8mb4_unicode_ci - - --skip-character-set-client-handshake - - --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6 - environment: - MYSQL_ROOT_PASSWORD: admin - volumes: - - ./data/db-data:/var/lib/mysql - - - frontend: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - nginx-entrypoint.sh - environment: - BACKEND: backend:8000 - FRAPPE_SITE_NAME_HEADER: frontend - SOCKETIO: websocket:9000 - UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1 - UPSTREAM_REAL_IP_HEADER: X-Forwarded-For - UPSTREAM_REAL_IP_RECURSIVE: "off" - PROXY_READ_TIMEOUT: 120 - CLIENT_MAX_BODY_SIZE: 50m - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - - - queue-default: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - bench - - worker - - --queue - - default - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - queue-long: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - bench - - worker - - --queue - - long - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - queue-short: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - bench - - worker - - --queue - - short - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - redis-queue: - image: redis:6.2-alpine - deploy: - restart_policy: - condition: on-failure - volumes: - - ./data/redis-queue-data:/data - - - redis-cache: - image: redis:6.2-alpine - deploy: - restart_policy: - condition: on-failure - volumes: - - ./data/redis-cache-data:/data - - - redis-socketio: - image: redis:6.2-alpine - deploy: - restart_policy: - condition: on-failure - volumes: - - ./data/redis-socketio-data:/data - - - scheduler: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - bench - - schedule - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - websocket: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - node - - /home/frappe/frappe-bench/apps/frappe/socketio.js - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - -volumes: - db-data: - redis-queue-data: - redis-cache-data: - redis-socketio-data: - sites: - logs: diff --git a/apps/erpnext/README.md b/apps/erpnext/README.md deleted file mode 100644 index 36e724f6..00000000 --- a/apps/erpnext/README.md +++ /dev/null @@ -1,21 +0,0 @@ -ERPNext as a monolith includes the following areas for managing businesses: - -Accounting -Warehouse Management -CRM -Sales -Purchase -HRMS -Project Management -Support -Asset Management -Quality Management -Manufacturing -Website Management -Customize ERPNext -And More -ERPNext is built on the Frappe Framework, a full-stack web app framework built with Python & JavaScript. - - ---- -Wait for 5 minutes for ERPNext site to be created or check container logs before opening browser on port 8080. (username: , password: create-siteAdministratoradmin) \ No newline at end of file diff --git a/apps/erpnext/data.yml b/apps/erpnext/data.yml deleted file mode 100644 index 385dc7f2..00000000 --- a/apps/erpnext/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: erpnext -tags: - - 工具 -title: 开源 ERP -type: 工具 -description: The most agile ERP on the planet -additionalProperties: - key: erpnext - name: erpnext - tags: - - Tool - shortDescZh: 开源 ERP - shortDescEn: OpenSource ERP - type: tool - crossVersionUpdate: false - limit: 1 - website: https://erpnext.com/ - github: https://github.com/frappe/erpnext - document: https://docs.erpnext.com/ diff --git a/apps/erpnext/logo.png b/apps/erpnext/logo.png deleted file mode 100644 index d6bceabebabe49a05e60c8d8c3d12464ecac7848..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 745 zcmVeh4bY)!^&fNe20)9zEK~#90?cK3U z8(|#A@#kKoLxe6NhYnc-8B)?&xZ;w@@fob(zPmvO>9?biBH}jvm_m3V*Wg^8QC>BAn2#Q5e zEP`SY6pNr(1jQmK7D2HHGZxkezgk!XYX|s#5$_V(Sp>x*C>BAn2#Q5eEP`SYY&>U0 z{yfBZ@sA&3y!e2PSl*6>MQqS*NKh<-Vi6RJpjZUOA}AI?u?UJqP%MIC5#GWF7Qe2r z^fTTiBHCF5#UdycL9qymMNlk)Vi6RJVDHnNf4RBC{I2UEUPn8NpjZUOA}AI?u?UJq zP%MIC5fqD{SOmo)xPNarH;d!tDO~618k;eHsgCa1je%P@&t9pjZUOA}AI? zu?UJqP%MIt=d8tj3yYw87yA-6VjW*wSi}b1h6KeTC>BAn2#Q5eEP`SY6pNr(1jQmK z7D2HH#?QDOAtn3_Ofl{ zi5Dd@07^O3D~_j0vU;U|99{o8YrTxEz~w-RwG|8xqSKLmFBv(qPlrK{H~BEg0Ua|s b_L$MX>kNdT