mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 21:52:49 +00:00
ノイズ除去レベル3を追加
This commit is contained in:
parent
1497e4f128
commit
77b84972b3
11
README.md
11
README.md
@ -7,7 +7,7 @@
|
|||||||
[Caffe](http://caffe.berkeleyvision.org/)を用いて書き直し、Windows向けにビルドしたソフトです。
|
[Caffe](http://caffe.berkeleyvision.org/)を用いて書き直し、Windows向けにビルドしたソフトです。
|
||||||
CPUで変換することも出来ますが、CUDA(あるいはcuDNN)を使うとCPUより高速に変換することが出来ます。
|
CPUで変換することも出来ますが、CUDA(あるいはcuDNN)を使うとCPUより高速に変換することが出来ます。
|
||||||
|
|
||||||
GUI supports English and Japanese and Simplified Chinese and Korean.
|
GUI supports English and Japanese and Simplified Chinese and Traditional Chinese and Korean and Turkish.
|
||||||
|
|
||||||
|
|
||||||
要求環境
|
要求環境
|
||||||
@ -262,9 +262,9 @@ waifu2x-caffe-cui.exe -i mywaifu.png -m noise_scale --scale_ratio 1.6 --noise_le
|
|||||||
画像の縦横比を維持したまま、指定された縦幅になるように拡大します(単位はピクセル)。
|
画像の縦横比を維持したまま、指定された縦幅になるように拡大します(単位はピクセル)。
|
||||||
scale_widthと同時に指定することは出来ません。
|
scale_widthと同時に指定することは出来ません。
|
||||||
|
|
||||||
###-n <1|2>, --noise_level <1|2>
|
###-n <1|2|3>, --noise_level <1|2|3>
|
||||||
ノイズ除去レベルを指定します。ノイズ除去用のモデルはレベル1とレベル2のみ用意されているので、
|
ノイズ除去レベルを指定します。ノイズ除去用のモデルはレベル1とレベル2とレベル3のみ用意されているので、
|
||||||
1 もしくは 2 を指定して下さい。
|
1 か 2 か 3 を指定して下さい。
|
||||||
デフォルト値は`1`です。
|
デフォルト値は`1`です。
|
||||||
|
|
||||||
###--model_dir <文字列>
|
###--model_dir <文字列>
|
||||||
@ -371,4 +371,5 @@ ex.
|
|||||||
オリジナルのwaifu2xを元に[waifu2x-converter](https://github.com/WL-Amigo/waifu2x-converter-cpp)を作成して下さった [アミーゴ](https://twitter.com/WL_Amigo)さん(READMEやLICENSE.txtの書き方、OpenCVの使い方等かなり参考にさせていただきました)
|
オリジナルのwaifu2xを元に[waifu2x-converter](https://github.com/WL-Amigo/waifu2x-converter-cpp)を作成して下さった [アミーゴ](https://twitter.com/WL_Amigo)さん(READMEやLICENSE.txtの書き方、OpenCVの使い方等かなり参考にさせていただきました)
|
||||||
に、感謝します。
|
に、感謝します。
|
||||||
また、メッセージを英訳してくださった @paul70078 さん、メッセージを中国語(簡体字)に翻訳してくださった @yoonhakcher さん、中国語(簡体字)訳のプルリクエストを下さった @mzhboy さん、
|
また、メッセージを英訳してくださった @paul70078 さん、メッセージを中国語(簡体字)に翻訳してくださった @yoonhakcher さん、中国語(簡体字)訳のプルリクエストを下さった @mzhboy さん、
|
||||||
メッセージを韓国語に翻訳してくださった @kenin0726 さん、韓国語訳の改善を提案してくださった @aruhirin さん、メッセージを中国語(繁体字)に翻訳してくださった @lizardon1995 さん、@yoonhakcher さんに感謝します。
|
メッセージを韓国語に翻訳してくださった @kenin0726 さん、韓国語訳の改善を提案してくださった @aruhirin さん、
|
||||||
|
メッセージを中国語(繁体字)に翻訳してくださった @lizardon1995 さん、@yoonhakcher さん、トルコ語訳のプルリクエストを下さった @Scharynche さん に感謝します。
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"IDC_STATIC_IO_SETTING":"输入和输出设置",
|
"IDC_STATIC_IO_SETTING":"输入和输出设置",
|
||||||
"IDC_STATIC_INPUT_PATH":"输入\r\n(文件或文件夹)",
|
"IDC_STATIC_INPUT_PATH":"输入\r\n(文件或文件夹)",
|
||||||
"IDC_BUTTON_INPUT_REF":"选择",
|
"IDC_BUTTON_INPUT_REF":"选择",
|
||||||
@ -20,6 +20,7 @@
|
|||||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG 降噪等级",
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG 降噪等级",
|
||||||
"IDC_RADIONOISE_LEVEL1":"1 级",
|
"IDC_RADIONOISE_LEVEL1":"1 级",
|
||||||
"IDC_RADIONOISE_LEVEL2":"2 级",
|
"IDC_RADIONOISE_LEVEL2":"2 级",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"3 级",
|
||||||
"IDC_STATIC_SCALE_RATE":"放大尺寸",
|
"IDC_STATIC_SCALE_RATE":"放大尺寸",
|
||||||
"IDC_RADIO_SCALE_RATIO":"放大倍率",
|
"IDC_RADIO_SCALE_RATIO":"放大倍率",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"放大后宽度",
|
"IDC_RADIO_SCALE_WIDTH":"放大后宽度",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"IDC_STATIC_IO_SETTING":"輸入和輸出設置",
|
"IDC_STATIC_IO_SETTING":"輸入和輸出設置",
|
||||||
"IDC_STATIC_INPUT_PATH":"輸入路徑\r\n(可使用文件夾)",
|
"IDC_STATIC_INPUT_PATH":"輸入路徑\r\n(可使用文件夾)",
|
||||||
"IDC_BUTTON_INPUT_REF":"瀏覽文件",
|
"IDC_BUTTON_INPUT_REF":"瀏覽文件",
|
||||||
@ -20,6 +20,7 @@
|
|||||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG降噪水平",
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG降噪水平",
|
||||||
"IDC_RADIONOISE_LEVEL1":"等級1",
|
"IDC_RADIONOISE_LEVEL1":"等級1",
|
||||||
"IDC_RADIONOISE_LEVEL2":"等級2",
|
"IDC_RADIONOISE_LEVEL2":"等級2",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"等級3",
|
||||||
"IDC_STATIC_SCALE_RATE":"放大大小",
|
"IDC_STATIC_SCALE_RATE":"放大大小",
|
||||||
"IDC_RADIO_SCALE_RATIO":"放大比率",
|
"IDC_RADIO_SCALE_RATIO":"放大比率",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"轉換後高度",
|
"IDC_RADIO_SCALE_WIDTH":"轉換後高度",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
;LangName LangID SubLangID FileName
|
;LangName LangID SubLangID FileName
|
||||||
English(US) 0x09 0x01 english.json
|
English(US) 0x09 0x01 english.json
|
||||||
Türkçe(TR) 0x1F 0x01 turkish.json
|
Türkçe(TR) 0x1F 0x01 turkish.json
|
||||||
日本語 0x11 0x01 japanese.json
|
日本語 0x11 0x01 japanese.json
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG denoise level",
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG denoise level",
|
||||||
"IDC_RADIONOISE_LEVEL1":"Level 1",
|
"IDC_RADIONOISE_LEVEL1":"Level 1",
|
||||||
"IDC_RADIONOISE_LEVEL2":"Level 2",
|
"IDC_RADIONOISE_LEVEL2":"Level 2",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"Level 3",
|
||||||
"IDC_STATIC_SCALE_RATE":"Magnification size",
|
"IDC_STATIC_SCALE_RATE":"Magnification size",
|
||||||
"IDC_RADIO_SCALE_RATIO":"Set rate",
|
"IDC_RADIO_SCALE_RATIO":"Set rate",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"Set trans width",
|
"IDC_RADIO_SCALE_WIDTH":"Set trans width",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"IDC_STATIC_IO_SETTING":"入出力設定",
|
"IDC_STATIC_IO_SETTING":"入出力設定",
|
||||||
"IDC_STATIC_INPUT_PATH":"入力パス\r\n(フォルダでも複数でもOK)",
|
"IDC_STATIC_INPUT_PATH":"入力パス\r\n(フォルダでも複数でもOK)",
|
||||||
"IDC_BUTTON_INPUT_REF":"参照",
|
"IDC_BUTTON_INPUT_REF":"参照",
|
||||||
@ -20,6 +20,7 @@
|
|||||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEGノイズ除去レベル",
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEGノイズ除去レベル",
|
||||||
"IDC_RADIONOISE_LEVEL1":"レベル1",
|
"IDC_RADIONOISE_LEVEL1":"レベル1",
|
||||||
"IDC_RADIONOISE_LEVEL2":"レベル2",
|
"IDC_RADIONOISE_LEVEL2":"レベル2",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"レベル3",
|
||||||
"IDC_STATIC_SCALE_RATE":"拡大サイズ",
|
"IDC_STATIC_SCALE_RATE":"拡大サイズ",
|
||||||
"IDC_RADIO_SCALE_RATIO":"拡大率で指定",
|
"IDC_RADIO_SCALE_RATIO":"拡大率で指定",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"変換後の横幅で指定",
|
"IDC_RADIO_SCALE_WIDTH":"変換後の横幅で指定",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"IDC_STATIC_IO_SETTING":"입출력 설정",
|
"IDC_STATIC_IO_SETTING":"입출력 설정",
|
||||||
"IDC_STATIC_INPUT_PATH":"입력 경로\r\n(파일 및 폴더)",
|
"IDC_STATIC_INPUT_PATH":"입력 경로\r\n(파일 및 폴더)",
|
||||||
"IDC_BUTTON_INPUT_REF":"찾기",
|
"IDC_BUTTON_INPUT_REF":"찾기",
|
||||||
@ -20,6 +20,7 @@
|
|||||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG 노이즈 제거 단계",
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG 노이즈 제거 단계",
|
||||||
"IDC_RADIONOISE_LEVEL1":"1단계",
|
"IDC_RADIONOISE_LEVEL1":"1단계",
|
||||||
"IDC_RADIONOISE_LEVEL2":"2단계",
|
"IDC_RADIONOISE_LEVEL2":"2단계",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"3단계",
|
||||||
"IDC_STATIC_SCALE_RATE":"확대 크기",
|
"IDC_STATIC_SCALE_RATE":"확대 크기",
|
||||||
"IDC_RADIO_SCALE_RATIO":"확대율로 설정",
|
"IDC_RADIO_SCALE_RATIO":"확대율로 설정",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"변환 후의 가로 너비",
|
"IDC_RADIO_SCALE_WIDTH":"변환 후의 가로 너비",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"IDC_STATIC_IO_SETTING":"Girdi/Çıktı Ayarları",
|
"IDC_STATIC_IO_SETTING":"Girdi/Çıktı Ayarları",
|
||||||
"IDC_STATIC_INPUT_PATH":"Girdi Yolu\r\n(dosya veya klasör)",
|
"IDC_STATIC_INPUT_PATH":"Girdi Yolu\r\n(dosya veya klasör)",
|
||||||
"IDC_BUTTON_INPUT_REF":"Gözat",
|
"IDC_BUTTON_INPUT_REF":"Gözat",
|
||||||
@ -20,6 +20,7 @@
|
|||||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG gürültüsüzleştirme düzeyi",
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"JPEG gürültüsüzleştirme düzeyi",
|
||||||
"IDC_RADIONOISE_LEVEL1":"Seviye 1",
|
"IDC_RADIONOISE_LEVEL1":"Seviye 1",
|
||||||
"IDC_RADIONOISE_LEVEL2":"Seviye 2",
|
"IDC_RADIONOISE_LEVEL2":"Seviye 2",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"Seviye 3",
|
||||||
"IDC_STATIC_SCALE_RATE":"Büyütme oranı",
|
"IDC_STATIC_SCALE_RATE":"Büyütme oranı",
|
||||||
"IDC_RADIO_SCALE_RATIO":"Oran belirle",
|
"IDC_RADIO_SCALE_RATIO":"Oran belirle",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"Hedef en belirle",
|
"IDC_RADIO_SCALE_WIDTH":"Hedef en belirle",
|
||||||
|
1
bin/models/anime_style_art/noise3_model.json
Normal file
1
bin/models/anime_style_art/noise3_model.json
Normal file
File diff suppressed because one or more lines are too long
BIN
bin/models/anime_style_art/noise3_model.json.caffemodel
Normal file
BIN
bin/models/anime_style_art/noise3_model.json.caffemodel
Normal file
Binary file not shown.
1
bin/models/anime_style_art_rgb/noise3_model.json
Normal file
1
bin/models/anime_style_art_rgb/noise3_model.json
Normal file
File diff suppressed because one or more lines are too long
BIN
bin/models/anime_style_art_rgb/noise3_model.json.caffemodel
Normal file
BIN
bin/models/anime_style_art_rgb/noise3_model.json.caffemodel
Normal file
Binary file not shown.
1
bin/models/photo/noise3_model.json
Normal file
1
bin/models/photo/noise3_model.json
Normal file
File diff suppressed because one or more lines are too long
BIN
bin/models/photo/noise3_model.json.caffemodel
Normal file
BIN
bin/models/photo/noise3_model.json.caffemodel
Normal file
Binary file not shown.
Binary file not shown.
@ -280,8 +280,10 @@ private:
|
|||||||
|
|
||||||
if (SendMessage(GetDlgItem(dh, IDC_RADIONOISE_LEVEL1), BM_GETCHECK, 0, 0))
|
if (SendMessage(GetDlgItem(dh, IDC_RADIONOISE_LEVEL1), BM_GETCHECK, 0, 0))
|
||||||
noise_level = 1;
|
noise_level = 1;
|
||||||
else
|
else if (SendMessage(GetDlgItem(dh, IDC_RADIONOISE_LEVEL2), BM_GETCHECK, 0, 0))
|
||||||
noise_level = 2;
|
noise_level = 2;
|
||||||
|
else
|
||||||
|
noise_level = 3;
|
||||||
|
|
||||||
if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_RATIO), BM_GETCHECK, 0, 0))
|
if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_RATIO), BM_GETCHECK, 0, 0))
|
||||||
scaleType = eScaleTypeRatio;
|
scaleType = eScaleTypeRatio;
|
||||||
@ -1340,6 +1342,7 @@ public:
|
|||||||
SET_WINDOW_TEXT(IDC_STATIC_JPEG_NOISE_LEVEL);
|
SET_WINDOW_TEXT(IDC_STATIC_JPEG_NOISE_LEVEL);
|
||||||
SET_WINDOW_TEXT(IDC_RADIONOISE_LEVEL1);
|
SET_WINDOW_TEXT(IDC_RADIONOISE_LEVEL1);
|
||||||
SET_WINDOW_TEXT(IDC_RADIONOISE_LEVEL2);
|
SET_WINDOW_TEXT(IDC_RADIONOISE_LEVEL2);
|
||||||
|
SET_WINDOW_TEXT(IDC_RADIONOISE_LEVEL3);
|
||||||
SET_WINDOW_TEXT(IDC_STATIC_SCALE_RATE);
|
SET_WINDOW_TEXT(IDC_STATIC_SCALE_RATE);
|
||||||
SET_WINDOW_TEXT(IDC_RADIO_SCALE_RATIO);
|
SET_WINDOW_TEXT(IDC_RADIO_SCALE_RATIO);
|
||||||
SET_WINDOW_TEXT(IDC_RADIO_SCALE_WIDTH);
|
SET_WINDOW_TEXT(IDC_RADIO_SCALE_WIDTH);
|
||||||
@ -1642,7 +1645,7 @@ public:
|
|||||||
if (outputExt.length() > 0 && outputExt[0] != TEXT('.'))
|
if (outputExt.length() > 0 && outputExt[0] != TEXT('.'))
|
||||||
outputExt = L"." + outputExt;
|
outputExt = L"." + outputExt;
|
||||||
|
|
||||||
if (!(1 <= noise_level && noise_level <= 2))
|
if (!(1 <= noise_level && noise_level <= 3))
|
||||||
noise_level = 1;
|
noise_level = 1;
|
||||||
|
|
||||||
if (tprcess == TEXT("gpu"))
|
if (tprcess == TEXT("gpu"))
|
||||||
@ -1717,11 +1720,19 @@ public:
|
|||||||
{
|
{
|
||||||
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL1), BM_SETCHECK, BST_CHECKED, 0);
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL1), BM_SETCHECK, BST_CHECKED, 0);
|
||||||
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL2), BM_SETCHECK, BST_UNCHECKED, 0);
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL2), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||||
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL3), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||||
|
}
|
||||||
|
else if (noise_level == 2)
|
||||||
|
{
|
||||||
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL1), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||||
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL2), BM_SETCHECK, BST_CHECKED, 0);
|
||||||
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL3), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL1), BM_SETCHECK, BST_UNCHECKED, 0);
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL1), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||||
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL2), BM_SETCHECK, BST_CHECKED, 0);
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL2), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||||
|
SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL3), BM_SETCHECK, BST_CHECKED, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process == "gpu")
|
if (process == "gpu")
|
||||||
@ -2286,6 +2297,7 @@ int WINAPI WinMain(HINSTANCE hInstance,
|
|||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIO_AUTO_SCALE);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIO_AUTO_SCALE);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL1);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL1);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL2);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL2);
|
||||||
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL3);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIO_MODE_CPU);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIO_MODE_CPU);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIO_MODE_GPU);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIO_MODE_GPU);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIO_MODEL_RGB);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIO_MODEL_RGB);
|
||||||
|
Binary file not shown.
@ -93,6 +93,7 @@ int main(int argc, char** argv)
|
|||||||
std::vector<int> cmdNRLConstraintV;
|
std::vector<int> cmdNRLConstraintV;
|
||||||
cmdNRLConstraintV.push_back(1);
|
cmdNRLConstraintV.push_back(1);
|
||||||
cmdNRLConstraintV.push_back(2);
|
cmdNRLConstraintV.push_back(2);
|
||||||
|
cmdNRLConstraintV.push_back(3);
|
||||||
TCLAP::ValuesConstraint<int> cmdNRLConstraint(cmdNRLConstraintV);
|
TCLAP::ValuesConstraint<int> cmdNRLConstraint(cmdNRLConstraintV);
|
||||||
TCLAP::ValueArg<int> cmdNRLevel("n", "noise_level", "noise reduction level",
|
TCLAP::ValueArg<int> cmdNRLevel("n", "noise_level", "noise reduction level",
|
||||||
false, 1, &cmdNRLConstraint, cmd);
|
false, 1, &cmdNRLConstraint, cmd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user