<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Plbear | Cuz Penguin QQ</title><link>https://www.plbear.com/posts/</link><description>Recent content in Posts on Plbear | Cuz Penguin QQ</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 10 Aug 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://www.plbear.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>App UI自动化测试实践：基于元素Skills的自动化测试框架设计</title><link>https://www.plbear.com/posts/2026-08-10-app-ui-testing-skills/</link><pubDate>Mon, 10 Aug 2026 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2026-08-10-app-ui-testing-skills/</guid><description>App UI 自动化测试框架的设计与实践，基于元素 Skills 概念，用 AI 辅助元素定位和测试用例生成，解决传统 UI 自动化维护成本高、元素定位不稳定的痛点。</description></item><item><title>接口自动化测试体系搭建：从接口测试到压测的全链路方案</title><link>https://www.plbear.com/posts/2026-06-15-api-testing-system/</link><pubDate>Mon, 15 Jun 2026 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2026-06-15-api-testing-system/</guid><description>接口自动化测试体系的完整搭建方案，涵盖接口功能测试、数据驱动、契约测试、性能压测、CI/CD 集成，实现每次代码提交自动运行测试，保障服务质量。</description></item><item><title>PHP转Go实战：投递系统微服务重构的完整迁移路径</title><link>https://www.plbear.com/posts/2026-04-08-php-to-go-migration/</link><pubDate>Wed, 08 Apr 2026 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2026-04-08-php-to-go-migration/</guid><description>投递系统从 PHP 单体到 Go 微服务的完整迁移实战，涵盖迁移策略、接口兼容、数据双写、灰度切换、性能对比，以及迁移过程中的踩坑与回滚经验。</description></item><item><title>职位描述合规性校验：基于规则引擎的内容安全审核方案</title><link>https://www.plbear.com/posts/2026-03-19-job-compliance-audit/</link><pubDate>Thu, 19 Mar 2026 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2026-03-19-job-compliance-audit/</guid><description>职位描述合规性校验系统的设计，基于规则引擎 + AI 审核，实现职位发布前的自动内容安全审核，覆盖虚假招聘、薪资不符、歧视性要求、违规词汇等场景，降低平台合规风险。</description></item><item><title>简历3.0改版架构：多端简历数据模型统一与接口协同设计</title><link>https://www.plbear.com/posts/2026-01-09-resume-30-architecture/</link><pubDate>Fri, 09 Jan 2026 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2026-01-09-resume-30-architecture/</guid><description>简历3.0改版的架构设计，统一 PC/H5/小程序/App 四端简历数据模型，实现多端编辑协同、版本管理、增量同步，解决旧版数据不一致、接口不统一的问题。</description></item><item><title>新版简历服务架构：Go 微服务分层设计与缓存一致性保障</title><link>https://www.plbear.com/posts/2025-11-12-resume-service-architecture/</link><pubDate>Wed, 12 Nov 2025 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2025-11-12-resume-service-architecture/</guid><description>新版简历服务的 Go 微服务架构设计，涵盖分层架构、gRPC 接口、多级缓存、缓存一致性保障、读写分离，支撑千万级简历的高并发查询和更新。</description></item><item><title>高峰论坛活动系统 2.0：AI 生成议程与智能推荐的技术实现</title><link>https://www.plbear.com/posts/2025-09-01-summit-system-20/</link><pubDate>Mon, 01 Sep 2025 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2025-09-01-summit-system-20/</guid><description>高峰论坛活动系统 2.0 的技术实现，AI 自动生成活动议程、智能推荐参会者和感兴趣的议题、实时互动问答，提升活动组织效率和参会体验。</description></item><item><title>职位搜索算法优化：从 BM25 到向量检索的混合召回方案</title><link>https://www.plbear.com/posts/2025-07-23-job-search-algorithm/</link><pubDate>Wed, 23 Jul 2025 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2025-07-23-job-search-algorithm/</guid><description>职位搜索算法从传统 BM25 到向量检索的混合召回方案优化，涵盖语义匹配、向量召回、重排序，解决同义词、语义不匹配等传统搜索痛点，搜索点击率提升 35%。</description></item><item><title>AI 模拟面试智能体架构：Go SSE 流式分发与 Prompt 状态机工程</title><link>https://www.plbear.com/posts/2025-06-10-ai-interview-agent/</link><pubDate>Tue, 10 Jun 2025 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2025-06-10-ai-interview-agent/</guid><description>AI 模拟面试智能体的架构设计，基于 Go SSE 流式分发实现实时对话，用 Prompt 状态机约束面试流程，解决长对话模型失控、流式延迟高、计费闭环等问题。</description></item><item><title>MCP 协议入门与实战：基于 FastMCP 构建企业级 Skills 服务</title><link>https://www.plbear.com/posts/2025-04-21-mcp-fastmcp-practice/</link><pubDate>Mon, 21 Apr 2025 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2025-04-21-mcp-fastmcp-practice/</guid><description>MCP（Model Context Protocol）协议入门与实战，基于 FastMCP 框架构建企业级 Skills 服务，让大模型安全调用招聘平台的结构化数据，实现 AI 智能体的工具调用能力。</description></item><item><title>AI 网关架构设计：One-API 大模型网关的鉴权、限流与计费闭环</title><link>https://www.plbear.com/posts/2025-03-31-ai-gateway-architecture/</link><pubDate>Mon, 31 Mar 2025 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2025-03-31-ai-gateway-architecture/</guid><description>基于 One-API 的大模型网关架构设计，涵盖多模型统一接入、API Key 鉴权、限流策略、Token 计费、会员体系，实现 AI 能力的商业化闭环。</description></item><item><title>Go 简历服务接口设计：从 RESTful 到 gRPC 的跨服务通信标准</title><link>https://www.plbear.com/posts/2025-02-18-go-resume-grpc/</link><pubDate>Tue, 18 Feb 2025 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2025-02-18-go-resume-grpc/</guid><description>Go 简历微服务的接口设计实践，从 RESTful 到 gRPC 的演进，涵盖 Protobuf 定义、错误码规范、拦截器设计、服务注册发现，建立跨服务通信标准。</description></item><item><title>供应链频道页架构：迈点新闻与热门职位的聚合展示方案</title><link>https://www.plbear.com/posts/2024-12-28-supply-chain-channel/</link><pubDate>Sat, 28 Dec 2024 15:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2024-12-28-supply-chain-channel/</guid><description>供应链频道页的架构设计，聚合迈点新闻资讯、热门职位、行业数据等多源内容，通过缓存预聚合、异步更新、CDN 加速，实现高并发下频道页的快速响应。</description></item><item><title>城市类目系统重构：从数据建模到接口校验的完整改造</title><link>https://www.plbear.com/posts/2024-11-20-region-system-refactor/</link><pubDate>Wed, 20 Nov 2024 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2024-11-20-region-system-refactor/</guid><description>城市类目系统从旧版到新版的完整重构实践，涵盖数据模型设计、层级关系管理、接口校验、数据迁移，解决旧系统类目混乱、层级不清、维护困难的问题。</description></item><item><title>138 全站迁移实战：PC/H5/小程序四端数据迁移与灰度方案</title><link>https://www.plbear.com/posts/2024-09-30-site-migration/</link><pubDate>Mon, 30 Sep 2024 15:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2024-09-30-site-migration/</guid><description>138 大美业全站从旧系统迁移到新平台的实战记录，涵盖 PC/H5/微信小程序/招聘通小程序四端数据迁移、账号合并、灰度切换方案，以及迁移过程中的踩坑与回滚经验。</description></item><item><title>B 端推送系统设计：多渠道消息防重与异步削峰的工程实践</title><link>https://www.plbear.com/posts/2024-07-12-b2b-push-system/</link><pubDate>Fri, 12 Jul 2024 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2024-07-12-b2b-push-system/</guid><description>B 端消息推送系统的架构设计，支持多渠道（站内信、短信、邮件、微信）消息推送，涵盖异步削峰、幂等防重、渠道路由、失败重试，支撑大促期间百万级推送稳定运行。</description></item><item><title>138 大美业模块架构设计：多行业垂直频道的可扩展方案</title><link>https://www.plbear.com/posts/2024-04-15-channel-architecture/</link><pubDate>Mon, 15 Apr 2024 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2024-04-15-channel-architecture/</guid><description>138 大美业垂直频道模块的架构设计，支持多行业垂直频道的快速扩展，涵盖频道配置化、数据隔离、主题定制、统一接口，实现新增频道零代码开发。</description></item><item><title>用户中心架构演进：从单体到微服务的用户体系拆分实践</title><link>https://www.plbear.com/posts/2024-02-26-user-center-evolution/</link><pubDate>Mon, 26 Feb 2024 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2024-02-26-user-center-evolution/</guid><description>用户中心从单体应用拆分为独立微服务的架构演进实践，涵盖服务拆分策略、数据迁移方案、gRPC 接口设计、灰度切换流程，以及拆分过程中的踩坑经验。</description></item><item><title>ELK 日志中台搭建实践：从 Filebeat 到 Kibana 的全链路日志方案</title><link>https://www.plbear.com/posts/2023-12-10-elk-logging-platform/</link><pubDate>Sun, 10 Dec 2023 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2023-12-10-elk-logging-platform/</guid><description>ELK 日志中台搭建实践，涵盖 Filebeat 日志采集、Logstash 过滤清洗、Elasticsearch 存储索引、Kibana 可视化分析，解决微服务架构下日志分散、排查困难的问题。</description></item><item><title>Kubernetes 异构队列调度实践：PHP 与 Go 混合部署的资源编排</title><link>https://www.plbear.com/posts/2023-09-22-k8s-heterogeneous-scheduling/</link><pubDate>Fri, 22 Sep 2023 15:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2023-09-22-k8s-heterogeneous-scheduling/</guid><description>Kubernetes 集群中 PHP 与 Go 服务混合部署的异构队列调度实践，涵盖节点亲和性、污点容忍、资源配额、HPA 自动扩缩容，解决不同语言服务资源需求差异大的问题。</description></item><item><title>PHP-FPM 单 Pod 性能调优：从 Opcache 到进程管理的深度优化</title><link>https://www.plbear.com/posts/2023-07-05-php-fpm-k8s-optimization/</link><pubDate>Wed, 05 Jul 2023 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2023-07-05-php-fpm-k8s-optimization/</guid><description>Kubernetes 环境下 PHP-FPM 单 Pod 性能调优实践，从 Opcache 配置、进程管理、资源限制到镜像优化，单 Pod QPS 从 200 提升到 800。</description></item><item><title>专场活动系统架构设计：从报名到签到的全链路技术方案</title><link>https://www.plbear.com/posts/2023-04-18-event-system-architecture/</link><pubDate>Tue, 18 Apr 2023 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2023-04-18-event-system-architecture/</guid><description>招聘专场活动系统的全链路架构设计，涵盖活动创建、报名审核、电子票、二维码签到、数据统计，以及高并发报名场景下的性能优化方案。</description></item><item><title>消息队列开发现状与问题分析：RabbitMQ 在招聘场景下的踩坑实录</title><link>https://www.plbear.com/posts/2023-02-20-rabbitmq-practice/</link><pubDate>Mon, 20 Feb 2023 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2023-02-20-rabbitmq-practice/</guid><description>RabbitMQ 在招聘业务场景下的踩坑实录，涵盖消息丢失、重复消费、队列堆积、死信处理等问题的分析与解决方案，以及消息队列使用的最佳实践。</description></item><item><title>高峰论坛活动系统架构：高并发活动页的缓存与降级策略</title><link>https://www.plbear.com/posts/2022-12-05-summit-architecture/</link><pubDate>Mon, 05 Dec 2022 15:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2022-12-05-summit-architecture/</guid><description>招聘平台高峰论坛活动系统架构设计，高并发场景下的多级缓存策略、限流降级方案、静态化处理，支撑活动当天 10 倍流量峰值稳定运行。</description></item><item><title>Elasticsearch 测试环境集群运维笔记：分片策略与索引生命周期管理</title><link>https://www.plbear.com/posts/2022-10-15-es-ops-notes/</link><pubDate>Sat, 15 Oct 2022 11:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2022-10-15-es-ops-notes/</guid><description>Elasticsearch 测试环境集群运维实践笔记，涵盖分片策略设计、索引生命周期管理、冷热分离、备份恢复，以及日常运维中的常见问题排查。</description></item><item><title>普通会员策略 2.0：基于状态机的会员生命周期管理</title><link>https://www.plbear.com/posts/2022-08-22-member-strategy-20/</link><pubDate>Mon, 22 Aug 2022 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2022-08-22-member-strategy-20/</guid><description>普通会员策略 2.0 重构，基于状态机管理会员生命周期，解决 1.0 版本 if-else 嵌套、状态混乱的问题，实现会员状态流转的可配置、可追溯、可扩展。</description></item><item><title>PHPUnit</title><link>https://www.plbear.com/posts/phpunit/</link><pubDate>Fri, 12 Aug 2022 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/phpunit/</guid><description>&lt;p>PHPUnit踩坑实录&lt;/p>
&lt;p>版本信息
说明：现有项目使用php7.2, 只能支持phpunit8.5, 不支持部分新特性&lt;/p>
&lt;p>php 7.4.30
phpunit 9.5.21
mockery 1.5.0
日常开发
测试类继承 PHPUnit\Framework\TestCase
use PHPUnit\Framework\TestCase;&lt;/p></description></item><item><title>阿里云盘 挂载本地挂载</title><link>https://www.plbear.com/posts/a-li-yun-pan-gua-zai-ben-di-gua-zai/</link><pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/a-li-yun-pan-gua-zai-ben-di-gua-zai/</guid><description>&lt;p>&lt;strong>Alist&lt;/strong>&lt;/p>
&lt;p>一般电脑上挂载云盘到本地都是两步走，先利用网盘目录程序搞定网盘，再映射成本地网络磁盘，所以想把网盘挂载到本地，我们需要两个工具。&lt;/p>
&lt;p>当然，网盘目录程序有很多，不过你可以试试今天这个 Alist，开源在 GitHub 上，已经荣获了 6.2K+ Star。&lt;/p></description></item><item><title>招聘视频功能架构设计：视频上传、转码与播放的完整链路</title><link>https://www.plbear.com/posts/2022-06-13-video-architecture/</link><pubDate>Mon, 13 Jun 2022 16:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2022-06-13-video-architecture/</guid><description>招聘平台视频功能的完整架构设计，涵盖前端上传、服务端转码、CDN 分发、播放器适配，以及大文件上传、转码队列、水印处理等工程实践。</description></item><item><title>技术博客</title><link>https://www.plbear.com/posts/ji-zhu-bo-ke/</link><pubDate>Wed, 08 Jun 2022 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/ji-zhu-bo-ke/</guid><description>&lt;p>&lt;a href="https://github.com/kamranahmedse/developer-roadmap">技术RoadMap&lt;/a>
&lt;a href="https://blog.codingnow.com/">云风的Blog&lt;/a>
&lt;a href="https://tech.meituan.com/">美团技术团队&lt;/a>
&lt;a href="http://www.ruanyifeng.com/blog/">阮一峰的网络日志&lt;/a>
&lt;a href="https://coolshell.cn/">陈皓（CoolShell博主）&lt;/a>
&lt;a href="https://www.liaoxuefeng.com/">廖雪峰的官方网站&lt;/a>
&lt;a href="http://www.cppblog.com/solstice/">陈硕的Blog - C++博客&lt;/a>
&lt;a href="http://mindhacks.cn/">刘未鹏 | Mind Hacks&lt;/a>
&lt;a href="https://www.captainbed.net/blog-neo/">床长人工智能教程&lt;/a>
&lt;a href="https://turbock79.cn/">九霄天空&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://www.martinfowler.com/">Martin Fowler&lt;/a>
&lt;a href="https://jakewharton.com/blog/">JakeWharton&lt;/a>
&lt;a href="https://dhh.dk/">DAVID HEINEMEIER HANSSON&lt;/a>
&lt;a href="https://medium.com/@daveford">David Ford&lt;/a>
&lt;a href="https://davidwalsh.name/">David Walsh&lt;/a>
&lt;a href="https://www.johndcook.com/blog/">John D. Cook&lt;/a>
&lt;a href="https://joshtronic.com/blog/">Joshtronic&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://www.laruence.com/">惠新宸&lt;/a>
&lt;a href="https://xiaorui.cc/">峰云就她了&lt;/a>
&lt;a href="https://www.bo56.com/">信海龙&lt;/a>
&lt;a href="http://zyan.cc/index.php">张宴&lt;/a>
&lt;a href="http://guweigang.com/">洋沙居士&lt;/a>
&lt;a href="https://rango.swoole.com/">rango&lt;/a>
&lt;a href="https://wenda.swoole.com/u/1">新rango&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://stephenguise.com/blog/">Stephen Guise&lt;/a>
&lt;a href="https://www.scotthyoung.com/blog/">ScottHYoung&lt;/a>
&lt;a href="https://www.jeremymorgan.com/">Jeremy Morgan&lt;/a>&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>博主&lt;/th>
&lt;th>博客地址&lt;/th>
&lt;th>主要方向&lt;/th>
&lt;th>微信公众号&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>D瓜哥&lt;/td>
&lt;td>&lt;a href="http://www.diguage.com/">www.diguage.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>农码一生&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/zhaopei/">www.cnblogs.com/zhaopei&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>纯洁的微笑&lt;/td>
&lt;td>&lt;a href="http://www.ityouknow.com/">www.ityouknow.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>纯洁的微笑&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>左潇龙&lt;/td>
&lt;td>&lt;a href="http://www.zuoxiaolong.com/">www.zuoxiaolong.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>stoneniqiu&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/stoneniqiu/">www.cnblogs.com/stoneniqiu&lt;/a>&lt;/td>
&lt;td>前端&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>老农-zkweb&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/zkweb">www.cnblogs.com/zkweb&lt;/a>&lt;/td>
&lt;td>.Net&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Jeffcky&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/CreateMyself">www.cnblogs.com/CreateMyself&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>mindwind&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/mindwind/">www.cnblogs.com/mindwind&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>mindwind&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>数据之巅&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/asxinyu/">www.cnblogs.com/asxinyu&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>chenssy&lt;/td>
&lt;td>&lt;a href="http://cmsblogs.com/">www.cmsblogs.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>阿蜜果&lt;/td>
&lt;td>&lt;a href="http://www.blogjava.net/amigoxie/">www.blogjava.net/amigoxie&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>静儿1986&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/xiexj/">www.cnblogs.com/xiexj&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>小柒&lt;/td>
&lt;td>&lt;a href="http://blog.52itstyle.com/">blog.52itstyle.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>匠心十年&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/gaochundong">www.cnblogs.com/gaochundong&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>tkb至简&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/farb/">www.cnblogs.com/farb&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LearningHard&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/zhili">www.cnblogs.com/zhili&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>一线码农&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/huangxincheng/">www.cnblogs.com/huangxincheng&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LineZero&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/linezero/">www.cnblogs.com/linezero&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>上位者的怜悯&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/lianmin">www.cnblogs.com/lianmin&lt;/a>&lt;/td>
&lt;td>前端&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>田园里的蟋蟀&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/xishuai">www.cnblogs.com/xishuai&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>冯尧&lt;/td>
&lt;td>&lt;a href="http://blog.csdn.net/fengyao1995">blog.csdn.net/fengyao1995&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>许进&lt;/td>
&lt;td>&lt;a href="http://xujin.org">www.xujin.org&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>焰尾迭&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/yanweidie/">www.cnblogs.com/yanweidie&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>张子阳&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/JimmyZhang/">www.cnblogs.com/JimmyZhang&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Emrys&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/emrys5/">www.cnblogs.com/emrys5&lt;/a>&lt;/td>
&lt;td>C# .NET&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>王爵nice&lt;/td>
&lt;td>&lt;a href="http://biezhi.me/">www.biezhi.me&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>wc的一些事一些情&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/wcd144140/">www.cnblogs.com/wcd144140&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ChokCoco&lt;/td>
&lt;td>&lt;a href="http://www.cnblogs.com/coco1s/">www.cnblogs.com/coco1s&lt;/a>&lt;/td>
&lt;td>前端&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>知秋&lt;/td>
&lt;td>&lt;a href="https://muyinchen.github.io/">muyinchen.github.io&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>方志朋&lt;/td>
&lt;td>&lt;a href="http://blog.csdn.net/forezp">blog.csdn.net/forezp&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>天在雨&lt;/td>
&lt;td>&lt;a href="http://www.algorithmdog.com/">www.algorithmdog.com&lt;/a>&lt;/td>
&lt;td>机器学习&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>李同学&lt;/td>
&lt;td>&lt;a href="https://virusdefender.net">virusdefender.net&lt;/a>&lt;/td>
&lt;td>python&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>梅文杰-bboys&lt;/td>
&lt;td>&lt;a href="http://www.bboysoul.com">www.bboysoul.com&lt;/a>&lt;/td>
&lt;td>后端&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>查利鹏&lt;/td>
&lt;td>&lt;a href="https://imzlp.me">imzlp.me&lt;/a>&lt;/td>
&lt;td>C++&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>勇敢的心&lt;/td>
&lt;td>&lt;a href="http://studyai.com/blog/index">studyai.com/blog/index&lt;/a>&lt;/td>
&lt;td>机器学习&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CLL&lt;/td>
&lt;td>&lt;a href="https://www.geekjc.com">www.geekjc.com&lt;/a>&lt;/td>
&lt;td>前端&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>柴&lt;/td>
&lt;td>&lt;a href="http://www.geektechblog.tk">www.geektechblog.tk&lt;/a>&lt;/td>
&lt;td>python&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>mikumikulch&lt;/td>
&lt;td>&lt;a href="https://mikumikulch.gitbooks.io/chucklin_blog/content/">mikumikulch.gitbooks.io&lt;/a>&lt;/td>
&lt;td>java&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>抹桥&lt;/td>
&lt;td>&lt;a href="https://www.kisnows.com">www.kisnows.com&lt;/a>&lt;/td>
&lt;td>前端&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>polaris&lt;/td>
&lt;td>&lt;a href="http://blog.studygolang.com">blog.studygolang.com&lt;/a>&lt;/td>
&lt;td>golang&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>黑鸟🐦&lt;/td>
&lt;td>&lt;a href="http://www.blovb.com">www.blovb.com&lt;/a>&lt;/td>
&lt;td>安全&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>码志&lt;/td>
&lt;td>&lt;a href="http://mazhuang.org">mazhuang.org&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>翟路佳&lt;/td>
&lt;td>&lt;a href="http://blog.meathill.com">blog.meathill.com&lt;/a>&lt;/td>
&lt;td>全栈&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>crossoverJie&lt;/td>
&lt;td>&lt;a href="https://crossoverjie.top">crossoverjie.top&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>crossoverJie&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>刘超&lt;/td>
&lt;td>&lt;a href="https://tech.liuchao.me">tech.liuchao.me&lt;/a>&lt;/td>
&lt;td>后端&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>liletian&lt;/td>
&lt;td>&lt;a href="http://database.jlu.edu.cn/liletian">database.jlu.edu.cn/liletian&lt;/a>&lt;/td>
&lt;td>python&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>yonghaowu&lt;/td>
&lt;td>&lt;a href="http://yonghaowu.github.io">yonghaowu.github.io&lt;/a>&lt;/td>
&lt;td>C/C++, PHP or Python&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>姜汁啤酒&lt;/td>
&lt;td>&lt;a href="http://gingerbeer.blog.51cto.com">gingerbeer.blog.51cto.com&lt;/a>&lt;/td>
&lt;td>网络&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>金笔头&lt;/td>
&lt;td>&lt;a href="http://jinbitou.net">jinbitou.net&lt;/a>&lt;/td>
&lt;td>后端&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>丑胖侠&lt;/td>
&lt;td>&lt;a href="http://blog.csdn.net/wo541075754">http://blog.csdn.net/wo541075754&lt;/a>&lt;/td>
&lt;td>区块链&amp;amp;Drools&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>以诺网&lt;/td>
&lt;td>&lt;a href="http://www.enoch.site/">www.enoch.site&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>无&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>apoollo&lt;/td>
&lt;td>&lt;a href="http://www.apoollo.com/">www.apoollo.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>无&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>万家博客&lt;/td>
&lt;td>&lt;a href="http://www.wanhejia.com/">www.wanhejia.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>无&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>大老杨&lt;/td>
&lt;td>&lt;a href="https://www.dalaoyang.cn/">www.dalaoyang.cn&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>大老杨&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>唐亚峰博客&lt;/td>
&lt;td>&lt;a href="http://blog.battcn.com/">blog.battcn.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>battcn&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>张亚东博客&lt;/td>
&lt;td>&lt;a href="https://www.zhyd.me">www.zhyd.me&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>码一码&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>匠心零度&lt;/td>
&lt;td>&lt;a href="http://www.jiangxinlingdu.com/">www.jiangxinlingdu.com&lt;/a>&lt;/td>
&lt;td>JAVA&lt;/td>
&lt;td>匠心零度&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Vim教程网&lt;/td>
&lt;td>&lt;a href="https://vimjc.com">https://vimjc.com&lt;/a>&lt;/td>
&lt;td>Vim&lt;/td>
&lt;td>vimtutor&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>会打篮球的程序猿&lt;/td>
&lt;td>&lt;a href="http://www.lzhpo.com">http://www.lzhpo.com&lt;/a>&lt;/td>
&lt;td>Java和大数据&lt;/td>
&lt;td>会打篮球的程序猿&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>bugstack虫洞栈&lt;/td>
&lt;td>&lt;a href="https://bugstack.cn">https://bugstack.cn&lt;/a>&lt;/td>
&lt;td>Java&lt;/td>
&lt;td>bugstack虫洞栈&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>寅春树博客&lt;/td>
&lt;td>&lt;a href="https://www.chunshu.net">https://www.chunshu.net&lt;/a>&lt;/td>
&lt;td>全栈&lt;/td>
&lt;td>寅春树&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;a href="https://roadmap.sh/backend">后端开发&lt;/a>
Keep LearningBuilding with Observability in mindMetrics logging and other observable itemsthat could help you in debugging and solvingthe issues when things go wrongArchitectural PatternsMonolithic AppsMicroservicesCQRS and Event SourcingSearch EnginesElasticsearchSolrSOANeo4jRabbitMQKafkaMessage BrokersContainerization vs VirtualizationWeb ServersNginxApacheCaddyMS IISDockerrktLXCGraphQLApolloRelay ModernGraph DatabasesWebSocketsOAuthBasic AuthenticationToken AuthenticationJWTOpenIDSAMLCachingRedisMemcachedServer SideClient SideCDNRelational DatabasesPostgreSQLMySQLMariaDBMS SQLOracleNoSQL DatabasesDocumentMongoDB, CouchDBRealtimeFirebase, RethinkDBACIDMore about DatabasesTransactionsN+1 ProblemSharding StrategiesDatabase NormalizationData ReplicationIndexes and how they workLearn about APIsRESTRead Roy Fielding’s PaperJSON APIsSOAPHATEOASOpen API Spec and SwaggerCAP TheoremAuthenticationWeb Security KnowledgeCORSHTTPSContent Security PolicyOWASP Security RisksMD5 and why not to use itSHA FamilyscryptbcryptHashing AlgorithmsCookie BasedSSL/TLSTestingIntegration TestingUnit TestingFunctional TestingBackendFind the detailed version of this roadmapalong with resources and other roadmapsroadmap.shhttp://Personal Recommendation / OpinionI wouldn&amp;rsquo;t recommendOrder in roadmap not strict (Learn anytime)Alternative Option - Pick this or purpleGoJavaRustC#Learn a LanguageMake sure to learn its quirks. Core details about itsruntime e.g. concurrency, memory model etc.PHPJavaScriptPythonRubyInternetHow does the internet work?What is HTTP?Browsers and how they work?DNS and how it works?What is Domain Name?What is hosting?Basic Frontend KnowledgeHTMLCSSJavaScriptMemory ManagementInterprocess CommunicationI/O ManagementPOSIX Basicsstdin, stdout, stderr, pipesBasic Networking ConceptsOS and General KnowledgeTerminal UsageBasic Terminal Commandsgrep, awk, sed, lsof, curl, wgettail, head, less, find, ssh, killProcess ManagementThreads and ConcurrencyHow OSs work in GeneralBasic Usage of GitGitHubRepo hosting servicesCreate account and Learn to use GitHubVersion Control SystemsWhat are they and why you should use oneBitbucketGitLabORMsCI / CDDesign and Development PrinciplesSOLIDKISSYAGNIDRYGOF Design PatternsDomain Driven DesignTest Driven DevelopmentServerlessBuilding for ScaleGeneral topics that you should learnand care about for the sustainabilityof the product.Mitigation StrategiesUnderstand the Diff.MonitoringThrottlingBackpressureLoadshiftingGracefulTelemetryInstrumentationCircuit BreakerMigration StrategiesHorizontal vs Vertical ScalingDegradationgRPCColumn DBsCassandraTime seriesInfluxDB, TimescaleDB&lt;/p></description></item><item><title>程序员应该访问的最佳网站中文版</title><link>https://www.plbear.com/posts/cheng-xu-yuan-ying-gai-fang-wen-de-zui-jia-wang-zhan-zhong-wen-ban/</link><pubDate>Mon, 06 Jun 2022 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/cheng-xu-yuan-ying-gai-fang-wen-de-zui-jia-wang-zhan-zhong-wen-ban/</guid><description>&lt;h1 id="awesome">awesome&lt;/h1>
&lt;h1 id="程序员应该访问的最佳网站中文版原版">程序员应该访问的最佳网站中文版&lt;a href="https://github.com/sdmg15/Best-websites-a-programmer-should-visit">原版&lt;/a>&lt;/h1>
&lt;p>一些对程序员有用的网站&lt;/p>
&lt;p>在学习CS的时候有一些你必须知道的有用的站点来获取通知为了你的技术储备和学习新知识。这里是一个你应该访问的不是非常全面的一些站点的列表，这个列表会不断更新，只要我能得到链接，你也可以通过添加你知道的来为此做出贡献&lt;/p></description></item><item><title>Go资源大全</title><link>https://www.plbear.com/posts/go-zi-yuan-da-quan/</link><pubDate>Thu, 02 Jun 2022 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/go-zi-yuan-da-quan/</guid><description>&lt;h2 id="contents">Contents&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="#awesome-go">Awesome Go&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#contents">Contents&lt;/a>&lt;/li>
&lt;li>&lt;a href="#audio-and-music">Audio and Music&lt;/a>&lt;/li>
&lt;li>&lt;a href="#authentication-and-oauth">Authentication and OAuth&lt;/a>&lt;/li>
&lt;li>&lt;a href="#blockchain">Blockchain&lt;/a>&lt;/li>
&lt;li>&lt;a href="#bot-building">Bot Building&lt;/a>&lt;/li>
&lt;li>&lt;a href="#build-automation">Build Automation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#command-line">Command Line&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#advanced-console-uis">Advanced Console UIs&lt;/a>&lt;/li>
&lt;li>&lt;a href="#standard-cli">Standard CLI&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#configuration">Configuration&lt;/a>&lt;/li>
&lt;li>&lt;a href="#continuous-integration">Continuous Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="#css-preprocessors">CSS Preprocessors&lt;/a>&lt;/li>
&lt;li>&lt;a href="#data-structures-and-algorithms">Data Structures and Algorithms&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#bit-packing-and-compression">Bit-packing and Compression&lt;/a>&lt;/li>
&lt;li>&lt;a href="#bit-sets">Bit Sets&lt;/a>&lt;/li>
&lt;li>&lt;a href="#bloom-and-cuckoo-filters">Bloom and Cuckoo Filters&lt;/a>&lt;/li>
&lt;li>&lt;a href="#data-structure-and-algorithm-collections">Data Structure and Algorithm Collections&lt;/a>&lt;/li>
&lt;li>&lt;a href="#iterators">Iterators&lt;/a>&lt;/li>
&lt;li>&lt;a href="#maps">Maps&lt;/a>&lt;/li>
&lt;li>&lt;a href="#miscellaneous-data-structures-and-algorithms">Miscellaneous Data Structures and Algorithms&lt;/a>&lt;/li>
&lt;li>&lt;a href="#nullable-types">Nullable Types&lt;/a>&lt;/li>
&lt;li>&lt;a href="#queues">Queues&lt;/a>&lt;/li>
&lt;li>&lt;a href="#sets">Sets&lt;/a>&lt;/li>
&lt;li>&lt;a href="#text-analysis">Text Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#trees">Trees&lt;/a>&lt;/li>
&lt;li>&lt;a href="#pipes">Pipes&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#database">Database&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#caches">Caches&lt;/a>&lt;/li>
&lt;li>&lt;a href="#databases-implemented-in-go">Databases Implemented in Go&lt;/a>&lt;/li>
&lt;li>&lt;a href="#database-schema-migration">Database Schema Migration&lt;/a>&lt;/li>
&lt;li>&lt;a href="#database-tools">Database Tools&lt;/a>&lt;/li>
&lt;li>&lt;a href="#sql-query-builders">SQL Query Builders&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#database-drivers">Database Drivers&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#interfaces-to-multiple-backends">Interfaces to Multiple Backends&lt;/a>&lt;/li>
&lt;li>&lt;a href="#relational-database-drivers">Relational Database Drivers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#nosql-database-drivers">NoSQL Database Drivers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#search-and-analytic-databases">Search and Analytic Databases&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#date-and-time">Date and Time&lt;/a>&lt;/li>
&lt;li>&lt;a href="#distributed-systems">Distributed Systems&lt;/a>&lt;/li>
&lt;li>&lt;a href="#dynamic-dns">Dynamic DNS&lt;/a>&lt;/li>
&lt;li>&lt;a href="#email">Email&lt;/a>&lt;/li>
&lt;li>&lt;a href="#embeddable-scripting-languages">Embeddable Scripting Languages&lt;/a>&lt;/li>
&lt;li>&lt;a href="#error-handling">Error Handling&lt;/a>&lt;/li>
&lt;li>&lt;a href="#file-handling">File Handling&lt;/a>&lt;/li>
&lt;li>&lt;a href="#financial">Financial&lt;/a>&lt;/li>
&lt;li>&lt;a href="#forms">Forms&lt;/a>&lt;/li>
&lt;li>&lt;a href="#functional">Functional&lt;/a>&lt;/li>
&lt;li>&lt;a href="#game-development">Game Development&lt;/a>&lt;/li>
&lt;li>&lt;a href="#generators">Generators&lt;/a>&lt;/li>
&lt;li>&lt;a href="#geographic">Geographic&lt;/a>&lt;/li>
&lt;li>&lt;a href="#go-compilers">Go Compilers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#goroutines">Goroutines&lt;/a>&lt;/li>
&lt;li>&lt;a href="#gui">GUI&lt;/a>&lt;/li>
&lt;li>&lt;a href="#hardware">Hardware&lt;/a>&lt;/li>
&lt;li>&lt;a href="#images">Images&lt;/a>&lt;/li>
&lt;li>&lt;a href="#iot-internet-of-things">IoT (Internet of Things)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#job-scheduler">Job Scheduler&lt;/a>&lt;/li>
&lt;li>&lt;a href="#json">JSON&lt;/a>&lt;/li>
&lt;li>&lt;a href="#logging">Logging&lt;/a>&lt;/li>
&lt;li>&lt;a href="#machine-learning">Machine Learning&lt;/a>&lt;/li>
&lt;li>&lt;a href="#messaging">Messaging&lt;/a>&lt;/li>
&lt;li>&lt;a href="#microsoft-office">Microsoft Office&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#microsoft-excel">Microsoft Excel&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#miscellaneous">Miscellaneous&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#dependency-injection">Dependency Injection&lt;/a>&lt;/li>
&lt;li>&lt;a href="#project-layout">Project Layout&lt;/a>&lt;/li>
&lt;li>&lt;a href="#strings">Strings&lt;/a>&lt;/li>
&lt;li>&lt;a href="#uncategorized">Uncategorized&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#natural-language-processing">Natural Language Processing&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#language-detection">Language Detection&lt;/a>&lt;/li>
&lt;li>&lt;a href="#morphological-analyzers">Morphological Analyzers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#slugifiers">Slugifiers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#tokenizers">Tokenizers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#translation">Translation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#transliteration">Transliteration&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#networking">Networking&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#http-clients">HTTP Clients&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#opengl">OpenGL&lt;/a>&lt;/li>
&lt;li>&lt;a href="#orm">ORM&lt;/a>&lt;/li>
&lt;li>&lt;a href="#package-management">Package Management&lt;/a>&lt;/li>
&lt;li>&lt;a href="#performance">Performance&lt;/a>&lt;/li>
&lt;li>&lt;a href="#query-language">Query Language&lt;/a>&lt;/li>
&lt;li>&lt;a href="#resource-embedding">Resource Embedding&lt;/a>&lt;/li>
&lt;li>&lt;a href="#science-and-data-analysis">Science and Data Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#security">Security&lt;/a>&lt;/li>
&lt;li>&lt;a href="#serialization">Serialization&lt;/a>&lt;/li>
&lt;li>&lt;a href="#server-applications">Server Applications&lt;/a>&lt;/li>
&lt;li>&lt;a href="#stream-processing">Stream Processing&lt;/a>&lt;/li>
&lt;li>&lt;a href="#template-engines">Template Engines&lt;/a>&lt;/li>
&lt;li>&lt;a href="#testing">Testing&lt;/a>&lt;/li>
&lt;li>&lt;a href="#text-processing">Text Processing&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#formatters">Formatters&lt;/a>&lt;/li>
&lt;li>&lt;a href="#markup-languages">Markup Languages&lt;/a>&lt;/li>
&lt;li>&lt;a href="#parsersencodersdecoders">Parsers/Encoders/Decoders&lt;/a>&lt;/li>
&lt;li>&lt;a href="#regular-expressions">Regular Expressions&lt;/a>&lt;/li>
&lt;li>&lt;a href="#sanitation">Sanitation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#scrapers">Scrapers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#rss">RSS&lt;/a>&lt;/li>
&lt;li>&lt;a href="#utilitymiscellaneous">Utility/Miscellaneous&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#third-party-apis">Third-party APIs&lt;/a>&lt;/li>
&lt;li>&lt;a href="#utilities">Utilities&lt;/a>&lt;/li>
&lt;li>&lt;a href="#uuid">UUID&lt;/a>&lt;/li>
&lt;li>&lt;a href="#validation">Validation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#version-control">Version Control&lt;/a>&lt;/li>
&lt;li>&lt;a href="#video">Video&lt;/a>&lt;/li>
&lt;li>&lt;a href="#web-frameworks">Web Frameworks&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#middlewares">Middlewares&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#actual-middlewares">Actual middlewares&lt;/a>&lt;/li>
&lt;li>&lt;a href="#libraries-for-creating-http-middlewares">Libraries for creating HTTP middlewares&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#routers">Routers&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#webassembly">WebAssembly&lt;/a>&lt;/li>
&lt;li>&lt;a href="#windows">Windows&lt;/a>&lt;/li>
&lt;li>&lt;a href="#xml">XML&lt;/a>&lt;/li>
&lt;li>&lt;a href="#zero-trust">Zero Trust&lt;/a>&lt;/li>
&lt;li>&lt;a href="#code-analysis">Code Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#editor-plugins">Editor Plugins&lt;/a>&lt;/li>
&lt;li>&lt;a href="#go-generate-tools">Go Generate Tools&lt;/a>&lt;/li>
&lt;li>&lt;a href="#go-tools">Go Tools&lt;/a>&lt;/li>
&lt;li>&lt;a href="#software-packages">Software Packages&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#devops-tools">DevOps Tools&lt;/a>&lt;/li>
&lt;li>&lt;a href="#other-software">Other Software&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#resources">Resources&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#benchmarks">Benchmarks&lt;/a>&lt;/li>
&lt;li>&lt;a href="#conferences">Conferences&lt;/a>&lt;/li>
&lt;li>&lt;a href="#e-books">E-Books&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#e-books-for-purchase">E-books for purchase&lt;/a>&lt;/li>
&lt;li>&lt;a href="#free-e-books">Free e-books&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#gophers">Gophers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#meetups">Meetups&lt;/a>&lt;/li>
&lt;li>&lt;a href="#style-guides">Style Guides&lt;/a>&lt;/li>
&lt;li>&lt;a href="#social-media">Social Media&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#twitter">Twitter&lt;/a>&lt;/li>
&lt;li>&lt;a href="#reddit">Reddit&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#websites">Websites&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tutorials">Tutorials&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>&lt;a href="#contents">⬆ back to top&lt;/a>&lt;/strong>&lt;/p></description></item><item><title>分账号系统性能优化：从 SQL 优化到缓存策略的全链路改造</title><link>https://www.plbear.com/posts/2022-04-20-multi-account-performance/</link><pubDate>Wed, 20 Apr 2022 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2022-04-20-multi-account-performance/</guid><description>分账号系统性能优化的完整实践，从慢 SQL 排查、索引优化到多级缓存策略，接口响应时间从 800ms 降到 80ms，数据库压力降低 60%。</description></item><item><title>Go 语言入门到实战：从 PHP 开发者视角的 Go 学习路径</title><link>https://www.plbear.com/posts/2022-02-14-go-from-php/</link><pubDate>Mon, 14 Feb 2022 09:30:00 +0800</pubDate><guid>https://www.plbear.com/posts/2022-02-14-go-from-php/</guid><description>从 PHP 开发者视角的 Go 语言学习路径，涵盖语法差异、工程实践、Web 开发、微服务架构，以及从 PHP 转 Go 过程中的踩坑经验。</description></item><item><title>招聘通统计分析 2.0：从实时查询到 OLAP 预聚合的性能跃迁</title><link>https://www.plbear.com/posts/2021-12-08-stats-analytics-20/</link><pubDate>Wed, 08 Dec 2021 10:30:00 +0800</pubDate><guid>https://www.plbear.com/posts/2021-12-08-stats-analytics-20/</guid><description>招聘通统计分析 2.0 架构升级，从 MySQL 实时查询到 ClickHouse + 预聚合的 OLAP 方案，解决大数据量下多维统计查询慢的问题，查询性能提升 50 倍。</description></item><item><title>Redis 分布式锁在高并发场景下的正确性分析：从 Redlock 到原子防重</title><link>https://www.plbear.com/posts/2021-09-25-redis-distributed-lock/</link><pubDate>Sat, 25 Sep 2021 15:30:00 +0800</pubDate><guid>https://www.plbear.com/posts/2021-09-25-redis-distributed-lock/</guid><description>Redis 分布式锁在高并发场景下的正确性分析，从基础的 SETNX 到 Redlock 算法，再到原子防重的工程实践，分析各种方案的适用场景和坑点。</description></item><item><title>招聘通 PC 5.0 架构升级：前后端分离与接口标准化实践</title><link>https://www.plbear.com/posts/2021-07-18-pc50-architecture-upgrade/</link><pubDate>Sun, 18 Jul 2021 11:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2021-07-18-pc50-architecture-upgrade/</guid><description>招聘通 PC 端从服务端渲染到前后端分离的架构升级实践，涵盖 API 标准化、鉴权方案、接口文档自动化、前端工程化，以及迁移过程中的踩坑经验。</description></item><item><title>「火爆人才」简历分层算法：基于活跃度与质量评分的人才分层模型</title><link>https://www.plbear.com/posts/2021-05-10-resume-tier-algorithm/</link><pubDate>Mon, 10 May 2021 16:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2021-05-10-resume-tier-algorithm/</guid><description>招聘平台「火爆人才」功能的简历分层算法设计，基于活跃度与质量评分构建人才分层模型，实现优质人才优先展示，提升企业招聘效率。</description></item><item><title>普通会员策略引擎重构：从硬编码到规则引擎的设计思路</title><link>https://www.plbear.com/posts/2021-03-20-member-rule-engine/</link><pubDate>Sat, 20 Mar 2021 14:30:00 +0800</pubDate><guid>https://www.plbear.com/posts/2021-03-20-member-rule-engine/</guid><description>招聘通普通会员策略系统从硬编码到规则引擎的重构实践，解决业务规则频繁变更导致的代码维护难题，实现策略配置化、热更新。</description></item><item><title>招聘通分账号系统架构设计：多租户数据隔离与权限模型实践</title><link>https://www.plbear.com/posts/2021-01-15-multi-account-architecture/</link><pubDate>Fri, 15 Jan 2021 10:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2021-01-15-multi-account-architecture/</guid><description>招聘通分账号系统从0到1的架构设计，涵盖多租户数据隔离方案、RBAC 权限模型、子账号生命周期管理，以及实际落地中的踩坑经验。</description></item><item><title>PHP 7.4 升级踩坑实录：从 7.2 到 7.4 的兼容性改造与性能收益</title><link>https://www.plbear.com/posts/2020-11-22-php74-upgrade-practice/</link><pubDate>Sun, 22 Nov 2020 15:40:00 +0800</pubDate><guid>https://www.plbear.com/posts/2020-11-22-php74-upgrade-practice/</guid><description>生产环境 PHP 从 7.2 升级到 7.4 的完整过程，兼容性问题排查、代码改造、性能对比，以及升级过程中踩过的坑和解决方案。</description></item><item><title>独立统计数据收集服务设计：异步埋点与数据清洗的工程实践</title><link>https://www.plbear.com/posts/2020-09-08-data-collection-service/</link><pubDate>Tue, 08 Sep 2020 11:20:00 +0800</pubDate><guid>https://www.plbear.com/posts/2020-09-08-data-collection-service/</guid><description>独立统计数据收集服务的架构设计与实现，从前端埋点到异步队列、数据清洗、落库存储的完整链路，解决高并发下数据收集不丢不重的问题。</description></item><item><title>ES索引的增删改查</title><link>https://www.plbear.com/posts/es-suo-yin-de-zeng-shan-gai-cha/</link><pubDate>Tue, 08 Sep 2020 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/es-suo-yin-de-zeng-shan-gai-cha/</guid><description>&lt;p>标准的restful接口&lt;/p>
&lt;h1 id="查">查&lt;/h1>
&lt;p>查看所有index, 等价于show tables;&lt;/p>
&lt;p>GET _cat/indices&lt;/p>
&lt;p>GET test_index&lt;/p>
&lt;p>GET kibana_sample_data_logs?include_type_name=true&amp;amp;include_defaults=true&lt;/p>
&lt;ul>
&lt;li>aliases&lt;/li>
&lt;li>mappings&lt;/li>
&lt;li>settings&lt;/li>
&lt;/ul>
&lt;h1 id="删">删&lt;/h1>
&lt;p>DELETE test_index&lt;/p>
&lt;p>DELETE test_index?ignore_unavailable=true ==&amp;gt; drop table xx if exists&lt;/p>
&lt;h1 id="增">增&lt;/h1>
&lt;div class="goat svg-container ">
&lt;svg
xmlns="http://www.w3.org/2000/svg"
font-family="Menlo,Lucida Console,monospace"
viewBox="0 0 456 2633"
>
&lt;g transform='translate(8,16)'>
&lt;text text-anchor='middle' x='0' y='4' fill='currentColor' style='font-size:1em'>P&lt;/text>
&lt;text text-anchor='middle' x='0' y='20' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='0' y='36' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='0' y='2612' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='8' y='4' fill='currentColor' style='font-size:1em'>U&lt;/text>
&lt;text text-anchor='middle' x='8' y='36' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='16' y='4' fill='currentColor' style='font-size:1em'>T&lt;/text>
&lt;text text-anchor='middle' x='16' y='36' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='24' y='36' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='32' y='4' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='32' y='36' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='32' y='2484' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='32' y='2500' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='32' y='2596' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='40' y='4' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='40' y='36' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='40' y='2484' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='40' y='2500' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='48' y='4' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='48' y='36' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='48' y='52' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='48' y='2468' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='48' y='2500' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='48' y='2516' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='48' y='2580' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='56' y='4' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='56' y='36' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='56' y='52' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='56' y='2500' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='56' y='2516' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='64' y='4' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='64' y='36' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='64' y='52' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='64' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='64' y='2452' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='64' y='2500' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='64' y='2516' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='64' y='2532' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='64' y='2548' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='64' y='2564' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='72' y='4' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='72' y='36' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='72' y='52' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='72' y='68' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='72' y='2500' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='72' y='2516' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='72' y='2532' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='72' y='2548' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='72' y='2564' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='80' y='4' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='80' y='52' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='80' y='68' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='80' y='84' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='132' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='148' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='276' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='292' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='324' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='340' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='372' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='388' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='484' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='500' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='628' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='644' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='884' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='900' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1028' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1044' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1172' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1188' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1220' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1236' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1476' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1492' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1524' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1540' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1668' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1684' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1716' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1732' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1764' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1780' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='1908' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='1924' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='2052' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='2068' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='2196' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='2212' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='2244' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='2260' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='2388' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='2404' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='80' y='2436' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='80' y='2500' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='80' y='2516' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='80' y='2532' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='80' y='2548' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='80' y='2564' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='88' y='4' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='88' y='36' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='88' y='52' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='88' y='68' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='88' y='84' fill='currentColor' style='font-size:1em'>@&lt;/text>
&lt;text text-anchor='middle' x='88' y='132' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='148' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='88' y='276' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='292' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='88' y='324' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='340' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='88' y='372' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='388' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='88' y='484' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='500' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='88' y='628' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='644' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='88' y='884' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='900' fill='currentColor' style='font-size:1em'>h&lt;/text>
&lt;text text-anchor='middle' x='88' y='1028' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1044' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='88' y='1172' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1188' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='88' y='1220' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1236' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='88' y='1476' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1492' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='88' y='1524' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1540' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='88' y='1668' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1684' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='88' y='1716' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1732' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='88' y='1764' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1780' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='88' y='1908' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='1924' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='88' y='2052' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='2068' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='88' y='2196' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='2212' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='88' y='2244' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='2260' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='88' y='2388' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='88' y='2404' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='88' y='2500' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='88' y='2516' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='88' y='2532' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='88' y='2548' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='88' y='2564' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='96' y='4' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='96' y='68' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='96' y='84' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='96' y='100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='116' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='148' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='96' y='164' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='180' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='260' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='292' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='96' y='308' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='340' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='96' y='356' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='388' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='96' y='404' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='468' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='500' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='96' y='516' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='532' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='612' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='644' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='96' y='660' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='868' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='900' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='96' y='916' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='932' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1012' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='1044' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='96' y='1060' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1076' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1156' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='1188' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='96' y='1204' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1236' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='96' y='1252' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1460' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='1492' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='96' y='1508' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1540' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='96' y='1556' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1572' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1652' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='1684' fill='currentColor' style='font-size:1em'>h&lt;/text>
&lt;text text-anchor='middle' x='96' y='1700' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1732' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='96' y='1748' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1780' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='96' y='1796' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1812' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1892' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='1924' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='96' y='1940' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='1956' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='2036' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='2068' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='96' y='2084' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='2100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='2180' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='2212' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='96' y='2228' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='2260' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='96' y='2276' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='2292' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='2372' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='96' y='2404' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='96' y='2420' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='2500' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='96' y='2516' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='96' y='2532' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='96' y='2548' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='96' y='2564' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='104' y='4' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='104' y='36' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='104' y='52' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='104' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='104' y='84' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='104' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='116' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='104' y='148' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='104' y='164' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='180' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='292' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='308' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='340' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='104' y='356' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='388' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='104' y='404' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='104' y='500' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='516' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='532' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='644' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='104' y='660' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='104' y='900' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='104' y='916' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='932' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='1044' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='104' y='1060' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='1076' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='1188' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='104' y='1204' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='1236' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='104' y='1252' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='104' y='1492' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='104' y='1508' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='1540' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='104' y='1556' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='1572' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='1684' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='104' y='1700' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='1732' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='1748' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='1780' fill='currentColor' style='font-size:1em'>q&lt;/text>
&lt;text text-anchor='middle' x='104' y='1796' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='1812' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='1924' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='104' y='1940' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='1956' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='2068' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='104' y='2084' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='2100' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='2212' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='104' y='2228' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='2260' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='104' y='2276' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='2292' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='104' y='2404' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='104' y='2420' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='104' y='2500' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='104' y='2532' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='104' y='2548' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='104' y='2564' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='4' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='112' y='68' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='112' y='84' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='112' y='100' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='116' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='112' y='148' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='112' y='164' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='180' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='196' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='244' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='292' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='308' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='340' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='356' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='388' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='112' y='404' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='112' y='420' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='452' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='500' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='516' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='532' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='548' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='596' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='644' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='660' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='112' y='676' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='708' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='724' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='756' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='772' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='804' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='820' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='852' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='900' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='112' y='916' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='932' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='948' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='996' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='1044' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='1060' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='1076' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='1092' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='1140' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='1204' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='1236' fill='currentColor' style='font-size:1em'>h&lt;/text>
&lt;text text-anchor='middle' x='112' y='1252' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='112' y='1268' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='1396' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='1412' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='1444' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='1492' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='112' y='1508' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='1540' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='112' y='1556' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='1572' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='1588' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='1636' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='1684' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='112' y='1700' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='1732' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='1748' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='1780' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='112' y='1796' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='1812' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='1828' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='1876' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='1924' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='112' y='1940' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='1956' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='1972' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='2020' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='2068' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='112' y='2084' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='2100' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='2116' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='2164' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='2212' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='2228' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='2260' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='2276' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='2292' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='2308' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='112' y='2356' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='112' y='2404' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='112' y='2420' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='112' y='2516' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='112' y='2532' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='112' y='2548' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='2564' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='120' y='4' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='120' y='52' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='120' y='68' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='120' y='84' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='100' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='116' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='120' y='148' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='120' y='164' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='180' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='196' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='292' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='120' y='308' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='340' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='120' y='356' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='388' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='120' y='404' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='120' y='420' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='120' y='500' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='120' y='516' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='532' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='548' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='660' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='120' y='676' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='120' y='708' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='120' y='724' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='120' y='756' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='120' y='772' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='120' y='804' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='120' y='820' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='120' y='900' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='120' y='916' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='932' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='948' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='1044' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='120' y='1060' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='1076' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='1092' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='1188' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='120' y='1204' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='1236' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='120' y='1252' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='120' y='1268' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='120' y='1396' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='120' y='1412' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='120' y='1492' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='120' y='1508' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='1540' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='120' y='1556' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='1572' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='1588' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='1684' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='1700' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='1732' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='120' y='1748' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='1780' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='1796' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='1812' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='1828' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='1924' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='120' y='1940' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='1956' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='1972' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='2068' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='120' y='2084' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='2100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='2116' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='2212' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='120' y='2228' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='2276' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='2292' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='120' y='2308' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='120' y='2404' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='120' y='2420' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='2500' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='120' y='2532' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='120' y='2548' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='120' y='2564' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='128' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='68' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='128' y='84' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='128' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='116' fill='currentColor' style='font-size:1em'>h&lt;/text>
&lt;text text-anchor='middle' x='128' y='148' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='164' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='180' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='196' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='212' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='228' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='292' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='308' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='340' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='128' y='356' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='388' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='404' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='128' y='420' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='128' y='436' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='500' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='128' y='516' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='532' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='548' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='564' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='580' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='644' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='128' y='660' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='128' y='676' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='128' y='692' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='724' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='740' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='772' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='128' y='788' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='820' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='128' y='836' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='916' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='932' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='948' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='964' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='980' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1044' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1060' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1076' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='1092' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1108' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1124' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1204' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1236' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='128' y='1252' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='128' y='1268' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='128' y='1284' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1300' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1380' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='128' y='1412' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='128' y='1428' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1492' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='128' y='1508' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1540' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='128' y='1556' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1572' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='1588' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1604' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1620' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1684' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='128' y='1700' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1732' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1748' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1780' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='128' y='1796' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1812' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='1828' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1844' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1860' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='1924' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='128' y='1940' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1956' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='1972' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='1988' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='2004' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='2084' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='2100' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='2116' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='2132' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='2148' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='2212' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='128' y='2228' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='2260' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='128' y='2276' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='2292' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='128' y='2308' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='2324' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='2340' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='128' y='2404' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='128' y='2420' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='128' y='2516' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='128' y='2532' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='128' y='2548' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='128' y='2564' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='136' y='4' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='136' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='136' y='84' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='116' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='164' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='180' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='196' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='212' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='228' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='308' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='340' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='356' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='404' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='136' y='420' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='436' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='500' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='516' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='532' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='548' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='564' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='580' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='660' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='136' y='676' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='136' y='692' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='724' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='136' y='740' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='772' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='136' y='788' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='820' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='136' y='836' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='900' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='136' y='916' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='932' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='948' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='964' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='980' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='1060' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1076' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='1092' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='1108' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='1124' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='1188' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='136' y='1204' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1236' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='136' y='1252' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='136' y='1268' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1284' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='1300' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='136' y='1412' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='136' y='1428' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='1492' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1508' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1540' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='136' y='1556' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1572' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='1588' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='1604' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='1620' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='1684' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='136' y='1700' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1732' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='136' y='1748' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1780' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='1796' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1812' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='1828' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='1844' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='1860' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='1924' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='136' y='1940' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='1956' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='1972' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='1988' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='2004' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='2068' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='136' y='2084' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='2100' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='2116' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='2132' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='2148' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='2212' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='136' y='2228' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='2276' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='2292' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='136' y='2308' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='136' y='2324' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='2340' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='2404' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='136' y='2420' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='136' y='2500' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='136' y='2532' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='136' y='2548' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='136' y='2564' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='144' y='4' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='144' y='68' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='84' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='144' y='148' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='144' y='180' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='196' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='212' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='228' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='292' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='144' y='340' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='144' y='388' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='144' y='404' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='144' y='420' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='144' y='436' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='500' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='144' y='532' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='548' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='564' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='580' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='644' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='144' y='660' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='144' y='676' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='144' y='692' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='724' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='144' y='740' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='772' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='144' y='788' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='820' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='144' y='836' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='932' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='948' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='964' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='980' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='1044' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='144' y='1076' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='1092' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='1108' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='1124' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='1236' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='144' y='1252' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='144' y='1284' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='1300' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='144' y='1316' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='144' y='1364' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='144' y='1412' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='144' y='1428' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='1540' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='144' y='1572' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='1588' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='1604' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='1620' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='1684' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='144' y='1732' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='144' y='1780' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='144' y='1812' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='1828' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='1844' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='1860' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='1924' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='144' y='1956' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='1972' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='1988' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='2004' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='2100' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='2116' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='2132' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='2148' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='2212' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='144' y='2260' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='144' y='2292' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='2308' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='144' y='2324' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='144' y='2340' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='144' y='2404' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='144' y='2532' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='144' y='2548' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='144' y='2564' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='152' y='4' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='152' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='84' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='152' y='100' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='116' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='164' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='180' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='196' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='212' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='228' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='308' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='340' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='356' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='404' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='152' y='420' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='152' y='436' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='500' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='516' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='532' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='548' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='564' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='580' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='660' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='152' y='676' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='152' y='692' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='724' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='740' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='788' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='820' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='152' y='836' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='900' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='152' y='916' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='932' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='948' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='964' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='980' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='1060' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1076' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='1092' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='1108' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='1124' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='1204' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1252' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='152' y='1268' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1284' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='1300' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='152' y='1316' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='152' y='1428' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='1492' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1508' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1556' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1572' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='1588' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='1604' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='1620' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='1684' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='152' y='1700' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1748' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1796' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1812' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='1828' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='1844' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='1860' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='1924' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='1940' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='1956' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='1972' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='1988' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='2004' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='2068' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='152' y='2084' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='2100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='2116' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='2132' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='2148' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='2212' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='2228' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='2276' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='2292' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='2308' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='2324' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='152' y='2340' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='2404' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='152' y='2420' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='152' y='2532' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='152' y='2548' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='152' y='2564' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='4' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='160' y='84' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='160' y='148' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='160' y='196' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='212' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='228' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='292' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='160' y='388' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='160' y='404' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='160' y='420' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='436' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='500' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='160' y='548' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='564' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='580' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='660' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='160' y='676' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='160' y='692' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='740' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='772' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='160' y='788' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='820' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='160' y='836' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='948' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='964' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='980' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='1044' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='160' y='1092' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='1108' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='1124' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='1236' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='160' y='1252' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='160' y='1284' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='1300' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='160' y='1316' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='1332' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='160' y='1348' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='160' y='1412' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='160' y='1428' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='1540' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='160' y='1588' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='1604' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='1620' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='1684' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='160' y='1732' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='160' y='1780' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='160' y='1828' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='1844' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='1860' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='1972' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='1988' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='2004' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='2116' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='2132' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='2148' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='2212' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='160' y='2308' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='160' y='2324' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='2340' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='160' y='2532' fill='currentColor' style='font-size:1em'>h&lt;/text>
&lt;text text-anchor='middle' x='160' y='2548' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='160' y='2564' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='168' y='4' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='168' y='68' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='84' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='116' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='164' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='180' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='196' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='212' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='228' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='308' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='340' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='356' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='404' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='168' y='420' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='168' y='436' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='516' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='532' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='548' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='564' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='580' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='660' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='168' y='676' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='168' y='692' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='724' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='740' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='788' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='820' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='168' y='836' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='916' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='932' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='948' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='964' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='980' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='1060' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1076' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='1092' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='1108' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1124' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='1204' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1252' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='168' y='1268' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='168' y='1284' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1300' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='1316' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='168' y='1332' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='168' y='1348' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='168' y='1428' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1492' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='168' y='1508' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1556' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1572' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='1588' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='1604' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1620' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='1700' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1748' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1796' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1812' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='1828' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='1844' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1860' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='1924' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='1940' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='1956' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='1972' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='1988' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='2004' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='2084' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='2100' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='2116' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='2132' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='2148' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='2228' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='2276' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='2292' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='2308' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='2324' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='2340' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='2404' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='168' y='2420' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='2532' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='168' y='2548' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='168' y='2564' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='176' y='4' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='176' y='100' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='176' y='116' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='164' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='196' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='228' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='308' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='176' y='356' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='176' y='404' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='176' y='420' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='500' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='176' y='516' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='548' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='580' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='660' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='176' y='676' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='176' y='772' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='176' y='820' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='916' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='948' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='980' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='1060' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='1092' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='1124' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='1204' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='176' y='1236' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='176' y='1252' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='176' y='1300' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='176' y='1316' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='176' y='1332' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='176' y='1348' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='176' y='1412' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='176' y='1508' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='176' y='1540' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='176' y='1556' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='1588' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='1620' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='1684' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='176' y='1700' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='176' y='1732' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='176' y='1748' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='176' y='1780' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='176' y='1796' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='1828' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='1860' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='1940' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='1972' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='2004' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='2084' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='2116' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='2148' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='2212' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='176' y='2228' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='176' y='2276' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='2308' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='2340' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='2420' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='176' y='2532' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='176' y='2548' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='176' y='2564' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='184' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='68' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='84' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='100' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='184' y='116' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='184' y='164' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='180' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='212' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='228' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='308' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='184' y='340' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='356' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='184' y='404' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='184' y='436' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='516' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='532' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='564' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='580' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='660' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='184' y='676' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='184' y='692' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='724' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='740' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='788' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='836' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='916' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='932' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='964' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='980' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='1060' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='1076' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='1108' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='1124' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='1204' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='184' y='1252' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='184' y='1284' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='1300' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='184' y='1316' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='184' y='1332' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='184' y='1348' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='184' y='1428' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='1508' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='184' y='1556' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='1572' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='1604' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='1620' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='1700' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='184' y='1748' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='1796' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='1812' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='1844' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='1860' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='1924' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='1940' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='1956' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='1988' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='2004' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='2084' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='2100' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='2132' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='2148' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='2228' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='184' y='2276' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='2292' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='2324' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='184' y='2340' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='184' y='2404' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='184' y='2420' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='184' y='2532' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='184' y='2548' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='184' y='2564' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='192' y='4' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='192' y='100' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='192' y='116' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='192' y='164' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='196' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='228' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='308' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='192' y='356' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='192' y='420' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='500' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='192' y='516' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='548' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='580' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='676' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='192' y='820' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='916' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='948' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='980' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='1060' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='1092' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='1124' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='1204' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='192' y='1316' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='192' y='1332' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='192' y='1348' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='192' y='1508' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='192' y='1556' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='1588' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='1620' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='1684' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='192' y='1700' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='192' y='1748' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='192' y='1796' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='1828' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='1860' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='1940' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='1972' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='2004' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='2084' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='2116' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='2148' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='2212' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='192' y='2228' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='192' y='2276' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='2308' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='192' y='2340' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='192' y='2420' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='192' y='2532' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='192' y='2548' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='192' y='2564' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='200' y='4' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='200' y='84' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='200' y='100' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='200' y='116' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='200' y='164' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='212' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='228' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='308' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='200' y='404' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='200' y='436' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='516' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='564' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='580' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='660' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='200' y='676' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='200' y='692' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='740' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='788' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='836' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='916' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='964' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='980' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='1060' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='1108' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='1124' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='1252' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='200' y='1284' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='1300' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='200' y='1316' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='200' y='1332' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='1348' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='200' y='1428' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='1508' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='1556' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='1604' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='1620' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='1700' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='200' y='1748' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='200' y='1796' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='1844' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='1860' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='1940' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='1988' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='2004' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='2084' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='2132' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='2148' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='2228' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='200' y='2276' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='2324' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='2340' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='200' y='2420' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='200' y='2532' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='200' y='2548' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='200' y='2564' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='208' y='4' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='208' y='100' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='208' y='116' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='208' y='164' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='196' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='212' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='228' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='308' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='420' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='436' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='516' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='548' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='564' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='580' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='676' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='692' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='208' y='740' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='788' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='820' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='836' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='916' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='948' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='964' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='980' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='1060' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='1092' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='1108' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='1124' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='1284' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='208' y='1316' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='1348' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='208' y='1428' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='208' y='1508' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='208' y='1556' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='1588' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='1604' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='1620' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='1700' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='1748' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='1796' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='1828' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='1844' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='1860' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='1940' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='1972' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='1988' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='2004' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='2084' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='2116' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='2132' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='2148' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='2228' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='2276' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='2308' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='208' y='2324' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='208' y='2340' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='208' y='2420' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='2548' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='208' y='2564' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='216' y='4' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='216' y='100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='216' y='116' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='216' y='164' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='212' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='228' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='404' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='216' y='436' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='516' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='564' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='580' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='660' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='216' y='692' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='740' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='788' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='836' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='916' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='964' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='980' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='1060' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='1108' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='1124' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='1252' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='216' y='1284' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='1300' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='216' y='1332' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='216' y='1348' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='216' y='1428' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='216' y='1508' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='1556' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='1604' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='1620' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='1748' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='216' y='1796' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='1844' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='1860' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='1940' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='1988' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='2004' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='2084' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='2132' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='2148' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='2276' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='216' y='2324' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='216' y='2340' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='216' y='2532' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='216' y='2548' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='216' y='2564' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='224' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='100' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='224' y='116' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='224' y='212' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='228' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='436' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='564' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='580' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='676' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='224' y='692' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='224' y='740' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='788' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='836' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='964' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='980' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='1108' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='1124' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='1284' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='224' y='1316' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='224' y='1348' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='224' y='1428' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='224' y='1508' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='224' y='1604' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='1620' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='1748' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='224' y='1844' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='1860' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='1988' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='2004' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='2132' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='2148' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='2324' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='224' y='2340' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='2548' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='232' y='4' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='232' y='116' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='232' y='212' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='228' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='436' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='564' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='580' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='692' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='232' y='740' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='788' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='836' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='964' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='980' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='1108' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='1124' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='1284' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='232' y='1332' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='1348' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='232' y='1428' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='232' y='1604' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='1620' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='1748' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='1844' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='1860' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='1988' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='2004' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='2132' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='2148' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='2324' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='232' y='2340' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='2532' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='2548' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='232' y='2564' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='240' y='4' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='240' y='116' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='240' y='212' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='436' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='564' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='676' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='240' y='692' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='240' y='740' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='788' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='836' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='964' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='1108' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='1284' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='240' y='1316' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='240' y='1332' fill='currentColor' style='font-size:1em'>k&lt;/text>
&lt;text text-anchor='middle' x='240' y='1348' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='1428' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='240' y='1604' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='1844' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='1988' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='2132' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='2324' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='240' y='2532' fill='currentColor' style='font-size:1em'>1&lt;/text>
&lt;text text-anchor='middle' x='248' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='248' y='116' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='248' y='212' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='228' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='436' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='564' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='580' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='692' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='248' y='740' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='788' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='836' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='964' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='980' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='1108' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='1124' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='1284' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='248' y='1332' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='248' y='1348' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='248' y='1604' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='1620' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='1844' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='1860' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='1988' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='2004' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='2132' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='2148' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='2324' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='248' y='2340' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='2532' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='248' y='2548' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='248' y='2564' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='256' y='4' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='256' y='212' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='436' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='564' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='692' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='256' y='740' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='788' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='836' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='964' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='1108' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='1332' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='256' y='1348' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='256' y='1604' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='1844' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='1988' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='2132' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='2324' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='256' y='2532' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='256' y='2564' fill='currentColor' style='font-size:1em'>1&lt;/text>
&lt;text text-anchor='middle' x='264' y='4' fill='currentColor' style='font-size:1em'>?&lt;/text>
&lt;text text-anchor='middle' x='264' y='212' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='228' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='436' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='564' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='580' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='692' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='264' y='740' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='788' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='836' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='964' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='980' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='1108' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='1124' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='1332' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='264' y='1348' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='1604' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='1620' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='1844' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='1860' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='1988' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='2004' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='2132' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='2148' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='2324' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='2340' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='264' y='2548' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='264' y='2564' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='272' y='4' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='272' y='212' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='228' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='564' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='580' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='692' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='272' y='964' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='980' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='1108' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='1124' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='1332' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='272' y='1604' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='1620' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='1844' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='1860' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='1988' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='2004' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='2132' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='2148' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='2324' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='272' y='2340' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='272' y='2548' fill='currentColor' style='font-size:1em'>0&lt;/text>
&lt;text text-anchor='middle' x='280' y='4' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='280' y='228' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='580' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='692' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='280' y='980' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='1124' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='1332' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='280' y='1348' fill='currentColor' style='font-size:1em'>:&lt;/text>
&lt;text text-anchor='middle' x='280' y='1620' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='1860' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='2004' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='2148' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='2340' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='280' y='2548' fill='currentColor' style='font-size:1em'>-&lt;/text>
&lt;text text-anchor='middle' x='288' y='4' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='288' y='1332' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='288' y='2548' fill='currentColor' style='font-size:1em'>1&lt;/text>
&lt;text text-anchor='middle' x='296' y='4' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='296' y='1332' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='296' y='1348' fill='currentColor' style='font-size:1em'>2&lt;/text>
&lt;text text-anchor='middle' x='296' y='2548' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='304' y='4' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='304' y='1332' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='304' y='1348' fill='currentColor' style='font-size:1em'>5&lt;/text>
&lt;text text-anchor='middle' x='304' y='2548' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='312' y='4' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='312' y='1348' fill='currentColor' style='font-size:1em'>6&lt;/text>
&lt;text text-anchor='middle' x='320' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='328' y='4' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='336' y='4' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='344' y='4' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='352' y='4' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='360' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='368' y='4' fill='currentColor' style='font-size:1em'>_&lt;/text>
&lt;text text-anchor='middle' x='376' y='4' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='384' y='4' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='392' y='4' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='400' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='408' y='4' fill='currentColor' style='font-size:1em'>=&lt;/text>
&lt;text text-anchor='middle' x='416' y='4' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='424' y='4' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='432' y='4' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='440' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;/g>
&lt;/svg>
&lt;/div>
&lt;p>改 reindex&lt;/p></description></item><item><title>Elasticsearch 集群搭建与调优：测试环境 3 节点集群的完整部署笔记</title><link>https://www.plbear.com/posts/2020-06-30-elasticsearch-cluster-deploy/</link><pubDate>Tue, 30 Jun 2020 16:30:00 +0800</pubDate><guid>https://www.plbear.com/posts/2020-06-30-elasticsearch-cluster-deploy/</guid><description>Elasticsearch 测试环境 3 节点集群从0到1的完整部署笔记，涵盖安装配置、索引设计、分片策略、性能调优与常见问题排查。</description></item><item><title>XSS 攻击防御实战：从输入过滤到输出编码的多层防护体系</title><link>https://www.plbear.com/posts/2020-04-15-xss-defense-practice/</link><pubDate>Wed, 15 Apr 2020 14:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2020-04-15-xss-defense-practice/</guid><description>Web 应用 XSS 攻击防御的完整实践，从输入过滤、输出编码到 CSP 策略的多层防护体系，结合真实漏洞案例讲解防御要点。</description></item><item><title>招聘通统计分析后台架构：从单表查询到独立统计服务的演进之路</title><link>https://www.plbear.com/posts/2020-02-26-stats-analytics-architecture/</link><pubDate>Wed, 26 Feb 2020 10:15:00 +0800</pubDate><guid>https://www.plbear.com/posts/2020-02-26-stats-analytics-architecture/</guid><description>招聘通统计分析后台从单表实时查询到独立统计服务的架构演进，解决大数据量下多维统计查询慢、影响主库性能的问题。</description></item><item><title>第三方 API 集成中的稳定性保障：短信/邮件/Facebook 登录的高可用设计</title><link>https://www.plbear.com/posts/2019-12-18-third-party-api-stability/</link><pubDate>Wed, 18 Dec 2019 15:00:00 +0800</pubDate><guid>https://www.plbear.com/posts/2019-12-18-third-party-api-stability/</guid><description>跨境电商平台第三方 API 集成的稳定性保障实践，涵盖短信、邮件、Facebook 登录等核心外部依赖的降级、重试、熔断与监控方案。</description></item><item><title>企业小程序全栈开发实践：Yii2.0 + 阿里云 + MySQL 的闭环搭建</title><link>https://www.plbear.com/posts/2019-11-05-miniprogram-fullstack/</link><pubDate>Tue, 05 Nov 2019 11:30:00 +0800</pubDate><guid>https://www.plbear.com/posts/2019-11-05-miniprogram-fullstack/</guid><description>企业招聘小程序从0到1的全栈开发实践，后端基于 Yii2.0 搭建，部署在阿里云，涵盖登录授权、简历管理、职位投递等核心功能的完整实现。</description></item><item><title>Apache 服务器专项调优：从 MPM 模式到 Opcache 的全链路优化</title><link>https://www.plbear.com/posts/2019-09-12-apache-php-optimization/</link><pubDate>Thu, 12 Sep 2019 16:10:00 +0800</pubDate><guid>https://www.plbear.com/posts/2019-09-12-apache-php-optimization/</guid><description>Apache + PHP 服务器性能调优实战，从 MPM 模式选择、进程数配置到 Opcache 优化，完整记录调优前后的性能对比。</description></item><item><title>Python资源大全</title><link>https://www.plbear.com/posts/python-that-is-all-about-python/</link><pubDate>Sat, 10 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/python-that-is-all-about-python/</guid><description>&lt;h3 id="环境管理">环境管理&lt;/h3>
&lt;p>管理 Python 版本和环境的工具&lt;/p>
&lt;ul>
&lt;li>p：非常简单的交互式 python 版本管理工具。&lt;a href="https://github.com/qw3rtman/p">官网&lt;/a>&lt;/li>
&lt;li>pyenv：简单的 Python 版本管理工具。&lt;a href="https://github.com/yyuu/pyenv">官网&lt;/a>&lt;/li>
&lt;li>Vex：可以在虚拟环境中执行命令。&lt;a href="https://github.com/sashahart/vex">官网&lt;/a>&lt;/li>
&lt;li>virtualenv：创建独立 Python 环境的工具。&lt;a href="https://pypi.python.org/pypi/virtualenv">官网&lt;/a>&lt;/li>
&lt;li>virtualenvwrapper：virtualenv 的一组扩展。&lt;a href="https://pypi.python.org/pypi/virtualenvwrapper">官网&lt;/a>&lt;/li>
&lt;li>buildout：在隔离环境初始化后使用声明性配置管理。&lt;a href="http://www.buildout.org/en/latest">官网&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="包管理">包管理&lt;/h3>
&lt;p>管理包和依赖的工具。&lt;/p></description></item><item><title>PHP资源列表</title><link>https://www.plbear.com/posts/all-about-php/</link><pubDate>Tue, 06 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/all-about-php/</guid><description>&lt;h1 id="awesome-php">Awesome PHP&lt;/h1>
&lt;p>一个PHP资源列表，内容包括：库、框架、模板、安全、代码分析、日志、第三方库、配置工具、Web 工具、书籍、电子书、经典博文等等&lt;/p>
&lt;h2 id="目录">目录&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="#awesome-php">Awesome PHP&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#composer%E6%BA%90-composer-repositories">Composer源 Composer Repositories&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86-dependency-management">依赖管理 Dependency Management&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%85%B6%E4%BB%96%E7%9A%84%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86-dependency-management-extras">其他的依赖管理 Dependency Management Extras&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%A1%86%E6%9E%B6-frameworks">框架 Frameworks&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%85%B6%E4%BB%96%E6%A1%86%E6%9E%B6-framework-extras">其他框架 Framework Extras&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%A1%86%E6%9E%B6%E7%BB%84%E4%BB%B6-components">框架组件 Components&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%BE%AE%E5%9E%8B%E6%A1%86%E6%9E%B6-micro-frameworks">微型框架 Micro Frameworks&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%85%B6%E4%BB%96%E5%BE%AE%E5%9E%8B%E6%A1%86%E6%9E%B6-micro-framework-extras">其他微型框架 Micro Framework Extras&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%B7%AF%E7%94%B1-routers">路由 Routers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%A8%A1%E6%9D%BF-templating">模板 Templating&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%9D%99%E6%80%81%E7%AB%99%E7%82%B9%E7%94%9F%E6%88%90%E5%99%A8-static-site-generators">静态站点生成器 Static Site Generators&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE-http">超文本传输协议 HTTP&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%88%AC%E8%99%AB-scraping">爬虫 Scraping&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%B8%AD%E9%97%B4%E4%BB%B6-middlewares">中间件 Middlewares&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%BD%91%E5%9D%80-url">网址 URL&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6-email">电子邮件 Email&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6-files">文件 Files&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%B5%81-streams">流 Streams&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5-dependency-injection">依赖注入 Dependency Injection&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%9B%BE%E5%83%8F-imagery">图像 Imagery&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%B5%8B%E8%AF%95-testing">测试 Testing&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90-continuous-integration">持续集成 Continuous Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E6%A1%A3-documentation">文档 Documentation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AE%89%E5%85%A8-security">安全 Security&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AF%86%E7%A0%81-passwords">密码 Passwords&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90-code-analysis">代码分析 Code Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F-code-quality">代码质量 Code Quality&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%9D%99%E6%80%81%E5%88%86%E6%9E%90-static-analysis">静态分析 Static Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#architectural-architectural">Architectural Architectural&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%B0%83%E8%AF%95%E5%92%8C%E5%88%86%E6%9E%90-debugging-and-profiling">调试和分析 Debugging and Profiling&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7-build-tools">构建工具 Build Tools&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BB%BB%E5%8A%A1%E8%BF%90%E8%A1%8C%E5%99%A8-task-runners">任务运行器 Task Runners&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AF%BC%E8%88%AA-navigation">导航 Navigation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86-asset-management">资源管理 Asset Management&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%9C%B0%E7%90%86%E4%BD%8D%E7%BD%AE-geolocation">地理位置 Geolocation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%97%A5%E6%9C%9F%E5%92%8C%E6%97%B6%E9%97%B4-date-and-time">日期和时间 Date and Time&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BA%8B%E4%BB%B6-event">事件 Event&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%97%A5%E5%BF%97-logging">日志 Logging&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1-e-commerce">电子商务 E-commerce&lt;/a>&lt;/li>
&lt;li>&lt;a href="#pdf-pdf">PDF PDF&lt;/a>&lt;/li>
&lt;li>&lt;a href="#office-office">Office Office&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E6%8D%AE%E5%BA%93-database">数据库 Database&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%BF%81%E7%A7%BB-migrations">迁移 Migrations&lt;/a>&lt;/li>
&lt;li>&lt;a href="#nosql-nosql">NoSQL NoSQL&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%98%9F%E5%88%97-queue">队列 Queue&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%90%9C%E7%B4%A2-search">搜索 Search&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%91%BD%E4%BB%A4%E8%A1%8C-command-line">命令行 Command Line&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83-authentication-and-authorization">身份验证和授权 Authentication and Authorization&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%A0%87%E8%AE%B0-markup">标记 Markup&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AD%97%E7%AC%A6%E4%B8%B2-strings">字符串 Strings&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E5%AD%97-numbers">数字 Numbers&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%BF%87%E6%BB%A4%E5%92%8C%E9%AA%8C%E8%AF%81-filtering-and-validation">过滤和验证 Filtering and Validation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#api-api">API API&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%BC%93%E5%AD%98-caching">缓存 Caching&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%92%8C%E5%AD%98%E5%82%A8-data-structure-and-storage">数据结构和存储 Data Structure and Storage&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%80%9A%E7%9F%A5-notifications">通知 Notifications&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%83%A8%E7%BD%B2-deployment">部署 Deployment&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%9B%BD%E9%99%85%E5%8C%96%E5%92%8C%E6%9C%AC%E5%9C%B0%E5%8C%96-internationalisation-and-localisation">国际化和本地化 Internationalisation and Localisation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%AC%AC%E4%B8%89%E6%96%B9api-third-party-apis">第三方API Third Party APIs&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%89%A9%E5%B1%95-extensions">扩展 Extensions&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%9D%82%E9%A1%B9-miscellaneous">杂项 Miscellaneous&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E8%BD%AF%E4%BB%B6-software">软件 Software&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#PHP%E5%AE%89%E8%A3%85-php-installation">PHP安装 PHP Installation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83-development-environment">开发环境 Development Environment&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%99%9A%E6%8B%9F%E6%9C%BA-virtual-machines">虚拟机 Virtual Machines&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8%E5%92%8Cide-text-editors-and-ides">文本编辑器和IDE Text Editors and IDEs&lt;/a>&lt;/li>
&lt;li>&lt;a href="#web%E5%BA%94%E7%94%A8-web-applications">Web应用 Web Applications&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%9F%BA%E7%A1%80%E6%9E%B6%E6%9E%84-infrastructure">基础架构 Infrastructure&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E8%B5%84%E6%BA%90-resources">资源 Resources&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#php%E7%BD%91%E7%AB%99-php-websites">PHP网站 PHP Websites&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%85%B6%E4%BB%96%E7%BD%91%E7%AB%99-other-websites">其他网站 Other Websites&lt;/a>&lt;/li>
&lt;li>&lt;a href="#php%E4%B9%A6%E7%B1%8D-php-books">PHP书籍 PHP Books&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%85%B6%E4%BB%96%E4%B9%A6%E7%B1%8D-other-books">其他书籍 Other Books&lt;/a>&lt;/li>
&lt;li>&lt;a href="#php%E8%A7%86%E9%A2%91-php-videos">PHP视频 PHP Videos&lt;/a>&lt;/li>
&lt;li>&lt;a href="#php%E6%92%AD%E5%AE%A2-php-podcasts">PHP播客 PHP Podcasts&lt;/a>&lt;/li>
&lt;li>&lt;a href="#php%E9%98%85%E8%AF%BB-php-reading">PHP阅读 PHP Reading&lt;/a>&lt;/li>
&lt;li>&lt;a href="#php%E5%86%85%E6%A0%B8%E9%98%85%E8%AF%BB-php-internals-reading">PHP内核阅读 PHP Internals Reading&lt;/a>&lt;/li>
&lt;li>&lt;a href="#php%E6%9D%82%E5%BF%97-php-magazines">PHP杂志 PHP Magazines&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="composer源-composer-repositories">Composer源 Composer Repositories&lt;/h2>
&lt;p>&lt;em>Composer源&lt;/em>&lt;/p></description></item><item><title>YAML基础语法手册以及和JSON的对照</title><link>https://www.plbear.com/posts/yaml/</link><pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/yaml/</guid><description>&lt;p>&lt;a href="http://yaml.org/">YAML&lt;/a>
全名 YAML Ain’t Markup Language，主要设计目标是对人类可读性高。 &lt;a href="http://yaml.org/spec/1.2/spec.html">YAML 1.2&lt;/a>
是 JSON 的超集，也就是说合法的 JSON 扔给 YAML 1.2 解析器是可以被完美解析的。YAML 集 JSON 和 XML 等各种标记语言之长，进行了扩展强化，功能全面也很易读，很多的系统采用它作为配置文件的格式。&lt;/p></description></item><item><title>MySQL表分区（partition）创建、查询、删除以及重建分区等等操作</title><link>https://www.plbear.com/posts/mysql-partition/</link><pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/mysql-partition/</guid><description>&lt;p>下面演示MySQL Range类型分区的操作，其他类型的分区还有Hash、Key、List等等。&lt;/p>
&lt;p>分区优点：&lt;/p>
&lt;ol>
&lt;li>
&lt;p>分区可以分在多个磁盘，存储更大一点。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>根据查找条件，也就是where后面的条件，查找只查找相应的分区不用全部查找了。&lt;/p></description></item><item><title>微服务架构基于Mycat分库分表及读写分离的配置实战</title><link>https://www.plbear.com/posts/mycat/</link><pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/mycat/</guid><description>&lt;blockquote>
&lt;p>本文以在线商城系统为主要业务场景，分别定义了用户、商品和订单三个微服务，并实现三个微服务所涉及到的数据库和表的水平拆分、垂直拆分和读写分离的相关配置。&lt;/p></description></item><item><title>运维的生活中常见的Nginx规则</title><link>https://www.plbear.com/posts/nginx-rule/</link><pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/nginx-rule/</guid><description>&lt;h1 id="1-概述">&lt;strong>1. 概述&lt;/strong>&lt;/h1>
&lt;p>大家都知道Nginx有很多功能模块，比如反向代理、缓存等，这篇文章总结下我们这些年实际环境中那些有用的Nginx规则和模块，大部分是用法的概括及介绍，具体细节在实际配置时再自行google。&lt;/p></description></item><item><title>如何写出完美的接口：接口规范定义、接口管理工具推荐</title><link>https://www.plbear.com/posts/that-is-how-restful-api-workds/</link><pubDate>Wed, 24 Jul 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/that-is-how-restful-api-workds/</guid><description>&lt;p>&lt;strong>无规矩不成方圆&lt;/strong>，为了开发人员间更好的配合，我特意整理了这么一篇文档供大家参考学习，如有意见、见解，请在评论区留言探讨。&lt;/p>
&lt;p>接口规范说起来大，其实也就那么几个部分，接口规范、接口管理工具、接口文档编写、开发文档编写。&lt;/p></description></item><item><title>如何高逼格的给同事做 Elasticsearch 技术分享</title><link>https://www.plbear.com/posts/how-to-get-started-with-elasticsearch-tutorial/</link><pubDate>Mon, 22 Jul 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/how-to-get-started-with-elasticsearch-tutorial/</guid><description>&lt;p>如果你有机会在公司内部做一次Elasticsearch 技术分享，如何才能讲的逼格高，又接地气，那么建议从以下几个方面展开，大家有好的想法，也欢迎文章留言交流。&lt;/p></description></item><item><title>这可能是最为详细的Docker入门吐血总结</title><link>https://www.plbear.com/posts/awesome-docker-get-start/</link><pubDate>Mon, 22 Jul 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/awesome-docker-get-start/</guid><description>&lt;p>在计算机技术日新月异的今天， Docker 在国内发展的如火如荼。&lt;/p>
&lt;p>&lt;img alt="这可能是最为详细的Docker入门吐血总结" loading="lazy" src="http://p1.pstatp.com/large/pgc-image/1540437482919069761a6bf">&lt;/p>
&lt;p>特别是在一线互联网公司 Docker 的使用是十分普遍的，甚至成为了一些企业面试的加分项，不信的话看看下面这张图。&lt;/p></description></item><item><title>架构成长之路：分布式秒杀系统之如何防止单个用户重复秒杀下单？</title><link>https://www.plbear.com/posts/jia-gou-cheng-chang-zhi-lu-fen-bu-shi-miao-sha-xi-tong-zhi-ru-he-fang-zhi-dan-ge-yong-hu-chong-fu-miao-sha-xia-dan/</link><pubDate>Sun, 21 Jul 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/jia-gou-cheng-chang-zhi-lu-fen-bu-shi-miao-sha-xi-tong-zhi-ru-he-fang-zhi-dan-ge-yong-hu-chong-fu-miao-sha-xia-dan/</guid><description>&lt;p>电子交易的一个很基本的问题，就是避免用户下重复订单。用户明明想买一次，结果一看下了两个单。如果没有及时发现，就会带来额外的物流成本和扯皮。对商家的信誉也不好看。&lt;/p></description></item><item><title>Gamification</title><link>https://www.plbear.com/posts/roleplayinglife/</link><pubDate>Sat, 20 Jul 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/roleplayinglife/</guid><description>&lt;p>&lt;a href="https://i.plbear.com/tag/gamification/">游戏化思维&lt;/a>&lt;/p>
&lt;p>下一篇&lt;/p>
&lt;p>&lt;a href="https://i.plbear.com/post/about/">### Hello World&lt;/a>&lt;/p></description></item><item><title>在西方的程序员眼里，东方的程序员是什么样的？</title><link>https://www.plbear.com/posts/zai-xi-fang-de-cheng-xu-yuan-yan-li-dong-fang-de-cheng-xu-yuan-shi-shi-me-yang-de/</link><pubDate>Sat, 20 Jul 2019 00:00:00 +0000</pubDate><guid>https://www.plbear.com/posts/zai-xi-fang-de-cheng-xu-yuan-yan-li-dong-fang-de-cheng-xu-yuan-shi-shi-me-yang-de/</guid><description>&lt;p>最近，在国外著名的stackexchange网站上出现了一个有趣的问题，有人问：西方的程序员眼里，东方的程序员是什么样的？他描述道：&lt;/p>
&lt;p>世界的东方（印度/中国/菲律宾）是西方（美国/欧洲）的主要软件外包服务提供者。&lt;/p></description></item><item><title>薪酬报告大数据统计系统架构设计：亿级数据下的预聚合方案</title><link>https://www.plbear.com/posts/2019-07-08-salary-report-bigdata/</link><pubDate>Mon, 08 Jul 2019 09:45:00 +0800</pubDate><guid>https://www.plbear.com/posts/2019-07-08-salary-report-bigdata/</guid><description>招聘平台薪酬报告系统从 MySQL 实时统计到 Elasticsearch 预聚合的架构演进，解决亿级数据下多维组合查询响应慢的问题。</description></item><item><title>MySQL 慢查询深度分析：从 EXPLAIN 到索引优化的完整排查链路</title><link>https://www.plbear.com/posts/2019-05-20-mysql-slow-query/</link><pubDate>Mon, 20 May 2019 14:20:00 +0800</pubDate><guid>https://www.plbear.com/posts/2019-05-20-mysql-slow-query/</guid><description>线上 MySQL 慢查询排查的完整方法论，从慢查询日志定位到 EXPLAIN 执行计划分析，再到索引优化和 SQL 改写的实战记录。</description></item><item><title>Yii2.0 框架下微信公众号自动授权登录与会员卡体系落地实践</title><link>https://www.plbear.com/posts/2019-03-15-yii2-wechat-auth/</link><pubDate>Fri, 15 Mar 2019 10:30:00 +0800</pubDate><guid>https://www.plbear.com/posts/2019-03-15-yii2-wechat-auth/</guid><description>基于 Yii2.0 框架搭建微信公众号自动授权登录与会员卡充值消费闭环，从 OAuth2.0 授权到微信支付统一下单的完整链路实践。</description></item></channel></rss>