Skip to content

Commit 19a903f

Browse files
authored
Use QwenAudio canonical repository links (#3412)
Co-authored-by: zhifu gao <18321252+LauraGPT@users.noreply.github.com>
1 parent a7a5b94 commit 19a903f

30 files changed

Lines changed: 192 additions & 118 deletions

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ FunASR spans four repositories. Before opening an issue or PR, check which repo
99
| Repository | Owns |
1010
|---|---|
1111
| `modelscope/FunASR` | Toolkit, inference pipelines, deployment services, `funasr` PyPI package |
12-
| `FunAudioLLM/Fun-ASR` | Fun-ASR-Nano / MLT model family, checkpoints, model cards, benchmarks, model-level integrations (Transformers, vLLM, GGUF) |
13-
| `FunAudioLLM/SenseVoice` | SenseVoice model: ASR + emotion + audio events |
12+
| `QwenAudio/Fun-ASR` | Fun-ASR-Nano / MLT model family, checkpoints, model cards, benchmarks, model-level integrations (Transformers, vLLM, GGUF) |
13+
| `QwenAudio/SenseVoice` | SenseVoice model: ASR + emotion + audio events |
1414
| `modelscope/FunClip` | Video transcription, subtitles, Gradio UI |
1515

1616
**Quick test:** does the problem persist with a different model? If yes, it belongs in `modelscope/FunASR`. If it only affects one model, file it in that model's repo.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,12 +344,12 @@ asset is published.
344344
- 2026/05/20: Added Qwen3-ASR (0.6B/1.7B) — 52 languages, auto detection. [usage](examples/industrial_data_pretraining/qwen3_asr)
345345
- 2026/05/20: Added GLM-ASR-Nano (1.5B) — 17 languages, dialect support. [usage](examples/industrial_data_pretraining/glm_asr)
346346
- 2026/05/19: Fun-ASR-Nano and SenseVoice can be combined with VAD and CAM++ for speaker diarization.
347-
- 2025/12/15: [Fun-ASR-Nano-2512](https://github.com/FunAudioLLM/Fun-ASR) — Chinese, English, Japanese, and Chinese dialect support; trained on tens of millions of hours.
347+
- 2025/12/15: [Fun-ASR-Nano-2512](https://github.com/QwenAudio/Fun-ASR) — Chinese, English, Japanese, and Chinese dialect support; trained on tens of millions of hours.
348348

349349
<details><summary>Older</summary>
350350

351351
- 2024/10/10: Whisper-large-v3-turbo support added.
352-
- 2024/07/04: [SenseVoice](https://github.com/FunAudioLLM/SenseVoice) — ASR + emotion + audio events.
352+
- 2024/07/04: [SenseVoice](https://github.com/QwenAudio/SenseVoice) — ASR + emotion + audio events.
353353
- 2024/01/30: FunASR 1.0 released.
354354

355355
</details>

README_ja.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ Whisper は単一モデルですが、**FunASR はツールキット**です—
108108
- 2026/05/20:Qwen3-ASR (0.6B/1.7B) 追加 — 52言語対応。
109109
- 2026/05/20:GLM-ASR-Nano (1.5B) 追加 — 17言語、方言対応。
110110
- 2026/05/19:Fun-ASR-NanoとSenseVoiceは、VADおよびCAM++と組み合わせて話者分離パイプラインを構成できます。
111-
- 2025/12/15:[Fun-ASR-Nano-2512](https://github.com/FunAudioLLM/Fun-ASR) — 中・英・日と中国語方言に対応。
111+
- 2025/12/15:[Fun-ASR-Nano-2512](https://github.com/QwenAudio/Fun-ASR) — 中・英・日と中国語方言に対応。
112112

113113
---
114114

README_ko.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ Whisper는 단일 모델이지만, **FunASR는 툴킷**입니다. 용도에 맞
108108
- 2026/05/20: Qwen3-ASR (0.6B/1.7B) 추가 — 52개 언어 지원.
109109
- 2026/05/20: GLM-ASR-Nano (1.5B) 추가 — 17개 언어, 방언 지원.
110110
- 2026/05/19: Fun-ASR-Nano 및 SenseVoice는 VAD 및 CAM++와 결합하여 화자 분리 파이프라인을 구성할 수 있습니다.
111-
- 2025/12/15: [Fun-ASR-Nano-2512](https://github.com/FunAudioLLM/Fun-ASR) — 중국어, 영어, 일본어 및 중국어 방언 지원.
111+
- 2025/12/15: [Fun-ASR-Nano-2512](https://github.com/QwenAudio/Fun-ASR) — 중국어, 영어, 일본어 및 중국어 방언 지원.
112112

113113
---
114114

README_zh.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,12 +167,12 @@ Whisper 是单个模型,**FunASR 是一个工具箱**——按场景挑模型
167167
- 2026/05/20:新增 Qwen3-ASR (0.6B/1.7B),52 种语言自动检测。[使用方法](examples/industrial_data_pretraining/qwen3_asr)
168168
- 2026/05/20:新增 GLM-ASR-Nano (1.5B),17 种语言,方言优化。[使用方法](examples/industrial_data_pretraining/glm_asr)
169169
- 2026/05/19:Fun-ASR-Nano 和 SenseVoice 可与 VAD、CAM++ 组合为说话人分离 pipeline。
170-
- 2025/12/15:[Fun-ASR-Nano-2512](https://github.com/FunAudioLLM/Fun-ASR) 上线,支持中/英/日及中文方言。
170+
- 2025/12/15:[Fun-ASR-Nano-2512](https://github.com/QwenAudio/Fun-ASR) 上线,支持中/英/日及中文方言。
171171

172172
<details><summary>更早</summary>
173173

174174
- 2024/10/10:支持 Whisper-large-v3-turbo。
175-
- 2024/07/04:[SenseVoice](https://github.com/FunAudioLLM/SenseVoice) 发布。
175+
- 2024/07/04:[SenseVoice](https://github.com/QwenAudio/SenseVoice) 发布。
176176
- 2024/01/30:FunASR 1.0 发布。
177177

178178
</details>

docs/community_growth_20k.md

Lines changed: 15 additions & 15 deletions
Large diffs are not rendered by default.

docs/repository_roles.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This document explains the responsibility boundaries, user entry points, and iss
1212
The four repositories share models and tooling but their responsibility boundaries were never written down, causing two practical problems:
1313

1414
1. **Misrouted issues** — model problems get filed against the toolkit, deployment questions land in model repos, and issues bounce between them.
15-
2. **Duplicate implementation drift** — the same realtime service exists in multiple repositories, and fixes only land in one copy. [#3101](https://github.com/modelscope/FunASR/issues/3101) is a concrete example: an unbounded long-session state bug had to be fixed separately in [#3214](https://github.com/modelscope/FunASR/pull/3214) and [FunAudioLLM/Fun-ASR#135](https://github.com/FunAudioLLM/Fun-ASR/pull/135).
15+
2. **Duplicate implementation drift** — the same realtime service exists in multiple repositories, and fixes only land in one copy. [#3101](https://github.com/modelscope/FunASR/issues/3101) is a concrete example: an unbounded long-session state bug had to be fixed separately in [#3214](https://github.com/modelscope/FunASR/pull/3214) and [QwenAudio/Fun-ASR#135](https://github.com/QwenAudio/Fun-ASR/pull/135).
1616

1717
---
1818

@@ -21,8 +21,8 @@ The four repositories share models and tooling but their responsibility boundari
2121
| Repository | Canonical responsibility | Not here |
2222
|---|---|---|
2323
| [modelscope/FunASR](https://github.com/modelscope/FunASR) (toolkit / runtime) | Framework and inference pipelines, training and fine-tuning, components (VAD / punctuation / ITN / speaker), **deployment services (including realtime WebSocket)**, `funasr` PyPI package | Model weights and model cards; application-layer UI |
24-
| [FunAudioLLM/Fun-ASR](https://github.com/FunAudioLLM/Fun-ASR) (model repo) | Fun-ASR-Nano / MLT model family and LLM-ASR identity: model documentation, weight releases, capability scope (languages / dialects / accents / hotwords / timestamps / speaker), benchmarks, fine-tuning, and model-level integrations (Transformers, vLLM, GGUF) | Service implementation (links to FunASR; no longer maintains its own authoritative copy) |
25-
| [FunAudioLLM/SenseVoice](https://github.com/FunAudioLLM/SenseVoice) (model repo) | SenseVoice speech understanding foundation model: ASR / language identification (LID) / speech emotion recognition (SER) / audio event detection (AED), and model-side usage | General inference framework; deployment services |
24+
| [QwenAudio/Fun-ASR](https://github.com/QwenAudio/Fun-ASR) (model repo) | Fun-ASR-Nano / MLT model family and LLM-ASR identity: model documentation, weight releases, capability scope (languages / dialects / accents / hotwords / timestamps / speaker), benchmarks, fine-tuning, and model-level integrations (Transformers, vLLM, GGUF) | Service implementation (links to FunASR; no longer maintains its own authoritative copy) |
25+
| [QwenAudio/SenseVoice](https://github.com/QwenAudio/SenseVoice) (model repo) | SenseVoice speech understanding foundation model: ASR / language identification (LID) / speech emotion recognition (SER) / audio event detection (AED), and model-side usage | General inference framework; deployment services |
2626
| [modelscope/FunClip](https://github.com/modelscope/FunClip) (application layer) | FunASR-based video transcription, subtitle generation, and LLM-assisted clipping; local Gradio UI | Underlying ASR capabilities and model issues (upstream to FunASR / model repos) |
2727

2828
---
@@ -33,8 +33,8 @@ The four repositories share models and tooling but their responsibility boundari
3333
|---|---|
3434
| Use Python for speech recognition / training / fine-tuning | [modelscope/FunASR](https://github.com/modelscope/FunASR) |
3535
| Deploy a realtime streaming ASR service, recommend **Fun-ASR-Nano + vLLM** | [modelscope/FunASR/fun_asr_nano](https://github.com/modelscope/FunASR/tree/main/examples/industrial_data_pretraining/fun_asr_nano)**canonical implementation, see below** |
36-
| Understand Fun-ASR-Nano / MLT capabilities, checkpoints, benchmarks, or use Transformers / vLLM / GGUF integrations | [FunAudioLLM/Fun-ASR](https://github.com/FunAudioLLM/Fun-ASR) |
37-
| Use emotion recognition / audio event detection | [FunAudioLLM/SenseVoice](https://github.com/FunAudioLLM/SenseVoice) |
36+
| Understand Fun-ASR-Nano / MLT capabilities, checkpoints, benchmarks, or use Transformers / vLLM / GGUF integrations | [QwenAudio/Fun-ASR](https://github.com/QwenAudio/Fun-ASR) |
37+
| Use emotion recognition / audio event detection | [QwenAudio/SenseVoice](https://github.com/QwenAudio/SenseVoice) |
3838
| Generate video subtitles / clip videos | [modelscope/FunClip](https://github.com/modelscope/FunClip) |
3939

4040
---
@@ -46,8 +46,8 @@ The four repositories share models and tooling but their responsibility boundari
4646
| Framework, inference pipeline, training, fine-tuning | `modelscope/FunASR` |
4747
| Deployment services: realtime WebSocket, offline service, SDK | `modelscope/FunASR` |
4848
| VAD / punctuation / ITN / speaker component behavior | `modelscope/FunASR` |
49-
| Fun-ASR model family recognition quality, language support, weights, benchmarks, or model-level integrations (Transformers / vLLM / GGUF) | `FunAudioLLM/Fun-ASR` |
50-
| SenseVoice recognition / emotion / event detection quality | `FunAudioLLM/SenseVoice` |
49+
| Fun-ASR model family recognition quality, language support, weights, benchmarks, or model-level integrations (Transformers / vLLM / GGUF) | `QwenAudio/Fun-ASR` |
50+
| SenseVoice recognition / emotion / event detection quality | `QwenAudio/SenseVoice` |
5151
| Video clipping, subtitle export, Gradio UI | `modelscope/FunClip` |
5252

5353
**Quick test: does the problem persist if you swap in a different model?**
@@ -62,10 +62,10 @@ The four repositories share models and tooling but their responsibility boundari
6262
**The realtime WebSocket service in [Fun-ASR-Nano + vLLM realtime WebSocket service](https://github.com/modelscope/FunASR/blob/main/examples/industrial_data_pretraining/fun_asr_nano/serve_realtime_ws.py) is the recommended implementation.**
6363

6464
- Feature development, bug fixes, and behavior changes **always land in `modelscope/FunASR` first**.
65-
- Model repos (`FunAudioLLM/Fun-ASR`) **link to the canonical implementation only** and no longer describe their own copy as the authoritative version.
65+
- Model repos (`QwenAudio/Fun-ASR`) **link to the canonical implementation only** and no longer describe their own copy as the authoritative version.
6666
- Related issues should all be filed in `modelscope/FunASR`.
6767

68-
**Why:** two copies evolving independently means fixes land in only one. [#3101](https://github.com/modelscope/FunASR/issues/3101) demonstrated the cost — the same unbounded long-session state bug required separate fixes in [#3214](https://github.com/modelscope/FunASR/pull/3214) and [FunAudioLLM/Fun-ASR#135](https://github.com/FunAudioLLM/Fun-ASR/pull/135). Converging to a single canonical source is a Next roadmap item.
68+
**Why:** two copies evolving independently means fixes land in only one. [#3101](https://github.com/modelscope/FunASR/issues/3101) demonstrated the cost — the same unbounded long-session state bug required separate fixes in [#3214](https://github.com/modelscope/FunASR/pull/3214) and [QwenAudio/Fun-ASR#135](https://github.com/QwenAudio/Fun-ASR/pull/135). Converging to a single canonical source is a Next roadmap item.
6969

7070
---
7171

@@ -75,7 +75,7 @@ The four repositories share models and tooling but their responsibility boundari
7575
7676
### Now
7777

78-
- **Bounded realtime long-session state** — fixes merged via [#3214](https://github.com/modelscope/FunASR/pull/3214), diagnostics shipped in `funasr==1.3.19`, and the model-repo mirror fix [FunAudioLLM/Fun-ASR#135](https://github.com/FunAudioLLM/Fun-ASR/pull/135) also merged. [#3101](https://github.com/modelscope/FunASR/issues/3101) remains open while waiting for reporter retest logs.
78+
- **Bounded realtime long-session state** — fixes merged via [#3214](https://github.com/modelscope/FunASR/pull/3214), diagnostics shipped in `funasr==1.3.19`, and the model-repo mirror fix [QwenAudio/Fun-ASR#135](https://github.com/QwenAudio/Fun-ASR/pull/135) also merged. [#3101](https://github.com/modelscope/FunASR/issues/3101) remains open while waiting for reporter retest logs.
7979
- **Fun-ASR-Nano native Transformers integration**[huggingface/transformers#46180](https://github.com/huggingface/transformers/pull/46180); in review. See the linked PR for current CI and review status.
8080
- **Clarify repository roles and issue routing**[#3203](https://github.com/modelscope/FunASR/issues/3203); this document.
8181

docs/repository_roles_zh.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
四个仓库共享同一套模型和工具链,但职责边界此前没有写下来,带来两个实际问题:
1313

1414
1. **Issue 路由错位** —— 模型问题提到工具包,部署问题提到模型仓,来回转派。
15-
2. **重复实现漂移** —— 同一个实时服务在多个仓库各有一份副本,修复只落在其中一处。[#3101](https://github.com/modelscope/FunASR/issues/3101) 就是这样产生的:长会话状态无界的缺陷需要在两个仓库分别修复([#3214](https://github.com/modelscope/FunASR/pull/3214)[FunAudioLLM/Fun-ASR#135](https://github.com/FunAudioLLM/Fun-ASR/pull/135))。
15+
2. **重复实现漂移** —— 同一个实时服务在多个仓库各有一份副本,修复只落在其中一处。[#3101](https://github.com/modelscope/FunASR/issues/3101) 就是这样产生的:长会话状态无界的缺陷需要在两个仓库分别修复([#3214](https://github.com/modelscope/FunASR/pull/3214)[QwenAudio/Fun-ASR#135](https://github.com/QwenAudio/Fun-ASR/pull/135))。
1616

1717
---
1818

@@ -21,8 +21,8 @@
2121
| 仓库 | 核心职责 | 不在这里 |
2222
|---|---|---|
2323
| [modelscope/FunASR](https://github.com/modelscope/FunASR)(工具包 / 运行时) | 框架与推理管线 (pipelines)、训练与微调、VAD / 标点 / ITN / 说话人等组件、**部署服务(含实时 WebSocket 服务)**`funasr` PyPI 包 | 模型权重与 model card;应用层 UI |
24-
| [FunAudioLLM/Fun-ASR](https://github.com/FunAudioLLM/Fun-ASR)(模型仓) | Fun-ASR-Nano / MLT 模型家族与 LLM-ASR 身份:模型说明、权重发布、能力范围(语言 / 方言 / 口音 / 热词 / 时间戳 / 说话人)、模型评测、微调,以及模型级集成(Transformers、vLLM、GGUF) | 服务实现(链接 FunASR,不再自带权威副本) |
25-
| [FunAudioLLM/SenseVoice](https://github.com/FunAudioLLM/SenseVoice)(模型仓) | SenseVoice 语音理解基础模型:ASR / 语种识别(LID) / 情感识别(SER) / 音频事件检测(AED),及其模型侧用法 | 通用推理框架;部署服务 |
24+
| [QwenAudio/Fun-ASR](https://github.com/QwenAudio/Fun-ASR)(模型仓) | Fun-ASR-Nano / MLT 模型家族与 LLM-ASR 身份:模型说明、权重发布、能力范围(语言 / 方言 / 口音 / 热词 / 时间戳 / 说话人)、模型评测、微调,以及模型级集成(Transformers、vLLM、GGUF) | 服务实现(链接 FunASR,不再自带权威副本) |
25+
| [QwenAudio/SenseVoice](https://github.com/QwenAudio/SenseVoice)(模型仓) | SenseVoice 语音理解基础模型:ASR / 语种识别(LID) / 情感识别(SER) / 音频事件检测(AED),及其模型侧用法 | 通用推理框架;部署服务 |
2626
| [modelscope/FunClip](https://github.com/modelscope/FunClip)(应用层) | 基于 FunASR 的视频转写、字幕生成与 LLM 辅助剪辑;本地 Gradio UI | 底层 ASR 能力与模型问题(上游到 FunASR / 模型仓) |
2727

2828
---
@@ -33,8 +33,8 @@
3333
|---|---|
3434
| 用 Python 做语音识别 / 训练 / 微调 | [modelscope/FunASR](https://github.com/modelscope/FunASR) |
3535
| 部署实时流式 ASR 服务,推荐 Fun-ASR-Nano + vLLM 做实时识别 | [modelscope/FunASR/fun_asr_nano](https://github.com/modelscope/FunASR/tree/main/examples/industrial_data_pretraining/fun_asr_nano) —— **推荐实现,见下节** |
36-
| 了解 Fun-ASR-Nano / MLT 的能力范围、权重、评测,或使用 Transformers / vLLM / GGUF 集成 | [FunAudioLLM/Fun-ASR](https://github.com/FunAudioLLM/Fun-ASR) |
37-
| 需要情感识别 / 音频事件检测 | [FunAudioLLM/SenseVoice](https://github.com/FunAudioLLM/SenseVoice) |
36+
| 了解 Fun-ASR-Nano / MLT 的能力范围、权重、评测,或使用 Transformers / vLLM / GGUF 集成 | [QwenAudio/Fun-ASR](https://github.com/QwenAudio/Fun-ASR) |
37+
| 需要情感识别 / 音频事件检测 | [QwenAudio/SenseVoice](https://github.com/QwenAudio/SenseVoice) |
3838
| 做视频字幕 / 剪辑 | [modelscope/FunClip](https://github.com/modelscope/FunClip) |
3939

4040
---
@@ -46,8 +46,8 @@
4646
| 框架、推理管线 (pipelines)、训练、微调 | `modelscope/FunASR` |
4747
| 部署服务:实时 WebSocket、离线服务、SDK | `modelscope/FunASR` |
4848
| VAD / 标点 / ITN / 说话人 组件行为 | `modelscope/FunASR` |
49-
| Fun-ASR 系列模型的识别效果、语言支持、权重、评测,以及 Transformers / vLLM / GGUF 等模型级集成 | `FunAudioLLM/Fun-ASR` |
50-
| SenseVoice 的识别 / 情感 / 事件检测效果 | `FunAudioLLM/SenseVoice` |
49+
| Fun-ASR 系列模型的识别效果、语言支持、权重、评测,以及 Transformers / vLLM / GGUF 等模型级集成 | `QwenAudio/Fun-ASR` |
50+
| SenseVoice 的识别 / 情感 / 事件检测效果 | `QwenAudio/SenseVoice` |
5151
| 视频剪辑、字幕导出、Gradio UI | `modelscope/FunClip` |
5252

5353
**判断法则:换一个模型后问题是否还在?**
@@ -62,10 +62,10 @@
6262
**`modelscope/FunASR` 中的[Fun-ASR-Nano + vLLM 实时 WebSocket 服务](https://github.com/modelscope/FunASR/blob/main/examples/industrial_data_pretraining/fun_asr_nano/serve_realtime_ws.py)是推荐实现。**
6363

6464
- 功能开发、缺陷修复、行为变更,**一律先在 `modelscope/FunASR` 落地**
65-
- 模型仓(`FunAudioLLM/Fun-ASR`)**只链接到权威实现**,不再把自带副本描述为权威实现。
65+
- 模型仓(`QwenAudio/Fun-ASR`)**只链接到权威实现**,不再把自带副本描述为权威实现。
6666
- 相关 issue 一律提到 `modelscope/FunASR`
6767

68-
**为什么:** 两份副本各自演进,修复就会只落在其中一处。[#3101](https://github.com/modelscope/FunASR/issues/3101) 已经暴露过这个代价——同一个长会话状态无界的缺陷,需要分别在 [#3214](https://github.com/modelscope/FunASR/pull/3214)[FunAudioLLM/Fun-ASR#135](https://github.com/FunAudioLLM/Fun-ASR/pull/135) 修两次。收敛到唯一权威实现是 Next 的一项工作。
68+
**为什么:** 两份副本各自演进,修复就会只落在其中一处。[#3101](https://github.com/modelscope/FunASR/issues/3101) 已经暴露过这个代价——同一个长会话状态无界的缺陷,需要分别在 [#3214](https://github.com/modelscope/FunASR/pull/3214)[QwenAudio/Fun-ASR#135](https://github.com/QwenAudio/Fun-ASR/pull/135) 修两次。收敛到唯一权威实现是 Next 的一项工作。
6969

7070
---
7171

@@ -75,7 +75,7 @@
7575
7676
### 当前
7777

78-
- **实时服务长会话有界状态** —— 修复已由 [#3214](https://github.com/modelscope/FunASR/pull/3214) 合并,诊断能力已随 `funasr==1.3.19` 发布;模型仓镜像修复 [FunAudioLLM/Fun-ASR#135](https://github.com/FunAudioLLM/Fun-ASR/pull/135) 亦已合并。[#3101](https://github.com/modelscope/FunASR/issues/3101) 仍保持 open,等待 reporter 提供复测日志。
78+
- **实时服务长会话有界状态** —— 修复已由 [#3214](https://github.com/modelscope/FunASR/pull/3214) 合并,诊断能力已随 `funasr==1.3.19` 发布;模型仓镜像修复 [QwenAudio/Fun-ASR#135](https://github.com/QwenAudio/Fun-ASR/pull/135) 亦已合并。[#3101](https://github.com/modelscope/FunASR/issues/3101) 仍保持 open,等待 reporter 提供复测日志。
7979
- **Fun-ASR-Nano 的 Transformers 原生集成** —— [huggingface/transformers#46180](https://github.com/huggingface/transformers/pull/46180),正在审查中;当前 CI 与审查状态请以链接的 PR 为准。
8080
- **明确四仓职责与 issue 路由** —— [#3203](https://github.com/modelscope/FunASR/issues/3203);即本文档。
8181

0 commit comments

Comments
 (0)