Spaces:
Runtime error
Runtime error
Rakesh Chavhan
commited on
Commit
•
7c6e09a
1
Parent(s):
f1e1726
Update README_CN.md
Browse files- README_CN.md +0 -275
README_CN.md
CHANGED
@@ -1,276 +1 @@
|
|
1 |
-
<p align="center">
|
2 |
-
<img src="assets/realesrgan_logo.png" height=120>
|
3 |
-
</p>
|
4 |
|
5 |
-
## <div align="center"><b><a href="README.md">English</a> | <a href="README_CN.md">简体中文</a></b></div>
|
6 |
-
|
7 |
-
[![download](https://img.shields.io/github/downloads/xinntao/Real-ESRGAN/total.svg)](https://github.com/xinntao/Real-ESRGAN/releases)
|
8 |
-
[![PyPI](https://img.shields.io/pypi/v/realesrgan)](https://pypi.org/project/realesrgan/)
|
9 |
-
[![Open issue](https://img.shields.io/github/issues/xinntao/Real-ESRGAN)](https://github.com/xinntao/Real-ESRGAN/issues)
|
10 |
-
[![Closed issue](https://img.shields.io/github/issues-closed/xinntao/Real-ESRGAN)](https://github.com/xinntao/Real-ESRGAN/issues)
|
11 |
-
[![LICENSE](https://img.shields.io/github/license/xinntao/Real-ESRGAN.svg)](https://github.com/xinntao/Real-ESRGAN/blob/master/LICENSE)
|
12 |
-
[![python lint](https://github.com/xinntao/Real-ESRGAN/actions/workflows/pylint.yml/badge.svg)](https://github.com/xinntao/Real-ESRGAN/blob/master/.github/workflows/pylint.yml)
|
13 |
-
[![Publish-pip](https://github.com/xinntao/Real-ESRGAN/actions/workflows/publish-pip.yml/badge.svg)](https://github.com/xinntao/Real-ESRGAN/blob/master/.github/workflows/publish-pip.yml)
|
14 |
-
|
15 |
-
:fire: 更新动漫视频的小模型 **RealESRGAN AnimeVideo-v3**. 更多信息在 [[动漫视频模型介绍](docs/anime_video_model.md)] 和 [[比较](docs/anime_comparisons_CN.md)] 中.
|
16 |
-
|
17 |
-
1. Real-ESRGAN的[Colab Demo](https://colab.research.google.com/drive/1k2Zod6kSHEvraybHl50Lys0LerhyTMCo?usp=sharing) | Real-ESRGAN**动漫视频** 的[Colab Demo](https://colab.research.google.com/drive/1yNl9ORUxxlL4N0keJa2SEPB61imPQd1B?usp=sharing)
|
18 |
-
2. **支持Intel/AMD/Nvidia显卡**的绿色版exe文件: [Windows版](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-windows.zip) / [Linux版](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-ubuntu.zip) / [macOS版](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-macos.zip),详情请移步[这里](#便携版(绿色版)可执行文件)。NCNN的实现在 [Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan)。
|
19 |
-
|
20 |
-
Real-ESRGAN 的目标是开发出**实用的图像/视频修复算法**。<br>
|
21 |
-
我们在 ESRGAN 的基础上使用纯合成的数据来进行训练,以使其能被应用于实际的图片修复的场景(顾名思义:Real-ESRGAN)。
|
22 |
-
|
23 |
-
:art: Real-ESRGAN 需要,也很欢迎你的贡献,如新功能、模型、bug修复、建议、维护等等。详情可以查看[CONTRIBUTING.md](docs/CONTRIBUTING.md),所有的贡献者都会被列在[此处](README_CN.md#hugs-感谢)。
|
24 |
-
|
25 |
-
:milky_way: 感谢大家提供了很好的反馈。这些反馈会逐步更新在 [这个文档](docs/feedback.md)。
|
26 |
-
|
27 |
-
:question: 常见的问题可以在[FAQ.md](docs/FAQ.md)中找到答案。(好吧,现在还是空白的=-=||)
|
28 |
-
|
29 |
-
---
|
30 |
-
|
31 |
-
如果 Real-ESRGAN 对你有帮助,可以给本项目一个 Star :star: ,或者推荐给你的朋友们,谢谢!:blush: <br/>
|
32 |
-
其他推荐的项目:<br/>
|
33 |
-
:arrow_forward: [GFPGAN](https://github.com/TencentARC/GFPGAN): 实用的人脸复原算法 <br>
|
34 |
-
:arrow_forward: [BasicSR](https://github.com/xinntao/BasicSR): 开源的图像和视频工具箱<br>
|
35 |
-
:arrow_forward: [facexlib](https://github.com/xinntao/facexlib): 提供与人脸相关的工具箱<br>
|
36 |
-
:arrow_forward: [HandyView](https://github.com/xinntao/HandyView): 基于PyQt5的图片查看器,方便查看以及比较 <br>
|
37 |
-
|
38 |
-
---
|
39 |
-
|
40 |
-
<!---------------------------------- Updates --------------------------->
|
41 |
-
<details>
|
42 |
-
<summary>🚩<b>更新</b></summary>
|
43 |
-
|
44 |
-
- ✅ 更新动漫视频的小模型 **RealESRGAN AnimeVideo-v3**. 更多信息在 [anime video models](docs/anime_video_model.md) 和 [comparisons](docs/anime_comparisons.md)中.
|
45 |
-
- ✅ 添加了针对动漫视频的小模型, 更多信息在 [anime video models](docs/anime_video_model.md) 中.
|
46 |
-
- ✅ 添加了ncnn 实现:[Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan).
|
47 |
-
- ✅ 添加了 [*RealESRGAN_x4plus_anime_6B.pth*](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth),对二次元图片进行了优化,并减少了model的大小。详情 以及 与[waifu2x](https://github.com/nihui/waifu2x-ncnn-vulkan)的对比请查看[**anime_model.md**](docs/anime_model.md)
|
48 |
-
- ✅支持用户在自己的数据上进行微调 (finetune):[详情](docs/Training.md#Finetune-Real-ESRGAN-on-your-own-dataset)
|
49 |
-
- ✅ 支持使用[GFPGAN](https://github.com/TencentARC/GFPGAN)**增强人脸**
|
50 |
-
- ✅ 通过[Gradio](https://github.com/gradio-app/gradio)添加到了[Huggingface Spaces](https://huggingface.co/spaces)(一个机器学习应用的在线平台):[Gradio在线版](https://huggingface.co/spaces/akhaliq/Real-ESRGAN)。感谢[@AK391](https://github.com/AK391)
|
51 |
-
- ✅ 支持任意比例的缩放:`--outscale`(实际上使用`LANCZOS4`来更进一步调整输出图像的尺寸)。添加了*RealESRGAN_x2plus.pth*模型
|
52 |
-
- ✅ [推断脚本](inference_realesrgan.py)支持: 1) 分块处理**tile**; 2) 带**alpha通道**的图像; 3) **灰色**图像; 4) **16-bit**图像.
|
53 |
-
- ✅ 训练代码已经发布,具体做法可查看:[Training.md](docs/Training.md)。
|
54 |
-
|
55 |
-
</details>
|
56 |
-
|
57 |
-
<!---------------------------------- Projects that use Real-ESRGAN --------------------------->
|
58 |
-
<details>
|
59 |
-
<summary>🧩<b>使用Real-ESRGAN的项目</b></summary>
|
60 |
-
|
61 |
-
👋 如果你开发/使用/集成了Real-ESRGAN, 欢迎联系我添加
|
62 |
-
|
63 |
-
- NCNN-Android: [RealSR-NCNN-Android](https://github.com/tumuyan/RealSR-NCNN-Android) by [tumuyan](https://github.com/tumuyan)
|
64 |
-
- VapourSynth: [vs-realesrgan](https://github.com/HolyWu/vs-realesrgan) by [HolyWu](https://github.com/HolyWu)
|
65 |
-
- NCNN: [Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan)
|
66 |
-
|
67 |
-
**易用的图形界面**
|
68 |
-
|
69 |
-
- [Waifu2x-Extension-GUI](https://github.com/AaronFeng753/Waifu2x-Extension-GUI) by [AaronFeng753](https://github.com/AaronFeng753)
|
70 |
-
- [Squirrel-RIFE](https://github.com/Justin62628/Squirrel-RIFE) by [Justin62628](https://github.com/Justin62628)
|
71 |
-
- [Real-GUI](https://github.com/scifx/Real-GUI) by [scifx](https://github.com/scifx)
|
72 |
-
- [Real-ESRGAN_GUI](https://github.com/net2cn/Real-ESRGAN_GUI) by [net2cn](https://github.com/net2cn)
|
73 |
-
- [Real-ESRGAN-EGUI](https://github.com/WGzeyu/Real-ESRGAN-EGUI) by [WGzeyu](https://github.com/WGzeyu)
|
74 |
-
- [anime_upscaler](https://github.com/shangar21/anime_upscaler) by [shangar21](https://github.com/shangar21)
|
75 |
-
- [RealESRGAN-GUI](https://github.com/Baiyuetribe/paper2gui/blob/main/Video%20Super%20Resolution/RealESRGAN-GUI.md) by [Baiyuetribe](https://github.com/Baiyuetribe)
|
76 |
-
|
77 |
-
</details>
|
78 |
-
|
79 |
-
<details>
|
80 |
-
<summary>👀<b>Demo视频(B站)</b></summary>
|
81 |
-
|
82 |
-
- [大闹天宫片段](https://www.bilibili.com/video/BV1ja41117zb)
|
83 |
-
|
84 |
-
</details>
|
85 |
-
|
86 |
-
### :book: Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data
|
87 |
-
|
88 |
-
> [[论文](https://arxiv.org/abs/2107.10833)]   [项目主页]   [[YouTube 视频](https://www.youtube.com/watch?v=fxHWoDSSvSc)]   [[B站视频](https://www.bilibili.com/video/BV1H34y1m7sS/)]   [[Poster](https://xinntao.github.io/projects/RealESRGAN_src/RealESRGAN_poster.pdf)]   [[PPT](https://docs.google.com/presentation/d/1QtW6Iy8rm8rGLsJ0Ldti6kP-7Qyzy6XL/edit?usp=sharing&ouid=109799856763657548160&rtpof=true&sd=true)]<br>
|
89 |
-
> [Xintao Wang](https://xinntao.github.io/), Liangbin Xie, [Chao Dong](https://scholar.google.com.hk/citations?user=OSDCB0UAAAAJ), [Ying Shan](https://scholar.google.com/citations?user=4oXBp9UAAAAJ&hl=en) <br>
|
90 |
-
> Tencent ARC Lab; Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
|
91 |
-
|
92 |
-
<p align="center">
|
93 |
-
<img src="assets/teaser.jpg">
|
94 |
-
</p>
|
95 |
-
|
96 |
-
---
|
97 |
-
|
98 |
-
我们提供了一套训练好的模型(*RealESRGAN_x4plus.pth*),可以进行4倍的超分辨率。<br>
|
99 |
-
**现在的 Real-ESRGAN 还是有几率失败的,因为现实生活的降质过程比较复杂。**<br>
|
100 |
-
而且,本项目对**人脸以及文字之类**的效果还不是太好,但是我们会持续进行优化的。<br>
|
101 |
-
|
102 |
-
Real-ESRGAN 将会被长期支持,我会在空闲的时间中持续维护更新。
|
103 |
-
|
104 |
-
这些是未来计划的几个新功能:
|
105 |
-
|
106 |
-
- [ ] 优化人脸
|
107 |
-
- [ ] 优化文字
|
108 |
-
- [x] 优化动画图像
|
109 |
-
- [ ] 支持更多的超分辨率比例
|
110 |
-
- [ ] 可调节的复原
|
111 |
-
|
112 |
-
如果你有好主意或需求,欢迎在 issue 或 discussion 中提出。<br/>
|
113 |
-
如果你有一些 Real-ESRGAN 中有问题的照片,你也可以在 issue 或者 discussion 中发出来。我会留意(但是不一定能解决:stuck_out_tongue:)。如果有必要的话,我还会专门开一页来记录那些有待解决的图像。
|
114 |
-
|
115 |
-
---
|
116 |
-
|
117 |
-
### 便携版(绿色版)可执行文件
|
118 |
-
|
119 |
-
你可以下载**支持Intel/AMD/Nvidia显卡**的绿色版exe文件: [Windows版](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-windows.zip) / [Linux版](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-ubuntu.zip) / [macOS版](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-macos.zip)。
|
120 |
-
|
121 |
-
绿色版指的是这些exe你可以直接运行(放U盘里拷走都没问题),因为里面已经有所需的文件和模型了。它不需要 CUDA 或者 PyTorch运行环境。<br>
|
122 |
-
|
123 |
-
你可以通过下面这个命令来运行(Windows版本的例子,更多信息请查看对应版本的README.md):
|
124 |
-
|
125 |
-
```bash
|
126 |
-
./realesrgan-ncnn-vulkan.exe -i 输入图像.jpg -o 输出图像.png -n 模型名字
|
127 |
-
```
|
128 |
-
|
129 |
-
我们提供了五种模型:
|
130 |
-
|
131 |
-
1. realesrgan-x4plus(默认)
|
132 |
-
2. reaesrnet-x4plus
|
133 |
-
3. realesrgan-x4plus-anime(针对动漫插画图像优化,有更小的体积)
|
134 |
-
4. realesr-animevideov3 (针对动漫视频)
|
135 |
-
|
136 |
-
你可以通过`-n`参数来使用其他模型,例如`./realesrgan-ncnn-vulkan.exe -i 二次元图片.jpg -o 二刺螈图片.png -n realesrgan-x4plus-anime`
|
137 |
-
|
138 |
-
### 可执行文件的用法
|
139 |
-
|
140 |
-
1. 更多细节可以参考 [Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan#computer-usages).
|
141 |
-
2. 注意:可执行文件并没有支持 python 脚本 `inference_realesrgan.py` 中所有的功能,比如 `outscale` 选项) .
|
142 |
-
|
143 |
-
```console
|
144 |
-
Usage: realesrgan-ncnn-vulkan.exe -i infile -o outfile [options]...
|
145 |
-
|
146 |
-
-h show this help
|
147 |
-
-i input-path input image path (jpg/png/webp) or directory
|
148 |
-
-o output-path output image path (jpg/png/webp) or directory
|
149 |
-
-s scale upscale ratio (can be 2, 3, 4. default=4)
|
150 |
-
-t tile-size tile size (>=32/0=auto, default=0) can be 0,0,0 for multi-gpu
|
151 |
-
-m model-path folder path to the pre-trained models. default=models
|
152 |
-
-n model-name model name (default=realesr-animevideov3, can be realesr-animevideov3 | realesrgan-x4plus | realesrgan-x4plus-anime | realesrnet-x4plus)
|
153 |
-
-g gpu-id gpu device to use (default=auto) can be 0,1,2 for multi-gpu
|
154 |
-
-j load:proc:save thread count for load/proc/save (default=1:2:2) can be 1:2,2,2:2 for multi-gpu
|
155 |
-
-x enable tta mode"
|
156 |
-
-f format output image format (jpg/png/webp, default=ext/png)
|
157 |
-
-v verbose output
|
158 |
-
```
|
159 |
-
|
160 |
-
由于这些exe文件会把图像分成几个板块,然后来分别进行处理,再合成导出,输出的图像可能会有一点割裂感(而且可能跟PyTorch的输出不太一样)
|
161 |
-
|
162 |
-
---
|
163 |
-
|
164 |
-
## :wrench: 依赖以及安装
|
165 |
-
|
166 |
-
- Python >= 3.7 (推荐使用[Anaconda](https://www.anaconda.com/download/#linux)或[Miniconda](https://docs.conda.io/en/latest/miniconda.html))
|
167 |
-
- [PyTorch >= 1.7](https://pytorch.org/)
|
168 |
-
|
169 |
-
#### 安装
|
170 |
-
|
171 |
-
1. 把项目克隆到本地
|
172 |
-
|
173 |
-
```bash
|
174 |
-
git clone https://github.com/xinntao/Real-ESRGAN.git
|
175 |
-
cd Real-ESRGAN
|
176 |
-
```
|
177 |
-
|
178 |
-
2. 安装各种依赖
|
179 |
-
|
180 |
-
```bash
|
181 |
-
# 安装 basicsr - https://github.com/xinntao/BasicSR
|
182 |
-
# 我们使用BasicSR来训练以及推断
|
183 |
-
pip install basicsr
|
184 |
-
# facexlib和gfpgan是用来增强人脸的
|
185 |
-
pip install facexlib
|
186 |
-
pip install gfpgan
|
187 |
-
pip install -r requirements.txt
|
188 |
-
python setup.py develop
|
189 |
-
```
|
190 |
-
|
191 |
-
## :zap: 快速上手
|
192 |
-
|
193 |
-
### 普通图片
|
194 |
-
|
195 |
-
下载我们训练好的模型: [RealESRGAN_x4plus.pth](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth)
|
196 |
-
|
197 |
-
```bash
|
198 |
-
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P weights
|
199 |
-
```
|
200 |
-
|
201 |
-
推断!
|
202 |
-
|
203 |
-
```bash
|
204 |
-
python inference_realesrgan.py -n RealESRGAN_x4plus -i inputs --face_enhance
|
205 |
-
```
|
206 |
-
|
207 |
-
结果在`results`文件夹
|
208 |
-
|
209 |
-
### 动画图片
|
210 |
-
|
211 |
-
<p align="center">
|
212 |
-
<img src="https://raw.githubusercontent.com/xinntao/public-figures/master/Real-ESRGAN/cmp_realesrgan_anime_1.png">
|
213 |
-
</p>
|
214 |
-
|
215 |
-
训练好的模型: [RealESRGAN_x4plus_anime_6B](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth)<br>
|
216 |
-
有关[waifu2x](https://github.com/nihui/waifu2x-ncnn-vulkan)的更多信息和对比在[**anime_model.md**](docs/anime_model.md)中。
|
217 |
-
|
218 |
-
```bash
|
219 |
-
# 下载模型
|
220 |
-
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth -P weights
|
221 |
-
# 推断
|
222 |
-
python inference_realesrgan.py -n RealESRGAN_x4plus_anime_6B -i inputs
|
223 |
-
```
|
224 |
-
|
225 |
-
结果在`results`文件夹
|
226 |
-
|
227 |
-
### Python 脚本的用法
|
228 |
-
|
229 |
-
1. 虽然你使用了 X4 模型,但是你可以 **输出任意尺寸比例的图片**,只要实用了 `outscale` 参数. 程序会进一步对模型的输出图像进行缩放。
|
230 |
-
|
231 |
-
```console
|
232 |
-
Usage: python inference_realesrgan.py -n RealESRGAN_x4plus -i infile -o outfile [options]...
|
233 |
-
|
234 |
-
A common command: python inference_realesrgan.py -n RealESRGAN_x4plus -i infile --outscale 3.5 --face_enhance
|
235 |
-
|
236 |
-
-h show this help
|
237 |
-
-i --input Input image or folder. Default: inputs
|
238 |
-
-o --output Output folder. Default: results
|
239 |
-
-n --model_name Model name. Default: RealESRGAN_x4plus
|
240 |
-
-s, --outscale The final upsampling scale of the image. Default: 4
|
241 |
-
--suffix Suffix of the restored image. Default: out
|
242 |
-
-t, --tile Tile size, 0 for no tile during testing. Default: 0
|
243 |
-
--face_enhance Whether to use GFPGAN to enhance face. Default: False
|
244 |
-
--fp32 Whether to use half precision during inference. Default: False
|
245 |
-
--ext Image extension. Options: auto | jpg | png, auto means using the same extension as inputs. Default: auto
|
246 |
-
```
|
247 |
-
|
248 |
-
## :european_castle: 模型库
|
249 |
-
|
250 |
-
请参见 [docs/model_zoo.md](docs/model_zoo.md)
|
251 |
-
|
252 |
-
## :computer: 训练,在你的数据上微调(Fine-tune)
|
253 |
-
|
254 |
-
这里有一份详细的指南:[Training.md](docs/Training.md).
|
255 |
-
|
256 |
-
## BibTeX 引用
|
257 |
-
|
258 |
-
@Article{wang2021realesrgan,
|
259 |
-
title={Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data},
|
260 |
-
author={Xintao Wang and Liangbin Xie and Chao Dong and Ying Shan},
|
261 |
-
journal={arXiv:2107.10833},
|
262 |
-
year={2021}
|
263 |
-
}
|
264 |
-
|
265 |
-
## :e-mail: 联系我们
|
266 |
-
|
267 |
-
如果你有任何问题,请通过 `xintao.wang@outlook.com` 或 `xintaowang@tencent.com` 联系我们。
|
268 |
-
|
269 |
-
## :hugs: 感谢
|
270 |
-
|
271 |
-
感谢所有的贡献者大大们~
|
272 |
-
|
273 |
-
- [AK391](https://github.com/AK391): 通过[Gradio](https://github.com/gradio-app/gradio)添加到了[Huggingface Spaces](https://huggingface.co/spaces)(一个机器学习应用的在线平台):[Gradio在线版](https://huggingface.co/spaces/akhaliq/Real-ESRGAN)。
|
274 |
-
- [Asiimoviet](https://github.com/Asiimoviet): 把 README.md 文档 翻译成了中文。
|
275 |
-
- [2ji3150](https://github.com/2ji3150): 感谢详尽并且富有价值的[反馈、建议](https://github.com/xinntao/Real-ESRGAN/issues/131).
|
276 |
-
- [Jared-02](https://github.com/Jared-02): 把 Training.md 文档 翻译成了中文。
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|