From 718a9514858300ee3ff2f089299ac725cb44462f Mon Sep 17 00:00:00 2001 From: peefy Date: Wed, 31 Jan 2024 22:35:32 +0800 Subject: [PATCH] feat: 2024-02-21-biweekly-newsletter-blogs Signed-off-by: peefy --- blog/2024-02-21-biweekly-newsletter/index.md | 263 +++++++++++++++++ .../2024-02-21-biweekly-newsletter/index.md | 269 ++++++++++++++++++ .../flux-kcl-workflow.png | Bin 0 -> 71758 bytes 3 files changed, 532 insertions(+) create mode 100644 blog/2024-02-21-biweekly-newsletter/index.md create mode 100644 i18n/zh-CN/docusaurus-plugin-content-blog/2024-02-21-biweekly-newsletter/index.md create mode 100644 static/img/blog/2024-02-21-biweekly-newsletter/flux-kcl-workflow.png diff --git a/blog/2024-02-21-biweekly-newsletter/index.md b/blog/2024-02-21-biweekly-newsletter/index.md new file mode 100644 index 00000000..2f8b7ea3 --- /dev/null +++ b/blog/2024-02-21-biweekly-newsletter/index.md @@ -0,0 +1,263 @@ +--- +slug: 2024-02-21-biweekly-newsletter +title: KCL Biweekly Newsletter (2024 01.19 - 2024.02.01) | KCL v0.7.3 Released and Flux Integration +authors: + name: KCL Team + title: KCL Team +tags: [KCL, Biweekly-Newsletter] +image: /img/biweekly-newsletter.png +--- + +![](/img/biweekly-newsletter.png) + +[KCL](https://github.com/kcl-lang) is a constraint-based record and functional language hosted by Cloud Native Computing Foundation (CNCF) that enhances the writing of complex configurations, including those for cloud-native scenarios. With its advanced programming language technology and practices, KCL is dedicated to promoting better modularity, scalability, and stability for configurations. It enables simpler logic writing and offers ease of automation APIs and integration with homegrown systems. + +This section will update the KCL language community's latest developments every two weeks, including features, website updates, and the latest community news, helping everyone better understand the KCL community! + +**_KCL Website: [https://kcl-lang.io](https://kcl-lang.io)_** + +## Overview + +Thanks to to all contributors for their outstanding work over the past two weeks (01.19 2024 - 02.01 2024). Here is an overview of the key content: + +**📦 Module Updates** + +- Added the `podinfo` application configuration module, supporting the setting of external dynamic parameters such as `replicas`. You can directly render Kubernetes manifests with a single command, and customize KCL templates based on this module. + +```shell +kcl run oci://ghcr.io/kcl-lang/podinfo -D replicas=2 +``` + +**🏄 Language Updates** + +- Improved error messages when object attribute are not found at compile time. +- Fixed the recursive check error for mandatory attribute of schema objects. +- Enhanced the robustness of type-checking for schema index signatures. + +**🔧 Toolchain Updates** + +- **Documentation Tools Updates**: Added support for HTML escaping of multiline strings in generated Markdown documentation. +- **CodeQL KCL Tools**: Preliminary support for the CodeQL KCL dbschema definition and data extraction from KCL syntax and semantics, enabling static analysis and scanning of KCL code through CodeQL queries to improve code security. + +**💻 IDE Updates** + +- **Semantic Highlighting** + - KCL IDE optimized semantic highlighting. + +- **Enhancement for Completion Features** + - Fixed the issue with erroneous completions after strings followed by comments. + - Fixed the issue where internal property symbols in Schema could not be navigated. + +**🎁 API Updates** + +- Added syntax and semantic analysis APIs for analyzing KCL code. +- Added APIs to build binary artifacts for caching compilation results. +- Added APIs to run binary artifacts directly, avoiding recompilation and improving performance. +- Added code generation APIs to programmatically implement KCL code generation instead of writing complex templates. + +**🚀 SDK Updates** + +- Updated KCL Go SDK to version 0.7.5. +- Updated KCL Python SDK to version 0.7.5. +- Updated KCL Rust SDK to version 0.7.5. +- Added definitions for syntax trees, scopes, symbols, and other syntactic and semantic structures to the KCL Java SDK, along with related query APIs. + +For more details, visit: https://github.com/kcl-lang/lib + +**🚢 Integration Updates** + +- In addition to the ArgoCD KCL plugin, KCL now supports GitOps for KCL configurations stored in Git/OCI repositories using the KCL Flux Controller. For more details, visit [https://github.com/kcl-lang/flux-kcl-controller](https://github.com/kcl-lang/flux-kcl-controller). Contributions are welcome 👏. + +## Special Thanks + +The following are listed in no particular order: + +- Thanks to @octonawish-akcodes for contributions to KCL code cleanup and FAQ documents. 🙌 +- Thanks to @satyazzz123 for contributions to the KRM KCL's support for reading environment variables. 🙌 +- Thanks to @AkashKumar7902 for contributions to the KCL package management tool functionality. 🙌 +- Thanks to @UtkarshUmre for contributions to the KCL linux-arm64 build CI scripts. 🙌 +- Thanks to @steeling, @rozaliev, @CloudZero357, @martingreber, @az, @Art3mK, @AdmiralNemo, and @Erick for valuable suggestions and feedback during the past two weeks of using KCL. 🙌 + +## Featured Updates + +### Flux KCL Integration + +Using KCL together with GitOps tools like Flux has the following benefits: + ++ The abstraction and programmability capabilities of KCL can help simplify complex Kubernetes deployment configurations, reducing the error rate of manually writing YAML files. It allows for configuration constraint checks at compile-time, making it easier to detect errors. Additionally, it eliminates redundant configuration templates, improves the scalability of configurations across multiple environments and tenants, and enhances configurability and maintainability. ++ KCL allows developers to define the required resources for an application in a declarative manner. Combining KCL with Flux enables better implementation of Infrastructure as Code (IaC), improving deployment efficiency and simplifying application configuration management. ++ With Flux, developers and operations teams can manage the deployment of applications by separately modifying application and configuration code. The Flux Controller automatically synchronizes changes to the configuration, enabling continuous deployment and ensuring consistency. In case of issues, quick rollbacks can be achieved. + +#### Workflow + +In this example, we use a Python Flask application and GitHub Actions as a CI example. The Flux KCL Controller is deployed in the cluster as a CD example. KCL is used to define the Kubernetes resources that need to be deployed. + +> Note: You can use any containerized application and different CI/CD systems like GitLab CI, Jenkins CI, or ArgoCD in this scenario. + +We divide the Python Flask application code and configuration code into two repositories to separate the concerns of different roles such as developers and operations teams. + +- Business code repository: https://github.com/kcl-lang/flask-demo +- Manifests repository: https://github.com/kcl-lang/flask-demo-kcl-manifests + +The overall workflow is as follows: + +1. Pull the application code from GitHub. +2. Develop the application code and commit it to the GitHub repository. +3. Trigger GitHub Actions to compile the application code, generate a container image, and push the container image to the Docker Hub container registry. +4. Trigger GitHub Actions to update the Kubernetes manifest deployment files defined by KCL based on the version of the container image in the docker.io container registry. +5. The Flux KCL Controller retrieves the changes to the Kubernetes manifest defined by KCL and updates the deployment to the Kubernetes cluster. + +#### Specific Steps + +##### 1. Prepare a Kubernetes Cluster + ++ Install [K3d](https://github.com/k3d-io/k3d) and create a cluster: + +```shell +k3d cluster create +``` + +> Note: You can use other methods to create your own Kubernetes cluster, such as kind, minikube, etc. + ++ Install kubectl ++ Install kustomize + +##### 2. Install Flux KCL Controller + +![flux-kcl-workflow](/img/blog/2024-02-21-biweekly-newsletter/flux-kcl-workflow.png) + +```shell +git clone https://github.com/kcl-lang/flux-kcl-controller.git && cd flux-kcl-controller && make deploy +``` + +##### 3. Configure the Git Repository for Continuous Delivery + +Define the `GitRepository` and `KCLRun` objects in the `gitrepo.yaml` file to configure the Git repository to be monitored for continuous delivery and additional parameters required for running KCL configurations. + +```yaml +apiVersion: source.toolkit.fluxcd.io/v1 +kind: GitRepository +metadata: + name: kcl-deployment + namespace: default +spec: + interval: 10s # Check the repository every 10s + url: https://github.com/kcl-lang/flask-demo-kcl-manifests.git + ref: + branch: main # Monitor the main branch +--- +apiVersion: krm.kcl.dev.fluxcd/v1alpha1 +kind: KCLRun +metadata: + name: kcl-git-controller + namespace: default +spec: + sourceRef: + kind: GitRepository + name: kcl-deployment +``` + +Deploy the objects to the cluster using the command `kubectl apply -f gitrepo.yaml`. + +> If you are using a private repository, you need to configure private repository access credentials using private key credentials. Refer to here for more details. + +> Note: You can also use [OCIRepository](https://fluxcd.io/flux/components/source/ocirepositories/) in this scenario to continuously deliver the `oci://ghcr.io/kcl-lang/podinfo` configuration package mentioned at the beginning of the article. For example, the following configuration: + +```yaml +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: OCIRepository +metadata: + name: podinfo + namespace: default +spec: + interval: 5m0s + url: oci://ghcr.io/kcl-lang/podinfo + ref: + tag: latest +--- +apiVersion: krm.kcl.dev.fluxcd/v1alpha1 +kind: KCLRun +metadata: + name: kcl-git-controller + namespace: default +spec: + sourceRef: + kind: OCIRepository + name: podinfo +``` + +##### 4. Commit the Application Code + +After submitting in the `flask-demo` repository, Github will automatically build a container image and push it to the Docker hub. It will also then trigger the Action of the `flask-demo-kcl-manifest` repository and modify the image value in the deployment manifest repository through [KCL Automation API](/docs/user_docs/guides/automation). Now let's create a submission in the `flask-demo` repository, and we can see that the code submission triggers the Github CI process for the application repository. + +![](/img/docs/user_docs/guides/ci-integration/app-ci.png) + +##### 5. Configuration Automatic Update + +After the Github CI process in the application repository is completed, an automatic update configuration CI will be triggered in the repository where the KCL configuration is stored and submitted to the main branch of the `flask-demo-kcl-manifests` repository. The commit information is as follows + +![](/img/docs/user_docs/guides/ci-integration/image-auto-update.png) + +- We can obtain the deployment manifest source code for compilation and validation + +```shell +git clone https://github.com/kcl-lang/flask-demo-kcl-manifests.git/ +cd flask-demo-kcl-manifests +git checkout main && git pull && kcl +``` + +The output YAML is + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: flask_demo + labels: + app: flask_demo +spec: + replicas: 1 + selector: + matchLabels: + app: flask_demo + template: + metadata: + labels: + app: flask_demo + spec: + containers: + - name: flask_demo + image: "kcllang/flask_demo:6428cff4309afc8c1c40ad180bb9cfd82546be3e" + ports: + - protocol: TCP + containerPort: 5000 +--- +apiVersion: v1 +kind: Service +metadata: + name: flask_demo + labels: + app: flask_demo +spec: + type: NodePort + selector: + app: flask_demo + ports: + - port: 5000 + protocol: TCP + targetPort: 5000 +``` + +From the above configuration, it can be seen that the image of the resource is indeed automatically updated to the newly constructed image value. + +At the same time, the Flux KCL Controller will automatically pull the configuration and update it to the cluster. This achieves an end-to-end automation process for submitting business code and deploying Kubernetes, where only the business code needs to be submitted. Of course, it can be further combined with Flagger to implement various deployment strategies such as canary releases, blue-green deployments, etc. + +## Resources + +❤️ Thanks to all KCL users and community members for their valuable feedback and suggestions in the community. See [here](https://github.com/kcl-lang/community) to join us! + +For more resources, please refer to + +- [KCL Website](https://kcl-lang.io/) +- [KusionStack Website](https://kusionstack.io/) +- [KCL v0.8.0 Milestone](https://github.com/kcl-lang/kcl/milestone/8) diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2024-02-21-biweekly-newsletter/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2024-02-21-biweekly-newsletter/index.md new file mode 100644 index 00000000..f1faee24 --- /dev/null +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2024-02-21-biweekly-newsletter/index.md @@ -0,0 +1,269 @@ +--- +slug: 2024-02-21-biweekly-newsletter +title: KCL 社区开源双周报 (2024 01.19 - 2024.02.21) | KCL v0.7.5 版本和 Flux KCL 集成更新速递 +authors: + name: KCL 团队 + title: KCL 团队 +tags: [KCL, Biweekly-Newsletter] +--- + +![](/img/biweekly-newsletter-zh.png) + +[KCL](https://github.com/kcl-lang) 是一个 CNCF 基金会托管的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 + +本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区! + +**_KCL 官网:[https://kcl-lang.io](https://kcl-lang.io)_** + +## 内容概述 + +感谢所有贡献者过去两周 (2024 01.19 - 2024.02.01) 的杰出工作,以下是重点内容概述 + +**📦 模型更新** + +- 新增 Podinfo 应用配置模型,支持设置外部动态参数如 `replicas` 等,可以直接通过一条命令渲染 Kubernetes 资源配置,并且可以在此模型的基础上修改并自定义资源模版 + +```shell +kcl run oci://ghcr.io/kcl-lang/podinfo -D replicas=2 +``` + +**🏄 语言更新** + +- 改善编译时对象属性找不到的报错信息 +- 修复 Schema 对象必选属性递归检查错误 +- 提升 Schema 索引签名类型检查健壮性 + +**🔧 工具链更新** + +- **文档工具更新** + - 支持在生成的 Markdown 格式文档对多行字符使用 HTML 转义 + +- **CodeQL KCL 工具** + - 初步支持 CodeQL KCL dbschema 定义以及对 KCL 语法语义进行数据提取,并可通过 CodeQL 进行数据查询对 KCL 代码进行静态分析和扫描,提升代码安全 + +**💻 IDE 更新** + +- **语义高亮** + - KCL IDE 优化了语义高亮。 +- **错误修复** + - 修复了字符串后跟注释中补全错误的问题 + - 修复了 Schema 内部属性符号不能跳转的问题 + +**🎁 API 更新** + +- 新增语法和语义分析 API 用于对 KCL 代码进行分析 +- 新增构建二进制产物 API 用于缓存编译结果 +- 新增运行二进制产物 API 用于直接运行编译结果,避免重复编译并提升性能 +- 新增代码生成 API 以编程方式实现 KCL 代码生成而不是编写复杂的模版 + +**🚀 SDK 更新** + +- KCL Go SDK 更新至 0.7.5 版本 +- KCL Python SDK 更新至 0.7.5 版本 +- KCL Rust SDK 更新至 0.7.5 版本 +- KCL Java SDK 新增语法树、作用域、符号等语法语义结构定义及相关查询 API + +更多内容详见: [https://github.com/kcl-lang/lib](https://github.com/kcl-lang/lib) + +**🚢 集成更新** + +- 除了使用 ArgoCD KCL 插件,KCL 现在支持使用 KCL Flux Controller 对存储在 Git 仓库的 KCL 配置进行 GitOps,详见 [https://github.com/kcl-lang/flux-kcl-controller](https://github.com/kcl-lang/flux-kcl-controller),欢迎共建 👏 + +## 特别鸣谢 + +以下排名不分先后 + +- 感谢 @octonawish-akcodes 对 KCL 代码清理和 FAQ 文档的持续贡献 🙌 +- 感谢 @satyazzz123 对 KRM KCL 支持读取环境变量功能的贡献 🙌 +- 感谢 @AkashKumar7902 对 KCL 包管理工具功能的贡献 🙌 +- 感谢 @UtkarshUmre 对 KCL linux-arm64 构建 CI 的贡献 🙌 +- 感谢 @steeling, @rozaliev, @CloudZero357, @martingreber, @az, @Art3mK,@AdmiralNemo 和 @Erick 等在近两周使用 KCL 过程中提供的宝贵建议与反馈 🙌 + +## 精选更新 + +### Flux KCL 集成 + +将 KCL 与 Flux 等 GitOps 工具一起使用具有如下好处: + +- 通过 KCL 语言的抽象能力和可编程能力可以帮助我们**简化复杂的 Kubernetes 部署配置文件**,降低手动编写 YAML 文件的错误率,将配置约束检查控制在编译时,编写即感知错误;同时可以消除多余的配置模版,提升多环境多租户的配置扩展能力,提高配置的可读性和可维护性。 +- KCL 允许开发人员以声明式的方式定义应用程序所需的资源,通过将 KCL 和 Flux 相结合可以帮助我们更好地实现**基础设施即代码(IaC)**,提高部署效率,简化应用程序的配置管理。 +- 使用 Flux,开发人员和运维团队可以通过分别修改应用和配置代码来管理应用程序的部署,Flux Controller 将自动同步对配置的更改,从而实现持续部署并确保一致性。如果出现问题,可以实现快速回滚。 + +#### 工作流程 + +在此示例中,我们使用一个 Python Flask 应用和 Github Actions 作为 CI 示例,使用部署在集群中 Flux KCL Controller 作为 CD 示例,使用 KCL 定义需要部署的 Kubernetes 资源 + +> 注意:你可以在此方案中使用任何容器化应用以及不同的 CI 和 CD 系统如 Gitlab CI,Jenkins CI,ArgoCD 等 + +我们将 Python Flask 应用代码和配置代码分成两个仓库,_以实现不同角色如开发人员和运维团队的关注点分离_ + +- 业务代码仓库: https://github.com/kcl-lang/flask-demo +- 配置清单仓库: https://github.com/kcl-lang/flask-demo-kcl-manifests + +整体工作流程如下: + +1. 从 Github 拉取应用代码 +2. 应用代码开发并提交到提交到 GitHub 存储库 +3. 触发 GitHub Actions 对应用代码进行编译,生成容器镜像,并将容器镜像推送到 Docker Hub 容器注册表 +4. 触发 GitHub Actions 根据 docker.io 容器注册表中容器镜像的版本号并同步更新 KCL 定义的 Kubernetes 清单部署文件 +5. Flux KCL Controller 获取 KCL 定义的 Kubernetes 清单更改并更新部署至 Kubernetes 集群 + +#### 具体步骤 + +##### 1. 配置 Kubernetes + +- 安装 [K3d](https://github.com/k3d-io/k3d) 并创建一个集群 + +```bash +k3d cluster create +``` + +> 注意:你可以在此方案中使用其他方式创建您自己的 Kubernetes 集群,如 kind, minikube 等。 + ++ 安装 Kubectl ++ 安装 Kustomize + +##### 2. 安装 Flux KCL Controller + +![flux-kcl-workflow](/img/blog/2024-02-21-biweekly-newsletter/flux-kcl-workflow.png) + +```shell +git clone https://github.com/kcl-lang/flux-kcl-controller.git && cd flux-kcl-controller && make deploy +``` + +##### 3. 配置需要持续交付的 Git 仓库 + +通过 `gitrepo.yaml` 文件,定义 `GitRepository` 和 `KCLRun` 对象,用来配置监控需要持续交付的 Git 仓库以及运行 KCL 配置所需的额外参数 + +```yaml +apiVersion: source.toolkit.fluxcd.io/v1 +kind: GitRepository +metadata: + name: kcl-deployment + namespace: default +spec: + interval: 10s # 每隔 10s 检查一次仓库 + url: https://github.com/kcl-lang/flask-demo-kcl-manifests.git + ref: + branch: main # 监控 main 分支 +--- +apiVersion: krm.kcl.dev.fluxcd/v1alpha1 +kind: KCLRun +metadata: + name: kcl-git-controller + namespace: default +spec: + sourceRef: + kind: GitRepository + name: kcl-deployment +``` + +使用命令 `kubectl apply -f gitrepo.yaml` 将该对象部署到集群中。 + +> 如果您使用的是私有存储库,需要使用私钥凭据配置专用私有存储库访问权限。请参阅[这里](https://fluxcd.io/flux/components/source/gitrepositories/)以获取更多详细信息。 + +> 注意:你也可以在此方案中使用 [OCIRepository](https://fluxcd.io/flux/components/source/ocirepositories/),对文章开头提到的 `oci://ghcr.io/kcl-lang/podinfo` 配置包进行持续交付,比如下面的配置 + +```yaml +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: OCIRepository +metadata: + name: podinfo + namespace: default +spec: + interval: 5m0s + url: oci://ghcr.io/kcl-lang/podinfo + ref: + tag: latest +--- +apiVersion: krm.kcl.dev.fluxcd/v1alpha1 +kind: KCLRun +metadata: + name: kcl-git-controller + namespace: default +spec: + sourceRef: + kind: OCIRepository + name: podinfo +``` + +##### 4. 提交业务代码 + ++ 获取代码 + +```shell +git clone https://github.com/kcl-lang/flask-demo.git/ +cd flask-demo +``` + +flask-demo 仓库提交代码后,Github 会自动构建容器镜像,并将制品推送到 Docker hub 中,会再触发 flask-demo-kcl-manifests 仓库的 Action,[通过 KCL 自动化 API](/docs/user_docs/guides/automation) 修改部署清单仓库中的镜像地址。现在让我们为 flask-demo 仓库创建一个提交,我们可以看到代码提交后触发业务仓库 Github CI 流程 + +![](/img/docs/user_docs/guides/ci-integration/app-ci.png) + +##### 5. 配置自动更新 + +当业务仓库 Github CI 流程执行完成后,会自动在存放 KCL 资源配置的仓库触发一个 CI 自动更新配置并提交到 flask-demo-kcl-manifests main 分支,commit 信息如下 + +![](/img/docs/user_docs/guides/ci-integration/image-auto-update.png) + +- 我们可以获得部署清单源码进行编译验证 + +```shell +git clone https://github.com/kcl-lang/flask-demo-kcl-manifests.git/ +cd flask-demo-kcl-manifests +git checkout main && git pull && kcl +``` + +输出 YAML 为 + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: flask_demo + labels: + app: flask_demo +spec: + replicas: 1 + selector: + matchLabels: + app: flask_demo + template: + metadata: + labels: + app: flask_demo + spec: + containers: + - name: flask_demo + image: "kcllang/flask_demo:6428cff4309afc8c1c40ad180bb9cfd82546be3e" + ports: + - protocol: TCP + containerPort: 5000 +--- +apiVersion: v1 +kind: Service +metadata: + name: flask_demo + labels: + app: flask_demo +spec: + type: NodePort + selector: + app: flask_demo + ports: + - port: 5000 + protocol: TCP + targetPort: 5000 +``` + +从上述配置可以看出资源的镜像确实自动更新为了新构建的镜像内容。同时 Flux KCL Controller 会自动拉取配置并更新到集群,这样就实现了业务代码提交并部署 Kubernetes 的 e2e 完整自动化流程,每次只需提交业务代码即可,当然可以进一步搭配 Flagger 实现多种部署策略如金丝雀发布、蓝绿发布等。 + +## 其他资源 + +❤️ 感谢所有 KCL 用户和社区小伙伴在社区中提出的宝贵反馈与建议。后续我们会发布更多 KCL 云原生模型和工具集成文章,敬请期待! 查看 _[KCL 社区](https://github.com/kcl-lang/community)_ 加入我们。 + +更多其他资源请参考: + +- [KCL 网站](https://kcl-lang.io/) +- [KusionStack 网站](https://kusionstack.io/) +- [KCL v0.8.0 Milestone](https://github.com/kcl-lang/kcl/milestone/8) diff --git a/static/img/blog/2024-02-21-biweekly-newsletter/flux-kcl-workflow.png b/static/img/blog/2024-02-21-biweekly-newsletter/flux-kcl-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..0a001c59907e2c5b4e6286b109756ea446ae4349 GIT binary patch literal 71758 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͎{$CIHA9kup4Aj4+}P8FZx!5ze@X#HH3=-dyjX5?2JvaYcL-*f~p z8Qstm;nTJ0Au|{(e|4=}X%}y>Q1^d*J>OjnA?wwhiT({&1C9h4L&s7$--qj@-^qN{ zb1H|(sYHaId(KClyP$XCKq^`8xQD{iL#gO&xIzYvAb8yHjHBZFjqKe>5B4ZOHscj3+g_LBvki#g~ z&!%m~L3*()7mT_s!-NZUw|7#7R#wETmr!%2Ma1?F6+?qcN~h5ap@f4MZJ_0EFz3F{ zt5|oi&UGnPPs}+0BF>9FDg^4vZxfS~k5-uIUQtf;<+d2OT?NDBC%S-ApE;M zB((`Wf^gugB&zcUn*(;QcBF;72Ib3cNrSZNUxZ$4TXSEs%V|eXlQY~{im?Pq>h=ai0!duI=T&BYAgPiGy-pE{m zI}iAEFV;nn4|RC$fbNPRG-3rR6@y{BUpQAj@4mS-U~%efpML7!Os{`792fSP4)<9z zeu=DpzDZb#wM#@sKzm~m_DiPp%hvdL$CO_l7Gh|Wtb-_FPz}crWfCDcPzL^ZC&di) z2}~1DrB-r%=^9Pq)h2*@E6ihDmrDOXP8BJfs%OPDXGrmHGO&JFaKg=6SQ}@OKV~c( zyHoVegtz*H&r=r8lN}Wc7zMswm)r-nlhA@30d;cC{uUqL2}eG^?`dAOZqo!kl$GyQ zGc-CEqRD^tW&jHjVULy5mfe>Kz{0}yCXk@H>bX0dpcaLbLR%CVBQ#L5`I@P9s+oLD z&O}-u;Z+=VWYB(3+O_312!M#s81^6KwsuXdb;RivYX_890+alXvS{Wdp1O3qMquWr zpZ}K=webg|HM)A?%rWfy1QPjq`yWV%{SH2t8S*eI6zHA*?4rw`>puFpN0*w<%0hHq z0E*Vge&_2KsT)KAb&t01(-covisY7Eu^K7y+Pt9yV*iz(J$~Ml0%iRJ ztEB%yU;iEDKY~?^?5Nw&-Kr+^8>Q@P{*?Zrhyu&lcM zkC|ODgx`ej8xv8vrZY_g)104$n>oT=wg&%Ex{WXBtjJlr;EJ zF$Mqn#o&ey8?KQvj>O*KXDLB5tUQ2LPz^$inSKY*`c8yT`cb3;(bbBj1;5P}IW4Wo z3gE+cW$6e46t$k7l|CtGKYtz?bVl2o1jSZy((jkI1Cmyf{M89 ze9vXgQrn~}S_KU9<3T6XuSzBP^wvkccuu=_ zCZn-|ycHh8+#O^6=Jc-+fD8ksxYE)5Aa#l2lB1REV9uj^Ma1936rbi59@+?AY@o|J zwN5H?0yOy?faS+F_9s`aT z0~Vgc(ujPVFxEKD&0n%_8#S*U&Ni1WEn35>7qZt#&b zNLQb2?#q1>6J@~FzAbSCF-fMex?rBBvrsYlmh{@Mxda0NtlFKp6?|+2uGM@85Pf3U zbOiKhXB|eeD?2lDDmvMgM!TT(agqT6luVhoT_*A?Yw`T1eYYrnJ#L<`I9pLRct9es zG9Onq_CTxLZC@n?w-fC9qqkv5+u7_KaSZ3L0sWU$aD~$RW>+o}a+_%@IiNQN4Aat)B&74#xR>-8LVKv*OzFiYqC5$+Ya#jKS$ z=D2OHr^||}U+@(>kD1jFikWd6gpr;AHL-^=cEL{A9K^2Dibx@5cREz0laI;gUv>-s zItC-We>?J~{&#w`z&wZV1AJW5$mbR_^{9Fb(FPf*j@Aku3vxIP!hgcvvWcdmy0Y_JKg7&%L0{| z(<9U^b6Xnt1e@v_09uor2Kz#Cjly@2HRJz!)O`~$F|x0MI=_;BtF_8hnn_*b>$H5k zvB|dpeVz~d!T)1!(vb}oP8(wh{pDQQ$U$VG5>ntJMvA4tl)tk{)V1YD$8}hrByRo) zLsYiOt|7cR9xez?>x)C&-IYFuhQGZ+0+{bSve+!U@EYspe%Wl1!;7`;>=!ccX3;d{zyB5S1ndj)cDDbAe>bxKjEH{(W+e)+JHuo66Tj@* zKQAM53CzOr^|CWpetpEByW};DNn8H!LH=3T|67q?GqC?#k^ftf|35qO&;9wsPtcWj Z2(yY7(JI_0t{;IvvXY7tSvT~({~sZj;dTH3 literal 0 HcmV?d00001