* update

* up

* up

* update

* Update 17.6 测试代码生成.md

* Update 17.6 测试代码生成.md

* Update 17.6 测试代码生成.md

* Update 17.5 基于大模型的代码生成.md

* Update 17.5 基于大模型的代码生成.md

* update

* Delete 17-6-2.png
This commit is contained in:
xiaowuhu 2023-05-29 15:31:30 +08:00 коммит произвёл GitHub
Родитель d6465a06da
Коммит e8a35132f0
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
25 изменённых файлов: 654 добавлений и 92 удалений

Просмотреть файл

@ -243,13 +243,14 @@ CodeWisdom 是中国复旦大学的软件工程研究团队。我们的研究兴
#### 2. GPT4 生成的代码
而在 GPT4 上进行相同的尝试,我们发现 GPT4 在面对最初的长篇需求时,就直接按照要求进行了代码的生成。
而在 GPT4 上进行相同的尝试,我们发现 GPT4 在面对最初的长篇需求时,就直接按照要求进行了代码的生成。以下是 GPT4 的回复。
```java
```txt
由于篇幅有限,我将为您提供部分功能的代码实现,并给出实现思路,您可以参考这些代码和思路来实现其它功能。
首先,创建实体类,包括 User、College、Major、Course 等。
```
```java
User.java:
@Entity
@ -270,7 +271,8 @@ public class Major{
@ManyToOne
private Major major;
}
```
```java
College.java:
@Entity
@ -283,7 +285,8 @@ public class College{
@OneToMany(mappedBy = "college")
private List<Major> majors;
}
```
```java
Major.java:
@Entity
@ -296,7 +299,8 @@ public class Major{
@ManyToOne
private College college;
}
```
```java
Course.java:
@Entity
@ -319,16 +323,17 @@ public class Course {
@ManyToOne
private User techer;
}
```
```java
然后,创建相应的 Repository 接口继承在JpaRepository:
public interface UserRepository extends JpaRepository<User, Long>{}
public interface CollegeRepository extends JpaRepository<College, Long>{}
public interface MajorRepository extends JpaRepository<Major, Long>{}
public interface CourseRepository extends JpaRepository<Course, Long>{}
```
```java
接下来,创建相应的 Service 接口及其实现类:
public interface UserService{
// ...
}
@ -337,7 +342,8 @@ public interface UserService{
public class UserServiceImpl implements UserService{
// ...
}
```
```java
创建相应的Controller类处理HTTP请求
@RestController
@ -347,9 +353,9 @@ public class UserController{
private UserService userService;
// ...
}
```
```java
以个人信息维护功能为例在UserService接口和UserServiceImpl实现类中添加get和update方法
public interface UserService{
User getUser(Long id);
User updateUser(Long id, User user);
@ -378,9 +384,9 @@ public class UserServiceImpl implements UserService{
return userRepository.save(existingUser);
}
}
```
```java
在UserController类中添加相应的HTTP处理方法
@RestController
@RequestMapping("/api")
public class UserController{
@ -466,13 +472,15 @@ GPT4 不仅进行了完成了从需求分析、设计、实体抽取到代码框
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
```
```java
2. 在application的properties中配置Redis连接信息
properties:
spring.redis.host=localhost
spring.redic.post=6379
```
```java
3. 在你的Spring Boot主类或者一个配置类上添加@EnableCaching注解以启用缓存
@EnableCaching
@ -482,7 +490,8 @@ public class Application{
SpringApplication.run(Application.class, args);
}
}
```
```java
4. 配置Redis做为缓存管理器
@Configuration
@ -497,7 +506,8 @@ public class CacheConfig{
.cacheDefaults(redicCC).build();
}
}
```
```java
5. 在需要缓存的方法上添加@Cacheable注解。例如对一个学生信息查询方法添加缓存
@Service

Просмотреть файл

@ -1,9 +1,9 @@
## 17.3 软件行业的混合办公模式
本小节摘录了来自微软亚洲研究院 DKI 组的一份研究报告,它调查了新冠疫情对软件行业人员的影响,尤其是新型的混合办公模式的体验情况,有助于帮助软件行业的企业管理者进行更合理的决策。
本小节摘录了来自微软亚洲研究院 DKI 组的一份研究报告,它调查了 COVID-19 对软件行业人员的影响,尤其是新型的混合办公模式的体验情况,有助于帮助软件行业的企业管理者进行更合理的决策。
标题:新冠肺炎疫情恢复期间重返办公室—来自中国的早期指标
标题: COVID-19 恢复期间重返办公室—来自中国的早期指标
原文标题Returning to the Office During the COVID-19 Pandemic Recovery: Early Indicators from China
原文链接https://dl.acm.org/doi/10.1145/3411763.3451685
原文作者:
@ -27,53 +27,53 @@
### 摘要
新冠肺炎疫情迫使许多人在2020年初突然转向远程工作。但随着各国从疫情中复苏,正如中国从 2020 年春天开始的那样公司经历了重新开放办公室的过程。人们以混合模式Hybrid mode工作在这种模式下他们可以决定如何分配在家和办公室工作的时间。在这项研究中我们探讨了影响员工决策的关键因素是什么。我们对一家全球科技公司在中国的员工进行了调查和采访。这些数据展示了人们在家和办公室之间的工作时间安排他们在家工作的经历以及他们喜欢的工作模式。通过访谈我们确定了人们在混合工作阶段决定在哪里工作的不同策略和原因。
COVID-19 迫使许多人在2020年初突然转向远程工作。但随着各国从 COVID-19 中复苏,正如中国从 2020 年春天开始的那样公司经历了重新开放办公室的过程。人们以混合模式Hybrid mode工作在这种模式下他们可以决定如何分配在家和办公室工作的时间。在这项研究中我们探讨了影响员工决策的关键因素是什么。我们对一家全球科技公司在中国的员工进行了调查和采访。这些数据展示了人们在家和办公室之间的工作时间安排他们在家工作的经历以及他们喜欢的工作模式。通过访谈我们确定了人们在混合工作阶段决定在哪里工作的不同策略和原因。
概念:以人为中心的计算—协作和社交计算的实证研究。
关键字:远程工作、在家工作、远程工作、混合工作、新冠肺炎
关键字:远程工作、在家工作、远程工作、混合工作。
### 17.3.1 引言
新冠肺炎疫情迫使许多知识工作者在 2020 年初突然转向全球范围的远程工作。对疫情的应对方法使人们在远程工作方面有了大量自然发生的经验,因此这为研究人员提供了一个机会,可以在不同于传统情况的远程工作的背景下研究远程工作主题。
COVID-19 迫使许多知识工作者在 2020 年初突然转向全球范围的远程工作。对 COVID-19 的应对方法使人们在远程工作方面有了大量自然发生的经验,因此这为研究人员提供了一个机会,可以在不同于传统情况的远程工作的背景下研究远程工作主题。
由于疫情形势和应对措施的不同,各国目前从疫情中恢复的进展情况差异很大。一些国家领先于其他国家,冠状病毒的传播已基本得到控制,社会和经济正在从新冠肺炎疫情中恢复。在中国,疫情恢复过程始于 2020 年春季,当时公司经历了重新开放办公室的过程,员工从强制在家工作过渡到在家和办公室工作的混合模式。员工被允许返回办公室,同时仍保持必要时在家工作的灵活性。在混合模式下,员工可以根据各种因素决定如何在家和办公室之间分配工作时间。
由于 COVID-19 形势和应对措施的不同,各国目前从 COVID-19 中恢复的进展情况差异很大。一些国家领先于其他国家,病毒的传播已基本得到控制,社会和经济正在从 COVID-19 中恢复。在中国, COVID-19 恢复过程始于 2020 年春季,当时公司经历了重新开放办公室的过程,员工从强制在家工作过渡到在家和办公室工作的混合模式。员工被允许返回办公室,同时仍保持必要时在家工作的灵活性。在混合模式下,员工可以根据各种因素决定如何在家和办公室之间分配工作时间。
尽管最近发表了许多研究以检验新冠肺炎疫情背景下的远程工作经验$^{[5–7,9,25,27,30]}$,但缺乏针对疫情恢复期间混合工作阶段的研究。在这项研究中我们旨在填补这一空白以了解员工在混合工作模式下的实践和经验并探讨影响他们在家和办公室之间工作时间安排的关键因素是什么。具体而言我们对一家全球科技公司在中国三个城市的知识工作者进行了一项在线调查N=475和半结构化访谈N=12。在我们进行调查和采访时他们已经在混合模式下工作了三个多月因此随着时间的推移他们的实践和经验基本上稳定了下来。从我们的研究中我们发现与完全在家工作相比参与者在混合工作模式下总体上感知到更高的生产力和更高的满意度。
尽管最近发表了许多研究以检验 COVID-19 背景下的远程工作经验$^{[5–7,9,25,27,30]}$,但缺乏针对 COVID-19 恢复期间混合工作阶段的研究。在这项研究中我们旨在填补这一空白以了解员工在混合工作模式下的实践和经验并探讨影响他们在家和办公室之间工作时间安排的关键因素是什么。具体而言我们对一家全球科技公司在中国三个城市的知识工作者进行了一项在线调查N=475和半结构化访谈N=12。在我们进行调查和采访时他们已经在混合模式下工作了三个多月因此随着时间的推移他们的实践和经验基本上稳定了下来。从我们的研究中我们发现与完全在家工作相比参与者在混合工作模式下总体上感知到更高的生产力和更高的满意度。
由于全球一些地区的许多工作场所仍处于关闭状态,我们的研究结果有助于为决策者和组织提供信息,帮助他们规划和准备新冠肺炎疫情恢复期间的混合工作模式阶段。此外,这种前所未有的混合工作模式可能会影响人们对远程工作的态度和策略,这可能表明不同工作模式的优缺点,并为未来的工作规范形成最佳实践。因此,我们的研究可以补充其他研究,并有助于在这种新的实践中全面理解对于远程工作研究。
由于全球一些地区的许多工作场所仍处于关闭状态,我们的研究结果有助于为决策者和组织提供信息,帮助他们规划和准备 COVID-19 恢复期间的混合工作模式阶段。此外,这种前所未有的混合工作模式可能会影响人们对远程工作的态度和策略,这可能表明不同工作模式的优缺点,并为未来的工作规范形成最佳实践。因此,我们的研究可以补充其他研究,并有助于在这种新的实践中全面理解对于远程工作研究。
### 17.3.2 相关工作
远程工作也称为远程工作、远程办公或在家工作WFHWorking From Home为员工提供了灵活的工作安排他们不需要在中心办公工作场所工作。远程工作已经越来越多地被许多公司所采用。根据盖洛普的一项调查超过 43%的员工报告称2017 年每周至少有一天远程工作$^{[17]}$。然而,在现实中,远程工作并不总是被认为是有益的。例如,为了更好的沟通和协作,雅虎禁止员工在家工作$^{[21]}$。远程工作是未来工作的一个重要方面,但其长期影响仍不确定。
远程工作也称为远程工作、远程办公或在家工作Working From HomeWFH),为员工提供了灵活的工作安排,他们不需要在中心办公工作场所工作。远程工作已经越来越多地被许多公司所采用。根据盖洛普的一项调查,超过 43%的员工报告称2017 年每周至少有一天远程工作$^{[17]}$。然而,在现实中,远程工作并不总是被认为是有益的。例如,为了更好的沟通和协作,雅虎禁止员工在家工作$^{[21]}$。远程工作是未来工作的一个重要方面,但其长期影响仍不确定。
先前的研究从各个方面调查了远程工作的好处和缺点$^{[1-3,11,13,20,24]}$。总的来说,许多研究表明,远程工作可以提高生产力并带来更高的工作满意度$^{[4,8,10,18]}$,因为远程工作为员工提供了更灵活的工作时间和更好的工作与生活平衡。另一方面,远程工作可能会对生产力产生负面影响。例如,在家工作可能会降低软件开发中开发人员沟通的效率$^{[29]}$。研究人员还发现了在远程工作期间影响人们幸福感的具体挑战,如模糊工作与生活的界限$^{[2]}$和与同事的社会隔离$^{[15]}$,并且可能因不同类型的工作而有所不同$^{[14,26,28]}$。创造性工作、新的工作流程和需要广泛协作的任务可能比容易编码的工作更难通过远程工作实现。
以前的研究大多是关于非正常情况下的远程工作体验,在这种情况下,远程工作通常只涉及一小部分劳动力和有限的工作角色。对冠状病毒的初步反应要求大多数知识工作者在家工作,并实施了各种健康和社会限制。这些疫情可能改变了在家工作的动态,这表明有必要研究它与传统远程工作的区别。
以前的研究大多是关于非正常情况下的远程工作体验,在这种情况下,远程工作通常只涉及一小部分劳动力和有限的工作角色。对冠状病毒的初步反应要求大多数知识工作者在家工作,并实施了各种健康和社会限制。这些 COVID-19 可能改变了在家工作的动态,这表明有必要研究它与传统远程工作的区别。
新冠肺炎疫情应对为研究人员提供了一个独特的时间窗口,以检查大规模远程工作的基本全球实验。研究人员迅速做出反应,及时提出了关于疫情期间远程工作经历的重要发现。例如:
COVID-19 应对为研究人员提供了一个独特的时间窗口,以检查大规模远程工作的基本全球实验。研究人员迅速做出反应,及时提出了关于 COVID-19 期间远程工作经历的重要发现。例如:
- 几项研究$^{[5,12,25]}$关注的是疫情期间在家工作的软件开发人员的生产力。
- 几项研究$^{[5,12,25]}$关注的是 COVID-19 期间在家工作的软件开发人员的生产力。
- Yang 等人估计了新冠肺炎期间在家工作对团队协作的影响$^{[30]}$。
- Nolan 等人探讨了远程工作对幸福感方面的影响$^{[23]}$。
这些研究主要考察了新冠肺炎疫情封锁期间完全在家工作的经历。
这些研究主要考察了 COVID-19 封锁期间完全在家工作的经历。
我们的研究侧重于新冠肺炎疫情恢复混合工作阶段的经验。我们探讨了在疫情恢复期间,员工如何以混合工作模式在家和办公室之间分配工作时间,以及哪些潜在因素影响了他们的决策。有的研究讨论了人们在正常时间远程工作的原因$^{[3,16,19]}$。无论如何,我们的研究说明了疫情期间的差异,即人们首先在疫情应对期间无法选择来办公室,然后经历混合工作阶段,在办公室重新开放后,他们必须决定是否返回办公室。
我们的研究侧重于 COVID-19 恢复混合工作阶段的经验。我们探讨了在 COVID-19 恢复期间,员工如何以混合工作模式在家和办公室之间分配工作时间,以及哪些潜在因素影响了他们的决策。有的研究讨论了人们在正常时间远程工作的原因$^{[3,16,19]}$。无论如何,我们的研究说明了 COVID-19 期间的差异,即人们首先在 COVID-19 应对期间无法选择来办公室,然后经历混合工作阶段,在办公室重新开放后,他们必须决定是否返回办公室。
### 17.3.3 研究方法
在本研究中,我们旨在了解中国人在新冠肺炎疫情恢复的混合工作阶段的经验和做法。具体来说,当人们在混合模式下工作时,我们对三个方面感兴趣:
在本研究中,我们旨在了解中国人在 COVID-19 恢复的混合工作阶段的经验和做法。具体来说,当人们在混合模式下工作时,我们对三个方面感兴趣:
1他们如何安排在家和办公室之间的工作时间
2在家工作对他们的工作和幸福感有何影响
3人们在多大程度上更喜欢混合工作模式
1他们如何安排在家和办公室之间的工作时间
2在家工作对他们的工作和幸福感有何影响
3人们在多大程度上更喜欢混合工作模式
我们对一家全球高科技公司在中国的员工进行了在线调查和后续采访。
#### 1. 背景
2020 年 1 月 23 日凌晨 2 点,武汉发布了封锁通知以防止疫情蔓延。公司很快关闭了中国大陆的办公设施,最初关闭到 2 月 9 日,但后来根据情况的严重性两次延长到 2 月 17 日。2 月 17 日,当情况急剧缓解时,中国的公司逐渐开始欢迎员工回到办公室。
2020 年 1 月 23 日凌晨 2 点,武汉发布了封锁通知以防止 COVID-19 蔓延。公司很快关闭了中国大陆的办公设施,最初关闭到 2 月 9 日,但后来根据情况的严重性两次延长到 2 月 17 日。2 月 17 日,当情况急剧缓解时,中国的公司逐渐开始欢迎员工回到办公室。
我们调查的公司是一家跨国科技公司,在中国的好几个城市都有办公室。根据政府的政策和指导方针,该公司于 2 月 17 日谨慎地开放,允许员工重新进入办公室工作场所,尽管仍鼓励人们在家工作以将风险降至最低。从 3 月 13 日起,员工可以在家或办公室以混合工作模式工作。到我们进行调查时,他们已经在混合模式下工作了三个多月。因此,他们可以分享他们的混合工作模式。
#### 2. 调查
@ -92,9 +92,9 @@
#### 3. 专访
我们在 2020 年 7 月和 8 月对该公司的 12 名员工进行了半结构化采访。采访进一步深入探讨了他们的决策和策略的根本原因。有意从我们的调查对象中邀请参与者,涵盖不同的性别、学科、角色和地点(表 17.3.1
我们在 2020 年 7 月和 8 月对该公司的 12 名员工进行了半结构化采访。采访进一步深入探讨了他们的决策和策略的根本原因。有意从我们的调查对象中邀请参与者,涵盖不同的性别、学科、角色和地点(表 17-1
表 17.3.1 访谈参与者
表 17-1 访谈参与者
|采访人序号|性别|训练|角色|地方|
|-|-|-|-|-|
@ -156,9 +156,9 @@
- 一位受访者P3提到起初他们不确定如何使团队会议足够有效并评论道“我的队友经常认为在线会议太正式所以他们更不愿意谈论琐碎的话题。”但经过一段时间的尝试和错误他们学会了如何更好地利用远程团队会议。
- 我们调查的参与者报告的数字甚至更高。新冠肺炎期间在家工作的满意度22%非常满意45%稍微满意15%既不满意也不满意14%稍微不满意5%非常不满意。他们解释说在家工作可以降低健康风险同时仍然保持令人满意的生产力水平。一位参与者P7告诉我们“我觉得WFH对我和我的家人来说都很有价值。我和家人可以在一起我自己也可以继续工作。”
为了了解在家工作的体验因素如何与感知的生产力和满意度相关,我们计算了与在家工作体验有关的特定问题与生产力和满意度感知之间的皮尔逊相关性。表 17.3.2 和表 17.3.3 显示了在家工作时,体验问题与感知生产力和满意度之间的相关性高于 0.3 或低于 -0.3。一些有趣的相关性:对工作的更好控制感、更高效的会议和更多的时间完成工作与更好的整体生产力有关;在家工作时,更好的工作与生活平衡和更少的花钱与更高的满意度有关。
为了了解在家工作的体验因素如何与感知的生产力和满意度相关,我们计算了与在家工作体验有关的特定问题与生产力和满意度感知之间的皮尔逊相关性。表 17-2 和表 17-3 显示了在家工作时,体验问题与感知生产力和满意度之间的相关性高于 0.3 或低于 -0.3。一些有趣的相关性:对工作的更好控制感、更高效的会议和更多的时间完成工作与更好的整体生产力有关;在家工作时,更好的工作与生活平衡和更少的花钱与更高的满意度有关。
表 17.3.2 与工作效率的相关度绝对值大于 0.3 的WFH体验问题
表 17-2 与工作效率的相关度绝对值大于 0.3 的WFH体验问题
|WFH 体验问题|相关度|p 值|
|-|-|-|
@ -174,7 +174,7 @@
|很难与同事沟通和协调|-0.35327|p<0.001
|很糟糕,因为缺乏规则和流程|-0.35664|p<0.01
表 17.3.3 与满意度的相关度绝对值大于 0.3 的WFH体验问题
表 17-3 与满意度的相关度绝对值大于 0.3 的WFH体验问题
|WFH 体验问题|相关度|p 值|
|-|-|-|
@ -198,7 +198,7 @@
在采访中,我们还询问了参与者对未来工作的展望。
- 大多数参与者倾向于将混合工作模式作为新冠肺炎疫情后的一种工作选择因为通过混合模式知识工作者通常可以结合在家和办公室工作的优点以最大限度地提高生产力和灵活性。正如我们的一位受访者P12告诉我们的那样“在家工作时我感觉更有效率。在家工作对我来说唯一的缺点是缺乏社交机会。这就是为什么我喜欢混合模式。”
- 大多数参与者倾向于将混合工作模式作为 COVID-19 后的一种工作选择因为通过混合模式知识工作者通常可以结合在家和办公室工作的优点以最大限度地提高生产力和灵活性。正如我们的一位受访者P12告诉我们的那样“在家工作时我感觉更有效率。在家工作对我来说唯一的缺点是缺乏社交机会。这就是为什么我喜欢混合模式。”
- 一位项目经理P2喜欢办公室的工作氛围不喜欢远程工作。但她仍然支持混合动力模式。她评论道“我不认为长期在家工作会奏效但我相信混合工作可能是未来的最佳解决方案。它可以为我们提供很大的灵活性以利用远程工作和办公室工作的好处。”
@ -206,18 +206,18 @@
### 17.3.5 讨论和限制
应该注意的是,这一混合工作阶段的背景是人们在长期封锁后首次体验到的。人们在混合模式下的行为、感知和偏好可能是由刚刚摆脱封锁的反弹效应决定的。人们在家工作的经历也可能与其他国家的远程工作政策和疫情进展有关。例如一位受访者P7表示由于美国公司总部所在地有大量同事在家工作因此美国在晚上可以举行更多会议。
应该注意的是,这一混合工作阶段的背景是人们在长期封锁后首次体验到的。人们在混合模式下的行为、感知和偏好可能是由刚刚摆脱封锁的反弹效应决定的。人们在家工作的经历也可能与其他国家的远程工作政策和 COVID-19 进展有关。例如一位受访者P7表示由于美国公司总部所在地有大量同事在家工作因此美国在晚上可以举行更多会议。
调查参与者和受访者普遍对在家工作感到满意。然而,我们也发现,在家里缺乏适当的工作场所设置是影响体验的一个重要因素。对于那些有私人安静的工作场所和不间断的时间,他们更喜欢在家工作。如果人们很容易被打扰,那么在家工作时的高生产力可能更难实现。
通信技术是另一个可能有助于有效远程工作的重要因素,尤其是对于需要大量协作的信息工作者来说。由于人们无法在会议室面对面交流,也无法利用白板讨论问题,因此在家工作的效率降低了。因此,人们选择进入办公室来弥补这些不利因素。为了支持更好的远程工作,应该增强通信工具,以弥补由于无法见面而导致的通信效率低下,尤其是在提供共享绘图工具的情况下。
重要的是要记住我们重新研究人们对混合工作模式的行为和态度的不同寻常的背景。在疫情的特殊情况下,有许多因素也影响了人们的判断和决策。例如,在疫情初期,一些公共交通受到限制,这可能会直接影响人们通勤到办公室的决定。此外,公共卫生官员鼓励人们保持社交距离,减少旅行,这可能会让人们在家工作时感到更安全。此外,在混合工作模式下,幼儿园和学校没有开放,因此家长在家工作时可能需要积极管理孩子。
重要的是要记住我们重新研究人们对混合工作模式的行为和态度的不同寻常的背景。在 COVID-19 的特殊情况下,有许多因素也影响了人们的判断和决策。例如,在 COVID-19 初期,一些公共交通受到限制,这可能会直接影响人们通勤到办公室的决定。此外,公共卫生官员鼓励人们保持社交距离,减少旅行,这可能会让人们在家工作时感到更安全。此外,在混合工作模式下,幼儿园和学校没有开放,因此家长在家工作时可能需要积极管理孩子。
这项研究的重点是中国一家信息技术公司的工作经验,我们曾接触过该公司调查并采访其员工。必须承认数据仅来自一家公司的局限性。这家公司专注于信息技术产品及其技术基础设施,使得大部分工作都可以在家远程进行。作为一家总部设在美国的全球性公司,中国的工作政策涉及与全球企业政策的一些协调,这可能与总部设在中国的公司不同。
### 17.3.6 结束语
我们列出了对中国一家全球科技公司员工进行的在线调查和访谈的结果,以了解他们在新冠肺炎疫情恢复期间的混合工作模式经历。这项研究展示了中国知识型员工如何在家和办公室之间安排工作时间,还揭示了可能影响人们在家工作和返回办公室的体验的各种因素,以及他们为时间安排所采取的策略。这些数据可以将中国的做法与世界其他地区收集的数据进行比较。此外,这些结果有助于改善其他地区的混合重返工作岗位体验,特别是关注所列因素如何影响人们在工作场所重新开放时选择重返工作岗位。
我们列出了对中国一家全球科技公司员工进行的在线调查和访谈的结果,以了解他们在 COVID-19 恢复期间的混合工作模式经历。这项研究展示了中国知识型员工如何在家和办公室之间安排工作时间,还揭示了可能影响人们在家工作和返回办公室的体验的各种因素,以及他们为时间安排所采取的策略。这些数据可以将中国的做法与世界其他地区收集的数据进行比较。此外,这些结果有助于改善其他地区的混合重返工作岗位体验,特别是关注所列因素如何影响人们在工作场所重新开放时选择重返工作岗位。
*由于篇幅有限,参考文章链接没有列出,有兴趣的读者可以阅读原文。*

Просмотреть файл

@ -37,8 +37,6 @@ Platform-X 是⼀个内部使用的深度学习平台,为数千名开发⼈员
### 17.4.1 引言
近年来深度学习DL在许多应⽤领域得到越来越多的采⽤例如⾃然语⾔处理$^{[1,2]}$、强化学习游戏 $^{[3]}$、计算机编程 $^{[4]}$ 和卫星图像$^{[5]}$。IT 企业已经构建了专⽤的多租户平台例如Microsoft Azure Machine Learning $^{[6]}$、Amazon SageMaker $^{[7]}$ 和Google Cloud AI $^{[8]}$),为开发⼈员提供便捷的深度学习训练和推理服务。这些 DL平台配备了⼤量计算设备如 CPU、GPU 或 TPU并在内部与⾼速⽹络互连如通过 InfiniBand $^{[9]}$),⽀持各种 DL 框架和PyTorch $^{[10]}$、TensorFlow $^{[11]}$ 和 Hugging Face $^{[12]}$等库。
在 Microsoft 内部,数千名开发⼈员和研究⼈员每天使⽤内部⽣产 DL 平台 Platform-X 来训练和测试他们的模型,以完成⼴告和机器翻译等各种任务。 Platform-X 是⽤⼴泛使⽤的开源软件(例如 Kubernetes $^{[13]}$)和商⽤计算硬件(例如 GPU搭建的并且在架构上与上述公开的 DL 平台相似。对于Platform X其核⼼任务之⼀是在遇到意外的硬件和软件故障时根据它的服务⽔平协议SLA保证每个⽤户的服务质量。尽管采取了很多质量保证措施但实际上许多 DL 作业仍然存在严重的质量问题⽆法提交、运⾏速度很慢、挂起甚⾄意外失败。这些质量问题不仅会影响⽤户体验还会影响企业⽣产⼒。⽤户在遇到质量问题时通过问题管理系统反馈希望服务站点的可靠性⼯程师SRE尽快诊断并解决这也给平台⽀持团队带来了沉重的运维负担。因此了解 Platform-X 中提出的质量问题,包括它们的故障、根本原因和缓解措施,对于帮助平台⽀持团队最⼤限度地提⾼效率和帮助平台⼯程团队改进系统设计和实施变得尤为重要。
- 以前有很多关于传统软件系统质量问题的⼯作$^{[14...22]}$。例如Zhou 等⼈$^{[19]}$ 研究了来⾃微软内部⼤数据分析平台的 210 个随机选择的质量问题。
@ -67,9 +65,9 @@ Microsoft 使用通用的硬件和广泛使用的开源软件构建 PlatformX
<img src='img/platform-x.png'>
图 17.4.1 Platform-X 概览
图 17-1 Platform-X 概览
图 17.4.1 简要说明了 PlatformX 的工作流程。 PlatformX 的系统架构和作业管理与Microsoft Azure Machine Learning $^{[6]}$、Amazon SageMaker$^{[7]}$ 和 Google Cloud AI $^{[8]}$ 等公共 DL 平台非常相似。用户首先操作门户网站或用于将所有材料包括输入数据、Python 程序、shell 脚本和可能的模型检查点上传到分布式存储例如Azure Blobs的命令行工具。接下来用户为他们的作业指定资源配额例如GPU 型号和数量、Docker镜像、启动 shell 脚本、主要 Python文件、输入/输出路径和其他配置。
图 17-1 简要说明了 PlatformX 的工作流程。 PlatformX 的系统架构和作业管理与Microsoft Azure Machine Learning $^{[6]}$、Amazon SageMaker$^{[7]}$ 和 Google Cloud AI $^{[8]}$ 等公共 DL 平台非常相似。用户首先操作门户网站或用于将所有材料包括输入数据、Python 程序、shell 脚本和可能的模型检查点上传到分布式存储例如Azure Blobs的命令行工具。接下来用户为他们的作业指定资源配额例如GPU 型号和数量、Docker镜像、启动 shell 脚本、主要 Python文件、输入/输出路径和其他配置。
用户还可以指定预装了所有依赖库的自定义 Docker 镜像。一旦提交的作业被选择运行PlatformX 的调度程序使用群调度 $^{[36]}$ 算法立即分配所有请求的资源,并在一个或多个 GPU 计算节点上实例化容器。PlatformX 中的计算节点是配备了GPU、CPU、主内存、磁盘和网络接口卡的物理服务器或虚拟机。之后此类作业的 DL 训练代码会迭代更新可学习参数(即权重和偏差),直到模型学习性能(例如预测准确性)达到我们的预期。最后,当模型训练完成后,作业将最终的模型文件和评估结果保存到分布式存储中。
@ -81,9 +79,9 @@ PlatformX 采用标准且定义明确的流程来处理质量问题。
- 然后问题管理系统将新的质量问题交付给适当的站点可靠性工程师Site Reliability Engineer, SRE以根据问题类型和历史统计数据进行调查。SRE 调用一个集成工具来自动发现以前重复的、相似的或相关的质量问题。如果没有找到SRE 将遵循正式的故障排除指南在自上而下的过程中逐步调查问题。SRE 通过审查错误消息或异常性能指标从受影响作业流程的故障或异常站点开始。在分析了程序和运行时日志之后她试图推断出问题的关键路径。在故障排除决策规则的指导下SRE 深入研究关键路径中的瓶颈或失败阶段,以确定根本原因。
- PlatformX 为上述问题诊断记录了各种遥测数据。这些数据包含作业元数据、性能指标和运行时日志,其中大部分列在表 17.4.1 中。作业元数据包括时间统计信息(例如,作业/进程开始和结束时间、分配的资源例如GPU 规格和数量和依赖软件。性能指标包括各种资源的使用例如GPU/CPU 的平均利用率)和节点状态(即,健康或故障)。运行时日志包括由用户代码、运行时、系统组件和硬件驱动程序打印的常规和失败消息。
- PlatformX 为上述问题诊断记录了各种遥测数据。这些数据包含作业元数据、性能指标和运行时日志,其中大部分列在表 17-4 中。作业元数据包括时间统计信息(例如,作业/进程开始和结束时间、分配的资源例如GPU 规格和数量和依赖软件。性能指标包括各种资源的使用例如GPU/CPU 的平均利用率)和节点状态(即,健康或故障)。运行时日志包括由用户代码、运行时、系统组件和硬件驱动程序打印的常规和失败消息。
表 17.4.1 质量问题分析所依据的日志数据
表 17-4 质量问题分析所依据的日志数据
|维度|分类|举例|
|-|-|-|
@ -120,7 +118,7 @@ PlatformX 采用标准且定义明确的流程来处理质量问题。
#### 3. 有效性顾虑
Threats to Validity直译为有效性威胁意为该研究的有效性是不是会被质疑所以笔者以为“有效性顾虑”。
*Threats to Validity直译为有效性威胁意为该研究的有效性是不是会被质疑所以笔者译为“有效性顾虑”。*
- 内部有效性的顾虑
@ -135,9 +133,9 @@ Threats to Validity直译为有效性威胁意为该研究的有效性是
### 17.4.5 常见故障是什么?
在本节中,我们将研究质量问题的常见故障。故障是用户观察到的质量问题的主观证据,可以在问题标题和描述中发现。表 17.4.2 列出了故障分类,共包括七类。
在本节中,我们将研究质量问题的常见故障。故障是用户观察到的质量问题的主观证据,可以在问题标题和描述中发现。表 17-5 列出了故障分类,共包括七类。
表 17.4.2 故障分类
表 17-5 故障分类
||分类|数量|比例|
|-|-|-|-|
@ -159,9 +157,9 @@ Threats to Validity直译为有效性威胁意为该研究的有效性是
此外,我们对质量问题的严重程度进行分类。
如第 17.4.3 节所述,用户在向 PlatformX 支持团队提交质量问题时需要根据业务影响声明严重级别。问题管理系统和 SRE 参考用户提出的严重性来确定问题处理的优先级例如确定缓解措施所需的时间。请注意SRE 可能会根据以前/类似的质量问题和她的领域知识来调整严重性级别以反映更准确的情况。Platform X 采用三个严重级别:高、正常和低。表 17.4.3 显示了所有问题的严重程度分布。
如第 17.4.3 节所述,用户在向 PlatformX 支持团队提交质量问题时需要根据业务影响声明严重级别。问题管理系统和 SRE 参考用户提出的严重性来确定问题处理的优先级例如确定缓解措施所需的时间。请注意SRE 可能会根据以前/类似的质量问题和她的领域知识来调整严重性级别以反映更准确的情况。Platform X 采用三个严重级别:高、正常和低。表 17-6 显示了所有问题的严重程度分布。
表 17.4.3 严重程度分布
表 17-6 严重程度分布
|严重程度|数量|比例|
|-|-|-|
@ -173,9 +171,9 @@ Threats to Validity直译为有效性威胁意为该研究的有效性是
### 17.4.6 常见的根本原因是什么?
在本节中,我们将对 360 个问题的常见根本原因进行分类,我们将它们分为三个主要维度:硬件、平台端和用户端,表 17.4.4 显示了这些维度的总体分布。
在本节中,我们将对 360 个问题的常见根本原因进行分类,我们将它们分为三个主要维度:硬件、平台端和用户端,表 17-7 显示了这些维度的总体分布。
表 17.4.4 故障的总体分布
表 17-7 故障的总体分布
||维度|数量|比例|
|-|-|-|-|
@ -186,11 +184,11 @@ Threats to Validity直译为有效性威胁意为该研究的有效性是
#### 1. 硬件故障
PlatformX 由 NVIDIA GPU 和 InfiniBand 网络等异构商品硬件构建,可能会遇到相对较高的硬件故障概率。表 17.4.4 表明硬件故障是主要的根本原因类型导致近三分之一102/28.33%)的质量问题。
PlatformX 由 NVIDIA GPU 和 InfiniBand 网络等异构商品硬件构建,可能会遇到相对较高的硬件故障概率。表 17-7 表明硬件故障是主要的根本原因类型导致近三分之一102/28.33%)的质量问题。
硬件故障有 11 分类我们进一步将它们分为三组GPU、网络和节点。硬件故障的详细分类和分布如表 17.4.5 所示。
硬件故障有 11 分类我们进一步将它们分为三组GPU、网络和节点。硬件故障的详细分类和分布如表 17-8 所示。
表 17.4.5 硬件故障Hardware Fault分类
表 17-8 硬件故障Hardware Fault分类
|分组|分类|数量|比例|
|-|-|-|-|
@ -209,7 +207,7 @@ PlatformX 由 NVIDIA GPU 和 InfiniBand 网络等异构商品硬件构建,
|2|Node Damage|5|1.39%|
|3|Node Preemption|2|0.55%|
1GPU
1GPU
GPU 是深度学习工作的主要计算设备。长时间和繁重的工作量可能导致各种 GPU故障 $^{[38...41]}$。
@ -227,7 +225,7 @@ GPU 是深度学习工作的主要计算设备。长时间和繁重的工作量
```
- 在第 4 个类别中两个0.55%)质量问题根源于 Broken GPU Driver通常需要重启节点或重新安装驱动程序因为NVIDIAGPU驱动程序无法正常工作。
2网络
2网络
跨多个计算节点的分布式深度学习训练在 PlatformX 中非常普遍。这些节点在内部与高速网络互连(例如,通过 InfiniBand $^{[9]}$。我们观察到25个6.95%)质量问题是由四类网络故障引起的,其中三类与 InfiniBand 相关。 InfiniBand 是“一种用于高性能计算的计算机网络通信标准,具有非常高的吞吐量和非常低的延迟”$^{[9]}$,广泛应用于各种领域基于云的平台。
@ -236,7 +234,7 @@ GPU 是深度学习工作的主要计算设备。长时间和繁重的工作量
- 其他 InfiniBand 故障有 6 个1.67%),包括适配器初始化失败、平台侧故障驱动程序损坏、写入事务错误和内存注册失败。
- 第 4 个类别,以太网故障。以太网在 PlatformX 中也大量使用用于连接分布式存储和内部服务并方便用户通过安全外壳协议SSH调试失败的作业。此类别有 8 个2.22%)案例,包括瞬态以太网故障、名称解析错误和对等方重置连接等。
3节点
3节点
PlatformX 中的计算节点或简称节点是一个独特的可调度单元用于使用GPU、CPU、主内存、磁盘和网络接口卡进行计算。它可以是物理服务器或虚拟机VM。由于 PlatformX使用商品硬件节点故障在所难免导致57个15.83%)质量问题,超过其他两组的总和。
- 其中 50 个13.89%)是节点中断,例如操作系统内核崩溃和临时磁盘错误,导致 DL 作业失败或挂起。需要注意的是,临时磁盘被创建并附加到计算节点作为临时存储(例如,一个作业拉取并存储其远程输入数据以供以后快速数据访问)。这一类在节点组中是最大的,远超其他两类。
@ -248,9 +246,9 @@ PlatformX 中的计算节点(或简称节点)是一个独特的可调度
#### 2. 平台侧Platform-side Fault故障
在本节中我们描述了平台侧故障的研究其中包括102个28.33%)案例,并进一步分为六类。表 17.4.6 显示了详细的分类和分布。
在本节中我们描述了平台侧故障的研究其中包括102个28.33%)案例,并进一步分为六类。表 17-9 显示了详细的分类和分布。
表 17.4.6 平台侧故障统计
表 17-9 平台侧故障统计
||分类|数量|比例|
|-|-|-|-|
@ -262,7 +260,7 @@ PlatformX 中的计算节点(或简称节点)是一个独特的可调度
|6|Regression 旧伤复发|9 |2.50%|
||Subtotal| 102| 28.33%|
1System Defect
1系统故障(System Defect
系统缺陷是最大的类别结果为3710.28%)质量问题。典型缺陷包括:
@ -271,23 +269,23 @@ PlatformX 中的计算节点(或简称节点)是一个独特的可调度
- 错误的访问控制。如前所述,分布式存储上的输入数据文件夹在没有警告的情况下消失了。
根本原因是 PlatformX 错误设置了这样一个文件夹的访问控制,导致同组的另一个同事不小心删除了。
2Resource Overload
2资源超负载(Resource Overload
对于某些系统资源PlatformX 对用户和 DL 作业没有明确的配额控制。因此,如果用户没有意识到这样的系统设计限制并过度使用资源,就会触发资源过载故障。此类有 21 例5.83%)。例如,用户试图将所有输入数据加载到主内存中以获得最佳性能。然而,数据太大了,主内存很快就用完了。再举一个例子,用户将他们的临时数据(例如模型检查点、评估结果、软件缓存甚至输入数据)存储在计算节点的本地磁盘上是一种常见的做法。有时,用户忘记清理旧文件,磁盘空间很快就会用完。
3Platform Maintenace
3平台维护(Platform Maintenace
PlatformX 定期对 GPU 集群进行平台维护,以进行硬件更换、节点重映像、软件升级和其他任务,这导致了 14 个3.89%质量问题。如果用户不进行主动的作业迁移现有正在运行的DL作业将被 Platform-X 自动终止。偶尔,一些用户不知道维护通知,因此无法持久提交作业。
4Resource Contention
4资源争抢(Resource Contention
由于多个 DL 作业可能会竞争计算节点上的相同资源,因此它们可能会相互干扰并触发 Resource Contention 故障。此类别包括 10 个2.78%案例。例如DL 作业意外减速。SRE 发现这样的作业获得的 CPU 时间比平时少得多,因为另一个作业同时创建了太多 CPU 任务。Resource Contention 与上面的 Resource Overload 类似,都可以通过采用更合适的系统设计(例如,应用资源隔离和配额控制)来缓解。
5Transient Service Outage
5暂时性服务中断(Transient Service Outage
第五类是暂时性服务中断,占所有根本原因的 3.05%11。例如由于 SSH 服务暂时不可用,用户无法连接到分配的计算节点。这些服务中断是暂时的,可以在一段时间后自动恢复。但是,我们没有进一步的细节来推断更根本的原因。
6Regression
6旧伤复发(Regression
PlatformX 的工具、运行时和服务的旧伤复发(笔者译)导致 9 个2.50%)质量问题。例如,更新的作业提交工具更改了某些环境变量,从而破坏了向后兼容性。回归来自 PlatformX 采用的推出政策。目前,新功能和更新正在逐步推出, Platform-X 逐渐扩大部署范围。所以新旧版本都要维护,需要用户注意。一旦发生回归,用户可以将软件或服务回滚到旧版本以缓解问题。
@ -297,9 +295,9 @@ PlatformX 的工具、运行时和服务的旧伤复发(笔者译)导致
#### 3. 用户侧故障
虽然通常认为⽤户不应该报告⾃⼰造成的任何问题,但我们惊讶地发现有 156 个43.34%)质量问题实际上是⽤户⽅⾯的故障造成的。我们进⼀步将它们分为五类,并在表 17.4.7 中显⽰详细信息。
虽然通常认为⽤户不应该报告⾃⼰造成的任何问题,但我们惊讶地发现有 156 个43.34%)质量问题实际上是⽤户⽅⾯的故障造成的。我们进⼀步将它们分为五类,并在表 17-10 中显⽰详细信息。
表 17.4.7 用户侧User-side Fault故障分类
表 17-10 用户侧User-side Fault故障分类
||分类|数量|比例|
|-|-|-|-|
@ -310,7 +308,7 @@ PlatformX 的工具、运行时和服务的旧伤复发(笔者译)导致
|5|Misoperation|11|3.05%|
||Subtotal|156|43.34%|
1Buggy Code
1有缺陷的代码(Buggy Code
第⼀⼤类是 Buggy Code涉及 54 例15.00%占⽤户端故障总数的近⼀半。这些代码错误存在于深度学习程序、Shell 脚本、配置⽂件和⾃定义 Dockerfile 中其中许多Zhang 等人在实证研究中已经提到$^{[27]}$。例如,许多错误来自“本地和平台执行环境之间的差异”。$^{[27]}$
@ -340,23 +338,23 @@ PlatformX 的工具、运行时和服务的旧伤复发(笔者译)导致
我们还注意到一些软件挂起错误$^{[48,49]}$,这些错误使作业无处可去;例如,一项作业在源代码中错误配置了 InfiniBand挂在了 NVIDIA NCCL通信上。
2Policy Violation
2策略限制(Policy Violation
PlatformX 强制执行多项政策规则,以保证用户更恰当、更高效地使用宝贵的平台资源。 PlatformX 虽然提供了政策说明文档和培训课程但部分用户仍不了解这些规则从而引发Policy Violation故障导致质量问题42起11.66%)。此类别是第二大类别,约占所有用户侧故障的四分之一。例如, PlatformX 会自动终止 GPU 在指定时间段内空闲的用户作业,以减少资源浪费并最大限度地提高平台利用率。
我们还注意到一些用户向 PlatformX 提交交互式深度学习程序(例如, Jupyter $^{[50]}$ notebooks用于开发和测试目的。由于非确定性交互无法提前知道 GPU 的使用时间和使用时长。最后Platform-X 因闲置时间过长而终止了这些交互式作业。其他违反策略规则包括例如平台X临时存储上的数据在几天后到期因此用户需要尽快将它们移动到持久存储和DL作业没有启动与某些内部服务的太多连接。违反后者会触发服务节流并导致作业放缓甚至服务终止。
3Improper Permission
3不恰当的权限(Improper Permission
用户及其 DL 作业需要适当的权限才能访问 PlatformX 的资源;否则,会引发 Improper Permission 错误,导致 359.72%个质量问题。例如用户无法向某个GPU集群提交任何作业。事实上他的集群访问请求仍在处理中因此用户此时没有访问权限。另一个例子是由于缺少正确的凭据DL 作业无法从中心拉取 Docker 镜像。
4Software Incompatibility
4软件不兼容(Software Incompatibility
第四类是软件不兼容由14个3.89%)案例组成。随着越来越多的应用领域采用深度学习,与 DL 相关的软件,例如 NVIDIA 运行时、框架、库和优化工具包,最近一直在快速发展。但是,由于它们是由不同的社区独立开发的,因此不匹配的组件之间可能会出现不兼容的情况。
例如,由于标准 DL Docker映像使用的 NVIDIA CUDA 运行时版本低于本地开发版本因此作业卡住了。通常DL 作业会在初始化阶段安装依赖库。如果用户忘记明确指定库版本,他们可能会获得尚未经过自己测试的最新软件,这可能会引发软件不兼容。例如,一个作业安装了一个较新的不兼容版本的 Microsoft DeepSpeed $^{[51]}$(一个优化工具包),然后由于网络吞吐量的下降而明显变慢计算节点。为了减少软件不兼容,用户需要更深入地了解各种 DL 软件组件,并使用预装所有依赖库的自定义 Docker 镜像。
5Misoperation
5误操作(Misoperation
用户操作不当造成质量问题的原因有 11 起3.05%),原因可能是用户不熟悉操作流程。
@ -369,9 +367,9 @@ PlatformX 强制执行多项政策规则,以保证用户更恰当、更高
站点可靠性工程师SRE有责任在报告新的质量问题时迅速采取缓解措施。缓解措施的目的是在尽可能短的时间内使受影响的工作恢复工作或恢复 Platform-X 的服务;否则,业务将受到不利影响,宝贵的资源将被严重浪费。缓解措施通常是一种变通方法,而不是最终修复解决方案,因为后者需要长时间的彻底调查、无错误实施和广泛测试,因此可能无法承受。
在本节中,我们研究了 SRE 采取的常见缓解措施,并将它们分为十类。表 17.4.8 显示了分类详细信息。请注意22/6.11% 的质量问题缺乏关于如何缓解的明确细节;因此,我们将他们的缓解措施标记为其他。
在本节中,我们研究了 SRE 采取的常见缓解措施,并将它们分为十类。表 17-11 显示了分类详细信息。请注意22/6.11% 的质量问题缺乏关于如何缓解的明确细节;因此,我们将他们的缓解措施标记为其他。
表 17.4.8 缓解措施
表 17-11 缓解措施
||分类|数量|比例|
|-|--|-|-|
@ -388,33 +386,33 @@ PlatformX 强制执行多项政策规则,以保证用户更恰当、更高
|11|Others |22| 6.11%|
||Total |360| 100.00%|
1Job Resubmission
1任务重新提交(Job Resubmission
工作重新提交是最大的类别包含12534.72%个案例。正如我们在第VI节中看到的许多作业失败和速度减慢是由各种硬件和平台端故障引起的其中大多数实际上只影响一个或几个计算节点。一旦SRE识别出一个故障节点或者PlatformX 自动检测到一个节点,它就会从所属集群中取消提交以进行离线修复。因此,在不修改任何配置和参数的情况下重新提交受影响的作业将很可能避免出现故障的节点并成功完成作业。
任务重新提交是最大的类别包含12534.72%个案例。正如我们在第VI节中看到的许多作业失败和速度减慢是由各种硬件和平台端故障引起的其中大多数实际上只影响一个或几个计算节点。一旦SRE识别出一个故障节点或者PlatformX 自动检测到一个节点,它就会从所属集群中取消提交以进行离线修复。因此,在不修改任何配置和参数的情况下重新提交受影响的作业将很可能避免出现故障的节点并成功完成作业。
2User Code Improvement
2用户代码改进(User Code Improvement
用户代码改进是第二大类别适用于8924.72%个质量问题。很多是用户端的问题确实不应该报告给平台支持团队。但是为了不妨碍我们的业务SRE积极帮助用户完善他们的代码、访问权限和提交参数。例如SRE指示用
户针对 InfiniBand 相关问题增加源代码中的 NCCL 超时值。对于部分由 Resource Overload和Resource Contention引起的问题代码改进也是一种有效的缓解方法。
3Operation Correction
3纠正误操作(Operation Correction
267.22%质量问题由于误操作、违反政策和不当许可可以通过操作纠正来缓解。例如正如我们提到的用户应用了错误的查询过滤器。SRE指导用户如何在 Web 门户上正确查询信息并建议正确的过滤器。
4System Reconfiguration
4系统重新配置(System Reconfiguration
包括 23 个6.39%)质量问题,主要由 Resource Overload、 Policy Violation 和 Improper Permission 引起。SRE 需要重新配置访问权限、策略规则或服务参数。例如一个问题报告说存储用完了。为了缓解它SRE 和集群管理员增加了总存储量并执行了数据清理。
5Software Rollback
5软件版本回滚(Software Rollback
由软件不兼容、回归和系统缺陷(一个案例)引起的 22 个6.11%)质量问题通过软件回滚到最后一个有效版本得到缓解。对于系统工具、组件和服务, PlatformX 保留了几个最新的工作版本。
6Automatic Healing
6自动恢复(Automatic Healing
一些服务中断和硬件故障是暂时的,或者可以由 PlatformX 自动恢复。因此,有 22 个6.11%)质量问题通过自动修复得到缓解,这意味着用户无需执行特定操作。
7System Hotfix
7系统补丁(System Hotfix
许多系统缺陷可能表现出潜在的广泛影响,并且没有简单的缓解措施。因此, PlatformX 和其他系统服务的支持团队共同努力,尽快交付系统修补程序。例如,由于轻微的不兼容问题,操作系统升级导致存储服务无法正常工作。支持团队很快修复了不兼容问题,然后应用了系统修补程序。该类共计 19 例5.28%)。请注意,修补程序在成为正式系统补丁之前需要进一步验证和压力测试。
@ -442,7 +440,7 @@ PlatformX 强制执行多项政策规则,以保证用户更恰当、更高
基于我们的研究,我们提出了以下未来的研究方向。
1工具支持
1工具支持
- 硬件故障预测
@ -460,7 +458,7 @@ PlatformX 强制执行多项政策规则,以保证用户更恰当、更高
在我们的研究中我们已经看到许多质量问题是由用户代码错误、不当许可和违反政策引起的。因此我们可以开发基于静态分析的代码顾问主动检测用户程序、Shell 脚本、Dockerfile 和配置/凭证文件中的各种问题。此外,这些代码顾问可能会提供高级修复建议或自动程序修复功能。
2平台改进
2平台改进
- 故障感知作业调度
在检查所有问题记录并与一些SRE讨论后我们观察到某些特定的计算节点在重负载下具有更高的中断概率。目前深度学习平台主要根据所需资源为作业分配节点。这样的平台可以从计算节点的历史故障数据中学习并将故障意识整合到它们的作业调度程序中。未来可能的工作是使平台能够估计作业工作量并将长时间运行的作业调度到更稳定的节点而不是容易出错的节点。这样可以减少潜在的工作问题。

Просмотреть файл

@ -0,0 +1,151 @@
## 17.5 基于大模型的代码生成的调查
原文标题Large language Models Meet NL2Code: A Survey
原文链接https://arxiv.org/pdf/2212.09420.pdf
原文作者:
```txt
· Daoguang Zan, Chinese Academy of Sciences, daoguang@iscas.ac.cn
· Bei Chen, Microsoft Research Beijing China, beichen@microsoft.com
· Fengji Zhang, Microsoft Research Beijing China, v-fengjzhang@microsoft.com
· Dianjie Lu, Shandong Normal University, ludianjie@sdnu.edu.cn
· Bingchao Wu, Chinese Academy of Sciences, bingchao2017@iscas.ac.cn
· Bei Guan, Chinese Academy of Sciences, guanbei@iscas.ac.cn
· YongJi Wang, Chinese Academy of Sciences, ywang@itechs.iscas.ac.cn
· Jianguang Lou, Microsoft Research Beijing China, jlou@microsoft.com
```
主要作者简介:
昝道广中国科学院软件研究所博士研究生曾在微软亚洲研究院数据知识与智能组实习实习导师为楼建光和陈蓓研究员。研究兴趣为人工智能和软件工程特别聚焦于基于超大语言模型的代码生成研究工作。微软实习期间在面向第三方代码库的超大语言模型领域中了做了多篇研究工作并且已发表在人工智能领域顶级会议上例如IJCAIEMNLPACLICLR等。
### 摘要
从自然生成代码的任务语言描述,或称为 NL2CodeNatual Language to Code是代码智能中的一个紧迫而重大的挑战。由于预训练技术的快速发展大型语言模型被用于生成代码激发了 NL2Code 的进步。在本文中,我们对现有的 27 种大型语言进行了全面的调查,比较它们的基准和指标,直观地在 HumanEval 基准上比较所有现有模型。通过深入的观察和分析,提供了一些观点并得出结论,促成 NL2Code 大型语言模型成功的关键因素是“大量的优质数据和专家调优”。此外,我们基于模型和人类之间的差距讨论了挑战和机遇。我们还创建了一个网站 https://nl2code.github.io 跟踪最新进展。据我们所知,这是针对大型语言模型的首次调查 NL2Code我们相信它将有助于该领域的持续发展。
### 17.5.1 引言
新手程序员,甚至是那些没有任何编程经验的程序员,是否有可能仅仅通过用自然语言描述他们的需求来创建软件?实现这一设想将对我们的生活、教育、经济和劳动力市场产生前所未有的影响。自然语言-代码NL2Code因其广阔的应用场景是一项重要的研究任务在学术界和工业界都引起了广泛的兴趣。
关于 NL2Code 的发展,其实和自然语言理解的发展类似,一开始,基本都是基于专家规则进行算法设计,但是此类方法需要对不同编程语言进行设计,泛化性差;随着技术发展,人们逐步开始使用静态语言模型,并使用向量空间来描述文字,此类方法在初期一般向量空间比较稀疏,不能建立长期的依赖关系;再后来,就用到了我们比较熟悉的神经网络,例如 CNN、RNN、LSTM此类方法通过标记数据进行训练来构建自然语言NL和代码Code之间的关系但实际效果对 NL2Code 任务的能力有限;现在,在 ChatGPT 风靡全球的背景下越来越多的大型语言模型Large Language ModelsLLMs如雨后春笋一样出现通过语言指令它们可以在零样本状况下生成代码并在NL2Code任务上中取到了惊人的成绩。具有标志性的一个 LLM 模型就是Codex它拥有 120 亿个参数,在 Python 编程任务上测试,可解决 72.31% 的问题,并且该模型已经商用可在实践中提高开发人员的工作效率。
### 17.5.2 可以完成 NL2Code 的大模型
对于 NL2Code 任务,其主要目的是基于给定自然语言问题描述生成所需要的代码。以下是一个关于 Python 编程问题的示例。其中有问题描述、模型生成代码、测试用例。
问题描述:
```python
from collections import Counter
def MostCommonlst:
'''
Find the most common element from lst.
'''
```
模型生成的代码:
```python
data=Counterlst
return data.most_common1[0][0]
```
测试用例:
```python
def check:
assert MostCommon[1,2,1]==1
assert MostCommon[4,0,0]==0
...
```
针对 NL2Code 任务对 27 个具有代表性的 LLMs 进行了全面调研,表 17-12 总结了每个模型的详细信息其中主要包括模型架构、模型大小、模型层数L、注意力头数量A、隐藏维度H、模型参数是否开放P等五个方面。
表 17-12 可以完成 NL2Code 任务的 27 种大模型的总结
<img src="img/17-5-1.png" width=400>
为了更好地可视化,图 17-2 按时间顺序展示了这些模型,绘制了最大的模型大小。观察到的一个趋势是,随着研究领域的发展,这些大型语言模型的规模也在不断扩大。此外,只有解码器的架构更适合于规模较大的预训练模型。
<img src="img/17-5-2.png">
图 17-2 大模型时间表
### 17.5.3 LLMs 成功的原因
上面总结了 NL2Code 现有的大型语言模型LLMs但是这些模型在架构、模型规模等方面各不相同无法进行统一的评估。为此作者在 HumanEval 基准上进行了 Zero-shot 统一评估,其中 HumanEval 基准由 164 个手写的 Python 编程问题组成,对于每个编程问题都提供了测试用例,以评估生成代码正确性。使用 pass@k 作为评估指标即通过k次尝试可以正确回答的问题的比例。表 17-13 显示根据模型大小进行分组,在该测试集上的测试结果。
表 17-13 在 HumanEval 上的性能指标
<img src="img/17-5-3.png">
从表 17-13 可以看出这些LLM在该数据集上的性能差异很大尽管模型参数相似但效果差异也是很大。可以发现 Codex 在各种尺寸上都处于领先地位。为什么会存在这个问题呢?影响模型效果的关键因素是啥呢?作者经过分析给出的结论有:模型大小、数据质量、专家调优。
#### 1. 模型大小
根据前面的整理用于 NL2Code 的 LLMs 时间发展图可以发现,只要模型参数越多性能就越好。为了进一步说明模型参数大小和模型效果之间的关系,作者整理了 10 个比较有代表性的模型,在 HumanEval 基准上的 pass@1 结果,如图 17-3 所示:
<img src="img/17-5-4.png">
图 17-3 在 HumanEval 上的语法错误率
根据上图,很明显的可以发现较大的模型通常会产生更好的结果。此外,当前模型无论大小,仍然可以通过进一步增加模型参数来实现性能的提升。
#### 2. 数据质量
随着 LLMs 模型参数的增加,其训练数据规模也在不断的增加。这在数据选择和预处理方面也有更高的要求。早期的模型,例如 CodeSearchNet、CoST、XLCoST等都是基于人工标注数据对进行训练耗时耗力GPT系列模型GPT-3 、GPT-Neo、GPT-J )开始在大规模无监督数据集上进行训练,但是由于代码数据限制,并没有显示出很强的代码生成能力。由于 LLMs 模型的出现,它们可以在更大规模的未标记代码数据集上进行训练,最终模型效果惊人。
在惊叹于 LLMs 效果的同时也要知道LLMs在训练之前通常会对数据进行预处理。为此作者调研了 Codex、AlphaCode、CodeGen、InCoder和PyCodeGPT 等 5 个强大模型的数据预处理方法。发现它们具有几个共同的特点:一是删除可能自动生成或未完成的代码文件,二是使用特定的规则来过滤不常见的代码文件。总之,这些预处理策略的目标是实现一个不重复的、完整的、正确的、干净的和通用的代码语料库。
#### 3. 专家调优
训练一个优秀的模型需要认真考虑模型训练阶段的各个参数。通过对 27 个 LLMs 模型的研究发现,它们都有一些共同的设置,比如都应用了 Adam 相关优化器并在初始化阶段相差不大。除此之外,还有需要调节的超参数,如学习率、批大小、窗口大小、预热、梯度累积和温度参数。对于学习率来说,随着模型的增大,学习率会逐步变小。如图 17-4 所示:
<img src="img/17-5-5.png" height=280>
图 17-4 六个大模型上的学习率
对于温度参数,这里对比了两个模型在 HumanEval 任务上使用不同温度参数后模型的性能。结果发现,更高的温度参数产生更低的 pass@1 和更高的 pass@100这表明更高的温度参数使 LLM 产生更多样化的预测,反之亦然。如图 17-5 所示:
<img src="img/17-5-6.png" height=280>
图 17-5 在 HumanEval 上的温度参数的影响
此外,有研究表明窗口大小也是一个关键因素,具有大窗口的小模型会有时优于具有小窗口的大模型。此外,强大的 LLMs 通常主要使用两种技术在代码语料库上训练新的标记器:字节级字节对编码和句子片段。新的标记器可以更有效和准确地将代码内容拆分为 Tokens。这些经过验证的调优技术将为培训更强大的 LLM 提供有价值的参考。
### 17.5.4 评估基准指标
对 NL2Code 任务的评估,高质量的基准和可靠的度量是基础和必要的。我们总结了 17 个 NL2Code 基准测试,每个基准测试在大小、语言、复杂性和场景方面都有自己的特点,如表 17-14 所示。
表 17-14 NL2Code 的 17 个指标总结
<img src="img/17-5-7.png" height=340>
但大多数基准测试只包含有限数量的实例。例如HumanEval 和 MBPP 分别有 164 和 974 个实例。这是因为这些基准通常是手写的以防数据泄露。在大型语言模型时代,在创建新基准时避免数据泄漏至关重要。此外,大多数当前的基准测试都有英文的问题描述和 Python 的代码解决方案。最近,已经提出了几个多语言基准,例如涵盖多种编程语言的 MBXPHumanEvalX 和 MultiPL 以及涵盖多种自然语言的ODEX。多语言基准测试的详细信息如表 17-15 所示:
表 17-15 多语言测试指标
<img src="img/17-5-8.png" height=300>
手动评估生成的代码是不切实际的,这就需要自动度量。上述基准均提供了基于执行的评估的测试用例,其中指标如 pass@k、n@k、测试用例平均值和执行精度。但是这种方法对测试用例的质量有严格的要求并且只能评估可执行代码。对于不可执行的代码使用了 BLEU 、ROUGE 和 CodeBLEU 等指标,无法准确评估代码的正确性。到目前为止,在设计指标来评估代码的各个方面(例如漏洞、可维护性、清晰度、执行复杂性和稳定性)方面存在许多开放性挑战。
### 17.5.5 NL2Code 挑战与机遇
大预言模型在 NL2Code 的应用对学术界和工业界都有相当大的影响。虽然取得了惊人的进展,但仍然有很多挑战需求解决,这也为研究人员提供了充足的机会。下面作者总结了 NL2Code 任务的五个挑战和机会。
#### 1. 理解能力
自然语言固有的灵活性允许多种表达方式来传达功能需求,人类能够理解不同抽象层次的各种描述。相比之下,当前的 LLM 往往对给定的上下文敏感这可能会导致性能下降。我们认为探索LLM 的理解能力是一个重要的研究方向,一种可能的解决方案是将复杂问题分解为多个步骤,这在推理任务中很常见。
#### 2.判断能力
人类能够判定一个编程问题是否被解决。当前模型不论输入什么都会给出答案,而且该答案正确与否都不能确定,这在实际应用中会存在一定的问题。目前为了提高 LLM 的判断能力,需要根据用户反馈采用强化学习的方式进行调优。我们认为探索 LLM 自我判断能力,也是一个比较重要的研究方向。
#### 3.解释能力
人类开发人员能够解释他们编写的代码这对教育的和软件维护至关重要。最近的研究表明LLM 具有自动生成代码解释的潜力。作者认为针对该能力也需要进一步的研究和探索,以充分发挥 LLM 在这方面的潜力。
#### 4. 自适应能力
当前的大型语言模型与人类之间的一个根本区别是它们适应新知识和更新知识的能力。人类开发人员能够根据文档资料实现 API 的快速开发,而 LLM 需要大量的知识和训练。我们认为如何提高 LLM 快速自学习能力也是一个比较大挑战。
#### 5. 多任务处理能力
大型语言模型已应用于各种与代码相关的任务例如代码修复代码搜索和代码审查以及可以以类代码形式格式化的非代码任务方式例如数学和化学。然而LLM 和人类之间在多任务处理方面的能力存在差异。人类可以在任务之间无缝切换,而 LLM 可能需要复杂的提示工程。另一个证据是 LLM 缺乏能够像人类一样快速掌握多种编程语言。这些局限性揭示了未来研究的方向。
*由于篇幅有限,对原文有所删减,参考文章链接没有列出,有兴趣的读者可以阅读原文。*

Просмотреть файл

@ -0,0 +1,178 @@
## 17.6 基于测试用例生成的代码生成方法
原文标题CODET: Code Generation with Generated Tests
原文链接https://arxiv.org/pdf/2207.10397.pdf
原文作者:
```txt
· Bei Chen, Microsoft Research Beijing China, beichen@microsoft.com
· Fengji Zhang, v-fengjzhang@microsoft.com
· Anh Nguyen, anhnguyen@microsoft.com
· Daoguang Zan, v-dazan@microsoft.com
· Zeqi Lin, Microsoft Research Beijing China, zeqi.lin@microsoft.com
· Jian-Guang Lou, Microsoft Research Beijing China, jlou@microsoft.com
· Weizhu Chen, wzchen@microsoft.com
```
主要作者简介:
陈蓓,微软亚洲研究院主管研究员。博士毕业于清华大学计算机系,师从张钹院士及朱军教授。她的研究兴趣主要为自然语言处理、大规模语言模型及其应用,例如语义解析、对话系统、代码智能等。在领域顶级会议如 NeurIPSICLRACLEMNLPIJCAIAAAIKDD 等发表论文 30 余篇。近年来在语言模型与软件工程交叉领域发表多篇论文,包括代码生成,代码修复等任务。
### 摘要
得益于预训练语言模型如 CodeX 等的发展我们能够为给定的编程问题自动生成代码代码解决方案以下简称为“代码解”。一般来说预训练语言模型会生成多个不同的代码解而从中选择出最为准确的代码解仍然是一个很大的挑战例如pass@100 通常比 pass@1 高很多)。验证一个代码解准确性最简单的方法是使用一组测试用例来执行它。然而,人工构建这样的测试用例是费时费力的。本报告旨在探索这样一个问题:预训练语言模型可以进行自我验证吗?我们提出了一个有趣的方法 CODET它能够利用相同的预训练语言模型为代码解生成多个测试用例从而降低人工成本。CODET 将生成的多个代码解在测试用例上执行,并进行双向执行一致性判断,从而挑选出最为准确的代码解。我们使用 5 个不同大小和能力的预训练语言模型,在 4 个有名的代码生成数据集上做了试验。试验结果证实 CODET 能够极大地提升代码生成的性能,其中 CODET 将 HumanEval 数据集的 pass@1 分数提升至 65.8%,比现有最高分数还要高 20+%。
### 17.6.1 引言
尽管代码生成的预训练技术取得了显着进步但从大型语言模型生成的多个候选者中选择正确的代码解仍然是一个难题。例如CodeX一种最先进的代码预训练语言模型生成可以实现 pass@100如果给定的 100 个生成的代码解中有一个或多个可以通过相应的测试用例)为 77.4%,但在 HumanEval 基准上的 pass@1单个代码解的正确率仅为 33.5%。这个巨大的差距限制了代码生成模型的实用性,并激励我们探索如何选择正确的或多个候选的最佳代码解。
验证代码解正确性的一种直接方法是执行代码并检查它是否通过所有相应的测试用例。这种以执行为导向的方法已在各种领域得到广泛采用与代码相关的任务,例如代码生成、代码翻译、和程序合成。然而,这种方法在很大程度上依赖于测试用例的质量和数量,而这通常是昂贵的创建和维护非常耗时。此外,在像 Copilot2 这样的真实应用中,辅助开发者编写代码的代码生成工具,指望用户提供每个问题的测试用例是不现实的。因此,我们建议自动生成任意编程问题的测试用例,并使用它们快速验证任何代码解。
<img src="img/17-6-1.SVG">
图 17-6 CODET 协议
在本文中,我们提出了 CODET 协议,如图 17-6 所示。首先,我们利用相同的预训练语言模型生成代码解,例如 CodeX通过提供详细说明作为提示为每个编程问题生成大量测试用例。接下来受经典 RANSAC 算法启发使用双向执行协议Dual Execution Agreement和测试用例在每个生成的代码解上运行测试用例并迭代地找到多组代码解和测试用例对。每组代码都能通过相同的测试用例表明它们具有相同的功能即使它们在实现上不同。我们期望能通过更多测试用例的代码解是更正确的并且具有更多相似的代码解比如同一共识集中的代码解与问题描述更一致。因此我们根据其中的测试用例和代码解的数量对每个共识集进行排名并从排名最高的共识集中选择最佳代码解。
这种方法简单高效,因为它不需要任何标记数据或额外的排序器,但它实现了令人惊讶的卓越性能。我们在五个预训练语言模型使用这种方法做评估:三个 OpenAI CodeX 模型INCODER 和 CODEGEN以及四个已建立的代码生成基准HumanEval、MBPP、APPS 和 CodeContests。试验结果表明该方法可以有效地从多个候选者中选择正确的代码解提高了 pass@1 在所有基准测试中的得分。例如CODET 实现了使用 code-davinci-002 的改进HumanEval (47.0% → 65.8%)MBPP (58.1% → 67.7%)APPS (27.2% → 34.6%) 和 CodeContests (0.7% → 2.1%)。此外,当我们将最强大的预训练模型 code-davinci-002 和 CODET 结合起来,大幅领先于之前最先进的方法,例如 HumanEval42.7% → 65.8%。
### 17.6.2 方法
代码生成的任务是解决一个编程问题:在上下文 $c$ 中生成代码 $x$。 如图 17-7 所示,上下文 $c$ 中包含自然语言问题描述代码注释的形式,以及包含 imports 和 function 等语句的代码片段标头。通常,我们采样一组代码解,表示为 $X = \{x_1, x_2, ..., x_N \}$,基于在上下文 $c$ 上使用预训练的语言模型 $M$,可以表示为 $X = M(c)$。我们的目标是从一组生成的代码解 $X$ 中选择最佳代码解 $\hat{x}$,其中 $\hat{x}$ 是正确解决给定编程问题的最有可能的代码解。为此,我们提出 CODET希望利用预训练语言模型 $M$ 的力量。具体来说,我们使用 $M$ 为编程问题生成测试用例17.6.1-1然后根据双向执行协议选择最佳代码解 $\hat{x}$17.6.2-2
<img src="img/17-6-2.SVG">
图 17-7 代码生成与测试用例生成
#### 1. 测试用例生成
除了生成代码解,还需要生成测试用例来评估其正确性。测试用例是定义在上下文函数中的一对输入和预期输出。例如,在图 17-7 中,测试用例列表中是否存在小于阈值的近似值。为了生成测试用例,我们使用与生成代码解相同的预训练语言模型 $M$,但我们添加了一条指令 $p$ 到上下文 $c$ 作为提示,表明需要测试用例而不是代码解。指令 $p$ 由三部分组成:
1一个“pass”语句作为占位符这表明不需要为函数生成代码。
2一条注释语句“检查入口点的正确性”以阐明生成测试用例的意图其中“入口点”是函数的名称。
(3) 一条“assert”语句启动测试用例生成指定测试用例的格式为输入-输出对。
然后,我们将连接的上下文和指令 $concat(c, p)$ 提供给语言模型 $M$,并从模型输出中抽取一组测试用例,表示为 $Y = \{y_1, y_2, ..., y_M\}$。测试用例的生成过程可以表示为 $Y = M(concat(c, p))$。语言模型会尝试通过为函数生成合理的输入输出对来完成指令。注意在生成代码解之前,我们从上下文 $c$ 中删除所有示例输入输出案例,以避免将真实的测试用例暴露给语言模型,并增加多样性和生成的测试用例的难度。
#### 2. 双向执行协议
在本小节中将解释如何使用生成的测试用例集 $Y = \{y_1, y_2, ..., y_M\}$ 作为一个标准从生成的代码集 $X = \{x_1, x_2,..., x_N \}$ 中选择最佳代码解 $x$。我们可以在测试用例 $y$ 上执行代码解 $x$,这意味着使用 $y$ 的输入运行由 $x$ 定义的函数,并将输出与 $y$ 的输出部分进行比较。如果代码解 $x$ 可以无错误地执行并且输出与预期输出匹配,那么代码解 $x$ 可以通过测试用例 $y$。此外,两个代码解 $x_i$ 和 $x_j$ 如果可以通过 $Y$ 中的同一组测试用例,则认为它们之间有一个功能协议(即两个函数的实现不同但具有相同的功能)。我们的方法基于以下假设:
1给定某个编程问题代码解和测试用例是独立的并且是从预训练语言模型 $M$ 中随机抽样的。
2不正确的代码解往往是多种多样的并且在两个错误代码解之间具有功能协议的出现概率非常低。
这些假设是类似于经典的 RANSAC 算法,这是一个稳健的在嘈杂数据中找到共识的方法。受 RANSAC 的启发,我们提出了我们的方法 CODET 执行双向执行协议,这是一种迭代方法,如下所示:
- 从所有可能的 $D = \{(x, y)|x ∈ X, y ∈Y\}$ 中随机选择 $(x,y)$。然后尝试在测试用例 $y$ 上执行代码解 $x$。如果 $x$ 可以通过 $y$,那么我们说 $(x, y)$ 对是一个假设解hypothetical inlier直译为假设的内点因为它假设地描述了编程问题的正确功能。否则我们说 $(x, y)$ 是异常解,因为它没有描述正确的功能。图 17-8 显示了一个简单的示例编程问题“返回数字的平方”。$(x_1, y_1)$ 和 $(x_3, y_2)$ 是两个假设解,而 $(x_1, y_4)$ 和 $(x_3, y_1)$ 是两个异常解。
<img src="img/17-6-3.SVG">
图 17-8 代码解和测试用例的对应关系
- 如果 $(x, y)$ 是一个假设解,我们从 $D$ 中收集所有与它一致的对,形成一个集合 $S$,称为共识集。为了找到一致的对 $(x, y)$,首先找到 $x$ 可以通过的所有测试用例,记为 $S_y$。然后,我们找到所有可以通过与 $x$ 完全相同的测试用例的代码解,表示为 $S_x$。最后,共识集是包含来自 $S_x$ 的代码解和测试用例的所有对的集合来自 $S_y$,即 $S = \{(x, y)|x ∈ S_x, y ∈ S_y\}$。例如在图 17-8 中,我们可以得到 $S_x = \{x_1, x_2\}, S_y = \{y_1, y_2, y_3\}$ 来自假设解 $(x_1, y_1)$(上方绿色部分)和 $S_x = \{x_3\}S_y = \{y_2, y_3, y_4, y_5\}$ 来自 $(x_3, y_2)$(下方紫色部分)。
- 我们将共识集评分为 $f(S) = |S_x||S_y|$,其中 $|S_x|$ 是 $S_x$ 中的生成代码数,$|S_y|$ 是 $S_y$ 中的测试用例数。这个分数等于在共识集中的成对的数量。直觉是,与假设一致的对越多,此功能越有可能是正确的。按照图 17-8 中的示例,$(x_1, y_1)$ 的假设共识集分数为 $2 \times 3=6$,因为 $|S_x| = |\{x_1, x_2\}|=2$$|S_y| = |\{y_1, y_2, y_3\}|=3$;而 $(x_3, y_2)$ 的假设分数为 $1\times4=4$,因为 $|S_x| = |\{x_3\}|=1$$|S_y| = |\{y_2, y_3, y_4, y_5\}|=4$。
我们重复上述过程某个次数,每次产生一个共识集和它的分数。最后,通过从共识中选择有最高分的任意代码解来获得最佳代码解 $\hat{x}$。如果我们想要获得 $k$ 个代码解,我们可以选择 Top $k$ 个得分最高的集合,并从 $k$ 个共识集合中的每一个中挑选一个代码解。
实际中,当 $D$ 中的代码解数不多时,我们可以简化上面的方法通过检查 $D$ 中所有可能的对,而不是从 $D$ 中采样。特别地,对于每个代码解 $x ∈ X$,我们运行 $Y$ 中的每个测试用例,并跟踪它通过了哪些测试用例。将通过相同测试用例的代码解组合在一起,因为它们具有相同的功能。这样将 $X$ 中的所有代码解分成几组,记作 $X = \{S^1_x, S^2_x,···,S^K_x \}$,其中 $K$ 是代码解组的数量。每个组 $S_x$ 都有一个集合,是它通过的测试用例的数量,我们将其写为 $S_y$。然后,我们得到 $K$ 个共识集,每个共识集都有形式 $S = \{(x, y)|x ∈ S_x, y ∈ S_y\}$。我们可以对由 $f(S) = |S_x||S_y|$ 设置的每个共识进行评分,如前。这个朴素的版本捕捉到了相同的下线直觉,但发现所有共识集都是正确的,无需重复采样。
### 17.6.3 试验步骤
#### 1. 模型
我们的试验基于 CodeX、INCODER 和 CODEGEN。
- CodeX 是 GPT-3 的后代,并且能够理解所提供的上下文并生成功能程序。我们用三个 OpenAI 提供的具有不同功能的 CodeX 模型code-cushman-001、code-davinci-001 和 code-davinci-002。
- INCODER 是一个统一的生成模型,可以执行从左到右代码生成和代码填充,使用 INCODER 6.7B 版本 (INCODER 6B)。
- 而 CODEGEN 是一个大型语言模型家族执行会话程序合成,使用 16B 的单语版本 (CODEGEN-MONO-16B)。
#### 2. 指标和基线
我们使用 pass@k有 $n$ 个样本)进行性能评估和利用真实测试用例来确定代码解的功能正确性。对于每个问题,我们采样 $n$ 个代码解,然后选择其中的 $k$ 个进行评估。如果有的话 $k$ 个代码解中的一个通过了所有地面实况测试用例,则认为问题已解决。然后 pass@k 是已解决问题的百分比。我们使用 pass@k 的无偏定义作为我们的基准,其中 $k$ 个代码解是从 $n$ 个样本中随机选取的。CODET 使用双向执行协议机制从 $n$ 个样本中选择 $k$ 个代码解。此外,我们还使用包括了 Li 等人的聚类方法作为比较,表示为 AlphaCode-C。我们的复制是使用 CODET 生成的测试输入,在测试输入,按测试输出对代码解进行分组,并按大小对集群进行排序。
#### 3. 基准
我们对四个公共代码生成基准进行了试验。基准的统计数据如表 17-16 所示。
表 17-16 统计基准
<img src="img/17-6-1Table.png" height=180>
(1) HumanEval 由手写的 Python 编程问题组成。原始上下文包括示例输入输出案例,这些案例在我们的试验中被删除以避免暴露真实的测试案例。附录 B 中的试验表明,这种去除操作是合理且必不可少的。
(2) MBPP 包含众包 Python 编程问题,我们遵循 HumanEval 为其构建上下文。
(3) APPS 包括从开放访问编码网站收集的编码问题,这些网站有不同的难度级别。
(4) CodeContests 包括从 Codeforces 平台上抓取的竞争性编程问题。
为了启用零样本推理,我们为 APPS 和 CodeContests 构建上下文如下原始问题描述为被视为删除输入输出示例的注释以及一个简单的函数头“def solution(stdin : str) → str :” 放置在注释之后以容纳输入/输出数据格式。
### 17.6.4 试验结果
在本节中,我们在五个不同的预训练模型和四个基准上评估 CODET 验证其有效性,然后通过测试用例分析和案例研究提供更多的发现。
#### 1. HumanEval 和 MBPP 的结果
各种模型在 HumanEval 和 MBPP 基准上的试验结果总结在表 17-17 中。如果我们比较基准列上的 pass@100 和 pass@1前者明显优于后者表明选择最佳代码解的潜力来自 100 个生成的样本。
表 17-17 HumanEval 和 MBPP 试验结果
<img src="img/17-6-2Table.png">
对于三个 CodeX 模型,当我们将 CODET 列与基准列进行比较时CODET pass@1 比基线 pass@1 实现了大约 10% 的绝对改进。HumanEval 的改进始终超过 10%。令人惊讶的是即使是最强的基线code-davinci-002改进为 18.8%,将 pass@1 提高到 65.8%,这比之前报告的最佳结果绝对改进了 20+%。我们将此归因于对 code-davinci-002 生成的更高质量的测试用例进行了更大的改进,提供了在第 17.6.4-3 节中进行更深入的分析。CODET 在 MBPP 基准测试中也取得了卓越的性能,尽管改进幅度略小于 HumanEval。使用以 code-davinci-002 为例pass@1 提升了9.6%。我们还报告 pass@2 和通过 CODET 的 pass@10 进一步显示其优越性。CODET 的 pass@2 结果接近基线 pass@10 结果。同时,对 pass@10 的改进也始终高于 HumanEval 基准测试的 10%。
INCODER-6B 和 CODEGEN-MONO-16B 的试验结果进一步验证了 CODET 的有效性。很明显CODET 可以显着提高 pass@1绝对提高范围为 4.2% 到 13.1%。INCODER-6B 实现了最大的改进,比 MBPP 基准上涨 13.1%。与 CodeX 的试验结果相似pass@2 结果接近基线 pass@10。所有结果都表明 CODET 可以提高各种预训练语言模型的性能一致。
至于 AlphaCode-C它在使用不同模型的两个基准测试中始终不如 CODET证明了我们采用测试用例信息的双向执行协议的优越性考虑在内。
#### 2. APPS 和 CodeContests 的结果
我们还在两个更具挑战性的基准测试 APPS 和 CodeContests 上进行了试验。我们构建 APPS 和 CodeContests 的零样本版本,以符合我们对 HumanEval 的设置和 MBPP 通过删除问题描述中的示例输入输出案例。我们使用 code-davinci-002 用于代码解和测试用例生成。APPS 采样数设置为 50 以节省计算成本,一共 5000 个测试问题上。而对于 CodeContests采样数设置为 1000 以解决特别难的问题。结果总结在表 17-18 中,我们可以清楚地观察到一致的性能改进在使用 CODET 的两个基准测试中。APPS 中的问题的 pass@1 改进为 7.4%而对于竞争基本问题APPS 和 CodeContest 改进并不大。此外,我们注意到代码-davinci-002由于这两个基准的难度更高。
表 17-18 APPS 和 CodeContests 的试验结果
<img src="img/17-6-3Table.png">
#### 3. 测试用例分析
测试用例对 CODET 至关重要,因为其核心思想是基于测试驱动的执行协议。因此,在本小节中,我们通过回答以下研究问题来分析测试用例。
**1Q1生成的测试用例的质量如何**
我们使用规范代码解评估生成的测试用例的正确性。一个测试用例是如果规范代码解可以通过它,则认为是正确的。图 17-9a 总结了分布 HumanEval 上的测试用例准确度,其中横轴表示每个的准确度值问题,纵轴表示对应问题的概率密度精度值。我们可以看到 CodeX 模型生成的测试用例要高得多,准确率高于 CODEGEN/INCODER。除了准确率我们还引入了测试用例毒性率作为质量的衡量标准。如果任何生成的代码解都可以我们认为测试用例是“有毒的”通过它而规范的代码解不能。有毒的测试用例可能会阻碍共识的评分设置并导致 CODET 失败。如图 17-9b 所示,我们可以发现毒性率与不同模型的测试用例准确性高度相关,其中比例 CodeX 模型的毒性测试用例数量小于CODEGEN/INCODER。我们还评估了使用附录 H.2 中的两个覆盖标准生成的测试用例的代码覆盖,其中 CodeX 模型仍然优于 CODEGEN/INCODER平均覆盖率超过 95%。比较表 17-7 所示的测试用例质量和 CODET 的性能,我们可以发现质量测试用例的数量与使用关于不同模型的 CODET 的性能增益密切相关。
<img src="img/17-6-4a.SVG" height=220>
<img src="img/17-6-4b.SVG" height=220>
图 17-9 测试用例准确率与毒性率
**2Q2更好的测试用例能否进一步提升平庸模型的性能**
从上面与图 17-9 的讨论,可以发现 code-davinci-002 是最有能力的生成高质量测试用例的模型。因此,我们进行了一项试验,通过使用 code-davinci-002 生成的测试用例以提高其他四种模型code-cushman-001、ode-davinci-001、INCODER 和 CODEGEN的性能。表 17-19 总结了性能改进是基于 HumanEval 和 MBPP 基准的不同模型。一般来说,使用测试 code-davinci-002 生成的案例可以显着提高使用测试的性能由能力较差的模型本身生成的案例。对于 code-cushman-001 和 code-davinci-001pass@1 的绝对改进在 1.8% 到 4.3% 之间,而对于 INCODER 和 CODEGEN范围从 6.2% 到 15.9%。以上结果表明正确的代码通过采用更好的测试用例,可以进一步利用平庸模型生成的代码解。
表 17-19 使用 code-davinci-002 生成的测试用例的代码解性能
<img src="img/17-6-4Table.png">
**3Q3当测试用例较少时CODET 的效果如何?**
在为 HumanEval 基准生成测试用例时,我们对每个问题抽样 100 次每个样本可能包括多个断言语句即测试用例记为Sampling Number = 100。然后我们提取第一个来自每个样本的 5 个句法正确的测试用例表示为as Limit = 5. 这意味着每个问题都配备了最多 500 个测试用例。提取测试的实际数量案例总结在附录 H.1 中。我们通过减少采样数和限制来对测试用例的数量进行消融研究。如表 17-20 所示,我们可以得出结论,在 CODET 中使用更多的测试用例通常可以导致更好的性能,而当 Sampling Number ≥ 50 且 Limit ≥ 3 时性能差距缩小。此外CODET 将 pass@1 提高了 9.5%,仅 10测试用例使用 code-davinci-002建议高考案例效率。我们可以在中使用较小的采样数实际应用程序以平衡性能和计算成本。
表 17-20 较少的测试用例时的 CODET 方法的性能
<img src="img/17-6-5Table.png" height=180>
#### 4. 案例研究
在 CODET 中,我们基于好的代码解可以通过最多的测试用例并同意最多的相同功能的代码解。我们使用“双”因为代码解和测试用例都很关键。图 17-10a 显示了一个案例使用 code-cushman-001 的 HumanEval 基准测试。得分最高的共识集具有正确的如果列表中的所有数字都低于阈值 t则返回 true 的功能,而共识集排在第 2 位的人并没有完全理解边界条件。第二次共识中的代码解共识集可以通过比第一个共识集(即 218更多的测试用例即 226。然而考虑到代码解和测试用例CODET 可以成功地对共识集进行排名,并且找到正确的代码解。这种情况并不少见,说明我们设计的双向执行协议的合理性。为了进一步的统计证明,我们进行了一项消融研究来评分通过仅考虑代码解或测试用例的数量来达成共识。
<img src="img/17-6-5a.SVG" height=240>
<img src="img/17-6-5b.SVG" height=240>
图 17-10 案例
CODET 由预训练的语言模型赋能,但也受到它们的限制。所以,第 2.2 节中的第二个假设并不总是成立导致错误情况8个生成了正确的代码解但不在前 1 个共识集中。对于在 HumanEval 基准测试中代码为 cushman-001 的 CODET我们发现 164 个编程问题中有 53 个是属于这种情况。我们手动调查了这些问题,发现其中 20% 可以被归咎于诸如问题描述不明确、角落案例未被发现和缺乏导入语句,而其余问题归因于模型的失败理解问题描述。图 5b 显示了由歧义引起的错误情况。这正确理解描述“sum(first index value, last index value)”是把第一个加起来和最后一个值,而将所有值从第一个到最后一个求和的代码解排名第一。
*由于篇幅有限,对原文有所删减,参考文章链接没有列出,有兴趣的读者可以阅读原文。*

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 311 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 176 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 286 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 120 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 60 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 79 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 319 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 224 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 12 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 76 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 22 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 277 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 24 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 99 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 101 KiB

Просмотреть файл

@ -0,0 +1,113 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="501.84pt" height="288pt" viewBox="0 0 501.84 288">
<defs>
<clipPath id="clip_0">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.45 56H473.71504V271.8H65.45Z"/>
</clipPath>
<clipPath id="clip_1">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.45 56H473.71504V271.8H65.45Z"/>
</clipPath>
<clipPath id="clip_2">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.45 56H473.71504V271.8H65.45Z"/>
</clipPath>
<clipPath id="clip_3">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.45 56H473.71504V271.8H65.45Z"/>
</clipPath>
<clipPath id="clip_4">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.45 56H473.71504V271.8H65.45Z"/>
</clipPath>
</defs>
<path transform="matrix(1,0,0,-1,0,288)" d="M0 0H501.84V288H0Z" fill="#ffffff"/>
<path transform="matrix(1,0,0,-1,65.45,232)" d="M0 0H408.265V215.8H0Z" fill="#ffffff"/>
<g clip-path="url(#clip_0)">
<path transform="matrix(1,0,0,-1,-47.2402,231.1736)" d="M0 0V-.826H3.184 6.368 9.552 12.737 15.921 19.105 22.289 25.473 28.657 31.841 35.026 38.21 41.394 44.578 47.762 50.946 54.131 57.315 60.499 63.683 66.867 70.051 73.235 76.42 79.604 82.788 85.972 89.156 92.34 95.524 98.709 101.893 105.077 108.261 111.445 114.629 117.813 120.998 124.182 127.366 130.55 133.734 136.918 140.102 143.287 146.471 149.655 152.839 156.023 159.207 162.392 165.576 168.76 171.944 175.128 178.312 181.496 184.681 187.865 191.049 194.233 197.417 200.601 203.785 206.97 210.154 213.338 216.522 219.706 222.89 226.074 229.259 232.443 235.627 238.811 241.995 245.179 248.364 251.548 254.732 257.916 261.1 264.284 267.468 270.653 273.837 277.021 280.205 283.389 286.573 289.757 292.942 296.126 299.31 302.494 305.678 308.862 312.046 315.231 318.415 321.599 324.783 327.967 331.151 334.336 337.52 340.704 343.888 347.072 350.256 353.44 356.625 359.809 362.993 366.177 369.361 372.545 375.729 378.914 382.098 385.282 388.466 391.65 394.834 398.018 401.203 404.387 407.571 410.755 413.939 417.123 420.307 423.492 426.676 429.86 433.044 436.228 439.412 442.597 445.781 448.965 452.149 455.333 458.517 461.701 464.886 468.07 471.254 474.438 477.622 480.806 483.99 487.175 490.359 493.543 496.727 499.911 503.095 506.279 509.464 512.648 515.832 519.016 522.2 525.384 528.568 531.753 534.937 538.121 541.305 544.489 547.673 550.858 554.042 557.226 560.41 563.594 566.778 569.962 573.147 576.331 579.515 582.699 585.883 589.067 592.251 595.436 598.62 601.804 604.988 608.172 611.356 614.54 617.725 620.909 624.093 627.277 630.461 633.645V-.767L630.461-.75 627.277-.729 624.093-.702 620.909-.669 617.725-.629 614.54-.581 611.356-.522 608.172-.452 604.988-.37 601.804-.273 598.62-.16 595.436-.029 592.251 .121 589.067 .291 585.883 .484 582.699 .699 579.515 .939 576.331 1.202 573.147 1.49 569.962 1.802 566.778 2.138 563.594 2.495 560.41 2.874 557.226 3.272 554.042 3.687 550.858 4.116 547.673 4.557 544.489 5.007 541.305 5.464 538.121 5.927 534.937 6.391 531.753 6.858 528.568 7.325 525.384 7.792 522.2 8.26 519.016 8.731 515.832 9.206 512.648 9.688 509.464 10.181 506.279 10.688 503.095 11.214 499.911 11.764 496.727 12.341 493.543 12.952 490.359 13.599 487.175 14.288 483.99 15.022 480.806 15.803 477.622 16.635 474.438 17.518 471.254 18.454 468.07 19.444 464.886 20.487 461.701 21.584 458.517 22.732 455.333 23.932 452.149 25.183 448.965 26.482 445.781 27.829 442.597 29.222 439.412 30.66 436.228 32.141 433.044 33.664 429.86 35.226 426.676 36.825 423.492 38.457 420.307 40.12 417.123 41.809 413.939 43.518 410.755 45.241 407.571 46.972 404.387 48.704 401.203 50.429 398.018 52.138 394.834 53.824 391.65 55.479 388.466 57.095 385.282 58.664 382.098 60.181 378.914 61.642 375.729 63.041 372.545 64.378 369.361 65.65 366.177 66.86 362.993 68.009 359.809 69.101 356.625 70.142 353.44 71.137 350.256 72.094 347.072 73.023 343.888 73.931 340.704 74.829 337.52 75.726 334.336 76.632 331.151 77.558 327.967 78.511 324.783 79.502 321.599 80.538 318.415 81.627 315.231 82.774 312.046 83.984 308.862 85.261 305.678 86.607 302.494 88.023 299.31 89.506 296.126 91.053 292.942 92.661 289.757 94.322 286.573 96.027 283.389 97.766 280.205 99.528 277.021 101.3 273.837 103.066 270.653 104.813 267.468 106.525 264.284 108.186 261.1 109.781 257.916 111.295 254.732 112.715 251.548 114.029 248.364 115.227 245.179 116.3 241.995 117.244 238.811 118.055 235.627 118.734 232.443 119.281 229.259 119.704 226.074 120.009 222.89 120.207 219.706 120.312 216.522 120.336 213.338 120.297 210.154 120.212 206.97 120.099 203.785 119.977 200.601 119.864 197.417 119.778 194.233 119.736 191.049 119.753 187.865 119.841 184.681 120.011 181.496 120.27 178.312 120.62 175.128 121.061 171.944 121.587 168.76 122.187 165.576 122.844 162.392 123.537 159.207 124.24 156.023 124.921 152.839 125.544 149.655 126.069 146.471 126.453 143.287 126.653 140.102 126.623 136.918 126.32 133.734 125.702 130.55 124.732 127.366 123.377 124.182 121.613 120.998 119.422 117.813 116.794 114.629 113.732 111.445 110.243 108.261 106.35 105.077 102.08 101.893 97.472 98.709 92.571 95.524 87.428 92.34 82.099 89.156 76.643 85.972 71.12 82.788 65.591 79.604 60.114 76.42 54.743 73.235 49.529 70.051 44.515 66.867 39.738 63.683 35.231 60.499 31.015 57.315 27.108 54.131 23.518 50.946 20.248 47.762 17.296 44.578 14.652 41.394 12.304 38.21 10.237 35.026 8.432 31.841 6.869 28.657 5.525 25.473 4.38 22.289 3.412 19.105 2.6 15.921 1.925 12.737 1.367 9.552 .91 6.368 .539 3.184 .24 0 0Z" fill="#9467bd" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-47.2402,231.1736)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#9467bd" d="M0 0V-.826H3.184 6.368 9.552 12.737 15.921 19.105 22.289 25.473 28.657 31.841 35.026 38.21 41.394 44.578 47.762 50.946 54.131 57.315 60.499 63.683 66.867 70.051 73.235 76.42 79.604 82.788 85.972 89.156 92.34 95.524 98.709 101.893 105.077 108.261 111.445 114.629 117.813 120.998 124.182 127.366 130.55 133.734 136.918 140.102 143.287 146.471 149.655 152.839 156.023 159.207 162.392 165.576 168.76 171.944 175.128 178.312 181.496 184.681 187.865 191.049 194.233 197.417 200.601 203.785 206.97 210.154 213.338 216.522 219.706 222.89 226.074 229.259 232.443 235.627 238.811 241.995 245.179 248.364 251.548 254.732 257.916 261.1 264.284 267.468 270.653 273.837 277.021 280.205 283.389 286.573 289.757 292.942 296.126 299.31 302.494 305.678 308.862 312.046 315.231 318.415 321.599 324.783 327.967 331.151 334.336 337.52 340.704 343.888 347.072 350.256 353.44 356.625 359.809 362.993 366.177 369.361 372.545 375.729 378.914 382.098 385.282 388.466 391.65 394.834 398.018 401.203 404.387 407.571 410.755 413.939 417.123 420.307 423.492 426.676 429.86 433.044 436.228 439.412 442.597 445.781 448.965 452.149 455.333 458.517 461.701 464.886 468.07 471.254 474.438 477.622 480.806 483.99 487.175 490.359 493.543 496.727 499.911 503.095 506.279 509.464 512.648 515.832 519.016 522.2 525.384 528.568 531.753 534.937 538.121 541.305 544.489 547.673 550.858 554.042 557.226 560.41 563.594 566.778 569.962 573.147 576.331 579.515 582.699 585.883 589.067 592.251 595.436 598.62 601.804 604.988 608.172 611.356 614.54 617.725 620.909 624.093 627.277 630.461 633.645V-.767L630.461-.75 627.277-.729 624.093-.702 620.909-.669 617.725-.629 614.54-.581 611.356-.522 608.172-.452 604.988-.37 601.804-.273 598.62-.16 595.436-.029 592.251 .121 589.067 .291 585.883 .484 582.699 .699 579.515 .939 576.331 1.202 573.147 1.49 569.962 1.802 566.778 2.138 563.594 2.495 560.41 2.874 557.226 3.272 554.042 3.687 550.858 4.116 547.673 4.557 544.489 5.007 541.305 5.464 538.121 5.927 534.937 6.391 531.753 6.858 528.568 7.325 525.384 7.792 522.2 8.26 519.016 8.731 515.832 9.206 512.648 9.688 509.464 10.181 506.279 10.688 503.095 11.214 499.911 11.764 496.727 12.341 493.543 12.952 490.359 13.599 487.175 14.288 483.99 15.022 480.806 15.803 477.622 16.635 474.438 17.518 471.254 18.454 468.07 19.444 464.886 20.487 461.701 21.584 458.517 22.732 455.333 23.932 452.149 25.183 448.965 26.482 445.781 27.829 442.597 29.222 439.412 30.66 436.228 32.141 433.044 33.664 429.86 35.226 426.676 36.825 423.492 38.457 420.307 40.12 417.123 41.809 413.939 43.518 410.755 45.241 407.571 46.972 404.387 48.704 401.203 50.429 398.018 52.138 394.834 53.824 391.65 55.479 388.466 57.095 385.282 58.664 382.098 60.181 378.914 61.642 375.729 63.041 372.545 64.378 369.361 65.65 366.177 66.86 362.993 68.009 359.809 69.101 356.625 70.142 353.44 71.137 350.256 72.094 347.072 73.023 343.888 73.931 340.704 74.829 337.52 75.726 334.336 76.632 331.151 77.558 327.967 78.511 324.783 79.502 321.599 80.538 318.415 81.627 315.231 82.774 312.046 83.984 308.862 85.261 305.678 86.607 302.494 88.023 299.31 89.506 296.126 91.053 292.942 92.661 289.757 94.322 286.573 96.027 283.389 97.766 280.205 99.528 277.021 101.3 273.837 103.066 270.653 104.813 267.468 106.525 264.284 108.186 261.1 109.781 257.916 111.295 254.732 112.715 251.548 114.029 248.364 115.227 245.179 116.3 241.995 117.244 238.811 118.055 235.627 118.734 232.443 119.281 229.259 119.704 226.074 120.009 222.89 120.207 219.706 120.312 216.522 120.336 213.338 120.297 210.154 120.212 206.97 120.099 203.785 119.977 200.601 119.864 197.417 119.778 194.233 119.736 191.049 119.753 187.865 119.841 184.681 120.011 181.496 120.27 178.312 120.62 175.128 121.061 171.944 121.587 168.76 122.187 165.576 122.844 162.392 123.537 159.207 124.24 156.023 124.921 152.839 125.544 149.655 126.069 146.471 126.453 143.287 126.653 140.102 126.623 136.918 126.32 133.734 125.702 130.55 124.732 127.366 123.377 124.182 121.613 120.998 119.422 117.813 116.794 114.629 113.732 111.445 110.243 108.261 106.35 105.077 102.08 101.893 97.472 98.709 92.571 95.524 87.428 92.34 82.099 89.156 76.643 85.972 71.12 82.788 65.591 79.604 60.114 76.42 54.743 73.235 49.529 70.051 44.515 66.867 39.738 63.683 35.231 60.499 31.015 57.315 27.108 54.131 23.518 50.946 20.248 47.762 17.296 44.578 14.652 41.394 12.304 38.21 10.237 35.026 8.432 31.841 6.869 28.657 5.525 25.473 4.38 22.289 3.412 19.105 2.6 15.921 1.925 12.737 1.367 9.552 .91 6.368 .539 3.184 .24 0 0Z"/>
</g>
<g clip-path="url(#clip_1)">
<path transform="matrix(1,0,0,-1,-19.8195,231.6069)" d="M0 0V-.393H2.366 4.731 7.097 9.463 11.828 14.194 16.559 18.925 21.291 23.656 26.022 28.388 30.753 33.119 35.484 37.85 40.216 42.581 44.947 47.313 49.678 52.044 54.409 56.775 59.141 61.506 63.872 66.238 68.603 70.969 73.334 75.7 78.066 80.431 82.797 85.163 87.528 89.894 92.259 94.625 96.991 99.356 101.722 104.088 106.453 108.819 111.185 113.55 115.916 118.281 120.647 123.013 125.378 127.744 130.11 132.475 134.841 137.206 139.572 141.938 144.303 146.669 149.035 151.4 153.766 156.131 158.497 160.863 163.228 165.594 167.96 170.325 172.691 175.056 177.422 179.788 182.153 184.519 186.885 189.25 191.616 193.981 196.347 198.713 201.078 203.444 205.81 208.175 210.541 212.907 215.272 217.638 220.003 222.369 224.735 227.1 229.466 231.832 234.197 236.563 238.928 241.294 243.66 246.025 248.391 250.757 253.122 255.488 257.853 260.219 262.585 264.95 267.316 269.682 272.047 274.413 276.778 279.144 281.51 283.875 286.241 288.607 290.972 293.338 295.703 298.069 300.435 302.8 305.166 307.532 309.897 312.263 314.629 316.994 319.36 321.725 324.091 326.457 328.822 331.188 333.554 335.919 338.285 340.65 343.016 345.382 347.747 350.113 352.479 354.844 357.21 359.575 361.941 364.307 366.672 369.038 371.404 373.769 376.135 378.5 380.866 383.232 385.597 387.963 390.329 392.694 395.06 397.425 399.791 402.157 404.522 406.888 409.254 411.619 413.985 416.35 418.716 421.082 423.447 425.813 428.179 430.544 432.91 435.276 437.641 440.007 442.372 444.738 447.104 449.469 451.835 454.201 456.566 458.932 461.297 463.663 466.029 468.394 470.76V-.335L468.394-.317 466.029-.295 463.663-.268 461.297-.233 458.932-.19 456.566-.138 454.201-.074 451.835 .004 449.469 .097 447.104 .209 444.738 .342 442.372 .5 440.007 .684 437.641 .898 435.276 1.147 432.91 1.432 430.544 1.758 428.179 2.129 425.813 2.547 423.447 3.015 421.082 3.537 418.716 4.116 416.35 4.753 413.985 5.451 411.619 6.211 409.254 7.035 406.888 7.923 404.522 8.876 402.157 9.893 399.791 10.973 397.425 12.117 395.06 13.322 392.694 14.588 390.329 15.911 387.963 17.291 385.597 18.725 383.232 20.211 380.866 21.746 378.5 23.328 376.135 24.954 373.769 26.621 371.404 28.327 369.038 30.068 366.672 31.841 364.307 33.643 361.941 35.468 359.575 37.315 357.21 39.177 354.844 41.05 352.479 42.93 350.113 44.812 347.747 46.69 345.382 48.559 343.016 50.415 340.65 52.253 338.285 54.069 335.919 55.859 333.554 57.62 331.188 59.349 328.822 61.045 326.457 62.707 324.091 64.334 321.725 65.927 319.36 67.486 316.994 69.014 314.629 70.513 312.263 71.983 309.897 73.428 307.532 74.848 305.166 76.247 302.8 77.624 300.435 78.98 298.069 80.315 295.703 81.627 293.338 82.916 290.972 84.178 288.607 85.409 286.241 86.607 283.875 87.768 281.51 88.887 279.144 89.96 276.778 90.984 274.413 91.955 272.047 92.872 269.682 93.733 267.316 94.539 264.95 95.289 262.585 95.988 260.219 96.639 257.853 97.247 255.488 97.819 253.122 98.363 250.757 98.888 248.391 99.403 246.025 99.92 243.66 100.447 241.294 100.998 238.928 101.581 236.563 102.209 234.197 102.891 231.832 103.638 229.466 104.458 227.1 105.359 224.735 106.349 222.369 107.435 220.003 108.623 217.638 109.917 215.272 111.323 212.907 112.844 210.541 114.484 208.175 116.246 205.81 118.134 203.444 120.149 201.078 122.294 198.713 124.572 196.347 126.985 193.981 129.533 191.616 132.218 189.25 135.04 186.885 137.997 184.519 141.086 182.153 144.303 179.788 147.641 177.422 151.091 175.056 154.64 172.691 158.275 170.325 161.976 167.96 165.723 165.594 169.49 163.228 173.25 160.863 176.972 158.497 180.621 156.131 184.162 153.766 187.557 151.4 190.767 149.035 193.751 146.669 196.469 144.303 198.883 141.938 200.954 139.572 202.646 137.206 203.926 134.841 204.763 132.475 205.131 130.11 205.007 127.744 204.374 125.378 203.22 123.013 201.535 120.647 199.318 118.281 196.57 115.916 193.3 113.55 189.521 111.185 185.25 108.819 180.509 106.453 175.325 104.088 169.731 101.722 163.76 99.356 157.452 96.991 150.849 94.625 143.994 92.259 136.936 89.894 129.722 87.528 122.402 85.163 115.026 82.797 107.645 80.431 100.306 78.066 93.058 75.7 85.945 73.334 79.01 70.969 72.293 68.603 65.826 66.238 59.643 63.872 53.767 61.506 48.219 59.141 43.016 56.775 38.167 54.409 33.678 52.044 29.549 49.678 25.776 47.313 22.353 44.947 19.266 42.581 16.501 40.216 14.042 37.85 11.869 35.484 9.963 33.119 8.301 30.753 6.862 28.388 5.625 26.022 4.568 23.656 3.672 21.291 2.918 18.925 2.286 16.559 1.762 14.194 1.33 11.828 .975 9.463 .687 7.097 .454 4.731 .267 2.366 .118 0 0Z" fill="#d62728" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-19.8195,231.6069)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#d62728" d="M0 0V-.393H2.366 4.731 7.097 9.463 11.828 14.194 16.559 18.925 21.291 23.656 26.022 28.388 30.753 33.119 35.484 37.85 40.216 42.581 44.947 47.313 49.678 52.044 54.409 56.775 59.141 61.506 63.872 66.238 68.603 70.969 73.334 75.7 78.066 80.431 82.797 85.163 87.528 89.894 92.259 94.625 96.991 99.356 101.722 104.088 106.453 108.819 111.185 113.55 115.916 118.281 120.647 123.013 125.378 127.744 130.11 132.475 134.841 137.206 139.572 141.938 144.303 146.669 149.035 151.4 153.766 156.131 158.497 160.863 163.228 165.594 167.96 170.325 172.691 175.056 177.422 179.788 182.153 184.519 186.885 189.25 191.616 193.981 196.347 198.713 201.078 203.444 205.81 208.175 210.541 212.907 215.272 217.638 220.003 222.369 224.735 227.1 229.466 231.832 234.197 236.563 238.928 241.294 243.66 246.025 248.391 250.757 253.122 255.488 257.853 260.219 262.585 264.95 267.316 269.682 272.047 274.413 276.778 279.144 281.51 283.875 286.241 288.607 290.972 293.338 295.703 298.069 300.435 302.8 305.166 307.532 309.897 312.263 314.629 316.994 319.36 321.725 324.091 326.457 328.822 331.188 333.554 335.919 338.285 340.65 343.016 345.382 347.747 350.113 352.479 354.844 357.21 359.575 361.941 364.307 366.672 369.038 371.404 373.769 376.135 378.5 380.866 383.232 385.597 387.963 390.329 392.694 395.06 397.425 399.791 402.157 404.522 406.888 409.254 411.619 413.985 416.35 418.716 421.082 423.447 425.813 428.179 430.544 432.91 435.276 437.641 440.007 442.372 444.738 447.104 449.469 451.835 454.201 456.566 458.932 461.297 463.663 466.029 468.394 470.76V-.335L468.394-.317 466.029-.295 463.663-.268 461.297-.233 458.932-.19 456.566-.138 454.201-.074 451.835 .004 449.469 .097 447.104 .209 444.738 .342 442.372 .5 440.007 .684 437.641 .898 435.276 1.147 432.91 1.432 430.544 1.758 428.179 2.129 425.813 2.547 423.447 3.015 421.082 3.537 418.716 4.116 416.35 4.753 413.985 5.451 411.619 6.211 409.254 7.035 406.888 7.923 404.522 8.876 402.157 9.893 399.791 10.973 397.425 12.117 395.06 13.322 392.694 14.588 390.329 15.911 387.963 17.291 385.597 18.725 383.232 20.211 380.866 21.746 378.5 23.328 376.135 24.954 373.769 26.621 371.404 28.327 369.038 30.068 366.672 31.841 364.307 33.643 361.941 35.468 359.575 37.315 357.21 39.177 354.844 41.05 352.479 42.93 350.113 44.812 347.747 46.69 345.382 48.559 343.016 50.415 340.65 52.253 338.285 54.069 335.919 55.859 333.554 57.62 331.188 59.349 328.822 61.045 326.457 62.707 324.091 64.334 321.725 65.927 319.36 67.486 316.994 69.014 314.629 70.513 312.263 71.983 309.897 73.428 307.532 74.848 305.166 76.247 302.8 77.624 300.435 78.98 298.069 80.315 295.703 81.627 293.338 82.916 290.972 84.178 288.607 85.409 286.241 86.607 283.875 87.768 281.51 88.887 279.144 89.96 276.778 90.984 274.413 91.955 272.047 92.872 269.682 93.733 267.316 94.539 264.95 95.289 262.585 95.988 260.219 96.639 257.853 97.247 255.488 97.819 253.122 98.363 250.757 98.888 248.391 99.403 246.025 99.92 243.66 100.447 241.294 100.998 238.928 101.581 236.563 102.209 234.197 102.891 231.832 103.638 229.466 104.458 227.1 105.359 224.735 106.349 222.369 107.435 220.003 108.623 217.638 109.917 215.272 111.323 212.907 112.844 210.541 114.484 208.175 116.246 205.81 118.134 203.444 120.149 201.078 122.294 198.713 124.572 196.347 126.985 193.981 129.533 191.616 132.218 189.25 135.04 186.885 137.997 184.519 141.086 182.153 144.303 179.788 147.641 177.422 151.091 175.056 154.64 172.691 158.275 170.325 161.976 167.96 165.723 165.594 169.49 163.228 173.25 160.863 176.972 158.497 180.621 156.131 184.162 153.766 187.557 151.4 190.767 149.035 193.751 146.669 196.469 144.303 198.883 141.938 200.954 139.572 202.646 137.206 203.926 134.841 204.763 132.475 205.131 130.11 205.007 127.744 204.374 125.378 203.22 123.013 201.535 120.647 199.318 118.281 196.57 115.916 193.3 113.55 189.521 111.185 185.25 108.819 180.509 106.453 175.325 104.088 169.731 101.722 163.76 99.356 157.452 96.991 150.849 94.625 143.994 92.259 136.936 89.894 129.722 87.528 122.402 85.163 115.026 82.797 107.645 80.431 100.306 78.066 93.058 75.7 85.945 73.334 79.01 70.969 72.293 68.603 65.826 66.238 59.643 63.872 53.767 61.506 48.219 59.141 43.016 56.775 38.167 54.409 33.678 52.044 29.549 49.678 25.776 47.313 22.353 44.947 19.266 42.581 16.501 40.216 14.042 37.85 11.869 35.484 9.963 33.119 8.301 30.753 6.862 28.388 5.625 26.022 4.568 23.656 3.672 21.291 2.918 18.925 2.286 16.559 1.762 14.194 1.33 11.828 .975 9.463 .687 7.097 .454 4.731 .267 2.366 .118 0 0Z"/>
</g>
<g clip-path="url(#clip_2)">
<path transform="matrix(1,0,0,-1,-57.7631,231.8871)" d="M0 0V-.113H3.286 6.571 9.857 13.142 16.428 19.713 22.999 26.284 29.57 32.856 36.141 39.427 42.712 45.998 49.283 52.569 55.854 59.14 62.426 65.711 68.997 72.282 75.568 78.853 82.139 85.425 88.71 91.996 95.281 98.567 101.852 105.138 108.423 111.709 114.995 118.28 121.566 124.851 128.137 131.422 134.708 137.993 141.279 144.565 147.85 151.136 154.421 157.707 160.992 164.278 167.563 170.849 174.135 177.42 180.706 183.991 187.277 190.562 193.848 197.134 200.419 203.705 206.99 210.276 213.561 216.847 220.132 223.418 226.704 229.989 233.275 236.56 239.846 243.131 246.417 249.702 252.988 256.274 259.559 262.845 266.13 269.416 272.701 275.987 279.272 282.558 285.844 289.129 292.415 295.7 298.986 302.271 305.557 308.842 312.128 315.414 318.699 321.985 325.27 328.556 331.841 335.127 338.413 341.698 344.984 348.269 351.555 354.84 358.126 361.411 364.697 367.983 371.268 374.554 377.839 381.125 384.41 387.696 390.981 394.267 397.553 400.838 404.124 407.409 410.695 413.98 417.266 420.552 423.837 427.123 430.408 433.694 436.979 440.265 443.55 446.836 450.122 453.407 456.693 459.978 463.264 466.549 469.835 473.12 476.406 479.692 482.977 486.263 489.548 492.834 496.119 499.405 502.69 505.976 509.262 512.547 515.833 519.118 522.404 525.689 528.975 532.26 535.546 538.832 542.117 545.403 548.688 551.974 555.259 558.545 561.831 565.116 568.402 571.687 574.973 578.258 581.544 584.829 588.115 591.401 594.686 597.972 601.257 604.543 607.828 611.114 614.399 617.685 620.971 624.256 627.542 630.827 634.113 637.398 640.684 643.969 647.255 650.541 653.826V.024L650.541 .066 647.255 .118 643.969 .185 640.684 .268 637.398 .372 634.113 .501 630.827 .659 627.542 .854 624.256 1.09 620.971 1.376 617.685 1.72 614.399 2.13 611.114 2.618 607.828 3.194 604.543 3.869 601.257 4.655 597.972 5.566 594.686 6.615 591.401 7.815 588.115 9.179 584.829 10.719 581.544 12.448 578.258 14.375 574.973 16.511 571.687 18.862 568.402 21.433 565.116 24.226 561.831 27.241 558.545 30.472 555.259 33.911 551.974 37.548 548.688 41.367 545.403 45.348 542.117 49.468 538.832 53.702 535.546 58.02 532.26 62.391 528.975 66.78 525.689 71.153 522.404 75.475 519.118 79.71 515.833 83.823 512.547 87.783 509.262 91.559 505.976 95.125 502.69 98.456 499.405 101.534 496.119 104.343 492.834 106.875 489.548 109.124 486.263 111.089 482.977 112.773 479.692 114.186 476.406 115.338 473.12 116.244 469.835 116.921 466.549 117.39 463.264 117.67 459.978 117.783 456.693 117.75 453.407 117.593 450.122 117.332 446.836 116.986 443.55 116.572 440.265 116.106 436.979 115.603 433.694 115.072 430.408 114.526 427.123 113.97 423.837 113.411 420.552 112.853 417.266 112.297 413.98 111.745 410.695 111.197 407.409 110.649 404.124 110.099 400.838 109.544 397.553 108.978 394.267 108.397 390.981 107.796 387.696 107.169 384.41 106.51 381.125 105.814 377.839 105.076 374.554 104.293 371.268 103.461 367.983 102.576 364.697 101.639 361.411 100.649 358.126 99.608 354.84 98.518 351.555 97.385 348.269 96.213 344.984 95.011 341.698 93.787 338.413 92.55 335.127 91.311 331.841 90.081 328.556 88.87 325.27 87.689 321.985 86.547 318.699 85.454 315.414 84.416 312.128 83.44 308.842 82.53 305.557 81.686 302.271 80.909 298.986 80.195 295.7 79.54 292.415 78.935 289.129 78.373 285.844 77.842 282.558 77.331 279.272 76.827 275.987 76.319 272.701 75.794 269.416 75.239 266.13 74.645 262.845 74.003 259.559 73.305 256.274 72.547 252.988 71.725 249.702 70.84 246.417 69.892 243.131 68.887 239.846 67.831 236.56 66.731 233.275 65.597 229.989 64.438 226.704 63.267 223.418 62.093 220.132 60.928 216.847 59.782 213.561 58.664 210.276 57.581 206.99 56.54 203.705 55.544 200.419 54.594 197.134 53.692 193.848 52.834 190.562 52.015 187.277 51.231 183.991 50.472 180.706 49.731 177.42 48.995 174.135 48.254 170.849 47.498 167.563 46.714 164.278 45.892 160.992 45.022 157.707 44.095 154.421 43.103 151.136 42.04 147.85 40.903 144.565 39.689 141.279 38.398 137.993 37.032 134.708 35.595 131.422 34.092 128.137 32.532 124.851 30.923 121.566 29.275 118.28 27.6 114.995 25.908 111.709 24.213 108.423 22.527 105.138 20.86 101.852 19.226 98.567 17.634 95.281 16.094 91.996 14.615 88.71 13.205 85.425 11.869 82.139 10.612 78.853 9.437 75.568 8.347 72.282 7.342 68.997 6.421 65.711 5.584 62.426 4.827 59.14 4.147 55.854 3.541 52.569 3.004 49.283 2.531 45.998 2.117 42.712 1.758 39.427 1.447 36.141 1.181 32.856 .954 29.57 .762 26.284 .6 22.999 .465 19.713 .353 16.428 .26 13.142 .185 9.857 .123 6.571 .073 3.286 .032 0 0Z" fill="#2ca02c" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-57.7631,231.8871)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#2ca02c" d="M0 0V-.113H3.286 6.571 9.857 13.142 16.428 19.713 22.999 26.284 29.57 32.856 36.141 39.427 42.712 45.998 49.283 52.569 55.854 59.14 62.426 65.711 68.997 72.282 75.568 78.853 82.139 85.425 88.71 91.996 95.281 98.567 101.852 105.138 108.423 111.709 114.995 118.28 121.566 124.851 128.137 131.422 134.708 137.993 141.279 144.565 147.85 151.136 154.421 157.707 160.992 164.278 167.563 170.849 174.135 177.42 180.706 183.991 187.277 190.562 193.848 197.134 200.419 203.705 206.99 210.276 213.561 216.847 220.132 223.418 226.704 229.989 233.275 236.56 239.846 243.131 246.417 249.702 252.988 256.274 259.559 262.845 266.13 269.416 272.701 275.987 279.272 282.558 285.844 289.129 292.415 295.7 298.986 302.271 305.557 308.842 312.128 315.414 318.699 321.985 325.27 328.556 331.841 335.127 338.413 341.698 344.984 348.269 351.555 354.84 358.126 361.411 364.697 367.983 371.268 374.554 377.839 381.125 384.41 387.696 390.981 394.267 397.553 400.838 404.124 407.409 410.695 413.98 417.266 420.552 423.837 427.123 430.408 433.694 436.979 440.265 443.55 446.836 450.122 453.407 456.693 459.978 463.264 466.549 469.835 473.12 476.406 479.692 482.977 486.263 489.548 492.834 496.119 499.405 502.69 505.976 509.262 512.547 515.833 519.118 522.404 525.689 528.975 532.26 535.546 538.832 542.117 545.403 548.688 551.974 555.259 558.545 561.831 565.116 568.402 571.687 574.973 578.258 581.544 584.829 588.115 591.401 594.686 597.972 601.257 604.543 607.828 611.114 614.399 617.685 620.971 624.256 627.542 630.827 634.113 637.398 640.684 643.969 647.255 650.541 653.826V.024L650.541 .066 647.255 .118 643.969 .185 640.684 .268 637.398 .372 634.113 .501 630.827 .659 627.542 .854 624.256 1.09 620.971 1.376 617.685 1.72 614.399 2.13 611.114 2.618 607.828 3.194 604.543 3.869 601.257 4.655 597.972 5.566 594.686 6.615 591.401 7.815 588.115 9.179 584.829 10.719 581.544 12.448 578.258 14.375 574.973 16.511 571.687 18.862 568.402 21.433 565.116 24.226 561.831 27.241 558.545 30.472 555.259 33.911 551.974 37.548 548.688 41.367 545.403 45.348 542.117 49.468 538.832 53.702 535.546 58.02 532.26 62.391 528.975 66.78 525.689 71.153 522.404 75.475 519.118 79.71 515.833 83.823 512.547 87.783 509.262 91.559 505.976 95.125 502.69 98.456 499.405 101.534 496.119 104.343 492.834 106.875 489.548 109.124 486.263 111.089 482.977 112.773 479.692 114.186 476.406 115.338 473.12 116.244 469.835 116.921 466.549 117.39 463.264 117.67 459.978 117.783 456.693 117.75 453.407 117.593 450.122 117.332 446.836 116.986 443.55 116.572 440.265 116.106 436.979 115.603 433.694 115.072 430.408 114.526 427.123 113.97 423.837 113.411 420.552 112.853 417.266 112.297 413.98 111.745 410.695 111.197 407.409 110.649 404.124 110.099 400.838 109.544 397.553 108.978 394.267 108.397 390.981 107.796 387.696 107.169 384.41 106.51 381.125 105.814 377.839 105.076 374.554 104.293 371.268 103.461 367.983 102.576 364.697 101.639 361.411 100.649 358.126 99.608 354.84 98.518 351.555 97.385 348.269 96.213 344.984 95.011 341.698 93.787 338.413 92.55 335.127 91.311 331.841 90.081 328.556 88.87 325.27 87.689 321.985 86.547 318.699 85.454 315.414 84.416 312.128 83.44 308.842 82.53 305.557 81.686 302.271 80.909 298.986 80.195 295.7 79.54 292.415 78.935 289.129 78.373 285.844 77.842 282.558 77.331 279.272 76.827 275.987 76.319 272.701 75.794 269.416 75.239 266.13 74.645 262.845 74.003 259.559 73.305 256.274 72.547 252.988 71.725 249.702 70.84 246.417 69.892 243.131 68.887 239.846 67.831 236.56 66.731 233.275 65.597 229.989 64.438 226.704 63.267 223.418 62.093 220.132 60.928 216.847 59.782 213.561 58.664 210.276 57.581 206.99 56.54 203.705 55.544 200.419 54.594 197.134 53.692 193.848 52.834 190.562 52.015 187.277 51.231 183.991 50.472 180.706 49.731 177.42 48.995 174.135 48.254 170.849 47.498 167.563 46.714 164.278 45.892 160.992 45.022 157.707 44.095 154.421 43.103 151.136 42.04 147.85 40.903 144.565 39.689 141.279 38.398 137.993 37.032 134.708 35.595 131.422 34.092 128.137 32.532 124.851 30.923 121.566 29.275 118.28 27.6 114.995 25.908 111.709 24.213 108.423 22.527 105.138 20.86 101.852 19.226 98.567 17.634 95.281 16.094 91.996 14.615 88.71 13.205 85.425 11.869 82.139 10.612 78.853 9.437 75.568 8.347 72.282 7.342 68.997 6.421 65.711 5.584 62.426 4.827 59.14 4.147 55.854 3.541 52.569 3.004 49.283 2.531 45.998 2.117 42.712 1.758 39.427 1.447 36.141 1.181 32.856 .954 29.57 .762 26.284 .6 22.999 .465 19.713 .353 16.428 .26 13.142 .185 9.857 .123 6.571 .073 3.286 .032 0 0Z"/>
</g>
<g clip-path="url(#clip_3)">
<path transform="matrix(1,0,0,-1,-54.1006,231.832)" d="M0 0V-.168H3.24 6.479 9.719 12.959 16.198 19.438 22.678 25.917 29.157 32.397 35.636 38.876 42.116 45.355 48.595 51.835 55.074 58.314 61.554 64.793 68.033 71.272 74.512 77.752 80.991 84.231 87.471 90.71 93.95 97.19 100.429 103.669 106.909 110.148 113.388 116.628 119.867 123.107 126.347 129.586 132.826 136.066 139.305 142.545 145.785 149.024 152.264 155.504 158.743 161.983 165.223 168.462 171.702 174.942 178.181 181.421 184.661 187.9 191.14 194.379 197.619 200.859 204.098 207.338 210.578 213.817 217.057 220.297 223.536 226.776 230.016 233.255 236.495 239.735 242.974 246.214 249.454 252.693 255.933 259.173 262.412 265.652 268.892 272.131 275.371 278.611 281.85 285.09 288.33 291.569 294.809 298.049 301.288 304.528 307.768 311.007 314.247 317.487 320.726 323.966 327.206 330.445 333.685 336.924 340.164 343.404 346.643 349.883 353.123 356.362 359.602 362.842 366.081 369.321 372.561 375.8 379.04 382.28 385.519 388.759 391.999 395.238 398.478 401.718 404.957 408.197 411.437 414.676 417.916 421.156 424.395 427.635 430.875 434.114 437.354 440.594 443.833 447.073 450.312 453.552 456.792 460.031 463.271 466.511 469.75 472.99 476.23 479.469 482.709 485.949 489.188 492.428 495.668 498.907 502.147 505.387 508.626 511.866 515.106 518.345 521.585 524.825 528.064 531.304 534.544 537.783 541.023 544.263 547.502 550.742 553.982 557.221 560.461 563.701 566.94 570.18 573.419 576.659 579.899 583.138 586.378 589.618 592.857 596.097 599.337 602.576 605.816 609.056 612.295 615.535 618.775 622.014 625.254 628.494 631.733 634.973 638.213 641.452 644.692V-.121L641.452-.107 638.213-.09 634.973-.068 631.733-.041 628.494-.007 625.254 .035 622.014 .086 618.775 .148 615.535 .222 612.295 .313 609.056 .42 605.816 .548 602.576 .7 599.337 .878 596.097 1.086 592.857 1.329 589.618 1.61 586.378 1.934 583.138 2.305 579.899 2.729 576.659 3.211 573.419 3.755 570.18 4.369 566.94 5.057 563.701 5.826 560.461 6.682 557.221 7.63 553.982 8.677 550.742 9.829 547.502 11.091 544.263 12.469 541.023 13.969 537.783 15.594 534.544 17.35 531.304 19.238 528.064 21.262 524.825 23.422 521.585 25.718 518.345 28.148 515.106 30.708 511.866 33.392 508.626 36.192 505.387 39.099 502.147 42.098 498.907 45.177 495.668 48.317 492.428 51.5 489.188 54.703 485.949 57.905 482.709 61.08 479.469 64.205 476.23 67.253 472.99 70.199 469.75 73.018 466.511 75.687 463.271 78.184 460.031 80.49 456.792 82.59 453.552 84.469 450.312 86.118 447.073 87.533 443.833 88.711 440.594 89.656 437.354 90.373 434.114 90.874 430.875 91.173 427.635 91.286 424.395 91.234 421.156 91.037 417.916 90.719 414.676 90.303 411.437 89.815 408.197 89.278 404.957 88.715 401.718 88.147 398.478 87.594 395.238 87.074 391.999 86.601 388.759 86.189 385.519 85.846 382.28 85.581 379.04 85.397 375.8 85.298 372.561 85.283 369.321 85.35 366.081 85.498 362.842 85.721 359.602 86.016 356.362 86.376 353.123 86.796 349.883 87.271 346.643 87.795 343.404 88.364 340.164 88.973 336.924 89.619 333.685 90.296 330.445 91.003 327.206 91.735 323.966 92.49 320.726 93.263 317.487 94.053 314.247 94.854 311.007 95.663 307.768 96.474 304.528 97.285 301.288 98.088 298.049 98.879 294.809 99.653 291.569 100.404 288.33 101.128 285.09 101.82 281.85 102.475 278.611 103.09 275.371 103.662 272.131 104.19 268.892 104.67 265.652 105.102 262.412 105.487 259.173 105.822 255.933 106.109 252.693 106.348 249.454 106.538 246.214 106.681 242.974 106.774 239.735 106.819 236.495 106.813 233.255 106.756 230.016 106.644 226.776 106.476 223.536 106.249 220.297 105.959 217.057 105.603 213.817 105.176 210.578 104.676 207.338 104.098 204.098 103.439 200.859 102.693 197.619 101.858 194.379 100.929 191.14 99.904 187.9 98.778 184.661 97.548 181.421 96.211 178.181 94.764 174.942 93.205 171.702 91.53 168.462 89.739 165.223 87.829 161.983 85.799 158.743 83.651 155.504 81.384 152.264 79.001 149.024 76.505 145.785 73.901 142.545 71.195 139.305 68.394 136.066 65.509 132.826 62.549 129.586 59.528 126.347 56.459 123.107 53.358 119.867 50.24 116.628 47.121 113.388 44.02 110.148 40.954 106.909 37.939 103.669 34.992 100.429 32.128 97.19 29.363 93.95 26.708 90.71 24.175 87.471 21.775 84.231 19.513 80.991 17.395 77.752 15.426 74.512 13.605 71.272 11.934 68.033 10.408 64.793 9.026 61.554 7.78 58.314 6.666 55.074 5.675 51.835 4.8 48.595 4.033 45.355 3.363 42.116 2.784 38.876 2.285 35.636 1.859 32.397 1.497 29.157 1.192 25.917 .936 22.678 .723 19.438 .547 16.198 .402 12.959 .284 9.719 .188 6.479 .111 3.24 .049 0 0Z" fill="#ff7f0e" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-54.1006,231.832)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#ff7f0e" d="M0 0V-.168H3.24 6.479 9.719 12.959 16.198 19.438 22.678 25.917 29.157 32.397 35.636 38.876 42.116 45.355 48.595 51.835 55.074 58.314 61.554 64.793 68.033 71.272 74.512 77.752 80.991 84.231 87.471 90.71 93.95 97.19 100.429 103.669 106.909 110.148 113.388 116.628 119.867 123.107 126.347 129.586 132.826 136.066 139.305 142.545 145.785 149.024 152.264 155.504 158.743 161.983 165.223 168.462 171.702 174.942 178.181 181.421 184.661 187.9 191.14 194.379 197.619 200.859 204.098 207.338 210.578 213.817 217.057 220.297 223.536 226.776 230.016 233.255 236.495 239.735 242.974 246.214 249.454 252.693 255.933 259.173 262.412 265.652 268.892 272.131 275.371 278.611 281.85 285.09 288.33 291.569 294.809 298.049 301.288 304.528 307.768 311.007 314.247 317.487 320.726 323.966 327.206 330.445 333.685 336.924 340.164 343.404 346.643 349.883 353.123 356.362 359.602 362.842 366.081 369.321 372.561 375.8 379.04 382.28 385.519 388.759 391.999 395.238 398.478 401.718 404.957 408.197 411.437 414.676 417.916 421.156 424.395 427.635 430.875 434.114 437.354 440.594 443.833 447.073 450.312 453.552 456.792 460.031 463.271 466.511 469.75 472.99 476.23 479.469 482.709 485.949 489.188 492.428 495.668 498.907 502.147 505.387 508.626 511.866 515.106 518.345 521.585 524.825 528.064 531.304 534.544 537.783 541.023 544.263 547.502 550.742 553.982 557.221 560.461 563.701 566.94 570.18 573.419 576.659 579.899 583.138 586.378 589.618 592.857 596.097 599.337 602.576 605.816 609.056 612.295 615.535 618.775 622.014 625.254 628.494 631.733 634.973 638.213 641.452 644.692V-.121L641.452-.107 638.213-.09 634.973-.068 631.733-.041 628.494-.007 625.254 .035 622.014 .086 618.775 .148 615.535 .222 612.295 .313 609.056 .42 605.816 .548 602.576 .7 599.337 .878 596.097 1.086 592.857 1.329 589.618 1.61 586.378 1.934 583.138 2.305 579.899 2.729 576.659 3.211 573.419 3.755 570.18 4.369 566.94 5.057 563.701 5.826 560.461 6.682 557.221 7.63 553.982 8.677 550.742 9.829 547.502 11.091 544.263 12.469 541.023 13.969 537.783 15.594 534.544 17.35 531.304 19.238 528.064 21.262 524.825 23.422 521.585 25.718 518.345 28.148 515.106 30.708 511.866 33.392 508.626 36.192 505.387 39.099 502.147 42.098 498.907 45.177 495.668 48.317 492.428 51.5 489.188 54.703 485.949 57.905 482.709 61.08 479.469 64.205 476.23 67.253 472.99 70.199 469.75 73.018 466.511 75.687 463.271 78.184 460.031 80.49 456.792 82.59 453.552 84.469 450.312 86.118 447.073 87.533 443.833 88.711 440.594 89.656 437.354 90.373 434.114 90.874 430.875 91.173 427.635 91.286 424.395 91.234 421.156 91.037 417.916 90.719 414.676 90.303 411.437 89.815 408.197 89.278 404.957 88.715 401.718 88.147 398.478 87.594 395.238 87.074 391.999 86.601 388.759 86.189 385.519 85.846 382.28 85.581 379.04 85.397 375.8 85.298 372.561 85.283 369.321 85.35 366.081 85.498 362.842 85.721 359.602 86.016 356.362 86.376 353.123 86.796 349.883 87.271 346.643 87.795 343.404 88.364 340.164 88.973 336.924 89.619 333.685 90.296 330.445 91.003 327.206 91.735 323.966 92.49 320.726 93.263 317.487 94.053 314.247 94.854 311.007 95.663 307.768 96.474 304.528 97.285 301.288 98.088 298.049 98.879 294.809 99.653 291.569 100.404 288.33 101.128 285.09 101.82 281.85 102.475 278.611 103.09 275.371 103.662 272.131 104.19 268.892 104.67 265.652 105.102 262.412 105.487 259.173 105.822 255.933 106.109 252.693 106.348 249.454 106.538 246.214 106.681 242.974 106.774 239.735 106.819 236.495 106.813 233.255 106.756 230.016 106.644 226.776 106.476 223.536 106.249 220.297 105.959 217.057 105.603 213.817 105.176 210.578 104.676 207.338 104.098 204.098 103.439 200.859 102.693 197.619 101.858 194.379 100.929 191.14 99.904 187.9 98.778 184.661 97.548 181.421 96.211 178.181 94.764 174.942 93.205 171.702 91.53 168.462 89.739 165.223 87.829 161.983 85.799 158.743 83.651 155.504 81.384 152.264 79.001 149.024 76.505 145.785 73.901 142.545 71.195 139.305 68.394 136.066 65.509 132.826 62.549 129.586 59.528 126.347 56.459 123.107 53.358 119.867 50.24 116.628 47.121 113.388 44.02 110.148 40.954 106.909 37.939 103.669 34.992 100.429 32.128 97.19 29.363 93.95 26.708 90.71 24.175 87.471 21.775 84.231 19.513 80.991 17.395 77.752 15.426 74.512 13.605 71.272 11.934 68.033 10.408 64.793 9.026 61.554 7.78 58.314 6.666 55.074 5.675 51.835 4.8 48.595 4.033 45.355 3.363 42.116 2.784 38.876 2.285 35.636 1.859 32.397 1.497 29.157 1.192 25.917 .936 22.678 .723 19.438 .547 16.198 .402 12.959 .284 9.719 .188 6.479 .111 3.24 .049 0 0Z"/>
</g>
<g clip-path="url(#clip_4)">
<path transform="matrix(1,0,0,-1,-45.4862,231.8651)" d="M0 0V-.135H3.093 6.186 9.279 12.371 15.464 18.557 21.65 24.743 27.836 30.928 34.021 37.114 40.207 43.3 46.393 49.485 52.578 55.671 58.764 61.857 64.95 68.042 71.135 74.228 77.321 80.414 83.507 86.599 89.692 92.785 95.878 98.971 102.064 105.156 108.249 111.342 114.435 117.528 120.621 123.713 126.806 129.899 132.992 136.085 139.178 142.27 145.363 148.456 151.549 154.642 157.735 160.827 163.92 167.013 170.106 173.199 176.292 179.385 182.477 185.57 188.663 191.756 194.849 197.942 201.034 204.127 207.22 210.313 213.406 216.499 219.591 222.684 225.777 228.87 231.963 235.056 238.148 241.241 244.334 247.427 250.52 253.613 256.705 259.798 262.891 265.984 269.077 272.17 275.262 278.355 281.448 284.541 287.634 290.727 293.819 296.912 300.005 303.098 306.191 309.284 312.376 315.469 318.562 321.655 324.748 327.841 330.934 334.026 337.119 340.212 343.305 346.398 349.491 352.583 355.676 358.769 361.862 364.955 368.048 371.14 374.233 377.326 380.419 383.512 386.605 389.697 392.79 395.883 398.976 402.069 405.162 408.254 411.347 414.44 417.533 420.626 423.719 426.811 429.904 432.997 436.09 439.183 442.276 445.368 448.461 451.554 454.647 457.74 460.833 463.925 467.018 470.111 473.204 476.297 479.39 482.482 485.575 488.668 491.761 494.854 497.947 501.039 504.132 507.225 510.318 513.411 516.504 519.596 522.689 525.782 528.875 531.968 535.061 538.154 541.246 544.339 547.432 550.525 553.618 556.711 559.803 562.896 565.989 569.082 572.175 575.268 578.36 581.453 584.546 587.639 590.732 593.825 596.917 600.01 603.103 606.196 609.289 612.382 615.474V-.061L612.382-.039 609.289-.01 606.196 .026 603.103 .071 600.01 .127 596.917 .197 593.825 .283 590.732 .389 587.639 .517 584.546 .673 581.453 .86 578.36 1.083 575.268 1.349 572.175 1.663 569.082 2.031 565.989 2.461 562.896 2.96 559.803 3.534 556.711 4.193 553.618 4.943 550.525 5.791 547.432 6.746 544.339 7.814 541.246 9 538.154 10.311 535.061 11.749 531.968 13.318 528.875 15.019 525.782 16.851 522.689 18.813 519.596 20.898 516.504 23.102 513.411 25.416 510.318 27.829 507.225 30.328 504.132 32.899 501.039 35.525 497.947 38.19 494.854 40.873 491.761 43.556 488.668 46.219 485.575 48.842 482.482 51.404 479.39 53.889 476.297 56.279 473.204 58.558 470.111 60.713 467.018 62.734 463.925 64.613 460.833 66.344 457.74 67.925 454.647 69.357 451.554 70.642 448.461 71.787 445.368 72.8 442.276 73.69 439.183 74.469 436.09 75.149 432.997 75.744 429.904 76.267 426.811 76.732 423.719 77.152 420.626 77.537 417.533 77.901 414.44 78.252 411.347 78.599 408.254 78.949 405.162 79.309 402.069 79.683 398.976 80.075 395.883 80.487 392.79 80.923 389.697 81.383 386.605 81.869 383.512 82.383 380.419 82.925 377.326 83.498 374.233 84.103 371.14 84.743 368.048 85.418 364.955 86.133 361.862 86.889 358.769 87.689 355.676 88.537 352.583 89.434 349.491 90.383 346.398 91.385 343.305 92.441 340.212 93.552 337.119 94.716 334.026 95.931 330.934 97.195 327.841 98.504 324.748 99.85 321.655 101.229 318.562 102.631 315.469 104.047 312.376 105.468 309.284 106.881 306.191 108.274 303.098 109.635 300.005 110.95 296.912 112.207 293.819 113.391 290.727 114.491 287.634 115.494 284.541 116.39 281.448 117.168 278.355 117.821 275.262 118.342 272.17 118.726 269.077 118.972 265.984 119.078 262.891 119.048 259.798 118.885 256.705 118.595 253.613 118.188 250.52 117.672 247.427 117.06 244.334 116.364 241.241 115.599 238.148 114.778 235.056 113.917 231.963 113.028 228.87 112.125 225.777 111.221 222.684 110.326 219.591 109.447 216.499 108.593 213.406 107.766 210.313 106.969 207.22 106.199 204.127 105.453 201.034 104.724 197.942 104.003 194.849 103.278 191.756 102.537 188.663 101.765 185.57 100.945 182.477 100.062 179.385 99.098 176.292 98.038 173.199 96.864 170.106 95.564 167.013 94.123 163.92 92.533 160.827 90.783 157.735 88.868 154.642 86.786 151.549 84.536 148.456 82.122 145.363 79.548 142.27 76.825 139.178 73.963 136.085 70.976 132.992 67.88 129.899 64.693 126.806 61.434 123.713 58.125 120.621 54.785 117.528 51.437 114.435 48.101 111.342 44.8 108.249 41.551 105.156 38.375 102.064 35.289 98.971 32.309 95.878 29.447 92.785 26.717 89.692 24.127 86.599 21.686 83.507 19.398 80.414 17.266 77.321 15.293 74.228 13.476 71.135 11.814 68.042 10.302 64.95 8.935 61.857 7.707 58.764 6.61 55.671 5.636 52.578 4.777 49.485 4.023 46.393 3.366 43.3 2.797 40.207 2.307 37.114 1.887 34.021 1.531 30.928 1.229 27.836 .976 24.743 .765 21.65 .589 18.557 .445 15.464 .326 12.371 .23 9.279 .152 6.186 .09 3.093 .04 0 0Z" fill="#1f77b4" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-45.4862,231.8651)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#1f77b4" d="M0 0V-.135H3.093 6.186 9.279 12.371 15.464 18.557 21.65 24.743 27.836 30.928 34.021 37.114 40.207 43.3 46.393 49.485 52.578 55.671 58.764 61.857 64.95 68.042 71.135 74.228 77.321 80.414 83.507 86.599 89.692 92.785 95.878 98.971 102.064 105.156 108.249 111.342 114.435 117.528 120.621 123.713 126.806 129.899 132.992 136.085 139.178 142.27 145.363 148.456 151.549 154.642 157.735 160.827 163.92 167.013 170.106 173.199 176.292 179.385 182.477 185.57 188.663 191.756 194.849 197.942 201.034 204.127 207.22 210.313 213.406 216.499 219.591 222.684 225.777 228.87 231.963 235.056 238.148 241.241 244.334 247.427 250.52 253.613 256.705 259.798 262.891 265.984 269.077 272.17 275.262 278.355 281.448 284.541 287.634 290.727 293.819 296.912 300.005 303.098 306.191 309.284 312.376 315.469 318.562 321.655 324.748 327.841 330.934 334.026 337.119 340.212 343.305 346.398 349.491 352.583 355.676 358.769 361.862 364.955 368.048 371.14 374.233 377.326 380.419 383.512 386.605 389.697 392.79 395.883 398.976 402.069 405.162 408.254 411.347 414.44 417.533 420.626 423.719 426.811 429.904 432.997 436.09 439.183 442.276 445.368 448.461 451.554 454.647 457.74 460.833 463.925 467.018 470.111 473.204 476.297 479.39 482.482 485.575 488.668 491.761 494.854 497.947 501.039 504.132 507.225 510.318 513.411 516.504 519.596 522.689 525.782 528.875 531.968 535.061 538.154 541.246 544.339 547.432 550.525 553.618 556.711 559.803 562.896 565.989 569.082 572.175 575.268 578.36 581.453 584.546 587.639 590.732 593.825 596.917 600.01 603.103 606.196 609.289 612.382 615.474V-.061L612.382-.039 609.289-.01 606.196 .026 603.103 .071 600.01 .127 596.917 .197 593.825 .283 590.732 .389 587.639 .517 584.546 .673 581.453 .86 578.36 1.083 575.268 1.349 572.175 1.663 569.082 2.031 565.989 2.461 562.896 2.96 559.803 3.534 556.711 4.193 553.618 4.943 550.525 5.791 547.432 6.746 544.339 7.814 541.246 9 538.154 10.311 535.061 11.749 531.968 13.318 528.875 15.019 525.782 16.851 522.689 18.813 519.596 20.898 516.504 23.102 513.411 25.416 510.318 27.829 507.225 30.328 504.132 32.899 501.039 35.525 497.947 38.19 494.854 40.873 491.761 43.556 488.668 46.219 485.575 48.842 482.482 51.404 479.39 53.889 476.297 56.279 473.204 58.558 470.111 60.713 467.018 62.734 463.925 64.613 460.833 66.344 457.74 67.925 454.647 69.357 451.554 70.642 448.461 71.787 445.368 72.8 442.276 73.69 439.183 74.469 436.09 75.149 432.997 75.744 429.904 76.267 426.811 76.732 423.719 77.152 420.626 77.537 417.533 77.901 414.44 78.252 411.347 78.599 408.254 78.949 405.162 79.309 402.069 79.683 398.976 80.075 395.883 80.487 392.79 80.923 389.697 81.383 386.605 81.869 383.512 82.383 380.419 82.925 377.326 83.498 374.233 84.103 371.14 84.743 368.048 85.418 364.955 86.133 361.862 86.889 358.769 87.689 355.676 88.537 352.583 89.434 349.491 90.383 346.398 91.385 343.305 92.441 340.212 93.552 337.119 94.716 334.026 95.931 330.934 97.195 327.841 98.504 324.748 99.85 321.655 101.229 318.562 102.631 315.469 104.047 312.376 105.468 309.284 106.881 306.191 108.274 303.098 109.635 300.005 110.95 296.912 112.207 293.819 113.391 290.727 114.491 287.634 115.494 284.541 116.39 281.448 117.168 278.355 117.821 275.262 118.342 272.17 118.726 269.077 118.972 265.984 119.078 262.891 119.048 259.798 118.885 256.705 118.595 253.613 118.188 250.52 117.672 247.427 117.06 244.334 116.364 241.241 115.599 238.148 114.778 235.056 113.917 231.963 113.028 228.87 112.125 225.777 111.221 222.684 110.326 219.591 109.447 216.499 108.593 213.406 107.766 210.313 106.969 207.22 106.199 204.127 105.453 201.034 104.724 197.942 104.003 194.849 103.278 191.756 102.537 188.663 101.765 185.57 100.945 182.477 100.062 179.385 99.098 176.292 98.038 173.199 96.864 170.106 95.564 167.013 94.123 163.92 92.533 160.827 90.783 157.735 88.868 154.642 86.786 151.549 84.536 148.456 82.122 145.363 79.548 142.27 76.825 139.178 73.963 136.085 70.976 132.992 67.88 129.899 64.693 126.806 61.434 123.713 58.125 120.621 54.785 117.528 51.437 114.435 48.101 111.342 44.8 108.249 41.551 105.156 38.375 102.064 35.289 98.971 32.309 95.878 29.447 92.785 26.717 89.692 24.127 86.599 21.686 83.507 19.398 80.414 17.266 77.321 15.293 74.228 13.476 71.135 11.814 68.042 10.302 64.95 8.935 61.857 7.707 58.764 6.61 55.671 5.636 52.578 4.777 49.485 4.023 46.393 3.366 43.3 2.797 40.207 2.307 37.114 1.887 34.021 1.531 30.928 1.229 27.836 .976 24.743 .765 21.65 .589 18.557 .445 15.464 .326 12.371 .23 9.279 .152 6.186 .09 3.093 .04 0 0Z"/>
</g>
<path transform="matrix(1,0,0,-1,65.45,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,65.45,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="53.52 63.06 67.83">0.0</tspan></text>
<path transform="matrix(1,0,0,-1,106.2765,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,106.2765,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="94.347 103.887 108.657">0.1</tspan></text>
<path transform="matrix(1,0,0,-1,147.103,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,147.103,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="135.173 144.71302 149.48302">0.2</tspan></text>
<path transform="matrix(1,0,0,-1,187.9295,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,187.9295,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="176 185.54001 190.31002">0.3</tspan></text>
<path transform="matrix(1,0,0,-1,228.756,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,228.756,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="216.826 226.366 231.136">0.4</tspan></text>
<path transform="matrix(1,0,0,-1,269.5825,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,269.5825,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="257.653 267.19303 271.963">0.5</tspan></text>
<path transform="matrix(1,0,0,-1,310.409,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,310.409,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="298.479 308.019 312.789">0.6</tspan></text>
<path transform="matrix(1,0,0,-1,351.2355,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,351.2355,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="339.306 348.846 353.616">0.7</tspan></text>
<path transform="matrix(1,0,0,-1,392.062,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,392.062,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="380.132 389.672 394.442">0.8</tspan></text>
<path transform="matrix(1,0,0,-1,432.8885,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,432.8885,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="420.959 430.49903 435.269">0.9</tspan></text>
<path transform="matrix(1,0,0,-1,473.715,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,473.715,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="461.785 471.325 476.095">1.0</tspan><tspan y="-19.093" x="197.418 204.0361 213.26111 221.07611 226.95612 231.72612 242.19612 251.39113 259.20613 268.43113 273.2011 283.21113 291.46113 299.71113 309.22114 315.38615 324.58116 332.83116">Test Case Accuracy</tspan></text>
<path transform="matrix(1,0,0,-1,65.45,232)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.45,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-50.305" x="34.591 44.131 48.901">0.0</tspan></text>
<path transform="matrix(1,0,0,-1,65.45,186.72101)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.45,186.72101)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-95.584" x="34.591 44.131 48.901">0.1</tspan></text>
<path transform="matrix(1,0,0,-1,65.45,141.4421)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.45,141.4421)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-140.863" x="34.591 44.131 48.901">0.2</tspan></text>
<path transform="matrix(1,0,0,-1,65.45,96.1631)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.45,96.1631)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-186.142" x="34.591 44.131 48.901">0.3</tspan></text>
<path transform="matrix(1,0,0,-1,65.45,50.884096)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.45,50.884096)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-231.421" x="34.591 44.131 48.901">0.4</tspan></text>
<text xml:space="preserve" transform="matrix(0 -1 1 0 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="27.4656" x="60.3453 69.14029 74.977199 84.157199 93.6822 97.852199 107.077198 121.687198 126.4572 135.2522 141.0891 150.2691 159.7941 168.9891 178.5141 182.6841 186.8541 191.0241 196.9041 205.7841 210.55411 222.10411 231.32912 240.83911 248.65412 252.82411 258.7041">Problem Probability Density</tspan></text>
<path transform="matrix(1,0,0,-1,65.45,232)" stroke-width=".8" stroke-linecap="square" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M0 0V215.8"/>
<path transform="matrix(1,0,0,-1,65.45,232)" stroke-width=".8" stroke-linecap="square" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M0 0H408.265"/>
<path transform="matrix(1,0,0,-1,318.7949,53.690599)" d="M0 0H30V10.5H0Z" fill="#1f77b4" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,53.690599)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#1f77b4" d="M0 0H30V10.5H0Z"/>
<path transform="matrix(1,0,0,-1,318.7949,75.7063)" d="M0 0H30V10.5H0Z" fill="#ff7f0e" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,75.7063)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#ff7f0e" d="M0 0H30V10.5H0Z"/>
<path transform="matrix(1,0,0,-1,318.7949,97.72189)" d="M0 0H30V10.5H0Z" fill="#2ca02c" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,97.72189)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#2ca02c" d="M0 0H30V10.5H0Z"/>
<path transform="matrix(1,0,0,-1,318.7949,119.7375)" d="M0 0H30V10.5H0Z" fill="#d62728" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,119.7375)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#d62728" d="M0 0H30V10.5H0Z"/>
<path transform="matrix(1,0,0,-1,318.7949,141.7531)" d="M0 0H30V10.5H0Z" fill="#9467bd" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,141.7531)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#9467bd" d="M0 0H30V10.5H0Z"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-237.783" x="356.843 363.17298 371.498 377.24299 385.49299 398.13798 405.12797 413.61796 418.74797 426.24797 433.74797">cushman-001</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-215.834" x="356.843 365.04798 372.03797 379.01298 383.43797 391.92796 398.25794 402.68293 407.81294 415.31294 422.81294">davinci-001</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-193.552" x="356.51 364.715 371.705 378.68 383.10499 391.59498 397.92497 402.34996 407.47996 414.97996 422.47996">davinci-002</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-169.606" x="356.51">I</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="12" font-family="MinionPro" font-weight="bold"><tspan y="-169.6064" x="362.1802">N</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-169.6064" x="371.0602">C</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="12" font-family="MinionPro" font-weight="bold"><tspan y="-169.6064" x="381.2002 390.39219 399.52418 406.49617">ODER</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-147.805" x="355.845">C</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="12" font-family="MinionPro" font-weight="bold"><tspan y="-147.8046" x="365.9853 375.17729 384.30928">ODE</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-147.8046" x="391.28126">G</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="12" font-family="MinionPro" font-weight="bold"><tspan y="-147.8046" x="402.18626 409.15827">EN</tspan></text>
</svg>

После

Ширина:  |  Высота:  |  Размер: 56 KiB

Просмотреть файл

@ -0,0 +1,107 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="501.84pt" height="288pt" viewBox="0 0 501.84 288">
<defs>
<clipPath id="clip_0">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.54 56H473.67V271.8H65.54Z"/>
</clipPath>
<clipPath id="clip_1">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.54 56H473.67V271.8H65.54Z"/>
</clipPath>
<clipPath id="clip_2">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.54 56H473.67V271.8H65.54Z"/>
</clipPath>
<clipPath id="clip_3">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.54 56H473.67V271.8H65.54Z"/>
</clipPath>
<clipPath id="clip_4">
<path transform="matrix(1,0,0,-1,0,288)" d="M65.54 56H473.67V271.8H65.54Z"/>
</clipPath>
</defs>
<path transform="matrix(1,0,0,-1,0,288)" d="M0 0H501.84V288H0Z" fill="#ffffff"/>
<path transform="matrix(1,0,0,-1,65.54,232)" d="M0 0H408.13V215.8H0Z" fill="#ffffff"/>
<g clip-path="url(#clip_0)">
<path transform="matrix(1,0,0,-1,-21.6654,231.1851)" d="M0 0V-.815H2.472 4.943 7.415 9.886 12.358 14.83 17.301 19.773 22.244 24.716 27.187 29.659 32.131 34.602 37.074 39.545 42.017 44.489 46.96 49.432 51.903 54.375 56.846 59.318 61.79 64.261 66.733 69.204 71.676 74.148 76.619 79.091 81.562 84.034 86.505 88.977 91.449 93.92 96.392 98.863 101.335 103.807 106.278 108.75 111.221 113.693 116.164 118.636 121.108 123.579 126.051 128.522 130.994 133.466 135.937 138.409 140.88 143.352 145.823 148.295 150.767 153.238 155.71 158.181 160.653 163.125 165.596 168.068 170.539 173.011 175.482 177.954 180.426 182.897 185.369 187.84 190.312 192.784 195.255 197.727 200.198 202.67 205.142 207.613 210.085 212.556 215.028 217.499 219.971 222.443 224.914 227.386 229.857 232.329 234.801 237.272 239.744 242.215 244.687 247.158 249.63 252.102 254.573 257.045 259.516 261.988 264.46 266.931 269.403 271.874 274.346 276.817 279.289 281.761 284.232 286.704 289.175 291.647 294.119 296.59 299.062 301.533 304.005 306.476 308.948 311.42 313.891 316.363 318.834 321.306 323.778 326.249 328.721 331.192 333.664 336.135 338.607 341.079 343.55 346.022 348.493 350.965 353.437 355.908 358.38 360.851 363.323 365.794 368.266 370.738 373.209 375.681 378.152 380.624 383.096 385.567 388.039 390.51 392.982 395.454 397.925 400.397 402.868 405.34 407.811 410.283 412.755 415.226 417.698 420.169 422.641 425.113 427.584 430.056 432.527 434.999 437.47 439.942 442.414 444.885 447.357 449.828 452.3 454.772 457.243 459.715 462.186 464.658 467.129 469.601 472.073 474.544 477.016 479.487 481.959 484.431 486.902 489.374 491.845V-.763L489.374-.747 486.902-.727 484.431-.702 481.959-.671 479.487-.633 477.016-.586 474.544-.529 472.073-.46 469.601-.377 467.129-.279 464.658-.164 462.186-.028 459.715 .129 457.243 .31 454.772 .517 452.3 .751 449.828 1.015 447.357 1.309 444.885 1.636 442.414 1.994 439.942 2.385 437.47 2.807 434.999 3.26 432.527 3.742 430.056 4.251 427.584 4.785 425.113 5.34 422.641 5.912 420.169 6.497 417.698 7.093 415.226 7.694 412.755 8.296 410.283 8.895 407.811 9.488 405.34 10.071 402.868 10.643 400.397 11.2 397.925 11.74 395.454 12.264 392.982 12.77 390.51 13.259 388.039 13.73 385.567 14.186 383.096 14.626 380.624 15.053 378.152 15.468 375.681 15.871 373.209 16.265 370.738 16.651 368.266 17.03 365.794 17.403 363.323 17.771 360.851 18.136 358.38 18.5 355.908 18.866 353.437 19.235 350.965 19.613 348.493 20.003 346.022 20.412 343.55 20.846 341.079 21.314 338.607 21.825 336.135 22.389 333.664 23.018 331.192 23.724 328.721 24.519 326.249 25.416 323.778 26.428 321.306 27.567 318.834 28.846 316.363 30.275 313.891 31.862 311.42 33.616 308.948 35.542 306.476 37.642 304.005 39.916 301.533 42.363 299.062 44.976 296.59 47.747 294.119 50.665 291.647 53.714 289.175 56.878 286.704 60.135 284.232 63.464 281.761 66.838 279.289 70.231 276.817 73.614 274.346 76.957 271.874 80.23 269.403 83.403 266.931 86.446 264.46 89.329 261.988 92.026 259.516 94.512 257.045 96.764 254.573 98.765 252.102 100.499 249.63 101.956 247.158 103.131 244.687 104.022 242.215 104.634 239.744 104.975 237.272 105.061 234.801 104.909 232.329 104.542 229.857 103.988 227.386 103.276 224.914 102.437 222.443 101.506 219.971 100.516 217.499 99.502 215.028 98.497 212.556 97.532 210.085 96.636 207.613 95.835 205.142 95.151 202.67 94.601 200.198 94.199 197.727 93.956 195.255 93.875 192.784 93.958 190.312 94.202 187.84 94.601 185.369 95.146 182.897 95.826 180.426 96.628 177.954 97.537 175.482 98.54 173.011 99.622 170.539 100.769 168.068 101.968 165.596 103.208 163.125 104.477 160.653 105.768 158.181 107.072 155.71 108.384 153.238 109.699 150.767 111.013 148.295 112.323 145.823 113.625 143.352 114.918 140.88 116.195 138.409 117.453 135.937 118.685 133.466 119.881 130.994 121.031 128.522 122.12 126.051 123.13 123.579 124.043 121.108 124.834 118.636 125.478 116.164 125.947 113.693 126.209 111.221 126.235 108.75 125.992 106.278 125.449 103.807 124.579 101.335 123.355 98.863 121.756 96.392 119.765 93.92 117.373 91.449 114.576 88.977 111.38 86.505 107.797 84.034 103.848 81.562 99.561 79.091 94.972 76.619 90.123 74.148 85.062 71.676 79.839 69.204 74.51 66.733 69.13 64.261 63.754 61.79 58.436 59.318 53.226 56.846 48.17 54.375 43.31 51.903 38.681 49.432 34.311 46.96 30.223 44.489 26.431 42.017 22.946 39.545 19.769 37.074 16.897 34.602 14.324 32.131 12.038 29.659 10.022 27.187 8.26 24.716 6.733 22.244 5.419 19.773 4.299 17.301 3.351 14.83 2.555 12.358 1.892 9.886 1.344 7.415 .896 4.943 .53 2.472 .236 0 0Z" fill="#9467bd" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-21.6654,231.1851)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#9467bd" d="M0 0V-.815H2.472 4.943 7.415 9.886 12.358 14.83 17.301 19.773 22.244 24.716 27.187 29.659 32.131 34.602 37.074 39.545 42.017 44.489 46.96 49.432 51.903 54.375 56.846 59.318 61.79 64.261 66.733 69.204 71.676 74.148 76.619 79.091 81.562 84.034 86.505 88.977 91.449 93.92 96.392 98.863 101.335 103.807 106.278 108.75 111.221 113.693 116.164 118.636 121.108 123.579 126.051 128.522 130.994 133.466 135.937 138.409 140.88 143.352 145.823 148.295 150.767 153.238 155.71 158.181 160.653 163.125 165.596 168.068 170.539 173.011 175.482 177.954 180.426 182.897 185.369 187.84 190.312 192.784 195.255 197.727 200.198 202.67 205.142 207.613 210.085 212.556 215.028 217.499 219.971 222.443 224.914 227.386 229.857 232.329 234.801 237.272 239.744 242.215 244.687 247.158 249.63 252.102 254.573 257.045 259.516 261.988 264.46 266.931 269.403 271.874 274.346 276.817 279.289 281.761 284.232 286.704 289.175 291.647 294.119 296.59 299.062 301.533 304.005 306.476 308.948 311.42 313.891 316.363 318.834 321.306 323.778 326.249 328.721 331.192 333.664 336.135 338.607 341.079 343.55 346.022 348.493 350.965 353.437 355.908 358.38 360.851 363.323 365.794 368.266 370.738 373.209 375.681 378.152 380.624 383.096 385.567 388.039 390.51 392.982 395.454 397.925 400.397 402.868 405.34 407.811 410.283 412.755 415.226 417.698 420.169 422.641 425.113 427.584 430.056 432.527 434.999 437.47 439.942 442.414 444.885 447.357 449.828 452.3 454.772 457.243 459.715 462.186 464.658 467.129 469.601 472.073 474.544 477.016 479.487 481.959 484.431 486.902 489.374 491.845V-.763L489.374-.747 486.902-.727 484.431-.702 481.959-.671 479.487-.633 477.016-.586 474.544-.529 472.073-.46 469.601-.377 467.129-.279 464.658-.164 462.186-.028 459.715 .129 457.243 .31 454.772 .517 452.3 .751 449.828 1.015 447.357 1.309 444.885 1.636 442.414 1.994 439.942 2.385 437.47 2.807 434.999 3.26 432.527 3.742 430.056 4.251 427.584 4.785 425.113 5.34 422.641 5.912 420.169 6.497 417.698 7.093 415.226 7.694 412.755 8.296 410.283 8.895 407.811 9.488 405.34 10.071 402.868 10.643 400.397 11.2 397.925 11.74 395.454 12.264 392.982 12.77 390.51 13.259 388.039 13.73 385.567 14.186 383.096 14.626 380.624 15.053 378.152 15.468 375.681 15.871 373.209 16.265 370.738 16.651 368.266 17.03 365.794 17.403 363.323 17.771 360.851 18.136 358.38 18.5 355.908 18.866 353.437 19.235 350.965 19.613 348.493 20.003 346.022 20.412 343.55 20.846 341.079 21.314 338.607 21.825 336.135 22.389 333.664 23.018 331.192 23.724 328.721 24.519 326.249 25.416 323.778 26.428 321.306 27.567 318.834 28.846 316.363 30.275 313.891 31.862 311.42 33.616 308.948 35.542 306.476 37.642 304.005 39.916 301.533 42.363 299.062 44.976 296.59 47.747 294.119 50.665 291.647 53.714 289.175 56.878 286.704 60.135 284.232 63.464 281.761 66.838 279.289 70.231 276.817 73.614 274.346 76.957 271.874 80.23 269.403 83.403 266.931 86.446 264.46 89.329 261.988 92.026 259.516 94.512 257.045 96.764 254.573 98.765 252.102 100.499 249.63 101.956 247.158 103.131 244.687 104.022 242.215 104.634 239.744 104.975 237.272 105.061 234.801 104.909 232.329 104.542 229.857 103.988 227.386 103.276 224.914 102.437 222.443 101.506 219.971 100.516 217.499 99.502 215.028 98.497 212.556 97.532 210.085 96.636 207.613 95.835 205.142 95.151 202.67 94.601 200.198 94.199 197.727 93.956 195.255 93.875 192.784 93.958 190.312 94.202 187.84 94.601 185.369 95.146 182.897 95.826 180.426 96.628 177.954 97.537 175.482 98.54 173.011 99.622 170.539 100.769 168.068 101.968 165.596 103.208 163.125 104.477 160.653 105.768 158.181 107.072 155.71 108.384 153.238 109.699 150.767 111.013 148.295 112.323 145.823 113.625 143.352 114.918 140.88 116.195 138.409 117.453 135.937 118.685 133.466 119.881 130.994 121.031 128.522 122.12 126.051 123.13 123.579 124.043 121.108 124.834 118.636 125.478 116.164 125.947 113.693 126.209 111.221 126.235 108.75 125.992 106.278 125.449 103.807 124.579 101.335 123.355 98.863 121.756 96.392 119.765 93.92 117.373 91.449 114.576 88.977 111.38 86.505 107.797 84.034 103.848 81.562 99.561 79.091 94.972 76.619 90.123 74.148 85.062 71.676 79.839 69.204 74.51 66.733 69.13 64.261 63.754 61.79 58.436 59.318 53.226 56.846 48.17 54.375 43.31 51.903 38.681 49.432 34.311 46.96 30.223 44.489 26.431 42.017 22.946 39.545 19.769 37.074 16.897 34.602 14.324 32.131 12.038 29.659 10.022 27.187 8.26 24.716 6.733 22.244 5.419 19.773 4.299 17.301 3.351 14.83 2.555 12.358 1.892 9.886 1.344 7.415 .896 4.943 .53 2.472 .236 0 0Z"/>
</g>
<g clip-path="url(#clip_1)">
<path transform="matrix(1,0,0,-1,-7.3643,231.9414)" d="M0 0V-.059H2.269 4.539 6.808 9.078 11.347 13.617 15.886 18.155 20.425 22.694 24.964 27.233 29.503 31.772 34.041 36.311 38.58 40.85 43.119 45.388 47.658 49.927 52.197 54.466 56.736 59.005 61.274 63.544 65.813 68.083 70.352 72.622 74.891 77.16 79.43 81.699 83.969 86.238 88.508 90.777 93.046 95.316 97.585 99.855 102.124 104.394 106.663 108.932 111.202 113.471 115.741 118.01 120.279 122.549 124.818 127.088 129.357 131.627 133.896 136.165 138.435 140.704 142.974 145.243 147.513 149.782 152.051 154.321 156.59 158.86 161.129 163.399 165.668 167.937 170.207 172.476 174.746 177.015 179.284 181.554 183.823 186.093 188.362 190.632 192.901 195.17 197.44 199.709 201.979 204.248 206.518 208.787 211.056 213.326 215.595 217.865 220.134 222.404 224.673 226.942 229.212 231.481 233.751 236.02 238.29 240.559 242.828 245.098 247.367 249.637 251.906 254.175 256.445 258.714 260.984 263.253 265.523 267.792 270.061 272.331 274.6 276.87 279.139 281.409 283.678 285.947 288.217 290.486 292.756 295.025 297.295 299.564 301.833 304.103 306.372 308.642 310.911 313.181 315.45 317.719 319.989 322.258 324.528 326.797 329.066 331.336 333.605 335.875 338.144 340.414 342.683 344.952 347.222 349.491 351.761 354.03 356.3 358.569 360.838 363.108 365.377 367.647 369.916 372.186 374.455 376.724 378.994 381.263 383.533 385.802 388.072 390.341 392.61 394.88 397.149 399.419 401.688 403.957 406.227 408.496 410.766 413.035 415.305 417.574 419.843 422.113 424.382 426.652 428.921 431.191 433.46 435.729 437.999 440.268 442.538 444.807 447.077 449.346 451.615V-.007L449.346 .01 447.077 .033 444.807 .061 442.538 .097 440.268 .142 437.999 .199 435.729 .269 433.46 .353 431.191 .456 428.921 .58 426.652 .726 424.382 .899 422.113 1.101 419.843 1.333 417.574 1.6 415.305 1.904 413.035 2.245 410.766 2.626 408.496 3.047 406.227 3.509 403.957 4.013 401.688 4.556 399.419 5.139 397.149 5.759 394.88 6.416 392.61 7.107 390.341 7.831 388.072 8.585 385.802 9.37 383.533 10.184 381.263 11.028 378.994 11.902 376.724 12.808 374.455 13.75 372.186 14.729 369.916 15.752 367.647 16.821 365.377 17.943 363.108 19.122 360.838 20.363 358.569 21.671 356.3 23.051 354.03 24.505 351.761 26.037 349.491 27.648 347.222 29.337 344.952 31.105 342.683 32.95 340.414 34.868 338.144 36.856 335.875 38.908 333.605 41.019 331.336 43.181 329.066 45.387 326.797 47.628 324.528 49.896 322.258 52.179 319.989 54.468 317.719 56.752 315.45 59.018 313.181 61.254 310.911 63.447 308.642 65.584 306.372 67.652 304.103 69.636 301.833 71.524 299.564 73.302 297.295 74.959 295.025 76.481 292.756 77.86 290.486 79.088 288.217 80.159 285.947 81.07 283.678 81.821 281.409 82.417 279.139 82.867 276.87 83.183 274.6 83.384 272.331 83.492 270.061 83.533 267.792 83.54 265.523 83.547 263.253 83.591 260.984 83.714 258.714 83.957 256.445 84.359 254.175 84.961 251.906 85.8 249.637 86.908 247.367 88.312 245.098 90.036 242.828 92.093 240.559 94.49 238.29 97.227 236.02 100.294 233.751 103.674 231.481 107.341 229.212 111.262 226.942 115.4 224.673 119.708 222.404 124.138 220.134 128.636 217.865 133.149 215.595 137.619 213.326 141.993 211.056 146.215 208.787 150.236 206.518 154.007 204.248 157.487 201.979 160.638 199.709 163.428 197.44 165.831 195.17 167.826 192.901 169.401 190.632 170.546 188.362 171.258 186.093 171.54 183.823 171.396 181.554 170.836 179.284 169.872 177.015 168.52 174.746 166.798 172.476 164.723 170.207 162.318 167.937 159.605 165.668 156.607 163.399 153.35 161.129 149.861 158.86 146.168 156.59 142.301 154.321 138.29 152.051 134.169 149.782 129.971 147.513 125.727 145.243 121.472 142.974 117.237 140.704 113.052 138.435 108.944 136.165 104.938 133.896 101.052 131.627 97.302 129.357 93.698 127.088 90.243 124.818 86.937 122.549 83.773 120.279 80.74 118.01 77.824 115.741 75.006 113.471 72.267 111.202 69.587 108.932 66.946 106.663 64.324 104.394 61.706 102.124 59.079 99.855 56.432 97.585 53.76 95.316 51.061 93.046 48.339 90.777 45.598 88.508 42.849 86.238 40.104 83.969 37.376 81.699 34.68 79.43 32.033 77.16 29.451 74.891 26.947 72.622 24.536 70.352 22.23 68.083 20.04 65.813 17.973 63.544 16.036 61.274 14.233 59.005 12.565 56.736 11.032 54.466 9.633 52.197 8.364 49.927 7.221 47.658 6.197 45.388 5.287 43.119 4.483 40.85 3.776 38.58 3.16 36.311 2.627 34.041 2.167 31.772 1.775 29.503 1.442 27.233 1.162 24.964 .927 22.694 .732 20.425 .571 18.155 .439 15.886 .333 13.617 .246 11.347 .177 9.078 .123 6.808 .08 4.539 .046 2.269 .02 0 0Z" fill="#d62728" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-7.3643,231.9414)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#d62728" d="M0 0V-.059H2.269 4.539 6.808 9.078 11.347 13.617 15.886 18.155 20.425 22.694 24.964 27.233 29.503 31.772 34.041 36.311 38.58 40.85 43.119 45.388 47.658 49.927 52.197 54.466 56.736 59.005 61.274 63.544 65.813 68.083 70.352 72.622 74.891 77.16 79.43 81.699 83.969 86.238 88.508 90.777 93.046 95.316 97.585 99.855 102.124 104.394 106.663 108.932 111.202 113.471 115.741 118.01 120.279 122.549 124.818 127.088 129.357 131.627 133.896 136.165 138.435 140.704 142.974 145.243 147.513 149.782 152.051 154.321 156.59 158.86 161.129 163.399 165.668 167.937 170.207 172.476 174.746 177.015 179.284 181.554 183.823 186.093 188.362 190.632 192.901 195.17 197.44 199.709 201.979 204.248 206.518 208.787 211.056 213.326 215.595 217.865 220.134 222.404 224.673 226.942 229.212 231.481 233.751 236.02 238.29 240.559 242.828 245.098 247.367 249.637 251.906 254.175 256.445 258.714 260.984 263.253 265.523 267.792 270.061 272.331 274.6 276.87 279.139 281.409 283.678 285.947 288.217 290.486 292.756 295.025 297.295 299.564 301.833 304.103 306.372 308.642 310.911 313.181 315.45 317.719 319.989 322.258 324.528 326.797 329.066 331.336 333.605 335.875 338.144 340.414 342.683 344.952 347.222 349.491 351.761 354.03 356.3 358.569 360.838 363.108 365.377 367.647 369.916 372.186 374.455 376.724 378.994 381.263 383.533 385.802 388.072 390.341 392.61 394.88 397.149 399.419 401.688 403.957 406.227 408.496 410.766 413.035 415.305 417.574 419.843 422.113 424.382 426.652 428.921 431.191 433.46 435.729 437.999 440.268 442.538 444.807 447.077 449.346 451.615V-.007L449.346 .01 447.077 .033 444.807 .061 442.538 .097 440.268 .142 437.999 .199 435.729 .269 433.46 .353 431.191 .456 428.921 .58 426.652 .726 424.382 .899 422.113 1.101 419.843 1.333 417.574 1.6 415.305 1.904 413.035 2.245 410.766 2.626 408.496 3.047 406.227 3.509 403.957 4.013 401.688 4.556 399.419 5.139 397.149 5.759 394.88 6.416 392.61 7.107 390.341 7.831 388.072 8.585 385.802 9.37 383.533 10.184 381.263 11.028 378.994 11.902 376.724 12.808 374.455 13.75 372.186 14.729 369.916 15.752 367.647 16.821 365.377 17.943 363.108 19.122 360.838 20.363 358.569 21.671 356.3 23.051 354.03 24.505 351.761 26.037 349.491 27.648 347.222 29.337 344.952 31.105 342.683 32.95 340.414 34.868 338.144 36.856 335.875 38.908 333.605 41.019 331.336 43.181 329.066 45.387 326.797 47.628 324.528 49.896 322.258 52.179 319.989 54.468 317.719 56.752 315.45 59.018 313.181 61.254 310.911 63.447 308.642 65.584 306.372 67.652 304.103 69.636 301.833 71.524 299.564 73.302 297.295 74.959 295.025 76.481 292.756 77.86 290.486 79.088 288.217 80.159 285.947 81.07 283.678 81.821 281.409 82.417 279.139 82.867 276.87 83.183 274.6 83.384 272.331 83.492 270.061 83.533 267.792 83.54 265.523 83.547 263.253 83.591 260.984 83.714 258.714 83.957 256.445 84.359 254.175 84.961 251.906 85.8 249.637 86.908 247.367 88.312 245.098 90.036 242.828 92.093 240.559 94.49 238.29 97.227 236.02 100.294 233.751 103.674 231.481 107.341 229.212 111.262 226.942 115.4 224.673 119.708 222.404 124.138 220.134 128.636 217.865 133.149 215.595 137.619 213.326 141.993 211.056 146.215 208.787 150.236 206.518 154.007 204.248 157.487 201.979 160.638 199.709 163.428 197.44 165.831 195.17 167.826 192.901 169.401 190.632 170.546 188.362 171.258 186.093 171.54 183.823 171.396 181.554 170.836 179.284 169.872 177.015 168.52 174.746 166.798 172.476 164.723 170.207 162.318 167.937 159.605 165.668 156.607 163.399 153.35 161.129 149.861 158.86 146.168 156.59 142.301 154.321 138.29 152.051 134.169 149.782 129.971 147.513 125.727 145.243 121.472 142.974 117.237 140.704 113.052 138.435 108.944 136.165 104.938 133.896 101.052 131.627 97.302 129.357 93.698 127.088 90.243 124.818 86.937 122.549 83.773 120.279 80.74 118.01 77.824 115.741 75.006 113.471 72.267 111.202 69.587 108.932 66.946 106.663 64.324 104.394 61.706 102.124 59.079 99.855 56.432 97.585 53.76 95.316 51.061 93.046 48.339 90.777 45.598 88.508 42.849 86.238 40.104 83.969 37.376 81.699 34.68 79.43 32.033 77.16 29.451 74.891 26.947 72.622 24.536 70.352 22.23 68.083 20.04 65.813 17.973 63.544 16.036 61.274 14.233 59.005 12.565 56.736 11.032 54.466 9.633 52.197 8.364 49.927 7.221 47.658 6.197 45.388 5.287 43.119 4.483 40.85 3.776 38.58 3.16 36.311 2.627 34.041 2.167 31.772 1.775 29.503 1.442 27.233 1.162 24.964 .927 22.694 .732 20.425 .571 18.155 .439 15.886 .333 13.617 .246 11.347 .177 9.078 .123 6.808 .08 4.539 .046 2.269 .02 0 0Z"/>
</g>
<g clip-path="url(#clip_2)">
<path transform="matrix(1,0,0,-1,.4344,231.09439)" d="M0 0V-.906H2.269 4.537 6.806 9.075 11.344 13.612 15.881 18.15 20.418 22.687 24.956 27.224 29.493 31.762 34.031 36.299 38.568 40.837 43.105 45.374 47.643 49.912 52.18 54.449 56.718 58.986 61.255 63.524 65.793 68.061 70.33 72.599 74.867 77.136 79.405 81.673 83.942 86.211 88.48 90.748 93.017 95.286 97.554 99.823 102.092 104.361 106.629 108.898 111.167 113.435 115.704 117.973 120.242 122.51 124.779 127.048 129.316 131.585 133.854 136.122 138.391 140.66 142.929 145.197 147.466 149.735 152.003 154.272 156.541 158.81 161.078 163.347 165.616 167.884 170.153 172.422 174.691 176.959 179.228 181.497 183.765 186.034 188.303 190.571 192.84 195.109 197.378 199.646 201.915 204.184 206.452 208.721 210.99 213.259 215.527 217.796 220.065 222.333 224.602 226.871 229.14 231.408 233.677 235.946 238.214 240.483 242.752 245.02 247.289 249.558 251.827 254.095 256.364 258.633 260.901 263.17 265.439 267.708 269.976 272.245 274.514 276.782 279.051 281.32 283.589 285.857 288.126 290.395 292.663 294.932 297.201 299.469 301.738 304.007 306.276 308.544 310.813 313.082 315.35 317.619 319.888 322.157 324.425 326.694 328.963 331.231 333.5 335.769 338.038 340.306 342.575 344.844 347.112 349.381 351.65 353.918 356.187 358.456 360.725 362.993 365.262 367.531 369.799 372.068 374.337 376.606 378.874 381.143 383.412 385.68 387.949 390.218 392.487 394.755 397.024 399.293 401.561 403.83 406.099 408.367 410.636 412.905 415.174 417.442 419.711 421.98 424.248 426.517 428.786 431.055 433.323 435.592 437.861 440.129 442.398 444.667 446.936 449.204 451.473V-.871L449.204-.859 446.936-.843 444.667-.822 442.398-.796 440.129-.762 437.861-.721 435.592-.671 433.323-.609 431.055-.536 428.786-.45 426.517-.349 424.248-.234 421.98-.104 419.711 .041 417.442 .2 415.174 .372 412.905 .555 410.636 .746 408.367 .942 406.099 1.14 403.83 1.335 401.561 1.522 399.293 1.698 397.024 1.859 394.755 2 392.487 2.12 390.218 2.215 387.949 2.284 385.68 2.329 383.412 2.351 381.143 2.352 378.874 2.337 376.606 2.311 374.337 2.279 372.068 2.248 369.799 2.226 367.531 2.218 365.262 2.231 362.993 2.27 360.725 2.34 358.456 2.444 356.187 2.582 353.918 2.755 351.65 2.96 349.381 3.194 347.112 3.453 344.844 3.73 342.575 4.017 340.306 4.308 338.038 4.596 335.769 4.872 333.5 5.131 331.231 5.368 328.963 5.58 326.694 5.764 324.425 5.921 322.157 6.054 319.888 6.164 317.619 6.259 315.35 6.345 313.082 6.429 310.813 6.52 308.544 6.624 306.276 6.751 304.007 6.906 301.738 7.096 299.469 7.325 297.201 7.598 294.932 7.917 292.663 8.284 290.395 8.701 288.126 9.169 285.857 9.69 283.589 10.266 281.32 10.9 279.051 11.597 276.782 12.36 274.514 13.196 272.245 14.111 269.976 15.113 267.708 16.208 265.439 17.401 263.17 18.698 260.901 20.1 258.633 21.608 256.364 23.219 254.095 24.926 251.827 26.721 249.558 28.589 247.289 30.517 245.02 32.485 242.752 34.476 240.483 36.469 238.214 38.445 235.946 40.386 233.677 42.278 231.408 44.108 229.14 45.87 226.871 47.563 224.602 49.19 222.333 50.761 220.065 52.291 217.796 53.801 215.527 55.314 213.259 56.857 210.99 58.458 208.721 60.146 206.452 61.947 204.184 63.885 201.915 65.979 199.646 68.242 197.378 70.681 195.109 73.298 192.84 76.085 190.571 79.03 188.303 82.115 186.034 85.317 183.765 88.609 181.497 91.964 179.228 95.354 176.959 98.752 174.691 102.133 172.422 105.478 170.153 108.77 167.884 111.998 165.616 115.156 163.347 118.242 161.078 121.261 158.81 124.218 156.541 127.122 154.272 129.985 152.003 132.817 149.735 135.631 147.466 138.436 145.197 141.24 142.929 144.051 140.66 146.872 138.391 149.707 136.122 152.557 133.854 155.423 131.585 158.304 129.316 161.2 127.048 164.109 124.779 167.031 122.51 169.966 120.242 172.912 117.973 175.865 115.704 178.82 113.435 181.768 111.167 184.695 108.898 187.581 106.629 190.4 104.361 193.117 102.092 195.689 99.823 198.064 97.554 200.181 95.286 201.971 93.017 203.361 90.748 204.271 88.48 204.618 86.211 204.322 83.942 203.305 81.673 201.498 79.405 198.84 77.136 195.288 74.867 190.816 72.599 185.418 70.33 179.111 68.061 171.937 65.793 163.96 63.524 155.268 61.255 145.971 58.986 136.193 56.718 126.074 54.449 115.759 52.18 105.398 49.912 95.137 47.643 85.115 45.374 75.455 43.105 66.269 40.837 57.645 38.568 49.651 36.299 42.336 34.031 35.725 31.762 29.824 29.493 24.621 27.224 20.09 24.956 16.191 22.687 12.876 20.418 10.092 18.15 7.781 15.881 5.885 13.612 4.349 11.344 3.118 9.075 2.144 6.806 1.381 4.537 .791 2.269 .341 0 0Z" fill="#2ca02c" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,.4344,231.09439)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#2ca02c" d="M0 0V-.906H2.269 4.537 6.806 9.075 11.344 13.612 15.881 18.15 20.418 22.687 24.956 27.224 29.493 31.762 34.031 36.299 38.568 40.837 43.105 45.374 47.643 49.912 52.18 54.449 56.718 58.986 61.255 63.524 65.793 68.061 70.33 72.599 74.867 77.136 79.405 81.673 83.942 86.211 88.48 90.748 93.017 95.286 97.554 99.823 102.092 104.361 106.629 108.898 111.167 113.435 115.704 117.973 120.242 122.51 124.779 127.048 129.316 131.585 133.854 136.122 138.391 140.66 142.929 145.197 147.466 149.735 152.003 154.272 156.541 158.81 161.078 163.347 165.616 167.884 170.153 172.422 174.691 176.959 179.228 181.497 183.765 186.034 188.303 190.571 192.84 195.109 197.378 199.646 201.915 204.184 206.452 208.721 210.99 213.259 215.527 217.796 220.065 222.333 224.602 226.871 229.14 231.408 233.677 235.946 238.214 240.483 242.752 245.02 247.289 249.558 251.827 254.095 256.364 258.633 260.901 263.17 265.439 267.708 269.976 272.245 274.514 276.782 279.051 281.32 283.589 285.857 288.126 290.395 292.663 294.932 297.201 299.469 301.738 304.007 306.276 308.544 310.813 313.082 315.35 317.619 319.888 322.157 324.425 326.694 328.963 331.231 333.5 335.769 338.038 340.306 342.575 344.844 347.112 349.381 351.65 353.918 356.187 358.456 360.725 362.993 365.262 367.531 369.799 372.068 374.337 376.606 378.874 381.143 383.412 385.68 387.949 390.218 392.487 394.755 397.024 399.293 401.561 403.83 406.099 408.367 410.636 412.905 415.174 417.442 419.711 421.98 424.248 426.517 428.786 431.055 433.323 435.592 437.861 440.129 442.398 444.667 446.936 449.204 451.473V-.871L449.204-.859 446.936-.843 444.667-.822 442.398-.796 440.129-.762 437.861-.721 435.592-.671 433.323-.609 431.055-.536 428.786-.45 426.517-.349 424.248-.234 421.98-.104 419.711 .041 417.442 .2 415.174 .372 412.905 .555 410.636 .746 408.367 .942 406.099 1.14 403.83 1.335 401.561 1.522 399.293 1.698 397.024 1.859 394.755 2 392.487 2.12 390.218 2.215 387.949 2.284 385.68 2.329 383.412 2.351 381.143 2.352 378.874 2.337 376.606 2.311 374.337 2.279 372.068 2.248 369.799 2.226 367.531 2.218 365.262 2.231 362.993 2.27 360.725 2.34 358.456 2.444 356.187 2.582 353.918 2.755 351.65 2.96 349.381 3.194 347.112 3.453 344.844 3.73 342.575 4.017 340.306 4.308 338.038 4.596 335.769 4.872 333.5 5.131 331.231 5.368 328.963 5.58 326.694 5.764 324.425 5.921 322.157 6.054 319.888 6.164 317.619 6.259 315.35 6.345 313.082 6.429 310.813 6.52 308.544 6.624 306.276 6.751 304.007 6.906 301.738 7.096 299.469 7.325 297.201 7.598 294.932 7.917 292.663 8.284 290.395 8.701 288.126 9.169 285.857 9.69 283.589 10.266 281.32 10.9 279.051 11.597 276.782 12.36 274.514 13.196 272.245 14.111 269.976 15.113 267.708 16.208 265.439 17.401 263.17 18.698 260.901 20.1 258.633 21.608 256.364 23.219 254.095 24.926 251.827 26.721 249.558 28.589 247.289 30.517 245.02 32.485 242.752 34.476 240.483 36.469 238.214 38.445 235.946 40.386 233.677 42.278 231.408 44.108 229.14 45.87 226.871 47.563 224.602 49.19 222.333 50.761 220.065 52.291 217.796 53.801 215.527 55.314 213.259 56.857 210.99 58.458 208.721 60.146 206.452 61.947 204.184 63.885 201.915 65.979 199.646 68.242 197.378 70.681 195.109 73.298 192.84 76.085 190.571 79.03 188.303 82.115 186.034 85.317 183.765 88.609 181.497 91.964 179.228 95.354 176.959 98.752 174.691 102.133 172.422 105.478 170.153 108.77 167.884 111.998 165.616 115.156 163.347 118.242 161.078 121.261 158.81 124.218 156.541 127.122 154.272 129.985 152.003 132.817 149.735 135.631 147.466 138.436 145.197 141.24 142.929 144.051 140.66 146.872 138.391 149.707 136.122 152.557 133.854 155.423 131.585 158.304 129.316 161.2 127.048 164.109 124.779 167.031 122.51 169.966 120.242 172.912 117.973 175.865 115.704 178.82 113.435 181.768 111.167 184.695 108.898 187.581 106.629 190.4 104.361 193.117 102.092 195.689 99.823 198.064 97.554 200.181 95.286 201.971 93.017 203.361 90.748 204.271 88.48 204.618 86.211 204.322 83.942 203.305 81.673 201.498 79.405 198.84 77.136 195.288 74.867 190.816 72.599 185.418 70.33 179.111 68.061 171.937 65.793 163.96 63.524 155.268 61.255 145.971 58.986 136.193 56.718 126.074 54.449 115.759 52.18 105.398 49.912 95.137 47.643 85.115 45.374 75.455 43.105 66.269 40.837 57.645 38.568 49.651 36.299 42.336 34.031 35.725 31.762 29.824 29.493 24.621 27.224 20.09 24.956 16.191 22.687 12.876 20.418 10.092 18.15 7.781 15.881 5.885 13.612 4.349 11.344 3.118 9.075 2.144 6.806 1.381 4.537 .791 2.269 .341 0 0Z"/>
</g>
<g clip-path="url(#clip_3)">
<path transform="matrix(1,0,0,-1,-3.0661,231.5427)" d="M0 0V-.457H2.171 4.343 6.514 8.686 10.857 13.028 15.2 17.371 19.542 21.714 23.885 26.057 28.228 30.399 32.571 34.742 36.913 39.085 41.256 43.428 45.599 47.77 49.942 52.113 54.284 56.456 58.627 60.799 62.97 65.141 67.313 69.484 71.655 73.827 75.998 78.17 80.341 82.512 84.684 86.855 89.026 91.198 93.369 95.541 97.712 99.883 102.055 104.226 106.397 108.569 110.74 112.912 115.083 117.254 119.426 121.597 123.768 125.94 128.111 130.283 132.454 134.625 136.797 138.968 141.139 143.311 145.482 147.654 149.825 151.996 154.168 156.339 158.51 160.682 162.853 165.025 167.196 169.367 171.539 173.71 175.881 178.053 180.224 182.396 184.567 186.738 188.91 191.081 193.252 195.424 197.595 199.767 201.938 204.109 206.281 208.452 210.623 212.795 214.966 217.138 219.309 221.48 223.652 225.823 227.994 230.166 232.337 234.509 236.68 238.851 241.023 243.194 245.366 247.537 249.708 251.88 254.051 256.222 258.394 260.565 262.737 264.908 267.079 269.251 271.422 273.593 275.765 277.936 280.108 282.279 284.45 286.622 288.793 290.964 293.136 295.307 297.479 299.65 301.821 303.993 306.164 308.335 310.507 312.678 314.85 317.021 319.192 321.364 323.535 325.706 327.878 330.049 332.221 334.392 336.563 338.735 340.906 343.077 345.249 347.42 349.592 351.763 353.934 356.106 358.277 360.448 362.62 364.791 366.963 369.134 371.305 373.477 375.648 377.819 379.991 382.162 384.334 386.505 388.676 390.848 393.019 395.19 397.362 399.533 401.705 403.876 406.047 408.219 410.39 412.561 414.733 416.904 419.076 421.247 423.418 425.59 427.761 429.932 432.104V-.423L429.932-.411 427.761-.397 425.59-.378 423.418-.355 421.247-.325 419.076-.289 416.904-.244 414.733-.19 412.561-.124 410.39-.046 408.219 .047 406.047 .155 403.876 .282 401.705 .427 399.533 .592 397.362 .78 395.19 .99 393.019 1.223 390.848 1.48 388.676 1.76 386.505 2.064 384.334 2.389 382.162 2.734 379.991 3.098 377.819 3.478 375.648 3.871 373.477 4.274 371.305 4.683 369.134 5.094 366.963 5.503 364.791 5.907 362.62 6.3 360.448 6.678 358.277 7.038 356.106 7.377 353.934 7.69 351.763 7.975 349.592 8.231 347.42 8.455 345.249 8.648 343.077 8.81 340.906 8.942 338.735 9.047 336.563 9.127 334.392 9.189 332.221 9.236 330.049 9.275 327.878 9.314 325.706 9.36 323.535 9.422 321.364 9.509 319.192 9.63 317.021 9.794 314.85 10.011 312.678 10.29 310.507 10.638 308.335 11.063 306.164 11.571 303.993 12.168 301.821 12.857 299.65 13.642 297.479 14.524 295.307 15.502 293.136 16.575 290.964 17.74 288.793 18.994 286.622 20.333 284.45 21.752 282.279 23.246 280.108 24.81 277.936 26.441 275.765 28.134 273.593 29.888 271.422 31.701 269.251 33.572 267.079 35.504 264.908 37.498 262.737 39.557 260.565 41.685 258.394 43.883 256.222 46.156 254.051 48.503 251.88 50.925 249.708 53.417 247.537 55.975 245.366 58.589 243.194 61.246 241.023 63.931 238.851 66.625 236.68 69.304 234.509 71.946 232.337 74.525 230.166 77.015 227.994 79.393 225.823 81.634 223.652 83.719 221.48 85.634 219.309 87.369 217.138 88.918 214.966 90.285 212.795 91.48 210.623 92.518 208.452 93.421 206.281 94.217 204.109 94.94 201.938 95.626 199.767 96.313 197.595 97.042 195.424 97.851 193.252 98.779 191.081 99.858 188.91 101.119 186.738 102.586 184.567 104.276 182.396 106.2 180.224 108.362 178.053 110.757 175.881 113.375 173.71 116.198 171.539 119.203 169.367 122.362 167.196 125.643 165.025 129.009 162.853 132.423 160.682 135.848 158.51 139.244 156.339 142.576 154.168 145.807 151.996 148.907 149.825 151.846 147.654 154.602 145.482 157.154 143.311 159.487 141.139 161.592 138.968 163.463 136.797 165.1 134.625 166.508 132.454 167.694 130.283 168.671 128.111 169.45 125.94 170.05 123.768 170.485 121.597 170.773 119.426 170.928 117.254 170.964 115.083 170.888 112.912 170.707 110.74 170.42 108.569 170.02 106.397 169.495 104.226 168.827 102.055 167.992 99.883 166.958 97.712 165.694 95.541 164.16 93.369 162.319 91.198 160.131 89.026 157.561 86.855 154.577 84.684 151.153 82.512 147.271 80.341 142.922 78.17 138.111 75.998 132.849 73.827 127.165 71.655 121.094 69.484 114.686 67.313 107.998 65.141 101.096 62.97 94.051 60.799 86.939 58.627 79.836 56.456 72.817 54.284 65.954 52.113 59.313 49.942 52.952 47.77 46.921 45.599 41.262 43.428 36.004 41.256 31.167 39.085 26.762 36.913 22.788 34.742 19.24 32.571 16.101 30.399 13.352 28.228 10.966 26.057 8.917 23.885 7.173 21.714 5.702 19.542 4.474 17.371 3.459 15.2 2.626 13.028 1.951 10.857 1.407 8.686 .974 6.514 .633 4.343 .366 2.171 .159 0 0Z" fill="#ff7f0e" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-3.0661,231.5427)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#ff7f0e" d="M0 0V-.457H2.171 4.343 6.514 8.686 10.857 13.028 15.2 17.371 19.542 21.714 23.885 26.057 28.228 30.399 32.571 34.742 36.913 39.085 41.256 43.428 45.599 47.77 49.942 52.113 54.284 56.456 58.627 60.799 62.97 65.141 67.313 69.484 71.655 73.827 75.998 78.17 80.341 82.512 84.684 86.855 89.026 91.198 93.369 95.541 97.712 99.883 102.055 104.226 106.397 108.569 110.74 112.912 115.083 117.254 119.426 121.597 123.768 125.94 128.111 130.283 132.454 134.625 136.797 138.968 141.139 143.311 145.482 147.654 149.825 151.996 154.168 156.339 158.51 160.682 162.853 165.025 167.196 169.367 171.539 173.71 175.881 178.053 180.224 182.396 184.567 186.738 188.91 191.081 193.252 195.424 197.595 199.767 201.938 204.109 206.281 208.452 210.623 212.795 214.966 217.138 219.309 221.48 223.652 225.823 227.994 230.166 232.337 234.509 236.68 238.851 241.023 243.194 245.366 247.537 249.708 251.88 254.051 256.222 258.394 260.565 262.737 264.908 267.079 269.251 271.422 273.593 275.765 277.936 280.108 282.279 284.45 286.622 288.793 290.964 293.136 295.307 297.479 299.65 301.821 303.993 306.164 308.335 310.507 312.678 314.85 317.021 319.192 321.364 323.535 325.706 327.878 330.049 332.221 334.392 336.563 338.735 340.906 343.077 345.249 347.42 349.592 351.763 353.934 356.106 358.277 360.448 362.62 364.791 366.963 369.134 371.305 373.477 375.648 377.819 379.991 382.162 384.334 386.505 388.676 390.848 393.019 395.19 397.362 399.533 401.705 403.876 406.047 408.219 410.39 412.561 414.733 416.904 419.076 421.247 423.418 425.59 427.761 429.932 432.104V-.423L429.932-.411 427.761-.397 425.59-.378 423.418-.355 421.247-.325 419.076-.289 416.904-.244 414.733-.19 412.561-.124 410.39-.046 408.219 .047 406.047 .155 403.876 .282 401.705 .427 399.533 .592 397.362 .78 395.19 .99 393.019 1.223 390.848 1.48 388.676 1.76 386.505 2.064 384.334 2.389 382.162 2.734 379.991 3.098 377.819 3.478 375.648 3.871 373.477 4.274 371.305 4.683 369.134 5.094 366.963 5.503 364.791 5.907 362.62 6.3 360.448 6.678 358.277 7.038 356.106 7.377 353.934 7.69 351.763 7.975 349.592 8.231 347.42 8.455 345.249 8.648 343.077 8.81 340.906 8.942 338.735 9.047 336.563 9.127 334.392 9.189 332.221 9.236 330.049 9.275 327.878 9.314 325.706 9.36 323.535 9.422 321.364 9.509 319.192 9.63 317.021 9.794 314.85 10.011 312.678 10.29 310.507 10.638 308.335 11.063 306.164 11.571 303.993 12.168 301.821 12.857 299.65 13.642 297.479 14.524 295.307 15.502 293.136 16.575 290.964 17.74 288.793 18.994 286.622 20.333 284.45 21.752 282.279 23.246 280.108 24.81 277.936 26.441 275.765 28.134 273.593 29.888 271.422 31.701 269.251 33.572 267.079 35.504 264.908 37.498 262.737 39.557 260.565 41.685 258.394 43.883 256.222 46.156 254.051 48.503 251.88 50.925 249.708 53.417 247.537 55.975 245.366 58.589 243.194 61.246 241.023 63.931 238.851 66.625 236.68 69.304 234.509 71.946 232.337 74.525 230.166 77.015 227.994 79.393 225.823 81.634 223.652 83.719 221.48 85.634 219.309 87.369 217.138 88.918 214.966 90.285 212.795 91.48 210.623 92.518 208.452 93.421 206.281 94.217 204.109 94.94 201.938 95.626 199.767 96.313 197.595 97.042 195.424 97.851 193.252 98.779 191.081 99.858 188.91 101.119 186.738 102.586 184.567 104.276 182.396 106.2 180.224 108.362 178.053 110.757 175.881 113.375 173.71 116.198 171.539 119.203 169.367 122.362 167.196 125.643 165.025 129.009 162.853 132.423 160.682 135.848 158.51 139.244 156.339 142.576 154.168 145.807 151.996 148.907 149.825 151.846 147.654 154.602 145.482 157.154 143.311 159.487 141.139 161.592 138.968 163.463 136.797 165.1 134.625 166.508 132.454 167.694 130.283 168.671 128.111 169.45 125.94 170.05 123.768 170.485 121.597 170.773 119.426 170.928 117.254 170.964 115.083 170.888 112.912 170.707 110.74 170.42 108.569 170.02 106.397 169.495 104.226 168.827 102.055 167.992 99.883 166.958 97.712 165.694 95.541 164.16 93.369 162.319 91.198 160.131 89.026 157.561 86.855 154.577 84.684 151.153 82.512 147.271 80.341 142.922 78.17 138.111 75.998 132.849 73.827 127.165 71.655 121.094 69.484 114.686 67.313 107.998 65.141 101.096 62.97 94.051 60.799 86.939 58.627 79.836 56.456 72.817 54.284 65.954 52.113 59.313 49.942 52.952 47.77 46.921 45.599 41.262 43.428 36.004 41.256 31.167 39.085 26.762 36.913 22.788 34.742 19.24 32.571 16.101 30.399 13.352 28.228 10.966 26.057 8.917 23.885 7.173 21.714 5.702 19.542 4.474 17.371 3.459 15.2 2.626 13.028 1.951 10.857 1.407 8.686 .974 6.514 .633 4.343 .366 2.171 .159 0 0Z"/>
</g>
<g clip-path="url(#clip_4)">
<path transform="matrix(1,0,0,-1,-6.7195,231.6274)" d="M0 0V-.373H2.421 4.843 7.264 9.685 12.106 14.528 16.949 19.37 21.792 24.213 26.634 29.055 31.477 33.898 36.319 38.74 41.162 43.583 46.004 48.426 50.847 53.268 55.689 58.111 60.532 62.953 65.375 67.796 70.217 72.638 75.06 77.481 79.902 82.324 84.745 87.166 89.587 92.009 94.43 96.851 99.273 101.694 104.115 106.536 108.958 111.379 113.8 116.221 118.643 121.064 123.485 125.907 128.328 130.749 133.17 135.592 138.013 140.434 142.856 145.277 147.698 150.119 152.541 154.962 157.383 159.805 162.226 164.647 167.068 169.49 171.911 174.332 176.753 179.175 181.596 184.017 186.439 188.86 191.281 193.702 196.124 198.545 200.966 203.388 205.809 208.23 210.651 213.073 215.494 217.915 220.337 222.758 225.179 227.6 230.022 232.443 234.864 237.286 239.707 242.128 244.549 246.971 249.392 251.813 254.234 256.656 259.077 261.498 263.92 266.341 268.762 271.183 273.605 276.026 278.447 280.869 283.29 285.711 288.132 290.554 292.975 295.396 297.818 300.239 302.66 305.081 307.503 309.924 312.345 314.767 317.188 319.609 322.03 324.452 326.873 329.294 331.715 334.137 336.558 338.979 341.401 343.822 346.243 348.664 351.086 353.507 355.928 358.35 360.771 363.192 365.613 368.035 370.456 372.877 375.299 377.72 380.141 382.562 384.984 387.405 389.826 392.247 394.669 397.09 399.511 401.933 404.354 406.775 409.196 411.618 414.039 416.46 418.882 421.303 423.724 426.145 428.567 430.988 433.409 435.831 438.252 440.673 443.094 445.516 447.937 450.358 452.78 455.201 457.622 460.043 462.465 464.886 467.307 469.728 472.15 474.571 476.992 479.414 481.835V-.342L479.414-.331 476.992-.317 474.571-.3 472.15-.278 469.728-.25 467.307-.216 464.886-.174 462.465-.123 460.043-.063 457.622 .008 455.201 .09 452.78 .185 450.358 .292 447.937 .412 445.516 .545 443.094 .69 440.673 .846 438.252 1.012 435.831 1.186 433.409 1.365 430.988 1.548 428.567 1.731 426.145 1.912 423.724 2.089 421.303 2.26 418.882 2.424 416.46 2.578 414.039 2.725 411.618 2.863 409.196 2.997 406.775 3.127 404.354 3.258 401.933 3.395 399.511 3.541 397.09 3.702 394.669 3.883 392.247 4.088 389.826 4.321 387.405 4.584 384.984 4.879 382.562 5.206 380.141 5.562 377.72 5.945 375.299 6.35 372.877 6.77 370.456 7.198 368.035 7.627 365.613 8.048 363.192 8.454 360.771 8.837 358.35 9.191 355.928 9.51 353.507 9.792 351.086 10.034 348.664 10.237 346.243 10.403 343.822 10.535 341.401 10.639 338.979 10.722 336.558 10.791 334.137 10.857 331.715 10.93 329.294 11.019 326.873 11.135 324.452 11.291 322.03 11.498 319.609 11.768 317.188 12.111 314.767 12.541 312.345 13.068 309.924 13.704 307.503 14.459 305.081 15.344 302.66 16.367 300.239 17.536 297.818 18.858 295.396 20.336 292.975 21.973 290.554 23.77 288.132 25.724 285.711 27.831 283.29 30.085 280.869 32.476 278.447 34.996 276.026 37.631 273.605 40.37 271.183 43.2 268.762 46.108 266.341 49.081 263.92 52.109 261.498 55.18 259.077 58.286 256.656 61.418 254.234 64.572 251.813 67.742 249.392 70.924 246.971 74.115 244.549 77.311 242.128 80.51 239.707 83.706 237.286 86.895 234.864 90.07 232.443 93.22 230.022 96.335 227.6 99.402 225.179 102.404 222.758 105.324 220.337 108.144 217.915 110.842 215.494 113.399 213.073 115.794 210.651 118.009 208.23 120.027 205.809 121.834 203.388 123.422 200.966 124.784 198.545 125.923 196.124 126.844 193.702 127.561 191.281 128.093 188.86 128.466 186.439 128.709 184.017 128.86 181.596 128.956 179.175 129.04 176.753 129.154 174.332 129.339 171.911 129.632 169.49 130.069 167.068 130.676 164.647 131.472 162.226 132.47 159.805 133.669 157.383 135.062 154.962 136.631 152.541 138.347 150.119 140.176 147.698 142.077 145.277 144.002 142.856 145.903 140.434 147.73 138.013 149.436 135.592 150.976 133.17 152.309 130.749 153.403 128.328 154.231 125.907 154.773 123.485 155.016 121.064 154.953 118.643 154.582 116.221 153.903 113.8 152.921 111.379 151.64 108.958 150.063 106.536 148.193 104.115 146.029 101.694 143.569 99.273 140.808 96.851 137.74 94.43 134.357 92.009 130.654 89.587 126.627 87.166 122.276 84.745 117.605 82.324 112.628 79.902 107.363 77.481 101.838 75.06 96.088 72.638 90.155 70.217 84.09 67.796 77.948 65.375 71.787 62.953 65.667 60.532 59.649 58.111 53.79 55.689 48.145 53.268 42.761 50.847 37.678 48.426 32.931 46.004 28.542 43.583 24.526 41.162 20.891 38.74 17.633 36.319 14.745 33.898 12.211 31.477 10.01 29.055 8.119 26.634 6.51 24.213 5.157 21.792 4.029 19.37 3.1 16.949 2.342 14.528 1.729 12.106 1.24 9.685 .853 7.264 .551 4.843 .316 2.421 .136 0 0Z" fill="#1f77b4" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,-6.7195,231.6274)" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#1f77b4" d="M0 0V-.373H2.421 4.843 7.264 9.685 12.106 14.528 16.949 19.37 21.792 24.213 26.634 29.055 31.477 33.898 36.319 38.74 41.162 43.583 46.004 48.426 50.847 53.268 55.689 58.111 60.532 62.953 65.375 67.796 70.217 72.638 75.06 77.481 79.902 82.324 84.745 87.166 89.587 92.009 94.43 96.851 99.273 101.694 104.115 106.536 108.958 111.379 113.8 116.221 118.643 121.064 123.485 125.907 128.328 130.749 133.17 135.592 138.013 140.434 142.856 145.277 147.698 150.119 152.541 154.962 157.383 159.805 162.226 164.647 167.068 169.49 171.911 174.332 176.753 179.175 181.596 184.017 186.439 188.86 191.281 193.702 196.124 198.545 200.966 203.388 205.809 208.23 210.651 213.073 215.494 217.915 220.337 222.758 225.179 227.6 230.022 232.443 234.864 237.286 239.707 242.128 244.549 246.971 249.392 251.813 254.234 256.656 259.077 261.498 263.92 266.341 268.762 271.183 273.605 276.026 278.447 280.869 283.29 285.711 288.132 290.554 292.975 295.396 297.818 300.239 302.66 305.081 307.503 309.924 312.345 314.767 317.188 319.609 322.03 324.452 326.873 329.294 331.715 334.137 336.558 338.979 341.401 343.822 346.243 348.664 351.086 353.507 355.928 358.35 360.771 363.192 365.613 368.035 370.456 372.877 375.299 377.72 380.141 382.562 384.984 387.405 389.826 392.247 394.669 397.09 399.511 401.933 404.354 406.775 409.196 411.618 414.039 416.46 418.882 421.303 423.724 426.145 428.567 430.988 433.409 435.831 438.252 440.673 443.094 445.516 447.937 450.358 452.78 455.201 457.622 460.043 462.465 464.886 467.307 469.728 472.15 474.571 476.992 479.414 481.835V-.342L479.414-.331 476.992-.317 474.571-.3 472.15-.278 469.728-.25 467.307-.216 464.886-.174 462.465-.123 460.043-.063 457.622 .008 455.201 .09 452.78 .185 450.358 .292 447.937 .412 445.516 .545 443.094 .69 440.673 .846 438.252 1.012 435.831 1.186 433.409 1.365 430.988 1.548 428.567 1.731 426.145 1.912 423.724 2.089 421.303 2.26 418.882 2.424 416.46 2.578 414.039 2.725 411.618 2.863 409.196 2.997 406.775 3.127 404.354 3.258 401.933 3.395 399.511 3.541 397.09 3.702 394.669 3.883 392.247 4.088 389.826 4.321 387.405 4.584 384.984 4.879 382.562 5.206 380.141 5.562 377.72 5.945 375.299 6.35 372.877 6.77 370.456 7.198 368.035 7.627 365.613 8.048 363.192 8.454 360.771 8.837 358.35 9.191 355.928 9.51 353.507 9.792 351.086 10.034 348.664 10.237 346.243 10.403 343.822 10.535 341.401 10.639 338.979 10.722 336.558 10.791 334.137 10.857 331.715 10.93 329.294 11.019 326.873 11.135 324.452 11.291 322.03 11.498 319.609 11.768 317.188 12.111 314.767 12.541 312.345 13.068 309.924 13.704 307.503 14.459 305.081 15.344 302.66 16.367 300.239 17.536 297.818 18.858 295.396 20.336 292.975 21.973 290.554 23.77 288.132 25.724 285.711 27.831 283.29 30.085 280.869 32.476 278.447 34.996 276.026 37.631 273.605 40.37 271.183 43.2 268.762 46.108 266.341 49.081 263.92 52.109 261.498 55.18 259.077 58.286 256.656 61.418 254.234 64.572 251.813 67.742 249.392 70.924 246.971 74.115 244.549 77.311 242.128 80.51 239.707 83.706 237.286 86.895 234.864 90.07 232.443 93.22 230.022 96.335 227.6 99.402 225.179 102.404 222.758 105.324 220.337 108.144 217.915 110.842 215.494 113.399 213.073 115.794 210.651 118.009 208.23 120.027 205.809 121.834 203.388 123.422 200.966 124.784 198.545 125.923 196.124 126.844 193.702 127.561 191.281 128.093 188.86 128.466 186.439 128.709 184.017 128.86 181.596 128.956 179.175 129.04 176.753 129.154 174.332 129.339 171.911 129.632 169.49 130.069 167.068 130.676 164.647 131.472 162.226 132.47 159.805 133.669 157.383 135.062 154.962 136.631 152.541 138.347 150.119 140.176 147.698 142.077 145.277 144.002 142.856 145.903 140.434 147.73 138.013 149.436 135.592 150.976 133.17 152.309 130.749 153.403 128.328 154.231 125.907 154.773 123.485 155.016 121.064 154.953 118.643 154.582 116.221 153.903 113.8 152.921 111.379 151.64 108.958 150.063 106.536 148.193 104.115 146.029 101.694 143.569 99.273 140.808 96.851 137.74 94.43 134.357 92.009 130.654 89.587 126.627 87.166 122.276 84.745 117.605 82.324 112.628 79.902 107.363 77.481 101.838 75.06 96.088 72.638 90.155 70.217 84.09 67.796 77.948 65.375 71.787 62.953 65.667 60.532 59.649 58.111 53.79 55.689 48.145 53.268 42.761 50.847 37.678 48.426 32.931 46.004 28.542 43.583 24.526 41.162 20.891 38.74 17.633 36.319 14.745 33.898 12.211 31.477 10.01 29.055 8.119 26.634 6.51 24.213 5.157 21.792 4.029 19.37 3.1 16.949 2.342 14.528 1.729 12.106 1.24 9.685 .853 7.264 .551 4.843 .316 2.421 .136 0 0Z"/>
</g>
<path transform="matrix(1,0,0,-1,65.54,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,65.54,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="53.61 63.15 67.92">0.0</tspan></text>
<path transform="matrix(1,0,0,-1,110.8878,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,110.8878,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="98.958 108.498 113.268009">0.1</tspan></text>
<path transform="matrix(1,0,0,-1,156.2355,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,156.2355,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="144.306 153.84601 158.61602">0.2</tspan></text>
<path transform="matrix(1,0,0,-1,201.5833,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,201.5833,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="189.654 199.194 203.964">0.3</tspan></text>
<path transform="matrix(1,0,0,-1,246.9311,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,246.9311,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="235.001 244.54102 249.31102">0.4</tspan></text>
<path transform="matrix(1,0,0,-1,292.2789,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,292.2789,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="280.349 289.889 294.659">0.5</tspan></text>
<path transform="matrix(1,0,0,-1,337.6267,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,337.6267,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="325.697 335.237 340.007">0.6</tspan></text>
<path transform="matrix(1,0,0,-1,382.9745,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,382.9745,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="371.045 380.58503 385.355">0.7</tspan></text>
<path transform="matrix(1,0,0,-1,428.3222,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,428.3222,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="416.393 425.933 430.703">0.8</tspan></text>
<path transform="matrix(1,0,0,-1,473.67,232)" d="M0 0V-3.5"/>
<path transform="matrix(1,0,0,-1,473.67,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0V-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-37.609" x="461.74 471.28 476.05">0.9</tspan><tspan y="-19.093" x="184.37 190.9881 200.2131 208.0281 213.90811 218.67812 229.14812 238.34313 246.15813 255.38314 260.15315 266.77125 275.49815 284.37815 288.54817 296.79817 300.96818 306.84819 315.72819 320.49818 330.59507 339.79008 345.67008">Test Case Toxicity Rate</tspan></text>
<path transform="matrix(1,0,0,-1,65.54,232)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.54,232)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-50.305" x="34.681 44.221 48.991">0.0</tspan></text>
<path transform="matrix(1,0,0,-1,65.54,171.4226)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.54,171.4226)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-110.882" x="34.681 44.221 48.991">0.2</tspan></text>
<path transform="matrix(1,0,0,-1,65.54,110.8452)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.54,110.8452)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-171.459" x="34.681 44.221 48.991">0.4</tspan></text>
<path transform="matrix(1,0,0,-1,65.54,50.267808)" d="M0 0H-3.5"/>
<path transform="matrix(1,0,0,-1,65.54,50.267808)" stroke-width=".8" stroke-linecap="butt" stroke-linejoin="round" fill="none" stroke="#000000" d="M0 0H-3.5"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="-232.037" x="34.681 44.221 48.991">0.6</tspan></text>
<text xml:space="preserve" transform="matrix(0 -1 1 0 0 288)" font-size="15" font-family="DejaVuSans"><tspan y="27.5556" x="60.3453 69.14029 74.977199 84.157199 93.6822 97.852199 107.077198 121.687198 126.4572 135.2522 141.0891 150.2691 159.7941 168.9891 178.5141 182.6841 186.8541 191.0241 196.9041 205.7841 210.55411 222.10411 231.32912 240.83911 248.65412 252.82411 258.7041">Problem Probability Density</tspan></text>
<path transform="matrix(1,0,0,-1,65.54,232)" stroke-width=".8" stroke-linecap="square" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M0 0V215.8"/>
<path transform="matrix(1,0,0,-1,65.54,232)" stroke-width=".8" stroke-linecap="square" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M0 0H408.13"/>
<path transform="matrix(1,0,0,-1,318.7949,53.690599)" d="M0 0H30V10.5H0Z" fill="#1f77b4" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,53.690599)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#1f77b4" d="M0 0H30V10.5H0Z"/>
<path transform="matrix(1,0,0,-1,318.7949,75.7063)" d="M0 0H30V10.5H0Z" fill="#ff7f0e" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,75.7063)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#ff7f0e" d="M0 0H30V10.5H0Z"/>
<path transform="matrix(1,0,0,-1,318.7949,97.72189)" d="M0 0H30V10.5H0Z" fill="#2ca02c" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,97.72189)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#2ca02c" d="M0 0H30V10.5H0Z"/>
<path transform="matrix(1,0,0,-1,318.7949,119.7375)" d="M0 0H30V10.5H0Z" fill="#d62728" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,119.7375)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#d62728" d="M0 0H30V10.5H0Z"/>
<path transform="matrix(1,0,0,-1,318.7949,141.7531)" d="M0 0H30V10.5H0Z" fill="#9467bd" fill-opacity=".25"/>
<path transform="matrix(1,0,0,-1,318.7949,141.7531)" stroke-width="1" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#9467bd" d="M0 0H30V10.5H0Z"/>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-238.448" x="356.178 362.508 370.833 376.578 384.828 397.473 404.46299 412.95298 418.08299 425.58299 433.08299">cushman-001</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-216.166" x="356.51 364.715 371.705 378.68 383.10499 391.59498 397.92497 402.34996 407.47996 414.97996 422.47996">davinci-001</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-193.551" x="356.51 364.715 371.705 378.68 383.10499 391.59498 397.92497 402.34996 407.47996 414.97996 422.47996">davinci-002</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-169.939" x="356.51">I</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="12" font-family="MinionPro" font-weight="bold"><tspan y="-169.939" x="362.18">N</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-169.939" x="371.06">C</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="12" font-family="MinionPro" font-weight="bold"><tspan y="-169.939" x="381.2 390.392 399.524 406.49598">ODER</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-148.323" x="356.843">C</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="12" font-family="MinionPro" font-weight="bold"><tspan y="-148.3225" x="366.9827 376.17469 385.30668">ODE</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="15" font-family="MinionPro" font-weight="bold"><tspan y="-148.3225" x="392.2787">G</tspan></text>
<text xml:space="preserve" transform="matrix(1 0 -0 1 0 288)" font-size="12" font-family="MinionPro" font-weight="bold"><tspan y="-148.3225" x="403.1837 410.1557">EN</tspan></text>
</svg>

После

Ширина:  |  Высота:  |  Размер: 55 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 50 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 18 KiB